火箭份数配置

This commit is contained in:
zhx 2026-05-15 12:19:48 +08:00
parent b1bb7a2267
commit 143752c86c

View File

@ -62,6 +62,7 @@ type RewardRow = {
rewardName: string;
rewardScene: string;
rewardType: string;
rewardCopies: number;
sort: number;
weight: number;
};
@ -201,6 +202,7 @@ const rewardColumns = [
{ dataIndex: 'rewardCover', key: 'rewardCover', title: '封面', width: 220 },
{ dataIndex: 'rewardAmount', key: 'rewardAmount', title: '数量/金币/天数', width: 150 },
{ dataIndex: 'expireDays', key: 'expireDays', title: '有效天数', width: 130 },
{ dataIndex: 'rewardCopies', key: 'rewardCopies', title: '份数', width: 110 },
{ dataIndex: 'weight', key: 'weight', title: '权重', width: 110 },
{ dataIndex: 'enabled', key: 'enabled', title: '启用', width: 90 },
{ dataIndex: 'sort', key: 'sort', title: '排序', width: 100 },
@ -319,6 +321,7 @@ function normalizeRewardRows(rows: Array<Record<string, any>> | undefined) {
rewardName: String(row.rewardName || ''),
rewardScene: String(row.rewardScene || 'TOP1'),
rewardType: String(row.rewardType || 'GOLD'),
rewardCopies: toNumber(row.rewardCopies, 1),
sort: toNumber(row.sort, index + 1),
weight: toNumber(row.weight, 1),
}));
@ -407,6 +410,7 @@ function handleRewardSceneChange(row: Record<string, any>) {
row.rewardType = 'GOLD';
handleRewardTypeChange(row);
}
row.rewardCopies = row.rewardScene === 'IN_ROOM' ? toNumber(row.rewardCopies, 1) : 1;
}
function handleResourceSelect(item: ResourceOption) {
@ -553,6 +557,7 @@ function addRewardRow(scene = 'TOP1', rewardType = 'GOLD') {
rewardName: isNone ? '轮空' : rewardType === 'GOLD' ? '金币' : '',
rewardScene: scene,
rewardType,
rewardCopies: 1,
sort: rewardRows.value.length + 1,
weight: 1,
});
@ -604,6 +609,12 @@ function validateRewards() {
message.warning('轮空只能配置在房用户奖励');
return false;
}
if (row.rewardScene !== 'IN_ROOM') {
row.rewardCopies = 1;
} else if (toNumber(row.rewardCopies, 0) <= 0) {
message.warning('在房用户奖励份数必须大于 0');
return false;
}
if (!String(row.rewardName || '').trim()) {
message.warning('请输入奖励名称');
return false;
@ -646,6 +657,8 @@ async function saveRewards() {
rewardName: row.rewardType === 'NONE' ? '轮空' : row.rewardName.trim(),
rewardScene: row.rewardScene,
rewardType: row.rewardType,
rewardCopies:
row.rewardScene === 'IN_ROOM' ? toNumber(row.rewardCopies, 1) : 1,
sort: toNumber(row.sort, 1),
weight: toNumber(row.weight, 1),
})),
@ -960,7 +973,7 @@ watch(rewardLevel, () => {
:data-source="rewardRows"
:loading="rewardLoading"
:pagination="false"
:scroll="{ x: 1660 }"
:scroll="{ x: 1770 }"
row-key="localKey"
>
<template #bodyCell="{ column, record, index }">
@ -1045,6 +1058,15 @@ watch(rewardLevel, () => {
class="table-number"
/>
</template>
<template v-else-if="column.key === 'rewardCopies'">
<InputNumber
v-model:value="record.rewardCopies"
:disabled="record.rewardScene !== 'IN_ROOM'"
:min="1"
:precision="0"
class="table-number"
/>
</template>
<template v-else-if="column.key === 'weight'">
<InputNumber
v-model:value="record.weight"