179.f5b7b03d.js.map 318 KB

1
  1. {"version":3,"file":"js/179.f5b7b03d.js","mappings":"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","sources":["webpack://baozhidao-putoutstorage/./node_modules/_querystring@0.2.1@querystring/decode.js","webpack://baozhidao-putoutstorage/./node_modules/_querystring@0.2.1@querystring/encode.js","webpack://baozhidao-putoutstorage/./node_modules/_querystring@0.2.1@querystring/index.js","webpack://baozhidao-putoutstorage/./node_modules/_spark-md5@3.0.2@spark-md5/spark-md5.js","webpack://baozhidao-putoutstorage/./src/components/mark-green.vue","webpack://baozhidao-putoutstorage/./src/components/mark-green.vue?d9fe","webpack://baozhidao-putoutstorage/./src/components/bg.vue?5ef6","webpack://baozhidao-putoutstorage/./src/components/bg.vue","webpack://baozhidao-putoutstorage/./src/components/bg.vue?4c61","webpack://baozhidao-putoutstorage/./src/components/searchAdd.vue?c0f0","webpack://baozhidao-putoutstorage/./src/components/searchAdd.vue","webpack://baozhidao-putoutstorage/./src/components/searchAdd.vue?592b","webpack://baozhidao-putoutstorage/./src/hooks/useTable.ts","webpack://baozhidao-putoutstorage/./src/components/table.vue?c286","webpack://baozhidao-putoutstorage/./src/components/table.vue","webpack://baozhidao-putoutstorage/./src/components/table.vue?0270","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/errors/index.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/utils/pool.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/utils/observable.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/utils/base64.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/config/region.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/utils/helper.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/api/index.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/upload/base.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/upload/resume.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/utils/crc32.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/upload/direct.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/logger/report-v3.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/logger/index.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/upload/hosts.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/upload/index.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/utils/config.js","webpack://baozhidao-putoutstorage/./node_modules/_qiniu-js@3.4.2@qiniu-js/esm/utils/compress.js","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/files.vue?9b23","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/files.vue","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/files.vue?0784","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/inputSearch.vue?1ba9","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/inputSearch.vue","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/inputSearch.vue?afd1","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/Scaninquire.vue?d21d","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/Scaninquire.vue","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/Scaninquire.vue?0aea","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/index.vue?3f84","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/index.vue","webpack://baozhidao-putoutstorage/./src/views/medicine/medicineManage/index.vue?ae50"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).filter(Boolean).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","(function (factory) {\n if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else {\n // Browser globals (with support for web workers)\n var glob;\n\n try {\n glob = window;\n } catch (e) {\n glob = self;\n }\n\n glob.SparkMD5 = factory();\n }\n}(function (undefined) {\n\n 'use strict';\n\n /*\n * Fastest md5 implementation around (JKM md5).\n * Credits: Joseph Myers\n *\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n * @see http://jsperf.com/md5-shootout/7\n */\n\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n var add32 = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n },\n hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n function cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n }\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n // containing the last element of the parent array if the sub array specified starts\n // beyond the length of the parent array - weird.\n // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << ((i % 4) << 3);\n }\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n\n return state;\n }\n\n function rhex(n) {\n var s = '',\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n }\n\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n }\n\n // In some cases the fast add32 function cannot be used..\n if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n add32 = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n }\n\n // ---------------------------------------------------\n\n /**\n * ArrayBuffer slice polyfill.\n *\n * @see https://github.com/ttaubert/node-arraybuffer-slice\n */\n\n if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = (val | 0) || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n\n return target;\n };\n })();\n }\n\n // ---------------------------------------------------\n\n /**\n * Helpers.\n */\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation.\n *\n * Use this class to perform an incremental md5, otherwise use the\n * static methods instead.\n */\n\n function SparkMD5() {\n // call reset to init the instance\n this.reset();\n }\n\n /**\n * Appends a string.\n * A conversion will be applied if an utf8 string is detected.\n *\n * @param {String} str The string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.append = function (str) {\n // Converts the string to utf8 bytes if necessary\n // Then append as binary\n this.appendBinary(toUtf8(str));\n\n return this;\n };\n\n /**\n * Appends a binary string.\n *\n * @param {String} contents The binary string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.reset = function () {\n this._buff = '';\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n\n return this;\n };\n\n /**\n * Releases memory used by the incremental buffer and other additional\n * resources. If you plan to use the instance again, use reset instead.\n */\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n /**\n * Finish the final calculation based on the tail.\n *\n * @param {Array} tail The tail (will be modified)\n * @param {Number} length The length of the remaining buffer\n */\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n /**\n * Performs the md5 hash on a string.\n * A conversion will be applied if utf8 string is detected.\n *\n * @param {String} str The string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hash = function (str, raw) {\n // Converts the string to utf8 bytes if necessary\n // Then compute it using the binary function\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n /**\n * Performs the md5 hash on a binary string.\n *\n * @param {String} content The binary string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation for array buffers.\n *\n * Use this class to perform an incremental md5 ONLY for array buffers.\n */\n SparkMD5.ArrayBuffer = function () {\n // call reset to init the instance\n this.reset();\n };\n\n /**\n * Appends an array buffer.\n *\n * @param {ArrayBuffer} arr The array to be appended\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n\n // Convert buffer to a string\n state.buff = arrayBuffer2Utf8Str(state.buff);\n\n return state;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n // Convert string to buffer\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n /**\n * Performs the md5 hash on an array buffer.\n *\n * @param {ArrayBuffer} arr The array buffer\n * @param {Boolean} [raw] True to get the raw string, false to get the hex one\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n}));\n","<template>\r\n <div class=\"mark-green1\">\r\n <div class=\"mark-green2\">\r\n <div class=\"mark-green3\"></div>\r\n </div>\r\n </div>\r\n</template>\r\n \r\n<style lang=\"scss\">\r\n.mark-green1 {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 50%;\r\n background: #d8f2e3;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.mark-green2 {\r\n width: 70%;\r\n height: 70%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 50%;\r\n background: #b2efcc;\r\n}\r\n\r\n.mark-green3 {\r\n width: 50%;\r\n height: 50%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 50%;\r\n background: #69d297;\r\n}</style>","import { render } from \"./mark-green.vue?vue&type=template&id=84d97b9e\"\nconst script = {}\n\nimport \"./mark-green.vue?vue&type=style&index=0&id=84d97b9e&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg\" }\nconst _hoisted_2 = { class: \"bg-tit\" }\nconst _hoisted_3 = { style: {\"display\":\"flex\",\"align-items\":\"center\",\"flex\":\"1\",\"flex-shrink\":\"0\",\"min-width\":\"200px\"} }\n\nimport markGreen from \"@/components/mark-green.vue\";\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'bg',\n props: {\r\n istitle: {\r\n type: String,\r\n default: () => '',\r\n },\r\n},\n setup(__props) {\n\r\nconst props = __props\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_text = _resolveComponent(\"el-text\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(markGreen),\n _createVNode(_component_el_text, {\n style: {\"margin-left\":\"20px\"},\n tag: \"b\"\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"tit\", {}, () => [\n _createTextVNode(_toDisplayString(props.istitle), 1)\n ])\n ]),\n _: 3\n })\n ]),\n _renderSlot(_ctx.$slots, \"btn\")\n ]),\n _renderSlot(_ctx.$slots, \"bg\")\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"bg\">\r\n <div class=\"bg-tit\">\r\n <div style=\"display: flex;align-items: center;flex: 1;flex-shrink: 0;min-width: 200px;\">\r\n <markGreen></markGreen>\r\n <el-text style=\"margin-left: 20px;\" tag=\"b\">\r\n <slot name=\"tit\">{{props.istitle}}</slot>\r\n </el-text>\r\n </div>\r\n <slot name=\"btn\"></slot>\r\n </div>\r\n <slot name=\"bg\"></slot>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport markGreen from \"@/components/mark-green.vue\";\r\nconst props = defineProps({\r\n istitle: {\r\n type: String,\r\n default: () => '',\r\n },\r\n})\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.bg {\r\n border-radius: var(--el-card-border-radius);\r\n background-color: var(--el-card-bg-color);\r\n overflow: hidden;\r\n color: var(--el-text-color-primary);\r\n transition: var(--el-transition-duration);\r\n --el-card-border-color: var(--el-border-color-light);\r\n --el-card-border-radius: 4px;\r\n --el-card-bg-color: var(--el-fill-color-blank);\r\n padding: var(--y-padding);\r\n margin-bottom: var(--y-margin);\r\n\r\n &-tit {\r\n padding: var(--y-padding) 0;\r\n border-bottom: 1px solid var(--el-card-border-color);\r\n box-sizing: border-box;\r\n margin-bottom: var(--y-margin);\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n }\r\n}</style>","import script from \"./bg.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./bg.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./bg.vue?vue&type=style&index=0&id=24052afe&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"searchAdd\" }\nconst _hoisted_2 = { class: \"searchAdd-left\" }\nconst _hoisted_3 = { class: \"searchAdd-right\" }\n\nimport marks from \"@/components/mark.vue\";\r\nimport { reactive } from \"vue\";\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'searchAdd',\n props: {\r\n isButtom: {\r\n type: String,\r\n default: () => '',\r\n },\r\n labelWidth: {\r\n type: String,\r\n default: () => '100',\r\n },\r\n inline: {\r\n type: Boolean,\r\n default: () => true,\r\n },\r\n // isPlaceholder: {\r\n // type: String,\r\n // default: () => '',\r\n // },\r\n},\n emits: [\"event\"],\n setup(__props, { emit: __emit }) {\n\r\nconst props = __props\r\nconst data = reactive({\r\n input: ''\r\n})\r\nconst emit = __emit\r\nconst subClick = () => {\r\n emit('event', data.input)\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_form_item = _resolveComponent(\"el-form-item\")!\n const _component_el_form = _resolveComponent(\"el-form\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_el_form, {\n inline: props.inline\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"searchConter\"),\n _createVNode(_component_el_form_item, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: subClick\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(props.isButtom), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 3\n }, 8, [\"inline\"])\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _renderSlot(_ctx.$slots, \"searchBtn\")\n ])\n ]))\n}\n}\n\n})","<!-- -->\r\n<template>\r\n <div class=\"searchAdd\">\r\n <div class=\"searchAdd-left\">\r\n <!-- <marks></marks> -->\r\n <el-form :inline=\"props.inline\">\r\n <slot name=\"searchConter\"></slot>\r\n <el-form-item>\r\n <el-button type=\"primary\" @click=\"subClick\">{{ props.isButtom }}</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n <div class=\"searchAdd-right\">\r\n <slot name=\"searchBtn\"></slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport marks from \"@/components/mark.vue\";\r\nimport { reactive } from \"vue\";\r\nconst props = defineProps({\r\n isButtom: {\r\n type: String,\r\n default: () => '',\r\n },\r\n labelWidth: {\r\n type: String,\r\n default: () => '100',\r\n },\r\n inline: {\r\n type: Boolean,\r\n default: () => true,\r\n },\r\n // isPlaceholder: {\r\n // type: String,\r\n // default: () => '',\r\n // },\r\n})\r\nconst data = reactive({\r\n input: ''\r\n})\r\nconst emit = defineEmits<{\r\n (e: 'event', myvalue: string): void\r\n}>()\r\nconst subClick = () => {\r\n emit('event', data.input)\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.searchAdd {\r\n border-radius: var(--el-card-border-radius);\r\n background-color: var(--el-card-bg-color);\r\n overflow: hidden;\r\n color: var(--el-text-color-primary);\r\n transition: var(--el-transition-duration);\r\n --el-card-border-color: var(--el-border-color-light);\r\n --el-card-border-radius: 4px;\r\n --el-card-bg-color: var(--el-fill-color-blank);\r\n padding: var(--y-padding) var(--y-padding) 0 var(--y-padding);\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: var(--y-margin);\r\n &-left {\r\n display: flex;\r\n align-items: center;\r\n }\r\n}\r\n\r\n.el-form-item {\r\n display: flex;\r\n --font-size: 14px;\r\n}\r\n</style>","import script from \"./searchAdd.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./searchAdd.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./searchAdd.vue?vue&type=style&index=0&id=ad1965bc&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { reactive, toRefs } from 'vue'\r\ninterface Pageable {\r\n pageNum: number\r\n pageSize: number\r\n total: number\r\n RemainingTime?: number\r\n small: boolean\r\n disabled: boolean\r\n}\r\ninterface Table {\r\n loading: boolean\r\n tableData: any[]\r\n pageable: Pageable\r\n searchParam: any\r\n searchInitParam: any\r\n totalParam: any\r\n}\r\n\r\n/**\r\n *\r\n * @param requestApi 请求接口\r\n * @param initParam 请求参数\r\n * @param isPagination 是否需要分页\r\n * @param dataCallback 对后台返回参数进行处理\r\n * @returns\r\n */\r\nexport const useTable = (\r\n requestApi: (params: any) => Promise<any>,\r\n initParam: object = {},\r\n isPagination: boolean = true,\r\n dataCallback?: (data: any) => any\r\n) => {\r\n const state = reactive<Table>({\r\n // 表格数据\r\n tableData: [],\r\n loading: true,\r\n // 分页数据\r\n pageable: {\r\n // 当前页数\r\n pageNum: 1,\r\n // 每页显示条数\r\n pageSize: 8,\r\n // 总条数\r\n total: 0,\r\n RemainingTime: 0,\r\n small: true,\r\n disabled: false\r\n },\r\n // 查询参数(只包括查询)\r\n searchParam: {},\r\n // 初始化默认的查询参数\r\n searchInitParam: {},\r\n // 总参数(包含分页和查询参数)\r\n totalParam: {}\r\n })\r\n\r\n const getTableList = async () => {\r\n const params: any = {\r\n page: state.pageable.pageNum,\r\n pageSize: state.pageable.pageSize,\r\n ...initParam\r\n }\r\n requestApi(params).then(res => {\r\n state.tableData = res.data?.list || []\r\n // dataCallback && (state.tableData = dataCallback(res))\r\n state.pageable.total = parseInt(res.data?.count)\r\n // console.log('返回数据', res, state.tableData)\r\n\r\n if (res.Data?.RemainingTime) {\r\n state.pageable.RemainingTime = res.Data.RemainingTime\r\n }\r\n state.loading = false\r\n })\r\n }\r\n if (isPagination) {\r\n }\r\n const handleSizeChange = (val: number) => {\r\n state.pageable.pageSize = val\r\n getTableList()\r\n }\r\n\r\n const handleCurrentChange = (val: number) => {\r\n state.pageable.pageNum = val\r\n getTableList()\r\n }\r\n\r\n const searchTable = () => {\r\n state.pageable.pageNum = 1\r\n getTableList()\r\n }\r\n\r\n return {\r\n ...toRefs(state),\r\n getTableList,\r\n searchTable,\r\n handleSizeChange,\r\n handleCurrentChange\r\n }\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, mergeProps as _mergeProps, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveDynamicComponent as _resolveDynamicComponent, withCtx as _withCtx, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"y-tabs\" }\nconst _hoisted_2 = {\n key: 0,\n style: {\"color\":\"red\"}\n}\nconst _hoisted_3 = { style: {\"margin-top\":\"20px\"} }\n\nimport { ref, CSSProperties,watch } from \"vue\";\r\nimport { useTable } from '@/hooks/useTable'\r\nimport { TableProps } from 'element-plus'\r\nimport { ColumnProps } from './interface/index'\r\ninterface ProTableProps extends Partial<Omit<TableProps<any>, 'data'>> {\r\n columns: ColumnProps[] // 列配置项\r\n requestApi: (params: any) => Promise<any> // 请求表格数据的api ==> 必传\r\n dataCallback?: (data: any) => any // 返回数据的回调函数,可以对数据进行处理 ==> 非必传\r\n title?: string // 表格标题,目前只在打印的时候用到 ==> 非必传\r\n pagination?: boolean // 是否需要分页组件 ==> 非必传(默认为true)\r\n layout?: string\r\n initParam?: any // 初始化请求参数 ==> 非必传(默认为{})\r\n border?: boolean // 是否带有纵向边框 ==> 非必传(默认为true)\r\n toolButton?: boolean // 是否显示表格功能按钮 ==> 非必传(默认为true)\r\n selectId?: string // 当表格数据多选时,所指定的 id ==> 非必传(默认为 id)\r\n displayHeader?: boolean // 是否隐藏头部\r\n rowClick?: (row: any, column: any, event: any) => void // 点击行\r\n selectionChange?: (row: any) => void // 选择函数\r\n getRowKey?: ((row: any) => string) | string // 用于优化select勾选框\r\n tableRowClassName?: (data: any) => CSSProperties\r\n}\r\n// 接受父组件参数,配置默认值\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'table',\n props: {\n columns: { default: () => [] },\n requestApi: {},\n dataCallback: {},\n title: {},\n pagination: { type: Boolean, default: true },\n layout: { default: 'total, sizes, prev, pager, next, jumper' },\n initParam: { default: {} },\n border: { type: Boolean, default: true },\n toolButton: { type: Boolean, default: true },\n selectId: { default: 'id' },\n displayHeader: { type: Boolean },\n rowClick: {},\n selectionChange: {},\n getRowKey: {},\n tableRowClassName: {},\n size: {},\n width: {},\n height: {},\n maxHeight: {},\n fit: { type: Boolean },\n stripe: { type: Boolean },\n rowKey: {},\n context: {},\n showHeader: { type: Boolean },\n showSummary: { type: Boolean },\n sumText: {},\n summaryMethod: {},\n rowClassName: {},\n rowStyle: {},\n cellClassName: {},\n cellStyle: {},\n headerRowClassName: {},\n headerRowStyle: {},\n headerCellClassName: {},\n headerCellStyle: {},\n highlightCurrentRow: { type: Boolean },\n currentRowKey: {},\n emptyText: {},\n expandRowKeys: {},\n defaultExpandAll: { type: Boolean },\n defaultSort: {},\n tooltipEffect: {},\n tooltipOptions: {},\n spanMethod: {},\n selectOnIndeterminate: { type: Boolean },\n indent: {},\n treeProps: {},\n lazy: { type: Boolean },\n load: {},\n className: {},\n style: {},\n tableLayout: {},\n scrollbarAlwaysOn: { type: Boolean },\n flexible: { type: Boolean },\n showOverflowTooltip: { type: [Boolean, Object] }\n },\n setup(__props: any, { expose: __expose }) {\n\r\nconst props = __props\r\n\r\n\r\n// 表格操作 Hooks\r\nconst { tableData, getTableList, pageable, loading, handleSizeChange, handleCurrentChange } = useTable(\r\n props.requestApi,\r\n props.initParam,\r\n props.pagination,\r\n \r\n props.dataCallback\r\n)\r\n\r\ngetTableList()\r\n// 接收 columns 并设置为响应式\r\nconst tableColumns = ref<ColumnProps[]>(props.columns)\r\n\r\n//暴露方法\r\n__expose({\r\ngetTableList,tableColumns,props\r\n})\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_table_column = _resolveComponent(\"el-table-column\")!\n const _component_el_tooltip = _resolveComponent(\"el-tooltip\")!\n const _component_el_empty = _resolveComponent(\"el-empty\")!\n const _component_el_table = _resolveComponent(\"el-table\")!\n const _component_el_pagination = _resolveComponent(\"el-pagination\")!\n const _directive_loading = _resolveDirective(\"loading\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives((_openBlock(), _createBlock(_component_el_table, {\n data: _unref(tableData),\n onRowClick: props.rowClick,\n onSelectionChange: props.selectionChange,\n \"row-key\": props.getRowKey,\n border: props.border,\n \"max-height\": \"450\",\n \"row-style\": _ctx.tableRowClassName,\n \"table-layout\": \"auto\"\n }, {\n append: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"append\")\n ]),\n empty: _withCtx(() => [\n _createVNode(_component_el_empty)\n ]),\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\"),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(tableColumns.value, (item) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: item }, [\n (item.type == 'selection' || item.type == 'index')\n ? (_openBlock(), _createBlock(_component_el_table_column, _mergeProps({ key: 0 }, item, {\n align: item.align ?? 'center',\n \"reserve-selection\": item.type == 'selection',\n \"show-overflow-tooltip\": true\n }), null, 16, [\"align\", \"reserve-selection\"]))\n : _createCommentVNode(\"\", true),\n (item.type === 'expand')\n ? (_openBlock(), _createBlock(_component_el_table_column, _mergeProps({ key: 1 }, item, {\n align: item.align ?? 'center',\n \"show-overflow-tooltip\": true\n }), {\n default: _withCtx((scope) => [\n (item.render)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(item.render), {\n key: 0,\n row: scope.row\n }, null, 8, [\"row\"]))\n : _renderSlot(_ctx.$slots, item.type, {\n key: 1,\n row: scope.row\n })\n ]),\n _: 2\n }, 1040, [\"align\"]))\n : _createCommentVNode(\"\", true),\n (!item.type && item.prop && item.name !== item.prop)\n ? (_openBlock(), _createBlock(_component_el_table_column, _mergeProps({ key: 2 }, item, {\n align: item.align ?? 'center',\n \"show-overflow-tooltip\": true\n }), {\n default: _withCtx((scope) => [\n (item.prop=='T_wait_audit')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(scope.row[item.prop]==true?'待审核':''), 1))\n : _createCommentVNode(\"\", true),\n (item.ellipsis)\n ? (_openBlock(), _createBlock(_component_el_tooltip, {\n key: 1,\n effect: \"dark\",\n content: scope.row[item.prop],\n placement: \"bottom\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(scope.row[item.prop]), 1)\n ]),\n _: 2\n }, 1032, [\"content\"]))\n : _createCommentVNode(\"\", true),\n (item.fixed)\n ? _renderSlot(_ctx.$slots, item.fixed, {\n key: 2,\n row: scope.row\n })\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1040, [\"align\"]))\n : _createCommentVNode(\"\", true),\n (!item.type && item.prop && item.name === item.prop)\n ? (_openBlock(), _createBlock(_component_el_table_column, _mergeProps({ key: 3 }, item, {\n align: item.align ?? 'center',\n \"show-overflow-tooltip\": true\n }), {\n default: _withCtx((scope) => [\n _renderSlot(_ctx.$slots, item.prop, {\n row: scope.row\n })\n ]),\n _: 2\n }, 1040, [\"align\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ]),\n _: 3\n }, 8, [\"data\", \"onRowClick\", \"onSelectionChange\", \"row-key\", \"border\", \"row-style\"])), [\n [_directive_loading, _unref(loading)]\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.pagination)\n ? (_openBlock(), _createBlock(_component_el_pagination, {\n key: 0,\n \"current-page\": _unref(pageable).pageNum,\n \"onUpdate:currentPage\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(pageable).pageNum) = $event)),\n \"page-size\": _unref(pageable).pageSize,\n \"onUpdate:pageSize\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(pageable).pageSize) = $event)),\n layout: props.layout,\n total: _unref(pageable).total,\n \"page-sizes\": [8, 10, 20, 50],\n onSizeChange: _unref(handleSizeChange),\n onCurrentChange: _unref(handleCurrentChange)\n }, null, 8, [\"current-page\", \"page-size\", \"layout\", \"total\", \"onSizeChange\", \"onCurrentChange\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","<!-- -->\r\n<template>\r\n <div class=\"y-tabs\">\r\n <el-table v-loading=\"loading\" :data=\"tableData\" @row-click=\"props.rowClick\"\r\n @selection-change=\"props.selectionChange\" :row-key=\"props.getRowKey\"\r\n :border=\"props.border\" max-height=\"450\"\r\n :row-style=\"tableRowClassName\" table-layout=\"auto\">\r\n <!-- 默认插槽 -->\r\n <slot></slot>\r\n <template v-for=\"item in tableColumns\" :key=\"item\">\r\n <!-- selection || index -->\r\n <el-table-column\r\n v-bind=\"item\"\r\n :align=\"item.align ?? 'center'\"\r\n :reserve-selection=\"item.type == 'selection'\"\r\n v-if=\"item.type == 'selection' || item.type == 'index'\"\r\n :show-overflow-tooltip=\"true\"\r\n ></el-table-column>\r\n <!-- expand 支持 tsx 语法 && 作用域插槽 (tsx > slot) -->\r\n <el-table-column v-bind=\"item\" :align=\"item.align ?? 'center'\" v-if=\"item.type === 'expand'\" v-slot=\"scope\" :show-overflow-tooltip=\"true\">\r\n <component :is=\"item.render\" :row=\"scope.row\" v-if=\"item.render\"> </component>\r\n <slot :name=\"item.type\" :row=\"scope.row\" v-else></slot>\r\n </el-table-column>\r\n <!-- 普通渲染 -->\r\n <el-table-column\r\n v-bind=\"item\"\r\n :align=\"item.align ?? 'center'\"\r\n v-if=\"!item.type && item.prop && item.name !== item.prop\"\r\n v-slot=\"scope\" :show-overflow-tooltip=\"true\"\r\n >\r\n <div v-if=\"item.prop=='T_wait_audit'\" style=\"color: red;\">\r\n {{ scope.row[item.prop]==true?'待审核':'' }}\r\n </div>\r\n <el-tooltip v-if=\"item.ellipsis\" effect=\"dark\" :content=\"scope.row[item.prop]\" placement=\"bottom\">\r\n {{ scope.row[item.prop] }}\r\n </el-tooltip>\r\n <slot v-if=\"item.fixed\" :name=\"item.fixed\" :row=\"scope.row\"></slot>\r\n </el-table-column>\r\n <!-- 自定义slot -->\r\n <el-table-column\r\n v-bind=\"item\"\r\n :align=\"item.align ?? 'center'\"\r\n v-if=\"!item.type && item.prop && item.name === item.prop\"\r\n v-slot=\"scope\" :show-overflow-tooltip=\"true\"\r\n >\r\n <slot :name=\"item.prop\" :row=\"scope.row\"></slot>\r\n </el-table-column>\r\n </template>\r\n <!-- 插入表格最后一行之后的插槽 -->\r\n <template #append>\r\n <slot name=\"append\"> </slot>\r\n </template>\r\n <!-- 表格无数据情况 -->\r\n <template #empty>\r\n <el-empty></el-empty>\r\n </template>\r\n </el-table>\r\n <!-- 分页组件 -->\r\n <div style=\"margin-top: 20px;\">\r\n <el-pagination v-model:current-page=\"pageable.pageNum\" v-model:page-size=\"pageable.pageSize\" v-if=\"pagination\"\r\n :layout=\"props.layout\" :total=\"pageable.total\" :page-sizes=\"[8, 10, 20, 50]\"\r\n @size-change=\"handleSizeChange\" @current-change=\"handleCurrentChange\" />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, CSSProperties,watch } from \"vue\";\r\nimport { useTable } from '@/hooks/useTable'\r\nimport { TableProps } from 'element-plus'\r\nimport { ColumnProps } from './interface/index'\r\ninterface ProTableProps extends Partial<Omit<TableProps<any>, 'data'>> {\r\n columns: ColumnProps[] // 列配置项\r\n requestApi: (params: any) => Promise<any> // 请求表格数据的api ==> 必传\r\n dataCallback?: (data: any) => any // 返回数据的回调函数,可以对数据进行处理 ==> 非必传\r\n title?: string // 表格标题,目前只在打印的时候用到 ==> 非必传\r\n pagination?: boolean // 是否需要分页组件 ==> 非必传(默认为true)\r\n layout?: string\r\n initParam?: any // 初始化请求参数 ==> 非必传(默认为{})\r\n border?: boolean // 是否带有纵向边框 ==> 非必传(默认为true)\r\n toolButton?: boolean // 是否显示表格功能按钮 ==> 非必传(默认为true)\r\n selectId?: string // 当表格数据多选时,所指定的 id ==> 非必传(默认为 id)\r\n displayHeader?: boolean // 是否隐藏头部\r\n rowClick?: (row: any, column: any, event: any) => void // 点击行\r\n selectionChange?: (row: any) => void // 选择函数\r\n getRowKey?: ((row: any) => string) | string // 用于优化select勾选框\r\n tableRowClassName?: (data: any) => CSSProperties\r\n}\r\n// 接受父组件参数,配置默认值\r\nconst props = withDefaults(defineProps<ProTableProps>(), {\r\n columns: () => [],//渲染表格\r\n pagination: true,\r\n // layout: 'total, prev, pager, next, jumper',\r\n layout: 'total, sizes, prev, pager, next, jumper',\r\n initParam: {},//请求参数\r\n border: true,\r\n toolButton: true,\r\n selectId: 'id',\r\n searchCol: () => ({ xs: 1, sm: 2, md: 2, lg: 3, xl: 4 })\r\n})\r\n\r\n\r\n// 表格操作 Hooks\r\nconst { tableData, getTableList, pageable, loading, handleSizeChange, handleCurrentChange } = useTable(\r\n props.requestApi,\r\n props.initParam,\r\n props.pagination,\r\n \r\n props.dataCallback\r\n)\r\n\r\ngetTableList()\r\n// 接收 columns 并设置为响应式\r\nconst tableColumns = ref<ColumnProps[]>(props.columns)\r\n\r\n//暴露方法\r\ndefineExpose({\r\ngetTableList,tableColumns,props\r\n})\r\n\r\n</script>\r\n<style lang=\"scss\">\r\n\r\n.y-tabs {\r\n background: var(--y-card-background);\r\n border-radius: var(--y-radius);\r\n margin-top: var(--y-margin);\r\n\r\n &-headers {\r\n border-bottom: var(--y-border);\r\n box-sizing: border-box;\r\n padding: var(--y-padding);\r\n }\r\n\r\n &-item {\r\n padding: var(--y-padding);\r\n }\r\n}\r\n</style>","import script from \"./table.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./table.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./table.vue?vue&type=style&index=0&id=588e57b4&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexport var QiniuErrorName;\n(function (QiniuErrorName) {\n // 输入错误\n QiniuErrorName[\"InvalidFile\"] = \"InvalidFile\";\n QiniuErrorName[\"InvalidToken\"] = \"InvalidToken\";\n QiniuErrorName[\"InvalidMetadata\"] = \"InvalidMetadata\";\n QiniuErrorName[\"InvalidChunkSize\"] = \"InvalidChunkSize\";\n QiniuErrorName[\"InvalidCustomVars\"] = \"InvalidCustomVars\";\n QiniuErrorName[\"NotAvailableUploadHost\"] = \"NotAvailableUploadHost\";\n // 缓存相关\n QiniuErrorName[\"ReadCacheFailed\"] = \"ReadCacheFailed\";\n QiniuErrorName[\"InvalidCacheData\"] = \"InvalidCacheData\";\n QiniuErrorName[\"WriteCacheFailed\"] = \"WriteCacheFailed\";\n QiniuErrorName[\"RemoveCacheFailed\"] = \"RemoveCacheFailed\";\n // 图片压缩模块相关\n QiniuErrorName[\"GetCanvasContextFailed\"] = \"GetCanvasContextFailed\";\n QiniuErrorName[\"UnsupportedFileType\"] = \"UnsupportedFileType\";\n // 运行环境相关\n QiniuErrorName[\"FileReaderReadFailed\"] = \"FileReaderReadFailed\";\n QiniuErrorName[\"NotAvailableXMLHttpRequest\"] = \"NotAvailableXMLHttpRequest\";\n QiniuErrorName[\"InvalidProgressEventTarget\"] = \"InvalidProgressEventTarget\";\n // 请求错误\n QiniuErrorName[\"RequestError\"] = \"RequestError\";\n})(QiniuErrorName || (QiniuErrorName = {}));\nvar QiniuError = /** @class */ (function () {\n function QiniuError(name, message) {\n this.name = name;\n this.message = message;\n this.stack = new Error().stack;\n }\n return QiniuError;\n}());\nexport { QiniuError };\nvar QiniuRequestError = /** @class */ (function (_super) {\n __extends(QiniuRequestError, _super);\n function QiniuRequestError(code, reqId, message, data) {\n var _this = _super.call(this, QiniuErrorName.RequestError, message) || this;\n _this.code = code;\n _this.reqId = reqId;\n /**\n * @description 标记当前的 error 类型是一个 QiniuRequestError\n * @deprecated 下一个大版本将会移除,不推荐使用,推荐直接使用 instanceof 进行判断\n */\n _this.isRequestError = true;\n _this.data = data;\n return _this;\n }\n return QiniuRequestError;\n}(QiniuError));\nexport { QiniuRequestError };\n/**\n * @description 由于跨域、证书错误、断网、host 解析失败、系统拦截等原因导致的错误\n */\nvar QiniuNetworkError = /** @class */ (function (_super) {\n __extends(QiniuNetworkError, _super);\n function QiniuNetworkError(message, reqId) {\n if (reqId === void 0) { reqId = ''; }\n return _super.call(this, 0, reqId, message) || this;\n }\n return QiniuNetworkError;\n}(QiniuRequestError));\nexport { QiniuNetworkError };\n//# sourceMappingURL=index.js.map","var Pool = /** @class */ (function () {\n function Pool(runTask, limit) {\n this.runTask = runTask;\n this.limit = limit;\n this.aborted = false;\n this.queue = [];\n this.processing = [];\n }\n Pool.prototype.enqueue = function (task) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.queue.push({\n task: task,\n resolve: resolve,\n reject: reject\n });\n _this.check();\n });\n };\n Pool.prototype.run = function (item) {\n var _this = this;\n this.queue = this.queue.filter(function (v) { return v !== item; });\n this.processing.push(item);\n this.runTask(item.task).then(function () {\n _this.processing = _this.processing.filter(function (v) { return v !== item; });\n item.resolve();\n _this.check();\n }, function (err) { return item.reject(err); });\n };\n Pool.prototype.check = function () {\n var _this = this;\n if (this.aborted)\n return;\n var processingNum = this.processing.length;\n var availableNum = this.limit - processingNum;\n this.queue.slice(0, availableNum).forEach(function (item) {\n _this.run(item);\n });\n };\n Pool.prototype.abort = function () {\n this.queue = [];\n this.aborted = true;\n };\n return Pool;\n}());\nexport { Pool };\n//# sourceMappingURL=pool.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/** 表示可清理的资源,比如 Observable 的执行 */\nvar Subscription = /** @class */ (function () {\n function Subscription() {\n /** 用来标示该 Subscription 是否被取消订阅的标示位 */\n this.closed = false;\n }\n /** 取消 observer 的订阅 */\n Subscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n if (this._unsubscribe) {\n this._unsubscribe();\n }\n };\n /** 添加一个 tear down 在该 Subscription 的 unsubscribe() 期间调用 */\n Subscription.prototype.add = function (teardown) {\n this._unsubscribe = teardown;\n };\n return Subscription;\n}());\n/**\n * 实现 Observer 接口并且继承 Subscription 类,Observer 是消费 Observable 值的公有 API\n * 所有 Observers 都转化成了 Subscriber,以便提供类似 Subscription 的能力,比如 unsubscribe\n*/\nvar Subscriber = /** @class */ (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (observerOrNext && typeof observerOrNext === 'object') {\n _this.destination = observerOrNext;\n }\n else {\n _this.destination = __assign(__assign(__assign({}, observerOrNext && { next: observerOrNext }), error && { error: error }), complete && { complete: complete });\n }\n return _this;\n }\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped && this.destination.next) {\n this.destination.next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped && this.destination.error) {\n this.isStopped = true;\n this.destination.error(err);\n }\n };\n Subscriber.prototype.complete = function (result) {\n if (!this.isStopped && this.destination.complete) {\n this.isStopped = true;\n this.destination.complete(result);\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\n/** 可观察对象,当前的上传事件的集合 */\nvar Observable = /** @class */ (function () {\n function Observable(_subscribe) {\n this._subscribe = _subscribe;\n }\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var sink = new Subscriber(observerOrNext, error, complete);\n sink.add(this._subscribe(sink));\n return sink;\n };\n return Observable;\n}());\nexport { Observable };\n//# sourceMappingURL=observable.js.map","/* eslint-disable */\n// https://github.com/locutusjs/locutus/blob/master/src/php/xml/utf8_encode.js\nfunction utf8Encode(argString) {\n // http://kevin.vanzonneveld.net\n // + original by: Webtoolkit.info (http://www.webtoolkit.info/)\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + improved by: sowberry\n // + tweaked by: Jack\n // + bugfixed by: Onno Marsman\n // + improved by: Yves Sucaet\n // + bugfixed by: Onno Marsman\n // + bugfixed by: Ulrich\n // + bugfixed by: Rafal Kukawski\n // + improved by: kirilloid\n // + bugfixed by: kirilloid\n // * example 1: this.utf8Encode('Kevin van Zonneveld')\n // * returns 1: 'Kevin van Zonneveld'\n if (argString === null || typeof argString === 'undefined') {\n return '';\n }\n var string = argString + ''; // .replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n')\n var utftext = '', start, end, stringl = 0;\n start = end = 0;\n stringl = string.length;\n for (var n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n);\n var enc = null;\n if (c1 < 128) {\n end++;\n }\n else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128);\n }\n else if ((c1 & 0xf800 ^ 0xd800) > 0) {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);\n }\n else {\n // surrogate pairs\n if ((c1 & 0xfc00 ^ 0xd800) > 0) {\n throw new RangeError('Unmatched trail surrogate at ' + n);\n }\n var c2 = string.charCodeAt(++n);\n if ((c2 & 0xfc00 ^ 0xdc00) > 0) {\n throw new RangeError('Unmatched lead surrogate at ' + (n - 1));\n }\n c1 = ((c1 & 0x3ff) << 10) + (c2 & 0x3ff) + 0x10000;\n enc = String.fromCharCode((c1 >> 18) | 240, ((c1 >> 12) & 63) | 128, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.slice(start, end);\n }\n utftext += enc;\n start = end = n + 1;\n }\n }\n if (end > start) {\n utftext += string.slice(start, stringl);\n }\n return utftext;\n}\n// https://github.com/locutusjs/locutus/blob/master/src/php/xml/utf8_decode.js\nfunction utf8Decode(strData) {\n // eslint-disable-line camelcase\n // discuss at: https://locutus.io/php/utf8_decode/\n // original by: Webtoolkit.info (https://www.webtoolkit.info/)\n // input by: Aman Gupta\n // input by: Brett Zamir (https://brett-zamir.me)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Norman \"zEh\" Fuchs\n // bugfixed by: hitwork\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // bugfixed by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: kirilloid\n // bugfixed by: w35l3y (https://www.wesley.eti.br)\n // example 1: utf8_decode('Kevin van Zonneveld')\n // returns 1: 'Kevin van Zonneveld'\n var tmpArr = [];\n var i = 0;\n var c1 = 0;\n var seqlen = 0;\n strData += '';\n while (i < strData.length) {\n c1 = strData.charCodeAt(i) & 0xFF;\n seqlen = 0;\n // https://en.wikipedia.org/wiki/UTF-8#Codepage_layout\n if (c1 <= 0xBF) {\n c1 = (c1 & 0x7F);\n seqlen = 1;\n }\n else if (c1 <= 0xDF) {\n c1 = (c1 & 0x1F);\n seqlen = 2;\n }\n else if (c1 <= 0xEF) {\n c1 = (c1 & 0x0F);\n seqlen = 3;\n }\n else {\n c1 = (c1 & 0x07);\n seqlen = 4;\n }\n for (var ai = 1; ai < seqlen; ++ai) {\n c1 = ((c1 << 0x06) | (strData.charCodeAt(ai + i) & 0x3F));\n }\n if (seqlen === 4) {\n c1 -= 0x10000;\n tmpArr.push(String.fromCharCode(0xD800 | ((c1 >> 10) & 0x3FF)));\n tmpArr.push(String.fromCharCode(0xDC00 | (c1 & 0x3FF)));\n }\n else {\n tmpArr.push(String.fromCharCode(c1));\n }\n i += seqlen;\n }\n return tmpArr.join('');\n}\nfunction base64Encode(data) {\n // http://kevin.vanzonneveld.net\n // + original by: Tyler Akins (http://rumkin.com)\n // + improved by: Bayron Guevara\n // + improved by: Thunder.m\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfixed by: Pellentesque Malesuada\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // - depends on: this.utf8Encode\n // * example 1: this.base64Encode('Kevin van Zonneveld')\n // * returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='\n // mozilla has this native\n // - but breaks in 2.0.0.12!\n // if (typeof this.window['atob'] == 'function') {\n // return atob(data)\n // }\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc = '', tmp_arr = [];\n if (!data) {\n return data;\n }\n data = utf8Encode(data + '');\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n bits = (o1 << 16) | (o2 << 8) | o3;\n h1 = (bits >> 18) & 0x3f;\n h2 = (bits >> 12) & 0x3f;\n h3 = (bits >> 6) & 0x3f;\n h4 = bits & 0x3f;\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] =\n b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n enc = tmp_arr.join('');\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '==';\n break;\n case 2:\n enc = enc.slice(0, -1) + '=';\n break;\n }\n return enc;\n}\nfunction base64Decode(data) {\n // http://kevin.vanzonneveld.net\n // + original by: Tyler Akins (http://rumkin.com)\n // + improved by: Thunder.m\n // + input by: Aman Gupta\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfixed by: Onno Marsman\n // + bugfixed by: Pellentesque Malesuada\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + input by: Brett Zamir (http://brett-zamir.me)\n // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // * example 1: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA==')\n // * returns 1: 'Kevin van Zonneveld'\n // mozilla has this native\n // - but breaks in 2.0.0.12!\n // if (typeof this.window['atob'] == 'function') {\n // return atob(data)\n // }\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = '', tmp_arr = [];\n if (!data) {\n return data;\n }\n data += '';\n do { // unpack four hexets into three octets using index points in b64\n h1 = b64.indexOf(data.charAt(i++));\n h2 = b64.indexOf(data.charAt(i++));\n h3 = b64.indexOf(data.charAt(i++));\n h4 = b64.indexOf(data.charAt(i++));\n bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;\n o1 = bits >> 16 & 0xff;\n o2 = bits >> 8 & 0xff;\n o3 = bits & 0xff;\n if (h3 === 64) {\n tmp_arr[ac++] = String.fromCharCode(o1);\n }\n else if (h4 === 64) {\n tmp_arr[ac++] = String.fromCharCode(o1, o2);\n }\n else {\n tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);\n }\n } while (i < data.length);\n dec = tmp_arr.join('');\n return utf8Decode(dec);\n}\nexport function urlSafeBase64Encode(v) {\n v = base64Encode(v);\n // 参考 https://tools.ietf.org/html/rfc4648#section-5\n return v.replace(/\\//g, '_').replace(/\\+/g, '-');\n}\nexport function urlSafeBase64Decode(v) {\n v = v.replace(/_/g, '/').replace(/-/g, '+');\n return base64Decode(v);\n}\n//# sourceMappingURL=base64.js.map","var _a;\n/** 上传区域 */\nexport var region = {\n z0: 'z0',\n z1: 'z1',\n z2: 'z2',\n na0: 'na0',\n as0: 'as0',\n cnEast2: 'cn-east-2'\n};\n/** 上传区域对应的 host */\nexport var regionUphostMap = (_a = {},\n _a[region.z0] = {\n srcUphost: ['up.qiniup.com'],\n cdnUphost: ['upload.qiniup.com']\n },\n _a[region.z1] = {\n srcUphost: ['up-z1.qiniup.com'],\n cdnUphost: ['upload-z1.qiniup.com']\n },\n _a[region.z2] = {\n srcUphost: ['up-z2.qiniup.com'],\n cdnUphost: ['upload-z2.qiniup.com']\n },\n _a[region.na0] = {\n srcUphost: ['up-na0.qiniup.com'],\n cdnUphost: ['upload-na0.qiniup.com']\n },\n _a[region.as0] = {\n srcUphost: ['up-as0.qiniup.com'],\n cdnUphost: ['upload-as0.qiniup.com']\n },\n _a[region.cnEast2] = {\n srcUphost: ['up-cn-east-2.qiniup.com'],\n cdnUphost: ['upload-cn-east-2.qiniup.com']\n },\n _a);\n//# sourceMappingURL=region.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport SparkMD5 from 'spark-md5';\nimport { QiniuErrorName, QiniuError, QiniuRequestError, QiniuNetworkError } from '../errors';\nimport { urlSafeBase64Decode } from './base64';\nexport var MB = Math.pow(1024, 2);\n// 文件分块\nexport function getChunks(file, blockSize) {\n var chunkByteSize = blockSize * MB; // 转换为字节\n // 如果 chunkByteSize 比文件大,则直接取文件的大小\n if (chunkByteSize > file.size) {\n chunkByteSize = file.size;\n }\n else {\n // 因为最多 10000 chunk,所以如果 chunkSize 不符合则把每片 chunk 大小扩大两倍\n while (file.size > chunkByteSize * 10000) {\n chunkByteSize *= 2;\n }\n }\n var chunks = [];\n var count = Math.ceil(file.size / chunkByteSize);\n for (var i = 0; i < count; i++) {\n var chunk = file.slice(chunkByteSize * i, i === count - 1 ? file.size : chunkByteSize * (i + 1));\n chunks.push(chunk);\n }\n return chunks;\n}\nexport function isMetaDataValid(params) {\n return Object.keys(params).every(function (key) { return key.indexOf('x-qn-meta-') === 0; });\n}\nexport function isCustomVarsValid(params) {\n return Object.keys(params).every(function (key) { return key.indexOf('x:') === 0; });\n}\nexport function sum(list) {\n return list.reduce(function (data, loaded) { return data + loaded; }, 0);\n}\nexport function setLocalFileInfo(localKey, info, logger) {\n try {\n localStorage.setItem(localKey, JSON.stringify(info));\n }\n catch (err) {\n logger.warn(new QiniuError(QiniuErrorName.WriteCacheFailed, \"setLocalFileInfo failed: \" + localKey));\n }\n}\nexport function createLocalKey(name, key, size) {\n var localKey = key == null ? '_' : \"_key_\" + key + \"_\";\n return \"qiniu_js_sdk_upload_file_name_\" + name + localKey + \"size_\" + size;\n}\nexport function removeLocalFileInfo(localKey, logger) {\n try {\n localStorage.removeItem(localKey);\n }\n catch (err) {\n logger.warn(new QiniuError(QiniuErrorName.RemoveCacheFailed, \"removeLocalFileInfo failed. key: \" + localKey));\n }\n}\nexport function getLocalFileInfo(localKey, logger) {\n var localInfoString = null;\n try {\n localInfoString = localStorage.getItem(localKey);\n }\n catch (_a) {\n logger.warn(new QiniuError(QiniuErrorName.ReadCacheFailed, \"getLocalFileInfo failed. key: \" + localKey));\n }\n if (localInfoString == null) {\n return null;\n }\n var localInfo = null;\n try {\n localInfo = JSON.parse(localInfoString);\n }\n catch (_b) {\n // 本地信息已被破坏,直接删除\n removeLocalFileInfo(localKey, logger);\n logger.warn(new QiniuError(QiniuErrorName.InvalidCacheData, \"getLocalFileInfo failed to parse. key: \" + localKey));\n }\n return localInfo;\n}\nexport function getAuthHeaders(token) {\n var auth = 'UpToken ' + token;\n return { Authorization: auth };\n}\nexport function getHeadersForChunkUpload(token) {\n var header = getAuthHeaders(token);\n return __assign({ 'content-type': 'application/octet-stream' }, header);\n}\nexport function getHeadersForMkFile(token) {\n var header = getAuthHeaders(token);\n return __assign({ 'content-type': 'application/json' }, header);\n}\nexport function createXHR() {\n if (window.XMLHttpRequest) {\n return new XMLHttpRequest();\n }\n if (window.ActiveXObject) {\n return new window.ActiveXObject('Microsoft.XMLHTTP');\n }\n throw new QiniuError(QiniuErrorName.NotAvailableXMLHttpRequest, 'the current environment does not support.');\n}\nexport function computeMd5(data) {\n return __awaiter(this, void 0, void 0, function () {\n var buffer, spark;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, readAsArrayBuffer(data)];\n case 1:\n buffer = _a.sent();\n spark = new SparkMD5.ArrayBuffer();\n spark.append(buffer);\n return [2 /*return*/, spark.end()];\n }\n });\n });\n}\nexport function readAsArrayBuffer(data) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n // evt 类型目前存在问题 https://github.com/Microsoft/TypeScript/issues/4163\n reader.onload = function (evt) {\n if (evt.target) {\n var body = evt.target.result;\n resolve(body);\n }\n else {\n reject(new QiniuError(QiniuErrorName.InvalidProgressEventTarget, 'progress event target is undefined'));\n }\n };\n reader.onerror = function () {\n reject(new QiniuError(QiniuErrorName.FileReaderReadFailed, 'fileReader read failed'));\n };\n reader.readAsArrayBuffer(data);\n });\n}\nexport function request(url, options) {\n return new Promise(function (resolve, reject) {\n var xhr = createXHR();\n xhr.open(options.method, url);\n if (options.onCreate) {\n options.onCreate(xhr);\n }\n if (options.headers) {\n var headers_1 = options.headers;\n Object.keys(headers_1).forEach(function (k) {\n xhr.setRequestHeader(k, headers_1[k]);\n });\n }\n xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable && options.onProgress) {\n options.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n });\n xhr.onreadystatechange = function () {\n var responseText = xhr.responseText;\n if (xhr.readyState !== 4) {\n return;\n }\n var reqId = xhr.getResponseHeader('x-reqId') || '';\n if (xhr.status === 0) {\n // 发生 0 基本都是网络错误,常见的比如跨域、断网、host 解析失败、系统拦截等等\n reject(new QiniuNetworkError('network error.', reqId));\n return;\n }\n if (xhr.status !== 200) {\n var message = \"xhr request failed, code: \" + xhr.status;\n if (responseText) {\n message += \" response: \" + responseText;\n }\n var data = void 0;\n try {\n data = JSON.parse(responseText);\n }\n catch (_a) {\n // 无需处理该错误、可能拿到非 json 格式的响应是预期的\n }\n reject(new QiniuRequestError(xhr.status, reqId, message, data));\n return;\n }\n try {\n resolve({\n data: JSON.parse(responseText),\n reqId: reqId\n });\n }\n catch (err) {\n reject(err);\n }\n };\n xhr.send(options.body);\n });\n}\nexport function getPortFromUrl(url) {\n if (url && url.match) {\n var groups = url.match(/(^https?)/);\n if (!groups) {\n return '';\n }\n var type = groups[1];\n groups = url.match(/^https?:\\/\\/([^:^/]*):(\\d*)/);\n if (groups) {\n return groups[2];\n }\n if (type === 'http') {\n return '80';\n }\n return '443';\n }\n return '';\n}\nexport function getDomainFromUrl(url) {\n if (url && url.match) {\n var groups = url.match(/^https?:\\/\\/([^:^/]*)/);\n return groups ? groups[1] : '';\n }\n return '';\n}\nexport function getPutPolicy(token) {\n if (!token)\n throw new QiniuError(QiniuErrorName.InvalidToken, 'invalid token.');\n var segments = token.split(':');\n if (segments.length === 1)\n throw new QiniuError(QiniuErrorName.InvalidToken, 'invalid token segments.');\n // token 构造的差异参考:https://github.com/qbox/product/blob/master/kodo/auths/UpToken.md#admin-uptoken-authorization\n var assessKey = segments.length > 3 ? segments[1] : segments[0];\n if (!assessKey)\n throw new QiniuError(QiniuErrorName.InvalidToken, 'missing assess key field.');\n var putPolicy = null;\n try {\n putPolicy = JSON.parse(urlSafeBase64Decode(segments[segments.length - 1]));\n }\n catch (error) {\n throw new QiniuError(QiniuErrorName.InvalidToken, 'token parse failed.');\n }\n if (putPolicy == null) {\n throw new QiniuError(QiniuErrorName.InvalidToken, 'putPolicy is null.');\n }\n if (putPolicy.scope == null) {\n throw new QiniuError(QiniuErrorName.InvalidToken, 'scope field is null.');\n }\n var bucketName = putPolicy.scope.split(':')[0];\n if (!bucketName) {\n throw new QiniuError(QiniuErrorName.InvalidToken, 'resolve bucketName failed.');\n }\n return { assessKey: assessKey, bucketName: bucketName, scope: putPolicy.scope };\n}\nexport function createObjectURL(file) {\n var URL = window.URL || window.webkitURL || window.mozURL;\n // FIXME: 需要 revokeObjectURL\n return URL.createObjectURL(file);\n}\n//# sourceMappingURL=helper.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { stringify } from 'querystring';\nimport { normalizeUploadConfig } from '../utils';\nimport * as utils from '../utils';\nexport function getUpHosts(accessKey, bucketName, protocol) {\n return __awaiter(this, void 0, void 0, function () {\n var params, url;\n return __generator(this, function (_a) {\n params = stringify({ ak: accessKey, bucket: bucketName });\n url = protocol + \"://api.qiniu.com/v2/query?\" + params;\n return [2 /*return*/, utils.request(url, { method: 'GET' })];\n });\n });\n}\n/**\n * @param bucket 空间名\n * @param key 目标文件名\n * @param uploadInfo 上传信息\n */\nfunction getBaseUrl(bucket, key, uploadInfo) {\n var url = uploadInfo.url, id = uploadInfo.id;\n return url + \"/buckets/\" + bucket + \"/objects/\" + (key != null ? utils.urlSafeBase64Encode(key) : '~') + \"/uploads/\" + id;\n}\n/**\n * @param token 上传鉴权凭证\n * @param bucket 上传空间\n * @param key 目标文件名\n * @param uploadUrl 上传地址\n */\nexport function initUploadParts(token, bucket, key, uploadUrl) {\n var url = uploadUrl + \"/buckets/\" + bucket + \"/objects/\" + (key != null ? utils.urlSafeBase64Encode(key) : '~') + \"/uploads\";\n return utils.request(url, {\n method: 'POST',\n headers: utils.getAuthHeaders(token)\n });\n}\n/**\n * @param token 上传鉴权凭证\n * @param index 当前 chunk 的索引\n * @param uploadInfo 上传信息\n * @param options 请求参数\n */\nexport function uploadChunk(token, key, index, uploadInfo, options) {\n var bucket = utils.getPutPolicy(token).bucketName;\n var url = getBaseUrl(bucket, key, uploadInfo) + (\"/\" + index);\n var headers = utils.getHeadersForChunkUpload(token);\n if (options.md5)\n headers['Content-MD5'] = options.md5;\n return utils.request(url, __assign(__assign({}, options), { method: 'PUT', headers: headers }));\n}\n/**\n * @param token 上传鉴权凭证\n * @param key 目标文件名\n * @param uploadInfo 上传信息\n * @param options 请求参数\n */\nexport function uploadComplete(token, key, uploadInfo, options) {\n var bucket = utils.getPutPolicy(token).bucketName;\n var url = getBaseUrl(bucket, key, uploadInfo);\n return utils.request(url, __assign(__assign({}, options), { method: 'POST', headers: utils.getHeadersForMkFile(token) }));\n}\n/**\n * @param token 上传鉴权凭证\n * @param key 目标文件名\n * @param uploadInfo 上传信息\n */\nexport function deleteUploadedChunks(token, key, uploadinfo) {\n var bucket = utils.getPutPolicy(token).bucketName;\n var url = getBaseUrl(bucket, key, uploadinfo);\n return utils.request(url, {\n method: 'DELETE',\n headers: utils.getAuthHeaders(token)\n });\n}\n/**\n * @param {string} url\n * @param {FormData} data\n * @param {Partial<utils.RequestOptions>} options\n * @returns Promise\n * @description 直传接口\n */\nexport function direct(url, data, options) {\n return utils.request(url, __assign({ method: 'POST', body: data }, options));\n}\n/**\n * @param {UploadUrlConfig} config\n * @param {string} token\n * @returns Promise\n * @description 获取上传 url\n */\nexport function getUploadUrl(_config, token) {\n return __awaiter(this, void 0, void 0, function () {\n var config, protocol, putPolicy, res, hosts;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n config = normalizeUploadConfig(_config);\n protocol = config.upprotocol;\n if (config.uphost.length > 0) {\n return [2 /*return*/, protocol + \"://\" + config.uphost[0]];\n }\n putPolicy = utils.getPutPolicy(token);\n return [4 /*yield*/, getUpHosts(putPolicy.assessKey, putPolicy.bucketName, protocol)];\n case 1:\n res = _a.sent();\n hosts = res.data.up.acc.main;\n return [2 /*return*/, protocol + \"://\" + hosts[0]];\n }\n });\n });\n}\n//# sourceMappingURL=index.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { QiniuErrorName, QiniuError, QiniuRequestError } from '../errors';\nimport * as utils from '../utils';\nexport var DEFAULT_CHUNK_SIZE = 4; // 单位 MB\n// code 信息地址 https://developer.qiniu.com/kodo/3928/error-responses\nexport var FREEZE_CODE_LIST = [0, 502, 503, 504, 599]; // 将会冻结当前 host 的 code\nexport var RETRY_CODE_LIST = __spread(FREEZE_CODE_LIST, [612]); // 会进行重试的 code\nvar GB = Math.pow(1024, 3);\nvar Base = /** @class */ (function () {\n function Base(options, handlers, hostPool, logger) {\n this.hostPool = hostPool;\n this.logger = logger;\n this.aborted = false;\n this.retryCount = 0;\n this.xhrList = [];\n this.config = options.config;\n logger.info('config inited.', this.config);\n this.putExtra = __assign({ fname: '' }, options.putExtra);\n logger.info('putExtra inited.', this.putExtra);\n this.key = options.key;\n this.file = options.file;\n this.token = options.token;\n this.onData = handlers.onData;\n this.onError = handlers.onError;\n this.onComplete = handlers.onComplete;\n try {\n var putPolicy = utils.getPutPolicy(this.token);\n this.bucketName = putPolicy.bucketName;\n this.assessKey = putPolicy.assessKey;\n }\n catch (error) {\n logger.error('get putPolicy from token failed.', error);\n this.onError(error);\n }\n }\n // 检查并更新 upload host\n Base.prototype.checkAndUpdateUploadHost = function () {\n return __awaiter(this, void 0, void 0, function () {\n var newHost;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // 从 hostPool 中获取一个可用的 host 挂载在 this\n this.logger.info('get available upload host.');\n return [4 /*yield*/, this.hostPool.getUp(this.assessKey, this.bucketName, this.config.upprotocol)];\n case 1:\n newHost = _a.sent();\n if (newHost == null) {\n throw new QiniuError(QiniuErrorName.NotAvailableUploadHost, 'no available upload host.');\n }\n if (this.uploadHost != null && this.uploadHost.host !== newHost.host) {\n this.logger.warn(\"host switches from \" + this.uploadHost.host + \" to \" + newHost.host + \".\");\n }\n else {\n this.logger.info(\"use host \" + newHost.host + \".\");\n }\n this.uploadHost = newHost;\n return [2 /*return*/];\n }\n });\n });\n };\n // 检查并解冻当前的 host\n Base.prototype.checkAndUnfreezeHost = function () {\n this.logger.info('check unfreeze host.');\n if (this.uploadHost != null && this.uploadHost.isFrozen()) {\n this.logger.warn(this.uploadHost.host + \" will be unfrozen.\");\n this.uploadHost.unfreeze();\n }\n };\n // 检查并更新冻结当前的 host\n Base.prototype.checkAndFreezeHost = function (error) {\n this.logger.info('check freeze host.');\n if (error instanceof QiniuRequestError && this.uploadHost != null) {\n if (FREEZE_CODE_LIST.includes(error.code)) {\n this.logger.warn(this.uploadHost.host + \" will be temporarily frozen.\");\n this.uploadHost.freeze();\n }\n }\n };\n Base.prototype.handleError = function (error) {\n this.logger.error(error.message);\n this.onError(error);\n };\n /**\n * @returns Promise 返回结果与上传最终状态无关,状态信息请通过 [Subscriber] 获取。\n * @description 上传文件,状态信息请通过 [Subscriber] 获取。\n */\n Base.prototype.putFile = function () {\n return __awaiter(this, void 0, void 0, function () {\n var result, err_1, notReachRetryCount, needRetry;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.aborted = false;\n if (!this.putExtra.fname) {\n this.logger.info('use file.name as fname.');\n this.putExtra.fname = this.file.name;\n }\n if (this.file.size > 10000 * GB) {\n this.handleError(new QiniuError(QiniuErrorName.InvalidFile, 'file size exceed maximum value 10000G'));\n return [2 /*return*/];\n }\n if (this.putExtra.customVars) {\n if (!utils.isCustomVarsValid(this.putExtra.customVars)) {\n this.handleError(new QiniuError(QiniuErrorName.InvalidCustomVars, \n // FIXME: width => with\n 'customVars key should start width x:'));\n return [2 /*return*/];\n }\n }\n if (this.putExtra.metadata) {\n if (!utils.isMetaDataValid(this.putExtra.metadata)) {\n this.handleError(new QiniuError(QiniuErrorName.InvalidMetadata, 'metadata key should start with x-qn-meta-'));\n return [2 /*return*/];\n }\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n this.uploadAt = new Date().getTime();\n return [4 /*yield*/, this.checkAndUpdateUploadHost()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.run()];\n case 3:\n result = _a.sent();\n this.onComplete(result.data);\n this.checkAndUnfreezeHost();\n this.sendLog(result.reqId, 200);\n return [2 /*return*/];\n case 4:\n err_1 = _a.sent();\n if (this.aborted) {\n this.logger.warn('upload is aborted.');\n this.sendLog('', -2);\n return [2 /*return*/];\n }\n this.clear();\n this.logger.error(err_1);\n if (err_1 instanceof QiniuRequestError) {\n this.sendLog(err_1.reqId, err_1.code);\n // 检查并冻结当前的 host\n this.checkAndFreezeHost(err_1);\n notReachRetryCount = ++this.retryCount <= this.config.retryCount;\n needRetry = RETRY_CODE_LIST.includes(err_1.code);\n // 以下条件满足其中之一则会进行重新上传:\n // 1. 满足 needRetry 的条件且 retryCount 不为 0\n // 2. uploadId 无效时在 resume 里会清除本地数据,并且这里触发重新上传\n if (needRetry && notReachRetryCount) {\n this.logger.warn(\"error auto retry: \" + this.retryCount + \"/\" + this.config.retryCount + \".\");\n this.putFile();\n return [2 /*return*/];\n }\n }\n this.onError(err_1);\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n Base.prototype.clear = function () {\n this.xhrList.forEach(function (xhr) {\n xhr.onreadystatechange = null;\n xhr.abort();\n });\n this.xhrList = [];\n this.logger.info('cleanup uploading xhr.');\n };\n Base.prototype.stop = function () {\n this.logger.info('aborted.');\n this.clear();\n this.aborted = true;\n };\n Base.prototype.addXhr = function (xhr) {\n this.xhrList.push(xhr);\n };\n Base.prototype.sendLog = function (reqId, code) {\n var _a, _b;\n this.logger.report({\n code: code,\n reqId: reqId,\n remoteIp: '',\n upType: 'jssdk-h5',\n size: this.file.size,\n time: Math.floor(this.uploadAt / 1000),\n port: utils.getPortFromUrl((_a = this.uploadHost) === null || _a === void 0 ? void 0 : _a.getUrl()),\n host: utils.getDomainFromUrl((_b = this.uploadHost) === null || _b === void 0 ? void 0 : _b.getUrl()),\n bytesSent: this.progress ? this.progress.total.loaded : 0,\n duration: Math.floor((new Date().getTime() - this.uploadAt) / 1000)\n });\n };\n Base.prototype.getProgressInfoItem = function (loaded, size, fromCache) {\n return __assign({ size: size,\n loaded: loaded, percent: loaded / size * 100 }, (fromCache == null ? {} : { fromCache: fromCache }));\n };\n return Base;\n}());\nexport default Base;\n//# sourceMappingURL=base.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { uploadChunk, uploadComplete, initUploadParts } from '../api';\nimport { QiniuError, QiniuErrorName, QiniuRequestError } from '../errors';\nimport * as utils from '../utils';\nimport Base from './base';\n/** 是否为正整数 */\nfunction isPositiveInteger(n) {\n var re = /^[1-9]\\d*$/;\n return re.test(String(n));\n}\nvar Resume = /** @class */ (function (_super) {\n __extends(Resume, _super);\n function Resume() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @returns {Promise<ResponseSuccess<any>>}\n * @description 实现了 Base 的 run 接口,处理具体的分片上传事务,并抛出过程中的异常。\n */\n Resume.prototype.run = function () {\n return __awaiter(this, void 0, void 0, function () {\n var pool, mkFileResponse, localKey, uploadChunks, error_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.logger.info('start run Resume.');\n if (!this.config.chunkSize || !isPositiveInteger(this.config.chunkSize)) {\n throw new QiniuError(QiniuErrorName.InvalidChunkSize, 'chunkSize must be a positive integer');\n }\n if (this.config.chunkSize > 1024) {\n throw new QiniuError(QiniuErrorName.InvalidChunkSize, 'chunkSize maximum value is 1024');\n }\n return [4 /*yield*/, this.initBeforeUploadChunks()];\n case 1:\n _a.sent();\n pool = new utils.Pool(function (chunkInfo) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.aborted) {\n pool.abort();\n throw new Error('pool is aborted');\n }\n return [4 /*yield*/, this.uploadChunk(chunkInfo)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); }, this.config.concurrentRequestLimit);\n mkFileResponse = null;\n localKey = this.getLocalKey();\n uploadChunks = this.chunks.map(function (chunk, index) { return pool.enqueue({ chunk: chunk, index: index }); });\n _a.label = 2;\n case 2:\n _a.trys.push([2, 5, , 6]);\n return [4 /*yield*/, Promise.all(uploadChunks)];\n case 3:\n _a.sent();\n return [4 /*yield*/, this.mkFileReq()];\n case 4:\n mkFileResponse = _a.sent();\n return [3 /*break*/, 6];\n case 5:\n error_1 = _a.sent();\n // uploadId 无效,上传参数有误(多由于本地存储信息的 uploadId 失效)\n if (error_1 instanceof QiniuRequestError && (error_1.code === 612 || error_1.code === 400)) {\n utils.removeLocalFileInfo(localKey, this.logger);\n }\n throw error_1;\n case 6:\n // 上传成功,清理本地缓存数据\n utils.removeLocalFileInfo(localKey, this.logger);\n return [2 /*return*/, mkFileResponse];\n }\n });\n });\n };\n Resume.prototype.uploadChunk = function (chunkInfo) {\n return __awaiter(this, void 0, void 0, function () {\n var index, chunk, cachedInfo, shouldCheckMD5, reuseSaved, md5, onProgress, requestOptions, response;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n index = chunkInfo.index, chunk = chunkInfo.chunk;\n cachedInfo = this.cachedUploadedList[index];\n this.logger.info(\"upload part \" + index + \", cache:\", cachedInfo);\n shouldCheckMD5 = this.config.checkByMD5;\n reuseSaved = function () {\n _this.usedCacheList[index] = true;\n _this.updateChunkProgress(chunk.size, index);\n _this.uploadedList[index] = cachedInfo;\n _this.updateLocalCache();\n };\n // FIXME: 至少判断一下 size\n if (cachedInfo && !shouldCheckMD5) {\n reuseSaved();\n return [2 /*return*/];\n }\n return [4 /*yield*/, utils.computeMd5(chunk)];\n case 1:\n md5 = _a.sent();\n this.logger.info('computed part md5.', md5);\n if (cachedInfo && md5 === cachedInfo.md5) {\n reuseSaved();\n return [2 /*return*/];\n }\n // 没有使用缓存设置标记为 false\n this.usedCacheList[index] = false;\n onProgress = function (data) {\n _this.updateChunkProgress(data.loaded, index);\n };\n requestOptions = {\n body: chunk,\n md5: this.config.checkByServer ? md5 : undefined,\n onProgress: onProgress,\n onCreate: function (xhr) { return _this.addXhr(xhr); }\n };\n this.logger.info(\"part \" + index + \" start uploading.\");\n return [4 /*yield*/, uploadChunk(this.token, this.key, chunkInfo.index + 1, this.getUploadInfo(), requestOptions)];\n case 2:\n response = _a.sent();\n this.logger.info(\"part \" + index + \" upload completed.\");\n // 在某些浏览器环境下,xhr 的 progress 事件无法被触发,progress 为 null,这里在每次分片上传完成后都手动更新下 progress\n onProgress({\n loaded: chunk.size,\n total: chunk.size\n });\n this.uploadedList[index] = {\n etag: response.data.etag,\n md5: response.data.md5,\n size: chunk.size\n };\n this.updateLocalCache();\n return [2 /*return*/];\n }\n });\n });\n };\n Resume.prototype.mkFileReq = function () {\n return __awaiter(this, void 0, void 0, function () {\n var data, result;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n data = __assign(__assign(__assign({ parts: this.uploadedList.map(function (value, index) { return ({\n etag: value.etag,\n // 接口要求 index 需要从 1 开始,所以需要整体 + 1\n partNumber: index + 1\n }); }), fname: this.putExtra.fname }, this.putExtra.mimeType && { mimeType: this.putExtra.mimeType }), this.putExtra.customVars && { customVars: this.putExtra.customVars }), this.putExtra.metadata && { metadata: this.putExtra.metadata });\n this.logger.info('parts upload completed, make file.', data);\n return [4 /*yield*/, uploadComplete(this.token, this.key, this.getUploadInfo(), {\n onCreate: function (xhr) { return _this.addXhr(xhr); },\n body: JSON.stringify(data)\n })];\n case 1:\n result = _a.sent();\n this.logger.info('finish Resume Progress.');\n this.updateMkFileProgress(1);\n return [2 /*return*/, result];\n }\n });\n });\n };\n Resume.prototype.initBeforeUploadChunks = function () {\n return __awaiter(this, void 0, void 0, function () {\n var cachedInfo, res, infoMessage;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.uploadedList = [];\n this.usedCacheList = [];\n cachedInfo = utils.getLocalFileInfo(this.getLocalKey(), this.logger);\n if (!!cachedInfo) return [3 /*break*/, 2];\n this.logger.info('init upload parts from api.');\n return [4 /*yield*/, initUploadParts(this.token, this.bucketName, this.key, this.uploadHost.getUrl())];\n case 1:\n res = _a.sent();\n this.logger.info(\"initd upload parts of id: \" + res.data.uploadId + \".\");\n this.uploadId = res.data.uploadId;\n this.cachedUploadedList = [];\n return [3 /*break*/, 3];\n case 2:\n infoMessage = [\n 'resume upload parts from local cache,',\n \"total \" + cachedInfo.data.length + \" part,\",\n \"id is \" + cachedInfo.id + \".\"\n ];\n this.logger.info(infoMessage.join(' '));\n this.cachedUploadedList = cachedInfo.data;\n this.uploadId = cachedInfo.id;\n _a.label = 3;\n case 3:\n this.chunks = utils.getChunks(this.file, this.config.chunkSize);\n this.loaded = {\n mkFileProgress: 0,\n chunks: this.chunks.map(function (_) { return 0; })\n };\n this.notifyResumeProgress();\n return [2 /*return*/];\n }\n });\n });\n };\n Resume.prototype.getUploadInfo = function () {\n return {\n id: this.uploadId,\n url: this.uploadHost.getUrl()\n };\n };\n Resume.prototype.getLocalKey = function () {\n return utils.createLocalKey(this.file.name, this.key, this.file.size);\n };\n Resume.prototype.updateLocalCache = function () {\n utils.setLocalFileInfo(this.getLocalKey(), {\n id: this.uploadId,\n data: this.uploadedList\n }, this.logger);\n };\n Resume.prototype.updateChunkProgress = function (loaded, index) {\n this.loaded.chunks[index] = loaded;\n this.notifyResumeProgress();\n };\n Resume.prototype.updateMkFileProgress = function (progress) {\n this.loaded.mkFileProgress = progress;\n this.notifyResumeProgress();\n };\n Resume.prototype.notifyResumeProgress = function () {\n var _this = this;\n this.progress = {\n total: this.getProgressInfoItem(utils.sum(this.loaded.chunks) + this.loaded.mkFileProgress, \n // FIXME: 不准确的 fileSize\n this.file.size + 1 // 防止在 complete 未调用的时候进度显示 100%\n ),\n chunks: this.chunks.map(function (chunk, index) {\n var fromCache = _this.usedCacheList[index];\n return _this.getProgressInfoItem(_this.loaded.chunks[index], chunk.size, fromCache);\n }),\n uploadInfo: {\n id: this.uploadId,\n url: this.uploadHost.getUrl()\n }\n };\n this.onData(this.progress);\n };\n return Resume;\n}(Base));\nexport default Resume;\n//# sourceMappingURL=resume.js.map","/* eslint-disable no-bitwise */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { MB } from './helper';\n/**\n * 以下 class 实现参考\n * https://github.com/Stuk/jszip/blob/d4702a70834bd953d4c2d0bc155fad795076631a/lib/crc32.js\n * 该实现主要针对大文件优化、对计算的值进行了 `>>> 0` 运算(为与服务端保持一致)\n */\nvar CRC32 = /** @class */ (function () {\n function CRC32() {\n this.crc = -1;\n this.table = this.makeTable();\n }\n CRC32.prototype.makeTable = function () {\n var table = new Array();\n for (var i = 0; i < 256; i++) {\n var t = i;\n for (var j = 0; j < 8; j++) {\n if (t & 1) {\n // IEEE 标准\n t = (t >>> 1) ^ 0xEDB88320;\n }\n else {\n t >>>= 1;\n }\n }\n table[i] = t;\n }\n return table;\n };\n CRC32.prototype.append = function (data) {\n var crc = this.crc;\n for (var offset = 0; offset < data.byteLength; offset++) {\n crc = (crc >>> 8) ^ this.table[(crc ^ data[offset]) & 0xFF];\n }\n this.crc = crc;\n };\n CRC32.prototype.compute = function () {\n return (this.crc ^ -1) >>> 0;\n };\n CRC32.prototype.readAsUint8Array = function (file) {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(typeof file.arrayBuffer === 'function')) return [3 /*break*/, 2];\n _a = Uint8Array.bind;\n return [4 /*yield*/, file.arrayBuffer()];\n case 1: return [2 /*return*/, new (_a.apply(Uint8Array, [void 0, _b.sent()]))()];\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onload = function () {\n if (reader.result == null) {\n reject();\n return;\n }\n if (typeof reader.result === 'string') {\n reject();\n return;\n }\n resolve(new Uint8Array(reader.result));\n };\n reader.readAsArrayBuffer(file);\n })];\n }\n });\n });\n };\n CRC32.prototype.file = function (file) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, count, index, start, end, chuck;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(file.size <= MB)) return [3 /*break*/, 2];\n _a = this.append;\n return [4 /*yield*/, this.readAsUint8Array(file)];\n case 1:\n _a.apply(this, [_b.sent()]);\n return [2 /*return*/, this.compute()];\n case 2:\n count = Math.ceil(file.size / MB);\n index = 0;\n _b.label = 3;\n case 3:\n if (!(index < count)) return [3 /*break*/, 6];\n start = index * MB;\n end = index === (count - 1) ? file.size : start + MB;\n return [4 /*yield*/, this.readAsUint8Array(file.slice(start, end))];\n case 4:\n chuck = _b.sent();\n this.append(new Uint8Array(chuck));\n _b.label = 5;\n case 5:\n index++;\n return [3 /*break*/, 3];\n case 6: return [2 /*return*/, this.compute()];\n }\n });\n });\n };\n CRC32.file = function (file) {\n var crc = new CRC32();\n return crc.file(file);\n };\n return CRC32;\n}());\nexport { CRC32 };\n//# sourceMappingURL=crc32.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { CRC32 } from '../utils/crc32';\nimport { direct } from '../api';\nimport Base from './base';\nvar Direct = /** @class */ (function (_super) {\n __extends(Direct, _super);\n function Direct() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Direct.prototype.run = function () {\n return __awaiter(this, void 0, void 0, function () {\n var formData, crcSign, customVars_1, metadata_1, result;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.logger.info('start run Direct.');\n formData = new FormData();\n formData.append('file', this.file);\n formData.append('token', this.token);\n if (this.key != null) {\n formData.append('key', this.key);\n }\n formData.append('fname', this.putExtra.fname);\n if (!this.config.checkByServer) return [3 /*break*/, 2];\n return [4 /*yield*/, CRC32.file(this.file)];\n case 1:\n crcSign = _a.sent();\n formData.append('crc32', crcSign.toString());\n _a.label = 2;\n case 2:\n if (this.putExtra.customVars) {\n this.logger.info('init customVars.');\n customVars_1 = this.putExtra.customVars;\n Object.keys(customVars_1).forEach(function (key) { return formData.append(key, customVars_1[key].toString()); });\n this.logger.info('customVars inited.');\n }\n if (this.putExtra.metadata) {\n this.logger.info('init metadata.');\n metadata_1 = this.putExtra.metadata;\n Object.keys(metadata_1).forEach(function (key) { return formData.append(key, metadata_1[key].toString()); });\n }\n this.logger.info('formData inited.');\n return [4 /*yield*/, direct(this.uploadHost.getUrl(), formData, {\n onProgress: function (data) {\n _this.updateDirectProgress(data.loaded, data.total);\n },\n onCreate: function (xhr) { return _this.addXhr(xhr); }\n })];\n case 3:\n result = _a.sent();\n this.logger.info('Direct progress finish.');\n this.finishDirectProgress();\n return [2 /*return*/, result];\n }\n });\n });\n };\n Direct.prototype.updateDirectProgress = function (loaded, total) {\n // 当请求未完成时可能进度会达到100,所以total + 1来防止这种情况出现\n this.progress = { total: this.getProgressInfoItem(loaded, total + 1) };\n this.onData(this.progress);\n };\n Direct.prototype.finishDirectProgress = function () {\n // 在某些浏览器环境下,xhr 的 progress 事件无法被触发,progress 为 null,这里 fake 下\n if (!this.progress) {\n this.logger.warn('progress is null.');\n this.progress = { total: this.getProgressInfoItem(this.file.size, this.file.size) };\n this.onData(this.progress);\n return;\n }\n var total = this.progress.total;\n this.progress = { total: this.getProgressInfoItem(total.loaded + 1, total.size) };\n this.onData(this.progress);\n };\n return Direct;\n}(Base));\nexport default Direct;\n//# sourceMappingURL=direct.js.map","import { createXHR, getAuthHeaders } from '../utils';\n/**\n * @param {string} token 上传使用的 token\n * @param {V3LogInfo} data 上报的统计数据\n * @param {number} retry 重试的次数,默认值 3\n * @description v3 版本的日志上传接口,参考文档 https://github.com/qbox/product/blob/master/kodo/uplog.md#%E7%89%88%E6%9C%AC-3。\n */\nexport function reportV3(token, data, retry) {\n if (retry === void 0) { retry = 3; }\n var xhr = createXHR();\n xhr.open('POST', 'https://uplog.qbox.me/log/3');\n xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n xhr.setRequestHeader('Authorization', getAuthHeaders(token).Authorization);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4 && xhr.status !== 200 && retry > 0) {\n reportV3(token, data, retry - 1);\n }\n };\n // 顺序参考:https://github.com/qbox/product/blob/master/kodo/uplog.md#%E7%89%88%E6%9C%AC-3\n var stringifyData = [\n data.code || '',\n data.reqId || '',\n data.host || '',\n data.remoteIp || '',\n data.port || '',\n data.duration || '',\n data.time || '',\n data.bytesSent || '',\n data.upType || '',\n data.size || ''\n ].join(',');\n xhr.send(stringifyData);\n}\n//# sourceMappingURL=report-v3.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { reportV3 } from './report-v3';\nvar Logger = /** @class */ (function () {\n function Logger(token, disableReport, level, prefix) {\n if (disableReport === void 0) { disableReport = true; }\n if (level === void 0) { level = 'OFF'; }\n if (prefix === void 0) { prefix = 'UPLOAD'; }\n this.token = token;\n this.disableReport = disableReport;\n this.level = level;\n this.prefix = prefix;\n // 为每个类分配一个 id\n // 用以区分不同的上传任务\n this.id = ++Logger.id;\n }\n Logger.prototype.getPrintPrefix = function (level) {\n return \"Qiniu-JS-SDK [\" + level + \"][\" + this.prefix + \"#\" + this.id + \"]:\";\n };\n /**\n * @param {V3LogInfo} data 上报的数据。\n * @param {boolean} retry 重试次数,可选,默认为 3。\n * @description 向服务端上报统计信息。\n */\n Logger.prototype.report = function (data, retry) {\n if (this.disableReport)\n return;\n try {\n reportV3(this.token, data, retry);\n }\n catch (error) {\n this.warn(error);\n }\n };\n /**\n * @param {unknown[]} ...args\n * @description 输出 info 级别的调试信息。\n */\n Logger.prototype.info = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var allowLevel = ['INFO'];\n if (allowLevel.includes(this.level)) {\n // eslint-disable-next-line no-console\n console.log.apply(console, __spread([this.getPrintPrefix('INFO')], args));\n }\n };\n /**\n * @param {unknown[]} ...args\n * @description 输出 warn 级别的调试信息。\n */\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var allowLevel = ['INFO', 'WARN'];\n if (allowLevel.includes(this.level)) {\n // eslint-disable-next-line no-console\n console.warn.apply(console, __spread([this.getPrintPrefix('WARN')], args));\n }\n };\n /**\n * @param {unknown[]} ...args\n * @description 输出 error 级别的调试信息。\n */\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var allowLevel = ['INFO', 'WARN', 'ERROR'];\n if (allowLevel.includes(this.level)) {\n // eslint-disable-next-line no-console\n console.error.apply(console, __spread([this.getPrintPrefix('ERROR')], args));\n }\n };\n Logger.id = 0;\n return Logger;\n}());\nexport default Logger;\n//# sourceMappingURL=index.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { getUpHosts } from '../api';\n/**\n * @description 解冻时间,key 是 host,value 为解冻时间\n */\nvar unfreezeTimeMap = new Map();\nvar Host = /** @class */ (function () {\n function Host(host, protocol) {\n this.host = host;\n this.protocol = protocol;\n }\n /**\n * @description 当前 host 是否为冻结状态\n */\n Host.prototype.isFrozen = function () {\n var currentTime = new Date().getTime();\n var unfreezeTime = unfreezeTimeMap.get(this.host);\n return unfreezeTime != null && unfreezeTime >= currentTime;\n };\n /**\n * @param {number} time 单位秒,默认 20s\n * @description 冻结该 host 对象,该 host 将在指定时间内不可用\n */\n Host.prototype.freeze = function (time) {\n if (time === void 0) { time = 20; }\n var unfreezeTime = new Date().getTime() + (time * 1000);\n unfreezeTimeMap.set(this.host, unfreezeTime);\n };\n /**\n * @description 解冻该 host\n */\n Host.prototype.unfreeze = function () {\n unfreezeTimeMap[\"delete\"](this.host);\n };\n /**\n * @description 获取当前 host 的完整 url\n */\n Host.prototype.getUrl = function () {\n return this.protocol + \"://\" + this.host;\n };\n /**\n * @description 获取解冻时间\n */\n Host.prototype.getUnfreezeTime = function () {\n return unfreezeTimeMap.get(this.host);\n };\n return Host;\n}());\nexport { Host };\nvar HostPool = /** @class */ (function () {\n /**\n * @param {string[]} initHosts\n * @description 如果在构造时传入 initHosts,则该 host 池始终使用传入的 initHosts 做为可用的数据\n */\n function HostPool(initHosts) {\n if (initHosts === void 0) { initHosts = []; }\n this.initHosts = initHosts;\n /**\n * @description 缓存的 host 表,以 bucket 和 accessKey 作为 key\n */\n this.cachedHostsMap = new Map();\n }\n /**\n * @param {string} accessKey\n * @param {string} bucketName\n * @param {string[]} hosts\n * @param {InternalConfig['upprotocol']} protocol\n * @returns {void}\n * @description 注册可用 host\n */\n HostPool.prototype.register = function (accessKey, bucketName, hosts, protocol) {\n this.cachedHostsMap.set(accessKey + \"@\" + bucketName, hosts.map(function (host) { return new Host(host, protocol); }));\n };\n /**\n * @param {string} accessKey\n * @param {string} bucketName\n * @param {InternalConfig['upprotocol']} protocol\n * @returns {Promise<void>}\n * @description 刷新最新的 host 数据,如果用户在构造时该类时传入了 host 或者已经存在缓存则不会发起请求\n */\n HostPool.prototype.refresh = function (accessKey, bucketName, protocol) {\n var _a, _b, _c, _d;\n return __awaiter(this, void 0, void 0, function () {\n var cachedHostList, response, stashHosts;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n cachedHostList = this.cachedHostsMap.get(accessKey + \"@\" + bucketName) || [];\n if (cachedHostList.length > 0)\n return [2 /*return*/];\n if (this.initHosts.length > 0) {\n this.register(accessKey, bucketName, this.initHosts, protocol);\n return [2 /*return*/];\n }\n return [4 /*yield*/, getUpHosts(accessKey, bucketName, protocol)];\n case 1:\n response = _e.sent();\n if ((response === null || response === void 0 ? void 0 : response.data) != null) {\n stashHosts = __spread((((_b = (_a = response.data.up) === null || _a === void 0 ? void 0 : _a.acc) === null || _b === void 0 ? void 0 : _b.main) || []), (((_d = (_c = response.data.up) === null || _c === void 0 ? void 0 : _c.acc) === null || _d === void 0 ? void 0 : _d.backup) || []));\n this.register(accessKey, bucketName, stashHosts, protocol);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param {string} accessKey\n * @param {string} bucketName\n * @param {InternalConfig['upprotocol']} protocol\n * @returns {Promise<Host | null>}\n * @description 获取一个可用的上传 Host,排除已冻结的\n */\n HostPool.prototype.getUp = function (accessKey, bucketName, protocol) {\n return __awaiter(this, void 0, void 0, function () {\n var cachedHostList, availableHostList, priorityQueue;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.refresh(accessKey, bucketName, protocol)];\n case 1:\n _a.sent();\n cachedHostList = this.cachedHostsMap.get(accessKey + \"@\" + bucketName) || [];\n if (cachedHostList.length === 0)\n return [2 /*return*/, null];\n availableHostList = cachedHostList.filter(function (host) { return !host.isFrozen(); });\n if (availableHostList.length > 0)\n return [2 /*return*/, availableHostList[0]\n // 无可用的,去取离解冻最近的 host\n ];\n priorityQueue = cachedHostList\n .slice().sort(function (hostA, hostB) { return (hostA.getUnfreezeTime() || 0) - (hostB.getUnfreezeTime() || 0); });\n return [2 /*return*/, priorityQueue[0]];\n }\n });\n });\n };\n return HostPool;\n}());\nexport { HostPool };\n//# sourceMappingURL=hosts.js.map","import Resume from './resume';\nimport Direct from './direct';\nimport Logger from '../logger';\nimport { Observable, MB, normalizeUploadConfig } from '../utils';\nimport { HostPool } from './hosts';\nexport * from './base';\nexport * from './resume';\nexport function createUploadManager(options, handlers, hostPool, logger) {\n if (options.config && options.config.forceDirect) {\n logger.info('ues forceDirect mode.');\n return new Direct(options, handlers, hostPool, logger);\n }\n if (options.file.size > 4 * MB) {\n logger.info('file size over 4M, use Resume.');\n return new Resume(options, handlers, hostPool, logger);\n }\n logger.info('file size less or equal than 4M, use Direct.');\n return new Direct(options, handlers, hostPool, logger);\n}\n/**\n * @param file 上传文件\n * @param key 目标文件名\n * @param token 上传凭证\n * @param putExtra 上传文件的相关资源信息配置\n * @param config 上传任务的配置\n * @returns 返回用于上传任务的可观察对象\n */\nexport default function upload(file, key, token, putExtra, config) {\n // 为每个任务创建单独的 Logger\n var logger = new Logger(token, config === null || config === void 0 ? void 0 : config.disableStatisticsReport, config === null || config === void 0 ? void 0 : config.debugLogLevel, file.name);\n var options = {\n file: file,\n key: key,\n token: token,\n putExtra: putExtra,\n config: normalizeUploadConfig(config, logger)\n };\n // 创建 host 池\n var hostPool = new HostPool(options.config.uphost);\n return new Observable(function (observer) {\n var manager = createUploadManager(options, {\n onData: function (data) { return observer.next(data); },\n onError: function (err) { return observer.error(err); },\n onComplete: function (res) { return observer.complete(res); }\n }, hostPool, logger);\n manager.putFile();\n return manager.stop.bind(manager);\n });\n}\n//# sourceMappingURL=index.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { regionUphostMap } from '../config';\nimport { DEFAULT_CHUNK_SIZE } from '../upload';\nexport function normalizeUploadConfig(config, logger) {\n var _a = __assign({}, config), upprotocol = _a.upprotocol, uphost = _a.uphost, otherConfig = __rest(_a, [\"upprotocol\", \"uphost\"]);\n var normalizeConfig = __assign({ uphost: [], retryCount: 3, checkByMD5: false, forceDirect: false, useCdnDomain: true, checkByServer: false, concurrentRequestLimit: 3, chunkSize: DEFAULT_CHUNK_SIZE, upprotocol: 'https', debugLogLevel: 'OFF', disableStatisticsReport: false }, otherConfig);\n // 兼容原来的 http: https: 的写法\n if (upprotocol) {\n normalizeConfig.upprotocol = upprotocol\n .replace(/:$/, '');\n }\n var hostList = [];\n if (logger && (config === null || config === void 0 ? void 0 : config.uphost) != null && (config === null || config === void 0 ? void 0 : config.region) != null) {\n logger.warn('do not use both the uphost and region config.');\n }\n // 如果同时指定了 uphost 参数,添加到可用 host 列表\n if (uphost) {\n if (Array.isArray(uphost)) {\n hostList.push.apply(hostList, __spread(uphost));\n }\n else {\n hostList.push(uphost);\n }\n // 否则如果用户传了 region,添加指定 region 的 host 到可用 host 列表\n }\n else if (normalizeConfig === null || normalizeConfig === void 0 ? void 0 : normalizeConfig.region) {\n var hostMap = regionUphostMap[normalizeConfig === null || normalizeConfig === void 0 ? void 0 : normalizeConfig.region];\n if (normalizeConfig.useCdnDomain) {\n hostList.push.apply(hostList, __spread(hostMap.cdnUphost));\n }\n else {\n hostList.push.apply(hostList, __spread(hostMap.srcUphost));\n }\n }\n return __assign(__assign({}, normalizeConfig), { uphost: hostList.filter(Boolean) });\n}\n//# sourceMappingURL=config.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { QiniuErrorName, QiniuError } from '../errors';\nimport { createObjectURL } from './helper';\nvar mimeTypes = {\n PNG: 'image/png',\n JPEG: 'image/jpeg',\n WEBP: 'image/webp',\n BMP: 'image/bmp'\n};\nvar maxSteps = 4;\nvar scaleFactor = Math.log(2);\nvar supportMimeTypes = Object.keys(mimeTypes).map(function (type) { return mimeTypes[type]; });\nvar defaultType = mimeTypes.JPEG;\nfunction isSupportedType(type) {\n return supportMimeTypes.includes(type);\n}\nvar Compress = /** @class */ (function () {\n function Compress(file, config) {\n this.file = file;\n this.config = config;\n this.config = __assign({ quality: 0.92, noCompressIfLarger: false }, this.config);\n }\n Compress.prototype.process = function () {\n return __awaiter(this, void 0, void 0, function () {\n var srcDimension, originImage, canvas, scale, scaleCanvas, distBlob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.outputType = this.file.type;\n srcDimension = {};\n if (!isSupportedType(this.file.type)) {\n throw new QiniuError(QiniuErrorName.UnsupportedFileType, \"unsupported file type: \" + this.file.type);\n }\n return [4 /*yield*/, this.getOriginImage()];\n case 1:\n originImage = _a.sent();\n return [4 /*yield*/, this.getCanvas(originImage)];\n case 2:\n canvas = _a.sent();\n scale = 1;\n if (this.config.maxWidth) {\n scale = Math.min(1, this.config.maxWidth / canvas.width);\n }\n if (this.config.maxHeight) {\n scale = Math.min(1, scale, this.config.maxHeight / canvas.height);\n }\n srcDimension.width = canvas.width;\n srcDimension.height = canvas.height;\n return [4 /*yield*/, this.doScale(canvas, scale)];\n case 3:\n scaleCanvas = _a.sent();\n distBlob = this.toBlob(scaleCanvas);\n if (distBlob.size > this.file.size && this.config.noCompressIfLarger) {\n return [2 /*return*/, {\n dist: this.file,\n width: srcDimension.width,\n height: srcDimension.height\n }];\n }\n return [2 /*return*/, {\n dist: distBlob,\n width: scaleCanvas.width,\n height: scaleCanvas.height\n }];\n }\n });\n });\n };\n Compress.prototype.clear = function (ctx, width, height) {\n // jpeg 没有 alpha 通道,透明区间会被填充成黑色,这里把透明区间填充为白色\n if (this.outputType === defaultType) {\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, width, height);\n }\n else {\n ctx.clearRect(0, 0, width, height);\n }\n };\n /** 通过 file 初始化 image 对象 */\n Compress.prototype.getOriginImage = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var url = createObjectURL(_this.file);\n var img = new Image();\n img.onload = function () {\n resolve(img);\n };\n img.onerror = function () {\n reject('image load error');\n };\n img.src = url;\n });\n };\n Compress.prototype.getCanvas = function (img) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n if (!context) {\n reject(new QiniuError(QiniuErrorName.GetCanvasContextFailed, 'context is null'));\n return;\n }\n var width = img.width, height = img.height;\n canvas.height = height;\n canvas.width = width;\n _this.clear(context, width, height);\n context.drawImage(img, 0, 0);\n resolve(canvas);\n });\n };\n Compress.prototype.doScale = function (source, scale) {\n return __awaiter(this, void 0, void 0, function () {\n var sctx, steps, factor, mirror, mctx, width, height, originWidth, originHeight, src, context, i, dw, dh, canvas, data;\n return __generator(this, function (_a) {\n if (scale === 1) {\n return [2 /*return*/, source];\n }\n sctx = source.getContext('2d');\n steps = Math.min(maxSteps, Math.ceil((1 / scale) / scaleFactor));\n factor = Math.pow(scale, (1 / steps));\n mirror = document.createElement('canvas');\n mctx = mirror.getContext('2d');\n width = source.width, height = source.height;\n originWidth = width;\n originHeight = height;\n mirror.width = width;\n mirror.height = height;\n if (!mctx || !sctx) {\n throw new QiniuError(QiniuErrorName.GetCanvasContextFailed, \"mctx or sctx can't be null\");\n }\n for (i = 0; i < steps; i++) {\n dw = width * factor | 0 // eslint-disable-line no-bitwise\n ;\n dh = height * factor | 0 // eslint-disable-line no-bitwise\n ;\n // 到最后一步的时候 dw, dh 用目标缩放尺寸,否则会出现最后尺寸偏小的情况\n if (i === steps - 1) {\n dw = originWidth * scale;\n dh = originHeight * scale;\n }\n if (i % 2 === 0) {\n src = source;\n context = mctx;\n }\n else {\n src = mirror;\n context = sctx;\n }\n // 每次画前都清空,避免图像重叠\n this.clear(context, width, height);\n context.drawImage(src, 0, 0, width, height, 0, 0, dw, dh);\n width = dw;\n height = dh;\n }\n canvas = src === source ? mirror : source;\n data = context.getImageData(0, 0, width, height);\n // resize\n canvas.width = width;\n canvas.height = height;\n // store image data\n context.putImageData(data, 0, 0);\n return [2 /*return*/, canvas];\n });\n });\n };\n /** 这里把 base64 字符串转为 blob 对象 */\n Compress.prototype.toBlob = function (result) {\n var dataURL = result.toDataURL(this.outputType, this.config.quality);\n var buffer = atob(dataURL.split(',')[1]).split('').map(function (char) { return char.charCodeAt(0); });\n var blob = new Blob([new Uint8Array(buffer)], { type: this.outputType });\n return blob;\n };\n return Compress;\n}());\nvar compressImage = function (file, options) { return new Compress(file, options).process(); };\nexport default compressImage;\n//# sourceMappingURL=compress.js.map","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"files\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"h4\", null, \"上传图片\", -1)\nconst _hoisted_3 = { style: {\"display\":\"flex\",\"flex-wrap\":\"wrap\",\"grid-gap\":\"20px\"} }\nconst _hoisted_4 = [\"src\"]\nconst _hoisted_5 = { class: \"file-imgs-showDel\" }\nconst _hoisted_6 = { class: \"file-imgs-showDel-item\" }\nconst _hoisted_7 = { class: \"file-mais\" }\nconst _hoisted_8 = [\"src\"]\nconst _hoisted_9 = { style: {\"flex\":\"auto\"} }\n\nimport { ref,reactive} from \"vue\";\r\nimport * as qiniu from 'qiniu-js';\r\nimport { upFileToken,medicineimgedit } from \"@/api\";\r\n\r\nimport type { UploadProps, UploadUserFile } from 'element-plus'\r\nimport { Plus,View,Delete } from '@element-plus/icons-vue'\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'files',\n emits: ['upTable'],\n setup(__props, { expose: __expose, emit: __emit }) {\n\r\nconst dialogImageUrl:any = ref('')\r\nconst dialogVisible = ref(false)\r\n\r\nconst fileList:any = ref<UploadUserFile[]>([])//上传的图片列表\r\n\r\nconst beforeUpload = async(data:any) => { \r\n let arr = data.target.files\r\n for (let i = 0; i < arr.length; i++) {\r\n const file = arr[i];\r\n var strtype:any = file.name.substring(file.name.lastIndexOf('.') + 1); //获取后缀 png jpg\r\n const token:any = await upFileTokenApi(strtype)\r\n handleUpload(file,token.data);\r\n }\r\n}\r\n//获取token\r\nconst upFileTokenApi = async (strtype:any)=>{\r\n return await upFileToken({T_suffix: strtype})\r\n} \r\n/**\r\n * 上传七牛云\r\n */\r\nconst handleUpload = (file:any,qiniuToken:any)=> { \r\n var config = {\r\n useCdnDomain: false, //表示是否使用 cdn 加速域名,为布尔值,true 表示使用,默认为 false。\r\n region: qiniu.region.z2,\r\n domain: \"https://qiniu.region.z2\", //配置好的七牛云域名 如 https://cdn.qniyun.com/\r\n chunkSize: 1000, //每个分片的大小,单位mb,默认值3\r\n forceDirect: false //直传还是断点续传方式,true为直传\r\n };\r\n var putExtra:any = {\r\n params: {},\r\n mimeType: [] || null\r\n };\r\n var key = file.name || null\r\n const observable = qiniu.upload(file, key, qiniuToken); \r\n\r\n // const observable = qiniu.upload(file, key, qiniuToken, putExtra, config); \r\n observable.subscribe({ \r\n next(res:any) { \r\n // 上传进度信息 \r\n console.log(res); \r\n }, \r\n error(err:any) { \r\n // 上传错误信息 \r\n console.log(`上传错误信息: ${err}`); \r\n }, \r\n complete(res:any) { \r\n // 上传完成信息 \r\n fileList.value.push(res.key)\r\n console.log('上传完成信息'); \r\n\r\n console.log(fileList.value); \r\n }, \r\n }); \r\n }\r\n\r\n\r\n/**\r\n * 查看图片\r\n */\r\nconst handlePictureCardPreview: UploadProps['onPreview'] = (uploadFile) => {\r\n dialogImageUrl.value = uploadFile\r\n dialogVisible.value = true\r\n}\r\n/**\r\n * 删除图片\r\n */\r\n const delectPreview = (index:any) => {\r\n fileList.value?.splice(index, 1)\r\n}\r\n\r\nconst drawer = ref(false)\r\n\r\n//请求参数\r\nconst initParam:any = reactive({\r\n \"id\": \"\",//生产企业\r\n \"img\": \"\",//图片地址逗号分隔\r\n})\r\n\r\nconst confirmClick = () => {\r\n let arr = [...fileList.value]\r\n let array:any = []\r\n arr.forEach((item)=>{\r\n array.push(item)\r\n })\r\n initParam.img = array.join(',')\r\n setMedicineeditApi()\r\n}\r\n\r\nconst emit:any = __emit\r\nconst setMedicineeditApi = async()=>{\r\n const reslut:any = await medicineimgedit(initParam)\r\n if(reslut.code==200){\r\n emit('upTable', '');\r\n drawer.value = false\r\n }\r\n}\r\nconst showDrawer = () => {\r\n drawer.value = true\r\n fileList.value =[]\r\n}\r\n\r\n\r\n//暴露方法\r\n__expose({\r\n showDrawer,initParam,fileList\r\n})\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_drawer = _resolveComponent(\"el-drawer\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_el_drawer, {\n modelValue: drawer.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((drawer).value = $event)),\n direction: \"rtl\",\n \"append-to-body\": \"\"\n }, {\n header: _withCtx(() => [\n _hoisted_2\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(fileList.value, (item, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"file-imgs\",\n key: i\n }, [\n _createElementVNode(\"img\", {\n class: \"file-imgs-item\",\n src: item\n }, null, 8, _hoisted_4),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_el_icon, {\n class: \"file-imgs-showDel-item-icons\",\n onClick: ($event: any) => (handlePictureCardPreview(item))\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(View))\n ]),\n _: 2\n }, 1032, [\"onClick\"]),\n _createVNode(_component_el_icon, {\n class: \"file-imgs-showDel-item-icons\",\n onClick: ($event: any) => (delectPreview(i))\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(Delete))\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ])\n ])\n ]))\n }), 128)),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_el_icon, { class: \"file-mais-icons\" }, {\n default: _withCtx(() => [\n _createVNode(_unref(Plus))\n ]),\n _: 1\n }),\n _createElementVNode(\"input\", {\n type: \"file\",\n multiple: \"\",\n class: \"file-mais-files\",\n onChange: beforeUpload\n }, null, 32)\n ]),\n _createVNode(_component_el_dialog, {\n modelValue: dialogVisible.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((dialogVisible).value = $event)),\n draggable: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"img\", {\n \"w-full\": \"\",\n src: dialogImageUrl.value,\n style: {\"width\":\"100%\",\"height\":\"auto\"}\n }, null, 8, _hoisted_8)\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ])\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_el_button, {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (drawer.value = false))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"取消\")\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: confirmClick\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"立即提交\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"files\">\r\n <el-drawer v-model=\"drawer\" direction=\"rtl\" append-to-body>\r\n <template #header>\r\n <h4>上传图片</h4>\r\n </template>\r\n <template #default>\r\n <div style=\"display: flex;flex-wrap: wrap;grid-gap: 20px;\">\r\n <div class=\"file-imgs\" v-for=\"item,i in fileList\" :key=\"i\">\r\n <img class=\"file-imgs-item\" :src=\"item\">\r\n <div class=\"file-imgs-showDel\">\r\n <div class=\"file-imgs-showDel-item\">\r\n <el-icon class=\"file-imgs-showDel-item-icons\" @click=\"handlePictureCardPreview(item)\"><View /></el-icon>\r\n <el-icon class=\"file-imgs-showDel-item-icons\" @click=\"delectPreview(i)\"><Delete /></el-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"file-mais\">\r\n <el-icon class=\"file-mais-icons\"><Plus /></el-icon>\r\n <input type=\"file\" multiple class=\"file-mais-files\" @change=\"beforeUpload\">\r\n </div>\r\n <el-dialog v-model=\"dialogVisible\" draggable>\r\n <img w-full :src=\"dialogImageUrl\" style=\"width: 100%;height: auto;\"/>\r\n </el-dialog>\r\n </div>\r\n </template>\r\n <template #footer>\r\n <div style=\"flex: auto\">\r\n <el-button @click=\"drawer = false\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"confirmClick\">立即提交</el-button>\r\n </div>\r\n </template>\r\n </el-drawer>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ref,reactive} from \"vue\";\r\nimport * as qiniu from 'qiniu-js';\r\nimport { upFileToken,medicineimgedit } from \"@/api\";\r\n\r\nimport type { UploadProps, UploadUserFile } from 'element-plus'\r\nimport { Plus,View,Delete } from '@element-plus/icons-vue'\r\nconst dialogImageUrl:any = ref('')\r\nconst dialogVisible = ref(false)\r\n\r\nconst fileList:any = ref<UploadUserFile[]>([])//上传的图片列表\r\n\r\nconst beforeUpload = async(data:any) => { \r\n let arr = data.target.files\r\n for (let i = 0; i < arr.length; i++) {\r\n const file = arr[i];\r\n var strtype:any = file.name.substring(file.name.lastIndexOf('.') + 1); //获取后缀 png jpg\r\n const token:any = await upFileTokenApi(strtype)\r\n handleUpload(file,token.data);\r\n }\r\n}\r\n//获取token\r\nconst upFileTokenApi = async (strtype:any)=>{\r\n return await upFileToken({T_suffix: strtype})\r\n} \r\n/**\r\n * 上传七牛云\r\n */\r\nconst handleUpload = (file:any,qiniuToken:any)=> { \r\n var config = {\r\n useCdnDomain: false, //表示是否使用 cdn 加速域名,为布尔值,true 表示使用,默认为 false。\r\n region: qiniu.region.z2,\r\n domain: \"https://qiniu.region.z2\", //配置好的七牛云域名 如 https://cdn.qniyun.com/\r\n chunkSize: 1000, //每个分片的大小,单位mb,默认值3\r\n forceDirect: false //直传还是断点续传方式,true为直传\r\n };\r\n var putExtra:any = {\r\n params: {},\r\n mimeType: [] || null\r\n };\r\n var key = file.name || null\r\n const observable = qiniu.upload(file, key, qiniuToken); \r\n\r\n // const observable = qiniu.upload(file, key, qiniuToken, putExtra, config); \r\n observable.subscribe({ \r\n next(res:any) { \r\n // 上传进度信息 \r\n console.log(res); \r\n }, \r\n error(err:any) { \r\n // 上传错误信息 \r\n console.log(`上传错误信息: ${err}`); \r\n }, \r\n complete(res:any) { \r\n // 上传完成信息 \r\n fileList.value.push(res.key)\r\n console.log('上传完成信息'); \r\n\r\n console.log(fileList.value); \r\n }, \r\n }); \r\n }\r\n\r\n\r\n/**\r\n * 查看图片\r\n */\r\nconst handlePictureCardPreview: UploadProps['onPreview'] = (uploadFile) => {\r\n dialogImageUrl.value = uploadFile\r\n dialogVisible.value = true\r\n}\r\n/**\r\n * 删除图片\r\n */\r\n const delectPreview = (index:any) => {\r\n fileList.value?.splice(index, 1)\r\n}\r\n\r\nconst drawer = ref(false)\r\n\r\n//请求参数\r\nconst initParam:any = reactive({\r\n \"id\": \"\",//生产企业\r\n \"img\": \"\",//图片地址逗号分隔\r\n})\r\n\r\nconst confirmClick = () => {\r\n let arr = [...fileList.value]\r\n let array:any = []\r\n arr.forEach((item)=>{\r\n array.push(item)\r\n })\r\n initParam.img = array.join(',')\r\n setMedicineeditApi()\r\n}\r\n\r\nconst emit:any = defineEmits(['upTable'])\r\nconst setMedicineeditApi = async()=>{\r\n const reslut:any = await medicineimgedit(initParam)\r\n if(reslut.code==200){\r\n emit('upTable', '');\r\n drawer.value = false\r\n }\r\n}\r\nconst showDrawer = () => {\r\n drawer.value = true\r\n fileList.value =[]\r\n}\r\n\r\n\r\n//暴露方法\r\ndefineExpose({\r\n showDrawer,initParam,fileList\r\n})\r\n</script>\r\n<style lang=\"scss\">\r\n.files{\r\n user-select: none;\r\n}\r\n.file-imgs{\r\n width: 178px;\r\n height: 178px; \r\n border-radius: 6px;\r\n overflow: hidden;\r\n border: 1px dashed var(--el-border-color);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n &-item{\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 6px;\r\n overflow: hidden;\r\n }\r\n &-showDel{\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n height: 100%;\r\n width: 100%;\r\n background: rgba($color: #000000, $alpha: .6);\r\n display: none;\r\n &-item{\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n grid-gap: 40px;\r\n color: #fff;\r\n font-size: 20px;\r\n &-icons:hover{\r\n color: red;\r\n }\r\n }\r\n }\r\n}\r\n.file-imgs:hover{\r\n .file-imgs-showDel{\r\n display: block;\r\n cursor: pointer;\r\n }\r\n}\r\n.file-mais{\r\n border: 1px dashed var(--el-border-color);\r\n border-radius: 6px;\r\n font-size: 28px;\r\n color: #8c939d;\r\n width: 178px;\r\n height: 178px;\r\n text-align: center;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n &-files{\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n height: 100%;\r\n width: 100%;\r\n border: 1px solid red;\r\n opacity: 0;\r\n cursor: pointer;\r\n }\r\n}\r\n.file-mais:hover{\r\n border: 1px dashed #337ecc;\r\n}\r\n</style>","import script from \"./files.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./files.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./files.vue?vue&type=style&index=0&id=5c6b2890&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\nimport _imports_0 from '@/assets/img/BarCodeQR.svg'\n\n\nconst _hoisted_1 = { class: \"Qr\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"Qr-img\" }, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n style: {\"width\":\"80%\",\"height\":\"80%\"}\n })\n], -1)\nconst _hoisted_3 = { class: \"Qr-input\" }\nconst _hoisted_4 = [\"placeholder\"]\nconst _hoisted_5 = { class: \"Qr-isButton\" }\n\nimport { ref, reactive} from \"vue\";\r\nimport { ElMessage } from 'element-plus'\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'inputSearch',\n props: {\r\n placeholderData:({\r\n type:String,\r\n default: () =>'请扫描追溯码'\r\n })\r\n},\n emits: ['inputSearchData',],\n setup(__props, { expose: __expose, emit: __emit }) {\n\r\nconst myInput = ref()\r\nconst data: any = reactive({\r\n value: '',\r\n num:0\r\n})\r\nconst props = __props\r\nconst emit: any = __emit\r\n//函数\r\nconst inputFocus = async () => {\r\n setTimeout(() => {\r\n if(myInput.value!=null)myInput.value.focus()\r\n }, 1000)\r\n}\r\n//函数\r\nconst CloseFn = async () => {\r\n ClearFn()\r\n setTimeout(() => {\r\n if(myInput.value!=null)myInput.value.focus()\r\n }, 1000)\r\n}\r\n/**\r\n * 清空\r\n */\r\nconst ClearFn = async ()=>{\r\n data.value = '';\r\n}\r\n\r\ndocument.addEventListener('keydown',(event:any)=>{\r\n data.num += 1\r\n if(data.num == 1){data.value = ''}\r\n if (event.code === 'Enter') { // 判断是否按下了回车键\r\n data.value = event.target.value; // 获取扫描枪输入框的值 \r\n onSubmit()\r\n }\r\n})\r\nconst onSubmit = async () => {\r\n if(data.value){\r\n emit('inputSearchData', data.value);data.num = 0 \r\n }else{\r\n ElMessage.error('点击输入框在使用扫码枪扫码')\r\n inputFocus()\r\n return\r\n }\r\n}\r\n__expose({\r\n inputFocus, data,ClearFn\r\n})\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Search = _resolveComponent(\"Search\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_Close = _resolveComponent(\"Close\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _withDirectives(_createElementVNode(\"input\", {\n class: \"Qr-input-type\",\n ref_key: \"myInput\",\n ref: myInput,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((data.value) = $event)),\n type: \"text\",\n placeholder: props.placeholderData,\n style: {\"background\":\"#f7f7f7\"}\n }, null, 8, _hoisted_4), [\n [_vModelText, data.value]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", {\n class: \"Qr-isButton-icons\",\n onClick: onSubmit\n }, [\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_component_Search)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", {\n class: \"Qr-isButton-icons\",\n onClick: CloseFn\n }, [\n _createVNode(_component_el_icon, null, {\n default: _withCtx(() => [\n _createVNode(_component_Close)\n ]),\n _: 1\n })\n ])\n ])\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"Qr\">\r\n <div class=\"Qr-img\">\r\n <img src=\"@/assets/img/BarCodeQR.svg\" style=\"width: 80%;height: 80%;\">\r\n </div>\r\n <div class=\"Qr-input\">\r\n <input class=\"Qr-input-type\" ref=\"myInput\" v-model=\"data.value\" type=\"text\" :placeholder=\"props.placeholderData\" style=\"background:#f7f7f7;\">\r\n </div>\r\n <div class=\"Qr-isButton\">\r\n <div class=\"Qr-isButton-icons\" @click=\"onSubmit\"><el-icon><Search /></el-icon></div>\r\n <div class=\"Qr-isButton-icons\" @click=\"CloseFn\"><el-icon><Close /></el-icon></div>\r\n </div>\r\n <!-- <button class=\"Qr-isButton\" @click=\"onSubmit\">确认搜索</button> -->\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, reactive} from \"vue\";\r\nimport { ElMessage } from 'element-plus'\r\nconst myInput = ref()\r\nconst data: any = reactive({\r\n value: '',\r\n num:0\r\n})\r\nconst props = defineProps({\r\n placeholderData:({\r\n type:String,\r\n default: () =>'请扫描追溯码'\r\n })\r\n})\r\nconst emit: any = defineEmits(['inputSearchData',])\r\n//函数\r\nconst inputFocus = async () => {\r\n setTimeout(() => {\r\n if(myInput.value!=null)myInput.value.focus()\r\n }, 1000)\r\n}\r\n//函数\r\nconst CloseFn = async () => {\r\n ClearFn()\r\n setTimeout(() => {\r\n if(myInput.value!=null)myInput.value.focus()\r\n }, 1000)\r\n}\r\n/**\r\n * 清空\r\n */\r\nconst ClearFn = async ()=>{\r\n data.value = '';\r\n}\r\n\r\ndocument.addEventListener('keydown',(event:any)=>{\r\n data.num += 1\r\n if(data.num == 1){data.value = ''}\r\n if (event.code === 'Enter') { // 判断是否按下了回车键\r\n data.value = event.target.value; // 获取扫描枪输入框的值 \r\n onSubmit()\r\n }\r\n})\r\nconst onSubmit = async () => {\r\n if(data.value){\r\n emit('inputSearchData', data.value);data.num = 0 \r\n }else{\r\n ElMessage.error('点击输入框在使用扫码枪扫码')\r\n inputFocus()\r\n return\r\n }\r\n}\r\ndefineExpose({\r\n inputFocus, data,ClearFn\r\n})\r\n</script>\r\n<style lang=\"scss\">\r\n/* @import url(); 引入css类 */\r\n.Qr {\r\n display: flex;\r\n margin-bottom: 20px;\r\n background-color: #f7f7f7;\r\n min-width: 450px;\r\n width: 50%;\r\n margin: 0 auto;\r\n &-img {\r\n width: 30px;\r\n height: 30px;\r\n margin-top: 10px;\r\n margin-bottom: 10px;\r\n padding: 0 20px;\r\n flex-shrink: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-right: .5px solid #409eff;\r\n user-select: none;\r\n }\r\n\r\n &-input {\r\n flex: 1;\r\n padding: 0 20px;\r\n display: flex;\r\n align-items: center;\r\n &-type {\r\n outline: none;\r\n border: none;\r\n flex: 1;\r\n font-weight: bold;\r\n font-size: 18px;\r\n }\r\n }\r\n\r\n &-isButton {\r\n min-width: 100px;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n user-select: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n &-icons{\r\n flex: 1;\r\n display: flex;\r\n justify-content: center;\r\n color: #666\r\n }\r\n &-icons:hover{\r\n color: red;\r\n }\r\n }\r\n}</style>","import script from \"./inputSearch.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./inputSearch.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./inputSearch.vue?vue&type=style&index=0&id=0d4ca0d8&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"Scaninquire\" }\n\nimport { ref, nextTick, reactive } from \"vue\";\r\nimport { Camera } from '@element-plus/icons-vue'\r\nimport inputSearch from \"./inputSearch.vue\";\r\nimport {\r\n medicMsfx\r\n} from \"@/api\";\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Scaninquire',\n emits: ['scanFun'],\n setup(__props, { emit: __emit }) {\n\r\nconst centerDialogVisible = ref(false)\r\nconst inputSearchRef = ref<InstanceType<typeof inputSearch> | null>(null)\r\n\r\nconst showdialog = () => {\r\n centerDialogVisible.value = true\r\n nextTick(() => {\r\n inputSearchRef.value?.ClearFn()\r\n inputSearchRef.value?.inputFocus()\r\n })\r\n}\r\nconst emit: any = __emit\r\n/**\r\n * 搜索\r\n * @param 追溯码\r\n */\r\nconst inputSearchfn = async (e: any) => {\r\n const reslut: any = await medicMsfx({ code: e })\r\n if (reslut.code == 200) {\r\n emit('scanFun',reslut.data[0]);\r\n }\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_drawer = _resolveComponent(\"el-drawer\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_el_button, {\n round: \"\",\n type: \"primary\",\n icon: _unref(Camera),\n onClick: showdialog\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"扫码查询\")\n ]),\n _: 1\n }, 8, [\"icon\"]),\n _createVNode(_component_el_drawer, {\n modelValue: centerDialogVisible.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((centerDialogVisible).value = $event)),\n direction: \"ttb\",\n \"append-to-body\": \"\",\n \"destroy-on-close\": \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(inputSearch, {\n ref_key: \"inputSearchRef\",\n ref: inputSearchRef,\n onInputSearchData: inputSearchfn\n }, null, 512)\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]))\n}\n}\n\n})","<!-- saomachax扫码查询 -->\r\n<template>\r\n <div class=\"Scaninquire\">\r\n <el-button round type=\"primary\" :icon=\"Camera\" @click=\"showdialog\">扫码查询</el-button>\r\n <el-drawer v-model=\"centerDialogVisible\" direction=\"ttb\" append-to-body destroy-on-close>\r\n <inputSearch ref=\"inputSearchRef\" @inputSearchData=\"inputSearchfn\" />\r\n </el-drawer>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, nextTick, reactive } from \"vue\";\r\nimport { Camera } from '@element-plus/icons-vue'\r\nimport inputSearch from \"./inputSearch.vue\";\r\nimport {\r\n medicMsfx\r\n} from \"@/api\";\r\nconst centerDialogVisible = ref(false)\r\nconst inputSearchRef = ref<InstanceType<typeof inputSearch> | null>(null)\r\n\r\nconst showdialog = () => {\r\n centerDialogVisible.value = true\r\n nextTick(() => {\r\n inputSearchRef.value?.ClearFn()\r\n inputSearchRef.value?.inputFocus()\r\n })\r\n}\r\nconst emit: any = defineEmits(['scanFun'])\r\n/**\r\n * 搜索\r\n * @param 追溯码\r\n */\r\nconst inputSearchfn = async (e: any) => {\r\n const reslut: any = await medicMsfx({ code: e })\r\n if (reslut.code == 200) {\r\n emit('scanFun',reslut.data[0]);\r\n }\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n/* @import url(); 引入css类 */\r\n</style>","import script from \"./Scaninquire.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Scaninquire.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Scaninquire.vue?vue&type=style&index=0&id=2ae60d4a&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"medicineManage\" }\n\nimport { reactive, ref, onMounted,nextTick} from 'vue'\r\nimport { medicineList,\r\n enterpriseList,//生产企业\r\n prodList} from \"@/api\";\r\nimport tables from \"@/components/table.vue\";\r\nimport files from \"./files.vue\";\r\nimport Scaninquire from \"./Scaninquire.vue\";\r\n\r\n\r\nimport searchAdd from \"@/components/searchAdd.vue\";\r\nimport bg from '@/components/bg.vue'\r\ninterface ListItem {\r\n value: string\r\n label: string\r\n}\r\n//筛选出option需要的数据格式\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n setup(__props) {\n\r\nconst TableRef = ref()\r\nconst FilesRef = ref()\r\n\r\n\r\n//上传图片\r\nconst filesFn = async (row:any)=>{\r\n FilesRef.value.showDrawer()\r\n FilesRef.value.initParam.id = row.id\r\n let arr = [...row.crcList]\r\n\r\n const mapArray = arr.filter((item:any) => item != '')\r\n FilesRef.value.fileList = mapArray\r\n}\r\n//函数\r\nconst upTableFun = async ()=>{\r\n TableRef.value?.getTableList()\r\n}\r\nconst loading = ref(false)\r\n\r\n\r\nonMounted(async() => {\r\n const result1: any = await enterpriseList({ age: 1, pageSize: 999 })//生产企业\r\n list1.value = findMap(result1.data?.list || [], 'obj')\r\n\r\n const result2: any = await prodList({ age: 1, pageSize: 999 })//品名\r\n list2.value = findMap(result2.data?.list || [], 'obj')\r\n})\r\n\r\n\r\n\r\nconst findMap = (arr: any, obj: any) => {\r\n return arr.map((item: any) => {\r\n return { value: obj == 'obj' ? item.id : item, label: obj == 'obj' ? item.name : item }\r\n })\r\n}\r\nconst list1 = ref<ListItem[]>([])//生产企业\r\nconst list2 = ref<ListItem[]>([])//品名\r\n\r\n\r\nconst options1 = ref<ListItem[]>([])//生产企业\r\nconst options2 = ref<ListItem[]>([])//品名\r\n\r\n\r\nconst click1 = async () => { options1.value = list1.value }//生产企业\r\nconst click2 = async () => { options2.value = list2.value }//品名\r\n\r\n\r\nconst remoteMethod1 = async (query: string) => {//生产企业\r\n if (query) {\r\n loading.value = true\r\n setTimeout(() => {\r\n loading.value = false\r\n options1.value = list1.value.filter((item: any) => {\r\n return item.label.toLowerCase().includes(query.toLowerCase())\r\n })\r\n }, 200)\r\n } else {\r\n options1.value = []\r\n }\r\n}\r\nconst remoteMethod2 = async (query: string) => {//品名\r\n if (query) {\r\n loading.value = true\r\n setTimeout(() => {\r\n loading.value = false\r\n options2.value = list2.value.filter((item: any) => {\r\n return item.label.toLowerCase().includes(query.toLowerCase())\r\n })\r\n }, 200)\r\n } else {\r\n options2.value = []\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// 渲染表格\r\nconst columns: any = [\r\n { prop: 'product', label: '名称', width: 150 },\r\n { prop: 'batchNumber', label: '批号', width: 120},\r\n { prop: 'expiryDate', label: '失效日期', width: 120},\r\n { prop: 'productionDate', label: '生产日期', width: 120},\r\n { prop: 'approvalNumber', label: '批准文号', width: 150},\r\n { prop: 'enterprise', label: '生产企业', width: 150},\r\n { prop: 'spec', label: '规格(剂/粒/支)', width: 150},\r\n { prop: 'unit', label: '单位', width: 120},\r\n { prop: 'dosageForm', label: '剂型', width: 120},\r\n { prop: 'qualificationNumber', label: '批签发合格编号', width: 150},\r\n { prop: 'imgUrl', label: '预览', width: 150, name: 'imgUrl' },\r\n { prop: 'operation', label: '操作', fixed: 'right', 'min-width': 150 }\r\n]\r\n\r\n//请求参数\r\nconst data:any = reactive({\r\n initParam: {\r\n \"enterprise\": \"\",//生产企业\r\n \"product\": \"\",//品名\r\n \"spec\": \"\",//规格\r\n \"batchNumber\": \"\"//批号\r\n }\r\n})\r\n\r\n//扫码搜索\r\nconst scanFun = async (obj:any)=>{\r\n data.initParam.enterprise = obj.enterprise_name\r\n data.initParam.product = obj.product_name\r\n data.initParam.spec = obj.spec_name\r\n data.initParam.batchNumber = obj.batch_number\r\n eventFun()\r\n}\r\n\r\n//搜索\r\nconst eventFun = async ()=>{\r\n nextTick(() => {\r\n TableRef.value?.getTableList()\r\n })\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_option = _resolveComponent(\"el-option\")!\n const _component_el_select = _resolveComponent(\"el-select\")!\n const _component_el_form_item = _resolveComponent(\"el-form-item\")!\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_image = _resolveComponent(\"el-image\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(searchAdd, {\n isButtom: \"查询\",\n inline: true,\n onEvent: eventFun\n }, {\n searchConter: _withCtx(() => [\n _createVNode(_component_el_form_item, { label: \"生产企业\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_select, {\n modelValue: data.initParam.enterprise,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((data.initParam.enterprise) = $event)),\n modelModifiers: { number: true },\n filterable: \"\",\n remote: \"\",\n \"reserve-keyword\": \"\",\n placeholder: \"生产企业\",\n \"remote-method\": remoteMethod1,\n loading: loading.value,\n clearable: \"\",\n onClear: _cache[1] || (_cache[1] = ($event: any) => (data.initParam.enterprise = null)),\n onClick: click1,\n style: {\"width\":\"200px\"}\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(options1.value, (item) => {\n return (_openBlock(), _createBlock(_component_el_option, {\n key: item.value,\n label: item.label,\n value: item.label\n }, null, 8, [\"label\", \"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"loading\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, { label: \"品名\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_select, {\n modelValue: data.initParam.product,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((data.initParam.product) = $event)),\n modelModifiers: { number: true },\n filterable: \"\",\n remote: \"\",\n \"reserve-keyword\": \"\",\n placeholder: \"品名\",\n \"remote-method\": remoteMethod2,\n loading: loading.value,\n clearable: \"\",\n onClear: _cache[3] || (_cache[3] = ($event: any) => (data.initParam.product = null)),\n onClick: click2,\n style: {\"width\":\"200px\"}\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(options2.value, (item) => {\n return (_openBlock(), _createBlock(_component_el_option, {\n key: item.value,\n label: item.label,\n value: item.label\n }, null, 8, [\"label\", \"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"loading\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, { label: \"规格\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: data.initParam.spec,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((data.initParam.spec) = $event)),\n placeholder: \"规格\",\n clearable: \"\",\n style: {\"width\":\"200px\"}\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, { label: \"批号\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: data.initParam.batchNumber,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((data.initParam.batchNumber) = $event)),\n placeholder: \"批号\",\n clearable: \"\",\n style: {\"width\":\"200px\"}\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(bg, { istitle: \"基本信息\" }, {\n btn: _withCtx(() => [\n _createVNode(Scaninquire, {\n ref: \"scanRef\",\n onScanFun: scanFun\n }, null, 512)\n ]),\n bg: _withCtx(() => [\n _createVNode(tables, {\n ref_key: \"TableRef\",\n ref: TableRef,\n requestApi: _unref(medicineList),\n columns: columns,\n initParam: data.initParam\n }, {\n imgUrl: _withCtx(({ row }) => [\n (row.img)\n ? (_openBlock(), _createBlock(_component_el_image, {\n key: 0,\n style: {\"width\":\"30px\",\"height\":\"30px\"},\n src: row.imgUrl,\n \"zoom-rate\": 1.2,\n \"max-scale\": 7,\n \"min-scale\": 0.2,\n \"preview-src-list\": row.crcList,\n \"initial-index\": 4,\n \"preview-teleported\": \"\",\n infinite: false,\n fit: \"cover\"\n }, null, 8, [\"src\", \"preview-src-list\"]))\n : _createCommentVNode(\"\", true)\n ]),\n right: _withCtx(({ row }) => [\n _createVNode(_component_el_button, {\n link: \"\",\n type: \"primary\",\n size: \"small\",\n onClick: ($event: any) => (filesFn(row))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"上传\")\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ]),\n _: 1\n }, 8, [\"requestApi\", \"initParam\"])\n ]),\n _: 1\n }),\n _createVNode(files, {\n ref_key: \"FilesRef\",\n ref: FilesRef,\n onUpTable: upTableFun\n }, null, 512)\n ]))\n}\n}\n\n})","<!-- -->\r\n<template>\r\n <div class=\"medicineManage\">\r\n <searchAdd isButtom=\"查询\" :inline=\"true\" @event=\"eventFun\"> \r\n <template #searchConter>\r\n <el-form-item label=\"生产企业\">\r\n <el-select v-model.number=\"data.initParam.enterprise\" filterable remote reserve-keyword placeholder=\"生产企业\"\r\n :remote-method=\"remoteMethod1\" :loading=\"loading\" clearable @clear=\"data.initParam.enterprise = null\"\r\n @click=\"click1\" style=\"width: 200px;\">\r\n <el-option v-for=\"item in options1\" :key=\"item.value\" :label=\"item.label\" :value=\"item.label\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"品名\">\r\n <el-select v-model.number=\"data.initParam.product\" filterable remote reserve-keyword placeholder=\"品名\"\r\n :remote-method=\"remoteMethod2\" :loading=\"loading\" clearable @clear=\"data.initParam.product = null\"\r\n @click=\"click2\" style=\"width: 200px;\">\r\n <el-option v-for=\"item in options2\" :key=\"item.value\" :label=\"item.label\" :value=\"item.label\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"规格\">\r\n <el-input v-model=\"data.initParam.spec\" placeholder=\"规格\" clearable style=\"width: 200px;\" />\r\n </el-form-item>\r\n <el-form-item label=\"批号\">\r\n <el-input v-model=\"data.initParam.batchNumber\" placeholder=\"批号\" clearable style=\"width: 200px;\" />\r\n </el-form-item>\r\n </template>\r\n </searchAdd>\r\n <bg istitle=\"基本信息\">\r\n <template #btn>\r\n <Scaninquire ref=\"scanRef\" @scanFun=\"scanFun\"></Scaninquire>\r\n </template>\r\n <template #bg>\r\n <tables ref=\"TableRef\" :requestApi=\"medicineList\" :columns=\"columns\" :initParam=\"data.initParam\">\r\n <template #imgUrl=\"{ row }\">\r\n <el-image\r\n style=\"width: 30px; height: 30px\"\r\n :src=\"row.imgUrl\"\r\n :zoom-rate=\"1.2\"\r\n :max-scale=\"7\"\r\n :min-scale=\"0.2\"\r\n :preview-src-list=\"row.crcList\"\r\n :initial-index=\"4\"\r\n preview-teleported\r\n :infinite=\"false\"\r\n v-if=\"row.img\"\r\n fit=\"cover\">\r\n </el-image>\r\n </template>\r\n <template #right=\"{ row }\">\r\n <!-- <el-button link type=\"primary\" size=\"small\" @click=\"showImgFn(row)\">查看</el-button> -->\r\n <el-button link type=\"primary\" size=\"small\" @click=\"filesFn(row)\">上传</el-button>\r\n </template>\r\n </tables>\r\n </template>\r\n </bg>\r\n <files ref=\"FilesRef\" @upTable=\"upTableFun\"></files>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { reactive, ref, onMounted,nextTick} from 'vue'\r\nimport { medicineList,\r\n enterpriseList,//生产企业\r\n prodList} from \"@/api\";\r\nimport tables from \"@/components/table.vue\";\r\nimport files from \"./files.vue\";\r\nimport Scaninquire from \"./Scaninquire.vue\";\r\n\r\n\r\nimport searchAdd from \"@/components/searchAdd.vue\";\r\nimport bg from '@/components/bg.vue'\r\nconst TableRef = ref()\r\nconst FilesRef = ref()\r\n\r\n\r\n//上传图片\r\nconst filesFn = async (row:any)=>{\r\n FilesRef.value.showDrawer()\r\n FilesRef.value.initParam.id = row.id\r\n let arr = [...row.crcList]\r\n\r\n const mapArray = arr.filter((item:any) => item != '')\r\n FilesRef.value.fileList = mapArray\r\n}\r\n//函数\r\nconst upTableFun = async ()=>{\r\n TableRef.value?.getTableList()\r\n}\r\nconst loading = ref(false)\r\n\r\n\r\nonMounted(async() => {\r\n const result1: any = await enterpriseList({ age: 1, pageSize: 999 })//生产企业\r\n list1.value = findMap(result1.data?.list || [], 'obj')\r\n\r\n const result2: any = await prodList({ age: 1, pageSize: 999 })//品名\r\n list2.value = findMap(result2.data?.list || [], 'obj')\r\n})\r\n\r\n\r\n\r\ninterface ListItem {\r\n value: string\r\n label: string\r\n}\r\n//筛选出option需要的数据格式\r\nconst findMap = (arr: any, obj: any) => {\r\n return arr.map((item: any) => {\r\n return { value: obj == 'obj' ? item.id : item, label: obj == 'obj' ? item.name : item }\r\n })\r\n}\r\nconst list1 = ref<ListItem[]>([])//生产企业\r\nconst list2 = ref<ListItem[]>([])//品名\r\n\r\n\r\nconst options1 = ref<ListItem[]>([])//生产企业\r\nconst options2 = ref<ListItem[]>([])//品名\r\n\r\n\r\nconst click1 = async () => { options1.value = list1.value }//生产企业\r\nconst click2 = async () => { options2.value = list2.value }//品名\r\n\r\n\r\nconst remoteMethod1 = async (query: string) => {//生产企业\r\n if (query) {\r\n loading.value = true\r\n setTimeout(() => {\r\n loading.value = false\r\n options1.value = list1.value.filter((item: any) => {\r\n return item.label.toLowerCase().includes(query.toLowerCase())\r\n })\r\n }, 200)\r\n } else {\r\n options1.value = []\r\n }\r\n}\r\nconst remoteMethod2 = async (query: string) => {//品名\r\n if (query) {\r\n loading.value = true\r\n setTimeout(() => {\r\n loading.value = false\r\n options2.value = list2.value.filter((item: any) => {\r\n return item.label.toLowerCase().includes(query.toLowerCase())\r\n })\r\n }, 200)\r\n } else {\r\n options2.value = []\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// 渲染表格\r\nconst columns: any = [\r\n { prop: 'product', label: '名称', width: 150 },\r\n { prop: 'batchNumber', label: '批号', width: 120},\r\n { prop: 'expiryDate', label: '失效日期', width: 120},\r\n { prop: 'productionDate', label: '生产日期', width: 120},\r\n { prop: 'approvalNumber', label: '批准文号', width: 150},\r\n { prop: 'enterprise', label: '生产企业', width: 150},\r\n { prop: 'spec', label: '规格(剂/粒/支)', width: 150},\r\n { prop: 'unit', label: '单位', width: 120},\r\n { prop: 'dosageForm', label: '剂型', width: 120},\r\n { prop: 'qualificationNumber', label: '批签发合格编号', width: 150},\r\n { prop: 'imgUrl', label: '预览', width: 150, name: 'imgUrl' },\r\n { prop: 'operation', label: '操作', fixed: 'right', 'min-width': 150 }\r\n]\r\n\r\n//请求参数\r\nconst data:any = reactive({\r\n initParam: {\r\n \"enterprise\": \"\",//生产企业\r\n \"product\": \"\",//品名\r\n \"spec\": \"\",//规格\r\n \"batchNumber\": \"\"//批号\r\n }\r\n})\r\n\r\n//扫码搜索\r\nconst scanFun = async (obj:any)=>{\r\n data.initParam.enterprise = obj.enterprise_name\r\n data.initParam.product = obj.product_name\r\n data.initParam.spec = obj.spec_name\r\n data.initParam.batchNumber = obj.batch_number\r\n eventFun()\r\n}\r\n\r\n//搜索\r\nconst eventFun = async ()=>{\r\n nextTick(() => {\r\n TableRef.value?.getTableList()\r\n })\r\n}\r\n</script>","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__"],"names":["hasOwnProperty","obj","prop","Object","prototype","call","module","exports","qs","sep","eq","options","length","regexp","split","maxKeys","len","i","kstr","vstr","k","v","x","replace","idx","indexOf","substr","decodeURIComponent","Array","isArray","push","stringifyPrimitive","isFinite","name","undefined","keys","map","ks","encodeURIComponent","join","filter","Boolean","stringify","factory","hex_chr","md5cycle","a","b","c","d","md5blk","s","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","n","state","substring","toString","match","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","test","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","result","byteLength","set","buffer","hexToBinaryString","bytes","SparkMD5","this","reset","y","lsw","msw","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","begin","end","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","content","class","_createElementVNode","_hoisted_2","_createElementBlock","_hoisted_1","_hoisted_3","script","__exports__","render","style","_defineComponent","__name","props","istitle","type","default","setup","__props","_ctx","_cache","_component_el_text","_resolveComponent","_openBlock","_createVNode","markGreen","tag","_withCtx","_renderSlot","$slots","_createTextVNode","_toDisplayString","_","isButtom","labelWidth","inline","emits","emit","__emit","data","reactive","input","subClick","_component_el_button","_component_el_form_item","_component_el_form","onClick","useTable","requestApi","initParam","isPagination","dataCallback","tableData","loading","pageable","pageNum","pageSize","total","RemainingTime","small","disabled","searchParam","searchInitParam","totalParam","getTableList","async","params","page","then","res","list","count","Data","handleSizeChange","handleCurrentChange","searchTable","toRefs","key","columns","title","pagination","layout","border","toolButton","selectId","displayHeader","rowClick","selectionChange","getRowKey","tableRowClassName","size","width","height","maxHeight","fit","stripe","rowKey","context","showHeader","showSummary","sumText","summaryMethod","rowClassName","rowStyle","cellClassName","cellStyle","headerRowClassName","headerRowStyle","headerCellClassName","headerCellStyle","highlightCurrentRow","currentRowKey","emptyText","expandRowKeys","defaultExpandAll","defaultSort","tooltipEffect","tooltipOptions","spanMethod","selectOnIndeterminate","indent","treeProps","lazy","load","className","tableLayout","scrollbarAlwaysOn","flexible","showOverflowTooltip","expose","__expose","tableColumns","ref","_component_el_table_column","_component_el_tooltip","_component_el_empty","_component_el_table","_component_el_pagination","_directive_loading","_resolveDirective","_withDirectives","_createBlock","_unref","onRowClick","onSelectionChange","empty","_Fragment","_renderList","value","item","_mergeProps","align","_createCommentVNode","scope","_resolveDynamicComponent","row","ellipsis","effect","placement","fixed","$event","onSizeChange","onCurrentChange","QiniuErrorName","__extends","extendStatics","setPrototypeOf","__proto__","p","__","constructor","create","QiniuError","message","stack","Error","QiniuRequestError","_super","code","reqId","_this","RequestError","isRequestError","QiniuNetworkError","Pool","runTask","limit","aborted","queue","processing","enqueue","task","Promise","resolve","reject","check","run","err","processingNum","availableNum","forEach","abort","__assign","assign","t","arguments","Subscription","closed","unsubscribe","_unsubscribe","add","teardown","Subscriber","observerOrNext","error","complete","isStopped","destination","next","Observable","_subscribe","subscribe","sink","utf8Encode","argString","start","string","utftext","stringl","c1","enc","RangeError","c2","utf8Decode","strData","tmpArr","seqlen","ai","base64Encode","o1","o2","o3","h1","h2","h3","h4","bits","b64","ac","tmp_arr","charAt","base64Decode","dec","urlSafeBase64Decode","_a","__awaiter","thisArg","_arguments","P","generator","adopt","fulfilled","step","e","rejected","done","__generator","body","f","g","label","sent","trys","ops","verb","Symbol","iterator","op","TypeError","pop","MB","pow","getChunks","file","blockSize","chunkByteSize","chunks","ceil","chunk","isMetaDataValid","every","isCustomVarsValid","sum","reduce","loaded","setLocalFileInfo","localKey","info","logger","localStorage","setItem","JSON","warn","WriteCacheFailed","createLocalKey","removeLocalFileInfo","removeItem","RemoveCacheFailed","getLocalFileInfo","localInfoString","getItem","ReadCacheFailed","localInfo","parse","_b","InvalidCacheData","getAuthHeaders","token","auth","Authorization","getHeadersForChunkUpload","header","getHeadersForMkFile","createXHR","window","XMLHttpRequest","ActiveXObject","NotAvailableXMLHttpRequest","computeMd5","spark","readAsArrayBuffer","reader","FileReader","onload","evt","InvalidProgressEventTarget","onerror","FileReaderReadFailed","url","xhr","open","method","onCreate","headers","headers_1","setRequestHeader","upload","addEventListener","lengthComputable","onProgress","onreadystatechange","responseText","readyState","getResponseHeader","status","send","getPortFromUrl","groups","getDomainFromUrl","getPutPolicy","InvalidToken","segments","assessKey","putPolicy","bucketName","createObjectURL","URL","webkitURL","mozURL","region","z0","z1","z2","na0","as0","cnEast2","regionUphostMap","srcUphost","cdnUphost","getUpHosts","accessKey","protocol","ak","bucket","getBaseUrl","uploadInfo","id","initUploadParts","uploadUrl","uploadChunk","index","md5","uploadComplete","direct","__read","o","m","r","ar","__spread","concat","DEFAULT_CHUNK_SIZE","FREEZE_CODE_LIST","RETRY_CODE_LIST","GB","Base","handlers","hostPool","retryCount","xhrList","config","putExtra","fname","onData","onError","onComplete","checkAndUpdateUploadHost","newHost","getUp","upprotocol","NotAvailableUploadHost","uploadHost","host","checkAndUnfreezeHost","isFrozen","unfreeze","checkAndFreezeHost","includes","freeze","handleError","putFile","err_1","notReachRetryCount","needRetry","InvalidFile","customVars","InvalidCustomVars","metadata","InvalidMetadata","uploadAt","Date","getTime","sendLog","clear","stop","addXhr","report","remoteIp","upType","time","floor","port","getUrl","bytesSent","progress","duration","getProgressInfoItem","fromCache","percent","isPositiveInteger","re","Resume","pool","mkFileResponse","uploadChunks","error_1","chunkSize","InvalidChunkSize","initBeforeUploadChunks","chunkInfo","concurrentRequestLimit","getLocalKey","all","mkFileReq","cachedInfo","shouldCheckMD5","reuseSaved","requestOptions","response","cachedUploadedList","checkByMD5","usedCacheList","updateChunkProgress","uploadedList","updateLocalCache","checkByServer","getUploadInfo","etag","parts","partNumber","mimeType","updateMkFileProgress","infoMessage","uploadId","mkFileProgress","notifyResumeProgress","CRC32","crc","table","makeTable","offset","compute","readAsUint8Array","arrayBuffer","bind","chuck","Direct","formData","crcSign","customVars_1","metadata_1","FormData","updateDirectProgress","finishDirectProgress","reportV3","retry","stringifyData","Logger","disableReport","level","prefix","getPrintPrefix","args","_i","allowLevel","console","log","unfreezeTimeMap","Map","Host","currentTime","unfreezeTime","get","getUnfreezeTime","HostPool","initHosts","cachedHostsMap","register","hosts","refresh","_c","_d","cachedHostList","stashHosts","_e","up","acc","main","backup","availableHostList","priorityQueue","sort","hostA","hostB","createUploadManager","forceDirect","disableStatisticsReport","debugLogLevel","uphost","observer","manager","__rest","getOwnPropertySymbols","propertyIsEnumerable","otherConfig","normalizeConfig","useCdnDomain","hostList","hostMap","PNG","JPEG","WEBP","BMP","maxSteps","scaleFactor","supportMimeTypes","defaultType","isSupportedType","Compress","quality","noCompressIfLarger","process","srcDimension","originImage","canvas","scale","scaleCanvas","distBlob","outputType","UnsupportedFileType","getOriginImage","getCanvas","maxWidth","doScale","toBlob","dist","ctx","fillStyle","fillRect","clearRect","img","Image","src","document","createElement","getContext","drawImage","GetCanvasContextFailed","source","sctx","steps","factor","mirror","mctx","originWidth","originHeight","dw","dh","getImageData","putImageData","dataURL","toDataURL","atob","char","blob","Blob","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","dialogImageUrl","dialogVisible","fileList","beforeUpload","files","strtype","lastIndexOf","upFileTokenApi","handleUpload","upFileToken","T_suffix","qiniuToken","qiniu","observable","handlePictureCardPreview","uploadFile","delectPreview","splice","drawer","confirmClick","array","setMedicineeditApi","reslut","medicineimgedit","showDrawer","_component_el_icon","_component_el_dialog","_component_el_drawer","modelValue","direction","View","Delete","Plus","multiple","onChange","draggable","footer","_imports_0","placeholderData","myInput","inputFocus","setTimeout","focus","CloseFn","ClearFn","event","onSubmit","ElMessage","_component_Search","_component_Close","ref_key","placeholder","_vModelText","centerDialogVisible","inputSearchRef","showdialog","nextTick","inputSearchfn","medicMsfx","round","icon","Camera","inputSearch","onInputSearchData","TableRef","FilesRef","filesFn","crcList","mapArray","upTableFun","onMounted","result1","enterpriseList","age","list1","findMap","result2","prodList","list2","options1","options2","click1","click2","remoteMethod1","query","toLowerCase","remoteMethod2","scanFun","enterprise","enterprise_name","product","product_name","spec","spec_name","batchNumber","batch_number","eventFun","_component_el_option","_component_el_select","_component_el_input","_component_el_image","searchAdd","onEvent","searchConter","modelModifiers","number","filterable","remote","clearable","onClear","bg","btn","Scaninquire","onScanFun","tables","medicineList","imgUrl","infinite","right","link","onUpTable"],"sourceRoot":""}