gs-eant-comp 3.3.0 → 3.3.1

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.
Files changed (23) hide show
  1. package/dist/{NotificationCenter-DYK_tiZk.js → CommonNotificationCenter-r_IwwpQl.js} +20 -20
  2. package/dist/{OrderCenter-DYxx0AVB.js → CommonOrderCenter-D1ZreMGY.js} +10 -10
  3. package/dist/ContainerManager-B_SXuZKk.js +602 -0
  4. package/dist/{ActivityFeed-DI9hNxV4.js → MobileActivityFeed-2gjV0ke2.js} +11 -11
  5. package/dist/{BannerCarousel-CC_uykla.js → MobileBanner-CxZ2jR0b.js} +11 -11
  6. package/dist/MobileHomeConfig-Cl0Q8T46.js +212 -0
  7. package/dist/{NoticeList-gioopR6r.js → MobileNoticeList-sqdXC7CC.js} +12 -12
  8. package/dist/{QuickActions-BdAibhSL.js → MobileQuickActions-Dg6wzSAQ.js} +7 -7
  9. package/dist/{QuickMenu-VY9bW-XU.js → MobileQuickMenu-DDyshzKm.js} +13 -13
  10. package/dist/{ShoppingCart-Bv7KU5Qh.js → MobileShoppingCart-L50vZizN.js} +25 -25
  11. package/dist/{StatCard-DkTQeLrf.js → MobileStatCard-DTm63DiG.js} +18 -18
  12. package/dist/{TodoList-Bskuy_aU.js → MobileTodoList-CzFB3E6k.js} +12 -12
  13. package/dist/{ActivityTable-C6yju1oZ.js → PcActivityTable-CbXZsRXT.js} +3 -3
  14. package/dist/PcAiSummary-C8uTPEOy.js +286 -0
  15. package/dist/PcHomeConfig-DlG8_m9K.js +59 -0
  16. package/dist/{QuickActionsPanel-CU778wqz.js → PcQuickActions-CEJse6Ey.js} +9 -9
  17. package/dist/{StatCards-BWasvRXQ.js → PcStatCards-C2_qAraR.js} +13 -13
  18. package/dist/PcWorkspaceEntry-DTd8-gnF.js +45 -0
  19. package/dist/gs-eant-comp.css +1 -1
  20. package/dist/gs-eant-comp.js +23 -28
  21. package/dist/gs-eant-comp.umd.cjs +4 -4
  22. package/dist/{index--CCglFst.js → index-x6RwsCx2.js} +3545 -3408
  23. package/package.json +2 -1
