UNPKG

yylib-quick-mobile

Version:

yylib-quick-mobile

355 lines (318 loc) 14.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _toast = require('antd-mobile/lib/toast'); var _toast2 = _interopRequireDefault(_toast); require('antd-mobile/lib/toast/style/css'); var _RestUrl = require('../common/RestUrl'); var _FunctionUtil = require('./FunctionUtil'); var _iconWenjian = require('../common/img/icon-wenjian.png'); var _iconWenjian2 = _interopRequireDefault(_iconWenjian); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var downloadUrl = '/icop-file/file/download?id='; var listUrl = '/icop-file/file/list'; var uploadUrl = '/icop-file/file/muploadx'; var uploadBase64Url = '/icop-file/file/uploadBase64'; var delUrl = '/icop-file/file/del'; var maxSize = 200 * 1024; var getFileListByFileIdsUrl = '/icop-file/file/getFileListByFileIds'; function multiFilesUpLoad(obj, billType, source, callback) { var ajax = window.YYUtils.Ajax; var loginContext = window.YYUtils.AuthToken.getContext(); var files = []; var imgPics = []; var fileList = []; var source = source || { sourceId: '', sourceType: '' }; if (obj.file) { _toast2.default.loading('正在上传...', 1); var reader = new FileReader(); reader.readAsDataURL(obj.file); reader.onload = function (e) { var singleFile = {}; var params = {}; var fileName = obj.file.name.lastIndexOf("."); var fileNameLength = obj.file.name.length; var filetype = obj.file.name.substring(fileName + 1, fileNameLength); if (['jpg', 'png', 'gif', 'jpeg', 'PNG', 'JPG', 'GIF'].indexOf(filetype) < 0) { singleFile = { fileName: obj.file.name, fileSize: obj.file.size, fileContent: e.target.result }; files.push(singleFile); params = { billType: billType, sourceId: source.sourceId, sourceType: source.sourceType, userId: loginContext.userId, userName: loginContext._A_P_userName, files: files }; ajax.postJSON(_RestUrl.ADDR + uploadUrl, params, function (data) { if (data.success) { var backData = data.backData; if (backData.length) { for (var i = 0; i < backData.length; i++) { var item = backData[i]; var thumbUrl = _RestUrl.ADDR + '/' + zoomImgPath(item.filePath, '_100x100'); var originalUrl = _RestUrl.ADDR + '/' + zoomImgPath(item.filePath); var fileUrl = _RestUrl.ADDR + '/' + item.filePath; var _filetype = getFileType(item.fileName); if (['jpg', 'png', 'gif', 'jpeg', 'PNG', 'JPG', 'GIF'].indexOf(_filetype) < 0) { thumbUrl = _iconWenjian2.default; } var file = { gid: item.gid, name: item.fileName, url: thumbUrl, originalUrl: originalUrl, fileUrl: fileUrl, status: 'done', backData: item }; fileList.push(file); } } _toast2.default.success(data.backMsg ? data.backMsg : '上传成功!', 1); if (callback && (0, _FunctionUtil.isFunction)(callback)) { callback(fileList); } } else { _toast2.default.info(data.backMsg ? data.backMsg : '上传失败!', 1); } }); } else { var imgInfo = {}, result = this.result; imgInfo.src = result; imgPics.push(imgInfo); var img = new Image(); img.src = result; var fileContent = result; img.onload = function () { singleFile.fileName = obj.file.name; if (fileContent.length > maxSize) fileContent = compress(this); singleFile.fileSize = fileContent.length; singleFile.fileContent = fileContent.substring(fileContent.indexOf(',') + 1); files.push(singleFile); params = { billType: billType, sourceId: source.sourceId, sourceType: source.sourceType, userId: loginContext.userId, userName: loginContext._A_P_userName, files: files }; ajax.postJSON(_RestUrl.ADDR + uploadUrl, params, function (data) { if (data.success) { var backData = data.backData; if (backData.length) { for (var i = 0; i < backData.length; i++) { var item = backData[i]; var thumbUrl = _RestUrl.ADDR + '/' + zoomImgPath(item.filePath, '_100x100'); var originalUrl = _RestUrl.ADDR + '/' + zoomImgPath(item.filePath); var fileUrl = _RestUrl.ADDR + '/' + item.filePath; var _filetype2 = getFileType(item.fileName); if (['jpg', 'png', 'gif', 'jpeg', 'PNG', 'JPG', 'GIF'].indexOf(_filetype2) < 0) { thumbUrl = _iconWenjian2.default; } var file = { gid: item.gid, name: item.fileName, url: thumbUrl, originalUrl: originalUrl, fileUrl: fileUrl, status: 'done', backData: item }; fileList.push(file); } } _toast2.default.success(data.backMsg ? data.backMsg : '上传成功!', 1); if (callback && (0, _FunctionUtil.isFunction)(callback)) { callback(fileList); } } else { _toast2.default.info(data.backMsg ? data.backMsg : '上传失败!', 1); } }); }; } }; } else if (obj.files) { _toast2.default.loading('正在上传...', 1); var params = {}; params.files = obj.files; params.billType = billType; params.sourceId = source.sourceId; params.sourceType = source.sourceType; ajax.postJSON(_RestUrl.ADDR + uploadUrl, params, function (data) { if (data.success) { var backData = data.backData; if (backData.length) { for (var i = 0; i < backData.length; i++) { var item = backData[i]; var thumbUrl = _RestUrl.ADDR + '/' + zoomImgPath(item.filePath, '_100x100'); var originalUrl = _RestUrl.ADDR + '/' + zoomImgPath(item.filePath); var fileUrl = _RestUrl.ADDR + '/' + item.filePath; var filetype = getFileType(item.fileName); if (['jpg', 'png', 'gif', 'jpeg', 'PNG', 'JPG', 'GIF'].indexOf(filetype) < 0) { thumbUrl = _iconWenjian2.default; } var file = { gid: item.gid, name: item.fileName, url: thumbUrl, originalUrl: originalUrl, fileUrl: fileUrl, status: 'done', backData: item }; fileList.push(file); } } _toast2.default.success(data.backMsg ? data.backMsg : '上传成功!', 1); if (callback && (0, _FunctionUtil.isFunction)(callback)) { callback(fileList); } } else { _toast2.default.info(data.backMsg ? data.backMsg : '上传失败!', 1); } }); } } function compress(img) { var canvas = document.createElement('canvas'), ctx = canvas.getContext('2d'); ctx.clearRect(0, 0, canvas.width, canvas.height); canvas.width = img.naturalWidth; canvas.height = img.naturalHeight; ctx.drawImage(img, 0, 0, canvas.width, canvas.height); var data = canvas.toDataURL('image/jpeg', 0.2); return data; } function delAttach(params, onSuccess, onFail) { var ajax = window.YYUtils.Ajax; ajax.getJSON(_RestUrl.ADDR + delUrl, params, function (data) { if (data.success) { _toast2.default.success(data.backMsg ? data.backMsg : '删除成功!', 1); if (onSuccess && (0, _FunctionUtil.isFunction)(onSuccess)) { onSuccess(); } } else { _toast2.default.info(data.backMsg ? data.backMsg : '删除失败!', 1); if (onFail && (0, _FunctionUtil.isFunction)(onFail)) { onFail(); } } }, function (error) { _toast2.default.info('服务器请求失败!', 1); }); } function zoomImgPath(filePath, dimension) { if (!filePath) return filePath; var idx = filePath.lastIndexOf('.'); if (idx > -1) { var ext = filePath.substr(idx); return filePath.substr(0, idx) + (dimension || '') + ext; } else { return filePath; } } function getFileType(filename) { var type = ";"; if (filename) { var lastKIndex = filename.lastIndexOf("."); if (lastKIndex > -1) { type = filename.substring(lastKIndex + 1, filename.length); } } return type; } function loadAttachList(params, callback) { var ajax = window.YYUtils.Ajax; var fileList = []; ajax.getJSON(_RestUrl.ADDR + listUrl, params, function (data) { if (data.success) { var backData = data.backData; if (backData != null) { for (var i = 0; i < backData.length; i++) { var item = backData[i]; var thumbUrl = _RestUrl.ADDR + '/' + zoomImgPath(item.filePath, '_100x100'); var originalUrl = _RestUrl.ADDR + '/' + zoomImgPath(item.filePath); var fileUrl = _RestUrl.ADDR + '/' + item.filePath; var filetype = getFileType(item.fileName); if (['jpg', 'png', 'gif', 'jpeg', 'PNG', 'JPG', 'GIF'].indexOf(filetype) < 0) { thumbUrl = _iconWenjian2.default; } var file = { gid: item.gid, name: item.fileName, url: thumbUrl, originalUrl: originalUrl, fileUrl: fileUrl, status: 'done', backData: item }; fileList.push(file); } } if (callback && (0, _FunctionUtil.isFunction)(callback)) { callback(fileList); } } else { _toast2.default.info(data.backMsg ? data.backMsg : '加载附件失败!', 1); } }); } function uploadBase64Img(imgData, params, callback) { var ajax = window.YYUtils.Ajax; var data = Object.assign({}, params, { content: imgData.replace('data:image/png;base64,', '').replace('data:image/jpeg;base64,', '') }); ajax.postJSON(_RestUrl.ADDR + uploadBase64Url, data, function (result) { if (result.success) { _toast2.default.info(result.backMsg ? result.backMsg : '上传成功!', 1); if (callback && (0, _FunctionUtil.isFunction)(callback)) { callback(); } } else { _toast2.default.info(result.backMsg ? result.backMsg : '上传失败!', 1); } }, function (error) {}); } function zipImg(imgBase64, options, callback) { console.log('原始大小:' + imgBase64.length); var img = new Image(); img.src = imgBase64; img.onload = function () { var canvas = document.createElement('CANVAS'); var ctx = canvas.getContext('2d'); var width = img.width; var height = img.height; var rate = 0.3; if (width > 800 && height > 480) rate = 0.8; if (width > 900 && height > 600) rate = 0.75; if (width > 960 && height > 720) rate = 0.7; if (width > 1024 && height > 768) rate = 0.65; if (width > 1280 && height > 768) rate = 0.6; if (options && options.rate) rate = options.rate; canvas.width = width * rate; canvas.height = height * rate; ctx.drawImage(img, 0, 0, width, height, 0, 0, width * rate, height * rate); var dataURL = canvas.toDataURL('image/png', 0.1); console.log('压缩后大小:' + dataURL.length); if (typeof callback == 'function') callback(dataURL); canvas = null; }; } exports.default = { multiFilesUpLoad: multiFilesUpLoad, delAttach: delAttach, loadAttachList: loadAttachList, uploadBase64Img: uploadBase64Img, zipImg: zipImg, getFileType: getFileType };