web-component-gallery 0.1.42 → 0.1.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/form.umd.js CHANGED
@@ -6934,7 +6934,7 @@ eval("//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareC
6934
6934
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6935
6935
 
6936
6936
  "use strict";
6937
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_resetFields__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/resetFields */ \"./plugins/lib/form/utils/resetFields.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/form-model/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/button/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/radio/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/input/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/input-number/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/checkbox/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/date-picker/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/time-picker/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/icon/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Search',\n components: {\n FormModel: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n FormModelItem: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Item,\n Button: ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Radio: ant_design_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n Input: ant_design_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n InputNumber: ant_design_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Checkbox: ant_design_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n DatePicker: ant_design_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n TimePicker: ant_design_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n ASelectCustom: () => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./components/ASelectCustom.vue */ \"./plugins/lib/form/components/ASelectCustom.vue\")),\n Icon: ant_design_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n },\n data() {\n return {\n // 是否收起\n advanced: false,\n matchMediaSize: 0\n };\n },\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n /* 双向数据绑定Form */\n value: {\n type: Object,\n default: () => ({})\n },\n /* 配置表单项 */\n formSetting: {\n type: Array,\n default: () => []\n },\n /* 一行显示多少项 */\n layoutSize: {\n type: Number,\n default: 4,\n validator: value => {\n return value <= 5;\n }\n },\n // 紧凑型和宽松型\n // default 宽松型\n // middle 紧凑型\n searchStyle: {\n type: String,\n default: 'default'\n },\n /* 操作显示文字 */\n actionsText: {\n type: Object,\n default: () => ({\n primary: '搜索',\n cancel: '重置'\n })\n },\n /* 是否自动查询(默认为true) */\n autoCall: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n form: {\n get() {\n return this.value;\n },\n set(newValue) {\n this.$emit('change', newValue);\n }\n },\n matchMedia() {\n return {\n '(max-width: 576px)': 1,\n '(min-width: 576px) and (max-width: 992px)': this.layoutSize - 2,\n '(min-width: 992px)': this.layoutSize\n };\n },\n copyFormSetting() {\n return this.formSetting.filter(node => !node.hidden);\n },\n count() {\n return this.advanced ? this.copyFormSetting.length : this.matchMediaSize - 1;\n }\n },\n filters: {\n defaultPlaceholder(is, {\n placeholder\n }) {\n if (placeholder) return placeholder;\n if (is && is.includes('range')) return ['开始时间', '结束时间'];\n return /(select|picker|radio|upload)/.test(is) ? '请选择' : '请输入';\n }\n },\n mounted() {\n this.autoCall && this.handleSearch();\n this.matchMediaSize = this.layoutSize;\n Object.keys(this.matchMedia).forEach(media => window.matchMedia(media).addEventListener('change', this.handleResize));\n },\n methods: {\n handleResize(x) {\n x.matches && (this.matchMediaSize = this.matchMedia[x.media]);\n },\n getFormWidth(e) {\n const gap = {\n middle: '16px',\n default: '24px'\n };\n return `flex: 0 1 calc((${100 / this.matchMediaSize * (e.size ?? 1)}% - ${gap[this.searchStyle]})); margin-right: ${gap[this.searchStyle]};`;\n },\n handleSearch(e) {\n e && e.preventDefault();\n const searchForm = {};\n // 排除掉form当中hidden的隐藏项\n this.copyFormSetting.forEach(node => this.$set(searchForm, node.model, this.form[node.model]));\n this.form = {\n ...searchForm\n };\n this.$emit('handleSearch', searchForm);\n },\n handleReset() {\n // 初步猜测是因这里的清空导致数据双向绑定得不到最新\n this.form = (0,_utils_resetFields__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.form);\n this.$refs.searchForm.clearValidate();\n this.$emit('handleReset');\n }\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/Search.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options");
6937
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_resetFields__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/resetFields */ \"./plugins/lib/form/utils/resetFields.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/form-model/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/button/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/radio/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/input/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/input-number/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/checkbox/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/date-picker/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/time-picker/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/cascader/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/icon/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Search',\n components: {\n FormModel: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n FormModelItem: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Item,\n Button: ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Radio: ant_design_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n Input: ant_design_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n InputNumber: ant_design_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Checkbox: ant_design_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n DatePicker: ant_design_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n TimePicker: ant_design_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n Cascader: ant_design_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ASelectCustom: () => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./components/ASelectCustom.vue */ \"./plugins/lib/form/components/ASelectCustom.vue\")),\n ACascaderMultiple: () => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./components/ACascaderMultiple.vue */ \"./plugins/lib/form/components/ACascaderMultiple.vue\")),\n Icon: ant_design_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n },\n data() {\n return {\n // 是否收起\n advanced: false,\n matchMediaSize: 0\n };\n },\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n /* 双向数据绑定Form */\n value: {\n type: Object,\n default: () => ({})\n },\n /* 配置表单项 */\n formSetting: {\n type: Array,\n default: () => []\n },\n /* 一行显示多少项 */\n layoutSize: {\n type: Number,\n default: 4,\n validator: value => {\n return value <= 5;\n }\n },\n // 紧凑型和宽松型\n // default 宽松型\n // middle 紧凑型\n searchStyle: {\n type: String,\n default: 'default'\n },\n /* 操作显示文字 */\n actionsText: {\n type: Object,\n default: () => ({\n primary: '搜索',\n cancel: '重置'\n })\n },\n /* 是否自动查询(默认为true) */\n autoCall: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n form: {\n get() {\n return this.value;\n },\n set(newValue) {\n this.$emit('change', newValue);\n }\n },\n matchMedia() {\n return {\n '(max-width: 576px)': 1,\n '(min-width: 576px) and (max-width: 992px)': this.layoutSize - 2,\n '(min-width: 992px)': this.layoutSize\n };\n },\n copyFormSetting() {\n return this.formSetting.filter(node => !node.hidden);\n },\n count() {\n return this.advanced ? this.copyFormSetting.length : this.matchMediaSize - 1;\n }\n },\n filters: {\n defaultPlaceholder(is, {\n placeholder\n }) {\n if (placeholder) return placeholder;\n if (is && is.includes('range')) return ['开始时间', '结束时间'];\n return /(select|picker|radio|upload)/.test(is) ? '请选择' : '请输入';\n }\n },\n mounted() {\n this.autoCall && this.handleSearch();\n this.matchMediaSize = this.layoutSize;\n Object.keys(this.matchMedia).forEach(media => window.matchMedia(media).addEventListener('change', this.handleResize));\n },\n methods: {\n handleResize(x) {\n x.matches && (this.matchMediaSize = this.matchMedia[x.media]);\n },\n getFormWidth(e) {\n const gap = {\n middle: '16px',\n default: '24px'\n };\n return `flex: 0 1 calc((${100 / this.matchMediaSize * (e.size ?? 1)}% - ${gap[this.searchStyle]})); margin-right: ${gap[this.searchStyle]};`;\n },\n handleSearch(e) {\n e && e.preventDefault();\n const searchForm = {};\n // 排除掉form当中hidden的隐藏项\n this.copyFormSetting.forEach(node => this.$set(searchForm, node.model, this.form[node.model]));\n this.form = {\n ...searchForm\n };\n this.$emit('handleSearch', searchForm);\n },\n handleReset() {\n // 初步猜测是因这里的清空导致数据双向绑定得不到最新\n this.form = (0,_utils_resetFields__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.form);\n this.$refs.searchForm.clearValidate();\n this.$emit('handleReset');\n }\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/Search.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options");
6938
6938
 
6939
6939
  /***/ }),
6940
6940
 
package/dist/index.umd.js CHANGED
@@ -8164,7 +8164,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uti
8164
8164
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8165
8165
 
8166
8166
  "use strict";
