兑换记录
This commit is contained in:
parent
f2c6c5ce5e
commit
2cc8f2ed06
@ -1,6 +1,6 @@
|
|||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
|
||||||
/* ---------------查询兑换物品 ----------------- */
|
/* ---------------兑换物品 ----------------- */
|
||||||
export function getGifts(params) {
|
export function getGifts(params) {
|
||||||
return request({
|
return request({
|
||||||
url: '/games/gift',
|
url: '/games/gift',
|
||||||
@ -32,7 +32,7 @@ export function delGift(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------查询游戏兑换物品配置------------------ */
|
/* ---------------游戏兑换物品配置------------------ */
|
||||||
|
|
||||||
export function getGiftList(params) {
|
export function getGiftList(params) {
|
||||||
return request({
|
return request({
|
||||||
@ -73,7 +73,7 @@ export function delGiftList(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------查询兑换物品记录------------------ */
|
/* ---------------物品兑换记录------------------ */
|
||||||
export function getGiftRecords(params) {
|
export function getGiftRecords(params) {
|
||||||
return request({
|
return request({
|
||||||
url: '/games/gift/record',
|
url: '/games/gift/record',
|
||||||
@ -81,3 +81,12 @@ export function getGiftRecords(params) {
|
|||||||
params,
|
params,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function updateGiftRecord(data) {
|
||||||
|
return request({
|
||||||
|
url: '/games/gift/record',
|
||||||
|
method: 'put',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -167,6 +167,12 @@ const gamesRouter = {
|
|||||||
name: 'GameDetailsGift',
|
name: 'GameDetailsGift',
|
||||||
meta: {title: '仓库'},
|
meta: {title: '仓库'},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'gift/record',
|
||||||
|
component: () => import('@/views/games/details/gift/record'),
|
||||||
|
name: 'GameDetailsRecord',
|
||||||
|
meta: {title: '记录'},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'order',
|
path: 'order',
|
||||||
component: () => import('@/views/games/details/order'),
|
component: () => import('@/views/games/details/order'),
|
||||||
|
@ -316,31 +316,31 @@ export default {
|
|||||||
value: 2,
|
value: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '抽屉-A',
|
name: '抽屉-普通',
|
||||||
value: 0,
|
value: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '抽屉-B',
|
name: '抽屉-详细',
|
||||||
value: 3,
|
value: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '弹窗-A',
|
name: '弹窗-大',
|
||||||
value: 4,
|
value: 4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '弹窗-B',
|
name: '弹窗-小',
|
||||||
value: 5,
|
value: 5,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '浮层-A',
|
name: '滚动-横向',
|
||||||
value: 6,
|
value: 6,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '浮层-B',
|
name: '滚动-横向(小)',
|
||||||
value: 7,
|
value: 7,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '浮层-C',
|
name: '滚动-竖向',
|
||||||
value: 8,
|
value: 8,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -498,6 +498,7 @@ export default {
|
|||||||
this.allPos = data.message || []
|
this.allPos = data.message || []
|
||||||
this.allPos.map(item => {
|
this.allPos.map(item => {
|
||||||
item.area = JSON.parse(item.area)
|
item.area = JSON.parse(item.area)
|
||||||
|
item.area = item.area.map(item => parseInt(item))
|
||||||
item.ld_property = item.ld_property
|
item.ld_property = item.ld_property
|
||||||
? JSON.parse(item.ld_property)
|
? JSON.parse(item.ld_property)
|
||||||
: {
|
: {
|
||||||
@ -521,10 +522,7 @@ export default {
|
|||||||
.then(res => {
|
.then(res => {
|
||||||
const {data} = res
|
const {data} = res
|
||||||
if (data.errcode === 0) {
|
if (data.errcode === 0) {
|
||||||
this.areaList = data.adAreaList.map(item => {
|
this.areaList = data.adAreaList
|
||||||
item.area_id = item.area_id.toString()
|
|
||||||
return item
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
@ -577,7 +575,7 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
const posInfo = JSON.parse(JSON.stringify(this.allPos[index]))
|
const posInfo = JSON.parse(JSON.stringify(this.allPos[index]))
|
||||||
|
|
||||||
if(posInfo.ld_property.related === posInfo.id) {
|
if (posInfo.ld_property.related === posInfo.id) {
|
||||||
this.$message.error('关联广告位不可选则自身!')
|
this.$message.error('关联广告位不可选则自身!')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
369
src/views/games/details/gift/record.vue
Normal file
369
src/views/games/details/gift/record.vue
Normal file
@ -0,0 +1,369 @@
|
|||||||
|
<template>
|
||||||
|
<div class="main-content">
|
||||||
|
<!-- filter -->
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
class="filter"
|
||||||
|
>
|
||||||
|
<el-form-item label="平台">
|
||||||
|
<el-select
|
||||||
|
v-model="platform_id"
|
||||||
|
placeholder="请选择平台"
|
||||||
|
class="w100"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in platformsArr"
|
||||||
|
:key="item.platform.platform_id"
|
||||||
|
:label="item.platform.name"
|
||||||
|
:value="item.platform.platform_id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="物品ID">
|
||||||
|
<el-input
|
||||||
|
v-model="gift_id"
|
||||||
|
placeholder="请输入物品ID"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="类型">
|
||||||
|
<el-select
|
||||||
|
v-model="type"
|
||||||
|
placeholder="请选择物品类型"
|
||||||
|
class="w100"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
label="所有"
|
||||||
|
:value="''"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
v-for="(val,key) in typeList"
|
||||||
|
:key="key"
|
||||||
|
:label="val"
|
||||||
|
:value="key"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="使用状态">
|
||||||
|
<el-select
|
||||||
|
v-model="used"
|
||||||
|
placeholder="请选择状态"
|
||||||
|
class="w100"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
label="所有"
|
||||||
|
:value="''"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
label="已使用"
|
||||||
|
:value="true"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
label="未使用"
|
||||||
|
:value="false"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click="search"
|
||||||
|
>查询</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<!-- filter end -->
|
||||||
|
<span
|
||||||
|
class="ipt-class"
|
||||||
|
style="color: #aaa; font-size: 12px;"
|
||||||
|
>物品类型为话费或实物时,code字段包含用户手机号</span>
|
||||||
|
<el-table
|
||||||
|
v-loading="isLoaded"
|
||||||
|
:data="tableData"
|
||||||
|
style="width: 100%"
|
||||||
|
class="table mgt-20 mgb-20"
|
||||||
|
>
|
||||||
|
<el-table-column
|
||||||
|
type="index"
|
||||||
|
width="50"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="user_id"
|
||||||
|
label="用户ID"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="gift_info.gift_name"
|
||||||
|
label="物品名称"
|
||||||
|
show-overflow-tooltip
|
||||||
|
width="200"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="gift_info.gift_id"
|
||||||
|
label="物品ID"
|
||||||
|
show-overflow-tooltip
|
||||||
|
width="180"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="gift_info.type"
|
||||||
|
label="物品类型"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:formatter="formatType"
|
||||||
|
width="100"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="code"
|
||||||
|
label="code"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="used"
|
||||||
|
label="兑换状态"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:formatter="formatUsed"
|
||||||
|
width="100"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="createdAt"
|
||||||
|
label="兑换日期"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:formatter="formatDate"
|
||||||
|
width="200"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
fixed="right"
|
||||||
|
width="126"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="permEdit && !scope.row.used"
|
||||||
|
type="text"
|
||||||
|
size="small"
|
||||||
|
@click.stop="useCode(scope.row)"
|
||||||
|
>确认完成</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<!-- pagination -->
|
||||||
|
<el-pagination
|
||||||
|
class="al-r"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:hide-on-single-page="true"
|
||||||
|
:current-page="currentPage"
|
||||||
|
:page-sizes="[10, 20, 50, 100]"
|
||||||
|
:page-size="pageSize"
|
||||||
|
:total="total"
|
||||||
|
@size-change="sizeChange"
|
||||||
|
@current-change="pageChange"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {mapGetters} from 'vuex'
|
||||||
|
import {getGame, updateRC} from '@/api/games'
|
||||||
|
import {getGiftRecords, updateGiftRecord} from '@/api/gift'
|
||||||
|
import getPageTitle from '@/utils/get-page-title'
|
||||||
|
import {reject, Promise} from 'q'
|
||||||
|
import moment from 'moment'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'GameDetailsData',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// common
|
||||||
|
uid: '',
|
||||||
|
token: '',
|
||||||
|
platform_id: '',
|
||||||
|
gift_id: '',
|
||||||
|
used: '',
|
||||||
|
type: '',
|
||||||
|
platformsArr: [],
|
||||||
|
gameInfo: {},
|
||||||
|
permEdit: false,
|
||||||
|
typeList: {
|
||||||
|
'0': '其他',
|
||||||
|
'1': '话费',
|
||||||
|
'2': '实物',
|
||||||
|
},
|
||||||
|
|
||||||
|
// table
|
||||||
|
isLoaded: false,
|
||||||
|
tableData: [],
|
||||||
|
|
||||||
|
// pagination
|
||||||
|
currentPage: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
total: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['userInfo']),
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.uid = this.$route.params.uid
|
||||||
|
|
||||||
|
this.permEdit =
|
||||||
|
this.userInfo.permissions.includes(`${this.uid}-edit`) ||
|
||||||
|
this.userInfo.permissions.includes(`${this.uid}-publish`) ||
|
||||||
|
this.userInfo.permissions.includes(`games-writeable`)
|
||||||
|
|
||||||
|
this.getGameInfo(this.getData)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getGameInfo(cb) {
|
||||||
|
const dataType = this.isDev ? 'dev' : 'pro'
|
||||||
|
getGame({uid: this.uid, data_type: dataType})
|
||||||
|
.then(res => {
|
||||||
|
const {data} = res
|
||||||
|
if (data.errcode === 0) {
|
||||||
|
this.gameInfo = data.gameInfo
|
||||||
|
this.platformsArr = data.gameInfo.platforms
|
||||||
|
this.$route.meta.title = this.gameInfo.game_name
|
||||||
|
document.title = getPageTitle(this.gameInfo.game_name)
|
||||||
|
if (this.$route.query.platform_id) {
|
||||||
|
this.platform_id = this.$route.query.platform_id
|
||||||
|
} else {
|
||||||
|
this.platform_id = this.platformsArr[0]
|
||||||
|
? this.platformsArr[0].platform.platform_id
|
||||||
|
: ''
|
||||||
|
}
|
||||||
|
if (cb && cb instanceof Function) cb()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getData() {
|
||||||
|
this.isLoaded = true
|
||||||
|
getGiftRecords({
|
||||||
|
uid: this.uid,
|
||||||
|
platform_id: this.platform_id,
|
||||||
|
game_id: this.gameInfo.game_id,
|
||||||
|
used: this.used,
|
||||||
|
gift_id: this.gift_id,
|
||||||
|
type: this.type,
|
||||||
|
currentPage: this.currentPage,
|
||||||
|
pageSize: this.pageSize,
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
const data = res.data
|
||||||
|
if (data.errcode === 0) {
|
||||||
|
this.isLoaded = false
|
||||||
|
this.tableData = data.result
|
||||||
|
console.log(this.tableData)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(err)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
search() {
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
// table
|
||||||
|
formatType(row, column, cellValue, index) {
|
||||||
|
return this.typeList[cellValue]
|
||||||
|
},
|
||||||
|
formatUsed(row, column, cellValue, index) {
|
||||||
|
return cellValue ? '已使用' : '未使用'
|
||||||
|
},
|
||||||
|
formatDate(row, column, cellValue, index) {
|
||||||
|
return cellValue ? moment(cellValue).format('YYYY-MM-DD HH:MM:SS') : '-'
|
||||||
|
},
|
||||||
|
useCode(row) {
|
||||||
|
this.$confirm('是否修改该记录使用状态为已完成?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
updateGiftRecord({
|
||||||
|
uid: this.uid,
|
||||||
|
_id: row._id,
|
||||||
|
used: true,
|
||||||
|
}).then(res => {
|
||||||
|
const data = res.data
|
||||||
|
if (data.errcode === 0) {
|
||||||
|
this.$message.success('操作成功!')
|
||||||
|
this.getData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.$message({
|
||||||
|
type: 'info',
|
||||||
|
message: '已取消操作',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// pagination
|
||||||
|
sizeChange(val) {
|
||||||
|
this.pageSize = val
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
pageChange(val) {
|
||||||
|
this.currentPage = val
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.data-panel {
|
||||||
|
padding: 0 20px 20px 20px;
|
||||||
|
.part {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
border-bottom: 1px solid #f5f7fa;
|
||||||
|
color: #606266;
|
||||||
|
.title {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.data {
|
||||||
|
padding-left: 20px;
|
||||||
|
li {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
display: inline-block;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 200px;
|
||||||
|
padding: 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
font-size: 12px;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
&.hd {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 700;
|
||||||
|
&:hover {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:hover {
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.btn-group >>> .el-button + .el-button {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
@ -224,7 +224,7 @@
|
|||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<!-- <el-form-item
|
||||||
label="兑换记录"
|
label="兑换记录"
|
||||||
v-if="!isNew"
|
v-if="!isNew"
|
||||||
>
|
>
|
||||||
@ -232,7 +232,7 @@
|
|||||||
@click="viewRecord(modalForm.gift_id)"
|
@click="viewRecord(modalForm.gift_id)"
|
||||||
size="mini"
|
size="mini"
|
||||||
>兑换记录</el-button>
|
>兑换记录</el-button>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer">
|
<div slot="footer">
|
||||||
<el-button @click="closeModal">取 消</el-button>
|
<el-button @click="closeModal">取 消</el-button>
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
<template slot="title">兑换</template>
|
<template slot="title">兑换</template>
|
||||||
<el-menu-item :index="`/games/details/${uid}/gift/cfg`">配置</el-menu-item>
|
<el-menu-item :index="`/games/details/${uid}/gift/cfg`">配置</el-menu-item>
|
||||||
<el-menu-item :index="`/games/details/${uid}/gift/store`">仓库</el-menu-item>
|
<el-menu-item :index="`/games/details/${uid}/gift/store`">仓库</el-menu-item>
|
||||||
|
<el-menu-item :index="`/games/details/${uid}/gift/record`">记录</el-menu-item>
|
||||||
</el-submenu>
|
</el-submenu>
|
||||||
<!-- TODO: 开放订单页 -->
|
<!-- TODO: 开放订单页 -->
|
||||||
<!-- <el-menu-item
|
<!-- <el-menu-item
|
||||||
|
Loading…
x
Reference in New Issue
Block a user