Compare commits

...

3 Commits

14 changed files with 399 additions and 239 deletions

View File

@@ -8,23 +8,23 @@
<ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData"> <ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData">
<template #left> <template #left>
<ElSpace wrap> <ElSpace wrap>
<!-- <ElButton v-permission="'dice:config:index:save'" @click="showDialog('add')" v-ripple>--> <!-- <ElButton v-permission="'dice:config:index:save'" @click="showDialog('add')" v-ripple>-->
<!-- <template #icon>--> <!-- <template #icon>-->
<!-- <ArtSvgIcon icon="ri:add-fill" />--> <!-- <ArtSvgIcon icon="ri:add-fill" />-->
<!-- </template>--> <!-- </template>-->
<!-- 新增--> <!-- 新增-->
<!-- </ElButton>--> <!-- </ElButton>-->
<!-- <ElButton--> <!-- <ElButton-->
<!-- v-permission="'dice:config:index:destroy'"--> <!-- v-permission="'dice:config:index:destroy'"-->
<!-- :disabled="selectedRows.length === 0"--> <!-- :disabled="selectedRows.length === 0"-->
<!-- @click="deleteSelectedRows(api.delete, refreshData)"--> <!-- @click="deleteSelectedRows(api.delete, refreshData)"-->
<!-- v-ripple--> <!-- v-ripple-->
<!-- >--> <!-- >-->
<!-- <template #icon>--> <!-- <template #icon>-->
<!-- <ArtSvgIcon icon="ri:delete-bin-5-line" />--> <!-- <ArtSvgIcon icon="ri:delete-bin-5-line" />-->
<!-- </template>--> <!-- </template>-->
<!-- 删除--> <!-- 删除-->
<!-- </ElButton>--> <!-- </ElButton>-->
</ElSpace> </ElSpace>
</template> </template>
</ArtTableHeader> </ArtTableHeader>
@@ -50,11 +50,11 @@
type="secondary" type="secondary"
@click="showDialog('edit', row)" @click="showDialog('edit', row)"
/> />
<!-- <SaButton--> <!-- <SaButton-->
<!-- v-permission="'dice:config:index:destroy'"--> <!-- v-permission="'dice:config:index:destroy'"-->
<!-- type="error"--> <!-- type="error"-->
<!-- @click="deleteRow(row, api.delete, refreshData)"--> <!-- @click="deleteRow(row, api.delete, refreshData)"-->
<!-- />--> <!-- />-->
</div> </div>
</template> </template>
</ArtTable> </ArtTable>
@@ -108,12 +108,19 @@
core: { core: {
apiFn: api.list, apiFn: api.list,
columnsFactory: () => [ columnsFactory: () => [
{ type: 'selection' }, // { type: 'selection' },
{ prop: 'group', label: '分组', minWidth: 140 }, { prop: 'group', label: '分组', minWidth: 140, align: 'center' },
{ prop: 'title', label: '标题', minWidth: 160 }, { prop: 'title', label: '标题', minWidth: 160, align: 'center' },
{ prop: 'name', label: '配置名称' }, { prop: 'name', label: '配置名称', align: 'center' },
{ prop: 'value', label: '值', minWidth: 240 }, { prop: 'value', label: '值', minWidth: 240, align: 'center' },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true } {
prop: 'operation',
label: '操作',
width: 60,
align: 'center',
fixed: 'right',
useSlot: true
}
] ]
} }
}) })
@@ -124,9 +131,9 @@
dialogVisible, dialogVisible,
dialogData, dialogData,
showDialog, showDialog,
deleteRow, // deleteRow,
deleteSelectedRows, // deleteSelectedRows,
handleSelectionChange, handleSelectionChange
selectedRows // selectedRows
} = useSaiAdmin() } = useSaiAdmin()
</script> </script>

View File