8167
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_resetFields__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/resetFields */ \"./plugins/lib/form/utils/resetFields.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/form-model/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/button/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/radio/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/input/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/input-number/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/checkbox/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/date-picker/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/time-picker/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/icon/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Search',\n components: {\n FormModel: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n FormModelItem: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Item,\n Button: ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Radio: ant_design_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n Input: ant_design_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n InputNumber: ant_design_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Checkbox: ant_design_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n DatePicker: ant_design_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n TimePicker: ant_design_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n ASelectCustom: () => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./components/ASelectCustom.vue */ \"./plugins/lib/form/components/ASelectCustom.vue\")),\n Icon: ant_design_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n },\n data() {\n return {\n // 是否收起\n advanced: false,\n matchMediaSize: 0\n };\n },\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n /* 双向数据绑定Form */\n value: {\n type: Object,\n default: () => ({})\n },\n /* 配置表单项 */\n formSetting: {\n type: Array,\n default: () => []\n },\n /* 一行显示多少项 */\n layoutSize: {\n type: Number,\n default: 4,\n validator: value => {\n return value <= 5;\n }\n },\n // 紧凑型和宽松型\n // default 宽松型\n // middle 紧凑型\n searchStyle: {\n type: String,\n default: 'default'\n },\n /* 操作显示文字 */\n actionsText: {\n type: Object,\n default: () => ({\n primary: '搜索',\n cancel: '重置'\n })\n },\n /* 是否自动查询(默认为true) */\n autoCall: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n form: {\n get() {\n return this.value;\n },\n set(newValue) {\n this.$emit('change', newValue);\n }\n },\n matchMedia() {\n return {\n '(max-width: 576px)': 1,\n '(min-width: 576px) and (max-width: 992px)': this.layoutSize - 2,\n '(min-width: 992px)': this.layoutSize\n };\n },\n copyFormSetting() {\n return this.formSetting.filter(node => !node.hidden);\n },\n count() {\n return this.advanced ? this.copyFormSetting.length : this.matchMediaSize - 1;\n }\n },\n filters: {\n defaultPlaceholder(is, {\n placeholder\n }) {\n if (placeholder) return placeholder;\n if (is && is.includes('range')) return ['开始时间', '结束时间'];\n return /(select|picker|radio|upload)/.test(is) ? '请选择' : '请输入';\n }\n },\n mounted() {\n this.autoCall && this.handleSearch();\n this.matchMediaSize = this.layoutSize;\n Object.keys(this.matchMedia).forEach(media => window.matchMedia(media).addEventListener('change', this.handleResize));\n },\n methods: {\n handleResize(x) {\n x.matches && (this.matchMediaSize = this.matchMedia[x.media]);\n },\n getFormWidth(e) {\n const gap = {\n middle: '16px',\n default: '24px'\n };\n return `flex: 0 1 calc((${100 / this.matchMediaSize * (e.size ?? 1)}% - ${gap[this.searchStyle]})); margin-right: ${gap[this.searchStyle]};`;\n },\n handleSearch(e) {\n e && e.preventDefault();\n const searchForm = {};\n // 排除掉form当中hidden的隐藏项\n this.copyFormSetting.forEach(node => this.$set(searchForm, node.model, this.form[node.model]));\n this.form = {\n ...searchForm\n };\n this.$emit('handleSearch', searchForm);\n },\n handleReset() {\n // 初步猜测是因这里的清空导致数据双向绑定得不到最新\n this.form = (0,_utils_resetFields__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.form);\n this.$refs.searchForm.clearValidate();\n this.$emit('handleReset');\n }\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/Search.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options");
8167
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_resetFields__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/resetFields */ \"./plugins/lib/form/utils/resetFields.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/form-model/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/button/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/radio/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/input/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/input-number/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/checkbox/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/date-picker/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/time-picker/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/cascader/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/icon/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Search',\n components: {\n FormModel: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n FormModelItem: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Item,\n Button: ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Radio: ant_design_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n Input: ant_design_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n InputNumber: ant_design_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Checkbox: ant_design_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n DatePicker: ant_design_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n TimePicker: ant_design_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n Cascader: ant_design_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ASelectCustom: () => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./components/ASelectCustom.vue */ \"./plugins/lib/form/components/ASelectCustom.vue\")),\n ACascaderMultiple: () => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./components/ACascaderMultiple.vue */ \"./plugins/lib/form/components/ACascaderMultiple.vue\")),\n Icon: ant_design_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n },\n data() {\n return {\n // 是否收起\n advanced: false,\n matchMediaSize: 0\n };\n },\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n /* 双向数据绑定Form */\n value: {\n type: Object,\n default: () => ({})\n },\n /* 配置表单项 */\n formSetting: {\n type: Array,\n default: () => []\n },\n /* 一行显示多少项 */\n layoutSize: {\n type: Number,\n default: 4,\n validator: value => {\n return value <= 5;\n }\n },\n // 紧凑型和宽松型\n // default 宽松型\n // middle 紧凑型\n searchStyle: {\n type: String,\n default: 'default'\n },\n /* 操作显示文字 */\n actionsText: {\n type: Object,\n default: () => ({\n primary: '搜索',\n cancel: '重置'\n })\n },\n /* 是否自动查询(默认为true) */\n autoCall: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n form: {\n get() {\n return this.value;\n },\n set(newValue) {\n this.$emit('change', newValue);\n }\n },\n matchMedia() {\n return {\n '(max-width: 576px)': 1,\n '(min-width: 576px) and (max-width: 992px)': this.layoutSize - 2,\n '(min-width: 992px)': this.layoutSize\n };\n },\n copyFormSetting() {\n return this.formSetting.filter(node => !node.hidden);\n },\n count() {\n return this.advanced ? this.copyFormSetting.length : this.matchMediaSize - 1;\n }\n },\n filters: {\n defaultPlaceholder(is, {\n placeholder\n }) {\n if (placeholder) return placeholder;\n if (is && is.includes('range')) return ['开始时间', '结束时间'];\n return /(select|picker|radio|upload)/.test(is) ? '请选择' : '请输入';\n }\n },\n mounted() {\n this.autoCall && this.handleSearch();\n this.matchMediaSize = this.layoutSize;\n Object.keys(this.matchMedia).forEach(media => window.matchMedia(media).addEventListener('change', this.handleResize));\n },\n methods: {\n handleResize(x) {\n x.matches && (this.matchMediaSize = this.matchMedia[x.media]);\n },\n getFormWidth(e) {\n const gap = {\n middle: '16px',\n default: '24px'\n };\n return `flex: 0 1 calc((${100 / this.matchMediaSize * (e.size ?? 1)}% - ${gap[this.searchStyle]})); margin-right: ${gap[this.searchStyle]};`;\n },\n handleSearch(e) {\n e && e.preventDefault();\n const searchForm = {};\n // 排除掉form当中hidden的隐藏项\n this.copyFormSetting.forEach(node => this.$set(searchForm, node.model, this.form[node.model]));\n this.form = {\n ...searchForm\n };\n this.$emit('handleSearch', searchForm);\n },\n handleReset() {\n // 初步猜测是因这里的清空导致数据双向绑定得不到最新\n this.form = (0,_utils_resetFields__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.form);\n this.$refs.searchForm.clearValidate();\n this.$emit('handleReset');\n }\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/Search.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options");
8168
8168
 
8169
8169
  /***/ }),
8170
8170
 
@@ -8582,7 +8582,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
8582
8582
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8583
8583
 
8584
8584
  "use strict";
8585
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue/es/_util/vue-types */ \"./node_modules/ant-design-vue/es/_util/vue-types/index.js\");\n/* harmony import */ var _modal_index_jsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modal/index.jsx */ \"./plugins/lib/modal/index.jsx\");\n\n\nconst IframeContainerProps = {\n activeKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_1__[\"default\"].string,\n checkedKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_1__[\"default\"].string.def('name'),\n linkurlKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_1__[\"default\"].string.def('linkUrl'),\n componentsArr: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_1__[\"default\"].array,\n postMessage: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_1__[\"default\"].object\n};\nconst IframeContainer = {\n name: 'IframeComp',\n props: IframeContainerProps,\n data() {\n return {\n visible: true\n };\n },\n render(h, content) {\n const {\n $props\n } = this;\n const {\n activeKey,\n checkedKey,\n linkurlKey,\n componentsArr\n } = $props;\n let activeIframe;\n const IframeComponents = componentsArr.map(componentItem => {\n const isActive = activeKey === componentItem[checkedKey] && (activeIframe = componentItem);\n return h(\"iframe\", {\n \"attrs\": {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"src\": componentItem[linkurlKey]\n },\n \"ref\": componentItem[linkurlKey],\n \"key\": componentItem[checkedKey],\n \"style\": {\n border: 'none',\n display: isActive ? 'block' : 'none'\n }\n });\n });\n return activeIframe[linkurlKey].includes('?type=modal') ? h(_modal_index_jsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n \"attrs\": {\n \"visible\": true,\n \"title\": activeIframe.meta?.title\n }\n }, [IframeComponents]) : h(\"div\", {\n \"class\": \"ant-pro-grid-content-page\"\n }, [IframeComponents]);\n },\n watch: {\n activeKeyAndParams: {\n handler(newVal, oldVal) {\n this.postIframeMessage();\n },\n deep: true\n }\n },\n computed: {\n activeKeyAndParams() {\n const {\n activeKey,\n postMessage\n } = this;\n return {\n activeKey,\n postMessage\n };\n }\n },\n mounted() {\n this.postIframeMessage();\n },\n methods: {\n postIframeMessage() {\n this.$nextTick(() => {\n const {\n componentsArr,\n activeKey,\n checkedKey,\n linkurlKey,\n postMessage\n } = this;\n const refKey = componentsArr.find(componentItem => activeKey === componentItem[checkedKey])[linkurlKey];\n const timer = setTimeout(() => {\n this.iframeWin = this.$refs[refKey].contentWindow;\n this.iframeWin.postMessage({\n type: 'refreshPage',\n params: {\n ...postMessage,\n name: activeKey\n }\n }, '*');\n clearTimeout(timer);\n }, 600);\n });\n }\n }\n};\nIframeContainer.install = function (Vue) {\n Vue.component('IframeComponent', IframeContainer);\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (IframeContainer);\n\n//# sourceURL=webpack://mui/./plugins/lib/iframe/index.jsx?");
8585
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue/es/_util/vue-types */ \"./node_modules/ant-design-vue/es/_util/vue-types/index.js\");\n/* harmony import */ var _modal_index_jsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modal/index.jsx */ \"./plugins/lib/modal/index.jsx\");\n/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.less */ \"./plugins/lib/iframe/index.less\");\n\n\n\nconst IframeContainerProps = {\n activeKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].string,\n checkedKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].string.def('name'),\n linkurlKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].string.def('linkUrl'),\n componentsArr: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].array,\n postMessage: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].object\n};\nconst IframeContainer = {\n name: 'IframeComp',\n props: IframeContainerProps,\n data() {\n return {\n visible: true\n };\n },\n render(h, content) {\n const {\n $props\n } = this;\n const {\n activeKey,\n checkedKey,\n linkurlKey,\n componentsArr\n } = $props;\n let activeIframe;\n const IframeComponents = componentsArr.map(componentItem => {\n const isActive = activeKey === componentItem[checkedKey] && (activeIframe = componentItem);\n return h(\"iframe\", {\n \"attrs\": {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"src\": componentItem[linkurlKey]\n },\n \"ref\": componentItem[linkurlKey],\n \"key\": componentItem[checkedKey],\n \"style\": {\n border: 'none',\n display: isActive ? 'block' : 'none'\n }\n });\n });\n return activeIframe && activeIframe[linkurlKey].includes('?type=modal') ? h(_modal_index_jsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n \"attrs\": {\n \"visible\": true,\n \"title\": activeIframe.meta?.title\n }\n }, [IframeComponents]) : h(\"div\", {\n \"class\": \"ant-pro-grid-content-page\"\n }, [IframeComponents]);\n },\n watch: {\n activeKeyAndParams: {\n handler(newVal, oldVal) {\n this.postIframeMessage();\n },\n deep: true\n }\n },\n computed: {\n activeKeyAndParams() {\n const {\n activeKey,\n postMessage\n } = this;\n return {\n activeKey,\n postMessage\n };\n }\n },\n mounted() {\n this.postIframeMessage();\n },\n methods: {\n postIframeMessage() {\n this.$nextTick(() => {\n const {\n componentsArr,\n activeKey,\n checkedKey,\n linkurlKey,\n postMessage\n } = this;\n const refKey = componentsArr.find(componentItem => activeKey === componentItem[checkedKey])[linkurlKey];\n const timer = setTimeout(() => {\n this.iframeWin = this.$refs[refKey].contentWindow;\n this.iframeWin.postMessage({\n type: 'refreshPage',\n params: {\n ...postMessage,\n name: activeKey\n }\n }, '*');\n clearTimeout(timer);\n }, 600);\n });\n }\n }\n};\nIframeContainer.install = function (Vue) {\n Vue.component('IframeComponent', IframeContainer);\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (IframeContainer);\n\n//# sourceURL=webpack://mui/./plugins/lib/iframe/index.jsx?");
8586
8586
 
