first commit
This commit is contained in:
commit
db5762abd4
687 files changed
+171307
No files matched your search
@@ -0,0 +1,379 @@
|
||||
<script>
|
||||
import "~/assets/styles/NotificationPreferences.DcH8Noxd.css";
|
||||
import { toDisplayString } from "vue";
|
||||
import { onMounted } from "vue";
|
||||
import { useId } from "vue";
|
||||
import { onBeforeUnmount } from "vue";
|
||||
import { createBlock } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { withCtx } from "vue";
|
||||
import { createCommentVNode } from "vue";
|
||||
import { reactive } from "vue";
|
||||
import { createElementBlock } 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 { 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 toggleswitch from "primevue/toggleswitch";
|
||||
var x = [`aria-labelledby`],
|
||||
S = {
|
||||
class: `preferences-heading`,
|
||||
},
|
||||
C = [`id`],
|
||||
w = [`id`],
|
||||
T = [`aria-busy`],
|
||||
E = {
|
||||
class: `preference-row`,
|
||||
},
|
||||
D = {
|
||||
class: `preference-copy`,
|
||||
},
|
||||
O = [`for`],
|
||||
k = [`id`],
|
||||
A = {
|
||||
class: `preference-row`,
|
||||
},
|
||||
j = {
|
||||
class: `preference-copy`,
|
||||
},
|
||||
M = [`for`],
|
||||
N = [`id`],
|
||||
P = {
|
||||
key: 2,
|
||||
class: `preferences-status`,
|
||||
role: `status`,
|
||||
},
|
||||
F = Object.assign(
|
||||
_plugin_vue_export_helper_t(
|
||||
defineComponent({
|
||||
__name: `NotificationPreferences`,
|
||||
setup(p) {
|
||||
let v = useApi(),
|
||||
F = useId(),
|
||||
I = reactive({
|
||||
email_enabled: !1,
|
||||
sms_enabled: !1,
|
||||
email_available: !1,
|
||||
sms_available: !1,
|
||||
}),
|
||||
L = ref(!1),
|
||||
R = ref(!1),
|
||||
z = ref(!1),
|
||||
B = ref(``),
|
||||
V = ref(``),
|
||||
H = ref(``),
|
||||
U = 0,
|
||||
W = !1;
|
||||
function G(e) {
|
||||
let t = [
|
||||
`email_enabled`,
|
||||
`sms_enabled`,
|
||||
`email_available`,
|
||||
`sms_available`,
|
||||
];
|
||||
if (!e || t.some((t) => typeof e[t] != `boolean`))
|
||||
throw Error(`提醒设置响应异常,请重试`);
|
||||
for (let n of t) I[n] = e[n];
|
||||
}
|
||||
async function K() {
|
||||
if (W || R.value || z.value) return;
|
||||
let e = ++U;
|
||||
((R.value = !0), (B.value = ``));
|
||||
try {
|
||||
let t = await v.get(`/account/notification-preferences`);
|
||||
if (W || e !== U) return;
|
||||
(G(t), (L.value = !0));
|
||||
} catch (t) {
|
||||
if (W || e !== U) return;
|
||||
((B.value =
|
||||
t instanceof Error ? t.message : `提醒设置加载失败,请重试`),
|
||||
(L.value = !1));
|
||||
} finally {
|
||||
!W && e === U && (R.value = !1);
|
||||
}
|
||||
}
|
||||
async function q(e, t) {
|
||||
let n = e === `email_enabled` ? I.email_available : I.sms_available;
|
||||
if (
|
||||
W ||
|
||||
!L.value ||
|
||||
R.value ||
|
||||
z.value ||
|
||||
typeof t != `boolean` ||
|
||||
I[e] === t ||
|
||||
(t && !n)
|
||||
)
|
||||
return;
|
||||
let r = ++U,
|
||||
i = I[e];
|
||||
((I[e] = t), (z.value = !0), (V.value = ``), (H.value = ``));
|
||||
try {
|
||||
let n = await v.put(`/account/notification-preferences`, {
|
||||
[e]: t,
|
||||
});
|
||||
if (W || r !== U) return;
|
||||
(G(n), (H.value = `提醒设置已保存`));
|
||||
} catch (t) {
|
||||
if (W || r !== U) return;
|
||||
((I[e] = i),
|
||||
(V.value =
|
||||
t instanceof Error ? t.message : `保存失败,请重试`));
|
||||
} finally {
|
||||
!W && r === U && (z.value = !1);
|
||||
}
|
||||
}
|
||||
return (
|
||||
onMounted(K),
|
||||
onBeforeUnmount(() => {
|
||||
((W = !0), U++);
|
||||
}),
|
||||
(t, n) => {
|
||||
let r = button,
|
||||
a = message,
|
||||
c = toggleswitch;
|
||||
return (
|
||||
openBlock(),
|
||||
createElementBlock(
|
||||
`section`,
|
||||
{
|
||||
class: `notification-preferences`,
|
||||
"aria-labelledby": `${unref(F)}-title`,
|
||||
},
|
||||
[
|
||||
createElementVNode(`div`, S, [
|
||||
createElementVNode(`div`, null, [
|
||||
createElementVNode(
|
||||
`h3`,
|
||||
{
|
||||
id: `${unref(F)}-title`,
|
||||
},
|
||||
`提醒设置`,
|
||||
8,
|
||||
C,
|
||||
),
|
||||
createElementVNode(
|
||||
`p`,
|
||||
{
|
||||
id: `${unref(F)}-description`,
|
||||
},
|
||||
`关闭后不接收普通提醒,站内消息和验证码不受影响。`,
|
||||
8,
|
||||
w,
|
||||
),
|
||||
]),
|
||||
unref(B)
|
||||
? (openBlock(),
|
||||
createBlock(
|
||||
r,
|
||||
{
|
||||
key: 0,
|
||||
label: `重新加载`,
|
||||
icon: `pi pi-refresh`,
|
||||
size: `small`,
|
||||
severity: `secondary`,
|
||||
outlined: ``,
|
||||
loading: unref(R),
|
||||
onClick: K,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`loading`],
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
]),
|
||||
unref(B)
|
||||
? (openBlock(),
|
||||
createBlock(
|
||||
a,
|
||||
{
|
||||
key: 0,
|
||||
severity: `error`,
|
||||
closable: !1,
|
||||
class: `preferences-message`,
|
||||
},
|
||||
{
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(B)), 1),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
unref(V)
|
||||
? (openBlock(),
|
||||
createBlock(
|
||||
a,
|
||||
{
|
||||
key: 1,
|
||||
severity: `error`,
|
||||
closable: !1,
|
||||
class: `preferences-message`,
|
||||
},
|
||||
{
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(V)), 1),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
createElementVNode(
|
||||
`div`,
|
||||
{
|
||||
class: `preference-rows`,
|
||||
"aria-busy": unref(R) || unref(z),
|
||||
},
|
||||
[
|
||||
createElementVNode(`div`, E, [
|
||||
createElementVNode(`div`, D, [
|
||||
createElementVNode(
|
||||
`label`,
|
||||
{
|
||||
for: `${unref(F)}-email`,
|
||||
class: `preference-label`,
|
||||
},
|
||||
`邮箱提醒`,
|
||||
8,
|
||||
O,
|
||||
),
|
||||
unref(L) && !unref(I).email_available
|
||||
? (openBlock(),
|
||||
createElementBlock(
|
||||
`small`,
|
||||
{
|
||||
key: 0,
|
||||
id: `${unref(F)}-email-hint`,
|
||||
class: `preference-hint`,
|
||||
},
|
||||
`当前不可用,请检查绑定信息或联系管理员`,
|
||||
8,
|
||||
k,
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
]),
|
||||
createVNode(
|
||||
c,
|
||||
{
|
||||
"input-id": `${unref(F)}-email`,
|
||||
modelValue: unref(I).email_enabled,
|
||||
disabled:
|
||||
!unref(L) ||
|
||||
unref(R) ||
|
||||
unref(z) ||
|
||||
(!unref(I).email_available &&
|
||||
!unref(I).email_enabled),
|
||||
"aria-label": `邮箱提醒`,
|
||||
pt: {
|
||||
input: {
|
||||
"aria-describedby":
|
||||
unref(L) && !unref(I).email_available
|
||||
? `${unref(F)}-description ${unref(F)}-email-hint`
|
||||
: `${unref(F)}-description`,
|
||||
},
|
||||
},
|
||||
"onUpdate:modelValue": (n[0] ||= (e) =>
|
||||
q(`email_enabled`, e)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`input-id`, `modelValue`, `disabled`, `pt`],
|
||||
),
|
||||
]),
|
||||
createElementVNode(`div`, A, [
|
||||
createElementVNode(`div`, j, [
|
||||
createElementVNode(
|
||||
`label`,
|
||||
{
|
||||
for: `${unref(F)}-sms`,
|
||||
class: `preference-label`,
|
||||
},
|
||||
`短信提醒`,
|
||||
8,
|
||||
M,
|
||||
),
|
||||
unref(L) && !unref(I).sms_available
|
||||
? (openBlock(),
|
||||
createElementBlock(
|
||||
`small`,
|
||||
{
|
||||
key: 0,
|
||||
id: `${unref(F)}-sms-hint`,
|
||||
class: `preference-hint`,
|
||||
},
|
||||
`当前不可用,请检查绑定信息或联系管理员`,
|
||||
8,
|
||||
N,
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
]),
|
||||
createVNode(
|
||||
c,
|
||||
{
|
||||
"input-id": `${unref(F)}-sms`,
|
||||
modelValue: unref(I).sms_enabled,
|
||||
disabled:
|
||||
!unref(L) ||
|
||||
unref(R) ||
|
||||
unref(z) ||
|
||||
(!unref(I).sms_available &&
|
||||
!unref(I).sms_enabled),
|
||||
"aria-label": `短信提醒`,
|
||||
pt: {
|
||||
input: {
|
||||
"aria-describedby":
|
||||
unref(L) && !unref(I).sms_available
|
||||
? `${unref(F)}-description ${unref(F)}-sms-hint`
|
||||
: `${unref(F)}-description`,
|
||||
},
|
||||
},
|
||||
"onUpdate:modelValue": (n[1] ||= (e) =>
|
||||
q(`sms_enabled`, e)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`input-id`, `modelValue`, `disabled`, `pt`],
|
||||
),
|
||||
]),
|
||||
],
|
||||
8,
|
||||
T,
|
||||
),
|
||||
unref(R) || unref(z) || unref(H)
|
||||
? (openBlock(),
|
||||
createElementBlock(
|
||||
`p`,
|
||||
P,
|
||||
toDisplayString(
|
||||
unref(R)
|
||||
? `正在加载提醒设置…`
|
||||
: unref(z)
|
||||
? `正在保存…`
|
||||
: unref(H),
|
||||
),
|
||||
1,
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
],
|
||||
8,
|
||||
x,
|
||||
)
|
||||
);
|
||||
}
|
||||
);
|
||||
},
|
||||
}),
|
||||
[[`__scopeId`, `data-v-f4132ec8`]],
|
||||
),
|
||||
{
|
||||
__name: `NotificationPreferences`,
|
||||
},
|
||||
);
|
||||
export {};
|
||||
export default F;
|
||||
</script>
|
||||
Reference in new issue
Block a user