|
<script setup lang="ts"> |
|
import { ref, onMounted } from 'vue'; |
|
import { MessagePlugin } from 'tdesign-vue-next'; |
|
import { settingApi, type Settings } from '../services/settingApi'; |
|
|
|
const settings = ref<Settings>({ |
|
feishu: { |
|
app_id: '', |
|
app_secret: '', |
|
verification_token: '', |
|
encrypt_key: '', |
|
receive_id: '' |
|
} |
|
}); |
|
|
|
const loading = ref(false); |
|
|
|
onMounted(async () => { |
|
try { |
|
const data = await settingApi.get(); |
|
|
|
settings.value = { |
|
feishu: { |
|
...settings.value.feishu, |
|
...data.feishu |
|
} |
|
}; |
|
} catch (error) { |
|
MessagePlugin.error('获取设置失败'); |
|
} |
|
}); |
|
|
|
const handleSave = async () => { |
|
loading.value = true; |
|
try { |
|
if (!settings.value) { |
|
return |
|
} |
|
await settingApi.update(settings.value); |
|
MessagePlugin.success('保存成功'); |
|
} catch (error) { |
|
MessagePlugin.error('保存失败'); |
|
} finally { |
|
loading.value = false; |
|
} |
|
}; |
|
</script> |
|
|
|
<template> |
|
<div class="setting-container p-2 md:p-5"> |
|
|
|
<t-form :data="settings" @submit="handleSave"> |
|
<t-card bordered> |
|
<t-divider>飞书配置</t-divider> |
|
<t-form-item label="应用ID" name="feishu.app_id"> |
|
<t-input v-model="settings.feishu.app_id" placeholder="请输入飞书应用ID" /> |
|
</t-form-item> |
|
<t-form-item label="应用密钥" name="feishu.app_secret"> |
|
<t-input v-model="settings.feishu.app_secret" type="password" placeholder="请输入飞书应用密钥" /> |
|
</t-form-item> |
|
<t-form-item label="验证Token" name="feishu.verification_token"> |
|
<t-input v-model="settings.feishu.verification_token" placeholder="请输入飞书应用验证Token" /> |
|
</t-form-item> |
|
<t-form-item label="加密Key" name="feishu.encrypt_key"> |
|
<t-input v-model="settings.feishu.encrypt_key" placeholder="请输入飞书应用加密Key" /> |
|
</t-form-item> |
|
<t-form-item label="接收ID" name="feishu.receive_id"> |
|
<t-input v-model="settings.feishu.receive_id" placeholder="请输入飞书机器人接收ID" /> |
|
</t-form-item> |
|
|
|
|
|
<t-form-item class="flex justify-center"> |
|
<t-button theme="primary" type="submit" :loading="loading">保存设置</t-button> |
|
</t-form-item> |
|
</t-card> |
|
|
|
|
|
</t-form> |
|
</div> |
|
</template> |
|
|
|
<style scoped></style> |
|
|