8587
8587
  /***/ }),
8588
8588
 
@@ -8604,7 +8604,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
8604
8604
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8605
8605
 
8606
8606
  "use strict";
8607
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeaderViewProps: function() { return /* binding */ HeaderViewProps; }\n/* harmony export */ });\n/* harmony import */ var _Header_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Header.less */ \"./plugins/lib/layout/Header.less\");\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ant-design-vue/es/_util/vue-types */ \"./node_modules/ant-design-vue/es/_util/vue-types/index.js\");\n/* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/util */ \"./plugins/lib/layout/utils/util.js\");\n/* harmony import */ var _components_RightContent_index_jsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/RightContent/index.jsx */ \"./plugins/lib/layout/components/RightContent/index.jsx\");\n/* harmony import */ var _dateTime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dateTime */ \"./plugins/lib/dateTime/index.js\");\n/* harmony import */ var _components_TopMenu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/TopMenu */ \"./plugins/lib/layout/components/TopMenu/index.js\");\n/* harmony import */ var _components_TopMenu_TopMenu_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/TopMenu/TopMenu.jsx */ \"./plugins/lib/layout/components/TopMenu/TopMenu.jsx\");\n\n\n\n\n\n\n\nconst HeaderViewProps = {\n ..._components_TopMenu_TopMenu_jsx__WEBPACK_IMPORTED_MODULE_5__.TopMenuProps,\n layout: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].string.def('sidermenu'),\n headerHeight: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].number.def(64),\n headerTitle: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].string.def('项目名称'),\n headerLogoRender: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].any,\n headerLeftRender: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].any,\n headerRightRender: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].any\n};\nconst rightContentRenderFun = (h, props) => {\n const {\n headerRightRender\n } = props;\n if (headerRightRender === false) {\n return null;\n }\n return (0,_utils_util__WEBPACK_IMPORTED_MODULE_1__.isFun)(headerRightRender) && headerRightRender(h) || headerRightRender;\n};\nconst renderContent = (h, props, baseCls, cdProps) => {\n const {\n menus\n } = props;\n const splitIndex = Math.ceil(menus.length / 2);\n if (baseCls.includes('left')) {\n return h(\"div\", {\n \"class\": baseCls\n }, [h(_dateTime__WEBPACK_IMPORTED_MODULE_3__[\"default\"]), h(_components_TopMenu__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n \"props\": {\n ...{\n ...props,\n menus: menus.slice(0, splitIndex)\n }\n }\n })]);\n }\n return h(\"div\", {\n \"class\": baseCls\n }, [h(_components_TopMenu__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n \"props\": {\n ...{\n ...props,\n menus: menus.slice(splitIndex)\n }\n }\n }), rightContentRenderFun(h, cdProps)]);\n};\nconst HeaderView = {\n name: 'HeaderView',\n props: HeaderViewProps,\n render(h) {\n const {\n layout,\n headerTitle,\n headerHeight\n } = this.$props;\n const isTop = layout === 'topmenu';\n const baseCls = `ant-layout-head${isTop ? '-top' : ''}`;\n const {\n headerLogoRender = this.$props.headerLogoRender,\n headerLeftRender = this.$props.headerLeftRender,\n headerRightRender = this.$props.headerRightRender\n } = this.$slots;\n const titleDom = h(\"div\", {\n \"class\": `${baseCls}-title`\n }, [headerLogoRender, h(\"span\", [headerTitle])]);\n const cdProps = {\n headerLeftRender,\n headerRightRender\n };\n return h(\"div\", {\n \"class\": baseCls,\n \"style\": {\n height: headerHeight + 'px'\n }\n }, [isTop ? h(\"div\", [renderContent(h, this.$props, `${baseCls}-left`), titleDom, renderContent(h, this.$props, `${baseCls}-right`, cdProps)]) : h(\"div\", [titleDom, rightContentRenderFun(h, cdProps)])]);\n }\n};\nHeaderView.install = function (Vue) {\n Vue.component('HeaderLayout', HeaderView);\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (HeaderView);\n\n//# sourceURL=webpack://mui/./plugins/lib/layout/Header.jsx?");
8607
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeaderViewProps: function() { return /* binding */ HeaderViewProps; }\n/* harmony export */ });\n/* harmony import */ var _Header_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Header.less */ \"./plugins/lib/layout/Header.less\");\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ant-design-vue/es/_util/vue-types */ \"./node_modules/ant-design-vue/es/_util/vue-types/index.js\");\n/* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/util */ \"./plugins/lib/layout/utils/util.js\");\n/* harmony import */ var _components_RightContent_index_jsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/RightContent/index.jsx */ \"./plugins/lib/layout/components/RightContent/index.jsx\");\n/* harmony import */ var _dateTime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dateTime */ \"./plugins/lib/dateTime/index.js\");\n/* harmony import */ var _components_TopMenu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/TopMenu */ \"./plugins/lib/layout/components/TopMenu/index.js\");\n/* harmony import */ var _components_TopMenu_TopMenu_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/TopMenu/TopMenu.jsx */ \"./plugins/lib/layout/components/TopMenu/TopMenu.jsx\");\n\n\n\n\n\n\n\nconst HeaderViewProps = {\n ..._components_TopMenu_TopMenu_jsx__WEBPACK_IMPORTED_MODULE_5__.TopMenuProps,\n layout: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].string.def('sidermenu'),\n headerHeight: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].number.def(64),\n headerTitle: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].string.def('项目名称'),\n headerLogoRender: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].any,\n headerLeftRender: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].any,\n headerRightRender: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_6__[\"default\"].any\n};\nconst rightContentRenderFun = (h, props) => {\n const {\n headerRightRender\n } = props;\n if (headerRightRender === false) {\n return null;\n }\n return (0,_utils_util__WEBPACK_IMPORTED_MODULE_1__.isFun)(headerRightRender) && headerRightRender(h) || headerRightRender;\n};\nconst renderContent = (h, props, baseCls, cdProps) => {\n const {\n menus\n } = props;\n const splitIndex = Math.ceil(menus.length / 2);\n if (baseCls.includes('left')) {\n return h(\"div\", {\n \"class\": baseCls\n }, [h(_dateTime__WEBPACK_IMPORTED_MODULE_3__[\"default\"]), h(_components_TopMenu__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n \"props\": {\n ...{\n ...props,\n menus: menus.slice(0, splitIndex)\n }\n }\n })]);\n }\n return h(\"div\", {\n \"class\": baseCls\n }, [h(_components_TopMenu__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n \"props\": {\n ...{\n ...props,\n menus: menus.slice(splitIndex)\n }\n }\n }), rightContentRenderFun(h, cdProps)]);\n};\nconst HeaderView = {\n name: 'HeaderView',\n props: HeaderViewProps,\n render(h) {\n const {\n layout,\n headerTitle,\n headerHeight\n } = this.$props;\n const isTop = layout === 'topmenu';\n const baseCls = `ant-layout-head${isTop ? '-top' : ''}`;\n const {\n headerLogoRender = this.$props.headerLogoRender,\n headerLeftRender = this.$props.headerLeftRender,\n headerRightRender = this.$props.headerRightRender\n } = this.$slots;\n const titleDom = h(\"div\", {\n \"class\": `${baseCls}-title`\n }, [headerLogoRender, h(\"span\", [headerTitle])]);\n const cdProps = {\n headerLeftRender,\n headerRightRender\n };\n\n // style={{\n // height: headerHeight + 'px'\n // }}\n\n return h(\"div\", {\n \"class\": baseCls\n }, [isTop ? h(\"div\", [renderContent(h, this.$props, `${baseCls}-left`), titleDom, renderContent(h, this.$props, `${baseCls}-right`, cdProps)]) : h(\"div\", [titleDom, rightContentRenderFun(h, cdProps)])]);\n }\n};\nHeaderView.install = function (Vue) {\n Vue.component('HeaderLayout', HeaderView);\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (HeaderView);\n\n//# sourceURL=webpack://mui/./plugins/lib/layout/Header.jsx?");
8608
8608
 
8609
8609
  /***/ }),
8610
8610
 
@@ -8692,7 +8692,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
8692
8692
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8693
8693
 
8694
8694
  "use strict";
