"use strict"; var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var common_vendor = require("../../../common/vendor.js"); var utils_request_upload_qiniuUploader = require("./qiniuUploader.js"); const randomChar = function(l, url = "") { const x = "0123456789qwertyuioplkjhgfdsazxcvbnm"; let tmp = ""; let time = new Date(); for (let i = 0; i < l; i++) { tmp += x.charAt(Math.ceil(Math.random() * 1e8) % x.length); } return "file/" + url + time.getTime() + tmp; }; const chooseImage = function(data) { return new Promise((resolve, reject) => { common_vendor.index.chooseImage({ count: data.count || 9, sizeType: data.sizeType || ["original", "compressed"], sourceType: data.sourceType || ["album", "camera"], success: function(res) { resolve(res.tempFiles); }, fail: (err) => { reject({ errMsg: err.errMsg, errCode: err.errCode, statusCode: 0 }); } }); }); }; const chooseVideo = function(data) { return new Promise((resolve, reject) => { common_vendor.index.chooseVideo({ sourceType: data.sourceType || ["album", "camera"], compressed: data.compressed || false, maxDuration: data.maxDuration || 60, camera: data.camera || "back", success: function(res) { let files = [{ path: res.tempFilePath }]; files[0].duration = res.duration; files[0].size = res.size; files[0].height = res.height; files[0].width = res.width; resolve(files); }, fail: (err) => { reject({ errMsg: err.errMsg, errCode: err.errCode, statusCode: 0 }); } }); }); }; const qiniuUpload = function(requestInfo, getQnToken) { return new Promise((resolve, reject) => { if (Array.isArray(requestInfo.files)) { let len = requestInfo.files.length; let fileList = new Array(); if (getQnToken) { getQnToken((qnRes) => { let prefixLen = qnRes.visitPrefix.length; if (qnRes.visitPrefix.charAt(prefixLen - 1) == "/") { qnRes.visitPrefix = qnRes.visitPrefix.substring(0, prefixLen - 1); } uploadFile(0); function uploadFile(i) { let item = requestInfo.files[i]; let updateUrl = randomChar(10, qnRes.folderPath); let fileData = __spreadValues({ fileIndex: i, files: requestInfo.files }, item); if (item.name) { fileData.name = item.name; let nameArr = item.name.split("."); updateUrl += "." + nameArr[nameArr.length - 1]; } utils_request_upload_qiniuUploader.qiniuUploader.upload(item.path || item, (res) => { fileData.url = res.imageURL; requestInfo.onEachUpdate && requestInfo.onEachUpdate(__spreadValues({ url: res.imageURL }, fileData)); fileList.push(res.imageURL); if (len - 1 > i) { uploadFile(i + 1); } else { resolve(fileList); } }, (error) => { reject(error); }, { region: qnRes.region || "SCN", domain: qnRes.visitPrefix, key: updateUrl, uptoken: qnRes.token, uptokenURL: "UpTokenURL.com/uptoken" }, (res) => { console.log(requestInfo); requestInfo.onProgressUpdate && requestInfo.onProgressUpdate(Object.assign({}, fileData, res)); }); } }); } else { reject({ errMsg: "\u8BF7\u6DFB\u52A0\u4E03\u725B\u4E91\u56DE\u8C03\u65B9\u6CD5\uFF1AgetQnToken", statusCode: 0 }); } } else { reject({ errMsg: "files \u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B", statusCode: 0 }); } }); }; const urlUpload = function(requestInfo, dataFactory) { return new Promise((resolve, reject) => { if (requestInfo.header["Content-Type"]) { delete requestInfo.header["Content-Type"]; } if (requestInfo.header["content-type"]) { delete requestInfo.header["content-type"]; } if (Array.isArray(requestInfo.files)) { let fileUpload = function(i) { let item = requestInfo.files[i]; let fileData = __spreadValues({ fileIndex: i, files: requestInfo.files }, item); let config = { url: requestInfo.url, filePath: item.path, header: requestInfo.header, name: requestInfo.name || "file", success: (response) => { if (requestInfo.isFactory && dataFactory) { dataFactory(__spreadProps(__spreadValues({}, requestInfo), { response })).then((data) => { fileList.push(data); requestInfo.onEachUpdate && requestInfo.onEachUpdate(__spreadValues({ data }, fileData)); if (len <= i) { resolve(fileList); } else { fileUpload(i + 1); } }, (err) => { reject(err); }); } else { requestInfo.onEachUpdate && requestInfo.onEachUpdate(__spreadValues({ data: response }, fileData)); fileList.push(response); if (len <= i) { resolve(fileList); } else { fileUpload(i + 1); } } }, fail: (err) => { reject(err); } }; if (requestInfo.data) { config.formData = requestInfo.data; } const uploadTask = common_vendor.index.uploadFile(config); uploadTask.onProgressUpdate((res) => { requestInfo.onProgressUpdate && requestInfo.onProgressUpdate(Object.assign({}, fileData, res)); }); }; const len = requestInfo.files.length - 1; let fileList = new Array(); fileUpload(0); } else { reject({ errMsg: "files \u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B", statusCode: 0 }); } }); }; exports.chooseImage = chooseImage; exports.chooseVideo = chooseVideo; exports.qiniuUpload = qiniuUpload; exports.urlUpload = urlUpload;