{"remainingRequest":"/Users/admin/projects/dms/src/dealer_admin/node_modules/thread-loader/dist/cjs.js!/Users/admin/projects/dms/src/dealer_admin/node_modules/babel-loader/lib/index.js!/Users/admin/projects/dms/src/dealer_admin/src/utils/index.js","dependencies":[{"path":"/Users/admin/projects/dms/src/dealer_admin/src/utils/index.js","mtime":1713161556000},{"path":"/Users/admin/projects/dms/src/dealer_admin/babel.config.js","mtime":1713161556000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/babel-loader/lib/index.js","mtime":456789000000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _typeof from \"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime-corejs2/helpers/esm/typeof.js\";\n/**\n * Created by PanJiaChen on 16/11/18.\n */\n\n/**\n * Parse the time to string\n * @param {(Object|string|number)} time\n * @param {string} cFormat\n * @returns {string}\n */\nexport function parseTime(time, cFormat) {\n  if (arguments.length === 0) {\n    return null;\n  }\n  var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';\n  var date;\n  if (_typeof(time) === 'object') {\n    date = time;\n  } else {\n    if (typeof time === 'string' && /^[0-9]+$/.test(time)) {\n      time = parseInt(time);\n    }\n    if (typeof time === 'number' && time.toString().length === 10) {\n      time = time * 1000;\n    }\n    date = new Date(time);\n  }\n  var formatObj = {\n    y: date.getFullYear(),\n    m: date.getMonth() + 1,\n    d: date.getDate(),\n    h: date.getHours(),\n    i: date.getMinutes(),\n    s: date.getSeconds(),\n    a: date.getDay()\n  };\n  var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, function (result, key) {\n    var value = formatObj[key];\n    // Note: getDay() returns 0 on Sunday\n    if (key === 'a') {\n      return ['日', '一', '二', '三', '四', '五', '六'][value];\n    }\n    if (result.length > 0 && value < 10) {\n      value = '0' + value;\n    }\n    return value || 0;\n  });\n  return time_str;\n}\n\n/**\n * @param {number} time\n * @param {string} option\n * @returns {string}\n */\nexport function formatTime(time, option) {\n  if (('' + time).length === 10) {\n    time = parseInt(time) * 1000;\n  } else {\n    time = +time;\n  }\n  var d = new Date(time);\n  var now = Date.now();\n  var diff = (now - d) / 1000;\n  if (diff < 30) {\n    return '刚刚';\n  } else if (diff < 3600) {\n    // less 1 hour\n    return Math.ceil(diff / 60) + '分钟前';\n  } else if (diff < 3600 * 24) {\n    return Math.ceil(diff / 3600) + '小时前';\n  } else if (diff < 3600 * 24 * 2) {\n    return '1天前';\n  }\n  if (option) {\n    return parseTime(time, option);\n  } else {\n    return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分';\n  }\n}\n\n/**\n * @param {string} url\n * @returns {Object}\n */\nexport function getQueryObject(url) {\n  url = url == null ? window.location.href : url;\n  var search = url.substring(url.lastIndexOf('?') + 1);\n  var obj = {};\n  var reg = /([^?&=]+)=([^?&=]*)/g;\n  search.replace(reg, function (rs, $1, $2) {\n    var name = decodeURIComponent($1);\n    var val = decodeURIComponent($2);\n    val = String(val);\n    obj[name] = val;\n    return rs;\n  });\n  return obj;\n}\n\n/**\n*随机数据\n*/\nexport function getUuidCode() {\n  var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16;\n  var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];\n  var nums = \"\";\n  for (var i = 0; i < count; i++) {\n    var id = parseInt(Math.random() * 61);\n    nums += chars[id];\n  }\n  return nums;\n}\n\n/**\n * @param {string} input value\n * @returns {number} output value\n */\nexport function byteLength(str) {\n  // returns the byte length of an utf8 string\n  var s = str.length;\n  for (var i = str.length - 1; i >= 0; i--) {\n    var code = str.charCodeAt(i);\n    if (code > 0x7f && code <= 0x7ff) s++;else if (code > 0x7ff && code <= 0xffff) s += 2;\n    if (code >= 0xDC00 && code <= 0xDFFF) i--;\n  }\n  return s;\n}\n\n/**\n * @param {Array} actual\n * @returns {Array}\n */\nexport function cleanArray(actual) {\n  var newArray = [];\n  for (var i = 0; i < actual.length; i++) {\n    if (actual[i]) {\n      newArray.push(actual[i]);\n    }\n  }\n  return newArray;\n}\n\n/**\n * @param {Object} json\n * @returns {Array}\n */\nexport function param(json) {\n  if (!json) return '';\n  return cleanArray(Object.keys(json).map(function (key) {\n    if (json[key] === undefined) return '';\n    return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]);\n  })).join('&');\n}\n\n/**\n * @param {string} url\n * @returns {Object}\n */\nexport function param2Obj(url) {\n  var search = url.split('?')[1];\n  if (!search) {\n    return {};\n  }\n  return JSON.parse('{\"' + decodeURIComponent(search).replace(/\"/g, '\\\\\"').replace(/&/g, '\",\"').replace(/=/g, '\":\"').replace(/\\+/g, ' ') + '\"}');\n}\n\n/**\n * @param {string} val\n * @returns {string}\n */\nexport function html2Text(val) {\n  var div = document.createElement('div');\n  div.innerHTML = val;\n  return div.textContent || div.innerText;\n}\n\n/**\n * Merges two objects, giving the last one precedence\n * @param {Object} target\n * @param {(Object|Array)} source\n * @returns {Object}\n */\nexport function objectMerge(target, source) {\n  if (_typeof(target) !== 'object') {\n    target = {};\n  }\n  if (Array.isArray(source)) {\n    return source.slice();\n  }\n  Object.keys(source).forEach(function (property) {\n    var sourceProperty = source[property];\n    if (_typeof(sourceProperty) === 'object') {\n      target[property] = objectMerge(target[property], sourceProperty);\n    } else {\n      target[property] = sourceProperty;\n    }\n  });\n  return target;\n}\n\n/**\n * @param {HTMLElement} element\n * @param {string} className\n */\nexport function toggleClass(element, className) {\n  if (!element || !className) {\n    return;\n  }\n  var classString = element.className;\n  var nameIndex = classString.indexOf(className);\n  if (nameIndex === -1) {\n    classString += '' + className;\n  } else {\n    classString = classString.substr(0, nameIndex) + classString.substr(nameIndex + className.length);\n  }\n  element.className = classString;\n}\n\n/**\n * @param {string} type\n * @returns {Date}\n */\nexport function getTime(type) {\n  if (type === 'start') {\n    return new Date().getTime() - 3600 * 1000 * 24 * 90;\n  } else {\n    return new Date(new Date().toDateString());\n  }\n}\n\n/**\n * @param {Function} func\n * @param {number} wait\n * @param {boolean} immediate\n * @return {*}\n */\nexport function debounce(func, wait, immediate) {\n  var timeout, args, context, timestamp, result;\n  var _later = function later() {\n    // 据上一次触发时间间隔\n    var last = +new Date() - timestamp;\n\n    // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait\n    if (last < wait && last > 0) {\n      timeout = setTimeout(_later, wait - last);\n    } else {\n      timeout = null;\n      // 如果设定为immediate===true，因为开始边界已经调用过了此处无需调用\n      if (!immediate) {\n        result = func.apply(context, args);\n        if (!timeout) context = args = null;\n      }\n    }\n  };\n  return function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    context = this;\n    timestamp = +new Date();\n    var callNow = immediate && !timeout;\n    // 如果延时不存在，重新设定延时\n    if (!timeout) timeout = setTimeout(_later, wait);\n    if (callNow) {\n      result = func.apply(context, args);\n      context = args = null;\n    }\n    return result;\n  };\n}\n\n/**\n * This is just a simple version of deep copy\n * Has a lot of edge cases bug\n * If you want to use a perfect deep copy, use lodash's _.cloneDeep\n * @param {Object} source\n * @returns {Object}\n */\nexport function deepClone(source) {\n  if (!source && _typeof(source) !== 'object') {\n    throw new Error('error arguments', 'deepClone');\n  }\n  var targetObj = source.constructor === Array ? [] : {};\n  Object.keys(source).forEach(function (keys) {\n    if (source[keys] && _typeof(source[keys]) === 'object') {\n      targetObj[keys] = deepClone(source[keys]);\n    } else {\n      targetObj[keys] = source[keys];\n    }\n  });\n  return targetObj;\n}\n\n/**\n * @param {Array} arr\n * @returns {Array}\n */\nexport function uniqueArr(arr) {\n  return Array.from(new Set(arr));\n}\n\n/**\n * @returns {string}\n */\nexport function createUniqueString() {\n  var timestamp = +new Date() + '';\n  var randomNum = parseInt((1 + Math.random()) * 65536) + '';\n  return (+(randomNum + timestamp)).toString(32);\n}\n\n/**\n * @returns {string}\n */\nexport function randomNumberString() {\n  var leftPrefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  var math = Math.floor(Math.random() * 90000 + 10000);\n  return leftPrefix.toString() + math;\n}\n\n/**\n * Check if an element has a class\n * @param {HTMLElement} elm\n * @param {string} cls\n * @returns {boolean}\n */\nexport function hasClass(ele, cls) {\n  return !!ele.className.match(new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)'));\n}\n\n/**\n * Add class to element\n * @param {HTMLElement} elm\n * @param {string} cls\n */\nexport function addClass(ele, cls) {\n  if (!hasClass(ele, cls)) ele.className += ' ' + cls;\n}\n\n/**\n * Remove class from element\n * @param {HTMLElement} elm\n * @param {string} cls\n */\nexport function removeClass(ele, cls) {\n  if (hasClass(ele, cls)) {\n    var reg = new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)');\n    ele.className = ele.className.replace(reg, ' ');\n  }\n}\nexport function exportHTML(data) {\n  var Docxtemplater = require('docxtemplater');\n  var PizZip = require('pizzip');\n  var JSZipUtils = require('jszip-utils');\n  var _require = require('file-saver'),\n    saveAs = _require.saveAs;\n  // 读取并获得模板文件的二进制内容\n  JSZipUtils.getBinaryContent('https://imi-dealer.oss-cn-shanghai.aliyuncs.com/dealer_template.docx', function (error, content) {\n    // gy-agree-service.docx是模板。我们在导出的时候，会根据此模板来导出对应的数据\n    // 抛出异常\n    if (error) {\n      throw error;\n    }\n    // 创建一个PizZip实例，内容为模板的内容\n    var zip = new PizZip(content);\n    // 创建并加载docxtemplater实例对象\n    var doc = new Docxtemplater().loadZip(zip);\n    // 设置模板变量的值\n    doc.setData(data);\n    try {\n      // 用模板变量的值替换所有模板变量\n      doc.render();\n    } catch (error) {\n      // 抛出异常\n      var e = {\n        message: error.message,\n        name: error.name,\n        stack: error.stack,\n        properties: error.properties\n      };\n      console.log(JSON.stringify({\n        error: e\n      }));\n      throw error;\n    }\n\n    // 生成一个代表docxtemplater对象的zip文件（不是一个真实的文件，而是在内存中的表示）\n    var out = doc.getZip().generate({\n      type: 'blob',\n      mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n    });\n    // 将目标文件对象保存为目标类型的文件，并命名\n    saveAs(out, data.china_name + ' 经销商资料.docx');\n  });\n}\nexport function priceNumFilter(value) {\n  value = Math.floor(value);\n  //value = parseFloat(value);\n  if (isNaN(value)) {\n    return '---';\n  }\n  return value.toLocaleString();\n}\nexport function priceFilter(value) {\n  value = parseFloat(value);\n  if (isNaN(value)) {\n    return '---';\n  }\n  return value.toFixed(2);\n}\nexport function numSub(num1, num2) {\n  var baseNum, baseNum1, baseNum2;\n  var precision; // 精度\n  try {\n    baseNum1 = num1.toString().split(\".\")[1].length;\n  } catch (e) {\n    baseNum1 = 0;\n  }\n  try {\n    baseNum2 = num2.toString().split(\".\")[1].length;\n  } catch (e) {\n    baseNum2 = 0;\n  }\n  baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));\n  precision = baseNum1 >= baseNum2 ? baseNum1 : baseNum2;\n  return Number((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(2) + '';\n}\nexport function numAdd(num1, num2) {\n  //加法\n  var baseNum, baseNum1, baseNum2;\n  try {\n    baseNum1 = num1.toString().split(\".\")[1].length;\n  } catch (e) {\n    baseNum1 = 0;\n  }\n  try {\n    baseNum2 = num2.toString().split(\".\")[1].length;\n  } catch (e) {\n    baseNum2 = 0;\n  }\n  baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));\n  return (num1 * baseNum + num2 * baseNum) / baseNum;\n}\n\n//乘法\nexport function numMul(arg1, arg2) {\n  var m = 0,\n    s1 = arg1.toString(),\n    s2 = arg2.toString();\n  try {\n    m += s1.split(\".\")[1].length;\n  } catch (e) {}\n  try {\n    m += s2.split(\".\")[1].length;\n  } catch (e) {}\n  return Number(s1.replace(\".\", \"\")) * Number(s2.replace(\".\", \"\")) / Math.pow(10, m);\n}\n\n//除法\nexport function numDiv(arg1, arg2) {\n  var t1 = 0,\n    t2 = 0,\n    r1,\n    r2;\n  try {\n    t1 = arg1.toString().split(\".\")[1].length;\n  } catch (e) {}\n  try {\n    t2 = arg2.toString().split(\".\")[1].length;\n  } catch (e) {}\n  r1 = Number(arg1.toString().replace(\".\", \"\"));\n  r2 = Number(arg2.toString().replace(\".\", \"\"));\n  return r1 / r2 * Math.pow(10, t2 - t1);\n}",null]}