本院设置
This commit is contained in:
parent
94538e5e2f
commit
4dfd710acf
319
src/views/liswork/xtwh/hisoptconfig/index.vue
Normal file
319
src/views/liswork/xtwh/hisoptconfig/index.vue
Normal file
@ -0,0 +1,319 @@
|
|||||||
|
<!-- 系统全局选项 -->
|
||||||
|
<template>
|
||||||
|
<div class="sys_box">
|
||||||
|
<el-row :gutter="10" class="table-toolbar">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary" plain icon="Check" @click="handleSave">保存</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="success" plain icon="Edit" @click="handleCancelEdit">取消修改</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="danger" plain icon="RefreshRight" @click="handleRestoreDefault">还原默认</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<!-- 三列表格容器 -->
|
||||||
|
<div class="triple-table-wrapper">
|
||||||
|
<!-- 第一列表格 -->
|
||||||
|
<div class="table-panel table-1">
|
||||||
|
<el-table v-loading="loading" :data="tableData1" @selection-change="handleSelectionChange" class="config-table"
|
||||||
|
fit border height="100%" :cell-spacing="0">
|
||||||
|
<el-table-column label="序号" align="center" prop="configSort" width="50" />
|
||||||
|
<el-table-column :label="`${menuname}名称`" align="left" prop="configName" show-overflow-tooltip
|
||||||
|
min-width="150" />
|
||||||
|
<el-table-column label="参数值" align="center" prop="configDefvalue" show-overflow-tooltip min-width="100">
|
||||||
|
<template #default="scope">
|
||||||
|
<DynamicInput :type="scope.row.configOptiontype" v-model="scope.row.configDefvalue"
|
||||||
|
:dict-data="scope.row.remark" :placeholder="`请输入${scope.row.configName}值`" class="edit-input" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="值码" align="center" prop="configDefvalue" v-if="false" show-overflow-tooltip
|
||||||
|
min-width="100" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 第二列表格 -->
|
||||||
|
<div class="table-panel table-2">
|
||||||
|
<el-table v-loading="loading" :data="tableData2" @selection-change="handleSelectionChange" class="config-table"
|
||||||
|
fit border height="100%" :cell-spacing="0">
|
||||||
|
<el-table-column label="序号" align="center" prop="configSort" width="50" />
|
||||||
|
<el-table-column :label="`${menuname}名称`" align="left" prop="configName" show-overflow-tooltip
|
||||||
|
min-width="150" />
|
||||||
|
<el-table-column label="参数值" align="center" prop="configDefvalue" show-overflow-tooltip min-width="100">
|
||||||
|
<template #default="scope">
|
||||||
|
<DynamicInput :type="scope.row.configOptiontype" v-model="scope.row.configDefvalue"
|
||||||
|
:dict-data="scope.row.remark" :placeholder="`请输入${scope.row.configName}值`" class="edit-input" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="值码" align="center" prop="configDefvalue" v-if="false" show-overflow-tooltip
|
||||||
|
min-width="100" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 第三列表格 -->
|
||||||
|
<div class="table-panel table-3">
|
||||||
|
<el-table v-loading="loading" :data="tableData3" @selection-change="handleSelectionChange" class="config-table"
|
||||||
|
fit border height="100%" :cell-spacing="0">
|
||||||
|
<el-table-column label="序号" align="center" prop="configSort" width="50" />
|
||||||
|
<el-table-column :label="`${menuname}名称`" align="left" prop="configName" show-overflow-tooltip
|
||||||
|
min-width="150" />
|
||||||
|
<el-table-column label="参数值" align="center" prop="configDefvalue" show-overflow-tooltip min-width="100">
|
||||||
|
<template #default="scope">
|
||||||
|
<DynamicInput :type="scope.row.configOptiontype" v-model="scope.row.configDefvalue"
|
||||||
|
:dict-data="scope.row.remark" :placeholder="`请输入${scope.row.configName}值`" class="edit-input" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="值码" align="center" prop="configDefvalue" v-if="false" show-overflow-tooltip
|
||||||
|
min-width="100" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ElMessage, ElTree, TreeNode, ElMessageBox, ElBadge } from 'element-plus'
|
||||||
|
import { paramList, paramTree, getdef, updateParam } from '@/api/liswork/xtwh/ComOpt'
|
||||||
|
import { getFirstLetter } from '@/utils/pinyin'
|
||||||
|
// @ts-ignore
|
||||||
|
import DynamicInput from "@/views/liswork/xtwh/localconfig/components/DynamicInput.vue"
|
||||||
|
|
||||||
|
const yq = ref<string>("HISOPT")
|
||||||
|
|
||||||
|
interface RegDictItem {
|
||||||
|
configId: string | number
|
||||||
|
configSort: number
|
||||||
|
configCode: string
|
||||||
|
configName: string
|
||||||
|
configDefvalue: string | number
|
||||||
|
configOptiontype: string
|
||||||
|
remark: string
|
||||||
|
}
|
||||||
|
// 列表相关
|
||||||
|
const optiontype = ref<string>("HISOPT")
|
||||||
|
const menuname = ref<string>("本院特殊设置")
|
||||||
|
const regdictList = ref<RegDictItem[]>([])
|
||||||
|
const originRegdictList = ref<RegDictItem[]>([])
|
||||||
|
const loading = ref<boolean>(false)
|
||||||
|
const total = ref<number>(0)
|
||||||
|
|
||||||
|
// 选择相关
|
||||||
|
const ids = ref<(string | number)[]>([])
|
||||||
|
const single = ref<boolean>(true)
|
||||||
|
const multiple = ref<boolean>(true)
|
||||||
|
|
||||||
|
// ========== 核心:拆分三列表格数据 ==========
|
||||||
|
const tableData1 = computed<RegDictItem[]>(() => {
|
||||||
|
const splitSize = Math.ceil(total.value / 3) // 每列基础行数
|
||||||
|
return regdictList.value.slice(0, splitSize)
|
||||||
|
})
|
||||||
|
|
||||||
|
const tableData2 = computed<RegDictItem[]>(() => {
|
||||||
|
const splitSize = Math.ceil(total.value / 3)
|
||||||
|
return regdictList.value.slice(splitSize, splitSize * 2)
|
||||||
|
})
|
||||||
|
|
||||||
|
const tableData3 = computed<RegDictItem[]>(() => {
|
||||||
|
const splitSize = Math.ceil(total.value / 3)
|
||||||
|
return regdictList.value.slice(splitSize * 2)
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
const getList = async (): Promise<void> => {
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const response = await paramList({ yq: yq.value, optiontype: optiontype.value })
|
||||||
|
regdictList.value = JSON.parse(JSON.stringify(response.data))
|
||||||
|
originRegdictList.value = JSON.parse(JSON.stringify(response.data))
|
||||||
|
total.value = response.data.length
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.error(`获取列表异常:${(error as Error).message}`)
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleSelectionChange = (val: RegDictItem[]): void => {
|
||||||
|
ids.value = val.map(item => item.configId)
|
||||||
|
single.value = val.length === 1
|
||||||
|
multiple.value = val.length > 1
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleSave = async (): Promise<void> => {
|
||||||
|
try {
|
||||||
|
loading.value = true
|
||||||
|
// 合并三列表格数据提交
|
||||||
|
const allData = [...tableData1.value, ...tableData2.value, ...tableData3.value]
|
||||||
|
const res = await updateParam(allData)
|
||||||
|
if (res.code == 0) {
|
||||||
|
ElMessage.success(res.msg || "保存成功")
|
||||||
|
originRegdictList.value = JSON.parse(JSON.stringify(allData))
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.error(`保存失败:${(error as Error).message}`)
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleCancelEdit = (): void => {
|
||||||
|
ElMessageBox.confirm(
|
||||||
|
"是否确认取消所有修改,恢复原始数据?",
|
||||||
|
"提示",
|
||||||
|
{
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}
|
||||||
|
).then(() => {
|
||||||
|
regdictList.value = JSON.parse(JSON.stringify(originRegdictList.value))
|
||||||
|
ElMessage.success("已恢复原始数据!")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleRestoreDefault = async (): Promise<void> => {
|
||||||
|
ElMessageBox.confirm(
|
||||||
|
"是否确认还原所有默认值?此操作会覆盖当前修改!",
|
||||||
|
"警告",
|
||||||
|
{
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "error"
|
||||||
|
}
|
||||||
|
).then(async () => {
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const res = await getdef({ optiontype: optiontype.value })
|
||||||
|
regdictList.value = JSON.parse(JSON.stringify(res.data))
|
||||||
|
originRegdictList.value = JSON.parse(JSON.stringify(res.data))
|
||||||
|
total.value = res.data.length
|
||||||
|
ElMessage.success("还原默认值成功!")
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.error(`还原失败:${(error as Error).message}`)
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
getList()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.sys_box {
|
||||||
|
height: calc(100% - 58px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-toolbar {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
height: 36px;
|
||||||
|
line-height: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 三列表格容器
|
||||||
|
.triple-table-wrapper {
|
||||||
|
flex: 1;
|
||||||
|
height: calc(100% - 45px); // 减去标题行+工具栏高度
|
||||||
|
display: flex;
|
||||||
|
gap: 0px; // 表格间间距
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
// 单个表格面板
|
||||||
|
.table-panel {
|
||||||
|
flex: 1; // 三列均等分
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid #e6e6e6;
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
// 细微间距优化
|
||||||
|
&.table-1 {
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.table-2 {
|
||||||
|
margin: 0 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.table-3 {
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 核心:清除表格内上下间隙
|
||||||
|
:deep(.config-table) {
|
||||||
|
// 清除表格整体的边框间距
|
||||||
|
border-collapse: collapse !important;
|
||||||
|
border-spacing: 0 !important;
|
||||||
|
|
||||||
|
// 清除表格头部间距
|
||||||
|
.el-table__header {
|
||||||
|
padding: 0 !important;
|
||||||
|
|
||||||
|
th {
|
||||||
|
padding: 0 !important;
|
||||||
|
border-bottom: 1px solid #e6e6e6 !important;
|
||||||
|
line-height: 25px !important;
|
||||||
|
height: 25px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除表格内容区间距
|
||||||
|
.el-table__body {
|
||||||
|
padding: 0 !important;
|
||||||
|
|
||||||
|
// 清除行间距
|
||||||
|
.el-table__row {
|
||||||
|
height: 25px !important;
|
||||||
|
line-height: 25px !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除单元格内边距和间距
|
||||||
|
.el-table__cell {
|
||||||
|
padding: 0 4px !important; // 仅保留左右内边距,上下清零
|
||||||
|
height: 25px !important;
|
||||||
|
line-height: 25px !important;
|
||||||
|
vertical-align: middle !important;
|
||||||
|
font-size: 12px;
|
||||||
|
border-bottom: 1px solid #e6e6e6 !important;
|
||||||
|
border-right: 1px solid #e6e6e6 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 最后一列清除右侧边框
|
||||||
|
.el-table__cell:last-child {
|
||||||
|
border-right: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除表格底部间距
|
||||||
|
.el-table__footer {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 编辑输入框适配紧凑布局
|
||||||
|
.edit-input {
|
||||||
|
width: 95%;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
|
||||||
|
:deep(.el-input__inner) {
|
||||||
|
padding: 0 5px;
|
||||||
|
height: 25px !important; // 缩小输入框高度适配紧凑行高
|
||||||
|
line-height: 25px !important;
|
||||||
|
font-size: 12px;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
margin: 0 !important;
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
border-color: #409eff;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
293
src/views/liswork/xtwh/mzcxconfig/index.vue
Normal file
293
src/views/liswork/xtwh/mzcxconfig/index.vue
Normal file
@ -0,0 +1,293 @@
|
|||||||
|
<!-- 系统全局选项 -->
|
||||||
|
<template>
|
||||||
|
<div class="sys_box">
|
||||||
|
<el-row :gutter="10" class="table-toolbar">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary" plain icon="Check" @click="handleSave">保存</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="success" plain icon="Edit" @click="handleCancelEdit">取消修改</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="danger" plain icon="RefreshRight" @click="handleRestoreDefault">还原默认</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<!-- 两列表格容器(修改点1:容器名称调整) -->
|
||||||
|
<div class="double-table-wrapper">
|
||||||
|
<!-- 第一列表格 -->
|
||||||
|
<div class="table-panel table-1">
|
||||||
|
<el-table v-loading="loading" :data="tableData1" @selection-change="handleSelectionChange" class="config-table"
|
||||||
|
fit border height="100%" :cell-spacing="0">
|
||||||
|
<el-table-column label="序号" align="center" prop="configSort" width="50" />
|
||||||
|
<el-table-column :label="`${menuname}名称`" align="left" prop="configName" show-overflow-tooltip
|
||||||
|
min-width="150" />
|
||||||
|
<el-table-column label="参数值" align="center" prop="configDefvalue" show-overflow-tooltip min-width="100">
|
||||||
|
<template #default="scope">
|
||||||
|
<DynamicInput :type="scope.row.configOptiontype" v-model="scope.row.configDefvalue"
|
||||||
|
:dict-data="scope.row.remark" :placeholder="`请输入${scope.row.configName}值`" class="edit-input" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="值码" align="center" prop="configDefvalue" v-if="false" show-overflow-tooltip
|
||||||
|
min-width="100" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 第二列表格(修改点2:保留第二列,删除第三列) -->
|
||||||
|
<div class="table-panel table-2">
|
||||||
|
<el-table v-loading="loading" :data="tableData2" @selection-change="handleSelectionChange" class="config-table"
|
||||||
|
fit border height="100%" :cell-spacing="0">
|
||||||
|
<el-table-column label="序号" align="center" prop="configSort" width="50" />
|
||||||
|
<el-table-column :label="`${menuname}名称`" align="left" prop="configName" show-overflow-tooltip
|
||||||
|
min-width="150" />
|
||||||
|
<el-table-column label="参数值" align="center" prop="configDefvalue" show-overflow-tooltip min-width="100">
|
||||||
|
<template #default="scope">
|
||||||
|
<DynamicInput :type="scope.row.configOptiontype" v-model="scope.row.configDefvalue"
|
||||||
|
:dict-data="scope.row.remark" :placeholder="`请输入${scope.row.configName}值`" class="edit-input" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="值码" align="center" prop="configDefvalue" v-if="false" show-overflow-tooltip
|
||||||
|
min-width="100" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ElMessage, ElTree, TreeNode, ElMessageBox, ElBadge } from 'element-plus'
|
||||||
|
import { paramList, paramTree, getdef, updateParam } from '@/api/liswork/xtwh/ComOpt'
|
||||||
|
import { getFirstLetter } from '@/utils/pinyin'
|
||||||
|
// @ts-ignore
|
||||||
|
import DynamicInput from "@/views/liswork/xtwh/localconfig/components/DynamicInput.vue"
|
||||||
|
|
||||||
|
const yq = ref<string>("_MZCX_")
|
||||||
|
|
||||||
|
interface RegDictItem {
|
||||||
|
configId: string | number
|
||||||
|
configSort: number
|
||||||
|
configCode: string
|
||||||
|
configName: string
|
||||||
|
configDefvalue: string | number
|
||||||
|
configOptiontype: string
|
||||||
|
remark: string
|
||||||
|
}
|
||||||
|
// 列表相关
|
||||||
|
const optiontype = ref<string>("MZCX")
|
||||||
|
const menuname = ref<string>("门诊采血设置")
|
||||||
|
const regdictList = ref<RegDictItem[]>([])
|
||||||
|
const originRegdictList = ref<RegDictItem[]>([])
|
||||||
|
const loading = ref<boolean>(false)
|
||||||
|
const total = ref<number>(0)
|
||||||
|
|
||||||
|
// 选择相关
|
||||||
|
const ids = ref<(string | number)[]>([])
|
||||||
|
const single = ref<boolean>(true)
|
||||||
|
const multiple = ref<boolean>(true)
|
||||||
|
|
||||||
|
// ========== 核心:拆分两列表格数据(修改点3:重新计算拆分规则) ==========
|
||||||
|
const tableData1 = computed<RegDictItem[]>(() => {
|
||||||
|
const splitSize = Math.ceil(total.value / 2) // 修改:按2列均分,计算每列基础行数
|
||||||
|
return regdictList.value.slice(0, splitSize)
|
||||||
|
})
|
||||||
|
|
||||||
|
const tableData2 = computed<RegDictItem[]>(() => {
|
||||||
|
const splitSize = Math.ceil(total.value / 2) // 修改:按2列均分
|
||||||
|
return regdictList.value.slice(splitSize) // 修改:从splitSize开始截取到末尾,无需乘2
|
||||||
|
})
|
||||||
|
|
||||||
|
// 修改点4:删除原tableData3的计算逻辑
|
||||||
|
|
||||||
|
const getList = async (): Promise<void> => {
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const response = await paramList({ yq: yq.value, optiontype: optiontype.value })
|
||||||
|
regdictList.value = JSON.parse(JSON.stringify(response.data))
|
||||||
|
originRegdictList.value = JSON.parse(JSON.stringify(response.data))
|
||||||
|
total.value = response.data.length
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.error(`获取列表异常:${(error as Error).message}`)
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleSelectionChange = (val: RegDictItem[]): void => {
|
||||||
|
ids.value = val.map(item => item.configId)
|
||||||
|
single.value = val.length === 1
|
||||||
|
multiple.value = val.length > 1
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleSave = async (): Promise<void> => {
|
||||||
|
try {
|
||||||
|
loading.value = true
|
||||||
|
// 合并两列表格数据提交(修改点5:删除tableData3的合并)
|
||||||
|
const allData = [...tableData1.value, ...tableData2.value]
|
||||||
|
const res = await updateParam(allData)
|
||||||
|
if (res.code == 0) {
|
||||||
|
ElMessage.success(res.msg || "保存成功")
|
||||||
|
originRegdictList.value = JSON.parse(JSON.stringify(allData))
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.error(`保存失败:${(error as Error).message}`)
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleCancelEdit = (): void => {
|
||||||
|
ElMessageBox.confirm(
|
||||||
|
"是否确认取消所有修改,恢复原始数据?",
|
||||||
|
"提示",
|
||||||
|
{
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}
|
||||||
|
).then(() => {
|
||||||
|
regdictList.value = JSON.parse(JSON.stringify(originRegdictList.value))
|
||||||
|
ElMessage.success("已恢复原始数据!")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleRestoreDefault = async (): Promise<void> => {
|
||||||
|
ElMessageBox.confirm(
|
||||||
|
"是否确认还原所有默认值?此操作会覆盖当前修改!",
|
||||||
|
"警告",
|
||||||
|
{
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "error"
|
||||||
|
}
|
||||||
|
).then(async () => {
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const res = await getdef({ optiontype: optiontype.value })
|
||||||
|
regdictList.value = JSON.parse(JSON.stringify(res.data))
|
||||||
|
originRegdictList.value = JSON.parse(JSON.stringify(res.data))
|
||||||
|
total.value = res.data.length
|
||||||
|
ElMessage.success("还原默认值成功!")
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.error(`还原失败:${(error as Error).message}`)
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
getList()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.sys_box {
|
||||||
|
height: calc(100% - 58px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-toolbar {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
height: 36px;
|
||||||
|
line-height: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 两列表格容器(修改点6:容器样式调整)
|
||||||
|
.double-table-wrapper {
|
||||||
|
flex: 1;
|
||||||
|
height: calc(100% - 45px); // 减去标题行+工具栏高度
|
||||||
|
display: flex;
|
||||||
|
gap: 0px; // 表格间间距
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
// 单个表格面板
|
||||||
|
.table-panel {
|
||||||
|
flex: 1; // 两列均等分
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid #e6e6e6;
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
// 细微间距优化(修改点7:调整两列的间距样式)
|
||||||
|
&.table-1 {
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.table-2 {
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 核心:清除表格内上下间隙
|
||||||
|
:deep(.config-table) {
|
||||||
|
// 清除表格整体的边框间距
|
||||||
|
border-collapse: collapse !important;
|
||||||
|
border-spacing: 0 !important;
|
||||||
|
|
||||||
|
// 清除表格头部间距
|
||||||
|
.el-table__header {
|
||||||
|
padding: 0 !important;
|
||||||
|
|
||||||
|
th {
|
||||||
|
padding: 0 !important;
|
||||||
|
border-bottom: 1px solid #e6e6e6 !important;
|
||||||
|
line-height: 25px !important;
|
||||||
|
height: 25px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除表格内容区间距
|
||||||
|
.el-table__body {
|
||||||
|
padding: 0 !important;
|
||||||
|
|
||||||
|
// 清除行间距
|
||||||
|
.el-table__row {
|
||||||
|
height: 25px !important;
|
||||||
|
line-height: 25px !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除单元格内边距和间距
|
||||||
|
.el-table__cell {
|
||||||
|
padding: 0 4px !important; // 仅保留左右内边距,上下清零
|
||||||
|
height: 25px !important;
|
||||||
|
line-height: 25px !important;
|
||||||
|
vertical-align: middle !important;
|
||||||
|
font-size: 12px;
|
||||||
|
border-bottom: 1px solid #e6e6e6 !important;
|
||||||
|
border-right: 1px solid #e6e6e6 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 最后一列清除右侧边框
|
||||||
|
.el-table__cell:last-child {
|
||||||
|
border-right: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除表格底部间距
|
||||||
|
.el-table__footer {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 编辑输入框适配紧凑布局
|
||||||
|
.edit-input {
|
||||||
|
width: 95%;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
|
||||||
|
:deep(.el-input__inner) {
|
||||||
|
padding: 0 5px;
|
||||||
|
height: 25px !important; // 缩小输入框高度适配紧凑行高
|
||||||
|
line-height: 25px !important;
|
||||||
|
font-size: 12px;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
margin: 0 !important;
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
border-color: #409eff;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
x
Reference in New Issue
Block a user