UNPKG

mvue-components

Version:

品高云平台组件

1,935 lines (1,773 loc) 252 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["index"] = factory(); else root["index"] = factory(); })(window, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // 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 = "/test/dist"; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); /******/ }) /************************************************************************/ /******/ ({ /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/childheader/index.vue?vue&type=script&lang=js&": /*!*********************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/childheader/index.vue?vue&type=script&lang=js& ***! \*********************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // // // // // // // /* harmony default export */ __webpack_exports__["default"] = ({ props: { title: { type: String }, subtitle: { type: String }, showBack: { type: Boolean, "default": true }, backRoute: { type: Object // 点击返回的route,为空则返回上一页 } }, data: function data() { return {}; }, methods: { back: function back() { if (this.backRoute) { if (_.isString(this.backRoute)) { this.$router.push({ path: this.backRoute }); } else { this.$router.push(this.backRoute); } } else { this.$router.go(-1); } } } }); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/header/header.vue?vue&type=script&lang=js&": /*!*****************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/header/header.vue?vue&type=script&lang=js& ***! \*****************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _libs_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../libs/context */ "./src/libs/context.js"); // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ __webpack_exports__["default"] = ({ props: { title: { type: [String, Boolean], "default": "品高云平台" }, logo: { type: String, "default": "static/images/logo.png" }, btns: { type: Array, "default": function _default() { return []; } }, showCollapseIcon: { type: Boolean, "default": false }, avatar: { type: Object }, redirectHomeAfterLogout: { //注销按钮跳转路径设置,设置为true将跳回主页 type: Boolean, "default": false }, logoutRedirectUrl: { //外部指定注销后跳转地址 type: String } }, data: function data() { return { user: { name: "匿名用户" } }; }, computed: { avatarSrc: function avatarSrc() { if (this.avatar && this.avatar.src) { return this.avatar.src; } return undefined; }, avatarIcon: function avatarIcon() { if (this.avatar && this.avatar.icon) { return this.avatar.icon; } return 'md-person'; }, avatarShape: function avatarShape() { if (this.avatar && this.avatar.shape) { return this.avatar.shape; } return 'square'; }, avatarSize: function avatarSize() { if (this.avatar && this.avatar.size) { return this.avatar.size; } return 'default'; } }, mounted: function mounted() { var session = _libs_context__WEBPACK_IMPORTED_MODULE_0__["default"].getSession(); this.user = session.getCurrentUser(); }, methods: { handleClickDropdown: function handleClickDropdown(nameOrIndex) { if (nameOrIndex === 'logout') { this.logout(); } else { var btn = this.btns[nameOrIndex]; if (!btn.disabled) { btn && btn.onclick(); } } }, logout: function logout() { var redirectUrl = null; if (this.logoutRedirectUrl) { redirectUrl = this.logoutRedirectUrl; } else if (this.redirectHomeAfterLogout) { redirectUrl = window.location.href; if (redirectUrl.indexOf('#') > 0) { redirectUrl = redirectUrl.substring(0, redirectUrl.indexOf('#')); } } _libs_context__WEBPACK_IMPORTED_MODULE_0__["default"].getSession().doLogout(redirectUrl); }, collapsedSider: function collapsedSider() { _libs_context__WEBPACK_IMPORTED_MODULE_0__["default"].getEventBus().$emit("toggle-menus"); }, handleOnAvatarError: function handleOnAvatarError(evt) { this.$emit('on-avatar-error', evt); } } }); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/iframe/entry.vue?vue&type=script&lang=js&": /*!****************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/iframe/entry.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // // // // // /* harmony default export */ __webpack_exports__["default"] = ({ props: { src: { type: String }, height: { type: [String, Number], "default": "500px" }, overflow: { type: String, "default": "hidden" }, scrolling: { type: String, "default": "no" } }, data: function data() { return { iframeId: _.uniqueId("iframe_"), isShow: true, styleObject: { width: "100%", border: 0, overflow: this.overflow, height: this.height } }; }, watch: { height: function height(val) { this.styleObject.height = val; }, src: function src() { this.styleObject.height = this.height; } }, computed: { innerSrc: function innerSrc() { var url = this.src; if (url.indexOf('?') > 0) { url += "&"; } else { url += "?"; } return url + "_iframeId=" + this.iframeId; } }, mounted: function mounted() { if (window.addEventListener) { window.addEventListener("message", this.onMessage, false); } else { window.attachEvent("onmessage", this.onMessage, false); } }, beforeDestroy: function beforeDestroy() { if (window.removeEventListener) { window.removeEventListener("message", this.onMessage, false); } else { window.detachEvent("onmessage", this.onMessage, false); } }, methods: { containerHeight: function containerHeight() { var ifrObj = document.getElementById(this.iframeId); var offsetHeight = ifrObj.offsetHeight; var height = window.innerHeight - offsetHeight; return height; }, postMessage: function postMessage(data, targetOrigin) { if (_.isEmpty(targetOrigin)) { targetOrigin = "*"; } var ifrObj = document.getElementById(this.iframeId); ifrObj.contentWindow.postMessage(data, targetOrigin); }, setHeight: function setHeight(height) { if (!height) { height = this.containerHeight(); } this.styleObject.height = height + "px"; }, /** * * @param event {data,origin ,source} */ onMessage: function onMessage(event) { if (!this.isShow) { return; } var eventData = event.data; var ifrIdInEvent = eventData.iframeId; if (this.iframeId == ifrIdInEvent && "resize" == eventData.action) { this.setHeight(eventData.params && eventData.params.height); } else if (this.iframeId == ifrIdInEvent && "close" == eventData.action) { this.isShow = false; } this.$emit("on-message", event); } } }); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/list/config-columns.vue?vue&type=script&lang=js&": /*!***********************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/list/config-columns.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _libs_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../libs/context */ "./src/libs/context.js"); // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ __webpack_exports__["default"] = ({ props: { columns: { type: Array, required: true }, modalTitle: { type: String, "default": '自定义列表' }, modalWidth: { type: Number, "default": 60 }, modalHeight: { type: Number, "default": function _default() { if (!document.documentElement) { return 400; } var clientHeight = document.documentElement.clientHeight - 220; return clientHeight > 0 ? clientHeight : 400; } } }, data: function data() { var _defaultHidden = []; _.each(this.columns, function (col) { if (col.hidden && col.hasOwnProperty('key')) { _defaultHidden.push(col.key); } }); return { popupWidgetModal: false, selectedColumns: [], defaultHidden: _defaultHidden }; }, mounted: function mounted() { this.selectedColumns = this.buildSelectedColumns(); var key = this.getKey(); //只有配置过列,才需要重置grid的列 if (localStorage.hasOwnProperty(key)) { this.notifyOk(true); } }, methods: { buildSelectedColumns: function buildSelectedColumns() { var _selectedColumns = []; var key = this.getKey(); var colConf = null, hiddenColumns = []; //如果localStorage存在当前grid的隐藏列配置,则从localStorage读取 if (localStorage.hasOwnProperty(key)) { colConf = localStorage.getItem(key); colConf = colConf.split(","); if (!colConf[0].includes(':')) { hiddenColumns = colConf; } else { //标记哪些列配置过了 var colConfMap = {}; colConf.forEach(function (conf) { var t = conf.split(':'); //这里用true和false只是为了可读,表示此列是隐藏或者显示,没什么用,只做标记而已 colConfMap[t[0]] = t[1] == '1' ? true : false; //写入配置为hidden的列 if (t[1] !== '1') { hiddenColumns.push(t[0]); } }); //如果列是后来添加的,并配置了hidden,则加到hiddenColumns中 this.columns.forEach(function (col) { if (col.key && col.hidden && !colConfMap.hasOwnProperty(col.key)) { hiddenColumns.push(col.key); } }); } } else { //如果没有设置,使用默认配置 hiddenColumns = _.cloneDeep(this.defaultHidden); } _.each(this.columns, function (col) { if (!_.includes(hiddenColumns, col.key)) { _selectedColumns.push(col.key); } }); return _selectedColumns; }, getKey: function getKey() { //localStorage存储的当前列表的隐藏列数据key var keyPrefix = "_config_columns_"; var webCtx = _libs_context__WEBPACK_IMPORTED_MODULE_0__["default"].getMvueToolkit().utils.getWebContext(); var gridId = this.$parent.id; var routeKey = this.$route.name || this.$route.path; if (gridId) { return "" + keyPrefix + webCtx + "_" + gridId; } return "" + keyPrefix + webCtx + "_" + routeKey; }, toggleModal: function toggleModal() { this.popupWidgetModal = !this.popupWidgetModal; if (this.popupWidgetModal) { this.selectedColumns = this.buildSelectedColumns(); } }, close: function close() { this.popupWidgetModal = false; }, notifyOk: function notifyOk(first) { var _this = this; //通知列表改变显示的列 var okColumns = this.columns.filter(function (col) { if (col.key) { return _.includes(_this.selectedColumns, col.key); } return true; }); this.$emit("on-change-columns", okColumns, first); }, confirmData: function confirmData() { this.notifyOk(); this.saveConfig(); this.close(); }, saveConfig: function saveConfig() { var _this2 = this; //将隐藏的列保存到localStorage 格式:name:1,title:0 var colConfs = []; _.each(this.columns, function (col) { if (col.title && col.key) { if (_.includes(_this2.selectedColumns, col.key)) { colConfs.push(col.key + ":1"); } else { colConfs.push(col.key + ":0"); } } }); var key = this.getKey(); localStorage.setItem(key, colConfs.join(',')); } } }); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/list/list.vue?vue&type=script&lang=js&": /*!*************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/list/list.vue?vue&type=script&lang=js& ***! \*************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _libs_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../libs/context */ "./src/libs/context.js"); // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ __webpack_exports__["default"] = ({ props: { hidePagerIfOnePage: { //如果只有一页数据,是否隐藏分页页脚 type: Boolean, "default": false }, wrapperClass: { type: [String, Object, Array], "default": "default-list-wrapper" }, columns: { //列描述 type: Array, "default": function _default() { return []; } }, stripe: { type: Boolean, "default": false }, border: { type: Boolean, "default": false }, showHeader: { type: Boolean, "default": true }, showRefreshBtn: { type: Boolean, "default": true }, showConfigColumnsBtn: { type: Boolean, "default": true }, width: { type: [Number, String] }, height: { type: [Number, String] }, disabledHover: { type: Boolean, "default": false }, highlightRow: { type: Boolean, "default": false }, rowClassName: { type: Function, "default": function _default() { return ''; } }, size: { type: String }, noDataText: { type: String }, noFilteredDataText: { type: String }, pager: { //是否启用分页 type: [Boolean, String], "default": true }, pageSize: { //每页条数 type: Number, "default": 10 }, pageSizeOpts: { //每页可设置的条数数组 type: Array, "default": function _default() { return [10, 20, 50, 100]; } }, query: { //数据加载方法 type: Function, required: true }, toolbar: { //工具栏操作按钮定义 type: Object, "default": function _default() { return {}; } }, filters: { //高级查询的条件和列表头部的筛选条件设置 type: Object }, defaultSort: { //默认排序设置{key:'',order:'desc'} type: Object }, id: { //用来唯一标志一个列表,用于存储列表的配置数据key,如配置列数据本地存储的key type: String }, curPage: { type: Number, "default": 1 }, loadDataWhenMount: { type: Boolean, "default": true }, maxLocalSize: { type: Number, "default": 1000 }, externalLocalPagerData: { //本地分页的外部数据 type: Array } }, data: function data() { var _innerColumns = this.convertColumns(); var _visibleColumns = this.buildVisibleColumns(_innerColumns); return { localPagerDataLoaded: false, innerColumns: _innerColumns, visibleColumns: _visibleColumns, loading: false, localPagerData: [], data: [], total: 0, quicksearchKeyword: "", currentPage: this.curPage, selectedItems: null, //选中的所有行数据 sort: this.defaultSort ? Object.assign({}, this.defaultSort) : null //当前排序:{key:'',order:'desc'} }; }, computed: { btnSizeBeforeMore: function btnSizeBeforeMore() { //在[更多操作]按钮前显示的按钮个数 var size = this.toolbar && this.toolbar.btnSizeBeforeMore; return size || 1; }, localPager: function localPager() { //pager:'local',表示启用本地分页,换页和改变每页记录数不向服务端请求数据 return this.pager === 'local'; }, remotePager: function remotePager() { //pager:true,开启了远程分页 return this.pager === true; }, hidePager: function hidePager() { if (!this.hidePagerIfOnePage) { return false; } //如果开启了单页隐藏分页开关,并且只有一页,隐藏分页区域 if (this.total <= this.pageSize) { return true; } return false; } }, watch: { quicksearchKeyword: function quicksearchKeyword() { var _this = this; if (this.pager) { //智能搜索包装器,在用户快速输入时先不查询,直到用户输入完毕再查询 _libs_context__WEBPACK_IMPORTED_MODULE_0__["default"].getMvueToolkit().utils.smartSearch(this, function () { _this.currentPage = 1; _this.doReload(); }, "quickSearchKey"); } } }, mounted: function mounted() { if (this.loadDataWhenMount) { this.doReload(); } }, methods: { //转换column到innerColumns,此接口在配置列显示隐藏后会调用,此时okColumns将代替原始columns convertColumns: function convertColumns(okColumns) { var _this2 = this; var _innerColumns = []; _.each(okColumns || this.columns, function (col) { var _col = Object.assign({}, col); //iview table序号列不能根据分页自增,所以替换掉 if (col.type == 'index') { _col.type = undefined; _col.render = function (h, params) { if (_this2.pager) { var pageIndex = _this2.currentPage - 1; var pageSize = _this2.$refs.pageRef.currentPageSize; var _index = params.index; var index = pageIndex * pageSize + _index + 1; return h("div", index); } else { return h('div', params.index + 1); } }; } _innerColumns.push(_col); }); return _innerColumns; }, reloadLocalPagerData: function reloadLocalPagerData(forceUseLocal) { //本地分页数据重新加载 var currentPageSize = this.$refs.pageRef.currentPageSize; var currentPage = this.currentPage; var start = (currentPage - 1) * currentPageSize; if (!forceUseLocal && this.externalLocalPagerData) { this.data = _.cloneDeep(this.externalLocalPagerData.slice(start, start + currentPageSize)); } else { this.data = this.localPagerData.slice(start, start + currentPageSize); } }, //重新加载数据 doReload: function doReload(resetPage) { var _this3 = this; if (resetPage) { this.currentPage = 1; } //清空所有选项 this.selectedItems = null; var currentPageSize = this.$refs.pageRef && this.$refs.pageRef.currentPageSize; var currentPage = this.currentPage; this.loading = true; var queryCtx = { currentPage: currentPage, currentPageSize: currentPageSize, quicksearchKeyword: this.quicksearchKeyword, quicksearchFields: this.toolbar && this.toolbar.quicksearch && this.toolbar.quicksearch.fields, sort: this.sort, filters: this.filters }; //本地分页 if (this.localPager) { this.queryForLocalPager(queryCtx); } else { //远程分页 this.query(queryCtx).then(function (_ref) { var data = _ref.data, total = _ref.total; _this3.loading = false; _this3.total = total; _this3.data = [].concat(data); }, function (err) { console.error(err); _this3.loading = false; }); } }, queryForLocalPager: function queryForLocalPager(queryCtx) { var _this4 = this; //如果是本地分页,先通过分页query接口,查询第一页,每页数设置为maxLocalSize查询数据 //1 如果返回的total小于等于maxLocalSize,则使用本次数据作为本地数据 //2 如果返回的total大于maxLocalSize,则再次查询第一页,每页数设置为total查询数据,使用这次查询的数据作为本地数据 queryCtx.currentPage = 1; queryCtx.currentPageSize = this.maxLocalSize; this.query(queryCtx).then(function (_ref2) { var data = _ref2.data, total = _ref2.total; _this4.total = total; if (total <= _this4.maxLocalSize) { _this4.loading = false; _this4.localPagerData = data; _this4.reloadLocalPagerData(true); } else { queryCtx.currentPage = 1; queryCtx.currentPageSize = total; if (!_this4.localPagerDataLoaded) { queryCtx.localPagerSecondLoad = true; } _this4.query(queryCtx).then(function (_ref3) { var data = _ref3.data, total = _ref3.total; _this4.localPagerDataLoaded = true; _this4.loading = false; _this4.localPagerData = data; _this4.reloadLocalPagerData(true); }, function () { _this4.loading = false; }); } }, function (err) { console.error(err); _this4.loading = false; }); }, //选择单行 handleOnCurrentChange: function handleOnCurrentChange(currentRow, oldCurrentRow) { this.$emit("on-current-change", currentRow, oldCurrentRow); }, handleOnSelect: function handleOnSelect(selection, row) { this.$emit("on-select", selection, row); }, handleOnSelectCancel: function handleOnSelectCancel(selection, row) { this.$emit("on-select-cancel", selection, row); }, handleOnSelectAllCancel: function handleOnSelectAllCancel(selection) { this.$emit("on-select-all-cancel", selection); }, handleOnSelectAll: function handleOnSelectAll(selection) { this.$emit("on-select-all", selection); }, //选择多行 handleOnSelectionChange: function handleOnSelectionChange(selection) { this.selectedItems = selection; this.$emit("on-selection-change", selection); }, //单击行 handleOnRowClick: function handleOnRowClick(row, index) { this.$emit("on-row-click", row, index); }, handleOnRowDblclick: function handleOnRowDblclick(row, index) { this.$emit("on-row-dblclick", row, index); }, handleOnExpand: function handleOnExpand(row, status) { this.$emit("on-expand", row, status); }, //排序列 handleSortChange: function handleSortChange(_ref4) { var column = _ref4.column, key = _ref4.key, order = _ref4.order; if (order == "normal") { this.sort = this.defaultSort ? Object.assign({}, this.defaultSort) : null; } else { this.sort = { key: key, order: order }; } this.doReload(true); this.$emit("on-sort-change", { column: column, key: key, order: order }); }, handleOnFilterChange: function handleOnFilterChange(row) { this.$emit("on-filter-change", row); }, pageChangeReload: function pageChangeReload() { if (this.localPager) { this.reloadLocalPagerData(); } else if (this.remotePager) { this.doReload(); } }, //分页页码切换 handleCurrentPageChange: function handleCurrentPageChange(currentPage) { this.pageChangeReload(); }, //每页条数切换 handlePageSizeChange: function handlePageSizeChange(pageSize) { //切换条数后,页码变为第一页,如果当前页不是第一页会激发分页页码变化,所以这里阻止一下,不重复reload if (this.currentPage > 1) { return; } this.pageChangeReload(); }, //普通按钮点击,数据无关的操作 onBtnClick: function onBtnClick(btn) { if (this.btnIsDisabled(btn)) { return false; } if (btn.onclick) { btn.onclick({ listInst: this, selectedItems: this.selectedItems }); } }, //判断按钮是否禁用 btnIsDisabled: function btnIsDisabled(btn) { //btn 写了disabled:true if (btn.disabled === true) { return true; } else if (_.isFunction(btn.disabled)) { var ctx = { listInst: this, selectedItems: this.selectedItems }; return btn.disabled(ctx, btn); } return false; }, //更多操作按钮点击 handleMoreClick: function handleMoreClick(index) { var btn = this.toolbar.btns[index]; this.onBtnClick(btn); }, //配置显示和隐藏列 handleChangeColumns: function handleChangeColumns(okColumns, first) { this.visibleColumns = this.convertColumns(okColumns); this.$emit('on-columns-modified', first); }, buildVisibleColumns: function buildVisibleColumns(_innerColumns) { var _visibleColumns = []; if (_.isEmpty(_innerColumns)) { return _visibleColumns; } _innerColumns.forEach(function (col) { if (!col.hidden) { _visibleColumns.push(col); } }); return _visibleColumns; } }, components: { configColumns: __webpack_require__(/*! ./config-columns */ "./src/components/list/config-columns.vue")["default"] } }); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/menu/menu.vue?vue&type=script&lang=js&": /*!*************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/menu/menu.vue?vue&type=script&lang=js& ***! \*************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _libs_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../libs/context */ "./src/libs/context.js"); // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ __webpack_exports__["default"] = ({ props: { menus: { type: Array, "default": function _default() { return []; } }, accordion: { type: Boolean, "default": true }, group: { type: Boolean, "default": true }, theme: { type: String, "default": "dark" }, width: { type: Number, "default": 220 } }, data: function data() { return { isCollapsed: false, isShow: true, localMenus: _.cloneDeep(this.menus), openNames: [], activeName: "", menuMappings: {}, //mainHeight: document.documentElement.clientHeight - 48, scrollOps: { vuescroll: { mode: 'native' }, scrollContent: { padding: true }, bar: { onlyShowBarOnScroll: false, delayTime: 3000, background: "#ccc", keepShow: false, hover: true } } }; }, computed: { menuitemClasses: function menuitemClasses() { return ['menu-item', this.isCollapsed ? 'collapsed-menu' : '', this.group ? '' : 'mt-sm']; } }, created: function created() { var _this2 = this; _libs_context__WEBPACK_IMPORTED_MODULE_0__["default"].getEventBus().$on("toggle-menus", function () { _this2.$refs.siderMenu.toggleCollapse(); }); }, beforeDestroy: function beforeDestroy() { _libs_context__WEBPACK_IMPORTED_MODULE_0__["default"].getEventBus().$off("toggle-menus"); }, watch: { menus: { handler: function handler() { this.localMenus = _.cloneDeep(this.menus); if (this.localMenus.length < 1) { return; } this.prepare(); if (!this.activeName && this.$route.path === "/") { var lm = this.localMenus[0]; while (lm.children && lm.children.length > 0) { lm = lm.children[0]; } if (lm) { this.onMenuSelected(lm.id); this.setActiveMenu(); } } }, deep: true, immediate: true } }, methods: { /** * @param route 由外部传过来的路由,home.vue可能会通过beforeRouteUpdate传递要去的路由 */ setActiveMenu: function setActiveMenu(route) { //设置导航菜单选中 var _this = this; route = route || this.$route; var matchedMenu = null; for (var i = route.matched.length - 1; i >= 0; i--) { if (matchedMenu != null) { break; } var curRouter = route.matched[i]; _.forIn(this.menuMappings, function (menu, key) { if (_.isEmpty(menu.url)) { return; } if (curRouter.name === menu.id || curRouter.name === menu.name || curRouter.path === menu.path || curRouter.path === _.trim(menu.url, '#') || route.path === _.trim(menu.url, '#') || window.location.hash.toLowerCase() === menu.url.toLowerCase() && !route) { matchedMenu = menu; return false; } if (curRouter.meta && !_.isEmpty(curRouter.meta["menu"])) { var routerMenu = curRouter.meta["menu"]; if (routerMenu == menu.id || routerMenu == menu.name) { matchedMenu = menu; return false; } } }); } if (matchedMenu != null) { _this.activeName = matchedMenu.id; _this.openNames = []; var parentMenu = this.menuMappings[matchedMenu.parentId]; while (parentMenu != null) { _this.openNames.push(parentMenu.id); parentMenu = this.menuMappings[parentMenu.parentId]; } _this.$nextTick(function () { _this.$refs.leftMenus.updateOpened(); _this.$refs.leftMenus.updateActiveName(); }); } }, onMenuSelected: function onMenuSelected(name) { if (name) { var selectedMenu = this.menuMappings[name]; if (_.isEmpty(selectedMenu) || _.isEmpty(selectedMenu.url)) { alert("菜单定义数据有误"); return; } this.activeName = selectedMenu.id; if (_libs_context__WEBPACK_IMPORTED_MODULE_0__["default"].getWebContext().inSamePage(selectedMenu.url)) { var toPath = selectedMenu.url; if (toPath.indexOf("#") >= 0) { toPath = toPath.substring(toPath.indexOf("#") + 1); } else { toPath = "/"; } this.$router.push({ path: toPath, query: { _from: 'left' } }); } else { if (!_.isEmpty(selectedMenu.iframeParam)) { //iframe 打开菜单 this.$router.push({ name: "iframe", params: { menuId: selectedMenu.id }, query: { url: "" + selectedMenu.url + selectedMenu.iframeParam, _date: new Date().getTime() } }); } else { if (selectedMenu.openMode == 1) { var el = document.getElementById("newWin"); el.href = selectedMenu.url; el.click(); } else { window.location = selectedMenu.url; } } } } this.$emit("on-menu-selected"); }, onSubMenuOpened: function onSubMenuOpened(name) { if (name) { var selectedMenu = this.menuMappings[name]; if (_.isEmpty(selectedMenu)) { return; } if (selectedMenu.url && selectedMenu.url.length > 0) { this.onMenuSelected(name); return; } if (selectedMenu.children && selectedMenu.children.length > 0) { selectedMenu = selectedMenu.children[0]; this.activeName = selectedMenu.id; var leftMenuRef = this.$refs.leftMenus; this.$nextTick(function () { leftMenuRef.updateActiveName(); }); this.onMenuSelected(selectedMenu.id); return; } } }, prepare: function prepare() { var _this = this; if (!(_this.localMenus && _this.localMenus.length)) { //如果菜单为空 return; } _this.visitTree(_this.localMenus, function (menu) { var menuId = menu.id; if (menu.url && menu.url.indexOf("#") > 0) { menu["path"] = menu.url.substring(menu.url.indexOf("#") + 1); } else { menu["path"] = "/"; } _this.menuMappings[menuId] = menu; }); _this.setActiveMenu(); }, visitTree: function visitTree(tree, processor, parent) { var self = this; _.forEach(tree, function (node, index) { if (parent && _.isEmpty(node.parentId)) { node["parentId"] = parent.id; } if (processor) { processor(node, tree, index); } if (node.children) { self.visitTree(node.children, processor, node); } }); } } }); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/org-select/index.vue?vue&type=script&lang=js&": /*!********************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/org-select/index.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _mixins_emitter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mixins/emitter */ "./src/mixins/emitter.js"); /* harmony import */ var _user_select_select_modal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../user-select/select-modal */ "./src/components/user-select/select-modal.js"); /* harmony import */ var _user_select_select_input__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../user-select/select-input */ "./src/components/user-select/select-input.js"); // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ __webpack_exports__["default"] = ({ mixins: [_mixins_emitter__WEBPACK_IMPORTED_MODULE_0__["default"], _user_select_select_input__WEBPACK_IMPORTED_MODULE_2__["default"], _user_select_select_modal__WEBPACK_IMPORTED_MODULE_1__["default"]], props: { modalWidth: { type: Number, "default": 600 }, modalTitle: { type: String, "default": '选择部门' }, valueKey: { type: String, "default": 'orgId' }, selectPlaceholder: { type: String, "default": '输入部门名搜索' } }, data: function data() { return { queryByKeywordMethod: 'queryOrgByKeyword', queryByIdsMethod: 'queryOrgByIds' }; }, methods: {}, components: { selectOrg: __webpack_require__(/*! ./select-org */ "./src/components/org-select/select-org.vue")["default"] } }); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/org-select/select-org.vue?vue&type=script&lang=js&": /*!*************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/org-select/select-org.vue?vue&type=script&lang=js& ***! \*************************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _user_select_org_tree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../user-select/org-tree */ "./src/components/user-select/org-tree.js"); // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ __webpack_exports__["default"] = ({ mixins: [_user_select_org_tree__WEBPACK_IMPORTED_MODULE_0__["default"]], props: { initialValue: { type: [String, Array], "default": function _default() { return null; } }, queryMethods: { type: Object, required: true }, multiple: { type: Boolean, "default": false }, labelKey: { type: String }, valueKey: { type: String }, queryPlaceholder: { type: String } }, data: function data() { return { selectedIds: [], selectedOrgDetails: {}, queryKeyword: '' }; }, watch: { initialValue: { handler: function handler() { var _this = this; var ids = []; if (!this.multiple && this.initialValue) { ids = [this.initialValue]; } else { ids = _.cloneDeep(this.initialValue); } if (!_.isEqual(ids, this.selectedIds)) { if (_.isEmpty(ids)) { this.selectedIds = []; this.selectedOrgDetails = {}; return; } this.queryMethods.queryOrgByIds(ids).then(function (data) { _this.selectedIds = ids; _this.selectedOrgDetails = _.keyBy(data, function (item) { return item[_this.valueKey]; }); }); } }, immediate: true }, queryKeyword: { handler: function handler() { this.buildRootOrgByKeyword(); } } }, mounted: function mounted() { this.buildRootOrg(); }, methods: { handleOrgSelectChange: function handleOrgSelectChange(dataItems) { var _this2 = this; if (!this.multiple) { //单选直接替换 if (dataItems.length == 1) { var id = dataItems[0].id; this.selectedIds = [id]; var selectedItem = {}; selectedItem[id] = dataItems[0]; this.selectedOrgDetails = selectedItem; } else { this.selectedIds = []; this.selectedOrgDetails = {}; } } else { //多选去重 _.each(dataItems, function (item) { var id = item.id; if (!_.includes(_this2.selectedIds, id)) { _this2.selectedIds.push(id); _this2.selectedOrgDetails[id] = item; } }); } }, delOrg: function delOrg(index) { var toDeletedId = this.selectedIds[index]; this.selectedIds.splice(index, 1); delete this.selectedOrgDetails[toDeletedId]; }, handleQueryClear: function handleQueryClear() { this.queryKeyword = ''; //TODO }, handleQueryChange: function handleQueryChange(val) { this.queryKeyword = val; //TODO } }, components: { search: __webpack_require__(/*! ../user-select/search */ "./src/components/user-select/search.vue")["default"] } }); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/product-list/index.vue?vue&type=script&lang=js&": /*!**********************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/product-list/index.vue?vue&type=script&lang=js& ***! \**********************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "@babel/runtime/helpers/asyncToGenerator"); /* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ "@babel/runtime/regenerator"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__); // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ __webpack_exports__["default"] = ({ props: { width: { type: Number, "default": 435 }, placement: { type: String, "default": "bottom-start" }, showSize: { type: Number, "default": 5 }, hideWhenEmpty: { type: Boolean, "default": true }, items: { type: Array, "default": function _default() { return []; } }, resource: { type: Object, "default": function _default() { return null; } } }, data: function data() { return { innerItems: this.items, activeName: "" }; }, computed: { favoriteList: function favoriteList() { var list = []; _.forEach(this.innerItems, function (item) { if (item.favorite) { list.push(item); } }); if (list.length == 0) { for (var i = 0; i < Math.min(this.showSize, this.innerItems.length); i++) { list.push(this.innerItems[i]); } } return list; }, isShow: function isShow() { if (!this.hideWhenEmpty) { return true; } if (this.innerItems == null || this.innerItems.length == 0) { return false; } return true; } }, mounted: function mounted() { var _this = this; return _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!_this.resource) { _context.next = 4; break; } _context.next = 3; return _this.loadMenuByResouce(); case 3: _this.innerItems = _context.sent; case 4: _this.setActiveMenu(); _this.$emit("on-loaded", _this); case 6: case "end": return _context.stop(); } } }, _callee); }))(); }, methods: { onChangeFavorite: function onChangeFavorite(selectedItem, event) { selectedItem.favorite = !selectedItem.favorite; this.editFavorite(selectedItem); this.$emit("on-change-favorite", selectedItem); return false; }, loadMenuByResouce: function loadMenuByResouce() { var _this2 = this; return _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee2() { var resp; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return _this2.resource.withFavorite(); case 2: