From b78c039181ac316964a0f0de077170de178d90ab Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期三, 27 七月 2022 15:14:25 +0800 Subject: [PATCH] 更新 --- src/views/system/dic/index.vue | 343 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 202 insertions(+), 141 deletions(-) diff --git a/src/views/system/dic/index.vue b/src/views/system/dic/index.vue index 034140c..845e64e 100644 --- a/src/views/system/dic/index.vue +++ b/src/views/system/dic/index.vue @@ -1,57 +1,102 @@ <template> - <div class="system-dic-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-input size="default" placeholder="请输入字典名称" style="max-width: 180px"> </el-input> - <el-button size="default" type="primary" class="ml10"> - <el-icon> - <ele-Search /> - </el-icon> - 查询 - </el-button> - <el-button size="default" type="success" class="ml10" @click="onOpenAddDic"> - <el-icon> - <ele-FolderAdd /> - </el-icon> - 新增字典 - </el-button> - </div> - <el-table :data="tableData.data" style="width: 100%"> - <el-table-column type="index" label="序号" width="50" /> - <el-table-column prop="dicName" label="字典名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="fieldName" label="字段名" show-overflow-tooltip></el-table-column> - <el-table-column prop="status" label="字典状态" show-overflow-tooltip> - <template #default="scope"> - <el-tag type="success" v-if="scope.row.status">启用</el-tag> - <el-tag type="info" v-else>禁用</el-tag> - </template> - </el-table-column> - <el-table-column prop="describe" label="字典描述" show-overflow-tooltip></el-table-column> - <el-table-column prop="createTime" label="创建时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="100"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenEditDic(scope.row)">修改</el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - class="mt15" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="tableData.param.pageNum" - background - v-model:page-size="tableData.param.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="tableData.total" - > - </el-pagination> - </el-card> - <AddDic ref="addDicRef" /> - <EditDic ref="editDicRef" /> - </div> + <div class="system-dic-container"> + <el-card shadow="hover"> + <el-row :gutter="10"> + <el-col :xs="24" :sm="24" :md="10" :lg="10" :xl="10"> + <el-card class="box-card"> + <div class="box-card-header"> + <span>字典类型</span> + </div> + <div class="box-card-body"> + <div class="box-card-body-filter"> + <el-input class="input-box" placeholder="输入名称" @keyup.enter.native="queryHandle('dictionaryType')" /> + <el-button type="success" @click="showCreateHandle('dictionaryType')">新增</el-button> + <el-button type="primary" @click="showCreateHandle('dictionaryType')">搜索</el-button> + </div> + <div class="table-content"> + <el-table :data="tableData.data" style="width: 100%"> + <el-table-column type="index" label="序号" width="50" /> + <el-table-column prop="dicName" label="字典名称" show-overflow-tooltip></el-table-column> + <el-table-column prop="fieldName" label="字段名" show-overflow-tooltip></el-table-column> + <el-table-column prop="describe" label="字典描述" show-overflow-tooltip></el-table-column> + <el-table-column prop="createTime" label="创建时间" show-overflow-tooltip></el-table-column> + <el-table-column label="操作" width="100"> + <template #default="scope"> + <el-button size="small" text type="primary" @click="onOpenEditDic(scope.row)">修改</el-button> + <el-button size="small" text type="primary" @click="onRowDel(scope.row)">删除</el-button> + </template> + </el-table-column> + </el-table> + <br /> + <el-pagination + @size-change="onHandleSizeChange" + @current-change="onHandleCurrentChange" + class="page-position" + :pager-count="5" + :page-sizes="[10, 20, 30]" + v-model:current-page="tableData.param.pageNum" + background + v-model:page-size="tableData.param.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="tableData.total" + > + </el-pagination> + <br /> + <br /> + </div> + </div> + </el-card> + </el-col> + <el-col :xs="24" :sm="24" :md="14" :lg="14" :xl="14"> + <el-card class="box-card"> + <div class="box-card-header"> + <span>字典详情 </span> + </div> + <div class="box-card-body"> + <div class="box-card-body-filter"> + <el-input class="input-box" placeholder="输入名称" @keyup.enter.native="queryHandle('dictionaryType')" /> + <el-button type="success" @click="showCreateHandle('dictionaryType')">新增</el-button> + <el-button type="primary" @click="showCreateHandle('dictionaryType')">搜索</el-button> + </div> + <div class="table-content"> + <el-table :data="tableData.data" style="width: 100%"> + <el-table-column type="index" label="序号" width="50" /> + <el-table-column prop="dicName" label="字典名称" show-overflow-tooltip></el-table-column> + <el-table-column prop="fieldName" label="字段名" show-overflow-tooltip></el-table-column> + <el-table-column prop="describe" label="字典描述" show-overflow-tooltip></el-table-column> + <el-table-column prop="createTime" label="创建时间" show-overflow-tooltip></el-table-column> + <el-table-column label="操作" width="100"> + <template #default="scope"> + <el-button size="small" text type="primary" @click="onOpenEditDic(scope.row)">修改</el-button> + <el-button size="small" text type="primary" @click="onRowDel(scope.row)">删除</el-button> + </template> + </el-table-column> + </el-table> + <br /> + <el-pagination + @size-change="onHandleSizeChange" + @current-change="onHandleCurrentChange" + class="page-position" + :pager-count="5" + :page-sizes="[10, 20, 30]" + v-model:current-page="tableData.param.pageNum" + background + v-model:page-size="tableData.param.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="tableData.total" + > + </el-pagination> + <br /> + <br /> + </div> + </div> + </el-card> + </el-col> + </el-row> + </el-card> + <AddDic ref="addDicRef" /> + <EditDic ref="editDicRef" /> + </div> </template> <script lang="ts"> @@ -62,98 +107,114 @@ // 定义接口来定义对象的类型 interface TableDataRow { - dicName: string; - fieldName: string; - describe: string; - status: boolean; - createTime: string; + dicName: string; + fieldName: string; + describe: string; + status: boolean; + createTime: string; } interface TableDataState { - tableData: { - data: Array<TableDataRow>; - total: number; - loading: boolean; - param: { - pageNum: number; - pageSize: number; - }; - }; + tableData: { + data: Array<TableDataRow>; + total: number; + loading: boolean; + param: { + pageNum: number; + pageSize: number; + }; + }; } export default defineComponent({ - name: 'systemDic', - components: { AddDic, EditDic }, - setup() { - const addDicRef = ref(); - const editDicRef = ref(); - const state = reactive<TableDataState>({ - tableData: { - data: [], - total: 0, - loading: false, - param: { - pageNum: 1, - pageSize: 10, - }, - }, - }); - // 初始化表格数据 - const initTableData = () => { - const data: Array<TableDataRow> = []; - for (let i = 0; i < 2; i++) { - data.push({ - dicName: i === 0 ? '角色标识' : '用户性别', - fieldName: i === 0 ? 'SYS_ROLE' : 'SYS_UERINFO', - describe: i === 0 ? '这是角色字典' : '这是用户性别字典', - status: true, - createTime: new Date().toLocaleString(), - }); - } - state.tableData.data = data; - state.tableData.total = state.tableData.data.length; - }; - // 打开新增字典弹窗 - const onOpenAddDic = () => { - addDicRef.value.openDialog(); - }; - // 打开修改字典弹窗 - const onOpenEditDic = (row: TableDataRow) => { - editDicRef.value.openDialog(row); - }; - // 删除字典 - const onRowDel = (row: TableDataRow) => { - ElMessageBox.confirm(`此操作将永久删除字典名称:“${row.dicName}”,是否继续?`, '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - ElMessage.success('删除成功'); - }) - .catch(() => {}); - }; - // 分页改变 - const onHandleSizeChange = (val: number) => { - state.tableData.param.pageSize = val; - }; - // 分页改变 - const onHandleCurrentChange = (val: number) => { - state.tableData.param.pageNum = val; - }; - // 页面加载时 - onMounted(() => { - initTableData(); - }); - return { - addDicRef, - editDicRef, - onOpenAddDic, - onOpenEditDic, - onRowDel, - onHandleSizeChange, - onHandleCurrentChange, - ...toRefs(state), - }; - }, + name: 'systemDic', + components: { AddDic, EditDic }, + setup() { + const addDicRef = ref(); + const editDicRef = ref(); + const state = reactive<TableDataState>({ + tableData: { + data: [], + total: 0, + loading: false, + param: { + pageNum: 1, + pageSize: 10 + } + } + }); + // 初始化表格数据 + const initTableData = () => { + const data: Array<TableDataRow> = []; + for (let i = 0; i < 2; i++) { + data.push({ + dicName: i === 0 ? '角色标识' : '用户性别', + fieldName: i === 0 ? 'SYS_ROLE' : 'SYS_UERINFO', + describe: i === 0 ? '这是角色字典' : '这是用户性别字典', + status: true, + createTime: new Date().toLocaleString() + }); + } + state.tableData.data = data; + state.tableData.total = state.tableData.data.length; + }; + // 打开新增字典弹窗 + const onOpenAddDic = () => { + addDicRef.value.openDialog(); + }; + // 打开修改字典弹窗 + const onOpenEditDic = (row: TableDataRow) => { + editDicRef.value.openDialog(row); + }; + // 删除字典 + const onRowDel = (row: TableDataRow) => { + ElMessageBox.confirm(`此操作将永久删除字典名称:“${row.dicName}”,是否继续?`, '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + ElMessage.success('删除成功'); + }) + .catch(() => {}); + }; + // 分页改变 + const onHandleSizeChange = (val: number) => { + state.tableData.param.pageSize = val; + }; + // 分页改变 + const onHandleCurrentChange = (val: number) => { + state.tableData.param.pageNum = val; + }; + // 页面加载时 + onMounted(() => { + initTableData(); + }); + return { + addDicRef, + editDicRef, + onOpenAddDic, + onOpenEditDic, + onRowDel, + onHandleSizeChange, + onHandleCurrentChange, + ...toRefs(state) + }; + } }); </script> +<style scoped lang="scss"> +.box-card { + padding: 0 !important; + .box-card-header { + padding-bottom: 18px; + border-bottom: 1px solid #ebeef5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-size: 16px; + width: 100%; + } + .box-card-body { + padding-top: 18px; + } +} +</style> -- Gitblit v1.9.2