web-component-gallery 0.1.53 → 0.1.55

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/amap.umd.js CHANGED
@@ -8263,7 +8263,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_
8263
8263
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8264
8264
 
8265
8265
  "use strict";
8266
- eval("__webpack_require__.r(__webpack_exports__);\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/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/icon/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/upload/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n model: {\n prop: 'value',\n event: 'handleFileUpload'\n },\n components: {\n Icon: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Upload: ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n props: {\n value: {\n type: [String, Array],\n default: () => []\n },\n /* 提示文字 */\n tips: String,\n /* 上传文件数量限制 */\n uploadLen: {\n type: Number,\n default: 1\n },\n /* 上传接口 */\n fileUploadUrl: {\n type: String,\n default: vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype.$https.UPLOADURL\n },\n /* 显示需要pin的接口前缀 */\n filePrefixUrl: {\n type: String,\n default: vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype.$https.FILEURL\n },\n /* 上传文件格式限制 */\n fileAccept: String,\n /* 上传文件携带Headers信息 */\n fileHeaders: {\n type: Object,\n default: () => vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype.$store.getters.fileHeaders\n },\n /* 删除文件函数回调 */\n fileRemoveHandle: Function\n },\n data() {\n return {\n fileList: [],\n modalValue: []\n };\n },\n watch: {\n value() {\n this.setResetFile();\n }\n },\n mounted() {\n this.setResetFile();\n },\n methods: {\n setResetFile() {\n let arrayObject;\n try {\n arrayObject = JSON.parse(this.value);\n } catch (e) {\n arrayObject = [].concat(this.value);\n }\n this.modalValue = arrayObject ?? [];\n this.fileList = this.modalValue.map(file => ({\n ...file,\n url: `${this.filePrefixUrl}${file.url}`,\n type: file.contentType,\n status: 'done'\n }));\n },\n handleFilePreview({\n uid,\n contentType,\n url\n }) {\n let suffix = url.substr(url.lastIndexOf('.') + 1);\n const pictureSuffix = ['JPEG', 'JPG', 'GIF', 'PNG', 'TIFF', 'WEBP', 'BMP'];\n if (contentType.includes('image') || pictureSuffix.includes(suffix.toUpperCase())) {\n this.$viewerApi({\n options: {\n url: 'url',\n toolbar: true,\n initialViewIndex: this.fileList.findIndex(file => file.url == url)\n },\n images: this.fileList\n });\n return;\n }\n this.$dialog('fileBrowse', {\n src: url\n });\n },\n handleFileChange({\n file,\n fileList\n }) {\n file.status == 'uploading' && (this.fileList = fileList);\n switch (file.status) {\n case 'removed':\n const params = {\n id: file.uid\n };\n const requestHandle = this.fileRemoveHandle ? this.fileRemoveHandle(params) : this.$store.dispatch('fileRemoveHandle', params);\n requestHandle.then(Response => {\n const i = this.modalValue.findIndex(e => e.uid == file.uid);\n this.modalValue.splice(i, 1);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n });\n break;\n case 'done':\n const {\n data\n } = file.response;\n const uploadFileObj = {\n ...data,\n uid: data.id\n };\n delete uploadFileObj.id;\n this.modalValue.push(uploadFileObj);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n break;\n }\n }\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options");
8266
+ eval("__webpack_require__.r(__webpack_exports__);\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/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/icon/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/upload/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n model: {\n prop: 'value',\n event: 'handleFileUpload'\n },\n components: {\n Icon: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Upload: ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n props: {\n value: {\n type: [String, Array],\n default: () => []\n },\n /* 提示文字 */\n tips: String,\n /* 上传文件数量限制 */\n uploadLen: {\n type: Number,\n default: 1\n },\n /* 上传接口 */\n fileUploadUrl: String,\n /* 显示需要pin的接口前缀 */\n filePrefixUrl: String,\n /* 上传文件格式限制 */\n fileAccept: String,\n /* 上传文件携带Headers信息 */\n fileHeaders: Object,\n /* 删除文件函数回调 */\n fileRemoveHandle: Function\n },\n data() {\n return {\n fileList: [],\n modalValue: []\n };\n },\n watch: {\n value() {\n this.setResetFile();\n }\n },\n computed: {\n uploadAttrs() {\n return {\n prefix: this.filePrefixUrl ?? this.$https.FILEURL,\n action: this.fileUploadUrl ?? this.$https.UPLOADURL,\n headers: this.fileHeaders ?? this.$store.getters.fileHeaders\n };\n }\n },\n mounted() {\n this.setResetFile();\n },\n methods: {\n setResetFile() {\n let arrayObject;\n try {\n arrayObject = JSON.parse(this.value);\n } catch (e) {\n arrayObject = [].concat(this.value);\n }\n this.modalValue = arrayObject ?? [];\n this.fileList = this.modalValue.map(file => ({\n ...file,\n url: `${this.uploadAttrs.prefix}${file.url}`,\n type: file.contentType,\n status: 'done'\n }));\n },\n handleFilePreview({\n uid,\n contentType,\n url\n }) {\n let suffix = url.substr(url.lastIndexOf('.') + 1);\n const pictureSuffix = ['JPEG', 'JPG', 'GIF', 'PNG', 'TIFF', 'WEBP', 'BMP'];\n if (contentType.includes('image') || pictureSuffix.includes(suffix.toUpperCase())) {\n this.$viewerApi({\n options: {\n url: 'url',\n toolbar: true,\n initialViewIndex: this.fileList.findIndex(file => file.url == url)\n },\n images: this.fileList\n });\n return;\n }\n this.$dialog('fileBrowse', {\n src: url\n });\n },\n handleFileChange({\n file,\n fileList\n }) {\n file.status == 'uploading' && (this.fileList = fileList);\n switch (file.status) {\n case 'removed':\n const params = {\n id: file.uid\n };\n const requestHandle = this.fileRemoveHandle ? this.fileRemoveHandle(params) : this.$store.dispatch('fileRemoveHandle', params);\n requestHandle.then(Response => {\n const i = this.modalValue.findIndex(e => e.uid == file.uid);\n this.modalValue.splice(i, 1);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n });\n break;\n case 'done':\n const {\n data\n } = file.response;\n const uploadFileObj = {\n ...data,\n uid: data.id\n };\n delete uploadFileObj.id;\n this.modalValue.push(uploadFileObj);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n break;\n }\n }\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options");
8267
8267
 
8268
8268
  /***/ }),
8269
8269
 
@@ -8428,7 +8428,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
8428
8428
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8429
8429
 
8430
8430
  "use strict";
8431
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; },\n/* harmony export */ staticRenderFns: function() { return /* binding */ staticRenderFns; }\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"TAntdUpload\"\n }, [_c(\"Upload\", {\n attrs: {\n name: \"file\",\n \"file-list\": _vm.fileList,\n \"list-type\": \"picture-card\",\n accept: _vm.fileAccept,\n action: _vm.fileUploadUrl,\n headers: _vm.fileHeaders\n },\n on: {\n change: _vm.handleFileChange,\n preview: _vm.handleFilePreview,\n reject: function ($event) {\n return _vm.$message.error(`上传文件类型只能为${_vm.fileAccept}`);\n }\n }\n }, [!_vm.fileList || _vm.fileList.length < _vm.uploadLen ? _c(\"div\", [_c(\"Icon\", {\n staticStyle: {\n fontsize: \"36px\"\n },\n attrs: {\n type: \"plus\"\n }\n })], 1) : _vm._e()]), _vm._v(\" \"), _vm.tips ? _c(\"span\", {\n staticClass: \"tips\"\n }, [_vm._v(_vm._s(_vm.tips))]) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/lib/index.js??vue-loader-options");
8431
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; },\n/* harmony export */ staticRenderFns: function() { return /* binding */ staticRenderFns; }\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"TAntdUpload\"\n }, [_c(\"Upload\", _vm._b({\n attrs: {\n name: \"file\",\n \"file-list\": _vm.fileList,\n \"list-type\": \"picture-card\",\n accept: _vm.fileAccept\n },\n on: {\n change: _vm.handleFileChange,\n preview: _vm.handleFilePreview,\n reject: function ($event) {\n return _vm.$message.error(`上传文件类型只能为${_vm.fileAccept}`);\n }\n }\n }, \"Upload\", _vm.uploadAttrs, false), [!_vm.fileList || _vm.fileList.length < _vm.uploadLen ? _c(\"div\", [_c(\"Icon\", {\n staticStyle: {\n fontsize: \"36px\"\n },\n attrs: {\n type: \"plus\"\n }\n })], 1) : _vm._e()]), _vm._v(\" \"), _vm.tips ? _c(\"span\", {\n staticClass: \"tips\"\n }, [_vm._v(_vm._s(_vm.tips))]) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/lib/index.js??vue-loader-options");
8432
8432
 
8433
8433
  /***/ }),
8434
8434
 
@@ -8615,7 +8615,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ind
8615
8615
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8616
8616
 
8617
8617
  "use strict";
8618
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__ = __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_descriptions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue/es/descriptions */ \"./node_modules/ant-design-vue/es/descriptions/index.js\");\n/* harmony import */ var _browse_index_jsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../browse/index.jsx */ \"./plugins/lib/browse/index.jsx\");\n/* harmony import */ var _utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/Filter.js */ \"./plugins/utils/Filter.js\");\n/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index.less */ \"./plugins/lib/descriptions/index.less\");\n\n\n\n\nconst {\n Item: DescriptionsItem\n} = ant_design_vue_es_descriptions__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\nconst descDefaultAttrs = {\n size: 'middle',\n bordered: true\n};\nconst DescriptionsProps = {\n title: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].string,\n column: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].oneOfType([ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].number, ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object]).def(3),\n descDetails: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object,\n descSettings: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].array,\n descAttrs: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object\n};\nconst renderContent = (h, item, details) => {\n const CustomTag = item.type === 'file' && _browse_index_jsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"] || 'span';\n const data = item.hasOwnProperty('multiProps') ? item.multiProps.map(propsItem => (0,_utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__.transferData)(details[propsItem], 'Array')).flat() : (0,_utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__.transferData)(details[item.props], 'Array');\n const props = {\n data\n };\n return h(CustomTag, {\n \"props\": {\n ...props\n }\n }, [item.customRender && item.customRender(details[item.props], details) || details[item.props] || '暂无']);\n};\nconst DescriptionsList = {\n name: 'Descriptions',\n props: DescriptionsProps,\n render(h, content) {\n const {\n title,\n column,\n descAttrs,\n descDetails,\n descSettings,\n $slots\n } = this;\n return h(\"div\", {\n \"class\": \"Descriptions\",\n \"ref\": \"Descriptions\"\n }, [h(ant_design_vue_es_descriptions__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n \"attrs\": {\n \"title\": title,\n \"column\": column,\n ...{\n ...descDefaultAttrs,\n ...descAttrs\n }\n }\n }, [descSettings.map((descItem, key) => {\n return h(DescriptionsItem, {\n \"key\": key,\n \"attrs\": {\n \"span\": descItem.span ?? 1\n }\n }, [h(\"div\", {\n \"slot\": \"label\"\n }, [$slots[`${descItem.props}Lable`] ?? descItem.label]), $slots[`${descItem.props}`] ? $slots[`${descItem.props}`](descDetails) : renderContent(h, descItem, descDetails)]);\n })])]);\n },\n mounted() {\n window.addEventListener('resize', this.setDescContentWidth());\n },\n methods: {\n setDescContentWidth() {\n const elementG = this.$refs.Descriptions.querySelectorAll('.ant-descriptions-item-content');\n const width = document.querySelector('.ant-descriptions-row').offsetWidth;\n const labelWidth = document.querySelector('.ant-descriptions-item-label').offsetWidth;\n const {\n column,\n descSettings\n } = this;\n for (let i = 0; i < elementG.length; i++) {\n const contentWidth = (descSettings[i].span ? width * (descSettings[i].span / column) : width / column) - labelWidth + 'px';\n const element = elementG[i];\n element.style = `\n width: ${contentWidth};\n min-width: ${contentWidth};\n max-width: ${contentWidth};\n `;\n }\n }\n }\n};\nDescriptionsList.install = function (Vue) {\n Vue.component('DescriptionsList', DescriptionsList);\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (DescriptionsList);\n\n//# sourceURL=webpack://mui/./plugins/lib/descriptions/index.jsx?");
8618
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__ = __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_descriptions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue/es/descriptions */ \"./node_modules/ant-design-vue/es/descriptions/index.js\");\n/* harmony import */ var _browse_index_jsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../browse/index.jsx */ \"./plugins/lib/browse/index.jsx\");\n/* harmony import */ var _plugins_utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../plugins/utils/Filter.js */ \"./plugins/utils/Filter.js\");\n/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index.less */ \"./plugins/lib/descriptions/index.less\");\n\n\n\n\nconst {\n Item: DescriptionsItem\n} = ant_design_vue_es_descriptions__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\nconst descDefaultAttrs = {\n size: 'middle',\n bordered: true\n};\nconst DescriptionsProps = {\n title: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].string,\n column: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].oneOfType([ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].number, ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object]).def(3),\n descDetails: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object,\n descSettings: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].array,\n descAttrs: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object\n};\nconst renderContent = (h, item, details) => {\n const CustomTag = item.type === 'file' && _browse_index_jsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"] || 'span';\n const data = item.hasOwnProperty('multiProps') ? item.multiProps.map(propsItem => (0,_plugins_utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__.transferData)(details[propsItem], 'Array')).flat() : (0,_plugins_utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__.transferData)(details[item.props], 'Array');\n const props = {\n data\n };\n return h(CustomTag, {\n \"props\": {\n ...props\n }\n }, [item.customRender && item.customRender(details[item.props], details) || details[item.props] || '暂无']);\n};\nconst DescriptionsList = {\n name: 'Descriptions',\n props: DescriptionsProps,\n render(h, content) {\n const {\n title,\n column,\n descAttrs,\n descDetails,\n descSettings,\n $slots,\n $scopedSlots\n } = this;\n return h(\"div\", {\n \"class\": \"Descriptions\",\n \"ref\": \"Descriptions\"\n }, [h(ant_design_vue_es_descriptions__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n \"attrs\": {\n \"title\": title,\n \"column\": column,\n ...{\n ...descDefaultAttrs,\n ...descAttrs\n }\n }\n }, [descSettings.map((descItem, key) => {\n return h(DescriptionsItem, {\n \"key\": key,\n \"attrs\": {\n \"span\": descItem.span ?? 1\n }\n }, [h(\"div\", {\n \"slot\": \"label\"\n }, [$slots[`${descItem.props}Lable`] ?? descItem.label]), $scopedSlots[`${descItem.props}`] ? $scopedSlots[`${descItem.props}`](descDetails) : renderContent(h, descItem, descDetails)]);\n })])]);\n },\n mounted() {\n window.addEventListener('resize', this.setDescContentWidth());\n },\n methods: {\n setDescContentWidth() {\n const elementG = this.$refs.Descriptions.querySelectorAll('.ant-descriptions-item-content');\n const width = document.querySelector('.ant-descriptions-row').offsetWidth;\n const labelWidth = document.querySelector('.ant-descriptions-item-label').offsetWidth;\n const {\n column,\n descSettings\n } = this;\n for (let i = 0; i < elementG.length; i++) {\n const contentWidth = (descSettings[i].span ? width * (descSettings[i].span / column) : width / column) - labelWidth + 'px';\n const element = elementG[i];\n element.style = `\n width: ${contentWidth};\n min-width: ${contentWidth};\n max-width: ${contentWidth};\n `;\n }\n }\n }\n};\nDescriptionsList.install = function (Vue) {\n Vue.component('DescriptionsList', DescriptionsList);\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (DescriptionsList);\n\n//# sourceURL=webpack://mui/./plugins/lib/descriptions/index.jsx?");
8619
8619
 
8620
8620
  /***/ }),
