{"remainingRequest":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xypm-web\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xypm-web\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\xypm-web\\src\\formulas.js","dependencies":[{"path":"D:\\jenkins\\workspace\\xypm-web\\src\\formulas.js","mtime":1675214577730},{"path":"D:\\jenkins\\workspace\\xypm-web\\babel.config.js","mtime":1675214572901},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import _typeof from \"D:/jenkins/workspace/xypm-web/node_modules/@babel/runtime/helpers/esm/typeof.js\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.string.starts-with\";\nimport _toConsumableArray from \"D:/jenkins/workspace/xypm-web/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport \"core-js/modules/web.dom.iterable\";\nimport { Form, Notification } from 'element-ui';\nimport utils from \"@/utils.js\";\nvar Formulas = {\n  d1900: new Date(Date.UTC(1900, 0, 1)),\n  WEEK_STARTS: [undefined, 0, 1, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 1, 2, 3, 4, 5, 6, 0],\n  /**\r\n  * 冀中能源业务开发的计算公式\r\n   */\n  //根据传入的年月得到上月的月份\n  LastMonth: function LastMonth(y, m) {\n    m = parseInt(m);\n    y = parseInt(y);\n    if (m > 0 && m < 13 && y > 0) {\n      if (m === 1) {\n        return 12;\n      }\n      var v = m - 1;\n      if (v < 10) {\n        v = \"0\" + v;\n      }\n      return v;\n    }\n  },\n  //根据传入的年月得到上个月的年份\n  LastYear: function LastYear(y, m) {\n    m = parseInt(m);\n    y = parseInt(y);\n    if (m > 0 && m < 13 && y > 0) {\n      if (m === 1) {\n        return y - 1;\n      }\n      return y;\n    }\n  },\n  /**\r\n   * 数学公式\r\n   */\n  ABS: function ABS(number) {\n    number = Formulas.parseNumber(number);\n    return Math.abs(number);\n  },\n  AVERAGE: function AVERAGE() {\n    var avg = 0;\n    for (var _len = arguments.length, number = new Array(_len), _key = 0; _key < _len; _key++) {\n      number[_key] = arguments[_key];\n    }\n    number.forEach(function (item) {\n      avg += Formulas.parseNumber(item);\n    });\n    if (number.length === 0) return 0;\n    return avg / number.length;\n  },\n  AVERAGESUB: function AVERAGESUB(obj) {\n    var array = Formulas.getArrayByPath(obj);\n    return Formulas.AVERAGE.apply(Formulas, _toConsumableArray(array));\n  },\n  CEILING: function CEILING(number, significance) {\n    number = Formulas.parseNumber(number);\n    significance = Formulas.ABS(significance);\n    if (significance === 0) {\n      return 0;\n    }\n    var precision = -Math.floor(Math.log(significance) / Math.log(10));\n    if (number > 0) {\n      return Formulas.ROUND(Math.ceil(number / significance) * significance, precision);\n    } else {\n      return Formulas.ROUND(Math.floor(number / significance) * significance, precision);\n    }\n  },\n  COUNT: function COUNT() {\n    return arguments.length;\n  },\n  COUNTSUB: function COUNTSUB(obj) {\n    var array = obj.data;\n    return array.length;\n  },\n  COUNTIF: function COUNTIF(list, condition) {\n    if (!condition.startsWith(\">\") && !condition.startsWith(\"<\")) {\n      if (isNaN(condition)) {\n        condition = \"==='\" + condition + \"'\";\n      } else {\n        condition = \"===\" + condition;\n      }\n    }\n    var i = 0;\n    list.forEach(function (item) {\n      if (eval('item' + condition)) {\n        i++;\n      }\n    });\n    return i;\n  },\n  COUNTIFSUB: function COUNTIFSUB(obj, condition) {\n    var array = Formulas.getArrayByPath(obj);\n    return Formulas.COUNTIF(array, condition);\n  },\n  FIXED: function FIXED(decimal, digits) {\n    decimal = Formulas.parseNumber(decimal);\n    digits = Formulas.parseNumber(digits);\n    return Number(decimal).toFixed(digits);\n  },\n  FLOOR: function FLOOR(number, significance) {\n    number = Formulas.parseNumber(number);\n    significance = Formulas.ABS(significance);\n    if (significance === 0) {\n      return 0;\n    }\n    var precision = -Math.floor(Math.log(significance) / Math.log(10));\n    if (number > 0) {\n      return Formulas.ROUND(Math.floor(number / significance) * significance, precision);\n    } else {\n      return Formulas.ROUND(Math.ceil(number / significance) * significance, precision);\n    }\n  },\n  INT: function INT(number) {\n    number = Formulas.parseNumber(number);\n    return parseInt(number);\n  },\n  LARGE: function LARGE(array, index) {\n    index = Formulas.parseNumber(index);\n    return array.sort(function (a, b) {\n      return b - a;\n    })[index - 1];\n  },\n  LARGESUB: function LARGESUB(obj, index) {\n    var array = Formulas.getArrayByPath(obj);\n    return Formulas.LARGE(array, index);\n  },\n  LOG: function LOG(number, base) {\n    number = Formulas.parseNumber(number);\n    base = Formulas.parseNumber(base);\n    if (base === 0) return 0;\n    return Math.log(number) / Math.log(base);\n  },\n  MAX: function MAX() {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    args = Formulas.parseNumberArray(args);\n    if (args.length === 0) {\n      return 0;\n    }\n    return Math.max.apply(Math, _toConsumableArray(args));\n  },\n  MAXSUB: function MAXSUB(obj) {\n    var array = Formulas.getArrayByPath(obj);\n    return Formulas.MAX.apply(Formulas, _toConsumableArray(array));\n  },\n  MIN: function MIN() {\n    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      args[_key3] = arguments[_key3];\n    }\n    args = Formulas.parseNumberArray(args);\n    if (args.length === 0) {\n      return 0;\n    }\n    return Math.min.apply(Math, _toConsumableArray(args));\n  },\n  MINSUB: function MINSUB(obj) {\n    var array = Formulas.getArrayByPath(obj);\n    return Formulas.MIN.apply(Formulas, _toConsumableArray(array));\n  },\n  MOD: function MOD(dividend, divisor) {\n    dividend = Formulas.parseNumber(dividend);\n    divisor = Formulas.parseNumber(divisor);\n    var modules = Math.abs(dividend % divisor);\n    return divisor > 0 ? modules : -modules;\n  },\n  POWER: function POWER(number, power) {\n    number = Formulas.parseNumber(number);\n    power = Formulas.parseNumber(power);\n    return Math.pow(number, power);\n  },\n  PRODUCT: function PRODUCT() {\n    var total = 1;\n    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n      args[_key4] = arguments[_key4];\n    }\n    args.forEach(function (item) {\n      item = Formulas.parseNumber(item);\n      total *= item;\n    });\n    return args.length === 0 ? 0 : total;\n  },\n  PRODUCTSUB: function PRODUCTSUB(obj) {\n    var array = Formulas.getArrayByPath(obj);\n    return Formulas.PRODUCT.apply(Formulas, _toConsumableArray(array));\n  },\n  RAND: function RAND() {\n    return Math.random();\n  },\n  ROUND: function ROUND(number, digit) {\n    return Math.round(number * Math.pow(10, digit)) / Math.pow(10, digit);\n  },\n  SMALL: function SMALL(array, index) {\n    array = Formulas.parseNumberArray(array);\n    return array.sort(function (a, b) {\n      return a - b;\n    })[index - 1];\n  },\n  SMALLSUB: function SMALLSUB(obj, index) {\n    var array = Formulas.getArrayByPath(obj);\n    return Formulas.SMALL(array, index);\n  },\n  SQRT: function SQRT(number) {\n    number = Formulas.parseNumber(number);\n    return Math.sqrt(number);\n  },\n  SUM: function SUM() {\n    var num = 0;\n    for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n      args[_key5] = arguments[_key5];\n    }\n    args.forEach(function (item) {\n      item = Formulas.parseNumber(item);\n      num += item;\n    });\n    return num;\n  },\n  SUMSUB: function SUMSUB(obj) {\n    var array = Formulas.getArrayByPath(obj);\n    return Formulas.SUM.apply(Formulas, _toConsumableArray(array));\n  },\n  SUMPRODUCT: function SUMPRODUCT() {\n    for (var _len6 = arguments.length, arrays = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n      arrays[_key6] = arguments[_key6];\n    }\n    if (!arrays) return 0;\n    var min = Number.MAX_VALUE;\n    var total = 0;\n    arrays.forEach(function (array) {\n      if (array.length < min) {\n        min = array.length;\n      }\n    });\n    for (var i = 0; i < min; i++) {\n      var p = 1;\n      for (var j = 0; j < arrays.length; j++) {\n        p *= Formulas.parseNumber(arrays[j][i]);\n      }\n      total += p;\n    }\n    return total;\n  },\n  SUMPRODUCTSUB: function SUMPRODUCTSUB() {\n    for (var _len7 = arguments.length, arrays = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n      arrays[_key7] = arguments[_key7];\n    }\n    if (!arrays) return 0;\n    var newArrays = [];\n    arrays.forEach(function (obj) {\n      newArrays.push(Formulas.getArrayByPath(obj));\n    });\n    return Formulas.SUMPRODUCT.apply(Formulas, newArrays);\n  },\n  /**\r\n   * 文本函数\r\n   * @param args\r\n   * @returns {string}\r\n   * @constructor\r\n   */\n  CONCATENATE: function CONCATENATE() {\n    var str = \"\";\n    for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n      args[_key8] = arguments[_key8];\n    }\n    args.forEach(function (item) {\n      if (item) {\n        str += item;\n      }\n    });\n    return str;\n  },\n  CHAR: function CHAR(number) {\n    number = Formulas.parseNumber(number);\n    return String.fromCharCode(number);\n  },\n  EXACT: function EXACT(str1, str2) {\n    return str1 === str2;\n  },\n  ISEMPTY: function ISEMPTY(str) {\n    return str ? true : false;\n  },\n  LEFT: function LEFT(str, number) {\n    number = Formulas.parseNumber(number);\n    return str.substr(str, number);\n  },\n  LEN: function LEN(str) {\n    return str.length;\n  },\n  LOWER: function LOWER(str) {\n    return str.toLowerCase();\n  },\n  MID: function MID(str, start, length) {\n    return str.substr(start - 1, length);\n  },\n  REPLACE: function REPLACE(str, start, length, newStr) {\n    var replaceStr = Formulas.MID(str, start, length);\n    if (!replaceStr) return str + newStr;\n    return str.replace(replaceStr, newStr);\n  },\n  REPT: function REPT(str, count) {\n    var result = \"\";\n    for (var i = 0; i < Formulas.parseNumber(count); i++) {\n      result += str;\n    }\n    return result;\n  },\n  RIGHT: function RIGHT(str, length) {\n    return str.substr(str.length - length, str.length);\n  },\n  UPPER: function UPPER(str) {\n    return str.toUpperCase();\n  },\n  TEXT: function TEXT(number) {\n    return number + \"\";\n  },\n  VALUE: function VALUE(str) {\n    return Formulas.parseNumber(str);\n  },\n  TRIM: function TRIM(str) {\n    return str.trim();\n  },\n  COUNTNO: function COUNTNO(field, char) {\n    if (field == \"\") {\n      return 0;\n    } else if (field.indexOf(char) > -1) {\n      return field.split(char).length;\n    } else {\n      return 1;\n    }\n  },\n  //逻辑函数\n  AND: function AND() {\n    var result = true;\n    for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n      args[_key9] = arguments[_key9];\n    }\n    args.forEach(function (arg) {\n      if (!arg) {\n        result = false;\n      }\n    });\n    return result;\n  },\n  FALSE: function FALSE() {\n    return false;\n  },\n  IF: function IF(arg, then_value, otherwise_value) {\n    return arg ? then_value : otherwise_value;\n  },\n  NOT: function NOT(arg) {\n    return !arg;\n  },\n  OR: function OR() {\n    var result = false;\n    for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n      args[_key10] = arguments[_key10];\n    }\n    args.forEach(function (arg) {\n      if (arg) {\n        result = true;\n      }\n    });\n    return result;\n  },\n  TRUE: function TRUE() {\n    return true;\n  },\n  XOR: function XOR() {\n    var count = 0;\n    for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n      args[_key11] = arguments[_key11];\n    }\n    args.forEach(function (arg) {\n      if (!arg) {\n        count++;\n      }\n    });\n    return count !== args.length && count !== 0;\n  },\n  //时间函数\n  DATE: function DATE(timestamp) {\n    var date = Formulas.parseDate(timestamp);\n    if (date == 'Invalid Date') {\n      Notification.error({\n        title: '错误',\n        message: '无效日期'\n      });\n      return;\n    }\n    return date;\n  },\n  DATEDELTA: function DATEDELTA(string, days) {\n    var timestamp = new Date(string).getTime();\n    timestamp += days * 86400000;\n    return Formulas.DATE(timestamp);\n  },\n  HALFDAY: function HALFDAY(startDate, endDate) {\n    var half = 0.5;\n    var startDay = Formulas.second(Formulas.parseStringToDate(startDate));\n    var endDay = Formulas.second(Formulas.parseStringToDate(endDate));\n    if (isNaN(startDay) || isNaN(endDay)) {\n      return \"\";\n    }\n    var halfDay = Math.ceil((endDay - startDay) / 43200);\n    return halfDay * half;\n  },\n  COUNTHOURS: function COUNTHOURS(startDate, endDate) {\n    var startDay = Formulas.second(Formulas.parseStringToDate(startDate));\n    var endDay = Formulas.second(Formulas.parseStringToDate(endDate));\n    if (isNaN(startDay) || isNaN(endDay)) {\n      return \"\";\n    }\n    var hours = Math.ceil((endDay - startDay) / 3600);\n    return hours;\n  },\n  DAY: function DAY(timestamp) {\n    var date = Formulas.DATE(timestamp);\n    return date.getDate();\n  },\n  DAYS: function DAYS(startDate, endDate) {\n    var startDay = Formulas.serial(Formulas.parseStringToDate(startDate));\n    var endDay = Formulas.serial(Formulas.parseStringToDate(endDate));\n    if (isNaN(startDay) || isNaN(endDay)) {\n      return \"\";\n    }\n    return endDay - startDay;\n  },\n  DAYS360: function DAYS360(startDate, endDate, method) {\n    if (!startDate || !endDate) {\n      return 0;\n    }\n    startDate = Formulas.parseStringToDate(startDate);\n    endDate = Formulas.parseStringToDate(endDate);\n    var sm = startDate.getMonth();\n    var em = endDate.getMonth();\n    var sd, ed;\n    if (method) {\n      sd = startDate.getDate() === 31 ? 30 : startDate.getDate();\n      ed = endDate.getDate() === 31 ? 30 : endDate.getDate();\n    } else {\n      var smd = new Date(startDate.getFullYear(), sm + 1, 0).getDate();\n      var emd = new Date(endDate.getFullYear(), em + 1, 0).getDate();\n      sd = startDate.getDate() === smd ? 30 : startDate.getDate();\n      if (endDate.getDate() === emd) {\n        if (sd < 30) {\n          em++;\n          ed = 1;\n        } else {\n          ed = 30;\n        }\n      } else {\n        ed = endDate.getDate();\n      }\n    }\n    return 360 * (endDate.getFullYear() - startDate.getFullYear()) + 30 * (em - sm) + (ed - sd);\n  },\n  HOUR: function HOUR(timestamp) {\n    var date = Formulas.DATE(timestamp);\n    return date.getHours();\n  },\n  ISOWEEKNUM: function ISOWEEKNUM(date) {\n    date = Formulas.parseStringToDate(date);\n    date.setHours(0, 0, 0);\n    date.setDate(date.getDate() + 4 - (date.getDay() || 7));\n    var yearStart = new Date(date.getFullYear(), 0, 1);\n    return Math.ceil(((date - yearStart) / 86400000 + 1) / 7);\n  },\n  MINUTE: function MINUTE(timestamp) {\n    var date = Formulas.DATE(timestamp);\n    return date.getMinutes();\n  },\n  MONTH: function MONTH(timestamp) {\n    var date = Formulas.DATE(timestamp);\n    return date.getMonth() + 1;\n  },\n  NOW: function NOW() {\n    return Formulas.parseDate(new Date().getTime());\n  },\n  SECOND: function SECOND(timestamp) {\n    var date = Formulas.DATE(timestamp);\n    return date.getSeconds();\n  },\n  SYSTIME: function SYSTIME() {\n    //todo\n  },\n  TIME: function TIME(hour, minute, second) {\n    hour = Formulas.parseNumber(hour);\n    minute = Formulas.parseNumber(minute);\n    second = Formulas.parseNumber(second);\n    hour = hour < 0 ? 0 : hour;\n    minute = minute < 0 ? 0 : minute;\n    second = second < 0 ? 0 : second;\n    return (3600 * hour + 60 * minute + second) / 86400;\n  },\n  TIMESTAMP: function TIMESTAMP(date) {\n    if (date) {\n      date = Formulas.parseStringToDate(date);\n      return date.getTime();\n    }\n  },\n  TODAY: function TODAY() {\n    return new Date().toLocaleDateString();\n  },\n  WEEKNUM: function WEEKNUM(date, returnType) {\n    date = Formulas.parseStringToDate(date);\n    if (returnType === undefined) {\n      returnType = 1;\n    }\n    if (returnType === 21) return Formulas.ISOWEEKNUM(date);\n    var week_start = Formulas.WEEK_STARTS[returnType];\n    var jan = new Date(date.getFullYear(), 0, 1);\n    var inc = jan.getDay() < week_start ? 1 : 0;\n    jan -= Math.abs(jan.getDay() - week_start) * 24 * 60 * 60 * 1000;\n    return Math.floor((date - jan) / (1000 * 60 * 60 * 24) / 7 + 1) + inc;\n  },\n  YEAR: function YEAR(timestamp) {\n    var date = new Date(timestamp);\n    return date.getFullYear();\n  },\n  UUID: function UUID() {\n    function u4() {\n      return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n    }\n    return u4() + u4() + \"-\" + u4() + \"-\" + u4() + \"-\" + u4() + \"-\" + u4() + u4() + u4();\n  },\n  //高级函数:\n  CURRENCY: function CURRENCY(x) {\n    var tmp = Formulas.parseNumber(x);\n    //TODO 转换为人民币大写\n    return utils.convertCurrency(tmp);\n  },\n  THOUSAND: function THOUSAND(x) {\n    if (x || x === 0) {\n      x = x + \"\";\n    }\n    //let tmp = Formulas.parseNumber(x);\n    var reg = /(\\d)(?=(?:\\d{3})+\\b)/g;\n    return x.replace(reg, '$1,');\n  },\n  /**\r\n   * 异常统一处理\r\n   * @param {*} err\r\n   * @param {*} typeName\r\n   */\n  throwErr: function throwErr(err, typeName) {\n    Notification.error({\n      title: typeName + '公式运算错误',\n      message: err\n    });\n    if (isNaN(startDay) || isNaN(endDay)) {\n      return \"\";\n    }\n    throw err;\n  },\n  /**\r\n   * 类型判断\r\n   * @param {*} value\r\n   * @param {*} type\r\n   */\n  typeofType: function typeofType(value, type) {\n    if (value !== \"\" && _typeof(value) != type) {\n      throw \"传入参数必须是\" + type + \"类型\";\n    }\n  },\n  parseNumber: function parseNumber(number) {\n    number = parseFloat(number);\n    if (isNaN(number)) return 0;\n    return number;\n  },\n  parseNumberArray: function parseNumberArray(array) {\n    return array.map(function (item) {\n      return Formulas.parseNumber(item);\n    });\n  },\n  parseDate: function parseDate(timestamp) {\n    timestamp = Formulas.parseNumber(timestamp);\n    return new Date(timestamp);\n  },\n  parseStringToDate: function parseStringToDate(str) {\n    if (!str) {\n      return new Date(\"\");\n    }\n    return new Date(Date.parse(str.replace(/-/g, \"/\")));\n  },\n  getArrayByPath: function getArrayByPath(obj) {\n    var array = [];\n    if (!obj.data) return array;\n    obj.data.forEach(function (item) {\n      array.push(Formulas.parseNumber(item[obj.path]));\n    });\n    return array;\n  },\n  serial: function serial(date) {\n    var addOn = date > -2203891200000 ? 2 : 1;\n    return Math.ceil((date - Formulas.d1900) / 86400000) + addOn;\n  },\n  second: function second(date) {\n    var addOn = date > -2203891200000 ? 2 : 1;\n    return Math.ceil((date - Formulas.d1900) / 1000) + addOn;\n  }\n};\nFormulas.install = function (Vue) {\n  Vue.prototype.$Formulas = Formulas;\n};\nexport default Formulas;",null]}