Browse Source

权限下半完成

lihuilin/feature-20250815155204-金币优化
lihuilin 3 weeks ago
parent
commit
5334f9d5fc
  1. 53
      src/views/permissions/rolePermission.vue
  2. 13
      src/views/permissions/userPermission.vue
  3. 2
      src/views/refund/gold/addCoinRefund.vue
  4. 4
      src/views/refund/gold/coinRefund.vue
  5. 4
      src/views/refund/gold/coinRefundDetail.vue
  6. 4
      src/views/usergold/gold/clientCount.vue

53
src/views/permissions/rolePermission.vue

@ -240,23 +240,10 @@ const getLists = async function () {
data: { id: roleId } data: { id: roleId }
}) })
data.value = res.data data.value = res.data
// let originalData = res.data.filter(item => item.id !== 9);
//
// data.value = filterGoldenBeanMenus(originalData);
// data.value = data.value.filter(item => item.id !== 9);
data.value = data.value.filter(item => item.id !== 9);
data.value = filterPermission(data.value)
console.log('看看data', data.value) console.log('看看data', data.value)
console.log('parentID:', addRole.value.parentId, 'roleId:', roleId) console.log('parentID:', addRole.value.parentId, 'roleId:', roleId)
/* // 根据地区过滤金豆菜单
if (addRole.value.market !== '总部') {
//
originalData = filterGoldenBeanMenus(originalData);
}
data.value = originalData; // */
if (addRole.value.parentId && addRole.value.parentId !== 2) { if (addRole.value.parentId && addRole.value.parentId !== 2) {
const result = await API({ const result = await API({
url: '/general/roleMarket', url: '/general/roleMarket',
@ -290,11 +277,15 @@ const getLists = async function () {
// //
const goldenBeanMenuIds = new Set([ const goldenBeanMenuIds = new Set([
43, 55, 54, // ->
41, 47, 46, 48, // ->
42, 50, 49, 52, 51, // ->
45, 53 // ->
permissionMapping.beanAudit,
permissionMapping.beanRecharge,
permissionMapping.beanConsume,
permissionMapping.beanDetail
]) ])
// 15,43,44,45,46,47,//
// 18,52,53,54,//
// 20,57,58,59,60,//
// 23//
const filterGoldenBeanMenus = (tree) => { const filterGoldenBeanMenus = (tree) => {
return tree return tree
.filter(item => { .filter(item => {
@ -309,6 +300,18 @@ const filterGoldenBeanMenus = (tree) => {
return true return true
}) })
} }
// (????????)
const filterPermission = (tree) => {
return tree.filter(item =>{
if(item.id === permissionMapping.permissionManage){
return false
}
else if(item.children && item.children.length > 0){
item.children = filterPermission(item.children)
}
return true
})
}
// //
const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => { const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => {
const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo
@ -436,8 +439,8 @@ const permissionEditRoleInit = async function (row) {
data: { id: roleId } data: { id: roleId }
}); });
data.value = res.data; data.value = res.data;
data.value = data.value.filter(item => item.id !== 9);
data.value = filterGoldenBeanMenus(data.value);
data.value = filterPermission(data.value)
//data.value = filterGoldenBeanMenus(data.value);
// id // id
if (row.tree && row.tree.length > 0) { if (row.tree && row.tree.length > 0) {
@ -571,7 +574,9 @@ const Rolerules = reactive({
const throttledHandleAddRole = _.throttle(handleAddRole, 5000, { const throttledHandleAddRole = _.throttle(handleAddRole, 5000, {
trailing: false trailing: false
}) })
const canLook = findMenuById(menuTree.value,permissionMapping.roleManageShow)
const canAdd = findMenuById(menuTree.value, permissionMapping.addRoleInfo)
const canEdit = findMenuById(menuTree.value, permissionMapping.editRoleInfo)
// //
onMounted(async function () { onMounted(async function () {
await getRoleList() await getRoleList()
@ -587,14 +592,14 @@ onMounted(async function () {
<el-input v-model="role.name" style="width: 240px" placeholder="请输入角色名称" clearable /> <el-input v-model="role.name" style="width: 240px" placeholder="请输入角色名称" clearable />
<div style="margin-left: auto;"> <div style="margin-left: auto;">
<el-button type="success" @click="reset()">重置</el-button> <el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="searchRole()">查询</el-button>
<el-button type="primary" @click="searchRole()" :disabled="canLook" v-if="canLook">查询</el-button>
</div> </div>
</div> </div>
</el-card> </el-card>
<el-card> <el-card>
<div class="add-item"> <div class="add-item">
<el-button style="color: #048efb; border: 1px solid #048efb" @click="permissionAddInit()">新增角色</el-button>
<el-button style="color: #048efb; border: 1px solid #048efb" @click="permissionAddInit()" :disabled="!canAdd" v-if="canAdd">新增角色</el-button>
</div> </div>
<div> <div>
<el-table :data="roleData" style="width: 100%" show-overflow-tooltip> <el-table :data="roleData" style="width: 100%" show-overflow-tooltip>
@ -621,7 +626,7 @@ onMounted(async function () {
</el-table-column> </el-table-column>
<el-table-column prop="operation" label="操作" width="200px"> <el-table-column prop="operation" label="操作" width="200px">
<template #default="scope"> <template #default="scope">
<el-button type="warning" text @click="permissionEditRoleInit(scope.row)" :disabled="(scope.row.id === 2)|| (scope.row.id === 1)">
<el-button type="warning" text @click="permissionEditRoleInit(scope.row)" :disabled="(scope.row.id === 2)|| (scope.row.id === 1) || !canEdit" v-if="canEdit">
编辑 编辑
</el-button> </el-button>
</template> </template>

13
src/views/permissions/userPermission.vue

@ -891,6 +891,7 @@ const throttledPermissionEdit = _.throttle(permissionEdit, 5000, {
const throttledPermissionAdd = _.throttle(permissionAdd, 5000, { const throttledPermissionAdd = _.throttle(permissionAdd, 5000, {
trailing: false trailing: false
}) })
const canLook = findMenuById(menuTree.value, permissionMapping.userManageShow)//
const canAdd = findMenuById(menuTree.value, permissionMapping.addUserInfo) const canAdd = findMenuById(menuTree.value, permissionMapping.addUserInfo)
const canEdit = findMenuById(menuTree.value, permissionMapping.editUserInfo) const canEdit = findMenuById(menuTree.value, permissionMapping.editUserInfo)
const canReset = findMenuById(menuTree.value, permissionMapping.updateUserInfo) const canReset = findMenuById(menuTree.value, permissionMapping.updateUserInfo)
@ -930,14 +931,14 @@ onMounted(async function () {
<div class="head-card-btn"> <div class="head-card-btn">
<el-button type="success" @click="reset()">重置</el-button> <el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">查询</el-button>
<el-button type="primary" @click="search()" v-if="canLook">查询</el-button>
</div> </div>
</div> </div>
</el-card> </el-card>
<el-card> <el-card>
<!-- 展示表单 --> <!-- 展示表单 -->
<div class="add-item"> <div class="add-item">
<el-button style="color: #048efb; border: 1px solid #048efb" :disabled="!canAdd" @click="userAddInit()">新增用户</el-button>
<el-button style="color: #048efb; border: 1px solid #048efb" :disabled="!canAdd" v-if="canAdd" @click="userAddInit()">新增用户</el-button>
</div> </div>
<div> <div>
@ -959,16 +960,16 @@ onMounted(async function () {
<el-table-column prop="remark" label="备注" /> <el-table-column prop="remark" label="备注" />
<el-table-column prop="operation" label="操作" width="280px"> <el-table-column prop="operation" label="操作" width="280px">
<template #default="scope"> <template #default="scope">
<el-button type="warning" text :disabled="!canReset" @click="resetPassword(scope.row)">
<el-button type="warning" text :disabled="!canReset" @click="resetPassword(scope.row)" v-if="canReset">
重置密码 重置密码
</el-button> </el-button>
<el-button type="primary" text @click="permissionEditInit(scope.row)"
<el-button type="primary" text @click="permissionEditInit(scope.row)" v-if="canEdit"
:disabled="!canEdit || scope.row.adminStatus === 0 || scope.row.account === adminData.account"> :disabled="!canEdit || scope.row.adminStatus === 0 || scope.row.account === adminData.account">
修改权限 修改权限
</el-button> </el-button>
<el-popconfirm title="确定将此用户删除吗?" @confirm="delConfirm"> <el-popconfirm title="确定将此用户删除吗?" @confirm="delConfirm">
<template #reference> <template #reference>
<el-button type="danger" text @click="del(scope.row)"
<el-button type="danger" text @click="del(scope.row)" v-if="canDel"
:disabled="!canDel ||scope.row.adminStatus === 0 || scope.row.account === adminData.account"> :disabled="!canDel ||scope.row.adminStatus === 0 || scope.row.account === adminData.account">
删除 删除
</el-button> </el-button>
@ -984,7 +985,7 @@ onMounted(async function () {
</el-table-column> </el-table-column>
<el-table-column prop="adminStatus" label="状态"> <el-table-column prop="adminStatus" label="状态">
<template #default="scope"> <template #default="scope">
<el-switch :model-value="scope.row.adminStatus" :active-value="1" :inactive-value="0" size="large"
<el-switch :model-value="scope.row.adminStatus" :active-value="1" :inactive-value="0" size="large" v-if="change"
:disabled="!change || scope.row.account === adminData.account || statusLoading[scope.row.id]" :disabled="!change || scope.row.account === adminData.account || statusLoading[scope.row.id]"
@change="(targetStatus) => showStatusConfirm(scope.row, targetStatus)" style=" @change="(targetStatus) => showStatusConfirm(scope.row, targetStatus)" style="
--el-switch-on-color: #13ce66; --el-switch-on-color: #13ce66;

2
src/views/refund/gold/addCoinRefund.vue

@ -502,7 +502,7 @@ onMounted(() =>{
</div> </div>
<el-button type="success" @click="cancel()" style="margin-left: 200px">重置</el-button> <el-button type="success" @click="cancel()" style="margin-left: 200px">重置</el-button>
<el-button type="primary" :disabled="addDisabled" @click="addBefore"> 提交</el-button>
<el-button type="primary" :disabled="addDisabled" @click="addBefore" v-if="findMenuById(menuTree.value,permissionMapping.addCoinRefund)"> 提交</el-button>
</el-form> </el-form>
</div> </div>
</div> </div>

4
src/views/refund/gold/coinRefund.vue

@ -3,12 +3,12 @@
<!-- 这里放置标签切换的按钮 --> <!-- 这里放置标签切换的按钮 -->
<el-button-group> <el-button-group>
<el-button :type="activeTab === 'coinRefundDetail' ? 'primary' : 'default'" <el-button :type="activeTab === 'coinRefundDetail' ? 'primary' : 'default'"
@click="navigateTo('coinRefundDetail')" :disabled="!hasDetail">
@click="navigateTo('coinRefundDetail')" :disabled="!hasDetail" v-if="hasDetail">
金币退款明细 金币退款明细
</el-button> </el-button>
<!-- 切换后状态显示 primary 样式否则是默认样式 --> <!-- 切换后状态显示 primary 样式否则是默认样式 -->
<el-button :type="activeTab === 'addCoinRefund' ? 'primary' : 'default'" @click="navigateTo('addCoinRefund')" <el-button :type="activeTab === 'addCoinRefund' ? 'primary' : 'default'" @click="navigateTo('addCoinRefund')"
:disabled="!hasAdd">
:disabled="!hasAdd" v-if="hasAdd">
新增退款 新增退款
</el-button> </el-button>
</el-button-group> </el-button-group>

4
src/views/refund/gold/coinRefundDetail.vue

@ -14,7 +14,7 @@ import dayjs from "dayjs";
const adminStore = useAdminStore(); const adminStore = useAdminStore();
const { adminData, menuTree } = storeToRefs(adminStore); const { adminData, menuTree } = storeToRefs(adminStore);
const showEmployeeData = ref(false) const showEmployeeData = ref(false)
const canLook = findMenuById(menuTree.value,permissionMapping.coinRefundDetail)
const defaultTime = [ const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 0, 0, 0),
@ -544,7 +544,7 @@ const getMarket = async function () {
</el-button> </el-button>
<el-button type="success" @click="reset()">重置</el-button> <el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">查询</el-button>
<el-button type="primary" @click="search()" v-if="canLook">查询</el-button>
<el-button type="primary" @click="exportExcel">导出Excel</el-button> <el-button type="primary" @click="exportExcel">导出Excel</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button> <el-button type="primary" @click="openExportList">查看导出列表</el-button>
</div> </div>

4
src/views/usergold/gold/clientCount.vue

@ -6,14 +6,14 @@
<el-button <el-button
:type="activeTab === 'clientCountDetail' ? 'primary' : 'default'" :type="activeTab === 'clientCountDetail' ? 'primary' : 'default'"
@click="navigateTo('clientCountDetail')" @click="navigateTo('clientCountDetail')"
:disabled="!hasDetail"
:disabled="!hasDetail" v-if="hasDetail"
> >
金币明细 金币明细
</el-button> </el-button>
<el-button <el-button
:type="activeTab === 'clientCountBalance' ? 'primary' : 'default'" :type="activeTab === 'clientCountBalance' ? 'primary' : 'default'"
@click="navigateTo('clientCountBalance')" @click="navigateTo('clientCountBalance')"
:disabled="!hasBalance"
:disabled="!hasBalance" v-if="hasBalance"
> >
金币余额 金币余额
</el-button> </el-button>

Loading…
Cancel
Save