8695
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TopMenuProps: function() { return /* binding */ TopMenuProps; }\n/* harmony export */ });\n/* harmony import */ var _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vue/babel-helper-vue-jsx-merge-props */ \"./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js\");\n/* harmony import */ var _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue/es/_util/vue-types */ \"./node_modules/ant-design-vue/es/_util/vue-types/index.js\");\n/* harmony import */ var ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue/es/menu */ \"./node_modules/ant-design-vue/es/menu/index.js\");\n\n\n\nconst {\n Item: MenuItem,\n SubMenu\n} = ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nconst TopMenuProps = {\n menus: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].array,\n theme: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].string.def('dark'),\n i18nRender: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].oneOfType([ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].func, ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].bool]).def(false)\n};\nconst httpReg = /(http|https|ftp):\\/\\/([\\w.]+\\/?)\\S*/;\nconst renderMenu = (h, item, i18nRender, selectedKeys) => {\n if (item && !item.hidden) {\n const bool = item.children && !item.hideChildrenInMenu;\n return bool ? renderSubMenu(h, item, i18nRender, selectedKeys) : renderMenuItem(h, item, i18nRender);\n }\n return null;\n};\nconst renderSubMenu = (h, item, i18nRender, selectedKeys) => {\n const menuActive = item.children.find(children => selectedKeys.includes(children.path)) ?? item;\n console.log(selectedKeys);\n return h(SubMenu, {\n \"key\": item.path,\n \"attrs\": {\n \"title\": h(\"span\", [renderTitle(h, menuActive.meta.title, i18nRender)])\n }\n }, [!item.hideChildrenInMenu && item.children.map(cd => renderMenu(h, cd, i18nRender, selectedKeys))]);\n};\nconst renderMenuItem = (h, item, i18nRender) => {\n const meta = Object.assign({}, item.meta);\n const target = meta.target || null;\n const hasRemoteUrl = httpReg.test(item.path);\n const CustomTag = target && 'a' || 'router-link';\n const props = {\n to: {\n name: item.name\n }\n };\n const attrs = hasRemoteUrl || target ? {\n href: item.path,\n target: target\n } : {};\n if (item.children && item.hideChildrenInMenu) {\n // 把有子菜单的 并且 父菜单是要隐藏子菜单的\n // 都给子菜单增加一个 hidden 属性\n // 用来给刷新页面时, selectedKeys 做控制用\n item.children.forEach(cd => {\n cd.meta = Object.assign(cd.meta || {}, {\n hidden: true\n });\n });\n }\n return h(MenuItem, {\n \"key\": item.path\n }, [h(CustomTag, {\n \"props\": {\n ...props\n },\n \"attrs\": {\n ...attrs\n }\n }, [renderTitle(h, meta.title, i18nRender)])]);\n};\nconst renderTitle = (h, title, i18nRender) => {\n return h(\"span\", [i18nRender && i18nRender(title) || title]);\n};\nconst TopMenu = {\n name: 'TopMenu',\n props: TopMenuProps,\n data() {\n return {\n openKeys: [],\n selectedKeys: [],\n cachedOpenKeys: [],\n cachedSelectedKeys: []\n };\n },\n render(h) {\n const {\n theme,\n menus,\n i18nRender\n } = this;\n const handleOpenChange = openKeys => {\n this.openKeys = openKeys;\n };\n const dynamicProps = {\n props: {\n mode: 'horizontal',\n theme,\n openKeys: this.openKeys,\n selectedKeys: this.selectedKeys\n },\n on: {\n select: menu => {\n this.$emit('select', menu);\n if (!httpReg.test(menu.key)) {\n this.selectedKeys = menu.selectedKeys;\n }\n },\n openChange: handleOpenChange\n }\n };\n const menuItems = menus.map(item => {\n if (item.hidden) {\n return null;\n }\n return renderMenu(h, item, i18nRender, this.selectedKeys);\n });\n return h(ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default()([{}, dynamicProps]), [menuItems]);\n },\n methods: {\n updateMenu() {\n const routes = this.$route.matched.concat();\n const {\n hidden\n } = this.$route.meta;\n if (routes.length >= 3 && hidden) {\n routes.pop();\n this.selectedKeys = [routes[routes.length - 1].path];\n } else {\n this.selectedKeys = [routes.pop().path];\n }\n }\n },\n created() {\n this.$watch('$route', () => {\n this.updateMenu();\n });\n },\n mounted() {\n this.updateMenu();\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (TopMenu);\n\n//# sourceURL=webpack://mui/./plugins/lib/layout/components/TopMenu/TopMenu.jsx?");
8695
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TopMenuProps: function() { return /* binding */ TopMenuProps; }\n/* harmony export */ });\n/* harmony import */ var _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vue/babel-helper-vue-jsx-merge-props */ \"./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js\");\n/* harmony import */ var _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue/es/_util/vue-types */ \"./node_modules/ant-design-vue/es/_util/vue-types/index.js\");\n/* harmony import */ var ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue/es/menu */ \"./node_modules/ant-design-vue/es/menu/index.js\");\n\n\n\nconst {\n Item: MenuItem,\n SubMenu\n} = ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nconst TopMenuProps = {\n menus: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].array,\n theme: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].string.def('dark'),\n i18nRender: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].oneOfType([ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].func, ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].bool]).def(false)\n};\nconst httpReg = /(http|https|ftp):\\/\\/([\\w.]+\\/?)\\S*/;\nconst renderMenu = (h, item, i18nRender, selectedKeys) => {\n if (item && !item.hidden) {\n const bool = item.children && !item.hideChildrenInMenu;\n return bool ? renderSubMenu(h, item, i18nRender, selectedKeys) : renderMenuItem(h, item, i18nRender);\n }\n return null;\n};\nconst renderSubMenu = (h, item, i18nRender, selectedKeys) => {\n const menuActive = item.children.find(children => selectedKeys.includes(children.path)) ?? item;\n return h(SubMenu, {\n \"key\": item.path,\n \"attrs\": {\n \"title\": h(\"span\", [renderTitle(h, menuActive.meta.title, i18nRender)])\n }\n }, [!item.hideChildrenInMenu && item.children.map(cd => renderMenu(h, cd, i18nRender, selectedKeys))]);\n};\nconst renderMenuItem = (h, item, i18nRender) => {\n const meta = Object.assign({}, item.meta);\n const target = meta.target || null;\n const hasRemoteUrl = httpReg.test(item.path);\n const CustomTag = target && 'a' || 'router-link';\n const props = {\n to: {\n name: item.name\n }\n };\n const attrs = hasRemoteUrl || target ? {\n href: item.path,\n target: target\n } : {};\n if (item.children && item.hideChildrenInMenu) {\n // 把有子菜单的 并且 父菜单是要隐藏子菜单的\n // 都给子菜单增加一个 hidden 属性\n // 用来给刷新页面时, selectedKeys 做控制用\n item.children.forEach(cd => {\n cd.meta = Object.assign(cd.meta || {}, {\n hidden: true\n });\n });\n }\n return h(MenuItem, {\n \"key\": item.path\n }, [h(CustomTag, {\n \"props\": {\n ...props\n },\n \"attrs\": {\n ...attrs\n }\n }, [renderTitle(h, meta.title, i18nRender)])]);\n};\nconst renderTitle = (h, title, i18nRender) => {\n return h(\"span\", [i18nRender && i18nRender(title) || title]);\n};\nconst TopMenu = {\n name: 'TopMenu',\n props: TopMenuProps,\n data() {\n return {\n openKeys: [],\n selectedKeys: [],\n cachedOpenKeys: [],\n cachedSelectedKeys: []\n };\n },\n render(h) {\n const {\n theme,\n menus,\n i18nRender\n } = this;\n const handleOpenChange = openKeys => {\n this.openKeys = openKeys;\n };\n const dynamicProps = {\n props: {\n mode: 'horizontal',\n theme,\n openKeys: this.openKeys,\n selectedKeys: this.selectedKeys\n },\n on: {\n select: menu => {\n this.$emit('select', menu);\n if (!httpReg.test(menu.key)) {\n this.selectedKeys = menu.selectedKeys;\n }\n },\n openChange: handleOpenChange\n }\n };\n const menuItems = menus.map(item => {\n if (item.hidden) {\n return null;\n }\n return renderMenu(h, item, i18nRender, this.selectedKeys);\n });\n return h(ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default()([{}, dynamicProps]), [menuItems]);\n },\n methods: {\n updateMenu() {\n const routes = this.$route.matched.concat();\n const {\n hidden,\n isTopChild\n } = this.$route.meta;\n if (routes.length >= 3 && !isTopChild) {\n /** 不确定是否能正确适用 */\n this.selectedKeys = [routes[1].path];\n return;\n }\n if (routes.length >= 3 && hidden) {\n routes.pop();\n this.selectedKeys = [routes[routes.length - 1].path];\n } else {\n this.selectedKeys = [routes.pop().path];\n }\n }\n },\n created() {\n this.$watch('$route', () => {\n this.updateMenu();\n });\n },\n mounted() {\n this.updateMenu();\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (TopMenu);\n\n//# sourceURL=webpack://mui/./plugins/lib/layout/components/TopMenu/TopMenu.jsx?");
8696
8696
 
8697
8697
  /***/ }),
8698
8698
 
@@ -8901,7 +8901,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
8901
8901
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8902
8902
 
8903
8903
  "use strict";
