UNPKG

@mdsfe/mds-ui

Version:

A set of enterprise-class Vue UI components.

1,825 lines (1,656 loc) 54.3 kB
(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: .