feat: WC2026 赛事 seed、生产上线初始化脚本与目录归档
重构 seed 为 WC2026 72 场小组赛与 48 强优胜盘;新增 production 模式仅保留 admin 与赛事示例;提供 prod-init-db 全量重置脚本;管理端 i18n 分包与赛事归档能力。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -17,7 +17,6 @@ interface PaymentMethod {
|
||||
displayName: string | null;
|
||||
sortOrder: number;
|
||||
isActive: boolean;
|
||||
showOnPlayer: boolean;
|
||||
createdAt: string;
|
||||
translations?: {
|
||||
displayName?: Record<string, string>;
|
||||
@@ -42,7 +41,6 @@ const form = ref({
|
||||
displayName: '',
|
||||
sortOrder: 0,
|
||||
isActive: true,
|
||||
showOnPlayer: true,
|
||||
translations: {
|
||||
displayName: { 'zh-CN': '', 'en-US': '', 'ms-MY': '' },
|
||||
bankName: { 'zh-CN': '', 'en-US': '', 'ms-MY': '' },
|
||||
@@ -76,7 +74,6 @@ function openCreate() {
|
||||
displayName: '',
|
||||
sortOrder: 0,
|
||||
isActive: true,
|
||||
showOnPlayer: true,
|
||||
translations: {
|
||||
displayName: { 'zh-CN': '', 'en-US': '', 'ms-MY': '' },
|
||||
bankName: { 'zh-CN': '', 'en-US': '', 'ms-MY': '' },
|
||||
@@ -98,7 +95,6 @@ function openEdit(row: PaymentMethod) {
|
||||
displayName: row.displayName ?? '',
|
||||
sortOrder: row.sortOrder,
|
||||
isActive: row.isActive,
|
||||
showOnPlayer: row.showOnPlayer,
|
||||
translations: {
|
||||
displayName: {
|
||||
'zh-CN': t.displayName?.['zh-CN'] ?? '',
|
||||
@@ -153,9 +149,9 @@ async function handleDelete(row: PaymentMethod) {
|
||||
} catch { /* */ }
|
||||
}
|
||||
|
||||
async function toggleField(row: PaymentMethod, field: 'isActive' | 'showOnPlayer') {
|
||||
async function toggleActive(row: PaymentMethod) {
|
||||
try {
|
||||
await api.put(`/admin/payment-methods/${row.id}`, { [field]: !row[field] });
|
||||
await api.put(`/admin/payment-methods/${row.id}`, { isActive: !row.isActive });
|
||||
await fetchList();
|
||||
} catch { /* */ }
|
||||
}
|
||||
@@ -205,7 +201,6 @@ onMounted(fetchList);
|
||||
<th>{{ t('deposit.details') }}</th>
|
||||
<th>{{ t('deposit.sort') }}</th>
|
||||
<th>{{ t('deposit.active') }}</th>
|
||||
<th>{{ t('deposit.show_player') }}</th>
|
||||
<th>{{ t('common.actions') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -227,17 +222,11 @@ onMounted(fetchList);
|
||||
<td>
|
||||
<span :class="row.isActive ? 'status-on' : 'status-off'">{{ row.isActive ? 'ON' : 'OFF' }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span :class="row.showOnPlayer ? 'status-on' : 'status-off'">{{ row.showOnPlayer ? 'ON' : 'OFF' }}</span>
|
||||
</td>
|
||||
<td class="actions-cell">
|
||||
<button class="btn-sm" @click="openEdit(row)">{{ t('common.edit') }}</button>
|
||||
<button class="btn-sm btn-toggle" @click="toggleField(row, 'isActive')">
|
||||
<button class="btn-sm btn-toggle" @click="toggleActive(row)">
|
||||
{{ row.isActive ? t('common.disable') : t('common.enable') }}
|
||||
</button>
|
||||
<button class="btn-sm btn-toggle" @click="toggleField(row, 'showOnPlayer')">
|
||||
{{ row.showOnPlayer ? t('common.hide_player') : t('common.show_player') }}
|
||||
</button>
|
||||
<button class="btn-sm btn-danger" @click="handleDelete(row)">{{ t('common.delete') }}</button>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -321,7 +310,6 @@ onMounted(fetchList);
|
||||
</div>
|
||||
<div class="form-group row-checks">
|
||||
<label><input type="checkbox" v-model="form.isActive" /> {{ t('deposit.active') }}</label>
|
||||
<label><input type="checkbox" v-model="form.showOnPlayer" /> {{ t('deposit.show_on_player') }}</label>
|
||||
</div>
|
||||
<div class="dialog-actions">
|
||||
<button class="btn-cancel" @click="dialogVisible = false">{{ t('common.cancel') }}</button>
|
||||
|
||||
Reference in New Issue
Block a user