8621
8621
 
@@ -8626,7 +8626,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_
8626
8626
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8627
8627
 
8628
8628
  "use strict";
8629
- eval("__webpack_require__.r(__webpack_exports__);\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__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/form-model/index.js\");\n/* harmony import */ var _components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/RenderComp.vue */ \"./plugins/lib/form/components/RenderComp.vue\");\n/* harmony import */ var _style_Model_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./style/Model.less */ \"./plugins/lib/form/style/Model.less\");\n\n\n\n\nconst FormModelItem = ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Item;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Model',\n model: {\n prop: 'value',\n event: 'Change:Model'\n },\n data() {\n return {\n formRules: {},\n labelCol: {\n span: 4\n },\n wrapperCol: {\n span: 20\n }\n };\n },\n props: {\n value: {\n type: Object,\n default: () => ({})\n },\n /* Form布局方式 */\n layout: {\n type: String,\n default: 'vertical'\n },\n /* 一行显示几个 PS:最多5个 */\n layoutSize: {\n type: Number,\n default: 4,\n validator: value => {\n return value <= 5;\n }\n },\n /* 表单项配置 */\n formSetting: Array\n },\n computed: {\n form: {\n get() {\n /** 忘记是什么场景下需要校验了,后续需发现补上 */\n // for (const k in this.value) {\n // Object.hasOwnProperty.call(this.formRules, k) && this.$refs.FormModel.validateField(k)\n // }\n return this.value;\n },\n set(value) {\n this.$emit('Change:Model', value);\n }\n },\n formAttrs() {\n let attr = {};\n this.layout === 'vertical' ? attr = {\n ...this.$attrs\n } : attr = {\n labelCol: this.labelCol,\n wrapperCol: this.wrapperCol,\n ...this.$attrs\n };\n return attr;\n }\n },\n watch: {\n formSetting() {\n this.setFormRules();\n }\n },\n mounted() {\n this.setFormRules();\n this.$emit('update:refForm', this.$refs.FormModel);\n },\n methods: {\n /** 根据layoutSize来进行距离及大小切分 */\n getFormWidth(child, layoutSize) {\n if (!layoutSize) return `margin-right:24px;`;\n if (this.layout === 'vertical') return `flex: 0 1 calc((${100 / layoutSize * (child.size ?? 1)}% - 24px));margin-right:24px;`;\n return `flex: 0 1 ${100 / layoutSize * (child.size ?? 1)}%;`;\n },\n /** 包含单表单项,多表单项,动态增减表单项合并处理 */\n setModelRender(props) {\n const h = this.$createElement;\n const {\n setFormModelItem,\n getFormWidth,\n layoutSize\n } = this;\n const dynamicModel = this.form[props.model];\n return h(\"div\", {\n \"class\": props.mutiConfig && ['MultipleForm'],\n \"attrs\": {\n ...{\n style: getFormWidth(props, layoutSize)\n }\n }\n }, [/** 处理动态增减表单 */\n dynamicModel instanceof Array && props.multiple ? dynamicModel.map((modelItem, index) => setFormModelItem(props, {\n model: props.model,\n modelItem,\n index\n })) : setFormModelItem(props), this.$scopedSlots[`${props.model}Operate`] && this.$scopedSlots[`${props.model}Operate`](props)]);\n },\n /** 动态渲染表单项 */\n setFormModelItem(props, dynamicModel) {\n const h = this.$createElement;\n const {\n getFormWidth,\n layout,\n layoutSize,\n form,\n $scopedSlots\n } = this;\n const modelComponent = child => {\n const childLayoutSize = child.layoutSize ?? layoutSize;\n let childDefaultAttrs = {\n key: child.model,\n prop: child.model,\n label: child.label,\n colon: !(layout == 'inline')\n };\n child.layoutSize && (childDefaultAttrs = {\n ...childLayoutSize,\n style: getFormWidth(child, childLayoutSize)\n });\n let propsAttr = {};\n let propsCompModel = dynamicModel ? dynamicModel.modelItem : form;\n // [child.model]\n\n dynamicModel && (propsAttr = {\n key: dynamicModel.index,\n prop: `${dynamicModel.model}.${dynamicModel.index}.${child.model}`,\n label: `${child.label}${dynamicModel.index + 1}`\n });\n console.log(propsAttr, propsCompModel);\n return h(FormModelItem, {\n \"class\": [{\n FormLineVertical: child.size === childLayoutSize && layout === 'vertical'\n }, {\n FormLine: child.size === childLayoutSize\n }],\n \"attrs\": {\n ...{\n ...childDefaultAttrs,\n ...propsAttr\n }\n }\n }, [$scopedSlots[child.model] ? $scopedSlots[child.model](child) : h(_components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n \"attrs\": {\n \"component\": child.is,\n ...child.attrs\n },\n \"on\": {\n ...child.event\n },\n \"model\": {\n value: propsCompModel[child.model],\n callback: $$v => {\n this.$set(propsCompModel, child.model, $$v);\n }\n }\n }), $scopedSlots[`${child.model}Handle`] && $scopedSlots[`${child.model}Handle`](child)]);\n };\n return props.mutiConfig ? props.mutiConfig.map(child => modelComponent(child)) : modelComponent(props);\n // {/* 先不支持便捷显示和隐藏 */}\n // {/* !props.hidden && */} \n },\n /** 配置表单项规则 */\n setFormRules() {\n const rules = {};\n this.formSetting.forEach(node => {\n node.filed ? node.filed.forEach(child => this.$set(rules, child.model, this.setAttrs({\n ...node,\n ...child\n }))) : this.$set(rules, node.model, this.setAttrs(node));\n });\n this.formRules = rules;\n },\n /** 动态设置表单属性 */\n setAttrs(node) {\n const required = node.hasOwnProperty('required') ? node.required : node.hasOwnProperty('hidden') ? !node.hidden : true;\n const message = node.placeholder || (/(select|picker|radio|upload)/.test((node.is ?? 'Input').toLowerCase()) ? '请选择' : '请输入') + (node.label || '');\n const rules = [{\n required,\n message,\n trigger: ['change', 'blur']\n }].concat((node.rules || []).filter(i => i.pattern && (i.pattern = new RegExp(i.pattern))));\n return rules;\n },\n /** 提交测验 */\n formSubmit() {\n return this.$refs.FormModel.validate();\n }\n },\n render() {\n const h = arguments[0];\n const {\n setModelRender,\n layout,\n formSetting,\n formRules,\n formAttrs,\n form\n } = this;\n return h(ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default()([{\n \"ref\": \"FormModel\",\n \"class\": \"FormModel\"\n }, {\n \"props\": {\n model: form,\n rules: formRules,\n layout,\n ...formAttrs\n }\n }]), [formSetting.map(props => setModelRender(props))]);\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/Model.js?");
8629
+ eval("__webpack_require__.r(__webpack_exports__);\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__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/form-model/index.js\");\n/* harmony import */ var _components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/RenderComp.vue */ \"./plugins/lib/form/components/RenderComp.vue\");\n/* harmony import */ var _style_Model_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./style/Model.less */ \"./plugins/lib/form/style/Model.less\");\n\n\n\n\nconst FormModelItem = ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Item;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Model',\n model: {\n prop: 'value',\n event: 'Change:Model'\n },\n data() {\n return {\n formRules: {},\n labelCol: {\n span: 4\n },\n wrapperCol: {\n span: 20\n }\n };\n },\n props: {\n value: {\n type: Object,\n default: () => ({})\n },\n /* Form布局方式 */\n layout: {\n type: String,\n default: 'vertical'\n },\n /* 一行显示几个 PS:最多5个 */\n layoutSize: {\n type: Number,\n default: 4,\n validator: value => {\n return value <= 5;\n }\n },\n /* 表单项配置 */\n formSetting: Array\n },\n computed: {\n form: {\n get() {\n /** 忘记是什么场景下需要校验了,后续需发现补上 */\n // for (const k in this.value) {\n // Object.hasOwnProperty.call(this.formRules, k) && this.$refs.FormModel.validateField(k)\n // }\n return this.value;\n },\n set(value) {\n this.$emit('Change:Model', value);\n }\n },\n formAttrs() {\n let attr = {};\n this.layout === 'vertical' ? attr = {\n ...this.$attrs\n } : attr = {\n labelCol: this.labelCol,\n wrapperCol: this.wrapperCol,\n ...this.$attrs\n };\n return attr;\n }\n },\n watch: {\n formSetting() {\n this.setFormRules();\n }\n },\n mounted() {\n this.setFormRules();\n this.$emit('update:refForm', this.$refs.FormModel);\n },\n methods: {\n /** 根据layoutSize来进行距离及大小切分 */\n getFormWidth(child, layoutSize) {\n if (!layoutSize) return `margin-right:24px;`;\n if (this.layout === 'vertical') return `flex: 0 1 calc((${100 / layoutSize * (child.size ?? 1)}% - 24px));margin-right:24px;`;\n return `flex: 0 1 ${100 / layoutSize * (child.size ?? 1)}%;`;\n },\n /** 包含单表单项,多表单项,动态增减表单项合并处理 */\n setModelRender(props) {\n const h = this.$createElement;\n const {\n setFormModelItem,\n getFormWidth,\n layoutSize\n } = this;\n const dynamicModel = this.form[props.model];\n return h(\"div\", {\n \"class\": props.mutiConfig && ['MultipleForm'],\n \"attrs\": {\n ...{\n style: getFormWidth(props, layoutSize)\n }\n }\n }, [/** 处理动态增减表单 */\n dynamicModel instanceof Array && props.multiple ? dynamicModel.map((modelItem, index) => setFormModelItem(props, {\n model: props.model,\n modelItem,\n index\n })) : setFormModelItem(props), this.$scopedSlots[`${props.model}Operate`] && this.$scopedSlots[`${props.model}Operate`](props)]);\n },\n /** 动态渲染表单项 */\n setFormModelItem(props, dynamicModel) {\n const h = this.$createElement;\n const {\n getFormWidth,\n layout,\n layoutSize,\n form,\n $scopedSlots\n } = this;\n const modelComponent = child => {\n const childLayoutSize = child.layoutSize ?? layoutSize;\n let childDefaultAttrs = {\n key: child.model,\n prop: child.model,\n label: child.label,\n colon: !(layout == 'inline')\n };\n child.layoutSize && (childDefaultAttrs = {\n ...childLayoutSize,\n style: getFormWidth(child, childLayoutSize)\n });\n let propsAttr = {};\n let propsCompModel = dynamicModel ? dynamicModel.modelItem : form;\n // [child.model]\n\n dynamicModel && (propsAttr = {\n key: dynamicModel.index,\n prop: `${dynamicModel.model}.${dynamicModel.index}.${child.model}`,\n label: `${child.label}${dynamicModel.index + 1}`\n });\n return h(FormModelItem, {\n \"class\": [{\n FormLineVertical: child.size === childLayoutSize && layout === 'vertical'\n }, {\n FormLine: child.size === childLayoutSize\n }],\n \"attrs\": {\n ...{\n ...childDefaultAttrs,\n ...propsAttr\n }\n }\n }, [$scopedSlots[child.model] ? $scopedSlots[child.model](child) : h(_components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n \"attrs\": {\n \"component\": child.is,\n ...child.attrs\n },\n \"on\": {\n ...child.event\n },\n \"model\": {\n value: propsCompModel[child.model],\n callback: $$v => {\n this.$set(propsCompModel, child.model, $$v);\n }\n }\n }), $scopedSlots[`${child.model}Handle`] && $scopedSlots[`${child.model}Handle`](child)]);\n };\n return props.mutiConfig ? props.mutiConfig.map(child => modelComponent(child)) : modelComponent(props);\n // {/* 先不支持便捷显示和隐藏 */}\n // {/* !props.hidden && */} \n },\n /** 配置表单项规则 */\n setFormRules() {\n const rules = {};\n this.formSetting.forEach(node => {\n node.filed ? node.filed.forEach(child => this.$set(rules, child.model, this.setAttrs({\n ...node,\n ...child\n }))) : this.$set(rules, node.model, this.setAttrs(node));\n });\n this.formRules = rules;\n },\n /** 动态设置表单属性 */\n setAttrs(node) {\n const required = node.hasOwnProperty('required') ? node.required : node.hasOwnProperty('hidden') ? !node.hidden : true;\n const message = node.placeholder || (/(select|picker|radio|upload)/.test((node.is ?? 'Input').toLowerCase()) ? '请选择' : '请输入') + (node.label || '');\n const rules = [{\n required,\n message,\n trigger: ['change', 'blur']\n }].concat((node.rules || []).filter(i => i.pattern && (i.pattern = new RegExp(i.pattern))));\n return rules;\n },\n /** 提交测验 */\n formSubmit() {\n return this.$refs.FormModel.validate();\n }\n },\n render() {\n const h = arguments[0];\n const {\n setModelRender,\n layout,\n formSetting,\n formRules,\n formAttrs,\n form\n } = this;\n return h(ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default()([{\n \"ref\": \"FormModel\",\n \"class\": \"FormModel\"\n }, {\n \"props\": {\n model: form,\n rules: formRules,\n layout,\n ...formAttrs\n }\n }]), [formSetting.map(props => setModelRender(props))]);\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/Model.js?");
8630
8630
 
