fix: reward page

This commit is contained in:
zzc
2026-03-17 08:52:08 +08:00
parent 2aec094d27
commit 2a89ef310b
2 changed files with 37 additions and 23 deletions

View File

@@ -95,18 +95,11 @@
} }
}, },
showEdit(row) { showEdit(row) {
if (!row) { if (!row || !row.id) {
this.title = '添加' this.title = '添加'
this.form = { this.form = Object.assign({}, this.$options.data().form)
appId: '', if (row) {
name: '', this.form = Object.assign(this.form, row)
scene: '',
limitType: 'daily',
limitCount: 1,
gainPoints: 0,
gainExp: 0,
description: '',
isEnabled: true,
} }
} else { } else {
this.title = '编辑' this.title = '编辑'

View File

@@ -1,5 +1,9 @@
<template> <template>
<div class="reward-management-container"> <div class="reward-management-container">
<el-tabs v-model="queryForm.appId" type="card" @tab-click="handleTabClick">
<el-tab-pane v-for="item in applicationList" :key="item.id" :label="item.name" :name="item.id" />
</el-tabs>
<vab-query-form> <vab-query-form>
<vab-query-form-left-panel :span="12"> <vab-query-form-left-panel :span="12">
<el-button icon="el-icon-plus" type="primary" @click="handleEdit">添加</el-button> <el-button icon="el-icon-plus" type="primary" @click="handleEdit">添加</el-button>
@@ -17,12 +21,10 @@
</vab-query-form-right-panel> </vab-query-form-right-panel>
</vab-query-form> </vab-query-form>
<el-table v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText" @selection-change="setSelectRows"> <el-table v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText">
<el-table-column align="center" show-overflow-tooltip type="selection" width="55" /> <el-table-column align="center" label="规则名称" min-width="150" prop="name" show-overflow-tooltip />
<el-table-column align="center" label="应用ID" prop="appId" show-overflow-tooltip width="120" />
<el-table-column align="center" label="规则名称" prop="name" show-overflow-tooltip min-width="150" />
<el-table-column align="center" label="场景" prop="scene" show-overflow-tooltip width="120" /> <el-table-column align="center" label="场景" prop="scene" show-overflow-tooltip width="120" />
<el-table-column align="center" label="描述" prop="description" show-overflow-tooltip min-width="200" /> <el-table-column align="center" label="描述" min-width="200" prop="description" show-overflow-tooltip />
<el-table-column align="center" label="奖励内容" width="150"> <el-table-column align="center" label="奖励内容" width="150">
<template #default="{ row }"> <template #default="{ row }">
@@ -35,10 +37,10 @@
<template #default="{ row }"> <template #default="{ row }">
<div> <div>
类型: 类型:
<el-tag size="mini" v-if="row.limitType === 'daily'">每日</el-tag> <el-tag v-if="row.limitType === 'daily'" size="mini">每日</el-tag>
<el-tag size="mini" type="success" v-else-if="row.limitType === 'weekly'">每周</el-tag> <el-tag v-else-if="row.limitType === 'weekly'" size="mini" type="success">每周</el-tag>
<el-tag size="mini" type="warning" v-else-if="row.limitType === 'lifetime'">终身</el-tag> <el-tag v-else-if="row.limitType === 'lifetime'" size="mini" type="warning">终身</el-tag>
<el-tag size="mini" type="info" v-else>无限制</el-tag> <el-tag v-else size="mini" type="info">无限制</el-tag>
</div> </div>
<div v-if="row.limitType !== 'none'">次数: {{ row.limitCount === -1 ? '无限制' : row.limitCount }}</div> <div v-if="row.limitType !== 'none'">次数: {{ row.limitCount === -1 ? '无限制' : row.limitCount }}</div>
</template> </template>
@@ -46,7 +48,7 @@
<el-table-column align="center" label="状态" prop="isEnabled" width="100"> <el-table-column align="center" label="状态" prop="isEnabled" width="100">
<template #default="{ row }"> <template #default="{ row }">
<el-switch v-model="row.isEnabled" @change="handleStatusChange(row)"></el-switch> <el-switch v-model="row.isEnabled" @change="handleStatusChange(row)" />
</template> </template>
</el-table-column> </el-table-column>
@@ -56,7 +58,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="操作" show-overflow-tooltip width="150" fixed="right"> <el-table-column align="center" fixed="right" label="操作" show-overflow-tooltip width="150">
<template #default="{ row }"> <template #default="{ row }">
<el-button type="text" @click="handleEdit(row)">编辑</el-button> <el-button type="text" @click="handleEdit(row)">编辑</el-button>
<el-button type="text" @click="handleDelete(row)">删除</el-button> <el-button type="text" @click="handleDelete(row)">删除</el-button>
@@ -80,6 +82,7 @@
<script> <script>
import { getRewardRuleList, doDelete, toggleEnable } from '@/api/system/reward' import { getRewardRuleList, doDelete, toggleEnable } from '@/api/system/reward'
import { getList as getApplicationList } from '@/api/appManagement'
import { formatTime } from '@/utils' import { formatTime } from '@/utils'
import Edit from './components/RewardManagementEdit' import Edit from './components/RewardManagementEdit'
@@ -98,14 +101,30 @@
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: '', name: '',
appId: '',
}, },
applicationList: [],
} }
}, },
created() { created() {
this.fetchApplicationList()
this.fetchData() this.fetchData()
}, },
methods: { methods: {
formatTime, formatTime,
async fetchApplicationList() {
try {
const { data } = await getApplicationList({ pageNo: 1, pageSize: 100 })
this.applicationList = data.list
} catch (error) {
console.error('获取应用列表失败', error)
}
},
handleTabClick(tab) {
this.queryForm.appId = tab.name
this.queryForm.pageNo = 1
this.fetchData()
},
setSelectRows(val) { setSelectRows(val) {
this.selectRows = val this.selectRows = val
}, },
@@ -113,7 +132,9 @@
if (row.id) { if (row.id) {
this.$refs['edit'].showEdit(row) this.$refs['edit'].showEdit(row)
} else { } else {
this.$refs['edit'].showEdit() // 如果当前选中了某个应用,自动填入 appId
const defaultData = this.queryForm.appId ? { appId: this.queryForm.appId } : null
this.$refs['edit'].showEdit(defaultData)
} }
}, },
handleDelete(row) { handleDelete(row) {