UNPKG

@codelet/core

Version:
52 lines (51 loc) 1.52 kB
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 } = 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) { ; this[fn](params); } }; if (auth) { ; (async () => { if (await config.checker({ url, disabled, query, event, fn, auth, item })) { task(); } })(); } else { task(); } }, }, });