增加bark配置

This commit is contained in:
2026-06-17 23:49:19 +08:00
parent 22e0e75c35
commit 6ee1f26124
19 changed files with 784 additions and 260 deletions
+37
View File
@@ -150,4 +150,41 @@ export function saveStorageConfig(data) {
method: "post",
data: data,
});
}
/**
* 获取 Bark 配置
* @returns {Promise}
*/
export function getBarkConfig() {
return request({
url: "/platform/bark/info",
method: "get",
});
}
/**
* 保存 Bark 配置
* @param {Object} data 要保存的数据
* @returns {Promise}
*/
export function saveBarkConfig(data) {
return request({
url: "/platform/bark/editinfo",
method: "post",
data: data,
});
}
/**
* 发送测试 Bark 推送
* @param {Object} data 测试数据
* @returns {Promise}
*/
export function sendTestBark(data) {
return request({
url: "/platform/bark/sendtest",
method: "post",
data: data,
});
}
@@ -155,10 +155,12 @@
</div>
</template>
<el-form :model="formData.sitemsg" label-width="140px" label-position="right">
<!--
<el-form-item label="启用状态">
<el-switch v-model="formData.sitemsg.enabled" disabled />
<span class="form-tip-inline" style="margin-left: 10px;">站内信功能为系统核心功能必须开启</span>
</el-form-item>
-->
<el-form-item label="保留天数">
<el-input-number v-model="formData.sitemsg.retention_days" :min="1" :max="365" controls-position="right" />
<span class="form-tip-inline">过期消息将自动清理</span>
@@ -296,6 +298,11 @@
<el-form-item label="设备 Key">
<el-input v-model="formData.bark.device_key" placeholder="请输入您的 Bark Device Key" />
</el-form-item>
<el-form-item label="测试推送">
<el-button type="success" plain size="small" :loading="barkTestLoading" @click="handleSendBarkTest">
发送测试推送
</el-button>
</el-form-item>
</el-form>
</el-card>
</div>
@@ -395,10 +402,12 @@ import {
import { getSmsInfo, editSmsInfo, sendTestSms } from "@/api/sms";
import { getEmailInfo, editEmailInfo, sendTestEmail } from "@/api/email";
import { getSiteReminderConfig, saveSiteReminderConfig } from "@/api/sitereminder";
import { getBarkConfig, saveBarkConfig, sendTestBark } from "@/api/sitesettings";
const STORAGE_KEY = "notification_settings_draft";
const activeSubTab = ref("email");
const submitting = ref(false);
const barkTestLoading = ref(false);
const formData = reactive({
email: {
@@ -659,6 +668,17 @@ const handleSubmit = async () => {
} else {
throw new Error(res.msg || "保存站内信配置失败");
}
} else if (activeSubTab.value === 'bark') {
const res = await saveBarkConfig({
enabled: formData.bark.enabled,
server_url: formData.bark.server_url,
device_key: formData.bark.device_key
});
if (res.code === 200) {
ElMessage.success("Bark 配置保存成功");
} else {
throw new Error(res.msg || "保存 Bark 配置失败");
}
}
saveDraft();
@@ -670,11 +690,49 @@ const handleSubmit = async () => {
}
};
const loadBarkConfig = async () => {
try {
const res = await getBarkConfig();
if (res.code === 200 && res.data) {
formData.bark.enabled = res.data.enabled;
formData.bark.server_url = res.data.server_url || "https://api.day.app";
formData.bark.device_key = res.data.device_key || "";
}
} catch (error) {
console.error("加载 Bark 配置失败:", error);
}
};
const handleSendBarkTest = async () => {
const key = (formData.bark.device_key || "").trim();
if (!key) {
ElMessage.warning("请先输入 Bark 设备 Key");
return;
}
try {
barkTestLoading.value = true;
const res = await sendTestBark({
server_url: formData.bark.server_url,
device_key: key
});
if (res.code === 200) {
ElMessage.success(res.msg || "测试推送发送成功");
} else {
ElMessage.error(res.msg || "测试推送失败,请稍后重试");
}
} catch (error) {
ElMessage.error(error?.message || "测试推送失败,请稍后重试");
} finally {
barkTestLoading.value = false;
}
};
onMounted(() => {
loadDraft();
loadSmsConfig();
loadEmailConfig();
loadSiteReminderConfig();
loadBarkConfig();
});
</script>