Browse Source

太多了

youhua/chongzhi
lihuilin 2 months ago
parent
commit
8c4ef4b7fe
  1. 6
      src/views/audit/gold/rechargeAudit.vue
  2. 370
      src/views/permissions/rolePermission.vue
  3. 5
      src/views/recharge/bean/beanOnlineRecharge.vue
  4. 4
      src/views/recharge/gold/coinRechargeDetail.vue
  5. 8
      src/views/refund/gold/coinRefundDetail.vue

6
src/views/audit/gold/rechargeAudit.vue

@ -42,9 +42,9 @@
总条数{{ format3(stats.totalNum) }}     总条数{{ format3(stats.totalNum) }}    
充值新币{{ format3(stats.permanentGolds) }}新币     充值新币{{ format3(stats.permanentGolds) }}新币    
总金币数{{ format3(stats.permanentGolds + stats.freeGolds + stats.taskGolds) }}金币    
永久金币{{ format3(stats.permanentGolds) }}金币    
免费金币{{ format3(stats.freeGolds) }}金币    
总金币数{{ format3((stats.permanentGolds + stats.freeGolds + stats.taskGolds).toFixed(2)) }}金币    
永久金币{{ format3(stats.permanentGolds.toFixed(2)) }}金币    
免费金币{{ format3(stats.freeGolds.toFixed(2)) }}金币    
</div> </div>
</el-tabs> </el-tabs>
<el-table :data="tableData" style="width: 100vw;height:55vh" @sort-change="handleSortChange" <el-table :data="tableData" style="width: 100vw;height:55vh" @sort-change="handleSortChange"

370
src/views/permissions/rolePermission.vue

