91 lines
2.1 KiB
JavaScript
91 lines
2.1 KiB
JavaScript
// stores/counter.js
|
||
import {
|
||
defineStore
|
||
} from "pinia";
|
||
import * as shopApi from "@/http/api/shop.js";
|
||
|
||
// 判断是否是主店,并且是否有查看权限
|
||
export const isMainShop = (shopId) => {
|
||
const shopInfo = uni.getStorageSync("shopInfo");
|
||
if (shopInfo.isHeadShop) {
|
||
return true
|
||
}
|
||
if (shopInfo.shopType == 'only') {
|
||
return true
|
||
}
|
||
return false
|
||
}
|
||
|
||
/**
|
||
* 判断值是否为 非null + 非空对象(纯对象)
|
||
* @param {any} obj 要检测的值
|
||
* @returns {boolean} true=非空对象,false=否则
|
||
*/
|
||
function isNonEmptyObject(obj) {
|
||
// 第一步:排除 null/undefined
|
||
if (obj === null || obj === undefined) {
|
||
return false;
|
||
}
|
||
|
||
// 第二步:排除非纯对象(数组、函数、日期等)
|
||
if (Object.prototype.toString.call(obj) !== '[object Object]') {
|
||
return false;
|
||
}
|
||
|
||
// 第三步:判断是否为空对象(无自有可枚举属性)
|
||
for (const key in obj) {
|
||
// 只检测自有属性(排除原型链属性)
|
||
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* 主店在配置该功能时未选择分店
|
||
* 判断分店是否显示活动信息
|
||
* @param {Object} activit
|
||
* 活动信息
|
||
*/
|
||
export function isMarketShow(activit = null, key = 'shopIdList', isEnableKey = 'isEnable') {
|
||
console.log('isMarketShow.activit===', activit);
|
||
if (!isNonEmptyObject(activit)) return false
|
||
|
||
let flag = false
|
||
const shopInfo = uni.getStorageSync("shopInfo");
|
||
|
||
if (!shopInfo.isHeadShop && (!activit[key].some(item => item == shopInfo.id) || !activit[isEnableKey])) {
|
||
flag = true
|
||
} else {
|
||
flag = false
|
||
}
|
||
console.log('isMarketShow.flag===', flag);
|
||
return flag
|
||
}
|
||
|
||
// 分销
|
||
export const useAccountInfoStore = defineStore("accountInfo", {
|
||
state: () => {
|
||
return {
|
||
shopInfo: {},
|
||
};
|
||
},
|
||
actions: {
|
||
getShopInfo() {
|
||
return shopApi.getShopInfo().then((res) => {
|
||
this.shopInfo = res;
|
||
return this.shopInfo;
|
||
});
|
||
},
|
||
editShopInfo(data, autoRefresh = true) {
|
||
return shopApi.editShopInfo(data).then((res) => {
|
||
if (autoRefresh) {
|
||
this.getShopInfo()
|
||
}
|
||
return res
|
||
});
|
||
},
|
||
},
|
||
unistorage: true, // 开启后对 state 的数据读写都将持久化
|
||
}); |