8904
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ filterTreeById: function() { return /* binding */ filterTreeById; },\n/* harmony export */ findCheckNodes: function() { return /* binding */ findCheckNodes; },\n/* harmony export */ getTreeKey: function() { return /* binding */ getTreeKey; },\n/* harmony export */ joinTreeMessage: function() { return /* binding */ joinTreeMessage; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\r\n * @param nodes 数组对象\r\n * @param parent 是否只获取父一层的属性\r\n * @param replaceFields 自定义属性进行查询\r\n * @description 递归获取需要的数据\r\n */\nfunction getTreeKey(nodes, parent = false, replaceFields = {\n children: 'children',\n key: 'id',\n title: 'title'\n}) {\n const filterNodes = [];\n function generateList(checkNodes) {\n checkNodes.forEach(e => {\n if (!parent) filterNodes.push(e[replaceFields.key]);\n if (e[replaceFields.children]?.length) {\n if (parent) filterNodes.push(e[replaceFields.key]);\n generateList(e[replaceFields.children]);\n }\n });\n }\n generateList(nodes);\n return filterNodes;\n}\n\n/**\r\n * 根据树子节点ID过滤出最后一级child\r\n * @param {array} dataSource 树形结构数据源\r\n * @param {array} nodeIds 需要过滤的数据集\r\n * @param {string} hasField 过滤包含属性(默认为children)\r\n * @param {string} searchField 查找属性(默认为id)\r\n */\n\nfunction findCheckNodes(dataSource, nodeIds, searchField = 'id', hasField = 'children') {\n let checkNodes = [];\n function traverse(node, nodeIds) {\n if (nodeIds.includes(node[searchField]) && !node.hasOwnProperty(hasField)) {\n checkNodes.push(node);\n return true;\n }\n node[hasField] && node[hasField].forEach(childNode => {\n if (traverse(childNode, nodeIds)) return true;\n });\n return false;\n }\n for (let i = 0; i < dataSource.length; i++) {\n if (traverse(dataSource[i], nodeIds)) {\n break;\n }\n }\n return checkNodes;\n}\n\n/**\r\n * @param nodes 数组对象\r\n * @param fileds 哪些字段需要拼接\r\n * @param replaceField 拼接后赋值字段\r\n * @param childNode 子级结点\r\n * @description 递归获取需要的数据\r\n */\nfunction joinTreeMessage(nodes, fileds, replaceField, childNode) {\n function generateList(checkNodes) {\n checkNodes.forEach(e => {\n e[replaceField] = '';\n fileds.forEach(filed => e[filed] && (e[replaceField] += ` ${e[filed]}`));\n if (e[childNode]?.length) {\n generateList(e[childNode]);\n }\n });\n }\n generateList(nodes);\n return nodes;\n}\n\n/**\r\n * @param tree 数组对象\r\n * @param id 需要查找的key\r\n * @param replaceFields 拼接后赋值字段\r\n * {\r\n children: 'children', // 查找子级字段\r\n key: 'id' // key的字段\r\n }\r\n */\nfunction filterTreeById(tree, id, replaceFields = {\n children: 'children',\n key: 'id'\n}) {\n return tree.reduce((acc, node) => {\n if (node[replaceFields.key] === id) {\n return [...acc, node];\n } else if (node[replaceFields.children] && node[replaceFields.children].length > 0) {\n const filteredChildren = filterTreeById(node[replaceFields.children], id);\n if (filteredChildren.length > 0) return filteredChildren;\n }\n return acc;\n }, []);\n}\n\n//# sourceURL=webpack://mui/./plugins/utils/Tree.js?");
8904
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ filterTreeById: function() { return /* binding */ filterTreeById; },\n/* harmony export */ findCheckNodes: function() { return /* binding */ findCheckNodes; },\n/* harmony export */ getTreeKey: function() { return /* binding */ getTreeKey; },\n/* harmony export */ joinTreeMessage: function() { return /* binding */ joinTreeMessage; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\r\n * 获取树形结构所有key\r\n * @param nodes 数组对象\r\n * @param parent 是否只获取父一层的属性\r\n * @param replaceFields 自定义属性进行查询\r\n */\nfunction getTreeKey(nodes, parent = false, replaceFields = {\n children: 'children',\n key: 'id',\n title: 'title'\n}) {\n const filterNodes = [];\n function generateList(checkNodes) {\n checkNodes.forEach(e => {\n if (!parent) filterNodes.push(e[replaceFields.key]);\n if (e[replaceFields.children]?.length) {\n if (parent) filterNodes.push(e[replaceFields.key]);\n generateList(e[replaceFields.children]);\n }\n });\n }\n generateList(nodes);\n return filterNodes;\n}\n\n/**\r\n * 根据树子节点ID过滤出最后一级child\r\n * @param {array} dataSource 树形结构数据源\r\n * @param {array} nodeIds 需要过滤的数据集\r\n * @param {string} hasField 过滤包含属性(默认为children)\r\n * @param {string} searchField 查找属性(默认为id)\r\n */\n\nfunction findCheckNodes(dataSource, nodeIds, searchField = 'id', hasField = 'children') {\n let checkNodes = [];\n function traverse(node, nodeIds) {\n if (nodeIds.includes(node[searchField]) && !node.hasOwnProperty(hasField)) {\n checkNodes.push(node);\n return true;\n }\n node[hasField] && node[hasField].forEach(childNode => {\n if (traverse(childNode, nodeIds)) return true;\n });\n return false;\n }\n for (let i = 0; i < dataSource.length; i++) {\n if (traverse(dataSource[i], nodeIds)) {\n break;\n }\n }\n return checkNodes;\n}\n\n/**\r\n * 根据要求拼接树结构字段 ( 比如:后端返回name phone,前端显示要求name后拼接phone\r\n * @param nodes 数组对象\r\n * @param fileds 哪些字段需要拼接\r\n * @param replaceField 拼接后赋值字段\r\n * @param childNode 子级结点\r\n */\nfunction joinTreeMessage(nodes, fileds, replaceField, childNode) {\n function generateList(checkNodes) {\n checkNodes.forEach(e => {\n e[replaceField] = '';\n fileds.forEach(filed => e[filed] && (e[replaceField] += ` ${e[filed]}`));\n if (e[childNode]?.length) {\n generateList(e[childNode]);\n }\n });\n }\n generateList(nodes);\n return nodes;\n}\n\n/**\r\n * 根据某个属性查找出整个树结构中匹配相同的数据\r\n * @param tree 数组对象\r\n * @param key 需要查找的属性\r\n * @param replaceFields 树结构对应子级及查找key的属性\r\n * {\r\n children: 'children', // 查找子级字段\r\n key: 'id' // key的字段\r\n }\r\n */\nfunction filterTreeById(tree, key, replaceFields = {\n children: 'children',\n key: 'id'\n}) {\n return tree.reduce((acc, node) => {\n if (node[replaceFields.key] === key) {\n return [...acc, node];\n } else if (node[replaceFields.children] && node[replaceFields.children].length > 0) {\n const filteredChildren = filterTreeById(node[replaceFields.children], key);\n if (filteredChildren.length > 0) return filteredChildren;\n }\n return acc;\n }, []);\n}\n\n//# sourceURL=webpack://mui/./plugins/utils/Tree.js?");
8905
8905
 
8906
8906
  /***/ }),
8907
8907
 
@@ -8938,6 +8938,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
8938
8938
 
8939
8939
  /***/ }),
8940
8940
 
8941
+ /***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-2.use[2]!./plugins/lib/iframe/index.less":
8942
+ /*!********************************************************************************************************************************************!*\
8943
+ !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-2.use[2]!./plugins/lib/iframe/index.less ***!
8944
+ \********************************************************************************************************************************************/
8945
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
8946
+
8947
+ "use strict";
8948
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ant-pro-grid-content-page {\\n width: 100%;\\n height: 100%;\\n}\\n\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://mui/./plugins/lib/iframe/index.less?./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-2.use%5B2%5D");
8949
+
8950
+ /***/ }),
8951
+
8941
8952
  /***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-2.use[2]!./plugins/lib/layout/Header.less":
8942
8953
  /*!*********************************************************************************************************************************************!*\
8943
8954
  !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-2.use[2]!./plugins/lib/layout/Header.less ***!
@@ -9179,6 +9190,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
9179
9190
 
9180
9191
  /***/ }),
9181
9192
 
9193
+ /***/ "./plugins/lib/iframe/index.less":
9194
+ /*!***************************************!*\
9195
+ !*** ./plugins/lib/iframe/index.less ***!
9196
+ \***************************************/
9197
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9198
+
9199
+ "use strict";
9200
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_getTarget_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/getTarget.js */ \"./node_modules/style-loader/dist/runtime/getTarget.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_getTarget_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_getTarget_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_less_loader_dist_cjs_js_clonedRuleSet_2_use_2_index_less__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??clonedRuleSet-2.use[2]!./index.less */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-2.use[2]!./plugins/lib/iframe/index.less\");\n\n \n \n \n \n \n \n \n\nvar options = {};\n\noptions.styleTagTransform = function(css, style){\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n };\noptions.setAttributes = function(style) {\n var nonce =\n true ? __webpack_require__.nc : 0;\n\n if (nonce) {\n style.setAttribute(\"nonce\", nonce);\n }\n };\noptions.insert = function(style){\n var target = _node_modules_style_loader_dist_runtime_getTarget_js__WEBPACK_IMPORTED_MODULE_2___default()(\"head\");\n\n if (!target) {\n throw new Error(\n \"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\"\n );\n }\n\n target.appendChild(style);\n };\noptions.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_3___default());\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_less_loader_dist_cjs_js_clonedRuleSet_2_use_2_index_less__WEBPACK_IMPORTED_MODULE_4__[\"default\"], options);\n\n\n\n\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_less_loader_dist_cjs_js_clonedRuleSet_2_use_2_index_less__WEBPACK_IMPORTED_MODULE_4__[\"default\"] && _node_modules_css_loader_dist_cjs_js_node_modules_less_loader_dist_cjs_js_clonedRuleSet_2_use_2_index_less__WEBPACK_IMPORTED_MODULE_4__[\"default\"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_less_loader_dist_cjs_js_clonedRuleSet_2_use_2_index_less__WEBPACK_IMPORTED_MODULE_4__[\"default\"].locals : undefined);\n\n\n//# sourceURL=webpack://mui/./plugins/lib/iframe/index.less?");
9201
+
9202
+ /***/ }),
9203
+
9182
9204
  /***/ "./plugins/lib/layout/Header.less":
