zcloud-ui
Version:
A Component Library for Vue.js.
1,228 lines (1,084 loc) • 51.5 kB
JavaScript
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[21],{
/***/ 23:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var zcloud_ui_src_utils_boxer_jquery_fs_boxer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22);
/* harmony import */ var zcloud_ui_src_utils_boxer_jquery_fs_boxer_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zcloud_ui_src_utils_boxer_jquery_fs_boxer_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var zcloud_ui_src_utils_boxer_jquery_fs_boxer_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39);
/* harmony import */ var zcloud_ui_src_utils_boxer_jquery_fs_boxer_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(zcloud_ui_src_utils_boxer_jquery_fs_boxer_css__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var zcloud_ui_src_utils_global__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);
/* harmony import */ var zcloud_ui_src_utils_global__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(zcloud_ui_src_utils_global__WEBPACK_IMPORTED_MODULE_2__);
/* eslint-disable */
var _bind = function _bind(el, binding, vnode) {
var imgSrc = binding.value;
if (imgSrc) {
var type = Object(zcloud_ui_src_utils_global__WEBPACK_IMPORTED_MODULE_2__["getFileType"])(imgSrc);
if (['pdf', 'image'].includes(type)) {
$(el).boxer2();
}
}
$(el).click(function () {
return false;
});
};
/* harmony default export */ __webpack_exports__["a"] = ({
bind: function bind() {
_bind.apply(undefined, arguments);
},
update: function update() {
_bind.apply(undefined, arguments);
}
});
/***/ }),
/***/ 29:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/file-upload/src/main.vue?vue&type=template&id=950efe76&
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{ ref: "imgUpload", staticClass: "zl-file-upload" },
[
_c(
"el-upload",
_vm._g(
_vm._b(
{
directives: [
{
name: "loading",
rawName: "v-loading",
value: _vm.loading,
expression: "loading"
}
],
ref: "zlUpload",
attrs: {
"http-request": _vm.httpRequire,
data: _vm.parmasData,
disabled: _vm.disabled,
action: _vm.action,
headers: _vm.headers,
"list-type": _vm.listType,
"on-success": _vm.success,
"on-error": _vm.errors,
"before-upload": _vm.beforeUpload,
drag: _vm.drag,
"on-remove": _vm.remove,
"file-list": _vm.fileLists,
"on-exceed": _vm.handleExceed,
"before-remove": _vm.beforeRemove,
limit: _vm.limit
},
scopedSlots: _vm._u(
[
{
key: "file",
fn: function(ref) {
var file = ref.file
return _vm.listType === "picture-card"
? _c(
"div",
{ staticClass: "zl-file-img" },
[
file.status === "uploading"
? _c("el-progress", {
attrs: {
type: "circle",
percentage: _vm.parsePercentage(
file.percentage
),
width: 80
}
})
: _vm._e(),
_c("img", {
staticClass: "el-upload-list__item-thumbnail",
attrs: { src: file.url, alt: "" }
}),
_c(
"span",
{ staticClass: "el-upload-list__item-actions" },
[
_c(
"span",
{
directives: [
{
name: "show",
rawName: "v-show",
value: _vm.showPreview(file),
expression: "showPreview(file)"
}
],
staticClass:
"el-upload-list__item-preview",
on: {
click: function($event) {
return _vm.review(file)
}
}
},
[
_c("i", {
staticClass: "el-icon-zoom-in"
})
]
),
_vm.showDown
? _c(
"span",
{
staticClass:
"el-upload-list__item-delete",
on: {
click: function($event) {
return _vm.handleDownload(file)
}
}
},
[
_c("i", {
staticClass: "el-icon-download"
})
]
)
: _vm._e(),
!_vm.disabled
? _c(
"span",
{
staticClass:
"el-upload-list__item-delete",
on: {
click: function($event) {
return _vm.handleRemove(file)
}
}
},
[
_c("i", {
staticClass: "el-icon-delete"
})
]
)
: _vm._e()
]
)
],
1
)
: _vm.listType === "text"
? _c("div", {}, [
_c(
"a",
{ staticClass: "el-upload-list__item-name" },
[
_c("i", { staticClass: "el-icon-document" }),
[
_vm.showPreview(file)
? _c(
"span",
{
staticClass:
"el-upload-list__item-name-span",
on: {
click: function($event) {
return _vm.review(file)
}
}
},
[_vm._v(_vm._s(file.name))]
)
: _c(
"span",
{
staticClass:
"el-upload-list__item-name-span",
on: {
click: function($event) {
return _vm.handleDownload(file)
}
}
},
[_vm._v(_vm._s(file.name))]
)
],
_c("div", { staticClass: "zl-right" }, [
_vm.showDown
? _c("i", {
staticClass: "el-icon-download",
on: {
click: function($event) {
return _vm.handleDownload(file)
}
}
})
: _vm._e(),
_vm.showPreview(file)
? _c("i", {
staticClass: "el-icon-zoom-in",
on: {
click: function($event) {
return _vm.review(file)
}
}
})
: _c("i", {
staticClass: "el-icon-zoom-in",
on: {
click: function($event) {
return _vm.handleDownload(file)
}
}
})
])
],
2
),
!_vm.disabled
? _c(
"label",
{
staticClass:
"el-upload-list__item-status-label"
},
[
_c("i", {
class: {
"el-icon-upload-success": true,
"el-icon-circle-check":
_vm.listType === "text",
"el-icon-check":
["picture-card", "picture"].indexOf(
_vm.listType
) > -1
}
})
]
)
: _vm._e(),
!_vm.disabled
? _c("i", {
staticClass: "el-icon-close",
on: {
click: function($event) {
return _vm.handleRemove(file)
}
}
})
: _vm._e()
])
: _vm._e()
}
}
],
null,
true
)
},
"el-upload",
_vm.$attrs,
false
),
_vm.$listeners
),
[_vm._t("imgs"), _c("i", { staticClass: "el-icon-plus" })],
2
),
_c(
"div",
{
directives: [
{
name: "show",
rawName: "v-show",
value: false,
expression: "false"
}
],
ref: "boxer"
},
_vm._l(_vm.files, function(item) {
return _c("a", {
directives: [
{
name: "boxer",
rawName: "v-boxer",
value: item.fullUrl,
expression: "item.fullUrl"
}
],
key: item.fullUrl,
class: "link-view-" + item.uid,
attrs: { href: item.fullUrl }
})
}),
0
),
_c("el-image", {
class: "file-upload-review-image-" + _vm.reviewImgsObj.id,
staticStyle: { width: "0", height: "0" },
attrs: {
src: _vm.reviewImgsObj.url,
"preview-src-list": _vm.reviewImgs
},
on: { load: _vm.imageLoad }
})
],
1
)
}
var staticRenderFns = []
render._withStripped = true
// CONCATENATED MODULE: ./packages/file-upload/src/main.vue?vue&type=template&id=950efe76&
// EXTERNAL MODULE: external "zcloud-ui/lib/mixins/emitter"
var emitter_ = __webpack_require__(6);
var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
// EXTERNAL MODULE: ./src/directives/boxer.js
var boxer = __webpack_require__(23);
// EXTERNAL MODULE: external "zcloud-ui/lib/utils/global"
var global_ = __webpack_require__(5);
// EXTERNAL MODULE: external "zcloud-ui/lib/config/index"
var index_ = __webpack_require__(2);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/file-upload/src/main.vue?vue&type=script&lang=js&
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var mainvue_type_script_lang_js_ = ({
name: 'ZlFileUpload',
mixins: [emitter_default.a],
data: function data() {
return {
headers: {}, // 添加请求头{}
fileList: [], // test
fileLists: [], // 默认已上传 文件地址[{name,url}]
files: [], // 放大图片的集合
isChange: false, // 是否有变更
imgUrls: [], // 原地址
loading: false,
parmasData: _extends({
fileName: '',
resourceSize: '',
fileSuffix: '',
cover: false,
verification: true }, index_["Environment"].FILE_UPLOAD_PARAMS, {
resourceUrl: index_["Environment"].IMAGE_DOWNLOAD
}),
reviewImgsObj: {
url: '',
pageDom: '',
id: ''
},
ajaxData: {},
lookStr: [],
sign: ''
};
},
directives: {
boxer: boxer["a" /* default */]
},
props: {
// 签名上传需要先请求签名
beforeHttpRequire: {
type: Function
},
// 签名下载需要先请求签名
beforeHttpRequireLook: {
type: Function
},
fileMaxSize: {
type: [Number, String],
default: ''
},
action: {
type: String,
default: function _default() {
return index_["Environment"].FILE_URL + 'upload/addFiles';
} // 中通
},
listType: {
type: String,
default: 'text'
},
limit: {
// 最大上传数量
type: [Number, String],
default: function _default() {
return 5;
}
},
suffixWhite: {
type: [String, Array],
default: ''
},
supportType: {
type: String,
default: 'all',
validator: function validator(value) {
return ['img', 'file', 'bids', 'zto', 'all'].indexOf(value) !== -1;
}
},
disabled: {
type: Boolean,
default: false
},
drag: {
type: Boolean,
default: false
},
value: {
// 图片地址
type: [String, Array],
required: true
},
hideUploadBtn: {
type: Boolean,
default: false
},
validateEvent: {
type: Boolean,
default: true
},
string: {
type: Boolean,
default: true
},
join: {
type: String,
default: ','
},
token: {
type: String,
default: ''
},
showDown: {
type: Boolean,
default: false
},
extendParmas: {
type: Object,
default: function _default() {
return {};
}
}
},
computed: {
reviewImgs: function reviewImgs() {
return this.files.filter(function (img) {
return Object(global_["getFileType"])(img.fullUrl) === 'image';
}).map(function (url) {
return url.fullUrl;
});
}
},
mounted: function mounted() {
var _this = this;
return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return _this.getSign();
case 2:
_this.headers.Authorization = _this.token || index_["Environment"].TOKEN;
_this.reviewImgsObj.pageDom = document.createElement('div');
_this.reviewImgsObj.pageDom.style = 'font-size: 18px';
_this.initFiles(_this.value);
case 6:
case 'end':
return _context.stop();
}
}
}, _callee, _this);
}))();
},
created: function created() {},
watch: {
value: {
deep: true,
handler: function handler(val, oldVal) {
val && !this.isChange && this.initFiles(val);
}
}
},
methods: {
getSign: function getSign() {
var _this2 = this;
return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
var str, res;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
// 签名处理
str = '';
_this2.lookStr = [];
if (!_this2.beforeHttpRequireLook) {
_context2.next = 8;
break;
}
_context2.next = 5;
return _this2.beforeHttpRequireLook();
case 5:
res = _context2.sent;
// res 是签名数组排序好的 [{key:'appkey',value:asa}]
res.forEach(function (item) {
_this2.lookStr.push(item.key + '=' + item.value);
});
str = _this2.lookStr.join('&');
case 8:
_this2.sign = str;
case 9:
case 'end':
return _context2.stop();
}
}
}, _callee2, _this2);
}))();
},
beforeRemove: function beforeRemove() {
// this.$refs.zlUpload.clearFiles();
},
addReviewImgPage: function addReviewImgPage(parent) {
var img = parent.find('.el-image-viewer__canvas img').attr('src');
var index = this.reviewImgs.findIndex(function (item) {
return item === img;
});
this.reviewImgsObj.pageDom.innerHTML = index + 1 + '/' + this.reviewImgs.length;
parent.find('.el-image-viewer__actions__inner').prepend(this.reviewImgsObj.pageDom);
},
imageLoad: function imageLoad() {
var _this3 = this;
var parentDom = $('.zl-file-upload .file-upload-review-image-' + this.reviewImgsObj.id);
var imgDom = parentDom.find('img')[0];
if (imgDom) {
imgDom.click();
this.$nextTick(function () {
_this3.addReviewImgPage(parentDom);
if (!parentDom.find('.el-image-viewer__prev')[0]) return;
parentDom.find('.el-image-viewer__prev')[0].addEventListener('click', function () {
return _this3.addReviewImgPage(parentDom);
});
parentDom.find('.el-image-viewer__next')[0].addEventListener('click', function () {
return _this3.addReviewImgPage(parentDom);
});
});
}
},
// 强制更新
fourceUpdate: function fourceUpdate() {
this.initFiles(this.value);
},
fourceRemove: function fourceRemove() {
this.initFiles('', true);
},
// 初始化file
initFiles: function initFiles(val, flag) {
var _this4 = this;
if (!val && !flag) return;
if (typeof val === 'string') {
// 处理后台返回空格问题
val = val.replace(/(&?)nbsp;|(&?)amp;/gi, ' ');
}
var splitCode = val.includes(',') ? ',' : val.includes(';') ? ';' : null;
var src = typeof val === 'string' ? val.split(splitCode) : val instanceof Array ? val : null,
list = [],
reUrls = []; // 全地址
this.imgUrls = [];
src && src.forEach(function (item) {
if (item) {
var formatUrl = _this4.formatFile(item);
list.push(formatUrl);
reUrls.push(formatUrl.reUrl); // 全地址
}
});
this.imgUrls = reUrls; // 原地址
this.files = this.fileLists = [].concat(list);
this.updateUploadBtn();
},
// 格式化文件
formatFile: function formatFile(item, uid) {
var fullUrlDown = void 0,
fullUrl = void 0,
reUrl = void 0;
if (item.includes('upload/files/')) {
// 老数据处理
fullUrlDown = index_["Environment"].IMAGE_DOWNLOAD_OLD + item;
fullUrl = fullUrlDown + '&isShow=true';
reUrl = item;
console.log('老数据暂无处理', item);
} else {
if (item.includes(index_["Environment"].IMG_PREFIX)) {
// 文件名称处理
item = item.split(index_["Environment"].IMG_PREFIX).reverse()[0];
}
// 签名处理
if (this.sign) {
fullUrlDown = index_["Environment"].IMAGE_DOWNLOAD + item + '?' + this.sign;
} else {
fullUrlDown = index_["Environment"].IMAGE_DOWNLOAD + item + '?token=' + (this.token || index_["Environment"].TOKEN);
}
fullUrl = fullUrlDown + '&isShow=true';
reUrl = index_["Environment"].IMG_PREFIX + item;
}
var thumbnail = Object(global_["formatFile"])(item, this.token || index_["Environment"].TOKEN || '', this.sign);
var name = item.split('/').reverse()[0];
var nameLength = this.extendParmas.nameLength ? this.extendParmas.nameLength : 20;
return {
uid: uid || parseInt(Math.random() * 1000000000),
url: thumbnail, // 缩略图地址
name: name.length > nameLength ? name.substr(nameLength * -1) : name,
fullUrlDown: fullUrlDown, // 下载
fullUrl: fullUrl, // 预览
reUrl: reUrl // 原地址
};
},
// 更新上传按钮是否显示
updateUploadBtn: function updateUploadBtn() {
var $card = this.$refs.imgUpload.querySelector('.el-upload'),
$icon = this.$refs.imgUpload.querySelector('.el-icon-plus');
if (this.hideUploadBtn || this.disabled) {
$card.style.display = 'none';
$icon.style.display = 'none';
return Promise.reject();
}
var _flag = this.imgUrls.length >= this.limit; // 默认5条
$card.style.display = _flag ? 'none' : 'inline-block';
$icon.style.display = _flag ? 'none' : 'inline-block';
},
// 上传前
beforeUpload: function beforeUpload(file) {
var _this5 = this;
return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
var isLt2M, suffixWhite, fileSuffix, reg, fileMax;
return regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
isLt2M = file.size / 1024 / 1024;
// 文件类型
suffixWhite = _this5.suffixWhite && typeof _this5.suffixWhite === 'string' ? _this5.suffixWhite.split(',') : _this5.suffixWhite instanceof Array ? _this5.suffixWhite : [];
fileSuffix = (file.name.split('.').pop() || '').toLowerCase();
if (!(_this5.supportType && !Object(global_["getFileType"])(file.name, _this5.supportType) || suffixWhite.length && !suffixWhite.includes(fileSuffix))) {
_context3.next = 6;
break;
}
_this5.$message.error('暂不支持上传文件 ' + fileSuffix + ' 格式。');
return _context3.abrupt('return', Promise.reject());
case 6:
reg = index_["Environment"].FILE_UPLOAD_REG instanceof RegExp ? index_["Environment"].FILE_UPLOAD_REG : /[`~!@#$%^&*()\+=<>?:"{}|,\/;'\\ [\]·~!@#¥%……&*()——\+={}|《》?:“”【】、;‘',。、]/im;
if (!reg.test(file.name.replace(/ /g, ''))) {
_context3.next = 10;
break;
}
_this5.$message.error('文件名不支持特殊字符,请修改名称后再上传');
return _context3.abrupt('return', Promise.reject());
case 10:
// 文件大小不能超过5M
fileMax = _this5.fileMaxSize || index_["Environment"].IMG_SIZE_MAX;
if (!(isLt2M > fileMax)) {
_context3.next = 14;
break;
}
_this5.$message.error('\u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 ' + fileMax + 'MB\u3002');
return _context3.abrupt('return', Promise.reject());
case 14:
_this5.isChange = true;
if (_this5.fileLists.length === _this5.limit - 1) {
// why
_this5.$refs.imgUpload.querySelector('.el-upload').style.display = 'none';
_this5.$refs.imgUpload.querySelector('.el-icon-plus').style.display = 'none';
}
_this5.loading = true;
_this5.setParams(file);
// 上传前的执行函数
if (!_this5.extendParmas.beforeUploadFunc) {
_context3.next = 21;
break;
}
_context3.next = 21;
return _this5.extendParmas.beforeUploadFunc(_this5.parmasData);
case 21:
case 'end':
return _context3.stop();
}
}
}, _callee3, _this5);
}))();
},
// 上传失败错误
errors: function errors() {
console.log('文件上传失败');
this.$message.error('文件上传失败');
this.loading = false;
this.updateUploadBtn();
},
// 设置请参数
setParams: function setParams(file) {
var suffix = file.name.split('.').reverse()[0]; // 文件后缀名
var parmasData = this.parmasData;
parmasData.fileName = file.name || ''; // 文件名称
parmasData.resourceSize = file.size || ''; // 文件大小
parmasData.fileSuffix = suffix || ''; // 后缀名
for (var _iterator = Object.keys(this.extendParmas), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var key = _ref;
parmasData[key] = this.extendParmas[key];
}
},
// 自定义上传文件
httpRequire: function httpRequire(content) {
var _this6 = this;
return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
var formData, res, prom;
return regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
formData = new FormData();
content.file && formData.append('file', content.file);
if (!_this6.beforeHttpRequire) {
_context4.next = 10;
break;
}
// 签名上传
console.log('进入签名上传');
_context4.next = 6;
return _this6.beforeHttpRequire(content);
case 6:
res = _context4.sent;
// res 是签名数组排序好的 [{key:'appkey',value:asa}]
res.forEach(function (item) {
// this.lookStr.push(item.key + '=' + item.value);
formData.append(item.key, item.value);
});
_context4.next = 11;
break;
case 10:
Object.keys(_this6.parmasData).forEach(function (key) {
formData.append(key, _this6.parmasData[key]);
});
case 11:
prom = new Promise(function (resolve, reject) {
// 原生请求。axios试了下不太行
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (xhttp.readyState === 4 && xhttp.status === 200) {
var data = JSON.parse(xhttp.response);
// 处理回调函数
resolve(data);
} else if (xhttp.readyState === 4) {
reject();
}
};
// 同步请求
xhttp.open('POST', content.action, true);
if (!_this6.beforeHttpRequire) {
xhttp.setRequestHeader('Authorization', _this6.token || index_["Environment"].TOKEN);
}
console.log('开始上传');
xhttp.send(formData);
});
return _context4.abrupt('return', prom);
case 13:
case 'end':
return _context4.stop();
}
}
}, _callee4, _this6);
}))();
},
// 上传成功
success: function success(response, file, fileList) {
var res = void 0;
response = response || this.ajaxData;
this.loading = false;
if (typeof response === 'string') {
res = JSON.parse(response);
} else {
res = response;
}
if (res.success) {
// pdf 不能预览,需要替换
var formatUrl = this.formatFile(res.result.resourcesId + '/' + res.result.fullFileName);
file.fullUrl = formatUrl.fullUrl;
file.fullUrlDown = formatUrl.fullUrlDown;
file.reUrl = formatUrl.reUrl;
if (!/^image/g.test(file.raw.type)) {
file.url = formatUrl.url;
}
var isAllSuccess = fileList.every(function (item) {
return item.status === 'success';
});
if (isAllSuccess) {
this.updateFiles(fileList, file);
}
} else {
this.handleRemove(file);
this.$message.error(res.msg);
}
},
// 更新图片
updateFiles: function updateFiles(list, file) {
var _this7 = this;
// formatFile 处理
list = list.map(function (item) {
var res = _this7.getFileUrl(item),
result = _this7.formatFile(res, item.uid);
item = _extends({}, item, result);
return item;
});
this.imgUrls = list.map(function (item) {
return item.reUrl;
});
this.files = list.map(function (item) {
return {
uid: item.uid,
fullUrl: item.fullUrl
};
});
var imgUrls = this.string ? this.imgUrls.join(this.join) : this.imgUrls;
this.$emit('input', imgUrls);
this.$emit('success', this.imgUrls, list); // 上传完成钩子
if (this.validateEvent) {
this.dispatch('ElFormItem', 'el.form.change', [this.imgUrls + '']);
}
this.updateUploadBtn();
},
getFileUrl: function getFileUrl(file) {
if (file.reUrl) {
return file.reUrl;
} else {
try {
var res = file.response.result;
return res.resourcesId + '/' + res.fullFileName;
} catch (e) {
console.log('error', file);
return '';
}
}
},
handleRemove: function handleRemove(file) {
var box = this.$refs.zlUpload.uploadFiles;
var index = box.findIndex(function (item) {
return item.uid === file.uid;
});
if (index !== undefined || index !== null) {
box.splice(index, 1);
this.files.splice(index, 1);
this.imgUrls.splice(index, 1);
}
this.updateUploadBtn();
},
// 删除
remove: function remove(file, fileList) {
this.updateFiles(fileList);
},
// 下载
handleDownload: function handleDownload(file) {
var _this8 = this;
return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
var fileUrl;
return regeneratorRuntime.wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
fileUrl = file.fullUrlDown;
fileUrl && Object(global_["downloadFileIf"])(fileUrl);
case 2:
case 'end':
return _context5.stop();
}
}
}, _callee5, _this8);
}))();
},
// 点击放大镜查看
review: function review(file) {
var _this9 = this;
return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
var fileUrl, id, fileType;
return regeneratorRuntime.wrap(function _callee6$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
fileUrl = file.fullUrl, id = file.uid, fileType = Object(global_["getFileType"])(fileUrl);
if (['pdf'].includes(fileType)) {
_this9.$refs.boxer.querySelector('.link-view-' + file.uid).click();
} else if (['image'].includes(fileType)) {
if (_this9.reviewImgsObj.id === id) {
_this9.imageLoad();
} else {
_this9.reviewImgsObj.url = fileUrl;
_this9.reviewImgsObj.id = id;
}
} else {
window.open('http://view.officeapps.live.com/op/view.aspx?src=' + index_["Environment"].IMAGE_DOWNLOAD + fileUrl);
}
case 2:
case 'end':
return _context6.stop();
}
}
}, _callee6, _this9);
}))();
},
handleExceed: function handleExceed(files, fileList) {
this.$message.warning('\u5F53\u524D\u9650\u5236\u9009\u62E9 ' + this.limit + '\u4E2A\u6587\u4EF6\uFF0C\u672C\u6B21\u9009\u62E9\u4E86 ' + files.length + ' \u4E2A\u6587\u4EF6\uFF0C\u5171\u9009\u62E9\u4E86 ' + (files.length + fileList.length) + ' \u4E2A\u6587\u4EF6');
},
// 进度条
parsePercentage: function parsePercentage(size) {
try {
return parseInt(size);
} catch (error) {
console.log('进度条失败: ', error);
}
},
// 是否能查看
showPreview: function showPreview(file) {
var format = ['image', 'jpg', 'jpeg', 'png', 'pic', 'bmp', 'gif', 'pdf'];
// 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'pdf'
if (file.reUrl) {
var fSuffix = file.reUrl.split('.').reverse()[0];
return format.includes(fSuffix.toLowerCase());
}
return false;
}
}
});
// CONCATENATED MODULE: ./packages/file-upload/src/main.vue?vue&type=script&lang=js&
/* harmony default export */ var src_mainvue_type_script_lang_js_ = (mainvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(0);
// CONCATENATED MODULE: ./packages/file-upload/src/main.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
src_mainvue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "packages/file-upload/src/main.vue"
/* harmony default export */ var main = __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ 39:
/***/ (function(module, exports, __webpack_require__) {
var content = __webpack_require__(40);
if(typeof content === 'string') content = [[module.i, content, '']];
var transform;
var insertInto;
var options = {"hmr":true}
options.transform = transform
options.insertInto = undefined;
var update = __webpack_require__(4)(content, options);
if(content.locals) module.exports = content.locals;
if(false) {}
/***/ }),
/***/ 40:
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(3)(false);
// Imports
var urlEscape = __webpack_require__(41);
var ___CSS_LOADER_URL___0___ = urlEscape(__webpack_require__(42));
var ___CSS_LOADER_URL___1___ = urlEscape(__webpack_require__(43));
var ___CSS_LOADER_URL___2___ = urlEscape(__webpack_require__(44));
// Module
exports.push([module.i, "/* \n * Boxer v3.0.3 - 2014-01-12 \n * A jQuery plugin for displaying images, videos or content in a modal overlay. Part of the Formstone Library. \n * http://formstone.it/boxer/ \n * \n * Copyright 2014 Ben Plum; MIT Licensed \n */\n.boxer-open{overflow:hidden!important;}\n#boxer,\n#boxer .boxer-container,\n#boxer .boxer-content,\n#boxer-overlay{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}\n#boxer-overlay{background:#000;height:100%;left:0;position:fixed;top:0;width:100%;z-index:10005 !important;}\n#boxer{background:#fff;border-radius:3px;box-shadow:0 0 25px #333;padding:10px;position:absolute;z-index:10006 !important;;}\n#boxer.inline{padding:30px;}\n#boxer .boxer-close{background:#fff url(" + ___CSS_LOADER_URL___0___ + ") no-repeat -70px 10px;border-radius:100%;cursor:pointer;display:block;height:30px;position:absolute;padding:0;right:-8px;top:-8px;width:30px;text-indent:-99999px;z-index:106;}\n#boxer .boxer-container{background:#fff;height:100%;overflow:hidden;position:relative;width:100%;z-index:105;zoom:1;}\n#boxer .boxer-content{background:#fff;overflow:hidden;padding:0;width:10000px;}\n#boxer .boxer-image{float:left;}\n#boxer .boxer-video{height:100%;width:100%;}\n#boxer .boxer-iframe{float:left;height:100%;overflow:auto;width:100%;}\n#boxer .boxer-meta{clear:both;}\n#boxer .boxer-arrow{background:#fff url(" + ___CSS_LOADER_URL___0___ + ") no-repeat 0 0;border-radius:100%;box-shadow:0 0 6px rgba(0,0,0,0.4);cursor:pointer;display:block;height:40px;margin-right:auto;margin-left:auto;position:absolute;text-indent:-99999px;top:0;width:40px;-webkit-transition:opacity 0.1s linear;-moz-transition:opacity 0.1s linear;-ms-transition:opacity 0.1s linear;-o-transition:opacity 0.1s linear;transition:opacity 0.1s linear;}\n#boxer .boxer-arrow.previous{left:20px;}\n#boxer .boxer-arrow.next{background-position:-40px 0;right:20px;}\n#boxer .boxer-position{color:#999;font-size:11px;margin:0;padding:15px 10px 5px;display:none;}\n#boxer .boxer-caption p{margin:0;padding:15px 10px 10px 10px;}\n#boxer .boxer-caption.gallery p{padding-top:0;}\n#boxer.loading .boxer-container{background:#fff url(" + ___CSS_LOADER_URL___1___ + ") no-repeat center;}\n\n/* Mobile */\n#boxer.mobile{background-color:#000;border-radius:0;height:100%;left:0;padding:30px 0 0;position:fixed;top:0;width:100%;}\n#boxer.mobile .boxer-close{background-color:#000;background-position:-70px -60px;border-radius:0;right:0;top:0;}\n#boxer.mobile .boxer-container{background:#000;position:relative;}\n#boxer.mobile .boxer-content{background-color:#000;}\n#boxer.mobile .boxer-arrow{background-color:transparent;border-radius:0;margin:-20px 0 0;top:50%;}\n#boxer.mobile .boxer-arrow.previous{background-position:0 -40px;float:left;left:0;}\n#boxer.mobile .boxer-arrow.next{background-position:-40px -40px;float:right;right:0;}\n#boxer.mobile .boxer-arrow.disabled{opacity:0.5;}\n#boxer.mobile .boxer-meta{bottom:0;background-color:rgba(0,0,0,0.75);left:0;padding:15px 50px 10px;position:absolute;width:100%;}\n#boxer.mobile .boxer-position{padding:0;}\n#boxer.mobile .boxer-caption p{color:#eee;padding:10px 0 0;}\n#boxer.mobile .boxer-image{-webkit-transition:none!important;-moz-transition:none!important;-ms-transition:none!important;-o-transition:none!important;transition:none!important;-webkit-transform:translate(0px,0px);-moz-transform:translate(0px,0px);-ms-transform:translate(0px,0px);-o-transform:translate(0px,0px);transform:translate(0px,0px);}\n#boxer.mobile.animated .boxer-image{-webkit-transition:-webkit-transform 0.25s ease-out!important;-moz-transition:-moz-transform 0.25s ease-out!important;-ms-transition:-ms-transform 0.25s ease-out!important;-o-transition:-o-transform 0.25s ease-out!important;transition:transform 0.25s ease-out!important;}\n#boxer.mobile.loading .boxer-container{background:#000 url(" + ___CSS_LOADER_URL___2___ + ") no-repeat center;}\n@media screen and (min-width:980px){\n\t#boxer .boxer-close:hover{background-position:-70px -20px;}\n\t#boxer .boxer-arrow{opacity:0;}\n\t#boxer .boxer-content:hover .boxer-arrow{opacity:0.75;}\n\t#boxer .boxer-content .boxer-arrow:hover{opacity:1;}\n\t#boxer .boxer-content:hover .boxer-arrow.disabled{opacity:0.3;cursor:default!important;}\n\t#boxer.mobile .boxer-arrow{opacity:1;}\n\t#boxer.mobile .boxer-arrow.disabled{opacity:0.5;}\n}\n@media screen and (max-width:980px){\n\t#boxer.mobile{position:fixed;}\n}", ""]);
/***/ }),
/***/ 41:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = function escape(url, needQuotes) {
if (typeof url !== 'string') {
return url;
} // If url is already wrapped in quotes, remove them
if (/^['"].*['"]$/.test(url)) {
url = url.slice(1, -1);
} // Should url be wrapped?
// See https://drafts.csswg.org/css-values-3/#urls
if (/["'() \t\n]/.test(url) || needQuotes) {
return '"' + url.replace(/"/g, '\\"').replace(/\n/g, '\\n') + '"';
}
return url;
};
/***/ }),
/***/ 42:
/***/ (function(module, exports) {
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABQCAYAAACZM2JkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK6wAACusBgosNWgAAABR0RVh0Q3JlYXRpb24gVGltZQA5LzMvMTIU8Q8YAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAA5ZJREFUeJztm81t20AQRp+C3O0SjJ1rAKkBIyzBqSA++Z4OUkKu8smuIO4gNNwABeQ6C7sDuQLmwBVAG2ZkicvRypgHEKAESpz9sJjZv2/Wti27MpvNdv7NR+bq6uoGWADV9fX1On13CtRAs1wuL2cu9DiSyN/TxxVQpfsamKf728+mUX1MFr37OfCQ7r/0n/lkF8+HpaLryRu+8FLkFVB56shAyscPvBQY4C9wvlwu196jjfAePZLe6GI+8MgKqLxHj6fmpch/07VhDtQu9Hia3v0KOE9Xv0A2njoy4BOWQmjbFk8dRkwidAjhLITQbH/ShhBCE0I4O2QM2YUOIVzQFYih4c4hmANNiu0gZBU6hPAL+A2c5PzfTJwAv1OM5mQphiGENwftMcYiqmYI4XUjV0AVY1xbvD9LMQwhVMAjZaWKbcyBxxS7CaOEDiH8BP5QZqrYxgnwJ7VhcvZKHSJyCtwBX//3XMGp4zX3wMVUqaRtW/Zd+H/kOHvxEF/p2nQ61Qv2TR0XwHPOQA7MM12bJmMvoWOMNd3OwlPOYA7EE90IpJ7yJXsXwxhjQ7eQstr2bMGsgEVqy6SMGnXEGNcxxgVwmykeS25jjAursXSWmWGM8RL4keO/jPiRYjYj2xQ8xvgL+EbZRfIZ+JZiNSXrWkeM8Y5yi+Sm6N0d4uXZV+8KLZJmRW8I32ExwHdYDPGzdxkIIdyQNmc3w8Xe0nED+ObsWJLIfprUAD9NakSFnya1IeXjwdOkquqnSa3wHj2SoY3pHn6aNBM1fprUBD9NasW2CYuq7jdhcXbHU4cRLrQRLrQRLrQRLrQRLrQRLrQRLrQRLrQRLrQRLrQVbdvufG1DVc9UtRifoao2qnp2yBiy92hVLdZnmGI7CFmFVtXifYYpRnOyrEer6pvbOSJSxMK1qr7pMxQRk7PRkKFHq2rFkfoMU+wmjBJaVX9y5D7D1IbJ2St1xBjf5TMsOHW85h64mDKVuM+ww32GRpTpMxSRmnItFLvyRDcCqad8yd7FUERKtFDsygpYpLZMyqhRh4isReRofYYisrAaS2eZGYrIJUfmM0wxm5FtCi4iR+MzTLGaknWtQ0SK9xmmGM3JvnpXaJE0K3pD+CFHI3yHxQh3ZWVAVW9Ix3Y3w8Xe0nEjIu4zHEsS2X2GBrjP0IgK9xnakPLxoM9QRNxnaIX36JEMbUz3cJ9hJmrcZ2iC+wyteM+E5R9csMW4DOpJbAAAAABJRU5ErkJggg=="
/***/ }),
/***/ 43:
/***/ (function(module, exports) {
module.exports = "data:image/gif;base64,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"
/***/ }),
/***/ 44:
/***/ (function(module, exports) {
module.exports = "data:image/gif;base64,R0lGODlhEAAQAPQAAAAAAJmZmQgICEVFRRISEm5ubk9PT5mZmWNjY4ODgzExMSYmJoyMjDs7O5aWlnh4eFpaWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAkKAAAALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQJCgAAACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQJCgAAACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkECQoAAAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkECQoAAAAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkECQoAAAAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAkKAAAALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkECQoAAAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZK