增加bark配置
This commit is contained in:
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user