fix(send): extract webhook_url from JSON ext_info for WECOM_BOT
This commit is contained in:
@@ -287,6 +287,19 @@ function resetDrawerForm() {
|
||||
drawerForm.extInfo = ''
|
||||
}
|
||||
|
||||
function parseBotExtInfo(extInfo: string | undefined): string {
|
||||
if (!extInfo) return ''
|
||||
try {
|
||||
const parsed = JSON.parse(extInfo)
|
||||
if (parsed && typeof parsed === 'object' && parsed.webhook_url) {
|
||||
return parsed.webhook_url
|
||||
}
|
||||
} catch {
|
||||
// fallback to legacy plain URL
|
||||
}
|
||||
return extInfo
|
||||
}
|
||||
|
||||
function fillDrawerForm(row: any) {
|
||||
drawerForm.accountType = row.accountType ?? 1
|
||||
drawerForm.channelType = row.channelType ?? 'wecom'
|
||||
@@ -295,7 +308,7 @@ function fillDrawerForm(row: any) {
|
||||
drawerForm.accountName = row.accountName ?? ''
|
||||
drawerForm.sessionArchiveEnabled = row.sessionArchiveEnabled ?? 0
|
||||
drawerForm.serverHost = row.serverHost ?? ''
|
||||
drawerForm.extInfo = row.extInfo ?? ''
|
||||
drawerForm.extInfo = row.accountType === 6 ? parseBotExtInfo(row.extInfo) : (row.extInfo ?? '')
|
||||
}
|
||||
|
||||
function openCreateDialog() {
|
||||
@@ -327,9 +340,17 @@ async function loadSubjects() {
|
||||
}
|
||||
}
|
||||
|
||||
function buildAccountPayload(form: typeof dialogForm) {
|
||||
const payload: any = { ...form }
|
||||
if (form.accountType === 6 && form.extInfo && form.extInfo.trim()) {
|
||||
payload.extInfo = JSON.stringify({ webhook_url: form.extInfo.trim() })
|
||||
}
|
||||
return payload
|
||||
}
|
||||
|
||||
async function handleSave() {
|
||||
try {
|
||||
await createChannelAccount(dialogForm)
|
||||
await createChannelAccount(buildAccountPayload(dialogForm))
|
||||
ElMessage.success('创建成功')
|
||||
dialogVisible.value = false
|
||||
await loadAccounts()
|
||||
@@ -341,7 +362,7 @@ async function handleSave() {
|
||||
async function handleDrawerSave() {
|
||||
if (!currentAccount.value?.id) return
|
||||
try {
|
||||
await updateChannelAccount(currentAccount.value.id, drawerForm)
|
||||
await updateChannelAccount(currentAccount.value.id, buildAccountPayload(drawerForm))
|
||||
ElMessage.success('更新成功')
|
||||
drawerVisible.value = false
|
||||
await loadAccounts()
|
||||
|
||||
Reference in New Issue
Block a user