import cacheManager from "./cacheManager.js" /** * 显示消息提示框 * @param content 提示的标题 */ export function toast(content) { uni.showToast({ icon: 'none', title: content }) } /** * 显示模态弹窗 * @param content 提示的标题 */ export function showConfirm(content) { return new Promise((resolve, reject) => { uni.showModal({ title: '提示', content: content, cancelText: '取消', confirmText: '确定', success: function(res) { resolve(res) } }) }) } /** * 参数处理 * @param params 参数 */ export function tansParams(params) { let result = '' // FIXME 拼接参数 return result } /** * @summary 获取请求异常与正常返回 * @param {Object} promise */ export function catchError(promise) { return new Promise((resolve,reject) => { promise.then(data => { resolve([undefined, data.data]) }).catch(err => { reject([err]) }) }) } // 是否是会员 export function getUserIdentity() { const auth = cacheManager.get('auth'); if (auth) { if ((auth.levelIdList || []).some(item => item == auth.levelId)) { // 购买此levelId return 'VIP' } // 无购买此levelId return 'Not-Vip'; } else { // 游客 return 'Visitor'; } } export function hasUserIdentity() { const auth = cacheManager.get('auth'); if (auth) { if (auth.cardList.length) { // VIP return 'VIP' } // 非VIP return 'Not-Vip'; } else { // 游客 return 'Visitor'; } } export function debounce(func, wait) { let timeout; return function(...args) { // 清除之前的定时器 clearTimeout(timeout); // 设置新的定时器 timeout = setTimeout(() => { func.apply(this, args); }, wait); }; } export function findRootNode(tree, targetId, idKey = 'id', childrenKey = 'children') { let root = null; function traverse(nodes) { for (const node of nodes) { if (node[idKey] === targetId) { root = nodes[0]; // 当前子树根即为目标根:ml-citation{ref="3" data="citationList"} return true; } if (node[childrenKey]?.length) { if (traverse(node[childrenKey]) && !root) { root = node; // 当子树找到目标时,当前节点为根:ml-citation{ref="3,8" data="citationList"} return true; } } } return false; } traverse(tree); return root; } export function findTreeNode(tree, targetId, childrenKey = 'children', idKey = 'id') { for (const node of tree) { if (node[idKey] === targetId) return node; if (node[childrenKey]?.length) { const found = findTreeNode(node[childrenKey], targetId, childrenKey, idKey); if (found) return found; } } return null; }