@@ -9,13 +9,21 @@
> >
<el-form ref="formRef" :model="formData" :rules="rules" label-width="120px"> <el-form ref="formRef" :model="formData" :rules="rules" label-width="120px">
<el-form-item label="分组" prop="group"> <el-form-item label="分组" prop="group">
<el-input v-model="formData.group" placeholder="请输入分组" /> <el-input
v-model="formData.group"
placeholder="请输入分组"
:disabled="dialogType === 'edit'"
/>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input v-model="formData.title" placeholder="请输入标题" /> <el-input v-model="formData.title" placeholder="请输入标题" />
</el-form-item> </el-form-item>
<el-form-item label="配置名称" prop="name"> <el-form-item label="配置名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入配置名称" /> <el-input
v-model="formData.name"
placeholder="请输入配置名称"
:disabled="dialogType === 'edit'"
/>
</el-form-item> </el-form-item>
<el-form-item label="值" prop="value"> <el-form-item label="值" prop="value">
<el-input v-model="formData.value" type="textarea" :rows="5" placeholder="请输入值" /> <el-input v-model="formData.value" type="textarea" :rows="5" placeholder="请输入值" />

View File

@@ -7,29 +7,29 @@
<!-- 表格头部 --> <!-- 表格头部 -->
<ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData"> <ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData">
<template #left> <template #left>
<ElSpace wrap> <!-- <ElSpace wrap>-->
<ElButton <!-- <ElButton-->
v-permission="'dice:lottery_config:index:save'" <!-- v-permission="'dice:lottery_config:index:save'"-->
@click="showDialog('add')" <!-- @click="showDialog('add')"-->
v-ripple <!-- v-ripple-->
> <!-- >-->
<template #icon> <!-- <template #icon>-->
<ArtSvgIcon icon="ri:add-fill" /> <!-- <ArtSvgIcon icon="ri:add-fill" />-->
</template> <!-- </template>-->
新增 <!-- 新增-->
</ElButton> <!-- </ElButton>-->
<ElButton <!-- <ElButton-->
v-permission="'dice:lottery_config:index:destroy'" <!-- v-permission="'dice:lottery_config:index:destroy'"-->
:disabled="selectedRows.length === 0" <!-- :disabled="selectedRows.length === 0"-->
@click="deleteSelectedRows(api.delete, refreshData)" <!-- @click="deleteSelectedRows(api.delete, refreshData)"-->
v-ripple <!-- v-ripple-->
> <!-- >-->
<template #icon> <!-- <template #icon>-->
<ArtSvgIcon icon="ri:delete-bin-5-line" /> <!-- <ArtSvgIcon icon="ri:delete-bin-5-line" />-->
</template> <!-- </template>-->
删除 <!-- 删除-->
</ElButton> <!-- </ElButton>-->
</ElSpace> <!-- </ElSpace>-->
</template> </template>
</ArtTableHeader> </ArtTableHeader>
@@ -54,11 +54,11 @@
type="secondary" type="secondary"
@click="showDialog('edit', row)" @click="showDialog('edit', row)"
/> />
<SaButton <!-- <SaButton-->
v-permission="'dice:lottery_config:index:destroy'" <!-- v-permission="'dice:lottery_config:index:destroy'"-->
type="error" <!-- type="error"-->
@click="deleteRow(row, api.delete, refreshData)" <!-- @click="deleteRow(row, api.delete, refreshData)"-->
/> <!-- />-->
</div> </div>
</template> </template>
</ArtTable> </ArtTable>
@@ -121,16 +121,52 @@
core: { core: {
apiFn: api.list, apiFn: api.list,
columnsFactory: () => [ columnsFactory: () => [
{ type: 'selection' }, { prop: 'name', label: '名称', align: 'center' },
{ prop: 'name', label: '名称' }, { prop: 'type', label: '奖池类型', width: 100, align: 'center', formatter: typeFormatter },
{ prop: 'type', label: '奖池类型', width: 100, formatter: typeFormatter }, { prop: 'safety_line', label: '安全线', align: 'center' },
{ prop: 'safety_line', label: '安全线' }, {
{ prop: 't1_wight', label: 'T1池权重', width: 100, formatter: weightFormatter('t1_wight') }, prop: 't1_wight',
{ prop: 't2_wight', label: 'T2池权重', width: 100, formatter: weightFormatter('t2_wight') }, label: 'T1池权重',
{ prop: 't3_wight', label: 'T3池权重', width: 100, formatter: weightFormatter('t3_wight') }, width: 100,
{ prop: 't4_wight', label: 'T4池权重', width: 100, formatter: weightFormatter('t4_wight') }, align: 'center',
{ prop: 't5_wight', label: 'T5池权重', width: 100, formatter: weightFormatter('t5_wight') }, formatter: weightFormatter('t1_wight')
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true } },
{
prop: 't2_wight',
label: 'T2池权重',
width: 100,
align: 'center',
formatter: weightFormatter('t2_wight')
},
{
prop: 't3_wight',
label: 'T3池权重',
width: 100,
align: 'center',
formatter: weightFormatter('t3_wight')
},
{
prop: 't4_wight',
label: 'T4池权重',
width: 100,
align: 'center',
formatter: weightFormatter('t4_wight')
},
{
prop: 't5_wight',
label: 'T5池权重',
width: 100,
align: 'center',
formatter: weightFormatter('t5_wight')
},
{
prop: 'operation',
label: '操作',
width: 60,
align: 'center',
fixed: 'right',
useSlot: true
}
] ]
} }
}) })
@@ -141,9 +177,9 @@
dialogVisible, dialogVisible,
dialogData, dialogData,
showDialog, showDialog,
deleteRow, // deleteRow,
deleteSelectedRows, // deleteSelectedRows,
handleSelectionChange, handleSelectionChange
selectedRows // selectedRows
} = useSaiAdmin() } = useSaiAdmin()
</script> </script>

