UNPKG

@mdsfe/mds-ui

Version:

A set of enterprise-class Vue UI components-beta.

1,822 lines (1,631 loc) 65.1 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("vue"), require("./icon"), require("./_mixin/locale"), require("./checkbox"), require("./_util/merge")); else if(typeof define === 'function' && define.amd) define(["vue", "./icon", "./_mixin/locale", "./checkbox", "./_util/merge"], factory); else { var a = typeof exports === 'object' ? factory(require("vue"), require("./icon"), require("./_mixin/locale"), require("./checkbox"), require("./_util/merge")) : factory(root["Vue"], root["./icon"], root["./_mixin/locale"], root["./checkbox"], root["./_util/merge"]); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(window, function(__WEBPACK_EXTERNAL_MODULE__2__, __WEBPACK_EXTERNAL_MODULE__6__, __WEBPACK_EXTERNAL_MODULE__9__, __WEBPACK_EXTERNAL_MODULE__28__, __WEBPACK_EXTERNAL_MODULE__36__) { 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 = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 53); /******/ }) /************************************************************************/ /******/ ({ /***/ 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 } } /***/ }), /***/ 10: /***/ (function(module, exports) { module.exports = require("babel-runtime/helpers/typeof"); /***/ }), /***/ 16: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export noop */ /* unused harmony export getOffsetLeft */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getValueByPath; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return valueEquals; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return arrayFindIndex; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return arrayFind; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return coerceTruthyValueToArray; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return isIE; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return isEdge; }); /* unused harmony export isFirefox */ /* unused harmony export assert */ /* unused harmony export escapeRegexpString */ /* unused harmony export getOffsetWidth */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return isFunction; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return fixBodyScroll; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return hasOwn; }); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); // import { getScrollBarWidth } from './_popper/dom-helper' var currentBodyOverflow = ''; // let currentBodyPaddingRight = '' var noop = function noop() {}; var getScroll = function getScroll(w, top) { var ret = top ? w.pageYOffset : w.pageXOffset; var method = top ? 'scrollTop' : 'scrollLeft'; if (typeof ret !== 'number') { var d = w.document; // ie6,7,8 standard mode ret = d.documentElement[method]; if (typeof ret !== 'number') { // quirks mode ret = d.body[method]; } } return ret; }; var getClientPosition = function getClientPosition(elem) { var box = void 0; var x = void 0; var y = void 0; var doc = elem.ownerDocument; var body = doc.body; var docElem = doc && doc.documentElement; box = elem.getBoundingClientRect(); x = box.left; y = box.top; x -= docElem.clientLeft || body.clientLeft || 0; y -= docElem.clientTop || body.clientTop || 0; return { left: x, top: y }; }; var getOffsetLeft = function getOffsetLeft(el) { var pos = getClientPosition(el); var doc = el.ownerDocument; var w = doc.defaultView || doc.parentWindow; pos.left += getScroll(w); return pos.left; }; /** * 获取对象深层级的对象,避免循环 * @export * @param {*} sourceObj 源对象 {a:{b:{d:1}}} * @param {*} pathName path组成的数组 例如:'a.b.c' * @param {*} defaultValue 如果没有值默认的值 [] */ function getValueByPath(sourceObj, pathName, defaultValue) { var getValue = function getValue(sourceObj, pathNameArray) { var key = pathNameArray.shift(); var value = sourceObj[key]; if (value === undefined || value === null) { return defaultValue; } else if (pathNameArray.length === 0) { return value; } else if (pathNameArray.length > 0) { return getValue(value, pathNameArray); } }; var pathNameArray = pathName.split('.'); return getValue(sourceObj, pathNameArray); } /** * * 判断两个数是否相等 * @param {*} a * @param {*} b * @returns */ var valueEquals = function valueEquals(a, b) { // see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript if (a === b) return true; if (!(a instanceof Array)) return false; if (!(b instanceof Array)) return false; if (a.length !== b.length) return false; for (var i = 0; i !== a.length; ++i) { if (a[i] !== b[i]) return false; } return true; }; // TODO: use native Array.find, Array.findIndex when IE support is dropped var arrayFindIndex = function arrayFindIndex(arr, pred) { for (var i = 0; i !== arr.length; ++i) { if (pred(arr[i])) { return i; } } return -1; }; var arrayFind = function arrayFind(arr, pred) { var idx = arrayFindIndex(arr, pred); return idx !== -1 ? arr[idx] : undefined; }; // coerce truthy value to array var coerceTruthyValueToArray = function coerceTruthyValueToArray(val) { if (Array.isArray(val)) { return val; } else if (val) { return [val]; } else { return []; } }; var isIE = function isIE() { return !vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer && !isNaN(Number(document.documentMode)); }; var isEdge = function isEdge() { return !vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer && navigator.userAgent.indexOf('Edge') > -1; }; var isFirefox = function isFirefox() { return !vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer && !!window.navigator.userAgent.match(/firefox/i); }; var assert = function assert(condition, msg) { if (!condition) throw new Error('[mds-ui] ' + msg); }; /** * * 特殊字符转译 * @param {string} [value=''] */ var escapeRegexpString = function escapeRegexpString() { var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; return String(value).replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'); }; /** * Get element offset width * @param {*} node HTMLDOMElemment * @return {Number} width */ /** * Get element offset width * @param {*} node HTMLDOMElemment * @return {Number} width */ var getOffsetWidth = function getOffsetWidth(node) { return node ? node.offsetWidth : 0; }; /** 判断是否为函数 * @param {*} functionToCheck * @returns */ var isFunction = function isFunction(functionToCheck) { var getType = {}; return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; }; /** * 弹窗类组件显现时修正body滚动 * @param {Boolean} visible 弹窗显现状态 */ function fixBodyScroll(visible) { var bodyStyle = document.body.style; if (visible) { currentBodyOverflow = bodyStyle.overflow; // currentBodyPaddingRight = bodyStyle.paddingRight bodyStyle.overflow = 'hidden'; // const basePaddingRight = parseInt(currentBodyPaddingRight || 0) // const baseScrollWidth = parseInt(getScrollBarWidth()) // 防止页面抖动,后续需要自定义滚动条解决 // bodyStyle.paddingRight = basePaddingRight + baseScrollWidth + 'px' } else { var timer = setTimeout(function () { clearTimeout(timer); bodyStyle.overflow = currentBodyOverflow; // bodyStyle.paddingRight = currentBodyPaddingRight // currentBodyPaddingRight = '' }, 180); } } var hasOwnProperty = Object.prototype.hasOwnProperty; function hasOwn(obj, key) { return hasOwnProperty.call(obj, key); } /***/ }), /***/ 2: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE__2__; /***/ }), /***/ 21: /***/ (function(module, exports) { module.exports = require("babel-runtime/core-js/get-iterator"); /***/ }), /***/ 23: /***/ (function(module, exports) { module.exports = require("babel-runtime/helpers/extends"); /***/ }), /***/ 269: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 27: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/scroll-bar/scroll-bar.vue?vue&type=template&id=2fbcec38& var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "ul", { ref: "wrap", class: _vm.classes, attrs: { role: "mds-scroll-bar" } }, [_vm._t("default")], 2 ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./components/scroll-bar/scroll-bar.vue?vue&type=template&id=2fbcec38& // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/scroll-bar/scroll-bar.vue?vue&type=script&lang=js& // // // // // // // // // /* harmony default export */ var scroll_barvue_type_script_lang_js_ = ({ name: 'mdsScrollBar', props: { prefixCls: { type: String, default: 'mds-scroll-bar' } }, data: function data() { return {}; }, computed: { classes: function classes() { var prefixCls = this.prefixCls; return ['' + prefixCls, prefixCls + '-root']; }, wrap: function wrap() { return this.$refs.wrap; } }, methods: {}, created: function created() {} }); // CONCATENATED MODULE: ./components/scroll-bar/scroll-bar.vue?vue&type=script&lang=js& /* harmony default export */ var scroll_bar_scroll_barvue_type_script_lang_js_ = (scroll_barvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./components/scroll-bar/scroll-bar.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( scroll_bar_scroll_barvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "components/scroll-bar/scroll-bar.vue" /* harmony default export */ var scroll_bar = (component.exports); // CONCATENATED MODULE: ./components/scroll-bar/index.js /* harmony default export */ var components_scroll_bar = __webpack_exports__["a"] = (scroll_bar); /***/ }), /***/ 271: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 28: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE__28__; /***/ }), /***/ 29: /***/ (function(module, exports) { module.exports = require("babel-runtime/helpers/classCallCheck"); /***/ }), /***/ 3: /***/ (function(module, exports) { module.exports = require("babel-runtime/helpers/defineProperty"); /***/ }), /***/ 30: /***/ (function(module, exports) { module.exports = require("babel-runtime/helpers/createClass"); /***/ }), /***/ 31: /***/ (function(module, exports) { module.exports = require("babel-runtime/core-js/map"); /***/ }), /***/ 36: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE__36__; /***/ }), /***/ 53: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/cascaderpanel/panel.vue?vue&type=template&id=1352ea60& var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { ref: "panel", class: ["mds-cascader-panel", _vm.size, _vm.border && "is-bordered"], style: { "max-height": _vm.maxHeight, }, }, _vm._l(_vm.expandedPanels, function (panel, index) { return _c( "div", { key: index, staticClass: "mds-cascader-panel-level" }, [ panel && panel.length ? [ _c( "mds-scroll-bar", _vm._l(panel, function (node) { return _c("mds-cascader-option", { key: node.key, attrs: { expandTrigger: _vm.expandTrigger, checkStrictly: _vm.checkStrictly, node: node, }, on: { "choose-node": _vm.chooseNode, "change-multi-node": _vm.changeMultiNode, "change-single-strict-node": _vm.changeSingleStrictNode, }, }) }), 1 ), ] : [ _c("div", { staticClass: "mds-cascader-panel-empty-wrapper" }, [ _c("div", { staticClass: "mds-cascader-panel-empty-text" }, [ _vm._v( "\n " + _vm._s( _vm.loading ? "加载中..." : _vm.dispatchCascaderText ) + "\n " ), ]), ]), ], ], 2 ) }), 0 ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./components/cascaderpanel/panel.vue?vue&type=template&id=1352ea60& // EXTERNAL MODULE: external "babel-runtime/helpers/extends" var extends_ = __webpack_require__(23); var extends_default = /*#__PURE__*/__webpack_require__.n(extends_); // EXTERNAL MODULE: ./components/scroll-bar/index.js + 5 modules var scroll_bar = __webpack_require__(27); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/cascaderpanel/option.vue?vue&type=template&id=48d0e24e& var optionvue_type_template_id_48d0e24e_render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "li", { class: _vm.classes, on: { mouseenter: function ($event) { $event.stopPropagation() return _vm.handleHover($event) }, click: function ($event) { $event.stopPropagation() return _vm.handleClick($event) }, }, }, [ _vm.multiple && _vm.rendering ? _c("mds-checkbox", { key: _vm.node.key, staticClass: "mds-cascader-option-checkbox", attrs: { disabled: _vm.node.disabled, checked: _vm.node.check, indeterminate: _vm.node.indeterminate, }, on: { change: _vm.handleMultiChange }, }) : _vm._e(), _vm.isSingleStrict ? _c("mds-radio", { attrs: { disabled: _vm.node.disabled, value: true }, on: { change: _vm.handleSingleStrictChange }, model: { value: _vm.node.selected, callback: function ($$v) { _vm.$set(_vm.node, "selected", $$v) }, expression: "node.selected", }, }) : _vm._e(), _c( "div", { ref: "optionNode", class: "mds-cascader-option-label" }, [ _c("span", [_vm._v(_vm._s(_vm.node.label))]), !_vm.node.isLeaf && !_vm.node.loading ? _c("mds-icon", { attrs: { type: "line-caret-right" } }) : _vm._e(), _vm.node.loading ? _c("mds-icon", { attrs: { type: "line-sync", spin: "" } }) : _vm._e(), ], 1 ), ], 1 ) } var optionvue_type_template_id_48d0e24e_staticRenderFns = [] optionvue_type_template_id_48d0e24e_render._withStripped = true // CONCATENATED MODULE: ./components/cascaderpanel/option.vue?vue&type=template&id=48d0e24e& // EXTERNAL MODULE: external "babel-runtime/helpers/defineProperty" var defineProperty_ = __webpack_require__(3); var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty_); // EXTERNAL MODULE: external "./icon" var external_icon_ = __webpack_require__(6); var external_icon_default = /*#__PURE__*/__webpack_require__.n(external_icon_); // EXTERNAL MODULE: external "./checkbox" var external_checkbox_ = __webpack_require__(28); var external_checkbox_default = /*#__PURE__*/__webpack_require__.n(external_checkbox_); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/cascaderpanel/option.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var optionvue_type_script_lang_js_ = ({ name: 'MdsCascaderOption', components: { MdsScrollBar: scroll_bar["a" /* default */], MdsIcon: external_icon_default.a, MdsCheckbox: external_checkbox_default.a }, props: { node: Object, expandTrigger: String, checkStrictly: Boolean }, data: function data() { return { rendering: true }; }, computed: { hoverFlag: function hoverFlag() { return this.expandTrigger === 'hover'; }, classes: function classes() { var _ref; var size = this.size, active = this.active, multiActive = this.multiActive; return _ref = {}, defineProperty_default()(_ref, 'mds-cascader-option', true), defineProperty_default()(_ref, 'mds-cascader-option-' + size, true), defineProperty_default()(_ref, 'mds-cascader-option-active', active), defineProperty_default()(_ref, 'mds-cascader-option-multi-active', multiActive), defineProperty_default()(_ref, 'mds-cascader-option-disabled', this.node.disabled), _ref; }, tree: function tree() { return this.node.tree.$vue; }, panel: function panel() { return this.tree.$refs.panel; }, size: function size() { return this.tree.size; }, multiple: function multiple() { return this.tree.multiple; }, active: function active() { return !this.multiple && (this.node.selected || this.node.isExpanded); }, multiActive: function multiActive() { return this.multiple && (this.node.checked || this.node.isExpanded); }, isSingleStrict: function isSingleStrict() { return !this.multiple && this.checkStrictly; }, isMultiStrict: function isMultiStrict() { return this.multiple && this.checkStrictly; } }, methods: { handleHover: function handleHover() { if (!this.hoverFlag) { return; } if (this.node.isLeaf) { return; } this.handleClick(); }, // 点击选项文字区时的动作 handleClick: function handleClick() { if (this.node.disabled) { return; } this.$emit('choose-node', this.node); }, // 选择多选框时的动作 handleMultiChange: function handleMultiChange() { var _this = this; if (this.node.disabled) { return; } if (this.multiple && this.node.indeterminate) { this.handleIndeterminate(); } else { this.node.check = !this.node.check; } // 解决多选时全选不更新视图的问题 this.rendering = false; this.$nextTick(function () { _this.rendering = true; }); this.$emit('change-multi-node', this.node); }, // 处理多选时点击indeterminate态时的动作 handleIndeterminate: function handleIndeterminate() { var activeChildNodes = this.node.childNodes.filter(function (node) { return !node.disabled; }); if (activeChildNodes.every(function (node) { return node.checked; })) { this.node.check = false; } else { this.node.check = true; } }, // 选择单选框时的动作 handleSingleStrictChange: function handleSingleStrictChange(checkflag) { var _this2 = this; this.node.tree.nodesMap.forEach(function (node) { if (node.key !== _this2.node.key) { node.selected = false; } }); this.$emit('change-single-strict-node', this.node); } } }); // CONCATENATED MODULE: ./components/cascaderpanel/option.vue?vue&type=script&lang=js& /* harmony default export */ var cascaderpanel_optionvue_type_script_lang_js_ = (optionvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./components/cascaderpanel/option.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( cascaderpanel_optionvue_type_script_lang_js_, optionvue_type_template_id_48d0e24e_render, optionvue_type_template_id_48d0e24e_staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "components/cascaderpanel/option.vue" /* harmony default export */ var cascaderpanel_option = (component.exports); // EXTERNAL MODULE: external "babel-runtime/core-js/get-iterator" var get_iterator_ = __webpack_require__(21); var get_iterator_default = /*#__PURE__*/__webpack_require__.n(get_iterator_); // EXTERNAL MODULE: external "babel-runtime/core-js/map" var map_ = __webpack_require__(31); var map_default = /*#__PURE__*/__webpack_require__.n(map_); // EXTERNAL MODULE: external "babel-runtime/helpers/typeof" var typeof_ = __webpack_require__(10); var typeof_default = /*#__PURE__*/__webpack_require__.n(typeof_); // EXTERNAL MODULE: external "babel-runtime/helpers/classCallCheck" var classCallCheck_ = __webpack_require__(29); var classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck_); // EXTERNAL MODULE: external "babel-runtime/helpers/createClass" var createClass_ = __webpack_require__(30); var createClass_default = /*#__PURE__*/__webpack_require__.n(createClass_); // CONCATENATED MODULE: ./components/cascaderpanel/modal/cas-node.js var defaultId = 0; var cas_node_Node = function () { function Node(options) { classCallCheck_default()(this, Node); this.id = defaultId++; this.checked = false; this.indeterminate = false; this.data = null; this.expanded = false; this.parent = null; this.isLeaf = false; // 是否显示,用于搜索 this.visible = true; for (var name in options) { if (options.hasOwnProperty(name)) { this[name] = options[name]; } } this.level = 0; // 是否被选中 this.selected = false; // 是否已经加载完毕,用于懒加载 this.loaded = false; // 是否是加载中状态,用于懒加载 this.loading = false; this.childNodes = []; this.parent ? this.level = this.parent.level + 1 : this.level = 0; this.update(); } createClass_default()(Node, [{ key: 'update', value: function update() { var _this = this; if (!this.data) { this.handleIsLeaf(); return; } var data = this.data; var prop = this.tree.prop; // 生成_nodeId // 非根节点添加到nodesMap中 this.fillNodesMap(); // 生成childNodes var children = void 0; // 根节点的情况把整个data作为children if (Array.isArray(data) && this.level === 0) { children = data; this.id = 'root'; } else if (data.hasOwnProperty(prop.children)) { children = data[prop.children]; } else { if (!this.tree.load) this.isLeaf = true; } if (Array.isArray(children) && children.length > 0) { children.forEach(function (data) { _this.appendChild(data); }); } else { if (!this.tree.load) this.isLeaf = true; } this.handleIsLeaf(); } }, { key: 'handleIsLeaf', value: function handleIsLeaf() { // 懒加载且未加载的情况 if (this.tree.load && !this.loaded) { this.isLeaf = this.getTrueData('isLeaf'); } // 非懒加载或懒加载但已加载的情况 if (!this.tree.load || this.tree.load && this.loaded) { var childNodes = this.childNodes; this.isLeaf = !childNodes || childNodes.length === 0; } } }, { key: 'fillNodesMap', value: function fillNodesMap() { var key = this.key; if (!key && this.level !== 0) { throw new Error('必须指定节点的key'); } if (key) { // 处理初始选中的节点 this.handleSelectedKey(key); if (this.tree.nodesMap.get(key)) { throw new Error('节点的key不能重复'); } this.tree.nodesMap.set(key, this); } } }, { key: 'handleSelectedKey', value: function handleSelectedKey(key) { this.selected = false; if (this.tree.selectedKey === key) { this.selected = true; } } }, { key: 'appendChild', value: function appendChild(data, index) { var child = new Node({ parent: this, data: data, tree: this.tree }); if (index) { this.childNodes.splice(index, 0, child); } else { this.childNodes.push(child); } } }, { key: 'getTrueData', value: function getTrueData(prop) { var props = this.tree.prop[prop]; var data = this.data; if (!data) return; if (data.hasOwnProperty(props)) { return data[props]; } else if (data.hasOwnProperty(prop)) { return data[prop]; } else { return null; } } }, { key: 'loadNode', value: function loadNode() { var _this2 = this; var node = this; if (node.loaded || node.loading || node.childNodes.length > 0) { return; } node.loading = true; node.tree.load(node.data, function (data) { if (!Array.isArray(data)) throw new Error('传入子元素必须是数组'); data.forEach(function (data) { node.appendChild(data); }); node.loading = false; node.loaded = true; node.check = false; node.expanded = true; _this2.handleIsLeaf(); }); } }, { key: 'getPath', value: function getPath(nodeFlag) { var arr = []; var n = 0; var node = this; while (node.level > n) { arr.push(nodeFlag ? node : node.data); node = node.parent; } return arr; } }, { key: 'handleCheckChange', value: function handleCheckChange() { var checked = this.checked; this.childNodes.forEach(function (node) { if (!node.disabled) { node.check = checked; } }); if (this.parent) { this.parent.handleChildCheckChange(); } } }, { key: 'handleChildCheckChange', value: function handleChildCheckChange() { if (Array.isArray(this.data) || this.level === 0) { return; } if (this.childNodes.length === this.checkedChildNodes.length && this.childNodes.length !== 0) { this.checked = true; this.indeterminate = false; } else if (this.checkedChildNodes.length > 0) { this.checked = false; this.indeterminate = true; } else { this.checked = false; this.indeterminate = false; for (var i = 0; i < this.childNodes.length; i++) { if (this.childNodes[i].indeterminate) { this.indeterminate = true; break; } } } this.parent.handleChildCheckChange(); } }, { key: 'after', value: function after(node) { var oldIndex = node.index; node.parent.childNodes.splice(oldIndex, 1); node.parent.handleChildCheckChange(); if (node.parent.childNodes.length === 0) { node.parent.isLeaf = true; } node.parent = this.parent; node.level = this.level; this.parent.childNodes.splice(this.index + 1, 0, node); this.handleChildCheckChange(); } }, { key: 'first', value: function first(node) { var oldIndex = node.index; node.parent.childNodes.splice(oldIndex, 1); node.parent.handleChildCheckChange(); if (node.parent.childNodes.length === 0) { node.parent.isLeaf = true; } this.isLeaf = false; node.parent = this; node.level = this.level + 1; this.childNodes.splice(0, 0, node); this.handleChildCheckChange(); } }, { key: 'append', value: function append(node) { var oldIndex = node.index; node.parent.childNodes.splice(oldIndex, 1); node.parent.handleChildCheckChange(); if (node.parent.childNodes.length === 0) { node.parent.isLeaf = true; } this.isLeaf = false; node.parent = this; node.level = this.level + 1; this.childNodes.push(node); this.handleChildCheckChange(); } }, { key: 'moveNode', value: function moveNode(node, index) { var oldIndex = node.index; node.parent.childNodes.splice(oldIndex, 1); node.parent.handleChildCheckChange(); if (node.parent.childNodes.length === 0) { node.parent.isLeaf = true; } this.isLeaf = false; node.parent = this; node.level = this.level + 1; if (index !== null) { this.childNodes.splice(index, 0, node); } else { this.childNodes.push(node); } this.handleChildCheckChange(); } }, { key: 'remove', value: function remove() { var node = this; var index = node.index; node.parent.childNodes.splice(index, 1); node.parent.handleChildCheckChange(); node.tree.nodesMap.delete(node.id); node = null; } }, { key: 'label', get: function get() { return this.getTrueData('label'); } }, { key: 'key', get: function get() { return this.getTrueData('key'); } }, { key: 'disabled', get: function get() { return this.getTrueData('disabled'); } }, { key: 'check', get: function get() { return this.checked; }, set: function set(val) { this.checked = val; this.handleCheckChange(); } }, { key: 'siblingsNodes', get: function get() { var arr = []; var currentNode = this; this.parent.childNodes.forEach(function (node) { if (node.id !== currentNode.id) { arr.push(node); } }); return arr; } }, { key: 'checkedChildNodes', get: function get() { var arr = []; this.childNodes.forEach(function (node) { if (node.checked) arr.push(node); }); return arr; } }, { key: 'indeterminateChildNodes', get: function get() { var arr = []; this.childNodes.forEach(function (node) { if (node.checked || node.indeterminate) arr.push(node); }); return arr; } }, { key: 'isExpanded', get: function get() { return this.expanded; }, set: function set(value) { this.expanded = value; } }, { key: 'index', get: function get() { return this.parent.childNodes.indexOf(this); } }]); return Node; }(); // CONCATENATED MODULE: ./components/cascaderpanel/modal/cas-tree.js var cas_tree_Tree = function () { function Tree(options) { var _this = this; classCallCheck_default()(this, Tree); for (var name in options) { if (options.hasOwnProperty(name)) { this[name] = options[name]; } } if (!this.prop || typeof_default()(this.prop) !== 'object') { this.prop = { label: 'label', key: 'key', isLeaf: 'isLeaf', disabled: 'disabled', children: 'children' }; } this.nodesMap = new map_default.a(); this.root = new cas_node_Node({ data: this.data, tree: this }); // 根据load函数渲染根节点 if (this.load) { this.load(this.root, function (arr) { if (!Array.isArray(arr)) { throw new Error('传入子元素必须是数组'); } arr.forEach(function (item) { _this.root.appendChild(item); }); }); } } createClass_default()(Tree, [{ key: 'setData', value: function setData(newVal) { var dataChange = newVal !== this.root.data; if (dataChange) { this.nodesMap = new map_default.a(); this.root = new cas_node_Node({ data: newVal, tree: this }); } } }, { key: 'handleSelectedChange', value: function handleSelectedChange(key) { var selectedNode = this.nodesMap.get(key); if (!selectedNode.selected) { this.nodesMap.forEach(function (node, nodeKey) { node.selected = false; if (nodeKey === key) { node.selected = true; } }); this.$tree.$emit('node-selected-change', selectedNode.data, selectedNode, selectedNode.getPath(), selectedNode.getPath(true)); } } }, { key: 'handleDefaultCheckedKeys', value: function handleDefaultCheckedKeys() { var _this2 = this; // 处理defaultCheckedKeys if (this.defaultCheckedKeys) { this.defaultCheckedKeys.forEach(function (item) { _this2.nodesMap.get(item).check = true; }); } } }, { key: 'search', value: function search(value) { var _this3 = this; var recursionChildren = function recursionChildren(node) { var childNodes = node.root ? node.root.childNodes : node.childNodes; childNodes.forEach(function (item) { item.visible = _this3.searchNodeMethod.call(item, value, item.data, item); recursionChildren(item); }); // 子节点有匹配项的情况父节点需要显示 if (!node.visible && childNodes.length) { var hiddenAllChildren = void 0; hiddenAllChildren = !childNodes.some(function (child) { return child.visible; }); if (!node.root) { node.visible = !hiddenAllChildren; } else { node.root.visible = false; } } // 节点显示的情况下展开所有子节点 if (node.visible && !node.isLeaf && !_this3.load) { node.changeExpanded(true); } }; recursionChildren(this); } }, { key: 'getCheckedNodes', value: function getCheckedNodes(leafOnly) { var result = []; if (leafOnly) { this.nodesMap.forEach(function (item) { if (item.checked && !item.data.children) { result.push(item.data); } }); } else { this.nodesMap.forEach(function (item) { if (item.checked) { result.push(item.data); } }); } return result; } }, { key: 'getCheckedKeys', value: function getCheckedKeys(leafOnly) { var result = []; if (leafOnly) { this.nodesMap.forEach(function (item) { if (item.checked && !item.data.children) { result.push(item.key); } }); } else { this.nodesMap.forEach(function (item) { if (item.checked) { result.push(item.key); } }); } return result; } }, { key: 'setCheckedKeys', value: function setCheckedKeys(checkArr) { var _this4 = this; if (!Array.isArray(checkArr)) { throw new Error('需要输入一个key数组'); } checkArr.forEach(function (item) { _this4.nodesMap.get(item).check = true; }); } }, { key: 'setChecked', value: function setChecked(key, checkState) { var node = this.nodesMap.get(key); if (!node) { throw new Error('请输入正确的key'); } node.check = checkState; } }, { key: 'getHalfCheckedNodes', value: function getHalfCheckedNodes() { var result = []; this.nodesMap.forEach(function (item) { if (item.indeterminate) { result.push(item.data); } }); return result; } }, { key: 'getHalfCheckedKeys', value: function getHalfCheckedKeys() { var result = []; this.nodesMap.forEach(function (item) { if (item.indeterminate) { result.push(item.data.key); } }); return result; } }, { key: 'getCurrentKey', value: function getCurrentKey() { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = get_iterator_default()(this.nodesMap.values()), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var item = _step.value; if (item.selected) { return item.data.key; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return null; } }, { key: 'getCurrentNode', value: function getCurrentNode() { var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = get_iterator_default()(this.nodesMap.values()), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var item = _step2.value; if (item.selected) { return item.data; } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return null; } }, { key: 'setCurrentKey', value: function setCurrentKey(key) { if (key) { this.handleSelectedChange(key); } else { this.nodesMap.forEach(function (node) { node.selected = false; }); } } }, { key: 'getNode', value: function getNode(key) { var node = this.nodesMap.get(key); if (node) { return node; } return null; } }, { key: 'getCheckNode', value: function getCheckNode(nodeFlag) { var arr = []; this.nodesMap.forEach(function (item) { if (item.checked) { nodeFlag ? arr.push(item) : arr.push(item.data); } }); return arr; } }, { key: 'getCheckNodeKey', value: function getCheckNodeKey() { var arr = []; this.getCheckNode(true).forEach(function (node) { arr.push(node.key); }); return arr; } }, { key: 'getIndeterminateNode', value: function getIndeterminateNode(nodeFlag) { var arr = []; this.nodesMap.forEach(function (item) { if (item.indeterminate) { nodeFlag ? arr.push(item) : arr.push(item.data); } }); return arr; } }, { key: 'getIndeterminateNodeKey', value: function getIndeterminateNodeKey() { var arr = []; this.getIndeterminateNode(true).forEach(function (node) { arr.push(node.key); }); return arr; } }, { key: 'setCheckNode', value: function setCheckNode(keys) { var bor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var nodesMap = this.nodesMap; if (Array.isArray(keys)) { keys.forEach(function (item) { var node = nodesMap.get(item); if (node) node.check = bor; }); } else { var node = nodesMap.get(keys); if (node) nodesMap.get(keys).check = bor; } } }, { key: 'getCheckNodeTree', value: function getCheckNodeTree() { var _this5 = this; var root = this.root; if (Array.isArray(root.data)) { var newTree = []; root.indeterminateChildNodes.forEach(function (item) { newTree.push(copyNode(item, _this5)); }); return newTree; } else { return copyNode(root, this); } } }, { key: 'clearCheckNode', value: function clearCheckNode() { this.nodesMap.forEach(function (item) { item.checked = false; item.indeterminate = false; }); } }, { key: 'clearSelectedNode', value: function clearSelectedNode() { this.nodesMap.forEach(function (item) { item.selected = false; }); } }, { key: 'clearExpandNode', value: function clearExpandNode() { this.nodesMap.forEach(function (item) { item.isExpanded = false; }); } }, { key: 'appendNodes', value: function appendNodes(key, nodes) { var parent = this.nodesMap.get(key); if (!parent) { return; } if (Array.isArray(nodes)) { if ((typeof nodes === 'undefined' ? 'undefined' : typeof_default()(nodes)) === 'object') { nodes.forEach(function (item) { parent.appendChild(item); }); } } else if ((typeof nodes === 'undefined' ? 'undefined' : typeof_default()(nodes)) === 'object') { parent.appendChild(nodes); } } }, { key: 'deleteNodeByKey', value: function deleteNodeByKey(keys) { var _this6 = this; if (Array.isArray(keys)) { keys.forEach(function (item) { var node = _this6.nodesMap.get(item); if (node) node.remove(); }); } else { var node = this.nodesMap.get(keys); node.remove(); } } }]); return Tree; }(); var copyData = function copyData(data, tree) { var newData = {}; for (var key in data) { if (data.hasOwnProperty(key) && key !== tree.prop.children) { newData[key] = data[key]; } } return newData; }; var copyNode = function copyNode(node, tree) { var newData = copyData(node.data, tree); if (node.isLeaf) { return newData; } newData[tree.prop.children] = []; node.indeterminateChildNodes.forEach(function (item) { newData[tree.prop.children].push(copyNode(item, tree)); }); return newData; }; // EXTERNAL MODULE: external "./_util/merge" var merge_ = __webpack_require__(36); var merge_default = /*#__PURE__*/__webpack_require__.n(merge_); // EXTERNAL MODULE: ./components/_util/util.js var util = __webpack_require__(16); // 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/cascaderpanel/panel.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // var DefaultProps = { key: 'key', l