kuaifan 531129f48d feat(push): 移除友盟推送,APP 推送改为系统配置 / 自定义 / 关闭三档
- 删除友盟别名接口、模型、日志清理及 hedeqiang/umeng 依赖,迁移删除 umeng_alias / umeng_logs 表
- 系统配置(默认):通过官方 DooPush 共享通道自助注册租户,按 App 上报的推送 Token 绑定设备
- 自定义:沿用自有 DooPush 应用凭证;关闭:不推送也不记录设备
- 老站点升级后统一为系统配置,原自定义凭证保留
- PushUmengMsg 更名为 PushAppMsg;同步语言包、API 对照表与 ai-kb
2026-10-19 15:46:16 +00:00

103 lines
3.6 KiB
Vue
Raw 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.

<template>
<div class="setting-component-item">
<Form
ref="formData"
:model="formData"
:rules="ruleData"
v-bind="formOptions"
@submit.native.prevent>
<div class="block-setting-box">
<h3>{{ $L('DooPush 推送') }}</h3>
<div class="form-box">
<FormItem :label="$L('推送服务')" prop="doopush">
<RadioGroup v-model="formData.doopush">
<Radio label="system">{{ $L('系统配置') }}</Radio>
<Radio label="custom">{{ $L('自定义') }}</Radio>
<Radio label="close">{{ $L('关闭') }}</Radio>
</RadioGroup>
<div v-if="formData.doopush === 'system'" class="form-tip">{{ $L('使用官方推送服务,无需配置。') }}</div>
<div v-else-if="formData.doopush === 'custom'" class="form-tip">{{ $L('使用自己的 DooPush 应用,需搭配自行打包的 App。') }}</div>
</FormItem>
<template v-if="formData.doopush === 'custom'">
<FormItem :label="$L('App ID')" prop="doopush_app_id">
<Input :maxlength="255" v-model="formData.doopush_app_id"/>
</FormItem>
<FormItem :label="$L('App Secret')" prop="doopush_app_secret">
<Input :maxlength="255" v-model="formData.doopush_app_secret" type="password"/>
</FormItem>
<FormItem :label="$L('服务地址')" prop="doopush_base_url">
<Input :maxlength="255" v-model="formData.doopush_base_url" placeholder="https://doopush.com/api/v1"/>
</FormItem>
</template>
</div>
</div>
</Form>
<div class="setting-footer">
<Button :loading="loadIng > 0" type="primary" @click="submitForm">{{ $L('提交') }}</Button>
<Button :loading="loadIng > 0" @click="resetForm">{{ $L('重置') }}</Button>
</div>
</div>
</template>
<script>
import {mapState} from "vuex";
export default {
name: "SystemAppPush",
data() {
return {
loadIng: 0,
formData: {
doopush: 'system',
doopush_app_id: '',
doopush_app_secret: '',
doopush_base_url: '',
},
ruleData: {},
}
},
mounted() {
this.systemSetting();
},
computed: {
...mapState(['formOptions']),
},
methods: {
submitForm() {
this.$refs.formData.validate((valid) => {
if (valid) {
this.systemSetting(true);
}
})
},
resetForm() {
this.formData = $A.cloneJSON(this.formDatum_bak);
},
systemSetting(save) {
this.loadIng++;
this.$store.dispatch("call", {
url: 'system/setting/apppush?type=' + (save ? 'save' : 'all'),
data: this.formData,
}).then(({data}) => {
if (save) {
$A.messageSuccess('修改成功');
}
this.formData = data;
this.formDatum_bak = $A.cloneJSON(this.formData);
}).catch(({msg}) => {
if (save) {
$A.modalError(msg);
}
}).finally(_ => {
this.loadIng--;
});
},
}
}
</script>