8631
8631
  /***/ }),
8632
8632
 
@@ -8670,7 +8670,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_
8670
8670
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8671
8671
 
8672
8672
  "use strict";
8673
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__ = __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 _events_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events.js */ \"./plugins/lib/iframe/events.js\");\n/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.less */ \"./plugins/lib/iframe/index.less\");\n\n\n\n\nconst IframeContainerProps = {\n activeKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string,\n checkedKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string.def('name'),\n linkurlKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string.def('linkUrl'),\n operatesArr: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].array,\n componentsArr: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].array,\n postMessage: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].object\n};\nconst IframeContainer = {\n name: 'IframeComp',\n props: IframeContainerProps,\n data() {\n return {\n modalComponents: {}\n };\n },\n render(h, content) {\n const {\n $props,\n modalComponents\n } = this;\n const {\n activeKey,\n checkedKey,\n componentsArr\n } = $props;\n const IframeComponents = componentsArr.map(componentItem => {\n const isActive = activeKey === componentItem[checkedKey];\n return this.getIframeComponent(componentItem, isActive);\n });\n const modalKeys = Object.keys(modalComponents);\n return h(\"div\", {\n \"class\": \"ant-pro-grid-content-page\"\n }, [IframeComponents, modalKeys.length && modalKeys.map(modalKey => {\n return h(_modal_index_jsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n \"props\": {\n ...{\n ...modalComponents[modalKey],\n cancelHandle: () => modalComponents[modalKey].visible = false\n }\n }\n }, [this.getIframeComponent(modalComponents[modalKey], true)]);\n })]);\n },\n watch: {\n activeKey(newVal) {\n this.modalComponents = {};\n },\n activeKeyAndParams: {\n handler(newVal, oldVal) {\n this.postCompMessage();\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.postCompMessage();\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalOpen', ({\n name,\n params\n }) => {\n const activeModal = this.switchModalHandle(name, params);\n activeModal && this.$set(this.modalComponents, name, {\n mode: params.mode,\n visible: true,\n ...activeModal\n });\n });\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalClose', ({\n name,\n params\n }) => {\n this.closeModalHandle(name);\n params && this.postCompMessage(params);\n });\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalGoBack', ({\n name,\n params\n }, closeModal) => {\n this.closeModalHandle(closeModal);\n this.switchModalHandle(name, params);\n });\n },\n methods: {\n postCompMessage(data = {}) {\n const {\n componentsArr,\n activeKey,\n postMessage\n } = this;\n componentsArr.length && this.postIframeMessage(componentsArr, {\n type: 'refreshPage',\n activeKey,\n data\n });\n },\n closeModalHandle(name) {\n this.modalComponents[name].visible = false;\n delete this.modalComponents[name];\n },\n switchModalHandle(name, data) {\n const {\n operatesArr,\n checkedKey\n } = this;\n const activeModal = operatesArr.find(operatesItem => operatesItem[checkedKey] === name);\n activeModal && this.postIframeMessage(operatesArr, {\n type: 'refreshModal',\n activeKey: name,\n data\n });\n return activeModal;\n },\n postIframeMessage(components, iframeConfig) {\n const {\n type,\n activeKey,\n data = {}\n } = iframeConfig;\n this.$nextTick(() => {\n const {\n checkedKey,\n linkurlKey,\n postMessage\n } = this;\n const refKey = components.find(componentsItem => activeKey === componentsItem[checkedKey])[linkurlKey];\n const timer = setTimeout(() => {\n const iframe = this.$refs[refKey];\n const iframeWin = this.$refs[refKey]?.contentWindow;\n iframe.onload = function () {\n iframeWin.postMessage({\n type,\n params: {\n routeQuery: postMessage,\n data,\n name: activeKey\n }\n }, '*');\n };\n iframeWin && iframeWin.postMessage({\n type,\n params: {\n routeQuery: postMessage,\n data,\n name: activeKey\n }\n }, '*');\n clearTimeout(timer);\n }, 60);\n });\n },\n getIframeComponent(componentItem, isActive) {\n const h = this.$createElement;\n const {\n linkurlKey,\n checkedKey\n } = this;\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 }\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?");
8673
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__ = __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 _events_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events.js */ \"./plugins/lib/iframe/events.js\");\n/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.less */ \"./plugins/lib/iframe/index.less\");\n\n\n\n\nconst IframeContainerProps = {\n activeKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string,\n checkedKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string.def('name'),\n linkurlKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string.def('linkUrl'),\n operatesArr: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].array,\n componentsArr: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].array,\n postMessage: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].object\n};\nconst IframeContainer = {\n name: 'IframeComp',\n props: IframeContainerProps,\n data() {\n return {\n modalComponents: {}\n };\n },\n render(h, content) {\n const {\n $props,\n modalComponents\n } = this;\n const {\n activeKey,\n checkedKey,\n componentsArr\n } = $props;\n const IframeComponents = componentsArr.map(componentItem => {\n const isActive = activeKey === componentItem[checkedKey];\n return this.getIframeComponent(componentItem, isActive);\n });\n const modalKeys = Object.keys(modalComponents);\n return h(\"div\", {\n \"class\": \"ant-pro-grid-content-page\"\n }, [IframeComponents, modalKeys.length && modalKeys.map(modalKey => {\n return h(_modal_index_jsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n \"props\": {\n ...{\n ...modalComponents[modalKey],\n cancelHandle: () => this.closeModalHandle(modalKey)\n }\n }\n }, [this.getIframeComponent(modalComponents[modalKey], true)]);\n })]);\n },\n watch: {\n activeKey(newVal) {\n this.modalComponents = {};\n },\n activeKeyAndParams: {\n handler(newVal, oldVal) {\n this.postCompMessage();\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.postCompMessage();\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalOpen', ({\n name,\n params\n }) => {\n const activeModal = this.switchModalHandle(name, params);\n activeModal && this.$set(this.modalComponents, name, {\n mode: params.mode,\n visible: true,\n ...activeModal\n });\n });\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalClose', ({\n name,\n params\n }) => {\n this.closeModalHandle(name);\n params && this.postCompMessage(params);\n });\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalGoBack', ({\n name,\n params\n }, closeModal) => {\n this.closeModalHandle(closeModal);\n this.switchModalHandle(name, params);\n });\n },\n methods: {\n postCompMessage(data = {}) {\n const {\n componentsArr,\n activeKey,\n postMessage\n } = this;\n componentsArr.length && this.postIframeMessage(componentsArr, {\n type: 'refreshPage',\n activeKey,\n data\n });\n },\n closeModalHandle(name) {\n this.modalComponents[name].visible = false;\n delete this.modalComponents[name];\n },\n switchModalHandle(name, data) {\n const {\n operatesArr,\n checkedKey\n } = this;\n const activeModal = operatesArr.find(operatesItem => operatesItem[checkedKey] === name);\n activeModal && this.postIframeMessage(operatesArr, {\n type: 'refreshModal',\n activeKey: name,\n data\n });\n return activeModal;\n },\n postIframeMessage(components, iframeConfig) {\n const {\n type,\n activeKey,\n data = {}\n } = iframeConfig;\n this.$nextTick(() => {\n const {\n checkedKey,\n linkurlKey,\n postMessage\n } = this;\n const refKey = components.find(componentsItem => activeKey === componentsItem[checkedKey])[linkurlKey];\n const timer = setTimeout(() => {\n const iframe = this.$refs[refKey];\n const iframeWin = this.$refs[refKey]?.contentWindow;\n iframe.onload = function () {\n iframeWin.postMessage({\n type,\n params: {\n routeQuery: postMessage,\n data,\n name: activeKey\n }\n }, '*');\n };\n iframeWin && iframeWin.postMessage({\n type,\n params: {\n routeQuery: postMessage,\n data,\n name: activeKey\n }\n }, '*');\n clearTimeout(timer);\n }, 60);\n });\n },\n getIframeComponent(componentItem, isActive) {\n const h = this.$createElement;\n const {\n linkurlKey,\n checkedKey\n } = this;\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 }\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?");
8674
8674
 
8675
8675
  /***/ }),
8676
8676
 
package/dist/form.umd.js CHANGED
@@ -7011,7 +7011,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_
7011
7011
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7012
7012
 
7013
7013
  "use strict";
