From 654aa6b30ccd30ef1efc0d083a2f48a8d8287a4e Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期三, 06 一月 2021 17:30:39 +0800 Subject: [PATCH] 表格右侧工具栏组件支持显隐列 --- /dev/null | 3 - ruoyi-ui/src/components/FileUpload/index.vue | 1 ruoyi-ui/src/views/system/user/index.vue | 26 +++++++++---- ruoyi-ui/src/components/RightToolbar/index.vue | 50 +++++++++++++++++++++++-- 4 files changed, 65 insertions(+), 15 deletions(-) diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue index 841d3ae..d19a012 100644 --- a/ruoyi-ui/src/components/FileUpload/index.vue +++ b/ruoyi-ui/src/components/FileUpload/index.vue @@ -90,6 +90,7 @@ return item; }); } else { + this.fileList = []; return []; } }, diff --git a/ruoyi-ui/src/components/RightToolbar/index.vue b/ruoyi-ui/src/components/RightToolbar/index.vue index 73d2dcc..9bf9722 100644 --- a/ruoyi-ui/src/components/RightToolbar/index.vue +++ b/ruoyi-ui/src/components/RightToolbar/index.vue @@ -1,4 +1,3 @@ -<!-- @author Shiyn/ huangmx 20200807优化--> <template> <div class="top-right-btn"> <el-row> @@ -8,31 +7,74 @@ <el-tooltip class="item" effect="dark" content="刷新" placement="top"> <el-button size="mini" circle icon="el-icon-refresh" @click="refresh()" /> </el-tooltip> + <el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns"> + <el-button size="mini" circle icon="el-icon-menu" @click="showColumn()" /> + </el-tooltip> </el-row> + <el-dialog :title="title" :visible.sync="open" append-to-body> + <el-transfer + :titles="['显示', '隐藏']" + v-model="value" + :data="columns" + @change="dataChange" + ></el-transfer> + </el-dialog> </div> </template> <script> export default { name: "RightToolbar", data() { - return {}; + return { + // 显隐数据 + value: [], + // 弹出层标题 + title: "显示/隐藏", + // 是否显示弹出层 + open: false, + }; }, props: { showSearch: { type: Boolean, default: true, }, + columns: { + type: Array, + }, }, methods: { - //搜索 + // 搜索 toggleSearch() { this.$emit("update:showSearch", !this.showSearch); }, - //刷新 + // 刷新 refresh() { this.$emit("queryTable"); + }, + // 右侧列表元素变化 + dataChange(data) { + for (var item in this.columns) { + const key = this.columns[item].key; + this.columns[item].visible = !data.includes(key); + } + }, + // 打开显隐列dialog + showColumn() { + this.open = true; }, }, }; </script> +<style lang="scss" scoped> +::v-deep .el-transfer__button { + border-radius: 50%; + padding: 12px; + display: block; + margin-left: 0px; +} +::v-deep .el-transfer__button:first-child { + margin-bottom: 10px; +} +</style> diff --git a/ruoyi-ui/src/layout/components/global.js b/ruoyi-ui/src/layout/components/global.js deleted file mode 100644 index 5d2b5b3..0000000 --- a/ruoyi-ui/src/layout/components/global.js +++ /dev/null @@ -1,3 +0,0 @@ -import Vue from 'vue' -const global = new Vue() -export default global diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 5399b34..078f840 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -135,17 +135,17 @@ v-hasPermi="['system:user:export']" >导出</el-button> </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> </el-row> <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="50" align="center" /> - <el-table-column label="用户编号" align="center" prop="userId" /> - <el-table-column label="用户名称" align="center" prop="userName" :show-overflow-tooltip="true" /> - <el-table-column label="用户昵称" align="center" prop="nickName" :show-overflow-tooltip="true" /> - <el-table-column label="部门" align="center" prop="dept.deptName" :show-overflow-tooltip="true" /> - <el-table-column label="手机号码" align="center" prop="phonenumber" width="120" /> - <el-table-column label="状态" align="center"> + <el-table-column label="用户编号" align="center" prop="userId" v-if="columns[0].visible" /> + <el-table-column label="用户名称" align="center" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" /> + <el-table-column label="用户昵称" align="center" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" /> + <el-table-column label="部门" align="center" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" /> + <el-table-column label="手机号码" align="center" prop="phonenumber" v-if="columns[4].visible" width="120" /> + <el-table-column label="状态" align="center" v-if="columns[5].visible"> <template slot-scope="scope"> <el-switch v-model="scope.row.status" @@ -155,7 +155,7 @@ ></el-switch> </template> </el-table-column> - <el-table-column label="创建时间" align="center" prop="createTime" width="160"> + <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160"> <template slot-scope="scope"> <span>{{ parseTime(scope.row.createTime) }}</span> </template> @@ -418,6 +418,16 @@ status: undefined, deptId: undefined }, + // 列信息 + columns: [ + { key: 0, label: `用户编号`, visible: true }, + { key: 1, label: `用户名称`, visible: true }, + { key: 2, label: `用户昵称`, visible: true }, + { key: 3, label: `部门`, visible: true }, + { key: 4, label: `手机号码`, visible: true }, + { key: 5, label: `状态`, visible: true }, + { key: 6, label: `创建时间`, visible: true } + ], // 表单校验 rules: { userName: [ -- Gitblit v1.9.2