UNPKG

simple-frame-unit

Version:

基于vue2 研发的与simple-data后端配合使用的组件

125 lines (114 loc) 3.01 kB
/** * 获取变量数据类型,包括ES6 新类型Symbol * @param n * @returns {string} */ import {typeList} from "../global/variable"; export function getVarType(n) { const typeStr = Object.prototype.toString.call(n); let typeName = ''; switch (typeStr) { case '[object String]': typeName = 'string'; break; case '[object Number]': typeName = 'number'; break; case '[object Boolean]': typeName = 'boolean'; break; case '[object Undefined]': typeName = 'undefined'; break; case '[object Object]': typeName = 'object'; break; case '[object Array]': typeName = 'array'; break; case '[object Null]': typeName = 'null'; break; case '[object RegExp]': typeName = 'RegExp'; break; case '[object Symbol]': typeName = 'symbol'; break; case '[object JSON]': typeName = 'json'; break; case '[object Math]': typeName = 'math'; break; default: typeName = 'object'; } return typeName; } /** * @name isMediaType * @param url * @param type * @return {string} * @desc 根据文件类型返回dom元素 */ export const isMediaType = (url, type) => { if (validateNull(url)) return if (typeList.audio.test(url) || type === 'audio') { return 'audio' } else if (typeList.video.test(url) || type === 'video') { return 'video' } else if (typeList.img.test(url) || type === 'img') { return 'img' } else if (typeList.iframe.test(url) || typeList.words.test(type)) { return 'iframe' } } /** * 判断是否为空 */ export function validateNull(val) { if (val instanceof Date || typeof val === 'boolean' || typeof val === 'number') return false; if (val instanceof Array) { if (val.length === 0) return true; } else if (val instanceof Object) { for (var o in val) { return false; } return true; } else { return val === 'null' || val == null || val === 'undefined' || val === undefined || val === ''; } return false; } /** * 设置px像素 */ export const setPx = (val, defval = '') => { if (validateNull(val)) val = defval; if (validateNull(val)) return ''; val = val + ''; if (val.indexOf('%') === -1) { val = val + 'px'; } return val; }; /** * 判断元素是否是 VNode对象 * @param _this * @param node * @return {boolean} */ export function isVNode(_this, node) { // 获取 vnode 实例 const vnode = _this.$createElement('span', '') // VNode 构造函数 const VNode = vnode.constructor; // 所以通过 obj instanceof VNode 即可判断 return node instanceof VNode }