Files

3457 lines
226 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<script>
/**
* 推介计划:开通推广身份、推广链接、奖励记录、提现与受邀用户;永久关系模式才显示受邀用户,提现能力由服务端配置控制。
*/
import "~/assets/styles/WithdrawDialog.ks0wdKEK.css";
import "~/assets/styles/recommend.C1KCHBPJ.css";
import { toDisplayString } from "vue";
import { renderList } from "vue";
import { onMounted } from "vue";
import { createStaticVNode } from "vue";
import { onScopeDispose } from "vue";
import { createBlock } from "vue";
import { ref } from "vue";
import { withCtx } from "vue";
import { createCommentVNode } from "vue";
import { computed } from "vue";
import { reactive } from "vue";
import { isRef } from "vue";
import { createElementBlock } from "vue";
import { Fragment } from "vue";
import { createElementVNode } from "vue";
import { createTextVNode } from "vue";
import { unref } from "vue";
import { defineComponent } from "vue";
import { createVNode } from "vue";
import { openBlock } from "vue";
import { withModifiers } from "vue";
import { useApi } from "~/lib/auth.js";
import button from "primevue/button";
import { t as _plugin_vue_export_helper_t } from "~/lib/_plugin-vue_export-helper.js";
import message from "primevue/message";
import inputtext from "primevue/inputtext";
import { n as product_name_n } from "~/lib/product-name.js";
import { r as dict_r } from "~/lib/dict.js";
import datatable from "primevue/datatable";
import paginator from "primevue/paginator";
import iconfield from "primevue/iconfield";
import inputicon from "primevue/inputicon";
import select from "primevue/select";
import column from "primevue/column";
import ListEmpty from "~/components/ListEmpty.vue";
import { t as useListPage_t } from "~/lib/useListPage.js";
import tag from "primevue/tag";
import skeleton from "primevue/skeleton";
import WithdrawDialog from "~/components/WithdrawDialog.vue";
import { t as useWithdrawAvailability_t } from "~/lib/useWithdrawAvailability.js";
import tabs from "primevue/tabs";
import tabpanels from "primevue/tabpanels";
import tabpanel from "primevue/tabpanel";
import tablist from "primevue/tablist";
import tab from "primevue/tab";
// 把本地日期范围转换为秒级查询边界;严格复核年月日并覆盖结束日全天,拒绝无效日期或反向区间。
function C(e, t) {
function n(e, t) {
if (!e) return ``;
if (!/^\d{4}-\d{2}-\d{2}$/.test(e)) throw Error(`请选择有效的查询日期`);
let n = new Date(`${e}T00:00:00`),
r = e.split(`-`).map(Number);
if (
!Number.isFinite(n.getTime()) ||
n.getFullYear() !== r[0] ||
n.getMonth() + 1 !== r[1] ||
n.getDate() !== r[2]
)
throw Error(`请选择有效的查询日期`);
return (t && n.setHours(23, 59, 59, 999), Math.floor(n.getTime() / 1e3));
}
let r = n(e, !1),
i = n(t, !0);
if (r !== `` && i !== `` && r > i) throw Error(`开始日期不能晚于结束日期`);
return {
start_time: r,
end_time: i,
};
}
var Se = {
class: `list-page recommend-page`,
},
Ce = {
key: 0,
class: `panel`,
},
we = {
key: 1,
class: `panel error-panel`,
},
Te = {
key: 0,
class: `panel join-card`,
},
Ee = {
class: `join-intro`,
},
De = {
class: `join-desc`,
},
Oe = {
key: 0,
},
ke = {
class: `reward-summary`,
},
Ae = {
class: `reward-balance`,
},
je = {
class: `reward-metric`,
},
Me = {
class: `stat-num`,
},
Ne = {
class: `reward-metrics`,
},
Pe = {
class: `reward-metric`,
},
Fe = {
class: `stat-num`,
},
Ie = {
class: `reward-metric`,
},
Le = {
class: `stat-num`,
},
Re = [`title`],
ze = {
class: `stat-num`,
},
Be = {
key: 0,
class: `reward-metric`,
},
Ve = {
class: `stat-num`,
},
He = {
class: `recommend-section`,
},
Ue = {
class: `panel link-block`,
},
We = {
class: `link-row`,
},
Ge = {
class: `panel custom-link-block`,
},
Ke = {
key: 2,
class: `link-loading`,
},
qe = {
key: 3,
class: `custom-link-list`,
},
Je = {
class: `custom-link-value`,
},
Ye = {
class: `custom-link-actions`,
},
Xe = {
key: 4,
class: `link-tip`,
},
Ze = {
key: 1,
class: `link-loading`,
},
Qe = {
key: 1,
class: `recommend-data-section`,
"aria-labelledby": `recommend-products-title`,
},
$e = {
class: `section-heading`,
},
et = {
class: `list-table`,
},
tt = {
key: 2,
class: `recommend-data-section`,
"aria-labelledby": `recommend-rules-title`,
},
nt = {
class: `list-table`,
},
rt = {
key: 4,
class: `list-table`,
},
it = {
class: `recommend-section`,
},
at = {
class: `list-toolbar`,
},
ot = {
key: 1,
class: `link-tip`,
},
st = {
key: 2,
class: `list-table`,
},
ct = {
key: 3,
class: `list-foot`,
},
lt = {
class: `recommend-section`,
},
ut = {
key: 1,
class: `list-table`,
},
dt = {
key: 2,
class: `list-foot`,
},
ft = {
class: `recommend-section`,
},
pt = {
class: `list-toolbar`,
},
mt = {
class: `list-toolbar-right`,
},
ht = {
key: 1,
class: `list-table`,
},
gt = {
key: 2,
class: `list-foot`,
},
_t = _plugin_vue_export_helper_t(
defineComponent({
__name: `index`,
setup(ee) {
let y = useApi(),
{ enabled: _t, load: w } = useWithdrawAvailability_t(`recommend`),
vt = ref(!0),
yt = ref(!1),
T = ref(``),
E = ref(null),
D = ref(null),
bt = computed(() => !!E.value?.url),
xt = computed(() => (E.value?.permission ?? 1) === 1),
St = computed(() => E.value?.relation_mode === `permanent`),
Ct = ref(`links`),
O = ref(!1),
k = ref(``);
// 仅在有开通权限且尚无推广地址时创建推广身份,完成后重新加载资料。
async function wt() {
if (!(O.value || !xt.value || bt.value)) {
((O.value = !0), (k.value = ``));
try {
(await y.post(`/recommend/promoter`), await A());
} catch (e) {
k.value = e instanceof Error ? e.message : `开通失败,请稍后重试`;
} finally {
O.value = !1;
}
}
}
// 推广资料为核心查询,说明内容可独立缺失;已开通时再读取链接配置与当前标签数据。
async function A() {
((vt.value = !0), (T.value = ``));
try {
let [e, t] = await Promise.all([
y.get(`/recommend/promoter`),
y.get(`/recommend/description`).catch(() => null),
]);
((E.value = e?.promoter ?? null),
(D.value = t),
(yt.value = !0),
E.value?.url && (J(), $(Ct.value)));
} catch (e) {
T.value = e instanceof Error ? e.message : `加载失败,请稍后重试`;
} finally {
vt.value = !1;
}
}
let j = ref([]),
M = ref([]),
N = ref(!1),
P = ref(``),
F = ref(``),
I = ref(``),
L = ref([]),
R = ref([]),
Tt = ref(!1),
z = ref(``),
B = ref(!1),
V = ref(null),
H = reactive({
system_url: ``,
custom_url: ``,
}),
U = ref(``),
W = ref(``),
G = ref(``),
K = ref(null),
q;
onScopeDispose(() => {
q !== void 0 && clearTimeout(q);
});
// 奖励规则、推荐商品、系统链接和自定义链接分别处理成功/失败,单项失败不抹去其余成功内容。
async function J() {
if (!N.value) {
((N.value = !0),
(P.value = ``),
(F.value = ``),
(I.value = ``),
(z.value = ``));
try {
let [e, t, n, r] = await Promise.allSettled([
y.get(`/recommend/config`),
y.get(`/recommend/products`),
y.get(`/recommend/promoter/system_url`),
y.get(`/recommend/promoter/url`),
]);
(e.status === `fulfilled`
? (j.value = e.value?.list ?? [])
: (I.value =
e.reason instanceof Error
? e.reason.message
: `奖励规则加载失败,请重试`),
t.status === `fulfilled`
? (M.value = t.value?.products ?? [])
: (F.value =
t.reason instanceof Error
? t.reason.message
: `推荐产品加载失败,请重试`),
n.status === `fulfilled`
? (L.value = Array.isArray(n.value?.system_url)
? n.value.system_url
.filter((e) => typeof e == `string` && e.trim())
.map((e) => e.trim())
: [])
: (P.value =
n.reason instanceof Error
? n.reason.message
: `推广页面加载失败,请重试`),
r.status === `fulfilled`
? (R.value = Array.isArray(r.value?.list) ? r.value.list : [])
: (z.value =
r.reason instanceof Error
? r.reason.message
: `自定义链接加载失败,请重试`),
L.value.includes(H.system_url) ||
(H.system_url = L.value[0] || ``));
} finally {
N.value = !1;
}
}
}
// 刷新自定义链接列表,与其他推广配置保持独立加载状态。
async function Et() {
((Tt.value = !0), (z.value = ``));
try {
let e = await y.get(`/recommend/promoter/url`);
R.value = Array.isArray(e?.list) ? e.list : [];
} catch (e) {
z.value =
e instanceof Error ? e.message : `自定义链接加载失败,请重试`;
} finally {
Tt.value = !1;
}
}
// 系统页面必须来自当前允许列表,自定义标识非空后才创建链接;成功后重读链接。
async function Dt() {
if (B.value || V.value !== null || N.value) return;
let e = H.system_url.trim(),
t = H.custom_url.trim();
if (!e || !L.value.includes(e)) {
z.value = `请选择当前可用的推广页面`;
return;
}
if (!t) {
z.value = `请输入自定义链接标识`;
return;
}
((B.value = !0), (z.value = ``));
try {
(await y.post(`/recommend/promoter/url`, {
system_url: e,
custom_url: t,
}),
(H.custom_url = ``),
await Et());
} catch (e) {
z.value =
e instanceof Error ? e.message : `生成自定义链接失败,请重试`;
} finally {
B.value = !1;
}
}
// 确认后按编码 ID 删除自定义链接,删除与生成操作相互锁定。
async function Ot(e) {
if (
!(V.value !== null || B.value) &&
(typeof window > `u` ||
window.confirm(`确定删除这条自定义推广链接吗?`))
) {
((V.value = e), (z.value = ``));
try {
(await y.del(
`/recommend/promoter/url/${encodeURIComponent(String(e))}`,
),
await Et());
} catch (e) {
z.value =
e instanceof Error ? e.message : `删除自定义链接失败,请重试`;
} finally {
V.value = null;
}
}
}
// 选取服务端提供的完整链接或自定义链接,不自行拼接未知推广参数。
function kt(e) {
return e.url || e.custom_url || ``;
}
// 复制推广链接并短暂显示反馈;失败提供可手动复制的原链接,计时器在离页时清除。
async function At(e, t) {
if (e) {
(clearTimeout(q), (U.value = ``), (W.value = ``), (G.value = ``));
try {
(await navigator.clipboard.writeText(e),
(U.value = t),
(q = setTimeout(() => (U.value = ``), 1500)));
} catch {
((W.value = `自动复制失败,请选中下方链接手动复制。`),
(G.value = e));
}
}
}
// 先验证商品 ID,再向服务端获取带推广归属的链接,不直接用商品详情地址替代。
async function jt(e) {
if (K.value !== null) return;
let t = Number(e.product_id);
if (!Number.isSafeInteger(t) || t <= 0) {
P.value = `商品编号无效,请重新加载推荐产品`;
return;
}
((K.value = t), (P.value = ``));
try {
let e = await y.get(`/recommend/copy_link`, {
product_id: t,
});
if (!e?.url) throw Error(`服务器未返回商品推广链接`);
await At(e.url, `p${t}`);
} catch (e) {
P.value =
e instanceof Error ? e.message : `商品推广链接获取失败,请重试`;
} finally {
K.value = null;
}
}
let Mt = {
Pending: {
label: `待结算`,
severity: `warn`,
},
Active: {
label: `已生效`,
severity: `success`,
},
Invalid: {
label: `已失效`,
severity: `danger`,
},
Frozen: {
label: `已冻结`,
severity: `info`,
},
},
Nt = ref(``),
Pt = ref(``),
Ft = ref(``),
It = ref(``),
Lt = ref(``),
Y = ref(``),
X = ref(``),
Z = ref(null),
Rt = computed(() => [
{
label: `全部商品`,
value: ``,
},
...j.value
.filter(
(e) =>
Number.isSafeInteger(e.product_id) &&
Number(e.product_id) > 0,
)
.map((e) => ({
label: product_name_n(e.name),
value: e.product_id,
})),
]),
zt = 0;
onScopeDispose(() => {
zt++;
});
let {
list: Bt,
total: Vt,
loading: Ht,
error: Ut,
page: Wt,
limit: Gt,
onPage: Kt,
reload: Q,
} = useListPage_t(`/recommend`, {
limit: 10,
immediate: !1,
params: () => ({
orderby: `id`,
sort: `desc`,
status: Nt.value,
type: Pt.value,
keywords: It.value,
product_id: Lt.value,
...C(Y.value, X.value),
}),
loader: async (e) => {
let t = ++zt;
Z.value = null;
let n = await y.get(`/recommend`, e);
return (
t === zt &&
(Z.value = {
amount: n.total_amount ?? 0,
qty: n.qty ?? 0,
}),
{
list: n.list ?? [],
count: n.count ?? 0,
}
);
},
}),
qt = [
{
label: `全部状态`,
value: ``,
},
{
label: `待结算`,
value: `Pending`,
},
{
label: `已生效`,
value: `Active`,
},
{
label: `已失效`,
value: `Invalid`,
},
{
label: `已冻结`,
value: `Frozen`,
},
],
Jt = [
{
label: `全部类型`,
value: ``,
},
{
label: `新购`,
value: `new`,
},
{
label: `续费`,
value: `renew`,
},
];
// 提交搜索关键词后由公共列表工具应用完整筛选与日期范围。
function Yt() {
((It.value = Ft.value.trim()), Q());
}
let {
list: Xt,
total: Zt,
loading: Qt,
error: $t,
page: en,
limit: tn,
onPage: nn,
reload: rn,
} = useListPage_t(`/withdraw`, {
limit: 10,
immediate: !1,
params: () => ({
source: `IdcsmartRecommend`,
}),
}),
an = {
0: {
label: `待审核`,
severity: `warn`,
},
1: {
label: `待打款`,
severity: `info`,
},
2: {
label: `审核驳回`,
severity: `danger`,
},
3: {
label: `已打款`,
severity: `success`,
},
},
on = ref(``),
{
list: sn,
total: cn,
loading: ln,
error: un,
page: dn,
limit: fn,
onPage: pn,
reload: mn,
} = useListPage_t(`/recommend/invited_users`, {
limit: 10,
immediate: !1,
params: () => ({
consumed: on.value,
}),
}),
hn = [
{
label: `全部`,
value: ``,
},
{
label: `已消费`,
value: 1,
},
{
label: `未消费`,
value: 0,
},
];
// 仅在相应标签激活时加载奖励、提现或受邀用户列表,避免全部标签一起请求。
function $(e) {
(e === `records` && Q(),
e === `withdraws` && rn(),
e === `invitees` && mn());
}
// 保存当前标签并触发对应数据加载。
function gn(e) {
((Ct.value = e), $(e));
}
let _n = computed(() =>
St.value
? [`links`, `records`, `withdraws`, `invitees`]
: [`links`, `records`, `withdraws`],
),
vn = {
links: `推介链接`,
records: `推介记录`,
withdraws: `提现记录`,
invitees: `受邀用户`,
},
yn = ref(!1);
// 提现完成后刷新推广余额资料与提现记录,金额以服务端结果为准。
async function bn() {
(await A(), rn());
}
return (
onMounted(() => {
(A(), w());
}),
// 先区分未开通与已开通状态,再按标签显示链接/奖励/提现/受邀用户;各查询失败保持独立反馈。
(n, i) => {
let o = skeleton,
l = message,
u = button,
ee = tab,
ne = tablist,
y = inputtext,
x = select,
S = column,
C = datatable,
w = ListEmpty,
q = tabpanel,
It = inputicon,
zt = iconfield,
$ = tag,
xn = paginator,
Sn = tabpanels,
Cn = tabs,
wn = WithdrawDialog;
return (
openBlock(),
createElementBlock(`div`, Se, [
(i[37] ||= createElementVNode(
`div`,
{
class: `list-head`,
},
[createElementVNode(`h2`, null, `推介计划`)],
-1,
)),
unref(vt) && !unref(yt)
? (openBlock(),
createElementBlock(`div`, Ce, [
createVNode(o, {
height: `200px`,
}),
]))
: unref(T)
? (openBlock(),
createElementBlock(`div`, we, [
createVNode(
l,
{
severity: `error`,
closable: !1,
},
{
default: withCtx(() => [
createTextVNode(toDisplayString(unref(T)), 1),
]),
_: 1,
},
),
createVNode(u, {
label: `重新加载`,
icon: `pi pi-refresh`,
severity: `secondary`,
outlined: ``,
onClick: A,
}),
]))
: (openBlock(),
createElementBlock(
Fragment,
{
key: 2,
},
[
unref(bt)
? (openBlock(),
createElementBlock(
Fragment,
{
key: 1,
},
[
createElementVNode(`div`, ke, [
createElementVNode(`div`, Ae, [
createElementVNode(`div`, je, [
(i[21] ||= createElementVNode(
`span`,
{
class: `stat-label`,
},
`可提现奖励`,
-1,
)),
createElementVNode(`span`, Me, [
(i[20] ||= createElementVNode(
`small`,
null,
`¥`,
-1,
)),
createTextVNode(
toDisplayString(
Number(
unref(E)?.withdrawable_amount ??
0,
).toFixed(2),
),
1,
),
]),
]),
unref(_t)
? (openBlock(),
createBlock(
u,
{
key: 0,
label: `提现`,
disabled:
Number(
unref(E)
?.withdrawable_amount ?? 0,
) <= 0,
onClick: (i[0] ||= (e) =>
(yn.value = !0)),
},
null,
8,
[`disabled`],
))
: createCommentVNode(``, !0),
]),
createElementVNode(`div`, Ne, [
createElementVNode(`div`, Pe, [
(i[23] ||= createElementVNode(
`span`,
{
class: `stat-label`,
},
`已提现`,
-1,
)),
createElementVNode(`span`, Fe, [
(i[22] ||= createElementVNode(
`small`,
null,
`¥`,
-1,
)),
createTextVNode(
toDisplayString(
Number(
unref(E)?.withdrawn_amount ?? 0,
).toFixed(2),
),
1,
),
]),
]),
createElementVNode(`div`, Ie, [
(i[25] ||= createElementVNode(
`span`,
{
class: `stat-label`,
},
`待结算`,
-1,
)),
createElementVNode(`span`, Le, [
(i[24] ||= createElementVNode(
`small`,
null,
`¥`,
-1,
)),
createTextVNode(
toDisplayString(
Number(
unref(E)?.pending_amount ?? 0,
).toFixed(2),
),
1,
),
]),
]),
createElementVNode(
`div`,
{
class: `reward-metric`,
title: `冻结金额 ¥${Number(unref(E)?.frozen_amount ?? 0).toFixed(2)}`,
},
[
(i[27] ||= createElementVNode(
`span`,
{
class: `stat-label`,
},
`已生效`,
-1,
)),
createElementVNode(`span`, ze, [
(i[26] ||= createElementVNode(
`small`,
null,
`¥`,
-1,
)),
createTextVNode(
toDisplayString(
Number(
unref(E)?.active_amount ?? 0,
).toFixed(2),
),
1,
),
]),
],
8,
Re,
),
unref(St)
? (openBlock(),
createElementBlock(`div`, Be, [
(i[28] ||= createElementVNode(
`span`,
{
class: `stat-label`,
},
`邀请人数`,
-1,
)),
createElementVNode(
`span`,
Ve,
toDisplayString(
unref(E)?.invitee_count ?? 0,
),
1,
),
]))
: createCommentVNode(``, !0),
]),
]),
createVNode(
Cn,
{
class: `recommend-tabs`,
value: unref(Ct),
"onUpdate:value": (i[14] ||= (e) =>
gn(String(e))),
},
{
default: withCtx(() => [
createVNode(ne, null, {
default: withCtx(() => [
(openBlock(!0),
createElementBlock(
Fragment,
null,
renderList(
unref(_n),
(t) => (
openBlock(),
createBlock(
ee,
{
key: t,
value: t,
},
{
default: withCtx(() => [
createTextVNode(
toDisplayString(
vn[t],
),
1,
),
]),
_: 2,
},
1032,
[`value`],
)
),
),
128,
)),
]),
_: 1,
}),
createVNode(Sn, null, {
default: withCtx(() => [
createVNode(
q,
{
value: `links`,
},
{
default: withCtx(() => [
createElementVNode(
`div`,
He,
[
createElementVNode(
`div`,
Ue,
[
(i[29] ||=
createElementVNode(
`label`,
{
class: `link-heading`,
for: `recommend-link`,
},
`我的推介链接`,
-1,
)),
createElementVNode(
`div`,
We,
[
createVNode(
y,
{
id: `recommend-link`,
modelValue:
unref(E)
?.url ||
``,
readonly: ``,
class: `link-text`,
onFocus:
(i[1] ||= (
e,
) =>
e.target.select()),
},
null,
8,
[`modelValue`],
),
createVNode(
u,
{
label:
unref(U) ===
`main`
? `已复制`
: `复制链接`,
icon:
unref(U) ===
`main`
? `pi pi-check`
: `pi pi-copy`,
onClick:
(i[2] ||= (
e,
) =>
At(
unref(E)
?.url ||
``,
`main`,
)),
},
null,
8,
[
`label`,
`icon`,
],
),
],
),
(i[30] ||=
createElementVNode(
`p`,
{
class: `link-tip`,
},
` 分享该链接可记录推介来源,奖励按推介规则和实际订单结算。 `,
-1,
)),
unref(W)
? (openBlock(),
createBlock(
l,
{
key: 0,
severity: `warn`,
closable: !1,
},
{
default:
withCtx(
() => [
createTextVNode(
toDisplayString(
unref(
W,
),
),
1,
),
],
),
_: 1,
},
))
: createCommentVNode(
``,
!0,
),
unref(G)
? (openBlock(),
createBlock(
y,
{
key: 1,
"model-value":
unref(G),
"aria-label": `手动复制推介链接`,
readonly: ``,
onFocus:
(i[3] ||= (
e,
) =>
e.target.select()),
},
null,
8,
[`model-value`],
))
: createCommentVNode(
``,
!0,
),
],
),
createElementVNode(
`div`,
Ge,
[
(i[33] ||=
createElementVNode(
`div`,
{
class: `section-header`,
},
[
createElementVNode(
`h3`,
{
class: `link-title`,
},
`自定义推广链接`,
),
createElementVNode(
`p`,
{
class: `link-tip`,
},
`为指定推广页面生成专属入口`,
),
],
-1,
)),
!unref(N) &&
!unref(P) &&
!unref(L).length
? (openBlock(),
createBlock(
l,
{
key: 0,
severity: `info`,
closable: !1,
},
{
default:
withCtx(
() => [
...(i[31] ||=
[
createTextVNode(
`暂未配置推广页面,当前无法生成自定义推广链接。你仍可分享上方推介链接。`,
-1,
),
]),
],
),
_: 1,
},
))
: createCommentVNode(
``,
!0,
),
createElementVNode(
`form`,
{
class: `custom-link-form`,
onSubmit:
withModifiers(
Dt,
[`prevent`],
),
},
[
createVNode(
x,
{
modelValue:
unref(H)
.system_url,
"onUpdate:modelValue":
(i[4] ||= (
e,
) =>
(unref(
H,
).system_url =
e)),
options:
unref(L),
placeholder: `选择推广页面`,
"aria-label": `选择推广页面`,
disabled:
unref(B) ||
unref(N) ||
!unref(L)
.length,
},
null,
8,
[
`modelValue`,
`options`,
`disabled`,
],
),
createVNode(
y,
{
modelValue:
unref(H)
.custom_url,
"onUpdate:modelValue":
(i[5] ||= (
e,
) =>
(unref(
H,
).custom_url =
e)),
"aria-label": `自定义链接标识`,
placeholder: `输入自定义链接标识`,
disabled:
unref(B) ||
unref(N) ||
!unref(L)
.length,
},
null,
8,
[
`modelValue`,
`disabled`,
],
),
createVNode(
u,
{
type: `submit`,
label: `生成链接`,
icon: `pi pi-plus`,
loading:
unref(B),
disabled:
unref(B) ||
unref(N) ||
!unref(L)
.length,
},
null,
8,
[
`loading`,
`disabled`,
],
),
],
32,
),
unref(z)
? (openBlock(),
createBlock(
l,
{
key: 1,
severity: `error`,
closable: !1,
},
{
default:
withCtx(
() => [
createTextVNode(
toDisplayString(
unref(
z,
),
) +
` `,
1,
),
createVNode(
u,
{
label: `重试加载`,
text: ``,
size: `small`,
onClick:
Et,
},
),
],
),
_: 1,
},
))
: createCommentVNode(
``,
!0,
),
unref(Tt)
? (openBlock(),
createElementBlock(
`div`,
Ke,
[
...(i[32] ||=
[
createElementVNode(
`i`,
{
class: `pi pi-spin pi-spinner`,
},
null,
-1,
),
createTextVNode(
` 加载中…`,
-1,
),
]),
],
))
: unref(R).length
? (openBlock(),
createElementBlock(
`div`,
qe,
[
(openBlock(
!0,
),
createElementBlock(
Fragment,
null,
renderList(
unref(
R,
),
(t) => (
openBlock(),
createElementBlock(
`div`,
{
key: String(
t.id,
),
class: `custom-link-row`,
},
[
createElementVNode(
`div`,
Je,
[
createElementVNode(
`strong`,
null,
toDisplayString(
t.system_url ||
`推广页面`,
),
1,
),
createVNode(
y,
{
"model-value":
kt(
t,
),
readonly: ``,
"aria-label": `自定义推广链接 ${t.id}`,
onFocus:
(i[6] ||=
(
e,
) =>
e.target.select()),
},
null,
8,
[
`model-value`,
`aria-label`,
],
),
],
),
createElementVNode(
`div`,
Ye,
[
createVNode(
u,
{
label:
unref(
U,
) ===
`custom-${t.id}`
? `已复制`
: `复制`,
icon: `pi pi-copy`,
severity: `secondary`,
text: ``,
disabled:
!kt(
t,
),
onClick:
(
e,
) =>
At(
kt(
t,
),
`custom-${t.id}`,
),
},
null,
8,
[
`label`,
`disabled`,
`onClick`,
],
),
createVNode(
u,
{
label: `删除`,
icon: `pi pi-trash`,
severity: `danger`,
text: ``,
loading:
unref(
V,
) ===
t.id,
disabled:
unref(
B,
) ||
unref(
V,
) !==
null,
onClick:
(
e,
) =>
Ot(
t.id,
),
},
null,
8,
[
`loading`,
`disabled`,
`onClick`,
],
),
],
),
],
)
),
),
128,
)),
],
))
: (openBlock(),
createElementBlock(
`p`,
Xe,
`还没有自定义推广链接。`,
)),
],
),
unref(P)
? (openBlock(),
createBlock(
l,
{
key: 0,
severity: `error`,
closable: !1,
},
{
default: withCtx(
() => [
createTextVNode(
toDisplayString(
unref(P),
) + ` `,
1,
),
createVNode(
u,
{
label: `重新加载推荐内容`,
text: ``,
size: `small`,
onClick:
J,
},
),
],
),
_: 1,
},
))
: createCommentVNode(
``,
!0,
),
unref(N)
? (openBlock(),
createElementBlock(
`div`,
Ze,
[
...(i[34] ||= [
createElementVNode(
`i`,
{
class: `pi pi-spin pi-spinner`,
},
null,
-1,
),
createTextVNode(
` 加载中…`,
-1,
),
]),
],
))
: (openBlock(),
createElementBlock(
Fragment,
{
key: 2,
},
[
unref(F)
? (openBlock(),
createBlock(
l,
{
key: 0,
severity: `error`,
closable:
!1,
},
{
default:
withCtx(
() => [
createTextVNode(
toDisplayString(
unref(
F,
),
) +
` `,
1,
),
createVNode(
u,
{
label: `重新加载推荐产品`,
text: ``,
size: `small`,
onClick:
J,
},
),
],
),
_: 1,
},
))
: createCommentVNode(
``,
!0,
),
unref(M).length
? (openBlock(),
createElementBlock(
`section`,
Qe,
[
createElementVNode(
`div`,
$e,
[
(i[35] ||=
createElementVNode(
`h3`,
{
id: `recommend-products-title`,
class: `link-title`,
},
`建议推介产品`,
-1,
)),
createElementVNode(
`span`,
null,
toDisplayString(
unref(
M,
)
.length,
) +
` 款产品`,
1,
),
],
),
createElementVNode(
`div`,
et,
[
createVNode(
C,
{
value:
unref(
M,
),
scrollable: ``,
},
{
default:
withCtx(
() => [
createVNode(
S,
{
header: `商品`,
style:
{
"min-width": `220px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
unref(
product_name_n,
)(
t.name,
),
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `奖励比例`,
style:
{
width: `120px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
t.ratio,
) +
`%`,
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `操作`,
style:
{
width: `130px`,
},
},
{
body: withCtx(
({
data: e,
}) => [
createVNode(
u,
{
label:
unref(
U,
) ===
`p${e.product_id}`
? `已复制`
: `复制链接`,
loading:
unref(
K,
) ===
e.product_id,
disabled:
unref(
K,
) !==
null,
size: `small`,
severity: `secondary`,
text: ``,
onClick:
(
t,
) =>
jt(
e,
),
},
null,
8,
[
`label`,
`loading`,
`disabled`,
`onClick`,
],
),
],
),
_: 1,
},
),
],
),
_: 1,
},
8,
[
`value`,
],
),
],
),
],
))
: createCommentVNode(
``,
!0,
),
unref(j).length
? (openBlock(),
createElementBlock(
`section`,
tt,
[
(i[36] ||=
createElementVNode(
`div`,
{
class: `section-header`,
},
[
createElementVNode(
`h3`,
{
id: `recommend-rules-title`,
class: `link-title`,
},
`奖励规则`,
),
createElementVNode(
`p`,
{
class: `link-tip`,
},
`最低金额按同一订单相同商品的购买合计计算,奖励以实际结算为准`,
),
],
-1,
)),
createElementVNode(
`div`,
nt,
[
createVNode(
C,
{
value:
unref(
j,
),
scrollable: ``,
},
{
default:
withCtx(
() => [
createVNode(
S,
{
header: `商品/套餐`,
style:
{
"min-width": `200px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
unref(
product_name_n,
)(
t.name,
),
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `首购比例`,
style:
{
width: `110px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
t.ratio ??
0,
) +
`%`,
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `首购最低金额`,
style:
{
width: `130px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
`¥` +
toDisplayString(
t.amount ??
`0.00`,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `续费比例`,
style:
{
width: `110px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
t.renew_ratio ??
0,
) +
`%`,
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `续费最低金额`,
style:
{
width: `130px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
`¥` +
toDisplayString(
t.renew_amount ??
`0.00`,
),
1,
),
],
),
_: 1,
},
),
],
),
_: 1,
},
8,
[
`value`,
],
),
],
),
],
))
: createCommentVNode(
``,
!0,
),
unref(I)
? (openBlock(),
createBlock(
l,
{
key: 3,
severity: `error`,
closable:
!1,
},
{
default:
withCtx(
() => [
createTextVNode(
toDisplayString(
unref(
I,
),
) +
` `,
1,
),
createVNode(
u,
{
label: `重新加载奖励规则`,
text: ``,
size: `small`,
onClick:
J,
},
),
],
),
_: 1,
},
))
: createCommentVNode(
``,
!0,
),
!unref(M)
.length &&
!unref(j).length
? (openBlock(),
createElementBlock(
`div`,
rt,
[
createVNode(
w,
{
icon: `pi pi-share-alt`,
title: `暂无可推介产品`,
description: `你仍可分享上方专属链接,新的推介活动会显示在这里。`,
},
),
],
))
: createCommentVNode(
``,
!0,
),
],
64,
)),
],
),
]),
_: 1,
},
),
createVNode(
q,
{
value: `records`,
},
{
default: withCtx(() => [
createElementVNode(
`div`,
it,
[
createElementVNode(
`div`,
at,
[
createElementVNode(
`form`,
{
class: `list-toolbar-right`,
onSubmit:
withModifiers(
Yt,
[`prevent`],
),
},
[
createVNode(
zt,
{
class: `list-search`,
},
{
default:
withCtx(
() => [
createVNode(
It,
{
class: `pi pi-search`,
},
),
createVNode(
y,
{
modelValue:
unref(
Ft,
),
"onUpdate:modelValue":
(i[7] ||=
(
e,
) =>
isRef(
Ft,
)
? (Ft.value =
e)
: null),
placeholder: `搜索受邀人或商品`,
"aria-label": `搜索推介记录`,
},
null,
8,
[
`modelValue`,
],
),
],
),
_: 1,
},
),
createVNode(
x,
{
modelValue:
unref(Nt),
"onUpdate:modelValue":
(i[8] ||= (
e,
) =>
isRef(Nt)
? (Nt.value =
e)
: null),
class: `list-select`,
"aria-label": `推介状态`,
options: qt,
optionLabel: `label`,
optionValue: `value`,
onChange:
unref(Q),
},
null,
8,
[
`modelValue`,
`onChange`,
],
),
createVNode(
x,
{
modelValue:
unref(Pt),
"onUpdate:modelValue":
(i[9] ||= (
e,
) =>
isRef(Pt)
? (Pt.value =
e)
: null),
class: `list-select`,
"aria-label": `推介类型`,
options: Jt,
optionLabel: `label`,
optionValue: `value`,
onChange:
unref(Q),
},
null,
8,
[
`modelValue`,
`onChange`,
],
),
createVNode(
x,
{
modelValue:
unref(Lt),
"onUpdate:modelValue":
(i[10] ||= (
e,
) =>
isRef(Lt)
? (Lt.value =
e)
: null),
class: `list-select`,
"aria-label": `推介商品`,
options:
unref(Rt),
"option-label": `label`,
"option-value": `value`,
onChange:
unref(Q),
},
null,
8,
[
`modelValue`,
`options`,
`onChange`,
],
),
createVNode(
y,
{
modelValue:
unref(Y),
"onUpdate:modelValue":
(i[11] ||= (
e,
) =>
isRef(Y)
? (Y.value =
e)
: null),
type: `date`,
"aria-label": `推介开始日期`,
max:
unref(X) ||
void 0,
onChange:
unref(Q),
},
null,
8,
[
`modelValue`,
`max`,
`onChange`,
],
),
createVNode(
y,
{
modelValue:
unref(X),
"onUpdate:modelValue":
(i[12] ||= (
e,
) =>
isRef(X)
? (X.value =
e)
: null),
type: `date`,
"aria-label": `推介结束日期`,
min:
unref(Y) ||
void 0,
onChange:
unref(Q),
},
null,
8,
[
`modelValue`,
`min`,
`onChange`,
],
),
createVNode(u, {
type: `submit`,
label: `搜索`,
severity: `secondary`,
outlined: ``,
}),
],
32,
),
],
),
unref(Ut)
? (openBlock(),
createBlock(
l,
{
key: 0,
severity: `error`,
closable: !1,
},
{
default: withCtx(
() => [
createTextVNode(
toDisplayString(
unref(Ut),
) + ` `,
1,
),
createVNode(
u,
{
label: `重新加载推介记录`,
size: `small`,
severity: `secondary`,
text: ``,
onClick:
unref(
Q,
),
},
null,
8,
[`onClick`],
),
],
),
_: 1,
},
))
: createCommentVNode(
``,
!0,
),
!unref(Ut) &&
!unref(Ht) &&
unref(Z)
? (openBlock(),
createElementBlock(
`p`,
ot,
`当前筛选:奖励合计 ¥` +
toDisplayString(
Number(
unref(Z)
.amount,
).toFixed(2),
) +
`,商品数量 ` +
toDisplayString(
unref(Z).qty,
) +
`。`,
1,
))
: createCommentVNode(
``,
!0,
),
unref(Ut)
? createCommentVNode(
``,
!0,
)
: (openBlock(),
createElementBlock(
`div`,
st,
[
createVNode(
C,
{
value:
unref(Bt),
loading:
unref(Ht),
scrollable: ``,
},
{
empty:
withCtx(
() => [
createVNode(
w,
{
icon: `pi pi-share-alt`,
title: `还没有推介记录`,
description: `好友通过你的链接注册并购买后会出现在这里`,
},
),
],
),
default:
withCtx(
() => [
createVNode(
S,
{
header: `受邀人`,
style:
{
"min-width": `140px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
t.username ||
`—`,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `商品`,
style:
{
"min-width": `200px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
unref(
product_name_n,
)(
t.product_name,
) ||
`—`,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `数量`,
style:
{
width: `80px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
t.qty ??
1,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `类型`,
style:
{
width: `90px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
t.type ===
`new`
? `新购`
: t.type ===
`renew`
? `续费`
: `—`,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `奖励金额`,
style:
{
width: `120px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
`¥` +
toDisplayString(
t.awards_amount ??
`0.00`,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `状态`,
style:
{
width: `110px`,
},
},
{
body: withCtx(
({
data: e,
}) => [
createVNode(
$,
{
value:
Mt[
e.status ??
``
]
?.label ||
e.status ||
`—`,
severity:
Mt[
e.status ??
``
]
?.severity ||
`secondary`,
},
null,
8,
[
`value`,
`severity`,
],
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `失效原因`,
style:
{
"min-width": `140px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
t.invalid_reason ||
`—`,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `时间`,
style:
{
"min-width": `160px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
(`formatTime` in
n
? n.formatTime
: unref(
dict_r,
))(
t.create_time,
),
),
1,
),
],
),
_: 1,
},
),
],
),
_: 1,
},
8,
[
`value`,
`loading`,
],
),
],
)),
unref(Vt) > 0
? (openBlock(),
createElementBlock(
`div`,
ct,
[
createVNode(
xn,
{
rows: unref(
Gt,
),
totalRecords:
unref(Vt),
first:
(unref(Wt) -
1) *
unref(Gt),
rowsPerPageOptions:
[
10, 20,
50,
],
onPage:
unref(Kt),
},
null,
8,
[
`rows`,
`totalRecords`,
`first`,
`onPage`,
],
),
],
))
: createCommentVNode(
``,
!0,
),
],
),
]),
_: 1,
},
),
createVNode(
q,
{
value: `withdraws`,
},
{
default: withCtx(() => [
createElementVNode(
`div`,
lt,
[
unref($t)
? (openBlock(),
createBlock(
l,
{
key: 0,
severity: `error`,
closable: !1,
},
{
default: withCtx(
() => [
createTextVNode(
toDisplayString(
unref($t),
) + ` `,
1,
),
createVNode(
u,
{
label: `重新加载提现记录`,
size: `small`,
severity: `secondary`,
text: ``,
onClick:
unref(
rn,
),
},
null,
8,
[`onClick`],
),
],
),
_: 1,
},
))
: (openBlock(),
createElementBlock(
`div`,
ut,
[
createVNode(
C,
{
value:
unref(Xt),
loading:
unref(Qt),
scrollable: ``,
},
{
empty:
withCtx(
() => [
createVNode(
w,
{
icon: `pi pi-wallet`,
title: `还没有提现记录`,
description: `奖励提现的申请与打款进度会显示在这里`,
},
),
],
),
default:
withCtx(
() => [
createVNode(
S,
{
header: `提现方式`,
style:
{
width: `130px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
t.method ||
(t.addon_idcsmart_withdraw_method_id ===
0
? `余额`
: `—`),
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `金额`,
style:
{
width: `120px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
`¥` +
toDisplayString(
t.amount,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `手续费`,
style:
{
width: `110px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
`¥` +
toDisplayString(
t.fee,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `到账金额`,
style:
{
width: `120px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
`¥` +
toDisplayString(
t.withdraw_amount,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `状态`,
style:
{
width: `110px`,
},
},
{
body: withCtx(
({
data: e,
}) => [
createVNode(
$,
{
value:
an[
e
.status
]
?.label ||
`—`,
severity:
an[
e
.status
]
?.severity ||
`secondary`,
},
null,
8,
[
`value`,
`severity`,
],
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `备注`,
style:
{
"min-width": `140px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
t.reason ||
`—`,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `时间`,
style:
{
"min-width": `160px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
(`formatTime` in
n
? n.formatTime
: unref(
dict_r,
))(
t.create_time,
),
),
1,
),
],
),
_: 1,
},
),
],
),
_: 1,
},
8,
[
`value`,
`loading`,
],
),
],
)),
unref(Zt) > 0
? (openBlock(),
createElementBlock(
`div`,
dt,
[
createVNode(
xn,
{
rows: unref(
tn,
),
totalRecords:
unref(Zt),
first:
(unref(en) -
1) *
unref(tn),
rowsPerPageOptions:
[
10, 20,
50,
],
onPage:
unref(nn),
},
null,
8,
[
`rows`,
`totalRecords`,
`first`,
`onPage`,
],
),
],
))
: createCommentVNode(
``,
!0,
),
],
),
]),
_: 1,
},
),
createVNode(
q,
{
value: `invitees`,
},
{
default: withCtx(() => [
createElementVNode(
`div`,
ft,
[
createElementVNode(
`div`,
pt,
[
createElementVNode(
`div`,
mt,
[
createVNode(
x,
{
modelValue:
unref(on),
"onUpdate:modelValue":
(i[13] ||= (
e,
) =>
isRef(on)
? (on.value =
e)
: null),
class: `list-select`,
"aria-label": `受邀用户消费状态`,
options: hn,
optionLabel: `label`,
optionValue: `value`,
onChange:
unref(mn),
},
null,
8,
[
`modelValue`,
`onChange`,
],
),
],
),
],
),
unref(un)
? (openBlock(),
createBlock(
l,
{
key: 0,
severity: `error`,
closable: !1,
},
{
default: withCtx(
() => [
createTextVNode(
toDisplayString(
unref(un),
) + ` `,
1,
),
createVNode(
u,
{
label: `重新加载受邀用户`,
size: `small`,
severity: `secondary`,
text: ``,
onClick:
unref(
mn,
),
},
null,
8,
[`onClick`],
),
],
),
_: 1,
},
))
: (openBlock(),
createElementBlock(
`div`,
ht,
[
createVNode(
C,
{
value:
unref(sn),
loading:
unref(ln),
scrollable: ``,
},
{
empty:
withCtx(
() => [
createVNode(
w,
{
icon: `pi pi-users`,
title: `还没有受邀用户`,
description: `通过你的链接注册的用户会出现在这里`,
},
),
],
),
default:
withCtx(
() => [
createVNode(
S,
{
header: `用户`,
style:
{
"min-width": `160px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
t.username ||
`—`,
),
1,
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `是否消费`,
style:
{
width: `120px`,
},
},
{
body: withCtx(
({
data: e,
}) => [
createVNode(
$,
{
value:
e.consumed
? `已消费`
: `未消费`,
severity:
e.consumed
? `success`
: `secondary`,
},
null,
8,
[
`value`,
`severity`,
],
),
],
),
_: 1,
},
),
createVNode(
S,
{
header: `绑定时间`,
style:
{
"min-width": `160px`,
},
},
{
body: withCtx(
({
data: t,
}) => [
createTextVNode(
toDisplayString(
(`formatTime` in
n
? n.formatTime
: unref(
dict_r,
))(
t.create_time,
),
),
1,
),
],
),
_: 1,
},
),
],
),
_: 1,
},
8,
[
`value`,
`loading`,
],
),
],
)),
unref(cn) > 0
? (openBlock(),
createElementBlock(
`div`,
gt,
[
createVNode(
xn,
{
rows: unref(
fn,
),
totalRecords:
unref(cn),
first:
(unref(dn) -
1) *
unref(fn),
rowsPerPageOptions:
[
10, 20,
50,
],
onPage:
unref(pn),
},
null,
8,
[
`rows`,
`totalRecords`,
`first`,
`onPage`,
],
),
],
))
: createCommentVNode(
``,
!0,
),
],
),
]),
_: 1,
},
),
]),
_: 1,
}),
]),
_: 1,
},
8,
[`value`],
),
],
64,
))
: (openBlock(),
createElementBlock(`div`, Te, [
createElementVNode(`div`, Ee, [
(i[18] ||= createElementVNode(
`h3`,
null,
`开通推介计划`,
-1,
)),
createElementVNode(`p`, De, [
(i[16] ||= createTextVNode(
` 开通推广员后,通过你的专属链接注册并购买的用户,你可获得奖励`,
-1,
)),
unref(D)
? (openBlock(),
createElementBlock(
`b`,
Oe,
`(最高 ` +
toDisplayString(
unref(D).max_ratio,
) +
`%)`,
1,
))
: createCommentVNode(``, !0),
createTextVNode(
`;已累计发放奖励 ¥` +
toDisplayString(
unref(D)?.awards ?? `0.00`,
) +
`。 `,
1,
),
]),
unref(xt)
? createCommentVNode(``, !0)
: (openBlock(),
createBlock(
l,
{
key: 0,
severity: `warn`,
closable: !1,
},
{
default: withCtx(() => [
...(i[17] ||= [
createTextVNode(
` 管理员尚未开放推介计划申请,如有需要请联系客服。 `,
-1,
),
]),
]),
_: 1,
},
)),
unref(k)
? (openBlock(),
createBlock(
l,
{
key: 1,
severity: `error`,
closable: !1,
},
{
default: withCtx(() => [
createTextVNode(
toDisplayString(unref(k)),
1,
),
]),
_: 1,
},
))
: createCommentVNode(``, !0),
createVNode(
u,
{
label: `申请成为推广员`,
disabled: !unref(xt),
loading: unref(O),
onClick: wt,
},
null,
8,
[`disabled`, `loading`],
),
]),
(i[19] ||= createStaticVNode(
`<ol class="join-steps" aria-label="推介流程" data-v-78278278><li data-v-78278278><span class="step-number" data-v-78278278>1</span><div data-v-78278278><h4 data-v-78278278>开通推介计划</h4><p data-v-78278278>申请成为推广员,获取专属推介链接。</p></div></li><li data-v-78278278><span class="step-number" data-v-78278278>2</span><div data-v-78278278><h4 data-v-78278278>分享给好友</h4><p data-v-78278278>好友通过链接注册并购买参与活动的产品。</p></div></li><li data-v-78278278><span class="step-number" data-v-78278278>3</span><div data-v-78278278><h4 data-v-78278278>查看奖励与提现</h4><p data-v-78278278>奖励按推介规则结算,可在这里查询进度。</p></div></li></ol>`,
1,
)),
])),
],
64,
)),
createVNode(
wn,
{
modelValue: unref(yn),
"onUpdate:modelValue": (i[15] ||= (e) =>
isRef(yn) ? (yn.value = e) : null),
source: `IdcsmartRecommend`,
title: `奖励提现`,
available: unref(E)?.withdrawable_amount,
onSuccess: bn,
},
null,
8,
[`modelValue`, `available`],
),
])
);
}
);
},
}),
[[`__scopeId`, `data-v-78278278`]],
);
export {};
export default _t;
</script>