7014
- eval("__webpack_require__.r(__webpack_exports__);\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/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/icon/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/upload/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n model: {\n prop: 'value',\n event: 'handleFileUpload'\n },\n components: {\n Icon: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Upload: ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n props: {\n value: {\n type: [String, Array],\n default: () => []\n },\n /* 提示文字 */\n tips: String,\n /* 上传文件数量限制 */\n uploadLen: {\n type: Number,\n default: 1\n },\n /* 上传接口 */\n fileUploadUrl: {\n type: String,\n default: vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype.$https.UPLOADURL\n },\n /* 显示需要pin的接口前缀 */\n filePrefixUrl: {\n type: String,\n default: vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype.$https.FILEURL\n },\n /* 上传文件格式限制 */\n fileAccept: String,\n /* 上传文件携带Headers信息 */\n fileHeaders: {\n type: Object,\n default: () => vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype.$store.getters.fileHeaders\n },\n /* 删除文件函数回调 */\n fileRemoveHandle: Function\n },\n data() {\n return {\n fileList: [],\n modalValue: []\n };\n },\n watch: {\n value() {\n this.setResetFile();\n }\n },\n mounted() {\n this.setResetFile();\n },\n methods: {\n setResetFile() {\n let arrayObject;\n try {\n arrayObject = JSON.parse(this.value);\n } catch (e) {\n arrayObject = [].concat(this.value);\n }\n this.modalValue = arrayObject ?? [];\n this.fileList = this.modalValue.map(file => ({\n ...file,\n url: `${this.filePrefixUrl}${file.url}`,\n type: file.contentType,\n status: 'done'\n }));\n },\n handleFilePreview({\n uid,\n contentType,\n url\n }) {\n let suffix = url.substr(url.lastIndexOf('.') + 1);\n const pictureSuffix = ['JPEG', 'JPG', 'GIF', 'PNG', 'TIFF', 'WEBP', 'BMP'];\n if (contentType.includes('image') || pictureSuffix.includes(suffix.toUpperCase())) {\n this.$viewerApi({\n options: {\n url: 'url',\n toolbar: true,\n initialViewIndex: this.fileList.findIndex(file => file.url == url)\n },\n images: this.fileList\n });\n return;\n }\n this.$dialog('fileBrowse', {\n src: url\n });\n },\n handleFileChange({\n file,\n fileList\n }) {\n file.status == 'uploading' && (this.fileList = fileList);\n switch (file.status) {\n case 'removed':\n const params = {\n id: file.uid\n };\n const requestHandle = this.fileRemoveHandle ? this.fileRemoveHandle(params) : this.$store.dispatch('fileRemoveHandle', params);\n requestHandle.then(Response => {\n const i = this.modalValue.findIndex(e => e.uid == file.uid);\n this.modalValue.splice(i, 1);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n });\n break;\n case 'done':\n const {\n data\n } = file.response;\n const uploadFileObj = {\n ...data,\n uid: data.id\n };\n delete uploadFileObj.id;\n this.modalValue.push(uploadFileObj);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n break;\n }\n }\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options");
7014
+ eval("__webpack_require__.r(__webpack_exports__);\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/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/icon/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/upload/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n model: {\n prop: 'value',\n event: 'handleFileUpload'\n },\n components: {\n Icon: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Upload: ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n props: {\n value: {\n type: [String, Array],\n default: () => []\n },\n /* 提示文字 */\n tips: String,\n /* 上传文件数量限制 */\n uploadLen: {\n type: Number,\n default: 1\n },\n /* 上传接口 */\n fileUploadUrl: String,\n /* 显示需要pin的接口前缀 */\n filePrefixUrl: String,\n /* 上传文件格式限制 */\n fileAccept: String,\n /* 上传文件携带Headers信息 */\n fileHeaders: Object,\n /* 删除文件函数回调 */\n fileRemoveHandle: Function\n },\n data() {\n return {\n fileList: [],\n modalValue: []\n };\n },\n watch: {\n value() {\n this.setResetFile();\n }\n },\n computed: {\n uploadAttrs() {\n return {\n prefix: this.filePrefixUrl ?? this.$https.FILEURL,\n action: this.fileUploadUrl ?? this.$https.UPLOADURL,\n headers: this.fileHeaders ?? this.$store.getters.fileHeaders\n };\n }\n },\n mounted() {\n this.setResetFile();\n },\n methods: {\n setResetFile() {\n let arrayObject;\n try {\n arrayObject = JSON.parse(this.value);\n } catch (e) {\n arrayObject = [].concat(this.value);\n }\n this.modalValue = arrayObject ?? [];\n this.fileList = this.modalValue.map(file => ({\n ...file,\n url: `${this.uploadAttrs.prefix}${file.url}`,\n type: file.contentType,\n status: 'done'\n }));\n },\n handleFilePreview({\n uid,\n contentType,\n url\n }) {\n let suffix = url.substr(url.lastIndexOf('.') + 1);\n const pictureSuffix = ['JPEG', 'JPG', 'GIF', 'PNG', 'TIFF', 'WEBP', 'BMP'];\n if (contentType.includes('image') || pictureSuffix.includes(suffix.toUpperCase())) {\n this.$viewerApi({\n options: {\n url: 'url',\n toolbar: true,\n initialViewIndex: this.fileList.findIndex(file => file.url == url)\n },\n images: this.fileList\n });\n return;\n }\n this.$dialog('fileBrowse', {\n src: url\n });\n },\n handleFileChange({\n file,\n fileList\n }) {\n file.status == 'uploading' && (this.fileList = fileList);\n switch (file.status) {\n case 'removed':\n const params = {\n id: file.uid\n };\n const requestHandle = this.fileRemoveHandle ? this.fileRemoveHandle(params) : this.$store.dispatch('fileRemoveHandle', params);\n requestHandle.then(Response => {\n const i = this.modalValue.findIndex(e => e.uid == file.uid);\n this.modalValue.splice(i, 1);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n });\n break;\n case 'done':\n const {\n data\n } = file.response;\n const uploadFileObj = {\n ...data,\n uid: data.id\n };\n delete uploadFileObj.id;\n this.modalValue.push(uploadFileObj);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n break;\n }\n }\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options");
7015
7015
 
7016
7016
  /***/ }),
7017
7017
 
@@ -7110,7 +7110,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
7110
7110
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7111
7111
 
7112
7112
  "use strict";
7113
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; },\n/* harmony export */ staticRenderFns: function() { return /* binding */ staticRenderFns; }\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"TAntdUpload\"\n }, [_c(\"Upload\", {\n attrs: {\n name: \"file\",\n \"file-list\": _vm.fileList,\n \"list-type\": \"picture-card\",\n accept: _vm.fileAccept,\n action: _vm.fileUploadUrl,\n headers: _vm.fileHeaders\n },\n on: {\n change: _vm.handleFileChange,\n preview: _vm.handleFilePreview,\n reject: function ($event) {\n return _vm.$message.error(`上传文件类型只能为${_vm.fileAccept}`);\n }\n }\n }, [!_vm.fileList || _vm.fileList.length < _vm.uploadLen ? _c(\"div\", [_c(\"Icon\", {\n staticStyle: {\n fontsize: \"36px\"\n },\n attrs: {\n type: \"plus\"\n }\n })], 1) : _vm._e()]), _vm._v(\" \"), _vm.tips ? _c(\"span\", {\n staticClass: \"tips\"\n }, [_vm._v(_vm._s(_vm.tips))]) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/lib/index.js??vue-loader-options");
7113
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; },\n/* harmony export */ staticRenderFns: function() { return /* binding */ staticRenderFns; }\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"TAntdUpload\"\n }, [_c(\"Upload\", _vm._b({\n attrs: {\n name: \"file\",\n \"file-list\": _vm.fileList,\n \"list-type\": \"picture-card\",\n accept: _vm.fileAccept\n },\n on: {\n change: _vm.handleFileChange,\n preview: _vm.handleFilePreview,\n reject: function ($event) {\n return _vm.$message.error(`上传文件类型只能为${_vm.fileAccept}`);\n }\n }\n }, \"Upload\", _vm.uploadAttrs, false), [!_vm.fileList || _vm.fileList.length < _vm.uploadLen ? _c(\"div\", [_c(\"Icon\", {\n staticStyle: {\n fontsize: \"36px\"\n },\n attrs: {\n type: \"plus\"\n }\n })], 1) : _vm._e()]), _vm._v(\" \"), _vm.tips ? _c(\"span\", {\n staticClass: \"tips\"\n }, [_vm._v(_vm._s(_vm.tips))]) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/lib/index.js??vue-loader-options");
7114
7114
 
7115
7115
  /***/ }),
7116
7116
 
@@ -7165,7 +7165,7 @@ eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source cod
7165
7165
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7166
7166
 
7167
7167
  "use strict";
