feat(listing): 极品专区发布时增加比例加价
This commit is contained in:
@@ -412,6 +412,17 @@ async function handleSave() {
|
||||
默认 1,表示优质号主可在基础比例上降低 1;普通号主不能使用该区间。
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="极品专区比例加价(发布时生效)">
|
||||
<el-input-number
|
||||
v-model="publishOptionsDraft.ratio_config.premium_review_ratio_markup"
|
||||
:min="0"
|
||||
:max="10"
|
||||
:step="0.5"
|
||||
/>
|
||||
<span class="inline-config-hint">
|
||||
默认 1;极品专区商品发布时预加该比例点数,审核页直接展示最终价格,审核通过不再改价。
|
||||
</span>
|
||||
</el-form-item>
|
||||
<div class="editor-block-title subtle-title">
|
||||
<span>保险基础比例</span>
|
||||
<el-button size="small" @click="addInsuranceBaseRatio">添加保险比例</el-button>
|
||||
|
||||
@@ -630,6 +630,11 @@
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.premium-review-note {
|
||||
color: #c2410c !important;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.pipeline-card--buyer {
|
||||
border: 2px solid #2563eb;
|
||||
background: linear-gradient(135deg, #eff6ff 0%, #e0f2fe 100%);
|
||||
|
||||
@@ -558,6 +558,18 @@ function adminAdjustReason(row: Listing) {
|
||||
return breakdownText(row, 'admin_adjust_reason')
|
||||
}
|
||||
|
||||
function premiumReviewMarkupApplied(row: Listing) {
|
||||
return breakdownNumber(row, 'premium_review_ratio_markup')
|
||||
}
|
||||
|
||||
function premiumReviewRatioBefore(row: Listing) {
|
||||
return breakdownNumber(row, 'premium_review_ratio_before')
|
||||
}
|
||||
|
||||
function premiumReviewRatioAfter(row: Listing) {
|
||||
return breakdownNumber(row, 'premium_review_ratio_after')
|
||||
}
|
||||
|
||||
function priceRuleText(row: Listing) {
|
||||
const markup = platformMarkupAmount(row)
|
||||
if (priceRuleType(row) === 'admin_adjusted') {
|
||||
@@ -1206,6 +1218,9 @@ async function handleScreenshotSaved(payload: { oldUrl: string; newUrl: string }
|
||||
<h2 class="hero-title">{{ selectedListing.title }}</h2>
|
||||
|
||||
<div class="risk-tag-strip">
|
||||
<el-tag v-if="selectedListing.is_premium" type="warning" effect="dark" round>
|
||||
极品专区
|
||||
</el-tag>
|
||||
<el-tag
|
||||
v-for="risk in activeRisks"
|
||||
:key="risk.label"
|
||||
@@ -1266,6 +1281,14 @@ async function handleScreenshotSaved(payload: { oldUrl: string; newUrl: string }
|
||||
</div>
|
||||
<div class="card-breakdown">
|
||||
<span>毛利率 ~{{ platformMarkupPercentage(selectedListing) }}%</span>
|
||||
<span
|
||||
v-if="premiumReviewMarkupApplied(selectedListing) > 0"
|
||||
class="premium-review-note"
|
||||
>
|
||||
已含审核加价 +{{ quantity(premiumReviewMarkupApplied(selectedListing)) }} ·
|
||||
{{ ratioText(premiumReviewRatioBefore(selectedListing)) }} →
|
||||
{{ ratioText(premiumReviewRatioAfter(selectedListing)) }}
|
||||
</span>
|
||||
<span
|
||||
v-if="adminAdjustReason(selectedListing)"
|
||||
class="admin-reason"
|
||||
|
||||
@@ -79,6 +79,7 @@ export interface PublishSaleRatioAdjustmentRule {
|
||||
|
||||
export interface PublishRatioConfig {
|
||||
quality_owner_ratio_discount: number
|
||||
premium_review_ratio_markup: number
|
||||
insurance_base_ratios: PublishInsuranceBaseRatio[]
|
||||
config_items: PublishRatioConfigItem[]
|
||||
coin_corrections: PublishCoinCorrection[]
|
||||
@@ -153,6 +154,7 @@ export const emptyListingPublishOptions: ListingPublishOptions = {
|
||||
},
|
||||
ratio_config: {
|
||||
quality_owner_ratio_discount: 1,
|
||||
premium_review_ratio_markup: 1,
|
||||
insurance_base_ratios: [],
|
||||
config_items: [],
|
||||
coin_corrections: [],
|
||||
@@ -369,6 +371,10 @@ function normalizeRatioConfig(value?: unknown): PublishRatioConfig {
|
||||
10,
|
||||
Math.max(0, readNumber(row.quality_owner_ratio_discount ?? 1))
|
||||
),
|
||||
premium_review_ratio_markup: Math.min(
|
||||
10,
|
||||
Math.max(0, readNumber(row.premium_review_ratio_markup ?? 1))
|
||||
),
|
||||
insurance_base_ratios: normalizeInsuranceBaseRatios(
|
||||
Array.isArray(row.insurance_base_ratios) ? row.insurance_base_ratios : []
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user