UNPKG

meetin-components

Version:

会众 Vue 组件

461 lines (393 loc) 15.2 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("meetin-sass-ui/lib/theme-chalk/base.css"), require("meetin-sass-ui/lib/button"), require("meetin-sass-ui/lib/theme-chalk/button.css"), require("meetin-sass-ui/lib/theme-chalk/upload.css"), require("meetin-sass-ui/lib/upload")); else if(typeof define === 'function' && define.amd) define(["meetin-sass-ui/lib/theme-chalk/base.css", "meetin-sass-ui/lib/button", "meetin-sass-ui/lib/theme-chalk/button.css", "meetin-sass-ui/lib/theme-chalk/upload.css", "meetin-sass-ui/lib/upload"], factory); else { var a = typeof exports === 'object' ? factory(require("meetin-sass-ui/lib/theme-chalk/base.css"), require("meetin-sass-ui/lib/button"), require("meetin-sass-ui/lib/theme-chalk/button.css"), require("meetin-sass-ui/lib/theme-chalk/upload.css"), require("meetin-sass-ui/lib/upload")) : factory(root["meetin-sass-ui/lib/theme-chalk/base.css"], root["meetin-sass-ui/lib/button"], root["meetin-sass-ui/lib/theme-chalk/button.css"], root["meetin-sass-ui/lib/theme-chalk/upload.css"], root["meetin-sass-ui/lib/upload"]); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_5__) { 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; /******/ /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // 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 = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 54); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, exports) { /* globals __VUE_SSR_CONTEXT__ */ // this module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle module.exports = function normalizeComponent ( rawScriptExports, compiledTemplate, injectStyles, scopeId, moduleIdentifier /* server only */ ) { var esModule var scriptExports = rawScriptExports = rawScriptExports || {} // ES6 modules interop var type = typeof rawScriptExports.default if (type === 'object' || type === 'function') { esModule = rawScriptExports scriptExports = rawScriptExports.default } // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (compiledTemplate) { options.render = compiledTemplate.render options.staticRenderFns = compiledTemplate.staticRenderFns } // scopedId if (scopeId) { options._scopeId = scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || (this.$vnode && this.$vnode.ssrContext) // 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 = injectStyles } if (hook) { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } return { esModule: esModule, exports: scriptExports, options: options } } /***/ }), /***/ 1: /***/ (function(module, exports) { module.exports = require("meetin-sass-ui/lib/theme-chalk/base.css"); /***/ }), /***/ 2: /***/ (function(module, exports) { module.exports = require("meetin-sass-ui/lib/button"); /***/ }), /***/ 3: /***/ (function(module, exports) { module.exports = require("meetin-sass-ui/lib/theme-chalk/button.css"); /***/ }), /***/ 4: /***/ (function(module, exports) { module.exports = require("meetin-sass-ui/lib/theme-chalk/upload.css"); /***/ }), /***/ 47: /***/ (function(module, exports, __webpack_require__) { var disposed = false function injectStyle (ssrContext) { if (disposed) return __webpack_require__(77) } var Component = __webpack_require__(0)( /* script */ __webpack_require__(65), /* template */ __webpack_require__(92), /* styles */ injectStyle, /* scopeId */ null, /* moduleIdentifier (server only) */ null ) Component.options.__file = "/Users/gukong/Documents/project/meetin_proj_dev/components/components/package/upload/src/files.vue" if (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== "default" && key.substr(0, 2) !== "__"})) {console.error("named exports are not supported in *.vue files.")} if (Component.options.functional) {console.error("[vue-loader] files.vue: functional components are not supported with templates, they should use render functions.")} /* hot reload */ if (false) {(function () { var hotAPI = require("vue-hot-reload-api") hotAPI.install(require("vue"), false) if (!hotAPI.compatible) return module.hot.accept() if (!module.hot.data) { hotAPI.createRecord("data-v-e6a1dad6", Component.options) } else { hotAPI.reload("data-v-e6a1dad6", Component.options) } module.hot.dispose(function (data) { disposed = true }) })()} module.exports = Component.exports /***/ }), /***/ 5: /***/ (function(module, exports) { module.exports = require("meetin-sass-ui/lib/upload"); /***/ }), /***/ 54: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__upload_src_files_vue__ = __webpack_require__(47); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__upload_src_files_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__upload_src_files_vue__); /** * Created by gukong on 2017/6/16. */ /* harmony default export */ __webpack_exports__["default"] = (__WEBPACK_IMPORTED_MODULE_0__upload_src_files_vue___default.a); /***/ }), /***/ 65: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_meetin_sass_ui_lib_theme_chalk_button_css__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_meetin_sass_ui_lib_theme_chalk_button_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_meetin_sass_ui_lib_theme_chalk_button_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_meetin_sass_ui_lib_button__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_meetin_sass_ui_lib_button___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_meetin_sass_ui_lib_button__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_theme_chalk_upload_css__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_theme_chalk_upload_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_theme_chalk_upload_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_meetin_sass_ui_lib_theme_chalk_base_css__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_meetin_sass_ui_lib_theme_chalk_base_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_meetin_sass_ui_lib_theme_chalk_base_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_meetin_sass_ui_lib_upload__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_meetin_sass_ui_lib_upload___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_meetin_sass_ui_lib_upload__); var _components; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /* harmony default export */ __webpack_exports__["default"] = ({ name: 'MtUploadFiles', components: (_components = {}, _defineProperty(_components, __WEBPACK_IMPORTED_MODULE_4_meetin_sass_ui_lib_upload___default.a.name, __WEBPACK_IMPORTED_MODULE_4_meetin_sass_ui_lib_upload___default.a), _defineProperty(_components, __WEBPACK_IMPORTED_MODULE_1_meetin_sass_ui_lib_button___default.a.name, __WEBPACK_IMPORTED_MODULE_1_meetin_sass_ui_lib_button___default.a), _components), data: function data() { return { fileList: this.value || [], dFileList: this.value || [], uploadData: {}, domain: '' }; }, props: { // 文件列表数据,详见 example value: { type: Array, default: function _default() { return []; } }, config: { type: Object, default: function _default() { return {}; } } }, methods: { // 通过文件名判断是否重复上传文件 // 不允许上传重复的文件 beforeUploadEvent: function beforeUploadEvent(file) { var foundExist = this.fileList.find(function (item) { return item.name === file.name; }); if (foundExist) { this.$message({ message: '该资源已经存在', type: 'warning' }); } return !foundExist; }, removeEvent: function removeEvent(file) { var list = this.fileList.filter(function (item) { return item.url !== file.url; }); this.$emit('input', list); }, uploadSuccessEvent: function uploadSuccessEvent(response, file) { var list = this.fileList.concat([{ name: file.name, url: this.domain + '/' + response.key }]); this.$emit('input', list); } }, mounted: function mounted() { var _this = this; // 获取 token 和 domain var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200 && xhr.responseText !== '') { var blkRet = JSON.parse(xhr.responseText); _this.domain = blkRet.data.domain; _this.uploadData = { token: blkRet.data.uptoken }; } else if (xhr.status !== 200 && xhr.responseText) { var errMsg = JSON.parse(xhr.responseText); console.log(errMsg); } }; xhr.open('GET', this.config.tokenPath, true); xhr.send(); }, watch: { value: { deep: true, handler: function handler(val) { this.fileList = val || []; if (this.fileList.length === 0) { this.$refs.uploader.clearFiles(); } } } } }); // // // // // // // // // // // // // // // // props /** * * value ( v-model ) value = [{name: '', url: ''}] * */ /** * 上传配置 * config config = { tokenPath: '', // 请求七牛上传 token 的网址 } /** * upload-start -> void * upload-progress -> progress: float * upload-success -> url: string * upload-fail -> errStr: string */ /* global XMLHttpRequest */ /***/ }), /***/ 77: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 92: /***/ (function(module, exports, __webpack_require__) { module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; return _c('el-upload', { ref: "uploader", staticClass: "upload-root", attrs: { "action": "http://upload.qiniu.com", "before-upload": _vm.beforeUploadEvent, "on-remove": _vm.removeEvent, "on-success": _vm.uploadSuccessEvent, "data": _vm.uploadData, "file-list": _vm.fileList } }, [_c('el-button', { attrs: { "size": "small", "type": "text", "icon": "plus" } }, [_vm._v("从本地选取")])], 1) },staticRenderFns: []} module.exports.render._withStripped = true if (false) { module.hot.accept() if (module.hot.data) { require("vue-hot-reload-api").rerender("data-v-e6a1dad6", module.exports) } } /***/ }) /******/ }); });