@melt-js/comps-bag-shop 0.0.0-stage → 2026.11.7-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 (48) hide show
  1. package/README.md +96 -2
  2. package/dist/CustomerService-DbLJzKvS.js +47 -0
  3. package/dist/Finance-DzEmuvNg.js +36 -0
  4. package/dist/FinanceWithdraw-0EUk5l7m.js +46 -0
  5. package/dist/Marketing-DYpxYKj2.js +44 -0
  6. package/dist/MarketingCreate-B6OSVHcU.js +34 -0
  7. package/dist/OrderDetail-h99NqiZ0.js +32 -0
  8. package/dist/OrderList-CcPJ_7n0.js +61 -0
  9. package/dist/OrderReturns-jB7b5BFL.js +39 -0
  10. package/dist/OrderShip-o_fhy9wO.js +33 -0
  11. package/dist/ProductEdit-DXdb7X3r.js +66 -0
  12. package/dist/ProductList-D4hartqL.js +61 -0
  13. package/dist/ProductPublish-C-qJ8YDK.js +67 -0
  14. package/dist/ReturnDetail-CvxWS-EE.js +31 -0
  15. package/dist/StoreSettings-CRFNq_z4.js +36 -0
  16. package/dist/StoreSettingsBase-igq1Iu1q.js +31 -0
  17. package/dist/StoreSettingsLogistics-CkGBmeEv.js +31 -0
  18. package/dist/StoreSettingsService-BMoDt_6y.js +31 -0
  19. package/dist/StoreSettingsTrade-COjDZdcr.js +29 -0
  20. package/dist/UserList-BRTyzQ8e.js +50 -0
  21. package/dist/UserOrders-CIUnlZCR.js +35 -0
  22. package/dist/UserProfile-CbaUS2vZ.js +43 -0
  23. package/dist/_plugin-vue_export-helper-DW2XTw82.js +28 -0
  24. package/dist/index.css +1 -0
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.js +24 -0
  27. package/dist/views/CustomerService.vue.d.ts +2 -0
  28. package/dist/views/Finance.vue.d.ts +2 -0
  29. package/dist/views/FinanceWithdraw.vue.d.ts +2 -0
  30. package/dist/views/Marketing.vue.d.ts +2 -0
  31. package/dist/views/MarketingCreate.vue.d.ts +2 -0
  32. package/dist/views/OrderDetail.vue.d.ts +2 -0
  33. package/dist/views/OrderList.vue.d.ts +2 -0
  34. package/dist/views/OrderReturns.vue.d.ts +2 -0
  35. package/dist/views/OrderShip.vue.d.ts +2 -0
  36. package/dist/views/ProductEdit.vue.d.ts +2 -0
  37. package/dist/views/ProductList.vue.d.ts +2 -0
  38. package/dist/views/ProductPublish.vue.d.ts +2 -0
  39. package/dist/views/ReturnDetail.vue.d.ts +2 -0
  40. package/dist/views/StoreSettings.vue.d.ts +2 -0
  41. package/dist/views/StoreSettingsBase.vue.d.ts +2 -0
  42. package/dist/views/StoreSettingsLogistics.vue.d.ts +2 -0
  43. package/dist/views/StoreSettingsService.vue.d.ts +2 -0
  44. package/dist/views/StoreSettingsTrade.vue.d.ts +2 -0
  45. package/dist/views/UserList.vue.d.ts +2 -0
  46. package/dist/views/UserOrders.vue.d.ts +2 -0
  47. package/dist/views/UserProfile.vue.d.ts +2 -0
  48. package/package.json +41 -4
