@maketribe/ms-app 3.2.25 → 3.2.26
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/assets/iconfonts/iconfont.js +1 -1
- package/dist/cjs/assets/iconfonts/iconfont.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/core/{element-module.js → element-block.js} +31 -12
- package/dist/cjs/components/basic/doc-editor/core/element-block.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/core/index.js +5 -6
- package/dist/cjs/components/basic/doc-editor/core/index.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/core/utils.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/editor.vue.js +4 -4
- package/dist/cjs/components/basic/doc-editor/editor.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.js +8 -8
- package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +164 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +89 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +89 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +115 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +83 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +143 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/utils.js +33 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/utils.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +18 -21
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +16 -11
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js +6 -6
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +25 -13
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +46 -108
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js +0 -12
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +26 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +41 -5
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/nodes.js +10 -4
- package/dist/cjs/components/basic/doc-editor/plugins/nodes.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
- package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js +3 -5
- package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
- package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js +0 -2
- package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +4 -0
- package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js +2 -0
- package/dist/cjs/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js +8 -5
- package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +35 -6
- package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
- package/dist/cjs/modules/ms/components/image-select/image-select-panel.js +7 -1
- package/dist/cjs/modules/ms/components/image-select/image-select-panel.js.map +1 -1
- package/dist/esm/assets/iconfonts/iconfont.js +1 -1
- package/dist/esm/assets/iconfonts/iconfont.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/core/{element-module.js → element-block.js} +32 -13
- package/dist/esm/components/basic/doc-editor/core/element-block.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/core/index.js +6 -7
- package/dist/esm/components/basic/doc-editor/core/index.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/core/utils.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/editor.vue.js +4 -4
- package/dist/esm/components/basic/doc-editor/editor.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.js +8 -8
- package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +164 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +89 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +89 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +115 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +83 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +144 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/utils.js +33 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/utils.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +18 -21
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +17 -12
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js +6 -6
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +25 -13
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +50 -112
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js +0 -12
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +26 -0
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +43 -7
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/nodes.js +10 -4
- package/dist/esm/components/basic/doc-editor/plugins/nodes.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
- package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js +3 -5
- package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
- package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js +0 -2
- package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +4 -0
- package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js +2 -0
- package/dist/esm/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js +9 -6
- package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +35 -6
- package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
- package/dist/esm/modules/ms/components/image-select/image-select-panel.js +9 -3
- package/dist/esm/modules/ms/components/image-select/image-select-panel.js.map +1 -1
- package/dist/style/components/basic/doc-editor/index.css +1 -1
- package/dist/style/components/index.css +1 -1
- package/dist/style/index.css +2 -2
- package/dist/style/src/components/basic/doc-editor/index.scss +2 -0
- package/dist/types/components/basic/doc-editor/core/element-block.d.ts +44 -0
- package/dist/types/components/basic/doc-editor/core/index.d.ts +8 -4
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/GridNode.d.ts +88 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.d.ts +50 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.d.ts +58 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.d.ts +58 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.d.ts +51 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/index.d.ts +5 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/utils.d.ts +3 -0
- package/dist/types/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.d.ts +4 -13
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.d.ts +18 -10
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/index.d.ts +0 -1
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/utils.d.ts +0 -6
- package/dist/types/components/basic/doc-editor/plugins/index.d.ts +3 -3
- package/dist/types/components/basic/dynamic-form-panel/type.d.ts +2 -2
- package/dist/types/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.d.ts +1 -0
- package/package.json +5 -5
- package/dist/cjs/components/basic/doc-editor/core/decorator-module.js +0 -13
- package/dist/cjs/components/basic/doc-editor/core/decorator-module.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/core/element-module.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js +0 -106
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +0 -45
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js +0 -143
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js +0 -123
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js +0 -84
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/core/decorator-module.js +0 -13
- package/dist/esm/components/basic/doc-editor/core/decorator-module.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/core/element-module.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js +0 -106
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +0 -46
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js +0 -143
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js +0 -123
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js +0 -84
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map +0 -1
- package/dist/types/components/basic/doc-editor/core/decorator-module.d.ts +0 -60
- package/dist/types/components/basic/doc-editor/core/element-module.d.ts +0 -15
- package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.d.ts +0 -63
- package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/index.d.ts +0 -1
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.d.ts +0 -86
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleRenderComponent.d.ts +0 -23
- package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.d.ts +0 -63
- package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.d.ts +0 -58
- /package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js +0 -0
- /package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js.map +0 -0
- /package/dist/cjs/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js +0 -0
- /package/dist/cjs/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js.map +0 -0
- /package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js +0 -0
- /package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js.map +0 -0
- /package/dist/esm/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js +0 -0
- /package/dist/esm/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js.map +0 -0
- /package/dist/types/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.d.ts +0 -0
- /package/dist/types/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue.d.ts +0 -0
|
@@ -45,7 +45,6 @@ const MKUploadImageItem = /* @__PURE__ */ vue.defineComponent({
|
|
|
45
45
|
emit("update:modelValue", v);
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
|
-
console.log(props.uploadContext);
|
|
49
48
|
const handleUpdateModelValue = (v) => {
|
|
50
49
|
modelValue.value = v;
|
|
51
50
|
};
|
|
@@ -162,7 +161,6 @@ const UploadImage = /* @__PURE__ */ vue.defineComponent({
|
|
|
162
161
|
};
|
|
163
162
|
return () => {
|
|
164
163
|
const _multiple = vue.unref(multiple);
|
|
165
|
-
console.log(_multiple);
|
|
166
164
|
let content;
|
|
167
165
|
if (!_multiple) {
|
|
168
166
|
content = vue.createVNode(MKUploadImageItem, {
|
|
@@ -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 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 console.log(props.uploadContext)\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 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=\"contain\"\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 console.log(_multiple)\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 teleported zIndex={99}\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","console","log","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 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 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=\"contain\"\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 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 teleported zIndex={99}\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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"}
|
|
@@ -73,9 +73,13 @@ const _CmsAdContentsForm = class _CmsAdContentsForm extends (_b = dm.DataForm, _
|
|
|
73
73
|
console.log(options.cutSise);
|
|
74
74
|
this.cutSise = options.cutSise;
|
|
75
75
|
}
|
|
76
|
+
changeCutSise(cutSise) {
|
|
77
|
+
this.cutSise = cutSise;
|
|
78
|
+
}
|
|
76
79
|
async initialize() {
|
|
77
80
|
await super.initialize();
|
|
78
81
|
this.setColumns([
|
|
82
|
+
// new FormColumn({ name: "adDefineId", label: "广告定义", required: true, visible: true }),
|
|
79
83
|
new dm.FormColumn({ name: "title", label: "标题", required: true }),
|
|
80
84
|
new dm.FormColumn({ name: "desc", label: "描述", required: true }),
|
|
81
85
|
new dm.FormColumn({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsAdContentsForm.js","sources":["../../../../../../src/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.ts"],"sourcesContent":["import { DataForm, DataFormOptions, FormColumn } from \"@maketribe/dm\";\r\nimport { ImageUploadContext, MaterialUploadContext } from \"../../../ms\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\n\r\nexport class CmsAdContentsForm extends DataForm {\r\n\tstatic [DATA_MODEL_NAME]: string = \"ad-content\";\r\n\tcutSise: string = \"\";\r\n\tconstructor(options: DataFormOptions & { cutSise?: string } = {}) {\r\n\t\tsuper({\r\n\t\t\tname: CmsAdContentsForm[DATA_MODEL_NAME],\r\n\t\t\tmoduleName: MODULE_NAME,\r\n\t\t\t...options,\r\n\t\t});\r\n\t\tconsole.log(options.cutSise)\r\n\t\tthis.cutSise = options.cutSise as string\r\n\t}\r\n\r\n\tprotected async initialize() {\r\n\t\tawait super.initialize();\r\n\t\tthis.setColumns([\r\n\t\t\tnew FormColumn({ name: \"title\", label: \"标题\", required: true }),\r\n\t\t\tnew FormColumn({ name: \"desc\", label: \"描述\", required: true }),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"type\",\r\n\t\t\t\tlabel: \"素材类型\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\tdefaultValue: 1,\r\n\t\t\t\tcomponentInfo: \"MKFormDataSelect\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ value: 1, label: \"图片\" },\r\n\t\t\t\t\t\t{ value: 2, label: \"视频\" },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"path\",\r\n\t\t\t\tlabel: \"素材路径\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\tcomponentInfo: \"MKFormImageUpload\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\tuploadContext: new ImageUploadContext(this.cutSise),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({ name: \"link\", label: \"跳转链接\" }),\r\n\t\t]);\r\n\r\n\t\tthis.formItemValueChangeEvent.on((column) => {\r\n\t\t\tif (column.formItem.name == \"type\") {\r\n\t\t\t\tif (column.data.value == 1) {\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentInfo = \"MKFormImageUpload\"\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentProps.uploadContext =\r\n\t\t\t\t\t\tnew ImageUploadContext(this.cutSise);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentInfo = \"MKFormVideoUpload\"\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentProps.uploadContext =\r\n\t\t\t\t\t\tnew MaterialUploadContext({\r\n\t\t\t\t\t\t\tallowMaterialTypeValues: [2],\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n"],"names":["DataForm","DATA_MODEL_NAME","MODULE_NAME","FormColumn","ImageUploadContext","MaterialUploadContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,qBAAN,MAAM,4BAA0BA,QAAAA,UAC9BC,eAAAA,iBAD8BD,IAAS;AAAA,EAG/C,YAAY,UAAkD,IAAI;AAC3D,UAAA;AAAA,MACL,MAAM,mBAAkBC,yBAAe;AAAA,MACvC,YAAYC,MAAA;AAAA,MACZ,GAAG;AAAA,IAAA,CACH;AANF,mCAAkB;AAOT,YAAA,IAAI,QAAQ,OAAO;AAC3B,SAAK,UAAU,QAAQ;AAAA,EACxB;AAAA,EAEA,MAAgB,aAAa;AAC5B,UAAM,MAAM;AACZ,SAAK,WAAW;AAAA,
|
|
1
|
+
{"version":3,"file":"CmsAdContentsForm.js","sources":["../../../../../../src/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.ts"],"sourcesContent":["import { DataForm, DataFormOptions, FormColumn } from \"@maketribe/dm\";\r\nimport { ImageUploadContext, MaterialUploadContext } from \"../../../ms\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\n\r\nexport class CmsAdContentsForm extends DataForm {\r\n\tstatic [DATA_MODEL_NAME]: string = \"ad-content\";\r\n\tcutSise: string = \"\";\r\n\tconstructor(options: DataFormOptions & { cutSise?: string } = {}) {\r\n\t\tsuper({\r\n\t\t\tname: CmsAdContentsForm[DATA_MODEL_NAME],\r\n\t\t\tmoduleName: MODULE_NAME,\r\n\t\t\t...options,\r\n\t\t});\r\n\t\tconsole.log(options.cutSise)\r\n\t\tthis.cutSise = options.cutSise as string\r\n\t}\r\n\r\n\tchangeCutSise(cutSise: string) {\r\n\t\tthis.cutSise = cutSise\r\n\t}\r\n\r\n\tprotected async initialize() {\r\n\t\tawait super.initialize();\r\n\t\tthis.setColumns([\r\n\t\t\t// new FormColumn({ name: \"adDefineId\", label: \"广告定义\", required: true, visible: true }),\r\n\t\t\tnew FormColumn({ name: \"title\", label: \"标题\", required: true }),\r\n\t\t\tnew FormColumn({ name: \"desc\", label: \"描述\", required: true }),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"type\",\r\n\t\t\t\tlabel: \"素材类型\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\tdefaultValue: 1,\r\n\t\t\t\tcomponentInfo: \"MKFormDataSelect\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ value: 1, label: \"图片\" },\r\n\t\t\t\t\t\t{ value: 2, label: \"视频\" },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"path\",\r\n\t\t\t\tlabel: \"素材路径\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\tcomponentInfo: \"MKFormImageUpload\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\tuploadContext: new ImageUploadContext(this.cutSise),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({ name: \"link\", label: \"跳转链接\" }),\r\n\t\t]);\r\n\r\n\t\tthis.formItemValueChangeEvent.on((column) => {\r\n\t\t\tif (column.formItem.name == \"type\") {\r\n\t\t\t\tif (column.data.value == 1) {\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentInfo = \"MKFormImageUpload\"\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentProps.uploadContext =\r\n\t\t\t\t\t\tnew ImageUploadContext(this.cutSise);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentInfo = \"MKFormVideoUpload\"\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentProps.uploadContext =\r\n\t\t\t\t\t\tnew MaterialUploadContext({\r\n\t\t\t\t\t\t\tallowMaterialTypeValues: [2],\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n"],"names":["DataForm","DATA_MODEL_NAME","MODULE_NAME","FormColumn","ImageUploadContext","MaterialUploadContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,qBAAN,MAAM,4BAA0BA,QAAAA,UAC9BC,eAAAA,iBAD8BD,IAAS;AAAA,EAG/C,YAAY,UAAkD,IAAI;AAC3D,UAAA;AAAA,MACL,MAAM,mBAAkBC,yBAAe;AAAA,MACvC,YAAYC,MAAA;AAAA,MACZ,GAAG;AAAA,IAAA,CACH;AANF,mCAAkB;AAOT,YAAA,IAAI,QAAQ,OAAO;AAC3B,SAAK,UAAU,QAAQ;AAAA,EACxB;AAAA,EAEA,cAAc,SAAiB;AAC9B,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,MAAgB,aAAa;AAC5B,UAAM,MAAM;AACZ,SAAK,WAAW;AAAA;AAAA,MAEf,IAAIC,cAAW,EAAE,MAAM,SAAS,OAAO,MAAM,UAAU,MAAM;AAAA,MAC7D,IAAIA,cAAW,EAAE,MAAM,QAAQ,OAAO,MAAM,UAAU,MAAM;AAAA,MAC5D,IAAIA,cAAW;AAAA,QACd,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,cAAc;AAAA,QACd,eAAe;AAAA,QACf,gBAAgB;AAAA,UACf,SAAS;AAAA,YACR,EAAE,OAAO,GAAG,OAAO,KAAK;AAAA,YACxB,EAAE,OAAO,GAAG,OAAO,KAAK;AAAA,UACzB;AAAA,QACD;AAAA,MAAA,CACA;AAAA,MACD,IAAIA,cAAW;AAAA,QACd,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,eAAe;AAAA,QACf,gBAAgB;AAAA,UACf,eAAe,IAAIC,QAAAA,mBAAmB,KAAK,OAAO;AAAA,QACnD;AAAA,MAAA,CACA;AAAA,MACD,IAAID,GAAAA,WAAW,EAAE,MAAM,QAAQ,OAAO,QAAQ;AAAA,IAAA,CAC9C;AAEI,SAAA,yBAAyB,GAAG,CAAC,WAAW;AACxC,UAAA,OAAO,SAAS,QAAQ,QAAQ;AAC/B,YAAA,OAAO,KAAK,SAAS,GAAG;AACtB,eAAA,UAAU,MAAM,EAAG,gBAAgB;AACnC,eAAA,UAAU,MAAM,EAAG,eAAe,gBACtC,IAAIC,QAAA,mBAAmB,KAAK,OAAO;AAAA,QAAA,OAC9B;AACD,eAAA,UAAU,MAAM,EAAG,gBAAgB;AACxC,eAAK,UAAU,MAAM,EAAG,eAAe,gBACtC,IAAIC,4CAAsB;AAAA,YACzB,yBAAyB,CAAC,CAAC;AAAA,UAAA,CAC3B;AAAA,QACH;AAAA,MACD;AAAA,IAAA,CACA;AAAA,EACF;AACD;AA/DC,cADY,oBACJJ,IAA2B;AAD7B,IAAM,oBAAN;;"}
|
|
@@ -22,6 +22,8 @@ const _CmsAdDefinesForm = class _CmsAdDefinesForm extends (_b = dm.DataForm, _a
|
|
|
22
22
|
this.setColumns([
|
|
23
23
|
new dm.FormColumn({ name: "key", label: "广告位KEY", required: true }),
|
|
24
24
|
new dm.FormColumn({ name: "desc", label: "广告位描述", required: true }),
|
|
25
|
+
new dm.FormColumn({ name: "width", label: "宽度" }),
|
|
26
|
+
new dm.FormColumn({ name: "height", label: "高度" }),
|
|
25
27
|
new dm.FormDetailColumn({
|
|
26
28
|
name: "contents",
|
|
27
29
|
label: "内容",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsAdDefinesForm.js","sources":["../../../../../../src/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.ts"],"sourcesContent":["import {\r\n DataForm,\r\n DataFormOptions,\r\n FormColumn,\r\n FormDetailColumn,\r\n} from \"@maketribe/dm\";\r\nimport { CmsAdContentsTable, CmsAdContentsForm } from \"../cms-ad-contents\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\n\r\nexport class CmsAdDefinesForm extends DataForm {\r\n static [DATA_MODEL_NAME]: string = \"ad-define\";\r\n\r\n constructor(options: DataFormOptions = {}) {\r\n super({\r\n name: CmsAdDefinesForm[DATA_MODEL_NAME],\r\n moduleName: MODULE_NAME,\r\n ...options,\r\n });\r\n }\r\n\r\n protected async initialize() {\r\n await super.initialize();\r\n\r\n this.setColumns([\r\n
|
|
1
|
+
{"version":3,"file":"CmsAdDefinesForm.js","sources":["../../../../../../src/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.ts"],"sourcesContent":["import {\r\n DataForm,\r\n DataFormOptions,\r\n FormColumn,\r\n FormDetailColumn,\r\n} from \"@maketribe/dm\";\r\nimport { CmsAdContentsTable, CmsAdContentsForm } from \"../cms-ad-contents\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\n\r\nexport class CmsAdDefinesForm extends DataForm {\r\n static [DATA_MODEL_NAME]: string = \"ad-define\";\r\n\r\n constructor(options: DataFormOptions = {}) {\r\n super({\r\n name: CmsAdDefinesForm[DATA_MODEL_NAME],\r\n moduleName: MODULE_NAME,\r\n ...options,\r\n });\r\n }\r\n\r\n protected async initialize() {\r\n await super.initialize();\r\n\r\n this.setColumns([\r\n new FormColumn({ name: \"key\", label: \"广告位KEY\", required: true }),\r\n new FormColumn({ name: \"desc\", label: \"广告位描述\", required: true }),\r\n new FormColumn({ name: \"width\", label: \"宽度\" }),\r\n new FormColumn({ name: \"height\", label: \"高度\" }),\r\n new FormDetailColumn({\r\n name: \"contents\",\r\n label: \"内容\",\r\n associationFieldName: \"adDefineId\",\r\n detailForm: this.register(new CmsAdContentsForm()),\r\n detailTable: this.register(new CmsAdContentsTable()),\r\n }),\r\n ]);\r\n }\r\n}\r\n"],"names":["DataForm","DATA_MODEL_NAME","MODULE_NAME","FormColumn","FormDetailColumn","CmsAdContentsForm","CmsAdContentsTable"],"mappings":";;;;;;;;;;;AAUO,MAAM,oBAAN,MAAM,2BAAyBA,QAAAA,UAC5BC,eAAAA,iBAD4BD,IAAS;AAAA,EAG7C,YAAY,UAA2B,IAAI;AACnC,UAAA;AAAA,MACJ,MAAM,kBAAiBC,yBAAe;AAAA,MACtC,YAAYC,MAAA;AAAA,MACZ,GAAG;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,MAAgB,aAAa;AAC3B,UAAM,MAAM;AAEZ,SAAK,WAAW;AAAA,MACd,IAAIC,cAAW,EAAE,MAAM,OAAO,OAAO,UAAU,UAAU,MAAM;AAAA,MAC/D,IAAIA,cAAW,EAAE,MAAM,QAAQ,OAAO,SAAS,UAAU,MAAM;AAAA,MAC/D,IAAIA,GAAAA,WAAW,EAAE,MAAM,SAAS,OAAO,MAAM;AAAA,MAC7C,IAAIA,GAAAA,WAAW,EAAE,MAAM,UAAU,OAAO,MAAM;AAAA,MAC9C,IAAIC,oBAAiB;AAAA,QACnB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,sBAAsB;AAAA,QACtB,YAAY,KAAK,SAAS,IAAIC,qCAAmB;AAAA,QACjD,aAAa,KAAK,SAAS,IAAIC,uCAAoB;AAAA,MAAA,CACpD;AAAA,IAAA,CACF;AAAA,EACH;AACF;AA3BE,cADW,mBACHL,IAA2B;AAD9B,IAAM,mBAAN;;"}
|
|
@@ -177,7 +177,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
177
177
|
}, 500);
|
|
178
178
|
});
|
|
179
179
|
return (_ctx, _cache) => {
|
|
180
|
-
var _a;
|
|
180
|
+
var _a, _b;
|
|
181
181
|
const _component_MKSvgIcon = vue.resolveComponent("MKSvgIcon");
|
|
182
182
|
const _component_el_input = vue.resolveComponent("el-input");
|
|
183
183
|
const _component_el_button = vue.resolveComponent("el-button");
|
|
@@ -240,7 +240,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
240
240
|
_: 1
|
|
241
241
|
}),
|
|
242
242
|
vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
|
|
243
|
-
|
|
243
|
+
((_a = adDefineList.value) == null ? void 0 : _a.length) ? (vue.openBlock(), vue.createBlock(_component_el_scrollbar, {
|
|
244
|
+
key: 0,
|
|
245
|
+
class: "mk-cms-ad__body__scrollbar"
|
|
246
|
+
}, {
|
|
244
247
|
default: vue.withCtx(() => [
|
|
245
248
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(adDefineList.value, (item) => {
|
|
246
249
|
return vue.openBlock(), vue.createBlock(_component_el_card, {
|
|
@@ -407,9 +410,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
407
410
|
}), 128))
|
|
408
411
|
]),
|
|
409
412
|
_: 1
|
|
410
|
-
}),
|
|
411
|
-
((
|
|
412
|
-
key:
|
|
413
|
+
})) : vue.createCommentVNode("", true),
|
|
414
|
+
((_b = adDefineList.value) == null ? void 0 : _b.length) <= 0 ? (vue.openBlock(), vue.createBlock(_component_el_empty, {
|
|
415
|
+
key: 1,
|
|
413
416
|
description: "“暂无内容”"
|
|
414
417
|
})) : vue.createCommentVNode("", true)
|
|
415
418
|
])), [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-ad/index.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-ad__warp\">\r\n <el-page-header style=\"background-color: #fff;padding: 10px;\" :icon=\"null\">\r\n <template #title>\r\n <h3 style=\"color: var(--el-text-color-regular);margin-left: 10px;\">\r\n <MKSvgIcon iconClass=\"Guide\" style=\"margin-right: 5px;\" />\r\n 广告位管理\r\n </h3>\r\n </template>\r\n <template #content>\r\n <el-input style=\"width: 240px\" placeholder=\"请输入广告位描述\" v-model=\"adSearchWord\">\r\n <template #prefix>\r\n <MKSvgIcon iconClass=\"Search\" />\r\n </template>\r\n </el-input>\r\n </template>\r\n <template #extra>\r\n <div class=\"flex items-center\">\r\n <el-button type=\"primary\" size=\"large\" text @click=\"showAdDefineHandle\">\r\n 添加广告位\r\n <MKSvgIcon iconClass=\"Plus\" style=\"margin-left: 10px;\" />\r\n </el-button>\r\n </div>\r\n </template>\r\n </el-page-header>\r\n <div class=\"mk-cms-ad__body\" v-loading=\"loading\">\r\n <el-scrollbar class=\"mk-cms-ad__body__scrollbar\">\r\n <el-card v-for=\"item in adDefineList\" :key=\"item.id\" class=\"mk-cms-ad__card\">\r\n <template #header>\r\n <div class=\"mk-cms-ad__card__header clearfix\">\r\n <span>\r\n <MKSvgIcon iconClass=\"Guide\" style=\"margin-right: 5px;\" />\r\n {{ item.desc }}\r\n </span>\r\n <div class=\"btn-box\">\r\n <MKSvgIcon class=\"btn\" iconClass=\"Plus\" style=\"color: #409EFF;\"\r\n @click=\"showAdContentHandler(item, false)\" />\r\n <MKSvgIcon class=\"btn\" iconClass=\"EditPen\" style=\"color: #409EFF;\" @click=\"showAdDefineHandle(item)\" />\r\n <MKSvgIcon class=\"btn\" iconClass=\"Delete\" style=\"color: #F56C6C;\"\r\n @click=\"deleteHandler(adRequest, 'desc', item)\" v-if=\"item.contents.length == 0\" />\r\n </div>\r\n </div>\r\n </template>\r\n <el-empty v-if=\"item.contents.length <= 0\" description=\"暂无内容\" />\r\n <div class=\"mk-cms-ad__card__body\">\r\n <el-scrollbar class=\"mk-cms-ad__card__body__scrollbar\">\r\n <el-card class=\"mk-cms-ad__card__body__item\" v-for=\"adContent in item.contents\" :key=\"adContent.id\">\r\n <el-image class=\"images\" v-if=\"adContent.type == 1\" :src=\"adContent.path\"\r\n :preview-src-list=\"[adContent.path]\" fit=\"contain\">\r\n <div slot=\"placeholder\" class=\"image-slot\">\r\n 加载中<span class=\"dot\">...</span>\r\n </div>\r\n </el-image>\r\n <video class=\"video\" v-if=\"adContent.type == 2\" :src=\"adContent.path\" style=\"width: 100%;height: 200px;\"\r\n controls></video>\r\n <div class=\"item-desc\">\r\n <div class=\"item-desc-left\">\r\n <div class=\"title ellipsis\">\r\n <MKSvgIcon class=\"icon\" v-if=\"adContent.type == 1\" iconClass=\"Picture\"></MKSvgIcon>\r\n <MKSvgIcon class=\"icon\" v-if=\"adContent.type == 2\" iconClass=\"VideoCamera\"></MKSvgIcon>\r\n <span :title=\"adContent.title + '(' + adContent.desc + ')'\">{{ adContent.title }}<span\r\n class=\"desc\">{{\r\n adContent.desc ? `(${adContent.desc})` : \"\" }}</span></span>\r\n </div>\r\n <div class=\"external-links ellipsis\">\r\n <MKSvgIcon class=\"icon\" v-if=\"adContent.link\" iconClass=\"Link\"></MKSvgIcon>\r\n <a :href=\"adContent.link\" target=\"_blank\" :title=\"adContent.link\">{{ adContent.link }}</a>\r\n </div>\r\n </div>\r\n <div class=\"item-desc-right\">\r\n <el-dropdown trigger=\"click\" :teleported=\"false\" class=\"item-desc-right__more\">\r\n <span class=\"el-dropdown-link\">\r\n 更多<el-icon class=\"el-icon--right\"><arrow-down /></el-icon>\r\n </span>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item class=\"edit-button\" :icon=\"EditPen\"\r\n @click=\"showAdContentHandler(adContent, true)\">编辑</el-dropdown-item>\r\n <el-dropdown-item class=\"delete-button\" :icon=\"Delete\"\r\n @click=\"deleteHandler(adContentRequest, 'title', adContent)\">删除</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </div>\r\n </el-card>\r\n </el-scrollbar>\r\n </div>\r\n </el-card>\r\n </el-scrollbar>\r\n\r\n <el-empty v-if=\"adDefineList?.length <= 0\" description=“暂无内容” />\r\n </div>\r\n </div>\r\n\r\n</template>\r\n<script setup lang='ts'>\r\nimport { onMounted, reactive, ref, watch } from \"vue\";\r\nimport { DataViewRequest, Group } from \"@maketribe/request\";\r\nimport { DataForm, Dialoger, FormColumn, Messager } from \"@maketribe/dm\";\r\nimport { CmsAdContentsForm, CmsAdDefinesForm } from \"../../dataviews\";\r\nimport { EditPen, ArrowDown, Delete } from \"@element-plus/icons-vue\"\r\n\r\n// 广告定义数据表\r\nconst adRequest = new DataViewRequest({ name: \"ad-define\", moduleName: \"cms\" });\r\nconst adContentRequest = new DataViewRequest({ name: \"ad-content\", moduleName: \"cms\" });\r\n//广告位搜索词\r\nconst adSearchWord = ref(\"\")\r\n// 广告定义列表\r\nconst adDefineList = ref([] as any[]);\r\nconst loading = ref(true);\r\n\r\n//更新列表数据\r\nconst setAdDefineList = async (condition?: Group) => {\r\n try {\r\n loading.value = true;\r\n\r\n if(!condition){ condition = new Group(); }\r\n\r\n // 栏目的广告不查\r\n condition?.addCondition(\"key\",\"nolike\",\"part_\")\r\n\r\n console.log(condition);\r\n\r\n adDefineList.value = (await adRequest.allList({\r\n data: {\r\n condition: condition\r\n }\r\n })).data.data;\r\n\r\n } catch (e) {\r\n console.error(e)\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n// 广告内容表单\r\nconst adContentForm = reactive(new CmsAdContentsForm())\r\n//监听广告内容表单保存事件\r\nadContentForm.submittedEvent.on(() => {\r\n setAdDefineList()\r\n})\r\n// 添加广告内容\r\nconst showAdContentHandler = async (item: any, isEdit: boolean) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: adContentForm as CmsAdContentsForm,\r\n recId: isEdit ? item.id : undefined\r\n })\r\n if (!isEdit) {\r\n adContentForm.addRecord({ adDefineId: item.id })\r\n }\r\n}\r\n\r\n//广告定义表单\r\nconst adDefineForm = reactive(new (class extends CmsAdDefinesForm {\r\n //去掉广告内容\r\n protected async initialize() {\r\n await super.initialize();\r\n this.setColumns([\r\n new FormColumn({ name: \"key\", label: \"广告位KEY\", required: true }),\r\n new FormColumn({ name: \"desc\", label: \"广告位描述\", required: true }),\r\n ]);\r\n }\r\n}))\r\n//监听广告保存完成进行刷新\r\nadDefineForm.submittedEvent.on(() => {\r\n setAdDefineList()\r\n})\r\n//增加广告位\r\nconst showAdDefineHandle = (item: any) => {\r\n Dialoger.dataFormDialog({\r\n dataForm: adDefineForm as DataForm,\r\n recId: item?.id\r\n })\r\n}\r\n\r\n//删除\r\nconst deleteHandler = async (request: DataViewRequest, field: string, item: any) => {\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"是否删除?\",\r\n message: `确定删除【${item[field]}】广告位?`,\r\n type: \"warning\"\r\n });\r\n if (!isConfirm) {\r\n return;\r\n }\r\n try {\r\n loading.value = true\r\n const result = await request.delete(item.id)\r\n if (result.data.code != 200) {\r\n Messager.error({ message: result.data.msg || \"删除失败\" })\r\n return;\r\n }\r\n await setAdDefineList()\r\n } catch (e: any) {\r\n Messager.error({ message: e })\r\n } finally {\r\n loading.value = false\r\n\r\n }\r\n}\r\n\r\n// 加载广告定义\r\nonMounted(async () => {\r\n await setAdDefineList();\r\n})\r\n\r\n//timer\r\nlet timer: any = null\r\n\r\n//监听adSearchWord变化进行搜索\r\nwatch(adSearchWord, async () => {\r\n\r\n if (!!timer) {\r\n clearTimeout(timer)\r\n }\r\n\r\n timer = setTimeout(async () => {\r\n const condition = new Group()\r\n condition.addCondition(\"desc\", \"like\", `%${adSearchWord.value}%`)\r\n await setAdDefineList(condition);\r\n }, 500)\r\n\r\n\r\n})\r\n\r\n</script>\r\n"],"names":["DataViewRequest","ref","Group","reactive","CmsAdContentsForm","Dialoger","CmsAdDefinesForm","FormColumn","request","Messager","onMounted","watch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/cms/pages/cms-ad/index.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-ad__warp\">\r\n <el-page-header style=\"background-color: #fff;padding: 10px;\" :icon=\"null\">\r\n <template #title>\r\n <h3 style=\"color: var(--el-text-color-regular);margin-left: 10px;\">\r\n <MKSvgIcon iconClass=\"Guide\" style=\"margin-right: 5px;\" />\r\n 广告位管理\r\n </h3>\r\n </template>\r\n <template #content>\r\n <el-input style=\"width: 240px\" placeholder=\"请输入广告位描述\" v-model=\"adSearchWord\">\r\n <template #prefix>\r\n <MKSvgIcon iconClass=\"Search\" />\r\n </template>\r\n </el-input>\r\n </template>\r\n <template #extra>\r\n <div class=\"flex items-center\">\r\n <el-button type=\"primary\" size=\"large\" text @click=\"showAdDefineHandle\">\r\n 添加广告位\r\n <MKSvgIcon iconClass=\"Plus\" style=\"margin-left: 10px;\" />\r\n </el-button>\r\n </div>\r\n </template>\r\n </el-page-header>\r\n <div class=\"mk-cms-ad__body\" v-loading=\"loading\">\r\n <el-scrollbar class=\"mk-cms-ad__body__scrollbar\" v-if=\"adDefineList?.length\">\r\n <el-card v-for=\"item in adDefineList\" :key=\"item.id\" class=\"mk-cms-ad__card\">\r\n <template #header>\r\n <div class=\"mk-cms-ad__card__header clearfix\">\r\n <span>\r\n <MKSvgIcon iconClass=\"Guide\" style=\"margin-right: 5px;\" />\r\n {{ item.desc }}\r\n </span>\r\n <div class=\"btn-box\">\r\n <MKSvgIcon class=\"btn\" iconClass=\"Plus\" style=\"color: #409EFF;\"\r\n @click=\"showAdContentHandler(item, false)\" />\r\n <MKSvgIcon class=\"btn\" iconClass=\"EditPen\" style=\"color: #409EFF;\" @click=\"showAdDefineHandle(item)\" />\r\n <MKSvgIcon class=\"btn\" iconClass=\"Delete\" style=\"color: #F56C6C;\"\r\n @click=\"deleteHandler(adRequest, 'desc', item)\" v-if=\"item.contents.length == 0\" />\r\n </div>\r\n </div>\r\n </template>\r\n <el-empty v-if=\"item.contents.length <= 0\" description=\"暂无内容\" />\r\n <div class=\"mk-cms-ad__card__body\">\r\n <el-scrollbar class=\"mk-cms-ad__card__body__scrollbar\">\r\n <el-card class=\"mk-cms-ad__card__body__item\" v-for=\"adContent in item.contents\" :key=\"adContent.id\">\r\n <el-image class=\"images\" v-if=\"adContent.type == 1\" :src=\"adContent.path\"\r\n :preview-src-list=\"[adContent.path]\" fit=\"contain\">\r\n <div slot=\"placeholder\" class=\"image-slot\">\r\n 加载中<span class=\"dot\">...</span>\r\n </div>\r\n </el-image>\r\n <video class=\"video\" v-if=\"adContent.type == 2\" :src=\"adContent.path\" style=\"width: 100%;height: 200px;\"\r\n controls></video>\r\n <div class=\"item-desc\">\r\n <div class=\"item-desc-left\">\r\n <div class=\"title ellipsis\">\r\n <MKSvgIcon class=\"icon\" v-if=\"adContent.type == 1\" iconClass=\"Picture\"></MKSvgIcon>\r\n <MKSvgIcon class=\"icon\" v-if=\"adContent.type == 2\" iconClass=\"VideoCamera\"></MKSvgIcon>\r\n <span :title=\"adContent.title + '(' + adContent.desc + ')'\">{{ adContent.title }}<span\r\n class=\"desc\">{{\r\n adContent.desc ? `(${adContent.desc})` : \"\" }}</span></span>\r\n </div>\r\n <div class=\"external-links ellipsis\">\r\n <MKSvgIcon class=\"icon\" v-if=\"adContent.link\" iconClass=\"Link\"></MKSvgIcon>\r\n <a :href=\"adContent.link\" target=\"_blank\" :title=\"adContent.link\">{{ adContent.link }}</a>\r\n </div>\r\n </div>\r\n <div class=\"item-desc-right\">\r\n <el-dropdown trigger=\"click\" :teleported=\"false\" class=\"item-desc-right__more\">\r\n <span class=\"el-dropdown-link\">\r\n 更多<el-icon class=\"el-icon--right\"><arrow-down /></el-icon>\r\n </span>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item class=\"edit-button\" :icon=\"EditPen\"\r\n @click=\"showAdContentHandler(adContent, true)\">编辑</el-dropdown-item>\r\n <el-dropdown-item class=\"delete-button\" :icon=\"Delete\"\r\n @click=\"deleteHandler(adContentRequest, 'title', adContent)\">删除</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </div>\r\n </el-card>\r\n </el-scrollbar>\r\n </div>\r\n </el-card>\r\n </el-scrollbar>\r\n\r\n <el-empty v-if=\"adDefineList?.length <= 0\" description=“暂无内容” />\r\n </div>\r\n </div>\r\n\r\n</template>\r\n<script setup lang='ts'>\r\nimport { onMounted, reactive, ref, watch } from \"vue\";\r\nimport { DataViewRequest, Group } from \"@maketribe/request\";\r\nimport { DataForm, Dialoger, FormColumn, Messager } from \"@maketribe/dm\";\r\nimport { CmsAdContentsForm, CmsAdDefinesForm } from \"../../dataviews\";\r\nimport { EditPen, ArrowDown, Delete } from \"@element-plus/icons-vue\"\r\n\r\n// 广告定义数据表\r\nconst adRequest = new DataViewRequest({ name: \"ad-define\", moduleName: \"cms\" });\r\nconst adContentRequest = new DataViewRequest({ name: \"ad-content\", moduleName: \"cms\" });\r\n//广告位搜索词\r\nconst adSearchWord = ref(\"\")\r\n// 广告定义列表\r\nconst adDefineList = ref([] as any[]);\r\nconst loading = ref(true);\r\n\r\n//更新列表数据\r\nconst setAdDefineList = async (condition?: Group) => {\r\n try {\r\n loading.value = true;\r\n\r\n if(!condition){ condition = new Group(); }\r\n\r\n // 栏目的广告不查\r\n condition?.addCondition(\"key\",\"nolike\",\"part_\")\r\n\r\n console.log(condition);\r\n\r\n adDefineList.value = (await adRequest.allList({\r\n data: {\r\n condition: condition\r\n }\r\n })).data.data;\r\n\r\n } catch (e) {\r\n console.error(e)\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n// 广告内容表单\r\nconst adContentForm = reactive(new CmsAdContentsForm())\r\n//监听广告内容表单保存事件\r\nadContentForm.submittedEvent.on(() => {\r\n setAdDefineList()\r\n})\r\n// 添加广告内容\r\nconst showAdContentHandler = async (item: any, isEdit: boolean) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: adContentForm as CmsAdContentsForm,\r\n recId: isEdit ? item.id : undefined\r\n })\r\n if (!isEdit) {\r\n adContentForm.addRecord({ adDefineId: item.id })\r\n }\r\n}\r\n\r\n//广告定义表单\r\nconst adDefineForm = reactive(new (class extends CmsAdDefinesForm {\r\n //去掉广告内容\r\n protected async initialize() {\r\n await super.initialize();\r\n this.setColumns([\r\n new FormColumn({ name: \"key\", label: \"广告位KEY\", required: true }),\r\n new FormColumn({ name: \"desc\", label: \"广告位描述\", required: true }),\r\n ]);\r\n }\r\n}))\r\n//监听广告保存完成进行刷新\r\nadDefineForm.submittedEvent.on(() => {\r\n setAdDefineList()\r\n})\r\n//增加广告位\r\nconst showAdDefineHandle = (item: any) => {\r\n Dialoger.dataFormDialog({\r\n dataForm: adDefineForm as DataForm,\r\n recId: item?.id\r\n })\r\n}\r\n\r\n//删除\r\nconst deleteHandler = async (request: DataViewRequest, field: string, item: any) => {\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"是否删除?\",\r\n message: `确定删除【${item[field]}】广告位?`,\r\n type: \"warning\"\r\n });\r\n if (!isConfirm) {\r\n return;\r\n }\r\n try {\r\n loading.value = true\r\n const result = await request.delete(item.id)\r\n if (result.data.code != 200) {\r\n Messager.error({ message: result.data.msg || \"删除失败\" })\r\n return;\r\n }\r\n await setAdDefineList()\r\n } catch (e: any) {\r\n Messager.error({ message: e })\r\n } finally {\r\n loading.value = false\r\n\r\n }\r\n}\r\n\r\n// 加载广告定义\r\nonMounted(async () => {\r\n await setAdDefineList();\r\n})\r\n\r\n//timer\r\nlet timer: any = null\r\n\r\n//监听adSearchWord变化进行搜索\r\nwatch(adSearchWord, async () => {\r\n\r\n if (!!timer) {\r\n clearTimeout(timer)\r\n }\r\n\r\n timer = setTimeout(async () => {\r\n const condition = new Group()\r\n condition.addCondition(\"desc\", \"like\", `%${adSearchWord.value}%`)\r\n await setAdDefineList(condition);\r\n }, 500)\r\n\r\n\r\n})\r\n\r\n</script>\r\n"],"names":["DataViewRequest","ref","Group","reactive","CmsAdContentsForm","Dialoger","CmsAdDefinesForm","FormColumn","request","Messager","onMounted","watch"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ const cmsSettings = require("../../../cms-settings.js");
|
|
|
4
4
|
const request = require("@maketribe/request");
|
|
5
5
|
const dm = require("@maketribe/dm");
|
|
6
6
|
const CmsAdContentsForm = require("../../../dataviews/cms-ad-contents/CmsAdContentsForm.js");
|
|
7
|
+
const CmsAdDefinesForm = require("../../../dataviews/cms-ad-defines/CmsAdDefinesForm.js");
|
|
7
8
|
require("element-plus");
|
|
8
9
|
require("@maketribe/utils");
|
|
9
10
|
require("../../../../../core/DataModelDefines.js");
|
|
@@ -83,12 +84,14 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
83
84
|
const partAdBanner = vue.ref(null);
|
|
84
85
|
const loading = vue.ref(true);
|
|
85
86
|
const adContentForm = vue.reactive(new CmsAdContentsForm.CmsAdContentsForm({ cutSise: cmsSettings$1.part.bannerImageSize }));
|
|
87
|
+
const adDefineForm = vue.reactive(new CmsAdDefinesForm.CmsAdDefinesForm());
|
|
86
88
|
adContentForm.beforeSubmitEvent.on(async ({ data }) => {
|
|
87
89
|
if (partAdBanner.value) {
|
|
88
90
|
data.adDefineId = partAdBanner.value.id;
|
|
89
91
|
} else {
|
|
90
92
|
try {
|
|
91
|
-
const
|
|
93
|
+
const widthAndHeight = cmsSettings$1.part.bannerImageSize.split("*");
|
|
94
|
+
const result = await adRequest.add({ key: `part_${props.partId}`, desc: `${props.title}的Banner`, width: widthAndHeight[0], height: widthAndHeight[1] });
|
|
92
95
|
if (result.data.code == 200) {
|
|
93
96
|
partAdBanner.value = { id: result.data.data };
|
|
94
97
|
data.adDefineId = result.data.data;
|
|
@@ -101,6 +104,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
101
104
|
adContentForm.submittedEvent.on(() => {
|
|
102
105
|
loadPartAdDefineData(props.partId);
|
|
103
106
|
});
|
|
107
|
+
adDefineForm.submittedEvent.on(() => {
|
|
108
|
+
loadPartAdDefineData(props.partId);
|
|
109
|
+
});
|
|
104
110
|
const loadPartAdDefineData = async (partId) => {
|
|
105
111
|
try {
|
|
106
112
|
loading.value = true;
|
|
@@ -113,18 +119,30 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
113
119
|
condition: where
|
|
114
120
|
}
|
|
115
121
|
})).data.data[0];
|
|
122
|
+
if (partAdBanner.value.width && partAdBanner.value.width) {
|
|
123
|
+
adContentForm.changeCutSise(`${partAdBanner.value.width}*${partAdBanner.value.height}`);
|
|
124
|
+
}
|
|
116
125
|
} catch (e) {
|
|
117
126
|
console.error(e);
|
|
118
127
|
} finally {
|
|
119
128
|
loading.value = false;
|
|
120
129
|
}
|
|
121
130
|
};
|
|
122
|
-
const
|
|
123
|
-
dm.Dialoger.dataFormDialog({
|
|
131
|
+
const showAdContentHandle = async (id) => {
|
|
132
|
+
await dm.Dialoger.dataFormDialog({
|
|
124
133
|
dataForm: adContentForm,
|
|
125
134
|
recId: id
|
|
126
135
|
});
|
|
127
136
|
};
|
|
137
|
+
const showAdDefineHandle = async (id) => {
|
|
138
|
+
await dm.Dialoger.dataFormDialog({
|
|
139
|
+
dataForm: adDefineForm,
|
|
140
|
+
recId: partAdBanner.value.id
|
|
141
|
+
});
|
|
142
|
+
adDefineForm.getColumn("contents").visible = false;
|
|
143
|
+
adDefineForm.getColumn("key").visible = false;
|
|
144
|
+
adDefineForm.getColumn("desc").visible = false;
|
|
145
|
+
};
|
|
128
146
|
vue.onMounted(() => {
|
|
129
147
|
vue.watch(() => props.partId, (id) => {
|
|
130
148
|
loadPartAdDefineData(id);
|
|
@@ -183,7 +201,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
183
201
|
type: "primary",
|
|
184
202
|
style: { "margin-left": "10px" },
|
|
185
203
|
icon: vue.unref(elIcons.EditPen),
|
|
186
|
-
onClick: ($event) =>
|
|
204
|
+
onClick: ($event) => showAdContentHandle(item.id)
|
|
187
205
|
}, {
|
|
188
206
|
default: vue.withCtx(() => [
|
|
189
207
|
vue.createTextVNode(" 编辑当前轮播项 ")
|
|
@@ -194,12 +212,23 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
194
212
|
type: "primary",
|
|
195
213
|
style: { "margin-left": "10px" },
|
|
196
214
|
icon: vue.unref(elIcons.Plus),
|
|
197
|
-
onClick: _cache[0] || (_cache[0] = ($event) =>
|
|
215
|
+
onClick: _cache[0] || (_cache[0] = ($event) => showAdContentHandle(null))
|
|
198
216
|
}, {
|
|
199
217
|
default: vue.withCtx(() => [
|
|
200
218
|
vue.createTextVNode(" 添加新轮播项 ")
|
|
201
219
|
]),
|
|
202
220
|
_: 1
|
|
221
|
+
}, 8, ["icon"]),
|
|
222
|
+
vue.createVNode(_component_el_button, {
|
|
223
|
+
type: "primary",
|
|
224
|
+
style: { "margin-left": "10px" },
|
|
225
|
+
icon: vue.unref(elIcons.EditPen),
|
|
226
|
+
onClick: _cache[1] || (_cache[1] = ($event) => showAdDefineHandle())
|
|
227
|
+
}, {
|
|
228
|
+
default: vue.withCtx(() => [
|
|
229
|
+
vue.createTextVNode(" 编辑banner比例 ")
|
|
230
|
+
]),
|
|
231
|
+
_: 1
|
|
203
232
|
}, 8, ["icon"])
|
|
204
233
|
])
|
|
205
234
|
])
|
|
@@ -227,7 +256,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
227
256
|
text: "",
|
|
228
257
|
style: { "margin-left": "10px" },
|
|
229
258
|
icon: vue.unref(elIcons.Plus),
|
|
230
|
-
onClick: _cache[
|
|
259
|
+
onClick: _cache[2] || (_cache[2] = ($event) => showAdContentHandle(null))
|
|
231
260
|
}, {
|
|
232
261
|
default: vue.withCtx(() => [
|
|
233
262
|
vue.createTextVNode(" 添加 ")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"part-banner-edit.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/part-banner-edit.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-part-banner__warp\" v-loading=\"loading\" v-if=\"cmsSettings.part.openBanner\">\r\n <el-carousel v-if=\"partAdBanner && partAdBanner.contents?.length\" :autoplay=\"false\" height=\"240px\" arrow=\"always\">\r\n <el-carousel-item v-for=\"item in partAdBanner.contents\" :key=\"item.id\">\r\n <div class=\"mk-cms-part-banner__list_item\">\r\n <div class=\"mk-cms-part-banner__list_content\">\r\n <el-image class=\"mk-cms-part-banner__list_content_img\" v-if=\"item.type == 1\" :src=\"item.path\" fit=\"cover\"\r\n tyle=\"width: 100%;height: 100%;\">\r\n <div slot=\"placeholder\" class=\"image-slot\">\r\n 加载中<span class=\"dot\">...</span>\r\n </div>\r\n </el-image>\r\n <video class=\"video\" v-if=\"item.type == 2\" :src=\"item.path\" style=\"width: 100%;height: 100%;\"\r\n controls></video>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_bottom\">\r\n <div class=\"mk-cms-part-banner__list_title\">{{ item.title }}</div>\r\n <div>{{ item.desc }}</div>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_action-mask\">\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"
|
|
1
|
+
{"version":3,"file":"part-banner-edit.vue.js","sources":["../../../../../../../src/modules/cms/pages/cms-contents/components/part-banner-edit.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-part-banner__warp\" v-loading=\"loading\" v-if=\"cmsSettings.part.openBanner\">\r\n <el-carousel v-if=\"partAdBanner && partAdBanner.contents?.length\" :autoplay=\"false\" height=\"240px\" arrow=\"always\">\r\n <el-carousel-item v-for=\"item in partAdBanner.contents\" :key=\"item.id\">\r\n <div class=\"mk-cms-part-banner__list_item\">\r\n <div class=\"mk-cms-part-banner__list_content\">\r\n <el-image class=\"mk-cms-part-banner__list_content_img\" v-if=\"item.type == 1\" :src=\"item.path\" fit=\"cover\"\r\n tyle=\"width: 100%;height: 100%;\">\r\n <div slot=\"placeholder\" class=\"image-slot\">\r\n 加载中<span class=\"dot\">...</span>\r\n </div>\r\n </el-image>\r\n <video class=\"video\" v-if=\"item.type == 2\" :src=\"item.path\" style=\"width: 100%;height: 100%;\"\r\n controls></video>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_bottom\">\r\n <div class=\"mk-cms-part-banner__list_title\">{{ item.title }}</div>\r\n <div>{{ item.desc }}</div>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_action-mask\">\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdContentHandle(item.id)\">\r\n 编辑当前轮播项\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加新轮播项\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdDefineHandle(null)\">\r\n 编辑banner比例\r\n </el-button>\r\n </div>\r\n </div>\r\n </el-carousel-item>\r\n </el-carousel>\r\n <el-empty v-else description=\"暂无轮播数据\" :image-size=\"80\" style=\"height: 240px;\">\r\n <template #description>\r\n <el-text>暂无轮播数据</el-text>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加\r\n </el-button>\r\n </template>\r\n </el-empty>\r\n\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\nimport { onMounted, reactive, computed, ref, watch, defineProps } from \"vue\";\r\nimport { DataViewRequest, Where } from \"@maketribe/request\";\r\nimport { DataForm, Dialoger, FormColumn, Messager } from \"@maketribe/dm\";\r\nimport { CmsAdDefinesTable, CmsAdContentsForm, CmsAdDefinesForm } from \"../../../dataviews\";\r\nimport { EditPen, ArrowDown, Delete, Plus } from \"@element-plus/icons-vue\"\r\nimport { debounce } from \"lodash-es\"\r\n// 广告定义数据表\r\nconst adRequest = new DataViewRequest({ name: \"ad-define\", moduleName: \"cms\" });\r\n// cms 配置\r\nconst cmsSettings = useCmsSettings();\r\nconst props = defineProps({ partId: { type: String }, title: { type: String } })\r\n// 栏目广告\r\nconst partAdBanner = ref<any | null>(null);\r\nconst loading = ref(true);\r\nconst adContentForm = reactive<CmsAdContentsForm>(new CmsAdContentsForm({ cutSise: cmsSettings.part.bannerImageSize }))\r\nconst adDefineForm = reactive<CmsAdDefinesForm>(new CmsAdDefinesForm())\r\n\r\n// 内容添加之前监测广告是否存在不存在先添加广告\r\nadContentForm.beforeSubmitEvent.on(async ({ data }) => {\r\n\r\n if (partAdBanner.value) {\r\n data.adDefineId = partAdBanner.value.id as any;\r\n }\r\n else {\r\n try {\r\n\r\n const widthAndHeight = cmsSettings.part.bannerImageSize.split(\"*\");\r\n // 添加广告\r\n const result = await adRequest.add({ key: `part_${props.partId}`, desc: `${props.title}的Banner`, width: widthAndHeight[0], height: widthAndHeight[1] })\r\n\r\n if (result.data.code == 200) {\r\n partAdBanner.value = { id: result.data.data as string }\r\n data.adDefineId = result.data.data;\r\n }\r\n\r\n } catch (error) {\r\n Messager.error({ message: \"添加失败!\" });\r\n }\r\n }\r\n\r\n})\r\n\r\n// 添加完成则刷新\r\nadContentForm.submittedEvent.on(() => {\r\n loadPartAdDefineData(props.partId)\r\n})\r\n//加完成则刷新\r\nadDefineForm.submittedEvent.on(() => {\r\n loadPartAdDefineData(props.partId)\r\n})\r\n\r\n\r\n//加载栏目广告\r\nconst loadPartAdDefineData = async (partId: any) => {\r\n\r\n try {\r\n\r\n loading.value = true;\r\n const where = new Where()\r\n where.addCondition(\"key\", \"=\", `part_${partId}`);\r\n\r\n // 加载广告定义\r\n partAdBanner.value = (await adRequest.query({\r\n data: {\r\n pn: 1,\r\n pc: 1000000,\r\n condition: where\r\n }\r\n })).data.data[0];\r\n if (partAdBanner.value.width && partAdBanner.value.width) {\r\n adContentForm.changeCutSise(`${partAdBanner.value.width}*${partAdBanner.value.height}`)\r\n }\r\n\r\n } catch (e) {\r\n console.error(e)\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n//显示栏目广告的编辑弹窗\r\nconst showAdContentHandle = async (id: any) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: adContentForm as CmsAdContentsForm,\r\n recId: id\r\n })\r\n}\r\n//显示栏目广告定义的编辑弹窗\r\nconst showAdDefineHandle = async (id: any) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: adDefineForm as CmsAdDefinesForm,\r\n recId: partAdBanner.value.id\r\n })\r\n adDefineForm.getColumn(\"contents\")!.visible = false;\r\n adDefineForm.getColumn(\"key\")!.visible = false;\r\n adDefineForm.getColumn(\"desc\")!.visible = false;\r\n}\r\n\r\n// 组件挂载的时候\r\nonMounted(() => {\r\n watch(() => props.partId, id => {\r\n loadPartAdDefineData(id)\r\n }, { immediate: true })\r\n})\r\n\r\n</script>\r\n<style lang='scss'></style>\r\n"],"names":["DataViewRequest","cmsSettings","useCmsSettings","ref","reactive","CmsAdContentsForm","CmsAdDefinesForm","Messager","Where","Dialoger","onMounted","watch"],"mappings":"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"}
|
|
@@ -99,7 +99,13 @@ const ImageSelectPanel = /* @__PURE__ */ vue.defineComponent({
|
|
|
99
99
|
"label": "网络图片",
|
|
100
100
|
"name": "n"
|
|
101
101
|
}, {
|
|
102
|
-
default: () => [vue.createVNode(
|
|
102
|
+
default: () => [vue.createVNode(elementPlus.ElInput, {
|
|
103
|
+
"modelValue": modelValue.value,
|
|
104
|
+
"onUpdate:modelValue": ($event) => modelValue.value = $event,
|
|
105
|
+
"prefix-icon": elIcons.Share,
|
|
106
|
+
"style": "width: 100%",
|
|
107
|
+
"placeholder": "请输入链接地址"
|
|
108
|
+
}, null), vue.createVNode(ImageView, {
|
|
103
109
|
"src": vue.unref(modelValue)
|
|
104
110
|
}, null)]
|
|
105
111
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-select-panel.js","sources":["../../../../../../src/modules/ms/components/image-select/image-select-panel.tsx"],"sourcesContent":["\r\nimport { unref,ref,reactive,defineComponent, computed } from 'vue'\r\nimport { \r\n ElButton,ElTabs,ElTabPane,ElInput,ElImage,ElIcon\r\n} from \"element-plus\";\r\nimport { Share,UploadFilled,Picture } from \"@element-plus/icons-vue\";\r\nimport { MsMaterialTable } from \"../../../../modules/ms/dataviews/ms-material\";\r\nimport { MKMaterialList } from \"../../../../modules/ms/components/material-list\";\r\nimport { fileSelect } from \"@maketribe/utils\";\r\n\r\n/**\r\n * 图片预览显示\r\n */\r\nconst ImageView = defineComponent({\r\n props:[\"src\"],\r\n setup(props,{ emit }){\r\n\r\n return ()=>{\r\n\r\n return <ElImage style=\"background: #dedede;width: 100%; height: 480px;margin-top:10px;padding:10px;box-sizing: border-box;\" src={unref(props.src)} fit=\"contain\" v-slots={{\r\n error:()=>{\r\n return <div style=\"\r\n font-size: 50px;\r\n display: flex;\r\n align-content: center;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100%;\r\n \">\r\n <ElIcon><Picture /></ElIcon>\r\n </div>\r\n }\r\n }}>\r\n </ElImage>;\r\n }\r\n }\r\n})\r\n\r\n\r\nexport default defineComponent({\r\n name: 'ImageSelectPanelComponent',\r\n props:[\"modelValue\"],\r\n setup(props,{ emit }){\r\n\r\n const materialTable = reactive(new MsMaterialTable()) as MsMaterialTable;\r\n\r\n const modelValue = computed({\r\n get: () => props.modelValue,\r\n set: (v) => {\r\n emit(\"update:model-value\", v);\r\n },\r\n });\r\n // 激活的tab\r\n const activeTabName = ref(\"l\");\r\n // 选择素材\r\n materialTable.selectionChangeEvent.on(()=>{\r\n let id = materialTable.getSelection()[0];\r\n if(id){\r\n modelValue.value = materialTable.getList().find(item=>item.id == id)?.path;\r\n }\r\n else{\r\n modelValue.value = \"\";\r\n }\r\n })\r\n\r\n // 选择本地图片\r\n const selectLocalImage = async ()=>{\r\n\r\n const file = await fileSelect({ accept:\"image/*\"});\r\n \r\n if (file) {\r\n\r\n const fileRender = new FileReader();\r\n fileRender.onload = async (data:any)=>{\r\n modelValue.value = data.target.result as string;\r\n }\r\n fileRender.readAsDataURL(file)\r\n }\r\n }\r\n\r\n return ()=>{\r\n\r\n return <ElTabs style=\"min-height: 520px\" v-model={activeTabName.value}>\r\n <ElTabPane label=\"本地选择\" name=\"l\">\r\n <ElButton icon={UploadFilled} type=\"primary\" style=\"width: 100%\" onClick={selectLocalImage}>\r\n 选择本地文件\r\n </ElButton>\r\n <ImageView src={unref(modelValue)} />\r\n </ElTabPane>\r\n <ElTabPane label=\"素材库选择\" name=\"m\">\r\n <MKMaterialList style={{height:\"520px\"}} selectable materialTable={materialTable} allowMaterialTypeValues={[1]} />\r\n </ElTabPane>\r\n <ElTabPane label=\"网络图片\" name=\"n\">\r\n
|
|
1
|
+
{"version":3,"file":"image-select-panel.js","sources":["../../../../../../src/modules/ms/components/image-select/image-select-panel.tsx"],"sourcesContent":["\r\nimport { unref,ref,reactive,defineComponent, computed } from 'vue'\r\nimport { \r\n ElButton,ElTabs,ElTabPane,ElInput,ElImage,ElIcon\r\n} from \"element-plus\";\r\nimport { Share,UploadFilled,Picture } from \"@element-plus/icons-vue\";\r\nimport { MsMaterialTable } from \"../../../../modules/ms/dataviews/ms-material\";\r\nimport { MKMaterialList } from \"../../../../modules/ms/components/material-list\";\r\nimport { fileSelect } from \"@maketribe/utils\";\r\n\r\n/**\r\n * 图片预览显示\r\n */\r\nconst ImageView = defineComponent({\r\n props:[\"src\"],\r\n setup(props,{ emit }){\r\n\r\n return ()=>{\r\n\r\n return <ElImage style=\"background: #dedede;width: 100%; height: 480px;margin-top:10px;padding:10px;box-sizing: border-box;\" src={unref(props.src)} fit=\"contain\" v-slots={{\r\n error:()=>{\r\n return <div style=\"\r\n font-size: 50px;\r\n display: flex;\r\n align-content: center;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100%;\r\n \">\r\n <ElIcon><Picture /></ElIcon>\r\n </div>\r\n }\r\n }}>\r\n </ElImage>;\r\n }\r\n }\r\n})\r\n\r\n\r\nexport default defineComponent({\r\n name: 'ImageSelectPanelComponent',\r\n props:[\"modelValue\"],\r\n setup(props,{ emit }){\r\n\r\n const materialTable = reactive(new MsMaterialTable()) as MsMaterialTable;\r\n\r\n const modelValue = computed({\r\n get: () => props.modelValue,\r\n set: (v) => {\r\n emit(\"update:model-value\", v);\r\n },\r\n });\r\n // 激活的tab\r\n const activeTabName = ref(\"l\");\r\n // 选择素材\r\n materialTable.selectionChangeEvent.on(()=>{\r\n let id = materialTable.getSelection()[0];\r\n if(id){\r\n modelValue.value = materialTable.getList().find(item=>item.id == id)?.path;\r\n }\r\n else{\r\n modelValue.value = \"\";\r\n }\r\n })\r\n\r\n // 选择本地图片\r\n const selectLocalImage = async ()=>{\r\n\r\n const file = await fileSelect({ accept:\"image/*\"});\r\n \r\n if (file) {\r\n\r\n const fileRender = new FileReader();\r\n fileRender.onload = async (data:any)=>{\r\n modelValue.value = data.target.result as string;\r\n }\r\n fileRender.readAsDataURL(file)\r\n }\r\n }\r\n\r\n return ()=>{\r\n\r\n return <ElTabs style=\"min-height: 520px\" v-model={activeTabName.value}>\r\n <ElTabPane label=\"本地选择\" name=\"l\">\r\n <ElButton icon={UploadFilled} type=\"primary\" style=\"width: 100%\" onClick={selectLocalImage}>\r\n 选择本地文件\r\n </ElButton>\r\n <ImageView src={unref(modelValue)} />\r\n </ElTabPane>\r\n <ElTabPane label=\"素材库选择\" name=\"m\">\r\n <MKMaterialList style={{height:\"520px\"}} selectable materialTable={materialTable} allowMaterialTypeValues={[1]} />\r\n </ElTabPane>\r\n <ElTabPane label=\"网络图片\" name=\"n\">\r\n <ElInput v-model={modelValue.value} prefix-icon={Share} style=\"width: 100%\" placeholder=\"请输入链接地址\">\r\n </ElInput>\r\n <ImageView src={unref(modelValue)} />\r\n </ElTabPane>\r\n </ElTabs>;\r\n }\r\n }\r\n})\r\n"],"names":["ImageView","defineComponent","props","setup","emit","_createVNode","ElImage","unref","src","error","ElIcon","default","Picture","name","materialTable","reactive","MsMaterialTable","modelValue","computed","get","set","v","activeTabName","ref","selectionChangeEvent","on","id","getSelection","value","getList","find","item","path","selectLocalImage","file","fileSelect","accept","fileRender","FileReader","onload","data","target","result","readAsDataURL","ElTabs","$event","ElTabPane","ElButton","UploadFilled","_createTextVNode","MKMaterialList","height","ElInput","Share"],"mappings":"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"}
|