9183
9205
  /*!****************************************!*\
9184
9206
  !*** ./plugins/lib/layout/Header.less ***!
@@ -3053,7 +3053,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3053
3053
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3054
3054
 
3055
3055
  "use strict";
3056
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TopMenuProps: function() { return /* binding */ TopMenuProps; }\n/* harmony export */ });\n/* harmony import */ var _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vue/babel-helper-vue-jsx-merge-props */ \"./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js\");\n/* harmony import */ var _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue/es/_util/vue-types */ \"./node_modules/ant-design-vue/es/_util/vue-types/index.js\");\n/* harmony import */ var ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue/es/menu */ \"./node_modules/ant-design-vue/es/menu/index.js\");\n\n\n\nconst {\n Item: MenuItem,\n SubMenu\n} = ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nconst TopMenuProps = {\n menus: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].array,\n theme: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].string.def('dark'),\n i18nRender: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].oneOfType([ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].func, ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].bool]).def(false)\n};\nconst httpReg = /(http|https|ftp):\\/\\/([\\w.]+\\/?)\\S*/;\nconst renderMenu = (h, item, i18nRender, selectedKeys) => {\n if (item && !item.hidden) {\n const bool = item.children && !item.hideChildrenInMenu;\n return bool ? renderSubMenu(h, item, i18nRender, selectedKeys) : renderMenuItem(h, item, i18nRender);\n }\n return null;\n};\nconst renderSubMenu = (h, item, i18nRender, selectedKeys) => {\n const menuActive = item.children.find(children => selectedKeys.includes(children.path)) ?? item;\n console.log(selectedKeys);\n return h(SubMenu, {\n \"key\": item.path,\n \"attrs\": {\n \"title\": h(\"span\", [renderTitle(h, menuActive.meta.title, i18nRender)])\n }\n }, [!item.hideChildrenInMenu && item.children.map(cd => renderMenu(h, cd, i18nRender, selectedKeys))]);\n};\nconst renderMenuItem = (h, item, i18nRender) => {\n const meta = Object.assign({}, item.meta);\n const target = meta.target || null;\n const hasRemoteUrl = httpReg.test(item.path);\n const CustomTag = target && 'a' || 'router-link';\n const props = {\n to: {\n name: item.name\n }\n };\n const attrs = hasRemoteUrl || target ? {\n href: item.path,\n target: target\n } : {};\n if (item.children && item.hideChildrenInMenu) {\n // 把有子菜单的 并且 父菜单是要隐藏子菜单的\n // 都给子菜单增加一个 hidden 属性\n // 用来给刷新页面时, selectedKeys 做控制用\n item.children.forEach(cd => {\n cd.meta = Object.assign(cd.meta || {}, {\n hidden: true\n });\n });\n }\n return h(MenuItem, {\n \"key\": item.path\n }, [h(CustomTag, {\n \"props\": {\n ...props\n },\n \"attrs\": {\n ...attrs\n }\n }, [renderTitle(h, meta.title, i18nRender)])]);\n};\nconst renderTitle = (h, title, i18nRender) => {\n return h(\"span\", [i18nRender && i18nRender(title) || title]);\n};\nconst TopMenu = {\n name: 'TopMenu',\n props: TopMenuProps,\n data() {\n return {\n openKeys: [],\n selectedKeys: [],\n cachedOpenKeys: [],\n cachedSelectedKeys: []\n };\n },\n render(h) {\n const {\n theme,\n menus,\n i18nRender\n } = this;\n const handleOpenChange = openKeys => {\n this.openKeys = openKeys;\n };\n const dynamicProps = {\n props: {\n mode: 'horizontal',\n theme,\n openKeys: this.openKeys,\n selectedKeys: this.selectedKeys\n },\n on: {\n select: menu => {\n this.$emit('select', menu);\n if (!httpReg.test(menu.key)) {\n this.selectedKeys = menu.selectedKeys;\n }\n },\n openChange: handleOpenChange\n }\n };\n const menuItems = menus.map(item => {\n if (item.hidden) {\n return null;\n }\n return renderMenu(h, item, i18nRender, this.selectedKeys);\n });\n return h(ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default()([{}, dynamicProps]), [menuItems]);\n },\n methods: {\n updateMenu() {\n const routes = this.$route.matched.concat();\n const {\n hidden\n } = this.$route.meta;\n if (routes.length >= 3 && hidden) {\n routes.pop();\n this.selectedKeys = [routes[routes.length - 1].path];\n } else {\n this.selectedKeys = [routes.pop().path];\n }\n }\n },\n created() {\n this.$watch('$route', () => {\n this.updateMenu();\n });\n },\n mounted() {\n this.updateMenu();\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (TopMenu);\n\n//# sourceURL=webpack://mui/./plugins/lib/layout/components/TopMenu/TopMenu.jsx?");
3056
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TopMenuProps: function() { return /* binding */ TopMenuProps; }\n/* harmony export */ });\n/* harmony import */ var _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vue/babel-helper-vue-jsx-merge-props */ \"./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js\");\n/* harmony import */ var _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue/es/_util/vue-types */ \"./node_modules/ant-design-vue/es/_util/vue-types/index.js\");\n/* harmony import */ var ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue/es/menu */ \"./node_modules/ant-design-vue/es/menu/index.js\");\n\n\n\nconst {\n Item: MenuItem,\n SubMenu\n} = ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nconst TopMenuProps = {\n menus: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].array,\n theme: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].string.def('dark'),\n i18nRender: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].oneOfType([ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].func, ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_2__[\"default\"].bool]).def(false)\n};\nconst httpReg = /(http|https|ftp):\\/\\/([\\w.]+\\/?)\\S*/;\nconst renderMenu = (h, item, i18nRender, selectedKeys) => {\n if (item && !item.hidden) {\n const bool = item.children && !item.hideChildrenInMenu;\n return bool ? renderSubMenu(h, item, i18nRender, selectedKeys) : renderMenuItem(h, item, i18nRender);\n }\n return null;\n};\nconst renderSubMenu = (h, item, i18nRender, selectedKeys) => {\n const menuActive = item.children.find(children => selectedKeys.includes(children.path)) ?? item;\n return h(SubMenu, {\n \"key\": item.path,\n \"attrs\": {\n \"title\": h(\"span\", [renderTitle(h, menuActive.meta.title, i18nRender)])\n }\n }, [!item.hideChildrenInMenu && item.children.map(cd => renderMenu(h, cd, i18nRender, selectedKeys))]);\n};\nconst renderMenuItem = (h, item, i18nRender) => {\n const meta = Object.assign({}, item.meta);\n const target = meta.target || null;\n const hasRemoteUrl = httpReg.test(item.path);\n const CustomTag = target && 'a' || 'router-link';\n const props = {\n to: {\n name: item.name\n }\n };\n const attrs = hasRemoteUrl || target ? {\n href: item.path,\n target: target\n } : {};\n if (item.children && item.hideChildrenInMenu) {\n // 把有子菜单的 并且 父菜单是要隐藏子菜单的\n // 都给子菜单增加一个 hidden 属性\n // 用来给刷新页面时, selectedKeys 做控制用\n item.children.forEach(cd => {\n cd.meta = Object.assign(cd.meta || {}, {\n hidden: true\n });\n });\n }\n return h(MenuItem, {\n \"key\": item.path\n }, [h(CustomTag, {\n \"props\": {\n ...props\n },\n \"attrs\": {\n ...attrs\n }\n }, [renderTitle(h, meta.title, i18nRender)])]);\n};\nconst renderTitle = (h, title, i18nRender) => {\n return h(\"span\", [i18nRender && i18nRender(title) || title]);\n};\nconst TopMenu = {\n name: 'TopMenu',\n props: TopMenuProps,\n data() {\n return {\n openKeys: [],\n selectedKeys: [],\n cachedOpenKeys: [],\n cachedSelectedKeys: []\n };\n },\n render(h) {\n const {\n theme,\n menus,\n i18nRender\n } = this;\n const handleOpenChange = openKeys => {\n this.openKeys = openKeys;\n };\n const dynamicProps = {\n props: {\n mode: 'horizontal',\n theme,\n openKeys: this.openKeys,\n selectedKeys: this.selectedKeys\n },\n on: {\n select: menu => {\n this.$emit('select', menu);\n if (!httpReg.test(menu.key)) {\n this.selectedKeys = menu.selectedKeys;\n }\n },\n openChange: handleOpenChange\n }\n };\n const menuItems = menus.map(item => {\n if (item.hidden) {\n return null;\n }\n return renderMenu(h, item, i18nRender, this.selectedKeys);\n });\n return h(ant_design_vue_es_menu__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default()([{}, dynamicProps]), [menuItems]);\n },\n methods: {\n updateMenu() {\n const routes = this.$route.matched.concat();\n const {\n hidden,\n isTopChild\n } = this.$route.meta;\n if (routes.length >= 3 && !isTopChild) {\n /** 不确定是否能正确适用 */\n this.selectedKeys = [routes[1].path];\n return;\n }\n if (routes.length >= 3 && hidden) {\n routes.pop();\n this.selectedKeys = [routes[routes.length - 1].path];\n } else {\n this.selectedKeys = [routes.pop().path];\n }\n }\n },\n created() {\n this.$watch('$route', () => {\n this.updateMenu();\n });\n },\n mounted() {\n this.updateMenu();\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (TopMenu);\n\n//# sourceURL=webpack://mui/./plugins/lib/layout/components/TopMenu/TopMenu.jsx?");
3057
3057
 
3058
3058
  /***/ }),
3059
3059
 
package/dist/tree.umd.js CHANGED
@@ -3368,7 +3368,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3368
3368
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3369
3369
 
3370
3370
  "use strict";
