UNPKG

element-ui-for-gov

Version:

element-ui for gov

1,443 lines (1,280 loc) 43.5 kB
module.exports = /******/ (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 = 292); /******/ }) /************************************************************************/ /******/ ({ /***/ 1: /***/ (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 } } /***/ }), /***/ 112: /***/ (function(module, exports) { module.exports = require("element-ui-for-gov/lib/tabs"); /***/ }), /***/ 14: /***/ (function(module, exports) { var nestRE = /^(attrs|props|on|nativeOn|class|style|hook)$/ module.exports = function mergeJSXProps (objs) { return objs.reduce(function (a, b) { var aa, bb, key, nestedKey, temp for (key in b) { aa = a[key] bb = b[key] if (aa && nestRE.test(key)) { // normalize class if (key === 'class') { if (typeof aa === 'string') { temp = aa a[key] = aa = {} aa[temp] = true } if (typeof bb === 'string') { temp = bb b[key] = bb = {} bb[temp] = true } } if (key === 'on' || key === 'nativeOn' || key === 'hook') { // merge functions for (nestedKey in bb) { aa[nestedKey] = mergeFn(aa[nestedKey], bb[nestedKey]) } } else if (Array.isArray(aa)) { a[key] = aa.concat(bb) } else if (Array.isArray(bb)) { a[key] = [aa].concat(bb) } else { for (nestedKey in bb) { aa[nestedKey] = bb[nestedKey] } } } else { a[key] = b[key] } } return a }, {}) } function mergeFn (a, b) { return function () { a && a.apply(this, arguments) b && b.apply(this, arguments) } } /***/ }), /***/ 292: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./node_modules/babel-helper-vue-jsx-merge-props/index.js var babel_helper_vue_jsx_merge_props = __webpack_require__(14); var babel_helper_vue_jsx_merge_props_default = /*#__PURE__*/__webpack_require__.n(babel_helper_vue_jsx_merge_props); // EXTERNAL MODULE: external "element-ui-for-gov/lib/dialog" var dialog_ = __webpack_require__(41); var dialog_default = /*#__PURE__*/__webpack_require__.n(dialog_); // EXTERNAL MODULE: external "element-ui-for-gov/lib/tabs" var tabs_ = __webpack_require__(112); var tabs_default = /*#__PURE__*/__webpack_require__.n(tabs_); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/tabs/src/tab-pane.vue?vue&type=template&id=9145a070& var tab_panevue_type_template_id_9145a070_render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return !_vm.lazy || _vm.loaded || _vm.active ? _c( "div", { directives: [ { name: "show", rawName: "v-show", value: _vm.active, expression: "active" } ], staticClass: "el-tab-pane", attrs: { role: "tabpanel", "aria-hidden": !_vm.active, id: "pane-" + _vm.paneName, "aria-labelledby": "tab-" + _vm.paneName } }, [_vm._t("default")], 2 ) : _vm._e() } var staticRenderFns = [] tab_panevue_type_template_id_9145a070_render._withStripped = true // CONCATENATED MODULE: ./packages/tabs/src/tab-pane.vue?vue&type=template&id=9145a070& // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/tabs/src/tab-pane.vue?vue&type=script&lang=js& // // // // // // // // // // // // // /* harmony default export */ var tab_panevue_type_script_lang_js_ = ({ name: 'ElTabPane', componentName: 'ElTabPane', props: { label: String, labelContent: Function, name: String, closable: Boolean, disabled: Boolean, lazy: Boolean }, data: function data() { return { index: null, loaded: false }; }, computed: { isClosable: function isClosable() { return this.closable || this.$parent.closable; }, active: function active() { var active = this.$parent.currentName === (this.name || this.index); if (active) { this.loaded = true; } return active; }, paneName: function paneName() { return this.name || this.index; } }, updated: function updated() { this.$parent.$emit('tab-nav-update'); } }); // CONCATENATED MODULE: ./packages/tabs/src/tab-pane.vue?vue&type=script&lang=js& /* harmony default export */ var src_tab_panevue_type_script_lang_js_ = (tab_panevue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(1); // CONCATENATED MODULE: ./packages/tabs/src/tab-pane.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_tab_panevue_type_script_lang_js_, tab_panevue_type_template_id_9145a070_render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/tabs/src/tab-pane.vue" /* harmony default export */ var tab_pane = (component.exports); // EXTERNAL MODULE: external "element-ui-for-gov/lib/button" var button_ = __webpack_require__(9); var button_default = /*#__PURE__*/__webpack_require__.n(button_); // EXTERNAL MODULE: external "element-ui-for-gov/lib/message" var message_ = __webpack_require__(79); var message_default = /*#__PURE__*/__webpack_require__.n(message_); // EXTERNAL MODULE: external "element-ui-for-gov/lib/row" var row_ = __webpack_require__(42); var row_default = /*#__PURE__*/__webpack_require__.n(row_); // EXTERNAL MODULE: external "element-ui-for-gov/lib/col" var col_ = __webpack_require__(36); var col_default = /*#__PURE__*/__webpack_require__.n(col_); // EXTERNAL MODULE: external "element-ui-for-gov/lib/tree" var tree_ = __webpack_require__(31); var tree_default = /*#__PURE__*/__webpack_require__.n(tree_); // EXTERNAL MODULE: external "element-ui-for-gov/lib/utils/tree-store" var tree_store_ = __webpack_require__(81); var tree_store_default = /*#__PURE__*/__webpack_require__.n(tree_store_); // CONCATENATED MODULE: ./packages/user-picker/src/section-header.js var prefix = 'el-user-picker'; /* harmony default export */ var section_header = ({ name: 'SectionHeader', props: { title: { type: String }, selectPanelButton: { type: Function } }, render: function render() { var h = arguments[0]; var title = this.title, selectPanelButton = this.selectPanelButton; return h( 'div', { 'class': prefix + '__section-header' }, [title, selectPanelButton ? selectPanelButton() : null] ); } }); // EXTERNAL MODULE: external "element-ui-for-gov/lib/input" var input_ = __webpack_require__(8); var input_default = /*#__PURE__*/__webpack_require__.n(input_); // CONCATENATED MODULE: ./packages/user-picker/src/selected-list.js var selected_list_prefix = 'el-user-picker'; /* harmony default export */ var selected_list = ({ name: 'SelectedList', props: { label: String, checkedUsers: Array, renderChecked: Function, renderCheckedItem: Function, selectPanelButton: Function, height: Number }, components: { ElButton: button_default.a, ElInput: input_default.a, SectionHeader: section_header }, data: function data() { return { keyword: '' }; }, methods: { uncheckedUser: function uncheckedUser(user) { var index = this.checkedUsers.findIndex(function (item) { return item === user; }); this.checkedUsers.splice(index, 1); this.$emit('unchecked-user'); } }, computed: { sortedUsers: function sortedUsers() { var _this = this; var filteredUsers = this.checkedUsers.filter(function (item) { return _this.keyword ? item[_this.label].indexOf(_this.keyword) > -1 : true; }); if (this.renderChecked && typeof this.renderChecked === 'function') { return this.renderChecked(filteredUsers); } return filteredUsers; } }, render: function render() { var _this2 = this; var h = arguments[0]; var label = this.label, sortedUsers = this.sortedUsers, renderCheckedItem = this.renderCheckedItem, selectPanelButton = this.selectPanelButton; var searchWrapHeight = 64; return h( 'div', { 'class': selected_list_prefix + '__section-wrapper' }, [h(section_header, { attrs: { title: '\u5DF2\u9009\u5217\u8868', selectPanelButton: selectPanelButton } }), h( 'div', { 'class': 'filter-wrapper' }, [h(input_default.a, babel_helper_vue_jsx_merge_props_default()([{ attrs: { value: this.keyword } }, { on: { input: function input(value) { _this2.keyword = value; } } }, { attrs: { prefixIcon: 'sg-icon sg-icon-fangdajing', placeholder: '\u8BF7\u8F93\u5165\u5173\u952E\u8BCD' } }]))] ), h( 'div', { 'class': selected_list_prefix + '__section-content', style: { height: (this.height ? this.height - searchWrapHeight - 1 : 400) + 'px' } }, [h( 'ul', { 'class': selected_list_prefix + '__section-list' }, [sortedUsers.map(function (item) { return item._classify && item.list.length ? h( 'ul', { 'class': selected_list_prefix + '__section-list-children' }, [h( 'li', { 'class': selected_list_prefix + '__section-list-title' }, [item._classify] ), item.list.map(function (item) { return h('li', [renderCheckedItem && typeof renderCheckedItem === 'function' ? renderCheckedItem(item) : item[label], h('i', babel_helper_vue_jsx_merge_props_default()([{ 'class': 'el-icon-close' }, { on: { click: _this2.uncheckedUser.bind(_this2, item) } }]))]); })] ) : item[label] && h('li', [renderCheckedItem && typeof renderCheckedItem === 'function' ? renderCheckedItem(item) : item[label], h('i', babel_helper_vue_jsx_merge_props_default()([{ 'class': 'el-icon-close' }, { on: { click: _this2.uncheckedUser.bind(_this2, item) } }]))]); })] )] )] ); } }); // CONCATENATED MODULE: ./packages/user-picker/src/transfer.js var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var transfer_prefix = 'el-user-picker'; /* harmony default export */ var transfer = ({ name: 'Transfer', inject: ['handleChangeUser', 'clearChecked', 'nodeKey', 'setTreeInstance'], props: { treeProps: Object, fieldNames: Object, grid: Object, checkedUsers: Array, filterNodeMethod: Function, defaultChecked: Array, renderChecked: Function, renderCheckedItem: Function, selectPanelButton: Function, radio: Boolean, isSearchCheckAll: Boolean, height: Number, checkOnClickNode: Boolean }, components: { ElRow: row_default.a, ElCol: col_default.a, ElButton: button_default.a, ElTree: tree_default.a, SectionHeader: section_header, SelectedList: selected_list }, data: function data() { return { treeData: [], store: null, totalData: [], searchData: [], prevChecked: [], searchWrapHeight: 0 }; }, created: function created() { var _this = this; var _treeProps = this.treeProps, lazy = _treeProps.lazy, loadData = _treeProps.loadData, children = _treeProps.children, disabled = _treeProps.disabled; var fieldNames = this.fieldNames; this.store = new tree_store_default.a({ key: this.nodeKey, label: function label(data) { return data[fieldNames.parent] || data[fieldNames.userName]; }, isLeaf: function isLeaf(data) { return !!data[fieldNames.userName]; }, hideCheckbox: 'hideCheckbox', children: children || 'children', disabled: disabled || 'disabled', data: [] }); !lazy ? loadData().then(function (data) { _this.store.initData(data); _this.treeData = _this.store.data; _this.totalData = _this.treeData; _this.searchData = _this.treeData; _this.setDefaultChecked(_this.defaultChecked); }) : this.setDefaultChecked(this.defaultChecked); }, mounted: function mounted() { this.setTreeInstance(this.treeProps.key, this); this.initFilterResize(); }, watch: { defaultChecked: function defaultChecked(users) { var _this2 = this; this.$nextTick(function () { _this2.setDefaultChecked(users); }); }, checkedUsers: function checkedUsers(arr) { var _this3 = this; var nodes = []; arr.forEach(function (item) { var cache = _this3.store.getNodes(item); nodes = nodes.concat(cache); }); this.prevChecked = [].concat(nodes); // console.log('selected nodes: ', nodes); this.$nextTick(function () { _this3.setCheckedNodes(nodes); }); } }, methods: { initFilterResize: function initFilterResize() { var _this4 = this; var filterWrapper = this.$el.querySelector('.custom-filter-wrapper'); if (filterWrapper) { try { var resizeObserver = new ResizeObserver(function (entries) { for (var _iterator = entries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; if (_isArray) { if (_i >= _iterator.length) break; _ref = _iterator[_i++]; } else { _i = _iterator.next(); if (_i.done) break; _ref = _i.value; } var entry = _ref; if (entry.contentRect.height > 0) { _this4.searchWrapHeight = filterWrapper.offsetHeight; } } }); resizeObserver.observe(filterWrapper); } catch (e) { this.$nextTick(function () { _this4.searchWrapHeight = filterWrapper.offsetHeight; }); } } }, setDefaultChecked: function setDefaultChecked(keys) { var _this5 = this; // console.log(ids); var users = []; keys.forEach(function (user) { // console.log(user); var nodes = (typeof user === 'undefined' ? 'undefined' : _typeof(user)) === 'object' ? [{ data: user }] : _this5.store.getNodesByKey(user); if (nodes.length) { users.push(nodes[0].data); } }); this.handleChangeUser(users); }, handleCheck: function handleCheck(node, _ref2) { var checkedNodes = _ref2.checkedNodes; if (this.radio) { var users = []; if (checkedNodes.includes(node)) { users = [node.data]; } this.handleChangeUser(users); } else { var deleteArr = this.store.difference(this.prevChecked, checkedNodes.filter(function (node) { return node.isLeaf; })); // console.log(deleteArr); var _users = checkedNodes.filter(function (node) { return node.isLeaf; }).map(function (item) { return item.data; }); var deleteUsers = deleteArr.filter(function (node) { return node.isLeaf; }).map(function (item) { return item.data; }); this.handleChangeUser(_users, deleteUsers); } }, getCheckedNodes: function getCheckedNodes() { var nodes = this.$refs['tree'].getCheckedNodes(); var users = nodes.filter(function (node) { return node.isLeaf; }).map(function (item) { return item.data; }); if (this.radio) { if (users && users.length) { this.handleChangeUser(users, []); } } else { this.handleChangeUser(users, []); } }, checkAll: function checkAll() { var _this6 = this; console.log('checkAll'); var checkAllMethod = this.treeProps.checkAllMethod; if (checkAllMethod) { checkAllMethod(this, function (users) { _this6.handleChangeUser(users); }); } else { var users = []; var traverse = function traverse(arr) { arr.forEach(function (item) { if (item.isLeaf && !item.disabled) { users.push(item.data); } else if (item.children) { traverse(item.children); } }); }; if (this.isSearchCheckAll) { traverse(this.searchData); } else { traverse(this.totalData); } this.handleChangeUser(users); } }, setCheckedNodes: function setCheckedNodes(nodes) { this.$refs['tree'].setCheckedNodes(nodes); }, filter: function filter(value) { var _this7 = this; var filteredData = []; var traverse = function traverse(arr) { arr.forEach(function (item) { if (_this7.filterNodeMethod(value, item, item)) { filteredData.push(item); } else if (item.children) { traverse(item.children); } }); }; traverse(this.totalData); this.searchData = filteredData; this.$refs['tree'].filter(value); }, setTreeData: function setTreeData(data) { this.store.initData(data, this.treeProps.lazy); this.treeData = this.store.data; this.searchData = this.store.data; this.setDefaultChecked(this.defaultChecked); }, bfsRegisterNode: function bfsRegisterNode(data, current) { var _this8 = this; var getChildren = function getChildren(node) { var children = _this8.treeProps.children || 'children'; return typeof children === 'function' ? children(node) : node[children]; }; var queue = [{ root: true, children: data }]; var queueNode = [current]; while (queue.length) { var head = queue.shift(); var parent = queueNode.shift(); if (Array.isArray(head.children)) { for (var i = 0, len = head.children.length; i < len; i++) { var node = this.store.registerNode(head.children[i]); node.parent = parent; parent.children.push(node); queue.push(_extends({}, head.children[i], { children: getChildren(head.children[i]) })); queueNode.push(node); } } } }, bfsTravel: function bfsTravel(node, cb) { var queue = [node]; while (queue.length) { var head = queue.shift(); cb && cb(head); if (Array.isArray(head.children)) { for (var i = 0; i < head.children.length; i++) { queue.push(head.children[i]); } } } }, loadDataAsync: function loadDataAsync(node, resolve, isCheck) { var _this9 = this; var loadDataAsync = this.treeProps.loadDataAsync; // console.log('load', node); loadDataAsync(node.data ? node.data : node, function (data) { // console.log(data); if (data && data.length > 0) { var current = !node.parent ? { children: [] } : node.data; _this9.bfsRegisterNode(data, current); if (!node.parent) { _this9.store.data = current.children; _this9.totalData = _this9.store.data; _this9.searchData = _this9.store.data; } if (!isCheck) { if (_this9.radio) { if (_this9.checkedUsers && _this9.checkedUsers.length && _this9.defaultChecked.length) { if (_this9.checkedUsers[0].id && _this9.checkedUsers[0].id === _this9.defaultChecked[0].id) { _this9.setDefaultChecked([_this9.defaultChecked[0]]); } } } else { var sList = []; _this9.checkedUsers.forEach(function (node) { _this9.defaultChecked.forEach(function (nodeD) { if (nodeD.key && nodeD.key === node.key) { sList.push(node); } }); }); _this9.setDefaultChecked(sList); } } else { var selectList = []; _this9.bfsTravel(current, function (node) { if (!node.disabled && node.isLeaf) { selectList.push(node.key); } }); _this9.defaultChecked.forEach(function (item) { if (!selectList.includes(item)) { selectList.push(item); } }); _this9.setDefaultChecked(selectList); } return resolve(current.children); } else { return resolve([]); } }, isCheck); } }, render: function render() { var h = arguments[0]; var treeData = this.treeData, fieldNames = this.fieldNames, treeProps = this.treeProps, checkedUsers = this.checkedUsers, $slots = this.$slots, renderChecked = this.renderChecked, renderCheckedItem = this.renderCheckedItem, selectPanelButton = this.selectPanelButton, height = this.height, checkOnClickNode = this.checkOnClickNode; return h(row_default.a, [h( col_default.a, { attrs: { span: 10 } }, [h( 'div', { 'class': transfer_prefix + '__section-wrapper' }, [h(section_header, { attrs: { title: '\u5F85\u9009\u5217\u8868' } }), $slots.filter && h( 'div', { 'class': 'custom-filter-wrapper' }, [$slots.filter] ), h( 'div', { 'class': transfer_prefix + '__section-content', style: { height: (height ? height - this.searchWrapHeight - 1 : 464 - this.searchWrapHeight) + 'px' } }, [h(tree_default.a, babel_helper_vue_jsx_merge_props_default()([{ ref: 'tree', attrs: { lazy: treeProps.lazy, data: treeData, nodeKey: 'id', load: this.loadDataAsync, props: { hideCheckbox: 'hideCheckbox', isLeaf: function isLeaf(item) { return item.isLeaf; } }, 'show-checkbox': true, checkOnClickNode: checkOnClickNode, 'expand-on-check': treeProps.lazy, filterNodeMethod: this.filterNodeMethod } }, { on: { // 'check-change': treeProps.lazy ? this.handleCheckChange : this.getCheckedNodes, 'node-expand': treeProps.lazy ? this.getCheckedNodes : function () {}, 'check': this.handleCheck } }]))] )] )] ), h( col_default.a, { attrs: { span: 4 }, 'class': transfer_prefix + '__section-btns' }, [!this.radio && h( button_default.a, { on: { click: this.checkAll } }, ['\u5168\u9009', h('i', { 'class': 'el-icon-arrow-right' })] ), h('br'), h( button_default.a, { on: { click: this.clearChecked } }, ['\u6E05\u7A7A\u5DF2\u9009'] )] ), h( col_default.a, { attrs: { span: 10 } }, [h(selected_list, { attrs: { height: this.height, checkedUsers: checkedUsers, label: fieldNames.userName, renderChecked: renderChecked, renderCheckedItem: renderCheckedItem, selectPanelButton: selectPanelButton } })] )]); } }); // CONCATENATED MODULE: ./packages/user-picker/src/picker-panel.js /* harmony default export */ var picker_panel = ({ name: 'PickerPanel', components: { Transfer: transfer }, props: { defaultChecked: Array, treeProps: Object, checkedUsers: Array, renderChecked: Function, renderCheckedItem: Function, selectPanelButton: Function, radio: Boolean, isSearchCheckAll: Boolean, height: Number, checkOnClickNode: Boolean }, render: function render() { var h = arguments[0]; var _treeProps = this.treeProps, parentName = _treeProps.parentName, userName = _treeProps.userName, renderFilter = _treeProps.renderFilter, filterNodeMethod = _treeProps.filterNodeMethod; return h( transfer, { ref: 'tree', 'class': this.radio ? 'radio' : '', attrs: { fieldNames: { parent: parentName, userName: userName }, height: this.height, treeProps: this.treeProps, filterNodeMethod: filterNodeMethod, defaultChecked: this.defaultChecked, checkedUsers: this.checkedUsers, renderChecked: this.renderChecked, renderCheckedItem: this.renderCheckedItem, selectPanelButton: this.selectPanelButton, radio: this.radio, isSearchCheckAll: this.isSearchCheckAll, checkOnClickNode: this.checkOnClickNode } }, [h( 'template', { slot: 'filter' }, [renderFilter && renderFilter(this.$refs['tree'])] )] ); } }); // CONCATENATED MODULE: ./packages/user-picker/src/user-picker.js var user_picker_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* harmony default export */ var user_picker = ({ name: 'UserPicker', components: { ElDialog: dialog_default.a, ElTabs: tabs_default.a, ElTabPane: tab_pane, ElButton: button_default.a, PickerPanel: picker_panel }, props: { title: { type: String, default: '选择人员' }, visible: { type: Boolean }, required: { type: Boolean, default: true }, requiredTips: { type: String, default: '请选择人员' }, userUniqueId: { type: String, default: 'id' }, defaultChecked: { type: Array, default: function _default() { return []; } }, tabs: { type: Array, default: function _default() { return []; } }, confirmText: { type: String, default: '确定' }, cancelText: { type: String, default: '取消' }, renderChecked: { type: Function }, renderCheckedItem: { type: Function }, selectPanelButton: { type: Function }, radio: { type: Boolean, default: false }, isSearchCheckAll: { type: Boolean, default: true }, dialogProps: { type: Object, default: function _default() {} }, poppable: { type: Boolean, default: true }, loading: Boolean, height: String, checkOnClickNode: { type: Boolean, default: false } }, data: function data() { return { checkedUsers: [], defaultCheckUsers: [], treeInstances: {}, currTabsVal: this.tabs[0] ? this.tabs[0].key : '0' }; }, provide: function provide() { return { handleChangeUser: this.handleChangeUser, clearChecked: this.clearChecked, nodeKey: this.userUniqueId, setTreeInstance: this.setTreeInstance }; }, watch: { visible: { handler: function handler(val) { if (val) { this.defaultCheckUsers = this.defaultChecked.slice(); } }, immediate: true }, defaultChecked: { handler: function handler() { if (!this.poppable) { this.defaultCheckUsers = this.defaultChecked.slice(); } }, immediate: true }, checkedUsers: { handler: function handler(val) { // console.log('watch-checkedUsers', val); this.$emit('changeUser', val); }, immediate: true }, tabs: function tabs(val, old) { if (old.length === 0 && val.length > 0) { if (val[0]) this.currTabsVal = val[0].key; } } }, methods: { getTreeInstance: function getTreeInstance() { return this.treeInstances; }, setTreeInstance: function setTreeInstance(key, $tree) { // console.log('setTreeInstance', key); this.treeInstances[key] = $tree; this.$emit('mounted-tree', { key: key, $tree: $tree }); }, handleChangeUser: function handleChangeUser(users) { var _this = this; var deleteUsers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; if (this.radio) { this.checkedUsers = users; } else { var arr = []; var unique = {}; // console.log('handleChangeUser-this.checkedUsers', this.checkedUsers); this.checkedUsers.concat(users).forEach(function (user) { var del = deleteUsers.find(function (del) { return del[_this.userUniqueId] === user[_this.userUniqueId]; }); if (!unique[user[_this.userUniqueId]] && !del) { arr.push(user); unique[user[_this.userUniqueId]] = user; } }); this.checkedUsers = arr; } }, clearChecked: function clearChecked() { this.checkedUsers = []; this.defaultCheckUsers = []; }, handleCancel: function handleCancel(e) { this.checkedUsers = []; this.$emit('cancel'); }, handleConfirm: function handleConfirm() { if (this.required && this.checkedUsers.length === 0) { message_default.a.error(this.requiredTips); return; } this.$emit('confirm', this.checkedUsers.slice(0)); this.checkedUsers = []; }, onTabClick: function onTabClick(tab) { try { if (tab.$children && tab.$children[0] && tab.$children[0].$refs.tree) { tab.$children[0].$refs.tree.adjustFilterHeight(); } } catch (e) {} }, onTabsChange: function onTabsChange(val) { this.currTabsVal = val; } }, render: function render() { var h = arguments[0]; var title = this.title, visible = this.visible, checkedUsers = this.checkedUsers, defaultCheckUsers = this.defaultCheckUsers, tabs = this.tabs, confirmText = this.confirmText, cancelText = this.cancelText, renderChecked = this.renderChecked, renderCheckedItem = this.renderCheckedItem, selectPanelButton = this.selectPanelButton, radio = this.radio, isSearchCheckAll = this.isSearchCheckAll, dialogProps = this.dialogProps, poppable = this.poppable, loading = this.loading, checkOnClickNode = this.checkOnClickNode; var HEADER_HEIGHT = 59; var TAB_HEIGHT = tabs.length > 1 ? 56 : 0; var TRAN_HEIGHT = this.height ? Number(this.height.replace('px', '')) - TAB_HEIGHT - HEADER_HEIGHT : null; if (poppable) { return h( dialog_default.a, babel_helper_vue_jsx_merge_props_default()([{ attrs: { 'append-to-body': true, 'close-on-click-modal': false, title: title, visible: visible } }, { on: { 'update:visible': this.handleCancel }, props: user_picker_extends({}, dialogProps) }, { attrs: { width: '1000px' } }]), [this.$slots.header && h( 'template', { slot: 'header' }, [this.$slots.header] ), h( 'div', { 'class': 'el-user-picker', style: { height: this.height }, directives: [{ name: 'loading', value: loading }] }, [tabs.length > 1 && h( tabs_default.a, babel_helper_vue_jsx_merge_props_default()([{ attrs: { value: this.currTabsVal }, on: { 'input': this.onTabsChange } }, { on: { 'tab-click': this.onTabClick } }]), [tabs.map(function (tab, i) { return h( tab_pane, { key: tab.key, attrs: { label: tab.title, name: tab.key || i + '' } }, [h(picker_panel, { attrs: { checkOnClickNode: checkOnClickNode, height: TRAN_HEIGHT, defaultChecked: defaultCheckUsers, checkedUsers: checkedUsers, treeProps: tab, renderChecked: renderChecked, renderCheckedItem: renderCheckedItem, selectPanelButton: selectPanelButton, radio: radio, isSearchCheckAll: isSearchCheckAll } })] ); })] ), tabs.length === 1 && h(picker_panel, { attrs: { checkOnClickNode: checkOnClickNode, height: TRAN_HEIGHT, defaultChecked: defaultCheckUsers, checkedUsers: checkedUsers, treeProps: tabs[0], renderChecked: renderChecked, renderCheckedItem: renderCheckedItem, selectPanelButton: selectPanelButton, radio: radio, isSearchCheckAll: isSearchCheckAll } })] ), h( 'span', { 'class': 'dialog-footer', slot: 'footer' }, [h( button_default.a, { on: { click: this.handleCancel } }, [cancelText] ), h( button_default.a, babel_helper_vue_jsx_merge_props_default()([{ attrs: { type: 'primary' } }, { on: { click: this.handleConfirm } }]), [confirmText] )] )] ); } else { return h( 'div', { 'class': 'el-user-picker', style: { height: this.height }, directives: [{ name: 'loading', value: loading }] }, [tabs.length > 1 && h( tabs_default.a, { attrs: { value: this.currTabsVal }, on: { 'input': this.onTabsChange } }, [tabs.map(function (tab, i) { return h( tab_pane, { key: tab.key, attrs: { label: tab.title, name: tab.key || i + '' } }, [h(picker_panel, { attrs: { height: TRAN_HEIGHT, defaultChecked: defaultCheckUsers, checkOnClickNode: checkOnClickNode, checkedUsers: checkedUsers, treeProps: tab, renderChecked: renderChecked, selectPanelButton: selectPanelButton, renderCheckedItem: renderCheckedItem, radio: radio, isSearchCheckAll: isSearchCheckAll } })] ); })] ), tabs.length === 1 && h(picker_panel, { attrs: { height: TRAN_HEIGHT, defaultChecked: defaultCheckUsers, checkOnClickNode: checkOnClickNode, checkedUsers: checkedUsers, treeProps: tabs[0], renderChecked: renderChecked, renderCheckedItem: renderCheckedItem, selectPanelButton: selectPanelButton, radio: radio, isSearchCheckAll: isSearchCheckAll } })] ); } } }); // CONCATENATED MODULE: ./packages/user-picker/index.js /* istanbul ignore next */ user_picker.install = function (Vue) { Vue.component(user_picker.name, user_picker); }; /* harmony default export */ var packages_user_picker = __webpack_exports__["default"] = (user_picker); /***/ }), /***/ 31: /***/ (function(module, exports) { module.exports = require("element-ui-for-gov/lib/tree"); /***/ }), /***/ 36: /***/ (function(module, exports) { module.exports = require("element-ui-for-gov/lib/col"); /***/ }), /***/ 41: /***/ (function(module, exports) { module.exports = require("element-ui-for-gov/lib/dialog"); /***/ }), /***/ 42: /***/ (function(module, exports) { module.exports = require("element-ui-for-gov/lib/row"); /***/ }), /***/ 79: /***/ (function(module, exports) { module.exports = require("element-ui-for-gov/lib/message"); /***/ }), /***/ 8: /***/ (function(module, exports) { module.exports = require("element-ui-for-gov/lib/input"); /***/ }), /***/ 81: /***/ (function(module, exports) { module.exports = require("element-ui-for-gov/lib/utils/tree-store"); /***/ }), /***/ 9: /***/ (function(module, exports) { module.exports = require("element-ui-for-gov/lib/button"); /***/ }) /******/ });