UNPKG

ed-frame-vue

Version:

easydata 基础组件

1,441 lines (1,276 loc) 3.05 MB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // install a JSONP callback for chunk loading /******/ function webpackJsonpCallback(data) { /******/ var chunkIds = data[0]; /******/ var moreModules = data[1]; /******/ /******/ /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0, resolves = []; /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ resolves.push(installedChunks[chunkId][0]); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ for(moduleId in moreModules) { /******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { /******/ modules[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(parentJsonpFunction) parentJsonpFunction(data); /******/ /******/ while(resolves.length) { /******/ resolves.shift()(); /******/ } /******/ /******/ }; /******/ /******/ /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // Promise = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 0: 0 /******/ }; /******/ /******/ /******/ /******/ // script path function /******/ function jsonpScriptSrc(chunkId) { /******/ return __webpack_require__.p + "ed-frame-vue.common." + ({}[chunkId]||chunkId) + ".js" /******/ } /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = function requireEnsure(chunkId) { /******/ var promises = []; /******/ /******/ /******/ // JSONP chunk loading for javascript /******/ /******/ var installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ // setup Promise in chunk cache /******/ var promise = new Promise(function(resolve, reject) { /******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; /******/ }); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var script = document.createElement('script'); /******/ var onScriptComplete; /******/ /******/ script.charset = 'utf-8'; /******/ script.timeout = 120; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ script.src = jsonpScriptSrc(chunkId); /******/ /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ onScriptComplete = function (event) { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var chunk = installedChunks[chunkId]; /******/ if(chunk !== 0) { /******/ if(chunk) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ chunk[1](error); /******/ } /******/ installedChunks[chunkId] = undefined; /******/ } /******/ }; /******/ var timeout = setTimeout(function(){ /******/ onScriptComplete({ type: 'timeout', target: script }); /******/ }, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ document.head.appendChild(script); /******/ } /******/ } /******/ return Promise.all(promises); /******/ }; /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // on error function for async loading /******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; /******/ /******/ var jsonpArray = (typeof self !== 'undefined' ? self : this)["webpackJsonped_frame_vue"] = (typeof self !== 'undefined' ? self : this)["webpackJsonped_frame_vue"] || []; /******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); /******/ jsonpArray.push = webpackJsonpCallback; /******/ jsonpArray = jsonpArray.slice(); /******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); /******/ var parentJsonpFunction = oldJsonpFunction; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "fb15"); /******/ }) /************************************************************************/ /******/ ({ /***/ "00d8": /***/ (function(module, exports) { (function() { var base64map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', crypt = { // Bit-wise rotation left rotl: function(n, b) { return (n << b) | (n >>> (32 - b)); }, // Bit-wise rotation right rotr: function(n, b) { return (n << (32 - b)) | (n >>> b); }, // Swap big-endian to little-endian and vice versa endian: function(n) { // If number given, swap endian if (n.constructor == Number) { return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00; } // Else, assume array and swap all items for (var i = 0; i < n.length; i++) n[i] = crypt.endian(n[i]); return n; }, // Generate an array of any length of random bytes randomBytes: function(n) { for (var bytes = []; n > 0; n--) bytes.push(Math.floor(Math.random() * 256)); return bytes; }, // Convert a byte array to big-endian 32-bit words bytesToWords: function(bytes) { for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8) words[b >>> 5] |= bytes[i] << (24 - b % 32); return words; }, // Convert big-endian 32-bit words to a byte array wordsToBytes: function(words) { for (var bytes = [], b = 0; b < words.length * 32; b += 8) bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF); return bytes; }, // Convert a byte array to a hex string bytesToHex: function(bytes) { for (var hex = [], i = 0; i < bytes.length; i++) { hex.push((bytes[i] >>> 4).toString(16)); hex.push((bytes[i] & 0xF).toString(16)); } return hex.join(''); }, // Convert a hex string to a byte array hexToBytes: function(hex) { for (var bytes = [], c = 0; c < hex.length; c += 2) bytes.push(parseInt(hex.substr(c, 2), 16)); return bytes; }, // Convert a byte array to a base-64 string bytesToBase64: function(bytes) { for (var base64 = [], i = 0; i < bytes.length; i += 3) { var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; for (var j = 0; j < 4; j++) if (i * 8 + j * 6 <= bytes.length * 8) base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F)); else base64.push('='); } return base64.join(''); }, // Convert a base-64 string to a byte array base64ToBytes: function(base64) { // Remove non-base-64 characters base64 = base64.replace(/[^A-Z0-9+\/]/ig, ''); for (var bytes = [], i = 0, imod4 = 0; i < base64.length; imod4 = ++i % 4) { if (imod4 == 0) continue; bytes.push(((base64map.indexOf(base64.charAt(i - 1)) & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2)) | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2))); } return bytes; } }; module.exports = crypt; })(); /***/ }), /***/ "00ee": /***/ (function(module, exports, __webpack_require__) { var wellKnownSymbol = __webpack_require__("b622"); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var test = {}; test[TO_STRING_TAG] = 'z'; module.exports = String(test) === '[object z]'; /***/ }), /***/ "02cc": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return controlType; }); /** * 控件类型配置 * @type {[{component: string, label: string, attribute: null, value: string},{component: string, label: string, attribute: string, value: string},{component: string, label: string, attribute: {component: string, type: string}, value: string},{component: string, label: string, value: string},{component: string, label: string, value: string},null,null,null,null,null,null,null,null,null,null,null]} */ const controlType = [{ label: '文本', value: 'label', component: 'easydata-label', attribute: 'ed-label' }, { label: '超链接', value: 'link', component: 'easydata-link', attribute: 'ed-link' }, { label: '单行输入框', value: 'input', component: 'easydata-input', attribute: 'el-input' }, { label: '多行输入框', value: 'textarea', component: 'easydata-textarea', attribute: 'el-input' }, { label: '数字输入框', value: 'inputNumber', component: 'easydata-inputNumber', attribute: 'el-input-number' }, { label: '单选框', value: 'radio', component: 'easydata-radio', attribute: 'el-radio-group' }, { label: '多选框', value: 'checkbox', component: 'easydata-checkbox', attribute: 'el-checkbox-group' }, { label: '开关', value: '_switch', component: 'easydata-switch', attribute: 'el-switch' }, { label: '时间选择框', value: 'timeSelect', component: 'easydata-timeSelect', attribute: 'el-time-select' }, { label: '日期选择框', value: 'datePicker', component: 'easydata-datePicker', attribute: 'el-date-picker' }, { label: '下拉框', value: 'select', component: 'easydata-select', attribute: 'el-select' }, { label: '级联下拉', value: 'cascader', component: 'easydata-cascader', attribute: 'el-cascader' }, { label: '选择弹窗', value: 'popup', component: 'easydata-popup', attribute: 'el-input' }, { label: '文件上传', value: 'upload', component: 'easydata-upload', attribute: 'ed-upload' }, { label: '图片轮播', value: 'imgPreview', component: 'easydata-imgPreview' }, { label: '联动公式', value: 'expression', component: 'easydata-expression', attribute: 'el-input' }]; /***/ }), /***/ "03b9": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export getDate */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return formatDate; }); /** * 将毫秒,转换成时间字符串。例如说,xx 分钟 * * @param ms 毫秒 * @returns {string} 字符串 */ function getDate(ms) { const day = Math.floor(ms / (24 * 60 * 60 * 1000)); const hour = Math.floor(ms / (60 * 60 * 1000) - day * 24); const minute = Math.floor(ms / (60 * 1000) - day * 24 * 60 - hour * 60); const second = Math.floor(ms / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60); if (day > 0) { return day + "天" + hour + "小时" + minute + "分钟"; } if (hour > 0) { return hour + "小时" + minute + "分钟"; } if (minute > 0) { return minute + "分钟"; } if (second > 0) { return second + "秒"; } else { return 0 + "秒"; } } /** * 格式化时间 * @param date * @param fmt * @returns {*} */ function formatDate(date, fmt = 'yyyy-MM-dd hh:mm:ss') { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); } let o = { 'M+': date.getMonth() + 1, 'd+': date.getDate(), 'h+': date.getHours(), 'm+': date.getMinutes(), 's+': date.getSeconds() }; for (let k in o) { if (new RegExp(`(${k})`).test(fmt)) { let str = o[k] + ''; fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str)); } } return fmt; } function padLeftZero(str) { return ('00' + str).substr(str.length); } /***/ }), /***/ "044b": /***/ (function(module, exports) { /*! * Determine if an object is a Buffer * * @author Feross Aboukhadijeh <https://feross.org> * @license MIT */ // The _isBuffer check is for Safari 5-7 support, because it's missing // Object.prototype.constructor. Remove this eventually module.exports = function (obj) { return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) } function isBuffer (obj) { return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) } // For Node v0.10 support. Remove this eventually. function isSlowBuffer (obj) { return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) } /***/ }), /***/ "04f8": /***/ (function(module, exports, __webpack_require__) { /* eslint-disable es/no-symbol -- required for testing */ var V8_VERSION = __webpack_require__("2d00"); var fails = __webpack_require__("d039"); var global = __webpack_require__("da84"); var $String = global.String; // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing module.exports = !!Object.getOwnPropertySymbols && !fails(function () { var symbol = Symbol(); // Chrome 38 Symbol has incorrect toString conversion // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, // of course, fail. return !$String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances !Symbol.sham && V8_VERSION && V8_VERSION < 41; }); /***/ }), /***/ "0663": /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__("8905"); if(content.__esModule) content = content.default; if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var add = __webpack_require__("499e").default var update = add("0e3c42df", content, true, {"sourceMap":false,"shadowMode":false}); /***/ }), /***/ "06cf": /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__("83ab"); var call = __webpack_require__("c65b"); var propertyIsEnumerableModule = __webpack_require__("d1e7"); var createPropertyDescriptor = __webpack_require__("5c6c"); var toIndexedObject = __webpack_require__("fc6a"); var toPropertyKey = __webpack_require__("a04b"); var hasOwn = __webpack_require__("1a2d"); var IE8_DOM_DEFINE = __webpack_require__("0cfb"); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); P = toPropertyKey(P); if (IE8_DOM_DEFINE) try { return $getOwnPropertyDescriptor(O, P); } catch (error) { /* empty */ } if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); }; /***/ }), /***/ "07fa": /***/ (function(module, exports, __webpack_require__) { var toLength = __webpack_require__("50c4"); // `LengthOfArrayLike` abstract operation // https://tc39.es/ecma262/#sec-lengthofarraylike module.exports = function (obj) { return toLength(obj.length); }; /***/ }), /***/ "089a": /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__("59ce"); if(content.__esModule) content = content.default; if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var add = __webpack_require__("499e").default var update = add("6612b28b", content, true, {"sourceMap":false,"shadowMode":false}); /***/ }), /***/ "0991": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_style_index_0_id_193d7170_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e67c"); /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_style_index_0_id_193d7170_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_style_index_0_id_193d7170_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /***/ }), /***/ "0b2d": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChooseDict_vue_vue_type_style_index_0_id_5c6e47e0_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e7b8"); /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChooseDict_vue_vue_type_style_index_0_id_5c6e47e0_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ChooseDict_vue_vue_type_style_index_0_id_5c6e47e0_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /***/ }), /***/ "0bbc": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview2_vue_vue_type_style_index_0_id_eb24e744_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("089a"); /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview2_vue_vue_type_style_index_0_id_eb24e744_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview2_vue_vue_type_style_index_0_id_eb24e744_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /***/ }), /***/ "0cfb": /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__("83ab"); var fails = __webpack_require__("d039"); var createElement = __webpack_require__("cc12"); // Thanks to IE8 for its funny defineProperty module.exports = !DESCRIPTORS && !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(createElement('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /***/ "0d26": /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__("e330"); var $Error = Error; var replace = uncurryThis(''.replace); var TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd'); // eslint-disable-next-line redos/no-vulnerable -- safe var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); module.exports = function (stack, dropEntries) { if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) { while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); } return stack; }; /***/ }), /***/ "0d51": /***/ (function(module, exports) { var $String = String; module.exports = function (argument) { try { return $String(argument); } catch (error) { return 'Object'; } }; /***/ }), /***/ "0d71": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_32533b60_prod_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7d2b"); /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_32533b60_prod_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_32533b60_prod_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /***/ }), /***/ "13d2": /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__("e330"); var fails = __webpack_require__("d039"); var isCallable = __webpack_require__("1626"); var hasOwn = __webpack_require__("1a2d"); var DESCRIPTORS = __webpack_require__("83ab"); var CONFIGURABLE_FUNCTION_NAME = __webpack_require__("5e77").CONFIGURABLE; var inspectSource = __webpack_require__("8925"); var InternalStateModule = __webpack_require__("69f3"); var enforceInternalState = InternalStateModule.enforce; var getInternalState = InternalStateModule.get; var $String = String; // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; var stringSlice = uncurryThis(''.slice); var replace = uncurryThis(''.replace); var join = uncurryThis([].join); var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; }); var TEMPLATE = String(String).split('String'); var makeBuiltIn = module.exports = function (value, name, options) { if (stringSlice($String(name), 0, 7) === 'Symbol(') { name = '[' + replace($String(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; } if (options && options.getter) name = 'get ' + name; if (options && options.setter) name = 'set ' + name; if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); else value.name = name; } if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { defineProperty(value, 'length', { value: options.arity }); } try { if (options && hasOwn(options, 'constructor') && options.constructor) { if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable } else if (value.prototype) value.prototype = undefined; } catch (error) { /* empty */ } var state = enforceInternalState(value); if (!hasOwn(state, 'source')) { state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); } return value; }; // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative // eslint-disable-next-line no-extend-native -- required Function.prototype.toString = makeBuiltIn(function toString() { return isCallable(this) && getInternalState(this).source || inspectSource(this); }, 'toString'); /***/ }), /***/ "13d5": /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__("23e7"); var $reduce = __webpack_require__("d58f").left; var arrayMethodIsStrict = __webpack_require__("a640"); var CHROME_VERSION = __webpack_require__("2d00"); var IS_NODE = __webpack_require__("605d"); // Chrome 80-82 has a critical bug // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce'); // `Array.prototype.reduce` method // https://tc39.es/ecma262/#sec-array.prototype.reduce $({ target: 'Array', proto: true, forced: FORCED }, { reduce: function reduce(callbackfn /* , initialValue */) { var length = arguments.length; return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); } }); /***/ }), /***/ "14d9": /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__("23e7"); var toObject = __webpack_require__("7b0b"); var lengthOfArrayLike = __webpack_require__("07fa"); var setArrayLength = __webpack_require__("3a34"); var doesNotExceedSafeInteger = __webpack_require__("3511"); var fails = __webpack_require__("d039"); var INCORRECT_TO_LENGTH = fails(function () { return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; }); // V8 and Safari <= 15.4, FF < 23 throws InternalError // https://bugs.chromium.org/p/v8/issues/detail?id=12681 var properErrorOnNonWritableLength = function () { try { // eslint-disable-next-line es/no-object-defineproperty -- safe Object.defineProperty([], 'length', { writable: false }).push(); } catch (error) { return error instanceof TypeError; } }; var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); // `Array.prototype.push` method // https://tc39.es/ecma262/#sec-array.prototype.push $({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { // eslint-disable-next-line no-unused-vars -- required for `.length` push: function push(item) { var O = toObject(this); var len = lengthOfArrayLike(O); var argCount = arguments.length; doesNotExceedSafeInteger(len + argCount); for (var i = 0; i < argCount; i++) { O[len] = arguments[i]; len++; } setArrayLength(O, len); return len; } }); /***/ }), /***/ "156a": /***/ (function(module, exports, __webpack_require__) { // Imports var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb"); exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.i, ".btn[data-v-235ca03a]{margin-bottom:10px}", ""]); // Exports module.exports = exports; /***/ }), /***/ "1626": /***/ (function(module, exports, __webpack_require__) { var $documentAll = __webpack_require__("8ea1"); var documentAll = $documentAll.all; // `IsCallable` abstract operation // https://tc39.es/ecma262/#sec-iscallable module.exports = $documentAll.IS_HTMLDDA ? function (argument) { return typeof argument == 'function' || argument === documentAll; } : function (argument) { return typeof argument == 'function'; }; /***/ }), /***/ "1951": /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__("bdcc"); if(content.__esModule) content = content.default; if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var add = __webpack_require__("499e").default var update = add("2de36f61", content, true, {"sourceMap":false,"shadowMode":false}); /***/ }), /***/ "1a2d": /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__("e330"); var toObject = __webpack_require__("7b0b"); var hasOwnProperty = uncurryThis({}.hasOwnProperty); // `HasOwnProperty` abstract operation // https://tc39.es/ecma262/#sec-hasownproperty // eslint-disable-next-line es/no-object-hasown -- safe module.exports = Object.hasOwn || function hasOwn(it, key) { return hasOwnProperty(toObject(it), key); }; /***/ }), /***/ "1ac5": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export setBusEvent */ /* unused harmony export getBusEvent */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getVarType; }); /* unused harmony export randomNumber */ /* unused harmony export randomString */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return randomUUID; }); /* unused harmony export getLength */ /* unused harmony export CompareObj */ /* unused harmony export Compare */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return underlineToHumpJson; }); /* unused harmony export underlineToHump */ /* unused harmony export humpToUnderline */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return sign; }); /* unused harmony export quick_sort */ /* unused harmony export downloadFile */ /* unused harmony export convertToViewModelOld */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return convertToViewModel; }); /* unused harmony export convertToModel */ /* unused harmony export equal */ /* unused harmony export deepClone */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return deepMerge; }); /* unused harmony export getValueByKey */ /* unused harmony export isVNode */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getPath; }); /* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("14d9"); /* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var core_js_modules_web_url_search_params_size_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5494"); /* harmony import */ var core_js_modules_web_url_search_params_size_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_url_search_params_size_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5377"); /* harmony import */ var core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var md5__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("6821"); /* harmony import */ var md5__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(md5__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("8bbf"); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_4__); const Event = new vue__WEBPACK_IMPORTED_MODULE_4___default.a(); // Event.$emit(事件名,数据); // 使用 $emit 来传递 // Event.$on(事件名,data => {}); // 使用 $on 来接收 /** * @name setBusEvent * @param event * @param value * @description 设置bus总线,记录数据 */ function setBusEvent(event, value) { try { Event.$emit(event, value); } catch (e) { console.log(e); } } /** * @name getBusEvent * @returns {Promise<unknown>} * @description 获取bus数据 * @param key */ function getBusEvent(key) { return new Promise((resolve, reject) => { try { console.log(key); Event.$on(key, data => { console.log(key, data); resolve(data); }); } catch (e) { console.log(e); reject(e); } }); } /** * 获取变量数据类型,包括ES6 新类型Symbol * @param n * @returns {string} */ 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; } /** * 随机生成数字 * 示例:生成长度为 12 的随机数:randomNumber(12) * 示例:生成 3~23 之间的随机数:randomNumber(3, 23) * * @param1 最小值 | 长度 * @param2 最大值 * @return int 生成后的数字 */ function randomNumber() { // 生成 最小值 到 最大值 区间的随机数 const random = (min, max) => { return Math.floor(Math.random() * (max - min + 1) + min); }; if (arguments.length === 1) { let [length] = arguments; // 生成指定长度的随机数字,首位一定不是 0 let nums = [...Array(length).keys()].map(i => i > 0 ? random(0, 9) : random(1, 9)); return parseInt(nums.join('')); } else if (arguments.length >= 2) { let [min, max] = arguments; return random(min, max); } else { return Number.NaN; } } /** * 随机生成字符串 * @param length 字符串的长度 * @param chats 可选字符串区间(只会生成传入的字符串中的字符) * @return string 生成的字符串 */ function randomString(length, chats) { if (!length) length = 1; if (!chats) chats = '0123456789qwertyuioplkjhgfdsazxcvbnm'; let str = ''; for (let i = 0; i < length; i++) { let num = randomNumber(0, chats.length - 1); str += chats[num]; } return str; } /** * 随机生成uuid * @name randomUUID * @return string 生成的uuid */ function randomUUID() { let chats = '0123456789abcdef'; return randomString(32, chats); } function getLength(object) { let count = 0; for (let i in object) count++; return count; } function CompareObj(objA, objB, flag) { for (let key in objA) { if (!flag) //跳出整个循环 break; if (!objB.hasOwnProperty(key)) { flag = false; break; } if (getVarType(objA[key]) !== 'array') { //子级不是数组时,比较属性值 if (objB[key] != objA[key]) { flag = false; break; } } else { if (getVarType(objA[key]) !== 'array') { flag = false; break; } let oA = objA[key], oB = objB[key]; if (oA.length != oB.length) { flag = false; break; } for (let k in oA) { if (!flag) //这里跳出循环是为了不让递归继续 break; flag = CompareObj(oA[k], oB[k], flag); } } } return flag; } function Compare(objA, objB) { if (getVarType(objA) !== 'object' || getVarType(objB) !== 'object') return false; //判断类型是否正确 if (getLength(objA) !== getLength(objB)) return false; //判断长度是否一致 return CompareObj(objA, objB, true); //默认为true } function underlineToHumpJson(json) { if (json) { let result = {}; Object.keys(json).forEach(key => { result[underlineToHump(key)] = json[key]; }); return result; } return json; } function underlineToHump(s) { if (s.indexOf("_") > 0) { let a = s.split("_"); let result = a[0]; for (let i = 1; i < a.length; i++) { result = result + a[i].slice(0, 1).toUpperCase() + a[i].slice(1); } return result; } else { return s; } } function humpToUnderline(str) { return str.replace(/([A-Z])/g, "_$1").toLowerCase(); } /** * 加签 * @param params */ function sign(params) { if (params) { let signArray = ''; for (let param in params) { if (param === 'page' || param === 'createTime' || param === 'updateTime' || param === 'keyInfoObject' || param === 'dataInfoArray') { continue; } let value = params[param]; if (value != null) { value = JSON.stringify(value); value = value.replace(/{/g, ""); value = value.replace(/}/g, ""); value = value.replace("[", ""); value = value.replace(/,/g, ""); value = value.replace("]", ""); value = value.replace(/,/g, ""); value = value.replace(/['"]+/g, ""); if (value != null && value !== '') { signArray += value; } } } params.signature = md5__WEBPACK_IMPORTED_MODULE_3___default()(quick_sort(signArray).join("")); } return params; } function quick_sort(arr) { var arry1, arry2, mid; if (arr.length < 2) return arr;else if (arr.length === 2) { if (arr[0] > arr[1]) return arr.reverse();else return arr; } else { arry1 = []; arry2 = []; mid = arr[0]; for (var i = 1; i < arr.length; i++) { if (arr[i] < mid) arry1.push(arr[i]);else arry2.push(arr[i]); } } return quick_sort(arry1).concat(mid, quick_sort(arry2)); } /** * @param {*} url 文件下载地址 * @param {*} name 文件名称 */ const downloadFile = async ({ url, name }) => { let urlBlob = await urlToBlob(url); let link = document.createElement('a'); if (link.download !== undefined) { let uri = URL.createObjectURL(urlBlob); link.setAttribute('href', uri); link.setAttribute('download', name); link.style.visibility = 'hidden'; document.body.appendChild(link); link.click(); document.body.removeChild(link); } }; // url 转bolb function urlToBlob(the_url) { return new Promise((resolve, reject) => { let xhr = new XMLHttpRequest(); xhr.open('get', the_url, true); xhr.responseType = 'blob'; xhr.onload = res => { if (res.target.status === 200) { resolve(res.target.response); } else { reject(res); } }; xhr.send(); }); } /** * 初始化数据源控件 * @return {Object|Array} * @param record */ function convertToViewModelOld(record) { if (record instanceof Array) { let newRecords = []; record.map(r => newRecords.push(initViewModelRecord(r))); return newRecords; } else { return initViewModelRecord(record); } } /** * 初始化数据源控件 * @return {Object|Array} * @param record 代转换对象 * @param deleteVirtualJson 是否删除虚拟列映射的前端json 包括:keyInfoObject、keyInfoView、dataInfoView * @param deleteVirtual 是否删除虚拟列属性,即只要viewModel对象需要的属性 */ function convertToViewModel(record, deleteVirtual = false, deleteVirtualJson = false) { if (record instanceof Array) { let newRecords = []; record.map(r => { newRecords.push(initViewModelRecord(r, deleteVirtual, deleteVirtualJson)); }); return newRecords; } else { return initViewModelRecord(record, deleteVirtual, deleteVirtualJson); } } /** * @name initViewModelRecord * @param record * @return {*} */ function initViewModelRecord(record, deleteVirtual = false, deleteVirtualJson = false) { let newRecord = Object.assign({}, record); if (deleteVirtual) { let { id, dataSourceName, createTime, updateTime, keyInfo, dataInfo, deleted, tenantId, updater, creator, orgId, orgCode } = record; newRecord = { id, dataSourceName, createTime, updateTime, keyInfo, dataInfo, deleted, tenantId, updater, creator, orgId, orgCode }; } if (deleteVirtualJson) { delete newRecord.keyInfoObject; delete newRecord.keyInfoView; delete newRecord.dataInfoView; } if (newRecord.keyInfo) { if (typeof newRecord.keyInfo == 'string') { newRecord.keyInfo = JSON.parse(newRecord.keyInfo); } newRecord.key = Object.assign(newRecord.keyInfo); newRecord.keyInfo = ''; } if (newRecord.dataInfo) { if (typeof newRecord.dataInfo == 'string') { newRecord.dataInfo = JSON.parse(newRecord.dataInfo); } newRecord.data = Object.assign(newRecord.dataInfo); newRecord.dataInfo = ''; } return newRecord; } /** * 初始化数据源控件 * @return Control * @param record */ function convertToModel(record) { let newRecord = Object.assign({}, record); if (newRecord.keyInfo) { if (typeof newRecord.keyInfo == 'string') { newRecord.keyInfo = JSON.parse(newRecord.keyInfo); } } if (newRecord.dataInfo) { if (typeof newRecord.dataInfo == 'string') { newRecord.dataInfo = JSON.parse(newRecord.dataInfo); } } return newRecord; } /** * @name equal * @param a * @param b * @return {boolean} * @description ES6 Map、Set和Typed阵列支持的最快深度对等。 */ function equal(a, b) { if (a === b) return true; if (a && b && typeof a == 'object' && typeof b == 'object') { if (a.constructor !== b.constructor) return false; let length, i, keys; if (Array.isArray(a)) { length = a.length; if (length != b.length) return false; for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false; return true; } if (a instanceof Map && b instanceof Map) { if (a.size !== b.size) return false; for (i of a.entries()) if (!b.has(i[0])) return false; for (i of a.entries()) if (!equal(i[1], b.get(i[0]))) return false; return true; } if (a instanceof Set && b instanceof Set) { if (a.size !== b.size) return false; for (i of a.entries()) if (!b.has(i[0])) return false; return true; } if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { length = a.length; if (length !== b.length) return false; for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false; return true; } if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); keys = Object.keys(a); length = keys.length; if (length !== Object.keys(b).length) return false; for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; for (i = length; i-- !== 0;) { let key = keys[i]; if (!equal(a[key], b[key])) return false; } return true; } // true if both NaN, false otherwise return a !== a && b !== b; } // 深度克隆 function deepClone(obj) { // 对常见的“非”值,直接返回原来值 if ([null, undefined, NaN, false].includes(obj)) return obj; if (typeof obj !== 'object' && typeof obj !== 'function') { // 原始类型直接返回 return obj; } const o = getVarType(obj) === 'array' ? [] : {}; for (const i in obj) { if (obj.hasOwnProperty(i)) { o[i] = typeof obj[i] === 'object' ? deepClone(obj[i]) : obj[i]; } } return o; } // JS对象深度合并 function deepMerge(target = {}, source = {}) { target = deepClone(target); if (typeof target !== 'object' || typeof source !== 'object') return false; for (const prop in source) { if (!source.hasOwnProperty(prop)) continue; if (prop in target) { if (typeof target[prop] !== 'object') { target[