UNPKG

@codelet/core

Version:
58 lines (57 loc) 1.79 kB
import { isString, isFunction } from '@daysnap/utils'; import { col } from '../codelet'; import { createBehavior } from '../create'; import { parseEvent } from '../utils'; let config = { checker: () => true, }; export function setupTransferBehavior(cfg) { config = Object.assign({}, config, cfg); } export const TransferBehavior = createBehavior({ methods: { /** * 处理点击事件的 */ transfer(e) { const { item, ...rest } = parseEvent(e); const { url, disabled, query, event, fn, auth, guard } = Object.assign({}, rest, item); // 如果是禁用状态,则不处理 if (disabled) { return; } const task = () => { const params = query || item || rest; // 跳转页面 if (url) { col.navigateTo({ url, query: params }); } // 触发自定义事件 if (event) { this.triggerEvent(event, params); } // 执行自定义方法 if (fn) { if (isString(fn)) { ; this[fn](params); } else if (isFunction(fn)) { fn.apply(this, params); } } }; if (auth || guard) { ; (async () => { if (await config.checker({ url, disabled, query, event, fn, auth, item, guard })) { task(); } })(); } else { task(); } }, }, });