View File

@@ -9,7 +9,11 @@
> >
<el-form ref="formRef" :model="formData" :rules="rules" label-width="120px"> <el-form ref="formRef" :model="formData" :rules="rules" label-width="120px">
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" /> <el-input
v-model="formData.name"
placeholder="请输入名称"
:disabled="dialogType === 'edit'"
/>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input <el-input
@@ -27,6 +31,7 @@
placeholder="请选择奖池类型" placeholder="请选择奖池类型"
clearable clearable
style="width: 100%" style="width: 100%"
:disabled="dialogType === 'edit'"
> >
<el-option label="正常" :value="0" /> <el-option label="正常" :value="0" />
<el-option label="强制杀猪" :value="1" /> <el-option label="强制杀猪" :value="1" />

View File

@@ -7,29 +7,29 @@
<!-- 表格头部 --> <!-- 表格头部 -->
<ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData"> <ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData">
<template #left> <template #left>
<ElSpace wrap> <!-- <ElSpace wrap>-->
<ElButton <!-- <ElButton-->
v-permission="'dice:play_record:index:save'" <!-- v-permission="'dice:play_record:index:save'"-->
@click="showDialog('add')" <!-- @click="showDialog('add')"-->
v-ripple <!-- v-ripple-->
> <!-- >-->
<template #icon> <!-- <template #icon>-->
<ArtSvgIcon icon="ri:add-fill" /> <!-- <ArtSvgIcon icon="ri:add-fill" />-->
</template> <!-- </template>-->
新增 <!-- 新增-->
</ElButton> <!-- </ElButton>-->
<ElButton <!-- <ElButton-->
v-permission="'dice:play_record:index:destroy'" <!-- v-permission="'dice:play_record:index:destroy'"-->
:disabled="selectedRows.length === 0" <!-- :disabled="selectedRows.length === 0"-->
@click="deleteSelectedRows(api.delete, refreshData)" <!-- @click="deleteSelectedRows(api.delete, refreshData)"-->
v-ripple <!-- v-ripple-->
> <!-- >-->
<template #icon> <!-- <template #icon>-->
<ArtSvgIcon icon="ri:delete-bin-5-line" /> <!-- <ArtSvgIcon icon="ri:delete-bin-5-line" />-->
</template> <!-- </template>-->
删除 <!-- 删除-->
</ElButton> <!-- </ElButton>-->
</ElSpace> <!-- </ElSpace>-->
</template> </template>
</ArtTableHeader> </ArtTableHeader>
@@ -82,11 +82,11 @@
type="secondary" type="secondary"
@click="showDialog('edit', row)" @click="showDialog('edit', row)"
/> />
<SaButton <!-- <SaButton-->
v-permission="'dice:play_record:index:destroy'" <!-- v-permission="'dice:play_record:index:destroy'"-->
type="error" <!-- type="error"-->
@click="deleteRow(row, api.delete, refreshData)" <!-- @click="deleteRow(row, api.delete, refreshData)"-->
/> <!-- />-->
</div> </div>
</template> </template>
</ArtTable> </ArtTable>
@@ -168,7 +168,7 @@
core: { core: {
apiFn: api.list, apiFn: api.list,
columnsFactory: () => [ columnsFactory: () => [
{ type: 'selection' }, // { type: 'selection' },
{ prop: 'id', label: 'ID', width: 80 }, { prop: 'id', label: 'ID', width: 80 },
{ {
prop: 'player_id', prop: 'player_id',
@@ -206,9 +206,9 @@
dialogVisible, dialogVisible,
dialogData, dialogData,
showDialog, showDialog,
deleteRow, // deleteRow,
deleteSelectedRows, // deleteSelectedRows,
handleSelectionChange, handleSelectionChange
selectedRows // selectedRows
} = useSaiAdmin() } = useSaiAdmin()
</script> </script>

View File

@@ -158,23 +158,78 @@
apiFn: api.list, apiFn: api.list,
columnsFactory: () => [ columnsFactory: () => [
{ type: 'selection' }, { type: 'selection' },
{ prop: 'username', label: '用户名' }, { prop: 'username', label: '用户名', align: 'center' },
{ prop: 'phone', label: '手机号' }, { prop: 'phone', label: '手机号', align: 'center' },
{ prop: 'name', label: '昵称' }, { prop: 'name', label: '昵称', align: 'center' },
{ prop: 'status', label: '状态', width: 88, useSlot: true }, {
{ prop: 'coin', label: '平台币', width: 100, useSlot: true }, prop: 'status',
{ prop: 'is_up', label: '倍率', width: 80, formatter: isUpFormatter }, label: '状态',
{ prop: 't1_wight', label: 'T1池权重', width: 100, formatter: weightFormatter('t1_wight') }, width: 88,
{ prop: 't2_wight', label: 'T2池权重', width: 100, formatter: weightFormatter('t2_wight') }, align: 'center',
{ prop: 't3_wight', label: 'T3池权重', width: 100, formatter: weightFormatter('t3_wight') }, useSlot: true
{ prop: 't4_wight', label: 'T4池权重', width: 100, formatter: weightFormatter('t4_wight') }, },
{ prop: 't5_wight', label: 'T5池权重', width: 100, formatter: weightFormatter('t5_wight') }, {
{ prop: 'total_ticket_count', label: '总抽奖次数' }, prop: 'coin',
{ prop: 'paid_ticket_count', label: '购买抽奖次数' }, label: '平台币',
{ prop: 'free_ticket_count', label: '赠送抽奖次数' }, width: 100,
{ prop: 'created_at', label: '创建时间' }, align: 'center',
{ prop: 'updated_at', label: '更新时间' }, useSlot: true
{ prop: 'operation', label: '操作', width: 120, fixed: 'right', useSlot: true } },
{
prop: 'is_up',
label: '倍率',
width: 80,
align: 'center',
formatter: isUpFormatter
},
{
prop: 't1_wight',
label: 'T1池权重',
width: 80,
align: 'center',
formatter: weightFormatter('t1_wight')
},
{
prop: 't2_wight',
label: 'T2池权重',
width: 100,
align: 'center',
formatter: weightFormatter('t2_wight')
},
{
prop: 't3_wight',
label: 'T3池权重',
width: 100,
align: 'center',
formatter: weightFormatter('t3_wight')
},
{
prop: 't4_wight',
label: 'T4池权重',
width: 100,
align: 'center',
formatter: weightFormatter('t4_wight')
},
{
prop: 't5_wight',
label: 'T5池权重',
width: 100,
align: 'center',
formatter: weightFormatter('t5_wight')
},
{ prop: 'total_ticket_count', label: '总抽奖次数', align: 'center' },
{ prop: 'paid_ticket_count', label: '购买抽奖次数', align: 'center' },
{ prop: 'free_ticket_count', label: '赠送抽奖次数', align: 'center' },
{ prop: 'created_at', label: '创建时间', align: 'center' },
{ prop: 'updated_at', label: '更新时间', align: 'center' },
{
prop: 'operation',
label: '操作',
width: 100,
align: 'center',
fixed: 'right',
useSlot: true
}
] ]
} }
}) })

