|
|
@ -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 } |
|
|
|