wangfukang 2 weeks ago
parent
commit
0f830e99a3
  1. 6
      src/api/planet.js
  2. 117
      src/views/app/business/luckey/luckey.vue

6
src/api/planet.js

@ -18,6 +18,12 @@ export const planetTaskPage = (params) => getRequest(`${PREFIX}/task/page`, para
export const planetTaskSave = (params) => postBodyRequest(`${PREFIX}/task/save`, params); export const planetTaskSave = (params) => postBodyRequest(`${PREFIX}/task/save`, params);
export const planetTaskDelete = (id) => postRequest(`${PREFIX}/task/delete`, { id }); export const planetTaskDelete = (id) => postRequest(`${PREFIX}/task/delete`, { id });
// ---------------- 拉新返现 ----------------
export const planetInviteRewardConfigPage = (params) => getRequest(`${PREFIX}/inviteReward/page`, params);
export const planetInviteRewardConfigSave = (params) => postBodyRequest(`${PREFIX}/inviteReward/save`, params);
export const planetInviteRewardConfigDelete = (id) => postRequest(`${PREFIX}/inviteReward/delete`, { id });
export const planetInviteRewardRecordPage = (params) => getRequest(`${PREFIX}/inviteReward/record/page`, params);
// ---------------- BUFF ---------------- // ---------------- BUFF ----------------
export const planetBuffPage = (params) => getRequest(`${PREFIX}/buff/page`, params); export const planetBuffPage = (params) => getRequest(`${PREFIX}/buff/page`, params);
export const planetBuffSave = (params) => postBodyRequest(`${PREFIX}/buff/save`, params); export const planetBuffSave = (params) => postBodyRequest(`${PREFIX}/buff/save`, params);

117
src/views/app/business/luckey/luckey.vue

@ -47,6 +47,23 @@
@on-change="p => changePage('task', p)" size="small" show-total></Page> @on-change="p => changePage('task', p)" size="small" show-total></Page>
</Row> </Row>
</TabPane> </TabPane>
<TabPane label="拉新返现配置" name="inviteReward">
<Button type="primary" icon="md-add" @click="openInviteReward()" style="margin-bottom:12px">新增配置</Button>
<Table border :loading="inviteReward.loading" :columns="inviteRewardColumns" :data="inviteReward.data"></Table>
<Row type="flex" justify="end" class="page">
<Page :current="inviteReward.pageNumber" :total="inviteReward.total" :page-size="inviteReward.pageSize"
@on-change="p => changePage('inviteReward', p)" size="small" show-total></Page>
</Row>
</TabPane>
<TabPane label="拉新返现记录" name="inviteRewardRecord">
<Table border :loading="inviteRewardRecord.loading" :columns="inviteRewardRecordColumns" :data="inviteRewardRecord.data"></Table>
<Row type="flex" justify="end" class="page">
<Page :current="inviteRewardRecord.pageNumber" :total="inviteRewardRecord.total" :page-size="inviteRewardRecord.pageSize"
@on-change="p => changePage('inviteRewardRecord', p)" size="small" show-total></Page>
</Row>
</TabPane>
<TabPane label="学院排行榜" name="adventureRank"> <TabPane label="学院排行榜" name="adventureRank">
<Table border :loading="adventureRank.loading" :columns="adventureRankColumns" :data="adventureRank.data"></Table> <Table border :loading="adventureRank.loading" :columns="adventureRankColumns" :data="adventureRank.data"></Table>
@ -286,6 +303,22 @@
</div> </div>
</Modal> </Modal>
<!-- 拉新返现配置 -->
<Modal v-model="inviteRewardModal" :title="inviteRewardForm.id ? '编辑拉新返现配置' : '新增拉新返现配置'" :mask-closable="false">
<Form :label-width="110">
<FormItem label="所属校区"><Input v-model="regionName" disabled placeholder="自动取自登录校区" /></FormItem>
<FormItem label="奖励金额"><InputNumber v-model="inviteRewardForm.rewardAmount" :min="0" :step="0.01" style="width:100%" /></FormItem>
<FormItem label="每日上限"><InputNumber v-model="inviteRewardForm.dailyLimit" :min="0" style="width:100%" /></FormItem>
<FormItem label="总预算"><InputNumber v-model="inviteRewardForm.totalBudget" :min="0" :step="0.01" style="width:100%" /></FormItem>
<FormItem label="是否启用"><i-switch v-model="inviteRewardForm.enabled" :true-value="1" :false-value="0" /></FormItem>
<FormItem label="备注"><Input v-model="inviteRewardForm.remark" type="textarea" /></FormItem>
</Form>
<div slot="footer">
<Button @click="inviteRewardModal=false">取消</Button>
<Button type="primary" @click="saveInviteReward">保存</Button>
</div>
</Modal>
<!-- BUFF编辑 --> <!-- BUFF编辑 -->
<Modal v-model="buffModal" :title="buffForm.id ? '编辑BUFF' : '新增BUFF'" :mask-closable="false"> <Modal v-model="buffModal" :title="buffForm.id ? '编辑BUFF' : '新增BUFF'" :mask-closable="false">
<Form :label-width="90"> <Form :label-width="90">
@ -391,6 +424,7 @@
planetPoolPage, planetPoolSave, planetPoolDelete, planetPoolPage, planetPoolSave, planetPoolDelete,
planetRewardList, planetRewardSave, planetRewardDelete, planetRewardList, planetRewardSave, planetRewardDelete,
planetTaskPage, planetTaskSave, planetTaskDelete, planetTaskPage, planetTaskSave, planetTaskDelete,
planetInviteRewardConfigPage, planetInviteRewardConfigSave, planetInviteRewardConfigDelete, planetInviteRewardRecordPage,
planetBuffPage, planetBuffSave, planetBuffDelete, planetBuffPage, planetBuffSave, planetBuffDelete,
planetNewsPage, planetNewsSave, planetNewsDelete, planetNewsPage, planetNewsSave, planetNewsDelete,
planetRankPage, planetHuntPage, planetDrawPage, planetWinnerPage, planetRankPage, planetHuntPage, planetDrawPage, planetWinnerPage,
@ -416,6 +450,8 @@
regionName:'', regionName:'',
pool: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 }, pool: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 },
task: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 }, task: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 },
inviteReward: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 },
inviteRewardRecord: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 },
buff: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 }, buff: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 },
news: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 }, news: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 },
rank: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 }, rank: { loading: false, data: [], total: 0, pageNumber: 1, pageSize: 10 },
@ -445,6 +481,8 @@
rewardForm: {}, rewardForm: {},
taskModal: false, taskModal: false,
taskForm: {}, taskForm: {},
inviteRewardModal: false,
inviteRewardForm: {},
buffModal: false, buffModal: false,
buffForm: {}, buffForm: {},
newsModal: false, newsModal: false,
@ -601,6 +639,38 @@
} }
] ]
}, },
inviteRewardColumns() {
return [
{ title: '奖励金额', key: 'rewardAmount', minWidth: 100 },
{ title: '每日上限', key: 'dailyLimit', minWidth: 100 },
{ title: '总预算', key: 'totalBudget', minWidth: 100 },
{ title: '已发放', key: 'usedBudget', minWidth: 100 },
{ title: '启用', minWidth: 70, render: (h, p) => this.enabledTag(h, p.row.enabled) },
{ title: '备注', key: 'remark', minWidth: 180 },
{
title: '操作', width: 150, align: 'center', render: (h, params) => {
return h('div', [
h('Button', { props: { type: 'text', size: 'small' }, on: { click: () => this.openInviteReward(params.row) } }, '编辑'),
h('Button', { props: { type: 'text', size: 'small' }, style: { color: '#ed4014' }, on: { click: () => this.delInviteReward(params.row) } }, '删除')
])
}
}
]
},
inviteRewardRecordColumns() {
return [
{ title: '邀请人ID', key: 'inviterId', minWidth: 150 },
{ title: '新用户ID', key: 'invitedUserId', minWidth: 150 },
{ title: '新用户手机号', key: 'invitedMobile', minWidth: 120 },
{ title: '区域ID', key: 'regionId', minWidth: 130 },
{ title: '奖励金额', key: 'amount', minWidth: 100 },
{ title: '状态', minWidth: 90, render: (h, p) => this.inviteRewardStatusTag(h, p.row.status) },
{ title: '商户单号', key: 'outBillNo', minWidth: 180 },
{ title: '微信单号', key: 'transferBillNo', minWidth: 180 },
{ title: '失败原因', key: 'failReason', minWidth: 180 },
{ title: '时间', key: 'createTime', minWidth: 160 }
]
},
buffColumns() { buffColumns() {
return [ return [
{ title: '类型', key: 'type', width: 100 }, { title: '类型', key: 'type', width: 100 },
@ -832,6 +902,16 @@
enabledTag(h, enabled) { enabledTag(h, enabled) {
return h('Tag', { props: { color: enabled === 1 ? 'green' : 'default' } }, enabled === 1 ? '是' : '否') return h('Tag', { props: { color: enabled === 1 ? 'green' : 'default' } }, enabled === 1 ? '是' : '否')
}, },
inviteRewardStatusTag(h, status) {
const map = {
0: { text: '处理中', color: 'blue' },
1: { text: '成功', color: 'green' },
2: { text: '失败', color: 'red' },
3: { text: '跳过', color: 'default' }
}
const item = map[Number(status)] || { text: status === undefined || status === null ? '-' : String(status), color: 'default' }
return h('Tag', { props: { color: item.color } }, item.text)
},
isPoolDrawn(row) { isPoolDrawn(row) {
return Number(row && row.status) === 1 return Number(row && row.status) === 1
}, },
@ -845,7 +925,7 @@
}, },
onTabChange(name) { onTabChange(name) {
const map = { const map = {
pool: this.loadPool, task: this.loadTask, buff: this.loadBuff, pool: this.loadPool, task: this.loadTask, inviteReward: this.loadInviteReward, inviteRewardRecord: this.loadInviteRewardRecord, buff: this.loadBuff,
news: this.loadNews, rank: this.loadRank, hunt: this.loadHunt, news: this.loadNews, rank: this.loadRank, hunt: this.loadHunt,
draw: this.loadDraw, winner: this.loadWinner, draw: this.loadDraw, winner: this.loadWinner,
tree: this.loadTree, warehouse: this.loadWarehouse, tower: this.loadTower, tree: this.loadTree, warehouse: this.loadWarehouse, tower: this.loadTower,
@ -900,6 +980,8 @@
// ---- 列表加载(白嫖星球全部功能均限定商圈,未选商圈不查询) ---- // ---- 列表加载(白嫖星球全部功能均限定商圈,未选商圈不查询) ----
loadPool() { if (!this.guardRegion('pool')) return; this.pool.loading = true; planetPoolPage(this.baseParams('pool')).then(r => this.fill('pool', r)) }, loadPool() { if (!this.guardRegion('pool')) return; this.pool.loading = true; planetPoolPage(this.baseParams('pool')).then(r => this.fill('pool', r)) },
loadTask() { if (!this.guardRegion('task')) return; this.task.loading = true; planetTaskPage(this.baseParams('task')).then(r => this.fill('task', r)) }, loadTask() { if (!this.guardRegion('task')) return; this.task.loading = true; planetTaskPage(this.baseParams('task')).then(r => this.fill('task', r)) },
loadInviteReward() { if (!this.guardRegion('inviteReward')) return; this.inviteReward.loading = true; planetInviteRewardConfigPage(this.baseParams('inviteReward')).then(r => this.fill('inviteReward', r)) },
loadInviteRewardRecord() { if (!this.guardRegion('inviteRewardRecord')) return; this.inviteRewardRecord.loading = true; planetInviteRewardRecordPage(this.baseParams('inviteRewardRecord')).then(r => this.fill('inviteRewardRecord', r)) },
loadBuff() { if (!this.guardRegion('buff')) return; this.buff.loading = true; planetBuffPage(this.baseParams('buff')).then(r => this.fill('buff', r)) }, loadBuff() { if (!this.guardRegion('buff')) return; this.buff.loading = true; planetBuffPage(this.baseParams('buff')).then(r => this.fill('buff', r)) },
loadNews() { if (!this.guardRegion('news')) return; this.news.loading = true; planetNewsPage(this.baseParams('news')).then(r => this.fill('news', r)) }, loadNews() { if (!this.guardRegion('news')) return; this.news.loading = true; planetNewsPage(this.baseParams('news')).then(r => this.fill('news', r)) },
loadRank() { if (!this.guardRegion('rank')) return; this.rank.loading = true; planetRankPage(this.baseParams('rank')).then(r => this.fill('rank', r)) }, loadRank() { if (!this.guardRegion('rank')) return; this.rank.loading = true; planetRankPage(this.baseParams('rank')).then(r => this.fill('rank', r)) },
@ -1027,6 +1109,39 @@
delTask(row) { delTask(row) {
planetTaskDelete(row.id).then(() => { this.$Message.success('删除成功'); this.loadTask() }) planetTaskDelete(row.id).then(() => { this.$Message.success('删除成功'); this.loadTask() })
}, },
// ---- 拉新返现配置 ----
openInviteReward(row) {
this.inviteRewardForm = row ? Object.assign({}, row) : {
regionId: this.regionId || '',
rewardAmount: 0,
dailyLimit: 0,
totalBudget: 0,
usedBudget: 0,
enabled: 1
}
this.inviteRewardModal = true
},
saveInviteReward() {
const form = Object.assign({}, this.inviteRewardForm, {
regionId: this.inviteRewardForm.regionId || this.regionId || ''
})
planetInviteRewardConfigSave(form).then(r => {
if (r && r.success) {
this.$Message.success('保存成功')
this.inviteRewardModal = false
this.loadInviteReward()
} else {
this.$Message.error((r && r.message) || '保存失败')
}
})
},
delInviteReward(row) {
this.$Modal.confirm({
title: '确认删除',
content: '确认删除该拉新返现配置?',
onOk: () => planetInviteRewardConfigDelete(row.id).then(() => { this.$Message.success('删除成功'); this.loadInviteReward() })
})
},
// ---- BUFF ---- // ---- BUFF ----
openBuff(row) { openBuff(row) {
this.buffForm = row ? Object.assign({}, row) : { regionId: this.regionId || '', type: 'double', costTickets: 5, durationHours: 24, effectValue: 0, sort: 0, enabled: 1 } this.buffForm = row ? Object.assign({}, row) : { regionId: this.regionId || '', type: 'double', costTickets: 5, durationHours: 24, effectValue: 0, sort: 0, enabled: 1 }

Loading…
Cancel
Save