7168
- eval("__webpack_require__.r(__webpack_exports__);\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__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/form-model/index.js\");\n/* harmony import */ var _components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/RenderComp.vue */ \"./plugins/lib/form/components/RenderComp.vue\");\n/* harmony import */ var _style_Model_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./style/Model.less */ \"./plugins/lib/form/style/Model.less\");\n\n\n\n\nconst FormModelItem = ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Item;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Model',\n model: {\n prop: 'value',\n event: 'Change:Model'\n },\n data() {\n return {\n formRules: {},\n labelCol: {\n span: 4\n },\n wrapperCol: {\n span: 20\n }\n };\n },\n props: {\n value: {\n type: Object,\n default: () => ({})\n },\n /* Form布局方式 */\n layout: {\n type: String,\n default: 'vertical'\n },\n /* 一行显示几个 PS:最多5个 */\n layoutSize: {\n type: Number,\n default: 4,\n validator: value => {\n return value <= 5;\n }\n },\n /* 表单项配置 */\n formSetting: Array\n },\n computed: {\n form: {\n get() {\n /** 忘记是什么场景下需要校验了,后续需发现补上 */\n // for (const k in this.value) {\n // Object.hasOwnProperty.call(this.formRules, k) && this.$refs.FormModel.validateField(k)\n // }\n return this.value;\n },\n set(value) {\n this.$emit('Change:Model', value);\n }\n },\n formAttrs() {\n let attr = {};\n this.layout === 'vertical' ? attr = {\n ...this.$attrs\n } : attr = {\n labelCol: this.labelCol,\n wrapperCol: this.wrapperCol,\n ...this.$attrs\n };\n return attr;\n }\n },\n watch: {\n formSetting() {\n this.setFormRules();\n }\n },\n mounted() {\n this.setFormRules();\n this.$emit('update:refForm', this.$refs.FormModel);\n },\n methods: {\n /** 根据layoutSize来进行距离及大小切分 */\n getFormWidth(child, layoutSize) {\n if (!layoutSize) return `margin-right:24px;`;\n if (this.layout === 'vertical') return `flex: 0 1 calc((${100 / layoutSize * (child.size ?? 1)}% - 24px));margin-right:24px;`;\n return `flex: 0 1 ${100 / layoutSize * (child.size ?? 1)}%;`;\n },\n /** 包含单表单项,多表单项,动态增减表单项合并处理 */\n setModelRender(props) {\n const h = this.$createElement;\n const {\n setFormModelItem,\n getFormWidth,\n layoutSize\n } = this;\n const dynamicModel = this.form[props.model];\n return h(\"div\", {\n \"class\": props.mutiConfig && ['MultipleForm'],\n \"attrs\": {\n ...{\n style: getFormWidth(props, layoutSize)\n }\n }\n }, [/** 处理动态增减表单 */\n dynamicModel instanceof Array && props.multiple ? dynamicModel.map((modelItem, index) => setFormModelItem(props, {\n model: props.model,\n modelItem,\n index\n })) : setFormModelItem(props), this.$scopedSlots[`${props.model}Operate`] && this.$scopedSlots[`${props.model}Operate`](props)]);\n },\n /** 动态渲染表单项 */\n setFormModelItem(props, dynamicModel) {\n const h = this.$createElement;\n const {\n getFormWidth,\n layout,\n layoutSize,\n form,\n $scopedSlots\n } = this;\n const modelComponent = child => {\n const childLayoutSize = child.layoutSize ?? layoutSize;\n let childDefaultAttrs = {\n key: child.model,\n prop: child.model,\n label: child.label,\n colon: !(layout == 'inline')\n };\n child.layoutSize && (childDefaultAttrs = {\n ...childLayoutSize,\n style: getFormWidth(child, childLayoutSize)\n });\n let propsAttr = {};\n let propsCompModel = dynamicModel ? dynamicModel.modelItem : form;\n // [child.model]\n\n dynamicModel && (propsAttr = {\n key: dynamicModel.index,\n prop: `${dynamicModel.model}.${dynamicModel.index}.${child.model}`,\n label: `${child.label}${dynamicModel.index + 1}`\n });\n console.log(propsAttr, propsCompModel);\n return h(FormModelItem, {\n \"class\": [{\n FormLineVertical: child.size === childLayoutSize && layout === 'vertical'\n }, {\n FormLine: child.size === childLayoutSize\n }],\n \"attrs\": {\n ...{\n ...childDefaultAttrs,\n ...propsAttr\n }\n }\n }, [$scopedSlots[child.model] ? $scopedSlots[child.model](child) : h(_components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n \"attrs\": {\n \"component\": child.is,\n ...child.attrs\n },\n \"on\": {\n ...child.event\n },\n \"model\": {\n value: propsCompModel[child.model],\n callback: $$v => {\n this.$set(propsCompModel, child.model, $$v);\n }\n }\n }), $scopedSlots[`${child.model}Handle`] && $scopedSlots[`${child.model}Handle`](child)]);\n };\n return props.mutiConfig ? props.mutiConfig.map(child => modelComponent(child)) : modelComponent(props);\n // {/* 先不支持便捷显示和隐藏 */}\n // {/* !props.hidden && */} \n },\n /** 配置表单项规则 */\n setFormRules() {\n const rules = {};\n this.formSetting.forEach(node => {\n node.filed ? node.filed.forEach(child => this.$set(rules, child.model, this.setAttrs({\n ...node,\n ...child\n }))) : this.$set(rules, node.model, this.setAttrs(node));\n });\n this.formRules = rules;\n },\n /** 动态设置表单属性 */\n setAttrs(node) {\n const required = node.hasOwnProperty('required') ? node.required : node.hasOwnProperty('hidden') ? !node.hidden : true;\n const message = node.placeholder || (/(select|picker|radio|upload)/.test((node.is ?? 'Input').toLowerCase()) ? '请选择' : '请输入') + (node.label || '');\n const rules = [{\n required,\n message,\n trigger: ['change', 'blur']\n }].concat((node.rules || []).filter(i => i.pattern && (i.pattern = new RegExp(i.pattern))));\n return rules;\n },\n /** 提交测验 */\n formSubmit() {\n return this.$refs.FormModel.validate();\n }\n },\n render() {\n const h = arguments[0];\n const {\n setModelRender,\n layout,\n formSetting,\n formRules,\n formAttrs,\n form\n } = this;\n return h(ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default()([{\n \"ref\": \"FormModel\",\n \"class\": \"FormModel\"\n }, {\n \"props\": {\n model: form,\n rules: formRules,\n layout,\n ...formAttrs\n }\n }]), [formSetting.map(props => setModelRender(props))]);\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/Model.js?");
7168
+ eval("__webpack_require__.r(__webpack_exports__);\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__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/form-model/index.js\");\n/* harmony import */ var _components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/RenderComp.vue */ \"./plugins/lib/form/components/RenderComp.vue\");\n/* harmony import */ var _style_Model_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./style/Model.less */ \"./plugins/lib/form/style/Model.less\");\n\n\n\n\nconst FormModelItem = ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Item;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Model',\n model: {\n prop: 'value',\n event: 'Change:Model'\n },\n data() {\n return {\n formRules: {},\n labelCol: {\n span: 4\n },\n wrapperCol: {\n span: 20\n }\n };\n },\n props: {\n value: {\n type: Object,\n default: () => ({})\n },\n /* Form布局方式 */\n layout: {\n type: String,\n default: 'vertical'\n },\n /* 一行显示几个 PS:最多5个 */\n layoutSize: {\n type: Number,\n default: 4,\n validator: value => {\n return value <= 5;\n }\n },\n /* 表单项配置 */\n formSetting: Array\n },\n computed: {\n form: {\n get() {\n /** 忘记是什么场景下需要校验了,后续需发现补上 */\n // for (const k in this.value) {\n // Object.hasOwnProperty.call(this.formRules, k) && this.$refs.FormModel.validateField(k)\n // }\n return this.value;\n },\n set(value) {\n this.$emit('Change:Model', value);\n }\n },\n formAttrs() {\n let attr = {};\n this.layout === 'vertical' ? attr = {\n ...this.$attrs\n } : attr = {\n labelCol: this.labelCol,\n wrapperCol: this.wrapperCol,\n ...this.$attrs\n };\n return attr;\n }\n },\n watch: {\n formSetting() {\n this.setFormRules();\n }\n },\n mounted() {\n this.setFormRules();\n this.$emit('update:refForm', this.$refs.FormModel);\n },\n methods: {\n /** 根据layoutSize来进行距离及大小切分 */\n getFormWidth(child, layoutSize) {\n if (!layoutSize) return `margin-right:24px;`;\n if (this.layout === 'vertical') return `flex: 0 1 calc((${100 / layoutSize * (child.size ?? 1)}% - 24px));margin-right:24px;`;\n return `flex: 0 1 ${100 / layoutSize * (child.size ?? 1)}%;`;\n },\n /** 包含单表单项,多表单项,动态增减表单项合并处理 */\n setModelRender(props) {\n const h = this.$createElement;\n const {\n setFormModelItem,\n getFormWidth,\n layoutSize\n } = this;\n const dynamicModel = this.form[props.model];\n return h(\"div\", {\n \"class\": props.mutiConfig && ['MultipleForm'],\n \"attrs\": {\n ...{\n style: getFormWidth(props, layoutSize)\n }\n }\n }, [/** 处理动态增减表单 */\n dynamicModel instanceof Array && props.multiple ? dynamicModel.map((modelItem, index) => setFormModelItem(props, {\n model: props.model,\n modelItem,\n index\n })) : setFormModelItem(props), this.$scopedSlots[`${props.model}Operate`] && this.$scopedSlots[`${props.model}Operate`](props)]);\n },\n /** 动态渲染表单项 */\n setFormModelItem(props, dynamicModel) {\n const h = this.$createElement;\n const {\n getFormWidth,\n layout,\n layoutSize,\n form,\n $scopedSlots\n } = this;\n const modelComponent = child => {\n const childLayoutSize = child.layoutSize ?? layoutSize;\n let childDefaultAttrs = {\n key: child.model,\n prop: child.model,\n label: child.label,\n colon: !(layout == 'inline')\n };\n child.layoutSize && (childDefaultAttrs = {\n ...childLayoutSize,\n style: getFormWidth(child, childLayoutSize)\n });\n let propsAttr = {};\n let propsCompModel = dynamicModel ? dynamicModel.modelItem : form;\n // [child.model]\n\n dynamicModel && (propsAttr = {\n key: dynamicModel.index,\n prop: `${dynamicModel.model}.${dynamicModel.index}.${child.model}`,\n label: `${child.label}${dynamicModel.index + 1}`\n });\n return h(FormModelItem, {\n \"class\": [{\n FormLineVertical: child.size === childLayoutSize && layout === 'vertical'\n }, {\n FormLine: child.size === childLayoutSize\n }],\n \"attrs\": {\n ...{\n ...childDefaultAttrs,\n ...propsAttr\n }\n }\n }, [$scopedSlots[child.model] ? $scopedSlots[child.model](child) : h(_components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n \"attrs\": {\n \"component\": child.is,\n ...child.attrs\n },\n \"on\": {\n ...child.event\n },\n \"model\": {\n value: propsCompModel[child.model],\n callback: $$v => {\n this.$set(propsCompModel, child.model, $$v);\n }\n }\n }), $scopedSlots[`${child.model}Handle`] && $scopedSlots[`${child.model}Handle`](child)]);\n };\n return props.mutiConfig ? props.mutiConfig.map(child => modelComponent(child)) : modelComponent(props);\n // {/* 先不支持便捷显示和隐藏 */}\n // {/* !props.hidden && */} \n },\n /** 配置表单项规则 */\n setFormRules() {\n const rules = {};\n this.formSetting.forEach(node => {\n node.filed ? node.filed.forEach(child => this.$set(rules, child.model, this.setAttrs({\n ...node,\n ...child\n }))) : this.$set(rules, node.model, this.setAttrs(node));\n });\n this.formRules = rules;\n },\n /** 动态设置表单属性 */\n setAttrs(node) {\n const required = node.hasOwnProperty('required') ? node.required : node.hasOwnProperty('hidden') ? !node.hidden : true;\n const message = node.placeholder || (/(select|picker|radio|upload)/.test((node.is ?? 'Input').toLowerCase()) ? '请选择' : '请输入') + (node.label || '');\n const rules = [{\n required,\n message,\n trigger: ['change', 'blur']\n }].concat((node.rules || []).filter(i => i.pattern && (i.pattern = new RegExp(i.pattern))));\n return rules;\n },\n /** 提交测验 */\n formSubmit() {\n return this.$refs.FormModel.validate();\n }\n },\n render() {\n const h = arguments[0];\n const {\n setModelRender,\n layout,\n formSetting,\n formRules,\n formAttrs,\n form\n } = this;\n return h(ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default()([{\n \"ref\": \"FormModel\",\n \"class\": \"FormModel\"\n }, {\n \"props\": {\n model: form,\n rules: formRules,\n layout,\n ...formAttrs\n }\n }]), [formSetting.map(props => setModelRender(props))]);\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/Model.js?");
7169
7169
 
7170
7170
  /***/ }),
7171
7171
 
package/dist/index.umd.js CHANGED
@@ -8263,7 +8263,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_
8263
8263
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8264
8264
 
8265
8265
  "use strict";
8266
- eval("__webpack_require__.r(__webpack_exports__);\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/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/icon/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/upload/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n model: {\n prop: 'value',\n event: 'handleFileUpload'\n },\n components: {\n Icon: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Upload: ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n props: {\n value: {\n type: [String, Array],\n default: () => []\n },\n /* 提示文字 */\n tips: String,\n /* 上传文件数量限制 */\n uploadLen: {\n type: Number,\n default: 1\n },\n /* 上传接口 */\n fileUploadUrl: {\n type: String,\n default: vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype.$https.UPLOADURL\n },\n /* 显示需要pin的接口前缀 */\n filePrefixUrl: {\n type: String,\n default: vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype.$https.FILEURL\n },\n /* 上传文件格式限制 */\n fileAccept: String,\n /* 上传文件携带Headers信息 */\n fileHeaders: {\n type: Object,\n default: () => vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype.$store.getters.fileHeaders\n },\n /* 删除文件函数回调 */\n fileRemoveHandle: Function\n },\n data() {\n return {\n fileList: [],\n modalValue: []\n };\n },\n watch: {\n value() {\n this.setResetFile();\n }\n },\n mounted() {\n this.setResetFile();\n },\n methods: {\n setResetFile() {\n let arrayObject;\n try {\n arrayObject = JSON.parse(this.value);\n } catch (e) {\n arrayObject = [].concat(this.value);\n }\n this.modalValue = arrayObject ?? [];\n this.fileList = this.modalValue.map(file => ({\n ...file,\n url: `${this.filePrefixUrl}${file.url}`,\n type: file.contentType,\n status: 'done'\n }));\n },\n handleFilePreview({\n uid,\n contentType,\n url\n }) {\n let suffix = url.substr(url.lastIndexOf('.') + 1);\n const pictureSuffix = ['JPEG', 'JPG', 'GIF', 'PNG', 'TIFF', 'WEBP', 'BMP'];\n if (contentType.includes('image') || pictureSuffix.includes(suffix.toUpperCase())) {\n this.$viewerApi({\n options: {\n url: 'url',\n toolbar: true,\n initialViewIndex: this.fileList.findIndex(file => file.url == url)\n },\n images: this.fileList\n });\n return;\n }\n this.$dialog('fileBrowse', {\n src: url\n });\n },\n handleFileChange({\n file,\n fileList\n }) {\n file.status == 'uploading' && (this.fileList = fileList);\n switch (file.status) {\n case 'removed':\n const params = {\n id: file.uid\n };\n const requestHandle = this.fileRemoveHandle ? this.fileRemoveHandle(params) : this.$store.dispatch('fileRemoveHandle', params);\n requestHandle.then(Response => {\n const i = this.modalValue.findIndex(e => e.uid == file.uid);\n this.modalValue.splice(i, 1);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n });\n break;\n case 'done':\n const {\n data\n } = file.response;\n const uploadFileObj = {\n ...data,\n uid: data.id\n };\n delete uploadFileObj.id;\n this.modalValue.push(uploadFileObj);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n break;\n }\n }\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options");
8266
+ eval("__webpack_require__.r(__webpack_exports__);\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/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/icon/index.js\");\n/* harmony import */ var ant_design_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/upload/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n model: {\n prop: 'value',\n event: 'handleFileUpload'\n },\n components: {\n Icon: ant_design_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Upload: ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n props: {\n value: {\n type: [String, Array],\n default: () => []\n },\n /* 提示文字 */\n tips: String,\n /* 上传文件数量限制 */\n uploadLen: {\n type: Number,\n default: 1\n },\n /* 上传接口 */\n fileUploadUrl: String,\n /* 显示需要pin的接口前缀 */\n filePrefixUrl: String,\n /* 上传文件格式限制 */\n fileAccept: String,\n /* 上传文件携带Headers信息 */\n fileHeaders: Object,\n /* 删除文件函数回调 */\n fileRemoveHandle: Function\n },\n data() {\n return {\n fileList: [],\n modalValue: []\n };\n },\n watch: {\n value() {\n this.setResetFile();\n }\n },\n computed: {\n uploadAttrs() {\n return {\n prefix: this.filePrefixUrl ?? this.$https.FILEURL,\n action: this.fileUploadUrl ?? this.$https.UPLOADURL,\n headers: this.fileHeaders ?? this.$store.getters.fileHeaders\n };\n }\n },\n mounted() {\n this.setResetFile();\n },\n methods: {\n setResetFile() {\n let arrayObject;\n try {\n arrayObject = JSON.parse(this.value);\n } catch (e) {\n arrayObject = [].concat(this.value);\n }\n this.modalValue = arrayObject ?? [];\n this.fileList = this.modalValue.map(file => ({\n ...file,\n url: `${this.uploadAttrs.prefix}${file.url}`,\n type: file.contentType,\n status: 'done'\n }));\n },\n handleFilePreview({\n uid,\n contentType,\n url\n }) {\n let suffix = url.substr(url.lastIndexOf('.') + 1);\n const pictureSuffix = ['JPEG', 'JPG', 'GIF', 'PNG', 'TIFF', 'WEBP', 'BMP'];\n if (contentType.includes('image') || pictureSuffix.includes(suffix.toUpperCase())) {\n this.$viewerApi({\n options: {\n url: 'url',\n toolbar: true,\n initialViewIndex: this.fileList.findIndex(file => file.url == url)\n },\n images: this.fileList\n });\n return;\n }\n this.$dialog('fileBrowse', {\n src: url\n });\n },\n handleFileChange({\n file,\n fileList\n }) {\n file.status == 'uploading' && (this.fileList = fileList);\n switch (file.status) {\n case 'removed':\n const params = {\n id: file.uid\n };\n const requestHandle = this.fileRemoveHandle ? this.fileRemoveHandle(params) : this.$store.dispatch('fileRemoveHandle', params);\n requestHandle.then(Response => {\n const i = this.modalValue.findIndex(e => e.uid == file.uid);\n this.modalValue.splice(i, 1);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n });\n break;\n case 'done':\n const {\n data\n } = file.response;\n const uploadFileObj = {\n ...data,\n uid: data.id\n };\n delete uploadFileObj.id;\n this.modalValue.push(uploadFileObj);\n this.$emit('handleFileUpload', JSON.stringify(this.modalValue));\n break;\n }\n }\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options");
8267
8267
 
