From 9057e04efad1b7d61c77a72e5c37a504d0aee935 Mon Sep 17 00:00:00 2001 From: doum <doum> Date: 星期五, 26 九月 2025 09:24:03 +0800 Subject: [PATCH] H5静态化 --- admin/src/views/system/role.vue | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 105 insertions(+), 0 deletions(-) diff --git a/admin/src/views/system/role.vue b/admin/src/views/system/role.vue new file mode 100644 index 0000000..de43986 --- /dev/null +++ b/admin/src/views/system/role.vue @@ -0,0 +1,105 @@ +<template> + <TableLayout :permissions="['system:role:query']"> + <!-- 鎼滅储琛ㄥ崟 --> + <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> + <el-form-item label="瑙掕壊缂栫爜" prop="code"> + <el-input v-model="searchForm.code" v-trim placeholder="璇疯緭鍏ヨ鑹茬紪鐮�" @keypress.enter.native="search"/> + </el-form-item> + <el-form-item label="瑙掕壊鍚嶇О" prop="name"> + <el-input v-model="searchForm.name" v-trim placeholder="璇疯緭鍏ヨ鑹插悕绉�" @keypress.enter.native="search"/> + </el-form-item> + <section> + <el-button type="primary" icon="el-icon-search" @click="search">鎼滅储</el-button> + <el-button @click="reset">閲嶇疆</el-button> + </section> + </el-form> + <!-- 琛ㄦ牸鍜屽垎椤� --> + <template v-slot:table-wrap> + <ul class="toolbar" v-permissions="['system:role:create', 'system:role:delete']"> + <li v-permissions="['system:role:create']"><el-button type="primary" @click="$refs.operaRoleWindow.open('鏂板缓瑙掕壊')" icon="el-icon-plus">鏂板缓</el-button></li> + <li v-permissions="['system:role:delete']"><el-button @click="deleteByIdInBatch" icon="el-icon-delete">鍒犻櫎</el-button></li> + </ul> + <el-table + :height="tableHeightNew" + v-loading="isWorking.search" + :data="tableData.list" + :default-sort = "{prop: 'createTime', order: 'descending'}" + stripe + @selection-change="handleSelectionChange" + @sort-change="handleSortChange" + > + <el-table-column type="selection" fixed="left" width="55"></el-table-column> + <el-table-column prop="code" label="瑙掕壊缂栫爜" fixed="left" min-width="100px"></el-table-column> + <el-table-column prop="name" label="瑙掕壊鍚嶇О" fixed="left" min-width="100px"></el-table-column> + <el-table-column prop="remark" label="瑙掕壊澶囨敞" min-width="120px"></el-table-column> + <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px"> + <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template> + </el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px" sortable="custom" sort-by="role.CREATE_TIME"></el-table-column> + <el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px"> + <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template> + </el-table-column> + <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="140px"></el-table-column> + <el-table-column + v-if="containPermissions(['system:role:update', 'system:role:createRolePermission', 'system:role:createRoleMenu', 'system:role:delete'])" + label="鎿嶄綔" + min-width="270" + fixed="right" + > + <template v-if="isAdmin || (row.code !== adminCode && userInfo.roles.findIndex(code => code === row.code) === -1)" slot-scope="{row}"> + <el-button type="text" @click="$refs.operaRoleWindow.open('缂栬緫瑙掕壊', row)" icon="el-icon-edit" v-permissions="['system:role:update']">缂栬緫</el-button> + <el-button type="text" @click="$refs.permissionConfigWindow.open(row)" v-permissions="['system:role:createRolePermission']">閰嶇疆鏉冮檺</el-button> + <el-button type="text" @click="$refs.menuConfigWindow.open(row)" icon="el-icon-menu" v-permissions="['system:role:createRoleMenu']">鎺堟潈鑿滃崟</el-button> + <el-button v-if="!row.fixed" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:role:delete']">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + <pagination + @size-change="handleSizeChange" + @current-change="handlePageChange" + :pagination="tableData.pagination" + ></pagination> + </template> + <!-- 鏂板缓/淇敼 --> + <OperaRoleWindow ref="operaRoleWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/> + <!-- 閰嶇疆鏉冮檺 --> + <PermissionConfigWindow ref="permissionConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/> + <!-- 鎺堟潈鑿滃崟 --> + <MenuConfigWindow ref="menuConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/> + </TableLayout> +</template> + +<script> +import Pagination from '@/components/common/Pagination' +import TableLayout from '@/layouts/TableLayout' +import BaseTable from '@/components/base/BaseTable' +import OperaRoleWindow from '@/components/system/role/OperaRoleWindow' +import PermissionConfigWindow from '@/components/system/role/PermissionConfigWindow' +import MenuConfigWindow from '@/components/system/role/MenuConfigWindow' +export default { + name: 'SystemRole', + extends: BaseTable, + components: { MenuConfigWindow, PermissionConfigWindow, OperaRoleWindow, TableLayout, Pagination }, + data () { + return { + // 鎼滅储 + searchForm: { + code: '', + name: '', + remark: '' + } + } + }, + created () { + this.config({ + module: '瑙掕壊', + api: '/system/role', + sorts: [{ + property: 'role.CREATE_TIME', + direction: 'DESC' + }] + }) + this.search() + } +} +</script> -- Gitblit v1.9.3