View File

@@ -8,23 +8,23 @@
<ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData"> <ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData">
<template #left> <template #left>
<ElSpace wrap> <ElSpace wrap>
<ElButton v-permission="'dice:player_ticket_record:index:save'" @click="showDialog('add')" v-ripple> <!-- <ElButton v-permission="'dice:player_ticket_record:index:save'" @click="showDialog('add')" v-ripple>-->
<template #icon> <!-- <template #icon>-->
<ArtSvgIcon icon="ri:add-fill" /> <!-- <ArtSvgIcon icon="ri:add-fill" />-->
</template> <!-- </template>-->
新增 <!-- 新增-->
</ElButton> <!-- </ElButton>-->
<ElButton <!-- <ElButton-->
v-permission="'dice:player_ticket_record:index:destroy'" <!-- v-permission="'dice:player_ticket_record:index:destroy'"-->
:disabled="selectedRows.length === 0" <!-- :disabled="selectedRows.length === 0"-->
@click="deleteSelectedRows(api.delete, refreshData)" <!-- @click="deleteSelectedRows(api.delete, refreshData)"-->
v-ripple <!-- v-ripple-->
> <!-- >-->
<template #icon> <!-- <template #icon>-->
<ArtSvgIcon icon="ri:delete-bin-5-line" /> <!-- <ArtSvgIcon icon="ri:delete-bin-5-line" />-->
</template> <!-- </template>-->
删除 <!-- 删除-->
</ElButton> <!-- </ElButton>-->
</ElSpace> </ElSpace>
</template> </template>
</ArtTableHeader> </ArtTableHeader>
@@ -50,11 +50,11 @@
type="secondary" type="secondary"
@click="showDialog('edit', row)" @click="showDialog('edit', row)"
/> />
<SaButton <!-- <SaButton-->
v-permission="'dice:player_ticket_record:index:destroy'" <!-- v-permission="'dice:player_ticket_record:index:destroy'"-->
type="error" <!-- type="error"-->
@click="deleteRow(row, api.delete, refreshData)" <!-- @click="deleteRow(row, api.delete, refreshData)"-->
/> <!-- />-->
</div> </div>
</template> </template>
</ArtTable> </ArtTable>
@@ -77,7 +77,6 @@
import TableSearch from './modules/table-search.vue' import TableSearch from './modules/table-search.vue'
import EditDialog from './modules/edit-dialog.vue' import EditDialog from './modules/edit-dialog.vue'
// 搜索表单 // 搜索表单
const searchForm = ref<Record<string, unknown>>({ const searchForm = ref<Record<string, unknown>>({
username: undefined, username: undefined,
@@ -127,16 +126,28 @@
const usernameFormatter = (row: Record<string, any>) => const usernameFormatter = (row: Record<string, any>) =>
row?.dicePlayer?.username ?? row?.player_id ?? '-' row?.dicePlayer?.username ?? row?.player_id ?? '-'
return [ return [
{ type: 'selection' }, // { type: 'selection' },
{ prop: 'id', label: 'ID', width: 80 }, { prop: 'id', label: 'ID', width: 80, align: 'center' },
{ prop: 'player_id', label: '玩家用户名', formatter: (row: Record<string, any>) => usernameFormatter(row) }, {
{ prop: 'use_coins', label: '消耗硬币' }, prop: 'player_id',
{ prop: 'total_ticket_count', label: '总抽奖次数' }, label: '玩家用户名',
{ prop: 'paid_ticket_count', label: '购买抽奖次数' }, align: 'center',
{ prop: 'free_ticket_count', label: '赠送抽奖次数' }, formatter: (row: Record<string, any>) => usernameFormatter(row)
{ prop: 'remark', label: '备注', width: 100, showOverflowTooltip: true }, },
{ prop: 'create_time', label: '创建时间', width: 170 }, { prop: 'use_coins', label: '消耗硬币', align: 'center' },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true } { prop: 'total_ticket_count', label: '总抽奖次数', align: 'center' },
{ prop: 'paid_ticket_count', label: '购买抽奖次数', align: 'center' },
{ prop: 'free_ticket_count', label: '赠送抽奖次数', align: 'center' },
{ prop: 'remark', label: '备注', width: 100, align: 'center', showOverflowTooltip: true },
{ prop: 'create_time', label: '创建时间', width: 170, align: 'center' },
{
prop: 'operation',
label: '操作',
width: 60,
align: 'center',
fixed: 'right',
useSlot: true
}
] ]
} }
} }
@@ -148,10 +159,9 @@
dialogVisible, dialogVisible,
dialogData, dialogData,
showDialog, showDialog,
deleteRow, // deleteRow,
deleteSelectedRows, // deleteSelectedRows,
handleSelectionChange, handleSelectionChange
selectedRows // selectedRows
} = useSaiAdmin() } = useSaiAdmin()
</script> </script>

