This commit is contained in:
caozehui
2024-11-01 15:51:46 +08:00
parent 22868b887b
commit faed8ced25
3 changed files with 22 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
<template> <template>
<el-dialog v-model="dialogVisible" :title="dialogTitle" <el-dialog v-model="dialogVisible" :title="dialogTitle"
v-bind="dialogSmall"> v-bind="dialogSmall" @close="close">
<div> <div>
<el-form :model="formContent" ref="dialogFormRef" :rules="rules"> <el-form :model="formContent" ref="dialogFormRef" :rules="rules">
<el-form-item label="字典类型" :label-width="100"> <el-form-item label="字典类型" :label-width="100">
@@ -15,7 +15,14 @@
<el-form-item label="值" :label-width="100" prop="dictValue"> <el-form-item label="值" :label-width="100" prop="dictValue">
<el-input v-model="formContent.dictValue" placeholder="请输入" autocomplete="off"/> <el-input v-model="formContent.dictValue" placeholder="请输入" autocomplete="off"/>
</el-form-item> </el-form-item>
<el-form-item label="显示排序" :label-width="100"> <el-form-item label="事件等级" :label-width="100" prop="level">
<el-select v-model.number="formContent.level">
<el-option label="普通" :value="0"/>
<el-option label="中等" :value="1"/>
<el-option label="严重" :value="2"/>
</el-select>
</el-form-item>
<el-form-item label="排序" :label-width="100">
<el-input-number v-model="formContent.sort"/> <el-input-number v-model="formContent.sort"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
@@ -41,6 +48,7 @@ const rules: Ref<Record<string, Array<FormItemRule>>> = ref({
name: [{required: true, message: '类型名称必填!', trigger: 'blur'}], name: [{required: true, message: '类型名称必填!', trigger: 'blur'}],
code: [{required: true, message: '类型编码必填!', trigger: 'blur'}], code: [{required: true, message: '类型编码必填!', trigger: 'blur'}],
dictValue: [{required: true, message: '类型值必填!', trigger: 'blur'}], dictValue: [{required: true, message: '类型值必填!', trigger: 'blur'}],
level: [{required: true, message: '事件等级必填!', trigger: 'blur'}],
}) })
const dialogFormRef = ref() const dialogFormRef = ref()
@@ -58,6 +66,7 @@ function useMetaInfo() {
code: "", code: "",
value: "", value: "",
dictValue: "", dictValue: "",
level: 0,
sort: 100, sort: 100,
state: 1, state: 1,
}) })
@@ -66,7 +75,7 @@ function useMetaInfo() {
} }
let dialogTitle = computed(() => { let dialogTitle = computed(() => {
return titleType.value === 'add' ? '新增字典类型' : '编辑字典类型' return titleType.value === 'add' ? '新增字典数据' : '编辑字典数据'
}) })
const resetFormContent = () => { const resetFormContent = () => {
@@ -76,6 +85,8 @@ const resetFormContent = () => {
name: "", name: "",
code: "", code: "",
value: "", value: "",
dictValue: "",
level: 0,
sort: 100, sort: 100,
state: 1, state: 1,
} }

View File

@@ -7,6 +7,7 @@
<ProTable ref='proTable' :columns="columns" :request-api='getDictDataListByTypeId' :initParam="initParam"> <ProTable ref='proTable' :columns="columns" :request-api='getDictDataListByTypeId' :initParam="initParam">
<template #tableHeader="scope"> <template #tableHeader="scope">
<el-button type="primary" :icon="CirclePlus" @click="openDialog('add')">新增</el-button> <el-button type="primary" :icon="CirclePlus" @click="openDialog('add')">新增</el-button>
<el-button type='primary' :icon='Download' plain>导出</el-button>
<el-button type="danger" :icon="Delete" plain :disabled="!scope.isSelected" <el-button type="danger" :icon="Delete" plain :disabled="!scope.isSelected"
@click="batchDelete(scope.selectedListIds)"> @click="batchDelete(scope.selectedListIds)">
批量删除 批量删除
@@ -24,7 +25,7 @@
</template> </template>
<script setup lang="tsx" name="dictData"> <script setup lang="tsx" name="dictData">
import {CirclePlus, Delete, EditPen} from '@element-plus/icons-vue' import {CirclePlus, Delete, Download, EditPen} from '@element-plus/icons-vue'
import {Dict} from '@/api/system/dictionary/interface' import {Dict} from '@/api/system/dictionary/interface'
import {ProTableInstance, ColumnProps} from '@/components/ProTable/interface' import {ProTableInstance, ColumnProps} from '@/components/ProTable/interface'
import {useHandleData} from '@/hooks/useHandleData' import {useHandleData} from '@/hooks/useHandleData'
@@ -47,8 +48,8 @@ const dataPopup = ref()
const props = defineProps({ const props = defineProps({
width: { width: {
type: String, type: Number,
default: '800px', default: 800,
}, },
height: { height: {
type: String, type: String,
@@ -87,10 +88,9 @@ const columns = reactive<ColumnProps<Dict.ResDictData>[]>([
render: scope => { render: scope => {
return ( return (
<> <>
{scope.row.level === 0 || scope.row.level === null || scope.row.level === undefined ? {
(<span></span>) :
(<el-tag type={scope.row.level === 1 ? 'info' : scope.row.level === 2 ? 'warning' : 'danger'}> (<el-tag type={scope.row.level === 1 ? 'info' : scope.row.level === 2 ? 'warning' : 'danger'}>
{scope.row.level === 1 ? '普通' : scope.row.level === 2 ? '警告' : '危险'} {scope.row.level === 1 ? '普通' : scope.row.level === 2 ? '中等' : '严重'}
</el-tag>) </el-tag>)
} }
</> </>

View File

@@ -1,5 +1,5 @@
<template> <template>
<el-dialog v-model='dialogVisible' :title='dialogTitle' v-bind='dialogSmall'> <el-dialog v-model='dialogVisible' :title='dialogTitle' v-bind='dialogSmall' @close="close">
<div> <div>
<el-form :model='formContent' ref='dialogFormRef' :rules='rules'> <el-form :model='formContent' ref='dialogFormRef' :rules='rules'>
<el-form-item label='类型名称' :label-width='100' prop='name'> <el-form-item label='类型名称' :label-width='100' prop='name'>
@@ -20,7 +20,7 @@
<el-radio-button label="关闭" :value="0"></el-radio-button> <el-radio-button label="关闭" :value="0"></el-radio-button>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label='显示排序' :label-width='100'> <el-form-item label='排序' :label-width='100'>
<el-input-number v-model='formContent.sort' /> <el-input-number v-model='formContent.sort' />
</el-form-item> </el-form-item>
<el-form-item label='备注' :label-width='100'> <el-form-item label='备注' :label-width='100'>