3371
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ filterTreeById: function() { return /* binding */ filterTreeById; },\n/* harmony export */ findCheckNodes: function() { return /* binding */ findCheckNodes; },\n/* harmony export */ getTreeKey: function() { return /* binding */ getTreeKey; },\n/* harmony export */ joinTreeMessage: function() { return /* binding */ joinTreeMessage; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\r\n * @param nodes 数组对象\r\n * @param parent 是否只获取父一层的属性\r\n * @param replaceFields 自定义属性进行查询\r\n * @description 递归获取需要的数据\r\n */\nfunction getTreeKey(nodes, parent = false, replaceFields = {\n children: 'children',\n key: 'id',\n title: 'title'\n}) {\n const filterNodes = [];\n function generateList(checkNodes) {\n checkNodes.forEach(e => {\n if (!parent) filterNodes.push(e[replaceFields.key]);\n if (e[replaceFields.children]?.length) {\n if (parent) filterNodes.push(e[replaceFields.key]);\n generateList(e[replaceFields.children]);\n }\n });\n }\n generateList(nodes);\n return filterNodes;\n}\n\n/**\r\n * 根据树子节点ID过滤出最后一级child\r\n * @param {array} dataSource 树形结构数据源\r\n * @param {array} nodeIds 需要过滤的数据集\r\n * @param {string} hasField 过滤包含属性(默认为children)\r\n * @param {string} searchField 查找属性(默认为id)\r\n */\n\nfunction findCheckNodes(dataSource, nodeIds, searchField = 'id', hasField = 'children') {\n let checkNodes = [];\n function traverse(node, nodeIds) {\n if (nodeIds.includes(node[searchField]) && !node.hasOwnProperty(hasField)) {\n checkNodes.push(node);\n return true;\n }\n node[hasField] && node[hasField].forEach(childNode => {\n if (traverse(childNode, nodeIds)) return true;\n });\n return false;\n }\n for (let i = 0; i < dataSource.length; i++) {\n if (traverse(dataSource[i], nodeIds)) {\n break;\n }\n }\n return checkNodes;\n}\n\n/**\r\n * @param nodes 数组对象\r\n * @param fileds 哪些字段需要拼接\r\n * @param replaceField 拼接后赋值字段\r\n * @param childNode 子级结点\r\n * @description 递归获取需要的数据\r\n */\nfunction joinTreeMessage(nodes, fileds, replaceField, childNode) {\n function generateList(checkNodes) {\n checkNodes.forEach(e => {\n e[replaceField] = '';\n fileds.forEach(filed => e[filed] && (e[replaceField] += ` ${e[filed]}`));\n if (e[childNode]?.length) {\n generateList(e[childNode]);\n }\n });\n }\n generateList(nodes);\n return nodes;\n}\n\n/**\r\n * @param tree 数组对象\r\n * @param id 需要查找的key\r\n * @param replaceFields 拼接后赋值字段\r\n * {\r\n children: 'children', // 查找子级字段\r\n key: 'id' // key的字段\r\n }\r\n */\nfunction filterTreeById(tree, id, replaceFields = {\n children: 'children',\n key: 'id'\n}) {\n return tree.reduce((acc, node) => {\n if (node[replaceFields.key] === id) {\n return [...acc, node];\n } else if (node[replaceFields.children] && node[replaceFields.children].length > 0) {\n const filteredChildren = filterTreeById(node[replaceFields.children], id);\n if (filteredChildren.length > 0) return filteredChildren;\n }\n return acc;\n }, []);\n}\n\n//# sourceURL=webpack://mui/./plugins/utils/Tree.js?");
3371
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ filterTreeById: function() { return /* binding */ filterTreeById; },\n/* harmony export */ findCheckNodes: function() { return /* binding */ findCheckNodes; },\n/* harmony export */ getTreeKey: function() { return /* binding */ getTreeKey; },\n/* harmony export */ joinTreeMessage: function() { return /* binding */ joinTreeMessage; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\r\n * 获取树形结构所有key\r\n * @param nodes 数组对象\r\n * @param parent 是否只获取父一层的属性\r\n * @param replaceFields 自定义属性进行查询\r\n */\nfunction getTreeKey(nodes, parent = false, replaceFields = {\n children: 'children',\n key: 'id',\n title: 'title'\n}) {\n const filterNodes = [];\n function generateList(checkNodes) {\n checkNodes.forEach(e => {\n if (!parent) filterNodes.push(e[replaceFields.key]);\n if (e[replaceFields.children]?.length) {\n if (parent) filterNodes.push(e[replaceFields.key]);\n generateList(e[replaceFields.children]);\n }\n });\n }\n generateList(nodes);\n return filterNodes;\n}\n\n/**\r\n * 根据树子节点ID过滤出最后一级child\r\n * @param {array} dataSource 树形结构数据源\r\n * @param {array} nodeIds 需要过滤的数据集\r\n * @param {string} hasField 过滤包含属性(默认为children)\r\n * @param {string} searchField 查找属性(默认为id)\r\n */\n\nfunction findCheckNodes(dataSource, nodeIds, searchField = 'id', hasField = 'children') {\n let checkNodes = [];\n function traverse(node, nodeIds) {\n if (nodeIds.includes(node[searchField]) && !node.hasOwnProperty(hasField)) {\n checkNodes.push(node);\n return true;\n }\n node[hasField] && node[hasField].forEach(childNode => {\n if (traverse(childNode, nodeIds)) return true;\n });\n return false;\n }\n for (let i = 0; i < dataSource.length; i++) {\n if (traverse(dataSource[i], nodeIds)) {\n break;\n }\n }\n return checkNodes;\n}\n\n/**\r\n * 根据要求拼接树结构字段 ( 比如:后端返回name phone,前端显示要求name后拼接phone\r\n * @param nodes 数组对象\r\n * @param fileds 哪些字段需要拼接\r\n * @param replaceField 拼接后赋值字段\r\n * @param childNode 子级结点\r\n */\nfunction joinTreeMessage(nodes, fileds, replaceField, childNode) {\n function generateList(checkNodes) {\n checkNodes.forEach(e => {\n e[replaceField] = '';\n fileds.forEach(filed => e[filed] && (e[replaceField] += ` ${e[filed]}`));\n if (e[childNode]?.length) {\n generateList(e[childNode]);\n }\n });\n }\n generateList(nodes);\n return nodes;\n}\n\n/**\r\n * 根据某个属性查找出整个树结构中匹配相同的数据\r\n * @param tree 数组对象\r\n * @param key 需要查找的属性\r\n * @param replaceFields 树结构对应子级及查找key的属性\r\n * {\r\n children: 'children', // 查找子级字段\r\n key: 'id' // key的字段\r\n }\r\n */\nfunction filterTreeById(tree, key, replaceFields = {\n children: 'children',\n key: 'id'\n}) {\n return tree.reduce((acc, node) => {\n if (node[replaceFields.key] === key) {\n return [...acc, node];\n } else if (node[replaceFields.children] && node[replaceFields.children].length > 0) {\n const filteredChildren = filterTreeById(node[replaceFields.children], key);\n if (filteredChildren.length > 0) return filteredChildren;\n }\n return acc;\n }, []);\n}\n\n//# sourceURL=webpack://mui/./plugins/utils/Tree.js?");
3372
3372
 
3373
3373
  /***/ }),
3374
3374
 
@@ -37,12 +37,12 @@
37
37
  <script>
38
38
 
39
39
  import resetFields from './utils/resetFields'
40
- import { FormModel, Button, Radio, Input, InputNumber, Checkbox, DatePicker, TimePicker, Icon } from 'ant-design-vue'
40
+ import { FormModel, Button, Radio, Input, InputNumber, Checkbox, DatePicker, TimePicker, Cascader, Icon } from 'ant-design-vue'
41
41
 
