This commit is contained in:
sjl
2025-01-16 14:24:55 +08:00
parent 891c6d8e93
commit 55ae64b3e1
8 changed files with 113 additions and 32 deletions

View File

@@ -12,10 +12,16 @@
<el-form-item label="编码" :label-width="100" prop="code">
<el-input v-model="formContent.code" placeholder="请输入" autocomplete="off"/>
</el-form-item>
<el-form-item label="" :label-width="100" prop="dictValue">
<el-input v-model="formContent.dictValue" placeholder="请输入" autocomplete="off"/>
<el-form-item label="开启值描述" :label-width="100" >
<el-radio-group v-model="formContent.openValue" @change="handleOpenValueChange">
<el-radio-button label="开启" :value="1"></el-radio-button>
<el-radio-button label="关闭" :value="0"></el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item label="事件等级" :label-width="100" prop="level">
<el-form-item label="" :label-width="100" prop="value" v-if="formContent.openValue==1">
<el-input v-model="formContent.value" placeholder="请输入" autocomplete="off"/>
</el-form-item>
<el-form-item label="事件等级" :label-width="100" prop="level" v-if="false">
<el-select v-model.number="formContent.level">
<el-option label="普通" :value="0"/>
<el-option label="中等" :value="1"/>
@@ -42,7 +48,7 @@ import {dialogSmall} from "@/utils/elementBind";
import {addDictData, updateDictData} from "@/api/system/dictionary/dictData/index.ts";
import {Dict} from "@/api/system/dictionary/interface";
import {ElMessage, FormItemRule} from "element-plus";
import type {Ref} from "vue";
import {computed, Ref} from "vue";
const rules: Ref<Record<string, Array<FormItemRule>>> = ref({
name: [{required: true, message: '类型名称必填!', trigger: 'blur'}],
@@ -63,10 +69,11 @@ function useMetaInfo() {
name: "",
code: "",
value: "",
dictValue: "",
//dictValue: "",
level: 0,
sort: 100,
state: 1,
openValue:0
})
return {dialogVisible, titleType, formContent, dictTypeName};
@@ -83,13 +90,21 @@ const resetFormContent = () => {
name: "",
code: "",
value: "",
dictValue: "",
//dictValue: "",
level: 0,
sort: 100,
state: 1,
openValue:0
}
}
const handleOpenValueChange = ()=> {
if(formContent.value.openValue == 0){
formContent.value.value = null
}
}
const close = () => {
dialogVisible.value = false
resetFormContent()
@@ -106,15 +121,18 @@ const open = (sign: string, typeId: string, name: string, data: Dict.ResDictData
dialogVisible.value = true
if (data.id) {
formContent.value = {...data}
formContent.value.dictValue = data.value
//formContent.value.dictValue = data.value
}
}
const save = () => {
try {
dialogFormRef.value?.validate(async (valid: boolean) => {
if(formContent.value.openValue === 0){
formContent.value.value = null
}
if (valid) {
formContent.value.value = formContent.value.dictValue
if (formContent.value.id) {
await updateDictData(formContent.value)
} else {

View File

@@ -33,6 +33,7 @@ import {useHandleData} from '@/hooks/useHandleData'
import {deleteDictData, getDictDataListByTypeId, exportDictData} from "@/api/system/dictionary/dictData/index";
import {useDownload} from "@/hooks/useDownload";
import {exportDictType} from "@/api/system/dictionary/dictType";
import { isShallow } from 'vue';
defineOptions({
name: 'dict'
})
@@ -80,7 +81,13 @@ const columns = reactive<ColumnProps<Dict.ResDictData>[]>([
{
prop: 'value',
label: '值',
minWidth: 180
minWidth: 180,
render: (scope) => {
if (scope.row.openValue === 0 || scope.row.value === null || scope.row.value === '') {
return <span>/</span>; // 使用 JSX 返回 VNode
}
return <span>{scope.row.value}</span>; // 使用 JSX 返回 VNode
}
},
{
prop: 'level',

View File

@@ -8,13 +8,13 @@
<el-form-item label='类型编码' :label-width='100' prop='code'>
<el-input v-model='formContent.code' placeholder='请输入' autocomplete='off' />
</el-form-item>
<el-form-item label="开启等级" :label-width="100">
<el-form-item label="开启等级" :label-width="100" v-if="false">
<el-radio-group v-model="formContent.openLevel" >
<el-radio-button label="开启" :value="1"></el-radio-button>
<el-radio-button label="关闭" :value="0"></el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item label="开启描述" :label-width="100">
<el-form-item label="开启描述" :label-width="100" v-if="false">
<el-radio-group v-model="formContent.openDescribe" >
<el-radio-button label="开启" :value="1"></el-radio-button>
<el-radio-button label="关闭" :value="0"></el-radio-button>