3列弹出框

This commit is contained in:
sjl
2024-12-05 16:23:20 +08:00
parent 0494822ff4
commit 11c32ed360
10 changed files with 138 additions and 459 deletions

View File

@@ -33,7 +33,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
const errordetail = ref<ErrorSystem.Error_detail[]>([
{
col1: '电压偏差',
col2: '电压偏差',
col2: '',
deviceLevel: 'A',
measurementType:'电压',
condition: '10%~150%标称电压',
@@ -41,7 +41,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'频率偏差',
col2: '频率偏差',
col2: '',
deviceLevel: 'A',
measurementType:'频率',
condition: '42.5~57.5 Hz',
@@ -49,7 +49,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'三相不平衡度',
col2: '三相不平衡度',
col2: '',
deviceLevel: 'A',
measurementType:'电压',
condition: '0.5%~5%',
@@ -57,7 +57,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'三相不平衡度',
col2: '三相不平衡度',
col2: '',
deviceLevel: 'A',
measurementType:'电压',
condition: '5%(不包含)~ 40%',
@@ -65,7 +65,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'三相不平衡度',
col2: '三相不平衡度',
col2: '',
deviceLevel: 'A',
measurementType:'电流',
condition: '',
@@ -89,7 +89,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'闪变',
col2: '闪变',
col2: '',
deviceLevel: 'A',
measurementType:'短时间闪变',
condition: 'Pst0.2~10',
@@ -97,7 +97,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'谐波和间谐波',
col2: '谐波和间谐波',
col2: '',
deviceLevel: 'A',
measurementType:'电压',
condition: 'Uh≥1%Un',
@@ -105,7 +105,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'谐波和间谐波',
col2: '谐波和间谐波',
col2: '',
deviceLevel: 'A',
measurementType:'电压',
condition: 'Uh1%Un',
@@ -113,7 +113,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'谐波和间谐波',
col2: '谐波和间谐波',
col2: '',
deviceLevel: 'A',
measurementType:'电流',
condition: 'In≥3%In',
@@ -121,7 +121,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'谐波和间谐波',
col2: '谐波和间谐波',
col2: '',
deviceLevel: 'A',
measurementType:'电流',
condition: 'In3%In',
@@ -129,7 +129,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'谐波和间谐波',
col2: '谐波和间谐波',
col2: '',
deviceLevel: 'A',
measurementType:'相角',
condition: '',
@@ -137,7 +137,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'谐波和间谐波',
col2: '谐波和间谐波',
col2: '',
deviceLevel: 'A',
measurementType:'相角',
condition: '',
@@ -145,7 +145,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'谐波和间谐波',
col2: '谐波和间谐波',
col2: '',
deviceLevel: 'A',
measurementType:'功率',
condition: 'Ph≥150W',
@@ -153,7 +153,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'谐波和间谐波',
col2: '谐波和间谐波',
col2: '',
deviceLevel: 'A',
measurementType:'功率',
condition: 'Ph150W',
@@ -161,7 +161,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'高频次谐波',
col2: '高频次谐波',
col2: '',
deviceLevel: 'A',
measurementType:'电压',
condition: 'Uh≥1%Un',
@@ -169,7 +169,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'高频次谐波',
col2: '高频次谐波',
col2: '',
deviceLevel: 'A',
measurementType:'电压',
condition: 'Uh1%Un',
@@ -177,7 +177,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'高频次谐波',
col2: '高频次谐波',
col2: '',
deviceLevel: 'A',
measurementType:'电流',
condition: 'In≥3%In',
@@ -185,7 +185,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'高频次谐波',
col2: '高频次谐波',
col2: '',
deviceLevel: 'A',
measurementType:'电流',
condition: 'In3%In',
@@ -193,7 +193,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'功率',
col2: '功率',
col2: '',
deviceLevel: 'A',
measurementType:'功率',
condition: '',
@@ -201,7 +201,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'电流',
col2: '电流',
col2: '',
deviceLevel: 'A',
measurementType:'电流',
condition: 'I≥0.05In',
@@ -209,7 +209,7 @@ const errordata = ref<ErrorSystem.ErrorSystemList[]>([
},
{
col1:'电流',
col2: '电流',
col2: '',
deviceLevel: 'A',
measurementType:'电流',
condition: '0.01In≤I0.05In',

View File

@@ -313,7 +313,7 @@
border: 1px solid #dcdfe6;
border-radius: 4px;
line-height: 40px;
width: 100%;
width: 110%;
height: 35px;
padding-inline-start: 0px;
padding-left: 10px;

View File

@@ -3,16 +3,12 @@
<el-tabs type="border-card">
<el-tab-pane label="设备台账信息">
<div >
<el-form :model='formContent' ref='dialogFormRef' :rules='rules' :disabled="false">
<el-form :model='formContent' ref='dialogFormRef' :rules='rules' :disabled="false" label-width="auto" class="form-three">
<el-divider >设备信息</el-divider>
<el-row :gutter="24" >
<el-col :span="8">
<el-form-item label="设备名称" prop="name" :label-width="100">
<el-form-item label="设备名称" prop="name" >
<el-input v-model='formContent.name' placeholder="请输入设备名称"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='设备类型' prop='devType' :label-width="100">
<el-form-item label='设备类型' prop='devType' >
<el-select v-model="formContent.devType" clearable placeholder="请选择设备类型">
<el-option
v-for="item in dictStore.getDictData('Dev_Type')"
@@ -22,9 +18,7 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='设备模式' prop='pattern' :label-width="100">
<el-form-item label='设备模式' prop='pattern' >
<el-select v-model="formContent.pattern" clearable placeholder="请选择设备模式" disabled>
<el-option
v-for="item in dictStore.getDictData('Pattern')"
@@ -34,13 +28,7 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" >
<el-col :span="8">
<el-form-item label='设备厂家' prop='manufacturer' :label-width="100">
<el-form-item label='设备厂家' prop='manufacturer' >
<el-select v-model="formContent.manufacturer" clearable placeholder="请选择生产厂商">
<el-option
v-for="item in dictStore.getDictData('Dev_Manufacturers')"
@@ -50,40 +38,24 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出厂日期" prop="createDate" :label-width="100">
<el-form-item label="出厂日期" prop="createDate" >
<el-date-picker
v-model="formContent.createDate"
placeholder="请选择出厂日期"
:disabled-date="disabledDate"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="设备序列号" prop="createId" :label-width="100">
<el-form-item label="设备序列号" prop="createId" >
<el-input v-model="formContent.createId" placeholder="请输入设备序列号"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" >
<el-col :span="8">
<el-form-item label="固件版本" prop="hardwareVersion" :label-width="100">
<el-form-item label="固件版本" prop="hardwareVersion" >
<el-input v-model="formContent.hardwareVersion" placeholder="请输入固件版本"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="软件版本" prop="softwareVersion" :label-width="100">
<el-form-item label="软件版本" prop="softwareVersion" >
<el-input v-model="formContent.softwareVersion" placeholder="请输入软件版本"/>
</el-form-item>
</el-col>
</el-row>
<el-divider >参数信息</el-divider>
<el-row :gutter="24" >
<el-col :span="8">
<el-form-item label="设备通道数" prop="devChns" :label-width="100">
<el-form-item label="设备通道数" prop="devChns" >
<el-select v-model="formContent.devChns" clearable placeholder="请选择设备通道数">
<el-option
v-for="item in dictStore.getDictData('Dev_Chns')"
@@ -93,9 +65,7 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="额定电压(V)" prop="devVolt" :label-width="100">
<el-form-item label="额定电压(V)" prop="devVolt" >
<el-select v-model="formContent.devVolt" clearable placeholder="请选择额定电压">
<el-option
v-for="item in dictStore.getDictData('Dev_Volt')"
@@ -105,9 +75,7 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="额定电流(A)" prop="devCurr" :label-width="100">
<el-form-item label="额定电流(A)" prop="devCurr" >
<el-select v-model="formContent.devCurr" clearable placeholder="请选择额定电流">
<el-option
v-for="item in dictStore.getDictData('Dev_Curr')"
@@ -117,12 +85,8 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" >
<el-col :span="8">
<el-form-item label='通讯协议' prop='protocol' :label-width="100">
<el-select v-model="formContent.protocol" clearable placeholder="请选择通讯协议" @change="handleEncryptionChange">
<el-form-item label='通讯协议' prop='protocol' >
<el-select v-model="formContent.protocol" clearable placeholder="请选择通讯协议" >
<el-option
v-for="item in dictStore.getDictData('Protocol')"
:key="item.id"
@@ -131,74 +95,43 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="IP地址" prop="ip" :label-width="100">
<el-form-item label="IP地址" prop="ip" >
<IPAddress v-model:value="formContent.ip"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="端口号" prop="port" placeholder="请输入端口号" :label-width="100">
<el-form-item label="端口号" prop="port" placeholder="请输入端口号" >
<el-input v-model="formContent.port" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" >
<el-col :span="8">
<el-form-item label='是否加密' prop='encryptionFlag' :label-width="100">
<!-- <el-select v-model="formContent.encryptionFlag" clearable placeholder="请选择是否加密" @change="handleEncryptionChange">-->
<el-form-item label='是否加密' prop='encryptionFlag' >
<el-select v-model="formContent.encryptionFlag" clearable placeholder="请选择是否加密">
<el-option label="是" :value="1"></el-option>
<el-option label="否" :value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-if="formContent.encryptionFlag">
<el-form-item label='识别码' prop='series' clearable :label-width="100">
<el-form-item label='识别码' prop='series' clearable v-if="formContent.encryptionFlag">
<el-input v-model='formContent.series' placeholder="请输入识别码" show-password/>
</el-form-item>
</el-col>
<el-col :span="8" v-if="formContent.encryptionFlag">
<el-form-item label='密钥' prop='devKey' clearable :label-width="100">
<el-form-item label='密钥' prop='devKey' clearable v-if="formContent.encryptionFlag">
<el-input v-model='formContent.devKey' placeholder="请输入密钥" show-password/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" v-if="DevIsShow">
<el-col :span="8">
<el-form-item label='样品编号' prop='sampleID' clearable :label-width="100">
<el-form-item label='样品编号' prop='sampleID' clearable v-if="DevIsShow">
<el-input v-model='formContent.sampleID' placeholder="请输入样品编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='送样日期' prop='arrivedDate' :label-width="100">
<el-form-item label='送样日期' prop='arrivedDate' >
<el-date-picker
v-model="formContent.arrivedDate"
placeholder="请选择送样日期"
:disabled-date="disabledDate"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" v-if="MonIsShow">
<el-col :span="8">
<el-form-item label='所属地市' prop='cityName' clearable placeholder="请输入所属地市" :label-width="100">
<el-form-item label='所属地市' prop='cityName' clearable placeholder="请输入所属地市" v-if="MonIsShow">
<el-input v-model='formContent.cityName' />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='所属供电公司' prop='gDName' clearable placeholder="请输入所属供电公司" :label-width="100">
<el-form-item label='所属供电公司' prop='gDName' clearable placeholder="请输入所属供电公司" v-if="MonIsShow">
<el-input v-model='formContent.gDName' />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='所属电站' prop='subName' clearable placeholder="请输入所属电站" :label-width="100">
<el-form-item label='所属电站' prop='subName' clearable placeholder="请输入所属电站" v-if="MonIsShow">
<el-input v-model='formContent.subName' />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</el-tab-pane>

View File

@@ -12,8 +12,8 @@
class="custom-table"
>
<el-table-column label="被测量">
<el-table-column prop="col1"/>
<el-table-column prop="col2"/>
<el-table-column prop="col1" width="120"/>
<el-table-column prop="col2" width="100"/>
</el-table-column>
<el-table-column prop="deviceLevel" label="检测装置级别" />
<el-table-column prop="measurementType" label="测量类型" />
@@ -27,13 +27,12 @@
</template>
<script lang="ts" setup name="IndicatorTypeDialog">
import { defineProps, defineEmits, reactive,watch,ref,computed } from 'vue';
import { defineProps, defineEmits, reactive,watch,ref,computed, type CSSProperties } from 'vue';
import { dialogBig} from '@/utils/elementBind'
import type { ColumnProps } from '@/components/ProTable/interface'
import type { ErrorSystem } from '@/api/device/interface/error'
import errorDataList from '@/api/device/error/errorData'
import type { TableColumnCtx } from 'element-plus'
import { da } from 'element-plus/es/locale';
const errorData = errorDataList.errordetail
const dialogTitle = ref()
@@ -61,16 +60,17 @@ interface SpanMethodProps {
columnIndex: number
}
const rowClass = ({row, column, rowIndex, columnIndex}) => {
let res = {
textAlign: 'center', backgroundColor: '#003078', color: '#fff'
}
if (rowIndex === 1) {
res = {...res, display: 'none'}
return res
}
return res
}
const rowClass = ({ row, column, rowIndex, columnIndex }: { row: any; column: any; rowIndex: number; columnIndex: number }): CSSProperties => {
let res: CSSProperties = {
textAlign: 'center' as CSSProperties['textAlign'],
backgroundColor: '#003078',
color: '#fff'
}
if (rowIndex === 1) {
res = { ...res, display: 'none' }
}
return res
}
const spanMethod = ({
row,
@@ -80,8 +80,8 @@ const spanMethod = ({
}: SpanMethodProps) => {
if (columnIndex === 0 ) { // 检查是否为第一列
if (rowIndex === 2 ||rowIndex === 21) { // 检查是否为第三行
if (rowIndex === 2||rowIndex === 5 ||rowIndex === 21||rowIndex === 23) { // 检查是否为第三行
return {
rowspan: 2, // 合并行数
colspan: 1, // 单元格列数
@@ -98,17 +98,19 @@ const spanMethod = ({
colspan: 1,
};
}
else if (rowIndex === 3 || rowIndex === 9 || rowIndex === 10|| rowIndex === 11
else if (rowIndex === 3 ||rowIndex === 6 ||rowIndex === 9 || rowIndex === 10|| rowIndex === 11
|| rowIndex === 12|| rowIndex === 13|| rowIndex === 14|| rowIndex === 15
|| rowIndex === 17 || rowIndex === 18|| rowIndex === 19
|| rowIndex === 22) { // 检查是否为第四行
|| rowIndex === 22 ||rowIndex === 24) { // 检查是否为第四行
return {
rowspan: 0, // 不显示该单元格
colspan: 0,
};
}
}
if (columnIndex === 1 || columnIndex === 2){
if (rowIndex === 2
|| rowIndex === 8|| rowIndex === 10|| rowIndex === 12|| rowIndex === 14
|| rowIndex === 16|| rowIndex === 18
@@ -127,17 +129,6 @@ const spanMethod = ({
colspan: 0,
};
}
// if (rowIndex === 0 ) {
// return {
// rowspan: 25,
// colspan: 1,
// };
// } else if (rowIndex != 0) { // 检查是否为第四行
// return {
// rowspan: 0, // 不显示该单元格
// colspan: 0,
// };
// }
}
};

View File

@@ -221,6 +221,7 @@ const deleteSelectedRows = () => {
display: flex;
justify-content: flex-start;
margin-bottom: 10px; /* 调整这里的值以增加或减少间距 */
margin-top: 10px;
}
.el-table th, .el-table td {

View File

@@ -2,53 +2,40 @@
<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">
<el-form :model="formContent" ref='dialogFormRef' :rules='rules'>
<el-row :gutter="24" >
<el-col :span="8">
<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="150">
<el-input v-model='formContent.standardName'/>
</el-form-item>
</el-col>
<el-col :span="8">
<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="150">
<el-select v-model='formContent.devLevel' placeholder="请选择设备等级">
<el-option
v-for="item in dictStore.getDictData('Dev_Level')"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<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>
</el-select>
</el-form-item>
</el-col>
</el-row>
<div >
<el-form :model="formContent" ref='dialogFormRef' :rules='rules' label-width="auto" class="form-three">
<el-form-item label="误差体系名称" prop="name" >
<el-input v-model='formContent.name' placeholder="标准号+年份+设备等级"/>
</el-form-item>
<el-form-item label="参照标准名称" prop="standardName" >
<el-input v-model='formContent.standardName'/>
</el-form-item>
<el-form-item label="发布时间" prop="standardTime" >
<el-input v-model="formContent.standardTime" />
</el-form-item>
<el-form-item label="适用设备等级" prop="devLevel" >
<el-select v-model='formContent.devLevel' placeholder="请选择设备等级">
<el-option
v-for="item in dictStore.getDictData('Dev_Level')"
:key="item.id"
:label="item.name"
:value="item.id"/>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="enable" >
<el-select v-model='formContent.enable' placeholder="请选择状态">
<el-option label="启用" :value="1"></el-option>
<el-option label="不启用" :value="0"></el-option>
</el-select>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
</el-tabs>
<ErrorSystemDetailTable :tableData="tableData" @updateTableData="handleTableDataUpdate"/>
<ErrorSystemDetailTable :tableData="tableData" @updateTableData="handleTableDataUpdate" />
<template #footer>
<div >
<el-button @click='close()'> </el-button>
@@ -184,22 +171,6 @@ const props = defineProps<{
}>()
</script>
<style>
.form-grid {
display: flex;
flex-direction: row; /* 横向排列 */
flex-wrap: wrap; /* 允许换行 */
}
.form-grid .el-form-item {
flex: 1 1 30%; /* 控件宽度 */
margin-right: 20px; /* 控件间距 */
}
.form-grid .el-form-item:last-child {
margin-right: 0; /* 最后一个控件不需要右边距 */
}
.el-tabs {
margin-bottom: 20px; /* 添加底部边距 */
}
</style>

View File

@@ -1,14 +1,10 @@
<template>
<el-dialog :title="dialogTitle" v-model='dialogVisible' @close="close" v-bind="dialogBig">
<div >
<el-form :model="formContent" ref='dialogFormRef' :rules='rules' :disabled="tableIsDisable">
<el-row :gutter="24">
<!-- <el-col :span="8">-->
<el-form :model="formContent" ref='dialogFormRef' :rules='rules' :disabled="tableIsDisable" label-width="auto" class="form-three">
<!-- <el-form-item label="检测源名称" prop="name" >-->
<!-- <el-input v-model='formContent.name' placeholder="检测源类型+设备类型+数字"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="8">
<el-form-item label="设备类型" prop="devType" >
<el-select v-model='formContent.devType' placeholder="请选择源型号">
<el-option
@@ -19,8 +15,6 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检测源类型" prop="type">
<el-select v-model='formContent.type' placeholder="请选择检测源类型">
<el-option
@@ -31,8 +25,6 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>

View File

@@ -16,7 +16,7 @@
</template>
<!-- 表格操作 -->
<template #operation='scope'>
<el-button type='primary' link :icon='View' @click="openDialog('view', scope.row)">查看</el-button>
<el-button v-auth.testSource="'view'" type='primary' link :icon='View' @click="openDialog('view', scope.row)">查看</el-button>
<el-button v-auth.testSource="'edit'" type='primary' link :icon='EditPen' @click="openDialog('edit', scope.row)">编辑</el-button>
<el-button v-auth.testSource="'delete'" type='primary' link :icon='Delete' @click='handleDelete(scope.row)'>删除</el-button>
</template>

View File

@@ -1,12 +1,8 @@
<template>
<el-dialog v-model='dialogVisible' :title='dialogTitle' v-bind="dialogBig" @close="close">
<el-form :model='formContent' ref='dialogFormRef' :rules='rules'>
<el-form :model='formContent' ref='dialogFormRef' :rules='rules' label-width="auto" class="form-three">
<el-divider>基础数据</el-divider>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label='数据模型' :label-width='140' prop='dataType'>
<el-form-item label='数据模型' prop='dataType'>
<el-select v-model="formContent.dataType" clearable placeholder="请选择数据模型">
<el-option
v-for="item in dictStore.getDictData('Cs_Data_Type')"
@@ -16,14 +12,10 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='指标名称' :label-width='140' prop='name'>
<el-form-item label='指标名称' prop='name'>
<el-input v-model='formContent.name' placeholder='请输入指标名称' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='相别' :label-width='140' prop='phase'>
<el-form-item label='相别' prop='phase'>
<el-select v-model="formContent.phase" clearable placeholder="请选择相别">
<el-option
v-for="item in dictStore.getDictData('phase')"
@@ -33,33 +25,19 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label='显示名称' :label-width='140' prop='showName'>
<el-form-item label='显示名称' prop='showName'>
<el-input v-model='formContent.showName' placeholder='请输入显示名称' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='别名' :label-width='140' prop='otherName'>
<el-form-item label='别名' prop='otherName'>
<el-input v-model='formContent.otherName' placeholder='请输入别名' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='单位' :label-width='140' prop='unit'>
<el-form-item label='单位' prop='unit'>
<el-select v-model="formContent.unit" clearable placeholder="请选择单位">
<el-option v-for="item in dictStore.getDictData('Unit_Type')" :key="item.id" :label="item.name"
:value="item.code"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label='指标数据类型' :label-width='140' prop='type'>
<el-form-item label='指标数据类型' prop='type'>
<el-select v-model="formContent.type" clearable placeholder="请选择指标数据类型">
<el-option
:label="'Number'"
@@ -75,22 +53,18 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='次数' :label-width='140'>
<el-row :gutter="20">
<el-col :span="11">
<el-input v-model="formContent.harmStart" placeholder="起始次数" autocomplete="off"/>
</el-col>
<el-col :span="2">-</el-col>
<el-col :span="11">
<el-input v-model="formContent.harmEnd" placeholder="结束次数" autocomplete="off"/>
</el-col>
</el-row>
<el-form-item label='次数'>
<el-row :gutter="10">
<el-col :span="11">
<el-input v-model="formContent.harmStart" placeholder="起始次数" autocomplete="off" width="100px" />
</el-col>
<el-col :span="2" style="text-align: center;"></el-col>
<el-col :span="11">
<el-input v-model="formContent.harmEnd" placeholder="结束次数" autocomplete="off" width="100px"/>
</el-col>
</el-row>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='数据统计类型' :label-width='140' prop='statMethod'>
<el-form-item label='数据统计类型' prop='statMethod'>
<el-select v-model="selectedStatMethods" multiple placeholder="请选择数据统计类型">
<el-option
v-for="item in dictStore.getDictData('Stat_Method')"
@@ -100,17 +74,11 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label='系统类别' :label-width='140' prop='systemType'>
<el-form-item label='系统类别' prop='systemType'>
<el-input v-model='formContent.systemType' placeholder='请输入系统类别' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='报表数据来源' :label-width='140' prop='resourcesId'>
<el-form-item label='报表数据来源' prop='resourcesId'>
<el-select v-model="formContent.resourcesId" clearable placeholder="请选择报表数据来源">
<el-option
v-for="item in dictStore.getDictData('Data_Day')"
@@ -120,9 +88,7 @@
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='数据表表名' :label-width='140' prop='classId'>
<el-form-item label='数据表表名' prop='classId'>
<el-select v-model="formContent.classId" clearable placeholder="请选择数据表表名">
<el-option
v-for="item in dictStore.getDictData('Data')"
@@ -132,22 +98,13 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label='限值字段名称' :label-width='140' prop='limitName'>
<el-form-item label='限值字段名称' prop='limitName'>
<el-input v-model='formContent.limitName' placeholder='请输入限值字段名称' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='限值表名' :label-width='140' prop='limitTable'>
<el-form-item label='限值表名' prop='limitTable'>
<el-input v-model='formContent.limitTable' placeholder='请输入限值表名' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='超标判断方式' :label-width='140' prop='formula'>
<el-form-item label='超标判断方式' prop='formula'>
<el-select v-model="formContent.formula" clearable placeholder="请选择超标判断方式">
<el-option
v-for="item in dictStore.getDictData('Limit_Value_Judgment')"
@@ -157,102 +114,58 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label='排序' :label-width='140'>
<el-input-number v-model='formContent.sort' :min='1' :max='999'/>
<el-form-item label='排序' >
<el-input-number v-model='formContent.sort' :min='1' :max='999' style="width: 300px;"/>
</el-form-item>
</el-col>
</el-row>
<el-divider>拓展数据</el-divider>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label='参数缺省值' :label-width='140' prop='defaultValue'>
<el-form-item label='参数缺省值' prop='defaultValue'>
<el-input v-model='formContent.defaultValue' placeholder='请输入参数缺省值' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='事件类别' :label-width='140' prop='eventType'>
<el-form-item label='事件类别' prop='eventType'>
<el-input v-model='formContent.eventType' placeholder='请输入事件类别' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='设置最大值' :label-width='140' prop='maxNum'>
<el-form-item label='设置最大值' prop='maxNum'>
<el-input-number v-model='formContent.maxNum' controls-position="right" style="width: 300px;"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label='设置最小值' :label-width='140' prop='minNum'>
<el-form-item label='设置最小值' prop='minNum'>
<el-input-number v-model='formContent.minNum' controls-position="right" style="width: 300px;"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='枚举序列' :label-width='140' prop='setValue'>
<el-form-item label='枚举序列' prop='setValue'>
<el-input v-model='formContent.setValue' placeholder='请输入枚举序列' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='字符串长度上限' :label-width='140' prop='strlen'>
<el-form-item label='字符串长度上限' prop='strlen'>
<el-input-number v-model='formContent.strlen' controls-position="right" style="width: 300px;"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label='上送规则' :label-width='140' prop='tranRule'>
<el-form-item label='上送规则' prop='tranRule'>
<el-input v-model='formContent.tranRule' placeholder='请输入上送规则' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='当前值' :label-width='140' prop='curSts'>
<el-form-item label='当前值' prop='curSts'>
<el-input v-model='formContent.curSts' placeholder='请输入当前值' autocomplete='off'/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='二次值转一次值公式' :label-width='140' prop='primaryFormula'>
<el-form-item label='二次值转一次值公式' prop='primaryFormula'>
<el-input v-model='formContent.primaryFormula' placeholder='请输入公式' autocomplete='off'/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="是否可远程控制" :label-width="140">
<el-form-item label="是否可远程控制" >
<el-radio-group v-model="formContent.ctlSts">
<el-radio label="是" :value="1"></el-radio>
<el-radio label="否" :value="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否存储" :label-width="140">
<el-form-item label="是否存储" >
<el-radio-group v-model="formContent.storeFlag">
<el-radio label="是" :value="1"></el-radio>
<el-radio label="否" :value="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="数据是否上送" :label-width="140">
<el-form-item label="数据是否上送" >
<el-radio-group v-model="formContent.tranFlag">
<el-radio label="是" :value="1"></el-radio>
<el-radio label="否" :value="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<div class='dialog-footer'>
<el-button @click='close()'>取消</el-button>
@@ -270,7 +183,6 @@ import {ElMessage, type FormItemRule} from 'element-plus'
import {addDictPq, updateDictPq} from '@/api/system/dictionary/dictPq'
import {computed, reactive, type Ref, ref} from 'vue';
import {useDictStore} from '@/stores/modules/dict'
import selectCheckBox from "@/views/system/dictionary/dictPq/components/selectCheckBox.vue";
const dictStore = useDictStore()
const selectedStatMethods = ref<string[]>([])
// 定义弹出组件元信息

View File

@@ -1,121 +0,0 @@
<template>
<el-select
v-model="menusTitle"
multiple
collapse-tags
collapse-tags-tooltip
:placeholder="props.placeholder"
clearable
@clear="clearData"
:popper-append-to-body="false"
>
<!-- @change="changeSelectMenu" -->
<el-checkbox v-model="checkedAll" @change="selectAll">全选</el-checkbox>
<el-option
v-for="(item, index) in menuList"
:key="item[props.id]"
:value="item[props.id]"
>
<el-checkbox
:label="item[props.label]"
size="large"
@change="changeCheckBox(item, index)"
:checked="isChecked(item, index)"
v-model="checkBoxObj[index]"
/>
</el-option>
</el-select>
</template>
<script lang="ts" setup>
import { ref, reactive, defineProps, defineEmits } from "vue";
const props = defineProps({
list: { type: Array, required: true },
id: { type: String, required: true },
label: { type: String, required: true },
modelValue: { type: Array },
placeholder: { type: String, default: "选择" },
});
const emit = defineEmits(["update:modelValue"]);
const value = ref("");
const checkedAll = ref("false");
const menus = ref([]);
const menuList = props.list;
const checkBoxObj = ref({});
menuList.forEach((res, index) => {
checkBoxObj.value[index] = false;
});
const menusTitle = ref([]);
const changeSelectMenu = (val) => {};
const selectAll = (value) => {
menus.value = [];
menusTitle.value = [];
if (value) {
menuList.forEach((item, index) => {
menus.value.push(item[props.id]);
menusTitle.value.push(item[props.label]);
checkBoxObj.value[index] = true;
});
} else {
menus.value = [];
menusTitle.value = [];
menuList.forEach((item, index) => {
checkBoxObj.value[index] = false;
});
}
emit("update:modelValue", menus.value);
};
const isChecked = (item) => {
return menus.value.indexOf(item[props.id]) > -1;
};
const changeCheckBox = (item, index) => {
let i = menus.value.indexOf(item[props.id]);
if (i == -1) {
menus.value.push(item[props.id]);
menusTitle.value.push(item[props.label]);
} else {
menus.value.splice(i, 1);
menusTitle.value.splice(i, 1);
}
if (menus.value.length == menuList.length) {
checkedAll.value = true;
} else {
checkedAll.value = false;
}
emit("update:modelValue", menus.value);
};
const clearData = () => {
menus.value = [];
menusTitle.value = [];
emit("update:modelValue", menus.value);
checkedAll.value = false;
menuList.forEach((item, index) => {
checkBoxObj.value[index] = false;
});
};
</script>
<style lang="scss" scoped>
.el-select-dropdown {
.el-checkbox {
display: flex;
align-items: center;
padding-left: 20px;
width: 100%;
box-sizing: border-box;
}
.el-select-dropdown__item {
// background-color: red !important;
padding: 0;
display: flex;
align-items: center;
}
}
.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected::after{
display: none;
}
</style>