View File

@@ -26,7 +26,12 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="消耗硬币" prop="use_coins"> <el-form-item label="消耗硬币" prop="use_coins">
<el-input-number v-model="formData.use_coins" placeholder="请输入消耗硬币" :min="0" /> <el-input-number
v-model="formData.use_coins"
placeholder="请输入消耗硬币"
:min="0"
:disabled="dialogType === 'edit'"
/>
</el-form-item> </el-form-item>
<el-form-item label="购买抽奖次数" prop="paid_ticket_count"> <el-form-item label="购买抽奖次数" prop="paid_ticket_count">
<el-input-number <el-input-number
@@ -34,6 +39,7 @@
placeholder="请输入购买抽奖次数" placeholder="请输入购买抽奖次数"
:min="0" :min="0"
@change="onTicketCountChange" @change="onTicketCountChange"
:disabled="dialogType === 'edit'"
/> />
</el-form-item> </el-form-item>
<el-form-item label="赠送抽奖次数" prop="free_ticket_count"> <el-form-item label="赠送抽奖次数" prop="free_ticket_count">
@@ -42,6 +48,7 @@
placeholder="请输入赠送抽奖次数" placeholder="请输入赠送抽奖次数"
:min="0" :min="0"
@change="onTicketCountChange" @change="onTicketCountChange"
:disabled="dialogType === 'edit'"
/> />
</el-form-item> </el-form-item>
<el-form-item label="总抽奖次数" prop="total_ticket_count"> <el-form-item label="总抽奖次数" prop="total_ticket_count">
@@ -60,6 +67,8 @@
placeholder="请输入备注(必填)" placeholder="请输入备注(必填)"
maxlength="500" maxlength="500"
show-word-limit show-word-limit
style="width: 100%"
:disabled="dialogType === 'edit'"
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@@ -7,29 +7,29 @@
<!-- 表格头部 --> <!-- 表格头部 -->
<ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData"> <ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData">
<template #left> <template #left>
<ElSpace wrap> <!-- <ElSpace wrap>-->
<ElButton <!-- <ElButton-->
v-permission="'dice:player_wallet_record:index:save'" <!-- v-permission="'dice:player_wallet_record:index:save'"-->
@click="showDialog('add')" <!-- @click="showDialog('add')"-->
v-ripple <!-- v-ripple-->
> <!-- >-->
<template #icon> <!-- <template #icon>-->
<ArtSvgIcon icon="ri:add-fill" /> <!-- <ArtSvgIcon icon="ri:add-fill" />-->
</template> <!-- </template>-->
新增 <!-- 新增-->
</ElButton> <!-- </ElButton>-->
<ElButton <!-- <ElButton-->
v-permission="'dice:player_wallet_record:index:destroy'" <!-- v-permission="'dice:player_wallet_record:index:destroy'"-->
:disabled="selectedRows.length === 0" <!-- :disabled="selectedRows.length === 0"-->
@click="deleteSelectedRows(api.delete, refreshData)" <!-- @click="deleteSelectedRows(api.delete, refreshData)"-->
v-ripple <!-- v-ripple-->
> <!-- >-->
<template #icon> <!-- <template #icon>-->
<ArtSvgIcon icon="ri:delete-bin-5-line" /> <!-- <ArtSvgIcon icon="ri:delete-bin-5-line" />-->
</template> <!-- </template>-->
删除 <!-- 删除-->
</ElButton> <!-- </ElButton>-->
</ElSpace> <!-- </ElSpace>-->
</template> </template>
</ArtTableHeader> </ArtTableHeader>
@@ -60,11 +60,11 @@
type="secondary" type="secondary"
@click="showDialog('edit', row)" @click="showDialog('edit', row)"
/> />
<SaButton <!-- <SaButton-->
v-permission="'dice:player_wallet_record:index:destroy'" <!-- v-permission="'dice:player_wallet_record:index:destroy'"-->
type="error" <!-- type="error"-->
@click="deleteRow(row, api.delete, refreshData)" <!-- @click="deleteRow(row, api.delete, refreshData)"-->
/> <!-- />-->
</div> </div>
</template> </template>
</ArtTable> </ArtTable>
@@ -203,7 +203,7 @@
{ {
prop: 'operation', prop: 'operation',
label: '操作', label: '操作',
width: 100, width: 60,
align: 'center', align: 'center',
fixed: 'right', fixed: 'right',
useSlot: true useSlot: true
@@ -218,10 +218,10 @@
dialogVisible, dialogVisible,
dialogData, dialogData,
showDialog, showDialog,
deleteRow, // deleteRow,
deleteSelectedRows, // deleteSelectedRows,
handleSelectionChange, handleSelectionChange
selectedRows // selectedRows
} = useSaiAdmin() } = useSaiAdmin()
</script> </script>

