酒店日志页面完善
build / task (16.x, npm, macOS-latest) (push) Waiting to run
build / task (16.x, npm, ubuntu-latest) (push) Waiting to run
build / task (16.x, npm, windows-latest) (push) Waiting to run
build / task (16.x, pnpm, macOS-latest) (push) Waiting to run
build / task (16.x, pnpm, ubuntu-latest) (push) Waiting to run
build / task (16.x, pnpm, windows-latest) (push) Waiting to run
build / task (16.x, yarn, macOS-latest) (push) Waiting to run
build / task (16.x, yarn, ubuntu-latest) (push) Waiting to run
build / task (16.x, yarn, windows-latest) (push) Waiting to run
build / task (18.x, npm, macOS-latest) (push) Waiting to run
build / task (18.x, npm, ubuntu-latest) (push) Waiting to run
build / task (18.x, npm, windows-latest) (push) Waiting to run
build / task (18.x, pnpm, macOS-latest) (push) Waiting to run
build / task (18.x, pnpm, ubuntu-latest) (push) Waiting to run
build / task (18.x, pnpm, windows-latest) (push) Waiting to run
build / task (18.x, yarn, macOS-latest) (push) Waiting to run
build / task (18.x, yarn, ubuntu-latest) (push) Waiting to run
build / task (18.x, yarn, windows-latest) (push) Waiting to run
build / task (20.x, npm, macOS-latest) (push) Waiting to run
build / task (20.x, npm, ubuntu-latest) (push) Waiting to run
build / task (20.x, npm, windows-latest) (push) Waiting to run
build / task (20.x, pnpm, macOS-latest) (push) Waiting to run
build / task (20.x, pnpm, ubuntu-latest) (push) Waiting to run
build / task (20.x, pnpm, windows-latest) (push) Waiting to run
build / task (20.x, yarn, macOS-latest) (push) Waiting to run
build / task (20.x, yarn, ubuntu-latest) (push) Waiting to run
build / task (20.x, yarn, windows-latest) (push) Waiting to run

This commit is contained in:
zjf committed 2026-11-08 00:21:43 +08:00
1 parent 65558a6b8b
commit 3ef00e7ef4
3 files changed
+41 -13

No files matched your search

@@ -6,7 +6,7 @@
:closable="false"
show-icon
class="mb-3"
title="资源推送默认只落失败。填「同步日志ID」可导出完善清单:圣诺 getInfo 无店、房型/产品编码匹配不上。入站失败可「重试」重放;资源流水「重试」为整店重推。"
title="本页只记下游(推资源/入站下单等)。上游拉列表/房价看「上游同步日志」;上游 order/add 报文在「酒店订单」详情→上游调用记录。资源推送默认只落失败;填同步日志ID可导出完善清单。"
/>
<el-row v-show="showSearch">
<el-form :model="state.queryForm" ref="queryRef" :inline="true" @keyup.enter="getDataList">
@@ -16,13 +16,13 @@
clearable
filterable
placeholder="全部"
style="width: 180px"
style="width: 220px"
>
<el-option
v-for="p in partnerOptions"
:key="p"
:label="p"
:value="p"
:key="p.partnerCode"
:label="p.label || p.partnerCode"
:value="p.partnerCode"
/>
</el-select>
</el-form-item>
@@ -258,8 +258,8 @@ import { useMessage, useMessageBox } from "/@/hooks/message"
const queryRef = ref()
const showSearch = ref(true)
/** 已启用下游伙伴,供筛选下拉 */
const partnerOptions = ref<string[]>([])
/** 已启用下游伙伴,供筛选下拉(接口返回 {partnerCode,label}) */
const partnerOptions = ref<Array<{ partnerCode: string; label?: string }>>([])
const detailVisible = ref(false)
const detailLoading = ref(false)
const detail = reactive<any>({})
@@ -391,7 +391,16 @@ const loadPartnerOptions = async () => {
const res: any = await listEnabledDownstreamPartners()
const list = res?.data
partnerOptions.value = Array.isArray(list)
? list.map((x: any) => String(x)).filter(Boolean)
? list
.map((x: any) => {
if (typeof x === "string") {
return { partnerCode: x, label: x }
}
const code = String(x?.partnerCode || "").trim()
if (!code) return null
return { partnerCode: code, label: x?.label || code }
})
.filter(Boolean)
: []
} catch {
partnerOptions.value = []
+19 -4
View File
@@ -441,7 +441,7 @@
<div class="detail-section-title mt-4">上游调用记录</div>
<div class="text-xs text-gray-400 mb-2">
支付后第三方下单 / 补偿查询 / 取消 / 自动退款均会落流水,便于核对上游异常。
展开行可看实际上游请求/响应(含 order/add 报文,密码已脱敏),便于与对方对账。
</div>
<el-table
v-if="detailUpstreamLogs.length"
@@ -449,8 +449,23 @@
border
size="small"
class="w-full"
max-height="280"
max-height="420"
row-key="id"
>
<el-table-column type="expand">
<template #default="{ row }">
<div class="px-3 py-2 text-xs space-y-2">
<div>
<div class="font-medium text-gray-600 mb-1">上游请求</div>
<pre class="detail-json">{{ prettyJson(row.reqJson) || "-" }}</pre>
</div>
<div>
<div class="font-medium text-gray-600 mb-1">上游响应</div>
<pre class="detail-json">{{ prettyJson(row.respJson) || "-" }}</pre>
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="createTime" label="时间" min-width="156" show-overflow-tooltip />
<el-table-column prop="channel" label="渠道" width="90" align="center">
<template #default="{ row }">{{ dataSourceText(row.channel) }}</template>
@@ -474,10 +489,10 @@
<el-empty v-else description="暂无上游调用记录(本地酒店履约不会产生)" :image-size="56" />
<el-collapse class="mt-4">
<el-collapse-item title="下单请求快照" name="req">
<el-collapse-item title="下游入站请求快照(对方推给我们的)" name="req">
<pre class="detail-json">{{ detailReqText }}</pre>
</el-collapse-item>
<el-collapse-item title="上游响应快照" name="upstream">
<el-collapse-item title="上游最近响应快照(订单字段)" name="upstream">
<pre class="detail-json">{{ detailUpstreamText }}</pre>
</el-collapse-item>
</el-collapse>
@@ -396,7 +396,11 @@ const loadDownstreamPartners = async () => {
try {
const res: any = await listEnabledDownstreamPartners()
const list = res?.data
downstreamPartners.value = Array.isArray(list) ? list.map((x: any) => String(x)).filter(Boolean) : []
downstreamPartners.value = Array.isArray(list)
? list
.map((x: any) => (typeof x === "string" ? x : String(x?.partnerCode || "").trim()))
.filter(Boolean)
: []
} catch {
downstreamPartners.value = []
}