vue-print-designer 1.8.0 → 1.8.2
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/README.md +48 -2
- package/dist/{AiSettingsSection-_vzlm2KM.js → AiSettingsSection-Ce1qItaA.js} +4 -4
- package/dist/{FloatingAiPanel-DB_N38Ax.js → FloatingAiPanel-BWa_cAyG.js} +22 -77
- package/dist/{JsBarcode-D2UQSoxx.js → JsBarcode-CJ_Wu-Js.js} +1 -1
- package/dist/MarketModal-B10qcpEK.js +828 -0
- package/dist/{api-JmIvlXA_.js → api-CYH8azsU.js} +9 -3
- package/dist/{browser-BDOklKeU.js → browser-Du-7UbR5.js} +1 -1
- package/dist/{client-CmWO24QA.js → client-BdMMFNKL.js} +1 -1
- package/dist/{index-CTvPPuK3.js → index-B6xcGTY_.js} +1 -1
- package/dist/{index-DJ8Xh908.js → index-DsUF-YKj.js} +1 -1
- package/dist/{preview-CGnhbhlb.js → preview-6xanSdC7.js} +1 -1
- package/dist/print-designer.css +1 -1
- package/dist/print-designer.es.js +2 -2
- package/dist/print-designer.umd.js +7 -7
- package/dist/refresh-DV7QQgv5.js +63 -0
- package/dist/store-Vzc-Gh2u.js +824 -0
- package/dist/{web-component-CFaq9hNs.js → web-component-Ch6T6yFD.js} +1054 -664
- package/dist/web-component.d.ts +47 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -55,12 +55,12 @@ Vue Print Designer 是一款可视化打印设计器,面向业务表单、标
|
|
|
55
55
|
<tr>
|
|
56
56
|
<td align="center"><img src="https://raw.githubusercontent.com/0ldFive/Vue-Print-Designer/master/docs/images/4.png?v=2" alt="AI 模型配置" width="100%" /></td>
|
|
57
57
|
<td align="center"><img src="https://raw.githubusercontent.com/0ldFive/Vue-Print-Designer/master/docs/images/5.png" alt="快捷键说明" width="100%" /></td>
|
|
58
|
-
<td align="center"><img src="https://raw.githubusercontent.com/0ldFive/Vue-Print-Designer/master/docs/images/6.png" alt="
|
|
58
|
+
<td align="center"><img src="https://raw.githubusercontent.com/0ldFive/Vue-Print-Designer/master/docs/images/6.png?v=2" alt="模板市场" width="100%" /></td>
|
|
59
59
|
</tr>
|
|
60
60
|
<tr>
|
|
61
61
|
<td align="center"><b>AI 助手 · 模型接入配置</b></td>
|
|
62
62
|
<td align="center"><b>快捷键说明</b></td>
|
|
63
|
-
<td align="center"><b
|
|
63
|
+
<td align="center"><b>模板市场</b></td>
|
|
64
64
|
</tr>
|
|
65
65
|
</table>
|
|
66
66
|
|
|
@@ -76,6 +76,7 @@ Vue Print Designer 是一款可视化打印设计器,面向业务表单、标
|
|
|
76
76
|
- **浏览器打印**:原生预览与打印。
|
|
77
77
|
- **导出**:支持生成 PDF、图片(拼接 / 分片)。
|
|
78
78
|
- **客户端打印**:支持**静默打印**(无弹窗直打)与**云打印**(远程任务下发)。
|
|
79
|
+
- **标签打印**:配套客户端把设计器模板直接转成标签打印机原生指令(TSPL / ZPL / ESC-POS / CPCL),经系统打印队列 RAW 直出,条码与二维码保持矢量锐度,支持批量数据与连续纸。
|
|
79
80
|
- **企业级功能**:支持自定义纸张、API 数据对接、模板导入导出及精细的打印参数控制(打印机 / 份数 / 单双面 / DPI)。
|
|
80
81
|
|
|
81
82
|
---
|
|
@@ -105,6 +106,51 @@ PrintDot Client 是本项目的配套桌面客户端,用于连接本地打印
|
|
|
105
106
|
</tr>
|
|
106
107
|
</table>
|
|
107
108
|
|
|
109
|
+
### 标签打印(RAW 指令直出)
|
|
110
|
+
|
|
111
|
+
热敏 / 热转印标签机(TSC、佳博、斑马、汉印、得力、芯烨等)本质是指令集打印机,把 PDF 交给这类设备只能整页栅格化:出标慢、条码扫描率下降、自定义纸张还容易缩放错位。客户端为此提供独立的标签打印通道——直接解析设计器模板 JSON,生成打印机原生指令后以 RAW 方式投递到系统打印队列,驱动原样透传。
|
|
112
|
+
|
|
113
|
+
- **四种指令集**:TSPL / ZPL / ESC-POS / CPCL,默认按打印机名与驱动名自动推断,识别不到时可显式指定。
|
|
114
|
+
- **元素完整还原**:文本(自动换行、对齐、粗细)、条码、二维码、表格(合并单元格、表头表尾、SUM / AVG / COUNT 聚合)、图片(抖动为黑白)、矩形 / 线条 / 圆形、多标签网格,以及任意角度的元素旋转。
|
|
115
|
+
- **打印参数可控**:标签纸宽高(毫米,高度填 0 即连续纸按内容撑高)、DPI、速度、浓度、间隙 / 黑标 / 纵向偏移;文字可选位图渲染(版式保真)或机内字库(指令体积更小)。
|
|
116
|
+
- **两条使用路径**:
|
|
117
|
+
- 业务端发送 `print_label` 消息,把设计器导出的模板 JSON 原样转发即可,无需二次加工;
|
|
118
|
+
- 在客户端打印预览窗口勾选「标签打印」即可本地出标(需设计器预览模式为 JSON);选中标签机时会自动识别指令集并勾选,识别结果可随时手动推翻。
|
|
119
|
+
- **批量与多页**:模板一页即一张标签;`labels[]` 可一次提交整批数据,每条数据独立设置份数,相邻标签之间可配置间隔。
|
|
120
|
+
- **可追溯**:打印记录以 `label` 类型保存任务,并保留下发的指令内容,便于复查。
|
|
121
|
+
|
|
122
|
+
#### 打印效果一致性比对
|
|
123
|
+
|
|
124
|
+
下图为同一张 60 × 40 mm 仓库标签的三种呈现:设计器导出的原始效果、Zebra 官方 Labelary 服务按 ZPL 指令解析出的固件模拟结果,以及客户端本地按同一批指令重绘的结果。右下角将三者分别以红、黄、蓝三层叠加,重合区域呈深紫灰,可据此检查文本位置、字号与条码模块是否对齐。
|
|
125
|
+
|
|
126
|
+
<table width="100%">
|
|
127
|
+
<tr>
|
|
128
|
+
<td align="center"><img src="https://raw.githubusercontent.com/0ldFive/Vue-Print-Designer/master/docs/images/label-compare-comparison.png" alt="标签打印三路对比" width="100%" /></td>
|
|
129
|
+
</tr>
|
|
130
|
+
<tr>
|
|
131
|
+
<td align="center"><b>四路对照:设计器原图 / 厂商 API 模拟 / 客户端指令渲染 / 三方叠加</b></td>
|
|
132
|
+
</tr>
|
|
133
|
+
</table>
|
|
134
|
+
|
|
135
|
+
<table width="100%">
|
|
136
|
+
<tr>
|
|
137
|
+
<td align="center" width="25%"><img src="https://raw.githubusercontent.com/0ldFive/Vue-Print-Designer/master/docs/images/label-compare-designer.png" alt="设计器原图" width="100%" /></td>
|
|
138
|
+
<td align="center" width="25%"><img src="https://raw.githubusercontent.com/0ldFive/Vue-Print-Designer/master/docs/images/label-compare-api.png" alt="厂商 API 模拟" width="100%" /></td>
|
|
139
|
+
<td align="center" width="25%"><img src="https://raw.githubusercontent.com/0ldFive/Vue-Print-Designer/master/docs/images/label-compare-local.png" alt="客户端指令渲染" width="100%" /></td>
|
|
140
|
+
<td align="center" width="25%"><img src="https://raw.githubusercontent.com/0ldFive/Vue-Print-Designer/master/docs/images/label-compare-overlay.png" alt="三方叠加" width="100%" /></td>
|
|
141
|
+
</tr>
|
|
142
|
+
<tr>
|
|
143
|
+
<td align="center"><b>设计器原图</b></td>
|
|
144
|
+
<td align="center"><b>厂商 API 模拟</b></td>
|
|
145
|
+
<td align="center"><b>客户端指令渲染</b></td>
|
|
146
|
+
<td align="center"><b>三方叠加(diff)</b></td>
|
|
147
|
+
</tr>
|
|
148
|
+
</table>
|
|
149
|
+
|
|
150
|
+
以上图片由测试工具自动生成,不是手工截图。修改标签相关代码后,工具会将 ZPL 指令提交至 Labelary 逐点比对,差异超过 0.5% 时给出告警;无网络环境下自动跳过远端比对并输出提示,不影响本地打印任务。
|
|
151
|
+
|
|
152
|
+
> 边界说明:彩色与灰度按黑白抖动输出;`pageNumber` 元素、水印 / 渐变 / 阴影、自定义 JS 脚本在标签路径下会被忽略且不阻断任务;ESC-POS 依赖机型支持 page mode 与 `ESC *` 位图。文字版式跨机器一致(客户端内嵌字体渲染),几何误差约 0.5 dot(203 dpi 下约 0.06 mm)。
|
|
153
|
+
|
|
108
154
|
---
|
|
109
155
|
|
|
110
156
|
## 集成示例
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as requestAiTemplate, A as AiRequestError, u as useAiStore, a as activeAiProfile } from "./client-
|
|
3
|
-
import { u as useAiLocale } from "./index-
|
|
1
|
+
import { l as defineComponent, a3 as inject, L as ref, j as computed, w as watch, N as onMounted, O as onBeforeUnmount, o as openBlock, E as createBlock, T as Teleport, q as unref, g as createBaseVNode, A as toDisplayString, t as createVNode, C as CloseIcon, x as withDirectives, z as vModelText, y as withKeys, p as withModifiers, ad as _sfc_main$2, n as normalizeClass, D as ChevronIcon, f as createElementBlock, F as Fragment, ae as vModelCheckbox, B as createTextVNode, v as createCommentVNode, a as useI18n, e as useTemplateStore, af as AddIcon, r as renderList, J as EditIcon, K as DeleteIcon } from "./web-component-Ch6T6yFD.js";
|
|
2
|
+
import { r as requestAiTemplate, A as AiRequestError, u as useAiStore, a as activeAiProfile } from "./client-BdMMFNKL.js";
|
|
3
|
+
import { u as useAiLocale } from "./index-B6xcGTY_.js";
|
|
4
4
|
const _hoisted_1$1 = { class: "flex h-[34rem] max-h-[85vh] w-[32rem] flex-col overflow-hidden rounded-lg bg-white shadow-xl" };
|
|
5
5
|
const _hoisted_2$1 = { class: "flex shrink-0 items-center justify-between border-b border-gray-200 px-4 py-3" };
|
|
6
6
|
const _hoisted_3$1 = { class: "text-sm font-semibold text-gray-800" };
|
|
@@ -230,7 +230,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
230
230
|
class: "rounded-full p-1 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600",
|
|
231
231
|
onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
|
|
232
232
|
}, [
|
|
233
|
-
createVNode(unref(
|
|
233
|
+
createVNode(unref(CloseIcon), { class: "w-4 h-4" })
|
|
234
234
|
])
|
|
235
235
|
]),
|
|
236
236
|
createBaseVNode("div", _hoisted_4$1, [
|
|
@@ -1,91 +1,50 @@
|
|
|
1
|
-
import { m as markRaw, o as openBlock,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import { m as markRaw, o as openBlock, f as createElementBlock, g as createBaseVNode, h as uuidv4, u as useDesignerStore, e as useTemplateStore, a as useI18n, j as computed, c as cloneDeep, k as uiConfirm, l as defineComponent, w as watch, n as normalizeClass, p as withModifiers, F as Fragment, r as renderList, q as unref, t as createVNode, C as CloseIcon, v as createCommentVNode, x as withDirectives, y as withKeys, z as vModelText, A as toDisplayString, I as ImageIcon, B as createTextVNode, D as ChevronIcon, E as createBlock, G as CheckIcon, H as CopyIcon, J as EditIcon, K as DeleteIcon, L as ref, M as nextTick, T as Teleport, S as SparkleIcon, N as onMounted, O as onBeforeUnmount, P as ChevronRightIcon, Q as useFloatingTooltip, R as FEATURE_FLAGS_CHANGE_EVENT, U as vShow, V as HistoryIcon, W as Settings, X as normalizeStyle, Y as resolveDynamicComponent, Z as ArrowUpIcon, _ as PanelResizeIcon } from "./web-component-Ch6T6yFD.js";
|
|
2
|
+
import { R as RefreshIcon, F as FinanceIcon, S as ShippingIcon, O as OfficeIcon } from "./refresh-DV7QQgv5.js";
|
|
3
|
+
import { u as useAiStore, i as isAiConfigReady, a as activeAiProfile, r as requestAiTemplate, A as AiRequestError } from "./client-BdMMFNKL.js";
|
|
4
|
+
import { c as createActionText, u as useAiLocale } from "./index-B6xcGTY_.js";
|
|
5
|
+
import { e as extractJsonText, f as dropPreview, a as cancelPreview, c as commitPreview, r as resolveLocalAction, g as getActionDefinition, b as buildSystemPrompt, h as getPromptLanguage, d as buildUserMessage, n as normalizeTemplate, i as beginPreview } from "./preview-6xanSdC7.js";
|
|
6
|
+
const _hoisted_1$a = {
|
|
6
7
|
viewBox: "0 0 24 24",
|
|
7
8
|
width: "1.2em",
|
|
8
9
|
height: "1.2em"
|
|
9
10
|
};
|
|
10
|
-
function render$
|
|
11
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11
|
+
function render$6(_ctx, _cache) {
|
|
12
|
+
return openBlock(), createElementBlock("svg", _hoisted_1$a, [..._cache[0] || (_cache[0] = [
|
|
12
13
|
createBaseVNode("path", {
|
|
13
14
|
fill: "currentColor",
|
|
14
15
|
d: "M6 18V6h12v12z"
|
|
15
16
|
}, null, -1)
|
|
16
17
|
])]);
|
|
17
18
|
}
|
|
18
|
-
const StopIcon = markRaw({ name: "material-symbols-stop", render: render$
|
|
19
|
-
const _hoisted_1$
|
|
19
|
+
const StopIcon = markRaw({ name: "material-symbols-stop", render: render$6 });
|
|
20
|
+
const _hoisted_1$9 = {
|
|
20
21
|
viewBox: "0 0 24 24",
|
|
21
22
|
width: "1.2em",
|
|
22
23
|
height: "1.2em"
|
|
23
24
|
};
|
|
24
|
-
function render$
|
|
25
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$
|
|
25
|
+
function render$5(_ctx, _cache) {
|
|
26
|
+
return openBlock(), createElementBlock("svg", _hoisted_1$9, [..._cache[0] || (_cache[0] = [
|
|
26
27
|
createBaseVNode("path", {
|
|
27
28
|
fill: "currentColor",
|
|
28
29
|
d: "M11 14h2v-3h3V9h-3V6h-2v3H8v2h3zm-9 8V4q0-.825.588-1.412T4 2h16q.825 0 1.413.588T22 4v12q0 .825-.587 1.413T20 18H6z"
|
|
29
30
|
}, null, -1)
|
|
30
31
|
])]);
|
|
31
32
|
}
|
|
32
|
-
const AddCommentIcon = markRaw({ name: "material-symbols-add-comment", render: render$
|
|
33
|
-
const _hoisted_1$
|
|
34
|
-
viewBox: "0 0 24 24",
|
|
35
|
-
width: "1.2em",
|
|
36
|
-
height: "1.2em"
|
|
37
|
-
};
|
|
38
|
-
function render$8(_ctx, _cache) {
|
|
39
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$c, [..._cache[0] || (_cache[0] = [
|
|
40
|
-
createBaseVNode("path", {
|
|
41
|
-
fill: "currentColor",
|
|
42
|
-
d: "M6 22q-1.25 0-2.125-.875T3 19v-3h3V2l1.5 1.5L9 2l1.5 1.5L12 2l1.5 1.5L15 2l1.5 1.5L18 2l1.5 1.5L21 2v17q0 1.25-.875 2.125T18 22zm12-2q.425 0 .713-.288T19 19V5H8v11h9v3q0 .425.288.713T18 20M9 9V7h6v2zm0 3v-2h6v2zm8-3q-.425 0-.712-.288T16 8t.288-.712T17 7t.713.288T18 8t-.288.713T17 9m0 3q-.425 0-.712-.288T16 11t.288-.712T17 10t.713.288T18 11t-.288.713T17 12"
|
|
43
|
-
}, null, -1)
|
|
44
|
-
])]);
|
|
45
|
-
}
|
|
46
|
-
const ReceiptIcon = markRaw({ name: "material-symbols-receipt-long", render: render$8 });
|
|
47
|
-
const _hoisted_1$b = {
|
|
48
|
-
viewBox: "0 0 24 24",
|
|
49
|
-
width: "1.2em",
|
|
50
|
-
height: "1.2em"
|
|
51
|
-
};
|
|
52
|
-
function render$7(_ctx, _cache) {
|
|
53
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$b, [..._cache[0] || (_cache[0] = [
|
|
54
|
-
createBaseVNode("path", {
|
|
55
|
-
fill: "currentColor",
|
|
56
|
-
d: "M3.875 19.125Q3 18.25 3 17H1V6q0-.825.588-1.412T3 4h14v4h3l3 4v5h-2q0 1.25-.875 2.125T18 20t-2.125-.875T15 17H9q0 1.25-.875 2.125T6 20t-2.125-.875m2.838-1.412Q7 17.425 7 17t-.288-.712T6 16t-.712.288T5 17t.288.713T6 18t.713-.288m12 0Q19 17.426 19 17t-.288-.712T18 16t-.712.288T17 17t.288.713T18 18t.713-.288M17 13h4.25L19 10h-2z"
|
|
57
|
-
}, null, -1)
|
|
58
|
-
])]);
|
|
59
|
-
}
|
|
60
|
-
const ShippingIcon = markRaw({ name: "material-symbols-local-shipping", render: render$7 });
|
|
61
|
-
const _hoisted_1$a = {
|
|
33
|
+
const AddCommentIcon = markRaw({ name: "material-symbols-add-comment", render: render$5 });
|
|
34
|
+
const _hoisted_1$8 = {
|
|
62
35
|
viewBox: "0 0 24 24",
|
|
63
36
|
width: "1.2em",
|
|
64
37
|
height: "1.2em"
|
|
65
38
|
};
|
|
66
|
-
function render$
|
|
67
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$
|
|
39
|
+
function render$4(_ctx, _cache) {
|
|
40
|
+
return openBlock(), createElementBlock("svg", _hoisted_1$8, [..._cache[0] || (_cache[0] = [
|
|
68
41
|
createBaseVNode("path", {
|
|
69
42
|
fill: "currentColor",
|
|
70
43
|
d: "M13 21v-2h2v2zm-2-2v-5h2v5zm8-3v-4h2v4zm-2-4v-2h2v2zM5 14v-2h2v2zm-2-2v-2h2v2zm9-7V3h2v2zM4.5 7.5h3v-3h-3zM3 9V3h6v6zm1.5 10.5h3v-3h-3zM3 21v-6h6v6zM16.5 7.5h3v-3h-3zM15 9V3h6v6zm2 12v-3h-2v-2h4v3h2v2zm-4-7v-2h4v2zm-4 0v-2H7v-2h6v2h-2v2zm1-5V5h2v2h2v2zM5.25 6.75v-1.5h1.5v1.5zm0 12v-1.5h1.5v1.5zm12-12v-1.5h1.5v1.5z"
|
|
71
44
|
}, null, -1)
|
|
72
45
|
])]);
|
|
73
46
|
}
|
|
74
|
-
const QrCodeIcon = markRaw({ name: "material-symbols-qr-code-2", render: render$
|
|
75
|
-
const _hoisted_1$9 = {
|
|
76
|
-
viewBox: "0 0 24 24",
|
|
77
|
-
width: "1.2em",
|
|
78
|
-
height: "1.2em"
|
|
79
|
-
};
|
|
80
|
-
function render$5(_ctx, _cache) {
|
|
81
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$9, [..._cache[0] || (_cache[0] = [
|
|
82
|
-
createBaseVNode("path", {
|
|
83
|
-
fill: "currentColor",
|
|
84
|
-
d: "M4 22q-.825 0-1.412-.587T2 20V9q0-.825.588-1.412T4 7h5V4q0-.825.588-1.412T11 2h2q.825 0 1.413.588T15 4v3h5q.825 0 1.413.588T22 9v11q0 .825-.587 1.413T20 22zm2-4h6v-.45q0-.425-.238-.788T11.1 16.2q-.5-.225-1.012-.337T9 15.75t-1.088.113T6.9 16.2q-.425.2-.663.563T6 17.55zm8-1.5h4V15h-4zm-3.937-1.937q.437-.438.437-1.063t-.437-1.062T9 12t-1.062.438T7.5 13.5t.438 1.063T9 15t1.063-.437M14 13.5h4V12h-4zM11 9h2V4h-2z"
|
|
85
|
-
}, null, -1)
|
|
86
|
-
])]);
|
|
87
|
-
}
|
|
88
|
-
const BadgeIcon = markRaw({ name: "material-symbols-badge", render: render$5 });
|
|
47
|
+
const QrCodeIcon = markRaw({ name: "material-symbols-qr-code-2", render: render$4 });
|
|
89
48
|
const MAX_IMAGES = 4;
|
|
90
49
|
const MAX_IMAGE_SIZE = 5 * 1024 * 1024;
|
|
91
50
|
const IMAGE_TYPES = ["image/png", "image/jpeg", "image/webp"];
|
|
@@ -762,20 +721,6 @@ Reply in ${language}. Return the next step as a JSON object, for example {"actio
|
|
|
762
721
|
reset
|
|
763
722
|
};
|
|
764
723
|
};
|
|
765
|
-
const _hoisted_1$8 = {
|
|
766
|
-
viewBox: "0 0 24 24",
|
|
767
|
-
width: "1.2em",
|
|
768
|
-
height: "1.2em"
|
|
769
|
-
};
|
|
770
|
-
function render$4(_ctx, _cache) {
|
|
771
|
-
return openBlock(), createElementBlock("svg", _hoisted_1$8, [..._cache[0] || (_cache[0] = [
|
|
772
|
-
createBaseVNode("path", {
|
|
773
|
-
fill: "currentColor",
|
|
774
|
-
d: "M12 20q-3.35 0-5.675-2.325T4 12t2.325-5.675T12 4q1.725 0 3.3.712T18 6.75V4h2v7h-7V9h4.2q-.8-1.4-2.187-2.2T12 6Q9.5 6 7.75 7.75T6 12t1.75 4.25T12 18q1.925 0 3.475-1.1T17.65 14h2.1q-.7 2.65-2.85 4.325T12 20"
|
|
775
|
-
}, null, -1)
|
|
776
|
-
])]);
|
|
777
|
-
}
|
|
778
|
-
const RefreshIcon = markRaw({ name: "material-symbols-refresh", render: render$4 });
|
|
779
724
|
const _hoisted_1$7 = {
|
|
780
725
|
viewBox: "0 0 24 24",
|
|
781
726
|
width: "1.2em",
|
|
@@ -1185,7 +1130,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1185
1130
|
title: unref(messages).removeImage,
|
|
1186
1131
|
onClick: ($event) => removeEditImage(image.id)
|
|
1187
1132
|
}, [
|
|
1188
|
-
createVNode(unref(
|
|
1133
|
+
createVNode(unref(CloseIcon), { class: "h-3 w-3" })
|
|
1189
1134
|
], 8, _hoisted_3$2)
|
|
1190
1135
|
]);
|
|
1191
1136
|
}), 128))
|
|
@@ -1772,7 +1717,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1772
1717
|
class: "absolute right-4 top-4 inline-flex h-8 w-8 items-center justify-center rounded-full bg-black/50 text-white transition hover:bg-black/70",
|
|
1773
1718
|
onClick: withModifiers(close, ["stop"])
|
|
1774
1719
|
}, [
|
|
1775
|
-
createVNode(unref(
|
|
1720
|
+
createVNode(unref(CloseIcon), { class: "h-4 w-4" })
|
|
1776
1721
|
])
|
|
1777
1722
|
])) : createCommentVNode("", true)
|
|
1778
1723
|
]);
|
|
@@ -1911,7 +1856,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1911
1856
|
if (!value) previewImages.value = [];
|
|
1912
1857
|
}
|
|
1913
1858
|
});
|
|
1914
|
-
const exampleIcons = [
|
|
1859
|
+
const exampleIcons = [FinanceIcon, ShippingIcon, QrCodeIcon, OfficeIcon];
|
|
1915
1860
|
const activeProfile = computed(
|
|
1916
1861
|
() => activeAiProfile(store.config, store.builtinModels)
|
|
1917
1862
|
);
|
|
@@ -2227,7 +2172,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2227
2172
|
}, ["stop"])),
|
|
2228
2173
|
onClick: withModifiers(handleClose, ["stop"])
|
|
2229
2174
|
}, [
|
|
2230
|
-
createVNode(unref(
|
|
2175
|
+
createVNode(unref(CloseIcon), { class: "h-4 w-4" })
|
|
2231
2176
|
], 32)
|
|
2232
2177
|
]),
|
|
2233
2178
|
historyOpen.value ? (openBlock(), createElementBlock("div", {
|
|
@@ -2365,7 +2310,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2365
2310
|
title: unref(messages).removeImage,
|
|
2366
2311
|
onClick: ($event) => removeImage(image.id)
|
|
2367
2312
|
}, [
|
|
2368
|
-
createVNode(unref(
|
|
2313
|
+
createVNode(unref(CloseIcon), { class: "h-3 w-3" })
|
|
2369
2314
|
], 8, _hoisted_28)
|
|
2370
2315
|
]);
|
|
2371
2316
|
}), 128))
|