View File

@@ -27,7 +27,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="类型" prop="type"> <el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型" clearable style="width: 100%"> <el-select
v-model="formData.type"
placeholder="请选择类型"
clearable
style="width: 100%"
:disabled="dialogType === 'edit'"
>
<el-option label="充值" :value="0" /> <el-option label="充值" :value="0" />
<el-option label="提现" :value="1" /> <el-option label="提现" :value="1" />
<el-option label="购买抽奖次数" :value="2" /> <el-option label="购买抽奖次数" :value="2" />
@@ -42,6 +48,7 @@
:precision="2" :precision="2"
style="width: 100%" style="width: 100%"
@change="onCoinChange" @change="onCoinChange"
:disabled="dialogType === 'edit'"
/> />
</el-form-item> </el-form-item>
<el-form-item label="钱包操作前" prop="wallet_before"> <el-form-item label="钱包操作前" prop="wallet_before">
@@ -70,6 +77,7 @@
placeholder="选填" placeholder="选填"
maxlength="500" maxlength="500"
show-word-limit show-word-limit
:disabled="dialogType === 'edit'"
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@@ -8,27 +8,27 @@
<ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData"> <ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData">
<template #left> <template #left>
<ElSpace wrap> <ElSpace wrap>
<ElButton <!-- <ElButton-->
v-permission="'dice:reward_config:index:save'" <!-- v-permission="'dice:reward_config:index:save'"-->
@click="showDialog('add')" <!-- @click="showDialog('add')"-->
v-ripple <!-- v-ripple-->
> <!-- >-->
<template #icon> <!-- <template #icon>-->
<ArtSvgIcon icon="ri:add-fill" /> <!-- <ArtSvgIcon icon="ri:add-fill" />-->
</template> <!-- </template>-->
新增 <!-- 新增-->
</ElButton> <!-- </ElButton>-->
<ElButton <!-- <ElButton-->
v-permission="'dice:reward_config:index:destroy'" <!-- v-permission="'dice:reward_config:index:destroy'"-->
:disabled="selectedRows.length === 0" <!-- :disabled="selectedRows.length === 0"-->
@click="deleteSelectedRows(api.delete, refreshData)" <!-- @click="deleteSelectedRows(api.delete, refreshData)"-->
v-ripple <!-- v-ripple-->
> <!-- >-->
<template #icon> <!-- <template #icon>-->
<ArtSvgIcon icon="ri:delete-bin-5-line" /> <!-- <ArtSvgIcon icon="ri:delete-bin-5-line" />-->
</template> <!-- </template>-->
删除 <!-- 删除-->
</ElButton> <!-- </ElButton>-->
</ElSpace> </ElSpace>
</template> </template>
</ArtTableHeader> </ArtTableHeader>
@@ -54,11 +54,11 @@
type="secondary" type="secondary"
@click="showDialog('edit', row)" @click="showDialog('edit', row)"
/> />
<SaButton <!-- <SaButton-->
v-permission="'dice:reward_config:index:destroy'" <!-- v-permission="'dice:reward_config:index:destroy'"-->
type="error" <!-- type="error"-->
@click="deleteRow(row, api.delete, refreshData)" <!-- @click="deleteRow(row, api.delete, refreshData)"-->
/> <!-- />-->
</div> </div>
</template> </template>
</ArtTable> </ArtTable>
@@ -116,14 +116,21 @@
apiFn: api.list, apiFn: api.list,
apiParams: { limit: 100 }, apiParams: { limit: 100 },
columnsFactory: () => [ columnsFactory: () => [
{ type: 'selection' }, // { type: 'selection' },
{ prop: 'id', label: 'ID(索引)', width: 80 }, { prop: 'id', label: 'ID(索引)', width: 80, align: 'center' },
{ prop: 'grid_number', label: '色子点数' }, { prop: 'grid_number', label: '色子点数', align: 'center' },
{ prop: 'ui_text', label: '前端显示文本' }, { prop: 'ui_text', label: '前端显示文本', align: 'center' },
{ prop: 'real_ev', label: '真实资金结算' }, { prop: 'real_ev', label: '真实资金结算', align: 'center' },
{ prop: 'tier', label: '所属档位', sortable: true }, { prop: 'tier', label: '所属档位', sortable: true, align: 'center' },
// { prop: 'create_time', label: '创建时间', sortable: true }, // { prop: 'create_time', label: '创建时间', sortable: true, align: 'center' },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true } {
prop: 'operation',
label: '操作',
width: 60,
align: 'center',
fixed: 'right',
useSlot: true
}
] ]
} }
}) })
@@ -134,9 +141,9 @@
dialogVisible, dialogVisible,
dialogData, dialogData,
showDialog, showDialog,
deleteRow, // deleteRow,
deleteSelectedRows, // deleteSelectedRows,
handleSelectionChange, handleSelectionChange
selectedRows // selectedRows
} = useSaiAdmin() } = useSaiAdmin()
</script> </script>

