UNPKG

meetin-components

Version:

会众 Vue 组件

781 lines (692 loc) 20.6 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else { var a = factory(); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(this, function() { 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 = 51); /******/ }) /************************************************************************/ /******/ ({ /***/ 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 } } /***/ }), /***/ 44: /***/ (function(module, exports, __webpack_require__) { var disposed = false function injectStyle (ssrContext) { if (disposed) return __webpack_require__(70) } var Component = __webpack_require__(0)( /* script */ __webpack_require__(62), /* template */ __webpack_require__(85), /* styles */ injectStyle, /* scopeId */ null, /* moduleIdentifier (server only) */ null ) Component.options.__file = "/Users/gukong/Documents/project/meetin_proj_dev/components/components/package/side_bar/src/main.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] main.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-42040a3e", Component.options) } else { hotAPI.reload("data-v-42040a3e", Component.options) } module.hot.dispose(function (data) { disposed = true }) })()} module.exports = Component.exports /***/ }), /***/ 51: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_main_vue__ = __webpack_require__(44); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__src_main_vue__); /** * Created by gukong on 2017/5/1. */ /* harmony default export */ __webpack_exports__["default"] = (__WEBPACK_IMPORTED_MODULE_0__src_main_vue___default.a); /***/ }), /***/ 60: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cell_subitem_vue__ = __webpack_require__(81); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cell_subitem_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__cell_subitem_vue__); // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /** * 传递出去的事件 * item_click * @param {required} subItem */ /* harmony default export */ __webpack_exports__["default"] = ({ data: function data() { return { showSubItem: false }; }, props: { sideBarItem: { type: Object, // url default: '' }, selectedItem: { type: Object, default: function _default() { return {}; } } }, computed: { shouldHighlight: function shouldHighlight() { var _this = this; var highlight = false; var routeName = this.sideBarItem.routeName; if (routeName === this.selectedItem.routeName) { highlight = true; } else if (this.subItems) { highlight = this.subItems.some(function (item) { return item.routeName === _this.selectedItem.routeName; }); } return highlight; }, iconName: function iconName() { return this.sideBarItem.iconName; }, title: function title() { return this.sideBarItem.title; }, subItems: function subItems() { return this.sideBarItem.subItems; } }, methods: { actionOnItem: function actionOnItem() { if (this.subItems && this.subItems.length > 0) { this.showSubItem = !this.showSubItem; } else { this.$emit('item-click', this.sideBarItem); } }, actionOnSubItem: function actionOnSubItem(subItem) { console.log('subItem', subItem); this.$emit('item-click', subItem); }, // 与 CSS 结合时使用 subitemHeightEnter: function subitemHeightEnter(el, done) { el.style.height = '0'; setTimeout(function () { done(); }, 1); }, subitemHeightAfterEnter: function subitemHeightAfterEnter(el) { el.style.height = this.subItems.length * 40 + 'px'; }, // 与 CSS 结合时使用 subitemHeightLeave: function subitemHeightLeave(el, done) { el.style.height = '0'; setTimeout(function () { done(); }, 300); }, subitemHeightAfterLeave: function subitemHeightAfterLeave(el) { el.style.height = '0'; } }, components: { cellSubitem: __WEBPACK_IMPORTED_MODULE_0__cell_subitem_vue___default.a } }); /***/ }), /***/ 61: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); // // // // // // // // // // /** * change-unread */ /* harmony default export */ __webpack_exports__["default"] = ({ data: function data() { return { msg: 'hello webpack' }; }, props: { item: { type: Object, default: function _default() {} }, selectedItem: { type: Object, default: function _default() { return {}; } } } }); /***/ }), /***/ 62: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cell_vue__ = __webpack_require__(80); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cell_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__cell_vue__); // // // // // // // // // // // // // // /** * 侧边栏 * flex 布局 * 通过 flex 布局使之固定固定在左边 */ // 传递参数 /** * * menuItems 侧边栏数据配置 menuItems = [{ title: '列表', routeName: 'table', // router name iconName: 'icon' // iconfont class name }, { title: '导航控制器', iconName: 'icon', subItems: [{ title: '弹出页面', routeName: 'popNavigation' }] }, { title: '订阅', routeName: 'action:subscribe', // 自定义行为,格式为 'action:' + 'cmd',cmd 通过事件 sidebar-action 传递出去 iconName: 'icon' // iconfont class name }] * */ // 传递事件 /** * sidebar-action 触发自定义行为 params: cmd // 自定义的命令 * */ /* harmony default export */ __webpack_exports__["default"] = ({ name: 'MtSidebar', data: function data() { return { selectedItem: {} }; }, props: { menuItems: { type: Array, default: function _default() { return []; } }, selectedRouteName: { type: String, default: '' } }, computed: {}, components: { cell: __WEBPACK_IMPORTED_MODULE_0__cell_vue___default.a }, methods: { clickOnSubItem: function clickOnSubItem(item) { var routeName = item.routeName; if (routeName.startsWith('action')) { var action = routeName.match(/action:(.*)/)[1]; this.$emit('sidebar-action', action); } else { this.selectedItem = item; this.$router.push({ name: routeName }); } }, selectItemByRouteName: function selectItemByRouteName(routeName) { // eslint-disable-next-line var mFoundItem = null; findItemContainsRouteName(this.menuItems, routeName); if (mFoundItem) { this.clickOnSubItem(mFoundItem); } function findItemContainsRouteName(list, name) { return list.find(function (item) { if (item.subItems) { return findItemContainsRouteName(item.subItems, name); } else if (item.routeName === name) { mFoundItem = item; return true; } else { return false; } }); } } }, watch: { selectedRouteName: function selectedRouteName(val) { this.selectItemByRouteName(val); } }, mounted: function mounted() { if (this.selectedRouteName) { this.selectItemByRouteName(this.selectedRouteName); } } }); /***/ }), /***/ 70: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 72: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 75: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 80: /***/ (function(module, exports, __webpack_require__) { var disposed = false function injectStyle (ssrContext) { if (disposed) return __webpack_require__(75) } var Component = __webpack_require__(0)( /* script */ __webpack_require__(60), /* template */ __webpack_require__(90), /* styles */ injectStyle, /* scopeId */ null, /* moduleIdentifier (server only) */ null ) Component.options.__file = "/Users/gukong/Documents/project/meetin_proj_dev/components/components/package/side_bar/src/cell.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] cell.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-ae64fbec", Component.options) } else { hotAPI.reload("data-v-ae64fbec", Component.options) } module.hot.dispose(function (data) { disposed = true }) })()} module.exports = Component.exports /***/ }), /***/ 81: /***/ (function(module, exports, __webpack_require__) { var disposed = false function injectStyle (ssrContext) { if (disposed) return __webpack_require__(72) } var Component = __webpack_require__(0)( /* script */ __webpack_require__(61), /* template */ __webpack_require__(87), /* styles */ injectStyle, /* scopeId */ null, /* moduleIdentifier (server only) */ null ) Component.options.__file = "/Users/gukong/Documents/project/meetin_proj_dev/components/components/package/side_bar/src/cell_subitem.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] cell_subitem.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-5a7b861e", Component.options) } else { hotAPI.reload("data-v-5a7b861e", Component.options) } module.hot.dispose(function (data) { disposed = true }) })()} module.exports = Component.exports /***/ }), /***/ 85: /***/ (function(module, exports, __webpack_require__) { module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; return _c('div', { staticClass: "side-bar-root" }, _vm._l((_vm.menuItems), function(item) { return _c('cell', { key: item.title, attrs: { "side-bar-item": item, "selected-item": _vm.selectedItem }, on: { "item-click": _vm.clickOnSubItem } }) })) },staticRenderFns: []} module.exports.render._withStripped = true if (false) { module.hot.accept() if (module.hot.data) { require("vue-hot-reload-api").rerender("data-v-42040a3e", module.exports) } } /***/ }), /***/ 87: /***/ (function(module, exports, __webpack_require__) { module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; return _c('div', { staticClass: "cell-subitem", class: { 'highlight-subitem': _vm.item.routeName === _vm.selectedItem.routeName } }, [_c('div', { staticClass: "text-container" }, [_c('span', { staticClass: "sub-title", domProps: { "textContent": _vm._s(_vm.item.title) } })])]) },staticRenderFns: []} module.exports.render._withStripped = true if (false) { module.hot.accept() if (module.hot.data) { require("vue-hot-reload-api").rerender("data-v-5a7b861e", module.exports) } } /***/ }), /***/ 90: /***/ (function(module, exports, __webpack_require__) { module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; return _c('div', { staticClass: "side-bar-cell", class: { 'highlight-cell': _vm.shouldHighlight } }, [_c('div', { staticClass: "title-container", class: { 'section-active': _vm.showSubItem || _vm.shouldHighlight }, on: { "click": _vm.actionOnItem } }, [_c('div', { staticClass: "icon-title-root" }, [_c('span', { staticClass: "icon icon-title", class: _vm.iconName }), _vm._v(" "), _c('span', { staticClass: "title", domProps: { "textContent": _vm._s(_vm.title) } })]), _vm._v(" "), (_vm.subItems) ? _c('span', { staticClass: "icon icon-ctrl", class: { 'el-icon-arrow-right': !_vm.showSubItem, 'el-icon-arrow-down': _vm.showSubItem } }) : _vm._e()]), _vm._v(" "), _c('transition', { on: { "enter": _vm.subitemHeightEnter, "after-enter": _vm.subitemHeightAfterEnter, "leave": _vm.subitemHeightLeave, "after-leave": _vm.subitemHeightAfterLeave } }, [_c('div', { directives: [{ name: "show", rawName: "v-show", value: (_vm.showSubItem), expression: "showSubItem" }], staticClass: "subitem-container" }, _vm._l((_vm.subItems), function(item, idx) { return _c('cell-subitem', { key: item, staticClass: "subitem", attrs: { "item": item, "selected-item": _vm.selectedItem }, nativeOn: { "click": function($event) { _vm.actionOnSubItem(item) } } }) }))])], 1) },staticRenderFns: []} module.exports.render._withStripped = true if (false) { module.hot.accept() if (module.hot.data) { require("vue-hot-reload-api").rerender("data-v-ae64fbec", module.exports) } } /***/ }) /******/ }); });