package/README.md CHANGED
@@ -1,3 +1,97 @@
1
- # Temporary Holding Version
1
+ # @melt-js/comps-bag-shop
2
+
3
+ `@melt-js/comps-bag-shop` 是官方提供的商城示例插件。它更像一份“业务插件长什么样”的参考答案:路由怎么拆,菜单怎么配,多语言怎么放,详情页和缓存策略又该怎么处理。
4
+
5
+ 它不是一个可以直接拿去卖货的商城成品,更适合拿来看结构、看写法、看边界。
6
+
7
+ ## 安装
8
+
9
+ ```bash
10
+ pnpm add @melt-js/libs-bag-entry @melt-js/comps-bag-shop
11
+ ```
12
+
13
+ 宿主项目还需要自行提供 `vue`、`vue-router`、`vue-i18n` 和 `naive-ui`。如果你已经使用 `@melt-js/libs-bag-entry`,这部分依赖通常已经具备。
14
+
15
+ ## 里面带了什么
16
+
17
+ - 商品管理:商品列表、发布商品、编辑商品
18
+ - 订单管理:订单列表、发货、售后、退换货详情
19
+ - 用户管理:用户列表、资料、订单
20
+ - 营销中心:活动列表与创建活动
21
+ - 客服消息:客服工作台示例
22
+ - 财务结算:日结、月结、提现页
23
+ - 店铺设置:基础信息、交易、物流、客服配置
24
+
25
+ ## 怎么接进去
26
+
27
+ ```ts
28
+ import { createApp } from 'vue'
29
+ import { createPinia } from 'pinia'
30
+ import { createI18n } from 'vue-i18n'
31
+ import { createRouter, createWebHistory } from 'vue-router'
32
+ import { bootstrapPlugins } from '@melt-js/libs-bag-entry'
33
+ import shopPlugin from '@melt-js/comps-bag-shop'
34
+
35
+ const app = createApp(App)
36
+ const pinia = createPinia()
37
+ const router = createRouter({
38
+ history: createWebHistory(),
39
+ routes: []
40
+ })
41
+ const i18n = createI18n({
42
+ legacy: false,
43
+ locale: 'zh-CN',
44
+ messages: {}
45
+ })
46
+
47
+ app.use(pinia)
48
+ app.use(router)
49
+ app.use(i18n)
50
+
51
+ await bootstrapPlugins({
52
+ app,
53
+ router,
54
+ i18n,
55
+ plugins: [shopPlugin]
56
+ })
57
+ ```
58
+
59
+ ## 这个插件主要在演示什么
60
+
61
+ - 路由和菜单怎么由同一个插件一起吐出来
62
+ - 隐藏详情页怎么靠 `activeMenu` 维持左侧菜单高亮
63
+ - 编辑页、详情页怎么通过 `noCache` 避免被标签页缓存
64
+ - 多个财务页怎么通过同一个 `cacheKey` 复用缓存视图
65
+ - 同一个插件怎么同时带 `zh-CN` 和 `en` 两套文案
66
+
67
+ ## 当前这份示例的特点
68
+
69
+ - 插件 ID: `plugin-shop`
70
+ - 默认排序: `10`
71
+ - 菜单域: 商品、订单、用户、营销、客服、财务、店铺设置
72
+ - 多语言: 内置中文和英文文案
73
+ - 路由策略: 同时使用了 `hidden`、`activeMenu`、`noCache`、`cacheKey`
74
+
75
+ ## 边界
76
+
77
+ - 这是官方业务示例插件,不属于宿主框架基础层。
78
+ - 它主要回答的是“插件该怎么写”,不是“商城系统的最终抽象应该长什么样”。
79
+ - 如果你要做自己的业务模块,建议把它当参考模板看,不要整包原样搬过去。
80
+ - 布局、权限指令、标签页机制这些宿主能力,还是应该放在 `@melt-js/libs-bag-host`。
81
+
82
+ ## 一般会搭什么
83
+
84
+ - `@melt-js/libs-bag-entry`:提供插件协议、路由 meta 协议以及后台 UI 公共能力
85
+ - `@melt-js/libs-bag-host`:宿主层,负责真正把这个插件挂进去
2
86
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
87
+ ## 构建
88
+
89
+ ```bash
90
+ pnpm build # vite build(默认开启 javascript-obfuscator 混淆 + 注释清理)→ vue-tsc 生成 d.ts
91
+ ```
92
+
93
+ - 混淆参数与仓库内其它 `comps-*` 包一致:标识符重命名 + 字符串数组(30%),不开控制流平坦化 / 死代码注入 / 自保护 / 调试保护;
94
+ - `renameGlobals` / `renameProperties` 关闭:插件对象的 `id` / `name` / `routes` / `meta` 等字段名不变,宿主照常读取;
95
+ - 产物里的注释(`/*!`、`@license`、`@preserve`、`@__PURE__`)会被清空;
96
+ - 混淆后不再输出 source map;
97
+ - 排查产物:`HEL_OBFUSCATE=0 pnpm build`(关闭混淆并恢复 source map)。
@@ -0,0 +1,47 @@
1
+ import { defineComponent as j, ref as y, computed as A, openBlock as p, createElementBlock as h, createElementVNode as x, createTextVNode as v, createStaticVNode as _, Fragment as B, renderList as V, normalizeClass as N, toDisplayString as d, createCommentVNode as w, createVNode as M, unref as f, withCtx as C } from "vue";
2
+ import { useRouter as D } from "vue-router";
3
+ import { NDrawer as L, NDrawerContent as F } from "naive-ui";
4
+ const c = b;
5
+ (function(l, n) {
6
+ const r = b, s = l();
7
+ for (; ; )
8
+ try {
9
+ if (parseInt(r(294)) / 1 + parseInt(r(326)) / 2 * (parseInt(r(310)) / 3) + -parseInt(r(305)) / 4 + parseInt(r(314)) / 5 * (parseInt(r(303)) / 6) + parseInt(r(323)) / 7 * (-parseInt(r(307)) / 8) + parseInt(r(300)) / 9 * (parseInt(r(306)) / 10) + parseInt(r(293)) / 11 * (-parseInt(r(283)) / 12) === n) break;
10
+ s.push(s.shift());
11
+ } catch {
12
+ s.push(s.shift());
13
+ }
14
+ })(m, 524298);
15
+ function m() {
16
+ const l = ["VIP会员", "svg", " 客服消息 ", "px-3 py-1.5 bg-slate-50 dark:bg-gray-800/50 text-slate-600 dark:text-slate-300 rounded hover:bg-slate-100 dark:hover:bg-gray-700 transition-colors", "154osMfDA", "客户资料", "!这款商品目前还有最后 2 件库存哦,您可以直接下单。 ", "14OdvuTv", "lastMsg", "space-y-6", "img", "hover:bg-slate-50 dark:hover:bg-gray-800/50 border-l-4 border-transparent", "w-4 h-4", " 查看客户资料 ", "div", "w-16 h-16 rounded-full border border-gray-200 dark:border-gray-700", "text-xs text-slate-400 shrink-0", "高频复购", "time", "text-lg font-bold text-slate-800 dark:text-slate-200", "60ZBgmzh", "text-xs text-slate-500 mb-1", "button", "王阿姨", "李小姐", "/store/settings/service", "flex justify-between items-center mb-6", "text-2xl font-bold text-slate-800 dark:text-slate-200 flex items-center gap-2", "已经收到货了,非常满意!", "text-sm font-bold text-slate-800 dark:text-slate-200 mb-3", "3278143buypiJ", "1014416bcDIcF", "麻烦帮我催一下发货", "value", "text-lg font-bold text-slate-800 dark:text-slate-200 mb-1", "https://api.dicebear.com/7.x/avataaars/svg?seed=Felix", "¥ 12,840.00", "108edJucY", "text-xs text-slate-400 bg-slate-100 dark:bg-gray-800 px-2 py-1 rounded", "flex-1 flex border border-gray-100 dark:border-gray-800 rounded-xl overflow-hidden bg-slate-50 dark:bg-gray-800/30", "144912RycLIb", "px-2 py-0.5 text-[10px] font-bold rounded bg-amber-50 text-amber-500 border border-amber-100", "1842088WGEPav", "778490hUZzer", "243256nGgqka", "品质偏好", "text-lg font-bold text-orange-500", "336279TJQcvS", "avatar", " 在线接待中 ", "https://api.dicebear.com/7.x/avataaars/svg?seed=Grace", "85epUUkG", "show", "bg-slate-50 dark:bg-gray-800/50 p-4 rounded-xl text-center", "span", "path"];
17
+ return m = function() {
18
+ return l;
19
+ }, m();
20
+ }
21
+ const G = { class: "p-6 bg-white dark:bg-[#0A1120] rounded-2xl shadow-sm min-h-[calc(100vh-120px)] border border-gray-100 dark:border-gray-800 flex flex-col" }, S = { class: c(302) }, U = { class: "w-80 border-r border-gray-100 dark:border-gray-800 bg-white dark:bg-[#0A1120] flex flex-col" }, E = { class: "flex-1 overflow-y-auto custom-scrollbar" }, J = ["onClick"], P = { class: "relative" }, T = ["src"], H = { key: 0, class: "absolute -top-1 -right-1 w-4 h-4 bg-rose-500 rounded-full border-2 border-white dark:border-[#0A1120] text-[8px] font-bold text-white flex items-center justify-center" }, R = { class: "flex-1 min-w-0" }, Z = { class: "flex justify-between items-baseline mb-1" }, q = { class: "font-bold text-slate-800 dark:text-slate-200 text-sm truncate" }, O = { class: c(279) }, Q = { class: "text-xs text-slate-500 dark:text-slate-400 truncate" }, W = { class: "flex-1 flex flex-col bg-slate-50 dark:bg-gray-800/30" }, Y = { class: "h-16 px-6 bg-white dark:bg-[#0A1120] border-b border-gray-100 dark:border-gray-800 flex items-center justify-between shrink-0" }, K = { class: "flex items-center gap-3" }, X = { class: "font-bold text-slate-800 dark:text-slate-200" }, $ = { class: c(304) }, x0 = { class: "flex-1 p-6 overflow-y-auto space-y-6 custom-scrollbar" }, e0 = { class: "text-center" }, t0 = { class: c(301) }, r0 = { class: "flex gap-3" }, a0 = ["src"], s0 = { class: "bg-white dark:bg-[#0A1120] p-3 rounded-2xl rounded-tl-none shadow-sm border border-gray-100 dark:border-gray-800 text-sm text-slate-700 dark:text-slate-300" }, o0 = { key: 0, class: "flex gap-3 flex-row-reverse" }, d0 = { class: "bg-gradient-to-br from-orange-500 to-rose-500 p-3 rounded-2xl rounded-tr-none shadow-sm text-sm text-white" }, l0 = { class: c(328) }, n0 = { class: "flex items-center gap-4 pb-6 border-b border-gray-100 dark:border-gray-800" }, i0 = ["src"], b0 = { class: c(297) }, g0 = { class: "pt-4 flex gap-3" }, v0 = j({ __name: "CustomerService", setup(l) {
22
+ const n = b, r = D(), s = y([{ id: 1, name: "张先生", lastMsg: "好的,那如果大小不合适支持退换吗?", time: "10:26", unread: 2, active: !0, avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Bob" }, { id: 2, name: n(287), lastMsg: n(295), time: "09:15", unread: 1, active: !1, avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Alice" }, { id: 3, name: "陈同学", lastMsg: "[图片]", time: "昨天", unread: 0, active: !1, avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Charlie" }, { id: 4, name: n(286), lastMsg: n(291), time: "昨天", unread: 0, active: !1, avatar: n(313) }, { id: 5, name: "刘老板", lastMsg: "批量采购有优惠吗?", time: "星期一", unread: 0, active: !1, avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Frank" }]), u = y(1), o = A(() => {
23
+ const g = b;
24
+ return s.value.find((t) => t.id === u.value) || s[g(296)][0];
25
+ }), I = (g) => {
26
+ const t = b;
27
+ u[t(296)] = g;
28
+ const e = s.value.find((a) => a.id === g);
29
+ e && (e.unread = 0);
30
+ }, k = y(!1), z = () => {
31
+ const g = b;
32
+ r.push(g(288));
33
+ };
34
+ return (g, t) => {
35
+ const e = b;
36
+ return p(), h(e(333), G, [x("div", { class: e(289) }, [t[5] || (t[5] = x("h2", { class: e(290) }, [v(e(321)), x(e(317), { class: "px-2 py-0.5 rounded-full bg-rose-50 dark:bg-rose-500/10 text-rose-500 text-xs font-bold" }, "12 未读")], -1)), x("div", { class: "flex items-center gap-4 text-sm font-medium" }, [t[4] || (t[4] = x("span", { class: "flex items-center gap-1.5 text-slate-600 dark:text-slate-300" }, [x(e(333), { class: "w-2 h-2 rounded-full bg-emerald-500" }), v(e(312))], -1)), x(e(285), { onClick: z, class: e(322) }, "设置")])]), x(e(333), S, [x(e(333), U, [t[6] || (t[6] = _('<div class="p-3 border-b border-gray-100 dark:border-gray-800"><div class="relative"><input type="text" placeholder="搜索联系人..." class="w-full pl-9 pr-4 py-2 rounded-lg bg-slate-50 dark:bg-gray-800/50 border border-transparent focus:border-orange-500 focus:bg-white dark:focus:bg-[#0A1120] outline-none text-sm transition-all dark:text-slate-200"><svg class="w-4 h-4 text-slate-400 absolute left-3 top-2.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></div></div>', 1)), x("div", E, [(p(!0), h(B, null, V(s.value, (a) => {
37
+ const i = b;
38
+ return p(), h("div", { key: a.id, onClick: (c0) => I(a.id), class: N([u.value === a.id ? "bg-orange-50 dark:bg-orange-500/10 border-l-4 border-orange-500" : i(330), "p-4 border-b border-gray-50 dark:border-gray-800/50 cursor-pointer transition-colors flex gap-3"]) }, [x(i(333), P, [x("img", { src: a[i(311)], class: "w-10 h-10 rounded-full border border-gray-100 dark:border-gray-700" }, null, 8, T), a.unread ? (p(), h("div", H, d(a.unread), 1)) : w("", !0)]), x("div", R, [x(i(333), Z, [x(i(317), q, d(a.name), 1), x(i(317), O, d(a[i(281)]), 1)]), x("p", Q, d(a[i(327)]), 1)])], 10, J);
39
+ }), 128))])]), x("div", W, [x(e(333), Y, [x("div", K, [x("h3", X, d(o[e(296)].name), 1), x(e(317), $, "VIP" + d(Math.floor(Math.random() * 4) + 1), 1)]), x(e(285), { onClick: t[0] || (t[0] = (a) => k.value = !0), class: "text-sm text-slate-500 hover:text-orange-500 transition-colors flex items-center gap-1" }, [...t[7] || (t[7] = [x(e(320), { class: e(331), fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, [x(e(318), { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" })], -1), v(e(332), -1)])])]), x(e(333), x0, [x("div", e0, [x(e(317), t0, "今天 " + d(o.value.time), 1)]), x("div", r0, [x(e(329), { src: o[e(296)].avatar, class: "w-8 h-8 rounded-full border border-gray-200" }, null, 8, a0), x("div", null, [x(e(333), s0, d(o[e(296)][e(327)]), 1)])]), o.value.id === 1 ? (p(), h("div", o0, [t[8] || (t[8] = x("img", { src: e(298), class: "w-8 h-8 rounded-full border border-gray-200" }, null, -1)), x(e(333), null, [x("div", d0, " 您好," + d(o.value.name) + e(325), 1)])])) : w("", !0)]), t[9] || (t[9] = _('<div class="bg-white dark:bg-[#0A1120] border-t border-gray-100 dark:border-gray-800 p-4 shrink-0"><div class="flex gap-2 mb-3"><button class="p-1.5 text-slate-400 hover:text-orange-500 rounded hover:bg-slate-50 transition-colors"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg></button><button class="p-1.5 text-slate-400 hover:text-orange-500 rounded hover:bg-slate-50 transition-colors"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg></button><button class="p-1.5 text-slate-400 hover:text-orange-500 rounded hover:bg-slate-50 transition-colors"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z"></path></svg></button></div><div class="flex gap-4 items-end"><textarea rows="3" placeholder="输入消息回复用户..." class="flex-1 resize-none px-3 py-2 rounded-lg bg-slate-50 dark:bg-gray-800/50 border border-transparent focus:border-orange-500 focus:bg-white outline-none text-sm transition-all custom-scrollbar dark:text-slate-200"></textarea><button class="px-6 py-2.5 bg-gradient-to-r from-orange-500 to-rose-500 text-white rounded-lg font-bold hover:shadow-lg hover:shadow-orange-500/30 transition-all mb-1">发送</button></div></div>', 1))])]), M(f(L), { show: k.value, "onUpdate:show": t[3] || (t[3] = (a) => k[e(296)] = a), width: 360, placement: "right" }, { default: C(() => [M(f(F), { title: e(324), closable: "" }, { default: C(() => [x("div", l0, [x(e(333), n0, [x(e(329), { src: o.value.avatar, class: e(334) }, null, 8, i0), x("div", null, [x("div", b0, d(o.value.name), 1), t[10] || (t[10] = x("div", { class: "text-sm text-slate-500 mb-2" }, "138****5678", -1)), t[11] || (t[11] = x(e(317), { class: "px-2 py-0.5 text-[10px] font-bold rounded bg-amber-50 text-amber-500 border border-amber-100" }, e(319), -1))])]), t[12] || (t[12] = x("div", { class: "grid grid-cols-2 gap-4 pb-6 border-b border-gray-100 dark:border-gray-800" }, [x(e(333), { class: e(316) }, [x(e(333), { class: e(284) }, "累计消费"), x(e(333), { class: e(309) }, e(299))]), x("div", { class: "bg-slate-50 dark:bg-gray-800/50 p-4 rounded-xl text-center" }, [x("div", { class: e(284) }, "订单数"), x(e(333), { class: e(282) }, [v("45 "), x("span", { class: "text-xs font-normal text-slate-500" }, "笔")])])], -1)), t[13] || (t[13] = x(e(333), null, [x("h4", { class: e(292) }, "用户标签"), x(e(333), { class: "flex flex-wrap gap-2" }, [x("span", { class: "px-3 py-1.5 bg-rose-50 text-rose-500 dark:bg-rose-500/10 rounded text-xs" }, e(280)), x("span", { class: "px-3 py-1.5 bg-blue-50 text-blue-500 dark:bg-blue-500/10 rounded text-xs" }, e(308)), x("span", { class: "px-3 py-1.5 bg-emerald-50 text-emerald-500 dark:bg-emerald-500/10 rounded text-xs" }, "极少退货")])], -1)), x("div", g0, [x(e(285), { onClick: t[1] || (t[1] = (a) => f(r).push("/user/profile/" + o[e(296)].id)), class: "flex-1 py-2 bg-slate-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-slate-700 dark:text-slate-200 rounded-lg hover:bg-slate-100 dark:hover:bg-gray-700 transition-colors font-medium text-sm" }, "完整画像"), x("button", { onClick: t[2] || (t[2] = (a) => f(r).push("/user/orders/" + o.value.id)), class: "flex-1 py-2 bg-slate-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-slate-700 dark:text-slate-200 rounded-lg hover:bg-slate-100 dark:hover:bg-gray-700 transition-colors font-medium text-sm" }, "历史订单")])])]), _: 1 })]), _: 1 }, 8, [e(315)])]);
40
+ };
41
+ } });
42
+ function b(l, n) {
43
+ return l = l - 279, m()[l];
44
+ }
45
+ export {
46
+ v0 as default
47
+ };
@@ -0,0 +1,36 @@
1
+ import { defineComponent as _, ref as h, openBlock as k, createElementBlock as y, createElementVNode as x, unref as d, createVNode as i, Fragment as w, renderList as N, toDisplayString as c, normalizeClass as I } from "vue";
2
+ import { useRouter as F } from "vue-router";
3
+ import { NNumberAnimation as b, NSelect as W, NDatePicker as z } from "naive-ui";
4
+ const n = p;
5
+ function g() {
6
+ const s = ["599886pnFsMY", "hover:bg-slate-50/50 dark:hover:bg-gray-800/30 transition-colors group", "2718ovJgsU", "p-4", "216uegIVp", "198260KDrqjC", "85xxqpwG", "text-slate-700 dark:text-slate-200", "收入 (订单结算)", "5583852KAImxR", "131572obWOdu", "input", "time", "border border-orange-100 dark:border-orange-500/20 rounded-xl p-6 bg-gradient-to-br from-orange-50 to-rose-50 dark:from-orange-500/10 dark:to-rose-500/10", "w-48", "bg-slate-50 dark:bg-gray-800/50", "p-4 text-right", "text-3xl font-black text-slate-800 dark:text-slate-100 flex items-baseline", "ORD2024102100889", "tbody", "账户余额", "p-4 text-right text-sm font-bold text-slate-600 dark:text-slate-400", "mr-1", "15oOWWqf", "text", "全部类型", "33yqbJZo", "value", "p-4 text-center", "2024-10-28 10:00:00", "month", "income", "div", "2024-10-28 16:30:22", "text-3xl font-black text-slate-700 dark:text-slate-200 flex items-baseline", "1921668XDylRq", "button", "5990hyYvlL", "amount", "font-medium text-slate-700 dark:text-slate-300 text-sm", "divide-y divide-gray-100 dark:divide-gray-800", "1673sjNoHv", "flex justify-between items-center mb-6"];
7
+ return g = function() {
8
+ return s;
9
+ }, g();
10
+ }
11
+ (function(s, o) {
12
+ const a = p, l = s();
13
+ for (; ; )
14
+ try {
15
+ if (-parseInt(a(140)) / 1 + -parseInt(a(145)) / 2 * (parseInt(a(120)) / 3) + -parseInt(a(150)) / 4 * (-parseInt(a(146)) / 5) + -parseInt(a(132)) / 6 + parseInt(a(138)) / 7 * (parseInt(a(144)) / 8) + parseInt(a(142)) / 9 * (-parseInt(a(134)) / 10) + parseInt(a(123)) / 11 * (parseInt(a(149)) / 12) === o) break;
16
+ l.push(l.shift());
17
+ } catch {
18
+ l.push(l.shift());
19
+ }
20
+ })(g, 364885);
21
+ function p(s, o) {
22
+ return s = s - 115, g()[s];
23
+ }
24
+ const A = { class: "p-6 bg-white dark:bg-[#0A1120] rounded-2xl shadow-sm min-h-[calc(100vh-120px)] border border-gray-100 dark:border-gray-800" }, D = { class: n(139) }, L = { class: "grid grid-cols-1 md:grid-cols-3 gap-6 mb-8" }, R = { class: n(153) }, q = { class: n(157) }, C = { class: "border border-gray-100 dark:border-gray-800 rounded-xl p-6 bg-white dark:bg-[#0A1120]" }, O = { class: n(131) }, j = { class: "border border-gray-100 dark:border-gray-800 rounded-xl p-6 bg-white dark:bg-[#0A1120]" }, E = { class: "text-3xl font-black text-slate-700 dark:text-slate-200 flex items-baseline" }, T = { class: "flex flex-wrap gap-4 mb-6 bg-slate-50 dark:bg-gray-800/50 p-4 rounded-xl border border-slate-100 dark:border-gray-800" }, U = { class: "w-40" }, V = { class: n(154) }, B = { class: "overflow-x-auto rounded-xl border border-gray-100 dark:border-gray-800" }, J = { class: "w-full text-left border-collapse" }, K = { class: n(137) }, M = { class: "p-4 text-sm text-slate-500" }, S = { class: "p-4" }, X = { class: n(136) }, Y = { class: "text-xs text-slate-400 mt-1" }, G = { class: "p-4 text-sm font-medium text-slate-700 dark:text-slate-300" }, H = { class: "mr-1" }, P = { class: n(118) }, e0 = _({ __name: "Finance", setup(s) {
25
+ const o = p, a = F(), l = h(null), f = [{ label: o(148), value: o(128) }, { label: "支出 (退款/提现)", value: "expense" }], u = h(null), v = [{ id: 1, time: o(130), flowNo: "FLW202410280001", bizNo: o(115), type: "订单结算收入", amount: 458, balance: 128450 }, { id: 2, time: "2024-10-28 14:15:10", flowNo: "FLW202410280002", bizNo: "RET202410280001", type: "售后退款支出", amount: -159, balance: 127992 }, { id: 3, time: o(126), flowNo: "FLW202410280003", bizNo: "TX202410280001", type: "账户余额提现", amount: -5e4, balance: 128151 }, { id: 4, time: "2024-10-27 22:30:45", flowNo: "FLW202410270001", bizNo: "ORD2024102000456", type: "订单结算收入", amount: 899, balance: 178151 }];
26
+ return (Z, e) => {
27
+ const t = p;
28
+ return k(), y("div", A, [x(t(129), D, [e[3] || (e[3] = x("h2", { class: "text-2xl font-bold text-slate-800 dark:text-slate-200" }, "财务结算", -1)), x(t(133), { onClick: e[0] || (e[0] = (r) => d(a).push("/finance/withdraw")), class: "px-4 py-2 bg-gradient-to-r from-emerald-500 to-teal-500 text-white rounded-lg font-medium hover:shadow-lg hover:shadow-emerald-500/30 transition-all flex items-center gap-2" }, " 申请提现 ")]), x("div", L, [x(t(129), R, [e[5] || (e[5] = x(t(129), { class: "text-sm font-bold text-orange-600 dark:text-orange-400 mb-2" }, "账户可提现余额", -1)), x("div", q, [e[4] || (e[4] = x("span", { class: t(119) }, "¥", -1)), i(d(b), { from: 0, to: 128450, precision: 2, "show-separator": "" })])]), x("div", C, [e[7] || (e[7] = x(t(129), { class: "text-sm font-bold text-slate-500 mb-2" }, "待结算金额 (T+7)", -1)), x("div", O, [e[6] || (e[6] = x("span", { class: "mr-1" }, "¥", -1)), i(d(b), { from: 0, to: 45200, precision: 2, "show-separator": "" })])]), x("div", j, [e[9] || (e[9] = x(t(129), { class: "text-sm font-bold text-slate-500 mb-2" }, "累计已提现", -1)), x("div", E, [e[8] || (e[8] = x("span", { class: "mr-1" }, "¥", -1)), i(d(b), { from: 0, to: 89e4, precision: 2, "show-separator": "" })])])]), x("div", T, [e[10] || (e[10] = x(t(129), { class: "flex-1 min-w-[200px]" }, [x(t(151), { type: t(121), placeholder: "搜索流水号 / 订单号", class: "w-full px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#0A1120] focus:ring-2 focus:ring-orange-500/20 focus:border-orange-500 outline-none transition-all dark:text-slate-200" })], -1)), x("div", U, [i(d(W), { value: l.value, "onUpdate:value": e[1] || (e[1] = (r) => l.value = r), options: f, placeholder: t(122) }, null, 8, ["value"])]), x("div", V, [i(d(z), { value: u[t(124)], "onUpdate:value": e[2] || (e[2] = (r) => u[t(124)] = r), type: t(127), clearable: "", placeholder: "选择月份" }, null, 8, [t(124)])]), e[11] || (e[11] = x("button", { class: "px-6 py-2 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-slate-700 dark:text-slate-200 rounded-lg hover:bg-slate-50 dark:hover:bg-gray-700 transition-colors font-medium" }, "搜索", -1))]), x("div", B, [x("table", J, [e[14] || (e[14] = x("thead", { class: t(155) }, [x("tr", { class: "text-sm text-slate-500 dark:text-slate-400 font-semibold border-b border-gray-100 dark:border-gray-800" }, [x("th", { class: "p-4" }, "创建时间"), x("th", { class: "p-4" }, "流水号 / 业务单号"), x("th", { class: t(143) }, "业务类型"), x("th", { class: t(156) }, "收支金额"), x("th", { class: "p-4 text-right" }, t(117)), x("th", { class: t(125) }, "状态")])], -1)), x(t(116), K, [(k(), y(w, null, N(v, (r) => {
29
+ const m = p;
30
+ return x("tr", { key: r.id, class: m(141) }, [x("td", M, c(r[m(152)]), 1), x("td", S, [x("div", X, c(r.flowNo), 1), x("div", Y, c(r.bizNo), 1)]), x("td", G, c(r.type), 1), x("td", { class: I(["p-4 text-right font-bold text-lg", r.amount > 0 ? "text-emerald-500" : m(147)]) }, [x("span", H, c(r.amount > 0 ? "+" : ""), 1), i(d(b), { from: 0, to: Math.abs(r[m(135)]), precision: 2, "show-separator": "" }, null, 8, ["to"])], 2), x("td", P, [e[12] || (e[12] = x("span", { class: "mr-1" }, "¥", -1)), i(d(b), { from: 0, to: r.balance, precision: 2, "show-separator": "" }, null, 8, ["to"])]), e[13] || (e[13] = x("td", { class: "p-4 text-center" }, [x("span", { class: "bg-emerald-50 text-emerald-500 dark:bg-emerald-500/10 px-2.5 py-1 text-xs font-bold rounded-md" }, "已完成")], -1))]);
31
+ }), 64))])])])]);
32
+ };
33
+ } });
34
+ export {
35
+ e0 as default
36
+ };
@@ -0,0 +1,46 @@
1
+ import { defineComponent as T, ref as y, h as p, openBlock as d, createElementBlock as b, createElementVNode as x, unref as w, createVNode as C, withModifiers as E, createStaticVNode as j, createTextVNode as g, withCtx as M, Fragment as B, renderList as I, normalizeClass as m, toDisplayString as f, createCommentVNode as N, createBlock as F, resolveDynamicComponent as G } from "vue";
2
+ import { useRouter as R } from "vue-router";
3
+ import { useMessage as q, NNumberAnimation as K, NModal as A } from "naive-ui";
4
+ const s = u;
5
+ function u(n, o) {
6
+ return n = n - 286, _()[n];
7
+ }
8
+ (function(n, o) {
9
+ const l = u, h = n();
10
+ for (; ; )
11
+ try {
12
+ if (parseInt(l(343)) / 1 * (-parseInt(l(354)) / 2) + parseInt(l(349)) / 3 * (-parseInt(l(323)) / 4) + -parseInt(l(307)) / 5 * (parseInt(l(331)) / 6) + -parseInt(l(321)) / 7 + -parseInt(l(330)) / 8 + parseInt(l(313)) / 9 * (parseInt(l(322)) / 10) + -parseInt(l(299)) / 11 * (-parseInt(l(320)) / 12) === o) break;
13
+ h.push(h.shift());
14
+ } catch {
15
+ h.push(h.shift());
16
+ }
17
+ })(_, 920583);
18
+ function _() {
19
+ const n = ["添加新账户", "w-[480px] bg-white dark:bg-[#0A1120] rounded-2xl shadow-xl overflow-hidden border border-gray-100 dark:border-gray-800", "type", "M15 12a3 3 0 11-6 0 3 3 0 016 0z", "name", "5DLmOgd", "银行卡号", "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z", "企业对公账户", "bg-sky-100 dark:bg-sky-500/20", "space-y-8", "18lSMkGN", " 到账账户 ", "企业微信账号", "value", "p-2 text-slate-400 hover:text-orange-500 hover:bg-orange-50 dark:hover:bg-gray-800 rounded-lg transition-colors", "none", "path", "2000568tLSwfm", "8325317YNTpdH", "816880REqDGk", "26284oJgCee", "text-slate-400 hover:text-slate-600 dark:hover:text-slate-200 transition-colors", "text-center text-xs text-slate-400 mt-4", "M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z", "text-emerald-600 dark:text-emerald-400 font-bold mb-2", "微信支付 (尾号 1234)", "text-5xl font-black text-slate-800 dark:text-slate-100 mb-4 flex items-center justify-center", "14631248zDYfpR", "1369194PuTgNF", "text-xs font-medium text-rose-500 hover:text-rose-600 transition-colors", "可提现金额 (元)", "中国工商银行 (尾号 8899)", "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z", "space-y-2", '<div class="space-y-4"><h3 class="text-lg font-bold text-slate-800 dark:text-slate-200">提现金额</h3><div class="relative"><span class="absolute left-4 top-1/2 -translate-y-1/2 text-2xl font-black text-slate-400">¥</span><input type="number" placeholder="0.00" class="w-full pl-12 pr-4 py-4 text-2xl font-bold rounded-xl border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#0A1120] focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-500 outline-none transition-all dark:text-slate-200"><button type="button" class="absolute right-4 top-1/2 -translate-y-1/2 text-emerald-500 font-bold hover:text-emerald-600 transition-colors">全部提现</button></div><div class="text-sm text-slate-500">预计收取手续费:<span class="font-bold text-slate-700 dark:text-slate-300">¥0.00</span>,实际到账:<span class="font-bold text-emerald-500">¥0.00</span></div></div>', "text", "w-full px-4 py-2.5 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#0A1120] focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-500 outline-none transition-all dark:text-slate-200", "FinanceWithdraw", "wechat", "div", "66921QGwQIq", "0 0 24 24", "flex items-center gap-4", "text-2xl font-bold text-slate-800 dark:text-slate-200", "placeholder", "flex items-center justify-between p-4 border border-gray-100 dark:border-gray-800 rounded-xl hover:border-emerald-200 dark:hover:border-emerald-500/30 transition-colors bg-white dark:bg-[#0A1120] group", "135STAYpK", "bank", "border-gray-200 dark:border-gray-700 bg-white dark:bg-[#0A1120] text-slate-600 dark:text-slate-400 hover:border-emerald-200 dark:hover:border-emerald-500/30", "currentColor", "color", "16tkeeCr", "开户行名称", "flex items-center gap-4 mb-8", "svg", "text-lg font-bold text-slate-800 dark:text-slate-200", "预计 1-3 个工作日内到账,节假日顺延", "账户类型", "p-6 space-y-4 max-h-[60vh] overflow-y-auto custom-scrollbar", "desc", "w-8 h-8 rounded-full flex items-center justify-center bg-opacity-10 dark:bg-opacity-20", "flex items-center gap-3 opacity-0 group-hover:opacity-100 transition-opacity", "bg-gradient-to-br from-emerald-50 to-teal-50 dark:from-emerald-500/10 dark:to-teal-500/10 border border-emerald-100 dark:border-emerald-500/20 rounded-2xl p-8 mb-8 text-center relative overflow-hidden", "w-5 h-5", '<div class="grid grid-cols-1 md:grid-cols-2 gap-4"><label class="border-2 border-emerald-500 rounded-xl p-4 cursor-pointer bg-emerald-50/30 dark:bg-emerald-500/10 transition-colors flex items-center gap-4"><div class="w-10 h-10 rounded-full bg-blue-100 text-blue-500 flex items-center justify-center shrink-0"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z"></path></svg></div><div><div class="font-bold text-slate-800 dark:text-slate-200">中国工商银行 (尾号 8899)</div><div class="text-xs text-slate-500 mt-1">企业对公账户</div></div></label><label class="border border-gray-200 dark:border-gray-700 rounded-xl p-4 cursor-pointer hover:border-emerald-400 hover:bg-emerald-50 dark:hover:bg-emerald-500/10 transition-colors opacity-60 flex items-center gap-4"><div class="w-10 h-10 rounded-full bg-green-100 text-green-500 flex items-center justify-center shrink-0"><svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z"></path></svg></div><div><div class="font-bold text-slate-800 dark:text-slate-200">微信支付 (尾号 1234)</div><div class="text-xs text-slate-500 mt-1">企业微信账号</div></div></label></div>', "round", "319SKYkYA", "w-[500px] bg-white dark:bg-[#0A1120] rounded-2xl shadow-xl overflow-hidden border border-gray-100 dark:border-gray-800", "M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z"];
20
+ return _ = function() {
21
+ return n;
22
+ }, _();
23
+ }
24
+ const Q = { class: "p-6 bg-white dark:bg-[#0A1120] rounded-2xl shadow-sm min-h-[calc(100vh-120px)] border border-gray-100 dark:border-gray-800 max-w-3xl mx-auto" }, U = { class: s(286) }, J = { class: s(295) }, O = { class: s(329) }, P = { class: "space-y-4" }, W = { class: "text-lg font-bold text-slate-800 dark:text-slate-200 flex justify-between items-center" }, X = { class: s(300) }, Z = { class: "px-6 py-4 border-b border-gray-100 dark:border-gray-800 flex justify-between items-center bg-slate-50/50 dark:bg-gray-800/30" }, $ = { class: s(291) }, x0 = { class: s(345) }, e0 = { class: "font-bold text-slate-800 dark:text-slate-200 flex items-center gap-2" }, t0 = { key: 0, class: "px-1.5 py-0.5 bg-emerald-50 text-emerald-500 dark:bg-emerald-500/10 border border-emerald-100 dark:border-emerald-500/20 rounded text-[10px] font-bold" }, r0 = { class: "text-xs text-slate-500 mt-0.5" }, a0 = { class: s(294) }, o0 = { key: 0, class: "text-xs font-medium text-emerald-500 hover:text-emerald-600 transition-colors" }, l0 = { class: s(303) }, s0 = { class: "px-6 py-4 border-b border-gray-100 dark:border-gray-800 flex justify-between items-center bg-slate-50/50 dark:bg-gray-800/30" }, d0 = { class: "p-6 space-y-6" }, n0 = { class: "space-y-3" }, i0 = { class: "grid grid-cols-3 gap-3" }, c0 = ["onClick"], b0 = { class: "space-y-4" }, u0 = { class: "space-y-2" }, h0 = { class: "block text-sm font-medium text-slate-700 dark:text-slate-300" }, k0 = ["placeholder"], p0 = { class: s(336) }, g0 = { class: "block text-sm font-medium text-slate-700 dark:text-slate-300" }, m0 = [s(347)], f0 = { class: "px-6 py-4 bg-slate-50/50 dark:bg-gray-800/30 border-t border-gray-100 dark:border-gray-800 flex justify-end gap-3" }, C0 = T({ __name: s(340), setup(n) {
25
+ const o = u, l = R(), h = q(), i = y(!1), k = y(!1), z = y([{ id: 1, name: o(334), desc: o(310), type: o(350), iconBg: "bg-blue-100 dark:bg-blue-500/20", iconColor: "text-blue-500 dark:text-blue-400", isDefault: !0 }, { id: 2, name: o(328), desc: o(315), type: "wechat", iconBg: "bg-green-100 dark:bg-green-500/20", iconColor: "text-green-500 dark:text-green-400", isDefault: !1 }, { id: 3, name: "支付宝 (尾号 5678)", desc: "企业支付宝账号", type: "alipay", iconBg: o(311), iconColor: "text-sky-500 dark:text-sky-400", isDefault: !1 }]), V = p("svg", { fill: "none", viewBox: "0 0 24 24", stroke: o(352) }, [p("path", { "stroke-linecap": o(298), "stroke-linejoin": "round", "stroke-width": "2", d: "M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" })]), D = p("svg", { fill: "none", viewBox: "0 0 24 24", stroke: o(352) }, [p(o(319), { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z" })]), H = p("svg", { fill: "none", viewBox: o(344), stroke: o(352) }, [p("path", { "stroke-linecap": o(298), "stroke-linejoin": o(298), "stroke-width": "2", d: o(335) })]), S = [{ label: "银行卡", value: "bank", icon: V, color: "bg-blue-500 text-blue-500 dark:text-blue-400" }, { label: "微信", value: o(341), icon: D, color: "bg-green-500 text-green-500 dark:text-green-400" }, { label: "支付宝", value: "alipay", icon: H, color: "bg-sky-500 text-sky-500 dark:text-sky-400" }], c = y({ type: "bank", name: "", accountNo: "" }), L = () => {
26
+ const v = u;
27
+ i.value = !1, c[v(316)] = { type: "bank", name: "", accountNo: "" }, k.value = !0;
28
+ }, Y = () => {
29
+ const v = u;
30
+ h.success("提现账户添加成功"), k[v(316)] = !1, i.value = !0;
31
+ };
32
+ return (v, e) => {
33
+ const t = u;
34
+ return d(), b("div", Q, [x(t(342), U, [x("button", { onClick: e[0] || (e[0] = (r) => w(l).back()), class: t(317) }, [...e[8] || (e[8] = [x("svg", { class: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: t(352) }, [x("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M10 19l-7-7m0 0l7-7m-7 7h18" })], -1)])]), e[9] || (e[9] = x("h2", { class: t(346) }, "申请提现", -1))]), x("div", J, [e[10] || (e[10] = x(t(342), { class: "absolute top-0 right-0 w-32 h-32 bg-white/20 rounded-full blur-xl -mr-10 -mt-10" }, null, -1)), e[11] || (e[11] = x("div", { class: t(327) }, t(333), -1)), x("div", O, [C(w(K), { from: 0, to: 128450, precision: 2, "show-separator": "" })]), e[12] || (e[12] = x("div", { class: "text-sm text-slate-500" }, "本月已提现:¥50,000.00 | 手续费费率:0.1%", -1))]), x("form", { class: t(312), onSubmit: e[2] || (e[2] = E(() => {
35
+ }, ["prevent"])) }, [e[16] || (e[16] = j(t(337), 1)), x(t(342), P, [x("h3", W, [e[14] || (e[14] = g(t(314), -1)), x("button", { type: "button", onClick: e[1] || (e[1] = (r) => i[t(316)] = !0), class: "text-sm text-emerald-500 font-medium hover:underline flex items-center gap-1" }, [...e[13] || (e[13] = [x("svg", { class: "w-4 h-4", fill: "none", viewBox: t(344), stroke: "currentColor" }, [x(t(319), { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: t(309) }), x(t(319), { "stroke-linecap": t(298), "stroke-linejoin": t(298), "stroke-width": "2", d: t(305) })], -1), g(" 管理账户 ", -1)])])]), e[15] || (e[15] = j(t(297), 1))]), e[17] || (e[17] = x(t(342), { class: "pt-8" }, [x("button", { type: "button", class: "w-full py-3.5 bg-gradient-to-r from-emerald-500 to-teal-500 text-white rounded-xl hover:shadow-lg hover:shadow-emerald-500/30 transition-all font-bold text-lg" }, "确认提现"), x("p", { class: t(325) }, t(289))], -1))], 32), C(w(A), { show: i.value, "onUpdate:show": e[4] || (e[4] = (r) => i[t(316)] = r) }, { default: M(() => [x("div", X, [x(t(342), Z, [e[19] || (e[19] = x("h3", { class: t(288) }, "管理提现账户", -1)), x("button", { onClick: e[3] || (e[3] = (r) => i.value = !1), class: t(324) }, [...e[18] || (e[18] = [x("svg", { class: t(296), fill: t(318), viewBox: "0 0 24 24", stroke: "currentColor" }, [x("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M6 18L18 6M6 6l12 12" })], -1)])])]), x(t(342), $, [(d(!0), b(B, null, I(z.value, (r) => {
36
+ const a = u;
37
+ return d(), b(a(342), { key: r.id, class: a(348) }, [x("div", x0, [x("div", { class: m([r.iconBg, "w-10 h-10 rounded-full flex items-center justify-center shrink-0"]) }, [r.type === a(350) ? (d(), b(a(287), { key: 0, class: m(["w-5 h-5", r.iconColor]), fill: a(318), viewBox: "0 0 24 24", stroke: a(352) }, [...e[20] || (e[20] = [x("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: a(326) }, null, -1)])], 2)) : (d(), b(a(287), { key: 1, class: m(["w-5 h-5", r.iconColor]), fill: "none", viewBox: "0 0 24 24", stroke: a(352) }, [...e[21] || (e[21] = [x("path", { "stroke-linecap": "round", "stroke-linejoin": a(298), "stroke-width": "2", d: a(301) }, null, -1)])], 2))], 2), x("div", null, [x(a(342), e0, [g(f(r[a(306)]) + " ", 1), r.isDefault ? (d(), b("span", t0, "默认")) : N("", !0)]), x("div", r0, f(r[a(292)]), 1)])]), x(a(342), a0, [r.isDefault ? N("", !0) : (d(), b("button", o0, "设为默认")), e[22] || (e[22] = x("button", { class: a(332) }, "解绑", -1))])]);
38
+ }), 128)), x("button", { onClick: L, class: "w-full py-4 border-2 border-dashed border-gray-200 dark:border-gray-700 rounded-xl text-slate-500 hover:text-emerald-500 hover:border-emerald-500 hover:bg-emerald-50 dark:hover:bg-emerald-500/10 transition-all font-bold flex items-center justify-center gap-2" }, [...e[23] || (e[23] = [x("svg", { class: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, [x("path", { "stroke-linecap": t(298), "stroke-linejoin": "round", "stroke-width": "2", d: "M12 4v16m8-8H4" })], -1), g(" 添加新账户 ", -1)])])])])]), _: 1 }, 8, ["show"]), C(w(A), { show: k.value, "onUpdate:show": e[7] || (e[7] = (r) => k[t(316)] = r) }, { default: M(() => [x("div", l0, [x(t(342), s0, [e[25] || (e[25] = x("h3", { class: "text-lg font-bold text-slate-800 dark:text-slate-200" }, t(302), -1)), x("button", { onClick: e[5] || (e[5] = (r) => k.value = !1), class: t(324) }, [...e[24] || (e[24] = [x("svg", { class: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: t(352) }, [x(t(319), { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M6 18L18 6M6 6l12 12" })], -1)])])]), x("div", d0, [x("div", n0, [e[26] || (e[26] = x("label", { class: "block text-sm font-medium text-slate-700 dark:text-slate-300" }, t(290), -1)), x("div", i0, [(d(), b(B, null, I(S, (r) => {
39
+ const a = u;
40
+ return x("button", { key: r.value, onClick: (v0) => c[a(316)][a(304)] = r.value, class: m([c[a(316)].type === r.value ? "border-emerald-500 bg-emerald-50 text-emerald-600 dark:bg-emerald-500/10 dark:text-emerald-400" : a(351), "py-3 px-2 border rounded-xl font-bold text-sm transition-colors flex flex-col items-center gap-2"]) }, [x("div", { class: m([r[a(353)], a(293)]) }, [(d(), F(G(r.icon), { class: "w-4 h-4" }))], 2), g(" " + f(r.label), 1)], 10, c0);
41
+ }), 64))])]), x("div", b0, [x(t(342), u0, [x("label", h0, f(c.value.type === "bank" ? t(355) : c.value.type === "alipay" ? "支付宝姓名" : "微信真实姓名"), 1), x("input", { type: "text", placeholder: c[t(316)][t(304)] === t(350) ? "如:招商银行高新支行" : "请输入真实姓名", class: t(339) }, null, 8, k0)]), x("div", p0, [x("label", g0, f(c.value[t(304)] === "bank" ? t(308) : "账号"), 1), x("input", { type: t(338), placeholder: c.value.type === "bank" ? "请输入16-19位银行卡号" : "请输入账号/手机号", class: t(339) }, null, 8, m0)])])]), x("div", f0, [x("button", { onClick: e[6] || (e[6] = (r) => k.value = !1), class: "px-5 py-2 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-slate-700 dark:text-slate-200 rounded-lg hover:bg-slate-50 dark:hover:bg-gray-700 transition-colors font-medium text-sm" }, "取消"), x("button", { onClick: Y, class: "px-5 py-2 bg-gradient-to-r from-emerald-500 to-teal-500 text-white rounded-lg hover:shadow-lg hover:shadow-emerald-500/30 transition-all font-bold text-sm" }, "确认添加")])])]), _: 1 }, 8, ["show"])]);
42
+ };
43
+ } });
44
+ export {
45
+ C0 as default
46
+ };
@@ -0,0 +1,44 @@
1
+ import { defineComponent as z, ref as p, h as g, openBlock as m, createElementBlock as u, createElementVNode as x, unref as f, createTextVNode as b, Fragment as y, renderList as w, normalizeClass as L, createBlock as A, resolveDynamicComponent as N, toDisplayString as d, createVNode as R, withCtx as D, createCommentVNode as F } from "vue";
2
+ import { useRouter as X } from "vue-router";
3
+ import { NModal as E } from "naive-ui";
4
+ const h = c;
5
+ (function(n, o) {
6
+ const a = c, l = n();
7
+ for (; ; )
8
+ try {
9
+ if (parseInt(a(119)) / 1 + -parseInt(a(123)) / 2 * (parseInt(a(146)) / 3) + parseInt(a(137)) / 4 * (-parseInt(a(140)) / 5) + -parseInt(a(112)) / 6 * (-parseInt(a(141)) / 7) + parseInt(a(108)) / 8 + parseInt(a(139)) / 9 + parseInt(a(122)) / 10 * (parseInt(a(149)) / 11) === o) break;
10
+ l.push(l.shift());
11
+ } catch {
12
+ l.push(l.shift());
13
+ }
14
+ })(v, 209805);
15
+ function v() {
16
+ const n = ["border border-gray-100 dark:border-gray-800 rounded-xl p-5 bg-white dark:bg-[#0A1120] hover:border-orange-200 dark:hover:border-orange-500/30 transition-colors flex items-start gap-4 cursor-pointer group", "w-3 h-3", "321400JjDFHH", "value", "1044756amXgwg", "25igkADr", "889FAVKaY", "div", "round", "button", "M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4", "12GGlFyX", "0 0 24 24", "2024.10.01 - 2024.11.11", "4366835JpSlkf", "2024.10.20 - 2024.11.10", "none", "flex items-center gap-3 mb-2", "type", "Marketing", "w-6 h-6", "path", "1,205,800.00", "text-lg font-bold text-slate-800 dark:text-slate-200", "活动数据看板", "svg", "1401832dmpHLM", "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z", "带动销售额", "name", "1086CbHbyi", "45,210", "有效期:", "currentColor", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6", "w-4 h-4", "text-2xl font-bold text-slate-800 dark:text-slate-200", "295654NLqRXR", "投入产出比 (ROI)", "flex-1", "10ZBrXoo", "197692tRnker", "进行中的活动", "users", "mt-2 text-xs text-emerald-500 flex items-center gap-1", "revenue", "text-2xl font-bold text-rose-500", "满减券", "M6 18L18 6M6 6l12 12", "限时折扣", "px-4 py-2 text-sm font-medium text-slate-600 hover:text-orange-500 bg-slate-50 hover:bg-orange-50 dark:bg-gray-800 dark:text-slate-300 dark:hover:bg-gray-700 rounded-lg transition-colors flex items-center gap-1.5", " 编辑 ", "px-2 py-1 text-xs font-bold rounded bg-rose-50 text-rose-500 dark:bg-rose-500/10 border border-rose-100 dark:border-rose-500/20"];
17
+ return v = function() {
18
+ return n;
19
+ }, v();
20
+ }
21
+ function c(n, o) {
22
+ return n = n - 101, v()[n];
23
+ }
24
+ const G = { class: "p-6 bg-white dark:bg-[#0A1120] rounded-2xl shadow-sm min-h-[calc(100vh-120px)] border border-gray-100 dark:border-gray-800" }, J = { class: "flex justify-between items-center mb-6" }, S = { class: "grid grid-cols-1 md:grid-cols-3 gap-6 mb-8" }, q = { class: "font-bold text-slate-800 dark:text-slate-200 group-hover:text-orange-600 dark:group-hover:text-orange-400 transition-colors" }, K = { class: "text-xs text-slate-500 mt-1" }, O = { class: "space-y-4" }, T = { class: h(121) }, U = { class: h(152) }, Y = { class: h(134) }, Z = { class: "font-bold text-slate-800 dark:text-slate-200" }, P = { class: "text-sm text-slate-500" }, Q = { class: "flex gap-8 text-center" }, W = { class: "font-bold text-slate-700 dark:text-slate-300" }, $ = { class: "font-bold text-rose-500" }, x0 = { class: "w-full md:w-auto flex justify-end gap-2 border-t md:border-t-0 border-gray-100 dark:border-gray-800 pt-4 md:pt-0" }, e0 = ["onClick"], t0 = ["onClick"], r0 = { class: "w-[600px] bg-white dark:bg-[#0A1120] rounded-2xl shadow-xl overflow-hidden border border-gray-100 dark:border-gray-800" }, o0 = { class: "px-6 py-4 border-b border-gray-100 dark:border-gray-800 flex justify-between items-center bg-slate-50/50 dark:bg-gray-800/30" }, s0 = { key: 0, class: "p-6" }, a0 = { class: "flex items-center gap-3 mb-6 pb-6 border-b border-gray-100 dark:border-gray-800" }, l0 = { class: h(105) }, d0 = { class: "text-sm text-slate-500 mt-1" }, n0 = { class: "grid grid-cols-2 gap-4" }, i0 = { class: "bg-slate-50 dark:bg-gray-800/50 rounded-xl p-4 border border-gray-100 dark:border-gray-700" }, c0 = { class: "text-2xl font-bold text-slate-800 dark:text-slate-200" }, g0 = { class: "bg-rose-50/50 dark:bg-rose-500/5 rounded-xl p-4 border border-rose-100 dark:border-rose-500/10" }, b0 = { class: h(128) }, h0 = { class: "px-6 py-4 bg-slate-50/50 dark:bg-gray-800/30 border-t border-gray-100 dark:border-gray-800 flex justify-end gap-3" }, k0 = z({ __name: h(101), setup(n) {
25
+ const o = c, a = X(), l = p(!1), i = p(null), _ = (k) => {
26
+ const e = c;
27
+ i[e(138)] = k, l.value = !0;
28
+ }, C = (k) => {
29
+ a.push("/marketing/create");
30
+ }, j = g("svg", { fill: "none", viewBox: "0 0 24 24", stroke: o(115) }, [g("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M15 5v2m0 4v2m0 4v2M5 5a2 2 0 00-2 2v3a2 2 0 110 4v3a2 2 0 002 2h14a2 2 0 002-2v-3a2 2 0 110-4V7a2 2 0 00-2-2H5z" })]), M = g(o(107), { fill: "none", viewBox: "0 0 24 24", stroke: o(115) }, [g(o(103), { "stroke-linecap": o(143), "stroke-linejoin": "round", "stroke-width": "2", d: o(109) })]), B = g("svg", { fill: "none", viewBox: "0 0 24 24", stroke: o(115) }, [g("path", { "stroke-linecap": "round", "stroke-linejoin": o(143), "stroke-width": "2", d: o(145) })]), I = [{ title: "优惠券", desc: "发放满减、折扣等多种类型优惠券", icon: j, color: "bg-gradient-to-br from-orange-400 to-rose-500" }, { title: "限时折扣", desc: "设置指定商品在特定时间内打折促销", icon: M, color: "bg-gradient-to-br from-blue-400 to-indigo-500" }, { title: "满件包邮", desc: "鼓励用户凑单,提升客单价", icon: B, color: "bg-gradient-to-br from-emerald-400 to-teal-500" }], V = [{ id: 1, name: "2024 秋季新品大促满减", type: o(129), time: o(148), users: "12,845", revenue: "345,600.00" }, { id: 2, name: "双十一预售付定金免尾款", type: o(131), time: o(150), users: "8,432", revenue: "890,200.00" }, { id: 3, name: "新用户注册首单立减", type: "新人专享", time: "长期有效", users: o(113), revenue: o(104) }];
31
+ return (k, e) => {
32
+ const t = c;
33
+ return m(), u(t(142), G, [x("div", J, [e[5] || (e[5] = x("h2", { class: t(118) }, "优惠营销", -1)), x("button", { onClick: e[0] || (e[0] = (s) => f(a).push("/marketing/create")), class: "px-4 py-2 bg-gradient-to-r from-orange-500 to-rose-500 text-white rounded-lg font-medium hover:shadow-lg hover:shadow-orange-500/30 transition-all flex items-center gap-2" }, [...e[4] || (e[4] = [x("svg", { class: t(117), fill: t(151), viewBox: "0 0 24 24", stroke: "currentColor" }, [x("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M12 4v16m8-8H4" })], -1), b(" 创建活动 ", -1)])])]), x("div", S, [(m(), u(y, null, w(I, (s) => {
34
+ const r = c;
35
+ return x("div", { key: s.title, class: r(135) }, [x("div", { class: L([s.color, "w-12 h-12 rounded-xl flex items-center justify-center text-white shadow-sm group-hover:scale-110 transition-transform"]) }, [(m(), A(N(s.icon), { class: "w-6 h-6" }))], 2), x("div", null, [x("h3", q, d(s.title), 1), x("p", K, d(s.desc), 1)])]);
36
+ }), 64))]), e[20] || (e[20] = x("h3", { class: "text-lg font-bold text-slate-800 dark:text-slate-200 mb-4" }, t(124), -1)), x("div", O, [(m(), u(y, null, w(V, (s) => {
37
+ const r = c;
38
+ return x("div", { key: s.id, class: "border border-gray-100 dark:border-gray-800 rounded-xl p-5 bg-white dark:bg-[#0A1120] flex flex-col md:flex-row items-start md:items-center gap-6" }, [x("div", T, [x(r(142), U, [x("span", Y, d(s[r(153)]), 1), x("h4", Z, d(s[r(111)]), 1)]), x("div", P, r(114) + d(s.time), 1)]), x("div", Q, [x(r(142), null, [e[6] || (e[6] = x("div", { class: "text-xs text-slate-400 mb-1" }, "参与人数", -1)), x("div", W, d(s[r(125)]), 1)]), x(r(142), null, [e[7] || (e[7] = x("div", { class: "text-xs text-slate-400 mb-1" }, r(110), -1)), x(r(142), $, "¥" + d(s.revenue), 1)])]), x("div", x0, [x("button", { onClick: (H) => _(s), class: "px-4 py-2 text-sm font-medium text-slate-600 hover:text-orange-500 bg-slate-50 hover:bg-orange-50 dark:bg-gray-800 dark:text-slate-300 dark:hover:bg-gray-700 rounded-lg transition-colors flex items-center gap-1.5" }, [...e[8] || (e[8] = [x(r(107), { class: r(117), fill: "none", viewBox: "0 0 24 24", stroke: r(115) }, [x("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" })], -1), b(" 数据 ", -1)])], 8, e0), x("button", { onClick: (H) => C(), class: r(132) }, [...e[9] || (e[9] = [x("svg", { class: "w-4 h-4", fill: r(151), viewBox: r(147), stroke: "currentColor" }, [x(r(103), { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z" })], -1), b(r(133), -1)])], 8, t0)])]);
39
+ }), 64))]), R(f(E), { show: l.value, "onUpdate:show": e[3] || (e[3] = (s) => l.value = s) }, { default: D(() => [x("div", r0, [x(t(142), o0, [e[11] || (e[11] = x("h3", { class: "text-lg font-bold text-slate-800 dark:text-slate-200" }, t(106), -1)), x(t(144), { onClick: e[1] || (e[1] = (s) => l.value = !1), class: "text-slate-400 hover:text-slate-600 dark:hover:text-slate-200 transition-colors" }, [...e[10] || (e[10] = [x("svg", { class: "w-5 h-5", fill: "none", viewBox: t(147), stroke: "currentColor" }, [x("path", { "stroke-linecap": "round", "stroke-linejoin": t(143), "stroke-width": "2", d: t(130) })], -1)])])]), i[t(138)] ? (m(), u("div", s0, [x("div", a0, [e[12] || (e[12] = x("div", { class: "w-12 h-12 rounded-xl bg-orange-50 dark:bg-orange-500/10 flex items-center justify-center text-orange-500" }, [x("svg", { class: t(102), fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, [x("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" })])], -1)), x("div", null, [x("h4", l0, d(i.value.name), 1), x(t(142), d0, "活动类型:" + d(i.value.type), 1)])]), x("div", n0, [x(t(142), i0, [e[14] || (e[14] = x("div", { class: "text-sm text-slate-500 mb-2 flex items-center gap-2" }, " 参与总人数 ", -1)), x(t(142), c0, [b(d(i.value[t(125)]) + " ", 1), e[13] || (e[13] = x("span", { class: "text-sm font-normal text-slate-500" }, "人", -1))]), e[15] || (e[15] = x("div", { class: t(126) }, [x("svg", { class: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, [x("path", { "stroke-linecap": t(143), "stroke-linejoin": "round", "stroke-width": "2", d: t(116) })]), b(" 较昨日 +12% ")], -1))]), x("div", g0, [e[16] || (e[16] = x("div", { class: "text-sm text-slate-500 mb-2 flex items-center gap-2" }, " 累计带动销售额 ", -1)), x("div", b0, "¥" + d(i.value[t(127)]), 1), e[17] || (e[17] = x("div", { class: "mt-2 text-xs text-rose-500/70 flex items-center gap-1" }, [x(t(107), { class: t(136), fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, [x(t(103), { "stroke-linecap": "round", "stroke-linejoin": t(143), "stroke-width": "2", d: t(116) })]), b(" 环比上周 +24% ")], -1))]), e[18] || (e[18] = x("div", { class: "bg-slate-50 dark:bg-gray-800/50 rounded-xl p-4 border border-gray-100 dark:border-gray-700" }, [x("div", { class: "text-sm text-slate-500 mb-2" }, t(120)), x("div", { class: "text-xl font-bold text-slate-800 dark:text-slate-200" }, "1 : 8.5")], -1)), e[19] || (e[19] = x(t(142), { class: "bg-slate-50 dark:bg-gray-800/50 rounded-xl p-4 border border-gray-100 dark:border-gray-700" }, [x("div", { class: "text-sm text-slate-500 mb-2" }, "核销转化率"), x("div", { class: "text-xl font-bold text-slate-800 dark:text-slate-200" }, "42.8%")], -1))])])) : F("", !0), x("div", h0, [x("button", { onClick: e[2] || (e[2] = (s) => l.value = !1), class: "px-5 py-2 bg-gradient-to-r from-orange-500 to-rose-500 text-white rounded-lg hover:shadow-lg hover:shadow-orange-500/30 transition-all font-bold text-sm" }, "我知道了")])])]), _: 1 }, 8, ["show"])]);
40
+ };
41
+ } });
42
+ export {
43
+ k0 as default
44
+ };
@@ -0,0 +1,34 @@
1
+ import { defineComponent as p, ref as u, openBlock as v, createElementBlock as f, createElementVNode as e, unref as n, withModifiers as h, createStaticVNode as g, createTextVNode as b, createVNode as k } from "vue";
2
+ import { useRouter as m } from "vue-router";
3
+ import { NDatePicker as y } from "naive-ui";
4
+ function l() {
5
+ const a = ["创建营销活动", "div", "4189362icikXS", "grid grid-cols-1 md:grid-cols-2 gap-6", "w-1 h-4 bg-orange-500 rounded-full", "1366748rKZvIH", "1998308FmAUlN", "svg", "daterange", "2245863voLXRo", "space-y-6", "px-6 py-2.5 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-slate-700 dark:text-slate-200 rounded-lg hover:bg-slate-50 dark:hover:bg-gray-700 transition-colors font-bold", "7397075zQrySe", "9QRntSG", "round", "活动设置 ", "950vAHFhN", "text-rose-500", "1lIYxbJ", "5jQKsDG", "11089264wFwVuZ", "p-6 bg-white dark:bg-[#0A1120] rounded-2xl shadow-sm min-h-[calc(100vh-120px)] border border-gray-100 dark:border-gray-800 max-w-4xl mx-auto", "43780ezZIYJ", "button", "活动时间 ", "text-2xl font-bold text-slate-800 dark:text-slate-200"];
6
+ return l = function() {
7
+ return a;
8
+ }, l();
9
+ }
10
+ const c = i;
11
+ function i(a, o) {
12
+ return a = a - 453, l()[a];
13
+ }
14
+ (function(a, o) {
15
+ const t = i, s = a();
16
+ for (; ; )
17
+ try {
18
+ if (parseInt(t(462)) / 1 * (parseInt(t(476)) / 2) + parseInt(t(453)) / 3 + -parseInt(t(475)) / 4 + parseInt(t(463)) / 5 * (-parseInt(t(472)) / 6) + parseInt(t(456)) / 7 + -parseInt(t(464)) / 8 * (parseInt(t(457)) / 9) + parseInt(t(460)) / 10 * (parseInt(t(466)) / 11) === o) break;
19
+ s.push(s.shift());
20
+ } catch {
21
+ s.push(s.shift());
22
+ }
23
+ })(l, 756528);
24
+ const w = { class: c(465) }, _ = { class: "flex items-center gap-4 mb-8" }, I = { class: c(454) }, j = { class: c(473) }, C = { class: "space-y-2 md:col-span-2" }, M = { class: "flex items-center gap-2" }, N = { class: "flex justify-end gap-4 pt-6 mt-8 border-t border-gray-100 dark:border-gray-800" }, S = p({ __name: "MarketingCreate", setup(a) {
25
+ const o = m(), t = u(null);
26
+ return (s, x) => {
27
+ const r = i;
28
+ return v(), f("div", w, [e(r(471), _, [e(r(467), { onClick: x[0] || (x[0] = (d) => n(o).back()), class: "p-2 text-slate-400 hover:text-orange-500 hover:bg-orange-50 dark:hover:bg-gray-800 rounded-lg transition-colors" }, [...x[4] || (x[4] = [e(r(477), { class: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, [e("path", { "stroke-linecap": r(458), "stroke-linejoin": r(458), "stroke-width": "2", d: "M10 19l-7-7m0 0l7-7m-7 7h18" })], -1)])]), x[5] || (x[5] = e("h2", { class: r(469) }, r(470), -1))]), e("form", { class: "space-y-8", onSubmit: x[3] || (x[3] = h(() => {
29
+ }, ["prevent"])) }, [x[10] || (x[10] = g('<div class="space-y-6"><h3 class="text-lg font-bold flex items-center gap-2 text-slate-800 dark:text-slate-200"><div class="w-1 h-4 bg-orange-500 rounded-full"></div>活动类型 </h3><div class="grid grid-cols-1 md:grid-cols-3 gap-4"><label class="border-2 border-orange-500 rounded-xl p-4 cursor-pointer bg-orange-50/30 dark:bg-orange-500/10 transition-colors"><div class="flex items-center gap-3 mb-2"><div class="w-8 h-8 rounded-lg bg-orange-500 text-white flex items-center justify-center"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 5v2m0 4v2m0 4v2M5 5a2 2 0 00-2 2v3a2 2 0 110 4v3a2 2 0 002 2h14a2 2 0 002-2v-3a2 2 0 110-4V7a2 2 0 00-2-2H5z"></path></svg></div><span class="font-bold text-orange-600 dark:text-orange-400">优惠券</span></div><div class="text-xs text-orange-500/80 dark:text-orange-400/80">满减券、折扣券等</div></label><label class="border border-gray-200 dark:border-gray-700 rounded-xl p-4 cursor-pointer hover:border-blue-400 hover:bg-blue-50 dark:hover:bg-blue-500/10 transition-colors opacity-60"><div class="flex items-center gap-3 mb-2"><div class="w-8 h-8 rounded-lg bg-slate-100 dark:bg-gray-800 text-slate-400 flex items-center justify-center"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg></div><span class="font-bold text-slate-600 dark:text-slate-400">限时折扣</span></div><div class="text-xs text-slate-400">指定商品限时打折</div></label><label class="border border-gray-200 dark:border-gray-700 rounded-xl p-4 cursor-pointer hover:border-emerald-400 hover:bg-emerald-50 dark:hover:bg-emerald-500/10 transition-colors opacity-60"><div class="flex items-center gap-3 mb-2"><div class="w-8 h-8 rounded-lg bg-slate-100 dark:bg-gray-800 text-slate-400 flex items-center justify-center"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"></path></svg></div><span class="font-bold text-slate-600 dark:text-slate-400">满件包邮</span></div><div class="text-xs text-slate-400">提升客单价利器</div></label></div></div><hr class="border-gray-100 dark:border-gray-800">', 2)), e(r(471), I, [x[8] || (x[8] = e("h3", { class: "text-lg font-bold flex items-center gap-2 text-slate-800 dark:text-slate-200" }, [e("div", { class: r(474) }), b(r(459))], -1)), e("div", j, [x[7] || (x[7] = g('<div class="space-y-2 md:col-span-2"><label class="block text-sm font-medium text-slate-700 dark:text-slate-300">活动名称 <span class="text-rose-500">*</span></label><input type="text" placeholder="例如:双十一专属满减券" class="w-full px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#0A1120] focus:ring-2 focus:ring-orange-500/20 focus:border-orange-500 outline-none transition-all dark:text-slate-200"></div><div class="space-y-2"><label class="block text-sm font-medium text-slate-700 dark:text-slate-300">使用门槛 (元) <span class="text-rose-500">*</span></label><input type="number" placeholder="满多少元可用,0 表示无门槛" class="w-full px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#0A1120] focus:ring-2 focus:ring-orange-500/20 focus:border-orange-500 outline-none transition-all dark:text-slate-200"></div><div class="space-y-2"><label class="block text-sm font-medium text-slate-700 dark:text-slate-300">优惠金额 (元) <span class="text-rose-500">*</span></label><input type="number" placeholder="减多少元" class="w-full px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#0A1120] focus:ring-2 focus:ring-orange-500/20 focus:border-orange-500 outline-none transition-all dark:text-slate-200"></div>', 3)), e("div", C, [x[6] || (x[6] = e("label", { class: "block text-sm font-medium text-slate-700 dark:text-slate-300" }, [b(r(468)), e("span", { class: r(461) }, "*")], -1)), e("div", M, [k(n(y), { value: t.value, "onUpdate:value": x[1] || (x[1] = (d) => t.value = d), type: r(478), clearable: "" }, null, 8, ["value"])])])])]), e(r(471), N, [e("button", { type: "button", onClick: x[2] || (x[2] = (d) => n(o).back()), class: r(455) }, "取消"), x[9] || (x[9] = e("button", { type: "button", class: "px-6 py-2.5 bg-gradient-to-r from-orange-500 to-rose-500 text-white rounded-lg hover:shadow-lg hover:shadow-orange-500/30 transition-all font-bold" }, "创建活动", -1))])], 32)]);
30
+ };
31
+ } });
32
+ export {
33
+ S as default
34
+ };
@@ -0,0 +1,32 @@
1
+ import { defineComponent as b, openBlock as g, createElementBlock as v, createElementVNode as t, unref as i, createStaticVNode as l } from "vue";
2
+ import { useRouter as f } from "vue-router";
3
+ const n = o;
4
+ (function(s, r) {
5
+ const a = o, x = s();
6
+ for (; ; )
7
+ try {
8
+ if (parseInt(a(227)) / 1 + -parseInt(a(229)) / 2 * (parseInt(a(242)) / 3) + parseInt(a(228)) / 4 + parseInt(a(230)) / 5 + -parseInt(a(236)) / 6 + -parseInt(a(235)) / 7 + parseInt(a(245)) / 8 === r) break;
9
+ x.push(x.shift());
10
+ } catch {
11
+ x.push(x.shift());
12
+ }
13
+ })(d, 149944);
14
+ function o(s, r) {
15
+ return s = s - 227, d()[s];
16
+ }
17
+ const p = { class: "p-6 bg-white dark:bg-[#0A1120] rounded-2xl shadow-sm min-h-[calc(100vh-120px)] border border-gray-100 dark:border-gray-800 max-w-5xl mx-auto" }, h = { class: "flex items-center justify-between mb-8" }, k = { class: "flex items-center gap-4" }, m = { class: "grid grid-cols-1 lg:grid-cols-3 gap-6" }, u = { class: n(246) }, y = { class: n(232) }, w = { class: "p-5 flex flex-col gap-3" }, z = b({ __name: "OrderDetail", setup(s) {
18
+ const r = f();
19
+ return (a, x) => {
20
+ const e = o;
21
+ return g(), v(e(247), p, [t(e(247), h, [t("div", k, [t(e(231), { onClick: x[0] || (x[0] = (c) => i(r).back()), class: e(240) }, [...x[2] || (x[2] = [t("svg", { class: "w-5 h-5", fill: "none", viewBox: e(241), stroke: "currentColor" }, [t(e(244), { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M10 19l-7-7m0 0l7-7m-7 7h18" })], -1)])]), x[3] || (x[3] = t("h2", { class: "text-2xl font-bold text-slate-800 dark:text-slate-200" }, e(237), -1))]), x[4] || (x[4] = t("div", { class: e(234) }, [t("span", { class: e(233) }, "待发货")], -1))]), x[9] || (x[9] = l('<div class="mb-10 px-8 py-6 bg-slate-50 dark:bg-gray-800/30 rounded-xl border border-gray-100 dark:border-gray-800 flex justify-between items-center relative"><div class="absolute left-16 right-16 top-1/2 -translate-y-1/2 h-0.5 bg-gray-200 dark:bg-gray-700 z-0"></div><div class="absolute left-16 right-1/2 top-1/2 -translate-y-1/2 h-0.5 bg-orange-500 z-0"></div><div class="relative z-10 flex flex-col items-center"><div class="w-8 h-8 rounded-full bg-orange-500 text-white flex items-center justify-center font-bold mb-2 shadow-sm shadow-orange-500/30">✓</div><div class="text-sm font-bold text-slate-800 dark:text-slate-200">买家下单</div><div class="text-xs text-slate-500 mt-1">2024-10-28 14:30:22</div></div><div class="relative z-10 flex flex-col items-center"><div class="w-8 h-8 rounded-full bg-orange-500 text-white flex items-center justify-center font-bold mb-2 shadow-sm shadow-orange-500/30">✓</div><div class="text-sm font-bold text-slate-800 dark:text-slate-200">买家付款</div><div class="text-xs text-slate-500 mt-1">2024-10-28 14:35:10</div></div><div class="relative z-10 flex flex-col items-center"><div class="w-8 h-8 rounded-full bg-white dark:bg-[#0A1120] border-2 border-orange-500 text-orange-500 flex items-center justify-center font-bold mb-2">3</div><div class="text-sm font-bold text-orange-600 dark:text-orange-400">商家发货</div><div class="text-xs text-slate-500 mt-1">待处理</div></div><div class="relative z-10 flex flex-col items-center"><div class="w-8 h-8 rounded-full bg-white dark:bg-[#0A1120] border-2 border-gray-200 dark:border-gray-700 text-slate-400 flex items-center justify-center font-bold mb-2">4</div><div class="text-sm font-bold text-slate-500">交易完成</div><div class="text-xs text-slate-500 mt-1">-</div></div></div>', 1)), t("div", m, [x[8] || (x[8] = l('<div class="lg:col-span-2 space-y-6"><div class="border border-gray-100 dark:border-gray-800 rounded-xl overflow-hidden bg-white dark:bg-[#0A1120]"><div class="px-5 py-4 border-b border-gray-100 dark:border-gray-800 bg-slate-50/50 dark:bg-gray-800/30 font-bold text-slate-800 dark:text-slate-200 flex items-center gap-2"><div class="w-1 h-4 bg-orange-500 rounded-full"></div>商品信息 </div><div class="p-5"><div class="flex gap-4"><img src="https://images.unsplash.com/photo-1591047139829-d91aecb6caea?w=100&amp;h=100&amp;fit=crop" class="w-20 h-20 rounded-lg object-cover border border-gray-100 dark:border-gray-700 shadow-sm"><div class="flex-1"><div class="font-bold text-slate-800 dark:text-slate-200 text-base mb-1 hover:text-orange-600 transition-colors cursor-pointer">秋季法式高级感收腰风衣</div><div class="text-xs text-slate-500 mb-2">卡其色 / M码 | 编码:W-001</div><div class="text-xs text-rose-500 bg-rose-50 dark:bg-rose-500/10 px-2 py-0.5 rounded w-fit">七天无理由退换</div></div><div class="text-right"><div class="font-bold text-slate-800 dark:text-slate-200">¥458.00</div><div class="text-sm text-slate-400 mt-1">x1</div></div></div></div><div class="px-5 py-4 bg-slate-50/50 dark:bg-gray-800/30 border-t border-gray-100 dark:border-gray-800 flex justify-end gap-6 text-sm"><div class="text-slate-500">商品总价:<span class="text-slate-700 dark:text-slate-300 font-bold">¥458.00</span></div><div class="text-slate-500">运费:<span class="text-slate-700 dark:text-slate-300 font-bold">¥0.00</span></div><div class="text-slate-500">实付款:<span class="text-orange-600 dark:text-orange-400 font-black text-lg">¥458.00</span></div></div></div><div class="border border-gray-100 dark:border-gray-800 rounded-xl overflow-hidden bg-white dark:bg-[#0A1120]"><div class="px-5 py-4 border-b border-gray-100 dark:border-gray-800 bg-slate-50/50 dark:bg-gray-800/30 font-bold text-slate-800 dark:text-slate-200 flex items-center gap-2"><div class="w-1 h-4 bg-blue-500 rounded-full"></div>订单信息 </div><div class="p-5 grid grid-cols-2 gap-4 text-sm"><div><span class="text-slate-500 w-20 inline-block">订单编号:</span><span class="text-slate-800 dark:text-slate-200 font-medium">ORD2024102800123</span></div><div><span class="text-slate-500 w-20 inline-block">支付方式:</span><span class="text-slate-800 dark:text-slate-200 font-medium">微信支付</span></div><div><span class="text-slate-500 w-20 inline-block">创建时间:</span><span class="text-slate-800 dark:text-slate-200 font-medium">2024-10-28 14:30:22</span></div><div><span class="text-slate-500 w-20 inline-block">付款时间:</span><span class="text-slate-800 dark:text-slate-200 font-medium">2024-10-28 14:35:10</span></div><div class="col-span-2"><span class="text-slate-500 w-20 inline-block">买家留言:</span><span class="text-slate-800 dark:text-slate-200 font-medium">请尽快发货,谢谢!发顺丰可以吗?</span></div></div></div></div>', 1)), t("div", u, [x[7] || (x[7] = l('<div class="border border-gray-100 dark:border-gray-800 rounded-xl overflow-hidden bg-white dark:bg-[#0A1120]"><div class="px-5 py-4 border-b border-gray-100 dark:border-gray-800 bg-slate-50/50 dark:bg-gray-800/30 font-bold text-slate-800 dark:text-slate-200 flex items-center gap-2"><div class="w-1 h-4 bg-emerald-500 rounded-full"></div>收货信息 </div><div class="p-5 space-y-4 text-sm"><div class="flex items-start gap-3"><svg class="w-5 h-5 text-slate-400 shrink-0 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"></path></svg><div><div class="font-bold text-slate-800 dark:text-slate-200 mb-1">林女士 <span class="font-medium text-slate-500 ml-2">138****5678</span></div><div class="text-slate-600 dark:text-slate-400 leading-relaxed">浙江省 杭州市 西湖区 某某街道 某某小区 1号楼 1201室</div></div></div><hr class="border-gray-100 dark:border-gray-800"><div class="flex items-center gap-3"><svg class="w-5 h-5 text-slate-400 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg><div class="text-slate-600 dark:text-slate-400">买家已实名认证</div></div></div></div>', 1)), t("div", y, [t("div", w, [t("button", { onClick: x[1] || (x[1] = (c) => i(r).push(e(238))), class: e(243) }, "立即去发货"), x[5] || (x[5] = t(e(231), { class: "w-full py-2.5 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-slate-700 dark:text-slate-200 rounded-lg hover:bg-slate-50 dark:hover:bg-gray-700 transition-colors font-medium" }, e(239), -1)), x[6] || (x[6] = t("button", { class: "w-full py-2.5 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-slate-700 dark:text-slate-200 rounded-lg hover:bg-slate-50 dark:hover:bg-gray-700 transition-colors font-medium" }, "修改地址", -1))])])])])]);
22
+ };
23
+ } });
24
+ function d() {
25
+ const s = ["w-full py-3 bg-gradient-to-r from-orange-500 to-rose-500 text-white rounded-lg hover:shadow-lg hover:shadow-orange-500/30 transition-all font-bold", "path", "490088XDpfbf", "space-y-6", "div", "171870DbenNp", "898372BDnBZk", "2bRINCm", "1326060GtpBST", "button", "border border-orange-100 dark:border-orange-500/20 rounded-xl overflow-hidden bg-gradient-to-b from-orange-50 to-white dark:from-orange-500/10 dark:to-[#0A1120]", "px-4 py-1.5 bg-orange-50 dark:bg-orange-500/10 text-orange-600 dark:text-orange-400 font-bold rounded-lg border border-orange-100 dark:border-orange-500/20", "flex gap-2", "479997HiDEKP", "1363140JYRxwS", "订单详情", "/order/ship/1", "联系买家", "p-2 text-slate-400 hover:text-orange-500 hover:bg-orange-50 dark:hover:bg-gray-800 rounded-lg transition-colors", "0 0 24 24", "831693KRtGHW"];
26
+ return d = function() {
27
+ return s;
28
+ }, d();
29
+ }
30
+ export {
31
+ z as default
32
+ };
@@ -0,0 +1,61 @@
1
+ import { defineComponent as O, ref as j, computed as V, openBlock as g, createElementBlock as m, createElementVNode as e, createTextVNode as B, Fragment as w, renderList as T, normalizeClass as N, toDisplayString as i, createVNode as L, unref as C, createCommentVNode as M } from "vue";
2
+ import { useRouter as R } from "vue-router";
3
+ import { useMessage as q, NDatePicker as P } from "naive-ui";
4
+ const b = c;
5
+ function v() {
6
+ const u = ["style", "2024-10-28 14:30:22", "font-bold text-slate-800 dark:text-slate-200 text-sm hover:text-orange-600 transition-colors cursor-pointer", "setAttribute", "338356SEekcT", "value", "spec", "label", "选择下单日期", "text-emerald-500", "实付款", "phone", "458.00", "5511865TwbstA", "amount", "text-xs text-slate-400 mt-1", "w-4 h-4", "onClick", "shipping", "flex-1 min-w-[200px]", "ORD2024102800123", "w-full md:w-40 p-4 border-b md:border-b-0 md:border-r border-gray-100 dark:border-gray-800 flex flex-col justify-center items-center", "订单号", "https://images.unsplash.com/photo-1584916201218-f4242ceb4809?w=100&h=100&fit=crop", "https://images.unsplash.com/photo-1591047139829-d91aecb6caea?w=100&h=100&fit=crop", "flex items-center gap-4 text-slate-500 dark:text-slate-400", "push", "7269563hPaUgZ", "buyer", "filter", "text-orange-500", "0.00", "flex-1", "products", "9025736xgMANv", "svg", "2024-10-28 10:15:05", "div", "已完成", "复古真皮单肩斜挎包", "paid", "1027440mNtCjD", "name", "round", "status", "path", "text-xs text-slate-500 mt-1", "8831hFSmkt", "252GDwEOV", "text", "ORD2024102700456", "0 0 24 24", "214fFijEB", "all", "body", "卡其色 / M码", "span", "299.00", "flex flex-wrap gap-4 mb-6 bg-slate-50 dark:bg-gray-800/50 p-4 rounded-xl border border-slate-100 dark:border-gray-800", "1091050DpHQPV", "click", "15kuBMLO", "pb-3 transition-colors", "download", "button", "w-16 h-16 rounded-lg object-cover border border-gray-100 dark:border-gray-700 shadow-sm", "completed", "shipped", "map"];
7
+ return v = function() {
8
+ return u;
9
+ }, v();
10
+ }
11
+ (function(u, r) {
12
+ const l = c, p = u();
13
+ for (; ; )
14
+ try {
15
+ if (parseInt(l(384)) / 1 * (parseInt(l(389)) / 2) + parseInt(l(398)) / 3 * (-parseInt(l(410)) / 4) + parseInt(l(419)) / 5 + -parseInt(l(378)) / 6 + parseInt(l(364)) / 7 + parseInt(l(371)) / 8 + -parseInt(l(385)) / 9 * (parseInt(l(396)) / 10) === r) break;
16
+ p.push(p.shift());
17
+ } catch {
18
+ p.push(p.shift());
19
+ }
20
+ })(v, 564891);
21
+ function c(u, r) {
22
+ return u = u - 354, v()[u];
23
+ }
24
+ const U = { class: "p-6 bg-white dark:bg-[#0A1120] rounded-2xl shadow-sm min-h-[calc(100vh-120px)] border border-gray-100 dark:border-gray-800" }, F = { class: "flex gap-6 border-b border-gray-100 dark:border-gray-800 mb-6" }, S = [b(354)], z = { class: b(395) }, G = { class: "w-64" }, H = { class: "space-y-4" }, Q = { class: "bg-slate-50 dark:bg-gray-800/50 px-4 py-3 border-b border-gray-100 dark:border-gray-800 flex justify-between items-center text-sm" }, Z = { class: b(362) }, J = { class: "font-bold text-slate-700 dark:text-slate-200" }, K = { class: "flex flex-col md:flex-row" }, W = { class: "flex-1 p-4 border-b md:border-b-0 md:border-r border-gray-100 dark:border-gray-800 space-y-4" }, X = ["src"], Y = { class: b(369) }, $ = { class: b(408) }, e0 = { class: "text-xs text-slate-400 mt-1" }, x0 = { class: "text-right" }, t0 = { class: "font-medium text-slate-700 dark:text-slate-300 text-sm" }, r0 = { class: b(421) }, a0 = { class: "w-full md:w-48 p-4 border-b md:border-b-0 md:border-r border-gray-100 dark:border-gray-800 flex flex-col justify-center" }, s0 = { class: "text-sm font-bold text-slate-700 dark:text-slate-300" }, o0 = { class: b(383) }, d0 = { class: b(358) }, l0 = { class: "text-lg font-black text-orange-600 dark:text-orange-400 mt-1" }, n0 = { class: "text-xs text-slate-400 mt-1" }, i0 = { class: "w-full md:w-32 p-4 flex flex-col justify-center items-center gap-2" }, c0 = [b(354)], b0 = ["onClick"], m0 = O({ __name: "OrderList", setup(u) {
25
+ const r = c, l = R(), p = q(), h = j(null), I = [{ label: "全部订单", value: "all" }, { label: "待付款", value: "unpaid" }, { label: "待发货", value: "paid" }, { label: "已发货", value: r(404) }, { label: "已完成", value: r(403) }], f = j("all"), y = [{ id: 1, orderNo: r(357), createTime: r(407), status: r(377), statusText: "待发货", amount: r(418), shipping: r(368), buyer: { name: "林女士", phone: "138****5678" }, products: [{ name: "秋季法式高级感收腰风衣", spec: r(392), price: "458.00", quantity: 1, image: r(361) }] }, { id: 2, orderNo: "ORD2024102800085", createTime: r(373), status: r(404), statusText: "已发货", amount: "1058.00", shipping: "10.00", buyer: { name: "张先生", phone: "159****2345" }, products: [{ name: "降噪蓝牙耳机 Pro Max", spec: "星空黑 / 标准版", price: "899.00", quantity: 1, image: "https://images.unsplash.com/photo-1606220588913-b3aec89155a9?w=100&h=100&fit=crop" }, { name: "韩版宽松慵懒风毛衣", spec: "米白色 / L码", price: "159.00", quantity: 1, image: "https://images.unsplash.com/photo-1620799140408-edc6dcb6d633?w=100&h=100&fit=crop" }] }, { id: 3, orderNo: r(387), createTime: "2024-10-27 22:45:10", status: r(403), statusText: r(375), amount: r(394), shipping: "0.00", buyer: { name: "陈小姐", phone: "135****8899" }, products: [{ name: r(376), spec: "复古棕 / 均码", price: "299.00", quantity: 1, image: r(360) }] }], _ = V(() => {
26
+ const a = c;
27
+ return f[a(411)] === a(390) ? y : y[a(366)]((t) => t.status === f[a(411)]);
28
+ }), D = (a) => {
29
+ const t = c;
30
+ return a === "all" ? y.length : y.filter((o) => o[t(381)] === a).length;
31
+ }, A = () => {
32
+ const a = c, t = [a(359), "创建时间", "状态", "买家", "手机号", "订单金额", "运费"], o = _.value[a(405)]((n) => [n.orderNo, n.createTime, n.statusText, n.buyer[a(379)], n.buyer.phone, n[a(420)], n.shipping]);
33
+ let x = t.join(",") + `
34
+ `;
35
+ o.forEach((n) => {
36
+ x += n.join(",") + `
37
+ `;
38
+ });
39
+ const s = new Blob(["\uFEFF" + x], { type: "text/csv;charset=utf-8;" }), d = document.createElement("a"), k = URL.createObjectURL(s);
40
+ d.setAttribute("href", k), d[a(409)](a(400), "订单导出_" + ( new Date()).getTime() + ".csv"), d[a(406)].visibility = "hidden", document[a(391)].appendChild(d), d[a(397)](), document.body.removeChild(d), p.success("成功导出 " + _.value.length + " 条订单记录");
41
+ }, E = (a) => {
42
+ const t = c;
43
+ return { unpaid: "text-rose-500", paid: t(367), shipped: "text-blue-500", completed: t(415), closed: "text-slate-400" }[a] || "text-slate-500";
44
+ };
45
+ return (a, t) => {
46
+ const o = c;
47
+ return g(), m("div", U, [e("div", { class: "flex justify-between items-center mb-6" }, [t[2] || (t[2] = e("h2", { class: "text-2xl font-bold text-slate-800 dark:text-slate-200" }, "订单列表", -1)), e("button", { onClick: A, class: "px-4 py-2 bg-slate-50 dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 text-slate-700 dark:text-slate-200 rounded-lg font-medium hover:bg-slate-100 dark:hover:bg-gray-700 transition-all flex items-center gap-2" }, [...t[1] || (t[1] = [e(o(372), { class: o(422), fill: "none", viewBox: o(388), stroke: "currentColor" }, [e(o(382), { "stroke-linecap": o(380), "stroke-linejoin": o(380), "stroke-width": "2", d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" })], -1), B(" 导出订单 ", -1)])])]), e(o(374), F, [(g(), m(w, null, T(I, (x) => {
48
+ const s = c;
49
+ return e("button", { key: x.value, onClick: (d) => f[s(411)] = x.value, class: N([s(399), f.value === x[s(411)] ? "text-orange-500 font-bold border-b-2 border-orange-500" : "text-slate-500 hover:text-slate-800 dark:hover:text-slate-200 font-medium"]) }, i(x[s(413)]) + " (" + i(D(x.value)) + ") ", 11, S);
50
+ }), 64))]), e("div", z, [t[3] || (t[3] = e("div", { class: o(356) }, [e("input", { type: o(386), placeholder: "搜索订单号 / 买家姓名 / 手机号", class: "w-full px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#0A1120] focus:ring-2 focus:ring-orange-500/20 focus:border-orange-500 outline-none transition-all dark:text-slate-200" })], -1)), e("div", G, [L(C(P), { value: h.value, "onUpdate:value": t[0] || (t[0] = (x) => h.value = x), type: "date", clearable: "", placeholder: o(414) }, null, 8, ["value"])]), t[4] || (t[4] = e("button", { class: "px-6 py-2 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-slate-700 dark:text-slate-200 rounded-lg hover:bg-slate-50 dark:hover:bg-gray-700 transition-colors font-medium" }, "搜索", -1))]), e(o(374), H, [(g(!0), m(w, null, T(_.value, (x) => {
51
+ const s = c;
52
+ return g(), m(s(374), { key: x.id, class: "border border-gray-100 dark:border-gray-800 rounded-xl overflow-hidden bg-white dark:bg-[#0A1120] hover:border-orange-200 dark:hover:border-orange-500/30 transition-colors" }, [e("div", Q, [e("div", Z, [e(s(393), J, i(x.createTime), 1), e(s(393), null, "订单号:" + i(x.orderNo), 1)]), e(s(393), { class: N([E(x.status), "font-bold"]) }, i(x.statusText), 3)]), e("div", K, [e("div", W, [(g(!0), m(w, null, T(x[s(370)], (d, k) => {
53
+ const n = c;
54
+ return g(), m(n(374), { key: k, class: "flex gap-3" }, [e("img", { src: d.image, class: n(402) }, null, 8, X), e("div", Y, [e("div", $, i(d.name), 1), e("div", e0, i(d[n(412)]), 1)]), e("div", x0, [e(n(374), t0, "¥" + i(d.price), 1), e("div", r0, "x" + i(d.quantity), 1)])]);
55
+ }), 128))]), e("div", a0, [e("div", s0, i(x.buyer.name), 1), e("div", o0, i(x[s(365)][s(417)]), 1)]), e("div", d0, [t[5] || (t[5] = e("div", { class: "text-sm text-slate-500" }, s(416), -1)), e("div", l0, "¥" + i(x.amount), 1), e(s(374), n0, "含运费 ¥" + i(x[s(355)]), 1)]), e("div", i0, [x.status === "paid" ? (g(), m(s(401), { key: 0, onClick: (d) => C(l).push("/order/ship/" + x.id), class: "w-full px-3 py-1.5 bg-orange-50 dark:bg-orange-500/10 text-orange-600 dark:text-orange-400 rounded text-sm font-bold hover:bg-orange-100 dark:hover:bg-orange-500/20 transition-colors" }, "去发货", 8, c0)) : M("", !0), e("button", { onClick: (d) => C(l)[s(363)]("/order/detail/" + x.id), class: "w-full px-3 py-1.5 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-slate-700 dark:text-slate-200 rounded text-sm font-medium hover:bg-slate-50 dark:hover:bg-gray-700 transition-colors" }, "订单详情", 8, b0)])])]);
56
+ }), 128))])]);
57
+ };
58
+ } });
59
+ export {
60
+ m0 as default
61
+ };