微调
This commit is contained in:
@@ -313,7 +313,7 @@
|
||||
border: 1px solid #dcdfe6;
|
||||
border-radius: 4px;
|
||||
line-height: 40px;
|
||||
width: 120%;
|
||||
width: 100%;
|
||||
height: 35px;
|
||||
padding-inline-start: 0px;
|
||||
padding-left: 10px;
|
||||
|
||||
@@ -3,13 +3,12 @@
|
||||
<el-form :model="formContent" ref='dialogFormRef' :rules='rules' >
|
||||
<el-form-item label="上级菜单" prop="pid" :label-width="100">
|
||||
<el-tree-select
|
||||
v-model="value"
|
||||
:data="data"
|
||||
v-model="formContent.pid"
|
||||
:data="functionList"
|
||||
check-strictly
|
||||
:render-after-expand="false"
|
||||
show-checkbox
|
||||
check-on-click-node
|
||||
|
||||
:props="defaultProps"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="名称" prop="name" :label-width="100">
|
||||
@@ -64,79 +63,15 @@
|
||||
import {addFunction,updateFunction,getFunctionListNoButton} from '@/api/function/index.ts'
|
||||
import IconSelect from '@/components/SelectIcon/index.vue'
|
||||
import { functionList } from '@/api/function/functionExample.ts'
|
||||
import { min } from 'lodash';
|
||||
import { min } from 'lodash';
|
||||
import { Console } from 'console';
|
||||
const value = ref()
|
||||
// 树形节点配置
|
||||
const defaultProps = {
|
||||
children: 'children',
|
||||
label: 'name',
|
||||
};
|
||||
|
||||
const data = [
|
||||
{
|
||||
value: '1',
|
||||
label: 'Level one 1',
|
||||
children: [
|
||||
{
|
||||
value: '1-1',
|
||||
label: 'Level two 1-1',
|
||||
children: [
|
||||
{
|
||||
value: '1-1-1',
|
||||
label: 'Level three 1-1-1',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
value: '2',
|
||||
label: 'Level one 2',
|
||||
children: [
|
||||
{
|
||||
value: '2-1',
|
||||
label: 'Level two 2-1',
|
||||
children: [
|
||||
{
|
||||
value: '2-1-1',
|
||||
label: 'Level three 2-1-1',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
value: '2-2',
|
||||
label: 'Level two 2-2',
|
||||
children: [
|
||||
{
|
||||
value: '2-2-1',
|
||||
label: 'Level three 2-2-1',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
value: '3',
|
||||
label: 'Level one 3',
|
||||
children: [
|
||||
{
|
||||
value: '3-1',
|
||||
label: 'Level two 3-1',
|
||||
children: [
|
||||
{
|
||||
value: '3-1-1',
|
||||
label: 'Level three 3-1-1',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
value: '3-2',
|
||||
label: 'Level two 3-2',
|
||||
children: [
|
||||
{
|
||||
value: '3-2-1',
|
||||
label: 'Level three 3-2-1',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
const dictStore = useDictStore()
|
||||
// 定义弹出组件元信息
|
||||
const dialogFormRef = ref()
|
||||
@@ -190,7 +125,9 @@ const resetFormContent = () => {
|
||||
const rules : Ref<Record<string, Array<FormItemRule>>> = ref({
|
||||
name :[{required:true,trigger:'blur',message:'菜单名称必填!'}],
|
||||
path :[{required:true,trigger:'blur',message:'菜单路径必填!'}],
|
||||
type :[{required:true,trigger:'change',message:'菜单类型必选!'}]
|
||||
type :[{required:true,trigger:'change',message:'菜单类型必选!'}],
|
||||
component :[{required:true,trigger:'blur',message:'组件地址必填!'}],
|
||||
code :[{required:true,trigger:'blur',message:'编码必填!'}]
|
||||
})
|
||||
|
||||
// 关闭弹窗
|
||||
@@ -207,7 +144,7 @@ const close = () => {
|
||||
try {
|
||||
console.log(formContent.value)
|
||||
dialogFormRef.value?.validate(async (valid: boolean) => {
|
||||
console.log(valid)
|
||||
|
||||
if (valid) {
|
||||
if (formContent.value.id) {
|
||||
await updateFunction(formContent.value);
|
||||
@@ -225,8 +162,11 @@ const close = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const functionList = ref<Function.ResFunction[]>([])
|
||||
// 打开弹窗,可能是新增,也可能是编辑
|
||||
const open = async (sign: string, data: Function.ResFunction) => {
|
||||
const response = await getFunctionListNoButton()
|
||||
functionList.value = response.data as unknown as Function.ResFunction[]
|
||||
titleType.value = sign
|
||||
dialogVisible.value = true
|
||||
if (data.id) {
|
||||
|
||||
@@ -56,10 +56,19 @@
|
||||
prop: 'type',
|
||||
label: '类型',
|
||||
width: 100,
|
||||
enum: dictStore.getDictData('resourceType'),
|
||||
search: { el: 'select', props: { filterable: true } },
|
||||
fieldNames: { label: 'label', value: 'code' },
|
||||
},
|
||||
render: (scope) => {
|
||||
const typeMap: { [key: number]: { label: string; type: string } } = {
|
||||
0: { label: '菜单', type: 'info' },
|
||||
1: { label: '按钮', type: 'warning' },
|
||||
2: { label: '公共资源', type: 'success' },
|
||||
3: { label: '服务间调用资源', type: 'primary' },
|
||||
};
|
||||
const typeInfo = typeMap[scope.row.type] || { label: '未知', type: 'danger' };
|
||||
return (
|
||||
<el-tag type={typeInfo.type}>{typeInfo.label}</el-tag>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
prop: 'icon',
|
||||
label: '图标',
|
||||
@@ -85,8 +94,6 @@
|
||||
prop: 'state',
|
||||
label: '权限资源状态',
|
||||
minWidth: 100,
|
||||
enum: dictStore.getDictData('status'),
|
||||
fieldNames: { label: 'label', value: 'code' },
|
||||
render: scope => {
|
||||
return (
|
||||
<el-tag type={scope.row.state ? 'success' : 'danger'} > {scope.row.state ? '正常' : '禁用'} </el-tag>
|
||||
|
||||
@@ -88,8 +88,6 @@ const columns = reactive<ColumnProps<Role.RoleBO>[]>([
|
||||
prop: 'state',
|
||||
label: '状态',
|
||||
minWidth: 100,
|
||||
enum: dictStore.getDictData('state'),
|
||||
fieldNames: { label: 'label', value: 'code' },
|
||||
render: scope => {
|
||||
return (
|
||||
<el-tag type={scope.row.state ? 'success' : 'danger'} > {scope.row.state ? '正常' : '删除'} </el-tag>
|
||||
|
||||
@@ -88,9 +88,7 @@ const columns = reactive<ColumnProps<Sys_Log_Audit.Audit_LogList>[]>([
|
||||
{
|
||||
prop: 'warn',
|
||||
label: '告警标志',
|
||||
enum: dictStore.getDictData('status'),
|
||||
minWidth: 100,
|
||||
fieldNames: { label: 'label', value: 'code' },
|
||||
render: scope => {
|
||||
return (
|
||||
<el-tag type={scope.row.warn ? 'danger' : 'success'}>{scope.row.warn ? '告警' : '未告警'}</el-tag>
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
<el-form :model='formContent' ref='dialogFormRef' :rules='rules' :disabled="false">
|
||||
<el-row :gutter="24" >
|
||||
<el-col :span="8">
|
||||
<el-form-item label="设备名称" prop="name">
|
||||
<el-form-item label="设备名称" prop="name" :label-width="100">
|
||||
<el-input v-model='formContent.name' placeholder="请输入设备名称"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='设备类型' prop='devType'>
|
||||
<el-form-item label='设备类型' prop='devType' :label-width="100">
|
||||
<el-select v-model="formContent.devType" clearable placeholder="请选择设备类型">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Dev_Type')"
|
||||
@@ -23,7 +23,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='通讯协议' prop='protocol'>
|
||||
<el-form-item label='通讯协议' prop='protocol' :label-width="100">
|
||||
<el-select v-model="formContent.protocol" clearable placeholder="请选择通讯协议">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Event_Type')"
|
||||
@@ -38,7 +38,7 @@
|
||||
</el-row>
|
||||
<el-row :gutter="24" >
|
||||
<el-col :span="8">
|
||||
<el-form-item label="设备通道数" prop="devChns">
|
||||
<el-form-item label="设备通道数" prop="devChns" :label-width="100">
|
||||
<el-select v-model="formContent.devChns" clearable placeholder="请选择设备通道数">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Dev_Chns')"
|
||||
@@ -50,7 +50,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="额定电压(V)" prop="devVolt">
|
||||
<el-form-item label="额定电压(V)" prop="devVolt" :label-width="100">
|
||||
<el-select v-model="formContent.devVolt" clearable placeholder="请选择额定电压">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Dev_Volt')"
|
||||
@@ -62,7 +62,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="额定电流(A)" prop="devCurr" >
|
||||
<el-form-item label="额定电流(A)" prop="devCurr" :label-width="100">
|
||||
<el-select v-model="formContent.devCurr" clearable placeholder="请选择额定电流">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Dev_Curr')"
|
||||
@@ -77,7 +77,7 @@
|
||||
</el-row>
|
||||
<el-row :gutter="24" >
|
||||
<el-col :span="8">
|
||||
<el-form-item label='生产厂商' prop='manufacturer'>
|
||||
<el-form-item label='生产厂商' prop='manufacturer' :label-width="100">
|
||||
<el-select v-model="formContent.manufacturer" clearable placeholder="请选择生产厂商">
|
||||
<el-option
|
||||
v-for="item in dictStore.getDictData('Dev_Manufacturers')"
|
||||
@@ -89,7 +89,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="生产日期" prop="createDate">
|
||||
<el-form-item label="生产日期" prop="createDate" :label-width="100">
|
||||
<el-date-picker
|
||||
v-model="formContent.createDate"
|
||||
placeholder="请选择生产日期"
|
||||
@@ -99,36 +99,36 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="出厂编号" prop="createId" placeholder="请输入出厂编号">
|
||||
<el-form-item label="出厂编号" prop="createId" placeholder="请输入出厂编号" :label-width="100">
|
||||
<el-input v-model="formContent.createId" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" >
|
||||
<el-col :span="8">
|
||||
<el-form-item label="固件版本" prop="hardwareVersion">
|
||||
<el-form-item label="固件版本" prop="hardwareVersion" :label-width="100">
|
||||
<el-input v-model="formContent.hardwareVersion" placeholder="请输入固件版本"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="软件版本" prop="softwareVersion">
|
||||
<el-form-item label="软件版本" prop="softwareVersion" :label-width="100">
|
||||
<el-input v-model="formContent.softwareVersion" placeholder="请输入软件版本"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='设备模式' prop='pattern'>
|
||||
<el-form-item label='设备模式' prop='pattern' :label-width="100">
|
||||
<el-input v-model='formContent.pattern' disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" >
|
||||
<el-col :span="8">
|
||||
<el-form-item label="IP地址" prop="ip">
|
||||
<el-form-item label="IP地址" prop="ip" :label-width="100">
|
||||
<IPAddress v-model:value="formContent.ip"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="端口号" prop="port" placeholder="请输入端口号">
|
||||
<el-form-item label="端口号" prop="port" placeholder="请输入端口号" :label-width="100">
|
||||
<el-input v-model="formContent.port" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -136,7 +136,7 @@
|
||||
|
||||
<el-row :gutter="24" >
|
||||
<el-col :span="8">
|
||||
<el-form-item label='是否加密' prop='encryptionFlag'>
|
||||
<el-form-item label='是否加密' prop='encryptionFlag' :label-width="100">
|
||||
<el-select v-model="formContent.encryptionFlag" clearable placeholder="请选择是否加密" @change="handleEncryptionChange">
|
||||
<el-option label="是" :value="1"></el-option>
|
||||
<el-option label="否" :value="0"></el-option>
|
||||
@@ -144,24 +144,24 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" v-if="IsPasswordShow">
|
||||
<el-form-item label='识别码' prop='series' clearable placeholder="请输入识别码">
|
||||
<el-form-item label='识别码' prop='series' clearable placeholder="请输入识别码" :label-width="100">
|
||||
<el-input v-model='formContent.series' show-password/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" v-if="IsPasswordShow">
|
||||
<el-form-item label='密钥' prop='devKey' clearable placeholder="请输入密钥">
|
||||
<el-form-item label='密钥' prop='devKey' clearable placeholder="请输入密钥" :label-width="100">
|
||||
<el-input v-model='formContent.devKey' 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 placeholder="请输入样品编号">
|
||||
<el-form-item label='样品编号' prop='sampleID' clearable placeholder="请输入样品编号" :label-width="100">
|
||||
<el-input v-model='formContent.sampleID' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='送样日期' prop='arrivedDate' >
|
||||
<el-form-item label='送样日期' prop='arrivedDate' :label-width="100">
|
||||
<el-date-picker
|
||||
v-model="formContent.arrivedDate"
|
||||
placeholder="请选择送样日期"
|
||||
@@ -172,17 +172,17 @@
|
||||
</el-row>
|
||||
<el-row :gutter="24" v-if="MonIsShow">
|
||||
<el-col :span="8">
|
||||
<el-form-item label='所属地市' prop='cityName' clearable placeholder="请输入所属地市">
|
||||
<el-form-item label='所属地市' prop='cityName' clearable placeholder="请输入所属地市" :label-width="100">
|
||||
<el-input v-model='formContent.cityName' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='所属供电公司' prop='gDName' clearable placeholder="请输入所属供电公司">
|
||||
<el-form-item label='所属供电公司' prop='gDName' clearable placeholder="请输入所属供电公司" :label-width="100">
|
||||
<el-input v-model='formContent.gDName' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='所属电站' prop='subName' clearable placeholder="请输入所属电站">
|
||||
<el-form-item label='所属电站' prop='subName' clearable placeholder="请输入所属电站" :label-width="100">
|
||||
<el-input v-model='formContent.subName' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -256,9 +256,9 @@ import { el } from 'element-plus/es/locale'
|
||||
name: '',
|
||||
pattern:'模拟式',
|
||||
devType:'',
|
||||
devChns:0,
|
||||
devVolt:0,
|
||||
devCurr:0,
|
||||
devChns:1,
|
||||
devVolt:57.74,
|
||||
devCurr:1,
|
||||
manufacturer: '',
|
||||
createDate: '',
|
||||
createId: '',
|
||||
@@ -266,7 +266,7 @@ import { el } from 'element-plus/es/locale'
|
||||
softwareVersion: '',
|
||||
protocol: '',
|
||||
ip: '',
|
||||
port: 0,
|
||||
port: 102,
|
||||
encryptionFlag: 1,
|
||||
reCheckNum:0,
|
||||
state: 1,
|
||||
@@ -282,9 +282,9 @@ import { el } from 'element-plus/es/locale'
|
||||
name: '',
|
||||
pattern:'模拟式',
|
||||
devType:'',
|
||||
devChns:0,
|
||||
devVolt:0,
|
||||
devCurr:0,
|
||||
devChns:1,
|
||||
devVolt:57.74,
|
||||
devCurr:1,
|
||||
manufacturer: '',
|
||||
createDate: '',
|
||||
createId: '',
|
||||
@@ -292,13 +292,14 @@ import { el } from 'element-plus/es/locale'
|
||||
softwareVersion: '',
|
||||
protocol: '',
|
||||
ip: '',
|
||||
port: 0,
|
||||
port: 102,
|
||||
encryptionFlag: 1,
|
||||
reCheckNum:0,
|
||||
state: 1,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
let dialogTitle = computed(() => {
|
||||
return titleType.value === 'add' ? '新增被检设备' : '编辑被检设备'
|
||||
})
|
||||
@@ -324,11 +325,13 @@ import { el } from 'element-plus/es/locale'
|
||||
ip:[{ required: true, message: 'IP地址必填!', trigger: 'blur' } ,
|
||||
{ pattern: /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/, message: 'IP地址格式错误', trigger: 'blur' }],
|
||||
port:[{ required: true, message: '端口号必填!', trigger: 'blur' },
|
||||
{ pattern: /^\d+$/, message: '端口号格式错误', trigger: 'blur' }],
|
||||
{ pattern: /^(6553[0-5]|655[0-2][0-9]|64[0-9]{3}|[1-5]?[0-9]{1,4})$/, message: '端口号范围0到65535的整数', trigger: 'blur' }],
|
||||
manufacturer: [{ required: true, message: '生产厂家必选!', trigger: 'change' }],
|
||||
encryptionFlag: [{ required: true, message: '是否加密必选!', trigger: 'change' }],
|
||||
protocol: [{ required: true, message: '通讯协议必选!', trigger: 'change' }],
|
||||
})
|
||||
series: [],
|
||||
devKey: []
|
||||
})
|
||||
|
||||
// 关闭弹窗
|
||||
const close = () => {
|
||||
@@ -407,14 +410,23 @@ import { el } from 'element-plus/es/locale'
|
||||
// 根据是否加密来显示或隐藏识别码和密钥
|
||||
if(value === 1){
|
||||
IsPasswordShow.value = true
|
||||
rules.value.series = [
|
||||
{ required: true, message: '请输入识别码', trigger: 'blur' }
|
||||
];
|
||||
rules.value.devKey = [
|
||||
{ required: true, message: '请输入密钥', trigger: 'blur' }
|
||||
];
|
||||
}else
|
||||
{
|
||||
IsPasswordShow.value = false
|
||||
formContent.value.series = ''
|
||||
formContent.value.devKey = ''
|
||||
rules.value.series = [];
|
||||
rules.value.devKey = [];
|
||||
}
|
||||
|
||||
// 如果选择"是",则显示;否则隐藏
|
||||
dialogFormRef.value?.clearValidate(); // 清除验证状态
|
||||
}
|
||||
|
||||
// 表格配置项
|
||||
|
||||
@@ -84,7 +84,6 @@ const columns = reactive<ColumnProps<Device.ResPqDev>[]>([
|
||||
return (
|
||||
<div class='flx-flex-start'>
|
||||
<TimeControl
|
||||
|
||||
default={'月'}
|
||||
onUpdate-dates={handleDateChange}
|
||||
/>
|
||||
@@ -157,7 +156,7 @@ const downloadFile = async () => {
|
||||
searchParam.searchBeginTime = startDate.value;
|
||||
searchParam.searchEndTime = endDate.value;
|
||||
|
||||
ElMessageBox.confirm('确认导出被检设备?', '温馨提示', { type: 'warning' }).then(() =>
|
||||
ElMessageBox.confirm('确认导出被检设备?', '温馨提示', { type: 'warning' }).then(() =>
|
||||
useDownload(exportPqDev,'被检设备导出数据', proTable.value?.searchParam, false,'.xlsx'),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -63,8 +63,6 @@
|
||||
label: '状态',
|
||||
minWidth:30,
|
||||
isShow:false,
|
||||
enum: dictStore.getDictData('state'),
|
||||
fieldNames: { label: 'label', value: 'code' },
|
||||
render: scope => {
|
||||
return (
|
||||
<el-tag type={scope.row.state === 0 ? 'success' : (scope.row.state === 1 ? 'warning' : 'danger')}>
|
||||
|
||||
@@ -27,13 +27,14 @@
|
||||
|
||||
<script setup lang='tsx' name='dict'>
|
||||
import { CirclePlus, Delete, Download, EditPen, View } from '@element-plus/icons-vue'
|
||||
import { Dict } from '@/api/system/dictionary/interface'
|
||||
import { ColumnProps, ProTableInstance } from '@/components/ProTable/interface'
|
||||
import { type Dict } from '@/api/system/dictionary/interface'
|
||||
import type { ColumnProps, ProTableInstance } from '@/components/ProTable/interface'
|
||||
import DictData from '@/views/system/dictionary/dictData/index.vue'
|
||||
import { useHandleData } from '@/hooks/useHandleData'
|
||||
import { useViewSize } from '@/hooks/useViewSize'
|
||||
import { useDownload } from '@/hooks/useDownload'
|
||||
import { deleteDictType, getDictTypeList, exportDictType } from '@/api/system/dictionary/dictType'
|
||||
import { reactive, ref } from 'vue'
|
||||
|
||||
const { popupBaseView, viewWidth, viewHeight } = useViewSize()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user