diff --git a/ui/src/views/application/component/AccessSettingDrawer.vue b/ui/src/views/application/component/AccessSettingDrawer.vue
index b0b19fefdf3..a08aa33cd87 100644
--- a/ui/src/views/application/component/AccessSettingDrawer.vue
+++ b/ui/src/views/application/component/AccessSettingDrawer.vue
@@ -5,6 +5,7 @@
取消
@@ -67,27 +116,23 @@ const rules = reactive({
app_id: [{ required: true, message: '请输入开发者ID', trigger: 'blur' }],
app_secret: [{ required: true, message: '请输入开发者密码', trigger: 'blur' }],
token: [{ required: true, message: '请输入令牌', trigger: 'blur' }],
- encoding_aes_key: [{ required: true, message: '请输入消息加解密密钥', trigger: 'blur' }],
- callback_url: [{ required: true, message: '请输入回调地址', trigger: 'blur' }]
+ encoding_aes_key: [{ required: true, message: '请输入消息加解密密钥', trigger: 'blur' }]
},
dingtalk: {
client_id: [{ required: true, message: '请输入Client ID', trigger: 'blur' }],
- client_secret: [{ required: true, message: '请输入Client Secret', trigger: 'blur' }],
- callback_url: [{ required: true, message: '请输入回调地址', trigger: 'blur' }]
+ client_secret: [{ required: true, message: '请输入Client Secret', trigger: 'blur' }]
},
wecom: {
app_id: [{ required: true, message: '请输入企业ID', trigger: 'blur' }],
agent_id: [{ required: true, message: '请输入Agent ID', trigger: 'blur' }],
secret: [{ required: true, message: '请输入Secret', trigger: 'blur' }],
token: [{ required: true, message: '请输入Token', trigger: 'blur' }],
- encoding_aes_key: [{ required: true, message: '请输入EncodingAESKey', trigger: 'blur' }],
- callback_url: [{ required: true, message: '请输入回调地址', trigger: 'blur' }]
+ encoding_aes_key: [{ required: true, message: '请输入EncodingAESKey', trigger: 'blur' }]
},
feishu: {
app_id: [{ required: true, message: '请输入App ID', trigger: 'blur' }],
app_secret: [{ required: true, message: '请输入App Secret', trigger: 'blur' }],
- verification_token: [{ required: false, message: '请输入Verification Token', trigger: 'blur' }],
- callback_url: [{ required: true, message: '请输入回调地址', trigger: 'blur' }]
+ verification_token: [{ required: false, message: '请输入Verification Token', trigger: 'blur' }]
}
})
@@ -96,45 +141,71 @@ const configFields = {
app_id: { label: '开发者ID (APP ID)', placeholder: '请输入开发者ID' },
app_secret: { label: '开发者密码 (APP Secret)', placeholder: '请输入开发者密码' },
token: { label: '令牌 (Token)', placeholder: '请输入令牌' },
- encoding_aes_key: { label: '消息加解密密钥', placeholder: '请输入消息加解密密钥' },
- callback_url: { label: '回调地址', placeholder: '请输入回调地址' }
+ encoding_aes_key: { label: '消息加解密密钥', placeholder: '请输入消息加解密密钥' }
},
dingtalk: {
client_id: { label: 'Client ID', placeholder: '' },
- client_secret: { label: 'Client Secret', placeholder: '' },
- callback_url: { label: '回调地址', placeholder: '' }
+ client_secret: { label: 'Client Secret', placeholder: '' }
},
wecom: {
app_id: { label: '企业ID', placeholder: '' },
agent_id: { label: 'Agent ID', placeholder: '' },
secret: { label: 'Secret', placeholder: '' },
token: { label: 'Token', placeholder: '' },
- encoding_aes_key: { label: 'EncodingAESKey', placeholder: '' },
- callback_url: { label: '回调地址', placeholder: '' }
+ encoding_aes_key: { label: 'EncodingAESKey', placeholder: '' }
},
feishu: {
app_id: { label: 'App ID', placeholder: '' },
app_secret: { label: 'App Secret', placeholder: '' },
- verification_token: { label: 'Verification Token', placeholder: '' },
- callback_url: { label: '回调地址', placeholder: '' }
+ verification_token: { label: 'Verification Token', placeholder: '' }
}
}
-const drawerTitle = computed(() => {
- const titles = {
- wechat: '公众号配置',
- dingtalk: '钉钉应用配置',
- wecom: '企业微信应用配置',
- feishu: '飞书配置'
- }
- return titles[configType.value] || ''
-})
+const passwordFields = new Set(['app_secret', 'client_secret', 'secret'])
+
+const drawerTitle = computed(
+ () =>
+ ({
+ wechat: '公众号配置',
+ dingtalk: '钉钉应用配置',
+ wecom: '企业微信应用配置',
+ feishu: '飞书配置'
+ })[configType.value]
+)
+
+const infoTitle = computed(
+ () =>
+ ({
+ wechat: '微信公众号应用信息',
+ dingtalk: '钉钉应用信息',
+ wecom: '企业微信应用信息',
+ feishu: '飞书应用信息'
+ })[configType.value]
+)
+
+const passwordVisible = reactive>(
+ Object.keys(configFields[configType.value]).reduce(
+ (acc, key) => {
+ if (passwordFields.has(key)) {
+ acc[key] = false
+ }
+ return acc
+ },
+ {} as Record
+ )
+)
+
+const isPasswordField = (key: string) => passwordFields.has(key)
+
+const togglePasswordVisibility = (key: string) => {
+ passwordVisible[key] = !passwordVisible[key]
+}
const closeDrawer = () => {
visible.value = false
}
-const submit = () => {
+const submit = async () => {
if (loading.value) return
formRef.value?.validate(async (valid) => {
@@ -144,7 +215,7 @@ const submit = () => {
MsgSuccess('配置保存成功')
closeDrawer()
emit('refresh')
- } catch (error) {
+ } catch {
MsgError('保存失败,请检查输入或稍后再试')
}
}
@@ -161,12 +232,13 @@ const open = async (id: string, type: 'wechat' | 'dingtalk' | 'wecom' | 'feishu'
const res = await applicationApi.getPlatformConfig(id, type)
if (res.data) {
form[configType.value] = res.data
- dataLoaded.value = true
}
- } catch (error) {
+ dataLoaded.value = true
+ } catch {
MsgError('加载配置失败,请检查输入或稍后再试')
} finally {
loading.value = false
+ // form[configType.value].callback_url = `${window.location.origin}/${type}/${id}`
}
}
@@ -174,5 +246,30 @@ defineExpose({ open })