微调
This commit is contained in:
@@ -67,14 +67,14 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
|
||||
maxErrorValue: '±1%'
|
||||
},
|
||||
{
|
||||
measured: '电压波动幅值',
|
||||
measured: '电压波动/电压幅值',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '',
|
||||
maxErrorValue: '±0.2%Un'
|
||||
},
|
||||
{
|
||||
measured: '电压波动持续时间',
|
||||
measured: '电压波动/持续时间',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'时间',
|
||||
condition: '',
|
||||
@@ -193,14 +193,14 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
|
||||
maxErrorValue: '±1%'
|
||||
},
|
||||
{
|
||||
measured: '暂态电压幅值',
|
||||
measured: '电压暂降、电压暂升和短时中断/电压幅值',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '',
|
||||
maxErrorValue: '±0.2%Un'
|
||||
},
|
||||
{
|
||||
measured: '暂态持续时间',
|
||||
measured: '电压暂降、电压暂升和短时中断/持续时间',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'时间',
|
||||
condition: '',
|
||||
|
||||
@@ -126,6 +126,15 @@ const handleChange = (unit: string) => {
|
||||
endDate.value = new Date()
|
||||
}
|
||||
timeUnit.value = unit
|
||||
|
||||
// 确保开始时间和结束时间不为空
|
||||
if (!startDate.value) {
|
||||
startDate.value = new Date()
|
||||
}
|
||||
if (!endDate.value) {
|
||||
endDate.value = new Date()
|
||||
}
|
||||
|
||||
emitDateChange() // 变化时也发出更新事件
|
||||
updateNextButtonStatus()
|
||||
}
|
||||
@@ -172,7 +181,13 @@ const updateDateRange = () => {
|
||||
// endDate.value.setHours(23, 59, 59, 999); // 设置结束时间为今天的23:59:59.999
|
||||
// }
|
||||
}
|
||||
|
||||
// 确保开始时间和结束时间不为空
|
||||
if (!startDate.value) {
|
||||
startDate.value = new Date()
|
||||
}
|
||||
if (!endDate.value) {
|
||||
endDate.value = new Date()
|
||||
}
|
||||
|
||||
updateNextButtonStatus()
|
||||
}
|
||||
@@ -285,7 +300,10 @@ const disableEndDate = (date: Date) => {
|
||||
|
||||
|
||||
// 格式化日期yyyy-mm-dd
|
||||
function formatDate(date:Date) {
|
||||
function formatDate(date: Date | null): string {
|
||||
if (!date) {
|
||||
return '';
|
||||
}
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
|
||||
@@ -91,6 +91,22 @@ const columns = reactive<ColumnProps<Role.RoleBO>[]>([
|
||||
search: { el: 'input' },
|
||||
minWidth: 200,
|
||||
},
|
||||
{
|
||||
prop: 'type',
|
||||
label: '类型',
|
||||
minWidth: 200,
|
||||
render: (scope) => {
|
||||
const typeMap: { [key: number]: { label: string; type: string } } = {
|
||||
0: { label: '超级管理员', type: 'primary' },
|
||||
1: { label: '管理员角色', type: 'success' },
|
||||
2: { label: '普通角色', type: 'info' },
|
||||
};
|
||||
const typeInfo = typeMap[scope.row.type] || { label: '未知', type: 'danger' };
|
||||
return (
|
||||
<el-tag type={typeInfo.type}>{typeInfo.label}</el-tag>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
prop: 'remark',
|
||||
label: '描述',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<el-dialog :title="dialogTitle" v-model='dialogVisible' @close="close" v-bind="dialogBig">
|
||||
<el-tabs type="border-card">
|
||||
<el-tab-pane label="设备台账信息">
|
||||
<div class="form-grid">
|
||||
<div >
|
||||
<el-form :model='formContent' ref='dialogFormRef' :rules='rules' :disabled="false">
|
||||
<el-divider >设备信息</el-divider>
|
||||
<el-row :gutter="24" >
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<ProTable
|
||||
ref='proTable'
|
||||
:columns='columns'
|
||||
:style="{ height: '326px',maxHeight: '400px',overflow:'hidden'}"
|
||||
>
|
||||
<!-- 表格 header 按钮 -->
|
||||
<template #tableHeader='scope'>
|
||||
@@ -30,7 +31,10 @@
|
||||
import { type ColumnProps } from '@/components/ProTable/interface'
|
||||
import { type Monitor } from '@/api/device/interface/monitor'
|
||||
|
||||
|
||||
// 定义 props
|
||||
const props = defineProps<{
|
||||
MonIsShow: boolean;
|
||||
}>();
|
||||
|
||||
|
||||
// 表格配置项
|
||||
|
||||
@@ -16,10 +16,8 @@
|
||||
<el-table-column prop="condition" label="测量条件" />
|
||||
<el-table-column prop="maxErrorValue" label="最大误差" />
|
||||
</el-table>
|
||||
<div class="notes-container">
|
||||
<label>注1:UN:测量的标称电压;IN:测量仪器的标称电流;Uh和Ih:测量值,h表示谐波次数。</label>
|
||||
<label>注2:对于数字式接入监测终端,与电能质量信号采集单元联合准确度需满足本表要求。</label>
|
||||
</div>
|
||||
<label>注1:UN:测量的标称电压;IN:测量仪器的标称电流;Uh和Ih:测量值,h表示谐波次数。</label>
|
||||
<label>注2:对于数字式接入监测终端,与电能质量信号采集单元联合准确度需满足本表要求。</label>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@@ -65,6 +63,7 @@ const spanMethod = ({
|
||||
rowIndex,
|
||||
columnIndex,
|
||||
}: SpanMethodProps) => {
|
||||
|
||||
if (columnIndex === 0 ) { // 检查是否为第一列
|
||||
if (rowIndex === 2 ||rowIndex === 21) { // 检查是否为第三行
|
||||
return {
|
||||
@@ -93,6 +92,37 @@ const spanMethod = ({
|
||||
};
|
||||
}
|
||||
}
|
||||
if (columnIndex === 1 ){
|
||||
if (rowIndex === 2
|
||||
|| rowIndex === 8|| rowIndex === 10|| rowIndex === 12|| rowIndex === 14
|
||||
|| rowIndex === 16|| rowIndex === 18
|
||||
|| rowIndex === 21) {
|
||||
return {
|
||||
rowspan: 2,
|
||||
colspan: 1,
|
||||
};
|
||||
}
|
||||
else if (rowIndex === 3
|
||||
|| rowIndex === 9|| rowIndex === 11|| rowIndex === 13|| rowIndex === 15
|
||||
|| rowIndex === 17|| rowIndex === 19
|
||||
|| rowIndex === 22) { // 检查是否为第四行
|
||||
return {
|
||||
rowspan: 0, // 不显示该单元格
|
||||
colspan: 0,
|
||||
};
|
||||
}
|
||||
// if (rowIndex === 0 ) {
|
||||
// return {
|
||||
// rowspan: 25,
|
||||
// colspan: 1,
|
||||
// };
|
||||
// } else if (rowIndex != 0) { // 检查是否为第四行
|
||||
// return {
|
||||
// rowspan: 0, // 不显示该单元格
|
||||
// colspan: 0,
|
||||
// };
|
||||
// }
|
||||
}
|
||||
else if(columnIndex === 2) { // 检查是否为第三列
|
||||
if (rowIndex === 2
|
||||
|| rowIndex === 8|| rowIndex === 10|| rowIndex === 12|| rowIndex === 14
|
||||
@@ -150,5 +180,11 @@ const props = defineProps<{
|
||||
|
||||
.notes-container {
|
||||
text-align: center;
|
||||
width: 100%; /* 确保注释容器宽度与表格一致 */
|
||||
}
|
||||
|
||||
.notes-container label {
|
||||
display: block; /* 使每个label标签上下排列 */
|
||||
margin-bottom: 10px; /* 调整两个label之间的间距 */
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -8,49 +8,51 @@
|
||||
:header-cell-style="{ textAlign: 'center',backgroundColor: '#003078',color: '#fff' } "
|
||||
:cell-style="{ textAlign: 'center' }"
|
||||
style="width: 100%"
|
||||
:style="{ height: '250px',maxHeight: '400px',overflow:'hidden'}"
|
||||
@selection-change="handleSelectionChange" >
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="nextId" label="序号" width="60" />
|
||||
<el-table-column prop="type" label="电能质量检测指标类型" width="181">
|
||||
<el-table-column prop="type" label="电能质量检测指标类型" min-width="200">
|
||||
<template #default="{ row }">
|
||||
<el-select v-model="row.type" placeholder="选择指标类型" >
|
||||
<el-cascader :options="options" v-model="row.type"/>
|
||||
<!-- <el-select v-model="row.type" placeholder="选择指标类型" >
|
||||
<el-option v-for="item in dictStore.getDictData('Pq_Test_Type')"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"/>
|
||||
</el-select>
|
||||
</el-select> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="起止范围" >
|
||||
<el-table-column label="起始">
|
||||
<el-table-column label="起始" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-row type="flex">
|
||||
<el-col :span="14">
|
||||
<el-row type="flex" :gutter="24">
|
||||
<el-col :span="12">
|
||||
<el-select v-model="row.startFlag" placeholder="选择起始值" style="width: 70px;">
|
||||
<el-option label="无" :value="2"></el-option>
|
||||
<el-option label=">=" :value="1"></el-option>
|
||||
<el-option label=">" :value="0"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-input v-model= "row.startValue" style="width: 70px;"
|
||||
<el-col :span="12">
|
||||
<el-input v-model= "row.startValue" style="width: 60px;"
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结束">
|
||||
<el-table-column label="结束" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-row type="flex" >
|
||||
<el-col :span="14">
|
||||
<el-row type="flex" :gutter="24" >
|
||||
<el-col :span="12">
|
||||
<el-select v-model="row.endFlag" placeholder="选择结束值" style="width: 70px;">
|
||||
<el-option label="无" :value="2"></el-option>
|
||||
<el-option label="<=" :value="1"></el-option>
|
||||
<el-option label="<" :value="0"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-input v-model= "row.endValue" style="width: 70px;"/>
|
||||
<el-col :span="12">
|
||||
<el-input v-model= "row.endValue" style="width: 60px;"/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
@@ -74,7 +76,7 @@
|
||||
<el-input v-model= "row.maxErrorValue" style="width: 70px;"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="误差类型">
|
||||
<el-table-column label="误差类型" width="160">
|
||||
<template #default="{ row }">
|
||||
<el-select v-model="row.errorValueType" placeholder="选择误差类型">
|
||||
<el-option
|
||||
@@ -101,10 +103,14 @@
|
||||
import { type ErrorSystem } from '@/api/device/interface/error';
|
||||
import { useDictStore, } from '@/stores/modules/dict'
|
||||
import {CirclePlus, Delete, EditPen,CopyDocument} from '@element-plus/icons-vue'
|
||||
import { FormItemRule } from 'element-plus';
|
||||
import { type CascaderOption, type FormItemRule } from 'element-plus';
|
||||
import { onMounted, type PropType, Ref, ref, watch } from 'vue';
|
||||
import { defineEmits } from 'vue';
|
||||
import ProTable from '@/components/ProTable/index.vue'
|
||||
import {
|
||||
getDictTreeList,
|
||||
} from '@/api/system/dictionary/dictTree'
|
||||
import { type Dict } from '@/api/system/dictionary/interface';
|
||||
const emit = defineEmits(['updateTableData']);
|
||||
const multipleSelection = ref<number[]>([])
|
||||
const dictStore = useDictStore()
|
||||
@@ -115,8 +121,46 @@
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
const options: Ref<CascaderOption[]> = ref([]); // 修改这里
|
||||
|
||||
onMounted(async () => {
|
||||
const dictCode = ''; // 替换为实际需要的字典代码
|
||||
const resDictTree: Dict.ResDictTree = {
|
||||
name: dictCode,
|
||||
id: '',
|
||||
pid: '',
|
||||
pids: '',
|
||||
code: '',
|
||||
sort: 0
|
||||
};
|
||||
const result = await getDictTreeList(resDictTree);
|
||||
const allOptions = convertToOptions(result.data as Dict.ResDictTree[]);
|
||||
|
||||
// 提取第二层节点
|
||||
const secondLevelOptions: any[] = [];
|
||||
allOptions.forEach(option => {
|
||||
if (option.children && option.children.length > 0) {
|
||||
secondLevelOptions.push(...option.children);
|
||||
}
|
||||
});
|
||||
|
||||
// 将第二层节点赋值给 options.value
|
||||
options.value = secondLevelOptions;
|
||||
|
||||
})
|
||||
|
||||
// 转换函数
|
||||
const convertToOptions = (dictTree: Dict.ResDictTree[]): CascaderOption[] => {
|
||||
return dictTree.map(item => ({
|
||||
value: item.id,
|
||||
label: item.name,
|
||||
children: item.children ? convertToOptions(item.children) : undefined
|
||||
}));
|
||||
};
|
||||
|
||||
// 监听 props.tableData 的变化,确保每次数据变化时都重新设置 nextId
|
||||
watch(() => props.tableData, (newTableData) => {
|
||||
watch(() => props.tableData, async (newTableData) => {
|
||||
for (let i = 0; i < newTableData.length; i++) {
|
||||
newTableData[i].nextId = i + 1;
|
||||
}
|
||||
@@ -142,6 +186,7 @@ watch(() => props.tableData, (newTableData) => {
|
||||
maxErrorValue: 0,
|
||||
errorValueType: ""
|
||||
};
|
||||
|
||||
emit('updateTableData', [...props.tableData, newRow]);
|
||||
};
|
||||
|
||||
|
||||
@@ -6,24 +6,24 @@
|
||||
<el-form :model="formContent" ref='dialogFormRef' :rules='rules'>
|
||||
<el-row :gutter="24" >
|
||||
<el-col :span="8">
|
||||
<el-form-item label="误差体系名称" prop="name" :label-width="110">
|
||||
<el-form-item label="误差体系名称" prop="name" :label-width="150">
|
||||
<el-input v-model='formContent.name' placeholder="标准号+年份+设备等级"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="参照标准名称" prop="standardName" :label-width="110">
|
||||
<el-form-item label="参照标准名称" prop="standardName" :label-width="150">
|
||||
<el-input v-model='formContent.standardName'/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="发布时间" prop="standardTime" :label-width="110">
|
||||
<el-form-item label="发布时间" prop="standardTime" :label-width="150">
|
||||
<el-input v-model="formContent.standardTime" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" >
|
||||
<el-col :span="8">
|
||||
<el-form-item label="适用设备等级" prop="devLevel" :label-width="110">
|
||||
<el-form-item label="适用设备等级" prop="devLevel" :label-width="150">
|
||||
<el-select v-model='formContent.devLevel' placeholder="请选择设备等级">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Dev_Level')"
|
||||
@@ -36,7 +36,7 @@
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="状态" prop="enable" :label-width="110">
|
||||
<el-form-item label="状态" prop="enable" :label-width="150">
|
||||
<el-select v-model='formContent.enable' placeholder="请选择状态">
|
||||
<el-option label="启用" :value="1"></el-option>
|
||||
<el-option label="不启用" :value="0"></el-option>
|
||||
@@ -137,6 +137,7 @@
|
||||
try {
|
||||
dialogFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
|
||||
formContent.value.pqErrSysDtlsList = tableData.value
|
||||
if (formContent.value.id) {
|
||||
await updatePqErrSys(formContent.value);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<el-dialog :title="dialogTitle" v-model='dialogVisible' @close="close" v-bind="dialogBig" >
|
||||
<div height="800">
|
||||
<div >
|
||||
<el-form :model="formContent" ref='dialogFormRef' :rules='rules' >
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
|
||||
Reference in New Issue
Block a user