42
42
  export default {
43
43
  name: 'Search',
44
44
  components: {
45
- FormModel,
45
+ FormModel,
46
46
  FormModelItem: FormModel.Item,
47
47
  Button,
48
48
  Radio,
@@ -50,8 +50,10 @@ export default {
50
50
  InputNumber,
51
51
  Checkbox,
52
52
  DatePicker,
53
- TimePicker,
53
+ TimePicker,
54
+ Cascader,
54
55
  ASelectCustom: () => import('./components/ASelectCustom.vue'),
56
+ ACascaderMultiple: () => import('./components/ACascaderMultiple.vue'),
55
57
  Icon
56
58
  },
57
59
  data() {
@@ -0,0 +1 @@
1
+ .ant-pro-grid-content-page{width:100%;height:100%}
@@ -2,6 +2,8 @@ import PropTypes from 'ant-design-vue/es/_util/vue-types'
2
2
 
3
3
  import Modal from '../modal/index.jsx'
4
4
 
5
+ import './index.less'
6
+
5
7
  const IframeContainerProps = {
6
8
  activeKey: PropTypes.string,
7
9
  checkedKey: PropTypes.string.def('name'),
@@ -43,7 +45,7 @@ const IframeContainer = {
43
45
  })
44
46
 
45
47
  return (
46
- activeIframe[linkurlKey].includes('?type=modal') ?
48
+ activeIframe && activeIframe[linkurlKey].includes('?type=modal') ?
47
49
  <Modal visible={true} title={activeIframe.meta?.title}>
48
50
  {IframeComponents}
49
51
  </Modal> :
@@ -1,8 +1,6 @@
1
- @import '~ant-design-vue/lib/style/themes/default.less';
1
+ // @import '~ant-design-vue/lib/style/themes/default.less';
2
2
 
3
3
  .ant-pro-grid-content-page {
4
4
  width: 100%;
5
5
  height: 100%;
6
- padding: @padding-lg;
7
- box-sizing: border-box;
8
6
  }
@@ -78,11 +78,12 @@ const HeaderView = {
78
78
  headerLeftRender,
79
79
  headerRightRender
80
80
  }
81
+
82
+ // style={{
83
+ // height: headerHeight + 'px'
84
+ // }}
81
85
 
82
- return <div class={baseCls}
83
- style={{
84
- height: headerHeight + 'px'
85
- }}>
86
+ return <div class={baseCls}>
86
87
  {
87
88
  isTop ? (
88
89
  <div>
@@ -21,11 +21,10 @@ const renderMenu = (h, item, i18nRender, selectedKeys) => {
21
21
  return bool ? renderSubMenu(h, item, i18nRender, selectedKeys) : renderMenuItem(h, item, i18nRender)
22
22
  }
23
23
  return null
24
- }
24
+ }
25
25
 
26
26
  const renderSubMenu = (h, item, i18nRender, selectedKeys) => {
27
27
  const menuActive = item.children.find(children => selectedKeys.includes(children.path) ) ?? item
28
- console.log(selectedKeys)
29
28
  return (
30
29
  <SubMenu key={item.path} title={(
31
30
  <span>{renderTitle(h, menuActive.meta.title, i18nRender)}</span>
@@ -38,7 +37,7 @@ const renderSubMenu = (h, item, i18nRender, selectedKeys) => {
38
37
  const renderMenuItem = (h, item, i18nRender) => {
39
38
  const meta = Object.assign({}, item.meta)
40
39
  const target = meta.target || null
41
- const hasRemoteUrl = httpReg.test(item.path)
40
+ const hasRemoteUrl = httpReg.test(item.path)
42
41
  const CustomTag = target && 'a' || 'router-link'
43
42
  const props = { to: { name: item.name } }
44
43
  const attrs = (hasRemoteUrl || target) ? { href: item.path, target: target } : {}
@@ -107,12 +106,17 @@ const TopMenu = {
107
106
  })
108
107
  return <Menu {...dynamicProps}>{menuItems}</Menu>
109
108
  },
110
- methods: {
109
+ methods: {
111
110
  updateMenu () {
112
111
  const routes = this.$route.matched.concat()
113
- const { hidden } = this.$route.meta
112
+ const { hidden, isTopChild } = this.$route.meta
113
+ if (routes.length >= 3 && !isTopChild) {
114
+ /** 不确定是否能正确适用 */
115
+ this.selectedKeys = [routes[1].path]
116
+ return
117
+ }
114
118
  if (routes.length >= 3 && hidden) {
115
- routes.pop()
119
+ routes.pop()
116
120
  this.selectedKeys = [routes[routes.length - 1].path]
117
121
  } else {
118
122
  this.selectedKeys = [routes.pop().path]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web-component-gallery",
3
- "version": "0.1.42",
3
+ "version": "0.1.43",
4
4
  "description": "vue-library-ui组件库",
5
5
  "main": "dist/index.umd.js",
6
6
  "files": [
@@ -37,12 +37,12 @@
37
37
  <script>
38
38
 
39
39
  import resetFields from './utils/resetFields'
40
- import { FormModel, Button, Radio, Input, InputNumber, Checkbox, DatePicker, TimePicker, Icon } from 'ant-design-vue'
40
+ import { FormModel, Button, Radio, Input, InputNumber, Checkbox, DatePicker, TimePicker, Cascader, Icon } from 'ant-design-vue'
41
41
 
42
42
  export default {
43
43
  name: 'Search',
44
44
  components: {
45
- FormModel,
45
+ FormModel,
46
46
  FormModelItem: FormModel.Item,
47
47
  Button,
48
48
  Radio,
@@ -50,8 +50,10 @@ export default {
50
50
  InputNumber,
51
51
  Checkbox,
52
52
  DatePicker,
53
- TimePicker,
53
+ TimePicker,
54
+ Cascader,
54
55
  ASelectCustom: () => import('./components/ASelectCustom.vue'),
56
+ ACascaderMultiple: () => import('./components/ACascaderMultiple.vue'),
55
57
  Icon
56
58
  },
57
59
  data() {
@@ -2,6 +2,8 @@ import PropTypes from 'ant-design-vue/es/_util/vue-types'
2
2
 
3
3
  import Modal from '../modal/index.jsx'
4
4
 
5
+ import './index.less'
6
+
5
7
  const IframeContainerProps = {
6
8
  activeKey: PropTypes.string,
7
9
  checkedKey: PropTypes.string.def('name'),
@@ -43,7 +45,7 @@ const IframeContainer = {
43
45
  })
44
46
 
45
47
  return (
46
- activeIframe[linkurlKey].includes('?type=modal') ?
48
+ activeIframe && activeIframe[linkurlKey].includes('?type=modal') ?
47
49
  <Modal visible={true} title={activeIframe.meta?.title}>
48
50
  {IframeComponents}
49
51
  </Modal> :
@@ -1,8 +1,6 @@
1
- @import '~ant-design-vue/lib/style/themes/default.less';
1
+ // @import '~ant-design-vue/lib/style/themes/default.less';
2
2
 
3
3
  .ant-pro-grid-content-page {
4
4
  width: 100%;
5
5
  height: 100%;
6
- padding: @padding-lg;
7
- box-sizing: border-box;
8
6
  }
@@ -78,11 +78,12 @@ const HeaderView = {
78
78
  headerLeftRender,
79
79
  headerRightRender
80
80
  }
81
+
82
+ // style={{
83
+ // height: headerHeight + 'px'
84
+ // }}
81
85
 
82
- return <div class={baseCls}
83
- style={{
84
- height: headerHeight + 'px'
85
- }}>
86
+ return <div class={baseCls}>
86
87
  {
87
88
  isTop ? (
88
89
  <div>
@@ -21,11 +21,10 @@ const renderMenu = (h, item, i18nRender, selectedKeys) => {
21
21
  return bool ? renderSubMenu(h, item, i18nRender, selectedKeys) : renderMenuItem(h, item, i18nRender)
22
22
  }
23
23
  return null
24
- }
24
+ }
25
25
 
26
26
  const renderSubMenu = (h, item, i18nRender, selectedKeys) => {
27
27
  const menuActive = item.children.find(children => selectedKeys.includes(children.path) ) ?? item
28
- console.log(selectedKeys)
29
28
  return (
30
29
  <SubMenu key={item.path} title={(
31
30
  <span>{renderTitle(h, menuActive.meta.title, i18nRender)}</span>
@@ -38,7 +37,7 @@ const renderSubMenu = (h, item, i18nRender, selectedKeys) => {
38
37
  const renderMenuItem = (h, item, i18nRender) => {
39
38
  const meta = Object.assign({}, item.meta)
40
39
  const target = meta.target || null
41
- const hasRemoteUrl = httpReg.test(item.path)
40
+ const hasRemoteUrl = httpReg.test(item.path)
42
41
  const CustomTag = target && 'a' || 'router-link'
43
42
  const props = { to: { name: item.name } }
44
43
  const attrs = (hasRemoteUrl || target) ? { href: item.path, target: target } : {}
@@ -107,12 +106,17 @@ const TopMenu = {
107
106
  })
108
107
  return <Menu {...dynamicProps}>{menuItems}</Menu>
109
108
  },
110
- methods: {
109
+ methods: {
111
110
  updateMenu () {
112
111
  const routes = this.$route.matched.concat()
113
- const { hidden } = this.$route.meta
112
+ const { hidden, isTopChild } = this.$route.meta
113
+ if (routes.length >= 3 && !isTopChild) {
114
+ /** 不确定是否能正确适用 */
115
+ this.selectedKeys = [routes[1].path]
116
+ return
117
+ }
114
118
  if (routes.length >= 3 && hidden) {
115
- routes.pop()
119
+ routes.pop()
116
120
  this.selectedKeys = [routes[routes.length - 1].path]
117
121
  } else {
118
122
  this.selectedKeys = [routes.pop().path]
@@ -1,10 +1,10 @@
1
1
 
2
2
 
3
3
  /**
4
+ * 获取树形结构所有key
4
5
  * @param nodes 数组对象
5
6
  * @param parent 是否只获取父一层的属性
6
7
  * @param replaceFields 自定义属性进行查询
7
- * @description 递归获取需要的数据
8
8
  */
9
9
  export function getTreeKey(nodes, parent = false, replaceFields = { children: 'children', key: 'id', title: 'title' }) {
10
10
 
@@ -27,7 +27,7 @@ export function getTreeKey(nodes, parent = false, replaceFields = { children: 'c
27
27
 
28
28
  return filterNodes
29
29
 
30
- }
30
+ }
31
31
 
32
32
 
33
33
  /**
@@ -66,11 +66,11 @@ export function findCheckNodes(dataSource, nodeIds, searchField = 'id', hasField
66
66
  }
67
67
 
68
68
  /**
69
+ * 根据要求拼接树结构字段 ( 比如:后端返回name phone,前端显示要求name后拼接phone
69
70
  * @param nodes 数组对象
70
71
  * @param fileds 哪些字段需要拼接
71
72
  * @param replaceField 拼接后赋值字段
72
73
  * @param childNode 子级结点
73
- * @description 递归获取需要的数据
74
74
  */
75
75
  export function joinTreeMessage(nodes, fileds, replaceField, childNode) {
76
76
 
@@ -98,20 +98,21 @@ export function joinTreeMessage(nodes, fileds, replaceField, childNode) {
98
98
 
99
99
 
100
100
  /**
101
+ * 根据某个属性查找出整个树结构中匹配相同的数据
101
102
  * @param tree 数组对象
102
- * @param id 需要查找的key
103
- * @param replaceFields 拼接后赋值字段
103
+ * @param key 需要查找的属性
104
+ * @param replaceFields 树结构对应子级及查找key的属性
104
105
  * {
105
106
  children: 'children', // 查找子级字段
106
107
  key: 'id' // key的字段
107
108
  }
108
109
  */
109
- export function filterTreeById(tree, id, replaceFields = { children: 'children', key: 'id' }) {
110
+ export function filterTreeById(tree, key, replaceFields = { children: 'children', key: 'id' }) {
110
111
  return tree.reduce((acc, node) => {
111
- if (node[replaceFields.key] === id) {
112
+ if (node[replaceFields.key] === key) {
112
113
  return [...acc, node]
113
114
  } else if (node[replaceFields.children] && node[replaceFields.children].length > 0) {
114
- const filteredChildren = filterTreeById(node[replaceFields.children], id)
115
+ const filteredChildren = filterTreeById(node[replaceFields.children], key)
115
116
  if (filteredChildren.length > 0) return filteredChildren
116
117
  }
117
118
  return acc