@huyooo/ui 0.12.1 → 0.13.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.
- package/dist/CustomTable-BBcd4nNL.js +278 -0
- package/dist/PaySubscriptions-Dxg7GZJx.js +1194 -0
- package/dist/PricingPlans-CAKsTY8G.js +405 -0
- package/dist/{ReferrerReferees-DhS91Ulf.js → ReferrerReferees-Hh88qOrp.js} +1 -1
- package/dist/UserMenuInvitationsItem.vue_vue_type_script_setup_true_lang-24U6PK1y.js +521 -0
- package/dist/{WidthContainer-ektCstwj.js → WidthContainer-B2cjwKvY.js} +2 -2
- package/dist/common/paymentReturn.d.ts +9 -0
- package/dist/common.js +2 -2
- package/dist/components/Pay/PaymentReturnPage.vue.d.ts +7 -0
- package/dist/components/UserMenu/parts/UserSubscriptionBaseInformation.vue.d.ts +2 -0
- package/dist/composables/Billing/useBillingPlans.d.ts +39 -0
- package/dist/composables/Billing/useBillingSubscriptionSummary.d.ts +52 -0
- package/dist/composables/Billing/usePaymentReturn.d.ts +33 -0
- package/dist/composables/UserMenu/useUserMenu.d.ts +1 -1
- package/dist/main.js +154 -147
- package/dist/pay.d.ts +3 -0
- package/dist/pay.js +15 -8
- package/dist/referrer.js +1 -1
- package/dist/style.css +1 -1
- package/dist/user.js +1 -1
- package/dist/utils/billingFetch.d.ts +1 -0
- package/package.json +1 -1
- package/dist/CustomTable-BUkwlbzN.js +0 -272
- package/dist/PaySubscriptions-DS4kJNb_.js +0 -531
- package/dist/PricingPlans-B7lJ8lYV.js +0 -277
- package/dist/UserMenuInvitationsItem.vue_vue_type_script_setup_true_lang-9cF5hBYc.js +0 -508
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
import { defineComponent as K, computed as d, openBlock as i, createBlock as O, withCtx as v, createVNode as m, onMounted as ue, resolveDirective as _e, createElementBlock as n, withDirectives as de, unref as t, normalizeClass as p, createElementVNode as s, toDisplayString as l, Fragment as P, renderList as f, createCommentVNode as c, createTextVNode as G } from "vue";
|
|
2
|
-
import { L as ge, a as Pe } from "./LandingPageFAQ-CZJXvor9.js";
|
|
3
|
-
import { L as fe } from "./LandingPageSectionHeader-D_74W4My.js";
|
|
4
|
-
import { _ as R } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
5
|
-
/* empty css */
|
|
6
|
-
import "./index-D3Kp6R4z.js";
|
|
7
|
-
/* empty css */
|
|
8
|
-
import { Spin as me, Button as H } from "@arco-design/web-vue";
|
|
9
|
-
import { Icon as M } from "@iconify/vue";
|
|
10
|
-
import { u as ve, a as pe } from "./useSubscriptionCheckout-DNLuRGmx.js";
|
|
11
|
-
import { u as he } from "./useEnsureAuthenticated-MpHmn2co.js";
|
|
12
|
-
const ye = /* @__PURE__ */ K({
|
|
13
|
-
__name: "PricingFAQ",
|
|
14
|
-
props: {
|
|
15
|
-
title: {
|
|
16
|
-
default: "订阅常见问题"
|
|
17
|
-
},
|
|
18
|
-
subtitle: {
|
|
19
|
-
default: "关于试用、付款、配额、升级和取消订阅的说明。"
|
|
20
|
-
},
|
|
21
|
-
activeKeys: {
|
|
22
|
-
default: () => []
|
|
23
|
-
},
|
|
24
|
-
faqItems: {
|
|
25
|
-
default: void 0
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
setup(o) {
|
|
29
|
-
const h = [{
|
|
30
|
-
question: "可以先试用再付费吗?",
|
|
31
|
-
answer: "可以。支持试用的方案会在卡片按钮上标明试用天数。试用期间可使用对应方案能力,到期后再决定是否继续订阅。"
|
|
32
|
-
}, {
|
|
33
|
-
question: "月付和年付有什么区别?",
|
|
34
|
-
answer: "月付适合短期验证和灵活使用,年付适合稳定团队和长期项目,通常会有更优惠的价格。"
|
|
35
|
-
}, {
|
|
36
|
-
question: "已有订阅后可以升级或切换方案吗?",
|
|
37
|
-
answer: "可以。升级或切换方案时,系统会根据当前订阅和新方案计算差额;如需补差价,会跳转到支付页面完成支付。"
|
|
38
|
-
}, {
|
|
39
|
-
question: "取消订阅后还能继续使用吗?",
|
|
40
|
-
answer: "可以。取消订阅后,当前计费周期内仍可继续使用,周期结束后订阅权益将停止续期。"
|
|
41
|
-
}, {
|
|
42
|
-
question: "配额什么时候重置?",
|
|
43
|
-
answer: "配额按订阅周期重置,不一定是自然月月初。例如您在 4 月 15 日订阅月付方案,下一次配额重置通常发生在 5 月 15 日。"
|
|
44
|
-
}, {
|
|
45
|
-
question: "不同方案的技术支持有什么区别?",
|
|
46
|
-
answer: "基础方案适合个人和轻量团队,包含常规支持;更高等级方案面向正式团队和生产场景,通常包含更高优先级支持。"
|
|
47
|
-
}, {
|
|
48
|
-
question: "是否支持退款?",
|
|
49
|
-
answer: "订阅可随时取消。退款规则以付费服务协议为准,如遇到重复扣费或异常支付,可以联系支持团队处理。"
|
|
50
|
-
}, {
|
|
51
|
-
question: "使用订阅服务有什么限制?",
|
|
52
|
-
answer: "请按正常业务场景使用服务,禁止共享、转售订阅或用于违法违规场景。严重滥用可能导致服务受限或账户终止。"
|
|
53
|
-
}], y = o, k = d(() => y.faqItems ?? h);
|
|
54
|
-
return (b, w) => (i(), O(ge, {
|
|
55
|
-
class: "PricingFAQ"
|
|
56
|
-
}, {
|
|
57
|
-
BlockHeader: v(() => [m(fe, {
|
|
58
|
-
title: o.title,
|
|
59
|
-
subtitle: o.subtitle
|
|
60
|
-
}, null, 8, ["title", "subtitle"])]),
|
|
61
|
-
BlockBody: v(() => [m(Pe, {
|
|
62
|
-
"active-keys": o.activeKeys,
|
|
63
|
-
"faq-items": k.value
|
|
64
|
-
}, null, 8, ["active-keys", "faq-items"])]),
|
|
65
|
-
_: 1
|
|
66
|
-
}));
|
|
67
|
-
}
|
|
68
|
-
}), tt = /* @__PURE__ */ R(ye, [["__scopeId", "data-v-fcab2f05"]]), ke = {
|
|
69
|
-
class: "PricingPlans"
|
|
70
|
-
}, be = {
|
|
71
|
-
class: "PricingPlans__trialMain"
|
|
72
|
-
}, Be = {
|
|
73
|
-
class: "PricingPlans__trialCopy"
|
|
74
|
-
}, Ce = {
|
|
75
|
-
key: 0,
|
|
76
|
-
class: "PricingPlans__trialFeatures"
|
|
77
|
-
}, Ie = {
|
|
78
|
-
class: "PricingPlans__trialAction"
|
|
79
|
-
}, Le = {
|
|
80
|
-
key: 1,
|
|
81
|
-
class: "PricingPlans__toolbar"
|
|
82
|
-
}, we = {
|
|
83
|
-
key: 0,
|
|
84
|
-
class: "PricingPlans__toggle",
|
|
85
|
-
role: "tablist",
|
|
86
|
-
"aria-label": "计费周期"
|
|
87
|
-
}, qe = ["onClick"], De = {
|
|
88
|
-
key: 0,
|
|
89
|
-
class: "PricingPlans__toggleBadge"
|
|
90
|
-
}, Te = {
|
|
91
|
-
key: 1,
|
|
92
|
-
class: "PricingPlans__note"
|
|
93
|
-
}, Ae = {
|
|
94
|
-
key: 2,
|
|
95
|
-
class: "PricingPlans__grid"
|
|
96
|
-
}, Fe = {
|
|
97
|
-
class: "PricingPlans__badgeRow"
|
|
98
|
-
}, Se = {
|
|
99
|
-
class: "PricingPlans__header"
|
|
100
|
-
}, xe = {
|
|
101
|
-
class: "PricingPlans__price"
|
|
102
|
-
}, Ee = {
|
|
103
|
-
key: 0,
|
|
104
|
-
class: "PricingPlans__originalPrice"
|
|
105
|
-
}, Ne = {
|
|
106
|
-
class: "PricingPlans__amount"
|
|
107
|
-
}, Qe = {
|
|
108
|
-
class: "PricingPlans__cycle"
|
|
109
|
-
}, Ve = {
|
|
110
|
-
key: 0,
|
|
111
|
-
class: "PricingPlans__promotion"
|
|
112
|
-
}, $e = {
|
|
113
|
-
class: "PricingPlans__summary"
|
|
114
|
-
}, ze = {
|
|
115
|
-
class: "PricingPlans__featureGroups"
|
|
116
|
-
}, Ge = {
|
|
117
|
-
class: "PricingPlans__features"
|
|
118
|
-
}, He = {
|
|
119
|
-
key: 3,
|
|
120
|
-
class: "PricingPlans__empty"
|
|
121
|
-
}, Me = /* @__PURE__ */ K({
|
|
122
|
-
__name: "PricingPlans",
|
|
123
|
-
props: {
|
|
124
|
-
appName: {
|
|
125
|
-
default: "Huyooo"
|
|
126
|
-
},
|
|
127
|
-
defaultInterval: {
|
|
128
|
-
default: "month"
|
|
129
|
-
},
|
|
130
|
-
note: {
|
|
131
|
-
default: ""
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
setup(o) {
|
|
135
|
-
const h = o, {
|
|
136
|
-
products: y,
|
|
137
|
-
plans: k,
|
|
138
|
-
currentSubscription: b,
|
|
139
|
-
currentLoading: w,
|
|
140
|
-
listLoading: q,
|
|
141
|
-
billingInterval: j,
|
|
142
|
-
billingIntervalTabs: D,
|
|
143
|
-
setBillingInterval: J,
|
|
144
|
-
currentTrial: U,
|
|
145
|
-
isCurrentPlan: T,
|
|
146
|
-
isRecommendedPlan: A,
|
|
147
|
-
isFreePlan: W,
|
|
148
|
-
isPlanActionDisabled: X,
|
|
149
|
-
getDisplayPrice: Y,
|
|
150
|
-
getDisplayOriginalPrice: F,
|
|
151
|
-
getDisplayCycle: Z,
|
|
152
|
-
getPromotionLabel: S,
|
|
153
|
-
getBadgeLabels: ee,
|
|
154
|
-
getButtonLabel: te,
|
|
155
|
-
getPlanSummary: x,
|
|
156
|
-
getFeatureGroups: E,
|
|
157
|
-
loadCurrentSubscription: N,
|
|
158
|
-
refresh: ie
|
|
159
|
-
} = ve(h.defaultInterval), _ = d(() => {
|
|
160
|
-
var a;
|
|
161
|
-
if (!b.value)
|
|
162
|
-
for (const r of y.value) {
|
|
163
|
-
const g = r.prices.find((e) => e.type === "free");
|
|
164
|
-
if (g)
|
|
165
|
-
return {
|
|
166
|
-
...r,
|
|
167
|
-
features: (a = g.features) != null && a.length ? g.features : r.features,
|
|
168
|
-
selectedPrice: g
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
}), B = d(() => k.value.filter((a) => !W(a))), Q = d(() => !!localStorage.getItem("jwtToken")), C = d(() => !!U.value), I = d(() => Q.value && w.value && !C.value), V = d(() => C.value || I.value), {
|
|
172
|
-
checkout: ne,
|
|
173
|
-
isCheckingOut: se
|
|
174
|
-
} = pe({
|
|
175
|
-
currentSubscription: b,
|
|
176
|
-
refreshCurrentSubscription: N
|
|
177
|
-
}), {
|
|
178
|
-
ensureAuthenticated: le
|
|
179
|
-
} = he();
|
|
180
|
-
function ae(a) {
|
|
181
|
-
return a === 1 ? "适合团队协作与更高频使用" : "适合个人和轻量团队使用";
|
|
182
|
-
}
|
|
183
|
-
function $(a) {
|
|
184
|
-
return E(a.features).flatMap((r) => r.items).slice(0, 3);
|
|
185
|
-
}
|
|
186
|
-
function re(a) {
|
|
187
|
-
return (a.description || x(a, 0)).replace(/^\s*\d+\s*天(?:免费)?体验[,,、\s]*/, "").replace(/^\s*免费体验[,,、\s]*/, "").trim();
|
|
188
|
-
}
|
|
189
|
-
function ce() {
|
|
190
|
-
return I.value ? "权益加载中" : C.value ? "正在体验当前权益" : "立即体验";
|
|
191
|
-
}
|
|
192
|
-
async function oe() {
|
|
193
|
-
if (!V.value) {
|
|
194
|
-
if (Q.value) {
|
|
195
|
-
await N();
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
le();
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
return ue(() => {
|
|
202
|
-
ie();
|
|
203
|
-
}), (a, r) => {
|
|
204
|
-
const g = _e("motion-slide-top");
|
|
205
|
-
return i(), n("section", ke, [de((i(), O(t(me), {
|
|
206
|
-
loading: t(q),
|
|
207
|
-
tip: "数据加载中",
|
|
208
|
-
class: "PricingPlans__spin"
|
|
209
|
-
}, {
|
|
210
|
-
default: v(() => [_.value ? (i(), n("article", {
|
|
211
|
-
key: 0,
|
|
212
|
-
class: p(["PricingPlans__trial", {
|
|
213
|
-
"is-current": t(T)(_.value)
|
|
214
|
-
}])
|
|
215
|
-
}, [s("div", be, [s("div", Be, [s("h2", null, l(_.value.name), 1), s("p", null, l(re(_.value)), 1), $(_.value).length ? (i(), n("ul", Ce, [(i(!0), n(P, null, f($(_.value), (e) => (i(), n("li", {
|
|
216
|
-
key: e.title
|
|
217
|
-
}, [m(t(M), {
|
|
218
|
-
icon: "mingcute:check-circle-fill",
|
|
219
|
-
class: "PricingPlans__trialFeatureIcon"
|
|
220
|
-
}), s("span", null, l(e.title), 1)]))), 128))])) : c("", !0)]), s("div", Ie, [m(t(H), {
|
|
221
|
-
size: "large",
|
|
222
|
-
class: "PricingPlans__trialButton",
|
|
223
|
-
loading: I.value,
|
|
224
|
-
disabled: V.value,
|
|
225
|
-
onClick: oe
|
|
226
|
-
}, {
|
|
227
|
-
default: v(() => [G(l(ce()), 1)]),
|
|
228
|
-
_: 1
|
|
229
|
-
}, 8, ["loading", "disabled"])])])], 2)) : c("", !0), B.value.length ? (i(), n("div", Le, [t(D).length > 1 ? (i(), n("div", we, [(i(!0), n(P, null, f(t(D), (e) => (i(), n("button", {
|
|
230
|
-
key: e.value,
|
|
231
|
-
type: "button",
|
|
232
|
-
class: p(["PricingPlans__toggleItem", {
|
|
233
|
-
"is-active": t(j) === e.value
|
|
234
|
-
}]),
|
|
235
|
-
onClick: (L) => t(J)(e.value)
|
|
236
|
-
}, [s("span", null, l(e.label), 1), e.badge ? (i(), n("span", De, l(e.badge), 1)) : c("", !0)], 10, qe))), 128))])) : c("", !0), o.note ? (i(), n("p", Te, l(o.note), 1)) : c("", !0)])) : c("", !0), B.value.length ? (i(), n("div", Ae, [(i(!0), n(P, null, f(B.value, (e, L) => (i(), n("article", {
|
|
237
|
-
key: e.id,
|
|
238
|
-
class: p(["PricingPlans__card", {
|
|
239
|
-
"is-recommended": t(A)(e),
|
|
240
|
-
"is-current": t(T)(e)
|
|
241
|
-
}])
|
|
242
|
-
}, [s("div", Fe, [(i(!0), n(P, null, f(t(ee)(e), (u) => (i(), n("span", {
|
|
243
|
-
key: u.type,
|
|
244
|
-
class: p(["PricingPlans__badge", `is-${u.type}`])
|
|
245
|
-
}, l(u.label), 3))), 128))]), s("div", Se, [s("h2", null, l(e.name), 1), s("p", null, l(e.description || ae(L)), 1)]), s("div", xe, [t(F)(e) ? (i(), n("span", Ee, " ¥" + l(t(F)(e)), 1)) : c("", !0), r[0] || (r[0] = s("span", {
|
|
246
|
-
class: "PricingPlans__currency"
|
|
247
|
-
}, "¥", -1)), s("span", Ne, l(t(Y)(e)), 1), s("span", Qe, l(t(Z)(e)), 1)]), t(S)(e) ? (i(), n("p", Ve, l(t(S)(e)), 1)) : c("", !0), s("p", $e, l(t(x)(e, L)), 1), m(t(H), {
|
|
248
|
-
long: "",
|
|
249
|
-
size: "large",
|
|
250
|
-
class: "PricingPlans__button",
|
|
251
|
-
type: t(A)(e) ? "primary" : "outline",
|
|
252
|
-
loading: t(se)(e),
|
|
253
|
-
disabled: t(X)(e),
|
|
254
|
-
onClick: (u) => t(ne)(e)
|
|
255
|
-
}, {
|
|
256
|
-
default: v(() => [G(l(t(te)(e)), 1)]),
|
|
257
|
-
_: 2
|
|
258
|
-
}, 1032, ["type", "loading", "disabled", "onClick"]), r[1] || (r[1] = s("div", {
|
|
259
|
-
class: "PricingPlans__divider"
|
|
260
|
-
}, null, -1)), s("div", ze, [(i(!0), n(P, null, f(t(E)(e.features), (u) => (i(), n("section", {
|
|
261
|
-
key: u.title,
|
|
262
|
-
class: "PricingPlans__featureGroup"
|
|
263
|
-
}, [s("h3", null, l(u.title), 1), s("ul", Ge, [(i(!0), n(P, null, f(u.items, (z) => (i(), n("li", {
|
|
264
|
-
key: z.title
|
|
265
|
-
}, [m(t(M), {
|
|
266
|
-
icon: "mingcute:check-circle-fill",
|
|
267
|
-
class: "PricingPlans__featureIcon"
|
|
268
|
-
}), s("span", null, l(z.title), 1)]))), 128))])]))), 128))])], 2))), 128))])) : !_.value && !t(q) ? (i(), n("div", He, " 当前暂无可订阅方案 ")) : c("", !0)]),
|
|
269
|
-
_: 1
|
|
270
|
-
}, 8, ["loading"])), [[g]])]);
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
}), it = /* @__PURE__ */ R(Me, [["__scopeId", "data-v-4dedccfd"]]);
|
|
274
|
-
export {
|
|
275
|
-
tt as P,
|
|
276
|
-
it as a
|
|
277
|
-
};
|