电能质量字典界面
This commit is contained in:
@@ -2,19 +2,6 @@ import type { ReqPage } from '@/api/interface'
|
||||
|
||||
// 被检设备模块
|
||||
export namespace Device {
|
||||
|
||||
// 被检设备列表
|
||||
export interface ResDeviceList {
|
||||
id: string; //被检设备ID
|
||||
deviceName: string; //检测设备名称
|
||||
deviceType: string; //检测设备类型
|
||||
deviceChannels: string;//设备通道数
|
||||
PlanName: string; //所属计划名称
|
||||
deviceUn: string; //设备额定电压
|
||||
deviceIn: string; //设备额定电流
|
||||
deviceCompany: string;//设备厂家
|
||||
deviceModel: string; //设备模式 模拟 数字 比对
|
||||
}
|
||||
|
||||
// 被检设备参数
|
||||
export interface ReqDeviceParams extends ReqPage {
|
||||
@@ -30,7 +17,7 @@ export namespace Device {
|
||||
}
|
||||
|
||||
// 被检设备列表
|
||||
export interface DeviceList {
|
||||
export interface ResDeviceList {
|
||||
id: string; //装置序号ID
|
||||
name: string; //设备名称
|
||||
pattern?: string; //设备模式 模拟 数字 比对
|
||||
|
||||
@@ -100,7 +100,7 @@ export namespace Dict {
|
||||
name: string;//指标名称
|
||||
phase: string;//相别
|
||||
dataType: string;//数据模型(epd、pqd...)
|
||||
otherName?: string | null;//别名(默认与Name相同,主要是为了适配不同数据库里面字段)
|
||||
otherName?: string ;//别名(默认与Name相同,主要是为了适配不同数据库里面字段)
|
||||
showName?:string | null;//显示名称
|
||||
sort:number;//排序
|
||||
type?: string | null;//指标数据类型(整型、浮点型、枚举型这些的)
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
<el-form-item label='相别' :label-width='140' prop='phase'>
|
||||
<el-select v-model="formContent.phase" clearable placeholder="请选择相别">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('phase')"
|
||||
v-for="item in dictStore.getDictData('High_Cate')"
|
||||
:key="item.id"
|
||||
:name="item.name"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
@@ -50,12 +50,11 @@
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
<el-form-item label='数据统计类型' :label-width='140' prop='statMethod'>
|
||||
|
||||
<el-select v-model="formContent.statMethod" multiple placeholder="请选择数据统计类型">
|
||||
<el-select v-model="selectedStatMethods" multiple placeholder="请选择数据统计类型">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('statMethod')"
|
||||
v-for="item in dictStore.getDictData('Event_Type')"
|
||||
:key="item.value"
|
||||
:name="item.name"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
@@ -66,9 +65,9 @@
|
||||
<el-form-item label='报表数据来源' :label-width='140' prop='resourcesId'>
|
||||
<el-select v-model="formContent.resourcesId" clearable placeholder="请选择报表数据来源">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('resourcesId')"
|
||||
v-for="item in dictStore.getDictData('Dev_Series')"
|
||||
:key="item.id"
|
||||
:name="item.name"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
@@ -76,9 +75,9 @@
|
||||
<el-form-item label='数据表表名' :label-width='140' prop='classId'>
|
||||
<el-select v-model="formContent.classId" clearable placeholder="请选择数据表表名">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('classId')"
|
||||
v-for="item in dictStore.getDictData('High_Cate')"
|
||||
:key="item.id"
|
||||
:name="item.name"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
@@ -94,7 +93,7 @@
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('formula')"
|
||||
:key="item.id"
|
||||
:name="item.name"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
@@ -168,8 +167,9 @@
|
||||
import { addDictPq, updateDictPq } from '@/api/system/dictionary/dictPq'
|
||||
import { computed, type Ref, ref } from 'vue';
|
||||
import { useDictStore } from '@/stores/modules/dict'
|
||||
import { el } from 'element-plus/es/locale';
|
||||
const dictStore = useDictStore()
|
||||
|
||||
const selectedStatMethods = ref<string[]>([])
|
||||
// 定义弹出组件元信息
|
||||
const dialogFormRef = ref()
|
||||
function useMetaInfo() {
|
||||
@@ -213,7 +213,6 @@
|
||||
classId: [{ required: true, message: '数据库表名必选!', trigger: 'change' }],
|
||||
})
|
||||
|
||||
|
||||
// 关闭弹窗
|
||||
const close = () => {
|
||||
dialogVisible.value = false
|
||||
@@ -221,6 +220,7 @@
|
||||
resetFormContent()
|
||||
// 重置表单
|
||||
dialogFormRef.value?.resetFields()
|
||||
selectedStatMethods.value = []
|
||||
}
|
||||
|
||||
// 保存数据
|
||||
@@ -228,13 +228,26 @@
|
||||
try {
|
||||
dialogFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
|
||||
formContent.value.statMethod = selectedStatMethods.value.join(',')
|
||||
if (formContent.value.id) {
|
||||
await updateDictPq(formContent.value)
|
||||
updateDictPq(formContent.value).then(result => {
|
||||
if(result.code != 'A0000'){
|
||||
ElMessage.error({ message: result.message})
|
||||
}else{
|
||||
ElMessage.success({ message: `${dialogTitle.value}成功!` })
|
||||
}
|
||||
})
|
||||
} else {
|
||||
await addDictPq(formContent.value)
|
||||
addDictPq(formContent.value).then(result => {
|
||||
if(result.code != 'A0000'){
|
||||
ElMessage.error({ message: result.message})
|
||||
}else{
|
||||
ElMessage.success({ message: `${dialogTitle.value}成功!` })
|
||||
}
|
||||
})
|
||||
}
|
||||
ElMessage.success({ message: `${dialogTitle.value}成功!` })
|
||||
//ElMessage.success({ message: `${dialogTitle.value}成功!` })
|
||||
|
||||
close()
|
||||
// 刷新表格
|
||||
await props.refreshTable!()
|
||||
@@ -249,7 +262,8 @@
|
||||
const open = (sign: string, data: Dict.ResDictPq) => {
|
||||
titleType.value = sign
|
||||
dialogVisible.value = true
|
||||
console.log('123456',dictStore)
|
||||
console.log(dictStore)
|
||||
selectedStatMethods.value = data.statMethod ? data.statMethod.split(',') : []
|
||||
if (data.id) {
|
||||
formContent.value = { ...data }
|
||||
} else {
|
||||
@@ -263,4 +277,6 @@
|
||||
refreshTable: (() => Promise<void>) | undefined;
|
||||
}>()
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
@@ -69,6 +69,10 @@
|
||||
search: {
|
||||
el: 'input',
|
||||
},
|
||||
render: (scope) => {
|
||||
const codes = scope.row.otherName;
|
||||
return codes || '/';
|
||||
}
|
||||
},
|
||||
{
|
||||
prop: 'showName',
|
||||
@@ -77,56 +81,95 @@
|
||||
search: {
|
||||
el: 'input',
|
||||
},
|
||||
render: (scope) => {
|
||||
const codes = scope.row.showName;
|
||||
return codes || '/';
|
||||
}
|
||||
},
|
||||
{
|
||||
prop: 'phase',
|
||||
label: '相别',
|
||||
width: 180,
|
||||
enum: dictStore.getDictData('High_Cate'),
|
||||
fieldNames: { label: 'name', value: 'code' },
|
||||
},
|
||||
{
|
||||
prop: 'phase',
|
||||
prop: 'unit',
|
||||
label: '单位',
|
||||
width: 180,
|
||||
render: (scope) => {
|
||||
const codes = scope.row.unit;
|
||||
return codes || '/';
|
||||
}
|
||||
},
|
||||
{
|
||||
prop: 'type',
|
||||
label: '指标数据类型',
|
||||
width: 180,
|
||||
render: (scope) => {
|
||||
const codes = scope.row.type;
|
||||
return codes || '/';
|
||||
}
|
||||
},
|
||||
{
|
||||
prop: 'harmStart',
|
||||
label: '数据谐波次数',
|
||||
width: 180,
|
||||
render: (scope) => {
|
||||
return scope.row.harmStart
|
||||
return (scope.row.harmStart && scope.row.harmEnd)
|
||||
? `${scope.row.harmStart}-${scope.row.harmEnd}`
|
||||
: '/'; // 如果 harmStart 为空,返回 \
|
||||
: '/'; // 如果 harmStart 或 harmEnd 为空,返回 '/'
|
||||
},
|
||||
},
|
||||
{
|
||||
prop: 'statMethod',
|
||||
label: '数据统计类型',
|
||||
width: 180,
|
||||
render: (row) => {
|
||||
const methods = row.statMethod || []; // 确保statMethod存在
|
||||
if (methods.length === 0) {
|
||||
return '/'; // 空值时显示/
|
||||
} else if (methods.length > 2) {
|
||||
return methods.join(', '); // 超过两个用逗号分隔
|
||||
} else {
|
||||
return methods.join(' '); // 少于等于两个时用空格分隔
|
||||
width: 250,
|
||||
enum: dictStore.getDictData('Event_Type'),
|
||||
fieldNames: { label: 'name', value: 'code' },
|
||||
render: (scope) => {
|
||||
// 假设 statMethod 是一个数组,包含多个 'code' 值
|
||||
const codes = scope.row.statMethod; // 获取当前行的 statMethod 字段
|
||||
//console.log('codes',codes)
|
||||
if (!codes) {
|
||||
return '/'; // 如果 statMethod 为 undefined 或 null,返回 '/'
|
||||
}
|
||||
},
|
||||
// 确保 codes 是一个字符串
|
||||
const codeString = Array.isArray(codes) ? codes.join(',') : codes;
|
||||
const codeArray = codeString.split(',');
|
||||
if (codeArray.length > 1) {
|
||||
// 查找与每个 code 值匹配的 name,然后拼接成逗号分割的字符串
|
||||
//console.log('codeArray',codeArray)
|
||||
const names = codeArray.map(code => {
|
||||
const dictItem = dictStore.getDictData('Event_Type').find(item => item.code === code);
|
||||
return dictItem ? dictItem.name : ''; // 如果找到匹配的项,返回对应的 name
|
||||
});
|
||||
//console.log('names',names)
|
||||
return names.join(', '); // 用逗号连接所有的 name
|
||||
}
|
||||
// 查找单个 code 对应的 name
|
||||
const dictItem = dictStore.getDictData('Event_Type').find(item => item.code === codeArray[0]);
|
||||
return dictItem ? dictItem.name : ''; // 如果找到匹配的项,返回对应的 name
|
||||
},
|
||||
},
|
||||
{
|
||||
prop: 'classId',
|
||||
label: '数据表表名',
|
||||
width: 180,
|
||||
enum: dictStore.getDictData('High_Cate'),
|
||||
fieldNames: { label: 'name', value: 'code' },
|
||||
|
||||
},
|
||||
{
|
||||
prop: 'resourcesId',
|
||||
label: '报表数据来源',
|
||||
width: 180,
|
||||
enum: dictStore.getDictData('Dev_Series'),
|
||||
fieldNames: { label: 'name', value: 'code' },
|
||||
render: (scope) => {
|
||||
const codes = scope.row.resourcesId;
|
||||
return codes || '/';
|
||||
}
|
||||
},
|
||||
{
|
||||
prop: 'operation',
|
||||
|
||||
Reference in New Issue
Block a user