绘制用户二级评估、参数字典维护页面

This commit is contained in:
GGJ
2025-03-31 20:53:59 +08:00
parent d29b9c819d
commit 3c84c41d35
10 changed files with 871 additions and 10 deletions

View File

@@ -15,7 +15,7 @@
<el-button type="primary" icon="el-icon-Download">导出报告</el-button>
</div>
<div :style="collapseHeight" style="overflow-y: auto">
<el-collapse v-model="collapseName">
<el-collapse v-model="collapseName" class="pl10 pr10">
<el-collapse-item title="基本信息" :name="1">
<information />
</el-collapse-item>
@@ -84,6 +84,12 @@ const handleNodeClick = (data: any, node: any) => {
:deep(.el-collapse-item__header) {
font-family: AlimamaDongFangDaKai;
font-size: 20px;
&::before {
content: '▍'; /* 添加星号 */
font-size: 16px;
color: var(--el-color-primary);
}
}
.actionButtons {

View File

@@ -29,7 +29,7 @@
<el-collapse-item :title="item.name" v-for="(item, index) in column" :name="index + 3">
<div style="height: 200px">
<vxe-table height="auto" :data="form[item.key]" v-bind="defaultAttribute">
<vxe-column type="checkbox" width="60"></vxe-column>
<vxe-column type="seq" title="序号" width="60px"></vxe-column>
<vxe-column
@@ -252,6 +252,11 @@ const column: any = ref([
:deep(.el-collapse-item__header) {
padding-left: 20px;
font-size: 16px !important;
&::before {
content: '' !important; /* 添加星号 */
}
}
:deep(.el-descriptions__cell) {
width: 12.5%;

View File

@@ -1,11 +1,318 @@
<template>
<div>
<el-collapse v-model="activeNames">
<el-collapse v-model="activeNames">
<el-collapse-item title="电压波动/闪变评估结果" :name="1">
<div class="flickerWaves">
<vxe-table
:data="undulation"
height="110px"
v-bind="defaultAttribute"
:cell-class-name="getCellClassName"
style="width: 60%"
>
<vxe-column title="估算方式" field="name" />
<vxe-column title="冲击负荷数量" field="name1" />
<vxe-column title="电压波动" field="name2" />
<vxe-column title="国标限值" field="name3" />
<vxe-column title="判断">
<template #default="{ row }">
<el-tag v-if="row.name2 > row.name3" type="warning">不合格</el-tag>
<el-tag v-else type="success">合格</el-tag>
</template>
</vxe-column>
</vxe-table>
<vxe-table
:data="flicker"
height="110px"
v-bind="defaultAttribute"
:cell-class-name="getCellClassName"
style="width: 40%"
>
<vxe-column title="冲击负荷数量" field="name1" />
<vxe-column title="闪变" field="name2" />
<vxe-column title="国标限值" field="name3" />
<vxe-column title="判断">
<template #default="{ row }">
<span v-if="row.name2 == null"></span>
<el-tag v-else-if="row.name2 > row.name3" type="warning">不合格</el-tag>
<div>123 </div>
<el-tag v-else type="success">合格</el-tag>
</template>
</vxe-column>
</vxe-table>
</div>
</el-collapse-item>
<el-collapse-item title="电压偏差评估结果" :name="2">
<vxe-table
:data="voltageDeviation"
height="330px"
:merge-cells="mergeCells"
v-bind="defaultAttribute"
style="width: 100%"
>
<vxe-column field="name" width="80px">
<template #default="{ row }">
<div class="textName">{{ row.name }}</div>
</template>
</vxe-column>
<vxe-colgroup title="用户无功设备情况">
<vxe-column field="name1" title="用户项目负载/出力(%)" min-width="160px" />
</vxe-colgroup>
<vxe-colgroup title="用户无功设备不运行">
<vxe-column field="name2" title="百分比(%)" min-width="90px" />
<vxe-column field="name3" title="有名值(%)" min-width="90px" />
<vxe-column field="name4" title="上限值(%)" min-width="90px" />
<vxe-column field="name5" title="下限值(%)" min-width="90px" />
<vxe-column title="判断" min-width="80px">
<template #default="{ row }">
<el-tag type="success">合格</el-tag>
</template>
</vxe-column>
</vxe-colgroup>
<vxe-colgroup title="用户无功设备全部运行">
<vxe-column field="name6" title="百分比(%)" min-width="90px" />
<vxe-column field="name7" title="有名值(%)" min-width="90px" />
<vxe-column field="name8" title="上限值(%)" min-width="90px" />
<vxe-column field="name9" title="下限值(%)" min-width="90px" />
<vxe-column title="判断" min-width="80px">
<template #default="{ row }">
<el-tag type="success">合格</el-tag>
</template>
</vxe-column>
</vxe-colgroup>
</vxe-table>
</el-collapse-item>
<el-collapse-item title="三相电压不平衡评估结果" :name="3">
<vxe-table
:data="imbalance"
height="110px"
v-bind="defaultAttribute"
:cell-class-name="getCellClassName"
style="width: 100%"
>
<vxe-column title="估算方式" field="name" />
<vxe-column title="负序电压不平衡度(%)" field="name2" />
<vxe-column title="国标限值(%)" field="name3" />
<vxe-column title="判断">
<template #default="{ row }">
<el-tag v-if="row.name2 > row.name3" type="warning">不合格</el-tag>
<el-tag v-else type="success">合格</el-tag>
</template>
</vxe-column>
</vxe-table>
</el-collapse-item>
<el-collapse-item title="谐波电压/电流评估结果" :name="4">
<div class="flickerWaves" style="height: 520px">
<vxe-table
:data="harmonicVoltage"
height="520px"
v-bind="defaultAttribute"
:cell-class-name="getCellClassName"
style="width: 50%"
>
<vxe-column title="谐波次数" field="name" />
<vxe-colgroup title="电容器谐波电流评估值(A)">
<vxe-column field="name1" title="未投入" min-width="160px" />
<vxe-column field="name2" title="已投入" min-width="160px" />
</vxe-colgroup>
<vxe-column title="国标限值(A)" field="name3" />
<vxe-column title="判断">
<template #default="{ row }">
<el-tag v-if="row.name2 > row.name3" type="warning">不合格</el-tag>
<el-tag v-else type="success">合格</el-tag>
</template>
</vxe-column>
</vxe-table>
<vxe-table :data="harmonicCurrents" height="520px" v-bind="defaultAttribute" style="width: 50%">
<vxe-column title="谐波次数" field="name" />
<vxe-colgroup title="电容器谐波电压评估值(%)">
<vxe-column field="name1" title="未投入" min-width="160px" />
<vxe-column field="name2" title="已投入" min-width="160px" />
</vxe-colgroup>
<vxe-column title="国标限值(%)" field="name3" />
<vxe-column title="判断">
<template #default="{ row }">
<span v-if="row.name2 == null"></span>
<el-tag v-else-if="row.name2 > row.name3" type="warning">不合格</el-tag>
<el-tag v-else type="success">合格</el-tag>
</template>
</vxe-column>
</vxe-table>
</div>
</el-collapse-item>
</el-collapse>
</el-collapse>
</div>
</template>
<script setup lang='ts'>
import { ref, reactive } from 'vue'
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { defaultAttribute } from '@/components/table/defaultAttribute'
const activeNames = ref([1, 2, 3, 4, 5, 6, 7])
// 波动
const undulation = ref([
{
name: '近似计算',
name1: '1',
name2: '6.94',
name3: '3.00'
},
{
name: '精确估算',
name1: '1',
name2: '6.94',
name3: '3.00'
}
])
// 闪变
const flicker = ref([
{
name1: '1',
name2: '1.1',
name3: '0.8'
},
{}
])
// 电压偏差
const voltageDeviation = ref([
{
name: '电网高峰负荷',
name1: '100',
name2: '2.14',
name3: '107.65',
name4: '10.00',
name5: '-10.00',
name6: '2.14',
name7: '107.65',
name8: '10.00',
name9: '-10.00'
},
{
name: '电网高峰负荷',
name1: '100',
name2: '2.14',
name3: '107.65',
name4: '10.00',
name5: '-10.00',
name6: '2.14',
name7: '107.65',
name8: '10.00',
name9: '-10.00'
},
{
name: '电网高峰负荷',
name1: '100',
name2: '2.14',
name3: '107.65',
name4: '10.00',
name5: '-10.00',
name6: '2.14',
name7: '107.65',
name8: '10.00',
name9: '-10.00'
},
{
name: '电网低谷负荷',
name1: '100',
name2: '2.14',
name3: '107.65',
name4: '10.00',
name5: '-10.00',
name6: '2.14',
name7: '107.65',
name8: '10.00',
name9: '-10.00'
},
{
name: '电网低谷负荷',
name1: '100',
name2: '2.14',
name3: '107.65',
name4: '10.00',
name5: '-10.00',
name6: '2.14',
name7: '107.65',
name8: '10.00',
name9: '-10.00'
},
{
name: '电网低谷负荷',
name1: '100',
name2: '2.14',
name3: '107.65',
name4: '10.00',
name5: '-10.00',
name6: '2.14',
name7: '107.65',
name8: '10.00',
name9: '-10.00'
}
])
// 三相电压
const imbalance = ref([
{
name: '近似计算',
name2: '2.1',
name3: '1.3'
},
{
name: '精确估算',
name2: '1.6',
name3: '1.3'
}
])
// 谐波电压
const harmonicVoltage:any = ref([])
// 谐波电流
const harmonicCurrents:any = ref([])
// 合并单元格
const mergeCells = ref([
{ row: 0, col: 0, rowspan: 3, colspan: 1 },
{ row: 3, col: 0, rowspan: 3, colspan: 1 }
])
// 添加单元格class
const getCellClassName = ({ row, columnIndex }) => {
if (row.name2 > row.name3 && columnIndex == 2) {
return 'custom-cell-bg' // 为 Alice 的单元格添加背景
}
return ''
}
onMounted(() => {
for (let i = 2; i < 51; i++) {
harmonicVoltage.value.push({
name: i
})
harmonicCurrents.value.push({
name: i
})
}
})
</script>
<style lang="scss" scoped>
:deep(.el-collapse-item__header) {
padding-left: 20px;
font-size: 16px !important;
&::before {
content: '' !important; /* 添加星号 */
}
}
:deep(.el-descriptions__cell) {
width: 12.5%;
}
:deep(.custom-cell-bg) {
background-color: var(--el-color-warning-light-7);
}
.flickerWaves {
// height: 120px;
display: flex;
}
.textName {
white-space: pre-line;
font-weight: 600 !important;
}
</style>

View File

@@ -0,0 +1,113 @@
<template>
<div class="mt10">
<TableHeader :showReset="false" ref="TableHeaderRef" showExport>
<template #select>
<el-form-item label="谐波原名称">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入关键字" />
</el-form-item>
</template>
<template #operation>
<el-button type="primary" icon="el-icon-Plus">新增</el-button>
<el-button type="primary" icon="el-icon-Delete">删除</el-button>
<el-button type="primary" icon="el-icon-Download">模版下载</el-button>
<el-button type="primary" icon="el-icon-Upload">导入</el-button>
</template>
</TableHeader>
<Table ref="tableRef"></Table>
</div>
</template>
<script setup lang="ts">
import TableStore from '@/utils/tableStore'
import TableHeader from '@/components/table/header/index.vue'
import Table from '@/components/table/index.vue'
import { mainHeight } from '@/utils/layout'
import { ref, reactive, onMounted } from 'vue'
const tableStore = new TableStore({
url: '/user-boot/dept/deptTree',
method: 'POST',
publicHeight: 115,
column: [
{
width: '60',
type: 'checkbox'
},
{
title: '序号',
width: 80,
field: 'name',
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ title: '导线型号', field: 'userName', minWidth: '130' },
{ title: '线缆类型', field: 'harmonic2', minWidth: '80' },
{ title: '正序电阻R1(Ω/km)', field: 'harmonic3', minWidth: '80' },
{ title: '正序电抗X1(Ω/km)', field: 'harmonic4', minWidth: '80' },
{ title: '正序电纳Y(S/km)', field: 'harmonic5', minWidth: '80' },
{ title: '零序电阻R0(Ω/km)', field: 'harmonic6', minWidth: '80' },
{ title: '零序电纳Y0(Ω/km)', field: 'harmonic7', minWidth: '80' },
{
title: '操作',
minWidth: '180',
fixed: 'right',
render: 'buttons',
buttons: [
{
name: 'edit',
title: '编辑',
type: 'primary',
icon: 'el-icon-Open',
render: 'basicButton',
click: row => {}
},
{
name: 'edit',
title: '查看',
type: 'primary',
icon: 'el-icon-Open',
render: 'basicButton',
click: row => {}
}
]
}
],
loadCallback: () => {
setTimeout(() => {
tableStore.table.data = [
{
userName: 'LGJ-220-35kV',
harmonic2: '架空',
harmonic3: '0.33',
harmonic4: '2.42',
harmonic5: '2.42',
harmonic6: '1.25',
harmonic7: '2.42',
harmonic8: '1.25',
harmonic9: '2.42'
},
{
userName: 'LGJ-220-35kV',
harmonic2: '电缆',
harmonic3: '0.33',
harmonic4: '2.42',
harmonic5: '2.42',
harmonic6: '1.25',
harmonic7: '2.42',
harmonic8: '1.25',
harmonic9: '2.42'
},
]
}, 0)
}
})
provide('tableStore', tableStore)
tableStore.table.params.searchValue = ''
onMounted(() => {
tableStore.index()
})
</script>
<style lang="scss" scoped></style>

View File

@@ -0,0 +1,185 @@
<template>
<div class="mt10">
<TableHeader :showReset="false" ref="TableHeaderRef" showExport>
<template #select>
<el-form-item label="谐波原名称">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入关键字" />
</el-form-item>
</template>
<template #operation>
<el-button type="primary" icon="el-icon-Plus">新增</el-button>
<el-button type="primary" icon="el-icon-Delete">删除</el-button>
<el-button type="primary" icon="el-icon-Download">模版下载</el-button>
<el-button type="primary" icon="el-icon-Upload">导入</el-button>
</template>
</TableHeader>
<Table ref="tableRef"></Table>
</div>
</template>
<script setup lang="ts">
import TableStore from '@/utils/tableStore'
import TableHeader from '@/components/table/header/index.vue'
import Table from '@/components/table/index.vue'
import { mainHeight } from '@/utils/layout'
import { ref, reactive, onMounted } from 'vue'
const tableStore = new TableStore({
url: '/user-boot/dept/deptTree',
method: 'POST',
publicHeight: 115,
column: [
{
width: '60',
type: 'checkbox'
},
{
title: '序号',
width: 80,
field: 'name',
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ title: '谐波原名称', field: 'userName', minWidth: '130' },
{ title: '谐波2次', field: 'harmonic2', minWidth: '80' },
{ title: '谐波3次', field: 'harmonic3', minWidth: '80' },
{ title: '谐波4次', field: 'harmonic4', minWidth: '80' },
{ title: '谐波5次', field: 'harmonic5', minWidth: '80' },
{ title: '谐波6次', field: 'harmonic6', minWidth: '80' },
{ title: '谐波7次', field: 'harmonic7', minWidth: '80' },
{ title: '谐波8次', field: 'harmonic8', minWidth: '80' },
{ title: '谐波9次', field: 'harmonic9', minWidth: '80' },
{ title: '谐波10次', field: 'harmonic10', minWidth: '80' },
{ title: '谐波11次', field: 'harmonic11', minWidth: '80' },
{ title: '谐波12次', field: 'harmonic12', minWidth: '80' },
{ title: '谐波13次', field: 'harmonic13', minWidth: '80' },
{ title: '谐波14次', field: 'harmonic14', minWidth: '80' },
{ title: '谐波15次', field: 'harmonic15', minWidth: '80' },
{ title: '谐波16次', field: 'harmonic16', minWidth: '80' },
{ title: '谐波17次', field: 'harmonic17', minWidth: '80' },
{ title: '谐波18次', field: 'harmonic18', minWidth: '80' },
{ title: '谐波19次', field: 'harmonic19', minWidth: '80' },
{ title: '谐波20次', field: 'harmonic20', minWidth: '80' },
{ title: '谐波21次', field: 'harmonic21', minWidth: '80' },
{ title: '谐波22次', field: 'harmonic22', minWidth: '80' },
{ title: '谐波23次', field: 'harmonic23', minWidth: '80' },
{ title: '谐波24次', field: 'harmonic24', minWidth: '80' },
{ title: '谐波25次', field: 'harmonic25', minWidth: '80' },
{ title: '谐波26次', field: 'harmonic26', minWidth: '80' },
{ title: '谐波27次', field: 'harmonic27', minWidth: '80' },
{ title: '谐波28次', field: 'harmonic28', minWidth: '80' },
{ title: '谐波29次', field: 'harmonic29', minWidth: '80' },
{ title: '谐波30次', field: 'harmonic30', minWidth: '80' },
{ title: '谐波31次', field: 'harmonic31', minWidth: '80' },
{ title: '谐波32次', field: 'harmonic32', minWidth: '80' },
{ title: '谐波33次', field: 'harmonic33', minWidth: '80' },
{ title: '谐波34次', field: 'harmonic34', minWidth: '80' },
{ title: '谐波35次', field: 'harmonic35', minWidth: '80' },
{ title: '谐波36次', field: 'harmonic36', minWidth: '80' },
{ title: '谐波37次', field: 'harmonic37', minWidth: '80' },
{ title: '谐波38次', field: 'harmonic38', minWidth: '80' },
{ title: '谐波39次', field: 'harmonic39', minWidth: '80' },
{ title: '谐波40次', field: 'harmonic40', minWidth: '80' },
{ title: '谐波41次', field: 'harmonic41', minWidth: '80' },
{ title: '谐波42次', field: 'harmonic42', minWidth: '80' },
{ title: '谐波43次', field: 'harmonic43', minWidth: '80' },
{ title: '谐波44次', field: 'harmonic44', minWidth: '80' },
{ title: '谐波45次', field: 'harmonic45', minWidth: '80' },
{ title: '谐波46次', field: 'harmonic46', minWidth: '80' },
{ title: '谐波47次', field: 'harmonic47', minWidth: '80' },
{ title: '谐波48次', field: 'harmonic48', minWidth: '80' },
{ title: '谐波49次', field: 'harmonic49', minWidth: '80' },
{ title: '谐波50次', field: 'harmonic50', minWidth: '80' },
{
title: '操作',
minWidth: '180',
fixed: 'right',
render: 'buttons',
buttons: [
{
name: 'edit',
title: '编辑',
type: 'primary',
icon: 'el-icon-Open',
render: 'basicButton',
click: row => {}
},
{
name: 'edit',
title: '查看',
type: 'primary',
icon: 'el-icon-Open',
render: 'basicButton',
click: row => {}
}
]
}
],
loadCallback: () => {
setTimeout(() => {
tableStore.table.data = [{
userName:'六脉整流',
harmonic2:'1.25',
harmonic3:'0.63',
harmonic4:'1.25',
harmonic5:'0.63',
harmonic6:'1.25',
harmonic7:'0.63',
harmonic8:'1.25',
harmonic9:'0.63',
harmonic10:'1.25',
harmonic11:'0.63',
harmonic12:'1.25',
harmonic13:'0.63',
harmonic14:'1.25',
harmonic15:'0.63',
harmonic16:'1.25',
harmonic17:'0.63',
harmonic18:'1.25',
harmonic19:'0.63',
harmonic20:'1.25',
harmonic21:'0.63',
harmonic22:'1.25',
harmonic23:'0.63',
harmonic24:'1.25',
harmonic25:'0.63',
harmonic26:'1.25',
harmonic27:'0.63',
harmonic28:'1.25',
harmonic29:'0.63',
harmonic30:'1.25',
harmonic31:'0.63',
harmonic32:'1.25',
harmonic33:'0.63',
harmonic34:'1.25',
harmonic35:'0.63',
harmonic36:'1.25',
harmonic37:'0.63',
harmonic38:'1.25',
harmonic39:'0.63',
harmonic40:'1.25',
harmonic41:'0.63',
harmonic42:'1.25',
harmonic43:'0.63',
harmonic44:'1.25',
harmonic45:'0.63',
harmonic46:'1.25',
harmonic47:'0.63',
harmonic48:'1.25',
harmonic49:'0.63',
harmonic50:'1.25',
}]
}, 0)
}
})
provide('tableStore', tableStore)
tableStore.table.params.searchValue = ''
onMounted(() => {
tableStore.index()
})
</script>
<style lang="scss" scoped></style>

View File

@@ -0,0 +1,100 @@
<template>
<div class="mt10">
<TableHeader :showReset="false" ref="TableHeaderRef" showExport>
<template #select>
<el-form-item label="谐波原名称">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入关键字" />
</el-form-item>
</template>
<template #operation>
<el-button type="primary" icon="el-icon-Plus">新增</el-button>
<el-button type="primary" icon="el-icon-Delete">删除</el-button>
<el-button type="primary" icon="el-icon-Download">模版下载</el-button>
<el-button type="primary" icon="el-icon-Upload">导入</el-button>
</template>
</TableHeader>
<Table ref="tableRef"></Table>
</div>
</template>
<script setup lang="ts">
import TableStore from '@/utils/tableStore'
import TableHeader from '@/components/table/header/index.vue'
import Table from '@/components/table/index.vue'
import { mainHeight } from '@/utils/layout'
import { ref, reactive, onMounted } from 'vue'
const tableStore = new TableStore({
url: '/user-boot/dept/deptTree',
method: 'POST',
publicHeight: 115,
column: [
{
width: '60',
type: 'checkbox'
},
{
title: '序号',
width: 80,
field: 'name',
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ title: '符合类型', field: 'userName', minWidth: '130' },
{ title: '启动方式', field: 'harmonic2', minWidth: '80' },
{ title: '启动容量倍数', field: 'harmonic3', minWidth: '80' },
{
title: '操作',
minWidth: '180',
fixed: 'right',
render: 'buttons',
buttons: [
{
name: 'edit',
title: '编辑',
type: 'primary',
icon: 'el-icon-Open',
render: 'basicButton',
click: row => {}
},
{
name: 'edit',
title: '查看',
type: 'primary',
icon: 'el-icon-Open',
render: 'basicButton',
click: row => {}
}
]
}
],
loadCallback: () => {
setTimeout(() => {
tableStore.table.data = [
{
userName: '电机',
harmonic2: '直接启动',
harmonic3: '4',
},
{
userName: '电机',
harmonic2: '软启动',
harmonic3: '3',
}
]
}, 0)
}
})
provide('tableStore', tableStore)
tableStore.table.params.searchValue = ''
onMounted(() => {
tableStore.index()
})
</script>
<style lang="scss" scoped></style>

View File

@@ -0,0 +1,114 @@
<template>
<div class="mt10">
<TableHeader :showReset="false" ref="TableHeaderRef" showExport>
<template #select>
<el-form-item label="谐波原名称">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入关键字" />
</el-form-item>
</template>
<template #operation>
<el-button type="primary" icon="el-icon-Plus">新增</el-button>
<el-button type="primary" icon="el-icon-Delete">删除</el-button>
<el-button type="primary" icon="el-icon-Download">模版下载</el-button>
<el-button type="primary" icon="el-icon-Upload">导入</el-button>
</template>
</TableHeader>
<Table ref="tableRef"></Table>
</div>
</template>
<script setup lang="ts">
import TableStore from '@/utils/tableStore'
import TableHeader from '@/components/table/header/index.vue'
import Table from '@/components/table/index.vue'
import { mainHeight } from '@/utils/layout'
import { ref, reactive, onMounted } from 'vue'
const tableStore = new TableStore({
url: '/user-boot/dept/deptTree',
method: 'POST',
publicHeight: 115,
column: [
{
width: '60',
type: 'checkbox'
},
{
title: '序号',
width: 80,
field: 'name',
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ title: '型号', field: 'userName', minWidth: '130' },
{ title: '额定容量(kVA)', field: 'harmonic2', minWidth: '80' },
{ title: '高压制额定电压(kV)', field: 'harmonic3', minWidth: '80' },
{ title: '低压侧额定电压(kV)', field: 'harmonic4', minWidth: '80' },
{ title: '联结组标号', field: 'harmonic5', minWidth: '80' },
{ title: '空载损耗(kW)', field: 'harmonic6', minWidth: '80' },
{ title: '空载电流(A)', field: 'harmonic7', minWidth: '80' },
{ title: '短路阻抗(%)', field: 'harmonic8', minWidth: '80' },
{
title: '操作',
minWidth: '180',
fixed: 'right',
render: 'buttons',
buttons: [
{
name: 'edit',
title: '编辑',
type: 'primary',
icon: 'el-icon-Open',
render: 'basicButton',
click: row => {}
},
{
name: 'edit',
title: '查看',
type: 'primary',
icon: 'el-icon-Open',
render: 'basicButton',
click: row => {}
}
]
}
],
loadCallback: () => {
setTimeout(() => {
tableStore.table.data = [
{
userName: 'LGJ-220-35kV',
harmonic2: '架空',
harmonic3: '0.33',
harmonic4: '2.42',
harmonic5: '2.42',
harmonic6: '1.25',
harmonic7: '2.42',
harmonic8: '1.25',
harmonic9: '2.42'
},
{
userName: 'LGJ-220-35kV',
harmonic2: '电缆',
harmonic3: '0.33',
harmonic4: '2.42',
harmonic5: '2.42',
harmonic6: '1.25',
harmonic7: '2.42',
harmonic8: '1.25',
harmonic9: '2.42'
},
]
}, 0)
}
})
provide('tableStore', tableStore)
tableStore.table.params.searchValue = ''
onMounted(() => {
tableStore.index()
})
</script>
<style lang="scss" scoped></style>

View File

@@ -0,0 +1,24 @@
<template>
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="谐波源特性" name="1"><HarmonicWave v-if="activeName == '1'" /></el-tab-pane>
<el-tab-pane label="线缆类型" name="2"><cable v-if="activeName == '2'" /></el-tab-pane>
<el-tab-pane label="变压器参数" name="3"><transformer v-if="activeName == '3'" /></el-tab-pane>
<el-tab-pane label="冲击负荷参数" name="4"><load v-if="activeName == '4'" /></el-tab-pane>
</el-tabs>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import type { TabsPaneContext } from 'element-plus'
import HarmonicWave from './components/harmonicWave.vue'
import cable from './components/cable.vue'
import transformer from './components/transformer.vue'
import load from './components/load.vue'
const activeName = ref('1')
const handleClick = (tab: TabsPaneContext, event: Event) => {
console.log(tab, event)
}
</script>
<style></style>

View File

@@ -1,11 +1,11 @@
<template>
<div class="default-main pd10">
<div class="default-main ">
<div class="actionButtons">
<el-button type="primary" icon="el-icon-Check" class="md8">保存</el-button>
<back-component style="margin: 8px" />
</div>
<div :style="pageHeight" style="overflow-y: auto">
<el-collapse v-model="activeNames">
<el-collapse v-model="activeNames" class="pl10 pr10">
<el-collapse-item title="用户参数维护" :name="1">
<el-form :inline="true" :model="form" class="form-four" label-width="auto">
<el-form-item label="所在地市">
@@ -114,7 +114,7 @@
<el-button type="primary" size="small" icon="el-icon-Delete">删除</el-button>
<el-button type="primary" size="small" icon="el-icon-Download">导出</el-button>
</div>
<div style="height: 300px">
<div style="height: 200px">
<vxe-table height="auto" :data="form[item.key]" v-bind="defaultAttribute">
<vxe-column type="checkbox" width="60"></vxe-column>
<vxe-column type="seq" title="序号" width="60px"></vxe-column>
@@ -383,6 +383,12 @@ const edit = (item: any,row: any) => {
:deep(.el-collapse-item__header) {
font-family: AlimamaDongFangDaKai;
font-size: 20px;
&::before {
content: '▍'; /* 添加星号 */
font-size: 16px;
color: var(--el-color-primary);
}
}
.el-collapse-item__content {
padding-bottom: 10px;

View File

@@ -3,7 +3,7 @@
<el-tabs type="border-card" v-model="activeName">
<el-tab-pane label="评估用户维护" name="1"><User v-if="activeName == '1'"/></el-tab-pane>
<el-tab-pane label="用户二级评估" name="2"><Assess v-if="activeName == '2'"/></el-tab-pane>
<el-tab-pane label="参数字典维护" name="3">参数字典维护</el-tab-pane>
<el-tab-pane label="参数字典维护" name="3"><Dictionary/></el-tab-pane>
</el-tabs>
</div>
</template>
@@ -11,9 +11,10 @@
import { ref, reactive } from 'vue'
import User from '@/views/pqs/runManage/assessment/components/uese/index.vue'
import Assess from '@/views/pqs/runManage/assessment/components/assess/index.vue'
import Dictionary from '@/views/pqs/runManage/assessment/components/dictionary/index.vue'
defineOptions({
name: 'runManage/assessment'
})
const activeName = ref('2')
const activeName = ref('3')
</script>
<style lang="scss" scoped></style>