绘制稳态事件配置页面
This commit is contained in:
@@ -65,3 +65,35 @@ export function savePageIdWithUser(data: any) {
|
|||||||
params: data
|
params: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
//新增稳态指标方案
|
||||||
|
export function save(data: any) {
|
||||||
|
return createAxios({
|
||||||
|
url: '/cs-harmonic-boot/csHarmonicPlan/save',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//修改稳态指标方案
|
||||||
|
export function update(data: any) {
|
||||||
|
return createAxios({
|
||||||
|
url: '/cs-harmonic-boot/csHarmonicPlan/update',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//新增稳态指标方案
|
||||||
|
export function deletePlan(data: any) {
|
||||||
|
return createAxios({
|
||||||
|
url: '/cs-harmonic-boot/csHarmonicPlan/delete',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//根据ID查询稳态指标方案
|
||||||
|
export function getById(data: any) {
|
||||||
|
return createAxios({
|
||||||
|
url: '/cs-harmonic-boot/csHarmonicPlan/getById',
|
||||||
|
method: 'GET',
|
||||||
|
params: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div :style="{ width: menuCollapse ? '40px' : props.width }" style="transition: all 0.3s; overflow: hidden">
|
<div :style="{ width: menuCollapse ? '40px' : props.width }" style="transition: all 0.3s; overflow: hidden">
|
||||||
<div class="mt10 mr10" style="display: flex; justify-content: end">
|
<div class="mt10 mr10" style="display: flex; justify-content: end" v-if="showBut">
|
||||||
<el-button type="primary" icon="el-icon-Select" @click="save" :loading="loading">保存</el-button>
|
<el-button type="primary" icon="el-icon-Select" @click="save" :loading="loading">保存</el-button>
|
||||||
</div>
|
</div>
|
||||||
<Icon
|
<Icon
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-tree
|
<el-tree
|
||||||
:style="{ height: 'calc(100vh - 267px)' }"
|
:style="{ height: `calc(100vh - ${height}px)` }"
|
||||||
style="overflow: auto"
|
style="overflow: auto"
|
||||||
ref="treeRef"
|
ref="treeRef"
|
||||||
:props="defaultProps"
|
:props="defaultProps"
|
||||||
@@ -69,9 +69,9 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import useCurrentInstance from '@/utils/useCurrentInstance'
|
import useCurrentInstance from '@/utils/useCurrentInstance'
|
||||||
import { ElTree } from 'element-plus'
|
import { ElTree } from 'element-plus'
|
||||||
import { emit } from 'process'
|
|
||||||
import { ref, watch } from 'vue'
|
import { ref, watch } from 'vue'
|
||||||
import { t } from 'vxe-table'
|
|
||||||
import { useConfig } from '@/stores/config'
|
import { useConfig } from '@/stores/config'
|
||||||
|
|
||||||
defineOptions({
|
defineOptions({
|
||||||
@@ -82,12 +82,16 @@ interface Props {
|
|||||||
width?: string
|
width?: string
|
||||||
canExpand?: boolean
|
canExpand?: boolean
|
||||||
showPush?: boolean
|
showPush?: boolean
|
||||||
|
showBut?: boolean
|
||||||
|
height?: number
|
||||||
}
|
}
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
width: '280px',
|
width: '280px',
|
||||||
canExpand: true,
|
canExpand: true,
|
||||||
showPush: false
|
showPush: false,
|
||||||
|
showBut: true,
|
||||||
|
height: 267
|
||||||
})
|
})
|
||||||
const config = useConfig()
|
const config = useConfig()
|
||||||
const { proxy } = useCurrentInstance()
|
const { proxy } = useCurrentInstance()
|
||||||
@@ -183,7 +187,5 @@ defineExpose({ treeRef, loading })
|
|||||||
.custom-tree-node {
|
.custom-tree-node {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -30,8 +30,9 @@ import { getDeviceTree } from '@/api/cs-device-boot/csLedger'
|
|||||||
defineOptions({
|
defineOptions({
|
||||||
name: 'govern/alarm/index'
|
name: 'govern/alarm/index'
|
||||||
})
|
})
|
||||||
|
|
||||||
const deviceTree = ref([])
|
const deviceTree = ref([])
|
||||||
const activeName = ref('0')
|
const activeName = ref('1')
|
||||||
const key = ref(0)
|
const key = ref(0)
|
||||||
getDeviceTree().then(res => {
|
getDeviceTree().then(res => {
|
||||||
// res.data.forEach((item: any) => {
|
// res.data.forEach((item: any) => {
|
||||||
|
|||||||
439
src/views/govern/alarm/steadyStateEvent/index.vue
Normal file
439
src/views/govern/alarm/steadyStateEvent/index.vue
Normal file
@@ -0,0 +1,439 @@
|
|||||||
|
<template>
|
||||||
|
<div class="default-main" style="display: flex" :style="height">
|
||||||
|
<div style="width: 400px; overflow: hidden">
|
||||||
|
<div class="custom-table-header">
|
||||||
|
<div class="title">方案列表</div>
|
||||||
|
<el-button :icon="Plus" type="primary" @click="addRole" class="ml10">新增</el-button>
|
||||||
|
</div>
|
||||||
|
<Table ref="tableRef" :row-config="{ isCurrent: true, isHover: true }" @currentChange="currentChange" />
|
||||||
|
</div>
|
||||||
|
<div style="flex: 1; overflow: hidden">
|
||||||
|
<div class="custom-table-header">
|
||||||
|
<div class="title">指标配置</div>
|
||||||
|
<!-- <el-button :icon="Select" type="primary" @click="saveIndicator" class="ml10">保存</el-button> -->
|
||||||
|
</div>
|
||||||
|
<div class="pd10 borderBox" :style="height1" style="overflow-y: auto">
|
||||||
|
<H4 class="mt10">基础指标</H4>
|
||||||
|
|
||||||
|
<el-checkbox-group v-model="indicator">
|
||||||
|
<el-checkbox label="频率偏差" value="频率偏差" />
|
||||||
|
<el-checkbox label="电压偏差" value="电压偏差" />
|
||||||
|
<el-checkbox label="三相电压不平衡度" value="三相电压不平衡度" />
|
||||||
|
<el-checkbox label="闪变" value="闪变" />
|
||||||
|
<el-checkbox label="电压总谐波畸变率" value="电压总谐波畸变率" />
|
||||||
|
<el-checkbox label="负序电流" value="负序电流" />
|
||||||
|
</el-checkbox-group>
|
||||||
|
<H4 class="mt10">谐波电压</H4>
|
||||||
|
<div class="df">
|
||||||
|
<div class="title">谐波电压含有率:</div>
|
||||||
|
<div style="flex: 1">
|
||||||
|
<el-checkbox v-model="checkAll1" @change="handleCheckAllChange1">全选</el-checkbox>
|
||||||
|
<el-checkbox-group v-model="indicator" @change="handleHarmonicVoltageChange">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="num in 24"
|
||||||
|
:key="`harmonicVoltage_${num + 1}`"
|
||||||
|
:label="`${num + 1}次`"
|
||||||
|
:value="`${num + 1}次谐波电压含有率`"
|
||||||
|
/>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<H4 class="mt10">谐波电流</H4>
|
||||||
|
<div class="df">
|
||||||
|
<div class="title">谐波电流有效值:</div>
|
||||||
|
<div style="flex: 1">
|
||||||
|
<el-checkbox v-model="checkAll2" @change="handleCheckAllChange2">全选</el-checkbox>
|
||||||
|
<el-checkbox-group v-model="indicator" @change="handleHarmonicCurrentChange">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="num in 24"
|
||||||
|
:key="`harmonicCurrent_${num + 1}`"
|
||||||
|
:label="`${num + 1}次`"
|
||||||
|
:value="`${num + 1}次谐波电流有效值`"
|
||||||
|
/>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<H4 class="mt10">间谐波电压</H4>
|
||||||
|
<div class="df">
|
||||||
|
<div class="title">间谐波电压含有率:</div>
|
||||||
|
<div style="flex: 1">
|
||||||
|
<el-checkbox v-model="checkAll3" @change="handleCheckAllChange3">全选</el-checkbox>
|
||||||
|
<el-checkbox-group v-model="indicator" @change="handleInterharmonicVoltageChange">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="num in 16"
|
||||||
|
:key="`interharmonicVoltage_${num}`"
|
||||||
|
:label="`${num - 0.5}次`"
|
||||||
|
:value="`${num - 0.5}次间谐波电压含有率`"
|
||||||
|
/>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="width: 370px">
|
||||||
|
<div class="custom-table-header">
|
||||||
|
<div class="title">监测点绑定</div>
|
||||||
|
<el-button :icon="Select" type="primary" @click="saveIndicator" class="ml10" :loading="loading">
|
||||||
|
保存
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<!-- <steadyStateTree /> -->
|
||||||
|
<Tree
|
||||||
|
class="borderBox"
|
||||||
|
ref="treeRef"
|
||||||
|
show-checkbox
|
||||||
|
:showBut="false"
|
||||||
|
width="370px"
|
||||||
|
:height="260"
|
||||||
|
:data="menuTree"
|
||||||
|
:checkStrictly="checkStrictly"
|
||||||
|
></Tree>
|
||||||
|
</div>
|
||||||
|
<!-- 新增/编辑弹框 -->
|
||||||
|
<el-dialog v-model="dialogVisible" :title="dialogTitle" width="400px" :before-close="handleClose">
|
||||||
|
<el-form :model="formData" :rules="formRules" ref="formRef" label-width="100px">
|
||||||
|
<el-form-item label="方案名称" prop="name">
|
||||||
|
<el-input v-model.trim="formData.name" placeholder="请输入方案名称" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="排序" prop="sort">
|
||||||
|
<el-input maxlength="32" show-word-limit-number v-model.number="formData.sort" :min="0" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button @click="dialogVisible = false">取消</el-button>
|
||||||
|
<el-button type="primary" @click="submitForm">确定</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { Plus, Select } from '@element-plus/icons-vue'
|
||||||
|
import { ref, onMounted, provide, computed } from 'vue'
|
||||||
|
import TableStore from '@/utils/tableStore'
|
||||||
|
import { getLineTree, getCldTree } from '@/api/cs-device-boot/csLedger'
|
||||||
|
import Table from '@/components/table/index.vue'
|
||||||
|
import { save, deletePlan, update, getById } from '@/api/cs-harmonic-boot/mxgraph'
|
||||||
|
import { mainHeight } from '@/utils/layout'
|
||||||
|
import { ElMessage } from 'element-plus'
|
||||||
|
import steadyStateTree from '@/components/tree/govern/steadyStateTree.vue'
|
||||||
|
import { useConfig } from '@/stores/config'
|
||||||
|
import Tree from '@/components/tree/allocation.vue'
|
||||||
|
import { id } from 'element-plus/es/locale'
|
||||||
|
defineOptions({
|
||||||
|
name: 'govern/steadyStateEvent'
|
||||||
|
})
|
||||||
|
const height = mainHeight(20)
|
||||||
|
const height1 = mainHeight(90)
|
||||||
|
const config = useConfig()
|
||||||
|
const tableRef = ref()
|
||||||
|
const checkAll1 = ref(false)
|
||||||
|
const checkAll2 = ref(false)
|
||||||
|
const checkAll3 = ref(false)
|
||||||
|
const menuTree: any = ref([])
|
||||||
|
const checkStrictly = ref(false)
|
||||||
|
const indicator: any = ref([])
|
||||||
|
const lineList: any = ref([])
|
||||||
|
const copyRow: any = ref({})
|
||||||
|
const treeRef = ref()
|
||||||
|
const loading = ref(false)
|
||||||
|
// 弹框相关
|
||||||
|
const dialogVisible = ref(false)
|
||||||
|
const dialogTitle = ref('新增方案')
|
||||||
|
const formRef = ref()
|
||||||
|
const formData = ref({
|
||||||
|
id: '',
|
||||||
|
sort: 0,
|
||||||
|
lineList: [],
|
||||||
|
harmonicTarget: '',
|
||||||
|
name: ''
|
||||||
|
})
|
||||||
|
const formRules = {
|
||||||
|
name: [{ required: true, message: '请输入方案名称', trigger: 'blur' }],
|
||||||
|
sort: [{ required: true, message: '请输入排序', trigger: 'blur' }]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成各分组的指标值数组
|
||||||
|
const harmonicVoltageValues = computed(() => Array.from({ length: 24 }, (_, i) => `${i + 2}次谐波电压含有率`))
|
||||||
|
const harmonicCurrentValues = computed(() => Array.from({ length: 24 }, (_, i) => `${i + 2}次谐波电流有效值`))
|
||||||
|
const interharmonicVoltageValues = computed(() => Array.from({ length: 16 }, (_, i) => `${i + 0.5}次间谐波电压含有率`))
|
||||||
|
|
||||||
|
// 谐波电压全选/取消全选
|
||||||
|
const handleCheckAllChange1 = (val: any) => {
|
||||||
|
if (val) {
|
||||||
|
const newValues = harmonicVoltageValues.value.filter(v => !indicator.value.includes(v))
|
||||||
|
indicator.value = [...indicator.value, ...newValues]
|
||||||
|
} else {
|
||||||
|
indicator.value = indicator.value.filter(v => !harmonicVoltageValues.value.includes(v))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 谐波电流全选/取消全选
|
||||||
|
const handleCheckAllChange2 = (val: any) => {
|
||||||
|
if (val) {
|
||||||
|
const newValues = harmonicCurrentValues.value.filter(v => !indicator.value.includes(v))
|
||||||
|
indicator.value = [...indicator.value, ...newValues]
|
||||||
|
} else {
|
||||||
|
indicator.value = indicator.value.filter(v => !harmonicCurrentValues.value.includes(v))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 间谐波电压全选/取消全选
|
||||||
|
const handleCheckAllChange3 = (val: any) => {
|
||||||
|
if (val) {
|
||||||
|
const newValues = interharmonicVoltageValues.value.filter(v => !indicator.value.includes(v))
|
||||||
|
indicator.value = [...indicator.value, ...newValues]
|
||||||
|
} else {
|
||||||
|
indicator.value = indicator.value.filter(v => !interharmonicVoltageValues.value.includes(v))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 谐波电压分组内值变化时,更新全选状态
|
||||||
|
const handleHarmonicVoltageChange = () => {
|
||||||
|
const selectedInGroup = harmonicVoltageValues.value.filter(v => indicator.value.includes(v))
|
||||||
|
checkAll1.value =
|
||||||
|
selectedInGroup.length == harmonicVoltageValues.value.length && harmonicVoltageValues.value.length > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// 谐波电流分组内值变化时,更新全选状态
|
||||||
|
const handleHarmonicCurrentChange = () => {
|
||||||
|
const selectedInGroup = harmonicCurrentValues.value.filter(v => indicator.value.includes(v))
|
||||||
|
checkAll2.value =
|
||||||
|
selectedInGroup.length == harmonicCurrentValues.value.length && harmonicCurrentValues.value.length > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// 间谐波电压分组内值变化时,更新全选状态
|
||||||
|
const handleInterharmonicVoltageChange = () => {
|
||||||
|
const selectedInGroup = interharmonicVoltageValues.value.filter(v => indicator.value.includes(v))
|
||||||
|
|
||||||
|
checkAll3.value =
|
||||||
|
selectedInGroup.length == interharmonicVoltageValues.value.length && interharmonicVoltageValues.value.length > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
const tableStore = new TableStore({
|
||||||
|
showPage: false,
|
||||||
|
url: '/cs-harmonic-boot/csHarmonicPlan/list',
|
||||||
|
method: 'GET',
|
||||||
|
publicHeight: 70,
|
||||||
|
column: [
|
||||||
|
{ title: '方案名称', field: 'name', align: 'center' },
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
fixed: 'right',
|
||||||
|
align: 'center',
|
||||||
|
width: '100',
|
||||||
|
render: 'buttons',
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
name: 'edit',
|
||||||
|
title: '编辑',
|
||||||
|
type: 'primary',
|
||||||
|
icon: 'el-icon-EditPen',
|
||||||
|
render: 'basicButton',
|
||||||
|
|
||||||
|
click: row => {
|
||||||
|
openDialog('edit', row)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'del',
|
||||||
|
title: '删除',
|
||||||
|
type: 'danger',
|
||||||
|
icon: 'el-icon-Delete',
|
||||||
|
render: 'confirmButton',
|
||||||
|
popconfirm: {
|
||||||
|
confirmButtonText: '确认',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
confirmButtonType: 'danger',
|
||||||
|
title: '确定删除该角色吗?'
|
||||||
|
},
|
||||||
|
click: row => {
|
||||||
|
deletePlan([row.id]).then(() => {
|
||||||
|
ElMessage.success('删除成功')
|
||||||
|
tableStore.index()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
beforeSearchFun: () => {},
|
||||||
|
loadCallback: () => {
|
||||||
|
tableRef.value.getRef().setCurrentRow(tableStore.table.data[0])
|
||||||
|
currentChange({
|
||||||
|
row: tableStore.table.data[0]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
tableStore.table.params.searchValue = ''
|
||||||
|
getCldTree().then(res => {
|
||||||
|
res.data?.children.map((item: any) => {
|
||||||
|
item.icon = 'el-icon-HomeFilled'
|
||||||
|
item.color = config.getColorVal('elementUiPrimary')
|
||||||
|
item.children.forEach((item: any) => {
|
||||||
|
item.icon = 'el-icon-List'
|
||||||
|
item.color = config.getColorVal('elementUiPrimary')
|
||||||
|
item.children.forEach((item2: any) => {
|
||||||
|
item2.icon = 'el-icon-Platform'
|
||||||
|
item2.color = item2.comFlag == 2 ? config.getColorVal('elementUiPrimary') : '#e26257 !important'
|
||||||
|
item2.children.forEach((item3: any) => {
|
||||||
|
item3.icon = 'el-icon-Platform'
|
||||||
|
item3.color = item3.comFlag == 2 ? config.getColorVal('elementUiPrimary') : '#e26257 !important'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
menuTree.value = filterTreeKeepPath(res.data.children)
|
||||||
|
})
|
||||||
|
provide('tableStore', tableStore)
|
||||||
|
const filterTreeKeepPath = (treeData: any) => {
|
||||||
|
const result = []
|
||||||
|
|
||||||
|
for (const node of treeData) {
|
||||||
|
// 递归处理子节点
|
||||||
|
const filteredChildren: any = node.children?.length ? filterTreeKeepPath(node.children) : []
|
||||||
|
|
||||||
|
// 如果当前节点 level == 3,或者子节点中有符合条件的数据
|
||||||
|
if (node.level == 3 || filteredChildren.length > 0) {
|
||||||
|
result.push({
|
||||||
|
...node,
|
||||||
|
children: filteredChildren
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
// 打开弹框
|
||||||
|
const openDialog = (type: string, row?: any) => {
|
||||||
|
if (type == 'add') {
|
||||||
|
dialogTitle.value = '新增方案'
|
||||||
|
formData.value = {
|
||||||
|
id: '',
|
||||||
|
name: '',
|
||||||
|
lineList: [],
|
||||||
|
harmonicTarget: '',
|
||||||
|
sort: 0
|
||||||
|
}
|
||||||
|
} else if (type == 'edit') {
|
||||||
|
dialogTitle.value = '编辑方案'
|
||||||
|
formData.value = {
|
||||||
|
id: row.id,
|
||||||
|
lineList: row.lineList,
|
||||||
|
harmonicTarget: row.harmonicTarget,
|
||||||
|
sort: row.sort,
|
||||||
|
name: row.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dialogVisible.value = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭弹框
|
||||||
|
const handleClose = () => {
|
||||||
|
dialogVisible.value = false
|
||||||
|
formRef.value?.resetFields()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提交表单
|
||||||
|
const submitForm = async () => {
|
||||||
|
await formRef.value?.validate()
|
||||||
|
if (dialogTitle.value == '新增方案') {
|
||||||
|
await save({
|
||||||
|
harmonicTarget: '',
|
||||||
|
id: '',
|
||||||
|
lineList: [],
|
||||||
|
name: formData.value.name,
|
||||||
|
sort: formData.value.sort
|
||||||
|
}).then((res: any) => {
|
||||||
|
ElMessage.success(`${dialogTitle.value}成功`)
|
||||||
|
dialogVisible.value = false
|
||||||
|
tableStore.index() // 刷新列表
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
await update({
|
||||||
|
harmonicTarget: formData.value.harmonicTarget,
|
||||||
|
id: formData.value.id,
|
||||||
|
lineList: formData.value.lineList,
|
||||||
|
name: formData.value.name,
|
||||||
|
sort: formData.value.sort
|
||||||
|
}).then((res: any) => {
|
||||||
|
ElMessage.success(`${dialogTitle.value}成功`)
|
||||||
|
dialogVisible.value = false
|
||||||
|
tableStore.index() // 刷新列表
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 模拟保存成功
|
||||||
|
}
|
||||||
|
|
||||||
|
// 保存指标
|
||||||
|
const saveIndicator = () => {
|
||||||
|
// TODO: 调用保存指标接口
|
||||||
|
loading.value = true
|
||||||
|
update({
|
||||||
|
harmonicTarget: indicator.value.join(','),
|
||||||
|
id: copyRow.value.id,
|
||||||
|
lineList: treeRef.value.treeRef
|
||||||
|
.getCheckedNodes(false, true)
|
||||||
|
.filter(item => item.level == 3)
|
||||||
|
.map((node: any) => node.id),
|
||||||
|
name: copyRow.value.name,
|
||||||
|
sort: copyRow.value.sort
|
||||||
|
})
|
||||||
|
.then((res: any) => {
|
||||||
|
ElMessage.success(`保存成功`)
|
||||||
|
loading.value = false
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
loading.value = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const currentChange = (data: any) => {
|
||||||
|
getById({ id: data.row.id }).then((res: any) => {
|
||||||
|
checkStrictly.value = true
|
||||||
|
indicator.value = res.data.harmonicTarget.split(',')
|
||||||
|
lineList.value = res.data.lineList || []
|
||||||
|
copyRow.value = res.data
|
||||||
|
treeRef.value.treeRef.setCheckedKeys(lineList.value)
|
||||||
|
setTimeout(() => {
|
||||||
|
handleInterharmonicVoltageChange()
|
||||||
|
handleHarmonicCurrentChange()
|
||||||
|
handleHarmonicVoltageChange()
|
||||||
|
checkStrictly.value = false
|
||||||
|
}, 100)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
tableStore.index()
|
||||||
|
})
|
||||||
|
|
||||||
|
const addRole = () => {
|
||||||
|
openDialog('add')
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
:deep(.el-tabs--border-card > .el-tabs__content) {
|
||||||
|
padding: 0px !important;
|
||||||
|
}
|
||||||
|
.df {
|
||||||
|
display: flex;
|
||||||
|
.title {
|
||||||
|
width: 125px;
|
||||||
|
}
|
||||||
|
:deep(.el-checkbox) {
|
||||||
|
width: 70px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.custom-table-header {
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
.borderBox {
|
||||||
|
border: 1px solid var(--el-border-color);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user