8268
8268
  /***/ }),
8269
8269
 
@@ -8428,7 +8428,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
8428
8428
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8429
8429
 
8430
8430
  "use strict";
8431
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; },\n/* harmony export */ staticRenderFns: function() { return /* binding */ staticRenderFns; }\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"TAntdUpload\"\n }, [_c(\"Upload\", {\n attrs: {\n name: \"file\",\n \"file-list\": _vm.fileList,\n \"list-type\": \"picture-card\",\n accept: _vm.fileAccept,\n action: _vm.fileUploadUrl,\n headers: _vm.fileHeaders\n },\n on: {\n change: _vm.handleFileChange,\n preview: _vm.handleFilePreview,\n reject: function ($event) {\n return _vm.$message.error(`上传文件类型只能为${_vm.fileAccept}`);\n }\n }\n }, [!_vm.fileList || _vm.fileList.length < _vm.uploadLen ? _c(\"div\", [_c(\"Icon\", {\n staticStyle: {\n fontsize: \"36px\"\n },\n attrs: {\n type: \"plus\"\n }\n })], 1) : _vm._e()]), _vm._v(\" \"), _vm.tips ? _c(\"span\", {\n staticClass: \"tips\"\n }, [_vm._v(_vm._s(_vm.tips))]) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/lib/index.js??vue-loader-options");
8431
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; },\n/* harmony export */ staticRenderFns: function() { return /* binding */ staticRenderFns; }\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"TAntdUpload\"\n }, [_c(\"Upload\", _vm._b({\n attrs: {\n name: \"file\",\n \"file-list\": _vm.fileList,\n \"list-type\": \"picture-card\",\n accept: _vm.fileAccept\n },\n on: {\n change: _vm.handleFileChange,\n preview: _vm.handleFilePreview,\n reject: function ($event) {\n return _vm.$message.error(`上传文件类型只能为${_vm.fileAccept}`);\n }\n }\n }, \"Upload\", _vm.uploadAttrs, false), [!_vm.fileList || _vm.fileList.length < _vm.uploadLen ? _c(\"div\", [_c(\"Icon\", {\n staticStyle: {\n fontsize: \"36px\"\n },\n attrs: {\n type: \"plus\"\n }\n })], 1) : _vm._e()]), _vm._v(\" \"), _vm.tips ? _c(\"span\", {\n staticClass: \"tips\"\n }, [_vm._v(_vm._s(_vm.tips))]) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://mui/./plugins/lib/form/components/AUpload.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/lib/index.js??vue-loader-options");
8432
8432
 
8433
8433
  /***/ }),
8434
8434
 
@@ -8615,7 +8615,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ind
8615
8615
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8616
8616
 
8617
8617
  "use strict";
8618
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__ = __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_descriptions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue/es/descriptions */ \"./node_modules/ant-design-vue/es/descriptions/index.js\");\n/* harmony import */ var _browse_index_jsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../browse/index.jsx */ \"./plugins/lib/browse/index.jsx\");\n/* harmony import */ var _utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/Filter.js */ \"./plugins/utils/Filter.js\");\n/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index.less */ \"./plugins/lib/descriptions/index.less\");\n\n\n\n\nconst {\n Item: DescriptionsItem\n} = ant_design_vue_es_descriptions__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\nconst descDefaultAttrs = {\n size: 'middle',\n bordered: true\n};\nconst DescriptionsProps = {\n title: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].string,\n column: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].oneOfType([ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].number, ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object]).def(3),\n descDetails: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object,\n descSettings: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].array,\n descAttrs: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object\n};\nconst renderContent = (h, item, details) => {\n const CustomTag = item.type === 'file' && _browse_index_jsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"] || 'span';\n const data = item.hasOwnProperty('multiProps') ? item.multiProps.map(propsItem => (0,_utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__.transferData)(details[propsItem], 'Array')).flat() : (0,_utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__.transferData)(details[item.props], 'Array');\n const props = {\n data\n };\n return h(CustomTag, {\n \"props\": {\n ...props\n }\n }, [item.customRender && item.customRender(details[item.props], details) || details[item.props] || '暂无']);\n};\nconst DescriptionsList = {\n name: 'Descriptions',\n props: DescriptionsProps,\n render(h, content) {\n const {\n title,\n column,\n descAttrs,\n descDetails,\n descSettings,\n $slots\n } = this;\n return h(\"div\", {\n \"class\": \"Descriptions\",\n \"ref\": \"Descriptions\"\n }, [h(ant_design_vue_es_descriptions__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n \"attrs\": {\n \"title\": title,\n \"column\": column,\n ...{\n ...descDefaultAttrs,\n ...descAttrs\n }\n }\n }, [descSettings.map((descItem, key) => {\n return h(DescriptionsItem, {\n \"key\": key,\n \"attrs\": {\n \"span\": descItem.span ?? 1\n }\n }, [h(\"div\", {\n \"slot\": \"label\"\n }, [$slots[`${descItem.props}Lable`] ?? descItem.label]), $slots[`${descItem.props}`] ? $slots[`${descItem.props}`](descDetails) : renderContent(h, descItem, descDetails)]);\n })])]);\n },\n mounted() {\n window.addEventListener('resize', this.setDescContentWidth());\n },\n methods: {\n setDescContentWidth() {\n const elementG = this.$refs.Descriptions.querySelectorAll('.ant-descriptions-item-content');\n const width = document.querySelector('.ant-descriptions-row').offsetWidth;\n const labelWidth = document.querySelector('.ant-descriptions-item-label').offsetWidth;\n const {\n column,\n descSettings\n } = this;\n for (let i = 0; i < elementG.length; i++) {\n const contentWidth = (descSettings[i].span ? width * (descSettings[i].span / column) : width / column) - labelWidth + 'px';\n const element = elementG[i];\n element.style = `\n width: ${contentWidth};\n min-width: ${contentWidth};\n max-width: ${contentWidth};\n `;\n }\n }\n }\n};\nDescriptionsList.install = function (Vue) {\n Vue.component('DescriptionsList', DescriptionsList);\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (DescriptionsList);\n\n//# sourceURL=webpack://mui/./plugins/lib/descriptions/index.jsx?");
8618
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__ = __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_descriptions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue/es/descriptions */ \"./node_modules/ant-design-vue/es/descriptions/index.js\");\n/* harmony import */ var _browse_index_jsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../browse/index.jsx */ \"./plugins/lib/browse/index.jsx\");\n/* harmony import */ var _plugins_utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../plugins/utils/Filter.js */ \"./plugins/utils/Filter.js\");\n/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index.less */ \"./plugins/lib/descriptions/index.less\");\n\n\n\n\nconst {\n Item: DescriptionsItem\n} = ant_design_vue_es_descriptions__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\nconst descDefaultAttrs = {\n size: 'middle',\n bordered: true\n};\nconst DescriptionsProps = {\n title: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].string,\n column: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].oneOfType([ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].number, ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object]).def(3),\n descDetails: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object,\n descSettings: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].array,\n descAttrs: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_4__[\"default\"].object\n};\nconst renderContent = (h, item, details) => {\n const CustomTag = item.type === 'file' && _browse_index_jsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"] || 'span';\n const data = item.hasOwnProperty('multiProps') ? item.multiProps.map(propsItem => (0,_plugins_utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__.transferData)(details[propsItem], 'Array')).flat() : (0,_plugins_utils_Filter_js__WEBPACK_IMPORTED_MODULE_1__.transferData)(details[item.props], 'Array');\n const props = {\n data\n };\n return h(CustomTag, {\n \"props\": {\n ...props\n }\n }, [item.customRender && item.customRender(details[item.props], details) || details[item.props] || '暂无']);\n};\nconst DescriptionsList = {\n name: 'Descriptions',\n props: DescriptionsProps,\n render(h, content) {\n const {\n title,\n column,\n descAttrs,\n descDetails,\n descSettings,\n $slots,\n $scopedSlots\n } = this;\n return h(\"div\", {\n \"class\": \"Descriptions\",\n \"ref\": \"Descriptions\"\n }, [h(ant_design_vue_es_descriptions__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n \"attrs\": {\n \"title\": title,\n \"column\": column,\n ...{\n ...descDefaultAttrs,\n ...descAttrs\n }\n }\n }, [descSettings.map((descItem, key) => {\n return h(DescriptionsItem, {\n \"key\": key,\n \"attrs\": {\n \"span\": descItem.span ?? 1\n }\n }, [h(\"div\", {\n \"slot\": \"label\"\n }, [$slots[`${descItem.props}Lable`] ?? descItem.label]), $scopedSlots[`${descItem.props}`] ? $scopedSlots[`${descItem.props}`](descDetails) : renderContent(h, descItem, descDetails)]);\n })])]);\n },\n mounted() {\n window.addEventListener('resize', this.setDescContentWidth());\n },\n methods: {\n setDescContentWidth() {\n const elementG = this.$refs.Descriptions.querySelectorAll('.ant-descriptions-item-content');\n const width = document.querySelector('.ant-descriptions-row').offsetWidth;\n const labelWidth = document.querySelector('.ant-descriptions-item-label').offsetWidth;\n const {\n column,\n descSettings\n } = this;\n for (let i = 0; i < elementG.length; i++) {\n const contentWidth = (descSettings[i].span ? width * (descSettings[i].span / column) : width / column) - labelWidth + 'px';\n const element = elementG[i];\n element.style = `\n width: ${contentWidth};\n min-width: ${contentWidth};\n max-width: ${contentWidth};\n `;\n }\n }\n }\n};\nDescriptionsList.install = function (Vue) {\n Vue.component('DescriptionsList', DescriptionsList);\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (DescriptionsList);\n\n//# sourceURL=webpack://mui/./plugins/lib/descriptions/index.jsx?");
8619
8619
 
8620
8620
  /***/ }),
8621
8621
 
@@ -8626,7 +8626,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_
8626
8626
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8627
8627
 
8628
8628
  "use strict";