@@ -1,9 +1,9 @@
1
- import { resolveComponent as o, createElementBlock as a, openBlock as i, createVNode as s, withCtx as _, Fragment as p, renderList as f, createElementVNode as e, normalizeStyle as b, toDisplayString as n } from "vue";
2
- import { _ as g } from "./index--CCglFst.js";
1
+ import { resolveComponent as o, createElementBlock as a, openBlock as i, createVNode as c, withCtx as _, Fragment as b, renderList as p, createElementVNode as e, normalizeStyle as f, toDisplayString as n } from "vue";
2
+ import { _ as g } from "./index-x6RwsCx2.js";
3
3
  const m = { class: "banner-carousel h-100" }, u = { class: "banner-info" }, v = { class: "banner-title" }, h = { class: "banner-desc" }, x = { class: "banner-btn" }, y = { class: "banner-icon-wrapper" }, T = {
4
- __name: "BannerCarousel",
4
+ __name: "MobileBanner",
5
5
  setup(k) {
6
- const c = [
6
+ const s = [
7
7
  {
8
8
  title: "春季促销活动",
9
9
  desc: "全场商品低至5折,限时抢购中",
@@ -33,21 +33,21 @@ const m = { class: "banner-carousel h-100" }, u = { class: "banner-info" }, v =
33
33
  gradient: "linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)"
34
34
  }
35
35
  ];
36
- return (B, C) => {
36
+ return (B, w) => {
37
37
  const r = o("a-icon"), d = o("a-carousel");
38
38
  return i(), a("div", m, [
39
- s(d, {
39
+ c(d, {
40
40
  autoplay: "",
41
41
  "dot-position": "bottom"
42
42
  }, {
43
43
  default: _(() => [
44
- (i(), a(p, null, f(c, (t, l) => e("div", {
44
+ (i(), a(b, null, p(s, (t, l) => e("div", {
45
45
  key: l,
46
46
  class: "banner-slide"
47
47
  }, [
48
48
  e("div", {
49
49
  class: "banner-content",
50
- style: b({ background: t.gradient })
50
+ style: f({ background: t.gradient })
51
51
  }, [
52
52
  e("div", u, [
53
53
  e("div", v, n(t.title), 1),
@@ -55,7 +55,7 @@ const m = { class: "banner-carousel h-100" }, u = { class: "banner-info" }, v =
55
55
  e("div", x, n(t.btnText), 1)
56
56
  ]),
57
57
  e("div", y, [
58
- s(r, {
58
+ c(r, {
59
59
  type: t.icon,
60
60
  class: "banner-icon"
61
61
  }, null, 8, ["type"])
@@ -68,7 +68,7 @@ const m = { class: "banner-carousel h-100" }, u = { class: "banner-info" }, v =
68
68
  ]);
69
69
  };
70
70
  }
71
- }, N = /* @__PURE__ */ g(T, [["__scopeId", "data-v-e43b83ef"]]);
71
+ }, M = /* @__PURE__ */ g(T, [["__scopeId", "data-v-b3092ec0"]]);
72
72
  export {
73
- N as default
73
+ M as default
74
74
  };
@@ -0,0 +1,212 @@
1
+ import { inject as $, ref as f, reactive as x, onMounted as E, resolveComponent as h, createElementBlock as T, openBlock as C, createVNode as s, withCtx as i, createElementVNode as e, toDisplayString as c, unref as g, computed as H } from "vue";
2
+ import { _ as S, H as j } from "./ContainerManager-B_SXuZKk.js";
3
+ import { useRequest as B } from "vue-request";
4
+ import w from "vuedraggable";
5
+ import { _ as L } from "./index-x6RwsCx2.js";
6
+ const K = { class: "tabbar-board" }, D = { class: "menu-drop-panel" }, N = { class: "panel-heading" }, O = { class: "menu-chip" }, P = { class: "menu-drop-panel" }, V = { class: "panel-heading" }, q = { class: "menu-chip ordered" }, F = { class: "menu-drop-panel" }, R = { class: "panel-heading" }, U = { class: "menu-chip ordered" }, z = {
7
+ __name: "MobileTabBarConfig",
8
+ setup(I) {
9
+ const b = $("$API"), m = f([]), u = f([]), _ = f([]), p = (l) => {
10
+ const o = [], n = (d) => {
11
+ Array.isArray(d) && d.forEach((r) => {
12
+ Array.isArray(r.children) && r.children.length > 0 ? n(r.children) : o.push(r);
13
+ });
14
+ };
15
+ return n(l), o;
16
+ }, a = x(b.menu.list), { run: y } = B(
17
+ (l) => a[a.method](l),
18
+ {
19
+ manual: !0,
20
+ onSuccess: (l) => {
21
+ const o = p(l.data);
22
+ m.value = o.filter((n) => !n.mobile_area), u.value = o.filter((n) => n.mobile_area === "home"), _.value = o.filter((n) => n.mobile_area === "tab");
23
+ }
24
+ }
25
+ ), v = x(b.menu.update), { run: A } = B(
26
+ (l) => v[v.method](l),
27
+ { debounceInterval: 300, manual: !0 }
28
+ ), M = (l, o) => {
29
+ const n = o.item?._underlying_vm_ || o.clone || null;
30
+ if (!n || !n.cddm) return;
31
+ if (l === "all") {
32
+ A({ ...n, mobile_area: null, mobile_order: null, mobile_visible: "0", tab_title: null, tab_icon: null });
33
+ return;
34
+ }
35
+ const r = (l === "home" ? u.value : l === "tab" ? _.value : []).findIndex((t) => t.cddm === n.cddm);
36
+ A({
37
+ ...n,
38
+ mobile_area: l,
39
+ mobile_order: r > -1 ? String(r + 1) : null,
40
+ mobile_visible: "1",
41
+ tab_title: n.tab_title || n.cdmc,
42
+ tab_icon: n.tab_icon || n.icon
43
+ });
44
+ };
45
+ return E(() => {
46
+ y();
47
+ }), (l, o) => {
48
+ const n = h("a-icon"), d = h("a-col"), r = h("a-row");
49
+ return C(), T("div", K, [
50
+ s(r, { gutter: [16, 16] }, {
51
+ default: i(() => [
52
+ s(d, {
53
+ xs: 24,
54
+ lg: 8
55
+ }, {
56
+ default: i(() => [
57
+ e("section", D, [
58
+ e("div", N, [
59
+ o[3] || (o[3] = e("div", null, [
60
+ e("span", { class: "panel-eyebrow" }, "Source"),
61
+ e("h3", null, "系统菜单")
62
+ ], -1)),
63
+ e("b", null, c(m.value.length), 1)
64
+ ]),
65
+ s(g(w), {
66
+ list: m.value,
67
+ group: "mobileMenu",
68
+ "item-key": "cddm",
69
+ onAdd: o[0] || (o[0] = (t) => M("all", t))
70
+ }, {
71
+ item: i(({ element: t }) => [
72
+ e("div", O, [
73
+ s(n, {
74
+ type: t.icon || "icon-appstore"
75
+ }, null, 8, ["type"]),
76
+ e("span", null, c(t.cdmc), 1)
77
+ ])
78
+ ]),
79
+ _: 1
80
+ }, 8, ["list"])
81
+ ])
82
+ ]),
83
+ _: 1
84
+ }),
85
+ s(d, {
86
+ xs: 24,
87
+ lg: 8
88
+ }, {
89
+ default: i(() => [
90
+ e("section", P, [
91
+ e("div", V, [
92
+ o[4] || (o[4] = e("div", null, [
93
+ e("span", { class: "panel-eyebrow" }, "Mobile home"),
94
+ e("h3", null, "首页入口")
95
+ ], -1)),
96
+ e("b", null, c(u.value.length), 1)
97
+ ]),
98
+ s(g(w), {
99
+ list: u.value,
100
+ group: "mobileMenu",
101
+ "item-key": "cddm",
102
+ onAdd: o[1] || (o[1] = (t) => M("home", t))
103
+ }, {
104
+ item: i(({ element: t, index: k }) => [
105
+ e("div", q, [
106
+ e("em", null, c(k + 1), 1),
107
+ e("span", null, c(t.cdmc), 1)
108
+ ])
109
+ ]),
110
+ _: 1
111
+ }, 8, ["list"])
112
+ ])
113
+ ]),
114
+ _: 1
115
+ }),
116
+ s(d, {
117
+ xs: 24,
118
+ lg: 8
119
+ }, {
120
+ default: i(() => [
121
+ e("section", F, [
122
+ e("div", R, [
123
+ o[5] || (o[5] = e("div", null, [
124
+ e("span", { class: "panel-eyebrow" }, "Bottom nav"),
125
+ e("h3", null, "TabBar 菜单")
126
+ ], -1)),
127
+ e("b", null, c(_.value.length), 1)
128
+ ]),
129
+ s(g(w), {
130
+ list: _.value,
131
+ group: "mobileMenu",
132
+ "item-key": "cddm",
133
+ onAdd: o[2] || (o[2] = (t) => M("tab", t))
134
+ }, {
135
+ item: i(({ element: t, index: k }) => [
136
+ e("div", U, [
137
+ e("em", null, c(k + 1), 1),
138
+ e("span", null, c(t.cdmc), 1)
139
+ ])
140
+ ]),
141
+ _: 1
142
+ }, 8, ["list"])
143
+ ])
144
+ ]),
145
+ _: 1
146
+ })
147
+ ]),
148
+ _: 1
149
+ })
150
+ ]);
151
+ };
152
+ }
153
+ }, G = /* @__PURE__ */ L(z, [["__scopeId", "data-v-d5895620"]]), J = { class: "mobile-config-workbench" }, Q = { class: "workbench-hero" }, W = { class: "hero-status" }, X = { class: "status-card" }, Y = { class: "workbench-body" }, Z = /* @__PURE__ */ Object.assign({
154
+ name: "MobileHomeConfig"
155
+ }, {
156
+ __name: "MobileHomeConfig",
157
+ setup(I) {
158
+ const b = $("$API"), m = [
159
+ { key: "homeLayout", label: "移动首页布局" },
160
+ { key: "tabBar", label: "TabBar配置" },
161
+ { key: "containerManager", label: "容器管理" }
162
+ ], u = f("homeLayout"), _ = H(() => m.find((p) => p.key === u.value)?.label || "移动首页布局");
163
+ return (p, a) => {
164
+ const y = h("ETabs");
165
+ return C(), T("section", J, [
166
+ e("div", Q, [
167
+ a[3] || (a[3] = e("div", { class: "hero-copy" }, [
168
+ e("div", { class: "hero-kicker" }, "Mobile workspace configuration"),
169
+ e("h2", null, "移动端首页配置中枢"),
170
+ e("p", null, "统一管理移动端首页画布、底部入口和动态容器,让移动端配置保持清晰可控。")
171
+ ], -1)),
172
+ e("div", W, [
173
+ e("div", X, [
174
+ a[1] || (a[1] = e("span", null, "当前面板", -1)),
175
+ e("strong", null, c(_.value), 1)
176
+ ]),
177
+ a[2] || (a[2] = e("div", { class: "status-card accent" }, [
178
+ e("span", null, "配置模式"),
179
+ e("strong", null, "Mobile Layout Studio")
180
+ ], -1))
181
+ ])
182
+ ]),
183
+ e("div", Y, [
184
+ s(y, {
185
+ activeKey: u.value,
186
+ "onUpdate:activeKey": a[0] || (a[0] = (v) => u.value = v),
187
+ tabs: m,
188
+ class: "workbench-tabs segmented"
189
+ }, {
190
+ homeLayout: i(() => [
191
+ s(j, {
192
+ api: g(b),
193
+ start: 1,
194
+ platform: "mobile"
195
+ }, null, 8, ["api"])
196
+ ]),
197
+ tabBar: i(() => [
198
+ s(G)
199
+ ]),
200
+ containerManager: i(() => [
201
+ s(S)
202
+ ]),
203
+ _: 1
204
+ }, 8, ["activeKey"])
205
+ ])
206
+ ]);
207
+ };
208
+ }
209
+ }), se = /* @__PURE__ */ L(Z, [["__scopeId", "data-v-71f1049d"]]);
210
+ export {
211
+ se as default
212
+ };
@@ -1,8 +1,8 @@
1
- import { createElementBlock as l, openBlock as c, createElementVNode as t, Fragment as r, renderList as d, normalizeStyle as e, toDisplayString as s } from "vue";
2
- import { _ as g } from "./index--CCglFst.js";
3
- const f = { class: "notice-list h-100" }, _ = { class: "notice-list-body" }, m = { class: "notice-content" }, C = { class: "notice-title-row" }, p = { class: "notice-title" }, u = { class: "notice-time" }, v = {
4
- __name: "NoticeList",
5
- setup(B) {
1
+ import { createElementBlock as a, openBlock as c, createElementVNode as t, Fragment as d, renderList as r, normalizeStyle as e, toDisplayString as s } from "vue";
2
+ import { _ as g } from "./index-x6RwsCx2.js";
3
+ const f = { class: "notice-list h-100" }, _ = { class: "notice-list-body" }, m = { class: "notice-content" }, C = { class: "notice-title-row" }, p = { class: "notice-title" }, b = { class: "notice-time" }, u = {
4
+ __name: "MobileNoticeList",
5
+ setup(v) {
6
6
  const n = [
7
7
  { title: "系统将于今晚23:00进行版本升级维护", time: "04-20 14:30", tag: "重要", dotColor: "#fa8c16", tagBg: "#fff7e6", tagColor: "#d46b08" },
8
8
  { title: "2026年第二季度绩效考核开始填报", time: "04-19 09:00", tag: "考核", dotColor: "#1890ff", tagBg: "#e6f7ff", tagColor: "#096dd9" },
@@ -11,15 +11,15 @@ const f = { class: "notice-list h-100" }, _ = { class: "notice-list-body" }, m =
11
11
  { title: "企业微信集成功能已上线", time: "04-16 08:45", tag: "新功能", dotColor: "#eb2f96", tagBg: "#fff0f6", tagColor: "#c41d7f" },
12
12
  { title: "2026年第一季度安全审计报告", time: "04-15 10:30", tag: "审计", dotColor: "#13c2c2", tagBg: "#e6fffb", tagColor: "#08979c" }
13
13
  ];
14
- return (y, a) => (c(), l("div", f, [
15
- a[0] || (a[0] = t("div", { class: "notice-list-header" }, [
14
+ return (B, i) => (c(), a("div", f, [
15
+ i[0] || (i[0] = t("div", { class: "notice-list-header" }, [
16
16
  t("span", { class: "notice-list-title" }, "系统公告")
17
17
  ], -1)),
18
18
  t("div", _, [
19
- (c(), l(r, null, d(n, (o, i) => t("div", {
20
- key: i,
19
+ (c(), a(d, null, r(n, (o, l) => t("div", {
20
+ key: l,
21
21
  class: "notice-item",
22
- style: e({ animationDelay: i * 0.05 + "s" })
22
+ style: e({ animationDelay: l * 0.05 + "s" })
23
23
  }, [
24
24
  t("div", {
25
25
  class: "notice-dot",
@@ -33,13 +33,13 @@ const f = { class: "notice-list h-100" }, _ = { class: "notice-list-body" }, m =
33
33
  style: e({ background: o.tagBg, color: o.tagColor })
34
34
  }, s(o.tag), 5)
35
35
  ]),
36
- t("div", u, s(o.time), 1)
36
+ t("div", b, s(o.time), 1)
37
37
  ])
38
38
  ], 4)), 64))
39
39
  ])
40
40
  ]));
41
41
  }
42
- }, k = /* @__PURE__ */ g(v, [["__scopeId", "data-v-69558628"]]);
42
+ }, k = /* @__PURE__ */ g(u, [["__scopeId", "data-v-559d1665"]]);
43
43
  export {
44
44
  k as default
45
45
  };
@@ -1,7 +1,7 @@
1
1
  import { resolveComponent as d, createElementBlock as t, openBlock as a, createElementVNode as e, Fragment as g, renderList as _, normalizeStyle as b, createVNode as f, toDisplayString as p } from "vue";
2
- import { _ as u } from "./index--CCglFst.js";
2
+ import { _ as u } from "./index-x6RwsCx2.js";
3
3
  const k = { class: "quick-actions h-100" }, m = { class: "quick-actions-body" }, v = ["onClick"], y = { class: "action-label" }, h = {
4
- __name: "QuickActions",
4
+ __name: "MobileQuickActions",
5
5
  setup(q) {
6
6
  const c = [
7
7
  { label: "扫码", icon: "icon-scan", gradient: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)" },
@@ -10,10 +10,10 @@ const k = { class: "quick-actions h-100" }, m = { class: "quick-actions-body" },
10
10
  { label: "充值", icon: "icon-star", gradient: "linear-gradient(135deg, #43e97b 0%, #38f9d7 100%)" },
11
11
  { label: "卡包", icon: "icon-gift", gradient: "linear-gradient(135deg, #fa709a 0%, #fee140 100%)" },
12
12
  { label: "设置", icon: "icon-setting", gradient: "linear-gradient(135deg, #a18cd1 0%, #fbc2eb 100%)" }
13
- ], o = (s) => {
13
+ ], o = (l) => {
14
14
  };
15
- return (s, i) => {
16
- const l = d("a-icon");
15
+ return (l, i) => {
16
+ const s = d("a-icon");
17
17
  return a(), t("div", k, [
18
18
  i[0] || (i[0] = e("div", { class: "quick-actions-header" }, [
19
19
  e("span", { class: "quick-actions-title" }, "快捷操作")
@@ -25,7 +25,7 @@ const k = { class: "quick-actions h-100" }, m = { class: "quick-actions-body" },
25
25
  style: b({ background: n.gradient }),
26
26
  onClick: (x) => o()
27
27
  }, [
28
- f(l, {
28
+ f(s, {
29
29
  type: n.icon,
30
30
  class: "action-icon"
31
31
  }, null, 8, ["type"]),
@@ -35,7 +35,7 @@ const k = { class: "quick-actions h-100" }, m = { class: "quick-actions-body" },
35
35
  ]);
36
36
  };
37
37
  }
38
- }, B = /* @__PURE__ */ u(h, [["__scopeId", "data-v-957346bb"]]);
38
+ }, B = /* @__PURE__ */ u(h, [["__scopeId", "data-v-85b86681"]]);
39
39
  export {
40
40
  B as default
41
41
  };
@@ -1,10 +1,10 @@
1
- import { inject as g, resolveComponent as f, createElementBlock as c, openBlock as o, createElementVNode as t, Fragment as p, renderList as m, unref as k, normalizeStyle as b, createVNode as h, toDisplayString as v } from "vue";
1
+ import { inject as g, resolveComponent as f, createElementBlock as o, openBlock as c, createElementVNode as t, Fragment as p, renderList as m, unref as k, normalizeStyle as b, createVNode as h, toDisplayString as v } from "vue";
2
2
  import { useRouter as q } from "vue-router";
3
- import { _ as y } from "./index--CCglFst.js";
4
- const B = { class: "quick-menu h-100" }, C = { class: "quick-menu-body" }, x = ["onClick"], E = { class: "quick-menu-label" }, M = {
5
- __name: "QuickMenu",
3
+ import { _ as y } from "./index-x6RwsCx2.js";
4
+ const B = { class: "quick-menu h-100" }, C = { class: "quick-menu-body" }, M = ["onClick"], x = { class: "quick-menu-label" }, E = {
5
+ __name: "MobileQuickMenu",
6
6
  setup(N) {
7
- const r = q(), s = g("menus", []), a = [
7
+ const r = q(), s = g("menus", []), i = [
8
8
  "linear-gradient(135deg, #ff6b6b, #ee5a24)",
9
9
  "linear-gradient(135deg, #ffa94d, #f76707)",
10
10
  "linear-gradient(135deg, #ffd43b, #f59f00)",
@@ -13,17 +13,17 @@ const B = { class: "quick-menu h-100" }, C = { class: "quick-menu-body" }, x = [
13
13
  "linear-gradient(135deg, #9775fa, #6741d9)",
14
14
  "linear-gradient(135deg, #f783ac, #d6336c)",
15
15
  "linear-gradient(135deg, #20c997, #087f5b)"
16
- ], d = (n) => a[n % a.length], l = (n) => {
16
+ ], d = (n) => i[n % i.length], l = (n) => {
17
17
  n.path && r.push(n.path);
18
18
  };
19
- return (n, i) => {
19
+ return (n, a) => {
20
20
  const u = f("a-icon");
21
- return o(), c("div", B, [
22
- i[0] || (i[0] = t("div", { class: "quick-menu-header" }, [
21
+ return c(), o("div", B, [
22
+ a[0] || (a[0] = t("div", { class: "quick-menu-header" }, [
23
23
  t("span", { class: "quick-menu-title" }, "快捷入口")
24
24
  ], -1)),
25
25
  t("div", C, [
26
- (o(!0), c(p, null, m(k(s), (e, _) => (o(), c("div", {
26
+ (c(!0), o(p, null, m(k(s), (e, _) => (c(), o("div", {
27
27
  key: e.cddm,
28
28
  class: "quick-menu-item",
29
29
  onClick: (Q) => l(e)
@@ -36,13 +36,13 @@ const B = { class: "quick-menu h-100" }, C = { class: "quick-menu-body" }, x = [
36
36
  type: e.tab_icon || e.icon || "icon-appstore"
37
37
  }, null, 8, ["type"])
38
38
  ], 4),
39
- t("div", E, v(e.tab_title || e.cdmc), 1)
40
- ], 8, x))), 128))
39
+ t("div", x, v(e.tab_title || e.cdmc), 1)
40
+ ], 8, M))), 128))
41
41
  ])
42
42
  ]);
43
43
  };
44
44
  }
45
- }, z = /* @__PURE__ */ y(M, [["__scopeId", "data-v-fba00bca"]]);
45
+ }, z = /* @__PURE__ */ y(E, [["__scopeId", "data-v-2f9456ed"]]);
46
46
  export {
47
47
  z as default
48
48
  };
@@ -1,5 +1,5 @@
1
- import { ref as n, resolveComponent as p, createElementBlock as s, openBlock as r, createElementVNode as a, createStaticVNode as l, createVNode as f, createTextVNode as o, withCtx as h, Fragment as k, renderList as b, normalizeClass as m, toDisplayString as w } from "vue";
2
- import { _ as y } from "./index--CCglFst.js";
1
+ import { ref as n, resolveComponent as u, createElementBlock as s, openBlock as r, createElementVNode as a, createStaticVNode as l, createVNode as p, createTextVNode as o, withCtx as h, Fragment as k, renderList as f, normalizeClass as m, toDisplayString as w } from "vue";
2
+ import { _ as y } from "./index-x6RwsCx2.js";
3
3
  const g = { class: "cart h-100" }, C = { class: "drawer" }, M = { class: "drawer-top" }, _ = { class: "drawer-tabs" }, x = ["onClick"], B = { class: "drawer-content" }, j = {
4
4
  key: 0,
5
5
  class: "order-card"
@@ -7,26 +7,26 @@ const g = { class: "cart h-100" }, C = { class: "drawer" }, M = { class: "drawer
7
7
  key: 1,
8
8
  class: "drawer-empty"
9
9
  }, H = {
10
- __name: "ShoppingCart",
10
+ __name: "MobileShoppingCart",
11
11
  setup(N) {
12
- const d = n(!1), v = [
12
+ const t = n(!1), v = [
13
13
  { key: "valid", label: "生效课程" },
14
14
  { key: "refund", label: "退课课程" },
15
15
  { key: "unpaid", label: "待支付课程" },
16
16
  { key: "detail", label: "选课明细" }
17
- ], i = n("refund"), c = () => {
18
- d.value = !0;
17
+ ], i = n("refund"), b = () => {
18
+ t.value = !0;
19
19
  };
20
- return (S, t) => {
21
- const u = p("a-drawer");
20
+ return (S, e) => {
21
+ const c = u("a-drawer");
22
22
  return r(), s("div", g, [
23
23
  a("div", { class: "cart-header" }, [
24
- t[3] || (t[3] = l('<div class="cart-title" data-v-a68313f5><span class="cart-icon" aria-hidden="true" data-v-a68313f5><svg viewBox="0 0 24 24" width="20" height="20" fill="none" data-v-a68313f5><path d="M7.2 6.4H21l-1.4 7.4a2 2 0 0 1-2 1.6H9.1a2 2 0 0 1-2-1.6L5.7 4.5H3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-a68313f5></path><path d="M10 20a1.2 1.2 0 1 0 0-2.4A1.2 1.2 0 0 0 10 20ZM17.5 20a1.2 1.2 0 1 0 0-2.4 1.2 1.2 0 0 0 0 2.4Z" fill="currentColor" data-v-a68313f5></path></svg></span><span class="cart-title-text" data-v-a68313f5>购物车</span></div>', 1)),
24
+ e[3] || (e[3] = l('<div class="cart-title" data-v-d81beb34><span class="cart-icon" aria-hidden="true" data-v-d81beb34><svg viewBox="0 0 24 24" width="20" height="20" fill="none" data-v-d81beb34><path d="M7.2 6.4H21l-1.4 7.4a2 2 0 0 1-2 1.6H9.1a2 2 0 0 1-2-1.6L5.7 4.5H3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-d81beb34></path><path d="M10 20a1.2 1.2 0 1 0 0-2.4A1.2 1.2 0 0 0 10 20ZM17.5 20a1.2 1.2 0 1 0 0-2.4 1.2 1.2 0 0 0 0 2.4Z" fill="currentColor" data-v-d81beb34></path></svg></span><span class="cart-title-text" data-v-d81beb34>购物车</span></div>', 1)),
25
25
  a("button", {
26
26
  class: "order-btn",
27
27
  type: "button",
28
- onClick: c
29
- }, [...t[2] || (t[2] = [
28
+ onClick: b
29
+ }, [...e[2] || (e[2] = [
30
30
  a("span", {
31
31
  class: "order-btn-icon",
32
32
  "aria-hidden": "true"
@@ -54,10 +54,10 @@ const g = { class: "cart h-100" }, C = { class: "drawer" }, M = { class: "drawer
54
54
  o(" 我的订单 ", -1)
55
55
  ])])
56
56
  ]),
57
- t[7] || (t[7] = l('<div class="cart-body" data-v-a68313f5><div class="course-card" data-v-a68313f5><div class="course-left" data-v-a68313f5><div class="course-img" data-v-a68313f5></div><span class="course-tag" data-v-a68313f5>夏冬令营</span></div><div class="course-mid" data-v-a68313f5><div class="course-name" data-v-a68313f5>AI机器人挑战·勇闯冰雪世界</div><div class="course-sub" data-v-a68313f5>要有基础的计算机操作能力</div><div class="course-date" data-v-a68313f5><span class="tiny-icon" aria-hidden="true" data-v-a68313f5><svg viewBox="0 0 24 24" width="14" height="14" fill="none" data-v-a68313f5><path d="M7 3v3M17 3v3M4.5 9h15" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-a68313f5></path><path d="M6.5 6h11a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2h-11a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round" data-v-a68313f5></path></svg></span> 04-22~04-30 </div><div class="course-price" data-v-a68313f5>¥6888</div></div><button class="course-del" type="button" title="移除" data-v-a68313f5><span aria-hidden="true" data-v-a68313f5><svg viewBox="0 0 24 24" width="18" height="18" fill="none" data-v-a68313f5><path d="M4 7h16" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-a68313f5></path><path d="M10 11v7M14 11v7" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-a68313f5></path><path d="M6 7l1 14h10l1-14" stroke="currentColor" stroke-width="2" stroke-linejoin="round" data-v-a68313f5></path><path d="M9 7V4h6v3" stroke="currentColor" stroke-width="2" stroke-linejoin="round" data-v-a68313f5></path></svg></span></button></div><div class="summary" data-v-a68313f5><div class="summary-left" data-v-a68313f5><div class="summary-title" data-v-a68313f5>合计(1门课程)</div><div class="summary-total" data-v-a68313f5>¥6888</div></div><button class="checkout" type="button" data-v-a68313f5> 去结算 <span class="chev" aria-hidden="true" data-v-a68313f5>›</span></button></div><div class="refund-head" data-v-a68313f5><div class="refund-title" data-v-a68313f5><span class="refund-icon" aria-hidden="true" data-v-a68313f5>⟲</span> 退课课程 </div><div class="refund-tip" data-v-a68313f5><span class="tip-dot" aria-hidden="true" data-v-a68313f5>i</span> 退课费用可抵扣选课费用 </div></div><div class="refund-card" data-v-a68313f5><div class="refund-left" data-v-a68313f5><div class="refund-img" data-v-a68313f5></div><span class="refund-tag" data-v-a68313f5>兴趣课</span></div><div class="refund-mid" data-v-a68313f5><div class="refund-name" data-v-a68313f5>钢琴</div><div class="refund-sub" data-v-a68313f5>一周两次</div><div class="refund-price" data-v-a68313f5> ¥4800 <span class="refund-deduct" data-v-a68313f5>可抵扣</span></div></div><button class="refund-action" type="button" title="撤销" data-v-a68313f5><span aria-hidden="true" data-v-a68313f5><svg viewBox="0 0 24 24" width="18" height="18" fill="none" data-v-a68313f5><path d="M7 7H4v3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-a68313f5></path><path d="M4.5 10.5A8 8 0 1 0 7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-a68313f5></path></svg></span></button></div></div>', 1)),
58
- f(u, {
59
- open: d.value,
60
- "onUpdate:open": t[1] || (t[1] = (e) => d.value = e),
57
+ e[7] || (e[7] = l('<div class="cart-body" data-v-d81beb34><div class="course-card" data-v-d81beb34><div class="course-left" data-v-d81beb34><div class="course-img" data-v-d81beb34></div><span class="course-tag" data-v-d81beb34>夏冬令营</span></div><div class="course-mid" data-v-d81beb34><div class="course-name" data-v-d81beb34>AI机器人挑战·勇闯冰雪世界</div><div class="course-sub" data-v-d81beb34>要有基础的计算机操作能力</div><div class="course-date" data-v-d81beb34><span class="tiny-icon" aria-hidden="true" data-v-d81beb34><svg viewBox="0 0 24 24" width="14" height="14" fill="none" data-v-d81beb34><path d="M7 3v3M17 3v3M4.5 9h15" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-d81beb34></path><path d="M6.5 6h11a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2h-11a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round" data-v-d81beb34></path></svg></span> 04-22~04-30 </div><div class="course-price" data-v-d81beb34>¥6888</div></div><button class="course-del" type="button" title="移除" data-v-d81beb34><span aria-hidden="true" data-v-d81beb34><svg viewBox="0 0 24 24" width="18" height="18" fill="none" data-v-d81beb34><path d="M4 7h16" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-d81beb34></path><path d="M10 11v7M14 11v7" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-d81beb34></path><path d="M6 7l1 14h10l1-14" stroke="currentColor" stroke-width="2" stroke-linejoin="round" data-v-d81beb34></path><path d="M9 7V4h6v3" stroke="currentColor" stroke-width="2" stroke-linejoin="round" data-v-d81beb34></path></svg></span></button></div><div class="summary" data-v-d81beb34><div class="summary-left" data-v-d81beb34><div class="summary-title" data-v-d81beb34>合计(1门课程)</div><div class="summary-total" data-v-d81beb34>¥6888</div></div><button class="checkout" type="button" data-v-d81beb34> 去结算 <span class="chev" aria-hidden="true" data-v-d81beb34>›</span></button></div><div class="refund-head" data-v-d81beb34><div class="refund-title" data-v-d81beb34><span class="refund-icon" aria-hidden="true" data-v-d81beb34>⟲</span> 退课课程 </div><div class="refund-tip" data-v-d81beb34><span class="tip-dot" aria-hidden="true" data-v-d81beb34>i</span> 退课费用可抵扣选课费用 </div></div><div class="refund-card" data-v-d81beb34><div class="refund-left" data-v-d81beb34><div class="refund-img" data-v-d81beb34></div><span class="refund-tag" data-v-d81beb34>兴趣课</span></div><div class="refund-mid" data-v-d81beb34><div class="refund-name" data-v-d81beb34>钢琴</div><div class="refund-sub" data-v-d81beb34>一周两次</div><div class="refund-price" data-v-d81beb34> ¥4800 <span class="refund-deduct" data-v-d81beb34>可抵扣</span></div></div><button class="refund-action" type="button" title="撤销" data-v-d81beb34><span aria-hidden="true" data-v-d81beb34><svg viewBox="0 0 24 24" width="18" height="18" fill="none" data-v-d81beb34><path d="M7 7H4v3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-d81beb34></path><path d="M4.5 10.5A8 8 0 1 0 7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-d81beb34></path></svg></span></button></div></div>', 1)),
58
+ p(c, {
59
+ open: t.value,
60
+ "onUpdate:open": e[1] || (e[1] = (d) => t.value = d),
61
61
  placement: "bottom",
62
62
  height: "78vh",
63
63
  closable: !1,
@@ -69,21 +69,21 @@ const g = { class: "cart h-100" }, C = { class: "drawer" }, M = { class: "drawer
69
69
  a("button", {
70
70
  class: "drawer-close",
71
71
  type: "button",
72
- onClick: t[0] || (t[0] = (e) => d.value = !1),
72
+ onClick: e[0] || (e[0] = (d) => t.value = !1),
73
73
  "aria-label": "关闭"
74
74
  }, " × "),
75
- t[4] || (t[4] = a("div", { class: "drawer-title" }, "我的订单", -1))
75
+ e[4] || (e[4] = a("div", { class: "drawer-title" }, "我的订单", -1))
76
76
  ]),
77
77
  a("div", _, [
78
- (r(), s(k, null, b(v, (e) => a("button", {
79
- key: e.key,
78
+ (r(), s(k, null, f(v, (d) => a("button", {
79
+ key: d.key,
80
80
  type: "button",
81
- class: m(["drawer-tab", { active: i.value === e.key }]),
82
- onClick: (A) => i.value = e.key
83
- }, w(e.label), 11, x)), 64))
81
+ class: m(["drawer-tab", { active: i.value === d.key }]),
82
+ onClick: (A) => i.value = d.key
83
+ }, w(d.label), 11, x)), 64))
84
84
  ]),
85
85
  a("div", B, [
86
- i.value === "refund" ? (r(), s("div", j, [...t[5] || (t[5] = [
86
+ i.value === "refund" ? (r(), s("div", j, [...e[5] || (e[5] = [
87
87
  a("div", { class: "order-name" }, "钢琴", -1),
88
88
  a("div", { class: "order-row" }, [
89
89
  a("div", { class: "order-thumb" }),
@@ -119,7 +119,7 @@ const g = { class: "cart h-100" }, C = { class: "drawer" }, M = { class: "drawer
119
119
  o(" 撤销 ")
120
120
  ])
121
121
  ], -1)
122
- ])])) : (r(), s("div", V, [...t[6] || (t[6] = [
122
+ ])])) : (r(), s("div", V, [...e[6] || (e[6] = [
123
123
  a("div", { class: "empty-text" }, "暂无数据(示例组件)", -1)
124
124
  ])]))
125
125
  ])
@@ -130,7 +130,7 @@ const g = { class: "cart h-100" }, C = { class: "drawer" }, M = { class: "drawer
130
130
  ]);
131
131
  };
132
132
  }
133
- }, D = /* @__PURE__ */ y(H, [["__scopeId", "data-v-a68313f5"]]);
133
+ }, D = /* @__PURE__ */ y(H, [["__scopeId", "data-v-d81beb34"]]);
134
134
  export {
135
135
  D as default
136
136
  };
@@ -1,7 +1,7 @@
1
- import { createElementBlock as l, openBlock as e, createElementVNode as t, Fragment as d, renderList as c, normalizeStyle as n, createTextVNode as v, toDisplayString as s, normalizeClass as u } from "vue";
2
- import { _ as i } from "./index--CCglFst.js";
3
- const _ = { class: "stat-card h-100" }, b = { class: "stat-card-body" }, p = { class: "stat-row" }, f = { class: "stat-label" }, h = { class: "stat-row" }, y = { class: "stat-label" }, k = {
4
- __name: "StatCard",
1
+ import { createElementBlock as s, openBlock as e, createElementVNode as t, Fragment as d, renderList as c, normalizeStyle as n, createTextVNode as v, toDisplayString as l, normalizeClass as i } from "vue";
2
+ import { _ as u } from "./index-x6RwsCx2.js";
3
+ const b = { class: "stat-card h-100" }, _ = { class: "stat-card-body" }, p = { class: "stat-row" }, f = { class: "stat-label" }, h = { class: "stat-row" }, y = { class: "stat-label" }, k = {
4
+ __name: "MobileStatCard",
5
5
  setup(w) {
6
6
  const o = [
7
7
  { label: "今日访问", value: "2,846", trend: 12.5, color: "#667eea" },
@@ -11,13 +11,13 @@ const _ = { class: "stat-card h-100" }, b = { class: "stat-card-body" }, p = { c
11
11
  { label: "转化率", value: "3.42%", trend: 2.1, color: "#43e97b" },
12
12
  { label: "退款率", value: "0.68%", trend: -0.5, color: "#fa709a" }
13
13
  ];
14
- return (x, r) => (e(), l("div", _, [
14
+ return (x, r) => (e(), s("div", b, [
15
15
  r[1] || (r[1] = t("div", { class: "stat-card-header" }, [
16
16
  t("span", { class: "stat-card-title" }, "数据概览")
17
17
  ], -1)),
18
- t("div", b, [
18
+ t("div", _, [
19
19
  t("div", p, [
20
- (e(!0), l(d, null, c(o.slice(0, 3), (a) => (e(), l("div", {
20
+ (e(!0), s(d, null, c(o.slice(0, 3), (a) => (e(), s("div", {
21
21
  class: "stat-item",
22
22
  key: a.label
23
23
  }, [
@@ -25,17 +25,17 @@ const _ = { class: "stat-card h-100" }, b = { class: "stat-card-body" }, p = { c
25
25
  class: "stat-value",
26
26
  style: n({ color: a.color })
27
27
  }, [
28
- v(s(a.value) + " ", 1),
28
+ v(l(a.value) + " ", 1),
29
29
  t("span", {
30
- class: u(["stat-trend", a.trend > 0 ? "up" : "down"])
31
- }, s(a.trend > 0 ? "↑" : "↓") + s(Math.abs(a.trend)) + "% ", 3)
30
+ class: i(["stat-trend", a.trend > 0 ? "up" : "down"])
31
+ }, l(a.trend > 0 ? "↑" : "↓") + l(Math.abs(a.trend)) + "% ", 3)
32
32
  ], 4),
33
- t("div", f, s(a.label), 1)
33
+ t("div", f, l(a.label), 1)
34
34
  ]))), 128))
35
35
  ]),
36
36
  r[0] || (r[0] = t("div", { class: "stat-divider" }, null, -1)),
37
37
  t("div", h, [
38
- (e(!0), l(d, null, c(o.slice(3), (a) => (e(), l("div", {
38
+ (e(!0), s(d, null, c(o.slice(3), (a) => (e(), s("div", {
39
39
  class: "stat-item",
40
40
  key: a.label
41
41
  }, [
@@ -43,18 +43,18 @@ const _ = { class: "stat-card h-100" }, b = { class: "stat-card-body" }, p = { c
43
43
  class: "stat-value",
44
44
  style: n({ color: a.color })
45
45
  }, [
46
- v(s(a.value) + " ", 1),
46
+ v(l(a.value) + " ", 1),
47
47
  t("span", {
48
- class: u(["stat-trend", a.trend > 0 ? "up" : "down"])
49
- }, s(a.trend > 0 ? "↑" : "↓") + s(Math.abs(a.trend)) + "% ", 3)
48
+ class: i(["stat-trend", a.trend > 0 ? "up" : "down"])
49
+ }, l(a.trend > 0 ? "↑" : "↓") + l(Math.abs(a.trend)) + "% ", 3)
50
50
  ], 4),
51
- t("div", y, s(a.label), 1)
51
+ t("div", y, l(a.label), 1)
52
52
  ]))), 128))
53
53
  ])
54
54
  ])
55
55
  ]));
56
56
  }
57
- }, g = /* @__PURE__ */ i(k, [["__scopeId", "data-v-f397c433"]]);
57
+ }, C = /* @__PURE__ */ u(k, [["__scopeId", "data-v-34c5bf6a"]]);
58
58
  export {
59
- g as default
59
+ C as default
60
60
  };