You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 rivi
108 KiB

  1. {"version":3,"sources":["webpack:///static/js/27.d2b3f286b1579f62d9fa.js","webpack:///./src/api/ota/version.js?dde2*","webpack:///./src/views/ota/version/add.vue?840c","webpack:///./src/views/ota/version/add.vue?5ca2","webpack:///./~/browser-md5-file/src/browser-md5-file.js","webpack:///./~/spark-md5/spark-md5.js","webpack:///./src/api/comm.js?57ca****","webpack:///./src/views/ota/version/add.vue?d2ca","webpack:///./~/browser-md5-file/index.js","webpack:///src/views/ota/version/add.vue","webpack:///./src/views/ota/version/add.vue"],"names":["webpackJsonp","3eLu","module","__webpack_exports__","__webpack_require__","versionList","params","i","__WEBPACK_IMPORTED_MODULE_0__utils_fetch__","url","method","data","versionAdd","versionUpdatestatus","versionDel","id","4lE3","exports","content","locals","9bCr","render","_vm","this","_h","$createElement","_c","_self","staticClass","ref","attrs","model","ruleForm","rules","label-width","label","prop","type","_v","action","updata","show-file-list","on-success","handleAvatarSuccess","before-upload","beforeAvatarUpload","fileList","on-remove","handleRemove","plain","staticStyle","width","disabled","value","callback","$$v","$set","expression","placeholder","_l","item","key","on","click","$event","submitForm","resetForm","staticRenderFns","esExports","CBWy","SparkMD5","file","loadNext","start","currentChunk","chunkSize","end","size","reader","readAsArrayBuffer","blobSlice","call","File","prototype","slice","mozSlice","webkitSlice","chunks","Math","ceil","spark","ArrayBuffer","FileReader","onloadend","e","append","target","result","onerror","JSQk","factory","undefined","cmn","q","a","b","x","s","t","add32","ff","c","d","gg","hh","ii","md5cycle","k","md5blk","md5blks","charCodeAt","md5blk_array","md51","length","tail","tmp","lo","hi","n","state","substring","toString","match","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex_chr","hex","join","toUtf8","str","test","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","byteLength","set","buffer","hexToBinaryString","bytes","push","substr","reset","y","lsw","clamp","val","max","min","from","to","num","targetArray","sourceArray","begin","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","V8q2","getOSSSignature","dir","withCredentials","getMediaResoures","getPackageResoures","getConfigResoures","getLogoResoures","qrcodeResoures","getImgResoures","getApkResoures","getCitys","fNc5","version","sources","names","mappings","sourcesContent","sourceRoot","iVxu","t7x4","__WEBPACK_IMPORTED_MODULE_0__api_comm__","__WEBPACK_IMPORTED_MODULE_1__api_ota_version__","__WEBPACK_IMPORTED_MODULE_2_browser_md5_file__","__WEBPACK_IMPORTED_MODULE_2_browser_md5_file___default","created","_this","then","response","policy","OSSAccessKeyId","accessid","success_action_status","signature","host","res","mediaUrl","loadingInstance","options","fileName","filePath","md5Code","fileSize","versionCode","manufacturer","deviceType","deviceModel","customer","fileType","prevPackageId","releaseNote","required","message","trigger","selected","methods","formName","_this2","$refs","validate","valid","router","$router","$message","duration","onClose","path","resetFields","console","log","name","packageType","findPackageType","split","newVersionCode","lastIndexOf","indexOf","error","err","md5","packageName","packageNameArray","yq/Z","injectStyle","ssrContext","Object","defineProperty","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_add_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_94cc7036_hasScoped_false_node_modules_vue_loader_lib_selector_type_template_index_0_add_vue__","normalizeComponent","__vue_styles__","Component"],"mappings":"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","file":"static/js/27.d2b3f286b1579f62d9fa.js","sourcesContent":["webpackJsonp([27],{\n\n/***/ \"3eLu\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = versionList;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = versionAdd;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = versionUpdatestatus;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = versionDel;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_fetch__ = __webpack_require__(\"Vo7i\");\n\n\n//列表\nfunction versionList(params) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/service-ota/upgradePackages',\n method: 'post',\n data: params\n });\n}\n\n//添加\nfunction versionAdd(params) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/service-ota/upgradePackage',\n method: 'post',\n data: params\n });\n}\n\n//修改状态\nfunction versionUpdatestatus(params) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/service-ota/upgradePackage',\n method: 'delete',\n data: params\n // params: params\n });\n} //删除版本\nfunction versionDel(id) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/service-ota/upgradePackage/' + id,\n method: 'delete'\n });\n}\n\n/***/ }),\n\n/***/ \"4lE3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(\"fNc5\");\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = __webpack_require__(\"rjj0\")(\"aad91ca2\", content, true);\n\n/***/ }),\n\n/***/ \"9bCr\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"app-container\"\n }, [_c('el-form', {\n ref: \"ruleForm\",\n staticClass: \"demo-ruleForm\",\n attrs: {\n \"model\": _vm.ruleForm,\n \"rules\": _vm.rules,\n \"label-width\": \"100px\"\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"上传文件\",\n \"prop\": \"mediaUuid\"\n }\n }, [_c('el-tag', {\n attrs: {\n \"type\": \"danger\"\n }\n }, [_vm._v(\"请上传zip文件升级包,文件传输过程中请勿操作页面\")]), _vm._v(\" \"), _c('el-upload', {\n attrs: {\n \"action\": _vm.updata.url,\n \"show-file-list\": true,\n \"on-success\": _vm.handleAvatarSuccess,\n \"before-upload\": _vm.beforeAvatarUpload,\n \"data\": _vm.updata.data,\n \"fileList\": _vm.fileList,\n \"on-remove\": _vm.handleRemove\n }\n }, [_c('el-button', {\n attrs: {\n \"plain\": \"\",\n \"type\": \"primary\"\n }\n }, [_vm._v(\"点击上传\")])], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"版本\",\n \"prop\": \"versionCode\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.versionCode),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"versionCode\", $$v)\n },\n expression: \"ruleForm.versionCode\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"包类型\",\n \"prop\": \"fileType\"\n }\n }, [_c('el-select', {\n attrs: {\n \"placeholder\": \"请选择\",\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.fileType),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"fileType\", $$v)\n },\n expression: \"ruleForm.fileType\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"文件名\",\n \"prop\": \"fileName\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.fileName),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"fileName\", $$v)\n },\n expression: \"ruleForm.fileName\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"路径\",\n \"prop\": \"filePath\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.filePath),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"filePath\", $$v)\n },\n expression: \"ruleForm.filePath\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"MD5\",\n \"prop\": \"md5Code\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.md5Code),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"md5Code\", $$v)\n },\n expression: \"ruleForm.md5Code\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"大小\",\n \"prop\": \"fileSize\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.fileSize),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"fileSize\", $$v)\n },\n expression: \"ruleForm.fileSize\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"厂商\",\n \"prop\": \"manufacturer\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n model: {\n value: (_vm.ruleForm.manufacturer),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"manufacturer\", $$v)\n },\n expression: \"ruleForm.manufacturer\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"设备\",\n \"prop\": \"deviceType\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n model: {\n value: (_vm.ruleForm.deviceType),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"deviceType\", $$v)\n },\n expression: \"ruleForm.deviceType\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"型号\",\n \"prop\": \"deviceModel\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n model: {\n value: (_vm.ruleForm.deviceModel),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"deviceModel\", $$v)\n },\n expression: \"ruleForm.deviceModel\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"客户\",\n \"prop\": \"customer\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n model: {\n value: (_vm.ruleForm.customer),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"customer\", $$v)\n },\n expression: \"ruleForm.customer\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"ReleaseNote\",\n \"prop\": \"releaseNote\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.ruleForm.releaseNote),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"releaseNote\", $$v)\n },\n expression: \"ruleForm.releaseNote\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": function($event) {\n _vm.submitForm('ruleForm')\n }\n }\n }, [_vm._v(\"立即创建\")]), _vm._v(\" \"), _c('el-button', {\n on: {\n \"click\": function($event) {\n _vm.resetForm('ruleForm')\n }\n }\n }, [_vm._v(\"重置\")])], 1)], 1)], 1)\n}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"CBWy\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar SparkMD5 = __webpack_require__(\"JSQk\");\n\nmodule.exports = function (file, callback) {\n var blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var chunkSize = 2097152;\n var chunks = Math.ceil(file.size / chunkSize);\n var currentChunk = 0;\n var spark = new SparkMD5.ArrayBuffer();\n var reader = new FileReader();\n\n loadNext();\n\n reader.onloadend = function (e) {\n spark.append(e.target.result); // Append array buffer\n currentChunk++;\n\n if (currentChunk < chunks) {\n loadNext();\n } else {\n callback(null, spark.end());\n }\n };\n\n reader.onerror = function () {\n callback('oops, something went wrong.');\n };\n\n /////////////////////////\n function loadNext() {\n var start = currentChunk * chunkSize;\n var end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize;\n\n reader.readAsArrayBuffer(blobSlice.call(file, start, end));\n }\n\n};\n\n\n/***/ }),\n\n/***/ \"JSQk\":\n/***/ (function(module, exports, __webpack_require__) {\n\n(function (factory) {\n if (true) {\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 ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n }\n\n function gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n }\n\n function hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n }\n\n function ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\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 = ff(a, b, c, d, k[0], 7, -680876936);\n d = ff(d, a, b, c, k[1], 12, -389564586);\n c = ff(c, d, a, b, k[2], 17, 606105819);\n b = ff(b, c, d, a, k[3], 22, -1044525330);\n a = ff(a, b, c, d, k[4], 7, -176418897);\n d = ff(d, a, b, c, k[5], 12, 1200080426);\n c = ff(c, d, a, b, k[6], 17, -1473231341);\n b = ff(b, c, d, a, k[7], 22, -45705983);\n a = ff(a, b, c, d, k[8], 7, 1770035416);\n d = ff(d, a, b, c, k[9], 12, -1958414417);\n c = ff(c, d, a, b, k[10], 17, -42063);\n b = ff(b, c, d, a, k[11], 22, -1990404162);\n a = ff(a, b, c, d, k[12], 7, 1804603682);\n d = ff(d, a, b, c, k[13], 12, -40341101);\n c = ff(c, d, a, b, k[14], 17, -1502002290);\n b = ff(b, c, d, a, k[15], 22, 1236535329);\n\n a = gg(a, b, c, d, k[1], 5, -165796510);\n d = gg(d, a, b, c, k[6], 9, -1069501632);\n c = gg(c, d, a, b, k[11], 14, 643717713);\n b = gg(b, c, d, a, k[0], 20, -373897302);\n a = gg(a, b, c, d, k[5], 5, -701558691);\n d = gg(d, a, b, c, k[10], 9, 38016083);\n c = gg(c, d, a, b, k[15], 14, -660478335);\n b = gg(b, c, d, a, k[4], 20, -405537848);\n a = gg(a, b, c, d, k[9], 5, 568446438);\n d = gg(d, a, b, c, k[14], 9, -1019803690);\n c = gg(c, d, a, b, k[3], 14, -187363961);\n b = gg(b, c, d, a, k[8], 20, 1163531501);\n a = gg(a, b, c, d, k[13], 5, -1444681467);\n d = gg(d, a, b, c, k[2], 9, -51403784);\n c = gg(c, d, a, b, k[7], 14, 1735328473);\n b = gg(b, c, d, a, k[12], 20, -1926607734);\n\n a = hh(a, b, c, d, k[5], 4, -378558);\n d = hh(d, a, b, c, k[8], 11, -2022574463);\n c = hh(c, d, a, b, k[11], 16, 1839030562);\n b = hh(b, c, d, a, k[14], 23, -35309556);\n a = hh(a, b, c, d, k[1], 4, -1530992060);\n d = hh(d, a, b, c, k[4], 11, 1272893353);\n c = hh(c, d, a, b, k[7], 16, -155497632);\n b = hh(b, c, d, a, k[10], 23, -1094730640);\n a = hh(a, b, c, d, k[13], 4, 681279174);\n d = hh(d, a, b, c, k[0], 11, -358537222);\n c = hh(c, d, a, b, k[3], 16, -722521979);\n b = hh(b, c, d, a, k[6], 23, 76029189);\n a = hh(a, b, c, d, k[9], 4, -640364487);\n d = hh(d, a, b, c, k[12], 11, -421815835);\n c = hh(c, d, a, b, k[15], 16, 530742520);\n b = hh(b, c, d, a, k[2], 23, -995338651);\n\n a = ii(a, b, c, d, k[0], 6, -198630844);\n d = ii(d, a, b, c, k[7], 10, 1126891415);\n c = ii(c, d, a, b, k[14], 15, -1416354905);\n b = ii(b, c, d, a, k[5], 21, -57434055);\n a = ii(a, b, c, d, k[12], 6, 1700485571);\n d = ii(d, a, b, c, k[3], 10, -1894986606);\n c = ii(c, d, a, b, k[10], 15, -1051523);\n b = ii(b, c, d, a, k[1], 21, -2054922799);\n a = ii(a, b, c, d, k[8], 6, 1873313359);\n d = ii(d, a, b, c, k[15], 10, -30611744);\n c = ii(c, d, a, b, k[6], 15, -1560198380);\n b = ii(b, c, d, a, k[13], 21, 1309151649);\n a = ii(a, b, c, d, k[4], 6, -145523070);\n d = ii(d, a, b, c, k[11], 10, -1120210379);\n c = ii(c, d, a, b, k[2], 15, 718787259);\n b = ii(b, c, d, a, k[9], 21, -343485551);\n\n x[0] = add32(a, x[0]);\n x[1] = add32(b, x[1]);\n x[2] = add32(c, x[2]);\n x[3] = add32(d, x[3]);\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\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\n\n/***/ }),\n\n/***/ \"V8q2\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = getOSSSignature;\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = getMediaResoures;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = getPackageResoures;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = getConfigResoures;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = getLogoResoures;\n/* harmony export (immutable) */ __webpack_exports__[\"i\"] = qrcodeResoures;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = getImgResoures;\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = getApkResoures;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = getCitys;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_fetch__ = __webpack_require__(\"Vo7i\");\n//全局通用 数据\n\n\n//获取上传授权\nfunction getOSSSignature(type) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/unionService/AliOSS/signature',\n method: 'post',\n params: {\n dir: type\n },\n withCredentials: false\n });\n}\n//获取资源下载OSS地址接口\nfunction getMediaResoures() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/unionService/AliOSS/mediaResource/oss/url',\n method: 'get'\n });\n}\n//获取更新包下载OSS地址接口\nfunction getPackageResoures() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/unionService/AliOSS/upgradePackage/oss/url',\n method: 'get'\n });\n}\n\n//获取配置下载OSS地址接口\nfunction getConfigResoures() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/unionService/AliOSS/deviceConfig/oss/url',\n method: 'get'\n });\n}\n//获取配置下载OSS地址接口\nfunction getLogoResoures() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/unionService/AliOSS/store/logo/oss/url',\n method: 'get'\n });\n}\n//获取支付二维码下载OSS地址接口\nfunction qrcodeResoures() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/unionService/AliOSS/trade/oss/url',\n method: 'get'\n });\n}\n//获取支付二维码下载OSS地址接口\nfunction getImgResoures() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/unionService/AliOSS/goods/oss/url',\n method: 'get'\n });\n}\n//获取apk下载OSS地址接口\nfunction getApkResoures() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/unionService/AliOSS/apk/oss/url',\n method: 'get'\n });\n}\n\n//获取省市\nfunction getCitys(id) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_fetch__[\"a\" /* default */])({\n url: '/service-org/Region/getCitys?parentId=' + id,\n method: 'get'\n });\n}\n\n/***/ }),\n\n/***/ \"fNc5\":\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(\"FZ+f\")(true);\n// imports\n\n\n// module\nexports.push([module.i, \".el-upload-list{width:50%}\", \"\", {\"version\":3,\"sources\":[\"D:/projects/gitLab/wxpos/posadmin/src/views/ota/version/add.vue\"],\"names\":[],\"mappings\":\"AACA,gBACE,SAAW,CACZ\",\"file\":\"add.vue\",\"sourcesContent\":[\"\\n.el-upload-list {\\n width: 50%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n\n// exports\n\n\n/***/ }),\n\n/***/ \"iVxu\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"CBWy\");\n\n\n/***/ }),\n\n/***/ \"t7x4\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api_comm__ = __webpack_require__(\"V8q2\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__api_ota_version__ = __webpack_require__(\"3eLu\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_browser_md5_file__ = __webpack_require__(\"iVxu\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_browser_md5_file___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_browser_md5_file__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n created: function created() {\n var _this = this;\n\n // 上传签名初始化\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__api_comm__[\"a\" /* getOSSSignature */])('otadev').then(function (response) {\n _this.updata.data.policy = response.result.policy;\n _this.updata.data.OSSAccessKeyId = response.result.accessid;\n _this.updata.data.success_action_status = '200';\n _this.updata.data.signature = response.result.signature;\n _this.updata.url = response.result.host;\n });\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__api_comm__[\"d\" /* getPackageResoures */])().then(function (res) {\n _this.mediaUrl = res.result;\n });\n },\n data: function data() {\n return {\n fileList: [],\n loadingInstance: null,\n options: [{\n value: '0',\n label: '增量包'\n }, {\n value: '1',\n label: '全量包'\n }, {\n value: '2',\n label: 'PDA包'\n }],\n ruleForm: {\n fileName: '',\n filePath: '',\n md5Code: '',\n fileSize: '',\n versionCode: '',\n manufacturer: '',\n deviceType: '',\n deviceModel: '',\n customer: '',\n fileType: '',\n prevPackageId: 0, // 熙康pda用,表示从哪个版本开始升级\n releaseNote: ''\n },\n rules: {\n versionCode: [{ required: true, message: '请输入版本', trigger: 'blur' }],\n fileType: [{ required: true, message: '请选择包类型', trigger: 'blur' }]\n },\n updata: {\n url: '',\n data: {}\n },\n selected: [],\n mediaUrl: ''\n };\n },\n\n methods: {\n handleRemove: function handleRemove(file, fileList) {\n this.ruleForm = {\n fileName: '',\n filePath: '',\n md5Code: '',\n fileSize: '',\n versionCode: '',\n manufacturer: '',\n deviceType: '',\n deviceModel: '',\n customer: '',\n fileType: '',\n releaseNote: ''\n };\n },\n submitForm: function submitForm(formName) {\n var _this2 = this;\n\n this.$refs[formName].validate(function (valid) {\n if (valid) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__api_ota_version__[\"d\" /* versionAdd */])(_this2.ruleForm).then(function (res) {\n var router = _this2.$router;\n _this2.$message({\n message: '操作成功',\n type: 'success',\n duration: 1000,\n onClose: function onClose() {\n router.push({ path: 'index' });\n }\n });\n });\n } else {\n return false;\n }\n });\n },\n resetForm: function resetForm(formName) {\n this.$refs[formName].resetFields();\n },\n handleAvatarSuccess: function handleAvatarSuccess(res, file) {\n console.log(file);\n this.ruleForm.fileName = file.name;\n this.ruleForm.filePath = this.mediaUrl;\n\n // this.ruleForm.md5Code = new MD5().update(file.name).digest('hex')\n this.ruleForm.fileSize = file.size;\n // this.loadingInstance.close()\n this.fileList = [];\n },\n beforeAvatarUpload: function beforeAvatarUpload(file) {\n var fileName = file.name;\n var versionCode = '';\n var packageType = this.findPackageType(fileName);\n if (packageType == 'zeng') {\n // 获取增量包版本号 ota-user-2.0.312-344.zip\n versionCode = fileName.split('-')[2].split('.')[0] + '.' + fileName.split('-')[2].split('.')[1] + '.' + fileName.split('-')[3].split('.')[0];\n this.ruleForm.fileType = '0';\n } else if (packageType == 'quan') {\n // 获取全量包版本号 rk3288-ota-user.root.2.0.344.zip\n versionCode = fileName.split('.')[2] + '.' + fileName.split('.')[3] + '.' + fileName.split('.')[4];\n this.ruleForm.fileType = '1';\n } else {\n // PDA\n var newVersionCode = fileName.substring(0, fileName.lastIndexOf('.')).split('#')[1];\n versionCode = '1.0.' + newVersionCode.split('_')[1];\n this.ruleForm.prevPackageId = newVersionCode.split('_')[0];\n this.ruleForm.fileType = '2';\n }\n if (versionCode.indexOf('undefined') >= 0) {\n this.$message.error('包名称错误!');\n return false;\n }\n // 上传文件命名\n this.updata.data.key = 'otadev/' + file.name;\n this.ruleForm.versionCode = versionCode;\n var ruleForm = this.ruleForm;\n __WEBPACK_IMPORTED_MODULE_2_browser_md5_file___default()(file, function (err, md5) {\n ruleForm.md5Code = md5; // 97027eb624f85892c69c4bcec8ab0f11\n });\n // this.loadingInstance = Loading.service({\n // fullscreen: true,\n // text: '上传中...',\n // spinner: 'el-icon-loading',\n // background: 'rgba(0, 0, 0, 0.7)'\n // });\n\n return true;\n },\n\n // 判断上传版本的文件是增量包还是全量包\n findPackageType: function findPackageType(packageName) {\n if (packageName.indexOf('#') >= 0) {\n return 'pda';\n }\n var packageNameArray = packageName.split('.');\n // 获得除了.zip前一位截取的字符串是否包含\"-\",如果有就代表是增量包\n if (packageNameArray[packageNameArray.length - 2].indexOf('-') >= 0) {\n return 'zeng';\n } else {\n return 'quan';\n }\n }\n }\n});\n\n/***/ }),\n\n/***/ \"yq/Z\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_add_vue__ = __webpack_require__(\"t7x4\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_94cc7036_hasScoped_false_node_modules_vue_loader_lib_selector_type_template_index_0_add_vue__ = __webpack_require__(\"9bCr\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"4lE3\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n/* template */\n\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_add_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_94cc7036_hasScoped_false_node_modules_vue_loader_lib_selector_type_template_index_0_add_vue__[\"a\" /* default */],\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/27.d2b3f286b1579f62d9fa.js","import fetch from '@/utils/fetch'\r\n\r\n//列表\r\nexport function versionList(params) {\r\n return fetch({\r\n url: '/service-ota/upgradePackages',\r\n method: 'post',\r\n data: params\r\n })\r\n}\r\n\r\n//添加\r\nexport function versionAdd(params) {\r\n return fetch({\r\n url: '/service-ota/upgradePackage',\r\n method: 'post',\r\n data: params\r\n })\r\n}\r\n\r\n//修改状态\r\nexport function versionUpdatestatus(params) {\r\n return fetch({\r\n url: '/service-ota/upgradePackage',\r\n method: 'delete',\r\n data: params,\r\n // params: params\r\n })\r\n}//删除版本\r\nexport function versionDel(id) {\r\n return fetch({\r\n url: '/service-ota/upgradePackage/'+id,\r\n method: 'delete',\r\n })\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/api/ota/version.js","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/index.js?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-94cc7036\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./add.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\")(\"aad91ca2\", content, true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"remove\":true}!./~/vue-style-loader!./~/css-loader?{\"minimize\":true,\"sourceMap\":true}!./~/vue-loader/lib/style-compiler?{\"vue\":true,\"id\":\"data-v-94cc7036\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/views/ota/version/add.vue\n// module id = 4lE3\n// module chunks = 27","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"app-container\"\n }, [_c('el-form', {\n ref: \"ruleForm\",\n staticClass: \"demo-ruleForm\",\n attrs: {\n \"model\": _vm.ruleForm,\n \"rules\": _vm.rules,\n \"label-width\": \"100px\"\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"上传文件\",\n \"prop\": \"mediaUuid\"\n }\n }, [_c('el-tag', {\n attrs: {\n \"type\": \"danger\"\n }\n }, [_vm._v(\"请上传zip文件升级包,文件传输过程中请勿操作页面\")]), _vm._v(\" \"), _c('el-upload', {\n attrs: {\n \"action\": _vm.updata.url,\n \"show-file-list\": true,\n \"on-success\": _vm.handleAvatarSuccess,\n \"before-upload\": _vm.beforeAvatarUpload,\n \"data\": _vm.updata.data,\n \"fileList\": _vm.fileList,\n \"on-remove\": _vm.handleRemove\n }\n }, [_c('el-button', {\n attrs: {\n \"plain\": \"\",\n \"type\": \"primary\"\n }\n }, [_vm._v(\"点击上传\")])], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"版本\",\n \"prop\": \"versionCode\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.versionCode),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"versionCode\", $$v)\n },\n expression: \"ruleForm.versionCode\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"包类型\",\n \"prop\": \"fileType\"\n }\n }, [_c('el-select', {\n attrs: {\n \"placeholder\": \"请选择\",\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.fileType),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"fileType\", $$v)\n },\n expression: \"ruleForm.fileType\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"文件名\",\n \"prop\": \"fileName\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.fileName),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"fileName\", $$v)\n },\n expression: \"ruleForm.fileName\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"路径\",\n \"prop\": \"filePath\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.filePath),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"filePath\", $$v)\n },\n expression: \"ruleForm.filePath\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"MD5\",\n \"prop\": \"md5Code\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.md5Code),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"md5Code\", $$v)\n },\n expression: \"ruleForm.md5Code\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"大小\",\n \"prop\": \"fileSize\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.ruleForm.fileSize),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"fileSize\", $$v)\n },\n expression: \"ruleForm.fileSize\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"厂商\",\n \"prop\": \"manufacturer\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n model: {\n value: (_vm.ruleForm.manufacturer),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"manufacturer\", $$v)\n },\n expression: \"ruleForm.manufacturer\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"设备\",\n \"prop\": \"deviceType\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n model: {\n value: (_vm.ruleForm.deviceType),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"deviceType\", $$v)\n },\n expression: \"ruleForm.deviceType\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"型号\",\n \"prop\": \"deviceModel\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n model: {\n value: (_vm.ruleForm.deviceModel),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"deviceModel\", $$v)\n },\n expression: \"ruleForm.deviceModel\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"客户\",\n \"prop\": \"customer\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n model: {\n value: (_vm.ruleForm.customer),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"customer\", $$v)\n },\n expression: \"ruleForm.customer\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"ReleaseNote\",\n \"prop\": \"releaseNote\"\n }\n }, [_c('el-input', {\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.ruleForm.releaseNote),\n callback: function($$v) {\n _vm.$set(_vm.ruleForm, \"releaseNote\", $$v)\n },\n expression: \"ruleForm.releaseNote\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": function($event) {\n _vm.submitForm('ruleForm')\n }\n }\n }, [_vm._v(\"立即创建\")]), _vm._v(\" \"), _c('el-button', {\n on: {\n \"click\": function($event) {\n _vm.resetForm('ruleForm')\n }\n }\n }, [_vm._v(\"重置\")])], 1)], 1)], 1)\n}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-94cc7036\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/views/ota/version/add.vue\n// module id = 9bCr\n// module chunks = 27","'use strict';\n\nvar SparkMD5 = require('spark-md5');\n\nmodule.exports = function (file, callback) {\n var blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var chunkSize = 2097152;\n var chunks = Math.ceil(file.size / chunkSize);\n var currentChunk = 0;\n var spark = new SparkMD5.ArrayBuffer();\n var reader = new FileReader();\n\n loadNext();\n\n reader.onloadend = function (e) {\n spark.append(e.target.result); // Append array buffer\n currentChunk++;\n\n if (currentChunk < chunks) {\n loadNext();\n } else {\n callback(null, spark.end());\n }\n };\n\n reader.onerror = function () {\n callback('oops, something went wrong.');\n };\n\n /////////////////////////\n function loadNext() {\n var start = currentChunk * chunkSize;\n var end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize;\n\n reader.readAsArrayBuffer(blobSlice.call(file, start, end));\n }\n\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/browser-md5-file/src/browser-md5-file.js\n// module id = CBWy\n// module chunks = 27","(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 ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n }\n\n function gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n }\n\n function hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n }\n\n function ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\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 = ff(a, b, c, d, k[0], 7, -680876936);\n d = ff(d, a, b, c, k[1], 12, -389564586);\n c = ff(c, d, a, b, k[2], 17, 606105819);\n b = ff(b, c, d, a, k[3], 22, -1044525330);\n a = ff(a, b, c, d, k[4], 7, -176418897);\n d = ff(d, a, b, c, k[5], 12, 1200080426);\n c = ff(c, d, a, b, k[6], 17, -1473231341);\n b = ff(b, c, d, a, k[7], 22, -45705983);\n a = ff(a, b, c, d, k[8], 7, 1770035416);\n d = ff(d, a, b, c, k[9], 12, -1958414417);\n c = ff(c, d, a, b, k[10], 17, -42063);\n b = ff(b, c, d, a, k[11], 22, -1990404162);\n a = ff(a, b, c, d, k[12], 7, 1804603682);\n d = ff(d, a, b, c, k[13], 12, -40341101);\n c = ff(c, d, a, b, k[14], 17, -1502002290);\n b = ff(b, c, d, a, k[15], 22, 1236535329);\n\n a = gg(a, b, c, d, k[1], 5, -165796510);\n d = gg(d, a, b, c, k[6], 9, -1069501632);\n c = gg(c, d, a, b, k[11], 14, 643717713);\n b = gg(b, c, d, a, k[0], 20, -373897302);\n a = gg(a, b, c, d, k[5], 5, -701558691);\n d = gg(d, a, b, c, k[10], 9, 38016083);\n c = gg(c, d, a, b, k[15], 14, -660478335);\n b = gg(b, c, d, a, k[4], 20, -405537848);\n a = gg(a, b, c, d, k[9], 5, 568446438);\n d = gg(d, a, b, c, k[14], 9, -1019803690);\n c = gg(c, d, a, b, k[3], 14, -187363961);\n b = gg(b, c, d, a, k[8], 20, 1163531501);\n a = gg(a, b, c, d, k[13], 5, -1444681467);\n d = gg(d, a, b, c, k[2], 9, -51403784);\n c = gg(c, d, a, b, k[7], 14, 1735328473);\n b = gg(b, c, d, a, k[12], 20, -1926607734);\n\n a = hh(a, b, c, d, k[5], 4, -378558);\n d = hh(d, a, b, c, k[8], 11, -2022574463);\n c = hh(c, d, a, b, k[11], 16, 1839030562);\n b = hh(b, c, d, a, k[14], 23, -35309556);\n a = hh(a, b, c, d, k[1], 4, -1530992060);\n d = hh(d, a, b, c, k[4], 11, 1272893353);\n c = hh(c, d, a, b, k[7], 16, -155497632);\n b = hh(b, c, d, a, k[10], 23, -1094730640);\n a = hh(a, b, c, d, k[13], 4, 681279174);\n d = hh(d, a, b, c, k[0], 11, -358537222);\n c = hh(c, d, a, b, k[3], 16, -722521979);\n b = hh(b, c, d, a, k[6], 23, 76029189);\n a = hh(a, b, c, d, k[9], 4, -640364487);\n d = hh(d, a, b, c, k[12], 11, -421815835);\n c = hh(c, d, a, b, k[15], 16, 530742520);\n b = hh(b, c, d, a, k[2], 23, -995338651);\n\n a = ii(a, b, c, d, k[0], 6, -198630844);\n d = ii(d, a, b, c, k[7], 10, 1126891415);\n c = ii(c, d, a, b, k[14], 15, -1416354905);\n b = ii(b, c, d, a, k[5], 21, -57434055);\n a = ii(a, b, c, d, k[12], 6, 1700485571);\n d = ii(d, a, b, c, k[3], 10, -1894986606);\n c = ii(c, d, a, b, k[10], 15, -1051523);\n b = ii(b, c, d, a, k[1], 21, -2054922799);\n a = ii(a, b, c, d, k[8], 6, 1873313359);\n d = ii(d, a, b, c, k[15], 10, -30611744);\n c = ii(c, d, a, b, k[6], 15, -1560198380);\n b = ii(b, c, d, a, k[13], 21, 1309151649);\n a = ii(a, b, c, d, k[4], 6, -145523070);\n d = ii(d, a, b, c, k[11], 10, -1120210379);\n c = ii(c, d, a, b, k[2], 15, 718787259);\n b = ii(b, c, d, a, k[9], 21, -343485551);\n\n x[0] = add32(a, x[0]);\n x[1] = add32(b, x[1]);\n x[2] = add32(c, x[2]);\n x[3] = add32(d, x[3]);\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\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/spark-md5/spark-md5.js\n// module id = JSQk\n// module chunks = 27","//全局通用 数据\r\nimport fetch from '@/utils/fetch'\r\n\r\n//获取上传授权\r\nexport function getOSSSignature(type) {\r\n return fetch({\r\n url: '/unionService/AliOSS/signature',\r\n method: 'post',\r\n params: {\r\n dir: type\r\n },\r\n withCredentials: false\r\n })\r\n}\r\n//获取资源下载OSS地址接口\r\nexport function getMediaResoures() {\r\n return fetch({\r\n url: '/unionService/AliOSS/mediaResource/oss/url',\r\n method: 'get',\r\n })\r\n}\r\n//获取更新包下载OSS地址接口\r\nexport function getPackageResoures() {\r\n return fetch({\r\n url: '/unionService/AliOSS/upgradePackage/oss/url',\r\n method: 'get',\r\n })\r\n}\r\n\r\n//获取配置下载OSS地址接口\r\nexport function getConfigResoures() {\r\n return fetch({\r\n url: '/unionService/AliOSS/deviceConfig/oss/url',\r\n method: 'get',\r\n })\r\n}\r\n//获取配置下载OSS地址接口\r\nexport function getLogoResoures() {\r\n return fetch({\r\n url: '/unionService/AliOSS/store/logo/oss/url',\r\n method: 'get',\r\n })\r\n}\r\n//获取支付二维码下载OSS地址接口\r\nexport function qrcodeResoures() {\r\n return fetch({\r\n url: '/unionService/AliOSS/trade/oss/url',\r\n method: 'get',\r\n })\r\n}\r\n//获取支付二维码下载OSS地址接口\r\nexport function getImgResoures() {\r\n return fetch({\r\n url: '/unionService/AliOSS/goods/oss/url',\r\n method: 'get',\r\n })\r\n}\r\n//获取apk下载OSS地址接口\r\nexport function getApkResoures() {\r\n return fetch({\r\n url: '/unionService/AliOSS/apk/oss/url',\r\n method: 'get',\r\n })\r\n}\r\n\r\n//获取省市\r\nexport function getCitys(id) {\r\n return fetch({\r\n url: '/service-org/Region/getCitys?parentId='+id,\r\n method: 'get',\r\n })\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/comm.js","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(true);\n// imports\n\n\n// module\nexports.push([module.id, \".el-upload-list{width:50%}\", \"\", {\"version\":3,\"sources\":[\"D:/projects/gitLab/wxpos/posadmin/src/views/ota/version/add.vue\"],\"names\":[],\"mappings\":\"AACA,gBACE,SAAW,CACZ\",\"file\":\"add.vue\",\"sourcesContent\":[\"\\n.el-upload-list {\\n width: 50%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?{\"minimize\":true,\"sourceMap\":true}!./~/vue-loader/lib/style-compiler?{\"vue\":true,\"id\":\"data-v-94cc7036\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/views/ota/version/add.vue\n// module id = fNc5\n// module chunks = 27","module.exports = require('./src/browser-md5-file');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/browser-md5-file/index.js\n// module id = iVxu\n// module chunks = 27","<template>\n <div class=\"app-container\">\n <el-form :model=\"ruleForm\" :rules=\"rules\" ref=\"ruleForm\" label-width=\"100px\" class=\"demo-ruleForm\">\n <el-form-item label=\"上传文件\" prop=\"mediaUuid\">\n <el-tag type=\"danger\">请上传zip文件升级包,文件传输过程中请勿操作页面</el-tag>\n <el-upload\n :action=\"updata.url\"\n :show-file-list=\"true\"\n :on-success=\"handleAvatarSuccess\"\n :before-upload=\"beforeAvatarUpload\"\n :data=\"updata.data\"\n :fileList=\"fileList\"\n :on-remove=\"handleRemove\"\n >\n <el-button plain type=\"primary\">点击上传</el-button>\n </el-upload>\n </el-form-item>\n <el-form-item label=\"版本\" prop=\"versionCode\">\n <el-input v-model=\"ruleForm.versionCode\" style=\"width: 50%\" :disabled=\"true\"></el-input>\n </el-form-item>\n <el-form-item label=\"包类型\" prop=\"fileType\">\n <el-select v-model=\"ruleForm.fileType\" placeholder=\"请选择\" :disabled=\"true\">\n <el-option\n v-for=\"item in options\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"文件名\" prop=\"fileName\">\n <el-input v-model=\"ruleForm.fileName\" style=\"width: 50%\" :disabled=\"true\"></el-input>\n </el-form-item>\n <el-form-item label=\"路径\" prop=\"filePath\">\n <el-input v-model=\"ruleForm.filePath\" style=\"width: 50%\" :disabled=\"true\"></el-input>\n </el-form-item>\n <el-form-item label=\"MD5\" prop=\"md5Code\">\n <el-input v-model=\"ruleForm.md5Code\" style=\"width: 50%\" :disabled=\"true\"></el-input>\n </el-form-item>\n <el-form-item label=\"大小\" prop=\"fileSize\">\n <el-input v-model=\"ruleForm.fileSize\" style=\"width: 50%\" :disabled=\"true\"></el-input>\n </el-form-item>\n <el-form-item label=\"厂商\" prop=\"manufacturer\">\n <el-input v-model=\"ruleForm.manufacturer\" style=\"width: 50%\"></el-input>\n </el-form-item>\n <el-form-item label=\"设备\" prop=\"deviceType\">\n <el-input v-model=\"ruleForm.deviceType\" style=\"width: 50%\"></el-input>\n </el-form-item>\n <el-form-item label=\"型号\" prop=\"deviceModel\">\n <el-input v-model=\"ruleForm.deviceModel\" style=\"width: 50%\"></el-input>\n </el-form-item>\n <el-form-item label=\"客户\" prop=\"customer\">\n <el-input v-model=\"ruleForm.customer\" style=\"width: 50%\"></el-input>\n </el-form-item>\n\n <el-form-item label=\"ReleaseNote\" prop=\"releaseNote\">\n <el-input type=\"textarea\" v-model=\"ruleForm.releaseNote\" style=\"width: 50%\"></el-input>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" @click=\"submitForm('ruleForm')\">立即创建</el-button>\n <el-button @click=\"resetForm('ruleForm')\">重置</el-button>\n </el-form-item>\n </el-form>\n </div>\n</template>\n\n<script>\n import {getOSSSignature, getPackageResoures} from '@/api/comm'\n import {versionAdd} from '@/api/ota/version'\n import browserMD5File from 'browser-md5-file'\n\n export default {\n created() {\n // 上传签名初始化\n getOSSSignature('otadev').then(response => {\n this.updata.data.policy = response.result.policy\n this.updata.data.OSSAccessKeyId = response.result.accessid\n this.updata.data.success_action_status = '200'\n this.updata.data.signature = response.result.signature\n this.updata.url = response.result.host\n })\n getPackageResoures().then(res => {\n this.mediaUrl = res.result\n })\n },\n data() {\n return {\n fileList: [],\n loadingInstance: null,\n options: [\n {\n value: '0',\n label: '增量包'\n },\n {\n value: '1',\n label: '全量包'\n },\n {\n value: '2',\n label: 'PDA包'\n }\n ],\n ruleForm: {\n fileName: '',\n filePath: '',\n md5Code: '',\n fileSize: '',\n versionCode: '',\n manufacturer: '',\n deviceType: '',\n deviceModel: '',\n customer: '',\n fileType: '',\n prevPackageId: 0, // 熙康pda用,表示从哪个版本开始升级\n releaseNote: ''\n },\n rules: {\n versionCode: [\n {required: true, message: '请输入版本', trigger: 'blur'}\n ],\n fileType: [\n {required: true, message: '请选择包类型', trigger: 'blur'}\n ]\n },\n updata: {\n url: '',\n data: {}\n },\n selected: [],\n mediaUrl: ''\n }\n },\n methods: {\n handleRemove(file, fileList) {\n this.ruleForm = {\n fileName: '',\n filePath: '',\n md5Code: '',\n fileSize: '',\n versionCode: '',\n manufacturer: '',\n deviceType: '',\n deviceModel: '',\n customer: '',\n fileType: '',\n releaseNote: ''\n }\n },\n submitForm(formName) {\n this.$refs[formName].validate((valid) => {\n if (valid) {\n versionAdd(this.ruleForm).then(res => {\n var router = this.$router\n this.$message({\n message: '操作成功',\n type: 'success',\n duration: 1000,\n onClose: function () {\n router.push({path: 'index'})\n }\n })\n })\n } else {\n return false\n }\n })\n },\n resetForm(formName) {\n this.$refs[formName].resetFields()\n },\n handleAvatarSuccess(res, file) {\n console.log(file)\n this.ruleForm.fileName = file.name\n this.ruleForm.filePath = this.mediaUrl\n\n// this.ruleForm.md5Code = new MD5().update(file.name).digest('hex')\n this.ruleForm.fileSize = file.size\n// this.loadingInstance.close()\n this.fileList = []\n },\n beforeAvatarUpload(file) {\n var fileName = file.name\n var versionCode = ''\n var packageType = this.findPackageType(fileName)\n if (packageType == 'zeng') {\n // 获取增量包版本号 ota-user-2.0.312-344.zip\n versionCode = fileName.split('-')[2].split('.')[0] + '.' + fileName.split('-')[2].split('.')[1] + '.' + fileName.split('-')[3].split('.')[0]\n this.ruleForm.fileType = '0'\n } else if (packageType == 'quan') {\n // 获取全量包版本号 rk3288-ota-user.root.2.0.344.zip\n versionCode = fileName.split('.')[2] + '.' + fileName.split('.')[3] + '.' + fileName.split('.')[4]\n this.ruleForm.fileType = '1'\n } else {\n // PDA\n const newVersionCode = fileName.substring(0, fileName.lastIndexOf('.')).split('#')[1]\n versionCode = '1.0.' + newVersionCode.split('_')[1]\n this.ruleForm.prevPackageId = newVersionCode.split('_')[0]\n this.ruleForm.fileType = '2'\n }\n if (versionCode.indexOf('undefined') >= 0) {\n this.$message.error('包名称错误!')\n return false\n }\n // 上传文件命名\n this.updata.data.key = 'otadev/' + file.name\n this.ruleForm.versionCode = versionCode\n var ruleForm = this.ruleForm\n browserMD5File(file, function (err, md5) {\n ruleForm.md5Code = md5 // 97027eb624f85892c69c4bcec8ab0f11\n })\n// this.loadingInstance = Loading.service({\n// fullscreen: true,\n// text: '上传中...',\n// spinner: 'el-icon-loading',\n// background: 'rgba(0, 0, 0, 0.7)'\n// });\n\n return true\n },\n // 判断上传版本的文件是增量包还是全量包\n findPackageType(packageName) {\n if (packageName.indexOf('#') >= 0) {\n return 'pda'\n }\n var packageNameArray = packageName.split('.')\n // 获得除了.zip前一位截取的字符串是否包含\"-\",如果有就代表是增量包\n if (packageNameArray[packageNameArray.length - 2].indexOf('-') >= 0) {\n return 'zeng'\n } else {\n return 'quan'\n }\n }\n\n }\n }\n</script>\n<style>\n .el-upload-list {\n width: 50%;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/views/ota/version/add.vue?8e573c3a","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-94cc7036\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./add.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./add.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-94cc7036\\\",\\\"hasScoped\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./add.vue\"\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/ota/version/add.vue\n// module id = yq/Z\n// module chunks = 27"],"sourceRoot":""}