8629
- eval("__webpack_require__.r(__webpack_exports__);\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__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/form-model/index.js\");\n/* harmony import */ var _components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/RenderComp.vue */ \"./plugins/lib/form/components/RenderComp.vue\");\n/* harmony import */ var _style_Model_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./style/Model.less */ \"./plugins/lib/form/style/Model.less\");\n\n\n\n\nconst FormModelItem = ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Item;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Model',\n model: {\n prop: 'value',\n event: 'Change:Model'\n },\n data() {\n return {\n formRules: {},\n labelCol: {\n span: 4\n },\n wrapperCol: {\n span: 20\n }\n };\n },\n props: {\n value: {\n type: Object,\n default: () => ({})\n },\n /* Form布局方式 */\n layout: {\n type: String,\n default: 'vertical'\n },\n /* 一行显示几个 PS:最多5个 */\n layoutSize: {\n type: Number,\n default: 4,\n validator: value => {\n return value <= 5;\n }\n },\n /* 表单项配置 */\n formSetting: Array\n },\n computed: {\n form: {\n get() {\n /** 忘记是什么场景下需要校验了,后续需发现补上 */\n // for (const k in this.value) {\n // Object.hasOwnProperty.call(this.formRules, k) && this.$refs.FormModel.validateField(k)\n // }\n return this.value;\n },\n set(value) {\n this.$emit('Change:Model', value);\n }\n },\n formAttrs() {\n let attr = {};\n this.layout === 'vertical' ? attr = {\n ...this.$attrs\n } : attr = {\n labelCol: this.labelCol,\n wrapperCol: this.wrapperCol,\n ...this.$attrs\n };\n return attr;\n }\n },\n watch: {\n formSetting() {\n this.setFormRules();\n }\n },\n mounted() {\n this.setFormRules();\n this.$emit('update:refForm', this.$refs.FormModel);\n },\n methods: {\n /** 根据layoutSize来进行距离及大小切分 */\n getFormWidth(child, layoutSize) {\n if (!layoutSize) return `margin-right:24px;`;\n if (this.layout === 'vertical') return `flex: 0 1 calc((${100 / layoutSize * (child.size ?? 1)}% - 24px));margin-right:24px;`;\n return `flex: 0 1 ${100 / layoutSize * (child.size ?? 1)}%;`;\n },\n /** 包含单表单项,多表单项,动态增减表单项合并处理 */\n setModelRender(props) {\n const h = this.$createElement;\n const {\n setFormModelItem,\n getFormWidth,\n layoutSize\n } = this;\n const dynamicModel = this.form[props.model];\n return h(\"div\", {\n \"class\": props.mutiConfig && ['MultipleForm'],\n \"attrs\": {\n ...{\n style: getFormWidth(props, layoutSize)\n }\n }\n }, [/** 处理动态增减表单 */\n dynamicModel instanceof Array && props.multiple ? dynamicModel.map((modelItem, index) => setFormModelItem(props, {\n model: props.model,\n modelItem,\n index\n })) : setFormModelItem(props), this.$scopedSlots[`${props.model}Operate`] && this.$scopedSlots[`${props.model}Operate`](props)]);\n },\n /** 动态渲染表单项 */\n setFormModelItem(props, dynamicModel) {\n const h = this.$createElement;\n const {\n getFormWidth,\n layout,\n layoutSize,\n form,\n $scopedSlots\n } = this;\n const modelComponent = child => {\n const childLayoutSize = child.layoutSize ?? layoutSize;\n let childDefaultAttrs = {\n key: child.model,\n prop: child.model,\n label: child.label,\n colon: !(layout == 'inline')\n };\n child.layoutSize && (childDefaultAttrs = {\n ...childLayoutSize,\n style: getFormWidth(child, childLayoutSize)\n });\n let propsAttr = {};\n let propsCompModel = dynamicModel ? dynamicModel.modelItem : form;\n // [child.model]\n\n dynamicModel && (propsAttr = {\n key: dynamicModel.index,\n prop: `${dynamicModel.model}.${dynamicModel.index}.${child.model}`,\n label: `${child.label}${dynamicModel.index + 1}`\n });\n console.log(propsAttr, propsCompModel);\n return h(FormModelItem, {\n \"class\": [{\n FormLineVertical: child.size === childLayoutSize && layout === 'vertical'\n }, {\n FormLine: child.size === childLayoutSize\n }],\n \"attrs\": {\n ...{\n ...childDefaultAttrs,\n ...propsAttr\n }\n }\n }, [$scopedSlots[child.model] ? $scopedSlots[child.model](child) : h(_components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n \"attrs\": {\n \"component\": child.is,\n ...child.attrs\n },\n \"on\": {\n ...child.event\n },\n \"model\": {\n value: propsCompModel[child.model],\n callback: $$v => {\n this.$set(propsCompModel, child.model, $$v);\n }\n }\n }), $scopedSlots[`${child.model}Handle`] && $scopedSlots[`${child.model}Handle`](child)]);\n };\n return props.mutiConfig ? props.mutiConfig.map(child => modelComponent(child)) : modelComponent(props);\n // {/* 先不支持便捷显示和隐藏 */}\n // {/* !props.hidden && */} \n },\n /** 配置表单项规则 */\n setFormRules() {\n const rules = {};\n this.formSetting.forEach(node => {\n node.filed ? node.filed.forEach(child => this.$set(rules, child.model, this.setAttrs({\n ...node,\n ...child\n }))) : this.$set(rules, node.model, this.setAttrs(node));\n });\n this.formRules = rules;\n },\n /** 动态设置表单属性 */\n setAttrs(node) {\n const required = node.hasOwnProperty('required') ? node.required : node.hasOwnProperty('hidden') ? !node.hidden : true;\n const message = node.placeholder || (/(select|picker|radio|upload)/.test((node.is ?? 'Input').toLowerCase()) ? '请选择' : '请输入') + (node.label || '');\n const rules = [{\n required,\n message,\n trigger: ['change', 'blur']\n }].concat((node.rules || []).filter(i => i.pattern && (i.pattern = new RegExp(i.pattern))));\n return rules;\n },\n /** 提交测验 */\n formSubmit() {\n return this.$refs.FormModel.validate();\n }\n },\n render() {\n const h = arguments[0];\n const {\n setModelRender,\n layout,\n formSetting,\n formRules,\n formAttrs,\n form\n } = this;\n return h(ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default()([{\n \"ref\": \"FormModel\",\n \"class\": \"FormModel\"\n }, {\n \"props\": {\n model: form,\n rules: formRules,\n layout,\n ...formAttrs\n }\n }]), [formSetting.map(props => setModelRender(props))]);\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/Model.js?");
8629
+ eval("__webpack_require__.r(__webpack_exports__);\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__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ant-design-vue */ \"./node_modules/ant-design-vue/es/form-model/index.js\");\n/* harmony import */ var _components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/RenderComp.vue */ \"./plugins/lib/form/components/RenderComp.vue\");\n/* harmony import */ var _style_Model_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./style/Model.less */ \"./plugins/lib/form/style/Model.less\");\n\n\n\n\nconst FormModelItem = ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Item;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Model',\n model: {\n prop: 'value',\n event: 'Change:Model'\n },\n data() {\n return {\n formRules: {},\n labelCol: {\n span: 4\n },\n wrapperCol: {\n span: 20\n }\n };\n },\n props: {\n value: {\n type: Object,\n default: () => ({})\n },\n /* Form布局方式 */\n layout: {\n type: String,\n default: 'vertical'\n },\n /* 一行显示几个 PS:最多5个 */\n layoutSize: {\n type: Number,\n default: 4,\n validator: value => {\n return value <= 5;\n }\n },\n /* 表单项配置 */\n formSetting: Array\n },\n computed: {\n form: {\n get() {\n /** 忘记是什么场景下需要校验了,后续需发现补上 */\n // for (const k in this.value) {\n // Object.hasOwnProperty.call(this.formRules, k) && this.$refs.FormModel.validateField(k)\n // }\n return this.value;\n },\n set(value) {\n this.$emit('Change:Model', value);\n }\n },\n formAttrs() {\n let attr = {};\n this.layout === 'vertical' ? attr = {\n ...this.$attrs\n } : attr = {\n labelCol: this.labelCol,\n wrapperCol: this.wrapperCol,\n ...this.$attrs\n };\n return attr;\n }\n },\n watch: {\n formSetting() {\n this.setFormRules();\n }\n },\n mounted() {\n this.setFormRules();\n this.$emit('update:refForm', this.$refs.FormModel);\n },\n methods: {\n /** 根据layoutSize来进行距离及大小切分 */\n getFormWidth(child, layoutSize) {\n if (!layoutSize) return `margin-right:24px;`;\n if (this.layout === 'vertical') return `flex: 0 1 calc((${100 / layoutSize * (child.size ?? 1)}% - 24px));margin-right:24px;`;\n return `flex: 0 1 ${100 / layoutSize * (child.size ?? 1)}%;`;\n },\n /** 包含单表单项,多表单项,动态增减表单项合并处理 */\n setModelRender(props) {\n const h = this.$createElement;\n const {\n setFormModelItem,\n getFormWidth,\n layoutSize\n } = this;\n const dynamicModel = this.form[props.model];\n return h(\"div\", {\n \"class\": props.mutiConfig && ['MultipleForm'],\n \"attrs\": {\n ...{\n style: getFormWidth(props, layoutSize)\n }\n }\n }, [/** 处理动态增减表单 */\n dynamicModel instanceof Array && props.multiple ? dynamicModel.map((modelItem, index) => setFormModelItem(props, {\n model: props.model,\n modelItem,\n index\n })) : setFormModelItem(props), this.$scopedSlots[`${props.model}Operate`] && this.$scopedSlots[`${props.model}Operate`](props)]);\n },\n /** 动态渲染表单项 */\n setFormModelItem(props, dynamicModel) {\n const h = this.$createElement;\n const {\n getFormWidth,\n layout,\n layoutSize,\n form,\n $scopedSlots\n } = this;\n const modelComponent = child => {\n const childLayoutSize = child.layoutSize ?? layoutSize;\n let childDefaultAttrs = {\n key: child.model,\n prop: child.model,\n label: child.label,\n colon: !(layout == 'inline')\n };\n child.layoutSize && (childDefaultAttrs = {\n ...childLayoutSize,\n style: getFormWidth(child, childLayoutSize)\n });\n let propsAttr = {};\n let propsCompModel = dynamicModel ? dynamicModel.modelItem : form;\n // [child.model]\n\n dynamicModel && (propsAttr = {\n key: dynamicModel.index,\n prop: `${dynamicModel.model}.${dynamicModel.index}.${child.model}`,\n label: `${child.label}${dynamicModel.index + 1}`\n });\n return h(FormModelItem, {\n \"class\": [{\n FormLineVertical: child.size === childLayoutSize && layout === 'vertical'\n }, {\n FormLine: child.size === childLayoutSize\n }],\n \"attrs\": {\n ...{\n ...childDefaultAttrs,\n ...propsAttr\n }\n }\n }, [$scopedSlots[child.model] ? $scopedSlots[child.model](child) : h(_components_RenderComp_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n \"attrs\": {\n \"component\": child.is,\n ...child.attrs\n },\n \"on\": {\n ...child.event\n },\n \"model\": {\n value: propsCompModel[child.model],\n callback: $$v => {\n this.$set(propsCompModel, child.model, $$v);\n }\n }\n }), $scopedSlots[`${child.model}Handle`] && $scopedSlots[`${child.model}Handle`](child)]);\n };\n return props.mutiConfig ? props.mutiConfig.map(child => modelComponent(child)) : modelComponent(props);\n // {/* 先不支持便捷显示和隐藏 */}\n // {/* !props.hidden && */} \n },\n /** 配置表单项规则 */\n setFormRules() {\n const rules = {};\n this.formSetting.forEach(node => {\n node.filed ? node.filed.forEach(child => this.$set(rules, child.model, this.setAttrs({\n ...node,\n ...child\n }))) : this.$set(rules, node.model, this.setAttrs(node));\n });\n this.formRules = rules;\n },\n /** 动态设置表单属性 */\n setAttrs(node) {\n const required = node.hasOwnProperty('required') ? node.required : node.hasOwnProperty('hidden') ? !node.hidden : true;\n const message = node.placeholder || (/(select|picker|radio|upload)/.test((node.is ?? 'Input').toLowerCase()) ? '请选择' : '请输入') + (node.label || '');\n const rules = [{\n required,\n message,\n trigger: ['change', 'blur']\n }].concat((node.rules || []).filter(i => i.pattern && (i.pattern = new RegExp(i.pattern))));\n return rules;\n },\n /** 提交测验 */\n formSubmit() {\n return this.$refs.FormModel.validate();\n }\n },\n render() {\n const h = arguments[0];\n const {\n setModelRender,\n layout,\n formSetting,\n formRules,\n formAttrs,\n form\n } = this;\n return h(ant_design_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default()([{\n \"ref\": \"FormModel\",\n \"class\": \"FormModel\"\n }, {\n \"props\": {\n model: form,\n rules: formRules,\n layout,\n ...formAttrs\n }\n }]), [formSetting.map(props => setModelRender(props))]);\n }\n});\n\n//# sourceURL=webpack://mui/./plugins/lib/form/Model.js?");
8630
8630
 
8631
8631
  /***/ }),
8632
8632
 
@@ -8670,7 +8670,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_
8670
8670
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8671
8671
 
8672
8672
  "use strict";
