Files
cashier_app/store/account.js

91 lines
2.1 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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 的数据读写都将持久化
});