View File

@@ -9,7 +9,11 @@
> >
<el-form ref="formRef" :model="formData" :rules="rules" label-width="120px"> <el-form ref="formRef" :model="formData" :rules="rules" label-width="120px">
<el-form-item label="色子点数" prop="grid_number"> <el-form-item label="色子点数" prop="grid_number">
<el-input-number v-model="formData.grid_number" placeholder="请输入色子点数" /> <el-input-number
v-model="formData.grid_number"
placeholder="请输入色子点数"
:disabled="dialogType === 'edit'"
/>
</el-form-item> </el-form-item>
<el-form-item label="前端显示文本" prop="ui_text"> <el-form-item label="前端显示文本" prop="ui_text">
<el-input v-model="formData.ui_text" placeholder="请输入前端显示文本" /> <el-input v-model="formData.ui_text" placeholder="请输入前端显示文本" />
@@ -23,6 +27,7 @@
placeholder="请选择所属档位" placeholder="请选择所属档位"
clearable clearable
style="width: 100%" style="width: 100%"
:disabled="dialogType === 'edit'"
> >
<el-option label="T1" value="T1" /> <el-option label="T1" value="T1" />
<el-option label="T2" value="T2" /> <el-option label="T2" value="T2" />

View File

@@ -239,6 +239,10 @@ class PlayStartLogic
$arr['roll_array'] = json_decode($arr['roll_array'], true) ?? []; $arr['roll_array'] = json_decode($arr['roll_array'], true) ?? [];
} }
$arr['roll_number'] = is_array($arr['roll_array'] ?? null) ? array_sum($arr['roll_array']) : 0; $arr['roll_number'] = is_array($arr['roll_array'] ?? null) ? array_sum($arr['roll_array']) : 0;
$arr['tier'] = $tier ?? '';
// 记录完数据后返回当前玩家余额与抽奖次数
$arr['coin'] = $updated ? (float) $updated->coin : 0;
$arr['total_ticket_count'] = $updated ? (int) $updated->total_ticket_count : 0;
return $arr; return $arr;
} }

View File

@@ -35,6 +35,12 @@ class DiceConfig extends BaseModel
*/ */
protected $table = 'dice_config'; protected $table = 'dice_config';
/**
* 是否自动维护 create_time / update_time继承基类 CREATED_AT / UPDATED_AT
* @var bool
*/
public $timestamps = true;
/** /**
* 属性转换 * 属性转换
*/ */