From f7f647a20cca0d106473e6a862b85d89a7a93d19 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期四, 01 十二月 2022 10:59:06 +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