@maketribe/ms-app 3.2.7 → 3.2.8
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/cjs/components/basic/data-table-select/data-table-select.js +2 -2
- package/dist/cjs/components/basic/data-table-select/data-table-select.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js +4 -4
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js.map +1 -1
- package/dist/cjs/components/basic/icon-select/icon-select.js +25 -9
- package/dist/cjs/components/basic/icon-select/icon-select.js.map +1 -1
- package/dist/cjs/components/basic/svg-icon/svg-icon.js +4 -4
- package/dist/cjs/components/basic/svg-icon/svg-icon.js.map +1 -1
- package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image-options.js +12 -0
- package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image-options.js.map +1 -1
- package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js +34 -6
- package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
- package/dist/cjs/components/business/resource-list/ResourceManager.js +2 -1
- package/dist/cjs/components/business/resource-list/ResourceManager.js.map +1 -1
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js +2 -6
- package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
- package/dist/cjs/components/data-model/data-form/data-form-item/data-form-item.js +1 -1
- package/dist/cjs/components/data-model/data-form/data-form-item/data-form-item.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/components/header-components/table-filter/table-filter.js +62 -2
- package/dist/cjs/components/data-model/data-table/components/header-components/table-filter/table-filter.js.map +1 -1
- package/dist/cjs/components/data-model/data-table/views/tree-view/tree-view.js +2 -2
- package/dist/cjs/components/data-model/data-table/views/tree-view/tree-view.js.map +1 -1
- package/dist/cjs/message-impl/DialogerImpl.js +4 -2
- package/dist/cjs/message-impl/DialogerImpl.js.map +1 -1
- package/dist/cjs/modules/cms/components/part-tree/index.vue.js +5 -5
- package/dist/cjs/modules/cms/composables/part-extensions.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js +4 -4
- package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +60 -47
- package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/components/article-atlas.vue.js +4 -4
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +71 -49
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js +30 -0
- package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-list/components/file-view/file-view.js +3 -3
- package/dist/cjs/modules/ms/components/material-list/components/file-view/file-view.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-list/components/video-view/video-view.js +6 -6
- package/dist/cjs/modules/ms/components/material-list/components/video-view/video-view.js.map +1 -1
- package/dist/cjs/modules/ms/components/material-list/material-group.js +5 -5
- package/dist/cjs/modules/ms/components/material-list/material-group.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-config/MsConfigTable.js +0 -1
- package/dist/cjs/modules/ms/dataviews/ms-config/MsConfigTable.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-deny-ip-access-list/MsDenyIPAccessListTable.js +0 -1
- package/dist/cjs/modules/ms/dataviews/ms-deny-ip-access-list/MsDenyIPAccessListTable.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-ip-white-list/MsIPWhitelistTable.js +0 -1
- package/dist/cjs/modules/ms/dataviews/ms-ip-white-list/MsIPWhitelistTable.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-member/MsMemberTable.js +3 -4
- package/dist/cjs/modules/ms/dataviews/ms-member/MsMemberTable.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuForm.js +10 -10
- package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuForm.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuTable.js +0 -1
- package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuTable.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-menu/ms-route/MsRouteTable.js +4 -1
- package/dist/cjs/modules/ms/dataviews/ms-menu/ms-route/MsRouteTable.js.map +1 -1
- package/dist/cjs/modules/ms/dataviews/ms-role/MsRoleTable.js +0 -1
- package/dist/cjs/modules/ms/dataviews/ms-role/MsRoleTable.js.map +1 -1
- package/dist/cjs/modules/ms/index.js +5 -0
- package/dist/cjs/modules/ms/index.js.map +1 -1
- package/dist/cjs/modules/ms/pages/icons/index.vue.js +4 -0
- package/dist/cjs/modules/ms/pages/icons/index.vue.js.map +1 -0
- package/dist/cjs/modules/ms/pages/icons/index.vue2.js +139 -0
- package/dist/cjs/modules/ms/pages/icons/index.vue2.js.map +1 -0
- package/dist/cjs/modules/ms/pages/ms-role/components/aside.vue.js +3 -3
- package/dist/esm/components/basic/icon-select/icon-select.js +26 -10
- package/dist/esm/components/basic/icon-select/icon-select.js.map +1 -1
- package/dist/esm/components/basic/svg-icon/svg-icon.js +3 -3
- package/dist/esm/components/basic/svg-icon/svg-icon.js.map +1 -1
- package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image-options.js +12 -0
- package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image-options.js.map +1 -1
- package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js +34 -6
- package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
- package/dist/esm/components/business/resource-list/ResourceManager.js +2 -1
- package/dist/esm/components/business/resource-list/ResourceManager.js.map +1 -1
- package/dist/esm/components/data-model/data-filter-form/data-filter-form.js +1 -5
- package/dist/esm/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
- package/dist/esm/components/data-model/data-form/data-form-item/data-form-item.js +2 -2
- package/dist/esm/components/data-model/data-form/data-form-item/data-form-item.js.map +1 -1
- package/dist/esm/components/data-model/data-table/components/header-components/table-filter/table-filter.js +64 -4
- package/dist/esm/components/data-model/data-table/components/header-components/table-filter/table-filter.js.map +1 -1
- package/dist/esm/message-impl/DialogerImpl.js +4 -2
- package/dist/esm/message-impl/DialogerImpl.js.map +1 -1
- package/dist/esm/modules/cms/composables/part-extensions.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +60 -47
- package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +72 -50
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js +30 -0
- package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-config/MsConfigTable.js +1 -2
- package/dist/esm/modules/ms/dataviews/ms-config/MsConfigTable.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-deny-ip-access-list/MsDenyIPAccessListTable.js +1 -2
- package/dist/esm/modules/ms/dataviews/ms-deny-ip-access-list/MsDenyIPAccessListTable.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-ip-white-list/MsIPWhitelistTable.js +1 -2
- package/dist/esm/modules/ms/dataviews/ms-ip-white-list/MsIPWhitelistTable.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-member/MsMemberTable.js +4 -5
- package/dist/esm/modules/ms/dataviews/ms-member/MsMemberTable.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuForm.js +10 -10
- package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuForm.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuTable.js +1 -2
- package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuTable.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-menu/ms-route/MsRouteTable.js +4 -1
- package/dist/esm/modules/ms/dataviews/ms-menu/ms-route/MsRouteTable.js.map +1 -1
- package/dist/esm/modules/ms/dataviews/ms-role/MsRoleTable.js +1 -2
- package/dist/esm/modules/ms/dataviews/ms-role/MsRoleTable.js.map +1 -1
- package/dist/esm/modules/ms/index.js +5 -0
- package/dist/esm/modules/ms/index.js.map +1 -1
- package/dist/esm/modules/ms/pages/icons/index.vue.js +5 -0
- package/dist/esm/modules/ms/pages/icons/index.vue.js.map +1 -0
- package/dist/esm/modules/ms/pages/icons/index.vue2.js +123 -0
- package/dist/esm/modules/ms/pages/icons/index.vue2.js.map +1 -0
- package/dist/style/components/form/form-detail.css +1 -1
- package/dist/style/components/form/form-icon-select.css +1 -1
- package/dist/style/components/form/index.css +1 -1
- package/dist/style/components/index.css +1 -1
- package/dist/style/components/table/index.css +1 -1
- package/dist/style/components/table/table-filter.css +1 -0
- package/dist/style/components/table-view.css +1 -1
- package/dist/style/index.css +1 -1
- package/dist/style/modules/ms/index.css +1 -1
- package/dist/style/modules/ms/pages/icon.css +1 -0
- package/dist/style/modules/ms/pages/index.css +1 -1
- package/dist/style/src/components/form/form-detail.scss +1 -1
- package/dist/style/src/components/form/form-icon-select.scss +21 -8
- package/dist/style/src/components/table/index.scss +2 -1
- package/dist/style/src/components/table/table-filter.scss +8 -0
- package/dist/style/src/components/table-view.scss +44 -43
- package/dist/style/src/modules/ms/pages/icon.scss +50 -0
- package/dist/style/src/modules/ms/pages/index.scss +2 -1
- package/dist/types/components/basic/upload-file/ui/upload-image/index.d.ts +9 -0
- package/dist/types/components/basic/upload-file/ui/upload-image/upload-image-options.d.ts +3 -0
- package/dist/types/components/basic/upload-file/ui/upload-image/upload-image.d.ts +9 -0
- package/dist/types/components/business/resource-list/ResourceManager.d.ts +1 -0
- package/dist/types/modules/cms/composables/part-extensions.d.ts +1 -1
- package/dist/types/modules/ms/pages/icons/index.vue.d.ts +2 -0
- package/package.json +3 -3
|
@@ -18,6 +18,18 @@ const MKUploadImageItem = /* @__PURE__ */ defineComponent({
|
|
|
18
18
|
uploadContext: {
|
|
19
19
|
type: UploadContext,
|
|
20
20
|
required: true
|
|
21
|
+
},
|
|
22
|
+
width: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: "180px"
|
|
25
|
+
},
|
|
26
|
+
height: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: "180px"
|
|
29
|
+
},
|
|
30
|
+
icon: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: "Plus"
|
|
21
33
|
}
|
|
22
34
|
},
|
|
23
35
|
emits: ["update:modelValue", "view", "delete"],
|
|
@@ -78,11 +90,15 @@ const MKUploadImageItem = /* @__PURE__ */ defineComponent({
|
|
|
78
90
|
})])]);
|
|
79
91
|
} else {
|
|
80
92
|
content = createVNode(MKSvgIcon, {
|
|
81
|
-
"iconClass":
|
|
93
|
+
"iconClass": props.icon
|
|
82
94
|
}, null);
|
|
83
95
|
}
|
|
84
96
|
return createVNode("div", {
|
|
85
|
-
"class": "mk-upload-image-item"
|
|
97
|
+
"class": "mk-upload-image-item",
|
|
98
|
+
"style": {
|
|
99
|
+
width: props.width,
|
|
100
|
+
height: props.height
|
|
101
|
+
}
|
|
86
102
|
}, [createVNode(MKUploadFile, {
|
|
87
103
|
"modelValue": props.modelValue,
|
|
88
104
|
"onUpdate:modelValue": handleUpdateModelValue,
|
|
@@ -151,7 +167,10 @@ const UploadImage = /* @__PURE__ */ defineComponent({
|
|
|
151
167
|
"onDelete": handleDelete,
|
|
152
168
|
"modelValue": unref(modelValue),
|
|
153
169
|
"onUpdate:modelValue": (value) => modelValue.value = value,
|
|
154
|
-
"uploadContext": props.uploadContext
|
|
170
|
+
"uploadContext": props.uploadContext,
|
|
171
|
+
"width": props.width,
|
|
172
|
+
"height": props.height,
|
|
173
|
+
"icon": props.icon
|
|
155
174
|
}, null);
|
|
156
175
|
} else {
|
|
157
176
|
let images = null;
|
|
@@ -160,12 +179,18 @@ const UploadImage = /* @__PURE__ */ defineComponent({
|
|
|
160
179
|
"onView": handleShowImageViewer,
|
|
161
180
|
"onDelete": handleDelete,
|
|
162
181
|
"modelValue": src,
|
|
163
|
-
"uploadContext": props.uploadContext
|
|
182
|
+
"uploadContext": props.uploadContext,
|
|
183
|
+
"width": props.width,
|
|
184
|
+
"height": props.height,
|
|
185
|
+
"icon": props.icon
|
|
164
186
|
}, null));
|
|
165
187
|
}
|
|
166
188
|
content = createVNode(Fragment, null, [images, createVNode(MKUploadImageItem, {
|
|
167
189
|
"onUpdate:modelValue": handleAppendImage,
|
|
168
|
-
"uploadContext": props.uploadContext
|
|
190
|
+
"uploadContext": props.uploadContext,
|
|
191
|
+
"width": props.width,
|
|
192
|
+
"height": props.height,
|
|
193
|
+
"icon": props.icon
|
|
169
194
|
}, null)]);
|
|
170
195
|
}
|
|
171
196
|
const imageViewer = unref(isShowImageViewer) ? createVNode(ElImageViewer, {
|
|
@@ -173,7 +198,10 @@ const UploadImage = /* @__PURE__ */ defineComponent({
|
|
|
173
198
|
"urlList": [unref(currentImageSrc)]
|
|
174
199
|
}, null) : null;
|
|
175
200
|
return createVNode("div", {
|
|
176
|
-
"class": "mk-upload-image"
|
|
201
|
+
"class": "mk-upload-image",
|
|
202
|
+
"style": {
|
|
203
|
+
width: _multiple ? "" : props.width
|
|
204
|
+
}
|
|
177
205
|
}, [content, imageViewer]);
|
|
178
206
|
};
|
|
179
207
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-image.js","sources":["../../../../../../../src/components/basic/upload-file/ui/upload-image/upload-image.tsx"],"sourcesContent":["import {\r\n Fragment,\r\n Ref,\r\n VNode,\r\n computed,\r\n defineComponent,\r\n ref,\r\n unref,\r\n watch,\r\n} from \"vue\";\r\nimport { ElImage, ElTooltip, ElImageViewer } from \"element-plus\";\r\nimport { MKSvgIcon } from \"../../../svg-icon\";\r\nimport { MKUploadFile } from \"../../upload-file\";\r\nimport { uploadImageEmits, uploadImageProps } from \"./upload-image-options\";\r\nimport { UploadContext } from \"../../context\";\r\n\r\nconst MKUploadImageItem = defineComponent({\r\n name: \"MKUploadImageItem\",\r\n props: {\r\n modelValue: {\r\n type: String,\r\n default: \"\",\r\n },\r\n uploadContext: {\r\n type: UploadContext,\r\n required: true,\r\n },\r\n },\r\n emits: [\"update:modelValue\", \"view\", \"delete\"],\r\n setup(props, { emit }) {\r\n const uploadFileInstance: Ref<InstanceType<typeof MKUploadFile> | null> =\r\n ref(null);\r\n\r\n const imageInstance: Ref<InstanceType<typeof ElImage> | null> = ref(null);\r\n\r\n const modelValue = computed({\r\n get: () => props.modelValue as string,\r\n set: (v: string) => {\r\n emit(\"update:modelValue\", v);\r\n },\r\n });\r\n\r\n const handleUpdateModelValue = (v: string) => {\r\n modelValue.value = v;\r\n };\r\n\r\n const handleClick = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n if (unref(modelValue)) {\r\n return;\r\n }\r\n\r\n unref(uploadFileInstance)?.handleUpload();\r\n };\r\n\r\n const handleView = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n emit(\"view\", unref(modelValue));\r\n };\r\n\r\n const handleDelete = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n // modelValue.value = \"\";\r\n emit(\"delete\", unref(modelValue));\r\n };\r\n\r\n return () => {\r\n let content;\r\n\r\n if (unref(modelValue)) {\r\n content = (\r\n <Fragment>\r\n <ElImage\r\n ref={\r\n ((el: InstanceType<typeof ElImage>) =>\r\n (imageInstance.value = el)) as any\r\n }\r\n src={unref(modelValue)}\r\n class=\"mk-upload-image-item__image\"\r\n fit=\"cover\"\r\n />\r\n\r\n <div class=\"mk-upload-image-item__mask\">\r\n <ElTooltip content=\"查看\">\r\n <MKSvgIcon iconClass=\"View\" onClick={handleView} />\r\n </ElTooltip>\r\n <ElTooltip content=\"删除\">\r\n <MKSvgIcon iconClass=\"Delete\" onClick={handleDelete} />\r\n </ElTooltip>\r\n </div>\r\n </Fragment>\r\n );\r\n } else {\r\n content = <MKSvgIcon iconClass=\"Plus\" />;\r\n }\r\n\r\n return (\r\n <div class=\"mk-upload-image-item\">\r\n <MKUploadFile\r\n modelValue={props.modelValue}\r\n onUpdate:modelValue={handleUpdateModelValue}\r\n uploadContext={props.uploadContext}\r\n ref={\r\n ((el: InstanceType<typeof MKUploadFile>) =>\r\n (uploadFileInstance.value = el)) as any\r\n }\r\n >\r\n <div class=\"mk-upload-image-item__wrapper\" onClick={handleClick}>\r\n {content}\r\n </div>\r\n </MKUploadFile>\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n\r\nexport default defineComponent({\r\n name: \"MKUploadImage\",\r\n props: uploadImageProps,\r\n emits: uploadImageEmits,\r\n setup(props, { emit }) {\r\n const modelValue = computed({\r\n get: () => props.modelValue as string[] | string,\r\n set: (v: string[] | string) => emit(\"update:modelValue\", v),\r\n });\r\n\r\n const currentImageSrc: Ref<string> = ref(\"\");\r\n\r\n const multiple = computed(() => props.multiple);\r\n\r\n const isShowImageViewer: Ref<boolean> = ref(false);\r\n\r\n watch(\r\n computed(() => [unref(modelValue), unref(multiple)]),\r\n ([value, multiple]) => {\r\n if (multiple && !Array.isArray(value)) {\r\n modelValue.value = [];\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const handleDelete = (src: string) => {\r\n if (!unref(multiple)) {\r\n modelValue.value = \"\";\r\n return;\r\n }\r\n\r\n const index = unref(modelValue).indexOf(src);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n (modelValue.value as string[]).splice(index, 1);\r\n };\r\n\r\n const handleShowImageViewer = (src: string) => {\r\n isShowImageViewer.value = true;\r\n currentImageSrc.value = src;\r\n };\r\n\r\n const handleCloseImageViewer = () => {\r\n isShowImageViewer.value = false;\r\n };\r\n\r\n const handleAppendImage = (src: string) => {\r\n const _value = unref(modelValue);\r\n\r\n if (Array.isArray(_value)) {\r\n _value.push(src);\r\n }\r\n };\r\n\r\n return () => {\r\n const _multiple = unref(multiple);\r\n\r\n let content;\r\n\r\n if (!_multiple) {\r\n content = (\r\n <MKUploadImageItem\r\n onView={handleShowImageViewer}\r\n onDelete={handleDelete}\r\n modelValue={unref(modelValue) as string}\r\n onUpdate:modelValue={(value) => (modelValue.value = value)}\r\n uploadContext={props.uploadContext}\r\n />\r\n );\r\n } else {\r\n let images: VNode[] | null = null;\r\n\r\n if (Array.isArray(unref(modelValue))) {\r\n images = (unref(modelValue) as string[]).map((src) => (\r\n <MKUploadImageItem\r\n onView={handleShowImageViewer}\r\n onDelete={handleDelete}\r\n modelValue={src}\r\n uploadContext={props.uploadContext}\r\n />\r\n ));\r\n }\r\n\r\n content = (\r\n <Fragment>\r\n {images}\r\n <MKUploadImageItem\r\n onUpdate:modelValue={handleAppendImage}\r\n uploadContext={props.uploadContext}\r\n />\r\n </Fragment>\r\n );\r\n }\r\n\r\n const imageViewer = unref(isShowImageViewer) ? (\r\n <ElImageViewer\r\n onClose={handleCloseImageViewer}\r\n urlList={[unref(currentImageSrc)]}\r\n />\r\n ) : null;\r\n\r\n return (\r\n <div class=\"mk-upload-image\">\r\n {content}\r\n {imageViewer}\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["MKUploadImageItem","defineComponent","name","props","modelValue","type","String","default","uploadContext","UploadContext","required","emits","setup","emit","uploadFileInstance","ref","imageInstance","computed","get","set","v","handleUpdateModelValue","value","handleClick","event","stopPropagation","unref","handleUpload","handleView","handleDelete","content","_createVNode","_Fragment","ElImage","el","ElTooltip","MKSvgIcon","MKUploadFile","uploadImageProps","uploadImageEmits","currentImageSrc","multiple","isShowImageViewer","watch","Array","isArray","immediate","src","index","indexOf","splice","handleShowImageViewer","handleCloseImageViewer","handleAppendImage","_value","push","_multiple","images","map","imageViewer","ElImageViewer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upload-image.js","sources":["../../../../../../../src/components/basic/upload-file/ui/upload-image/upload-image.tsx"],"sourcesContent":["import {\r\n Fragment,\r\n Ref,\r\n VNode,\r\n computed,\r\n defineComponent,\r\n ref,\r\n unref,\r\n watch,\r\n} from \"vue\";\r\nimport { ElImage, ElTooltip, ElImageViewer } from \"element-plus\";\r\nimport { MKSvgIcon } from \"../../../svg-icon\";\r\nimport { MKUploadFile } from \"../../upload-file\";\r\nimport { uploadImageEmits, uploadImageProps } from \"./upload-image-options\";\r\nimport { UploadContext } from \"../../context\";\r\n\r\nconst MKUploadImageItem = defineComponent({\r\n name: \"MKUploadImageItem\",\r\n props: {\r\n modelValue: {\r\n type: String,\r\n default: \"\",\r\n },\r\n uploadContext: {\r\n type: UploadContext,\r\n required: true,\r\n },\r\n width: {\r\n type: String,\r\n default: \"180px\",\r\n },\r\n height: {\r\n type: String,\r\n default: \"180px\",\r\n },\r\n icon: {\r\n type: String,\r\n default: \"Plus\",\r\n }\r\n },\r\n emits: [\"update:modelValue\", \"view\", \"delete\"],\r\n setup(props, { emit }) {\r\n const uploadFileInstance: Ref<InstanceType<typeof MKUploadFile> | null> =\r\n ref(null);\r\n\r\n const imageInstance: Ref<InstanceType<typeof ElImage> | null> = ref(null);\r\n\r\n const modelValue = computed({\r\n get: () => props.modelValue as string,\r\n set: (v: string) => {\r\n emit(\"update:modelValue\", v);\r\n },\r\n });\r\n\r\n const handleUpdateModelValue = (v: string) => {\r\n modelValue.value = v;\r\n };\r\n\r\n const handleClick = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n if (unref(modelValue)) {\r\n return;\r\n }\r\n\r\n unref(uploadFileInstance)?.handleUpload();\r\n };\r\n\r\n const handleView = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n emit(\"view\", unref(modelValue));\r\n };\r\n\r\n const handleDelete = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n // modelValue.value = \"\";\r\n emit(\"delete\", unref(modelValue));\r\n };\r\n\r\n return () => {\r\n let content;\r\n\r\n if (unref(modelValue)) {\r\n content = (\r\n <Fragment>\r\n <ElImage\r\n ref={\r\n ((el: InstanceType<typeof ElImage>) =>\r\n (imageInstance.value = el)) as any\r\n }\r\n src={unref(modelValue)}\r\n class=\"mk-upload-image-item__image\"\r\n fit=\"cover\"\r\n />\r\n\r\n <div class=\"mk-upload-image-item__mask\">\r\n <ElTooltip content=\"查看\">\r\n <MKSvgIcon iconClass=\"View\" onClick={handleView} />\r\n </ElTooltip>\r\n <ElTooltip content=\"删除\">\r\n <MKSvgIcon iconClass=\"Delete\" onClick={handleDelete} />\r\n </ElTooltip>\r\n </div>\r\n </Fragment>\r\n );\r\n } else {\r\n content = <MKSvgIcon iconClass={props.icon} />;\r\n }\r\n\r\n return (\r\n <div class=\"mk-upload-image-item\" style={{width:props.width,height:props.height}}>\r\n <MKUploadFile\r\n modelValue={props.modelValue}\r\n onUpdate:modelValue={handleUpdateModelValue}\r\n uploadContext={props.uploadContext}\r\n ref={\r\n ((el: InstanceType<typeof MKUploadFile>) =>\r\n (uploadFileInstance.value = el)) as any\r\n }\r\n >\r\n <div class=\"mk-upload-image-item__wrapper\" onClick={handleClick}>\r\n {content}\r\n </div>\r\n </MKUploadFile>\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n\r\nexport default defineComponent({\r\n name: \"MKUploadImage\",\r\n props: uploadImageProps,\r\n emits: uploadImageEmits,\r\n setup(props, { emit }) {\r\n const modelValue = computed({\r\n get: () => props.modelValue as string[] | string,\r\n set: (v: string[] | string) => emit(\"update:modelValue\", v),\r\n });\r\n\r\n const currentImageSrc: Ref<string> = ref(\"\");\r\n\r\n const multiple = computed(() => props.multiple);\r\n\r\n const isShowImageViewer: Ref<boolean> = ref(false);\r\n\r\n watch(\r\n computed(() => [unref(modelValue), unref(multiple)]),\r\n ([value, multiple]) => {\r\n if (multiple && !Array.isArray(value)) {\r\n modelValue.value = [];\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const handleDelete = (src: string) => {\r\n if (!unref(multiple)) {\r\n modelValue.value = \"\";\r\n return;\r\n }\r\n\r\n const index = unref(modelValue).indexOf(src);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n (modelValue.value as string[]).splice(index, 1);\r\n };\r\n\r\n const handleShowImageViewer = (src: string) => {\r\n isShowImageViewer.value = true;\r\n currentImageSrc.value = src;\r\n };\r\n\r\n const handleCloseImageViewer = () => {\r\n isShowImageViewer.value = false;\r\n };\r\n\r\n const handleAppendImage = (src: string) => {\r\n const _value = unref(modelValue);\r\n\r\n if (Array.isArray(_value)) {\r\n _value.push(src);\r\n }\r\n };\r\n\r\n return () => {\r\n const _multiple = unref(multiple);\r\n\r\n let content;\r\n\r\n if (!_multiple) {\r\n content = (\r\n <MKUploadImageItem\r\n onView={handleShowImageViewer}\r\n onDelete={handleDelete}\r\n modelValue={unref(modelValue) as string}\r\n onUpdate:modelValue={(value) => (modelValue.value = value)}\r\n uploadContext={props.uploadContext}\r\n width={props.width}\r\n height={props.height}\r\n icon={props.icon}\r\n />\r\n );\r\n } else {\r\n let images: VNode[] | null = null;\r\n\r\n if (Array.isArray(unref(modelValue))) {\r\n images = (unref(modelValue) as string[]).map((src) => (\r\n <MKUploadImageItem\r\n onView={handleShowImageViewer}\r\n onDelete={handleDelete}\r\n modelValue={src}\r\n uploadContext={props.uploadContext}\r\n width={props.width}\r\n height={props.height}\r\n icon={props.icon}\r\n />\r\n ));\r\n }\r\n\r\n content = (\r\n <Fragment>\r\n {images}\r\n <MKUploadImageItem\r\n onUpdate:modelValue={handleAppendImage}\r\n uploadContext={props.uploadContext}\r\n width={props.width}\r\n height={props.height}\r\n icon={props.icon}\r\n />\r\n </Fragment>\r\n );\r\n }\r\n\r\n const imageViewer = unref(isShowImageViewer) ? (\r\n <ElImageViewer\r\n onClose={handleCloseImageViewer}\r\n urlList={[unref(currentImageSrc)]}\r\n />\r\n ) : null;\r\n\r\n return (\r\n <div class=\"mk-upload-image\" style={{width:_multiple?\"\":props.width}}>\r\n {content}\r\n {imageViewer}\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["MKUploadImageItem","defineComponent","name","props","modelValue","type","String","default","uploadContext","UploadContext","required","width","height","icon","emits","setup","emit","uploadFileInstance","ref","imageInstance","computed","get","set","v","handleUpdateModelValue","value","handleClick","event","stopPropagation","unref","handleUpload","handleView","handleDelete","content","_createVNode","_Fragment","ElImage","el","ElTooltip","MKSvgIcon","MKUploadFile","uploadImageProps","uploadImageEmits","currentImageSrc","multiple","isShowImageViewer","watch","Array","isArray","immediate","src","index","indexOf","splice","handleShowImageViewer","handleCloseImageViewer","handleAppendImage","_value","push","_multiple","images","map","imageViewer","ElImageViewer"],"mappings":"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"}
|
|
@@ -84,9 +84,10 @@ class ResourceManager extends Disposable {
|
|
|
84
84
|
const httpRequest = MSAppClient.instance.httpRequest;
|
|
85
85
|
try {
|
|
86
86
|
this.loadingManager.startLoading();
|
|
87
|
+
const directoryPath = this.directories.length ? `/${this.directories.join("/")}` : "";
|
|
87
88
|
return await httpRequest.post(
|
|
88
89
|
`${this.baseURL}/resource/get-exist-path-list`,
|
|
89
|
-
{ pathList }
|
|
90
|
+
{ pathList, directoryPath }
|
|
90
91
|
);
|
|
91
92
|
} catch (e) {
|
|
92
93
|
console.error(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceManager.js","sources":["../../../../../src/components/business/resource-list/ResourceManager.ts"],"sourcesContent":["import { Disposable } from \"@maketribe/utils\";\r\nimport { MSAppClient } from \"../../../core\";\r\nimport { Dialoger, LoadingManager, Messager } from \"@maketribe/dm\";\r\nimport { R } from \"@maketribe/request\";\r\n\r\nexport type ResourceInfo = {\r\n name: string;\r\n path: string;\r\n isDirectory: boolean;\r\n extension: string;\r\n isSelected: boolean;\r\n};\r\n\r\nexport type ResourceManagerOptions = {\r\n extensions?: string[];\r\n baseURL: string;\r\n};\r\n\r\nexport class ResourceManager extends Disposable {\r\n directories: string[];\r\n\r\n resourceInfoList: ResourceInfo[];\r\n\r\n loadingManager: LoadingManager;\r\n\r\n isShowEditDialog: boolean = false;\r\n\r\n currentEditText: string = \"\";\r\n\r\n filterExtensions: string[] = [];\r\n\r\n baseURL: string = \"\";\r\n\r\n get selectResourceList() {\r\n return this.resourceInfoList.filter((item) => item.isSelected);\r\n }\r\n\r\n get loading() {\r\n return this.loadingManager.loading;\r\n }\r\n\r\n constructor(options: ResourceManagerOptions) {\r\n super();\r\n\r\n this.directories = [];\r\n\r\n this.resourceInfoList = [];\r\n\r\n this.loadingManager = new LoadingManager();\r\n\r\n this.filterExtensions = options.extensions ?? [];\r\n this.baseURL = options.baseURL;\r\n }\r\n\r\n async loadResourceInfoList(\r\n toPath: string = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\"\r\n ) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post<R<ResourceInfo[]>>(\r\n `${this.baseURL}/resource/resource-list`,\r\n {\r\n directoryPath: toPath,\r\n extensions: this.filterExtensions,\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.resourceInfoList = [];\r\n return;\r\n }\r\n\r\n this.resourceInfoList = response.data.data.map((item) => ({\r\n ...item,\r\n isSelected: false,\r\n }));\r\n\r\n var directorySegments = toPath.startsWith(\"/\")\r\n ? toPath.slice(1).split(\"/\")\r\n : toPath.split(\"/\");\r\n\r\n this.directories = directorySegments.filter(Boolean);\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async deleteSelectResourceList() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/delete-resource-list`,\r\n { paths: this.selectResourceList.map((item) => item.path) }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.loadResourceInfoList();\r\n return;\r\n }\r\n\r\n await this.loadResourceInfoList();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async getExistPathList(pathList: string[]) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n return await httpRequest.post(\r\n `${this.baseURL}/resource/get-exist-path-list`,\r\n { pathList }\r\n );\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n\r\n throw e;\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async uploadResourceList(files: File[]) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var directory = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\";\r\n\r\n var formData = new FormData();\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append(files[i].name, files[i]);\r\n }\r\n formData.append(\"directory\", directory);\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/update-resource-list`,\r\n formData\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.loadResourceInfoList();\r\n return;\r\n }\r\n\r\n await this.loadResourceInfoList();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async downloadSelectResource() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/get-download-resource-url`,\r\n { filePath: this.selectResourceList[0].path }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n var aElement = document.createElement(\"a\");\r\n aElement.href = response.data.data;\r\n aElement.target = \"_blank\";\r\n\r\n aElement.click();\r\n }\r\n\r\n async editSelectFile() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var resourceInfo = this.selectResourceList[0];\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/get-text`,\r\n {\r\n path: resourceInfo.path,\r\n }\r\n );\r\n\r\n this.isShowEditDialog = true;\r\n this.currentEditText = response.data.data;\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async saveEditFile() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var resourceInfo = this.selectResourceList[0];\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/set-text`,\r\n {\r\n path: resourceInfo.path,\r\n content: this.currentEditText,\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n this.isShowEditDialog = false;\r\n this.currentEditText = \"\";\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n clearAllSelect() {\r\n for (var resourceInfo of this.selectResourceList) {\r\n resourceInfo.isSelected = false;\r\n }\r\n }\r\n\r\n handleSelectClick(event: MouseEvent, item: ResourceInfo) {\r\n if (!event.ctrlKey) {\r\n this.clearAllSelect();\r\n\r\n item.isSelected = true;\r\n return;\r\n }\r\n\r\n item.isSelected = !item.isSelected;\r\n }\r\n\r\n \r\n}\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ResourceManager.js","sources":["../../../../../src/components/business/resource-list/ResourceManager.ts"],"sourcesContent":["import { Disposable } from \"@maketribe/utils\";\r\nimport { MSAppClient } from \"../../../core\";\r\nimport { Dialoger, LoadingManager, Messager } from \"@maketribe/dm\";\r\nimport { R } from \"@maketribe/request\";\r\n\r\nexport type ResourceInfo = {\r\n name: string;\r\n path: string;\r\n isDirectory: boolean;\r\n extension: string;\r\n isSelected: boolean;\r\n};\r\n\r\nexport type ResourceManagerOptions = {\r\n extensions?: string[];\r\n baseURL: string;\r\n};\r\n\r\nexport class ResourceManager extends Disposable {\r\n directories: string[];\r\n\r\n resourceInfoList: ResourceInfo[];\r\n\r\n loadingManager: LoadingManager;\r\n\r\n isShowEditDialog: boolean = false;\r\n\r\n currentEditText: string = \"\";\r\n\r\n filterExtensions: string[] = [];\r\n\r\n baseURL: string = \"\";\r\n\r\n get selectResourceList() {\r\n return this.resourceInfoList.filter((item) => item.isSelected);\r\n }\r\n\r\n get loading() {\r\n return this.loadingManager.loading;\r\n }\r\n\r\n constructor(options: ResourceManagerOptions) {\r\n super();\r\n\r\n this.directories = [];\r\n\r\n this.resourceInfoList = [];\r\n\r\n this.loadingManager = new LoadingManager();\r\n\r\n this.filterExtensions = options.extensions ?? [];\r\n this.baseURL = options.baseURL;\r\n }\r\n\r\n async loadResourceInfoList(\r\n toPath: string = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\"\r\n ) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post<R<ResourceInfo[]>>(\r\n `${this.baseURL}/resource/resource-list`,\r\n {\r\n directoryPath: toPath,\r\n extensions: this.filterExtensions,\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.resourceInfoList = [];\r\n return;\r\n }\r\n\r\n this.resourceInfoList = response.data.data.map((item) => ({\r\n ...item,\r\n isSelected: false,\r\n }));\r\n\r\n var directorySegments = toPath.startsWith(\"/\")\r\n ? toPath.slice(1).split(\"/\")\r\n : toPath.split(\"/\");\r\n\r\n this.directories = directorySegments.filter(Boolean);\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async deleteSelectResourceList() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/delete-resource-list`,\r\n { paths: this.selectResourceList.map((item) => item.path) }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.loadResourceInfoList();\r\n return;\r\n }\r\n\r\n await this.loadResourceInfoList();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async getExistPathList(pathList: string[]) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const directoryPath = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\";\r\n\r\n return await httpRequest.post(\r\n `${this.baseURL}/resource/get-exist-path-list`,\r\n { pathList, directoryPath }\r\n );\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n\r\n throw e;\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async uploadResourceList(files: File[]) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var directory = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\";\r\n\r\n var formData = new FormData();\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append(files[i].name, files[i]);\r\n }\r\n formData.append(\"directory\", directory);\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/update-resource-list`,\r\n formData\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.loadResourceInfoList();\r\n return;\r\n }\r\n\r\n await this.loadResourceInfoList();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async downloadSelectResource() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/get-download-resource-url`,\r\n { filePath: this.selectResourceList[0].path }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n var aElement = document.createElement(\"a\");\r\n aElement.href = response.data.data;\r\n aElement.target = \"_blank\";\r\n\r\n aElement.click();\r\n }\r\n\r\n async editSelectFile() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var resourceInfo = this.selectResourceList[0];\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/get-text`,\r\n {\r\n path: resourceInfo.path,\r\n }\r\n );\r\n\r\n this.isShowEditDialog = true;\r\n this.currentEditText = response.data.data;\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async saveEditFile() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var resourceInfo = this.selectResourceList[0];\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/set-text`,\r\n {\r\n path: resourceInfo.path,\r\n content: this.currentEditText,\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n this.isShowEditDialog = false;\r\n this.currentEditText = \"\";\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n clearAllSelect() {\r\n for (var resourceInfo of this.selectResourceList) {\r\n resourceInfo.isSelected = false;\r\n }\r\n }\r\n\r\n handleSelectClick(event: MouseEvent, item: ResourceInfo) {\r\n if (!event.ctrlKey) {\r\n this.clearAllSelect();\r\n\r\n item.isSelected = true;\r\n return;\r\n }\r\n\r\n item.isSelected = !item.isSelected;\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import { defineComponent,
|
|
1
|
+
import { defineComponent, computed, unref, provide, reactive, onMounted, watch, createVNode, Suspense, Fragment } from "vue";
|
|
2
2
|
import { dataFilterFormProps } from "./data-filter-form-options.js";
|
|
3
3
|
import { MKDataFilterFormItem } from "./data-filter-form-item/index.js";
|
|
4
4
|
import { DATA_FILTER_CONTEXT } from "./token.js";
|
|
5
|
-
import { useRouter } from "vue-router";
|
|
6
|
-
import { DATA_TABLE_CONTEXT_KEY } from "../data-table/token.js";
|
|
7
5
|
const DataFilterForm = /* @__PURE__ */ defineComponent({
|
|
8
6
|
name: "MKDataFilterForm",
|
|
9
7
|
props: dataFilterFormProps,
|
|
10
8
|
setup(props, {
|
|
11
9
|
slots
|
|
12
10
|
}) {
|
|
13
|
-
useRouter();
|
|
14
|
-
inject(DATA_TABLE_CONTEXT_KEY);
|
|
15
11
|
const dataTable = computed(() => props.dataTable);
|
|
16
12
|
const dataFilter = computed(() => unref(dataTable).dataFilter);
|
|
17
13
|
const columns = computed(() => unref(dataFilter).getColumns().filter((column) => column.visible));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-filter-form.js","sources":["../../../../../src/components/data-model/data-filter-form/data-filter-form.tsx"],"sourcesContent":["import {\r\n Fragment,\r\n Suspense,\r\n computed,\r\n defineComponent,\r\n
|
|
1
|
+
{"version":3,"file":"data-filter-form.js","sources":["../../../../../src/components/data-model/data-filter-form/data-filter-form.tsx"],"sourcesContent":["import {\r\n Fragment,\r\n Suspense,\r\n computed,\r\n defineComponent,\r\n inject,\r\n provide,\r\n reactive,\r\n unref,\r\n watch,\r\n onMounted,\r\n} from \"vue\";\r\nimport { dataFilterFormProps } from \"./data-filter-form-options\";\r\nimport { MKDataFilterFormItem } from \"./data-filter-form-item\";\r\nimport { DATA_FILTER_CONTEXT } from \"./token\";\r\n\r\nexport default defineComponent({\r\n name: \"MKDataFilterForm\",\r\n props: dataFilterFormProps,\r\n setup(props, { slots }) {\r\n const dataTable = computed(() => props.dataTable);\r\n const dataFilter = computed(() => unref(dataTable).dataFilter);\r\n\r\n const columns = computed(() =>\r\n unref(dataFilter)\r\n .getColumns()\r\n .filter((column) => column.visible)\r\n );\r\n\r\n const labelWidth = computed(() => {\r\n const maxWordCount = Math.max(\r\n ...unref(columns).map((column) => column.label.length)\r\n );\r\n\r\n return maxWordCount * 14 + 10;\r\n });\r\n\r\n provide(DATA_FILTER_CONTEXT, reactive({ dataFilter, labelWidth }));\r\n\r\n let resolve: Function | null = null;\r\n const suspenseResolvePromise = new Promise((_resolve) => {\r\n resolve = _resolve;\r\n });\r\n\r\n const handleResolve = () => {\r\n resolve?.();\r\n };\r\n\r\n onMounted(() => {\r\n watch(\r\n dataTable,\r\n async (dataTable, _, onCleanup) => {\r\n await suspenseResolvePromise;\r\n\r\n const disposable = dataTable.afterInitdEvent.on(() => {\r\n dataTable.dataFilter.setReady();\r\n });\r\n\r\n onCleanup(() => {\r\n disposable.dispose();\r\n });\r\n },\r\n { immediate: true }\r\n );\r\n });\r\n\r\n return () => {\r\n if (!unref(columns).length) {\r\n return null;\r\n }\r\n\r\n let children: any = slots.default?.();\r\n\r\n if (!children) {\r\n children = unref(columns).map((column) => {\r\n if (!column.name) {\r\n return null;\r\n }\r\n\r\n return (\r\n slots[`col-${column.name}`]?.() || (\r\n <MKDataFilterFormItem\r\n name={column.name}\r\n v-slots={{ default: slots[`col-${column.name}-content`] }}\r\n />\r\n )\r\n );\r\n });\r\n }\r\n\r\n if (!children) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div class=\"mk-data-filter-form\">\r\n <Suspense onResolve={handleResolve}>\r\n <Fragment>{children}</Fragment>\r\n </Suspense>\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["defineComponent","name","props","dataFilterFormProps","setup","slots","dataTable","computed","dataFilter","unref","columns","getColumns","filter","column","visible","labelWidth","maxWordCount","Math","max","map","label","length","provide","DATA_FILTER_CONTEXT","reactive","resolve","suspenseResolvePromise","Promise","_resolve","handleResolve","onMounted","watch","_","onCleanup","disposable","afterInitdEvent","on","setReady","dispose","immediate","children","default","_createVNode","MKDataFilterFormItem","Suspense","_Fragment"],"mappings":";;;;AAgBA,MAAeA,iDAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,MAAMF,OAAO;AAAA,IAAEG;AAAAA,EAAM,GAAG;AACtB,UAAMC,YAAYC,SAAS,MAAML,MAAMI,SAAS;AAChD,UAAME,aAAaD,SAAS,MAAME,MAAMH,SAAS,EAAEE,UAAU;AAE7D,UAAME,UAAUH,SAAS,MACvBE,MAAMD,UAAU,EACbG,WAAY,EACZC,OAAQC,YAAWA,OAAOC,OAAO,CACtC;AAEA,UAAMC,aAAaR,SAAS,MAAM;AAChC,YAAMS,eAAeC,KAAKC,IACxB,GAAGT,MAAMC,OAAO,EAAES,IAAKN,YAAWA,OAAOO,MAAMC,MAAM,CACvD;AAEA,aAAOL,eAAe,KAAK;AAAA,IAC7B,CAAC;AAEDM,YAAQC,qBAAqBC,SAAS;AAAA,MAAEhB;AAAAA,MAAYO;AAAAA,IAAY,CAAA,CAAC;AAEjE,QAAIU,UAA2B;AAC/B,UAAMC,yBAAyB,IAAIC,QAASC,cAAa;AACvDH,gBAAUG;AAAAA,IACZ,CAAC;AAED,UAAMC,gBAAgBA,MAAM;AAC1BJ;AAAAA;AAGFK,cAAU,MAAM;AACdC,YACEzB,WACA,OAAOA,YAAW0B,GAAGC,cAAc;AACjC,cAAMP;AAEN,cAAMQ,aAAa5B,WAAU6B,gBAAgBC,GAAG,MAAM;AACpD9B,UAAAA,WAAUE,WAAW6B;QACvB,CAAC;AAEDJ,kBAAU,MAAM;AACdC,qBAAWI,QAAO;AAAA,QACpB,CAAC;AAAA,MACH,GACA;AAAA,QAAEC,WAAW;AAAA,MAAK,CACpB;AAAA,IACF,CAAC;AAED,WAAO,MAAM;;AACX,UAAI,CAAC9B,MAAMC,OAAO,EAAEW,QAAQ;AAC1B,eAAO;AAAA,MACT;AAEA,UAAImB,YAAgBnC,WAAMoC,YAANpC;AAEpB,UAAI,CAACmC,UAAU;AACbA,mBAAW/B,MAAMC,OAAO,EAAES,IAAKN,YAAW;;AACxC,cAAI,CAACA,OAAOZ,MAAM;AAChB,mBAAO;AAAA,UACT;AAEA,mBACEI,MAAAA,MAAM,OAAOQ,OAAOZ,IAAI,QAAxBI,gBAAAA,IAAAA,gBAA+BqC,YAAAC,sBAAA;AAAA,YAAA,QAErB9B,OAAOZ;AAAAA,aACJ;AAAA,YAAEwC,SAASpC,MAAM,OAAOQ,OAAOZ,IAAI,UAAU;AAAA,UAAE,CAAC;AAAA,QAIjE,CAAC;AAAA,MACH;AAEA,UAAI,CAACuC,UAAU;AACb,eAAO;AAAA,MACT;AAEA,aAAAE,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,SAAAA,CAAAA,YAAAE,UAAA;AAAA,QAAA,aAEyBf;AAAAA,MAAa,GAAA;AAAA,QAAAY,SAAAA,MAAA,CAAAC,YAAAG,iBACrBL,QAAQ,CAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA;AAAA;EAK7B;AACF,CAAC;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, useSlots, inject, computed, ref, unref, reactive, watch, provide, toRaw, createVNode, mergeProps, isVNode } from "vue";
|
|
2
|
-
import { ElFormItem } from "element-plus";
|
|
2
|
+
import { useFormDisabled, ElFormItem } from "element-plus";
|
|
3
3
|
import { FormColumn } from "@maketribe/dm";
|
|
4
4
|
import { useFormColumnComponent } from "../../../../composables/use-column-component.js";
|
|
5
5
|
import "../../../basic/config-provider/index.js";
|
|
@@ -53,7 +53,7 @@ const DataFormItem = /* @__PURE__ */ defineComponent({
|
|
|
53
53
|
component,
|
|
54
54
|
componentProps
|
|
55
55
|
} = useFormColumnComponent(formColumn, dataForm);
|
|
56
|
-
const disabled = computed(() => unref(formColumn).disabled);
|
|
56
|
+
const disabled = useFormDisabled(computed(() => unref(formColumn).disabled));
|
|
57
57
|
const value = computed({
|
|
58
58
|
get: () => {
|
|
59
59
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-form-item.js","sources":["../../../../../../src/components/data-model/data-form/data-form-item/data-form-item.tsx"],"sourcesContent":["import { ElFormItem } from \"element-plus\";\r\nimport {\r\n Ref,\r\n computed,\r\n defineComponent,\r\n inject,\r\n provide,\r\n reactive,\r\n ref,\r\n toRaw,\r\n unref,\r\n useSlots,\r\n watch,\r\n} from \"vue\";\r\nimport { FormColumn } from \"@maketribe/dm\";\r\n\r\nimport { useFormColumnComponent } from \"../../../../composables\";\r\nimport {\r\n DATA_FORM_CONTEXT_KEY,\r\n DATA_FORM_ITEM_CONTEXT_KEY,\r\n DataFormItemContext,\r\n} from \"../token\";\r\nimport { dataFormItemProps } from \"./data-form-item-options\";\r\n\r\nexport default defineComponent({\r\n name: \"MKDataFormItem\",\r\n props: dataFormItemProps,\r\n setup(props) {\r\n const slots = useSlots();\r\n\r\n const dataFormContext = inject(DATA_FORM_CONTEXT_KEY);\r\n\r\n const dataForm = computed(() => dataFormContext?.dataForm ?? null);\r\n\r\n let _formColumn: FormColumn | null = null;\r\n\r\n const existFormColumn = ref(\r\n unref(dataForm)!.getColumn(props.name!)\r\n ) as Ref<FormColumn | null>;\r\n\r\n const formColumn = computed(() => {\r\n const existingColumn = unref(existFormColumn);\r\n\r\n if (existingColumn) {\r\n return existingColumn;\r\n }\r\n\r\n if (!_formColumn) {\r\n _formColumn = reactive(\r\n new FormColumn({\r\n required: props.required,\r\n name: props.name!,\r\n label: props.label!,\r\n })\r\n ) as FormColumn;\r\n }\r\n\r\n return _formColumn!;\r\n });\r\n\r\n watch(\r\n formColumn,\r\n (formColumn, _, onCleanup) => {\r\n const existFormColumn = unref(dataForm)!.getColumn(formColumn.name);\r\n\r\n if (!existFormColumn && _formColumn) {\r\n unref(dataForm)!.addColumn(_formColumn);\r\n }\r\n\r\n onCleanup(() => {\r\n if (_formColumn) {\r\n unref(dataForm)!.removeColumn(_formColumn);\r\n }\r\n });\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const { component, componentProps } = useFormColumnComponent(\r\n formColumn,\r\n dataForm\r\n );\r\n\r\n const disabled = computed(() => unref(formColumn).disabled);\r\n\r\n const value = computed({\r\n get: () => unref(formColumn)?.getValue(),\r\n set: (v) => {\r\n unref(formColumn).setValue(v);\r\n },\r\n });\r\n\r\n const label = computed(() =>\r\n typeof props.label !== \"string\" ? unref(formColumn).label : props.label\r\n );\r\n\r\n provide(\r\n DATA_FORM_ITEM_CONTEXT_KEY,\r\n reactive({ column: formColumn }) as DataFormItemContext\r\n );\r\n\r\n return () => {\r\n let _formColumn = unref(formColumn);\r\n\r\n let _component = unref(component);\r\n\r\n let children: any =\r\n slots.default?.({\r\n data: unref(dataForm)!.data,\r\n column: _formColumn,\r\n dataForm: unref(dataForm),\r\n }) || null;\r\n\r\n if (!children && _component) {\r\n const FormColumnComponent = toRaw(_component);\r\n\r\n children = (\r\n <FormColumnComponent\r\n {...unref(componentProps)}\r\n column={_formColumn}\r\n modelValue={value.value}\r\n disabled={unref(disabled)}\r\n onUpdate:modelValue={(v: any) => (value.value = v)}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <ElFormItem\r\n prop={_formColumn.name}\r\n label={unref(label)}\r\n required={_formColumn.required}\r\n labelWidth={props.labelWidth}\r\n >\r\n {children}\r\n </ElFormItem>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","dataFormItemProps","setup","slots","useSlots","dataFormContext","inject","DATA_FORM_CONTEXT_KEY","dataForm","computed","_formColumn","existFormColumn","ref","unref","getColumn","formColumn","existingColumn","reactive","FormColumn","required","label","watch","_","onCleanup","addColumn","removeColumn","immediate","component","componentProps","useFormColumnComponent","disabled","value","get","getValue","set","v","setValue","provide","DATA_FORM_ITEM_CONTEXT_KEY","column","_component","children","default","data","FormColumnComponent","toRaw","_createVNode","_mergeProps","ElFormItem","labelWidth"],"mappings":";;;;;;;;;;;;AAsB6D,SAAAA,QAAAC,GAAA;AAAA,SAAA,OAAAA,MAAA,cAAAC,OAAAC,UAAAC,SAAAC,KAAAJ,CAAA,MAAAK,qBAAAA,CAAAA,QAAAL,CAAA;AAAA;AAE7D,MAAeM,+CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,MAAMF,OAAO;AACX,UAAMG,QAAQC;AAEd,UAAMC,kBAAkBC,OAAOC,qBAAqB;AAEpD,UAAMC,WAAWC,SAAS,OAAMJ,mDAAiBG,aAAY,IAAI;AAEjE,QAAIE,cAAiC;AAErC,UAAMC,kBAAkBC,IACtBC,MAAML,QAAQ,EAAGM,UAAUd,MAAMD,IAAK,CACxC;AAEA,UAAMgB,aAAaN,SAAS,MAAM;AAChC,YAAMO,iBAAiBH,MAAMF,eAAe;AAE5C,UAAIK,gBAAgB;AAClB,eAAOA;AAAAA,MACT;AAEA,UAAI,CAACN,aAAa;AAChBA,sBAAcO,SACZ,IAAIC,WAAW;AAAA,UACbC,UAAUnB,MAAMmB;AAAAA,UAChBpB,MAAMC,MAAMD;AAAAA,UACZqB,OAAOpB,MAAMoB;AAAAA,QACd,CAAA,CACH;AAAA,MACF;AAEA,aAAOV;AAAAA,IACT,CAAC;AAEDW,UACEN,YACA,CAACA,aAAYO,GAAGC,cAAc;AAC5B,YAAMZ,mBAAkBE,MAAML,QAAQ,EAAGM,UAAUC,YAAWhB,IAAI;AAElE,UAAI,CAACY,oBAAmBD,aAAa;AACnCG,cAAML,QAAQ,EAAGgB,UAAUd,WAAW;AAAA,MACxC;AAEAa,gBAAU,MAAM;AACd,YAAIb,aAAa;AACfG,gBAAML,QAAQ,EAAGiB,aAAaf,WAAW;AAAA,QAC3C;AAAA,MACF,CAAC;AAAA,IACH,GACA;AAAA,MAAEgB,WAAW;AAAA,IAAK,CACpB;AAEA,UAAM;AAAA,MAAEC;AAAAA,MAAWC;AAAAA,IAAe,IAAIC,uBACpCd,YACAP,QACF;AAEA,UAAMsB,
|
|
1
|
+
{"version":3,"file":"data-form-item.js","sources":["../../../../../../src/components/data-model/data-form/data-form-item/data-form-item.tsx"],"sourcesContent":["import { ElFormItem, useFormDisabled } from \"element-plus\";\r\nimport {\r\n Ref,\r\n computed,\r\n defineComponent,\r\n inject,\r\n provide,\r\n reactive,\r\n ref,\r\n toRaw,\r\n unref,\r\n useSlots,\r\n watch,\r\n} from \"vue\";\r\nimport { FormColumn } from \"@maketribe/dm\";\r\n\r\nimport { useFormColumnComponent } from \"../../../../composables\";\r\nimport {\r\n DATA_FORM_CONTEXT_KEY,\r\n DATA_FORM_ITEM_CONTEXT_KEY,\r\n DataFormItemContext,\r\n} from \"../token\";\r\nimport { dataFormItemProps } from \"./data-form-item-options\";\r\n\r\nexport default defineComponent({\r\n name: \"MKDataFormItem\",\r\n props: dataFormItemProps,\r\n setup(props) {\r\n const slots = useSlots();\r\n\r\n const dataFormContext = inject(DATA_FORM_CONTEXT_KEY);\r\n\r\n const dataForm = computed(() => dataFormContext?.dataForm ?? null);\r\n\r\n let _formColumn: FormColumn | null = null;\r\n\r\n const existFormColumn = ref(\r\n unref(dataForm)!.getColumn(props.name!)\r\n ) as Ref<FormColumn | null>;\r\n\r\n const formColumn = computed(() => {\r\n const existingColumn = unref(existFormColumn);\r\n\r\n if (existingColumn) {\r\n return existingColumn;\r\n }\r\n\r\n if (!_formColumn) {\r\n _formColumn = reactive(\r\n new FormColumn({\r\n required: props.required,\r\n name: props.name!,\r\n label: props.label!,\r\n })\r\n ) as FormColumn;\r\n }\r\n\r\n return _formColumn!;\r\n });\r\n\r\n watch(\r\n formColumn,\r\n (formColumn, _, onCleanup) => {\r\n const existFormColumn = unref(dataForm)!.getColumn(formColumn.name);\r\n\r\n if (!existFormColumn && _formColumn) {\r\n unref(dataForm)!.addColumn(_formColumn);\r\n }\r\n\r\n onCleanup(() => {\r\n if (_formColumn) {\r\n unref(dataForm)!.removeColumn(_formColumn);\r\n }\r\n });\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const { component, componentProps } = useFormColumnComponent(\r\n formColumn,\r\n dataForm\r\n );\r\n\r\n const disabled = useFormDisabled(\r\n computed(() => unref(formColumn).disabled)\r\n );\r\n\r\n const value = computed({\r\n get: () => unref(formColumn)?.getValue(),\r\n set: (v) => {\r\n unref(formColumn).setValue(v);\r\n },\r\n });\r\n\r\n const label = computed(() =>\r\n typeof props.label !== \"string\" ? unref(formColumn).label : props.label\r\n );\r\n\r\n provide(\r\n DATA_FORM_ITEM_CONTEXT_KEY,\r\n reactive({ column: formColumn }) as DataFormItemContext\r\n );\r\n\r\n return () => {\r\n let _formColumn = unref(formColumn);\r\n\r\n let _component = unref(component);\r\n\r\n let children: any =\r\n slots.default?.({\r\n data: unref(dataForm)!.data,\r\n column: _formColumn,\r\n dataForm: unref(dataForm),\r\n }) || null;\r\n\r\n if (!children && _component) {\r\n const FormColumnComponent = toRaw(_component);\r\n\r\n children = (\r\n <FormColumnComponent\r\n {...unref(componentProps)}\r\n column={_formColumn}\r\n modelValue={value.value}\r\n disabled={unref(disabled)}\r\n onUpdate:modelValue={(v: any) => (value.value = v)}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <ElFormItem\r\n prop={_formColumn.name}\r\n label={unref(label)}\r\n required={_formColumn.required}\r\n labelWidth={props.labelWidth}\r\n >\r\n {children}\r\n </ElFormItem>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","dataFormItemProps","setup","slots","useSlots","dataFormContext","inject","DATA_FORM_CONTEXT_KEY","dataForm","computed","_formColumn","existFormColumn","ref","unref","getColumn","formColumn","existingColumn","reactive","FormColumn","required","label","watch","_","onCleanup","addColumn","removeColumn","immediate","component","componentProps","useFormColumnComponent","disabled","useFormDisabled","value","get","getValue","set","v","setValue","provide","DATA_FORM_ITEM_CONTEXT_KEY","column","_component","children","default","data","FormColumnComponent","toRaw","_createVNode","_mergeProps","ElFormItem","labelWidth"],"mappings":";;;;;;;;;;;;AAsB6D,SAAAA,QAAAC,GAAA;AAAA,SAAA,OAAAA,MAAA,cAAAC,OAAAC,UAAAC,SAAAC,KAAAJ,CAAA,MAAAK,qBAAAA,CAAAA,QAAAL,CAAA;AAAA;AAE7D,MAAeM,+CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,MAAMF,OAAO;AACX,UAAMG,QAAQC;AAEd,UAAMC,kBAAkBC,OAAOC,qBAAqB;AAEpD,UAAMC,WAAWC,SAAS,OAAMJ,mDAAiBG,aAAY,IAAI;AAEjE,QAAIE,cAAiC;AAErC,UAAMC,kBAAkBC,IACtBC,MAAML,QAAQ,EAAGM,UAAUd,MAAMD,IAAK,CACxC;AAEA,UAAMgB,aAAaN,SAAS,MAAM;AAChC,YAAMO,iBAAiBH,MAAMF,eAAe;AAE5C,UAAIK,gBAAgB;AAClB,eAAOA;AAAAA,MACT;AAEA,UAAI,CAACN,aAAa;AAChBA,sBAAcO,SACZ,IAAIC,WAAW;AAAA,UACbC,UAAUnB,MAAMmB;AAAAA,UAChBpB,MAAMC,MAAMD;AAAAA,UACZqB,OAAOpB,MAAMoB;AAAAA,QACd,CAAA,CACH;AAAA,MACF;AAEA,aAAOV;AAAAA,IACT,CAAC;AAEDW,UACEN,YACA,CAACA,aAAYO,GAAGC,cAAc;AAC5B,YAAMZ,mBAAkBE,MAAML,QAAQ,EAAGM,UAAUC,YAAWhB,IAAI;AAElE,UAAI,CAACY,oBAAmBD,aAAa;AACnCG,cAAML,QAAQ,EAAGgB,UAAUd,WAAW;AAAA,MACxC;AAEAa,gBAAU,MAAM;AACd,YAAIb,aAAa;AACfG,gBAAML,QAAQ,EAAGiB,aAAaf,WAAW;AAAA,QAC3C;AAAA,MACF,CAAC;AAAA,IACH,GACA;AAAA,MAAEgB,WAAW;AAAA,IAAK,CACpB;AAEA,UAAM;AAAA,MAAEC;AAAAA,MAAWC;AAAAA,IAAe,IAAIC,uBACpCd,YACAP,QACF;AAEA,UAAMsB,WAAWC,gBACftB,SAAS,MAAMI,MAAME,UAAU,EAAEe,QAAQ,CAC3C;AAEA,UAAME,QAAQvB,SAAS;AAAA,MACrBwB,KAAKA,MAAMpB;;AAAAA,2BAAME,UAAU,MAAhBF,mBAAmBqB;AAAAA;AAAAA,MAC9BC,KAAMC,OAAM;AACVvB,cAAME,UAAU,EAAEsB,SAASD,CAAC;AAAA,MAC9B;AAAA,IACF,CAAC;AAED,UAAMhB,QAAQX,SAAS,MACrB,OAAOT,MAAMoB,UAAU,WAAWP,MAAME,UAAU,EAAEK,QAAQpB,MAAMoB,KACpE;AAEAkB,YACEC,4BACAtB,SAAS;AAAA,MAAEuB,QAAQzB;AAAAA,IAAY,CAAA,CACjC;AAEA,WAAO,MAAM;;AACX,UAAIL,eAAcG,MAAME,UAAU;AAElC,UAAI0B,aAAa5B,MAAMc,SAAS;AAEhC,UAAIe,aACFvC,WAAMwC,YAANxC,+BAAgB;AAAA,QACdyC,MAAM/B,MAAML,QAAQ,EAAGoC;AAAAA,QACvBJ,QAAQ9B;AAAAA,QACRF,UAAUK,MAAML,QAAQ;AAAA,MACzB,OAAK;AAER,UAAI,CAACkC,YAAYD,YAAY;AAC3B,cAAMI,sBAAsBC,MAAML,UAAU;AAE5CC,mBAAQK,YAAAF,qBAAAG,WAEAnC,MAAMe,cAAc,GAAC;AAAA,UAAA,UACjBlB;AAAAA,UAAW,cACPsB,MAAMA;AAAAA,UAAK,YACbnB,MAAMiB,QAAQ;AAAA,UAAC,uBACHM,OAAYJ,MAAMA,QAAQI;AAAAA,SAEnD,GAAA,IAAA;AAAA,MACH;AAEA,aAAAW,YAAAE,YAAA;AAAA,QAAA,QAEUvC,aAAYX;AAAAA,QAAI,SACfc,MAAMO,KAAK;AAAA,QAAC,YACTV,aAAYS;AAAAA,QAAQ,cAClBnB,MAAMkD;AAAAA,MAAU,GAAA3D,QAE3BmD,QAAQ,IAARA,WAAQ;AAAA,QAAAC,SAAAA,MAAA,CAARD,QAAQ;AAAA,MAAA,CAAA;AAAA;EAIjB;AACF,CAAC;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { defineComponent, inject, computed, unref, createVNode } from "vue";
|
|
2
|
-
import { ElButton } from "element-plus";
|
|
1
|
+
import { defineComponent, ref, inject, computed, unref, watch, createVNode } from "vue";
|
|
2
|
+
import { ElInput, ElButton } from "element-plus";
|
|
3
|
+
import { Search } from "@element-plus/icons-vue";
|
|
3
4
|
import { DATA_TABLE_CONTEXT_KEY } from "../../../token.js";
|
|
4
5
|
import { MKDataFilterPopover } from "../../../../data-filter-popover/index.js";
|
|
5
6
|
import { MKSvgIcon } from "../../../../../basic/svg-icon/index.js";
|
|
@@ -24,15 +25,57 @@ import "../../../../../basic/upload-file/upload-file-options.js";
|
|
|
24
25
|
import "../../../../../basic/doc-editor/index.js";
|
|
25
26
|
import "../../../../../basic/copy-container/index.js";
|
|
26
27
|
import "../../../../../basic/image-cropper/index.js";
|
|
28
|
+
import { debounce } from "lodash-es";
|
|
29
|
+
import { isWhereFilter } from "@maketribe/dm";
|
|
27
30
|
const TableFilter = /* @__PURE__ */ defineComponent({
|
|
28
31
|
name: "MKTableFilter",
|
|
29
32
|
setup() {
|
|
33
|
+
const search = ref("");
|
|
30
34
|
const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);
|
|
31
35
|
const dataTable = computed(() => dataTableContext.dataTable);
|
|
32
36
|
const dataTableInitd = computed(() => {
|
|
33
37
|
var _a;
|
|
34
38
|
return ((_a = unref(dataTable)) == null ? void 0 : _a.initd) ?? false;
|
|
35
39
|
});
|
|
40
|
+
const searchFilterColumns = computed(() => unref(dataTable).dataFilter.getColumns().filter((column) => column.search));
|
|
41
|
+
const searchPlaceholder = computed(() => `通过${unref(searchFilterColumns).map((column) => column.label).join("、")}搜索`);
|
|
42
|
+
watch(dataTable, (dataTable2, _, onCleanup) => {
|
|
43
|
+
onCleanup(() => {
|
|
44
|
+
const dataFilter = dataTable2.dataFilter;
|
|
45
|
+
if (isWhereFilter(dataFilter)) {
|
|
46
|
+
dataFilter.getSearchGroup().clear();
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}, {
|
|
50
|
+
immediate: true
|
|
51
|
+
});
|
|
52
|
+
const handleSearch = () => {
|
|
53
|
+
debounceSearch.cancel();
|
|
54
|
+
const dataFilter = unref(dataTable).dataFilter;
|
|
55
|
+
if (isWhereFilter(dataFilter)) {
|
|
56
|
+
const searchGroup = dataFilter.getSearchGroup();
|
|
57
|
+
searchGroup.clear();
|
|
58
|
+
const searchValue = unref(search);
|
|
59
|
+
for (const searchFilterColumn of unref(searchFilterColumns)) {
|
|
60
|
+
searchGroup.addOrCondition(searchFilterColumn.name, "like", `%${searchValue}%`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
unref(dataTable).load();
|
|
64
|
+
};
|
|
65
|
+
const debounceSearch = debounce(handleSearch, 1e3);
|
|
66
|
+
const handleSearchKeydown = (event) => {
|
|
67
|
+
if (event.key === "Enter") {
|
|
68
|
+
handleSearch();
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const handleSearchFocus = (event) => {
|
|
72
|
+
const target = event.target;
|
|
73
|
+
target.addEventListener("input", debounceSearch);
|
|
74
|
+
};
|
|
75
|
+
const handleSearchBlur = (event) => {
|
|
76
|
+
const target = event.target;
|
|
77
|
+
target.removeEventListener("input", debounceSearch);
|
|
78
|
+
};
|
|
36
79
|
return () => {
|
|
37
80
|
if (!unref(dataTableInitd)) {
|
|
38
81
|
return null;
|
|
@@ -41,7 +84,24 @@ const TableFilter = /* @__PURE__ */ defineComponent({
|
|
|
41
84
|
if (_dataTable.dataFilter.getColumns().length === 0) {
|
|
42
85
|
return null;
|
|
43
86
|
}
|
|
44
|
-
|
|
87
|
+
let searchInputVNode = null;
|
|
88
|
+
if (unref(searchFilterColumns).length) {
|
|
89
|
+
searchInputVNode = createVNode(ElInput, {
|
|
90
|
+
"prefixIcon": Search,
|
|
91
|
+
"class": "mk-table-filter__search",
|
|
92
|
+
"modelValue": unref(search),
|
|
93
|
+
"onUpdate:modelValue": (v) => search.value = v,
|
|
94
|
+
"onKeydown": handleSearchKeydown,
|
|
95
|
+
"placeholder": unref(searchPlaceholder),
|
|
96
|
+
"onFocus": handleSearchFocus,
|
|
97
|
+
"onBlur": handleSearchBlur,
|
|
98
|
+
"onClear": handleSearch,
|
|
99
|
+
"clearable": true
|
|
100
|
+
}, null);
|
|
101
|
+
}
|
|
102
|
+
return createVNode("div", {
|
|
103
|
+
"class": "mk-table-filter"
|
|
104
|
+
}, [searchInputVNode, createVNode(MKDataFilterPopover, {
|
|
45
105
|
"dataTable": _dataTable
|
|
46
106
|
}, {
|
|
47
107
|
default: () => [createVNode(ElButton, null, {
|
|
@@ -49,7 +109,7 @@ const TableFilter = /* @__PURE__ */ defineComponent({
|
|
|
49
109
|
"iconClass": "Filter"
|
|
50
110
|
}, null)]
|
|
51
111
|
})]
|
|
52
|
-
});
|
|
112
|
+
})]);
|
|
53
113
|
};
|
|
54
114
|
}
|
|
55
115
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-filter.js","sources":["../../../../../../../../src/components/data-model/data-table/components/header-components/table-filter/table-filter.tsx"],"sourcesContent":["import { defineComponent, inject, computed, unref, watch, ref } from \"vue\";\r\nimport { ElButton } from \"element-plus\";\r\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../../token\";\r\nimport { MKDataFilterPopover } from \"../../../../data-filter-popover\";\r\nimport { MKSvgIcon } from \"../../../../../basic\";\r\n\r\nexport default defineComponent({\r\n name: \"MKTableFilter\",\r\n setup() {\r\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\r\n\r\n const dataTable = computed(() => dataTableContext!.dataTable);\r\n\r\n const dataTableInitd = computed(() => unref(dataTable)?.initd ?? false);\r\n\r\n return () => {\r\n if (!unref(dataTableInitd)) {\r\n return null;\r\n }\r\n\r\n const _dataTable = unref(dataTable);\r\n\r\n if (_dataTable.dataFilter.getColumns().length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n <MKDataFilterPopover dataTable={_dataTable}>\r\n
|
|
1
|
+
{"version":3,"file":"table-filter.js","sources":["../../../../../../../../src/components/data-model/data-table/components/header-components/table-filter/table-filter.tsx"],"sourcesContent":["import { defineComponent, inject, computed, unref, watch, ref } from \"vue\";\r\nimport { ElButton, ElInput } from \"element-plus\";\r\nimport { Search } from \"@element-plus/icons-vue\";\r\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../../token\";\r\nimport { MKDataFilterPopover } from \"../../../../data-filter-popover\";\r\nimport { MKSvgIcon } from \"../../../../../basic\";\r\nimport { debounce } from \"lodash-es\";\r\nimport { isWhereFilter } from \"@maketribe/dm\";\r\n\r\nexport default defineComponent({\r\n name: \"MKTableFilter\",\r\n setup() {\r\n const search = ref(\"\");\r\n\r\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\r\n\r\n const dataTable = computed(() => dataTableContext!.dataTable);\r\n\r\n const dataTableInitd = computed(() => unref(dataTable)?.initd ?? false);\r\n\r\n const searchFilterColumns = computed(() =>\r\n unref(dataTable)\r\n .dataFilter.getColumns()\r\n .filter((column) => column.search)\r\n );\r\n\r\n const searchPlaceholder = computed(\r\n () =>\r\n `通过${unref(searchFilterColumns)\r\n .map((column) => column.label)\r\n .join(\"、\")}搜索`\r\n );\r\n\r\n watch(\r\n dataTable,\r\n (dataTable, _, onCleanup) => {\r\n onCleanup(() => {\r\n const dataFilter = dataTable.dataFilter;\r\n if (isWhereFilter(dataFilter)) {\r\n dataFilter.getSearchGroup().clear();\r\n }\r\n });\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const handleSearch = () => {\r\n debounceSearch.cancel();\r\n\r\n const dataFilter = unref(dataTable).dataFilter;\r\n if (isWhereFilter(dataFilter)) {\r\n const searchGroup = dataFilter.getSearchGroup();\r\n searchGroup.clear();\r\n\r\n const searchValue = unref(search);\r\n\r\n for (const searchFilterColumn of unref(searchFilterColumns)) {\r\n searchGroup.addOrCondition(\r\n searchFilterColumn.name,\r\n \"like\",\r\n `%${searchValue}%`\r\n );\r\n }\r\n }\r\n\r\n unref(dataTable).load();\r\n };\r\n\r\n const debounceSearch = debounce(handleSearch, 1000);\r\n\r\n const handleSearchKeydown = (event: KeyboardEvent) => {\r\n if (event.key === \"Enter\") {\r\n handleSearch();\r\n }\r\n };\r\n\r\n const handleSearchFocus = (event: FocusEvent) => {\r\n const target = event.target as HTMLInputElement;\r\n\r\n target.addEventListener(\"input\", debounceSearch);\r\n };\r\n\r\n const handleSearchBlur = (event: any) => {\r\n const target = event.target as HTMLInputElement;\r\n\r\n target.removeEventListener(\"input\", debounceSearch);\r\n };\r\n\r\n return () => {\r\n if (!unref(dataTableInitd)) {\r\n return null;\r\n }\r\n\r\n const _dataTable = unref(dataTable);\r\n\r\n if (_dataTable.dataFilter.getColumns().length === 0) {\r\n return null;\r\n }\r\n\r\n let searchInputVNode = null;\r\n\r\n if (unref(searchFilterColumns).length) {\r\n searchInputVNode = (\r\n <ElInput\r\n prefixIcon={Search}\r\n class=\"mk-table-filter__search\"\r\n modelValue={unref(search)}\r\n onUpdate:modelValue={(v) => (search.value = v)}\r\n onKeydown={handleSearchKeydown as any}\r\n placeholder={unref(searchPlaceholder)}\r\n onFocus={handleSearchFocus}\r\n onBlur={handleSearchBlur}\r\n onClear={handleSearch}\r\n clearable\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <div class=\"mk-table-filter\">\r\n {searchInputVNode}\r\n <MKDataFilterPopover dataTable={_dataTable}>\r\n <ElButton>\r\n <MKSvgIcon iconClass=\"Filter\" />\r\n </ElButton>\r\n </MKDataFilterPopover>\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["defineComponent","name","setup","search","ref","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTable","computed","dataTableInitd","unref","initd","searchFilterColumns","dataFilter","getColumns","filter","column","searchPlaceholder","map","label","join","watch","_","onCleanup","isWhereFilter","getSearchGroup","clear","immediate","handleSearch","debounceSearch","cancel","searchGroup","searchValue","searchFilterColumn","addOrCondition","load","debounce","handleSearchKeydown","event","key","handleSearchFocus","target","addEventListener","handleSearchBlur","removeEventListener","_dataTable","length","searchInputVNode","_createVNode","ElInput","Search","v","value","MKDataFilterPopover","default","ElButton","MKSvgIcon"],"mappings":"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"}
|
|
@@ -107,8 +107,10 @@ class DialogerImpl extends SkeletonDialoger {
|
|
|
107
107
|
}
|
|
108
108
|
async dataTableSelectDialog(dataTable) {
|
|
109
109
|
dataTable = reactive(dataTable);
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
dataTable.afterInitdEvent.once(() => {
|
|
111
|
+
const columns = dataTable.getColumns().filter((column) => column.name !== TableActionColumn.actionColumnName);
|
|
112
|
+
dataTable.setColumns(columns);
|
|
113
|
+
});
|
|
112
114
|
return new Promise((resolve) => {
|
|
113
115
|
const handleConfirm = () => {
|
|
114
116
|
resolve({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogerImpl.js","sources":["../../../src/message-impl/DialogerImpl.tsx"],"sourcesContent":["import {\r\n DataForm,\r\n DataFormDialogOptions,\r\n DataTable,\r\n DataTableSelectDialogResult,\r\n DialogInstance,\r\n IDialogMessage,\r\n IDialogRenderOptions,\r\n Messager,\r\n SkeletonDialoger,\r\n TableActionColumn,\r\n} from \"@maketribe/dm\";\r\nimport { Event } from \"@maketribe/utils\";\r\nimport { ElButton, ElDrawer, ElMessageBox, ElScrollbar } from \"element-plus\";\r\nimport { isFunction } from \"lodash-es\";\r\nimport { MKDataForm, MKDataTable, MKForm } from \"../components\";\r\nimport { Fragment, reactive } from \"vue\";\r\nimport { I18n } from \"@maketribe/locale\";\r\n\r\nlet uid = 0;\r\n\r\nexport class DialogerImpl extends SkeletonDialoger {\r\n dialogInstanceCreateEvent: Event<DialogInstance> = new Event();\r\n\r\n async prompt(options: IDialogMessage): Promise<string> {\r\n const promptResult = await ElMessageBox.prompt(\r\n options.message,\r\n options.title,\r\n options\r\n );\r\n\r\n return promptResult.value;\r\n }\r\n\r\n async confirm(options: IDialogMessage): Promise<boolean> {\r\n try {\r\n await ElMessageBox.confirm(options.message, options.title, options);\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n async alert(options: IDialogMessage): Promise<void> {\r\n await ElMessageBox.alert(options.message, options.title, options);\r\n }\r\n\r\n customRender(options: IDialogRenderOptions): DialogInstance {\r\n let visible = true;\r\n\r\n const dialogInstance: DialogInstance = {\r\n class: \"\",\r\n ...options,\r\n id: uid++,\r\n get visible() {\r\n return visible;\r\n },\r\n set visible(v) {\r\n visible = v;\r\n dialogInstance.visibleChangeEvent.emit(visible);\r\n },\r\n visibleChangeEvent: new Event(),\r\n destroyEvent: new Event(),\r\n destroy: () => {\r\n dialogInstance.visible = false;\r\n dialogInstance.destroyEvent.emit();\r\n },\r\n };\r\n this.dialogInstanceCreateEvent.emit(dialogInstance);\r\n\r\n return dialogInstance;\r\n }\r\n\r\n async custom(options: IDialogRenderOptions): Promise<boolean> {\r\n return new Promise<boolean>((resolve) => {\r\n const dialogInstance = this.customRender({\r\n ...options,\r\n onConfirm: async () => {\r\n if (\r\n isFunction(options.onConfirm)\r\n ? (await options.onConfirm()) === false\r\n : false\r\n ) {\r\n return false;\r\n }\r\n\r\n dialogInstance.destroy();\r\n\r\n resolve(true);\r\n },\r\n onCancel: async () => {\r\n if (\r\n isFunction(options.onCancel)\r\n ? (await options.onCancel()) === false\r\n : false\r\n ) {\r\n return false;\r\n }\r\n\r\n dialogInstance.destroy();\r\n\r\n resolve(false);\r\n },\r\n });\r\n });\r\n }\r\n\r\n async dataTableSelectDialog(\r\n dataTable: DataTable\r\n ): Promise<DataTableSelectDialogResult> {\r\n dataTable = reactive(dataTable) as DataTable;\r\n\r\n // 过滤掉操作列\r\n const columns = dataTable\r\n .getColumns()\r\n .filter((column) => column.name !== TableActionColumn.actionColumnName);\r\n dataTable.setColumns(columns);\r\n\r\n return new Promise((resolve) => {\r\n const handleConfirm = () => {\r\n resolve({ isConfirm: true, selections: dataTable.getSelection() });\r\n\r\n dataTable.setList([]);\r\n dataTable.setSelection([]);\r\n\r\n dialogInstance.destroy();\r\n };\r\n\r\n const handleCancel = () => {\r\n resolve({ isConfirm: false, selections: [] });\r\n\r\n dialogInstance.destroy();\r\n };\r\n\r\n const dialogInstance = this.customRender({\r\n class: \"mk-data-table-select-dialog\",\r\n width: \"80%\",\r\n body: () => {\r\n return (\r\n <div class=\"mk-data-table-select-dialog__main\">\r\n <MKDataTable dataTable={dataTable} selection />\r\n </div>\r\n );\r\n },\r\n footer: () => {\r\n return (\r\n <Fragment>\r\n <ElButton\r\n type=\"primary\"\r\n onClick={handleConfirm}\r\n disabled={dataTable.getSelection().length === 0}\r\n >\r\n 确定\r\n </ElButton>\r\n <ElButton onClick={handleCancel}>取消</ElButton>\r\n </Fragment>\r\n );\r\n },\r\n });\r\n });\r\n }\r\n\r\n async dataFormDialog(\r\n dataFormOptions: DataFormDialogOptions\r\n ): Promise<DialogInstance> {\r\n return new Promise((resolve) => {\r\n const dataForm = reactive(dataFormOptions.dataForm) as DataForm;\r\n\r\n let title = \"\";\r\n\r\n if (dataFormOptions.customDataFormStatus !== true) {\r\n if (dataFormOptions.recId) {\r\n dataForm.editRecord(dataFormOptions.recId);\r\n } else {\r\n dataForm.addRecord();\r\n }\r\n\r\n title = dataFormOptions.recId ? \"编辑\" : \"新增\";\r\n }\r\n\r\n const dialogInstance = this.customRender({\r\n title: dataFormOptions.title ?? title,\r\n onClose: () => {\r\n dataForm.cancel();\r\n\r\n dialogInstance.destroy();\r\n },\r\n body: () => {\r\n return (\r\n <ElScrollbar max-height=\"600px\">\r\n <MKDataForm dataForm={dataForm}>\r\n <MKForm dataForm={dataForm} />\r\n </MKDataForm>\r\n </ElScrollbar>\r\n );\r\n },\r\n\r\n footer: () => {\r\n return (\r\n <Fragment>\r\n <ElButton\r\n type=\"primary\"\r\n disabled={!dataForm.isChanged}\r\n loading={!dataForm.allowSubmit}\r\n onClick={async () => {\r\n if (!(await dataForm.validate())) {\r\n return;\r\n }\r\n\r\n if (await dataForm.simpleSubmit()) {\r\n dialogInstance.destroy();\r\n }\r\n }}\r\n >\r\n {I18n.instance.translate(\"mk.dataForm.saveButton\")}\r\n </ElButton>\r\n <ElButton\r\n onClick={() => {\r\n dataForm.cancel();\r\n\r\n dialogInstance.destroy();\r\n }}\r\n >\r\n {I18n.instance.translate(\"mk.dataForm.cancelButton\")}\r\n </ElButton>\r\n </Fragment>\r\n );\r\n },\r\n });\r\n\r\n resolve(dialogInstance);\r\n });\r\n }\r\n}\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","uid","DialogerImpl","SkeletonDialoger","dialogInstanceCreateEvent","Event","prompt","options","promptResult","ElMessageBox","message","title","value","confirm","e","alert","customRender","visible","dialogInstance","class","id","v","visibleChangeEvent","emit","destroyEvent","destroy","custom","Promise","resolve","onConfirm","isFunction","onCancel","dataTableSelectDialog","dataTable","reactive","columns","getColumns","filter","column","name","TableActionColumn","actionColumnName","setColumns","handleConfirm","isConfirm","selections","getSelection","setList","setSelection","handleCancel","width","body","_createVNode","MKDataTable","footer","_Fragment","ElButton","length","default","_createTextVNode","dataFormDialog","dataFormOptions","dataForm","customDataFormStatus","recId","editRecord","addRecord","onClose","cancel","ElScrollbar","MKDataForm","MKForm","_slot","_slot2","isChanged","allowSubmit","validate","simpleSubmit","I18n","instance","translate","onClick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DialogerImpl.js","sources":["../../../src/message-impl/DialogerImpl.tsx"],"sourcesContent":["import {\r\n DataForm,\r\n DataFormDialogOptions,\r\n DataTable,\r\n DataTableSelectDialogResult,\r\n DialogInstance,\r\n IDialogMessage,\r\n IDialogRenderOptions,\r\n Messager,\r\n SkeletonDialoger,\r\n TableActionColumn,\r\n} from \"@maketribe/dm\";\r\nimport { Event } from \"@maketribe/utils\";\r\nimport { ElButton, ElDrawer, ElMessageBox, ElScrollbar } from \"element-plus\";\r\nimport { isFunction } from \"lodash-es\";\r\nimport { MKDataForm, MKDataTable, MKForm } from \"../components\";\r\nimport { Fragment, reactive } from \"vue\";\r\nimport { I18n } from \"@maketribe/locale\";\r\n\r\nlet uid = 0;\r\n\r\nexport class DialogerImpl extends SkeletonDialoger {\r\n dialogInstanceCreateEvent: Event<DialogInstance> = new Event();\r\n\r\n async prompt(options: IDialogMessage): Promise<string> {\r\n const promptResult = await ElMessageBox.prompt(\r\n options.message,\r\n options.title,\r\n options\r\n );\r\n\r\n return promptResult.value;\r\n }\r\n\r\n async confirm(options: IDialogMessage): Promise<boolean> {\r\n try {\r\n await ElMessageBox.confirm(options.message, options.title, options);\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n async alert(options: IDialogMessage): Promise<void> {\r\n await ElMessageBox.alert(options.message, options.title, options);\r\n }\r\n\r\n customRender(options: IDialogRenderOptions): DialogInstance {\r\n let visible = true;\r\n\r\n const dialogInstance: DialogInstance = {\r\n class: \"\",\r\n ...options,\r\n id: uid++,\r\n get visible() {\r\n return visible;\r\n },\r\n set visible(v) {\r\n visible = v;\r\n dialogInstance.visibleChangeEvent.emit(visible);\r\n },\r\n visibleChangeEvent: new Event(),\r\n destroyEvent: new Event(),\r\n destroy: () => {\r\n dialogInstance.visible = false;\r\n dialogInstance.destroyEvent.emit();\r\n },\r\n };\r\n this.dialogInstanceCreateEvent.emit(dialogInstance);\r\n\r\n return dialogInstance;\r\n }\r\n\r\n async custom(options: IDialogRenderOptions): Promise<boolean> {\r\n return new Promise<boolean>((resolve) => {\r\n const dialogInstance = this.customRender({\r\n ...options,\r\n onConfirm: async () => {\r\n if (\r\n isFunction(options.onConfirm)\r\n ? (await options.onConfirm()) === false\r\n : false\r\n ) {\r\n return false;\r\n }\r\n\r\n dialogInstance.destroy();\r\n\r\n resolve(true);\r\n },\r\n onCancel: async () => {\r\n if (\r\n isFunction(options.onCancel)\r\n ? (await options.onCancel()) === false\r\n : false\r\n ) {\r\n return false;\r\n }\r\n\r\n dialogInstance.destroy();\r\n\r\n resolve(false);\r\n },\r\n });\r\n });\r\n }\r\n\r\n async dataTableSelectDialog(\r\n dataTable: DataTable\r\n ): Promise<DataTableSelectDialogResult> {\r\n dataTable = reactive(dataTable) as DataTable;\r\n\r\n dataTable.afterInitdEvent.once(() => {\r\n // 过滤掉操作列\r\n const columns = dataTable\r\n .getColumns()\r\n .filter((column) => column.name !== TableActionColumn.actionColumnName);\r\n dataTable.setColumns(columns);\r\n });\r\n\r\n return new Promise((resolve) => {\r\n const handleConfirm = () => {\r\n resolve({ isConfirm: true, selections: dataTable.getSelection() });\r\n\r\n dataTable.setList([]);\r\n dataTable.setSelection([]);\r\n\r\n dialogInstance.destroy();\r\n };\r\n\r\n const handleCancel = () => {\r\n resolve({ isConfirm: false, selections: [] });\r\n\r\n dialogInstance.destroy();\r\n };\r\n\r\n const dialogInstance = this.customRender({\r\n class: \"mk-data-table-select-dialog\",\r\n width: \"80%\",\r\n body: () => {\r\n return (\r\n <div class=\"mk-data-table-select-dialog__main\">\r\n <MKDataTable dataTable={dataTable} selection />\r\n </div>\r\n );\r\n },\r\n footer: () => {\r\n return (\r\n <Fragment>\r\n <ElButton\r\n type=\"primary\"\r\n onClick={handleConfirm}\r\n disabled={dataTable.getSelection().length === 0}\r\n >\r\n 确定\r\n </ElButton>\r\n <ElButton onClick={handleCancel}>取消</ElButton>\r\n </Fragment>\r\n );\r\n },\r\n });\r\n });\r\n }\r\n\r\n async dataFormDialog(\r\n dataFormOptions: DataFormDialogOptions\r\n ): Promise<DialogInstance> {\r\n return new Promise((resolve) => {\r\n const dataForm = reactive(dataFormOptions.dataForm) as DataForm;\r\n\r\n let title = \"\";\r\n\r\n if (dataFormOptions.customDataFormStatus !== true) {\r\n if (dataFormOptions.recId) {\r\n dataForm.editRecord(dataFormOptions.recId);\r\n } else {\r\n dataForm.addRecord();\r\n }\r\n\r\n title = dataFormOptions.recId ? \"编辑\" : \"新增\";\r\n }\r\n\r\n const dialogInstance = this.customRender({\r\n title: dataFormOptions.title ?? title,\r\n onClose: () => {\r\n dataForm.cancel();\r\n\r\n dialogInstance.destroy();\r\n },\r\n body: () => {\r\n return (\r\n <ElScrollbar max-height=\"600px\">\r\n <MKDataForm dataForm={dataForm}>\r\n <MKForm dataForm={dataForm} />\r\n </MKDataForm>\r\n </ElScrollbar>\r\n );\r\n },\r\n\r\n footer: () => {\r\n return (\r\n <Fragment>\r\n <ElButton\r\n type=\"primary\"\r\n disabled={!dataForm.isChanged}\r\n loading={!dataForm.allowSubmit}\r\n onClick={async () => {\r\n if (!(await dataForm.validate())) {\r\n return;\r\n }\r\n\r\n if (await dataForm.simpleSubmit()) {\r\n dialogInstance.destroy();\r\n }\r\n }}\r\n >\r\n {I18n.instance.translate(\"mk.dataForm.saveButton\")}\r\n </ElButton>\r\n <ElButton\r\n onClick={() => {\r\n dataForm.cancel();\r\n\r\n dialogInstance.destroy();\r\n }}\r\n >\r\n {I18n.instance.translate(\"mk.dataForm.cancelButton\")}\r\n </ElButton>\r\n </Fragment>\r\n );\r\n },\r\n });\r\n\r\n resolve(dialogInstance);\r\n });\r\n }\r\n}\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","uid","DialogerImpl","SkeletonDialoger","dialogInstanceCreateEvent","Event","prompt","options","promptResult","ElMessageBox","message","title","value","confirm","e","alert","customRender","visible","dialogInstance","class","id","v","visibleChangeEvent","emit","destroyEvent","destroy","custom","Promise","resolve","onConfirm","isFunction","onCancel","dataTableSelectDialog","dataTable","reactive","afterInitdEvent","once","columns","getColumns","filter","column","name","TableActionColumn","actionColumnName","setColumns","handleConfirm","isConfirm","selections","getSelection","setList","setSelection","handleCancel","width","body","_createVNode","MKDataTable","footer","_Fragment","ElButton","length","default","_createTextVNode","dataFormDialog","dataFormOptions","dataForm","customDataFormStatus","recId","editRecord","addRecord","onClose","cancel","ElScrollbar","MKDataForm","MKForm","_slot","_slot2","isChanged","allowSubmit","validate","simpleSubmit","I18n","instance","translate","onClick"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"part-extensions.js","sources":["../../../../../src/modules/cms/composables/part-extensions.ts"],"sourcesContent":["\r\nimport { type Component } from \"vue\"\r\n\r\n\r\nexport type PartExtension = {\r\n saveHandle
|
|
1
|
+
{"version":3,"file":"part-extensions.js","sources":["../../../../../src/modules/cms/composables/part-extensions.ts"],"sourcesContent":["\r\nimport { type Component } from \"vue\"\r\n\r\n\r\nexport type PartExtension = {\r\n saveHandle?:Function,\r\n component:Component,\r\n save:Function\r\n}\r\n\r\nconst PartExtensionList:any = {};\r\n\r\n/**\r\n * 使用扩展\r\n * @param partId \r\n * @returns \r\n */\r\nexport const usePartExtension = (partId:string|number):any=>{\r\n return PartExtensionList[partId+\"\"];\r\n}\r\n\r\n/**\r\n * 注册扩展\r\n * @param partId \r\n * @returns \r\n */\r\nexport const registerPartExtension = (partId:string|number,ext:PartExtension)=>{\r\n PartExtensionList[partId+\"\"] = ext;\r\n}\r\n"],"names":[],"mappings":"AAUA,MAAM,oBAAwB,CAAA;AAOjB,MAAA,mBAAmB,CAAC,WAA2B;AACnD,SAAA,kBAAkB,SAAO,EAAE;AACpC;AAOa,MAAA,wBAAwB,CAAC,QAAqB,QAAoB;AAC3D,oBAAA,SAAO,EAAE,IAAI;AACjC;"}
|