Compare commits

..

12 Commits

4 changed files with 40 additions and 370 deletions

View File

@@ -332,16 +332,3 @@ export const getRoomCycleDateList = query => {
params: query
});
};
//公会钻石流水 - 小时
export const diamondHourStatistics = query => {
return request({
url: '/admin/guild/hourDiamondStatistics',
method: 'get',
params: query
});
};
// 导出
export const diamondHourStatisticsExport = query => {
window.location.href = `/admin/guild/hourDiamondStatistics/export?${genQueryParam(query)}`;
return;
};

View File

@@ -1,258 +0,0 @@
<template>
<div class="box">
<!-- 查询 -->
<div class="inquire">
<div class="block">
<span class="demonstration">分区</span>
<partition-select v-model:partition-id="inquire.partitionId"
v-model:partition-infos="inquire.partitionArr"
/>
</div>
</div>
<!-- 查询 -->
<div class="inquire">
<div class="block">
<span class="demonstration">地区</span>
<partition-region-select v-model:partition-id="inquire.partitionId"
v-model:region-id="inquire.regionId"
v-model:region-infos="inquire.regionArr"
v-model:after-init="getData"
/>
</div>
</div>
<div class="inquire">
<span>公会ID</span>
<el-input
v-model="inquire.guildId"
placeholder=""
class="input"
></el-input>
</div>
<div class="inquire">
<span>公会长ID</span>
<el-input
v-model="inquire.guildBoosId"
placeholder=""
class="input"
></el-input>
</div>
<div class="inquire">
<div class="block">
<span class="demonstration">开始时间</span>
<el-date-picker
v-model="inquire.time[0]"
type="datetime"
placeholder="开始时间"
format="YYYY-MM-DD HH:mm"
value-format="YYYY-MM-DD HH:00:00"
>
</el-date-picker>
</div>
</div>
<div class="inquire">
<div class="block">
<span class="demonstration">结束时间</span>
<el-date-picker
v-model="inquire.time[1]"
type="datetime"
placeholder="结束时间"
format="YYYY-MM-DD HH:mm"
value-format="YYYY-MM-DD HH:00:00"
>
</el-date-picker>
</div>
</div>
<div>
<!-- 查询按钮 -->
<el-button class="primary but" type="primary" @click="getData()"
>查询</el-button
>
<el-button
class="primary"
type="primary"
@click="
inquire.guildId = '';
inquire.guildBoosId = '';
inquire.time = [];
getData();
"
>重置查询</el-button
>
<el-button
class="primary"
type="primary"
@click="diamondStatisticsExportFun()"
>导出</el-button
>
</div>
<!-- 表格 -->
<el-table
v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column type="index" width="100" align="center" label="序号" />
<el-table-column prop="partitionDesc" align="center" label="分区" />
<el-table-column prop="guildId" align="center" label="公会ID" />
<el-table-column prop="guildName" align="center" label="公会昵称" />
<el-table-column prop="ownerErbanNo" align="center" label="公会长ID" />
<el-table-column prop="ownerRegionDesc" align="center" label="公会长地区" />
<el-table-column prop="adminUsername" align="center" label="操作人" />
<el-table-column prop="memberNum" align="center" label="主播人数" />
<el-table-column prop="diamondNum" align="center" label="钻石流水" />
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[20, 50, 100, 200, 500]"
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
</template>
<script>
import {
diamondHourStatistics,
diamondHourStatisticsExport,
} from "@/api/relAgency/relAgency";
// @ts-ignore
import { dateFormat } from "@/utils/system-helper";
// @ts-ignore
import { ElMessage } from "element-plus";
import PartitionSelect from "@/views/common/partitionSelect.vue";
import PartitionRegionSelect from "@/views/common/partitionRegionSelect.vue";
export default {
name: "diamondFlowHour",
components: {PartitionSelect, PartitionRegionSelect},
data() {
return {
loading: false,
//查询所需条件对象
inquire: {
guildId: "",
guildBoosId: "",
time: [],
partitionId: undefined,
partitionArr: [],
regionId: undefined,
regionArr: [],
},
// 表格
tableData: [],
// 新增弹窗
addDialog: false,
// 分页
total: 0, //总页数
currentPage: 1, //页码
pageSize: 20, //条数
};
},
methods: {
// 查询接口
getData() {
this.loading = true;
let time = this.inquire.time;
let startTime = null;
let endTime = null;
if (time.length > 0) {
startTime = this.inquire.time[0]
? dateFormat(this.inquire.time[0], "yyyy-MM-dd hh")
: null;
endTime = this.inquire.time[1]
? dateFormat(this.inquire.time[1], "yyyy-MM-dd hh")
: null;
}
diamondHourStatistics({
guildId: this.inquire.guildId,
ownerErbanNo: this.inquire.guildBoosId,
partitionId: this.inquire.partitionId,
regionId: this.inquire.regionId,
startTime: startTime,
endTime: endTime,
pageNo: this.currentPage,
pageSize: this.pageSize,
}).then((res) => {
if (res.code == 200) {
this.total = res.data.total;
this.tableData = res.data.records;
this.loading = false;
} else {
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
});
},
// 导出
diamondStatisticsExportFun() {
let time = this.inquire.time;
let startTime = "";
let endTime = "";
if (time && time.length > 0) {
startTime = dateFormat(this.inquire.time[0], "yyyy-MM-dd hh");
endTime = dateFormat(this.inquire.time[1], "yyyy-MM-dd hh");
}
console.log(startTime, endTime);
diamondHourStatisticsExport({
guildId: this.inquire.guildId,
ownerErbanNo: this.inquire.guildBoosId,
startTime: startTime,
endTime: endTime,
partitionId: this.inquire.partitionId,
regionId: this.inquire.regionId,
});
},
// 分页导航
handleSizeChange() {
this.getData();
},
handleCurrentChange() {
this.getData();
},
},
};
</script>
<style lang="less" scoped>
.box {
padding-top: 20px;
background: #ecf0f5;
.inquire {
display: inline-block;
margin-right: 20px;
margin-bottom: 20px;
span {
margin-right: 10px;
}
.input {
width: 180px;
margin-right: 10px;
}
}
.dialogTableVisibleBut {
display: block;
margin: 30px 0 0 830px;
}
.paginationClass {
margin: 15px 0 5px 0px;
}
}
.selectBox {
display: flex;
height: 35px;
line-height: 35px;
margin-bottom: 20px;
}
.selectBoxImg {
height: 150px;
}
</style>

View File

@@ -423,52 +423,38 @@
</div>
<div class="inquire">
<span>当天获得次数限制</span>
<el-input v-model="inquire.extraPoolConfig.dayCountLimit"
<span>单次投入金币门槛</span>
<el-input v-model="inquire.extraPoolConfig.inputThreshold"
class="input"
disabled></el-input>
</div>
<div class="inquire">
<span>当天进入判断点位最后一位循环判断</span>
<el-input v-model="inquire.extraPoolConfig.timesJudgeArray"
<span>用户充值等级</span>
<el-input v-model="inquire.extraPoolConfig.userRechargeLevels"
class="input"
disabled></el-input>
</div>
<div class="inquire">
<span>配置</span>
<!-- 使用卡片展示judgeConfig -->
<el-card v-for="(level2Obj, level1Key) in inquire.extraPoolConfig.judgeConfig"
:key="level1Key"
class="judge-config-card">
<template #header>
<span>当天内平均进入大于等于 {{ level1Key }}</span>
</template>
<el-table :data="getLevel2TableData(level2Obj)" style="width: 100%" border stripe>
<el-table-column prop="level2Key" label="三天内总进入/三天内投产比" />
<el-table-column label="1000">
<template #default="scope">
{{ getKeyByValue(scope.row.level3Obj, 1000) }}
</template>
</el-table-column>
<el-table-column label="500">
<template #default="scope">
{{ getKeyByValue(scope.row.level3Obj, 500) }}
</template>
</el-table-column>
<el-table-column label="250">
<template #default="scope">
{{ getKeyByValue(scope.row.level3Obj, 250) }}
</template>
</el-table-column>
<el-table-column label="100">
<template #default="scope">
{{ getKeyByValue(scope.row.level3Obj, 100) }}
</template>
</el-table-column>
</el-table>
</el-card>
<span>当天退出率</span>
<el-input v-model="inquire.extraPoolConfig.todayProductionRatio"
class="input"
disabled></el-input>
</div>
<div class="inquire">
<span>当天差额</span>
<el-input v-model="inquire.extraPoolConfig.todayDiff"
class="input"
disabled></el-input>
</div>
<div class="inquire">
<span>近两天获得次数限制</span>
<el-input v-model="inquire.extraPoolConfig.twoDayCountLimit"
class="input"
disabled></el-input>
</div>
<el-button class="primary"
@@ -621,12 +607,22 @@
class="input" />
</el-col>
</el-form-item>
<el-form-item label="当天获得次数限制">
<el-input v-model="inquire.extraPoolConfig.dayCountLimit"
<el-form-item label="单次投入金币门槛">
<el-input v-model="inquire.extraPoolConfig.inputThreshold" />
</el-form-item>
<el-form-item label="用户充值等级">
<el-input v-model="inquire.extraPoolConfig.userRechargeLevels" />
</el-form-item>
<el-form-item label="当天退出率">
<el-input v-model="inquire.extraPoolConfig.todayProductionRatio"
class="input"></el-input>
</el-form-item>
<el-form-item label="当天进入判断点位(最后一位循环判断)">
<el-input v-model="inquire.extraPoolConfig.timesJudgeArray"
<el-form-item label="当天差额">
<el-input v-model="inquire.extraPoolConfig.todayDiff"
class="input"></el-input>
</el-form-item>
<el-form-item label="近两天获得次数限制">
<el-input v-model="inquire.extraPoolConfig.twoDayCountLimit"
class="input"></el-input>
</el-form-item>
</el-form>
@@ -700,9 +696,6 @@ export default {
multiEditDialogTitle: "",
detailsDialog: false,
extraPoolDialog: false,
judgeConfigDialogVisible: false,
activeJudgeTab: '0',
tempJudgeConfig: {}, // 用于临时存储编辑的judgeConfig
extraDialogButClick: true,
value: "",
type: null,
@@ -748,29 +741,9 @@ export default {
this.inquire.extraStock = res.data.extraStock;
this.inquire.extraPoolConfig = res.data.extraPoolConfig;
this.inquire.extraPoolConfig.timesJudgeArray = res.data.extraPoolConfig.timesJudgeArray.join(',');
this.inquire.extraPoolConfig.judgeConfigTree = this.convertToTree(res.data.extraPoolConfig.judgeConfig)
console.info(this.inquire.extraPoolConfig.judgeConfigTree)
this.inquire.extraPoolConfig.userRechargeLevels = res.data.extraPoolConfig.userRechargeLevels.join(',');
});
},
// 获取第二层表格数据
getLevel2TableData(level2Obj) {
return Object.keys(level2Obj).map(level2Key => ({
level2Key,
level3Obj: level2Obj[level2Key]
}));
},
// 根据值获取键
getKeyByValue(obj, value) {
for (const key in obj) {
if (obj[key] === value) {
return key;
}
}
return ''; // 如果没有找到对应的值,返回空字符串
},
// 排序
sortK12 (kObj) {
// 创建一个新对象以保持排序后的键值对
@@ -954,7 +927,7 @@ export default {
obj.partitionId = this.inquire.value;
obj.extraPoolConfig = this.inquire.extraPoolConfig;
console.info(this.inquire.extraPoolConfig.userRechargeLevels)
obj.extraPoolConfig.timesJudgeArray = this.inquire.extraPoolConfig.timesJudgeArray.split(",");
obj.extraPoolConfig.userRechargeLevels = this.inquire.extraPoolConfig.userRechargeLevels.split(",");
updateSet(obj).then((res) => {
if (res.code == 200) {
ElMessage({
@@ -1003,23 +976,4 @@ export default {
margin-bottom: 20px;
}
}
// 卡片样式适配表单项
.judge-config-card {
border: 1px solid #dcdfe6;
border-radius: 4px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
margin-bottom: 10px;
background-color: #fff;
}
.el-card__header {
padding: 10px 15px;
border-bottom: 1px solid #dcdfe6;
font-size: 14px;
color: #303133;
line-height: 1.5;
}
.el-card__body {
padding: 15px;
}
</style>

View File

@@ -163,14 +163,6 @@
label="可见用户"
:formatter="ruleJsonFormatter" />
<el-table-column align="center"
prop="USER_LEVEL"
label="用户等级"
:formatter="ruleJsonFormatter" />
<el-table-column align="center"
prop="USER_LEVEL_LIMIT_ROLE"
label="财富等级限制生效范围"
:formatter="ruleJsonFormatter" />
<el-table-column align="center"
prop="panelType"
label="游戏第三方" >
<template v-slot="scope">{{ scope.row.code=='BAISHUN'?'百顺':scope.row.code=='LEADERCC'?'灵仙':'Joy'}}</template>
@@ -593,8 +585,6 @@ export default {
if (!value) {
if (key == 'NOT_CHANNELS' || key == 'NOT_UIDS') {
value = '-';
} else if (key == 'USER_LEVEL_LIMIT_ROLE') {
value = '全部用户';
} else {
value = '全部';
}
@@ -604,9 +594,6 @@ export default {
} else if (key == 'ANDROID') {
value = ruleObj['ANDROID_LOW_VERSION'] + '~' + ruleObj['ANDROID_HIGH_VERSION'];
}
if (key == 'USER_LEVEL_LIMIT_ROLE') {
value = ruleObj['USER_LEVEL_LIMIT_ROLE']?ruleObj['USER_LEVEL_LIMIT_ROLE'] == 1?'全部用户':'非公会成员':'全部用户';
}
return value;
},
getData () {
@@ -702,7 +689,7 @@ export default {
}
this.resource.ruleValue[ruleCode] = rule;
}
this.resource.ruleValue['USER_LEVEL_LIMIT_ROLE'] = this.resource.ruleValue['USER_LEVEL_LIMIT_ROLE'] ?this.resource.ruleValue['USER_LEVEL_LIMIT_ROLE']:"1";
this.resource.ruleValue['USER_LEVEL_LIMIT_ROLE'] = "1";
this.resource.partitionId = row.partitionId;
this.editDialog = true;
},