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 +5 -5
- package/dist/form.umd.js +3 -3
- package/dist/index.umd.js +5 -5
- package/lib/descriptions/index.jsx +4 -4
- package/lib/form/Model.js +1 -3
- package/lib/form/components/AUpload.vue +18 -20
- package/lib/iframe/index.jsx +1 -1
- package/lib/table/index.vue +2 -2
- package/package.json +1 -1
- package/plugins/lib/descriptions/index.jsx +4 -4
- package/plugins/lib/form/Model.js +1 -3
- package/plugins/lib/form/components/AUpload.vue +18 -20
- package/plugins/lib/iframe/index.jsx +1 -1
- package/plugins/lib/table/index.vue +2 -2
- package/lib/form/LoginForm.jsx +0 -135
- package/lib/form/RenderComp.vue +0 -56
- package/lib/form/components/ADragVerify.vue +0 -333
- package/lib/form/resetFields.js +0 -16
- package/lib/form/style/LoginForm.less +0 -5
- package/lib/layout/style/index.css +0 -1
- package/lib/modal/index.vue +0 -53
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
|
|
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
|
|
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
|
|
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
|
|
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: () =>
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: () =>
|
|
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 '
|
|
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
|
-
$
|
|
66
|
-
$
|
|
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
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
:file-list="fileList"
|
|
6
6
|
list-type="picture-card"
|
|
7
7
|
:accept="fileAccept"
|
|
8
|
-
|
|
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.
|
|
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 }) {
|
package/lib/iframe/index.jsx
CHANGED
|
@@ -45,7 +45,7 @@ const IframeContainer = {
|
|
|
45
45
|
{...{
|
|
46
46
|
props: {
|
|
47
47
|
...modalComponents[modalKey],
|
|
48
|
-
cancelHandle: () =>
|
|
48
|
+
cancelHandle: () => this.closeModalHandle(modalKey)
|
|
49
49
|
}
|
|
50
50
|
}}>
|
|
51
51
|
{ this.getIframeComponent(modalComponents[modalKey], true) }
|
package/lib/table/index.vue
CHANGED
|
@@ -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>
|