Commit 8edd5f55 authored by pengyunqian's avatar pengyunqian

Merge branch 'pyq' into dev

parents 4b5fa7e5 cf3621af
......@@ -21,6 +21,10 @@ export default {
if (status === "success") {
this.$store.commit("updateUserInfo", user);
this.$store.dispatch("updateUserPermission", { email: user.email });
// 无奈之举,后期需要重构到提现管理中
this.$store.dispatch("fetchPermission", {
appId: "merchant-op-auditing",
});
} else {
redirectToLogin();
}
......
......@@ -141,31 +141,33 @@ import {
getUpdate_role as reqGetUpdate_role,
get_role_info as reqGet_role_info,
getDelete_role as reqGetDelete_role,
getAdd_role as reqGetAdd_role
getAdd_role as reqGetAdd_role,
} from "../../service/role";
export default {
name: "RoleList",
props: ["appId", "detailPath"],
props: ["appId", "detailPath", "rolePermissionId"],
components: {
page
page,
},
computed: {
permission() {
let rolePermissionId = this.rolePermissionId || "role";
let appId = this.appId || "";
const modulePermissions =
this.$store.getters.moduleSubPermissions("role") || [];
return new Map(modulePermissions.map(ele => [ele.name, true]));
}
this.$store.getters.moduleSubPermissions(rolePermissionId, appId) || [];
return new Map(modulePermissions.map((ele) => [ele.name, true]));
},
},
data() {
return {
searchForm: {
roleName: "",
roleStatus: ""
roleStatus: "",
},
formLabelWidth: "120px",
params: {
page: 1,
page_size: 20
page_size: 20,
},
totalNum: null,
roleTitle: "",
......@@ -175,7 +177,7 @@ export default {
multiple: true, //设置为多选
value: "id", //value值和哪个值绑定
label: "desc", //label值和哪个值绑定
children: "sub_permissions" //children值和哪个值绑定
children: "sub_permissions", //children值和哪个值绑定
},
selectedOptions: [],
dialogVisible: false,
......@@ -184,11 +186,11 @@ export default {
role_info_detail: {
//详情非编辑项
role_id: "",
role_name: ""
role_name: "",
},
permissionsAll: [],
currenPermissionsUpdate: [],
currentRolePrivilege: []
currentRolePrivilege: [],
};
},
beforeMount() {
......@@ -212,12 +214,12 @@ export default {
toRoleDetail(row) {
this.$router.push({
path: this.detailPath,
query: { roleId: row.role_id }
query: { roleId: row.role_id },
});
},
getPermissionsAll() {
let { email } = this.$store.state.userInfo;
reqGetAll_role_list(email, this.appId).then(res => {
reqGetAll_role_list(email, this.appId).then((res) => {
this.permissionsAll = res.permissions;
});
},
......@@ -228,9 +230,9 @@ export default {
page,
page_size,
role_status: this.searchForm.roleStatus,
role_name: this.searchForm.roleName
role_name: this.searchForm.roleName,
};
reqGetRole_list(paramsRole_list, this.appId).then(res => {
reqGetRole_list(paramsRole_list, this.appId).then((res) => {
this.managementList = res.result;
this.totalNum = res.count;
});
......@@ -255,7 +257,7 @@ export default {
this.$confirm(`${this.dialogText}是否继续?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
type: "warning",
})
.then(() => {
if (type === "disable") {
......@@ -267,23 +269,23 @@ export default {
.catch(() => {
this.$message({
type: "info",
message: "已取消"
message: "已取消",
});
});
},
//删除
delete(role_id) {
reqGetDelete_role(role_id, this.appId).then(res => {
reqGetDelete_role(role_id, this.appId).then((res) => {
if (res.status == "success") this.getGetRole_list();
});
},
//角色详情数据
getRole_info_detail(type, role_id) {
reqGet_role_info(role_id, this.appId).then(res => {
reqGet_role_info(role_id, this.appId).then((res) => {
const { role_id, role_name, permissions } = res.result;
this.role_info_detail = {
role_id,
role_name
role_name,
};
this.roleName = role_name;
// this.permissionsUpdate = permissions
......@@ -306,10 +308,10 @@ export default {
//遍历回显值selectedOptions
editEchoData(permissions) {
let selectData = [];
permissions.map(item => {
permissions.map((item) => {
let one = { id: item.id };
if (item.sub_permissions) {
item.sub_permissions.map(info => {
item.sub_permissions.map((info) => {
let selectId = [one.id, info.id];
selectData.push(selectId);
});
......@@ -322,7 +324,7 @@ export default {
if (row.role_status == 1) {
this.$message({
type: "info",
message: "该条数据已启用"
message: "该条数据已启用",
});
return false;
}
......@@ -333,7 +335,7 @@ export default {
if (row.role_status == 2) {
this.$message({
type: "info",
message: "该条数据已禁用"
message: "该条数据已禁用",
});
return false;
}
......@@ -346,9 +348,9 @@ export default {
role_name: role_name,
role_id,
role_status,
permissions
permissions,
};
reqGetUpdate_role(paramsUpdate_role, this.appId).then(res => {
reqGetUpdate_role(paramsUpdate_role, this.appId).then((res) => {
if (res.status === "success") {
this.dialogVisible = false;
this.getGetRole_list();
......@@ -356,7 +358,7 @@ export default {
this.dialogVisible = false;
this.$message({
type: "info",
message: `${res.reason}`
message: `${res.reason}`,
});
}
});
......@@ -383,7 +385,7 @@ export default {
if (!(this.roleName && checkRolePrivilege.length > 0)) {
this.$message({
type: "error",
message: "请完善信息"
message: "请完善信息",
});
return false;
}
......@@ -408,16 +410,16 @@ export default {
getAdd_role() {
let paramsAdd_role = {
role_name: this.roleName,
permissions: this.currenPermissionsUpdate
permissions: this.currenPermissionsUpdate,
};
reqGetAdd_role(paramsAdd_role, this.appId).then(res => {
reqGetAdd_role(paramsAdd_role, this.appId).then((res) => {
this.dialogVisible = false;
if (res.status === "success") {
this.getGetRole_list();
} else {
this.$message({
type: "info",
message: `${res.reason}`
message: `${res.reason}`,
});
}
});
......@@ -427,13 +429,13 @@ export default {
},
getSelectedOptions(selectedOptions) {
let oldDataRule = [];
selectedOptions.forEach(el => {
selectedOptions.forEach((el) => {
let oldObj = {
id: el[0],
sub_permissions: []
sub_permissions: [],
};
let btnObj = {
id: el[1]
id: el[1],
};
oldObj.sub_permissions.push(btnObj);
oldDataRule.push(oldObj);
......@@ -445,11 +447,11 @@ export default {
newData.push(el);
newObj[el.id] = true;
} else {
newData.forEach(el => {
newData.forEach((el) => {
if (el.id === oldDataRule[i].id) {
el.sub_permissions = [
...el.sub_permissions,
...oldDataRule[i].sub_permissions
...oldDataRule[i].sub_permissions,
];
}
});
......@@ -457,8 +459,8 @@ export default {
});
this.currentRolePrivilege = newData;
this.currenPermissionsUpdate = newData;
}
}
},
},
};
</script>
<style lang="less" scoped>
......
......@@ -114,17 +114,17 @@ import {
getUserList as reqGetUserList,
getUserDetail as reqGetUserDetail,
editUser as reqEditUser,
createUser as reqCreateUser
createUser as reqCreateUser,
} from "@/service/user";
export default {
name: "UserList",
props: ["appId"],
props: ["appId", "userPermissionId"],
components: {
page,
UserInfoModal,
UserInfoEditModal,
UserInfoNewModal
UserInfoNewModal,
},
data() {
return {
......@@ -135,7 +135,7 @@ export default {
user_name: "",
user_email: "",
user_mobile: "",
user_status: ""
user_status: "",
},
totalNum: 0,
userList: [],
......@@ -143,30 +143,32 @@ export default {
modalVisable: {
info: false,
edit: false,
new: false
new: false,
},
curOperateMode: "new"
curOperateMode: "new",
};
},
computed: {
permission() {
const appId = this.appId || "";
const userPermissionId = this.userPermissionId || "user";
const modulePermissions =
this.$store.getters.moduleSubPermissions("user") || [];
this.$store.getters.moduleSubPermissions(userPermissionId, appId) || [];
console.log("Current page func-permissions:", modulePermissions);
return new Map(modulePermissions.map(ele => [ele.name, true]));
return new Map(modulePermissions.map((ele) => [ele.name, true]));
},
renderUserList() {
const statusMap = new Map([
[1, "启用"],
[2, "禁用"],
[3, "删除"]
[3, "删除"],
]);
return this.userList.map(ele => {
return this.userList.map((ele) => {
ele.user_status = statusMap.get(ele.user_status);
return ele;
});
}
},
},
beforeMount() {
this.getUserList();
......@@ -187,12 +189,12 @@ export default {
async setCurUserInfo(user_id) {
const { code, result } = await reqGetUserDetail({
appid: this.appId,
user_id
user_id,
});
if (code === 0) {
this.curUserInfo = {
...result.user_info,
roles: result.role_list
roles: result.role_list,
};
} else {
ElMessage.error("获取用户信息出错!");
......@@ -214,7 +216,7 @@ export default {
},
openModal(key) {
Object.keys(this.modalVisable).forEach(ele => {
Object.keys(this.modalVisable).forEach((ele) => {
this.modalVisable[ele] = key === ele;
});
},
......@@ -228,7 +230,7 @@ export default {
user_mobile,
roles,
user_status,
organization
organization,
} = userInfo;
let res = {};
......@@ -241,7 +243,7 @@ export default {
is_sensitive_authority: parseInt(is_sensitive_authority),
user_mobile,
role_id: roles,
user_status: parseInt(user_status)
user_status: parseInt(user_status),
};
res = await reqEditUser(editData, this.appId);
} else if (this.curOperateMode === "new") {
......@@ -252,7 +254,7 @@ export default {
user_mobile,
role_id: roles,
user_status: parseInt(user_status),
organization
organization,
};
res = await reqCreateUser(newData, this.appId);
}
......@@ -283,7 +285,7 @@ export default {
user_name: "",
user_email: "",
user_mobile: "",
user_status: ""
user_status: "",
};
this.getUserList();
},
......@@ -300,7 +302,7 @@ export default {
const { code, reason } = await reqEditUser(
{
user_status: 1,
user_id
user_id,
},
this.appId
);
......@@ -317,7 +319,7 @@ export default {
const { code, reason } = await reqEditUser(
{
user_status: 2,
user_id
user_id,
},
this.appId
);
......@@ -327,8 +329,8 @@ export default {
} else {
ElMessage.error(reason);
}
}
}
},
},
};
</script>
<style lang="less" scoped>
......
......@@ -265,7 +265,7 @@ import {
getWithdrawAudit,
getApplyDetail,
getFreezingFund,
getAll_role_list,
getRolesForUser,
} from "../../../service/Withdrawal/withdrawal";
import { ElMessage } from "element-plus";
import { fetchCurrentUser } from "../../../service/user";
......@@ -334,9 +334,9 @@ export default {
const res = await this.getPermissionsAll();
console.log(res);
if(!res) {
this.$router.push({name: 'Forbidden'})
return
if (!res) {
this.$router.push({ name: "Forbidden" });
return;
}
let withdrawlPermission = res.filter(
......@@ -363,7 +363,7 @@ export default {
// 不能够信赖 store 中的 email,无法知道全局中的 fetchCurrentUser 处理完毕
// 是一个重构的点
const { user } = await fetchCurrentUser();
const res = await getAll_role_list(user.email);
const res = await getRolesForUser(user.email);
this.permissions = res;
return res;
......
......@@ -3,6 +3,7 @@
<role-list
appId="merchant-op-auditing"
detailPath="/op/withdrawal/roleRoleDetail"
rolePermissionId="role_management"
></role-list>
</layout>
</template>
......
<template>
<layout>
<user-list appId="merchant-op-auditing"></user-list>
<user-list
appId="merchant-op-auditing"
userPermissionId="user_management"
></user-list>
</layout>
</template>
......
......@@ -4,14 +4,17 @@ const headerConfig = [
path: "/op/withdrawal/examine"
},
{
path: '/op/withdrawal/roleManageRole',
name: '角色管理'
path: "/op/withdrawal/roleManageRole",
name: "角色管理",
requireAuthentication: true,
requiredPermission: "role_management"
},
{
path: '/op/withdrawal/user',
name: '用户管理'
path: "/op/withdrawal/user",
name: "用户管理",
requireAuthentication: true,
requiredPermission: "user_management"
}
];
export default headerConfig;
\ No newline at end of file
export default headerConfig;
......@@ -12,16 +12,13 @@
unique-opened
>
<el-menu-item
v-for="item in headerConfig"
v-for="item in visibleMenuItems"
:index="item.path"
:key="item.path"
>
{{ item.name }}
</el-menu-item>
<el-menu-item
key="usermenu"
class="user-menu"
>
<el-menu-item key="usermenu" class="user-menu">
<user></user>
</el-menu-item>
</el-menu>
......@@ -35,22 +32,42 @@ import User from "./User.vue";
export default {
name: "PageHeader",
components: {
User
User,
},
data () {
data() {
return {
headerConfig
headerConfig,
};
},
computed: {
activeMenu () {
activeMenu() {
return this.$route.path;
}
},
visibleMenuItems() {
const visibleMenuItems = this.headerConfig.filter((item) => {
if (!item.requireAuthentication) {
return true;
}
if (this.hasPermission(item.requiredPermission)) {
return true;
}
return false;
});
return visibleMenuItems;
},
},
beforeMount() {},
methods: {
hasPermission(permissionId) {
return (
this.$store.getters.moduleSubPermissions(
permissionId,
"merchant-op-auditing"
).length !== 0
);
},
},
beforeMount () { },
methods: {}
};
</script>
<style lang="less">
</style>
<style lang="less"></style>
......@@ -6,23 +6,28 @@ const getParams = (p = {}) => {
};
// 获取提现审核列表
export async function getApplyList (params) {
const res = await axios.get("/api/v1/get_withdrawal_apply_list", {params: getParams(params)});
return res;
}
// 黑名单,冻结用户
export async function getBlackList (params) {
const res = await axios.post("/api/v1/get_withdrawal_black_list" ,getParams(params));
return res;
}
export async function getApplyList(params) {
const res = await axios.get("/api/v1/get_withdrawal_apply_list", {
params: getParams(params)
});
return res;
}
// 黑名单,冻结用户
export async function getBlackList(params) {
const res = await axios.post(
"/api/v1/get_withdrawal_black_list",
getParams(params)
);
return res;
}
// 获取订单审核--通过,拒绝
export async function getWithdrawAudit (params) {
export async function getWithdrawAudit(params) {
const res = await axios.post("/api/v1/get_withdraw_audit", getParams(params));
return res;
}
// 获取提现失败冻结
export async function getFreezingFund (params) {
const res = await axios.post("/api/v1/get_freezing_fund",getParams(params));
// 获取提现失败冻结
export async function getFreezingFund(params) {
const res = await axios.post("/api/v1/get_freezing_fund", getParams(params));
return res;
}
// 获取提现审核详情
......@@ -33,7 +38,7 @@ export async function getApplyDetail(params) {
return res;
}
//权限列表
export async function getAll_role_list(user_email) {
export async function getRolesForUser(user_email) {
const res = await axios.post(
"/api/v1/merchant/authority/get_role_list?appid=merchant-op-auditing",
{
......
import axios from '../utils/request';
import axios from "../utils/request";
// import qs from 'qs';
//角色列表
export async function getRole_list (parmasRole_list, appid) {
export async function getRole_list(parmasRole_list, appid) {
const opts = {
method: "post",
url: "/api/v1/merchant/authority/role_list",
......@@ -13,7 +13,7 @@ export async function getRole_list (parmasRole_list, appid) {
return await axios(opts);
}
//添加角色
export async function getAdd_role (parmasAdd_role, appid) {
export async function getAdd_role(parmasAdd_role, appid) {
const opts = {
method: "post",
url: "/api/v1/merchant/authority/add_role",
......@@ -25,7 +25,7 @@ export async function getAdd_role (parmasAdd_role, appid) {
// return res;
}
//角色编辑
export async function getUpdate_role (parmasUpdate_role, appid) {
export async function getUpdate_role(parmasUpdate_role, appid) {
const opts = {
method: "post",
url: "/api/v1/merchant/authority/update_role",
......@@ -37,7 +37,7 @@ export async function getUpdate_role (parmasUpdate_role, appid) {
// return res;
}
//角色详情
export async function get_role_info (role_id, appid) {
export async function get_role_info(role_id, appid) {
const opts = {
method: "post",
url: "/api/v1/merchant/authority/get_role_info",
......@@ -52,7 +52,7 @@ export async function get_role_info (role_id, appid) {
// return res.result;
}
//角色删除
export async function getDelete_role (role_id, appid) {
export async function getDelete_role(role_id, appid) {
const opts = {
method: "post",
url: "/api/v1/merchant/authority/delete_role",
......@@ -68,7 +68,7 @@ export async function getDelete_role (role_id, appid) {
}
//权限列表
export async function getAll_role_list (user_email, appid) {
export async function getAll_role_list(user_email, appid) {
const opts = {
method: "post",
url: "/api/v1/merchant/authority/get_role_list",
......
import { createStore } from "vuex";
import { getPermissions } from '@/service/user';
import { PERMISSIONNAME_PAGEMODULE } from '../config/pageconfig'
import { getPermissions } from "@/service/user";
import { PERMISSIONNAME_PAGEMODULE } from "../config/pageconfig";
import { getRolesForUser } from "@/service/Withdrawal/withdrawal";
export default createStore({
state: {
permissions: null,
userInfo: null
userInfo: null,
permissionsForApp: {}
},
mutations: {
updateUserPermission (state, payload) {
updateUserPermission(state, payload) {
state.permissions = payload;
},
updateUserInfo (state, payload) {
updateUserInfo(state, payload) {
state.userInfo = payload;
},
updatePermissionForApp(state, payload) {
const { appId, permissions } = payload;
state.permissionsForApp = state.permissionsForApp || {};
state.permissionsForApp[appId] = permissions;
}
},
actions: {
async updateUserPermission ({ commit }, payload) {
async updateUserPermission({ commit }, payload) {
const { permissions = [] } = await getPermissions(payload.email);
console.log("VUEX action updateUserPermission::", permissions);
commit('updateUserPermission', permissions)
commit("updateUserPermission", permissions);
},
async fetchPermission({ commit }, { email, appId }) {
if (appId === "merchant-op-auditing") {
const permissions = await getRolesForUser(email);
if (!permissions) {
return;
}
const permissionMap = permissions.reduce((prev, permission) => {
prev[permission.name] = permission;
return prev;
}, {});
commit("updatePermissionForApp", { appId, permissions: permissionMap });
return;
}
console.error("无 appId 注册", appId);
}
},
modules: {},
......@@ -29,19 +52,33 @@ export default createStore({
subPermissions: state => {
const permissionCol = {};
(state.permissions || []).forEach(element => {
PERMISSIONNAME_PAGEMODULE[element.name] && (permissionCol[PERMISSIONNAME_PAGEMODULE[element.name]] = element.sub_permissions)
PERMISSIONNAME_PAGEMODULE[element.name] &&
(permissionCol[PERMISSIONNAME_PAGEMODULE[element.name]] =
element.sub_permissions);
});
return permissionCol;
},
/**
*
*
* @param {*} module 模块名,可选值: enterprise, lifeNo, role, user
* @returns
* @returns
*/
moduleSubPermissions: (state) => (module) => {
moduleSubPermissions: state => (module, appId = "") => {
if (appId !== "") {
if (!state.permissionsForApp[appId]) {
return [];
}
if (!state.permissionsForApp[appId][module]) {
return [];
}
return state.permissionsForApp[appId][module].sub_permissions;
}
const permissionCol = {};
(state.permissions || []).forEach(element => {
PERMISSIONNAME_PAGEMODULE[element.name] && (permissionCol[PERMISSIONNAME_PAGEMODULE[element.name]] = element.sub_permissions)
PERMISSIONNAME_PAGEMODULE[element.name] &&
(permissionCol[PERMISSIONNAME_PAGEMODULE[element.name]] =
element.sub_permissions);
});
return permissionCol[module];
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment