From 153404ffa0a9c6d23d2c2732b46fa6929e86294f Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 18 六月 2025 13:56:18 +0800
Subject: [PATCH] 111
---
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