@vipl520/dk-ui 1.0.15 → 1.0.17
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.js +13 -8
- package/dist/index.min.js +7 -7
- package/dist/index.min.js.map +1 -1
- package/dist/index.min.mjs +7 -7
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +10 -5
- package/dist/web-types.json +1 -1
- package/es/hot-area-input/src/component/hot-area-content.vue2.mjs +3 -3
- package/es/hot-area-input/src/component/hot-area-content.vue2.mjs.map +1 -1
- package/es/index.mjs +3 -1
- package/es/index.mjs.map +1 -1
- package/es/page-diy/src/config/rule/min/common/DkMinSwiperImage.d.ts +1 -0
- package/es/page-diy/src/config/rule/min/common/DkMinSwiperImage.mjs +1 -0
- package/es/page-diy/src/config/rule/min/common/DkMinSwiperImage.mjs.map +1 -1
- package/es/page-diy/src/config/rule/min/common/index.d.ts +2 -0
- package/es/page-diy/src/config/rule/min/index.d.ts +2 -0
- package/es/page-diy/src/views/web/DkViewTabbar.vue.d.ts +1 -1
- package/es/poster-input/src/component/poster.vue2.mjs +5 -4
- package/es/poster-input/src/component/poster.vue2.mjs.map +1 -1
- package/lib/hot-area-input/src/component/hot-area-content.vue2.js +2 -2
- package/lib/hot-area-input/src/component/hot-area-content.vue2.js.map +1 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/page-diy/src/config/rule/min/common/DkMinSwiperImage.d.ts +1 -0
- package/lib/page-diy/src/config/rule/min/common/DkMinSwiperImage.js +1 -0
- package/lib/page-diy/src/config/rule/min/common/DkMinSwiperImage.js.map +1 -1
- package/lib/page-diy/src/config/rule/min/common/index.d.ts +2 -0
- package/lib/page-diy/src/config/rule/min/index.d.ts +2 -0
- package/lib/page-diy/src/views/web/DkViewTabbar.vue.d.ts +1 -1
- package/lib/poster-input/src/component/poster.vue2.js +4 -3
- package/lib/poster-input/src/component/poster.vue2.js.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
@@ -7,8 +7,8 @@ import { Icon as Icon$1, disableCache, listIcons } from '@iconify/vue';
|
|
7
7
|
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
|
8
8
|
import { Search, CircleClose } from '@element-plus/icons-vue';
|
9
9
|
import icons from '@vant/icons';
|
10
|
-
import Vue3DraggableResizable, { DraggableContainer } from 'vue3-draggable-resizable';
|
11
10
|
import formCreate from '@form-create/element-ui';
|
11
|
+
import Vue3DraggableResizable from 'vue3-draggable-resizable';
|
12
12
|
|
13
13
|
const isObject$3 = (val) => val !== null && typeof val === "object";
|
14
14
|
const isDef$1 = (val) => val !== void 0 && val !== null;
|
@@ -10811,6 +10811,7 @@ var _sfc_main$11 = /* @__PURE__ */ defineComponent({
|
|
10811
10811
|
});
|
10812
10812
|
};
|
10813
10813
|
return (_ctx, _cache) => {
|
10814
|
+
const _component_vue3_draggable_resizable = resolveComponent("vue3-draggable-resizable");
|
10814
10815
|
const _component_el_empty = resolveComponent("el-empty");
|
10815
10816
|
const _component_dk_image_input = resolveComponent("dk-image-input");
|
10816
10817
|
const _component_el_form_item = resolveComponent("el-form-item");
|
@@ -10836,7 +10837,7 @@ var _sfc_main$11 = /* @__PURE__ */ defineComponent({
|
|
10836
10837
|
Fragment,
|
10837
10838
|
null,
|
10838
10839
|
renderList(hotData.views, (item, key) => {
|
10839
|
-
return openBlock(), createBlock(
|
10840
|
+
return openBlock(), createBlock(_component_vue3_draggable_resizable, {
|
10840
10841
|
key,
|
10841
10842
|
ref_for: true,
|
10842
10843
|
ref: "draggables",
|
@@ -20535,6 +20536,7 @@ var DkMinSwiperImage$1 = {
|
|
20535
20536
|
show: true
|
20536
20537
|
}
|
20537
20538
|
],
|
20539
|
+
height: 160,
|
20538
20540
|
autoplay: 2e3
|
20539
20541
|
},
|
20540
20542
|
showStyle: true
|
@@ -32223,6 +32225,8 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
32223
32225
|
});
|
32224
32226
|
return (_ctx, _cache) => {
|
32225
32227
|
const _component_el_empty = resolveComponent("el-empty");
|
32228
|
+
const _component_vue3_draggable_resizable = resolveComponent("vue3-draggable-resizable");
|
32229
|
+
const _component_DraggableContainer = resolveComponent("DraggableContainer");
|
32226
32230
|
const _component_el_switch = resolveComponent("el-switch");
|
32227
32231
|
const _component_el_form_item = resolveComponent("el-form-item");
|
32228
32232
|
const _component_el_form = resolveComponent("el-form");
|
@@ -32253,7 +32257,7 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
32253
32257
|
description: "\u8BF7\u4E0A\u4F20\u4E00\u5F20\u80CC\u666F\u56FE",
|
32254
32258
|
style: { "position": "absolute", "width": "100%", "height": "80%", "user-select": "none" }
|
32255
32259
|
})) : createCommentVNode("v-if", true),
|
32256
|
-
createVNode(
|
32260
|
+
createVNode(_component_DraggableContainer, {
|
32257
32261
|
ref_key: "draggableContainer",
|
32258
32262
|
ref: draggableContainer,
|
32259
32263
|
"reference-line-visible": formTools.refLine,
|
@@ -32266,7 +32270,7 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
32266
32270
|
Fragment,
|
32267
32271
|
null,
|
32268
32272
|
renderList(posterData.views, (item, key) => {
|
32269
|
-
return openBlock(), createBlock(
|
32273
|
+
return openBlock(), createBlock(_component_vue3_draggable_resizable, {
|
32270
32274
|
key,
|
32271
32275
|
ref_for: true,
|
32272
32276
|
ref_key: "draggables",
|
@@ -32743,7 +32747,8 @@ const components = [
|
|
32743
32747
|
// 海报选择器
|
32744
32748
|
PosterInput,
|
32745
32749
|
// 海报
|
32746
|
-
Poster
|
32750
|
+
Poster,
|
32751
|
+
Vue3DraggableResizable
|
32747
32752
|
// TODO 普通上传 upload
|
32748
32753
|
// TODO tag选择器 tag-input
|
32749
32754
|
// TODO 链接选择器 link-input
|
package/dist/web-types.json
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
import { createElementVNode, defineComponent, ref, reactive, onMounted, watch, resolveComponent, openBlock, createElementBlock, normalizeStyle, withModifiers, Fragment, renderList, createBlock,
|
2
|
-
import Vue3DraggableResizable from 'vue3-draggable-resizable';
|
1
|
+
import { createElementVNode, defineComponent, ref, reactive, onMounted, watch, resolveComponent, openBlock, createElementBlock, normalizeStyle, withModifiers, Fragment, renderList, createBlock, withCtx, toDisplayString, createVNode, createTextVNode } from 'vue';
|
3
2
|
|
4
3
|
const _hoisted_1 = { class: "hot-area-content" };
|
5
4
|
const _hoisted_2 = { class: "hot-area-draggable" };
|
@@ -110,6 +109,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
110
109
|
});
|
111
110
|
};
|
112
111
|
return (_ctx, _cache) => {
|
112
|
+
const _component_vue3_draggable_resizable = resolveComponent("vue3-draggable-resizable");
|
113
113
|
const _component_el_empty = resolveComponent("el-empty");
|
114
114
|
const _component_dk_image_input = resolveComponent("dk-image-input");
|
115
115
|
const _component_el_form_item = resolveComponent("el-form-item");
|
@@ -135,7 +135,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
135
135
|
Fragment,
|
136
136
|
null,
|
137
137
|
renderList(hotData.views, (item, key) => {
|
138
|
-
return openBlock(), createBlock(
|
138
|
+
return openBlock(), createBlock(_component_vue3_draggable_resizable, {
|
139
139
|
key,
|
140
140
|
ref_for: true,
|
141
141
|
ref: "draggables",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hot-area-content.vue2.mjs","sources":["../../../../src/hot-area-input/src/component/hot-area-content.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n name: 'HotAreaContent',\n});\n</script>\n<template>\n <div class=\"hot-area-content\">\n <div class=\"hot-area-draggable\">\n <div\n v-if=\"hotData.background\"\n :style=\"{\n width: hotData.width + 'px',\n height: hotData.height + 'px',\n backgroundImage: 'url(' + hotData.background + ')',\n }\"\n style=\"background-size: 100% 100%\"\n @contextmenu.prevent\n >\n <vue3-draggable-resizable\n v-for=\"(item, key) in hotData.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 :min-width=\"20\"\n :min-height=\"20\"\n @resizing=\"onResize\"\n @dragging=\"onDrag\"\n @mousedown=\"index = key\"\n >\n <div class=\"hot-item-content\" style=\"position: relative; width: 100%; height: 100%; background: #0003\">\n {{ key + 1 }}\n </div>\n </vue3-draggable-resizable>\n </div>\n <div v-else style=\"width: 500px; height: 500px\">\n <el-empty description=\"请上传图片\"></el-empty>\n </div>\n </div>\n <div class=\"hot-area-form\">\n <h3 style=\"margin-top: 0; font-size: 16px; font-weight: 500\">热区管理</h3>\n <el-form label-width=\"80px\" label-position=\"left\">\n <el-form-item label=\"背景图 \">\n <dk-image-input v-model=\"hotData.background\" />\n </el-form-item>\n <el-form-item v-for=\"(item, key) in hotData.views\" :key=\"key\" :label=\"'热区' + (key + 1)\">\n <el-input v-model=\"hotData.views[key].url\" placeholder=\"填写跳转地址\">\n <template #append>\n <el-button @click=\"delView(key)\">删除</el-button>\n </template>\n </el-input>\n </el-form-item>\n </el-form>\n <el-button :disabled=\"!hotData.background\" type=\"primary\" @click=\"addView()\">{{\n hotData.background ? '添加热区' : '请先上传图片'\n }}</el-button>\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\
|
1
|
+
{"version":3,"file":"hot-area-content.vue2.mjs","sources":["../../../../src/hot-area-input/src/component/hot-area-content.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n name: 'HotAreaContent',\n});\n</script>\n<template>\n <div class=\"hot-area-content\">\n <div class=\"hot-area-draggable\">\n <div\n v-if=\"hotData.background\"\n :style=\"{\n width: hotData.width + 'px',\n height: hotData.height + 'px',\n backgroundImage: 'url(' + hotData.background + ')',\n }\"\n style=\"background-size: 100% 100%\"\n @contextmenu.prevent\n >\n <vue3-draggable-resizable\n v-for=\"(item, key) in hotData.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 :min-width=\"20\"\n :min-height=\"20\"\n @resizing=\"onResize\"\n @dragging=\"onDrag\"\n @mousedown=\"index = key\"\n >\n <div class=\"hot-item-content\" style=\"position: relative; width: 100%; height: 100%; background: #0003\">\n {{ key + 1 }}\n </div>\n </vue3-draggable-resizable>\n </div>\n <div v-else style=\"width: 500px; height: 500px\">\n <el-empty description=\"请上传图片\"></el-empty>\n </div>\n </div>\n <div class=\"hot-area-form\">\n <h3 style=\"margin-top: 0; font-size: 16px; font-weight: 500\">热区管理</h3>\n <el-form label-width=\"80px\" label-position=\"left\">\n <el-form-item label=\"背景图 \">\n <dk-image-input v-model=\"hotData.background\" />\n </el-form-item>\n <el-form-item v-for=\"(item, key) in hotData.views\" :key=\"key\" :label=\"'热区' + (key + 1)\">\n <el-input v-model=\"hotData.views[key].url\" placeholder=\"填写跳转地址\">\n <template #append>\n <el-button @click=\"delView(key)\">删除</el-button>\n </template>\n </el-input>\n </el-form-item>\n </el-form>\n <el-button :disabled=\"!hotData.background\" type=\"primary\" @click=\"addView()\">{{\n hotData.background ? '添加热区' : '请先上传图片'\n }}</el-button>\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\n// import Vue3DraggableResizable, { DraggableContainer } from 'vue3-draggable-resizable'\nimport { reactive, ref, watch, onMounted } from 'vue'\n\n\nconst props = defineProps({\n hotDataValue: {\n default: () => {\n return {\n views: [],\n width: 400,\n height: 400,\n background: null,\n }\n },\n type: Object,\n },\n})\nconst index = ref(0)\nconst hotData = reactive(props.hotDataValue)\nconst addView = () => {\n // 这里hotData可以能没有views,如果没有就添加上views\n if (!Array.isArray(hotData.views)) {\n hotData.views = []\n }\n hotData.views.push({\n css: {\n left: 0,\n top: 0,\n width: 80,\n height: 80,\n borderRadius: 0,\n borderColor: '#fff',\n },\n url: '',\n })\n}\n\nconst delView = (indexToDelete: any) => {\n if (indexToDelete >= 0 && indexToDelete < hotData.views.length) {\n hotData.views.splice(indexToDelete, 1)\n }\n}\n\nconst onDrag = (p: any) => {\n const css = hotData.views[index.value].css\n css.left = p.x\n css.top = p.y\n}\nconst onResize = (p: any) => {\n const css = hotData.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}\n\nonMounted(() => {\n resetSize()\n})\n\nwatch(\n () => hotData?.background,\n () => {\n resetSize()\n }\n)\n\nconst resetSize = () => {\n if (hotData.background) {\n getImageSize(hotData.background)\n .then((image: any) => {\n hotData.width = 500\n hotData.height = (image.height * 500) / image.width\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</script>\n"],"names":["__MACROS_defineComponent"],"mappings":"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"}
|
package/es/index.mjs
CHANGED
@@ -31,6 +31,7 @@ import { Table } from './table/index.mjs';
|
|
31
31
|
import { Select } from './select/index.mjs';
|
32
32
|
import { PosterInput, Poster } from './poster-input/index.mjs';
|
33
33
|
import { directives, setGlobalConfig } from '@vipl520/utils';
|
34
|
+
import Vue3DraggableResizable from 'vue3-draggable-resizable';
|
34
35
|
export { tinyEditorProps } from './tiny-editor/src/props.mjs';
|
35
36
|
export { iconProps } from './icon/src/props.mjs';
|
36
37
|
export { groupProps } from './group/src/props.mjs';
|
@@ -134,7 +135,8 @@ const components = [
|
|
134
135
|
// 海报选择器
|
135
136
|
PosterInput,
|
136
137
|
// 海报
|
137
|
-
Poster
|
138
|
+
Poster,
|
139
|
+
Vue3DraggableResizable
|
138
140
|
// TODO 普通上传 upload
|
139
141
|
// TODO tag选择器 tag-input
|
140
142
|
// TODO 链接选择器 link-input
|
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 { Group } from './group'\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 { PageDiy } from './page-diy'\nimport { Table } from './table'\nimport { Select } from './select'\nimport { Poster, PosterInput } from './poster-input'\nimport { setGlobalConfig, directives } from '@vipl520/utils'\
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type { App } from 'vue'\nimport { Test } from './test'\nimport { Group } from './group'\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 { PageDiy } from './page-diy'\nimport { Table } from './table'\nimport { Select } from './select'\nimport { Poster, PosterInput } from './poster-input'\nimport { setGlobalConfig, directives } from '@vipl520/utils'\nimport Vue3DraggableResizable from 'vue3-draggable-resizable'\nexport * from './tiny-editor'\nexport * from './icon'\nexport * from './group'\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 './table'\nexport * from './select'\nexport * from './poster-input'\n\nconst components = [\n Test,\n Group,\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 Table,\n // 选择\n Select,\n // 表单组/对象表单\n // 海报选择器\n PosterInput,\n // 海报\n Poster,\n Vue3DraggableResizable,\n // TODO 普通上传 upload\n // TODO tag选择器 tag-input\n // TODO 链接选择器 link-input\n // TODO 海报编辑器 poster-input\n // TODO Layout布局组件 layout\n // TODO 应用信息组件 addon-info\n // TODO 用户信息组件 user-info\n // TODO 全局Hook组件 global-hook\n // TODO 前端DIY匹配\n // TODO 开发者工具(自动CRUD)\n // TODO 应用框架\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEA,MAAM,UAAa,GAAA;AAAA,EACjB,IAAA;AAAA,EACA,KAAA;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,KAAA;AAAA;AAAA,EAEA,MAAA;AAAA;AAAA;AAAA,EAGA,WAAA;AAAA;AAAA,EAEA,MAAA;AAAA,EACA,sBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYF,CAAA,CAAA;AAEO,MAAM,OAAU,GAAA,CAAC,GAAU,EAAA,MAAA,GAAc,EAAO,KAAA;AACrD,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 +1 @@
|
|
1
|
-
{"version":3,"file":"DkMinSwiperImage.mjs","sources":["../../../../../../../src/page-diy/src/config/rule/min/common/DkMinSwiperImage.js"],"sourcesContent":["const label = '轮播图'\nconst name = 'DkMinSwiperImage'\n\nexport default {\n icon: 'dashicons:images-alt2',\n label,\n name,\n rule() {\n return {\n type: name,\n props: {\n swipeList: [\n {\n img: 'https://img01.yzcdn.cn/upload_files/2021/07/06/FsivVhWrSJsQWx0GhgOJKS_IOQp_.jpg?imageMogr2/format/jpg/thumbnail/1484x/size-limit/300k!/interlace/1',\n url: '',\n title: '默认备注名称1',\n show: true,\n },\n {\n img: 'https://img01.yzcdn.cn/upload_files/2021/07/07/Fm30KtbmHzLJ96USZWFGI8FLQVss.png?imageMogr2/format/jpg/thumbnail/1484x/size-limit/300k!/interlace/1',\n url: '',\n title: '默认备注名称2',\n show: true,\n },\n {\n img: 'https://img01.yzcdn.cn/upload_files/2021/07/01/Fj19dCrgsMyTYdrr89b9iheMVFZU.png?imageMogr2/format/jpg/thumbnail/1484x/size-limit/300k!/interlace/1',\n url: '',\n title: '默认备注名称3',\n show: true,\n },\n ],\n autoplay: 2000,\n },\n showStyle: true,\n }\n },\n props() {\n return [\n {\n type: 'inputNumber',\n field: 'height',\n title: '图片高度',\n value: 200,\n props: { min: 0, max: 500 },\n },\n {\n type: 'select',\n field: 'imgMode',\n title: '裁剪缩放模式',\n value: 'aspectFill',\n options: [\n {\n label: 'scaleToFill:宽高完全拉伸至填满',\n value: 'scaleToFill',\n },\n {\n label: 'aspectFit:长边能完全显示出来',\n value: 'aspectFit',\n },\n {\n label: 'aspectFill:短边能完全显示出来',\n value: 'aspectFill',\n },\n { label: 'widthFix:宽度不变,高度自动变化', value: 'widthFix' },\n {\n label: 'heightFix:高度不变,宽度自动变化',\n value: 'heightFix',\n },\n {\n label: 'top:只显示图片的顶部区域',\n value: 'top',\n },\n {\n label: 'bottom:只显示图片的底部区域',\n value: 'bottom',\n },\n {\n label: 'center:只显示图片的中间区域',\n value: 'center',\n },\n {\n label: 'left:只显示图片的左边区域',\n value: 'left',\n },\n {\n label: 'right:只显示图片的右边区域',\n value: 'right',\n },\n {\n label: 'top left:只显示图片的左上边区域',\n value: 'top left',\n },\n {\n label: 'top right:只显示图片的右上边区域',\n value: 'top right',\n },\n {\n label: 'bottom left:只显示图片的左下边区域',\n value: 'bottom left',\n },\n {\n label: 'bottom right:只显示图片的右下边区域',\n value: 'bottom right',\n },\n ],\n effect: {\n help: '小程序图片的缩放剪裁模式,目前无法直接预览,可以参考:https://uniapp.dcloud.net.cn/component/image.html',\n },\n },\n\n {\n type: 'slider',\n field: 'autoplay',\n title: '轮播间隔',\n value: 3000,\n props: {\n min: 500,\n max: 10000,\n step: 100,\n formatTooltip: (val) => {\n return val / 1000 + '秒'\n },\n },\n },\n {\n type: 'switch',\n field: 'showTitle',\n title: '显示标题',\n value: false,\n },\n {\n type: 'DkGroup',\n field: 'swipeList',\n value: [],\n props: {\n title: '图片配置',\n // addTitle:'',\n defaultValue: {\n img: 'https://cdn.w7.cc/images/2019/03/25/j0C525ySgwApwp1gmIRUdDS6ZXL8lOrbxoiM6JZb.png',\n url: '',\n title: '新内容',\n },\n rule: [\n {\n type: 'input',\n field: 'title',\n value: '',\n title: '备注名称',\n },\n {\n type: 'DkImageInput',\n field: 'img',\n value: '',\n title: '选择图标',\n },\n {\n type: 'switch',\n field: 'show',\n value: true,\n title: '是否显示',\n },\n {\n type: 'input',\n field: 'url',\n props: {\n showInput: false,\n },\n value: {},\n title: '跳转地址',\n },\n ],\n },\n },\n ]\n },\n}\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"DkMinSwiperImage.mjs","sources":["../../../../../../../src/page-diy/src/config/rule/min/common/DkMinSwiperImage.js"],"sourcesContent":["const label = '轮播图'\nconst name = 'DkMinSwiperImage'\n\nexport default {\n icon: 'dashicons:images-alt2',\n label,\n name,\n rule() {\n return {\n type: name,\n props: {\n swipeList: [\n {\n img: 'https://img01.yzcdn.cn/upload_files/2021/07/06/FsivVhWrSJsQWx0GhgOJKS_IOQp_.jpg?imageMogr2/format/jpg/thumbnail/1484x/size-limit/300k!/interlace/1',\n url: '',\n title: '默认备注名称1',\n show: true,\n },\n {\n img: 'https://img01.yzcdn.cn/upload_files/2021/07/07/Fm30KtbmHzLJ96USZWFGI8FLQVss.png?imageMogr2/format/jpg/thumbnail/1484x/size-limit/300k!/interlace/1',\n url: '',\n title: '默认备注名称2',\n show: true,\n },\n {\n img: 'https://img01.yzcdn.cn/upload_files/2021/07/01/Fj19dCrgsMyTYdrr89b9iheMVFZU.png?imageMogr2/format/jpg/thumbnail/1484x/size-limit/300k!/interlace/1',\n url: '',\n title: '默认备注名称3',\n show: true,\n },\n ],\n height: 160,\n autoplay: 2000,\n },\n showStyle: true,\n }\n },\n props() {\n return [\n {\n type: 'inputNumber',\n field: 'height',\n title: '图片高度',\n value: 200,\n props: { min: 0, max: 500 },\n },\n {\n type: 'select',\n field: 'imgMode',\n title: '裁剪缩放模式',\n value: 'aspectFill',\n options: [\n {\n label: 'scaleToFill:宽高完全拉伸至填满',\n value: 'scaleToFill',\n },\n {\n label: 'aspectFit:长边能完全显示出来',\n value: 'aspectFit',\n },\n {\n label: 'aspectFill:短边能完全显示出来',\n value: 'aspectFill',\n },\n { label: 'widthFix:宽度不变,高度自动变化', value: 'widthFix' },\n {\n label: 'heightFix:高度不变,宽度自动变化',\n value: 'heightFix',\n },\n {\n label: 'top:只显示图片的顶部区域',\n value: 'top',\n },\n {\n label: 'bottom:只显示图片的底部区域',\n value: 'bottom',\n },\n {\n label: 'center:只显示图片的中间区域',\n value: 'center',\n },\n {\n label: 'left:只显示图片的左边区域',\n value: 'left',\n },\n {\n label: 'right:只显示图片的右边区域',\n value: 'right',\n },\n {\n label: 'top left:只显示图片的左上边区域',\n value: 'top left',\n },\n {\n label: 'top right:只显示图片的右上边区域',\n value: 'top right',\n },\n {\n label: 'bottom left:只显示图片的左下边区域',\n value: 'bottom left',\n },\n {\n label: 'bottom right:只显示图片的右下边区域',\n value: 'bottom right',\n },\n ],\n effect: {\n help: '小程序图片的缩放剪裁模式,目前无法直接预览,可以参考:https://uniapp.dcloud.net.cn/component/image.html',\n },\n },\n\n {\n type: 'slider',\n field: 'autoplay',\n title: '轮播间隔',\n value: 3000,\n props: {\n min: 500,\n max: 10000,\n step: 100,\n formatTooltip: (val) => {\n return val / 1000 + '秒'\n },\n },\n },\n {\n type: 'switch',\n field: 'showTitle',\n title: '显示标题',\n value: false,\n },\n {\n type: 'DkGroup',\n field: 'swipeList',\n value: [],\n props: {\n title: '图片配置',\n // addTitle:'',\n defaultValue: {\n img: 'https://cdn.w7.cc/images/2019/03/25/j0C525ySgwApwp1gmIRUdDS6ZXL8lOrbxoiM6JZb.png',\n url: '',\n title: '新内容',\n },\n rule: [\n {\n type: 'input',\n field: 'title',\n value: '',\n title: '备注名称',\n },\n {\n type: 'DkImageInput',\n field: 'img',\n value: '',\n title: '选择图标',\n },\n {\n type: 'switch',\n field: 'show',\n value: true,\n title: '是否显示',\n },\n {\n type: 'input',\n field: 'url',\n props: {\n showInput: false,\n },\n value: {},\n title: '跳转地址',\n },\n ],\n },\n },\n ]\n },\n}\n"],"names":[],"mappings":"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"}
|
@@ -61,6 +61,7 @@ export const commonMenu: ({
|
|
61
61
|
title: string;
|
62
62
|
show: boolean;
|
63
63
|
}[];
|
64
|
+
height: number;
|
64
65
|
autoplay: number;
|
65
66
|
};
|
66
67
|
showStyle: boolean;
|
@@ -371,6 +372,7 @@ export const commonRuleList: {
|
|
371
372
|
title: string;
|
372
373
|
show: boolean;
|
373
374
|
}[];
|
375
|
+
height: number;
|
374
376
|
autoplay: number;
|
375
377
|
};
|
376
378
|
showStyle: boolean;
|
@@ -62,6 +62,7 @@ export const minRuleList: {
|
|
62
62
|
title: string;
|
63
63
|
show: boolean;
|
64
64
|
}[];
|
65
|
+
height: number;
|
65
66
|
autoplay: number;
|
66
67
|
};
|
67
68
|
showStyle: boolean;
|
@@ -375,6 +376,7 @@ export function createMinMenu(): {
|
|
375
376
|
title: string;
|
376
377
|
show: boolean;
|
377
378
|
}[];
|
379
|
+
height: number;
|
378
380
|
autoplay: number;
|
379
381
|
};
|
380
382
|
showStyle: boolean;
|
@@ -43,10 +43,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
43
43
|
type: StringConstructor;
|
44
44
|
};
|
45
45
|
}>>, {
|
46
|
-
active: number;
|
47
46
|
bgColor: string;
|
48
47
|
activeColor: string;
|
49
48
|
inactiveColor: string;
|
49
|
+
active: number;
|
50
50
|
tabBars: unknown[];
|
51
51
|
}, {}>;
|
52
52
|
export default _default;
|
@@ -1,6 +1,5 @@
|
|
1
|
-
import { createElementVNode, createTextVNode, defineComponent, ref, reactive, computed, provide, watch, onMounted, resolveComponent, openBlock, createElementBlock, normalizeStyle, withModifiers, createBlock, createCommentVNode, createVNode,
|
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 Vue3DraggableResizable, { DraggableContainer } from 'vue3-draggable-resizable';
|
4
3
|
import 'vue3-draggable-resizable/dist/Vue3DraggableResizable.css';
|
5
4
|
import DkPosterViewName from './views/DkPosterViewName.vue.mjs';
|
6
5
|
import DkPosterViewText from './views/DkPosterViewText.vue.mjs';
|
@@ -252,6 +251,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
252
251
|
});
|
253
252
|
return (_ctx, _cache) => {
|
254
253
|
const _component_el_empty = resolveComponent("el-empty");
|
254
|
+
const _component_vue3_draggable_resizable = resolveComponent("vue3-draggable-resizable");
|
255
|
+
const _component_DraggableContainer = resolveComponent("DraggableContainer");
|
255
256
|
const _component_el_switch = resolveComponent("el-switch");
|
256
257
|
const _component_el_form_item = resolveComponent("el-form-item");
|
257
258
|
const _component_el_form = resolveComponent("el-form");
|
@@ -282,7 +283,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
282
283
|
description: "\u8BF7\u4E0A\u4F20\u4E00\u5F20\u80CC\u666F\u56FE",
|
283
284
|
style: { "position": "absolute", "width": "100%", "height": "80%", "user-select": "none" }
|
284
285
|
})) : createCommentVNode("v-if", true),
|
285
|
-
createVNode(
|
286
|
+
createVNode(_component_DraggableContainer, {
|
286
287
|
ref_key: "draggableContainer",
|
287
288
|
ref: draggableContainer,
|
288
289
|
"reference-line-visible": formTools.refLine,
|
@@ -295,7 +296,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
295
296
|
Fragment,
|
296
297
|
null,
|
297
298
|
renderList(posterData.views, (item, key) => {
|
298
|
-
return openBlock(), createBlock(
|
299
|
+
return openBlock(), createBlock(_component_vue3_draggable_resizable, {
|
299
300
|
key,
|
300
301
|
ref_for: true,
|
301
302
|
ref_key: "draggables",
|
@@ -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'\nimport 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 '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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"}
|
@@ -3,7 +3,6 @@
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
5
|
var vue = require('vue');
|
6
|
-
var Vue3DraggableResizable = require('vue3-draggable-resizable');
|
7
6
|
|
8
7
|
const _hoisted_1 = { class: "hot-area-content" };
|
9
8
|
const _hoisted_2 = { class: "hot-area-draggable" };
|
@@ -114,6 +113,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
114
113
|
});
|
115
114
|
};
|
116
115
|
return (_ctx, _cache) => {
|
116
|
+
const _component_vue3_draggable_resizable = vue.resolveComponent("vue3-draggable-resizable");
|
117
117
|
const _component_el_empty = vue.resolveComponent("el-empty");
|
118
118
|
const _component_dk_image_input = vue.resolveComponent("dk-image-input");
|
119
119
|
const _component_el_form_item = vue.resolveComponent("el-form-item");
|
@@ -139,7 +139,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
139
139
|
vue.Fragment,
|
140
140
|
null,
|
141
141
|
vue.renderList(hotData.views, (item, key) => {
|
142
|
-
return vue.openBlock(), vue.createBlock(
|
142
|
+
return vue.openBlock(), vue.createBlock(_component_vue3_draggable_resizable, {
|
143
143
|
key,
|
144
144
|
ref_for: true,
|
145
145
|
ref: "draggables",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hot-area-content.vue2.js","sources":["../../../../src/hot-area-input/src/component/hot-area-content.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n name: 'HotAreaContent',\n});\n</script>\n<template>\n <div class=\"hot-area-content\">\n <div class=\"hot-area-draggable\">\n <div\n v-if=\"hotData.background\"\n :style=\"{\n width: hotData.width + 'px',\n height: hotData.height + 'px',\n backgroundImage: 'url(' + hotData.background + ')',\n }\"\n style=\"background-size: 100% 100%\"\n @contextmenu.prevent\n >\n <vue3-draggable-resizable\n v-for=\"(item, key) in hotData.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 :min-width=\"20\"\n :min-height=\"20\"\n @resizing=\"onResize\"\n @dragging=\"onDrag\"\n @mousedown=\"index = key\"\n >\n <div class=\"hot-item-content\" style=\"position: relative; width: 100%; height: 100%; background: #0003\">\n {{ key + 1 }}\n </div>\n </vue3-draggable-resizable>\n </div>\n <div v-else style=\"width: 500px; height: 500px\">\n <el-empty description=\"请上传图片\"></el-empty>\n </div>\n </div>\n <div class=\"hot-area-form\">\n <h3 style=\"margin-top: 0; font-size: 16px; font-weight: 500\">热区管理</h3>\n <el-form label-width=\"80px\" label-position=\"left\">\n <el-form-item label=\"背景图 \">\n <dk-image-input v-model=\"hotData.background\" />\n </el-form-item>\n <el-form-item v-for=\"(item, key) in hotData.views\" :key=\"key\" :label=\"'热区' + (key + 1)\">\n <el-input v-model=\"hotData.views[key].url\" placeholder=\"填写跳转地址\">\n <template #append>\n <el-button @click=\"delView(key)\">删除</el-button>\n </template>\n </el-input>\n </el-form-item>\n </el-form>\n <el-button :disabled=\"!hotData.background\" type=\"primary\" @click=\"addView()\">{{\n hotData.background ? '添加热区' : '请先上传图片'\n }}</el-button>\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\
|
1
|
+
{"version":3,"file":"hot-area-content.vue2.js","sources":["../../../../src/hot-area-input/src/component/hot-area-content.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n name: 'HotAreaContent',\n});\n</script>\n<template>\n <div class=\"hot-area-content\">\n <div class=\"hot-area-draggable\">\n <div\n v-if=\"hotData.background\"\n :style=\"{\n width: hotData.width + 'px',\n height: hotData.height + 'px',\n backgroundImage: 'url(' + hotData.background + ')',\n }\"\n style=\"background-size: 100% 100%\"\n @contextmenu.prevent\n >\n <vue3-draggable-resizable\n v-for=\"(item, key) in hotData.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 :min-width=\"20\"\n :min-height=\"20\"\n @resizing=\"onResize\"\n @dragging=\"onDrag\"\n @mousedown=\"index = key\"\n >\n <div class=\"hot-item-content\" style=\"position: relative; width: 100%; height: 100%; background: #0003\">\n {{ key + 1 }}\n </div>\n </vue3-draggable-resizable>\n </div>\n <div v-else style=\"width: 500px; height: 500px\">\n <el-empty description=\"请上传图片\"></el-empty>\n </div>\n </div>\n <div class=\"hot-area-form\">\n <h3 style=\"margin-top: 0; font-size: 16px; font-weight: 500\">热区管理</h3>\n <el-form label-width=\"80px\" label-position=\"left\">\n <el-form-item label=\"背景图 \">\n <dk-image-input v-model=\"hotData.background\" />\n </el-form-item>\n <el-form-item v-for=\"(item, key) in hotData.views\" :key=\"key\" :label=\"'热区' + (key + 1)\">\n <el-input v-model=\"hotData.views[key].url\" placeholder=\"填写跳转地址\">\n <template #append>\n <el-button @click=\"delView(key)\">删除</el-button>\n </template>\n </el-input>\n </el-form-item>\n </el-form>\n <el-button :disabled=\"!hotData.background\" type=\"primary\" @click=\"addView()\">{{\n hotData.background ? '添加热区' : '请先上传图片'\n }}</el-button>\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\n// import Vue3DraggableResizable, { DraggableContainer } from 'vue3-draggable-resizable'\nimport { reactive, ref, watch, onMounted } from 'vue'\n\n\nconst props = defineProps({\n hotDataValue: {\n default: () => {\n return {\n views: [],\n width: 400,\n height: 400,\n background: null,\n }\n },\n type: Object,\n },\n})\nconst index = ref(0)\nconst hotData = reactive(props.hotDataValue)\nconst addView = () => {\n // 这里hotData可以能没有views,如果没有就添加上views\n if (!Array.isArray(hotData.views)) {\n hotData.views = []\n }\n hotData.views.push({\n css: {\n left: 0,\n top: 0,\n width: 80,\n height: 80,\n borderRadius: 0,\n borderColor: '#fff',\n },\n url: '',\n })\n}\n\nconst delView = (indexToDelete: any) => {\n if (indexToDelete >= 0 && indexToDelete < hotData.views.length) {\n hotData.views.splice(indexToDelete, 1)\n }\n}\n\nconst onDrag = (p: any) => {\n const css = hotData.views[index.value].css\n css.left = p.x\n css.top = p.y\n}\nconst onResize = (p: any) => {\n const css = hotData.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}\n\nonMounted(() => {\n resetSize()\n})\n\nwatch(\n () => hotData?.background,\n () => {\n resetSize()\n }\n)\n\nconst resetSize = () => {\n if (hotData.background) {\n getImageSize(hotData.background)\n .then((image: any) => {\n hotData.width = 500\n hotData.height = (image.height * 500) / image.width\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</script>\n"],"names":["__MACROS_defineComponent","ref","reactive","onMounted","watch"],"mappings":"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"}
|
package/lib/index.js
CHANGED
@@ -35,6 +35,7 @@ var index$t = require('./table/index.js');
|
|
35
35
|
var index$u = require('./select/index.js');
|
36
36
|
var index$v = require('./poster-input/index.js');
|
37
37
|
var utils = require('@vipl520/utils');
|
38
|
+
var Vue3DraggableResizable = require('vue3-draggable-resizable');
|
38
39
|
var props = require('./tiny-editor/src/props.js');
|
39
40
|
var props$1 = require('./icon/src/props.js');
|
40
41
|
var props$2 = require('./group/src/props.js');
|
@@ -138,7 +139,8 @@ const components = [
|
|
138
139
|
// 海报选择器
|
139
140
|
index$v.PosterInput,
|
140
141
|
// 海报
|
141
|
-
index$v.Poster
|
142
|
+
index$v.Poster,
|
143
|
+
Vue3DraggableResizable
|
142
144
|
// TODO 普通上传 upload
|
143
145
|
// TODO tag选择器 tag-input
|
144
146
|
// TODO 链接选择器 link-input
|
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 { Group } from './group'\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 { PageDiy } from './page-diy'\nimport { Table } from './table'\nimport { Select } from './select'\nimport { Poster, PosterInput } from './poster-input'\nimport { setGlobalConfig, directives } from '@vipl520/utils'\
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type { App } from 'vue'\nimport { Test } from './test'\nimport { Group } from './group'\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 { PageDiy } from './page-diy'\nimport { Table } from './table'\nimport { Select } from './select'\nimport { Poster, PosterInput } from './poster-input'\nimport { setGlobalConfig, directives } from '@vipl520/utils'\nimport Vue3DraggableResizable from 'vue3-draggable-resizable'\nexport * from './tiny-editor'\nexport * from './icon'\nexport * from './group'\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 './table'\nexport * from './select'\nexport * from './poster-input'\n\nconst components = [\n Test,\n Group,\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 Table,\n // 选择\n Select,\n // 表单组/对象表单\n // 海报选择器\n PosterInput,\n // 海报\n Poster,\n Vue3DraggableResizable,\n // TODO 普通上传 upload\n // TODO tag选择器 tag-input\n // TODO 链接选择器 link-input\n // TODO 海报编辑器 poster-input\n // TODO Layout布局组件 layout\n // TODO 应用信息组件 addon-info\n // TODO 用户信息组件 user-info\n // TODO 全局Hook组件 global-hook\n // TODO 前端DIY匹配\n // TODO 开发者工具(自动CRUD)\n // TODO 应用框架\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","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","Table","Select","PosterInput","Poster","directives","setGlobalConfig"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEA,MAAM,UAAa,GAAA;AAAA,EACjBA,YAAA;AAAA,EACAC,aAAA;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,aAAA;AAAA;AAAA,EAEAC,cAAA;AAAA;AAAA;AAAA,EAGAC,mBAAA;AAAA;AAAA,EAEAC,cAAA;AAAA,EACA,sBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYF,CAAA,CAAA;AAEO,MAAM,OAAU,GAAA,CAAC,GAAU,EAAA,MAAA,GAAc,EAAO,KAAA;AACrD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|