fix: reward page
This commit is contained in:
@@ -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 = '编辑'
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user