@ -1,62 +1,45 @@
<script setup> <script setup>
import {nextTick, onMounted, reactive, ref} from 'vue'
import {ElMessage} from 'element-plus'
import { nextTick, onMounted, reactive, ref } from 'vue'
import { ElMessage } from 'element-plus'
import _ from 'lodash' import _ from 'lodash'
import request from '@/util/http' import request from '@/util/http'
import API from '@/util/http' import API from '@/util/http'
//
const tableData = ref([])
import { useAdminStore } from "@/store/index.js"
import { storeToRefs } from "pinia"
const adminStore = useAdminStore();
const { adminData, menuTree } = storeToRefs(adminStore);
import { permissionMapping, findMenuById } from "@/utils/menuTreePermission.js"
// ref
const Ref = ref(null)
const roleData = ref([]) const roleData = ref([])
const total = ref(100) const total = ref(100)
const roleTotal = ref(100)//
// admin
const roleTotal = ref(100)
const treeRef = ref(null)
const admin = ref({ const admin = ref({
account: '', account: '',
market: '', market: '',
postiton: '' postiton: ''
}) })
//
const role = ref({ const role = ref({
name: '' name: ''
}) })
//
const getObj = ref({ const getObj = ref({
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10
}) })
//
const getRoleObj = ref({ const getRoleObj = ref({
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10
}) })
//
const market = ref([])
//
const postiton = ref([])
//
const permissionAddVisible = ref(false) const permissionAddVisible = ref(false)
//
const addRole = ref({ const addRole = ref({
roleName: '', roleName: '',
parentId: null, parentId: null,
checkedKeys: [], checkedKeys: [],
grade: '',
market: '' market: ''
}) })
const addRoleMarket = ref([]) const addRoleMarket = ref([])
//
const adminData = ref({})
const getAdminData = async function () {
try {
const result = await API({url: '/admin/userinfo', data: {}})
adminData.value = result
console.log('管理员用户信息', adminData.value)
} catch (error) {
console.log('请求失败', error)
}
}
const viewRole = ref([]) const viewRole = ref([])
const getRolePermission = async function () { const getRolePermission = async function () {
const result = await request({ const result = await request({
@ -68,29 +51,6 @@ const getRolePermission = async function () {
viewRole.value = collectIds(result.data) viewRole.value = collectIds(result.data)
console.log('result111', viewRole.value); console.log('result111', viewRole.value);
} }
const get = async function (val) {
try {
if (typeof val === 'number') {
getObj.value.pageNum = val
}
console.log('搜索参数', getObj.value, admin.value)
const result = await request({
url: '/permission/getPermission',
data: {
...getObj.value,
permission: {
...admin.value
}
}
})
tableData.value = result.data.list
console.log('tableData', tableData.value)
total.value = result.data.total
} catch (error) {
console.log('请求失败', error)
}
}
const getRoleList = async function (val) { const getRoleList = async function (val) {
try { try {
if (typeof val === 'number') { if (typeof val === 'number') {
@ -138,7 +98,6 @@ const trimJwCode = () => {
admin.value.account = admin.value.account.replace(/\s/g, ''); admin.value.account = admin.value.account.replace(/\s/g, '');
} }
} }
const searchRole = function () { const searchRole = function () {
trimJwCode(); trimJwCode();
getObj.value.pageNum = 1 getObj.value.pageNum = 1
@ -164,32 +123,8 @@ const getRoleArea = async function () {
console.log('请求失败', error) console.log('请求失败', error)
} }
} }
const getArea = async function () {
try {
const result = await request({
url: '/general/adminMarkets',
data: {account: adminData.value.account}
})
market.value = result.data
} catch (error) {
console.log('请求失败', error)
}
}
//
const getStore = async function () {
try {
const result = await request({
url: '/permission/getposition',
data: {}
})
postiton.value = result.data
} catch (error) {
console.log('请求失败', error)
}
}
// //
const openPermissionAddVisible = function () { const openPermissionAddVisible = function () {
permissionAddVisible.value = true permissionAddVisible.value = true
getRoles() getRoles()
getLists() getLists()
@ -205,18 +140,15 @@ const closePermissionAddVisible = function () {
const permissionAddInit = function () { const permissionAddInit = function () {
openPermissionAddVisible() openPermissionAddVisible()
} }
const handleDialogClose = function(){
const handleDialogClose = function () {
closePermissionAddVisible() closePermissionAddVisible()
console.log('hhh'); console.log('hhh');
} }
// ref
const Ref = ref(null)
// //
const permissionList = ref([]) const permissionList = ref([])
const getRoles = async function () { const getRoles = async function () {
try { try {
const res = await API({url: '/role/selectAll'})
const res = await API({ url: '/role/selectAll' })
permissionList.value = res.data.map(item => ({ permissionList.value = res.data.map(item => ({
label: item.roleName, label: item.roleName,
value: item.id value: item.id
@ -237,7 +169,7 @@ const collectIds = (tree) => {
} }
}); });
return ids; return ids;
};
}
//datadisabled //datadisabled
function processTreeData(data) { function processTreeData(data) {
@ -270,7 +202,6 @@ const handleAddRole = async function () {
data: { data: {
"roleName": addRole.value.roleName, "roleName": addRole.value.roleName,
"menuIds": finalCheckedKeys, "menuIds": finalCheckedKeys,
"priority": addRole.value.grade,
"fatherId": addRole.value.parentId, "fatherId": addRole.value.parentId,
"market": addRole.value.market "market": addRole.value.market
} }
@ -278,14 +209,14 @@ const handleAddRole = async function () {
if (res.code === 200) { if (res.code === 200) {
ElMessage.success('角色' + addRole.value.roleName + '添加成功') ElMessage.success('角色' + addRole.value.roleName + '添加成功')
console.log('成功了,看看addRole', addRole.value) console.log('成功了,看看addRole', addRole.value)
console.log('提交的权限ID列表:', finalCheckedKeys);
console.log('提交的权限ID列表:', finalCheckedKeys)
closePermissionAddVisible() closePermissionAddVisible()
} else { } else {
ElMessage.error(res.msg) ElMessage.error(res.msg)
} }
} catch (error) { } catch (error) {
console.log('请求失败', error) console.log('请求失败', error)
console.log('失败看看addRole', addRole.value);
console.log('失败,看看addRole', addRole.value)
} }
} }
@ -311,7 +242,7 @@ const getLists = async function () {
} }
const res = await API({ const res = await API({
url: '/menu/tree', url: '/menu/tree',
data: {id: roleId}
data: { id: roleId }
}) })
data.value = res.data data.value = res.data
let originalData = res.data.filter(item => item.id !== 9); // let originalData = res.data.filter(item => item.id !== 9); //
@ -323,41 +254,39 @@ const getLists = async function () {
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.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',
data: {id: addRole.value.parentId}
data: { id: addRole.value.parentId }
}) })
if (result.code === 200) { if (result.code === 200) {
if (typeof result.data === 'string' && result.data) { if (typeof result.data === 'string' && result.data) {
addRoleMarket.value = result.data.split(',');
addRoleMarket.value = result.data.split(',')
addRole.value.market = '' addRole.value.market = ''
} else if (Array.isArray(result.data)) { } else if (Array.isArray(result.data)) {
addRoleMarket.value = result.data addRoleMarket.value = result.data
addRole.value.market = '' addRole.value.market = ''
} else { } else {
addRoleMarket.value = [];
addRole.value.market = ''
addRoleMarket.value = []
addRole.value.market = ''
} }
} else { } else {
ElMessage.error('该上级角色无归属地区') ElMessage.error('该上级角色无归属地区')
console.log('该上级角色无归属地区');
console.log('该上级角色无归属地区')
} }
console.log('addRoleMarket.value', addRoleMarket.value);
console.log('addRoleMarket.value', addRoleMarket.value)
} else { } else {
addRoleMarket.value = RoleArea.value addRoleMarket.value = RoleArea.value
console.log('elseRoleArea', RoleArea); console.log('elseRoleArea', RoleArea);
} }
} catch (error) { } catch (error) {
console.log('请求失败', error) console.log('请求失败', error)
} }
@ -369,67 +298,62 @@ const goldenBeanMenuIds = new Set([
41, 47, 46, 48, // -> 41, 47, 46, 48, // ->
42, 50, 49, 52, 51, // -> 42, 50, 49, 52, 51, // ->
45, 53 // -> 45, 53 // ->
]);
])
const filterGoldenBeanMenus = (tree) => { const filterGoldenBeanMenus = (tree) => {
return tree return tree
.filter(item => {
//
if (goldenBeanMenuIds.has(item.id)) {
return false;
}
//
if (item.children && item.children.length > 0) {
item.children = filterGoldenBeanMenus(item.children);
}
return true;
});
};
const treeRef = ref(null)
.filter(item => {
//
if (goldenBeanMenuIds.has(item.id)) {
return false
}
//
if (item.children && item.children.length > 0) {
item.children = filterGoldenBeanMenus(item.children)
}
return true
})
}
// //
const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => { const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => {
const {checkedKeys, checkedNodes: allCheckedNodes} = checkedInfo;
const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo
// //
if (allCheckedNodes.length === 0) { if (allCheckedNodes.length === 0) {
permissionEditRoleObj.value.checkedKeys = [];
return;
permissionEditRoleObj.value.checkedKeys = []
return
} }
// check-strictly="false"Element Plus // check-strictly="false"Element Plus
// 使 checkedKeysID // 使 checkedKeysID
permissionEditRoleObj.value.checkedKeys = checkedKeys;
permissionEditRoleObj.value.checkedKeys = checkedKeys
console.log('编辑角色选中的权限ID:', checkedKeys);
console.log('选中的节点数量:', allCheckedNodes.length);
console.log('编辑角色选中的权限ID:', checkedKeys)
console.log('选中的节点数量:', allCheckedNodes.length)
}; };
const handleCheckChange = async (checkedNodes, checkedInfo) => { const handleCheckChange = async (checkedNodes, checkedInfo) => {
const {checkedKeys, checkedNodes: allCheckedNodes} = checkedInfo;
const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo
// //
if (allCheckedNodes.length === 0) { if (allCheckedNodes.length === 0) {
addRole.value.checkedKeys = [];
return;
addRole.value.checkedKeys = []
return
} }
// SetID // SetID
const allKeys = new Set(checkedKeys);
const allKeys = new Set(checkedKeys)
// //
allCheckedNodes.forEach(node => { allCheckedNodes.forEach(node => {
// //
selectParentNodes(data.value, node.id, allKeys);
selectParentNodes(data.value, node.id, allKeys)
}); });
// Set // Set
addRole.value.checkedKeys = Array.from(allKeys);
console.log('新增角色包含所有父级的选中项:', addRole.value.checkedKeys);
};
addRole.value.checkedKeys = Array.from(allKeys)
console.log('新增角色包含所有父级的选中项:', addRole.value.checkedKeys)
}
const selectParentNodes = (treeData, nodeId, checkedKeys) => { const selectParentNodes = (treeData, nodeId, checkedKeys) => {
if (!Array.isArray(treeData)) return false;
if (!Array.isArray(treeData)) return false
for (const item of treeData) { for (const item of treeData) {
// //
@ -438,32 +362,32 @@ const selectParentNodes = (treeData, nodeId, checkedKeys) => {
if (foundInChildren) { if (foundInChildren) {
// //
checkedKeys.add(item.id); checkedKeys.add(item.id);
return true;
return true
} }
} }
// //
if (item.id === nodeId) { if (item.id === nodeId) {
return true;
return true
} }
} }
return false;
return false
}; };
// //
const menuTreeVisible = ref(false);
const currentRoleMenuTree = ref([]);
const currentRoleName = ref('');
const menuTreeVisible = ref(false)
const currentRoleMenuTree = ref([])
const currentRoleName = ref('')
const Rolecheckedkeys = ref([]) const Rolecheckedkeys = ref([])
const showMenuTree = (treeData, roleName) => { const showMenuTree = (treeData, roleName) => {
currentRoleMenuTree.value = processTreeData(treeData) || []; currentRoleMenuTree.value = processTreeData(treeData) || [];
console.log('currentRoleMenuTree.value', currentRoleMenuTree.value);
console.log('currentRoleMenuTree.value', currentRoleMenuTree.value)
Rolecheckedkeys.value = collectIds(treeData) Rolecheckedkeys.value = collectIds(treeData)
console.log('Rolecheckedkeys', Rolecheckedkeys.value);
console.log('Rolecheckedkeys', Rolecheckedkeys.value)
currentRoleName.value = roleName || '权限详情';
currentRoleName.value = roleName || '权限详情'
menuTreeVisible.value = true; menuTreeVisible.value = true;
};
}
// //
const permissionEditRoleObj = ref({ const permissionEditRoleObj = ref({
@ -472,39 +396,37 @@ const permissionEditRoleObj = ref({
market: '', market: '',
parentId: null, parentId: null,
parentName: '', parentName: '',
checkedKeys: [],
grade: '',
});
checkedKeys: []
})
// //
const permissionEditRoleVisible = ref(false);
const permissionEditRoleVisible = ref(false)
const collectIds2 = (tree) => { const collectIds2 = (tree) => {
let ids = [];
let ids = []
tree.forEach((node) => { tree.forEach((node) => {
// children children // children children
if (!node.children || node.children.length === 0) { if (!node.children || node.children.length === 0) {
ids.push(node.id);
ids.push(node.id)
} else { } else {
// children // children
ids = ids.concat(collectIds2(node.children));
ids = ids.concat(collectIds2(node.children))
} }
});
return ids;
};
})
return ids
}
// //
const permissionEditRoleInit = async function (row) { const permissionEditRoleInit = async function (row) {
console.log('row', row);
console.log('row.tree', row.tree);
permissionEditRoleObj.value = {};
permissionEditRoleObj.value.id = row.id;
permissionEditRoleObj.value.roleName = row.roleName;
permissionEditRoleObj.value.market = row.market;
permissionEditRoleObj.value.parentId = row.fatherId;
permissionEditRoleObj.value.parentName = row.fatherName;
permissionEditRoleObj.value.grade = row.priority;
console.log('row', row)
console.log('row.tree', row.tree)
permissionEditRoleObj.value = {}
permissionEditRoleObj.value.id = row.id
permissionEditRoleObj.value.roleName = row.roleName
permissionEditRoleObj.value.market = row.market
permissionEditRoleObj.value.parentId = row.fatherId
permissionEditRoleObj.value.parentName = row.fatherName
try { try {
let roleId = permissionEditRoleObj.value.parentId; let roleId = permissionEditRoleObj.value.parentId;
@ -515,7 +437,7 @@ const permissionEditRoleInit = async function (row) {
// /tree 使 ID // /tree 使 ID
const res = await API({ const res = await API({
url: '/menu/tree', url: '/menu/tree',
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 = data.value.filter(item => item.id !== 9);
@ -575,7 +497,6 @@ const permissionEditRole = async function () {
"id": permissionEditRoleObj.value.id, "id": permissionEditRoleObj.value.id,
"roleName": permissionEditRoleObj.value.roleName, "roleName": permissionEditRoleObj.value.roleName,
"menuIds": finalCheckedKeys, "menuIds": finalCheckedKeys,
"priority": permissionEditRoleObj.value.grade,
"fatherId": permissionEditRoleObj.value.parentId, "fatherId": permissionEditRoleObj.value.parentId,
"market": permissionEditRoleObj.value.market "market": permissionEditRoleObj.value.market
} }
@ -625,15 +546,11 @@ const selectParentNodesForSubmit = (treeData, nodeId, checkedKeys) => {
const Rolerules = reactive({ const Rolerules = reactive({
roleName: [ roleName: [
{required: true, message: '请输入角色名称', trigger: 'blur'},
{min: 2, max: 20, message: '角色名称长度应在2-20个字符之间', trigger: 'blur'}
{ required: true, message: '请输入角色名称', trigger: 'blur' },
{ min: 2, max: 20, message: '角色名称长度应在2-20个字符之间', trigger: 'blur' }
], ],
market: [ market: [
{required: true, message: '请选择归属地区', trigger: 'change'}
],
grade: [
{required: true, message: '请输入优先级', trigger: 'blur'},
{pattern: /^[1-9]\d{0,2}$/, message: '优先级应为1-999的数字', trigger: 'blur'}
{ required: true, message: '请选择归属地区', trigger: 'change' }
], ],
checkedKeys: [ checkedKeys: [
{ {
@ -657,10 +574,6 @@ const throttledHandleAddRole = _.throttle(handleAddRole, 5000, {
// //
onMounted(async function () { onMounted(async function () {
await getAdminData()
await get()
await getArea()
await getStore()
await getRoleList() await getRoleList()
await getRolePermission() await getRolePermission()
await getRoleArea() await getRoleArea()
@ -669,20 +582,18 @@ onMounted(async function () {
</script> </script>
<template> <template>
<div> <div>
<!-- 角色搜索 -->
<el-card style="margin-bottom: 20px;margin-top:10px"> <el-card style="margin-bottom: 20px;margin-top:10px">
<div class="head-card">
<el-text class="mx-1" size="large">角色名称</el-text>
<el-input v-model="role.name" style="width: 240px" placeholder="请输入角色名称" clearable/>
<div class="head-card-btn">
<div style="display: flex;">
<el-text size="large">角色名称</el-text>
<el-input v-model="role.name" style="width: 240px" placeholder="请输入角色名称" clearable />
<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()">查询</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()">新增角色</el-button>
</div> </div>
@ -691,14 +602,13 @@ onMounted(async function () {
<el-table-column type="index" label="序号" width="100px" fixed="left"> <el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
scope.$index + 1 + (getRoleObj.pageNum - 1) * getRoleObj.pageSize
}}</span>
scope.$index + 1 + (getRoleObj.pageNum - 1) * getRoleObj.pageSize
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="roleName" label="角色名称"/>
<el-table-column prop="fatherName" label="上级角色"/>
<el-table-column prop="priority" label="优先级"/>
<el-table-column prop="roleName" label="角色名称" />
<el-table-column prop="fatherName" label="上级角色" />
<el-table-column label="权限范围" show-overflow-tooltip> <el-table-column label="权限范围" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
<div class="permission-cell" @click="showMenuTree(scope.row.tree, scope.row.roleName)"> <div class="permission-cell" @click="showMenuTree(scope.row.tree, scope.row.roleName)">
@ -706,24 +616,6 @@ onMounted(async function () {
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column prop="operation" label="操作" width="200px">
<template #default="scope">
<el-popconfirm title="确定将此角色删除吗?" @confirm="delRoleConfirm">
<template #reference>
<el-button type="danger" text @click="delRole(scope.row)"
:disabled="scope.row.id === 1 || scope.row.id === 2">
删除
</el-button>
</template>
<template #actions="{ confirm, cancel }">
<el-button size="small" @click="cancel">取消</el-button>
<el-button type="primary" size="small" @click="confirm">
确定
</el-button>
</template>
</el-popconfirm>
</template>
</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"> <el-button type="warning" text @click="permissionEditRoleInit(scope.row)" :disabled="scope.row.id === 2">
@ -734,51 +626,49 @@ onMounted(async function () {
</el-table> </el-table>
</div> </div>
<!-- 分页 -->
<div class="pagination" style="margin-top: 20px">
<div style="margin-top: 20px;display: flex;">
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]" <el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="roleTotal"
@size-change="handleRolePageSizeChange"
@current-change="handleRoleCurrentChange"></el-pagination>
layout="total, sizes, prev, pager, next, jumper" :total="roleTotal" @size-change="handleRolePageSizeChange"
@current-change="handleRoleCurrentChange"></el-pagination>
</div> </div>
</el-card> </el-card>
</div> </div>
<!-- 角色菜单树展示 --> <!-- 角色菜单树展示 -->
<el-dialog v-model="menuTreeVisible" :title='`权限详情:${currentRoleName}`' width="600px"> <el-dialog v-model="menuTreeVisible" :title='`权限详情:${currentRoleName}`' width="600px">
<el-tree :data="currentRoleMenuTree" node-key="id" :props="{ label: 'menuName', children: 'children' }" <el-tree :data="currentRoleMenuTree" node-key="id" :props="{ label: 'menuName', children: 'children' }"
show-checkbox check-strictly :expand-on-click-node="false"
:default-expanded-keys="currentRoleMenuTree.map(item => item.id)" :default-checked-keys="Rolecheckedkeys"/>
show-checkbox check-strictly :expand-on-click-node="false"
:default-expanded-keys="currentRoleMenuTree.map(item => item.id)" :default-checked-keys="Rolecheckedkeys" />
<template #footer> <template #footer>
<el-button @click="menuTreeVisible = false" type="primary">关闭</el-button> <el-button @click="menuTreeVisible = false" type="primary">关闭</el-button>
</template> </template>
</el-dialog> </el-dialog>
<!-- 新增角色 --> <!-- 新增角色 -->
<el-dialog v-model="permissionAddVisible" title="新增角色" width="800px" :close-on-click-modal="false" @close="handleDialogClose ">
<el-dialog v-model="permissionAddVisible" title="新增角色" width="800px" :close-on-click-modal="false"
@close="handleDialogClose">
<template #footer> <template #footer>
<el-form ref="Ref" :rules="Rolerules" :model="addRole" label-width="auto" <el-form ref="Ref" :rules="Rolerules" :model="addRole" label-width="auto"
style="max-width: 600px; align-items: center">
style="max-width: 600px; align-items: center">
<el-form-item prop="roleName" label="角色名称:" required> <el-form-item prop="roleName" label="角色名称:" required>
<el-input v-model="addRole.roleName" placeholder="请输入角色名称" style="width: 220px"/>
<el-input v-model="addRole.roleName" placeholder="请输入角色名称" style="width: 220px" />
</el-form-item> </el-form-item>
<el-form-item prop="parentName" label="上级角色:"> <el-form-item prop="parentName" label="上级角色:">
<el-select v-model="addRole.parentId" placeholder="请选择上级角色" style="width: 220px" @change="getLists"
clearable>
<el-select v-model="addRole.parentId" placeholder="请选择上级角色" style="width: 220px" @change="getLists" clearable>
<el-option v-for="item in permissionList" :key="item.value" :label="item.label" <el-option v-for="item in permissionList" :key="item.value" :label="item.label"
:value="item.value"></el-option>
:value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="market" label="归属地区:" required> <el-form-item prop="market" label="归属地区:" required>
<el-select v-model="addRole.market" placeholder="请选择归属地区" style="width: 220px" clearable >
<el-option v-for="item in addRoleMarket" :key="item" :label="item" :value="item"/>
<el-select v-model="addRole.market" placeholder="请选择归属地区" style="width: 220px" clearable>
<el-option v-for="item in addRoleMarket" :key="item" :label="item" :value="item" />
</el-select> </el-select>
<text>(此地区无实际意义仅用于各分部负责人查看其地区角色)</text> <text>(此地区无实际意义仅用于各分部负责人查看其地区角色)</text>
</el-form-item> </el-form-item>
<el-form-item prop="checkedKeys" label="权限列表:" required> <el-form-item prop="checkedKeys" label="权限列表:" required>
<el-tree v-if="data.length > 0" :data="data" show-checkbox node-key="id" <el-tree v-if="data.length > 0" :data="data" show-checkbox node-key="id"
:props="{ label: 'menuName', children: 'children' }" :checked-keys="addRole.checkedKeys"
:check-strictly="false"
@check="handleCheckChange">
:props="{ label: 'menuName', children: 'children' }" :checked-keys="addRole.checkedKeys"
:check-strictly="false" @check="handleCheckChange">
<template #default="{ node, data }"> <template #default="{ node, data }">
<span>{{ node.label }}</span> <span>{{ node.label }}</span>
</template> </template>
@ -787,9 +677,6 @@ onMounted(async function () {
<span style="color: #999;">暂无数据</span> <span style="color: #999;">暂无数据</span>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item prop="grade" label="优先级:" required>
<el-input v-model="addRole.grade" placeholder="数字1~999" style="width: 220px"/>
</el-form-item>
</el-form> </el-form>
<div> <div>
@ -800,29 +687,29 @@ onMounted(async function () {
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<!-- 編輯角色彈窗 --> <!-- 編輯角色彈窗 -->
<el-dialog v-model="permissionEditRoleVisible" title="编辑角色" width="800px" :close-on-click-modal="false"> <el-dialog v-model="permissionEditRoleVisible" title="编辑角色" width="800px" :close-on-click-modal="false">
<template #footer> <template #footer>
<el-form ref="Ref" :rules="Rolerules" :model="permissionEditRoleObj" label-width="auto" <el-form ref="Ref" :rules="Rolerules" :model="permissionEditRoleObj" label-width="auto"
style="max-width: 600px; align-items: center">
style="max-width: 600px; align-items: center">
<el-form-item prop="roleName" label="角色名称:" required> <el-form-item prop="roleName" label="角色名称:" required>
<el-input v-model="permissionEditRoleObj.roleName" placeholder="请输入角色名称" style="width: 220px"/>
<el-input v-model="permissionEditRoleObj.roleName" placeholder="请输入角色名称" style="width: 220px" />
</el-form-item> </el-form-item>
<el-form-item prop="parentName" label="上级角色:"> <el-form-item prop="parentName" label="上级角色:">
<el-input v-model="permissionEditRoleObj.parentName" placeholder="无上级角色" disabled style="width: 220px"> <el-input v-model="permissionEditRoleObj.parentName" placeholder="无上级角色" disabled style="width: 220px">
<el-option v-for="item in permissionList" :key="item.value" :label="item.label" <el-option v-for="item in permissionList" :key="item.value" :label="item.label"
:value="item.value"></el-option>
:value="item.value"></el-option>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="market" label="地区" required> <el-form-item prop="market" label="地区" required>
<el-input v-model="permissionEditRoleObj.market" placeholder="请输入归属地区" style="width: 220px" disabled/>
<el-input v-model="permissionEditRoleObj.market" placeholder="请输入归属地区" style="width: 220px" disabled />
</el-form-item> </el-form-item>
<el-form-item prop="checkedKeys" label="权限列表:" required> <el-form-item prop="checkedKeys" label="权限列表:" required>
<el-tree v-if="data.length > 0" :data="data" show-checkbox node-key="id" ref="treeRef" <el-tree v-if="data.length > 0" :data="data" show-checkbox node-key="id" ref="treeRef"
:props="{ label: 'menuName', children: 'children' }"
:default-checked-keys="permissionEditRoleObj.checkedKeys"
:check-strictly="false"
@check="handleEditRolePermissionCheck">
:props="{ label: 'menuName', children: 'children' }"
:default-checked-keys="permissionEditRoleObj.checkedKeys" :check-strictly="false"
@check="handleEditRolePermissionCheck">
<template #default="{ node, data }"> <template #default="{ node, data }">
<span>{{ node.label }}</span> <span>{{ node.label }}</span>
</template> </template>
@ -831,9 +718,6 @@ onMounted(async function () {
<span style="color: #999;">暂无数据</span> <span style="color: #999;">暂无数据</span>
</div> </div>
</el-form-item> </el-form-item>
<!-- <el-form-item prop="grade" label="优先级:" required>
<el-input v-model="permissionEditRoleObj.grade" placeholder="数字1~999" style="width: 220px" />
</el-form-item> -->
</el-form> </el-form>
<div> <div>
@ -847,20 +731,10 @@ onMounted(async function () {
</template> </template>
<style scoped> <style scoped>
.pagination {
display: flex;
}
.head-card { .head-card {
display: flex; display: flex;
} }
.head-card-btn {
margin-left: auto;
}
.permission-cell { .permission-cell {
cursor: pointer; cursor: pointer;
color: #409eff; color: #409eff;

5
src/views/recharge/bean/beanOnlineRecharge.vue

@ -33,7 +33,7 @@ const getTotalBeans = async () => {
}) })
if (result.code == 200) { if (result.code == 200) {
permanentBeans.value = result.data.permanentBean permanentBeans.value = result.data.permanentBean
beanNum.value = result.data.beanNum
beanNum.value = result.data.num
money.value = result.data.money money.value = result.data.money
console.log('金豆总数获取成功'); console.log('金豆总数获取成功');
} }
@ -409,7 +409,8 @@ onMounted(async function () {
<el-col> <el-col>
<el-card> <el-card>
<div class="bean-info"> <div class="bean-info">
充值金豆数{{ format3(beanNum) }}, 合计新币数{{ format3(money) }}
充值金豆数{{ format3(beanNum) }}, 合计新币数{{ format3(money) }}
</div> </div>
<!-- 设置表格容器的高度和滚动样式 --> <!-- 设置表格容器的高度和滚动样式 -->

4
src/views/recharge/gold/coinRechargeDetail.vue

@ -658,8 +658,8 @@ const getTagText = (state) => {
<el-card> <el-card>
<div> <div>
充值新币{{ format3(permanentGolds) }}新币&nbsp;&nbsp;&nbsp;&nbsp; 充值新币{{ format3(permanentGolds) }}新币&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ format3(permanentGolds) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ format3(freeGolds ) }}金币
永久金币{{ format3(permanentGolds.toFixed(2)) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ format3(freeGolds.toFixed(2) ) }}金币
</div> </div>
<!-- 设置表格容器的高度和滚动样式 --> <!-- 设置表格容器的高度和滚动样式 -->

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

@ -585,10 +585,10 @@ const getMarket = async function () {
<el-col> <el-col>
<el-card> <el-card>
<div> <div>
退款金币总数{{ format3(Math.abs(sumGolds)) }}&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ format3(Math.abs(permanentGolds) ) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ format3(Math.abs(freeGolds) ) }}&nbsp;&nbsp;&nbsp;&nbsp;
任务金币{{ format3(Math.abs(taskGolds) ) }}
退款金币总数{{ format3(Math.abs(sumGolds).toFixed(2)) }}&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ format3(Math.abs(permanentGolds).toFixed(2)) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ format3(Math.abs(freeGolds).toFixed(2)) }}&nbsp;&nbsp;&nbsp;&nbsp;
任务金币{{ format3(Math.abs(taskGolds).toFixed(2)) }}
</div> </div>
<!-- 设置表格容器的高度和滚动样式 --> <!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 520px; overflow-y: auto;margin-top:10px"> <div style="height: 520px; overflow-y: auto;margin-top:10px">

Loading…
Cancel
Save