UNPKG

meetin-components

Version:

会众 Vue 组件

668 lines (582 loc) 20.1 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")); 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"], 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")) : 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"]); 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__) { 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 = 50); /******/ }) /************************************************************************/ /******/ ({ /***/ 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"); /***/ }), /***/ 43: /***/ (function(module, exports, __webpack_require__) { var disposed = false function injectStyle (ssrContext) { if (disposed) return __webpack_require__(76) } var Component = __webpack_require__(0)( /* script */ __webpack_require__(59), /* template */ __webpack_require__(91), /* styles */ injectStyle, /* scopeId */ null, /* moduleIdentifier (server only) */ null ) Component.options.__file = "/Users/gukong/Documents/project/meetin_proj_dev/components/components/package/navigation_controller/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-cb531a7a", Component.options) } else { hotAPI.reload("data-v-cb531a7a", Component.options) } module.hot.dispose(function (data) { disposed = true }) })()} module.exports = Component.exports /***/ }), /***/ 50: /***/ (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__(43); /* 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); /***/ }), /***/ 58: /***/ (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_theme_chalk_base_css__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_meetin_sass_ui_lib_theme_chalk_base_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_meetin_sass_ui_lib_theme_chalk_base_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_button__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_button___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_button__); 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"] = ({ data: function data() { return {}; }, props: { hasChildrenController: { type: Boolean, default: false }, config: { type: Object, default: function _default() { return {}; } } }, computed: { buttonConfig: function buttonConfig() { return this.config.buttonConfig; }, navigationTitle: function navigationTitle() { return this.config.title || ''; } }, methods: { clickAction: function clickAction(buttonConfig) { if (buttonConfig.handler) { buttonConfig.handler(); } } }, components: _defineProperty({}, __WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_button___default.a.name, __WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_button___default.a) }); // // // // // // // // // // // // // // // // // // // // TODO: 改成全局访问的对象 this.$nagivation.pushViewController() /** * 本组件和 vuex 配合使用,pushViewController、popViewController、clearViewController、setNavigationBarFormat * pushViewController、popViewController 传入一个组件,此组件可以赋值配置项和传递的参数 * setNavigationBarFormat 配置导航栏的样式,pushViewController 的配置项会覆盖它 */ // example /** import TeacherEditor from './teacher_editor.vue' TeacherEditor.params = { createMode: true, // TeacherEditor组件 props 中定义的变量 }; pushViewController(TeacherEditor) */ /***/ }), /***/ 59: /***/ (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_theme_chalk_base_css__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_meetin_sass_ui_lib_theme_chalk_base_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_meetin_sass_ui_lib_theme_chalk_base_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_button__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_button___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_button__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__bar_vue__ = __webpack_require__(79); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__bar_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__bar_vue__); 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; } // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /** * 导航控制器页面结构 * navigationController * -> bar * -> container * -> main view * -> popover view (position: absolute) */ /** * 本组件和 vuex 配合使用,pushViewController、popViewController、clearViewController、setNavigationBarFormat * pushViewController、popViewController 传入一个组件,此组件可以赋值配置项和传递的参数 * setNavigationBarFormat 配置导航栏的样式,pushViewController 的配置项会覆盖它 */ // 传递参数 /** * 给弹出页面的 props 传递数据 * TeacherEditor.params = { createMode: true, // TeacherEditor组件 props 中定义的变量 }; */ // 主页面修改导航栏配置 /** * config = { title: '审核学术成果' buttonConfig: [{ title: '保存', type: 'primary', handler: this.saveAction // 组件 TeacherEditor 当中的方法 }] } this.vxSetNavigationBarFormat(config) */ // example html /** * 在 index.vue 根页面 * <navigation-bar class="root-container"> <keep-alive> <router-view class="root-content"></router-view> </keep-alive> </navigation-bar> */ // example js /** * 在其他任何页面 * import TeacherEditor from './teacher_editor.vue' TeacherEditor.params = { createMode: true, // TeacherEditor组件 props 中定义的变量 }; pushViewController(TeacherEditor) */ /* harmony default export */ __webpack_exports__["default"] = ({ name: 'MtNavigation', data: function data() { return { viewControllers: [], navigationConfig: {} }; }, methods: { clearViewController: function clearViewController() { this.viewControllers = []; }, pushViewController: function pushViewController(viewController) { this.viewControllers.push(viewController); }, popViewController: function popViewController() { var viewController = this.viewControllers.pop(); if (viewController) { viewController.params = null; } }, configNavigationBar: function configNavigationBar(config) { this.navigationConfig = config; } }, computed: { /** * 弹出子页面的时候,container 隐藏超出屏幕的内容(overflow:hidden) */ childrenControllerClass: function childrenControllerClass() { if (this.viewControllers.length > 0) { return { 'child-container': true }; } else { return {}; } }, hasChildrenController: function hasChildrenController() { return this.viewControllers.length > 0; } }, components: _defineProperty({ NavigationBar: __WEBPACK_IMPORTED_MODULE_3__bar_vue___default.a }, __WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_button___default.a.name, __WEBPACK_IMPORTED_MODULE_2_meetin_sass_ui_lib_button___default.a) }); /***/ }), /***/ 69: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 76: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 79: /***/ (function(module, exports, __webpack_require__) { var disposed = false function injectStyle (ssrContext) { if (disposed) return __webpack_require__(69) } var Component = __webpack_require__(0)( /* script */ __webpack_require__(58), /* template */ __webpack_require__(84), /* styles */ injectStyle, /* scopeId */ null, /* moduleIdentifier (server only) */ null ) Component.options.__file = "/Users/gukong/Documents/project/meetin_proj_dev/components/components/package/navigation_controller/src/bar.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] bar.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-3efdf00e", Component.options) } else { hotAPI.reload("data-v-3efdf00e", Component.options) } module.hot.dispose(function (data) { disposed = true }) })()} module.exports = Component.exports /***/ }), /***/ 84: /***/ (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: "navigation-bar-root" }, [_c('div', { staticClass: "left-container" }, [_c('span', { domProps: { "textContent": _vm._s(_vm.navigationTitle) } })]), _vm._v(" "), _c('div', { directives: [{ name: "show", rawName: "v-show", value: (_vm.buttonConfig), expression: "buttonConfig" }], staticClass: "right-container" }, _vm._l((_vm.buttonConfig), function(button) { return _c('el-button', { key: button.title, attrs: { "type": button.type }, nativeOn: { "click": function($event) { _vm.clickAction(button) } } }, [_vm._v("\n " + _vm._s(button.title) + "\n ")]) }))]) },staticRenderFns: []} module.exports.render._withStripped = true if (false) { module.hot.accept() if (module.hot.data) { require("vue-hot-reload-api").rerender("data-v-3efdf00e", module.exports) } } /***/ }), /***/ 91: /***/ (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: "navigation-controller-root" }, [_c('transition-group', { attrs: { "tag": "div", "name": "bounce-down", "appear": "" } }, _vm._l((_vm.viewControllers), function(controller) { return _c('div', { key: controller, staticClass: "transition-container" }, [_c('el-button', { staticClass: "close-button", attrs: { "type": "text", "icon": "close" }, on: { "click": _vm.popViewController } }), _vm._v(" "), _c(controller, { ref: "childComponent", refInFor: true, tag: "component", staticClass: "view-controller", attrs: { "params": controller.params } })], 1) })), _vm._v(" "), _c('div', { staticClass: "content-container" }, [_c('navigation-bar', { staticClass: "navigation", attrs: { "has-children-controller": _vm.hasChildrenController, "config": _vm.navigationConfig } }), _vm._v(" "), _c('div', { staticClass: "slot-container", class: _vm.childrenControllerClass }, [_vm._t("default")], 2)], 1)], 1) },staticRenderFns: []} module.exports.render._withStripped = true if (false) { module.hot.accept() if (module.hot.data) { require("vue-hot-reload-api").rerender("data-v-cb531a7a", module.exports) } } /***/ }) /******/ }); });