import { PLATFORM } from "./global"; /** 是否是base64本地地址 */ export const isBaseUrl = (str) => { return /^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*?)\s*$/i.test(str); }; /** 是否是小程序本地地址 */ export const isTmpUrl = (str) => { return /http:\/\/temp\/wx/.test(str); }; /** 是否是网络地址 */ export const isNetworkUrl = (str) => { return /^(((ht|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$/.test(str); }; /** 对象target挂载到对象current */ export const extendMount = (current, target, handle = (extend, target) => undefined) => { for (const key in target) { current[key] = handle(target[key].handle, target[key]) || target[key].handle; } }; /** 处理构建配置 */ export const handleBuildOpts = (options) => { let defaultOpts = { selector: '', componentThis: undefined, type2d: true, loading: false, debugging: false, loadingText: '绘制海报中...', createText: '生成图片中...', gcanvas: false }; if (typeof options === "string") { defaultOpts.selector = options; } else { defaultOpts = Object.assign(Object.assign({}, defaultOpts), options); } const oldSelector = defaultOpts.selector; if (PLATFORM === 'mp-weixin' && defaultOpts.type2d) { defaultOpts.selector = '#' + defaultOpts.selector; } if (!PLATFORM) { console.error('注意! draw-poster未开启uni条件编译! 当环境是微信小程序将不会动态切换为type2d模式'); console.error(`请在vue.config.js中的transpileDependencies中添加'uni-draw-poster'`); console.error(`或者可以在选择器字符串前缀中添加#来切换为type2d绘制`); defaultOpts.selector = oldSelector; } return defaultOpts; };