Compare commits
47 Commits
feedback
...
feature/vi
Author | SHA1 | Date | |
---|---|---|---|
![]() |
408d632093 | ||
![]() |
02cb30f382 | ||
![]() |
86677bcb23 | ||
![]() |
8e3592b642 | ||
![]() |
f2fbae775b | ||
![]() |
77ec4646a5 | ||
![]() |
c2fcdd85cc | ||
![]() |
88dd8ce0ad | ||
![]() |
364502fcfe | ||
![]() |
8673cdac26 | ||
![]() |
7485375e17 | ||
![]() |
433895bca2 | ||
![]() |
65371cb38c | ||
![]() |
952b5f0f9b | ||
![]() |
527bd6ec80 | ||
![]() |
024d6cc763 | ||
![]() |
1fd358c800 | ||
![]() |
e568074e84 | ||
![]() |
116da21aab | ||
![]() |
42ab5d8fb1 | ||
![]() |
021af2362f | ||
![]() |
016d8de239 | ||
![]() |
98b47a826e | ||
![]() |
1841157b67 | ||
![]() |
af112d5278 | ||
![]() |
1f39e1f291 | ||
![]() |
c4e4a58fb7 | ||
![]() |
603d5bf293 | ||
![]() |
85fd367377 | ||
![]() |
3362ec7141 | ||
![]() |
3c541c846e | ||
![]() |
dc5d9c20a8 | ||
![]() |
8acfb0b0c6 | ||
![]() |
a004dc989f | ||
![]() |
379f48a05d | ||
![]() |
fce98389cf | ||
![]() |
88fd22491b | ||
![]() |
78b0dd9c5c | ||
![]() |
451a3d5f09 | ||
![]() |
a53f6cb02e | ||
![]() |
295e3559b2 | ||
![]() |
a36bcc7edd | ||
![]() |
e1724882fd | ||
![]() |
2dcb48646f | ||
![]() |
5119334f62 | ||
![]() |
e5d6394c1e | ||
![]() |
dc22ade536 |
9
src/api/common/gift.js
Normal file
9
src/api/common/gift.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
|
||||||
|
export const getGiftList = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/gift/getAll',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
44
src/api/invitationFission/invitationFission.js
Normal file
44
src/api/invitationFission/invitationFission.js
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
import qs from 'qs';
|
||||||
|
import { genQueryParam } from '@/utils/maintainer';
|
||||||
|
|
||||||
|
// ==================================每日数据====================================
|
||||||
|
// 表单
|
||||||
|
export const userInviteFissionRecordGetDailyPage = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/userInviteFissionRecord/getDailyPage',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 详情表单
|
||||||
|
export const userInviteFissionRecordGetDailyDetailList = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/userInviteFissionRecord/getDailyDetailList',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 导出
|
||||||
|
export const userInviteFissionRecordExport = query => {
|
||||||
|
window.location.href = `/admin/userInviteFissionRecord/export?${genQueryParam(query)}`;
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
// ==================================邀请排名====================================
|
||||||
|
// 设置白名单
|
||||||
|
export const userInviteFissionRecordSetBlack = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/userInviteFissionRecord/setBlack',
|
||||||
|
headers: { "Content-Type": 'application/x-www-form-urlencoded' },
|
||||||
|
method: 'post',
|
||||||
|
data: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 邀请排名列表
|
||||||
|
export const userInviteFissionRecordGetInviteRank = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/userInviteFissionRecord/getInviteRank',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
80
src/api/lucky/luckyGiftRangeConfig.js
Normal file
80
src/api/lucky/luckyGiftRangeConfig.js
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
import { genQueryParam } from '@/utils/maintainer';
|
||||||
|
|
||||||
|
export const getLuckyGiftRangeConfigList = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/luckyGiftRangeConfig/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const saveLuckyGiftRangeConfig = data => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/luckyGiftRangeConfig/save',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 获取礼物
|
||||||
|
export const getAll = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/gift/getAll',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 获取礼物区间
|
||||||
|
export const luckyGiftRangeConfigList = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/luckyGiftRangeConfig/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 幸运礼物配置列表
|
||||||
|
export const luckyGiftRewardList = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/luckyGiftReward/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 幸运礼物配置删除
|
||||||
|
export const luckyGiftRewardDelete = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/luckyGiftReward/delete',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 幸运礼保存列表
|
||||||
|
export const luckyGiftRewardSave = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/luckyGiftReward/save',
|
||||||
|
method: 'post',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 幸运礼物明细
|
||||||
|
export const getGiftSendPage = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/luckyGiftRewardRecord/getGiftSendPage',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 幸运礼物详情
|
||||||
|
export const getRewardList = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/luckyGiftRewardRecord/getRewardList',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 幸运礼物详情导出
|
||||||
|
export const luckyGiftRewardRecordExport = query => {
|
||||||
|
window.location.href = `/admin/luckyGiftRewardRecord/export?${genQueryParam(query)}`;
|
||||||
|
return;
|
||||||
|
};
|
@@ -35,4 +35,16 @@ export function dateFormat (date, fmt) {
|
|||||||
|
|
||||||
date = o = padLeftZero = null;
|
date = o = padLeftZero = null;
|
||||||
return fmt;
|
return fmt;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildSelectOption(id, defVal, array) {
|
||||||
|
let $select = $(id);
|
||||||
|
for(let i in array) {
|
||||||
|
let obj = array[i];
|
||||||
|
let selected = false;
|
||||||
|
if (obj.value == defVal) {
|
||||||
|
selected = true;
|
||||||
|
}
|
||||||
|
$select.append('<option value="' + obj.value + '"' + (selected ? 'selected' : '') + '>' + obj.text + '</option>');
|
||||||
|
}
|
||||||
}
|
}
|
298
src/views/invitationFission/dayDate.vue
Normal file
298
src/views/invitationFission/dayDate.vue
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
<template>
|
||||||
|
<div class="outer">
|
||||||
|
<!-- 查询条件 -->
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<div class="block">
|
||||||
|
<span class="demonstration">日期</span>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="time"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 查询按钮 -->
|
||||||
|
<el-button style="margin-top: -8px" type="primary" @click="getData()">查询</el-button>
|
||||||
|
|
||||||
|
<!-- 表格 -->
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="tableData"
|
||||||
|
border
|
||||||
|
style="width: 100%; margin-top: 25px"
|
||||||
|
>
|
||||||
|
<el-table-column prop="date" align="center" label="日期" />
|
||||||
|
<el-table-column prop="inviteCount" align="center" label="有邀请的UV" />
|
||||||
|
<el-table-column prop="invitedCount" align="center" label="邀请注册的UV" />
|
||||||
|
<el-table-column
|
||||||
|
prop="invitedCharge30Count"
|
||||||
|
align="center"
|
||||||
|
label="邀请的用户30天内充值UV"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="invitedChargeCount"
|
||||||
|
align="center"
|
||||||
|
label="邀请的用户累计充值UV"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="invitedCharge30Amount"
|
||||||
|
align="center"
|
||||||
|
label="邀请的用户30天内充值数额"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="invitedChargeAmount"
|
||||||
|
align="center"
|
||||||
|
label="邀请的用户累计充值数额"
|
||||||
|
/>
|
||||||
|
<el-table-column align="center" label="操作" width="300">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-button
|
||||||
|
@click="details(scope.row)"
|
||||||
|
class="primary"
|
||||||
|
type="primary"
|
||||||
|
size="default"
|
||||||
|
>查看详情</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<!-- 分页 -->
|
||||||
|
<el-pagination
|
||||||
|
style="margin-top: 10px"
|
||||||
|
class="paginationClass"
|
||||||
|
v-model:current-page="currentPage"
|
||||||
|
v-model:page-size="pageSize"
|
||||||
|
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
|
||||||
|
layout="sizes, prev, pager, next"
|
||||||
|
:total="total"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 详情 -->
|
||||||
|
<el-dialog v-model="detailsDialog" :title="detailsTitle" width="65%" center>
|
||||||
|
<!-- 条件 -->
|
||||||
|
<span>用户ID </span>
|
||||||
|
<el-input
|
||||||
|
style="display: inline-block; width: 200px"
|
||||||
|
v-model="detailsUserId"
|
||||||
|
placeholder=""
|
||||||
|
class="input"
|
||||||
|
></el-input>
|
||||||
|
<!-- 查询按钮 -->
|
||||||
|
<el-button style="" type="primary" @click="getDataDetailsDialog()">查询</el-button>
|
||||||
|
<!-- 内表格 -->
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="tableDataIn"
|
||||||
|
border
|
||||||
|
style="width: 100%; margin-top: 25px"
|
||||||
|
>
|
||||||
|
<el-table-column prop="createTime" align="center" label="新增时间" />
|
||||||
|
<el-table-column prop="nick" align="center" label="用户昵称" />
|
||||||
|
<el-table-column prop="erbanNo" align="center" label="用户ID" />
|
||||||
|
<el-table-column prop="inviteCode" align="center" label="填写邀请码" />
|
||||||
|
<el-table-column align="center" label="是否补填">
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ scope.row.isRepair == 1 ? "是" : "否" }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="邀请者">
|
||||||
|
<template v-slot="scope">
|
||||||
|
昵称:{{ scope.row.inviteNick }} ID:{{ scope.row.inviteErBanNo }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="邀请者的邀请者">
|
||||||
|
<template v-slot="scope">
|
||||||
|
昵称:{{ scope.row.grandInviteNick }} ID:{{ scope.row.grandInviteErBanNo }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="是否充值">
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ scope.row.isCharge == 1 ? "是" : "否" }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="inviteCharge30Amount"
|
||||||
|
align="center"
|
||||||
|
label="邀请30天内充值"
|
||||||
|
/>
|
||||||
|
<el-table-column prop="inviteChargeAmount" align="center" label="累计充值" />
|
||||||
|
<el-table-column
|
||||||
|
prop="inviteGiveAmount"
|
||||||
|
align="center"
|
||||||
|
label="累计接收代充转增"
|
||||||
|
/>
|
||||||
|
</el-table>
|
||||||
|
<!-- 分页 -->
|
||||||
|
<el-pagination
|
||||||
|
style="margin-top: 10px"
|
||||||
|
class="paginationClass"
|
||||||
|
v-model:current-page="currentPage2"
|
||||||
|
v-model:page-size="pageSize2"
|
||||||
|
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
|
||||||
|
layout="sizes, prev, pager, next"
|
||||||
|
:total="total"
|
||||||
|
@size-change="handleSizeChange2"
|
||||||
|
@current-change="handleCurrentChange2"
|
||||||
|
/>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="exportDate()"> 导出 </el-button>
|
||||||
|
<el-button @click="detailsDialog = false">关闭</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
userInviteFissionRecordGetDailyPage,
|
||||||
|
userInviteFissionRecordGetDailyDetailList,
|
||||||
|
userInviteFissionRecordExport,
|
||||||
|
} from "@/api/invitationFission/invitationFission";
|
||||||
|
import { dateFormat } from "@/utils/system-helper";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
export default {
|
||||||
|
name: "dayDate",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
time: "",
|
||||||
|
// 表格
|
||||||
|
tableData: [],
|
||||||
|
// 分页
|
||||||
|
total: 10, //总页数
|
||||||
|
currentPage: 1, //页码
|
||||||
|
pageSize: 10, //条数
|
||||||
|
// 分页
|
||||||
|
total2: 10, //总页数
|
||||||
|
currentPage2: 1, //页码
|
||||||
|
pageSize2: 10, //条数
|
||||||
|
detailsDialog: false, //详情弹窗控制
|
||||||
|
detailsUserId: "",
|
||||||
|
getDataDetailsDialogVal: null,
|
||||||
|
detailsTitle: "xxxx-x-x的邀请数据",
|
||||||
|
tableDataIn: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 查询按钮
|
||||||
|
getData() {
|
||||||
|
this.loading = true;
|
||||||
|
let startTime = "";
|
||||||
|
let endTime = "";
|
||||||
|
if (this.time && this.time.length > 0) {
|
||||||
|
startTime = dateFormat(this.time[0], "yyyy-MM-dd hh:mm:ss");
|
||||||
|
endTime = dateFormat(this.time[1], "yyyy-MM-dd hh:mm:ss");
|
||||||
|
}
|
||||||
|
userInviteFissionRecordGetDailyPage({
|
||||||
|
pageNum: this.currentPage,
|
||||||
|
pageSize: this.pageSize,
|
||||||
|
startTime: startTime,
|
||||||
|
endTime: endTime,
|
||||||
|
}).then((res) => {
|
||||||
|
this.tableData = res.data.records;
|
||||||
|
this.total = res.data.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 查看详情按钮
|
||||||
|
details(val) {
|
||||||
|
this.detailsTitle = `${val.date}的邀请数据`;
|
||||||
|
this.getDataDetailsDialogVal = val;
|
||||||
|
this.detailsDialog = true;
|
||||||
|
this.loading = true;
|
||||||
|
userInviteFissionRecordGetDailyDetailList({
|
||||||
|
date: val.date,
|
||||||
|
invitedErBanNo: this.detailsUserId,
|
||||||
|
pageNum: this.currentPage2,
|
||||||
|
pageSize: this.pageSize2,
|
||||||
|
}).then((res) => {
|
||||||
|
this.tableDataIn = res.data.records;
|
||||||
|
this.loading = false;
|
||||||
|
this.detailsUserId = "";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 查询
|
||||||
|
getDataDetailsDialog() {
|
||||||
|
this.loading = true;
|
||||||
|
userInviteFissionRecordGetDailyDetailList({
|
||||||
|
date: this.getDataDetailsDialogVal.date,
|
||||||
|
invitedErBanNo: this.detailsUserId,
|
||||||
|
pageNum: this.currentPage2,
|
||||||
|
pageSize: this.pageSize2,
|
||||||
|
}).then((res) => {
|
||||||
|
this.tableDataIn = res.data.records;
|
||||||
|
this.loading = false;
|
||||||
|
this.detailsUserId = "";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 导出
|
||||||
|
exportDate() {
|
||||||
|
userInviteFissionRecordExport({
|
||||||
|
date: this.getDataDetailsDialogVal.date,
|
||||||
|
invitedErBanNo: this.detailsUserId,
|
||||||
|
}).then((res) => {});
|
||||||
|
},
|
||||||
|
// 分页导航
|
||||||
|
handleSizeChange() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
handleCurrentChange() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
// 分页导航
|
||||||
|
handleSizeChange2() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
handleCurrentChange2() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.outer {
|
||||||
|
padding-top: 20px;
|
||||||
|
background: #ecf0f5;
|
||||||
|
border-top: 3px solid #d2d6de;
|
||||||
|
.search {
|
||||||
|
width: 100%;
|
||||||
|
height: 41px;
|
||||||
|
.searchLeft,
|
||||||
|
.searchRight {
|
||||||
|
width: 20%;
|
||||||
|
float: left;
|
||||||
|
span {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
.input {
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.buttonBox {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.authorityBox {
|
||||||
|
.authoritySpan {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.authorityInpput {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.dialogTableVisibleBut {
|
||||||
|
margin: -25px 0 20px 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
335
src/views/invitationFission/invitationRanking.vue
Normal file
335
src/views/invitationFission/invitationRanking.vue
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
<template>
|
||||||
|
<div class="outer">
|
||||||
|
<!-- 查询条件 -->
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<div class="block">
|
||||||
|
<span class="demonstration">日期</span>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="inquire.time"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<span class="demonstration">排序方式</span>
|
||||||
|
<el-select v-model="inquire.value" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="item in inquire.options"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
<div class="inquire" style="margin-right: 20px">
|
||||||
|
<span class="demonstration" style="margin-top: 5px">用户ID </span>
|
||||||
|
<el-input v-model="inquire.userId" placeholder="" class="input"></el-input>
|
||||||
|
</div>
|
||||||
|
<!-- 查询按钮 -->
|
||||||
|
<el-button style="" type="primary" @click="getData()">查询</el-button>
|
||||||
|
|
||||||
|
<!-- 表格 -->
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="tableData"
|
||||||
|
border
|
||||||
|
style="width: 100%; margin-top: 25px"
|
||||||
|
>
|
||||||
|
<el-table-column prop="erBanNo" align="center" label="用户id" />
|
||||||
|
<el-table-column prop="nick" align="center" label="用户昵称" />
|
||||||
|
<el-table-column prop="inviteCode" align="center" label="邀请码" />
|
||||||
|
<el-table-column prop="directNum" align="center" label="直接邀请人数" />
|
||||||
|
<el-table-column prop="indirectNum" align="center" label="间接邀请人数" />
|
||||||
|
<el-table-column
|
||||||
|
prop="directChargeAmount"
|
||||||
|
align="center"
|
||||||
|
label="直接邀请人总充值"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="indirectChargeAmount"
|
||||||
|
align="center"
|
||||||
|
label="间接邀请人总充值"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="activityRegisterProfit"
|
||||||
|
align="center"
|
||||||
|
label="活动内注册收益"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="activityReturnProfit"
|
||||||
|
align="center"
|
||||||
|
label="活动内返点收益"
|
||||||
|
/>
|
||||||
|
<el-table-column align="center" label="操作" width="300">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-button
|
||||||
|
@click="details(scope.row)"
|
||||||
|
class="primary"
|
||||||
|
type="primary"
|
||||||
|
size="default"
|
||||||
|
>查看详情</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
@click="set(scope.row)"
|
||||||
|
:class="scope.row.isBlack == 0 ? 'primary' : 'info'"
|
||||||
|
:type="scope.row.isBlack == 0 ? 'primary' : 'info'"
|
||||||
|
size="default"
|
||||||
|
>{{ scope.row.isBlack == 0 ? "设为活动黑名单" : "取消活动黑名单" }}</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<!-- 分页 -->
|
||||||
|
<el-pagination
|
||||||
|
style="margin-top: 10px"
|
||||||
|
class="paginationClass"
|
||||||
|
v-model:current-page="currentPage"
|
||||||
|
v-model:page-size="pageSize"
|
||||||
|
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
|
||||||
|
layout="sizes, prev, pager, next"
|
||||||
|
:total="total"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 详情 -->
|
||||||
|
<el-dialog v-model="detailsDialog" :title="detailsTitle" width="65%" center>
|
||||||
|
<!-- 条件 -->
|
||||||
|
<span>用户ID </span>
|
||||||
|
<el-input
|
||||||
|
style="display: inline-block; width: 200px"
|
||||||
|
v-model="detailsUserId"
|
||||||
|
placeholder=""
|
||||||
|
class="input"
|
||||||
|
></el-input>
|
||||||
|
<!-- 查询按钮 -->
|
||||||
|
<el-button style="" type="primary" @click="getDataDetailsDialog()">查询</el-button>
|
||||||
|
<!-- 内表格 -->
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="tableDataIn"
|
||||||
|
border
|
||||||
|
style="width: 100%; margin-top: 25px"
|
||||||
|
>
|
||||||
|
<el-table-column prop="createTime" align="center" label="新增时间" />
|
||||||
|
<el-table-column prop="nick" align="center" label="用户昵称" />
|
||||||
|
<el-table-column prop="erbanNo" align="center" label="用户ID" />
|
||||||
|
<el-table-column prop="inviteCode" align="center" label="填写邀请码" />
|
||||||
|
<el-table-column align="center" label="是否补填">
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ scope.row.isRepair == 1 ? "是" : "否" }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="邀请者">
|
||||||
|
<template v-slot="scope">
|
||||||
|
昵称:{{ scope.row.inviteNick }} ID:{{ scope.row.inviteErBanNo }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="邀请者的邀请者">
|
||||||
|
<template v-slot="scope">
|
||||||
|
昵称:{{ scope.row.grandInviteNick }} ID:{{ scope.row.grandInviteErBanNo }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="是否充值">
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ scope.row.isCharge == 1 ? "是" : "否" }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="inviteCharge30Amount"
|
||||||
|
align="center"
|
||||||
|
label="邀请30天内充值"
|
||||||
|
/>
|
||||||
|
<el-table-column prop="inviteChargeAmount" align="center" label="累计充值" />
|
||||||
|
<el-table-column
|
||||||
|
prop="inviteGiveAmount"
|
||||||
|
align="center"
|
||||||
|
label="累计接收代充转增"
|
||||||
|
/>
|
||||||
|
</el-table>
|
||||||
|
<!-- 分页 -->
|
||||||
|
<el-pagination
|
||||||
|
style="margin-top: 10px"
|
||||||
|
class="paginationClass"
|
||||||
|
v-model:current-page="currentPage2"
|
||||||
|
v-model:page-size="pageSize2"
|
||||||
|
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
|
||||||
|
layout="sizes, prev, pager, next"
|
||||||
|
:total="total"
|
||||||
|
@size-change="handleSizeChange2"
|
||||||
|
@current-change="handleCurrentChange2"
|
||||||
|
/>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="exportDate()"> 导出 </el-button>
|
||||||
|
<el-button @click="detailsDialog = false">关闭</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
userInviteFissionRecordGetInviteRank,
|
||||||
|
userInviteFissionRecordGetDailyDetailList,
|
||||||
|
userInviteFissionRecordExport,
|
||||||
|
userInviteFissionRecordSetBlack,
|
||||||
|
} from "@/api/invitationFission/invitationFission";
|
||||||
|
import { dateFormat } from "@/utils/system-helper";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
export default {
|
||||||
|
name: "invitationRanking",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
inquire: {
|
||||||
|
time: "",
|
||||||
|
userId: "",
|
||||||
|
value: "",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
value: "0",
|
||||||
|
label: "直接邀请UV数",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: "1",
|
||||||
|
label: "活动内注册收益",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: "2",
|
||||||
|
label: "活动内返点收益",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
loading: false,
|
||||||
|
// 表格
|
||||||
|
tableData: [],
|
||||||
|
// 分页
|
||||||
|
total: 10, //总页数
|
||||||
|
currentPage: 1, //页码
|
||||||
|
pageSize: 10, //条数
|
||||||
|
// 分页2
|
||||||
|
total2: 10, //总页数
|
||||||
|
currentPage2: 1, //页码
|
||||||
|
pageSize2: 10, //条数
|
||||||
|
detailsDialog: false, //详情弹窗控制
|
||||||
|
detailsUserId: "",
|
||||||
|
detailsTitle: "xxxx-x-x的邀请数据",
|
||||||
|
getDataDetailsDialogVal: null,
|
||||||
|
tableDataIn: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 查询
|
||||||
|
getData() {
|
||||||
|
this.loading = true;
|
||||||
|
let startTime = "";
|
||||||
|
let endTime = "";
|
||||||
|
if (this.inquire.time && this.inquire.time.length > 0) {
|
||||||
|
startTime = dateFormat(this.inquire.time[0], "yyyy-MM-dd hh:mm:ss");
|
||||||
|
endTime = dateFormat(this.inquire.time[1], "yyyy-MM-dd hh:mm:ss");
|
||||||
|
}
|
||||||
|
userInviteFissionRecordGetInviteRank({
|
||||||
|
pageNum: this.currentPage,
|
||||||
|
pageSize: this.pageSize,
|
||||||
|
startTime: startTime,
|
||||||
|
endTime: endTime,
|
||||||
|
erBanNo: this.inquire.userId,
|
||||||
|
rankType: this.inquire.value,
|
||||||
|
}).then((res) => {
|
||||||
|
this.tableData = res.data.records;
|
||||||
|
this.total = res.data.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 查看详情
|
||||||
|
details(val) {
|
||||||
|
this.detailsTitle = `用户ID:${val.erBanNo}的数据`;
|
||||||
|
this.getDataDetailsDialogVal = val;
|
||||||
|
this.detailsDialog = true;
|
||||||
|
this.loading = true;
|
||||||
|
userInviteFissionRecordGetDailyDetailList({
|
||||||
|
// date: val.date,
|
||||||
|
pageNum: this.currentPage2,
|
||||||
|
pageSize: this.pageSize2,
|
||||||
|
inviteErBanNo: val.erBanNo,
|
||||||
|
}).then((res) => {
|
||||||
|
this.tableDataIn = res.data.records;
|
||||||
|
this.loading = false;
|
||||||
|
this.detailsUserId = "";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 设置黑名单
|
||||||
|
set(val) {
|
||||||
|
userInviteFissionRecordSetBlack({
|
||||||
|
status: val.isBlack == 0 ? 1 : 0,
|
||||||
|
uid: val.uid,
|
||||||
|
}).then((res) => {
|
||||||
|
this.getData();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 详情查询
|
||||||
|
getDataDetailsDialog() {
|
||||||
|
this.loading = true;
|
||||||
|
userInviteFissionRecordGetDailyDetailList({
|
||||||
|
// date: this.getDataDetailsDialogVal.date,
|
||||||
|
pageNum: this.currentPage2,
|
||||||
|
pageSize: this.pageSize2,
|
||||||
|
invitedErBanNo: this.detailsUserId,
|
||||||
|
inviteErBanNo: this.getDataDetailsDialogVal.erBanNo,
|
||||||
|
}).then((res) => {
|
||||||
|
this.tableDataIn = res.data.records;
|
||||||
|
this.total2 = res.data.total;
|
||||||
|
this.loading = false;
|
||||||
|
this.detailsUserId = "";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 导出
|
||||||
|
exportDate() {
|
||||||
|
userInviteFissionRecordExport({
|
||||||
|
invitedErBanNo: this.detailsUserId,
|
||||||
|
inviteErBanNo: this.getDataDetailsDialogVal.erBanNo,
|
||||||
|
}).then((res) => {});
|
||||||
|
},
|
||||||
|
// 分页导航
|
||||||
|
handleSizeChange() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
handleCurrentChange() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
// 分页导航
|
||||||
|
handleSizeChange2() {
|
||||||
|
this.getDataDetailsDialog();
|
||||||
|
},
|
||||||
|
handleCurrentChange2() {
|
||||||
|
this.getDataDetailsDialog();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.outer {
|
||||||
|
padding-top: 20px;
|
||||||
|
background: #ecf0f5;
|
||||||
|
border-top: 3px solid #d2d6de;
|
||||||
|
.inquire {
|
||||||
|
float: left;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.demonstration {
|
||||||
|
margin-right: 10px;
|
||||||
|
display: inline-block;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
321
src/views/lucky/LuckyGiftDetail.vue
Normal file
321
src/views/lucky/LuckyGiftDetail.vue
Normal file
@@ -0,0 +1,321 @@
|
|||||||
|
<template>
|
||||||
|
<div class="outer">
|
||||||
|
<!-- 查询 -->
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<span class="demonstration">选择礼物</span>
|
||||||
|
<el-select @change="selectGift" v-model="inquire.giftId" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="item in inquire.gifts"
|
||||||
|
:key="item.giftId"
|
||||||
|
:label="item.giftName"
|
||||||
|
:value="item.giftId"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<span class="demonstration">选择礼物个数区间</span>
|
||||||
|
<el-select
|
||||||
|
@change="selectGift2"
|
||||||
|
:disabled="disabledBool"
|
||||||
|
v-model="inquire.value2"
|
||||||
|
placeholder="请选择"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="(item, i) in inquire.giftsNum"
|
||||||
|
:key="i"
|
||||||
|
:label="item.minValue + '~' + item.maxValue"
|
||||||
|
:value="item.id"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<span class="demonstration" style="display: inline-block">送礼用户ID</span>
|
||||||
|
<el-input
|
||||||
|
style="display: inline-block"
|
||||||
|
v-model="inquire.senUserId"
|
||||||
|
placeholder=""
|
||||||
|
class="input"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<span class="demonstration" style="display: inline-block">收礼用户ID</span>
|
||||||
|
<el-input
|
||||||
|
style="display: inline-block"
|
||||||
|
v-model="inquire.receiveErBanNo"
|
||||||
|
placeholder=""
|
||||||
|
class="input"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
<!-- 查询条件 -->
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 120px">
|
||||||
|
<div class="block">
|
||||||
|
<span class="demonstration">日期</span>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="inquire.time"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 查询按钮 -->
|
||||||
|
<el-button style="" type="primary" @click="getData()">查询</el-button>
|
||||||
|
<el-button style="" type="primary" @click="exportDate()">导出</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 表格 -->
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="tableData"
|
||||||
|
border
|
||||||
|
style="width: 100%; margin-top: 25px"
|
||||||
|
>
|
||||||
|
<el-table-column prop="createTime" align="center" label="时间" />
|
||||||
|
<el-table-column prop="sendErBanNo" align="center" label="送礼人ID" />
|
||||||
|
<el-table-column prop="sendNick" align="center" label="送礼人昵称" />
|
||||||
|
<el-table-column prop="giftName" align="center" label="送礼名称" />
|
||||||
|
<el-table-column prop="giftPrice" align="center" label="礼物单价" />
|
||||||
|
<el-table-column prop="giftNum" align="center" label="礼物个数" />
|
||||||
|
<el-table-column prop="totalGoldNum" align="center" label="总价值" />
|
||||||
|
<el-table-column prop="receiveErBanNo" align="center" label="收礼人ID" />
|
||||||
|
<el-table-column prop="receiveNick" align="center" label="收礼人昵称" />
|
||||||
|
<el-table-column align="center" label="获得奖励数额" width="">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-button @click="edi(scope.row)" type="text" size="small">{{
|
||||||
|
scope.row.rewardAmount
|
||||||
|
}}</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<!-- 分页 -->
|
||||||
|
<el-pagination
|
||||||
|
style="margin-top: 10px"
|
||||||
|
class="paginationClass"
|
||||||
|
v-model:current-page="currentPage"
|
||||||
|
v-model:page-size="pageSize"
|
||||||
|
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
|
||||||
|
layout="sizes, prev, pager, next"
|
||||||
|
:total="total"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 详情 -->
|
||||||
|
<el-dialog v-model="detailsDialog" title="奖励详情" width="30%" center>
|
||||||
|
<!-- 内表格 -->
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="tableDataIn"
|
||||||
|
border
|
||||||
|
style="width: 100%; margin-top: 25px"
|
||||||
|
>
|
||||||
|
<el-table-column prop="rewardName" align="center" label="奖励内容" />
|
||||||
|
<el-table-column prop="rewardValue" align="center" label="单价" />
|
||||||
|
<el-table-column prop="rewardNum" align="center" label="个数" />
|
||||||
|
<el-table-column prop="totalRewardNum" align="center" label="总价值" />
|
||||||
|
</el-table>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button type="primary" class="primary" @click="detailsDialog = false"
|
||||||
|
>关闭</el-button
|
||||||
|
>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
getGiftSendPage,
|
||||||
|
getAll,
|
||||||
|
getRewardList,
|
||||||
|
luckyGiftRewardRecordExport,
|
||||||
|
luckyGiftRewardList,
|
||||||
|
luckyGiftRangeConfigList,
|
||||||
|
} from "@/api/lucky/luckyGiftRangeConfig";
|
||||||
|
import { dateFormat } from "@/utils/system-helper";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
export default {
|
||||||
|
name: "LuckyGiftDetail",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
// 查询条件
|
||||||
|
inquire: {
|
||||||
|
gifts: [],
|
||||||
|
giftsNum: [],
|
||||||
|
giftId: "",
|
||||||
|
senUserId: "",
|
||||||
|
receiveErBanNo: "",
|
||||||
|
time: "",
|
||||||
|
value2: "",
|
||||||
|
},
|
||||||
|
// 表格
|
||||||
|
tableData: [],
|
||||||
|
// 分页
|
||||||
|
total: 10, //总页数
|
||||||
|
currentPage: 1, //页码
|
||||||
|
pageSize: 10, //条数
|
||||||
|
// 内表格
|
||||||
|
detailsDialog: false,
|
||||||
|
tableDataIn: [],
|
||||||
|
disabledBool: true,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
getAll({ giftType: 16 }).then((res) => {
|
||||||
|
var arr = [];
|
||||||
|
arr = res.data;
|
||||||
|
arr.unshift({ giftId: null, giftName: "全部" });
|
||||||
|
this.inquire.gifts = arr;
|
||||||
|
this.inquire.giftId = arr[0].giftId;
|
||||||
|
});
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 外部监听
|
||||||
|
selectGift(e) {
|
||||||
|
console.log(e);
|
||||||
|
if (e) {
|
||||||
|
this.disabledBool = false;
|
||||||
|
} else {
|
||||||
|
this.disabledBool = true;
|
||||||
|
}
|
||||||
|
this.inquire.giftId = e;
|
||||||
|
luckyGiftRangeConfigList({ giftId: this.inquire.giftId }).then((res) => {
|
||||||
|
this.inquire.giftsNum = res.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 外部监听2
|
||||||
|
selectGift2(e) {
|
||||||
|
this.inquire.value2 = e;
|
||||||
|
},
|
||||||
|
// 查询
|
||||||
|
getData() {
|
||||||
|
this.loading = true;
|
||||||
|
let startTime = "";
|
||||||
|
let endTime = "";
|
||||||
|
if (this.inquire.time && this.inquire.time.length > 0) {
|
||||||
|
startTime = dateFormat(this.inquire.time[0], "yyyy-MM-dd hh:mm:ss");
|
||||||
|
endTime = dateFormat(this.inquire.time[1], "yyyy-MM-dd hh:mm:ss");
|
||||||
|
}
|
||||||
|
getGiftSendPage({
|
||||||
|
page: this.currentPage,
|
||||||
|
pageSize: this.pageSize,
|
||||||
|
giftId: this.inquire.giftId,
|
||||||
|
sendErBanNo: this.inquire.senUserId,
|
||||||
|
receiveErBanNo: this.inquire.receiveErBanNo,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
startTime: startTime,
|
||||||
|
endTime: endTime,
|
||||||
|
}).then((res) => {
|
||||||
|
this.total = res.data.total;
|
||||||
|
this.tableData = res.data.records;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 详情
|
||||||
|
edi(val) {
|
||||||
|
getRewardList({ giftSendRecordId: val.giftSendRecordId }).then((res) => {
|
||||||
|
this.tableDataIn = res.data;
|
||||||
|
this.detailsDialog = true;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 导出
|
||||||
|
exportDate() {
|
||||||
|
var obj = {};
|
||||||
|
let startTime = "";
|
||||||
|
let endTime = "";
|
||||||
|
if (this.inquire.time && this.inquire.time.length > 0) {
|
||||||
|
startTime = dateFormat(this.inquire.time[0], "yyyy-MM-dd hh:mm:ss");
|
||||||
|
endTime = dateFormat(this.inquire.time[1], "yyyy-MM-dd hh:mm:ss");
|
||||||
|
}
|
||||||
|
if (this.inquire.giftId == null || this.inquire.giftId == "null") {
|
||||||
|
obj = {
|
||||||
|
sendErBanNo: this.inquire.senUserId,
|
||||||
|
startTime: this.inquire.time[0]
|
||||||
|
? dateFormat(this.inquire.time[0], "yyyy-MM-dd hh:mm:ss")
|
||||||
|
: "",
|
||||||
|
endTime: this.inquire.time[0]
|
||||||
|
? dateFormat(this.inquire.time[1], "yyyy-MM-dd hh:mm:ss")
|
||||||
|
: "",
|
||||||
|
receiveErBanNo: this.inquire.receiveErBanNo,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
obj = {
|
||||||
|
giftId: this.inquire.giftId,
|
||||||
|
sendErBanNo: this.inquire.senUserId,
|
||||||
|
startTime: this.inquire.time[0]
|
||||||
|
? dateFormat(this.inquire.time[0], "yyyy-MM-dd hh:mm:ss")
|
||||||
|
: "",
|
||||||
|
endTime: this.inquire.time[0]
|
||||||
|
? dateFormat(this.inquire.time[1], "yyyy-MM-dd hh:mm:ss")
|
||||||
|
: "",
|
||||||
|
receiveErBanNo: this.inquire.receiveErBanNo,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
luckyGiftRewardRecordExport(obj).then();
|
||||||
|
},
|
||||||
|
// 分页导航
|
||||||
|
handleSizeChange() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
handleCurrentChange() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.outer {
|
||||||
|
padding-top: 20px;
|
||||||
|
background: #ecf0f5;
|
||||||
|
border-top: 3px solid #d2d6de;
|
||||||
|
.demonstration {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.inquire {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
white-space: nowrap;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.search {
|
||||||
|
width: 100%;
|
||||||
|
height: 41px;
|
||||||
|
.searchLeft,
|
||||||
|
.searchRight {
|
||||||
|
width: 20%;
|
||||||
|
float: left;
|
||||||
|
span {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
.input {
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.buttonBox {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.authorityBox {
|
||||||
|
.authoritySpan {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.authorityInpput {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.dialogTableVisibleBut {
|
||||||
|
margin: -25px 0 20px 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
367
src/views/lucky/LuckyGiftRangeConfigView.vue
Normal file
367
src/views/lucky/LuckyGiftRangeConfigView.vue
Normal file
@@ -0,0 +1,367 @@
|
|||||||
|
<template>
|
||||||
|
<section class="content">
|
||||||
|
<div class="box box-primary">
|
||||||
|
<section class="content-header">
|
||||||
|
<h1 id="itemTitle"></h1>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<div id="toolbar">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<label for="giftId" class="col-sm-3 control-label">选择礼物:</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<select name="giftId" id="giftId" class="form-control" @change="getTableInfo"></select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<section class="content">
|
||||||
|
<div class="group-table-section">
|
||||||
|
<div class="group-wrapper js-group-wrapper">
|
||||||
|
<div class="header-wrapper">
|
||||||
|
<div class="title">幸运礼物区间</div>
|
||||||
|
<div class="right-content js-no-editing">
|
||||||
|
<div class="action-btn-wrap">
|
||||||
|
<button class="btn btn-primary js-edit-group">编辑</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right-content right-content-edit js-editing">
|
||||||
|
<div class="action-btn-wrap">
|
||||||
|
<button class="btn btn-primary js-add">新增</button>
|
||||||
|
<button class="btn btn-danger js-edit">保存</button>
|
||||||
|
<button class="btn btn-default js-cancel">取消</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table class="group-table table table-hover table-striped">
|
||||||
|
<tr>
|
||||||
|
<th>刷礼个数大于等于</th>
|
||||||
|
<th>刷礼个数小于</th>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 添加弹窗 -->
|
||||||
|
<div
|
||||||
|
class="modal fade"
|
||||||
|
id="addModal"
|
||||||
|
tabindex="-1"
|
||||||
|
role="dialog"
|
||||||
|
aria-labelledby="modalLabel"
|
||||||
|
>
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">x</span>
|
||||||
|
</button>
|
||||||
|
<h4 class="modal-title" id="addModalLabel">刷礼区间配置</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form class="form-horizontal">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="minValue" class="col-sm-3 control-label"
|
||||||
|
>刷礼个数大于等于:</label
|
||||||
|
>
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="minValue"
|
||||||
|
name="minValue"
|
||||||
|
class="form-control validate[required]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="maxValue" class="col-sm-3 control-label">刷礼个数小于:</label>
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<input type="text" id="maxValue" name="maxValue" class="form-control" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn btn-default" type="button" id="addCancel">取消</button>
|
||||||
|
<button class="btn btn-primary" type="button" id="addSave">保存</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
getLuckyGiftRangeConfigList,
|
||||||
|
saveLuckyGiftRangeConfig,
|
||||||
|
} from "@/api/lucky/luckyGiftRangeConfig";
|
||||||
|
import { getGiftList } from "@/api/common/gift";
|
||||||
|
import { buildSelectOption } from "@/utils/system-helper";
|
||||||
|
import { apiResult } from "@/utils/maintainer";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "LuckyGiftRangeConfigView",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isEdit: false,
|
||||||
|
items: [],
|
||||||
|
cache: {},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.$nextTick(function () {
|
||||||
|
this.getGiftInfo();
|
||||||
|
this.initData();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initData() {
|
||||||
|
let $this = this;
|
||||||
|
$(function () {
|
||||||
|
$("#addSave").click(function () {
|
||||||
|
$this.add();
|
||||||
|
$("#addModal").modal("hide");
|
||||||
|
});
|
||||||
|
$(".js-edit-group").click(function () {
|
||||||
|
$this.editTableInfo();
|
||||||
|
$this.renderTableInfo();
|
||||||
|
});
|
||||||
|
$(".js-add").click(function () {
|
||||||
|
$this.cache = {};
|
||||||
|
$("#minValue").val("");
|
||||||
|
$("#maxValue").val("");
|
||||||
|
$("#addModal").modal("show");
|
||||||
|
});
|
||||||
|
$(".js-edit").click(function () {
|
||||||
|
$this.save();
|
||||||
|
});
|
||||||
|
$(".js-cancel").click(function () {
|
||||||
|
$this.disableTableInfo();
|
||||||
|
$this.getTableInfo();
|
||||||
|
$this.renderTableInfo();
|
||||||
|
});
|
||||||
|
$("#addCancel").click(function () {
|
||||||
|
$("#addModal").modal("hide");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
add() {
|
||||||
|
let minValue = $("#minValue").val();
|
||||||
|
let maxValue = $("#maxValue").val();
|
||||||
|
if (!minValue || minValue == '') {
|
||||||
|
$("#tipMsg").text("\"刷礼个数大于等于\"不能为空");
|
||||||
|
$("#tipModal").modal("show");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let item = {
|
||||||
|
minValue: minValue,
|
||||||
|
maxValue: maxValue,
|
||||||
|
};
|
||||||
|
this.cache = {
|
||||||
|
minValue: minValue,
|
||||||
|
maxValue: maxValue,
|
||||||
|
};
|
||||||
|
this.items.splice(this.items.length, 0, item);
|
||||||
|
this.items = this.items.sort((a, b) => {
|
||||||
|
if (a.minValue < b.minValue) {
|
||||||
|
return -1;
|
||||||
|
} else if (a.minValue > b.minValue) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.renderTableInfo();
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
let giftId = $("#giftId").val();
|
||||||
|
saveLuckyGiftRangeConfig({
|
||||||
|
giftId: giftId,
|
||||||
|
rangeConfigJson: JSON.stringify(this.items),
|
||||||
|
}).then((res) => {
|
||||||
|
if (apiResult(res)) {
|
||||||
|
this.disableTableInfo();
|
||||||
|
this.getTableInfo();
|
||||||
|
} else {
|
||||||
|
let cache = this.cache;
|
||||||
|
let items = this.items;
|
||||||
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
let item = items[i];
|
||||||
|
if (cache.minValue == item.minValue) {
|
||||||
|
this.items.splice(i, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
editTableInfo() {
|
||||||
|
this.isEdit = true;
|
||||||
|
},
|
||||||
|
disableTableInfo() {
|
||||||
|
this.isEdit = false;
|
||||||
|
},
|
||||||
|
renderTableInfo() {
|
||||||
|
let $this = this;
|
||||||
|
let isEdit = this.isEdit;
|
||||||
|
let giftId = $("#giftId").val();
|
||||||
|
if (giftId == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log('giftId : ' + giftId);
|
||||||
|
let $jsNoEditing = $(".js-group-wrapper .js-no-editing");
|
||||||
|
let $jsEditing = $(".js-group-wrapper .js-editing");
|
||||||
|
if (isEdit) {
|
||||||
|
$jsNoEditing.hide();
|
||||||
|
$jsEditing.show();
|
||||||
|
} else {
|
||||||
|
$jsNoEditing.show();
|
||||||
|
$jsEditing.hide();
|
||||||
|
}
|
||||||
|
let $groupTable = $(".js-group-wrapper .group-table");
|
||||||
|
$(".js-group-wrapper .group-table input").unbind("change");
|
||||||
|
$(".js-group-wrapper .group-table .js-remove-item").unbind("click");
|
||||||
|
$groupTable.html(
|
||||||
|
"<thead><tr><th>刷礼个数大于等于</th><th>刷礼个数小于</th></tr></thead>"
|
||||||
|
);
|
||||||
|
$groupTable.append("<tbody>");
|
||||||
|
for (let i = 0, len = $this.items.length; i < len; i++) {
|
||||||
|
let item = $this.items[i];
|
||||||
|
let tds = [];
|
||||||
|
if (isEdit) {
|
||||||
|
if (item.isDefault == 1) {
|
||||||
|
tds.push(
|
||||||
|
`<td>${item.minValue}</td>`
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
tds.push(
|
||||||
|
`<td><i class="glyphicon glyphicon-remove js-remove-item" data-idx="${i}"></i><input class="input-sm" name="minValue" data-idx="${i}" value="${item.minValue}"></td>`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
tds.push(
|
||||||
|
`<td><input class="input-sm" name="maxValue" data-idx="${i}" value="${(!item.maxValue || item.maxValue == 0x7fffffff) ? '' : item.maxValue}"></td>`
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
tds.push(
|
||||||
|
`<td></i>${item.minValue}</td>`
|
||||||
|
);
|
||||||
|
tds.push(`<td>${(!item.maxValue || item.maxValue == 0x7fffffff) ? '不限制' : item.maxValue}</td>`);
|
||||||
|
}
|
||||||
|
let row = `<tr>${tds.join()}</tr>`;
|
||||||
|
$groupTable.append(row);
|
||||||
|
}
|
||||||
|
$groupTable.append("</tbody>");
|
||||||
|
$(".js-group-wrapper .group-table input").bind("change", function (e) {
|
||||||
|
let target = e.target;
|
||||||
|
const index = $(target).attr("data-idx");
|
||||||
|
const propName = $(target).attr("name");
|
||||||
|
const inputValue = target.value;
|
||||||
|
$this.items[index][propName] = inputValue;
|
||||||
|
$this.renderTableInfo();
|
||||||
|
});
|
||||||
|
$(".js-group-wrapper .group-table .js-remove-item").bind("click", function (e) {
|
||||||
|
let target = e.target;
|
||||||
|
const index = new Number($(target).attr("data-idx"));
|
||||||
|
let items = $this.items;
|
||||||
|
if (items && items.length > index) {
|
||||||
|
let item = items[index];
|
||||||
|
if (item && item.isDefault == 1) {
|
||||||
|
$("#tipMsg").text("默认区间不允许删除");
|
||||||
|
$("#tipModal").modal("show");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (confirm("你确定要删除该礼物区间吗?")) {
|
||||||
|
items.splice(index, 1);
|
||||||
|
$this.renderTableInfo();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getTableInfo() {
|
||||||
|
let giftId = $("#giftId").val();
|
||||||
|
console.log(giftId);
|
||||||
|
if (giftId == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
getLuckyGiftRangeConfigList({
|
||||||
|
giftId: giftId,
|
||||||
|
}).then((res) => {
|
||||||
|
this.items = res.data;
|
||||||
|
this.renderTableInfo();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getGiftInfo() {
|
||||||
|
let $this = this;
|
||||||
|
$("#giftId").children().remove();
|
||||||
|
getGiftList({
|
||||||
|
giftType: 16,
|
||||||
|
}).then((res) => {
|
||||||
|
let data = res.data;
|
||||||
|
|
||||||
|
if (data.length > 0) {
|
||||||
|
buildSelectOption(
|
||||||
|
"#giftId",
|
||||||
|
data[0].giftId,
|
||||||
|
data.map((v) => {
|
||||||
|
return {
|
||||||
|
value: v.giftId,
|
||||||
|
text: v.giftName,
|
||||||
|
};
|
||||||
|
})
|
||||||
|
);
|
||||||
|
$this.getTableInfo();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.group-table-section {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.group-table-section .group-wrapper {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.group-wrapper .header-wrapper {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
max-width: 512px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.group-wrapper .header-wrapper .title {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.group-wrapper .header-wrapper .right-content {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.group-wrapper .header-wrapper .right-content.right-content-edit {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.group-wrapper .header-wrapper .action-btn-wrap button:not(last-child) {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.group-wrapper .group-table {
|
||||||
|
margin-top: 12px;
|
||||||
|
margin-right: 10px;
|
||||||
|
max-width: 1024px;
|
||||||
|
color: red;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
</style>
|
571
src/views/lucky/LuckyGiftRangeView.vue
Normal file
571
src/views/lucky/LuckyGiftRangeView.vue
Normal file
@@ -0,0 +1,571 @@
|
|||||||
|
<template>
|
||||||
|
<div class="outer">
|
||||||
|
<!-- new -->
|
||||||
|
<!-- 查询 -->
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<span class="demonstration">选择礼物</span>
|
||||||
|
<el-select @change="selectGift" v-model="inquire.value1" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="(item, i) in inquire.gifts"
|
||||||
|
:key="i"
|
||||||
|
:label="item.giftName"
|
||||||
|
:value="item.giftId"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<span class="demonstration">选择礼物个数区间</span>
|
||||||
|
<el-select @change="selectGift2" v-model="inquire.value2" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="(item, i) in inquire.giftsNum"
|
||||||
|
:key="i"
|
||||||
|
:label="item.minValue + '~' + item.maxValue"
|
||||||
|
:value="item.id"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
<!-- 查询按钮 -->
|
||||||
|
<el-button style="" type="primary" @click="getData()">查询</el-button>
|
||||||
|
<el-button style="" type="primary" @click="addGift()">新增礼物</el-button>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<!-- 礼物价值 -->
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<span class="demonstration">礼物价值:{{ inquire.diamond }}钻</span>
|
||||||
|
</div>
|
||||||
|
<!-- 礼物总期望 -->
|
||||||
|
<div class="inquire" style="display: inline-block; margin-right: 20px">
|
||||||
|
<span class="demonstration">礼物总期望:{{ inquire.giftExpectation }}钻</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 表格 -->
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="tableData"
|
||||||
|
border
|
||||||
|
style="width: 100%; margin-top: 25px"
|
||||||
|
>
|
||||||
|
<el-table-column prop="rewardName" align="center" label="奖品名称" />
|
||||||
|
<el-table-column prop="rewardType" align="center" label="奖品分类">
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ scope.row.rewardType == 1 ? "钻石" : "礼物" }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="stockNum" align="center" label="库存" />
|
||||||
|
<el-table-column prop="platformValue" align="center" label="平台价值" />
|
||||||
|
<el-table-column prop="rewardRate" align="center" label="获奖概率" />
|
||||||
|
<el-table-column prop="showRate" align="center" label="展示概率" />
|
||||||
|
<el-table-column prop="expectValue" align="center" label="期望" />
|
||||||
|
<el-table-column prop="rewardCount" align="center" label="累计获得数量">
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ scope.row.rewardCount ? scope.row.rewardCount : "-" }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column align="center" label="操作" width="300">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-button
|
||||||
|
v-show="scope.row.isDefault == 0"
|
||||||
|
@click="
|
||||||
|
this.dialogBool = false;
|
||||||
|
this.detailsTitle = '编辑';
|
||||||
|
edi(scope.row);
|
||||||
|
"
|
||||||
|
class="primary"
|
||||||
|
type="primary"
|
||||||
|
size="default"
|
||||||
|
>编辑</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
v-show="scope.row.isDefault == 0"
|
||||||
|
@click="del(scope.row)"
|
||||||
|
class="danger"
|
||||||
|
type="danger"
|
||||||
|
size="default"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<!-- 分页 -->
|
||||||
|
<el-pagination
|
||||||
|
v-show="false"
|
||||||
|
style="margin-top: 10px"
|
||||||
|
class="paginationClass"
|
||||||
|
v-model:current-page="currentPage"
|
||||||
|
v-model:page-size="pageSize"
|
||||||
|
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
|
||||||
|
layout="sizes, prev, pager, next"
|
||||||
|
:total="total"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 新增/编辑弹窗 -->
|
||||||
|
<el-dialog v-model="detailsDialog" :title="detailsTitle" width="20%" center>
|
||||||
|
<!-- 内容 -->
|
||||||
|
<div class="inquire" style="display: inline-block; margin-bottom: 20px">
|
||||||
|
<span class="demonstration" style="margin-right: 55px">奖品分类</span>
|
||||||
|
<el-select @change="selectArea()" v-model="dialog.value1" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="(item, i) in dialog.gifts"
|
||||||
|
:key="i"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-show="dialog.value1 == 2 || dialog.value1 == '礼物' ? true : false"
|
||||||
|
class="inquire"
|
||||||
|
style="display: inline-block; margin-bottom: 20px"
|
||||||
|
>
|
||||||
|
<span class="demonstration" style="margin-right: 55px">选择礼物</span>
|
||||||
|
<el-select v-model="dialog.value2" filterable placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="(item, i) in dialog.gifts2"
|
||||||
|
:key="i"
|
||||||
|
:label="item.giftName"
|
||||||
|
:value="i"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-show="dialog.value1 == 1 || dialog.value1 == '钻石' ? true : false"
|
||||||
|
class="inquire"
|
||||||
|
style="display: flex; margin-bottom: 20px"
|
||||||
|
>
|
||||||
|
<span class="demonstration">奖励钻石数</span>
|
||||||
|
<el-input
|
||||||
|
style="width: 220px; display: inline-block"
|
||||||
|
v-model="dialog.diamond"
|
||||||
|
placeholder="请输入钻石数"
|
||||||
|
class="input"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="dialog.value1 == 2 || dialog.value1 == '礼物' ? true : false"
|
||||||
|
class="inquire"
|
||||||
|
style="display: flex; margin-bottom: 20px"
|
||||||
|
>
|
||||||
|
<span class="demonstration">价值</span>
|
||||||
|
<el-input
|
||||||
|
:disabled="true"
|
||||||
|
style="width: 220px; display: inline-block"
|
||||||
|
v-model="dialog.gifts2[dialog.value2].goldPrice"
|
||||||
|
placeholder="请先选择礼物"
|
||||||
|
class="input"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="inquire" style="display: flex; margin-bottom: 20px">
|
||||||
|
<span class="demonstration">获得概率</span>
|
||||||
|
<el-input
|
||||||
|
style="width: 220px; display: inline-block"
|
||||||
|
v-model="dialog.gitChance"
|
||||||
|
placeholder=""
|
||||||
|
class="input"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="inquire" style="display: flex; margin-bottom: 20px">
|
||||||
|
<span class="demonstration">展示概率</span>
|
||||||
|
<el-input
|
||||||
|
style="width: 220px; display: inline-block"
|
||||||
|
v-model="dialog.showChance"
|
||||||
|
placeholder=""
|
||||||
|
class="input"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="inquire" style="display: flex; margin-bottom: 20px">
|
||||||
|
<span class="demonstration">库存</span>
|
||||||
|
<el-input
|
||||||
|
style="width: 220px; display: inline-block"
|
||||||
|
v-model="dialog.inventory"
|
||||||
|
placeholder=""
|
||||||
|
class="input"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button @click="detailsDialog = false">关闭</el-button>
|
||||||
|
<el-button type="primary" @click="share()"> 确认 </el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
getAll,
|
||||||
|
luckyGiftRangeConfigList,
|
||||||
|
luckyGiftRewardList,
|
||||||
|
luckyGiftRewardSave,
|
||||||
|
luckyGiftRewardDelete,
|
||||||
|
} from "@/api/lucky/luckyGiftRangeConfig";
|
||||||
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
|
export default {
|
||||||
|
name: "LuckyGiftRangeView",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
// 查询条件
|
||||||
|
inquire: {
|
||||||
|
gifts: [],
|
||||||
|
giftsNum: [],
|
||||||
|
diamond: 0,
|
||||||
|
giftExpectation: 0,
|
||||||
|
value1: "",
|
||||||
|
value2: "",
|
||||||
|
},
|
||||||
|
// 表格
|
||||||
|
tableData: [],
|
||||||
|
// 分页
|
||||||
|
total: 10, //总页数
|
||||||
|
currentPage: 1, //页码
|
||||||
|
pageSize: 10, //条数
|
||||||
|
// 弹窗
|
||||||
|
detailsDialog: false,
|
||||||
|
detailsTitle: "新增",
|
||||||
|
dialogBool: true,
|
||||||
|
dialog: {
|
||||||
|
gifts: [
|
||||||
|
{
|
||||||
|
value: "1",
|
||||||
|
label: "钻石",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: "2",
|
||||||
|
label: "礼物",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
value1: "1",
|
||||||
|
gifts2: [
|
||||||
|
{
|
||||||
|
giftName: "",
|
||||||
|
goldPrice: "",
|
||||||
|
giftId: "",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
value2: 0,
|
||||||
|
diamond: "",
|
||||||
|
gitChance: "",
|
||||||
|
showChance: "",
|
||||||
|
inventory: "",
|
||||||
|
price: "",
|
||||||
|
},
|
||||||
|
id: "",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getFun();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 初始化
|
||||||
|
getFun() {
|
||||||
|
getAll({ giftType: 16 }).then((res) => {
|
||||||
|
this.inquire.gifts = res.data;
|
||||||
|
this.inquire.value1 = "";
|
||||||
|
this.inquire.value2 = "";
|
||||||
|
// this.inquire.value1 = res.data[0].giftId;
|
||||||
|
// luckyGiftRangeConfigList({ giftId: this.inquire.value1 }).then((res) => {
|
||||||
|
// this.inquire.giftsNum = res.data;
|
||||||
|
// this.inquire.value2 = res.data[0].id;
|
||||||
|
// this.loading = true;
|
||||||
|
// luckyGiftRewardList({
|
||||||
|
// giftId: this.inquire.value1,
|
||||||
|
// rangeId: this.inquire.value2,
|
||||||
|
// }).then((res) => {
|
||||||
|
// this.inquire.diamond = res.data.giftPrice;
|
||||||
|
// this.inquire.giftExpectation = res.data.expectValue;
|
||||||
|
// this.tableData = res.data.list;
|
||||||
|
// this.loading = false;
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 外部监听
|
||||||
|
selectGift(e) {
|
||||||
|
console.log(e);
|
||||||
|
this.inquire.value1 = e;
|
||||||
|
luckyGiftRangeConfigList({ giftId: this.inquire.value1 }).then((res) => {
|
||||||
|
this.inquire.giftsNum = res.data;
|
||||||
|
// this.inquire.value2 = res.data[0].id;
|
||||||
|
// this.loading = true;
|
||||||
|
// luckyGiftRewardList({
|
||||||
|
// giftId: e,
|
||||||
|
// rangeId: this.inquire.value2,
|
||||||
|
// }).then((res) => {
|
||||||
|
// this.inquire.diamond = res.data.giftPrice;
|
||||||
|
// this.inquire.giftExpectation = res.data.expectValue;
|
||||||
|
// this.tableData = res.data.list;
|
||||||
|
// this.loading = false;
|
||||||
|
// });
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 外部监听2
|
||||||
|
selectGift2(e) {
|
||||||
|
this.inquire.value2 = e;
|
||||||
|
this.loading = true;
|
||||||
|
luckyGiftRewardList({
|
||||||
|
giftId: this.inquire.value1,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
}).then((res) => {
|
||||||
|
this.inquire.diamond = res.data.giftPrice;
|
||||||
|
this.inquire.giftExpectation = res.data.expectValue;
|
||||||
|
this.tableData = res.data.list;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 监听弹窗数值变化1
|
||||||
|
selectArea() {
|
||||||
|
if (this.dialog.value1 == 2) {
|
||||||
|
ElMessage({
|
||||||
|
showClose: true,
|
||||||
|
message: "数据加载中,请稍等~",
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
|
getAll({ giftType: 2 }).then((res) => {
|
||||||
|
this.dialog.gifts2 = res.data;
|
||||||
|
ElMessage({
|
||||||
|
showClose: true,
|
||||||
|
message: "加载完成",
|
||||||
|
type: "success",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 查询
|
||||||
|
getData() {
|
||||||
|
if (this.inquire.value1 == "") {
|
||||||
|
ElMessage({
|
||||||
|
showClose: true,
|
||||||
|
message: "请先选择礼物",
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.inquire.value2 == "") {
|
||||||
|
ElMessage({
|
||||||
|
showClose: true,
|
||||||
|
message: "请再次选择礼物个数区间",
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
luckyGiftRewardList({
|
||||||
|
giftId: this.inquire.value1,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
}).then((res) => {
|
||||||
|
this.inquire.diamond = res.data.giftPrice;
|
||||||
|
this.inquire.giftExpectation = res.data.expectValue;
|
||||||
|
this.tableData = res.data.list;
|
||||||
|
// this.inquire.value1 = "";
|
||||||
|
// this.inquire.value2 = "";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 新增
|
||||||
|
addGift() {
|
||||||
|
this.detailsTitle = "新增";
|
||||||
|
this.detailsDialog = true;
|
||||||
|
this.dialogBool = true;
|
||||||
|
},
|
||||||
|
//编辑
|
||||||
|
edi(val) {
|
||||||
|
this.dialog.value1 = val.rewardType == 1 ? "钻石" : "礼物";
|
||||||
|
this.dialog.gitChance = val.rewardRate;
|
||||||
|
this.dialog.showChance = val.showRate;
|
||||||
|
this.dialog.inventory = val.stockNum;
|
||||||
|
this.id = val.id;
|
||||||
|
if (val.rewardType == 1) {
|
||||||
|
this.dialog.diamond = val.rewardValue;
|
||||||
|
this.detailsDialog = true;
|
||||||
|
} else {
|
||||||
|
ElMessage({
|
||||||
|
showClose: true,
|
||||||
|
message: "数据加载中,请稍等~",
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
|
getAll({ giftType: 2 }).then((res) => {
|
||||||
|
ElMessage({
|
||||||
|
showClose: true,
|
||||||
|
message: "加载完成",
|
||||||
|
type: "success",
|
||||||
|
});
|
||||||
|
this.dialog.gifts2 = res.data;
|
||||||
|
var index = this.dialog.gifts2.findIndex((item) => {
|
||||||
|
return item.giftName == val.rewardName;
|
||||||
|
});
|
||||||
|
this.dialog.value2 = index;
|
||||||
|
this.detailsDialog = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 确认编辑或新增
|
||||||
|
share() {
|
||||||
|
console.log(this.dialog);
|
||||||
|
var obj = {};
|
||||||
|
// 新增
|
||||||
|
if (this.dialogBool) {
|
||||||
|
if (this.dialog.value1 == 1) {
|
||||||
|
obj = {
|
||||||
|
rewardType: this.dialog.value1 == "钻石" || this.dialog.value1 == 1 ? 1 : 2,
|
||||||
|
rewardValue: this.dialog.diamond,
|
||||||
|
rewardRate: this.dialog.gitChance,
|
||||||
|
showRate: this.dialog.showChance,
|
||||||
|
stockNum: this.dialog.inventory,
|
||||||
|
giftId: this.inquire.value1,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
obj = {
|
||||||
|
rewardType: this.dialog.value1 == "钻石" || this.dialog.value1 == 1 ? 1 : 2,
|
||||||
|
rewardValue: this.dialog.gifts2[this.dialog.value2].giftId,
|
||||||
|
rewardRate: this.dialog.gitChance,
|
||||||
|
showRate: this.dialog.showChance,
|
||||||
|
stockNum: this.dialog.inventory,
|
||||||
|
giftId: this.inquire.value1,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
this.dialog.gitChance = "";
|
||||||
|
this.dialog.showChance = "";
|
||||||
|
this.dialog.inventory = "";
|
||||||
|
this.dialog.diamond = "";
|
||||||
|
this.dialog.value2 = 0;
|
||||||
|
} else {
|
||||||
|
if (this.dialog.value1 == 1 || this.dialog.value1 == "钻石") {
|
||||||
|
obj = {
|
||||||
|
rewardType: this.dialog.value1 == "钻石" ? 1 : 2,
|
||||||
|
rewardValue: this.dialog.diamond,
|
||||||
|
rewardRate: this.dialog.gitChance,
|
||||||
|
showRate: this.dialog.showChance,
|
||||||
|
stockNum: this.dialog.inventory,
|
||||||
|
giftId: this.inquire.value1,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
id: this.id,
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
obj = {
|
||||||
|
rewardType: this.dialog.value1 == "钻石" ? 1 : 2,
|
||||||
|
rewardValue: this.dialog.gifts2[this.dialog.value2].giftId,
|
||||||
|
rewardRate: this.dialog.gitChance,
|
||||||
|
showRate: this.dialog.showChance,
|
||||||
|
stockNum: this.dialog.inventory,
|
||||||
|
giftId: this.inquire.value1,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
id: this.id,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
luckyGiftRewardSave(obj).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
ElMessage({
|
||||||
|
showClose: true,
|
||||||
|
message: "保存成功",
|
||||||
|
type: "success",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
ElMessage({
|
||||||
|
showClose: true,
|
||||||
|
message: res.message,
|
||||||
|
type: "danger",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.detailsDialog = false;
|
||||||
|
luckyGiftRewardList({
|
||||||
|
giftId: this.inquire.value1,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
}).then((res) => {
|
||||||
|
this.inquire.diamond = res.data.giftPrice;
|
||||||
|
this.inquire.giftExpectation = res.data.expectValue;
|
||||||
|
this.tableData = res.data.list;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//删除
|
||||||
|
del(val) {
|
||||||
|
ElMessageBox.confirm("此操作将永久删除该, 是否继续?", "提示", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "error",
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
luckyGiftRewardDelete({ id: val.id }).then((res) => {
|
||||||
|
luckyGiftRewardList({
|
||||||
|
giftId: this.inquire.value1,
|
||||||
|
rangeId: this.inquire.value2,
|
||||||
|
}).then((res) => {
|
||||||
|
this.inquire.diamond = res.data.giftPrice;
|
||||||
|
this.inquire.giftExpectation = res.data.expectValue;
|
||||||
|
this.tableData = res.data.list;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
},
|
||||||
|
// 分页导航
|
||||||
|
handleSizeChange() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
handleCurrentChange() {
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.outer {
|
||||||
|
padding-top: 20px;
|
||||||
|
background: #ecf0f5;
|
||||||
|
border-top: 3px solid #d2d6de;
|
||||||
|
.demonstration {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.inquire {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.search {
|
||||||
|
width: 100%;
|
||||||
|
height: 41px;
|
||||||
|
.searchLeft,
|
||||||
|
.searchRight {
|
||||||
|
width: 20%;
|
||||||
|
float: left;
|
||||||
|
span {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
.input {
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.buttonBox {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.authorityBox {
|
||||||
|
.authoritySpan {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.authorityInpput {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.dialogTableVisibleBut {
|
||||||
|
margin: -25px 0 20px 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@@ -64,6 +64,7 @@
|
|||||||
<option value="10">涂鸦礼物</option>
|
<option value="10">涂鸦礼物</option>
|
||||||
<option value="11">个播人气礼物</option>
|
<option value="11">个播人气礼物</option>
|
||||||
<option value="15">线性福袋礼物</option>
|
<option value="15">线性福袋礼物</option>
|
||||||
|
<option value="16">超级幸运礼物</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -180,6 +181,7 @@
|
|||||||
<option value="10">涂鸦礼物</option>
|
<option value="10">涂鸦礼物</option>
|
||||||
<option value="11">个播人气礼物</option>
|
<option value="11">个播人气礼物</option>
|
||||||
<option value="15">线性福袋礼物</option>
|
<option value="15">线性福袋礼物</option>
|
||||||
|
<option value="16">超级幸运礼物</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
<div id="table"></div>
|
<div id="table"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
|
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel" style="height: 100%; overflow: hidden; overflow: scroll;">
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog" role="document">
|
||||||
<div class="modal-content" style="width: 500px;">
|
<div class="modal-content" style="width: 500px;">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
@@ -23,8 +23,9 @@
|
|||||||
<h4 class="modal-title" id="modalLabel">贵族编辑</h4>
|
<h4 class="modal-title" id="modalLabel">贵族编辑</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form class="form-horizontal" id="addForm">
|
<div class="form-horizontal" id="addForm">
|
||||||
<input type="hidden" name="vipLevel" id="vipLevel" />
|
<input type="hidden" name="vipLevel" id="vipLevel" />
|
||||||
|
<input type="hidden" name="addSize" id="addSize" />
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="vipName" class="col-sm-4 control-label">名称:</label>
|
<label for="vipName" class="col-sm-4 control-label">名称:</label>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
@@ -92,6 +93,40 @@
|
|||||||
</div>
|
</div>
|
||||||
<!--权限-->
|
<!--权限-->
|
||||||
<div id="authDiv">
|
<div id="authDiv">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="buyAmount" class="col-sm-4 control-label">购买价格:</label>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<input type="text" class="form-control" name="buyAmount"
|
||||||
|
id="buyAmount">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="isReturnProfit" class="col-sm-4 control-label">是否返利:</label>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<select name="isReturnProfit" id="isReturnProfit" data-btn-class="btn-warning"
|
||||||
|
class="form-control" onchange="swapProfit()">
|
||||||
|
<option value="1">是</option>
|
||||||
|
<option value="0">否</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="profitDiv">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-4 control-label">返利日期配置</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-4 control-label"></label>
|
||||||
|
<div class="col-sm-8" id="returnProfits">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-4 control-label"></label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<button type="button" class="btn btn-primary form-control" id="returnProfitAdd">+ 添加</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-sm-4 control-label">
|
<label class="col-sm-4 control-label">
|
||||||
<input type="checkbox" class="authCheckBox" name="namePlateIds" value="1" />贵族铭牌
|
<input type="checkbox" class="authCheckBox" name="namePlateIds" value="1" />贵族铭牌
|
||||||
@@ -211,7 +246,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
@@ -295,7 +330,18 @@ const VIP_AUTH_TYPE = {
|
|||||||
export default {
|
export default {
|
||||||
name: "VipManageView",
|
name: "VipManageView",
|
||||||
setup() {
|
setup() {
|
||||||
return {};
|
function swapProfit() {
|
||||||
|
let isReturnProfit = $('#isReturnProfit').val();
|
||||||
|
if (isReturnProfit && isReturnProfit == 1) {
|
||||||
|
document.getElementById("profitDiv").style.display = "block";
|
||||||
|
} else {
|
||||||
|
document.getElementById("profitDiv").style.display = "none";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.swapProfit = swapProfit;
|
||||||
|
return {
|
||||||
|
swapProfit,
|
||||||
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.$nextTick(function () {
|
this.$nextTick(function () {
|
||||||
@@ -322,7 +368,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{ field: 'levelKeepScore', title: '保级值', align: 'center', width: '5%' },
|
{ field: 'levelKeepScore', title: '保级值', align: 'center', width: '5%' },
|
||||||
{ field: 'levelUpScore', title: '所需升级值', align: 'center', width: '5%' },
|
{ field: 'levelUpScore', title: '所需升级值', align: 'center', width: '5%' },
|
||||||
{ field: 'comingSoon', title: '是否敬请祈祷', visible: false, align: 'center', width: '5%' },
|
{ field: 'comingSoon', title: '是否敬请期待', visible: false, align: 'center', width: '5%' },
|
||||||
{
|
{
|
||||||
field: 'authItems', title: '贵族特权', align: 'center', width: '5%',
|
field: 'authItems', title: '贵族特权', align: 'center', width: '5%',
|
||||||
formatter: function (val, row) {
|
formatter: function (val, row) {
|
||||||
@@ -334,6 +380,47 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
field: 'isReturnProfit',
|
||||||
|
title: '是否返利',
|
||||||
|
align: 'center',
|
||||||
|
width: '5%',
|
||||||
|
formatter: function (val, row) {
|
||||||
|
let value = '否';
|
||||||
|
if (val == 1) {
|
||||||
|
value = '是';
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'returnProfits',
|
||||||
|
title: '返利日期+返利钻石数量',
|
||||||
|
align: 'center',
|
||||||
|
width: '5%',
|
||||||
|
formatter: function (val, row) {
|
||||||
|
let value = '';
|
||||||
|
if (val && val.length > 0) {
|
||||||
|
for (let i = 0, len = val.length; i < len; i++) {
|
||||||
|
let item = val[i];
|
||||||
|
let profitDate = item.profitDate;
|
||||||
|
let profitAmount = item.profitAmount;
|
||||||
|
if (profitDate == 0) {
|
||||||
|
value += '立即返利:' + profitAmount;
|
||||||
|
} else {
|
||||||
|
value += '第' + profitDate + '天:' + profitAmount;
|
||||||
|
}
|
||||||
|
if (i != len - 1) {
|
||||||
|
value += '<br/>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
value = '/';
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ field: 'buyAmount', title: '购买价格', align: 'center', width: '5%' },
|
||||||
{
|
{
|
||||||
field: 'opt',
|
field: 'opt',
|
||||||
title: '操作',
|
title: '操作',
|
||||||
@@ -409,7 +496,7 @@ export default {
|
|||||||
console.log(vip)
|
console.log(vip)
|
||||||
initEditModal(vip);
|
initEditModal(vip);
|
||||||
initVipAuth(vip);
|
initVipAuth(vip);
|
||||||
|
initReturnProfit(vip);
|
||||||
$("#editModal").modal('show');
|
$("#editModal").modal('show');
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -432,11 +519,19 @@ export default {
|
|||||||
$("#addForm #levelKeepScore").val(val.levelKeepScore);
|
$("#addForm #levelKeepScore").val(val.levelKeepScore);
|
||||||
$("#addForm #levelUpScore").val(val.levelUpScore);
|
$("#addForm #levelUpScore").val(val.levelUpScore);
|
||||||
$("#addForm #comingSoon").val(val.comingSoon);
|
$("#addForm #comingSoon").val(val.comingSoon);
|
||||||
|
$('#addForm #isReturnProfit').val(val.isReturnProfit);
|
||||||
|
$('#addForm #buyAmount').val(val.buyAmount);
|
||||||
if (val.comingSoon === 2) {
|
if (val.comingSoon === 2) {
|
||||||
document.getElementById("authDiv").style.display = "none";
|
document.getElementById("authDiv").style.display = "none";
|
||||||
} else {
|
} else {
|
||||||
document.getElementById("authDiv").style.display = "block";
|
document.getElementById("authDiv").style.display = "block";
|
||||||
}
|
}
|
||||||
|
let isReturnProfit = val.isReturnProfit;
|
||||||
|
if (isReturnProfit && isReturnProfit == 1) {
|
||||||
|
document.getElementById("profitDiv").style.display = "block";
|
||||||
|
} else {
|
||||||
|
document.getElementById("profitDiv").style.display = "none";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function initVipAuth(val) {
|
function initVipAuth(val) {
|
||||||
@@ -494,9 +589,102 @@ export default {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
function initReturnProfit(val) {
|
||||||
|
if (!val) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$('#returnProfits').children().remove();
|
||||||
|
let returnProfits = val.returnProfits;
|
||||||
|
if (!returnProfits || returnProfits.length <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$('#addSize').val(returnProfits.length);
|
||||||
|
let $div = $('#returnProfits');
|
||||||
|
for (let i = 0, len = returnProfits.length; i < len; i++) {
|
||||||
|
let returnProfit = returnProfits[i];
|
||||||
|
let returnProfitId = returnProfit.id;
|
||||||
|
let profitDate = returnProfit.profitDate;
|
||||||
|
let profitAmount = returnProfit.profitAmount;
|
||||||
|
let $span = $('<span/>');
|
||||||
|
$span.attr('id', 'returnProfit' + i);
|
||||||
|
let $input = $('<input/>');
|
||||||
|
$input.attr('type', 'hidden');
|
||||||
|
$input.attr('name', 'returnProfitId' + i);
|
||||||
|
$input.attr('id', 'returnProfitId' + i);
|
||||||
|
$input.attr('value', returnProfitId);
|
||||||
|
$span.append($input);
|
||||||
|
let html = '';
|
||||||
|
if (!profitDate || profitDate == 0) {
|
||||||
|
html += '立即返利<input type="hidden" data-index="' + i + '" id="profitDate' + i + '" value="0"/>,';
|
||||||
|
} else {
|
||||||
|
html += '第 <input type="text" data-index="' + i + '" id="profitDate' + i + '" value="' + profitDate + '" style="width:41px;"/> 天,';
|
||||||
|
}
|
||||||
|
html += '返利 <input type="text" data-index="' + i + '" id="profitAmount' + i + '" value="' + profitAmount + '" style="width:41px;"/> 钻石 <button class="btn btn-sm btn-default opt-del" data-index="' + i + '">删除</button><br/>';
|
||||||
|
$span.append(html);
|
||||||
|
$div.append($span);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//添加返利
|
||||||
|
$("#returnProfitAdd").click(function () {
|
||||||
|
let i = parseInt($('#addSize').val());
|
||||||
|
if (!i) {
|
||||||
|
i = 0;
|
||||||
|
}
|
||||||
|
let $div = $('#returnProfits');
|
||||||
|
let $span = $('<span/>');
|
||||||
|
$span.attr('id', 'returnProfit' + i);
|
||||||
|
let html = '';
|
||||||
|
if (!i || i == 0) {
|
||||||
|
html += '立即返利<input type="hidden" data-index="' + i + '" id="profitDate' + i + '" value="0"/>,';
|
||||||
|
} else {
|
||||||
|
html += '第 <input type="text" data-index="' + i + '" id="profitDate' + i + '" style="width:41px;"/> 天,';
|
||||||
|
}
|
||||||
|
html += '返利 <input type="text" data-index="' + i + '" id="profitAmount' + i + '" style="width:41px;"/> 钻石 <button class="btn btn-sm btn-default opt-del" data-index="' + i + '">删除</button><br/>';
|
||||||
|
$span.html(html);
|
||||||
|
$div.append($span);
|
||||||
|
$('#addSize').val(++i);
|
||||||
|
});
|
||||||
|
|
||||||
|
//删除
|
||||||
|
$('#editModal .modal-body .form-horizontal').on('click', '.opt-del', function () {
|
||||||
|
var index = $(this).data('index');
|
||||||
|
var returnProfitId = $('#returnProfitId' + index).val();
|
||||||
|
if (returnProfitId) {
|
||||||
|
const msg = '确定要删除吗?';
|
||||||
|
if (confirm(msg)) {
|
||||||
|
$.ajax({
|
||||||
|
type: "get",
|
||||||
|
url: "/admin/vip/return/profit/del?returnProfitId=" + returnProfitId,
|
||||||
|
dataType: "json",
|
||||||
|
success: function (json) {
|
||||||
|
if (json.success == 'true' || json.code == 200) {
|
||||||
|
$("#tipMsg").text("删除成功");
|
||||||
|
$("#tipModal").modal('show');
|
||||||
|
} else {
|
||||||
|
$("#tipMsg").text("删除失败." + json.message);
|
||||||
|
$("#tipModal").modal('show');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let addSize = $('#addSize').val();
|
||||||
|
if (!addSize) {
|
||||||
|
addSize = 0;
|
||||||
|
}
|
||||||
|
if (addSize > 0) {
|
||||||
|
$('#addSize').val(--addSize);
|
||||||
|
}
|
||||||
|
$('#returnProfit' + index).remove();
|
||||||
|
});
|
||||||
|
|
||||||
// 保存
|
// 保存
|
||||||
$('#button-save').on('click', function () {
|
$('#button-save').on('click', function () {
|
||||||
let params = buildSaveParams();
|
let params = buildSaveParams();
|
||||||
|
if (!params) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
console.log(params)
|
console.log(params)
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'post',
|
type: 'post',
|
||||||
@@ -505,7 +693,7 @@ export default {
|
|||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
$('#packModal').modal('hide');
|
$('#editModal').modal('hide');
|
||||||
$('#tipMsg').text('保存成功');
|
$('#tipMsg').text('保存成功');
|
||||||
$('#tipModal').modal('show');
|
$('#tipModal').modal('show');
|
||||||
TableHelper.doRefresh('#table')
|
TableHelper.doRefresh('#table')
|
||||||
@@ -534,12 +722,54 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
let vipLevel = $("#addForm #vipLevel").val();
|
||||||
|
let addSize = $('#addSize').val();
|
||||||
|
if (addSize && addSize > 5) {
|
||||||
|
$("#tipMsg").text("返利数量超过5个!!!");
|
||||||
|
$("#tipModal").modal('show');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
let isReturnProfit = $('#isReturnProfit').val();
|
||||||
|
let returnProfitArray = [];
|
||||||
|
if (isReturnProfit && isReturnProfit == 1) {
|
||||||
|
for (let i = 0; i < addSize; i++) {
|
||||||
|
let returnProfitId = $('#returnProfitId' + i).val();
|
||||||
|
let profitDate = parseFloat($('#profitDate' + i).val());
|
||||||
|
let profitAmount = $('#profitAmount' + i).val();
|
||||||
|
if (!returnProfitId && !profitDate && !profitAmount) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (profitDate != 0 && profitDate > 29) {
|
||||||
|
$("#tipMsg").text("返利日期不能超过30天!");
|
||||||
|
$("#tipModal").modal('show');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (!profitAmount || profitAmount <= 0) {
|
||||||
|
$("#tipMsg").text("返利数量不能为空!");
|
||||||
|
$("#tipModal").modal('show');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
let returnProfit = {
|
||||||
|
vipLevel: vipLevel,
|
||||||
|
profitDate: profitDate,
|
||||||
|
profitAmount: parseInt(profitAmount),
|
||||||
|
seqNo: vipLevel
|
||||||
|
};
|
||||||
|
if (returnProfitId) {
|
||||||
|
returnProfit.id = returnProfitId;
|
||||||
|
}
|
||||||
|
returnProfitArray.push(returnProfit);
|
||||||
|
}
|
||||||
|
}
|
||||||
const param = {
|
const param = {
|
||||||
vipLevel: $("#addForm #vipLevel").val(),
|
vipLevel: $("#addForm #vipLevel").val(),
|
||||||
vipLogo: $("#addForm #vipLogo").val(),
|
vipLogo: $("#addForm #vipLogo").val(),
|
||||||
vipIcon: $("#addForm #vipIcon").val(),
|
vipIcon: $("#addForm #vipIcon").val(),
|
||||||
floatPic: $("#addForm #floatPic").val(),
|
floatPic: $("#addForm #floatPic").val(),
|
||||||
authMap: authMap
|
isReturnProfit: isReturnProfit,
|
||||||
|
buyAmount: $('#buyAmount').val(),
|
||||||
|
authMap: authMap,
|
||||||
|
returnProfitJson: (returnProfitArray && returnProfitArray.length > 0) ? JSON.stringify(returnProfitArray) : null
|
||||||
};
|
};
|
||||||
return param;
|
return param;
|
||||||
}
|
}
|
||||||
|
@@ -1,28 +1,28 @@
|
|||||||
{
|
// {
|
||||||
"compilerOptions": {
|
// "compilerOptions": {
|
||||||
"target": "esnext",
|
// "target": "esnext",
|
||||||
"module": "esnext",
|
// "module": "esnext",
|
||||||
"strict": false,
|
// "strict": false,
|
||||||
"esModuleInterop": true,
|
// "esModuleInterop": true,
|
||||||
"allowJs": true,
|
// "allowJs": true,
|
||||||
"moduleResolution": "node",
|
// "moduleResolution": "node",
|
||||||
"resolveJsonModule": true,
|
// "resolveJsonModule": true,
|
||||||
"esModuleInterop": true,
|
// "esModuleInterop": true,
|
||||||
"jsx": "preserve",
|
// "jsx": "preserve",
|
||||||
"noEmit": true,
|
// "noEmit": true,
|
||||||
"noImplicitAny": false,
|
// "noImplicitAny": false,
|
||||||
"strictNullChecks": true,
|
// "strictNullChecks": true,
|
||||||
"inlineSourceMap": true,
|
// "inlineSourceMap": true,
|
||||||
"inlineSources": true,
|
// "inlineSources": true,
|
||||||
"checkJs": true,
|
// "checkJs": true,
|
||||||
"outDir": "./dist",
|
// "outDir": "./dist",
|
||||||
"rootDir": "./src",
|
// "rootDir": "./src",
|
||||||
"outFiles": "./dist/bundle.js"
|
// "outFiles": "./dist/bundle.js"
|
||||||
},
|
// },
|
||||||
"include": [
|
// "include": [
|
||||||
"./src/**/*"
|
// "./src/**/*"
|
||||||
],
|
// ],
|
||||||
"exclude": [
|
// "exclude": [
|
||||||
"node_modules"
|
// "node_modules"
|
||||||
]
|
// ]
|
||||||
}
|
// }
|
Reference in New Issue
Block a user