@mdsfe/mds-ui
Version:
A set of enterprise-class Vue UI components.
1,825 lines (1,656 loc) • 54.3 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("./_mixin/locale"));
else if(typeof define === 'function' && define.amd)
define(["./_mixin/locale"], factory);
else {
var a = typeof exports === 'object' ? factory(require("./_mixin/locale")) : factory(root["./_mixin/locale"]);
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(window, function(__WEBPACK_EXTERNAL_MODULE__9__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/dist/";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 89);
/******/ })
/************************************************************************/
/******/ ({
/***/ 0:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
/* globals __VUE_SSR_CONTEXT__ */
// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.
function normalizeComponent (
scriptExports,
render,
staticRenderFns,
functionalTemplate,
injectStyles,
scopeId,
moduleIdentifier, /* server only */
shadowMode /* vue-cli only */
) {
// Vue.extend constructor export interop
var options = typeof scriptExports === 'function'
? scriptExports.options
: scriptExports
// render functions
if (render) {
options.render = render
options.staticRenderFns = staticRenderFns
options._compiled = true
}
// functional template
if (functionalTemplate) {
options.functional = true
}
// scopedId
if (scopeId) {
options._scopeId = 'data-v-' + scopeId
}
var hook
if (moduleIdentifier) { // server build
hook = function (context) {
// 2.3 injection
context =
context || // cached call
(this.$vnode && this.$vnode.ssrContext) || // stateful
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__
}
// inject component styles
if (injectStyles) {
injectStyles.call(this, context)
}
// register component module identifier for async chunk inferrence
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier)
}
}
// used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook
} else if (injectStyles) {
hook = shadowMode
? function () {
injectStyles.call(
this,
(options.functional ? this.parent : this).$root.$options.shadowRoot
)
}
: injectStyles
}
if (hook) {
if (options.functional) {
// for template-only hot-reload because in that case the render fn doesn't
// go through the normalizer
options._injectStyles = hook
// register for functional component in vue file
var originalRender = options.render
options.render = function renderWithStyleInjection (h, context) {
hook.call(context)
return originalRender(h, context)
}
} else {
// inject component registration as beforeCreate hook
var existing = options.beforeCreate
options.beforeCreate = existing
? [].concat(existing, hook)
: [hook]
}
}
return {
exports: scriptExports,
options: options
}
}
/***/ }),
/***/ 11:
/***/ (function(module, exports) {
module.exports = require("babel-runtime/core-js/object/keys");
/***/ }),
/***/ 142:
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/***/ 164:
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/***/ 25:
/***/ (function(module, exports) {
module.exports = require("babel-runtime/core-js/get-iterator");
/***/ }),
/***/ 26:
/***/ (function(module, exports) {
module.exports = require("babel-runtime/helpers/extends");
/***/ }),
/***/ 58:
/***/ (function(module, exports) {
module.exports = require("axios");
/***/ }),
/***/ 6:
/***/ (function(module, exports) {
module.exports = require("babel-runtime/core-js/object/assign");
/***/ }),
/***/ 66:
/***/ (function(module, exports) {
module.exports = require("babel-runtime/core-js/object/values");
/***/ }),
/***/ 89:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXTERNAL MODULE: ./components/style/index.less
var style = __webpack_require__(142);
// EXTERNAL MODULE: ./components/upload/style/index.less
var upload_style = __webpack_require__(164);
// CONCATENATED MODULE: ./components/upload/style/index.js
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/upload/entry.vue?vue&type=template&id=4899ef9f&
var render = function () {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
[
_c("Upload", {
ref: "uploader",
attrs: {
path: _vm.path,
name: _vm.name,
beforeUpload: _vm.onBeforeUpload,
getUploadParams: _vm.getUploadParams,
disabled: _vm.disabled,
multiple: _vm.multiple,
accept: _vm.accept,
limit: _vm.limit,
onExceed: _vm.onExceed,
onComplete: _vm.onComplete,
onError: _vm.onError,
onListChange: _vm.onListChange,
fileList: _vm.fileList,
},
}),
_c(
"UploadList",
{
attrs: {
onFile: _vm.onUploadClick,
uploadList: _vm.uploadList,
listType: _vm.listType,
onListChange: _vm.onListChange,
onCancelList: _vm.onCancelList,
onReUploadList: _vm.onReUploadList,
dragable: _vm.dragable,
handleDropFile: _vm.handleDropFile,
preview: _vm.preview,
},
},
[
_vm.$slots.dragStyle
? _c("template", { slot: "dragStyle" }, [_vm._t("dragStyle")], 2)
: _vm._e(),
_vm._t("default"),
],
2
),
],
1
)
}
var staticRenderFns = []
render._withStripped = true
// CONCATENATED MODULE: ./components/upload/entry.vue?vue&type=template&id=4899ef9f&
// EXTERNAL MODULE: external "babel-runtime/core-js/object/keys"
var keys_ = __webpack_require__(11);
var keys_default = /*#__PURE__*/__webpack_require__.n(keys_);
// EXTERNAL MODULE: external "babel-runtime/core-js/object/assign"
var assign_ = __webpack_require__(6);
var assign_default = /*#__PURE__*/__webpack_require__.n(assign_);
// EXTERNAL MODULE: external "babel-runtime/core-js/get-iterator"
var get_iterator_ = __webpack_require__(25);
var get_iterator_default = /*#__PURE__*/__webpack_require__.n(get_iterator_);
// EXTERNAL MODULE: external "babel-runtime/core-js/object/values"
var values_ = __webpack_require__(66);
var values_default = /*#__PURE__*/__webpack_require__.n(values_);
// EXTERNAL MODULE: external "babel-runtime/helpers/extends"
var extends_ = __webpack_require__(26);
var extends_default = /*#__PURE__*/__webpack_require__.n(extends_);
// EXTERNAL MODULE: external "axios"
var external_axios_ = __webpack_require__(58);
var external_axios_default = /*#__PURE__*/__webpack_require__.n(external_axios_);
// CONCATENATED MODULE: ./components/upload/attr-accept.js
function endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
/* harmony default export */ var attr_accept = (function (file, acceptedFiles) {
if (file && acceptedFiles) {
var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');
var fileName = file.name || '';
var mimeType = file.type || '';
var baseMimeType = mimeType.replace(/\/.*$/, '');
return acceptedFilesArray.some(function (type) {
var validType = type.trim();
if (validType.charAt(0) === '.') {
return endsWith(fileName.toLowerCase(), validType.toLowerCase());
} else if (/\/\*$/.test(validType)) {
// This is something like a image/* mime type
return baseMimeType === validType.replace(/\/.*$/, '');
}
return mimeType === validType;
});
}
return true;
});
// CONCATENATED MODULE: ./components/upload/traverseFileTree.js
var traverseFileTree_traverseFileTree = function traverseFileTree(files, callback, isAccepted) {
var _traverseFileTree = function _traverseFileTree(item, path) {
path = path || '';
if (item.isFile) {
item.file(function (file) {
if (isAccepted(file)) {
var cbData = [file];
callback(cbData);
}
});
} else if (item.isDirectory) {
var dirReader = item.createReader();
dirReader.readEntries(function (entries) {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = get_iterator_default()(entries), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var entrieItem = _step.value;
_traverseFileTree(entrieItem, '' + path + item.name + '/');
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
});
}
};
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = get_iterator_default()(files), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var file = _step2.value;
_traverseFileTree(file);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
};
/* harmony default export */ var upload_traverseFileTree = (traverseFileTree_traverseFileTree);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/upload/upload.vue?vue&type=script&lang=js&
/* harmony default export */ var uploadvue_type_script_lang_js_ = ({
name: 'MdsUpload',
props: {
path: String,
name: String,
getUploadParams: Function,
accept: String,
multiple: Boolean,
limit: Number | String, // 允许上传的最大文件数
onExceed: Function, // 超出数量限制回调函数
disabled: Boolean,
beforeUpload: Function,
onComplete: Function,
onError: Function,
onListChange: Function
},
data: function data() {
return {
prefixCls: 'mds-upload',
uploadList: []
};
},
methods: {
updateUploadList: function updateUploadList(list) {
this.uploadList = list;
},
/**
* network
*/
uploadFile: function uploadFile(file, params) {
var _this = this;
var path = this.path,
name = this.name,
getUploadParams = this.getUploadParams,
onComplete = this.onComplete,
onError = this.onError,
onListChange = this.onListChange;
var uploadList = this.uploadList;
if (!path) {
return;
}
// assemble
var formData = new FormData();
var parameter = params || {};
if (!params) {
if (getUploadParams) {
parameter = getUploadParams(file, function (params) {
_this.uploadFile(file, params);
});
return;
} else {
formData.append(name, file);
}
}
var cancelToken = external_axios_default.a.CancelToken.source();
var url = URL.createObjectURL(file);
var curUpload = {
file: file,
percent: 0,
status: 'ready',
cancelToken: cancelToken,
url: url
// update && reset
};var isExist = false;
uploadList.forEach(function (item) {
if (item.file === file) {
isExist = true;
item.status = 0;
item.cancelToken = cancelToken;
}
});
// add to
!isExist && uploadList.unshift(curUpload);
onListChange && onListChange(uploadList);
// to Upload
external_axios_default()(extends_default()({
url: path,
headers: {
'Content-Type': 'multipart/form-data'
},
withCredentials: true,
method: 'post',
data: formData
}, parameter, {
timeout: 0,
cancelToken: cancelToken.token,
onUploadProgress: function onUploadProgress(e) {
_this.updateProgress(e, file, 'uploading');
}
})).then(function (res) {
_this.updateProgress(null, file, 'done');
onComplete && onComplete(res, file);
}).catch(function (err) {
if (external_axios_default.a.isCancel(err)) {
// console.log('user cancel')
_this.updateProgress(null, file, 'cancel');
} else {
_this.updateProgress(null, file, 'error');
onError && onError(err, file);
}
});
},
/**
* helper method
*/
updateProgress: function updateProgress(progressEvent, file, status, percent, wpFile) {
var uploadList = this.uploadList,
onListChange = this.onListChange;
// console.log(progressEvent, file, status, percent, uploadList)
uploadList.forEach(function (item) {
if (item.file === file) {
if (percent) {
item.percent = percent * 100;
item.wpFile = wpFile;
} else {
item.percent = progressEvent ? progressEvent.loaded / progressEvent.total * 100 : 0;
}
item.status = status;
}
});
onListChange && onListChange(uploadList);
},
/**
* public method
*/
cancelUploadByList: function cancelUploadByList(list) {
var _this2 = this;
if (!list) {
return;
}
var uploadList = this.uploadList,
onListChange = this.onListChange;
var cancelList = list.filter(function (item) {
return item.status === 'ready' || item.status === 'uploading';
});
var removeList = list.filter(function (item) {
return item.status === 'done' || item.status === 'cancel' || item.status === 'error';
});
var newList = uploadList.filter(function (item) {
var bool = removeList.find(function (removeItem) {
return removeItem.file === item.file;
});
return !bool;
});
// console.log(newList)
if (cancelList) {
cancelList.forEach(function (item) {
if (item.cancelToken) {
item.cancelToken.cancel('User terminated the request');
} else {
_this2.uploaderCancelFile(item.wpFile);
}
});
}
if (removeList.length > 0) {
this.uploadList = newList;
onListChange && onListChange(this.uploadList);
}
},
reUploadByList: function reUploadByList(list) {
var _this3 = this;
if (!list) {
return;
}
list.forEach(function (item) {
_this3.uploadFile(item.file);
});
},
onFileDrop: function onFileDrop(e) {
var _this4 = this;
var accept = this.accept,
beforeUpload = this.beforeUpload;
var _e$dataTransfer = e.dataTransfer,
files = _e$dataTransfer.files,
items = _e$dataTransfer.items;
var filesLength = files.length;
if (this.limit && filesLength + this.uploadList.length > +this.limit) {
this.onExceed && this.onExceed(e.target.files, this.uploadList);
return;
}
var newItems = [];
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = get_iterator_default()(items), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var item = _step.value;
newItems.push(item.webkitGetAsEntry());
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
if (beforeUpload) {
beforeUpload(files, function (res) {
upload_traverseFileTree(newItems, function (filelist) {
var file = filelist[0];
var eligibleFile = values_default()(res).find(function (item) {
return item.name === file.name;
});
eligibleFile && _this4.uploadFile(eligibleFile);
}, function (file) {
return attr_accept(file, accept.split(','));
});
});
} else {
upload_traverseFileTree(newItems, function (filelist) {
var file = filelist[0];
_this4.uploadFile(file);
}, function (file) {
return attr_accept(file, accept.split(','));
});
}
},
/**
* handle event
*/
onUploadClick: function onUploadClick(e) {
this.$refs.input.click();
},
onChooseFile: function onChooseFile(e) {
var _this5 = this;
// console.log('on choose file')
// console.log(e.target.files)
var filesLength = e.target.files.length;
if (this.limit && filesLength + this.uploadList.length > +this.limit) {
this.onExceed && this.onExceed(e.target.files, this.uploadList);
e.target.value = '';
return;
}
var beforeUpload = this.beforeUpload;
var files = assign_default()({}, e.target.files);
if (beforeUpload) {
beforeUpload(files, function (res) {
keys_default()(res).forEach(function (key) {
var file = files[key];
_this5.uploadFile(file);
});
});
} else {
keys_default()(files).forEach(function (key) {
var file = files[key];
_this5.uploadFile(file);
});
}
e.target.value = '';
}
},
computed: {
classes: function classes() {
var prefixCls = this.prefixCls;
return [prefixCls];
}
},
render: function render() {
var h = arguments[0];
var classes = this.classes,
name = this.name,
onChooseFile = this.onChooseFile,
multiple = this.multiple,
limit = this.limit,
accept = this.accept,
disabled = this.disabled;
return h(
'div',
{ 'class': classes },
[h('input', {
'class': 'mds-upload__input',
attrs: { type: 'file',
name: name,
limit: limit,
multiple: multiple,
accept: accept,
disabled: disabled
},
ref: 'input', on: {
'change': onChooseFile
}
})]
);
}
});
// CONCATENATED MODULE: ./components/upload/upload.vue?vue&type=script&lang=js&
/* harmony default export */ var upload_uploadvue_type_script_lang_js_ = (uploadvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(0);
// CONCATENATED MODULE: ./components/upload/upload.vue
var upload_render, upload_staticRenderFns
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
upload_uploadvue_type_script_lang_js_,
upload_render,
upload_staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "components/upload/upload.vue"
/* harmony default export */ var upload = (component.exports);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/upload/upload-list.vue?vue&type=template&id=d345f752&
var upload_listvue_type_template_id_d345f752_render = function () {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{ class: "" + _vm.prefixCls },
[
_vm.dragable
? _c(
"div",
{ staticClass: "files-info files-upload-dragger" },
[
_c(
"upload-dragger",
{
attrs: {
onUpload: _vm.onUploadClick,
handleDropFile: _vm.handleDropFile,
},
},
[
_vm.$slots.dragStyle
? _c(
"template",
{ slot: "dragStyle" },
[_vm._t("dragStyle")],
2
)
: _vm._e(),
],
2
),
],
1
)
: _vm._e(),
_vm.isTextCard
? _c("span", { class: _vm.prefixCls + "-upload-text" }, [
_c(
"div",
{ on: { click: _vm.onUploadClick } },
[_vm._t("default")],
2
),
_c(
"div",
{ class: _vm.prefixCls + "-files-info" },
_vm._l(_vm.uploadList, function (item, index) {
return _c(
"upload-card",
{
key: index,
attrs: {
handleDelete: _vm.handleDelete,
item: item,
index: index,
changeModal: _vm.changeModal,
},
},
[
_c("mds-icon", {
attrs: { slot: "item-info", type: "line-paperclip" },
slot: "item-info",
}),
_c(
"span",
{
class: _vm.prefixCls + "-card-name",
attrs: { slot: "item-info" },
slot: "item-info",
},
[_vm._v(_vm._s(item.name || item.file.name))]
),
],
1
)
}),
1
),
])
: _vm._e(),
_vm.isImgCard
? _c("span", { class: _vm.prefixCls + "-imgs" }, [
_c(
"div",
{ on: { click: _vm.onUploadClick } },
[_vm._t("default")],
2
),
_c(
"div",
{ class: _vm.prefixCls + "-files-info" },
_vm._l(_vm.uploadList, function (item, index) {
return _c(
"upload-card",
{
key: index,
attrs: {
handleDelete: _vm.handleDelete,
item: item,
index: index,
changeModal: _vm.changeModal,
preview: _vm.preview,
},
},
[
_c("img", {
class: _vm.prefixCls + "-card-icon",
attrs: { slot: "item-info", src: item.url },
slot: "item-info",
}),
_c(
"div",
{
class: _vm.prefixCls + "-card-data",
attrs: { slot: "item-info" },
slot: "item-info",
},
[
_c(
"div",
{ class: _vm.prefixCls + "-card-data-name" },
[_vm._v(_vm._s(item.name || item.file.name))]
),
item.status == "error"
? _c(
"div",
{ class: _vm.prefixCls + "-card-data-size" },
[_vm._v(" 上传失败,请关闭后再试 ")]
)
: item.file && item.file.size
? _c(
"div",
{ class: _vm.prefixCls + "-card-data-error" },
[_vm._v(_vm._s(_vm.getFileSize(item.file.size)))]
)
: _vm._e(),
]
),
]
)
}),
1
),
])
: _vm._e(),
_vm.isPhotoWall
? _c(
"div",
{ staticClass: "files-info files-upload-photo-wall" },
[
_c("PhotoWall", {
attrs: {
uploadList: _vm.uploadList,
onDelete: _vm.handleDelete,
onRetry: _vm.handleRetry,
onUpload: _vm.onUploadClick,
},
}),
],
1
)
: _vm._e(),
_c(
"mds-modal",
{
attrs: {
visibility: _vm.modalVisibility,
modelType: "success",
mask: true,
showClose: true,
modelIconColor: "#0364ff",
modelIcon: "base",
width: "70%",
title: "预览",
},
on: { ok: _vm.changeModal, close: _vm.changeModal },
},
[
_vm.imgCardModalUrl
? _c("img", {
staticStyle: { "max-width": "100%" },
attrs: { src: _vm.imgCardModalUrl },
})
: _vm._e(),
]
),
],
1
)
}
var upload_listvue_type_template_id_d345f752_staticRenderFns = []
upload_listvue_type_template_id_d345f752_render._withStripped = true
// CONCATENATED MODULE: ./components/upload/upload-list.vue?vue&type=template&id=d345f752&
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/upload/upload-card.vue?vue&type=template&id=45aa45c9&
var upload_cardvue_type_template_id_45aa45c9_render = function () {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{
class: [
_vm.prefixCls + "-card",
_vm.item.status == "error" || _vm.item.status == "cancel"
? _vm.prefixCls + "-error"
: _vm.prefixCls + "-succeed",
],
},
[
_vm._t("item-info"),
_c(
"span",
{
class: _vm.prefixCls + "-card-status",
on: {
click: function (e) {
_vm.judgeClick(e, _vm.item)
},
},
},
[
_vm.item.status == "done" && _vm.preview
? _c("mds-icon", {
class: _vm.prefixCls + "-card-eyes",
attrs: { type: "line-eye", "data-id": "view" },
})
: _vm._e(),
_c("mds-icon", {
class: _vm.prefixCls + "-card-success",
style:
"display:" +
(_vm.item.status == "done" ? "inline-block" : "none"),
attrs: { type: "line-finished" },
}),
_c("mds-icon", {
class: _vm.prefixCls + "-card-error",
style:
"display:" +
(_vm.item.status == "error" || _vm.item.status == "cancel"
? "inline-block"
: "none"),
attrs: { type: "line-close-circle" },
}),
_c("mds-icon", {
class: _vm.prefixCls + "-card-delete",
attrs: {
title: "删除",
type: "line-close-circle",
"data-id": "delete",
},
}),
],
1
),
_c("div", {
class: _vm.prefixCls + "-card-process-bar",
style: "width:" + (_vm.item.percent / 100) * 354 + "px",
}),
],
2
)
}
var upload_cardvue_type_template_id_45aa45c9_staticRenderFns = []
upload_cardvue_type_template_id_45aa45c9_render._withStripped = true
// CONCATENATED MODULE: ./components/upload/upload-card.vue?vue&type=template&id=45aa45c9&
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/upload/upload-card.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var upload_cardvue_type_script_lang_js_ = ({
props: {
handleDelete: Function,
item: Object,
changeModal: Function,
preview: Boolean
},
data: function data() {
return {
prefixCls: 'mds-upload'
};
},
methods: {
judgeClick: function judgeClick(e, item) {
if (e.target.dataset.id === 'delete') {
this.handleDelete(e, item);
}
if (e.target.dataset.id === 'view') {
this.changeModal(item.url);
}
// debugger
}
}
});
// CONCATENATED MODULE: ./components/upload/upload-card.vue?vue&type=script&lang=js&
/* harmony default export */ var upload_upload_cardvue_type_script_lang_js_ = (upload_cardvue_type_script_lang_js_);
// CONCATENATED MODULE: ./components/upload/upload-card.vue
/* normalize component */
var upload_card_component = Object(componentNormalizer["a" /* default */])(
upload_upload_cardvue_type_script_lang_js_,
upload_cardvue_type_template_id_45aa45c9_render,
upload_cardvue_type_template_id_45aa45c9_staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var upload_card_api; }
upload_card_component.options.__file = "components/upload/upload-card.vue"
/* harmony default export */ var upload_card = (upload_card_component.exports);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/upload/upload-photowall.vue?vue&type=template&id=c0bbefda&
var upload_photowallvue_type_template_id_c0bbefda_render = function () {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
[
_c(
"ul",
{ staticClass: "upload-list-photo-wall" },
[
_vm._l(_vm.uploadList, function (item, index) {
return _c("li", { key: index, class: ["upload-list-photo_item"] }, [
item.status === "done"
? _c("div", { staticClass: "upload-list-photo_item-done" }, [
_c("img", {
staticClass: "upload-list-photo_item-thumbnail",
attrs: { src: item.url, alt: "" },
}),
_c("ul", { staticClass: "upload-list-photo_item-tool" }, [
_c(
"li",
{
on: {
click: function (e) {
return _vm.onLook(item)
},
},
},
[_c("mds-icon", { attrs: { type: "line-eye" } })],
1
),
_c(
"li",
{
on: {
click: function (e) {
return _vm.onDownload(item)
},
},
},
[_c("mds-icon", { attrs: { type: "line-download" } })],
1
),
_c(
"li",
{
on: {
click: function (e) {
return _vm.onDrop(e, item)
},
},
},
[
_c("mds-icon", {
attrs: { type: "line-close-circle" },
}),
],
1
),
]),
])
: _vm._e(),
item.status === "uploading"
? _c(
"div",
{ staticClass: "upload-list-photo_item-uploading" },
[
_c("mds-icon", {
staticClass: "fileType",
attrs: { slot: "item-info", type: "line-file" },
slot: "item-info",
}),
_c("span", [_vm._v("上传中")]),
_c("mds-progress", {
staticClass: "uploadProgress",
attrs: {
percentColor: "#00BA00",
strokeWidth: "2",
percentage: item.percent,
},
}),
],
1
)
: _vm._e(),
item.status === "error"
? _c(
"div",
{
staticClass: "upload-list-photo_item-fail",
on: {
click: function (e) {
return _vm.onRetryUpload(e, item)
},
},
},
[
_c("mds-icon", {
staticClass: "errorType",
attrs: { type: "line-exclamation-circle" },
}),
_c("mds-button", { attrs: { type: "normal" } }, [
_vm._v("点击重试"),
]),
],
1
)
: _vm._e(),
])
}),
_c(
"li",
{ class: ["upload-list-photo_item upload-list-photo_add"] },
[
_c(
"div",
{
staticClass: "upload-list-photo_item-add",
on: { click: _vm.onUploadFile },
},
[
_c("mds-icon", {
staticClass: "plusType",
attrs: { type: "line-plus" },
}),
_c("span", [_vm._v(_vm._s(_vm.dispatchUploadPicText))]),
],
1
),
]
),
],
2
),
_c(
"mds-modal",
{
attrs: {
visibility: _vm.visible,
mask: true,
showClose: false,
top: "45vh",
},
on: { close: _vm.onModalClose },
},
[
_c("div", { attrs: { slot: "header" }, slot: "header" }, [
_vm._v("\n header\n "),
]),
_c("div", { staticClass: "block" }),
_c("div", { attrs: { slot: "footer" }, slot: "footer" }),
]
),
],
1
)
}
var upload_photowallvue_type_template_id_c0bbefda_staticRenderFns = []
upload_photowallvue_type_template_id_c0bbefda_render._withStripped = true
// CONCATENATED MODULE: ./components/upload/upload-photowall.vue?vue&type=template&id=c0bbefda&
// EXTERNAL MODULE: external "./_mixin/locale"
var locale_ = __webpack_require__(9);
var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/upload/upload-photowall.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var upload_photowallvue_type_script_lang_js_ = ({
mixins: [locale_default.a],
props: {
uploadList: Array,
onDelete: Function,
onRetry: Function,
onUpload: Function,
uploadPicText: String
},
data: function data() {
return {
visible: false
};
},
methods: {
/**
* handle event
*/
onLook: function onLook(file) {
// this.visible = true
// MK-TODO: PREVIEW PHOTO
window.open(file.url);
},
onDownload: function onDownload(file) {
window.open(file.url);
},
onDrop: function onDrop(e, file) {
this.onDelete && this.onDelete(e, file);
},
onRetryUpload: function onRetryUpload(e, file) {
this.onRetry && this.onRetry(e, file);
},
onUploadFile: function onUploadFile() {
this.onUpload && this.onUpload();
},
onModalClose: function onModalClose() {
this.visible = false;
}
},
computed: {
dispatchUploadPicText: function dispatchUploadPicText() {
return this.uploadPicText || this.t('mds.upload.uploadPicText');
}
}
});
// CONCATENATED MODULE: ./components/upload/upload-photowall.vue?vue&type=script&lang=js&
/* harmony default export */ var upload_upload_photowallvue_type_script_lang_js_ = (upload_photowallvue_type_script_lang_js_);
// CONCATENATED MODULE: ./components/upload/upload-photowall.vue
/* normalize component */
var upload_photowall_component = Object(componentNormalizer["a" /* default */])(
upload_upload_photowallvue_type_script_lang_js_,
upload_photowallvue_type_template_id_c0bbefda_render,
upload_photowallvue_type_template_id_c0bbefda_staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var upload_photowall_api; }
upload_photowall_component.options.__file = "components/upload/upload-photowall.vue"
/* harmony default export */ var upload_photowall = (upload_photowall_component.exports);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/upload/upload-dragger.vue?vue&type=template&id=4ea8af12&
var upload_draggervue_type_template_id_4ea8af12_render = function () {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{
staticClass: "upload-list-dragger",
attrs: { id: "upload-list-dragger" },
on: {
drop: _vm.onFileDrop,
dragover: _vm.onDragOver,
dragleave: _vm.onDragLeave,
},
},
[
_c(
"div",
{
staticClass: "upload-list-dragger_content",
on: { click: _vm.onUploadFile },
},
[
!_vm.$slots.dragStyle
? _c(
"div",
{ staticClass: "defaultUploadIcon" },
[
_c("mds-icon", {
staticClass: "uploadIcon",
attrs: { type: "line-cloud-upload" },
}),
_c("div", [
_vm._v(" " + _vm._s(_vm.dispatchUploadDescText) + " "),
_c("a", [
_vm._v(" " + _vm._s(_vm.dispatchUploadClickText)),
]),
]),
],
1
)
: _vm._e(),
_vm._t("dragStyle"),
],
2
),
]
)
}
var upload_draggervue_type_template_id_4ea8af12_staticRenderFns = []
upload_draggervue_type_template_id_4ea8af12_render._withStripped = true
// CONCATENATED MODULE: ./components/upload/upload-dragger.vue?vue&type=template&id=4ea8af12&
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/upload/upload-dragger.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var upload_draggervue_type_script_lang_js_ = ({
mixins: [locale_default.a],
props: {
onUpload: Function,
handleDropFile: Function,
uploadDescText: String,
uploadClickText: String
},
data: function data() {
return {
canDrop: false
};
},
methods: {
/**
* handle event
*/
onUploadFile: function onUploadFile() {
this.onUpload && this.onUpload();
},
onFileDrop: function onFileDrop(e) {
e.preventDefault();
if (!this.canDrop) {
return;
}
var types = e.dataTransfer.types;
var isExistFile = this.isExistFile(types);
if (!isExistFile) {
return;
}
this.canDrop = false;
this.handleDropFile && this.handleDropFile(e);
},
onDragOver: function onDragOver(e) {
e.preventDefault();
var types = e.dataTransfer.types;
var isExistFile = this.isExistFile(types);
if (isExistFile && !this.canDrop) {
this.canDrop = true;
}
},
onDragLeave: function onDragLeave(e) {
e.preventDefault();
this.canDrop = false;
},
/**
* helper method
*/
isExistFile: function isExistFile(types) {
var isExistFile = types && types.find(function (item) {
return item === 'Files';
});
return isExistFile;
}
},
computed: {
dispatchUploadClickText: function dispatchUploadClickText() {
return this.uploadClickText || this.t('mds.upload.uploadClickText');
},
dispatchUploadDescText: function dispatchUploadDescText() {
return this.uploadDescText || this.t('mds.upload.uploadDescText');
}
}
});
// CONCATENATED MODULE: ./components/upload/upload-dragger.vue?vue&type=script&lang=js&
/* harmony default export */ var upload_upload_draggervue_type_script_lang_js_ = (upload_draggervue_type_script_lang_js_);
// CONCATENATED MODULE: ./components/upload/upload-dragger.vue
/* normalize component */
var upload_dragger_component = Object(componentNormalizer["a" /* default */])(
upload_upload_draggervue_type_script_lang_js_,
upload_draggervue_type_template_id_4ea8af12_render,
upload_draggervue_type_template_id_4ea8af12_staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var upload_dragger_api; }
upload_dragger_component.options.__file = "components/upload/upload-dragger.vue"
/* harmony default export */ var upload_dragger = (upload_dragger_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/upload/upload-list.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var upload_listvue_type_script_lang_js_ = ({
props: {
onFile: Function,
uploadList: Array,
listType: {
type: String,
default: 'text'
},
onListChange: Function,
onCancelList: Function,
onReUploadList: Function,
dragable: Boolean,
handleDropFile: Function,
fileList: Array, // 上传的文件列表
preview: Boolean
},
data: function data() {
return {
prefixCls: 'mds-upload',
imgCardModalUrl: '',
modalVisibility: false
};
},
components: {
UploadCard: upload_card,
PhotoWall: upload_photowall,
UploadDragger: upload_dragger
},
computed: {
isTextCard: function isTextCard() {
return this.listType === 'textCard';
},
isImgCard: function isImgCard() {
return this.listType === 'imgCard';
},
isPhotoWall: function isPhotoWall() {
return this.listType === 'photoWall';
},
showUploadBtn: function showUploadBtn() {
return !this.dragable && this.listType !== 'photoWall';
}
},
methods: {
changeModal: function changeModal(url) {
if (this.modalVisibility) {
this.modalVisibility = false;
this.imgCardModalUrl = '';
} else {
this.modalVisibility = true;
this.imgCardModalUrl = url;
}
},
onUploadClick: function onUploadClick() {
console.log('xxxxxxxx', this);
this.onFile && this.onFile();
},
handleDelete: function handleDelete(e, file) {
this.onCancelList && this.onCancelList([file]);
},
handleRetry: function handleRetry(e, file) {
this.onReUploadList && this.onReUploadList([file]);
},
getFileSize: function getFileSize(fileByte) {
var fileSizeByte = fileByte;
var fileSizeMsg = '';
if (fileSizeByte < 1048576) {
fileSizeMsg = (fileSizeByte / 1024).toFixed(1) + 'K';
} else if (+fileSizeByte === 1048576) {
fileSizeMsg = '1M';
} else if (fileSizeByte > 1048576 && fileSizeByte < 1073741824) {
fileSizeMsg = (fileSizeByte / (1024 * 1024)).toFixed(1) + 'M';
} else if (fileSizeByte > 1048576 && +fileSizeByte === 1073741824) {
fileSizeMsg = '1G';
} else if (fileSizeByte > 1073741824 && fileSizeByte < 1099511627776) {
fileSizeMsg = (fileSizeByte / (1024 * 1024 * 1024)).toFixed(1) + 'G';
} else {
fileSizeMsg = '文件超过1T';
}
return fileSizeMsg;
}
}
});
// CONCATENATED MODULE: ./components/upload/upload-list.vue?vue&type=script&lang=js&
/* harmony default export */ var upload_upload_listvue_type_script_lang_js_ = (upload_listvue_type_script_lang_js_);
// CONCATENATED MODULE: .