Compare commits

..

No commits in common. "16b652be7b9c5b030384744b4caf060c086a9d3f" and "482dbbeb0a98b84dd1a1c708f78780eeefaed5e9" have entirely different histories.

3 changed files with 118 additions and 181 deletions

View File

@ -103,7 +103,7 @@ router.beforeEach((to, from, next) => {
$api $api
.getUserInfo() .getUserInfo()
.then(async ({ data }) => { .then(async ({ data }) => {
let permissionsData = getMenu(data.data.role, data.data.manageMode); let permissionsData = getMenu(data.data.role);
if (permissionsData === null) { if (permissionsData === null) {
let res = await $api.role.getRoleList({ roleId: data.data.role }); let res = await $api.role.getRoleList({ roleId: data.data.role });
permissionsData = res.data.data; permissionsData = res.data.data;

View File

@ -1,14 +1,16 @@
import Vue from 'vue' import Vue from "vue";
import router from '@/router' import router from "@/router";
import store from '@/store' import store from "@/store";
/** /**
* 获取uuid * 获取uuid
*/ */
export function getUUID() { export function getUUID() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
return (c === 'x' ? (Math.random() * 16) | 0 : 'r&0x3' | '0x8').toString(16) return (c === "x" ? (Math.random() * 16) | 0 : "r&0x3" | "0x8").toString(
}) 16
);
});
} }
/** /**
@ -17,9 +19,9 @@ export function getUUID() {
*/ */
export function isAuth(key) { export function isAuth(key) {
return ( return (
JSON.parse(sessionStorage.getItem('permissions') || '[]').indexOf(key) !== JSON.parse(sessionStorage.getItem("permissions") || "[]").indexOf(key) !==
-1 || false -1 || false
) );
} }
/** /**
@ -28,87 +30,87 @@ export function isAuth(key) {
* @param {*} id * @param {*} id
* @param {*} pid * @param {*} pid
*/ */
export function treeDataTranslate(data, id = 'id', pid = 'parentId') { export function treeDataTranslate(data, id = "id", pid = "parentId") {
var res = [] var res = [];
var temp = {} var temp = {};
for (var i = 0; i < data.length; i++) { for (var i = 0; i < data.length; i++) {
temp[data[i][id]] = data[i] temp[data[i][id]] = data[i];
} }
for (var k = 0; k < data.length; k++) { for (var k = 0; k < data.length; k++) {
if (temp[data[k][pid]] && data[k][id] !== data[k][pid]) { if (temp[data[k][pid]] && data[k][id] !== data[k][pid]) {
if (!temp[data[k][pid]]['children']) { if (!temp[data[k][pid]]["children"]) {
temp[data[k][pid]]['children'] = [] temp[data[k][pid]]["children"] = [];
} }
if (!temp[data[k][pid]]['_level']) { if (!temp[data[k][pid]]["_level"]) {
temp[data[k][pid]]['_level'] = 1 temp[data[k][pid]]["_level"] = 1;
} }
data[k]['_level'] = temp[data[k][pid]]._level + 1 data[k]["_level"] = temp[data[k][pid]]._level + 1;
temp[data[k][pid]]['children'].push(data[k]) temp[data[k][pid]]["children"].push(data[k]);
} else { } else {
res.push(data[k]) res.push(data[k]);
} }
} }
return res return res;
} }
/** /**
* 清除登录信息 * 清除登录信息
*/ */
export function clearLoginInfo() { export function clearLoginInfo() {
Vue.cookie.delete('token') Vue.cookie.delete("token");
store.commit('resetStore') store.commit("resetStore");
sessionStorage.removeItem('password') sessionStorage.removeItem("password");
sessionStorage.removeItem('role') sessionStorage.removeItem("role");
sessionStorage.removeItem('userInfo') sessionStorage.removeItem("userInfo");
router.options.isAddDynamicMenuRoutes = false router.options.isAddDynamicMenuRoutes = false;
} }
// 深拷贝对象 // 深拷贝对象
export function deepClone(obj) { export function deepClone(obj) {
const _toString = Object.prototype.toString const _toString = Object.prototype.toString;
// null, undefined, non-object, function // null, undefined, non-object, function
if (!obj || typeof obj !== 'object') { if (!obj || typeof obj !== "object") {
return obj return obj;
} }
// DOM Node // DOM Node
if (obj.nodeType && 'cloneNode' in obj) { if (obj.nodeType && "cloneNode" in obj) {
return obj.cloneNode(true) return obj.cloneNode(true);
} }
// Date // Date
if (_toString.call(obj) === '[object Date]') { if (_toString.call(obj) === "[object Date]") {
return new Date(obj.getTime()) return new Date(obj.getTime());
} }
// RegExp // RegExp
if (_toString.call(obj) === '[object RegExp]') { if (_toString.call(obj) === "[object RegExp]") {
const flags = [] const flags = [];
if (obj.global) { if (obj.global) {
flags.push('g') flags.push("g");
} }
if (obj.multiline) { if (obj.multiline) {
flags.push('m') flags.push("m");
} }
if (obj.ignoreCase) { if (obj.ignoreCase) {
flags.push('i') flags.push("i");
} }
return new RegExp(obj.source, flags.join('')) return new RegExp(obj.source, flags.join(""));
} }
const result = Array.isArray(obj) const result = Array.isArray(obj)
? [] ? []
: obj.constructor : obj.constructor
? new obj.constructor() ? new obj.constructor()
: {} : {};
for (const key in obj) { for (const key in obj) {
result[key] = deepClone(obj[key]) result[key] = deepClone(obj[key]);
} }
return result return result;
} }
/** /**
@ -117,164 +119,100 @@ export function deepClone(obj) {
* @param {*} max * @param {*} max
*/ */
export function getDay(day) { export function getDay(day) {
let today = new Date() let today = new Date();
let targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day let targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
today.setTime(targetday_milliseconds) //注意,这行是关键代码 today.setTime(targetday_milliseconds); //注意,这行是关键代码
let tYear = today.getFullYear() let tYear = today.getFullYear();
let tMonth = today.getMonth() let tMonth = today.getMonth();
let tDate = today.getDate() let tDate = today.getDate();
tMonth = doHandleMonth(tMonth + 1) tMonth = doHandleMonth(tMonth + 1);
tDate = doHandleMonth(tDate) tDate = doHandleMonth(tDate);
return tYear + '-' + tMonth + '-' + tDate return tYear + "-" + tMonth + "-" + tDate;
} }
function doHandleMonth(month) { function doHandleMonth(month) {
let m = month let m = month;
if (month.toString().length === 1) { if (month.toString().length === 1) {
m = '0' + month m = "0" + month;
} }
return m return m;
} }
/** /**
* 权限 * 权限
* @param {*} min * @param {*} min
* @param {*} max * @param {*} max
*/ */
export function getMenu(role, manageMode) { export function getMenu(role) {
if (role == 'ROLE_MANAGER') { if (role == "ROLE_MERCHANT" || role == "ROLE_MANAGER") {
return [ return [
'operation-management', "operation-management",
'operation-management/commodity/index', "operation-management/commodity/index",
'operation-management/order/index', "operation-management/order/index",
'operation-management/banner/index', "operation-management/banner/index",
'operation-management/notice/index', "operation-management/notice/index",
'operation-management/paynotice/index', "operation-management/paynotice/index",
'operation-management/role/index', "operation-management/role/index",
'datacenter', "datacenter",
'datacenter/customer-analysis/index', "datacenter/customer-analysis/index",
'datacenter/product-analysis/index', "datacenter/product-analysis/index",
'datacenter/order-analysis/index', "datacenter/order-analysis/index",
'coupon/index', "coupon/index",
'presale', "presale",
'presale/products/index', "presale/products/index",
'presale/order/index', "presale/order/index",
'marketing', "marketing",
'marketing/level/index', "marketing/level/index",
'marketing/user/index', "marketing/user/index",
'marketing/points-setting/index', "marketing/points-setting/index",
'marketing/points-mall/index', "marketing/points-mall/index",
'marketing/points-order/index', "marketing/points-order/index",
'local-course/resources', "local-course/resources",
'wallet/index', "wallet/index",
'ogistics-fare', "ogistics-fare",
'logistics-fare/logistics-template/index', "logistics-fare/logistics-template/index",
'bank-card/index', "bank-card/index",
'operation-management/total-order/index', "operation-management/total-order/index",
'operation-management/accountNumber/index' "operation-management/accountNumber/index",
] ];
} else if (role == 'ROLE_MERCHANT') { } else if (role == "ROLE_BRAND_MANAGER") {
if (manageMode === 1) {
return [
'operation-management',
'operation-management/commodity/index',
'operation-management/order/index',
'operation-management/banner/index',
'operation-management/notice/index',
'operation-management/paynotice/index',
'operation-management/role/index',
'datacenter',
'datacenter/customer-analysis/index',
'datacenter/product-analysis/index',
'datacenter/order-analysis/index',
'coupon/index',
'presale',
'presale/products/index',
'presale/order/index',
'marketing',
// 'marketing/level/index',
// 'marketing/user/index',
// 'marketing/points-setting/index',
'marketing/points-mall/index',
'marketing/points-order/index',
'local-course/resources',
'wallet/index',
'ogistics-fare',
'logistics-fare/logistics-template/index',
'bank-card/index',
'operation-management/total-order/index',
'operation-management/accountNumber/index'
]
} else {
return [
'operation-management',
'operation-management/commodity/index',
'operation-management/order/index',
'operation-management/banner/index',
'operation-management/notice/index',
'operation-management/paynotice/index',
'operation-management/role/index',
'datacenter',
'datacenter/customer-analysis/index',
'datacenter/product-analysis/index',
'datacenter/order-analysis/index',
'coupon/index',
'presale',
'presale/products/index',
'presale/order/index',
'marketing',
'marketing/level/index',
'marketing/user/index',
'marketing/points-setting/index',
'marketing/points-mall/index',
'marketing/points-order/index',
'local-course/resources',
'wallet/index',
'ogistics-fare',
'logistics-fare/logistics-template/index',
'bank-card/index',
'operation-management/total-order/index',
'operation-management/accountNumber/index'
]
}
} else if (role == 'ROLE_BRAND_MANAGER') {
return [ return [
'operation-management', "operation-management",
// "operation-management/shop-list/index", // "operation-management/shop-list/index",
'operation-management/brand-market/index', "operation-management/brand-market/index",
'operation-management/brand-store/index', "operation-management/brand-store/index",
// "operation-management/order/index", // "operation-management/order/index",
'operation-management/brand-order/index', "operation-management/brand-order/index",
// "operation-management/role/index", // "operation-management/role/index",
'datacenter', "datacenter",
'datacenter/customer-analysis/index', "datacenter/customer-analysis/index",
'datacenter/product-analysis/index', "datacenter/product-analysis/index",
'datacenter/order-analysis/index', "datacenter/order-analysis/index",
'brand', "brand",
'brand/config/index', "brand/config/index",
'local-course/resources', "local-course/resources",
'wallet/index' "wallet/index",
// "operation-management/accountNumber/index", // "operation-management/accountNumber/index",
] ];
} else if (role == 'ROLE_AGENT') { } else if (role == "ROLE_AGENT") {
return [ return [
'operation-management', "operation-management",
'operation-management/shop-list/index', "operation-management/shop-list/index",
'operation-management/market-list/index', "operation-management/market-list/index",
// "operation-management/order/index", // "operation-management/order/index",
'operation-management/brand-order/index', "operation-management/brand-order/index",
// "operation-management/role/index", // "operation-management/role/index",
'datacenter', "datacenter",
'datacenter/customer-analysis/index', "datacenter/customer-analysis/index",
'datacenter/product-analysis/index', "datacenter/product-analysis/index",
'datacenter/order-analysis/index', "datacenter/order-analysis/index",
'local-course/resources', "local-course/resources",
'wallet/index' "wallet/index",
// "operation-management/accountNumber/index", // "operation-management/accountNumber/index",
] ];
} else { } else {
return null return null;
} }
} }
export function isNumberStr(str) { export function isNumberStr(str) {
return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str);
} }

View File

@ -109,8 +109,7 @@ export default {
}, },
queryList(pageNo, pageSize) { queryList(pageNo, pageSize) {
let permissionsData = getMenu( let permissionsData = getMenu(
JSON.parse(sessionStorage.getItem("userInfo")).role, JSON.parse(sessionStorage.getItem("userInfo")).role
JSON.parse(sessionStorage.getItem("userInfo")).manageMode
); );
this.data = this.filterTreeData(FULL_ROUTERS.menuList, permissionsData); this.data = this.filterTreeData(FULL_ROUTERS.menuList, permissionsData);