fix(order): 修复订单详情分成明细报错并将弹窗改为独立选项卡打开

这个提交包含在:
chen
2026-09-17 08:10:24 +08:00
父节点 251d62296e
当前提交 23fe197bff
共有 9 个文件被更改,包括 408 次插入 和 164 次删除

查看文件

@@ -1,6 +1,40 @@
{include file="/shopro/common/script" /}
<style>
.order-detail {
background: var(--sa-background-hex);
min-height: 100%;
}
.order-detail .panel-block {
height: calc(100vh - 40px);
}
.is-dialog .order-detail .panel-block {
height: 100vh;
}
.order-detail .detail-header-bar {
height: 46px;
padding: 0 16px;
background: var(--sa-table-header-bg);
border-radius: 8px;
margin-bottom: 14px;
}
.order-detail .detail-header-bar .title-text {
font-size: 16px;
font-weight: 700;
color: var(--sa-title);
margin-left: 10px;
}
.order-detail .detail-header-bar .order-sn-tag {
font-size: 13px;
color: var(--sa-subfont);
margin-left: 10px;
}
.order-detail .partner-split-content {
border-radius: 8px;
padding: var(--sa-padding);
@@ -384,6 +418,18 @@
<el-container class="panel-block">
<el-main>
<el-scrollbar height="100%">
<div class="detail-header-bar sa-flex sa-row-between">
<div class="sa-flex">
<el-button icon="Back" size="small" @click="onBack">返回</el-button>
<span class="title-text">订单详情 #{{ state.id }}</span>
<span v-if="state.detail.order_sn" class="order-sn-tag">
订单号: {{ state.detail.order_sn }}
</span>
</div>
<div class="sa-flex">
<el-button icon="RefreshRight" size="small" circle @click="getDetail" title="刷新"></el-button>
</div>
</div>
<div class="tip">
<div>温馨提示</div>
<div>1、如果无法发货,请及时与买家联系并说明情况后主动退款;</div>
@@ -833,31 +879,40 @@
</el-tabs>
<div class="partner-split-content order-content">
<div class="title sa-flex sa-row-between">
<span>合伙股东分成明细</span>
<span v-if="state.detail.partner_split?.total_cash" style="font-size:13px;font-weight:400;color:var(--sa-subfont)">
本单即时现金合计 ¥{{ state.detail.partner_split.total_cash }}
<template v-if="state.detail.partner_split.settle_date">
· 均分日 {{ state.detail.partner_split.settle_date }}
</template>
</span>
<div class="sa-flex">
<span>合伙股东分成明细</span>
<el-tag v-if="state.detail.partner_split && state.detail.partner_split.has_data" size="small" type="success" style="margin-left: 10px;">有分成记录</el-tag>
<el-tag v-else size="small" type="info" style="margin-left: 10px;">暂无分成记录</el-tag>
</div>
<div v-if="state.detail.partner_split" style="font-size:13px;font-weight:400;color:var(--sa-subfont)">
<span v-if="Number(state.detail.partner_split.total_cash) > 0" style="margin-right: 14px;">
本单现金合计 <strong style="color:#ff4d4f;font-size:14px">¥{{ state.detail.partner_split.total_cash }}</strong>
</span>
<span v-if="Number(state.detail.partner_split.total_voucher) > 0" style="margin-right: 14px;">
兑换券释放额度 <strong style="color:#e6a23c;font-size:14px">{{ state.detail.partner_split.total_voucher }}</strong>
</span>
<span v-if="state.detail.partner_split.settle_date">
均分日 {{ state.detail.partner_split.settle_date }}
</span>
</div>
</div>
<el-table
v-if="state.detail.partner_split?.has_data"
v-if="state.detail.partner_split && state.detail.partner_split.has_data && state.detail.partner_split.items && state.detail.partner_split.items.length > 0"
class="sa-table"
:data="state.detail.partner_split.items"
stripe
>
<el-table-column label="收益种类" min-width="140">
<template #default="scope">
<div>{{ scope.row.reward_type_text || scope.row.reward_type }}</div>
<div v-if="scope.row.role_text" style="font-size:12px;color:#999">{{ scope.row.role_text }}</div>
<div style="font-weight: 600;">{{ scope.row.reward_type_text || scope.row.reward_type }}</div>
<div v-if="scope.row.role_text" style="font-size:12px;color:var(--sa-subfont)">身份: {{ scope.row.role_text }}</div>
</template>
</el-table-column>
<el-table-column label="受益人 / 参与概况" min-width="220">
<template #default="scope">
<template v-if="scope.row.display === 'share'">
<div>参与用户 {{ scope.row.user_count }} 人</div>
<div style="font-size:12px;color:#999">{{ scope.row.tip || '均分不列出名单' }}</div>
<div style="font-weight: 500;">参与用户 {{ scope.row.user_count }} 人</div>
<div style="font-size:12px;color:var(--sa-subfont)">{{ scope.row.tip || '均分不列出名单' }}</div>
</template>
<template v-else>
<sa-user-profile
@@ -869,49 +924,58 @@
</template>
</template>
</el-table-column>
<el-table-column label="金额" min-width="160">
<el-table-column label="分成金额 / 数量" min-width="160">
<template #default="scope">
<template v-if="scope.row.display === 'share'">
<div v-if="scope.row.unit === '马豆'">
每人 {{ scope.row.each_madow }} 马豆
<div style="font-weight: 600; color: var(--el-color-primary);">
{{ scope.row.amount_text || (scope.row.unit === '马豆' ? (scope.row.each_madow + ' 马豆/人') : ('¥' + scope.row.each_amount + '/人')) }}
</div>
<div v-else>
每人 ¥{{ scope.row.each_amount }}
</div>
<div style="font-size:12px;color:#999">
<div style="font-size:12px;color:var(--sa-subfont)">
<template v-if="scope.row.unit === '马豆'">
合计 {{ scope.row.total_madow }} 马豆
奖池合计: {{ scope.row.total_madow }} 马豆
</template>
<template v-else>
合计 ¥{{ scope.row.total_amount }}
奖池合计: ¥{{ scope.row.total_amount }}
</template>
</div>
</template>
<template v-else>
<span v-if="Number(scope.row.amount) > 0">¥{{ scope.row.amount }}</span>
<span v-else-if="Number(scope.row.madow) > 0">{{ scope.row.madow }} 马豆</span>
<span v-else>¥0.00</span>
<div v-if="scope.row.reward_type === 'voucher_grant'" style="font-weight: 600; color: #e6a23c;">
{{ scope.row.amount_text || (scope.row.base_amount + ' 兑换券') }}
</div>
<div v-else-if="Number(scope.row.amount) > 0" style="font-weight: 600; color: #ff4d4f;">
¥{{ scope.row.amount }}
</div>
<div v-else-if="Number(scope.row.madow) > 0" style="font-weight: 600; color: #67c23a;">
{{ scope.row.madow }} 马豆
</div>
<div v-else style="color: var(--sa-subfont);">
¥0.00
</div>
</template>
</template>
</el-table-column>
<el-table-column label="状态" min-width="90">
<el-table-column label="状态" min-width="100">
<template #default="scope">
<span :class="`sa-color--${partnerStatusStyle[scope.row.status] || 'info'}`">
<el-tag
size="small"
:type="partnerStatusTagType(scope.row.status)"
>
{{ scope.row.status_text || '-' }}
</span>
</el-tag>
</template>
</el-table-column>
<el-table-column label="说明" min-width="220">
<el-table-column label="计算公式与说明" min-width="240">
<template #default="scope">
<div>{{ scope.row.formula || '-' }}</div>
<div v-if="scope.row.skip_reason_text" class="sa-color--warning" style="font-size:12px">
{{ scope.row.skip_reason_text }}
<div v-if="scope.row.skip_reason_text" class="sa-color--warning" style="font-size:12px; margin-top: 2px;">
未满足条件:{{ scope.row.skip_reason_text }}
</div>
</template>
</el-table-column>
</el-table>
<div v-else style="padding:16px 0;color:#999;font-size:13px">
暂无合伙股东分成记录(未计奖、未支付或尚未日结)
<div v-else style="padding:16px 0;color:var(--sa-subfont);font-size:13px;text-align:center;">
暂无合伙股东分成记录(未产生分成、未支付或尚未日结)
</div>
</div>
<div class="goods-content">