8673
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__ = __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 _events_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events.js */ \"./plugins/lib/iframe/events.js\");\n/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.less */ \"./plugins/lib/iframe/index.less\");\n\n\n\n\nconst IframeContainerProps = {\n activeKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string,\n checkedKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string.def('name'),\n linkurlKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string.def('linkUrl'),\n operatesArr: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].array,\n componentsArr: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].array,\n postMessage: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].object\n};\nconst IframeContainer = {\n name: 'IframeComp',\n props: IframeContainerProps,\n data() {\n return {\n modalComponents: {}\n };\n },\n render(h, content) {\n const {\n $props,\n modalComponents\n } = this;\n const {\n activeKey,\n checkedKey,\n componentsArr\n } = $props;\n const IframeComponents = componentsArr.map(componentItem => {\n const isActive = activeKey === componentItem[checkedKey];\n return this.getIframeComponent(componentItem, isActive);\n });\n const modalKeys = Object.keys(modalComponents);\n return h(\"div\", {\n \"class\": \"ant-pro-grid-content-page\"\n }, [IframeComponents, modalKeys.length && modalKeys.map(modalKey => {\n return h(_modal_index_jsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n \"props\": {\n ...{\n ...modalComponents[modalKey],\n cancelHandle: () => modalComponents[modalKey].visible = false\n }\n }\n }, [this.getIframeComponent(modalComponents[modalKey], true)]);\n })]);\n },\n watch: {\n activeKey(newVal) {\n this.modalComponents = {};\n },\n activeKeyAndParams: {\n handler(newVal, oldVal) {\n this.postCompMessage();\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.postCompMessage();\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalOpen', ({\n name,\n params\n }) => {\n const activeModal = this.switchModalHandle(name, params);\n activeModal && this.$set(this.modalComponents, name, {\n mode: params.mode,\n visible: true,\n ...activeModal\n });\n });\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalClose', ({\n name,\n params\n }) => {\n this.closeModalHandle(name);\n params && this.postCompMessage(params);\n });\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalGoBack', ({\n name,\n params\n }, closeModal) => {\n this.closeModalHandle(closeModal);\n this.switchModalHandle(name, params);\n });\n },\n methods: {\n postCompMessage(data = {}) {\n const {\n componentsArr,\n activeKey,\n postMessage\n } = this;\n componentsArr.length && this.postIframeMessage(componentsArr, {\n type: 'refreshPage',\n activeKey,\n data\n });\n },\n closeModalHandle(name) {\n this.modalComponents[name].visible = false;\n delete this.modalComponents[name];\n },\n switchModalHandle(name, data) {\n const {\n operatesArr,\n checkedKey\n } = this;\n const activeModal = operatesArr.find(operatesItem => operatesItem[checkedKey] === name);\n activeModal && this.postIframeMessage(operatesArr, {\n type: 'refreshModal',\n activeKey: name,\n data\n });\n return activeModal;\n },\n postIframeMessage(components, iframeConfig) {\n const {\n type,\n activeKey,\n data = {}\n } = iframeConfig;\n this.$nextTick(() => {\n const {\n checkedKey,\n linkurlKey,\n postMessage\n } = this;\n const refKey = components.find(componentsItem => activeKey === componentsItem[checkedKey])[linkurlKey];\n const timer = setTimeout(() => {\n const iframe = this.$refs[refKey];\n const iframeWin = this.$refs[refKey]?.contentWindow;\n iframe.onload = function () {\n iframeWin.postMessage({\n type,\n params: {\n routeQuery: postMessage,\n data,\n name: activeKey\n }\n }, '*');\n };\n iframeWin && iframeWin.postMessage({\n type,\n params: {\n routeQuery: postMessage,\n data,\n name: activeKey\n }\n }, '*');\n clearTimeout(timer);\n }, 60);\n });\n },\n getIframeComponent(componentItem, isActive) {\n const h = this.$createElement;\n const {\n linkurlKey,\n checkedKey\n } = this;\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 }\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?");
8673
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__ = __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 _events_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./events.js */ \"./plugins/lib/iframe/events.js\");\n/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.less */ \"./plugins/lib/iframe/index.less\");\n\n\n\n\nconst IframeContainerProps = {\n activeKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string,\n checkedKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string.def('name'),\n linkurlKey: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].string.def('linkUrl'),\n operatesArr: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].array,\n componentsArr: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].array,\n postMessage: ant_design_vue_es_util_vue_types__WEBPACK_IMPORTED_MODULE_3__[\"default\"].object\n};\nconst IframeContainer = {\n name: 'IframeComp',\n props: IframeContainerProps,\n data() {\n return {\n modalComponents: {}\n };\n },\n render(h, content) {\n const {\n $props,\n modalComponents\n } = this;\n const {\n activeKey,\n checkedKey,\n componentsArr\n } = $props;\n const IframeComponents = componentsArr.map(componentItem => {\n const isActive = activeKey === componentItem[checkedKey];\n return this.getIframeComponent(componentItem, isActive);\n });\n const modalKeys = Object.keys(modalComponents);\n return h(\"div\", {\n \"class\": \"ant-pro-grid-content-page\"\n }, [IframeComponents, modalKeys.length && modalKeys.map(modalKey => {\n return h(_modal_index_jsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n \"props\": {\n ...{\n ...modalComponents[modalKey],\n cancelHandle: () => this.closeModalHandle(modalKey)\n }\n }\n }, [this.getIframeComponent(modalComponents[modalKey], true)]);\n })]);\n },\n watch: {\n activeKey(newVal) {\n this.modalComponents = {};\n },\n activeKeyAndParams: {\n handler(newVal, oldVal) {\n this.postCompMessage();\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.postCompMessage();\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalOpen', ({\n name,\n params\n }) => {\n const activeModal = this.switchModalHandle(name, params);\n activeModal && this.$set(this.modalComponents, name, {\n mode: params.mode,\n visible: true,\n ...activeModal\n });\n });\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalClose', ({\n name,\n params\n }) => {\n this.closeModalHandle(name);\n params && this.postCompMessage(params);\n });\n _events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].$on('modalGoBack', ({\n name,\n params\n }, closeModal) => {\n this.closeModalHandle(closeModal);\n this.switchModalHandle(name, params);\n });\n },\n methods: {\n postCompMessage(data = {}) {\n const {\n componentsArr,\n activeKey,\n postMessage\n } = this;\n componentsArr.length && this.postIframeMessage(componentsArr, {\n type: 'refreshPage',\n activeKey,\n data\n });\n },\n closeModalHandle(name) {\n this.modalComponents[name].visible = false;\n delete this.modalComponents[name];\n },\n switchModalHandle(name, data) {\n const {\n operatesArr,\n checkedKey\n } = this;\n const activeModal = operatesArr.find(operatesItem => operatesItem[checkedKey] === name);\n activeModal && this.postIframeMessage(operatesArr, {\n type: 'refreshModal',\n activeKey: name,\n data\n });\n return activeModal;\n },\n postIframeMessage(components, iframeConfig) {\n const {\n type,\n activeKey,\n data = {}\n } = iframeConfig;\n this.$nextTick(() => {\n const {\n checkedKey,\n linkurlKey,\n postMessage\n } = this;\n const refKey = components.find(componentsItem => activeKey === componentsItem[checkedKey])[linkurlKey];\n const timer = setTimeout(() => {\n const iframe = this.$refs[refKey];\n const iframeWin = this.$refs[refKey]?.contentWindow;\n iframe.onload = function () {\n iframeWin.postMessage({\n type,\n params: {\n routeQuery: postMessage,\n data,\n name: activeKey\n }\n }, '*');\n };\n iframeWin && iframeWin.postMessage({\n type,\n params: {\n routeQuery: postMessage,\n data,\n name: activeKey\n }\n }, '*');\n clearTimeout(timer);\n }, 60);\n });\n },\n getIframeComponent(componentItem, isActive) {\n const h = this.$createElement;\n const {\n linkurlKey,\n checkedKey\n } = this;\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 }\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?");
8674
8674
 
8675
8675
  /***/ }),
8676
8676
 
@@ -2,7 +2,7 @@ import PropTypes from 'ant-design-vue/es/_util/vue-types'
2
2
  import Descriptions from 'ant-design-vue/es/descriptions'
3
3
 
4
4
  import Browse from '../browse/index.jsx'
5
- import { transferData } from '../../utils/Filter.js'
5
+ import { transferData } from '/plugins/utils/Filter.js'
6
6
 
7
7
  const {
8
8
  Item: DescriptionsItem
@@ -43,7 +43,7 @@ const DescriptionsList = {
43
43
  name: 'Descriptions',
44
44
  props: DescriptionsProps,
45
45
  render(h, content) {
46
- const { title, column, descAttrs, descDetails, descSettings, $slots } = this
46
+ const { title, column, descAttrs, descDetails, descSettings, $slots, $scopedSlots } = this
47
47
  return (
48
48
  <div class="Descriptions" ref="Descriptions">
49
49
  <Descriptions
@@ -62,8 +62,8 @@ const DescriptionsList = {
62
62
  {$slots[`${descItem.props}Lable`] ?? descItem.label}
63
63
  </div>
64
64
  {
65
- $slots[`${descItem.props}`] ?
66
- $slots[`${descItem.props}`](descDetails) :
65
+ $scopedSlots[`${descItem.props}`] ?
66
+ $scopedSlots[`${descItem.props}`](descDetails) :
67
67
  renderContent(h, descItem, descDetails)
68
68
  }
69
69
  </DescriptionsItem>
package/lib/form/Model.js CHANGED
@@ -133,9 +133,7 @@ export default {
133
133
  prop: `${dynamicModel.model}.${dynamicModel.index}.${child.model}`,
134
134
  label: `${child.label}${dynamicModel.index + 1}`
135
135
  }
136
- )
137
-
138
- console.log( propsAttr, propsCompModel )
136
+ )
139
137
 
140
138
  return (
141
139
  <FormModelItem
@@ -5,8 +5,7 @@
5
5
  :file-list="fileList"
6
6
  list-type="picture-card"
7
7
  :accept="fileAccept"
8
- :action="fileUploadUrl"
9
- :headers="fileHeaders"
8
+ v-bind="uploadAttrs"
10
9
  @change="handleFileChange"
11
10
  @preview="handleFilePreview"
12
11
  @reject="$message.error(`上传文件类型只能为${fileAccept}`)"
@@ -22,7 +21,6 @@
22
21
 
23
22
  <script>
24
23
 
25
- import Vue from 'vue'
26
24
  import { Icon, Upload } from 'ant-design-vue'
27
25
 
28
26
  export default {
@@ -44,35 +42,35 @@ export default {
44
42
  default: 1
45
43
  },
46
44
  /* 上传接口 */
47
- fileUploadUrl: {
48
- type: String,
49
- default: Vue.prototype.$https.UPLOADURL
50
- },
45
+ fileUploadUrl: String,
51
46
  /* 显示需要pin的接口前缀 */
52
- filePrefixUrl: {
53
- type: String,
54
- default: Vue.prototype.$https.FILEURL
55
- },
47
+ filePrefixUrl: String,
56
48
  /* 上传文件格式限制 */
57
49
  fileAccept: String,
58
50
  /* 上传文件携带Headers信息 */
59
- fileHeaders: {
60
- type: Object,
61
- default: () => Vue.prototype.$store.getters.fileHeaders
62
- },
51
+ fileHeaders: Object,
63
52
  /* 删除文件函数回调 */
64
53
  fileRemoveHandle: Function
65
- },
54
+ },
66
55
  data() {
67
56
  return {
68
- fileList: [],
57
+ fileList: [],
69
58
  modalValue: []
70
59
  }
71
60
  },
72
61
  watch: {
73
62
  value() {
74
63
  this.setResetFile()
75
- }
64
+ }
65
+ },
66
+ computed: {
67
+ uploadAttrs() {
68
+ return {
69
+ prefix: this.filePrefixUrl ?? this.$https.FILEURL,
70
+ action: this.fileUploadUrl ?? this.$https.UPLOADURL,
71
+ headers: this.fileHeaders ?? this.$store.getters.fileHeaders
72
+ }
73
+ }
76
74
  },
77
75
  mounted() {
78
76
  this.setResetFile()
@@ -88,7 +86,7 @@ export default {
88
86
  this.modalValue = arrayObject ?? []
89
87
  this.fileList = this.modalValue.map(file => ({
90
88
  ...file,
91
- url: `${this.filePrefixUrl}${file.url}`,
89
+ url: `${this.uploadAttrs.prefix}${file.url}`,
92
90
  type: file.contentType,
93
91
  status: 'done'
94
92
  }))
@@ -114,7 +112,7 @@ export default {
114
112
  this.$dialog(
115
113
  'fileBrowse',
116
114
  { src: url }
117
- )
115
+ )
118
116
  },
119
117
 
120
118
  handleFileChange({ file, fileList }) {
@@ -45,7 +45,7 @@ const IframeContainer = {
45
45
  {...{
46
46
  props: {
47
47
  ...modalComponents[modalKey],
48
- cancelHandle: () => modalComponents[modalKey].visible = false
48
+ cancelHandle: () => this.closeModalHandle(modalKey)
49
49
  }
50
50
  }}>
51
51
  { this.getIframeComponent(modalComponents[modalKey], true) }
@@ -16,13 +16,13 @@
16
16
  >
17
17
  <div class="WebComponentTable__List__Title" ref="TableListTitle" slot="title">
18
18
  <slot name="ATableTitle" />
19
- </div>
19
+ </div>
20
20
 
21
21
  <template v-for="{ dataIndex } in $attrs.columns" #[dataIndex]>
22
22
  <!-- 自定义头部渲染 -->
23
23
  <slot :name="dataIndex" />
24
24
  </template>
25
-
25
+
26
26
  <template #customRender="text, record, i, column">
27
27
  <slot :name="column.dataIndex" :customProps="record" :text="text" :index="i" />
28
28
  </template>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web-component-gallery",
3
- "version": "0.1.53",
3
+ "version": "0.1.55",
4
4
  "description": "vue-library-ui组件库",
5
5
  "main": "dist/index.umd.js",
6
6
  "files": [