@vipl520/dk-ui 1.0.84 → 1.0.86
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/index.js +2 -33
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.min.mjs +1 -1
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +2 -33
- package/dist/web-types.json +1 -1
- package/es/index.mjs.map +1 -1
- package/es/poster-input/src/component/poster-content.vue.d.ts +0 -1
- package/es/poster-input/src/component/poster.vue.d.ts +0 -1
- package/es/poster-input/src/component/poster.vue2.mjs +0 -1
- package/es/poster-input/src/component/poster.vue2.mjs.map +1 -1
- package/es/table/src/components/ComSearch.vue2.mjs +2 -3
- package/es/table/src/components/ComSearch.vue2.mjs.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/poster-input/src/component/poster-content.vue.d.ts +0 -1
- package/lib/poster-input/src/component/poster.vue.d.ts +0 -1
- package/lib/poster-input/src/component/poster.vue2.js +0 -1
- package/lib/poster-input/src/component/poster.vue2.js.map +1 -1
- package/lib/table/src/components/ComSearch.vue2.js +2 -3
- package/lib/table/src/components/ComSearch.vue2.js.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
@@ -24333,11 +24333,10 @@ var _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
24333
24333
|
continue;
|
24334
24334
|
}
|
24335
24335
|
val = DkTable.comSearch.form[key + "-start"] + "," + DkTable.comSearch.form[key + "-end"];
|
24336
|
-
} else
|
24336
|
+
} else {
|
24337
24337
|
val = DkTable.comSearch.form[key];
|
24338
24338
|
}
|
24339
|
-
if (val) {
|
24340
|
-
console.log(11111);
|
24339
|
+
if (val !== void 0 && val !== "") {
|
24341
24340
|
comSearchData.push({
|
24342
24341
|
field: key,
|
24343
24342
|
val,
|
@@ -26796,36 +26795,6 @@ const posterInputProps = {
|
|
26796
26795
|
}
|
26797
26796
|
};
|
26798
26797
|
|
26799
|
-
function styleInject(css, ref) {
|
26800
|
-
if ( ref === void 0 ) ref = {};
|
26801
|
-
var insertAt = ref.insertAt;
|
26802
|
-
|
26803
|
-
if (!css || typeof document === 'undefined') { return; }
|
26804
|
-
|
26805
|
-
var head = document.head || document.getElementsByTagName('head')[0];
|
26806
|
-
var style = document.createElement('style');
|
26807
|
-
style.type = 'text/css';
|
26808
|
-
|
26809
|
-
if (insertAt === 'top') {
|
26810
|
-
if (head.firstChild) {
|
26811
|
-
head.insertBefore(style, head.firstChild);
|
26812
|
-
} else {
|
26813
|
-
head.appendChild(style);
|
26814
|
-
}
|
26815
|
-
} else {
|
26816
|
-
head.appendChild(style);
|
26817
|
-
}
|
26818
|
-
|
26819
|
-
if (style.styleSheet) {
|
26820
|
-
style.styleSheet.cssText = css;
|
26821
|
-
} else {
|
26822
|
-
style.appendChild(document.createTextNode(css));
|
26823
|
-
}
|
26824
|
-
}
|
26825
|
-
|
26826
|
-
var css_248z = ".vdr-container{position:absolute;border:1px solid transparent;box-sizing:border-box}.vdr-container.active{border-color:#000;border-style:dashed}.vdr-container.dragging{border-color:#000;border-style:solid}.vdr-handle{box-sizing:border-box;position:absolute;width:7px;height:7px;background:#f0f0f0;border:1px solid #333}.vdr-handle-tl{top:-4px;left:-4px;cursor:nw-resize}.vdr-handle-tm{top:-4px;left:50%;margin-left:-3px;cursor:n-resize}.vdr-handle-tr{top:-4px;right:-4px;cursor:ne-resize}.vdr-handle-ml{top:50%;margin-top:-3px;left:-4px;cursor:w-resize}.vdr-handle-mr{top:50%;margin-top:-3px;right:-4px;cursor:e-resize}.vdr-handle-bl{bottom:-4px;left:-4px;cursor:sw-resize}.vdr-handle-bm{bottom:-4px;left:50%;margin-left:-4px;cursor:s-resize}.vdr-handle-br{bottom:-4px;right:-4px;cursor:se-resize}";
|
26827
|
-
styleInject(css_248z);
|
26828
|
-
|
26829
26798
|
var _sfc_main$f = /* @__PURE__ */ defineComponent({
|
26830
26799
|
__name: "quick-action",
|
26831
26800
|
props: {
|
package/dist/web-types.json
CHANGED
package/es/index.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type { App } from 'vue'\nimport { Test } from './test'\nimport draggable from 'vuedraggable'\nimport Vue3DraggableResizable from 'vue3-draggable-resizable'\n\nimport { Group } from './group'\nimport { TableForm } from './table-form'\nimport { TinyEditor } from './tiny-editor'\nimport { Icon } from './icon'\nimport { ColorInput } from './color-input'\nimport { HotAreaInput } from './hot-area-input'\nimport { Dialog } from './dialog'\nimport { Form } from './form'\nimport { Attachment } from './attachment'\nimport { AttachmentDialog } from './attachment-dialog'\nimport { FileInput } from './file-input'\nimport { ImageInput } from './image-input'\nimport { AudioInput } from './audio-input'\nimport { VideoInput } from './video-input'\nimport { FileListInput } from './file-list-input'\nimport { ImageListInput } from './image-list-input'\nimport { AudioListInput } from './audio-list-input'\nimport { VideoListInput } from './video-list-input'\nimport { IconInput, IconContent, IconDialog } from './icon-input'\nimport { StyleInput } from './style-input'\nimport { BoxSizeInput } from './box-size-input'\nimport { StyleBoxInput } from './style-box-input'\nimport { StyleFontInput } from './style-font-input'\nimport { StyleBorderInput } from './style-border-input'\nimport { StyleBackgroundInput } from './style-background-input'\nimport { StyleShadowContent, StyleShadowInput } from './style-shadow-input'\nimport { StylePositionInput } from './style-position-input'\nimport { StyleNumberInput } from './style-number-input'\nimport { StyleCustomInput } from './style-custom-input'\nimport { PageDiy } from './page-diy'\nimport { Table } from './table'\nimport { Select } from './select'\nimport { Poster, PosterInput } from './poster-input'\nimport { StyleAnimationInput } from './style-animation-input'\nimport { AnimateSelect } from './animate-select'\nimport { UniIconInput } from './uni-icon-input'\nimport { UniIcon } from './uni-icon'\nimport { UrlInput } from './url-input'\nimport { DatePicker } from './date-picker'\n\nimport { setGlobalConfig, directives } from '@vipl520/utils'\nexport * from './tiny-editor'\nexport * from './icon'\nexport * from './group'\nexport * from './table-form'\nexport * from './color-input'\nexport * from './hot-area-input'\nexport * from './form'\nexport * from './attachment'\nexport * from './attachment-dialog'\nexport * from './file-input'\nexport * from './image-input'\nexport * from './audio-input'\nexport * from './video-input'\nexport * from './file-list-input'\nexport * from './image-list-input'\nexport * from './audio-list-input'\nexport * from './video-list-input'\nexport * from './icon-input'\nexport * from './page-diy'\nexport * from './box-size-input'\nexport * from './test'\nexport * from './style-input'\nexport * from './style-box-input'\nexport * from './style-font-input'\nexport * from './style-border-input'\nexport * from './style-shadow-input'\nexport * from './style-background-input'\nexport * from './style-position-input'\nexport * from './style-number-input'\nexport * from './style-custom-input'\nexport * from './table'\nexport * from './select'\nexport * from './poster-input'\nexport * from './style-animation-input'\nexport * from './animate-select'\nexport * from './uni-icon'\nexport * from './uni-icon-input'\nexport * from './url-input'\nexport * from './date-picker'\n\nconst components = [\n Test,\n Group,\n TableForm,\n // 富文本编辑器\n TinyEditor,\n // 图标\n Icon,\n // 颜色选择器\n ColorInput,\n // 热区选择器\n HotAreaInput,\n // 对话框\n Dialog,\n // json表单\n Form,\n // 附件\n Attachment,\n // 附件弹窗\n AttachmentDialog,\n // 文件选择器\n FileInput,\n // 图片选择器\n ImageInput,\n // 音频选择器\n AudioInput,\n // 视频选择器\n VideoInput,\n // 多文件选择器\n FileListInput,\n // 多图片选择器\n ImageListInput,\n // 多音频选择器\n AudioListInput,\n // 多视频选择器\n VideoListInput,\n // 图标选择器\n IconInput,\n // 图标展示框\n IconContent,\n // 图片弹出框\n IconDialog,\n // DIY编辑器\n PageDiy,\n // 尺寸输入框(带px/%/rem/等单位)\n BoxSizeInput,\n // DIV盒子编辑器(padding/margin/width/height)\n StyleBoxInput,\n // 文字样式编辑器\n StyleFontInput,\n // 边框样式编辑器\n StyleBorderInput,\n // 阴影编辑器\n StyleShadowInput,\n // 阴影编辑框\n StyleShadowContent,\n // 背景编辑器\n StyleBackgroundInput,\n // 合并样式编辑\n StyleInput,\n // 定位编辑器\n StylePositionInput,\n // 样式文字\n StyleNumberInput,\n // 动画配置\n StyleAnimationInput,\n // 自定义样式\n StyleCustomInput,\n // 动画class选择\n AnimateSelect,\n // 数据表格\n Table,\n // 选择\n Select,\n // 表单组/对象表单\n // 海报选择器\n PosterInput,\n // 海报\n Poster,\n Vue3DraggableResizable,\n draggable,\n UniIconInput,\n UniIcon,\n UrlInput,\n DatePicker,\n]\n\nexport const install = (app: App, option: any = {}) => {\n components.forEach((item) => {\n if (item.install!) {\n app.use(item)\n } else if (item.name) {\n app.component(item.name, item)\n }\n })\n directives(app)\n setGlobalConfig(option)\n}\n\nexport default {\n install,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFA,MAAM,UAAa,GAAA;AAAA,EACjB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,IAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,YAAA;AAAA;AAAA,EAEA,MAAA;AAAA;AAAA,EAEA,IAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,gBAAA;AAAA;AAAA,EAEA,SAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,aAAA;AAAA;AAAA,EAEA,cAAA;AAAA;AAAA,EAEA,cAAA;AAAA;AAAA,EAEA,cAAA;AAAA;AAAA,EAEA,SAAA;AAAA;AAAA,EAEA,WAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,OAAA;AAAA;AAAA,EAEA,YAAA;AAAA;AAAA,EAEA,aAAA;AAAA;AAAA,EAEA,cAAA;AAAA;AAAA,EAEA,gBAAA;AAAA;AAAA,EAEA,gBAAA;AAAA;AAAA,EAEA,kBAAA;AAAA;AAAA,EAEA,oBAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,kBAAA;AAAA;AAAA,EAEA,gBAAA;AAAA;AAAA,EAEA,mBAAA;AAAA;AAAA,EAEA,gBAAA;AAAA;AAAA,EAEA,aAAA;AAAA;AAAA,EAEA,KAAA;AAAA;AAAA,EAEA,MAAA;AAAA;AAAA;AAAA,EAGA,WAAA;AAAA;AAAA,EAEA,MAAA;AAAA,EACA,sBAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AACF,CAAA,CAAA;AAEO,MAAM,OAAU,GAAA,CAAC,GAAU,EAAA,MAAA,GAAc,EAAO,KAAA;
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type { App } from 'vue'\nimport { Test } from './test'\nimport draggable from 'vuedraggable'\nimport Vue3DraggableResizable from 'vue3-draggable-resizable'\n\nimport { Group } from './group'\nimport { TableForm } from './table-form'\nimport { TinyEditor } from './tiny-editor'\nimport { Icon } from './icon'\nimport { ColorInput } from './color-input'\nimport { HotAreaInput } from './hot-area-input'\nimport { Dialog } from './dialog'\nimport { Form } from './form'\nimport { Attachment } from './attachment'\nimport { AttachmentDialog } from './attachment-dialog'\nimport { FileInput } from './file-input'\nimport { ImageInput } from './image-input'\nimport { AudioInput } from './audio-input'\nimport { VideoInput } from './video-input'\nimport { FileListInput } from './file-list-input'\nimport { ImageListInput } from './image-list-input'\nimport { AudioListInput } from './audio-list-input'\nimport { VideoListInput } from './video-list-input'\nimport { IconInput, IconContent, IconDialog } from './icon-input'\nimport { StyleInput } from './style-input'\nimport { BoxSizeInput } from './box-size-input'\nimport { StyleBoxInput } from './style-box-input'\nimport { StyleFontInput } from './style-font-input'\nimport { StyleBorderInput } from './style-border-input'\nimport { StyleBackgroundInput } from './style-background-input'\nimport { StyleShadowContent, StyleShadowInput } from './style-shadow-input'\nimport { StylePositionInput } from './style-position-input'\nimport { StyleNumberInput } from './style-number-input'\nimport { StyleCustomInput } from './style-custom-input'\nimport { PageDiy } from './page-diy'\nimport { Table } from './table'\nimport { Select } from './select'\nimport { Poster, PosterInput } from './poster-input'\nimport { StyleAnimationInput } from './style-animation-input'\nimport { AnimateSelect } from './animate-select'\nimport { UniIconInput } from './uni-icon-input'\nimport { UniIcon } from './uni-icon'\nimport { UrlInput } from './url-input'\nimport { DatePicker } from './date-picker'\n\nimport { setGlobalConfig, directives } from '@vipl520/utils'\nexport * from './tiny-editor'\nexport * from './icon'\nexport * from './group'\nexport * from './table-form'\nexport * from './color-input'\nexport * from './hot-area-input'\nexport * from './form'\nexport * from './attachment'\nexport * from './attachment-dialog'\nexport * from './file-input'\nexport * from './image-input'\nexport * from './audio-input'\nexport * from './video-input'\nexport * from './file-list-input'\nexport * from './image-list-input'\nexport * from './audio-list-input'\nexport * from './video-list-input'\nexport * from './icon-input'\nexport * from './page-diy'\nexport * from './box-size-input'\nexport * from './test'\nexport * from './style-input'\nexport * from './style-box-input'\nexport * from './style-font-input'\nexport * from './style-border-input'\nexport * from './style-shadow-input'\nexport * from './style-background-input'\nexport * from './style-position-input'\nexport * from './style-number-input'\nexport * from './style-custom-input'\nexport * from './table'\nexport * from './select'\nexport * from './poster-input'\nexport * from './style-animation-input'\nexport * from './animate-select'\nexport * from './uni-icon'\nexport * from './uni-icon-input'\nexport * from './url-input'\nexport * from './date-picker'\n\nconst components = [\n Test,\n Group,\n TableForm,\n // 富文本编辑器\n TinyEditor,\n // 图标\n Icon,\n // 颜色选择器\n ColorInput,\n // 热区选择器\n HotAreaInput,\n // 对话框\n Dialog,\n // json表单\n Form,\n // 附件\n Attachment,\n // 附件弹窗\n AttachmentDialog,\n // 文件选择器\n FileInput,\n // 图片选择器\n ImageInput,\n // 音频选择器\n AudioInput,\n // 视频选择器\n VideoInput,\n // 多文件选择器\n FileListInput,\n // 多图片选择器\n ImageListInput,\n // 多音频选择器\n AudioListInput,\n // 多视频选择器\n VideoListInput,\n // 图标选择器\n IconInput,\n // 图标展示框\n IconContent,\n // 图片弹出框\n IconDialog,\n // DIY编辑器\n PageDiy,\n // 尺寸输入框(带px/%/rem/等单位)\n BoxSizeInput,\n // DIV盒子编辑器(padding/margin/width/height)\n StyleBoxInput,\n // 文字样式编辑器\n StyleFontInput,\n // 边框样式编辑器\n StyleBorderInput,\n // 阴影编辑器\n StyleShadowInput,\n // 阴影编辑框\n StyleShadowContent,\n // 背景编辑器\n StyleBackgroundInput,\n // 合并样式编辑\n StyleInput,\n // 定位编辑器\n StylePositionInput,\n // 样式文字\n StyleNumberInput,\n // 动画配置\n StyleAnimationInput,\n // 自定义样式\n StyleCustomInput,\n // 动画class选择\n AnimateSelect,\n // 数据表格\n Table,\n // 选择\n Select,\n // 表单组/对象表单\n // 海报选择器\n PosterInput,\n // 海报\n Poster,\n Vue3DraggableResizable,\n draggable,\n UniIconInput,\n UniIcon,\n UrlInput,\n DatePicker,\n]\n\nexport const install = (app: App, option: any = {}) => {\n // 动态加载Vue3DraggableResizable的CSS,避免在Nuxt环境中的冲突\n // if (typeof window !== 'undefined' && !option.disableDraggableCSS) {\n // try {\n // import('vue3-draggable-resizable/dist/Vue3DraggableResizable.css')\n // } catch (e) {\n // console.warn('Failed to load vue3-draggable-resizable CSS:', e)\n // }\n // }\n\n components.forEach((item) => {\n if (item.install!) {\n app.use(item)\n } else if (item.name) {\n app.component(item.name, item)\n }\n })\n directives(app)\n setGlobalConfig(option)\n}\n\nexport default {\n install,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFA,MAAM,UAAa,GAAA;AAAA,EACjB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,IAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,YAAA;AAAA;AAAA,EAEA,MAAA;AAAA;AAAA,EAEA,IAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,gBAAA;AAAA;AAAA,EAEA,SAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,aAAA;AAAA;AAAA,EAEA,cAAA;AAAA;AAAA,EAEA,cAAA;AAAA;AAAA,EAEA,cAAA;AAAA;AAAA,EAEA,SAAA;AAAA;AAAA,EAEA,WAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,OAAA;AAAA;AAAA,EAEA,YAAA;AAAA;AAAA,EAEA,aAAA;AAAA;AAAA,EAEA,cAAA;AAAA;AAAA,EAEA,gBAAA;AAAA;AAAA,EAEA,gBAAA;AAAA;AAAA,EAEA,kBAAA;AAAA;AAAA,EAEA,oBAAA;AAAA;AAAA,EAEA,UAAA;AAAA;AAAA,EAEA,kBAAA;AAAA;AAAA,EAEA,gBAAA;AAAA;AAAA,EAEA,mBAAA;AAAA;AAAA,EAEA,gBAAA;AAAA;AAAA,EAEA,aAAA;AAAA;AAAA,EAEA,KAAA;AAAA;AAAA,EAEA,MAAA;AAAA;AAAA;AAAA,EAGA,WAAA;AAAA;AAAA,EAEA,MAAA;AAAA,EACA,sBAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AACF,CAAA,CAAA;AAEO,MAAM,OAAU,GAAA,CAAC,GAAU,EAAA,MAAA,GAAc,EAAO,KAAA;AAUrD,EAAW,UAAA,CAAA,OAAA,CAAQ,CAAC,IAAS,KAAA;AAC3B,IAAA,IAAI,KAAK,OAAU,EAAA;AACjB,MAAA,GAAA,CAAI,IAAI,IAAI,CAAA,CAAA;AAAA,KACd,MAAA,IAAW,KAAK,IAAM,EAAA;AACpB,MAAI,GAAA,CAAA,SAAA,CAAU,IAAK,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AAAA,KAC/B;AAAA,GACD,CAAA,CAAA;AACD,EAAA,UAAA,CAAW,GAAG,CAAA,CAAA;AACd,EAAA,eAAA,CAAgB,MAAM,CAAA,CAAA;AACxB,EAAA;AAEA,YAAe;AAAA,EACb,OAAA;AACF,CAAA;;;;"}
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import { createElementVNode, createTextVNode, defineComponent, ref, reactive, computed, provide, watch, onMounted, resolveComponent, openBlock, createElementBlock, normalizeStyle, withModifiers, createBlock, createCommentVNode, createVNode, withCtx, Fragment, renderList, resolveDynamicComponent, toDisplayString } from 'vue';
|
2
2
|
import { defaultViews } from './config.mjs';
|
3
|
-
import 'vue3-draggable-resizable/dist/Vue3DraggableResizable.css';
|
4
3
|
import DkPosterViewName from './views/DkPosterViewName.vue.mjs';
|
5
4
|
import DkPosterViewText from './views/DkPosterViewText.vue.mjs';
|
6
5
|
import DkPosterViewImage from './views/DkPosterViewImage.vue.mjs';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"poster.vue2.mjs","sources":["../../../../src/poster-input/src/component/poster.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n name: 'DkPoster',\n components: {\n DkPosterViewName,\n DkPosterViewImage,\n DkPosterViewText,\n DkPosterViewAvatar,\n DkPosterViewQrcode,\n },\n});\n</script>\n<template>\n <div class=\"dk-poster\">\n <div class=\"poster-draw\">\n <div class=\"poster-body\">\n <div\n class=\"poster-content\"\n :style=\"{\n width: posterData.width + 'px',\n height: posterData.height + 'px',\n borderRadius: posterData.borderRadius + 'px',\n backgroundImage: 'url(' + posterData.background + ')',\n }\"\n style=\"background-size: 100% 100%\"\n @contextmenu.prevent\n >\n <el-empty\n v-if=\"!posterData.background\"\n description=\"请上传一张背景图\"\n style=\"position: absolute; width: 100%; height: 80%; user-select: none\"\n />\n <DraggableContainer\n ref=\"draggableContainer\"\n :reference-line-visible=\"formTools.refLine\"\n :disabled=\"!formTools.snap\"\n :adsorb-cols=\"adsorb.cols\"\n :adsorb-rows=\"adsorb.rows\"\n >\n <vue3-draggable-resizable\n v-for=\"(item, key) in posterData.views\"\n :key=\"key\"\n ref=\"draggables\"\n v-model:h=\"item.css.height\"\n v-model:x=\"item.css.left\"\n v-model:y=\"item.css.top\"\n v-model:w=\"item.css.width\"\n :init-w=\"item.css.width\"\n :init-h=\"item.css.height\"\n :parent=\"true\"\n style=\"cursor: move\"\n :is-conflict-check=\"formTools.isConflictCheck\"\n :snap=\"formTools.snap\"\n :snap-tolerance=\"formTools.snapTolerance\"\n :min-width=\"20\"\n :min-height=\"20\"\n :lock-aspect-ratio=\"item.lockAspectRatio\"\n @resizing=\"onResize\"\n @mousedown=\"index = key\"\n >\n <div style=\"position: relative\">\n <component :is=\"item.component\" :key=\"key\" :item=\"item\" :style=\"getBgStyle(item)\" :index=\"index\" />\n </div>\n </vue3-draggable-resizable>\n </DraggableContainer>\n </div>\n </div>\n <!--悬浮控件-->\n <div class=\"snap-tolerance\">\n <el-form :inline=\"true\" :model=\"formTools\" class=\"form-inline\" size=\"small\">\n <el-form-item label=\"对齐检测\">\n <el-switch v-model=\"formTools.snap\" />\n </el-form-item>\n <el-form-item v-if=\"formTools.snap\" label=\"辅助线\">\n <el-switch v-model=\"formTools.refLine\" />\n </el-form-item>\n </el-form>\n </div>\n <!--悬浮控件-->\n </div>\n <!-- 海报组件-->\n <el-form ref=\"form\" label-width=\"50px\" label-position=\"left\">\n <h2 style=\"padding: 10px; margin: 10px; font-size: 20px\">海报配置</h2>\n <el-row :gutter=\"20\" style=\"width: 100%; height: 600px; padding: 0 20px\">\n <el-col :sm=\"24\">\n <el-form-item label=\"元素\">\n <div class=\"view-buttons\">\n <el-button type=\"primary\" size=\"small\" :disabled=\"viewCount['avatar'] >= 1\" @click=\"addView('avatar')\">\n 用户头像\n </el-button>\n <el-button type=\"warning\" size=\"small\" :disabled=\"viewCount['qrcode'] >= 1\" @click=\"addView('qrcode')\">\n 二维码\n </el-button>\n <el-button type=\"danger\" size=\"small\" :disabled=\"viewCount['name'] >= 1\" @click=\"addView('name')\">\n 用户昵称\n </el-button>\n <el-button\n v-for=\"(item, key) in props.views\"\n :key=\"key\"\n type=\"primary\"\n :disabled=\"viewCount[item.name] >= item.count\"\n size=\"small\"\n @click=\"addView(item.name)\"\n >{{ item.text }}\n </el-button>\n </div>\n <div style=\"font-size: 12px; color: #999\">\n 点击元素添加到左侧拖拽框中,<b style=\"color: #000\">右键</b>即可编辑模块\n </div>\n </el-form-item>\n </el-col>\n <el-col :sm=\"24\">\n <el-form-item label=\"背景\">\n <dk-image-input v-model=\"posterData.background\" @input=\"resetSize()\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"宽度\">\n <el-slider v-model=\"posterData.width\" :min=\"100\" :max=\"600\" show-input @change=\"checkParentSize()\">\n <template #append>px</template>\n </el-slider>\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"高度\">\n <el-slider v-model=\"posterData.height\" :min=\"100\" :max=\"600\" show-input @change=\"checkParentSize()\">\n <template #append>px</template>\n </el-slider>\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"弧度\">\n <el-slider v-model=\"posterData.borderRadius\" :min=\"0\" :max=\"20\" show-input />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <div style=\"width: 100%; text-align: center\">\n <el-button style=\"width: 30%\" @click=\"resetSize()\">重置</el-button>\n <el-button type=\"primary\" style=\"width: 50%\" @click=\"submit\">确定</el-button>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { reactive, ref, computed, watch, provide, onMounted } from 'vue'\nimport { defaultViews } from './config'\n// import Vue3DraggableResizable, { DraggableContainer } from 'vue3-draggable-resizable'\nimport 'vue3-draggable-resizable/dist/Vue3DraggableResizable.css'\nimport DkPosterViewName from './views/DkPosterViewName.vue'\nimport DkPosterViewText from './views/DkPosterViewText.vue'\nimport DkPosterViewImage from './views/DkPosterViewImage.vue'\nimport DkPosterViewAvatar from './views/DkPosterViewAvatar.vue'\nimport DkPosterViewQrcode from './views/DkPosterViewQrcode.vue'\n\n\nconst props = defineProps({\n modelValue: {\n default: () => {\n return {}\n },\n type: Object,\n },\n views: {\n default: () => {\n return []\n },\n type: Array as any,\n },\n})\nconst posterRef = ref()\n// const posterData = ref(props.modelValue)\nconst posterData: any = reactive({\n background: '',\n width: 320,\n height: 500,\n borderRadius: 0,\n views: [],\n})\nconst formTools: any = reactive({\n refLine: true,\n snap: true,\n edit: true,\n border: 10,\n})\n\nconst viewCount = computed(() => {\n const count: any = {}\n const views: any = posterData.views\n if (views) {\n for (let i = 0; i < views.length; i++) {\n if (!count[views[i].name]) {\n count[views[i].name] = 1\n } else {\n count[views[i].name]++\n }\n }\n }\n return count\n})\n\nconst emit = defineEmits(['input', 'update:modelValue', 'change', 'submit'])\n\nconst submit = () => {\n emit('input', posterData)\n emit('update:modelValue', posterData)\n emit('submit', posterData)\n emit('change', posterData)\n}\nconst resetSize = () => {\n if (posterData.background) {\n getImageSize(posterData.background)\n .then((image: any) => {\n let tempWidth\n let tempHeight\n const maxHeight = 600\n const maxWidth = 600\n if (image.width / image.height >= maxWidth / maxHeight) {\n if (image.width > maxWidth) {\n tempWidth = maxWidth\n // 按原图片的比例进行缩放\n tempHeight = (image.height * maxWidth) / image.width\n } else {\n tempWidth = image.width\n tempHeight = image.height\n }\n } else {\n if (image.height > maxHeight) {\n tempHeight = maxHeight\n // 按原图片的比例进行缩放\n tempWidth = (image.width * maxHeight) / image.height\n } else {\n tempWidth = image.width\n tempHeight = image.height\n }\n }\n posterData.width = parseInt(tempWidth)\n posterData.height = parseInt(tempHeight)\n setTimeout(() => {\n checkParentSize()\n }, 200)\n })\n .catch(() => {})\n }\n}\n\nconst getImageSize = (url: any) => {\n return new Promise(function (resolve, reject) {\n const image = new Image()\n image.onload = function () {\n resolve({\n width: image.width,\n height: image.height,\n })\n }\n image.onerror = function () {\n reject(new Error('error'))\n }\n image.src = url\n })\n}\n// const checkParentSize = () => {\n// posterRef.value.checkParentSize()\n// }\n\nconst addView = (name: string) => {\n // if (name == 'text' || name == 'image') {\n // posterRef.value.add(name, viewNumber(name))\n // } else {\n // posterData.value.add(name)\n // }\n\n add(name)\n}\n\nconst viewNumber = (name: any) => {\n const views = posterData.views\n let count = 1\n for (let i = 0; i < views.length; i++) {\n if (views[i].name == name) {\n count++\n }\n }\n return count\n}\n\n// watch(\n// () => props.modelValue,\n// (n, o) => {\n// posterData = props.modelValue\n// }\n// )\n\n// content的\n\nconst draggables = ref()\nconst draggableContainer = ref()\n\nconst index = ref(0)\nprovide('posterData', posterData)\nconst test = () => {\n console.log(posterData.views)\n}\n\nconst onDrag = (p: any) => {\n const css = posterData.views[index.value].css\n console.log('onDrag', p)\n css.left = p.x\n css.top = p.y\n}\nconst onResize = (p: any) => {\n const css = posterData.views[index.value].css\n css.left = p.x\n css.top = p.y\n css.width = p.w\n css.height = p.h\n}\nconst getBgStyle = (item: any) => {\n if (item.type == 'image') {\n return {\n width: item.css.width + 'px',\n height: item.css.height + 'px',\n borderColor: item.css.borderColor || '#fff',\n borderStyle: 'solid',\n borderWidth: item.css.borderWidth + 'px',\n borderRadius: item.css.borderRadius + 'px',\n top: -parseInt(item.css.borderWidth) + 'px',\n left: -parseInt(item.css.borderWidth) + 'px',\n }\n } else {\n return {}\n }\n}\n\nconst add = (name = 'avatar') => {\n const allViews = defaultViews.concat(props.views as any)\n for (let i = 0; i < allViews.length; i++) {\n if (allViews[i].name == name) {\n // view\n const view = JSON.parse(JSON.stringify(allViews[i]))\n posterData.views.push(view)\n }\n }\n}\n\nconst checkParentSize = () => {\n // 刷新大小检测\n if (draggables.value) {\n console.log('draggables', draggables)\n for (let i = 0; i < draggables.value.length; i++) {\n const draggable = draggables.value[i]\n draggable.parentHeight = posterData.height\n draggable.parentWidth = posterData.width\n\n if (posterData.width < draggable.left + draggable.initW) {\n draggable.left = posterData.width\n }\n if (posterData.height < draggable.top + draggable.initH) {\n draggable.top = posterData.height\n }\n }\n }\n}\n\nconst adsorb = computed(() => {\n const border = formTools?.border\n const height = posterData.height\n const width = posterData.width\n return {\n cols: [border, width - border],\n rows: [border, height - border],\n }\n})\n\nwatch(\n () => props.modelValue,\n (n, o) => {\n console.log('1111')\n // initPosterDraggable()\n }\n)\n\nconst initPosterDraggable = () => {\n console.log('initPosterDraggable')\n posterData.background = props.modelValue.background\n posterData.width = props.modelValue.width\n posterData.height = props.modelValue.height\n posterData.borderRadius = props.modelValue.borderRadius\n posterData.views = []\n for (let i = 0; i < props.modelValue.views.length; i++) {\n posterData.views.push(props.modelValue.views[i])\n }\n}\n\nonMounted(() => {\n initPosterDraggable()\n})\n\ndefineExpose({\n checkParentSize,\n})\n</script>\n<style scoped></style>\n"],"names":["__MACROS_defineComponent"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"poster.vue2.mjs","sources":["../../../../src/poster-input/src/component/poster.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n name: 'DkPoster',\n components: {\n DkPosterViewName,\n DkPosterViewImage,\n DkPosterViewText,\n DkPosterViewAvatar,\n DkPosterViewQrcode,\n },\n});\n</script>\n<template>\n <div class=\"dk-poster\">\n <div class=\"poster-draw\">\n <div class=\"poster-body\">\n <div\n class=\"poster-content\"\n :style=\"{\n width: posterData.width + 'px',\n height: posterData.height + 'px',\n borderRadius: posterData.borderRadius + 'px',\n backgroundImage: 'url(' + posterData.background + ')',\n }\"\n style=\"background-size: 100% 100%\"\n @contextmenu.prevent\n >\n <el-empty\n v-if=\"!posterData.background\"\n description=\"请上传一张背景图\"\n style=\"position: absolute; width: 100%; height: 80%; user-select: none\"\n />\n <DraggableContainer\n ref=\"draggableContainer\"\n :reference-line-visible=\"formTools.refLine\"\n :disabled=\"!formTools.snap\"\n :adsorb-cols=\"adsorb.cols\"\n :adsorb-rows=\"adsorb.rows\"\n >\n <vue3-draggable-resizable\n v-for=\"(item, key) in posterData.views\"\n :key=\"key\"\n ref=\"draggables\"\n v-model:h=\"item.css.height\"\n v-model:x=\"item.css.left\"\n v-model:y=\"item.css.top\"\n v-model:w=\"item.css.width\"\n :init-w=\"item.css.width\"\n :init-h=\"item.css.height\"\n :parent=\"true\"\n style=\"cursor: move\"\n :is-conflict-check=\"formTools.isConflictCheck\"\n :snap=\"formTools.snap\"\n :snap-tolerance=\"formTools.snapTolerance\"\n :min-width=\"20\"\n :min-height=\"20\"\n :lock-aspect-ratio=\"item.lockAspectRatio\"\n @resizing=\"onResize\"\n @mousedown=\"index = key\"\n >\n <div style=\"position: relative\">\n <component :is=\"item.component\" :key=\"key\" :item=\"item\" :style=\"getBgStyle(item)\" :index=\"index\" />\n </div>\n </vue3-draggable-resizable>\n </DraggableContainer>\n </div>\n </div>\n <!--悬浮控件-->\n <div class=\"snap-tolerance\">\n <el-form :inline=\"true\" :model=\"formTools\" class=\"form-inline\" size=\"small\">\n <el-form-item label=\"对齐检测\">\n <el-switch v-model=\"formTools.snap\" />\n </el-form-item>\n <el-form-item v-if=\"formTools.snap\" label=\"辅助线\">\n <el-switch v-model=\"formTools.refLine\" />\n </el-form-item>\n </el-form>\n </div>\n <!--悬浮控件-->\n </div>\n <!-- 海报组件-->\n <el-form ref=\"form\" label-width=\"50px\" label-position=\"left\">\n <h2 style=\"padding: 10px; margin: 10px; font-size: 20px\">海报配置</h2>\n <el-row :gutter=\"20\" style=\"width: 100%; height: 600px; padding: 0 20px\">\n <el-col :sm=\"24\">\n <el-form-item label=\"元素\">\n <div class=\"view-buttons\">\n <el-button type=\"primary\" size=\"small\" :disabled=\"viewCount['avatar'] >= 1\" @click=\"addView('avatar')\">\n 用户头像\n </el-button>\n <el-button type=\"warning\" size=\"small\" :disabled=\"viewCount['qrcode'] >= 1\" @click=\"addView('qrcode')\">\n 二维码\n </el-button>\n <el-button type=\"danger\" size=\"small\" :disabled=\"viewCount['name'] >= 1\" @click=\"addView('name')\">\n 用户昵称\n </el-button>\n <el-button\n v-for=\"(item, key) in props.views\"\n :key=\"key\"\n type=\"primary\"\n :disabled=\"viewCount[item.name] >= item.count\"\n size=\"small\"\n @click=\"addView(item.name)\"\n >{{ item.text }}\n </el-button>\n </div>\n <div style=\"font-size: 12px; color: #999\">\n 点击元素添加到左侧拖拽框中,<b style=\"color: #000\">右键</b>即可编辑模块\n </div>\n </el-form-item>\n </el-col>\n <el-col :sm=\"24\">\n <el-form-item label=\"背景\">\n <dk-image-input v-model=\"posterData.background\" @input=\"resetSize()\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"宽度\">\n <el-slider v-model=\"posterData.width\" :min=\"100\" :max=\"600\" show-input @change=\"checkParentSize()\">\n <template #append>px</template>\n </el-slider>\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"高度\">\n <el-slider v-model=\"posterData.height\" :min=\"100\" :max=\"600\" show-input @change=\"checkParentSize()\">\n <template #append>px</template>\n </el-slider>\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"弧度\">\n <el-slider v-model=\"posterData.borderRadius\" :min=\"0\" :max=\"20\" show-input />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <div style=\"width: 100%; text-align: center\">\n <el-button style=\"width: 30%\" @click=\"resetSize()\">重置</el-button>\n <el-button type=\"primary\" style=\"width: 50%\" @click=\"submit\">确定</el-button>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { reactive, ref, computed, watch, provide, onMounted } from 'vue'\nimport { defaultViews } from './config'\n// import Vue3DraggableResizable, { DraggableContainer } from 'vue3-draggable-resizable'\nimport DkPosterViewName from './views/DkPosterViewName.vue'\nimport DkPosterViewText from './views/DkPosterViewText.vue'\nimport DkPosterViewImage from './views/DkPosterViewImage.vue'\nimport DkPosterViewAvatar from './views/DkPosterViewAvatar.vue'\nimport DkPosterViewQrcode from './views/DkPosterViewQrcode.vue'\n\n\nconst props = defineProps({\n modelValue: {\n default: () => {\n return {}\n },\n type: Object,\n },\n views: {\n default: () => {\n return []\n },\n type: Array as any,\n },\n})\nconst posterRef = ref()\n// const posterData = ref(props.modelValue)\nconst posterData: any = reactive({\n background: '',\n width: 320,\n height: 500,\n borderRadius: 0,\n views: [],\n})\nconst formTools: any = reactive({\n refLine: true,\n snap: true,\n edit: true,\n border: 10,\n})\n\nconst viewCount = computed(() => {\n const count: any = {}\n const views: any = posterData.views\n if (views) {\n for (let i = 0; i < views.length; i++) {\n if (!count[views[i].name]) {\n count[views[i].name] = 1\n } else {\n count[views[i].name]++\n }\n }\n }\n return count\n})\n\nconst emit = defineEmits(['input', 'update:modelValue', 'change', 'submit'])\n\nconst submit = () => {\n emit('input', posterData)\n emit('update:modelValue', posterData)\n emit('submit', posterData)\n emit('change', posterData)\n}\nconst resetSize = () => {\n if (posterData.background) {\n getImageSize(posterData.background)\n .then((image: any) => {\n let tempWidth\n let tempHeight\n const maxHeight = 600\n const maxWidth = 600\n if (image.width / image.height >= maxWidth / maxHeight) {\n if (image.width > maxWidth) {\n tempWidth = maxWidth\n // 按原图片的比例进行缩放\n tempHeight = (image.height * maxWidth) / image.width\n } else {\n tempWidth = image.width\n tempHeight = image.height\n }\n } else {\n if (image.height > maxHeight) {\n tempHeight = maxHeight\n // 按原图片的比例进行缩放\n tempWidth = (image.width * maxHeight) / image.height\n } else {\n tempWidth = image.width\n tempHeight = image.height\n }\n }\n posterData.width = parseInt(tempWidth)\n posterData.height = parseInt(tempHeight)\n setTimeout(() => {\n checkParentSize()\n }, 200)\n })\n .catch(() => {})\n }\n}\n\nconst getImageSize = (url: any) => {\n return new Promise(function (resolve, reject) {\n const image = new Image()\n image.onload = function () {\n resolve({\n width: image.width,\n height: image.height,\n })\n }\n image.onerror = function () {\n reject(new Error('error'))\n }\n image.src = url\n })\n}\n// const checkParentSize = () => {\n// posterRef.value.checkParentSize()\n// }\n\nconst addView = (name: string) => {\n // if (name == 'text' || name == 'image') {\n // posterRef.value.add(name, viewNumber(name))\n // } else {\n // posterData.value.add(name)\n // }\n\n add(name)\n}\n\nconst viewNumber = (name: any) => {\n const views = posterData.views\n let count = 1\n for (let i = 0; i < views.length; i++) {\n if (views[i].name == name) {\n count++\n }\n }\n return count\n}\n\n// watch(\n// () => props.modelValue,\n// (n, o) => {\n// posterData = props.modelValue\n// }\n// )\n\n// content的\n\nconst draggables = ref()\nconst draggableContainer = ref()\n\nconst index = ref(0)\nprovide('posterData', posterData)\nconst test = () => {\n console.log(posterData.views)\n}\n\nconst onDrag = (p: any) => {\n const css = posterData.views[index.value].css\n console.log('onDrag', p)\n css.left = p.x\n css.top = p.y\n}\nconst onResize = (p: any) => {\n const css = posterData.views[index.value].css\n css.left = p.x\n css.top = p.y\n css.width = p.w\n css.height = p.h\n}\nconst getBgStyle = (item: any) => {\n if (item.type == 'image') {\n return {\n width: item.css.width + 'px',\n height: item.css.height + 'px',\n borderColor: item.css.borderColor || '#fff',\n borderStyle: 'solid',\n borderWidth: item.css.borderWidth + 'px',\n borderRadius: item.css.borderRadius + 'px',\n top: -parseInt(item.css.borderWidth) + 'px',\n left: -parseInt(item.css.borderWidth) + 'px',\n }\n } else {\n return {}\n }\n}\n\nconst add = (name = 'avatar') => {\n const allViews = defaultViews.concat(props.views as any)\n for (let i = 0; i < allViews.length; i++) {\n if (allViews[i].name == name) {\n // view\n const view = JSON.parse(JSON.stringify(allViews[i]))\n posterData.views.push(view)\n }\n }\n}\n\nconst checkParentSize = () => {\n // 刷新大小检测\n if (draggables.value) {\n console.log('draggables', draggables)\n for (let i = 0; i < draggables.value.length; i++) {\n const draggable = draggables.value[i]\n draggable.parentHeight = posterData.height\n draggable.parentWidth = posterData.width\n\n if (posterData.width < draggable.left + draggable.initW) {\n draggable.left = posterData.width\n }\n if (posterData.height < draggable.top + draggable.initH) {\n draggable.top = posterData.height\n }\n }\n }\n}\n\nconst adsorb = computed(() => {\n const border = formTools?.border\n const height = posterData.height\n const width = posterData.width\n return {\n cols: [border, width - border],\n rows: [border, height - border],\n }\n})\n\nwatch(\n () => props.modelValue,\n (n, o) => {\n console.log('1111')\n // initPosterDraggable()\n }\n)\n\nconst initPosterDraggable = () => {\n console.log('initPosterDraggable')\n posterData.background = props.modelValue.background\n posterData.width = props.modelValue.width\n posterData.height = props.modelValue.height\n posterData.borderRadius = props.modelValue.borderRadius\n posterData.views = []\n for (let i = 0; i < props.modelValue.views.length; i++) {\n posterData.views.push(props.modelValue.views[i])\n }\n}\n\nonMounted(() => {\n initPosterDraggable()\n})\n\ndefineExpose({\n checkParentSize,\n})\n</script>\n<style scoped></style>\n"],"names":["__MACROS_defineComponent"],"mappings":"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"}
|
@@ -97,11 +97,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
97
97
|
continue;
|
98
98
|
}
|
99
99
|
val = DkTable.comSearch.form[key + "-start"] + "," + DkTable.comSearch.form[key + "-end"];
|
100
|
-
} else
|
100
|
+
} else {
|
101
101
|
val = DkTable.comSearch.form[key];
|
102
102
|
}
|
103
|
-
if (val) {
|
104
|
-
console.log(11111);
|
103
|
+
if (val !== void 0 && val !== "") {
|
105
104
|
comSearchData.push({
|
106
105
|
field: key,
|
107
106
|
val,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ComSearch.vue2.mjs","sources":["../../../../src/table/src/components/ComSearch.vue"],"sourcesContent":["<template>\n <div ref=\"el\" class=\"table-com-search\">\n <el-form label-position=\"top\" :model=\"DkTable.comSearch.form\" @submit.prevent=\"\" @keyup.enter=\"onComSearch\">\n <el-row>\n <template v-for=\"(item, idx) in DkTable.table.column\" :key=\"idx\">\n <template v-if=\"item.operator !== false\">\n <!-- 自定义渲染 component、slot -->\n <el-col\n v-if=\"item.comSearchRender == 'customRender' || item.comSearchRender == 'slot'\"\n :span=\"spans.common\"\n >\n <!-- 外部可以使用 :deep() 选择器修改css样式 -->\n <div class=\"com-search-col\">\n <div v-if=\"item.comSearchShowLabel !== false\" class=\"com-search-col-label\">\n {{ item.label }}\n </div>\n <div class=\"com-search-col-input\">\n <!-- 自定义组件/函数渲染 -->\n <component\n :is=\"item.comSearchComponent\"\n v-if=\"item.comSearchRender == 'customRender'\"\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n v-bind=\"item.comSearchProps\"\n :placeholder=\"item.operatorPlaceholder\"\n ></component>\n\n <!-- 自定义渲染-slot -->\n <slot v-else-if=\"item.comSearchRender == 'slot'\" :name=\"item.comSearchSlotName\"></slot>\n </div>\n </div>\n </el-col>\n\n <!-- 时间范围 -->\n <el-col\n v-else-if=\"\n (item.render == 'datetime' || item.render == 'timestamp') &&\n (item.operator == 'RANGE' || item.operator == 'NOT RANGE')\n \"\n :span=\"spans.datetime\"\n >\n <div class=\"com-search-col\">\n <div v-if=\"item.comSearchShowLabel !== false\" class=\"com-search-col-label\">\n {{ item.label }}\n </div>\n <div class=\"com-search-col-input-range\">\n <el-date-picker\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n class=\"datetime-picker\"\n :default-value=\"\n DkTable.comSearch.form[item.prop! + '-default']\n ? DkTable.comSearch.form[item.prop! + '-default']\n : [new Date(), new Date()]\n \"\n :type=\"item.comSearchRender == 'date' ? 'daterange' : 'datetimerange'\"\n range-separator=\"到\"\n start-placeholder=\"开始日期\"\n end-placeholder=\"结束日期\"\n :value-format=\"item.comSearchRender == 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DD HH:mm:ss'\"\n :teleported=\"false\"\n />\n </div>\n </div>\n </el-col>\n <!--时间范围-->\n <el-col\n v-else-if=\"item.render == 'time' && (item.operator == 'RANGE' || item.operator == 'NOT RANGE')\"\n :span=\"spans.datetime\"\n >\n <div class=\"com-search-col\">\n <div v-if=\"item.comSearchShowLabel !== false\" class=\"com-search-col-label\">\n {{ item.label }}\n </div>\n <div class=\"com-search-col-input-range\">\n <el-time-picker\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n is-range\n range-separator=\"到\"\n format=\"HH:mm:ss\"\n value-format=\"HH:mm:ss\"\n start-placeholder=\"开始时间\"\n end-placeholder=\"结束时间\"\n ></el-time-picker>\n </div>\n </div>\n </el-col>\n <el-col v-else :span=\"spans.common\">\n <div class=\"com-search-col\">\n <div v-if=\"item.comSearchShowLabel !== false\" class=\"com-search-col-label\">\n {{ item.comSearchLabel || item.label }}\n </div>\n <!-- 数字范围 -->\n <div v-if=\"item.operator == 'RANGE' || item.operator == 'NOT RANGE'\" class=\"com-search-col-input-range\">\n <el-input\n v-model=\"DkTable.comSearch.form[item.prop! + '-start']\"\n :placeholder=\"item.operatorPlaceholder\"\n type=\"string\"\n :clearable=\"true\"\n ></el-input>\n <div class=\"range-separator\">到</div>\n <el-input\n v-model=\"DkTable.comSearch.form[item.prop! + '-end']\"\n :placeholder=\"item.operatorPlaceholder\"\n type=\"string\"\n :clearable=\"true\"\n ></el-input>\n </div>\n <!-- 是否 [NOT] NULL -->\n <div v-else-if=\"item.operator == 'NULL' || item.operator == 'NOT NULL'\" class=\"com-search-col-input\">\n <el-checkbox\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n :label=\"item.operator === 'NULL' ? '值为空' : '值不为空'\"\n size=\"large\"\n ></el-checkbox>\n </div>\n <div v-else-if=\"item.operator\" class=\"com-search-col-input\">\n <!-- 时间筛选 -->\n <el-date-picker\n v-if=\"item.render == 'datetime' || item.render == 'timestamp' || item.comSearchRender == 'date'\"\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n class=\"datetime-picker\"\n :type=\"item.comSearchRender == 'date' ? 'date' : 'datetime'\"\n :value-format=\"item.comSearchRender == 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DD HH:mm:ss'\"\n :placeholder=\"item.operatorPlaceholder\"\n :default-value=\"\n DkTable.comSearch.form[item.prop! + '-default']\n ? DkTable.comSearch.form[item.prop! + '-default']\n : new Date()\n \"\n :teleported=\"false\"\n />\n <!-- 年筛选 -->\n <el-date-picker\n v-if=\"item.render == 'year'\"\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n class=\"datetime-picker\"\n type=\"year\"\n value-format=\"YYYY\"\n style=\"width: 100%\"\n :placeholder=\"item.operatorPlaceholder\"\n />\n <!-- tag、tags、select -->\n <el-select\n v-else-if=\"\n (item.render == 'tag' || item.render == 'tags' || item.comSearchRender == 'select') &&\n item.replaceValue\n \"\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n :placeholder=\"item.operatorPlaceholder\"\n :clearable=\"true\"\n :multiple=\"item.render === 'tags'\"\n >\n <el-option\n v-for=\"(opt, okey) in item.replaceValue\"\n :key=\"item.prop! + okey\"\n :label=\"opt\"\n :value=\"okey\"\n />\n </el-select>\n\n <!-- 远程 select -->\n <dk-select\n v-else-if=\"item.comSearchRender == 'remoteSelect' || item.comSearchRender == 'remoteSelects'\"\n v-model=\"DkTable.comSearch.form[getProp(item)!]\"\n filterable\n :placeholder=\"item.operatorPlaceholder\"\n :remote-url=\"item.remoteUrl\"\n ></dk-select>\n <!-- 开关 -->\n <el-select\n v-else-if=\"item.render == 'switch'\"\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n :placeholder=\"item.operatorPlaceholder\"\n :clearable=\"true\"\n >\n <template v-if=\"!isEmpty(item.replaceValue)\">\n <el-option\n v-for=\"(opt, okey) in item.replaceValue\"\n :key=\"item.prop! + okey\"\n :label=\"opt\"\n :value=\"okey\"\n />\n </template>\n <template v-else>\n <el-option label=\"开\" value=\"1\" />\n <el-option label=\"关\" value=\"0\" />\n </template>\n </el-select>\n\n <!-- 字符串 -->\n <el-input\n v-else\n v-model=\"DkTable.comSearch.form[getProp(item)!]\"\n :placeholder=\"item.operatorPlaceholder\"\n type=\"string\"\n :clearable=\"true\"\n ></el-input>\n </div>\n </div>\n </el-col>\n </template>\n </template>\n <el-col :xs=\"24\" :sm=\"6\">\n <div class=\"com-search-col pl-20\">\n <el-button v-blur type=\"primary\" @click=\"onComSearch\"> 搜索</el-button>\n <el-button @click=\"onResetForm()\">重置</el-button>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, ref, computed } from 'vue'\nimport { isEmpty } from 'lodash-es'\nimport { useElementSize } from '@vueuse/core'\nimport DkTableClass from '../../utils/dkTable'\n\nconst DkTable = inject('DkTable') as DkTableClass\nconst el: any = ref(null)\nconst { width } = useElementSize(el) // 当前组件宽度\nconst spans = computed(() => {\n if (width.value < 768) {\n return {\n common: 24,\n datetime: 24,\n }\n }\n if (width.value < 900) {\n return {\n common: 12,\n datetime: 24,\n }\n }\n if (width.value < 1200) {\n return {\n common: 8,\n datetime: 16,\n }\n }\n return {\n common: 6,\n datetime: 12,\n }\n})\nconst onComSearch = () => {\n const comSearchData: comSearchData[] = []\n for (const key in DkTable.comSearch.form) {\n if (!DkTable.comSearch.fieldData.has(key)) {\n continue\n }\n let val = ''\n const fieldDataTemp = DkTable.comSearch.fieldData.get(key)\n if (\n (fieldDataTemp.render == 'datetime' || fieldDataTemp.render == 'timestamp') &&\n (fieldDataTemp.operator == 'RANGE' || fieldDataTemp.operator == 'NOT RANGE')\n ) {\n // 时间范围组件返回的是时间数组\n if (DkTable.comSearch.form[key] && DkTable.comSearch.form[key].length >= 2) {\n // 数组转字符串,以实现通过url参数传递预设搜索值\n if (fieldDataTemp.comSearchRender == 'date') {\n val = DkTable.comSearch.form[key][0] + ' 00:00:00' + ',' + DkTable.comSearch.form[key][1] + ' 23:59:59'\n } else {\n val = DkTable.comSearch.form[key][0] + ',' + DkTable.comSearch.form[key][1]\n }\n }\n } else if (\n fieldDataTemp.render == 'time' &&\n (fieldDataTemp.operator == 'RANGE' || fieldDataTemp.operator == 'NOT RANGE')\n ) {\n // 时间范围组件返回的是时间数组\n if (DkTable.comSearch.form[key] && DkTable.comSearch.form[key].length >= 2) {\n // 数组转字符串,以实现通过url参数传递预设搜索值\n // if (fieldDataTemp.comSearchRender == 'date') {\n // val = DkTable.comSearch.form[key][0] + ' 00:00:00' + ',' + DkTable.comSearch.form[key][1] + ' 23:59:59'\n // } else {\n val = DkTable.comSearch.form[key][0] + ',' + DkTable.comSearch.form[key][1]\n // console.log('val', val, DkTable.comSearch.form[key])\n // }\n }\n } else if (fieldDataTemp.operator == 'RANGE' || fieldDataTemp.operator == 'NOT RANGE') {\n // 普通的范围筛选,DkTable在初始化时已准备好start和end字段\n if (!DkTable.comSearch.form[key + '-start'] && !DkTable.comSearch.form[key + '-end']) {\n continue\n }\n val = DkTable.comSearch.form[key + '-start'] + ',' + DkTable.comSearch.form[key + '-end']\n } else if (DkTable.comSearch.form[key]) {\n val = DkTable.comSearch.form[key]\n }\n if (val) {\n console.log(11111)\n comSearchData.push({\n field: key,\n val,\n operator: fieldDataTemp.operator,\n render: fieldDataTemp.render,\n })\n }\n }\n\n // console.log('comSearchData', comSearchData)\n DkTable.onTableAction('com-search', comSearchData)\n}\n\nconst getProp = (item: any) => {\n if (item.comSearchProp) {\n return item.comSearchProp\n } else {\n return item.prop\n }\n}\n\nconst onResetForm = () => {\n // 封装好的onResetForm在此处不能使用\n for (const key in DkTable.comSearch.form) {\n DkTable.comSearch.form[key] = ''\n }\n onComSearch()\n}\n</script>\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ComSearch.vue2.mjs","sources":["../../../../src/table/src/components/ComSearch.vue"],"sourcesContent":["<template>\n <div ref=\"el\" class=\"table-com-search\">\n <el-form label-position=\"top\" :model=\"DkTable.comSearch.form\" @submit.prevent=\"\" @keyup.enter=\"onComSearch\">\n <el-row>\n <template v-for=\"(item, idx) in DkTable.table.column\" :key=\"idx\">\n <template v-if=\"item.operator !== false\">\n <!-- 自定义渲染 component、slot -->\n <el-col\n v-if=\"item.comSearchRender == 'customRender' || item.comSearchRender == 'slot'\"\n :span=\"spans.common\"\n >\n <!-- 外部可以使用 :deep() 选择器修改css样式 -->\n <div class=\"com-search-col\">\n <div v-if=\"item.comSearchShowLabel !== false\" class=\"com-search-col-label\">\n {{ item.label }}\n </div>\n <div class=\"com-search-col-input\">\n <!-- 自定义组件/函数渲染 -->\n <component\n :is=\"item.comSearchComponent\"\n v-if=\"item.comSearchRender == 'customRender'\"\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n v-bind=\"item.comSearchProps\"\n :placeholder=\"item.operatorPlaceholder\"\n ></component>\n\n <!-- 自定义渲染-slot -->\n <slot v-else-if=\"item.comSearchRender == 'slot'\" :name=\"item.comSearchSlotName\"></slot>\n </div>\n </div>\n </el-col>\n\n <!-- 时间范围 -->\n <el-col\n v-else-if=\"\n (item.render == 'datetime' || item.render == 'timestamp') &&\n (item.operator == 'RANGE' || item.operator == 'NOT RANGE')\n \"\n :span=\"spans.datetime\"\n >\n <div class=\"com-search-col\">\n <div v-if=\"item.comSearchShowLabel !== false\" class=\"com-search-col-label\">\n {{ item.label }}\n </div>\n <div class=\"com-search-col-input-range\">\n <el-date-picker\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n class=\"datetime-picker\"\n :default-value=\"\n DkTable.comSearch.form[item.prop! + '-default']\n ? DkTable.comSearch.form[item.prop! + '-default']\n : [new Date(), new Date()]\n \"\n :type=\"item.comSearchRender == 'date' ? 'daterange' : 'datetimerange'\"\n range-separator=\"到\"\n start-placeholder=\"开始日期\"\n end-placeholder=\"结束日期\"\n :value-format=\"item.comSearchRender == 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DD HH:mm:ss'\"\n :teleported=\"false\"\n />\n </div>\n </div>\n </el-col>\n <!--时间范围-->\n <el-col\n v-else-if=\"item.render == 'time' && (item.operator == 'RANGE' || item.operator == 'NOT RANGE')\"\n :span=\"spans.datetime\"\n >\n <div class=\"com-search-col\">\n <div v-if=\"item.comSearchShowLabel !== false\" class=\"com-search-col-label\">\n {{ item.label }}\n </div>\n <div class=\"com-search-col-input-range\">\n <el-time-picker\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n is-range\n range-separator=\"到\"\n format=\"HH:mm:ss\"\n value-format=\"HH:mm:ss\"\n start-placeholder=\"开始时间\"\n end-placeholder=\"结束时间\"\n ></el-time-picker>\n </div>\n </div>\n </el-col>\n <el-col v-else :span=\"spans.common\">\n <div class=\"com-search-col\">\n <div v-if=\"item.comSearchShowLabel !== false\" class=\"com-search-col-label\">\n {{ item.comSearchLabel || item.label }}\n </div>\n <!-- 数字范围 -->\n <div v-if=\"item.operator == 'RANGE' || item.operator == 'NOT RANGE'\" class=\"com-search-col-input-range\">\n <el-input\n v-model=\"DkTable.comSearch.form[item.prop! + '-start']\"\n :placeholder=\"item.operatorPlaceholder\"\n type=\"string\"\n :clearable=\"true\"\n ></el-input>\n <div class=\"range-separator\">到</div>\n <el-input\n v-model=\"DkTable.comSearch.form[item.prop! + '-end']\"\n :placeholder=\"item.operatorPlaceholder\"\n type=\"string\"\n :clearable=\"true\"\n ></el-input>\n </div>\n <!-- 是否 [NOT] NULL -->\n <div v-else-if=\"item.operator == 'NULL' || item.operator == 'NOT NULL'\" class=\"com-search-col-input\">\n <el-checkbox\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n :label=\"item.operator === 'NULL' ? '值为空' : '值不为空'\"\n size=\"large\"\n ></el-checkbox>\n </div>\n <div v-else-if=\"item.operator\" class=\"com-search-col-input\">\n <!-- 时间筛选 -->\n <el-date-picker\n v-if=\"item.render == 'datetime' || item.render == 'timestamp' || item.comSearchRender == 'date'\"\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n class=\"datetime-picker\"\n :type=\"item.comSearchRender == 'date' ? 'date' : 'datetime'\"\n :value-format=\"item.comSearchRender == 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DD HH:mm:ss'\"\n :placeholder=\"item.operatorPlaceholder\"\n :default-value=\"\n DkTable.comSearch.form[item.prop! + '-default']\n ? DkTable.comSearch.form[item.prop! + '-default']\n : new Date()\n \"\n :teleported=\"false\"\n />\n <!-- 年筛选 -->\n <el-date-picker\n v-if=\"item.render == 'year'\"\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n class=\"datetime-picker\"\n type=\"year\"\n value-format=\"YYYY\"\n style=\"width: 100%\"\n :placeholder=\"item.operatorPlaceholder\"\n />\n <!-- tag、tags、select -->\n <el-select\n v-else-if=\"\n (item.render == 'tag' || item.render == 'tags' || item.comSearchRender == 'select') &&\n item.replaceValue\n \"\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n :placeholder=\"item.operatorPlaceholder\"\n :clearable=\"true\"\n :multiple=\"item.render === 'tags'\"\n >\n <el-option\n v-for=\"(opt, okey) in item.replaceValue\"\n :key=\"item.prop! + okey\"\n :label=\"opt\"\n :value=\"okey\"\n />\n </el-select>\n\n <!-- 远程 select -->\n <dk-select\n v-else-if=\"item.comSearchRender == 'remoteSelect' || item.comSearchRender == 'remoteSelects'\"\n v-model=\"DkTable.comSearch.form[getProp(item)!]\"\n filterable\n :placeholder=\"item.operatorPlaceholder\"\n :remote-url=\"item.remoteUrl\"\n ></dk-select>\n <!-- 开关 -->\n <el-select\n v-else-if=\"item.render == 'switch'\"\n v-model=\"DkTable.comSearch.form[item.prop!]\"\n :placeholder=\"item.operatorPlaceholder\"\n :clearable=\"true\"\n >\n <template v-if=\"!isEmpty(item.replaceValue)\">\n <el-option\n v-for=\"(opt, okey) in item.replaceValue\"\n :key=\"item.prop! + okey\"\n :label=\"opt\"\n :value=\"okey\"\n />\n </template>\n <template v-else>\n <el-option label=\"开\" value=\"1\" />\n <el-option label=\"关\" value=\"0\" />\n </template>\n </el-select>\n\n <!-- 字符串 -->\n <el-input\n v-else\n v-model=\"DkTable.comSearch.form[getProp(item)!]\"\n :placeholder=\"item.operatorPlaceholder\"\n type=\"string\"\n :clearable=\"true\"\n ></el-input>\n </div>\n </div>\n </el-col>\n </template>\n </template>\n <el-col :xs=\"24\" :sm=\"6\">\n <div class=\"com-search-col pl-20\">\n <el-button v-blur type=\"primary\" @click=\"onComSearch\"> 搜索</el-button>\n <el-button @click=\"onResetForm()\">重置</el-button>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, ref, computed } from 'vue'\nimport { isEmpty } from 'lodash-es'\nimport { useElementSize } from '@vueuse/core'\nimport DkTableClass from '../../utils/dkTable'\n\nconst DkTable = inject('DkTable') as DkTableClass\nconst el: any = ref(null)\nconst { width } = useElementSize(el) // 当前组件宽度\nconst spans = computed(() => {\n if (width.value < 768) {\n return {\n common: 24,\n datetime: 24,\n }\n }\n if (width.value < 900) {\n return {\n common: 12,\n datetime: 24,\n }\n }\n if (width.value < 1200) {\n return {\n common: 8,\n datetime: 16,\n }\n }\n return {\n common: 6,\n datetime: 12,\n }\n})\nconst onComSearch = () => {\n const comSearchData: comSearchData[] = []\n\n for (const key in DkTable.comSearch.form) {\n if (!DkTable.comSearch.fieldData.has(key)) {\n continue\n }\n let val = ''\n const fieldDataTemp = DkTable.comSearch.fieldData.get(key)\n if (\n (fieldDataTemp.render == 'datetime' || fieldDataTemp.render == 'timestamp') &&\n (fieldDataTemp.operator == 'RANGE' || fieldDataTemp.operator == 'NOT RANGE')\n ) {\n // 时间范围组件返回的是时间数组\n if (DkTable.comSearch.form[key] && DkTable.comSearch.form[key].length >= 2) {\n // 数组转字符串,以实现通过url参数传递预设搜索值\n if (fieldDataTemp.comSearchRender == 'date') {\n val = DkTable.comSearch.form[key][0] + ' 00:00:00' + ',' + DkTable.comSearch.form[key][1] + ' 23:59:59'\n } else {\n val = DkTable.comSearch.form[key][0] + ',' + DkTable.comSearch.form[key][1]\n }\n }\n } else if (\n fieldDataTemp.render == 'time' &&\n (fieldDataTemp.operator == 'RANGE' || fieldDataTemp.operator == 'NOT RANGE')\n ) {\n // 时间范围组件返回的是时间数组\n if (DkTable.comSearch.form[key] && DkTable.comSearch.form[key].length >= 2) {\n // 数组转字符串,以实现通过url参数传递预设搜索值\n val = DkTable.comSearch.form[key][0] + ',' + DkTable.comSearch.form[key][1]\n }\n } else if (fieldDataTemp.operator == 'RANGE' || fieldDataTemp.operator == 'NOT RANGE') {\n // 普通的范围筛选,DkTable在初始化时已准备好start和end字段\n if (!DkTable.comSearch.form[key + '-start'] && !DkTable.comSearch.form[key + '-end']) {\n continue\n }\n val = DkTable.comSearch.form[key + '-start'] + ',' + DkTable.comSearch.form[key + '-end']\n } else {\n val = DkTable.comSearch.form[key]\n }\n if (val !== undefined && val !== '') {\n comSearchData.push({\n field: key,\n val,\n operator: fieldDataTemp.operator,\n render: fieldDataTemp.render,\n })\n }\n }\n DkTable.onTableAction('com-search', comSearchData)\n}\n\nconst getProp = (item: any) => {\n if (item.comSearchProp) {\n return item.comSearchProp\n } else {\n return item.prop\n }\n}\n\nconst onResetForm = () => {\n // 封装好的onResetForm在此处不能使用\n for (const key in DkTable.comSearch.form) {\n DkTable.comSearch.form[key] = ''\n }\n onComSearch()\n}\n</script>\n"],"names":[],"mappings":"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"}
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type { App } from 'vue'\nimport { Test } from './test'\nimport draggable from 'vuedraggable'\nimport Vue3DraggableResizable from 'vue3-draggable-resizable'\n\nimport { Group } from './group'\nimport { TableForm } from './table-form'\nimport { TinyEditor } from './tiny-editor'\nimport { Icon } from './icon'\nimport { ColorInput } from './color-input'\nimport { HotAreaInput } from './hot-area-input'\nimport { Dialog } from './dialog'\nimport { Form } from './form'\nimport { Attachment } from './attachment'\nimport { AttachmentDialog } from './attachment-dialog'\nimport { FileInput } from './file-input'\nimport { ImageInput } from './image-input'\nimport { AudioInput } from './audio-input'\nimport { VideoInput } from './video-input'\nimport { FileListInput } from './file-list-input'\nimport { ImageListInput } from './image-list-input'\nimport { AudioListInput } from './audio-list-input'\nimport { VideoListInput } from './video-list-input'\nimport { IconInput, IconContent, IconDialog } from './icon-input'\nimport { StyleInput } from './style-input'\nimport { BoxSizeInput } from './box-size-input'\nimport { StyleBoxInput } from './style-box-input'\nimport { StyleFontInput } from './style-font-input'\nimport { StyleBorderInput } from './style-border-input'\nimport { StyleBackgroundInput } from './style-background-input'\nimport { StyleShadowContent, StyleShadowInput } from './style-shadow-input'\nimport { StylePositionInput } from './style-position-input'\nimport { StyleNumberInput } from './style-number-input'\nimport { StyleCustomInput } from './style-custom-input'\nimport { PageDiy } from './page-diy'\nimport { Table } from './table'\nimport { Select } from './select'\nimport { Poster, PosterInput } from './poster-input'\nimport { StyleAnimationInput } from './style-animation-input'\nimport { AnimateSelect } from './animate-select'\nimport { UniIconInput } from './uni-icon-input'\nimport { UniIcon } from './uni-icon'\nimport { UrlInput } from './url-input'\nimport { DatePicker } from './date-picker'\n\nimport { setGlobalConfig, directives } from '@vipl520/utils'\nexport * from './tiny-editor'\nexport * from './icon'\nexport * from './group'\nexport * from './table-form'\nexport * from './color-input'\nexport * from './hot-area-input'\nexport * from './form'\nexport * from './attachment'\nexport * from './attachment-dialog'\nexport * from './file-input'\nexport * from './image-input'\nexport * from './audio-input'\nexport * from './video-input'\nexport * from './file-list-input'\nexport * from './image-list-input'\nexport * from './audio-list-input'\nexport * from './video-list-input'\nexport * from './icon-input'\nexport * from './page-diy'\nexport * from './box-size-input'\nexport * from './test'\nexport * from './style-input'\nexport * from './style-box-input'\nexport * from './style-font-input'\nexport * from './style-border-input'\nexport * from './style-shadow-input'\nexport * from './style-background-input'\nexport * from './style-position-input'\nexport * from './style-number-input'\nexport * from './style-custom-input'\nexport * from './table'\nexport * from './select'\nexport * from './poster-input'\nexport * from './style-animation-input'\nexport * from './animate-select'\nexport * from './uni-icon'\nexport * from './uni-icon-input'\nexport * from './url-input'\nexport * from './date-picker'\n\nconst components = [\n Test,\n Group,\n TableForm,\n // 富文本编辑器\n TinyEditor,\n // 图标\n Icon,\n // 颜色选择器\n ColorInput,\n // 热区选择器\n HotAreaInput,\n // 对话框\n Dialog,\n // json表单\n Form,\n // 附件\n Attachment,\n // 附件弹窗\n AttachmentDialog,\n // 文件选择器\n FileInput,\n // 图片选择器\n ImageInput,\n // 音频选择器\n AudioInput,\n // 视频选择器\n VideoInput,\n // 多文件选择器\n FileListInput,\n // 多图片选择器\n ImageListInput,\n // 多音频选择器\n AudioListInput,\n // 多视频选择器\n VideoListInput,\n // 图标选择器\n IconInput,\n // 图标展示框\n IconContent,\n // 图片弹出框\n IconDialog,\n // DIY编辑器\n PageDiy,\n // 尺寸输入框(带px/%/rem/等单位)\n BoxSizeInput,\n // DIV盒子编辑器(padding/margin/width/height)\n StyleBoxInput,\n // 文字样式编辑器\n StyleFontInput,\n // 边框样式编辑器\n StyleBorderInput,\n // 阴影编辑器\n StyleShadowInput,\n // 阴影编辑框\n StyleShadowContent,\n // 背景编辑器\n StyleBackgroundInput,\n // 合并样式编辑\n StyleInput,\n // 定位编辑器\n StylePositionInput,\n // 样式文字\n StyleNumberInput,\n // 动画配置\n StyleAnimationInput,\n // 自定义样式\n StyleCustomInput,\n // 动画class选择\n AnimateSelect,\n // 数据表格\n Table,\n // 选择\n Select,\n // 表单组/对象表单\n // 海报选择器\n PosterInput,\n // 海报\n Poster,\n Vue3DraggableResizable,\n draggable,\n UniIconInput,\n UniIcon,\n UrlInput,\n DatePicker,\n]\n\nexport const install = (app: App, option: any = {}) => {\n components.forEach((item) => {\n if (item.install!) {\n app.use(item)\n } else if (item.name) {\n app.component(item.name, item)\n }\n })\n directives(app)\n setGlobalConfig(option)\n}\n\nexport default {\n install,\n}\n"],"names":["Test","Group","TableForm","TinyEditor","Icon","ColorInput","HotAreaInput","Dialog","Form","Attachment","AttachmentDialog","FileInput","ImageInput","AudioInput","VideoInput","FileListInput","ImageListInput","AudioListInput","VideoListInput","IconInput","IconContent","IconDialog","PageDiy","BoxSizeInput","StyleBoxInput","StyleFontInput","StyleBorderInput","StyleShadowInput","StyleShadowContent","StyleBackgroundInput","StyleInput","StylePositionInput","StyleNumberInput","StyleAnimationInput","StyleCustomInput","AnimateSelect","Table","Select","PosterInput","Poster","UniIconInput","UniIcon","UrlInput","DatePicker","directives","setGlobalConfig"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFA,MAAM,UAAa,GAAA;AAAA,EACjBA,YAAA;AAAA,EACAC,aAAA;AAAA,EACAC,iBAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,YAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,oBAAA;AAAA;AAAA,EAEAC,cAAA;AAAA;AAAA,EAEAC,YAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,wBAAA;AAAA;AAAA,EAEAC,iBAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,qBAAA;AAAA;AAAA,EAEAC,sBAAA;AAAA;AAAA,EAEAC,sBAAA;AAAA;AAAA,EAEAC,sBAAA;AAAA;AAAA,EAEAC,iBAAA;AAAA;AAAA,EAEAC,mBAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,eAAA;AAAA;AAAA,EAEAC,oBAAA;AAAA;AAAA,EAEAC,qBAAA;AAAA;AAAA,EAEAC,sBAAA;AAAA;AAAA,EAEAC,wBAAA;AAAA;AAAA,EAEAC,wBAAA;AAAA;AAAA,EAEAC,0BAAA;AAAA;AAAA,EAEAC,4BAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,0BAAA;AAAA;AAAA,EAEAC,wBAAA;AAAA;AAAA,EAEAC,2BAAA;AAAA;AAAA,EAEAC,wBAAA;AAAA;AAAA,EAEAC,qBAAA;AAAA;AAAA,EAEAC,aAAA;AAAA;AAAA,EAEAC,cAAA;AAAA;AAAA;AAAA,EAGAC,mBAAA;AAAA;AAAA,EAEAC,cAAA;AAAA,EACA,sBAAA;AAAA,EACA,SAAA;AAAA,EACAC,oBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,gBAAA;AAAA,EACAC,kBAAA;AACF,CAAA,CAAA;AAEO,MAAM,OAAU,GAAA,CAAC,GAAU,EAAA,MAAA,GAAc,EAAO,KAAA;
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type { App } from 'vue'\nimport { Test } from './test'\nimport draggable from 'vuedraggable'\nimport Vue3DraggableResizable from 'vue3-draggable-resizable'\n\nimport { Group } from './group'\nimport { TableForm } from './table-form'\nimport { TinyEditor } from './tiny-editor'\nimport { Icon } from './icon'\nimport { ColorInput } from './color-input'\nimport { HotAreaInput } from './hot-area-input'\nimport { Dialog } from './dialog'\nimport { Form } from './form'\nimport { Attachment } from './attachment'\nimport { AttachmentDialog } from './attachment-dialog'\nimport { FileInput } from './file-input'\nimport { ImageInput } from './image-input'\nimport { AudioInput } from './audio-input'\nimport { VideoInput } from './video-input'\nimport { FileListInput } from './file-list-input'\nimport { ImageListInput } from './image-list-input'\nimport { AudioListInput } from './audio-list-input'\nimport { VideoListInput } from './video-list-input'\nimport { IconInput, IconContent, IconDialog } from './icon-input'\nimport { StyleInput } from './style-input'\nimport { BoxSizeInput } from './box-size-input'\nimport { StyleBoxInput } from './style-box-input'\nimport { StyleFontInput } from './style-font-input'\nimport { StyleBorderInput } from './style-border-input'\nimport { StyleBackgroundInput } from './style-background-input'\nimport { StyleShadowContent, StyleShadowInput } from './style-shadow-input'\nimport { StylePositionInput } from './style-position-input'\nimport { StyleNumberInput } from './style-number-input'\nimport { StyleCustomInput } from './style-custom-input'\nimport { PageDiy } from './page-diy'\nimport { Table } from './table'\nimport { Select } from './select'\nimport { Poster, PosterInput } from './poster-input'\nimport { StyleAnimationInput } from './style-animation-input'\nimport { AnimateSelect } from './animate-select'\nimport { UniIconInput } from './uni-icon-input'\nimport { UniIcon } from './uni-icon'\nimport { UrlInput } from './url-input'\nimport { DatePicker } from './date-picker'\n\nimport { setGlobalConfig, directives } from '@vipl520/utils'\nexport * from './tiny-editor'\nexport * from './icon'\nexport * from './group'\nexport * from './table-form'\nexport * from './color-input'\nexport * from './hot-area-input'\nexport * from './form'\nexport * from './attachment'\nexport * from './attachment-dialog'\nexport * from './file-input'\nexport * from './image-input'\nexport * from './audio-input'\nexport * from './video-input'\nexport * from './file-list-input'\nexport * from './image-list-input'\nexport * from './audio-list-input'\nexport * from './video-list-input'\nexport * from './icon-input'\nexport * from './page-diy'\nexport * from './box-size-input'\nexport * from './test'\nexport * from './style-input'\nexport * from './style-box-input'\nexport * from './style-font-input'\nexport * from './style-border-input'\nexport * from './style-shadow-input'\nexport * from './style-background-input'\nexport * from './style-position-input'\nexport * from './style-number-input'\nexport * from './style-custom-input'\nexport * from './table'\nexport * from './select'\nexport * from './poster-input'\nexport * from './style-animation-input'\nexport * from './animate-select'\nexport * from './uni-icon'\nexport * from './uni-icon-input'\nexport * from './url-input'\nexport * from './date-picker'\n\nconst components = [\n Test,\n Group,\n TableForm,\n // 富文本编辑器\n TinyEditor,\n // 图标\n Icon,\n // 颜色选择器\n ColorInput,\n // 热区选择器\n HotAreaInput,\n // 对话框\n Dialog,\n // json表单\n Form,\n // 附件\n Attachment,\n // 附件弹窗\n AttachmentDialog,\n // 文件选择器\n FileInput,\n // 图片选择器\n ImageInput,\n // 音频选择器\n AudioInput,\n // 视频选择器\n VideoInput,\n // 多文件选择器\n FileListInput,\n // 多图片选择器\n ImageListInput,\n // 多音频选择器\n AudioListInput,\n // 多视频选择器\n VideoListInput,\n // 图标选择器\n IconInput,\n // 图标展示框\n IconContent,\n // 图片弹出框\n IconDialog,\n // DIY编辑器\n PageDiy,\n // 尺寸输入框(带px/%/rem/等单位)\n BoxSizeInput,\n // DIV盒子编辑器(padding/margin/width/height)\n StyleBoxInput,\n // 文字样式编辑器\n StyleFontInput,\n // 边框样式编辑器\n StyleBorderInput,\n // 阴影编辑器\n StyleShadowInput,\n // 阴影编辑框\n StyleShadowContent,\n // 背景编辑器\n StyleBackgroundInput,\n // 合并样式编辑\n StyleInput,\n // 定位编辑器\n StylePositionInput,\n // 样式文字\n StyleNumberInput,\n // 动画配置\n StyleAnimationInput,\n // 自定义样式\n StyleCustomInput,\n // 动画class选择\n AnimateSelect,\n // 数据表格\n Table,\n // 选择\n Select,\n // 表单组/对象表单\n // 海报选择器\n PosterInput,\n // 海报\n Poster,\n Vue3DraggableResizable,\n draggable,\n UniIconInput,\n UniIcon,\n UrlInput,\n DatePicker,\n]\n\nexport const install = (app: App, option: any = {}) => {\n // 动态加载Vue3DraggableResizable的CSS,避免在Nuxt环境中的冲突\n // if (typeof window !== 'undefined' && !option.disableDraggableCSS) {\n // try {\n // import('vue3-draggable-resizable/dist/Vue3DraggableResizable.css')\n // } catch (e) {\n // console.warn('Failed to load vue3-draggable-resizable CSS:', e)\n // }\n // }\n\n components.forEach((item) => {\n if (item.install!) {\n app.use(item)\n } else if (item.name) {\n app.component(item.name, item)\n }\n })\n directives(app)\n setGlobalConfig(option)\n}\n\nexport default {\n install,\n}\n"],"names":["Test","Group","TableForm","TinyEditor","Icon","ColorInput","HotAreaInput","Dialog","Form","Attachment","AttachmentDialog","FileInput","ImageInput","AudioInput","VideoInput","FileListInput","ImageListInput","AudioListInput","VideoListInput","IconInput","IconContent","IconDialog","PageDiy","BoxSizeInput","StyleBoxInput","StyleFontInput","StyleBorderInput","StyleShadowInput","StyleShadowContent","StyleBackgroundInput","StyleInput","StylePositionInput","StyleNumberInput","StyleAnimationInput","StyleCustomInput","AnimateSelect","Table","Select","PosterInput","Poster","UniIconInput","UniIcon","UrlInput","DatePicker","directives","setGlobalConfig"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFA,MAAM,UAAa,GAAA;AAAA,EACjBA,YAAA;AAAA,EACAC,aAAA;AAAA,EACAC,iBAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,YAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,oBAAA;AAAA;AAAA,EAEAC,cAAA;AAAA;AAAA,EAEAC,YAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,wBAAA;AAAA;AAAA,EAEAC,iBAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,qBAAA;AAAA;AAAA,EAEAC,sBAAA;AAAA;AAAA,EAEAC,sBAAA;AAAA;AAAA,EAEAC,sBAAA;AAAA;AAAA,EAEAC,iBAAA;AAAA;AAAA,EAEAC,mBAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,eAAA;AAAA;AAAA,EAEAC,oBAAA;AAAA;AAAA,EAEAC,qBAAA;AAAA;AAAA,EAEAC,sBAAA;AAAA;AAAA,EAEAC,wBAAA;AAAA;AAAA,EAEAC,wBAAA;AAAA;AAAA,EAEAC,0BAAA;AAAA;AAAA,EAEAC,4BAAA;AAAA;AAAA,EAEAC,kBAAA;AAAA;AAAA,EAEAC,0BAAA;AAAA;AAAA,EAEAC,wBAAA;AAAA;AAAA,EAEAC,2BAAA;AAAA;AAAA,EAEAC,wBAAA;AAAA;AAAA,EAEAC,qBAAA;AAAA;AAAA,EAEAC,aAAA;AAAA;AAAA,EAEAC,cAAA;AAAA;AAAA;AAAA,EAGAC,mBAAA;AAAA;AAAA,EAEAC,cAAA;AAAA,EACA,sBAAA;AAAA,EACA,SAAA;AAAA,EACAC,oBAAA;AAAA,EACAC,eAAA;AAAA,EACAC,gBAAA;AAAA,EACAC,kBAAA;AACF,CAAA,CAAA;AAEO,MAAM,OAAU,GAAA,CAAC,GAAU,EAAA,MAAA,GAAc,EAAO,KAAA;AAUrD,EAAW,UAAA,CAAA,OAAA,CAAQ,CAAC,IAAS,KAAA;AAC3B,IAAA,IAAI,KAAK,OAAU,EAAA;AACjB,MAAA,GAAA,CAAI,IAAI,IAAI,CAAA,CAAA;AAAA,KACd,MAAA,IAAW,KAAK,IAAM,EAAA;AACpB,MAAI,GAAA,CAAA,SAAA,CAAU,IAAK,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AAAA,KAC/B;AAAA,GACD,CAAA,CAAA;AACD,EAAAC,gBAAA,CAAW,GAAG,CAAA,CAAA;AACd,EAAAC,qBAAA,CAAgB,MAAM,CAAA,CAAA;AACxB,EAAA;AAEA,YAAe;AAAA,EACb,OAAA;AACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
var vue = require('vue');
|
6
6
|
var config = require('./config.js');
|
7
|
-
require('vue3-draggable-resizable/dist/Vue3DraggableResizable.css');
|
8
7
|
var DkPosterViewName = require('./views/DkPosterViewName.vue.js');
|
9
8
|
var DkPosterViewText = require('./views/DkPosterViewText.vue.js');
|
10
9
|
var DkPosterViewImage = require('./views/DkPosterViewImage.vue.js');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"poster.vue2.js","sources":["../../../../src/poster-input/src/component/poster.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n name: 'DkPoster',\n components: {\n DkPosterViewName,\n DkPosterViewImage,\n DkPosterViewText,\n DkPosterViewAvatar,\n DkPosterViewQrcode,\n },\n});\n</script>\n<template>\n <div class=\"dk-poster\">\n <div class=\"poster-draw\">\n <div class=\"poster-body\">\n <div\n class=\"poster-content\"\n :style=\"{\n width: posterData.width + 'px',\n height: posterData.height + 'px',\n borderRadius: posterData.borderRadius + 'px',\n backgroundImage: 'url(' + posterData.background + ')',\n }\"\n style=\"background-size: 100% 100%\"\n @contextmenu.prevent\n >\n <el-empty\n v-if=\"!posterData.background\"\n description=\"请上传一张背景图\"\n style=\"position: absolute; width: 100%; height: 80%; user-select: none\"\n />\n <DraggableContainer\n ref=\"draggableContainer\"\n :reference-line-visible=\"formTools.refLine\"\n :disabled=\"!formTools.snap\"\n :adsorb-cols=\"adsorb.cols\"\n :adsorb-rows=\"adsorb.rows\"\n >\n <vue3-draggable-resizable\n v-for=\"(item, key) in posterData.views\"\n :key=\"key\"\n ref=\"draggables\"\n v-model:h=\"item.css.height\"\n v-model:x=\"item.css.left\"\n v-model:y=\"item.css.top\"\n v-model:w=\"item.css.width\"\n :init-w=\"item.css.width\"\n :init-h=\"item.css.height\"\n :parent=\"true\"\n style=\"cursor: move\"\n :is-conflict-check=\"formTools.isConflictCheck\"\n :snap=\"formTools.snap\"\n :snap-tolerance=\"formTools.snapTolerance\"\n :min-width=\"20\"\n :min-height=\"20\"\n :lock-aspect-ratio=\"item.lockAspectRatio\"\n @resizing=\"onResize\"\n @mousedown=\"index = key\"\n >\n <div style=\"position: relative\">\n <component :is=\"item.component\" :key=\"key\" :item=\"item\" :style=\"getBgStyle(item)\" :index=\"index\" />\n </div>\n </vue3-draggable-resizable>\n </DraggableContainer>\n </div>\n </div>\n <!--悬浮控件-->\n <div class=\"snap-tolerance\">\n <el-form :inline=\"true\" :model=\"formTools\" class=\"form-inline\" size=\"small\">\n <el-form-item label=\"对齐检测\">\n <el-switch v-model=\"formTools.snap\" />\n </el-form-item>\n <el-form-item v-if=\"formTools.snap\" label=\"辅助线\">\n <el-switch v-model=\"formTools.refLine\" />\n </el-form-item>\n </el-form>\n </div>\n <!--悬浮控件-->\n </div>\n <!-- 海报组件-->\n <el-form ref=\"form\" label-width=\"50px\" label-position=\"left\">\n <h2 style=\"padding: 10px; margin: 10px; font-size: 20px\">海报配置</h2>\n <el-row :gutter=\"20\" style=\"width: 100%; height: 600px; padding: 0 20px\">\n <el-col :sm=\"24\">\n <el-form-item label=\"元素\">\n <div class=\"view-buttons\">\n <el-button type=\"primary\" size=\"small\" :disabled=\"viewCount['avatar'] >= 1\" @click=\"addView('avatar')\">\n 用户头像\n </el-button>\n <el-button type=\"warning\" size=\"small\" :disabled=\"viewCount['qrcode'] >= 1\" @click=\"addView('qrcode')\">\n 二维码\n </el-button>\n <el-button type=\"danger\" size=\"small\" :disabled=\"viewCount['name'] >= 1\" @click=\"addView('name')\">\n 用户昵称\n </el-button>\n <el-button\n v-for=\"(item, key) in props.views\"\n :key=\"key\"\n type=\"primary\"\n :disabled=\"viewCount[item.name] >= item.count\"\n size=\"small\"\n @click=\"addView(item.name)\"\n >{{ item.text }}\n </el-button>\n </div>\n <div style=\"font-size: 12px; color: #999\">\n 点击元素添加到左侧拖拽框中,<b style=\"color: #000\">右键</b>即可编辑模块\n </div>\n </el-form-item>\n </el-col>\n <el-col :sm=\"24\">\n <el-form-item label=\"背景\">\n <dk-image-input v-model=\"posterData.background\" @input=\"resetSize()\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"宽度\">\n <el-slider v-model=\"posterData.width\" :min=\"100\" :max=\"600\" show-input @change=\"checkParentSize()\">\n <template #append>px</template>\n </el-slider>\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"高度\">\n <el-slider v-model=\"posterData.height\" :min=\"100\" :max=\"600\" show-input @change=\"checkParentSize()\">\n <template #append>px</template>\n </el-slider>\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"弧度\">\n <el-slider v-model=\"posterData.borderRadius\" :min=\"0\" :max=\"20\" show-input />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <div style=\"width: 100%; text-align: center\">\n <el-button style=\"width: 30%\" @click=\"resetSize()\">重置</el-button>\n <el-button type=\"primary\" style=\"width: 50%\" @click=\"submit\">确定</el-button>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { reactive, ref, computed, watch, provide, onMounted } from 'vue'\nimport { defaultViews } from './config'\n// import Vue3DraggableResizable, { DraggableContainer } from 'vue3-draggable-resizable'\nimport 'vue3-draggable-resizable/dist/Vue3DraggableResizable.css'\nimport DkPosterViewName from './views/DkPosterViewName.vue'\nimport DkPosterViewText from './views/DkPosterViewText.vue'\nimport DkPosterViewImage from './views/DkPosterViewImage.vue'\nimport DkPosterViewAvatar from './views/DkPosterViewAvatar.vue'\nimport DkPosterViewQrcode from './views/DkPosterViewQrcode.vue'\n\n\nconst props = defineProps({\n modelValue: {\n default: () => {\n return {}\n },\n type: Object,\n },\n views: {\n default: () => {\n return []\n },\n type: Array as any,\n },\n})\nconst posterRef = ref()\n// const posterData = ref(props.modelValue)\nconst posterData: any = reactive({\n background: '',\n width: 320,\n height: 500,\n borderRadius: 0,\n views: [],\n})\nconst formTools: any = reactive({\n refLine: true,\n snap: true,\n edit: true,\n border: 10,\n})\n\nconst viewCount = computed(() => {\n const count: any = {}\n const views: any = posterData.views\n if (views) {\n for (let i = 0; i < views.length; i++) {\n if (!count[views[i].name]) {\n count[views[i].name] = 1\n } else {\n count[views[i].name]++\n }\n }\n }\n return count\n})\n\nconst emit = defineEmits(['input', 'update:modelValue', 'change', 'submit'])\n\nconst submit = () => {\n emit('input', posterData)\n emit('update:modelValue', posterData)\n emit('submit', posterData)\n emit('change', posterData)\n}\nconst resetSize = () => {\n if (posterData.background) {\n getImageSize(posterData.background)\n .then((image: any) => {\n let tempWidth\n let tempHeight\n const maxHeight = 600\n const maxWidth = 600\n if (image.width / image.height >= maxWidth / maxHeight) {\n if (image.width > maxWidth) {\n tempWidth = maxWidth\n // 按原图片的比例进行缩放\n tempHeight = (image.height * maxWidth) / image.width\n } else {\n tempWidth = image.width\n tempHeight = image.height\n }\n } else {\n if (image.height > maxHeight) {\n tempHeight = maxHeight\n // 按原图片的比例进行缩放\n tempWidth = (image.width * maxHeight) / image.height\n } else {\n tempWidth = image.width\n tempHeight = image.height\n }\n }\n posterData.width = parseInt(tempWidth)\n posterData.height = parseInt(tempHeight)\n setTimeout(() => {\n checkParentSize()\n }, 200)\n })\n .catch(() => {})\n }\n}\n\nconst getImageSize = (url: any) => {\n return new Promise(function (resolve, reject) {\n const image = new Image()\n image.onload = function () {\n resolve({\n width: image.width,\n height: image.height,\n })\n }\n image.onerror = function () {\n reject(new Error('error'))\n }\n image.src = url\n })\n}\n// const checkParentSize = () => {\n// posterRef.value.checkParentSize()\n// }\n\nconst addView = (name: string) => {\n // if (name == 'text' || name == 'image') {\n // posterRef.value.add(name, viewNumber(name))\n // } else {\n // posterData.value.add(name)\n // }\n\n add(name)\n}\n\nconst viewNumber = (name: any) => {\n const views = posterData.views\n let count = 1\n for (let i = 0; i < views.length; i++) {\n if (views[i].name == name) {\n count++\n }\n }\n return count\n}\n\n// watch(\n// () => props.modelValue,\n// (n, o) => {\n// posterData = props.modelValue\n// }\n// )\n\n// content的\n\nconst draggables = ref()\nconst draggableContainer = ref()\n\nconst index = ref(0)\nprovide('posterData', posterData)\nconst test = () => {\n console.log(posterData.views)\n}\n\nconst onDrag = (p: any) => {\n const css = posterData.views[index.value].css\n console.log('onDrag', p)\n css.left = p.x\n css.top = p.y\n}\nconst onResize = (p: any) => {\n const css = posterData.views[index.value].css\n css.left = p.x\n css.top = p.y\n css.width = p.w\n css.height = p.h\n}\nconst getBgStyle = (item: any) => {\n if (item.type == 'image') {\n return {\n width: item.css.width + 'px',\n height: item.css.height + 'px',\n borderColor: item.css.borderColor || '#fff',\n borderStyle: 'solid',\n borderWidth: item.css.borderWidth + 'px',\n borderRadius: item.css.borderRadius + 'px',\n top: -parseInt(item.css.borderWidth) + 'px',\n left: -parseInt(item.css.borderWidth) + 'px',\n }\n } else {\n return {}\n }\n}\n\nconst add = (name = 'avatar') => {\n const allViews = defaultViews.concat(props.views as any)\n for (let i = 0; i < allViews.length; i++) {\n if (allViews[i].name == name) {\n // view\n const view = JSON.parse(JSON.stringify(allViews[i]))\n posterData.views.push(view)\n }\n }\n}\n\nconst checkParentSize = () => {\n // 刷新大小检测\n if (draggables.value) {\n console.log('draggables', draggables)\n for (let i = 0; i < draggables.value.length; i++) {\n const draggable = draggables.value[i]\n draggable.parentHeight = posterData.height\n draggable.parentWidth = posterData.width\n\n if (posterData.width < draggable.left + draggable.initW) {\n draggable.left = posterData.width\n }\n if (posterData.height < draggable.top + draggable.initH) {\n draggable.top = posterData.height\n }\n }\n }\n}\n\nconst adsorb = computed(() => {\n const border = formTools?.border\n const height = posterData.height\n const width = posterData.width\n return {\n cols: [border, width - border],\n rows: [border, height - border],\n }\n})\n\nwatch(\n () => props.modelValue,\n (n, o) => {\n console.log('1111')\n // initPosterDraggable()\n }\n)\n\nconst initPosterDraggable = () => {\n console.log('initPosterDraggable')\n posterData.background = props.modelValue.background\n posterData.width = props.modelValue.width\n posterData.height = props.modelValue.height\n posterData.borderRadius = props.modelValue.borderRadius\n posterData.views = []\n for (let i = 0; i < props.modelValue.views.length; i++) {\n posterData.views.push(props.modelValue.views[i])\n }\n}\n\nonMounted(() => {\n initPosterDraggable()\n})\n\ndefineExpose({\n checkParentSize,\n})\n</script>\n<style scoped></style>\n"],"names":["__MACROS_defineComponent","DkPosterViewName","DkPosterViewImage","DkPosterViewText","DkPosterViewAvatar","DkPosterViewQrcode","ref","reactive","computed","provide","defaultViews","watch","onMounted"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"poster.vue2.js","sources":["../../../../src/poster-input/src/component/poster.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n name: 'DkPoster',\n components: {\n DkPosterViewName,\n DkPosterViewImage,\n DkPosterViewText,\n DkPosterViewAvatar,\n DkPosterViewQrcode,\n },\n});\n</script>\n<template>\n <div class=\"dk-poster\">\n <div class=\"poster-draw\">\n <div class=\"poster-body\">\n <div\n class=\"poster-content\"\n :style=\"{\n width: posterData.width + 'px',\n height: posterData.height + 'px',\n borderRadius: posterData.borderRadius + 'px',\n backgroundImage: 'url(' + posterData.background + ')',\n }\"\n style=\"background-size: 100% 100%\"\n @contextmenu.prevent\n >\n <el-empty\n v-if=\"!posterData.background\"\n description=\"请上传一张背景图\"\n style=\"position: absolute; width: 100%; height: 80%; user-select: none\"\n />\n <DraggableContainer\n ref=\"draggableContainer\"\n :reference-line-visible=\"formTools.refLine\"\n :disabled=\"!formTools.snap\"\n :adsorb-cols=\"adsorb.cols\"\n :adsorb-rows=\"adsorb.rows\"\n >\n <vue3-draggable-resizable\n v-for=\"(item, key) in posterData.views\"\n :key=\"key\"\n ref=\"draggables\"\n v-model:h=\"item.css.height\"\n v-model:x=\"item.css.left\"\n v-model:y=\"item.css.top\"\n v-model:w=\"item.css.width\"\n :init-w=\"item.css.width\"\n :init-h=\"item.css.height\"\n :parent=\"true\"\n style=\"cursor: move\"\n :is-conflict-check=\"formTools.isConflictCheck\"\n :snap=\"formTools.snap\"\n :snap-tolerance=\"formTools.snapTolerance\"\n :min-width=\"20\"\n :min-height=\"20\"\n :lock-aspect-ratio=\"item.lockAspectRatio\"\n @resizing=\"onResize\"\n @mousedown=\"index = key\"\n >\n <div style=\"position: relative\">\n <component :is=\"item.component\" :key=\"key\" :item=\"item\" :style=\"getBgStyle(item)\" :index=\"index\" />\n </div>\n </vue3-draggable-resizable>\n </DraggableContainer>\n </div>\n </div>\n <!--悬浮控件-->\n <div class=\"snap-tolerance\">\n <el-form :inline=\"true\" :model=\"formTools\" class=\"form-inline\" size=\"small\">\n <el-form-item label=\"对齐检测\">\n <el-switch v-model=\"formTools.snap\" />\n </el-form-item>\n <el-form-item v-if=\"formTools.snap\" label=\"辅助线\">\n <el-switch v-model=\"formTools.refLine\" />\n </el-form-item>\n </el-form>\n </div>\n <!--悬浮控件-->\n </div>\n <!-- 海报组件-->\n <el-form ref=\"form\" label-width=\"50px\" label-position=\"left\">\n <h2 style=\"padding: 10px; margin: 10px; font-size: 20px\">海报配置</h2>\n <el-row :gutter=\"20\" style=\"width: 100%; height: 600px; padding: 0 20px\">\n <el-col :sm=\"24\">\n <el-form-item label=\"元素\">\n <div class=\"view-buttons\">\n <el-button type=\"primary\" size=\"small\" :disabled=\"viewCount['avatar'] >= 1\" @click=\"addView('avatar')\">\n 用户头像\n </el-button>\n <el-button type=\"warning\" size=\"small\" :disabled=\"viewCount['qrcode'] >= 1\" @click=\"addView('qrcode')\">\n 二维码\n </el-button>\n <el-button type=\"danger\" size=\"small\" :disabled=\"viewCount['name'] >= 1\" @click=\"addView('name')\">\n 用户昵称\n </el-button>\n <el-button\n v-for=\"(item, key) in props.views\"\n :key=\"key\"\n type=\"primary\"\n :disabled=\"viewCount[item.name] >= item.count\"\n size=\"small\"\n @click=\"addView(item.name)\"\n >{{ item.text }}\n </el-button>\n </div>\n <div style=\"font-size: 12px; color: #999\">\n 点击元素添加到左侧拖拽框中,<b style=\"color: #000\">右键</b>即可编辑模块\n </div>\n </el-form-item>\n </el-col>\n <el-col :sm=\"24\">\n <el-form-item label=\"背景\">\n <dk-image-input v-model=\"posterData.background\" @input=\"resetSize()\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"宽度\">\n <el-slider v-model=\"posterData.width\" :min=\"100\" :max=\"600\" show-input @change=\"checkParentSize()\">\n <template #append>px</template>\n </el-slider>\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"高度\">\n <el-slider v-model=\"posterData.height\" :min=\"100\" :max=\"600\" show-input @change=\"checkParentSize()\">\n <template #append>px</template>\n </el-slider>\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"弧度\">\n <el-slider v-model=\"posterData.borderRadius\" :min=\"0\" :max=\"20\" show-input />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <div style=\"width: 100%; text-align: center\">\n <el-button style=\"width: 30%\" @click=\"resetSize()\">重置</el-button>\n <el-button type=\"primary\" style=\"width: 50%\" @click=\"submit\">确定</el-button>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { reactive, ref, computed, watch, provide, onMounted } from 'vue'\nimport { defaultViews } from './config'\n// import Vue3DraggableResizable, { DraggableContainer } from 'vue3-draggable-resizable'\nimport DkPosterViewName from './views/DkPosterViewName.vue'\nimport DkPosterViewText from './views/DkPosterViewText.vue'\nimport DkPosterViewImage from './views/DkPosterViewImage.vue'\nimport DkPosterViewAvatar from './views/DkPosterViewAvatar.vue'\nimport DkPosterViewQrcode from './views/DkPosterViewQrcode.vue'\n\n\nconst props = defineProps({\n modelValue: {\n default: () => {\n return {}\n },\n type: Object,\n },\n views: {\n default: () => {\n return []\n },\n type: Array as any,\n },\n})\nconst posterRef = ref()\n// const posterData = ref(props.modelValue)\nconst posterData: any = reactive({\n background: '',\n width: 320,\n height: 500,\n borderRadius: 0,\n views: [],\n})\nconst formTools: any = reactive({\n refLine: true,\n snap: true,\n edit: true,\n border: 10,\n})\n\nconst viewCount = computed(() => {\n const count: any = {}\n const views: any = posterData.views\n if (views) {\n for (let i = 0; i < views.length; i++) {\n if (!count[views[i].name]) {\n count[views[i].name] = 1\n } else {\n count[views[i].name]++\n }\n }\n }\n return count\n})\n\nconst emit = defineEmits(['input', 'update:modelValue', 'change', 'submit'])\n\nconst submit = () => {\n emit('input', posterData)\n emit('update:modelValue', posterData)\n emit('submit', posterData)\n emit('change', posterData)\n}\nconst resetSize = () => {\n if (posterData.background) {\n getImageSize(posterData.background)\n .then((image: any) => {\n let tempWidth\n let tempHeight\n const maxHeight = 600\n const maxWidth = 600\n if (image.width / image.height >= maxWidth / maxHeight) {\n if (image.width > maxWidth) {\n tempWidth = maxWidth\n // 按原图片的比例进行缩放\n tempHeight = (image.height * maxWidth) / image.width\n } else {\n tempWidth = image.width\n tempHeight = image.height\n }\n } else {\n if (image.height > maxHeight) {\n tempHeight = maxHeight\n // 按原图片的比例进行缩放\n tempWidth = (image.width * maxHeight) / image.height\n } else {\n tempWidth = image.width\n tempHeight = image.height\n }\n }\n posterData.width = parseInt(tempWidth)\n posterData.height = parseInt(tempHeight)\n setTimeout(() => {\n checkParentSize()\n }, 200)\n })\n .catch(() => {})\n }\n}\n\nconst getImageSize = (url: any) => {\n return new Promise(function (resolve, reject) {\n const image = new Image()\n image.onload = function () {\n resolve({\n width: image.width,\n height: image.height,\n })\n }\n image.onerror = function () {\n reject(new Error('error'))\n }\n image.src = url\n })\n}\n// const checkParentSize = () => {\n// posterRef.value.checkParentSize()\n// }\n\nconst addView = (name: string) => {\n // if (name == 'text' || name == 'image') {\n // posterRef.value.add(name, viewNumber(name))\n // } else {\n // posterData.value.add(name)\n // }\n\n add(name)\n}\n\nconst viewNumber = (name: any) => {\n const views = posterData.views\n let count = 1\n for (let i = 0; i < views.length; i++) {\n if (views[i].name == name) {\n count++\n }\n }\n return count\n}\n\n// watch(\n// () => props.modelValue,\n// (n, o) => {\n// posterData = props.modelValue\n// }\n// )\n\n// content的\n\nconst draggables = ref()\nconst draggableContainer = ref()\n\nconst index = ref(0)\nprovide('posterData', posterData)\nconst test = () => {\n console.log(posterData.views)\n}\n\nconst onDrag = (p: any) => {\n const css = posterData.views[index.value].css\n console.log('onDrag', p)\n css.left = p.x\n css.top = p.y\n}\nconst onResize = (p: any) => {\n const css = posterData.views[index.value].css\n css.left = p.x\n css.top = p.y\n css.width = p.w\n css.height = p.h\n}\nconst getBgStyle = (item: any) => {\n if (item.type == 'image') {\n return {\n width: item.css.width + 'px',\n height: item.css.height + 'px',\n borderColor: item.css.borderColor || '#fff',\n borderStyle: 'solid',\n borderWidth: item.css.borderWidth + 'px',\n borderRadius: item.css.borderRadius + 'px',\n top: -parseInt(item.css.borderWidth) + 'px',\n left: -parseInt(item.css.borderWidth) + 'px',\n }\n } else {\n return {}\n }\n}\n\nconst add = (name = 'avatar') => {\n const allViews = defaultViews.concat(props.views as any)\n for (let i = 0; i < allViews.length; i++) {\n if (allViews[i].name == name) {\n // view\n const view = JSON.parse(JSON.stringify(allViews[i]))\n posterData.views.push(view)\n }\n }\n}\n\nconst checkParentSize = () => {\n // 刷新大小检测\n if (draggables.value) {\n console.log('draggables', draggables)\n for (let i = 0; i < draggables.value.length; i++) {\n const draggable = draggables.value[i]\n draggable.parentHeight = posterData.height\n draggable.parentWidth = posterData.width\n\n if (posterData.width < draggable.left + draggable.initW) {\n draggable.left = posterData.width\n }\n if (posterData.height < draggable.top + draggable.initH) {\n draggable.top = posterData.height\n }\n }\n }\n}\n\nconst adsorb = computed(() => {\n const border = formTools?.border\n const height = posterData.height\n const width = posterData.width\n return {\n cols: [border, width - border],\n rows: [border, height - border],\n }\n})\n\nwatch(\n () => props.modelValue,\n (n, o) => {\n console.log('1111')\n // initPosterDraggable()\n }\n)\n\nconst initPosterDraggable = () => {\n console.log('initPosterDraggable')\n posterData.background = props.modelValue.background\n posterData.width = props.modelValue.width\n posterData.height = props.modelValue.height\n posterData.borderRadius = props.modelValue.borderRadius\n posterData.views = []\n for (let i = 0; i < props.modelValue.views.length; i++) {\n posterData.views.push(props.modelValue.views[i])\n }\n}\n\nonMounted(() => {\n initPosterDraggable()\n})\n\ndefineExpose({\n checkParentSize,\n})\n</script>\n<style scoped></style>\n"],"names":["__MACROS_defineComponent","DkPosterViewName","DkPosterViewImage","DkPosterViewText","DkPosterViewAvatar","DkPosterViewQrcode","ref","reactive","computed","provide","defaultViews","watch","onMounted"],"mappings":"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"}
|
@@ -101,11 +101,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
101
101
|
continue;
|
102
102
|
}
|
103
103
|
val = DkTable.comSearch.form[key + "-start"] + "," + DkTable.comSearch.form[key + "-end"];
|
104
|
-
} else
|
104
|
+
} else {
|
105
105
|
val = DkTable.comSearch.form[key];
|
106
106
|
}
|
107
|
-
if (val) {
|
108
|
-
console.log(11111);
|
107
|
+
if (val !== void 0 && val !== "") {
|
109
108
|
comSearchData.push({
|
110
109
|
field: key,
|
111
110
|
val,
|