家族-公会工资、金币流水

This commit is contained in:
2025-09-24 15:25:13 +08:00
committed by yujiacong
parent 9023f59471
commit d0fc9981aa
4 changed files with 134 additions and 267 deletions

View File

@@ -175,19 +175,6 @@ export const statExportFamilyMember = query => {
window.location.href = `/admin/family/wage/stat/exportFamilyMember?${genQueryParam(query)}`;
return;
};
// 工会统计-每日工会详情
export const listFamilyMemberDaily = query => {
return request({
url: '/admin/family/wage/stat/listFamilyMemberDaily',
method: 'get',
params: query
});
};
// 工会统计-单每日会导出
export const exportFamilyMemberDaily = query => {
window.location.href = `/admin/family/wage/stat/exportFamilyMemberDaily?${genQueryParam(query)}`;
return;
};
// 工会统计-导出公会工资统计
export const statExportFamily = query => {
window.location.href = `/admin/family/wage/stat/exportFamily?${genQueryParam(query)}`;

View File

@@ -81,12 +81,6 @@
<el-table-column prop="goldIncome"
align="center"
label="月金币收入(流水)" />
<el-table-column prop="hasGoldIncomeMemberNum"
align="center"
label="有流水成员数" />
<el-table-column prop="sendGiftUserNum"
align="center"
label="送礼人数" />
<el-table-column align="center"
label="操作">
<template v-slot="scope">
@@ -124,9 +118,6 @@
<el-table-column prop="goldIncome"
align="center"
label="金币收入(流水)" />
<el-table-column prop="sendGiftUserNum"
align="center"
label="送礼人数" />
</el-table>
<!-- 分页 -->
<el-pagination style="margin-top: 10px"

View File

@@ -1,15 +1,14 @@
<template>
<div class="box">
<!-- 时间选择器 -->
<div class="inquire">
<div class="inquire">
<span>周期</span>
<el-select v-model="inquire.cycleDate" placeholder="请选择">
<el-option
v-for="(item,index) in dateCycleArr"
:key="index"
:label="item.startDateStr + '~' + item.endDateStr"
:value="item.dateCycle"
>
<el-select v-model="inquire.cycleDate"
placeholder="请选择">
<el-option v-for="(item,index) in dateCycleArr"
:key="index"
:label="item.startDateStr + '~' + item.endDateStr"
:value="item.dateCycle">
</el-option>
</el-select>
</div>
@@ -84,14 +83,12 @@
<el-table-column prop="agentWage"
align="center"
label="代理工资" />
<el-table-column prop="diamondWage"
<el-table-column prop="diamondWage"
align="center"
label="钻石工资" />
<el-table-column prop="diamondRemain"
align="center"
label="当前钻石余额">
<template v-slot="scope">{{ scope.row.diamondRemain }}</template>
</el-table-column>
label="当前钻石余额" />
<el-table-column align="center"
label="操作"
width="260">
@@ -146,21 +143,12 @@
<el-table-column prop="agentWage"
align="center"
label="代理工资" />
<el-table-column prop="diamondWage"
align="center"
label="钻石工资" />
<el-table-column prop="diamondWage"
align="center"
label="钻石工资" />
<el-table-column prop="diamondRemain"
align="center"
label="当前钻石余额" />
<el-table-column align="center"
label="操作">
<template v-slot="scope">
<el-button @click="detailsClick(scope.row)"
class="primary"
type="primary"
size="default">查看详情</el-button>
</template>
</el-table-column>
</el-table>
<template #footer>
<div class="dialog-footer">
@@ -171,59 +159,6 @@
</template>
</el-dialog>
<!-- 内嵌单个成员明细 -->
<el-dialog :title="detailsTitle2"
v-model="detailsDialog2">
<el-table v-loading="loading"
:data="tableDataDetails2"
border
style="width: 100%; margin-top: 25px">
<el-table-column prop="date"
align="center"
label="日期" />
<el-table-column prop="micRemainTime"
align="center"
label="直播时长" />
<el-table-column prop="micVaild"
align="center"
label="是否有效天">
<template v-slot="scope">
{{ scope.row.micVaild ? "" : "" }}
</template>
</el-table-column>
<el-table-column prop="goldIncome"
align="center"
label="当日金币收入" />
<el-table-column prop="savedGoldIncome"
align="center"
label="月累计金币收入" />
<el-table-column prop="saveedGoldWage"
align="center"
label="月金币工资" />
<el-table-column prop="diamondRemain"
align="center"
label="当日钻石余额" />
<!-- <el-table-column align="center" label="操作">
<template v-slot="scope">
<el-button
@click="detailsClick2(scope)"
class="primary"
type="text"
size="default"
:disabled="!scope.row.enable"
>查看详情</el-button
>
</template>
</el-table-column> -->
</el-table>
<template #footer>
<div class="dialog-footer">
<el-button @click="detailsDialog2 = false">关闭</el-button>
<el-button type="primary"
@click="detailsClickOut2()">导出</el-button>
</div>
</template>
</el-dialog>
<!-- 分页 -->
<el-pagination style="margin-top: 10px"
class="paginationClass"
@@ -242,13 +177,9 @@ import {
statPageFamily,
listFamilyMember,
statExportFamilyMember,
listFamilyMemberDaily,
exportFamilyMemberDaily,
statExportFamily,
} from "@/api/nobleman/nobleman";
import { getWageStatListDateCycle} from "@/api/relAgency/relAgency.js";
// @ts-ignore
import { dateFormat } from "@/utils/system-helper";
import { getWageStatListDateCycle } from "@/api/relAgency/relAgency.js";
// @ts-ignore
import { ElMessage } from "element-plus";
export default {
@@ -260,13 +191,13 @@ export default {
//查询所需条件对象
inquire: {
nick: "",
partitionId: 2,
partitionId: 1,
inquireonInfos: [
{ desc: "英语区", id: 1 },
{ desc: "阿拉伯区", id: 2 },
{ desc: "华语区", id: 4 },
],
cycleDate:'',
cycleDate: '',
},
// 表格
tableData: [],
@@ -284,22 +215,23 @@ export default {
detailsTitle2: "工会昵称 用户昵称ID0 时间段 结算明细",
tableDataDetails2: [],
detailsClickOutObj2: {},
dateCycleArr:[],
dateCycleArr: [],
};
},
created () {
// this.getData();
getWageStatListDateCycle({ month: 4 }).then((res) => {
if (res.code == 200) {
this.dateCycleArr = res.data || [];
} else {
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
});
if (res.code == 200) {
this.dateCycleArr = res.data || [];
this.inquire.cycleDate = this.dateCycleArr[0];
} else {
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
});
},
methods: {
// 查询接口
@@ -309,7 +241,7 @@ export default {
// if (time) {
// time = dateFormat(this.inquire.time, "yyyy-MM");
// }
if(this.inquire.cycleDate == ""){
if (this.inquire.cycleDate == "") {
ElMessage.error("请选择周期");
return;
}
@@ -327,13 +259,9 @@ export default {
},
// 导出总外列表
deriveFun (val) {
let time = this.inquire.time;
if (time) {
time = dateFormat(this.inquire.time, "yyyy-MM");
}
statExportFamily({
erbanNo: this.inquire.nick,
month: time,
cycleDate: this.inquire.cycleDate,
partitionId: this.inquire.partitionId,
}).then((res) => { });
},
@@ -341,7 +269,7 @@ export default {
deriveFun2 (val) {
statExportFamilyMember({
familyId: val.id,
month: dateFormat(this.inquire.time, "yyyy-MM"),
cycleDate: this.inquire.cycleDate,
});
this.detailsDialog = false;
},
@@ -350,13 +278,10 @@ export default {
console.log(val);
var than = this;
this.detailsClickOutObj = val;
than.detailsTitle = `[${val.name}] [${dateFormat(
than.inquire.time,
"yyyy-MM"
)}]结算明细`;
than.detailsTitle = `[${val.name}] [${this.inquire.cycleDate}]结算明细`;
listFamilyMember({
familyId: val.id,
month: dateFormat(than.inquire.time, "yyyy-MM"),
cycleDate: this.inquire.cycleDate,
}).then((res) => {
this.tableDataDetails = res.data;
this.detailsDialog = true;
@@ -366,37 +291,10 @@ export default {
detailsClickOut () {
statExportFamilyMember({
familyId: this.detailsClickOutObj.id,
month: dateFormat(this.inquire.time, "yyyy-MM"),
cycleDate: this.inquire.cycleDate,
});
this.detailsDialog = false;
},
// 嵌套详情按钮
detailsClick (val) {
var than = this;
this.detailsClickOutObj2 = val;
than.detailsTitle2 = `公会名称:${val.familyName} 成员名称:${val.nick
}ID${val.erbanNo} ${dateFormat(
than.inquire.time,
"yyyy-MM"
)} 结算明细`;
listFamilyMemberDaily({
familyId: val.familyId,
month: dateFormat(than.inquire.time, "yyyy-MM"),
uid: val.uid,
}).then((res) => {
than.tableDataDetails2 = res.data;
than.detailsDialog2 = true;
});
},
// 导出每日成员数据
detailsClickOut2 () {
exportFamilyMemberDaily({
familyId: this.detailsClickOutObj2.id,
month: dateFormat(this.inquire.time, "yyyy-MM"),
uid: this.detailsClickOutObj2.uid,
});
this.detailsDialog2 = false;
},
// 分页导航
handleSizeChange () {
this.getData();

View File

@@ -4,133 +4,124 @@
<div class="inquire">
<div class="block">
<span class="demonstration">开始时间</span>
<el-date-picker
v-model="inquire.time[0]"
type="date"
placeholder="开始时间"
format="YYYY-MM-DD 00:00:00"
>
<el-date-picker v-model="inquire.time[0]"
type="date"
placeholder="开始时间"
format="YYYY-MM-DD 00: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="date"
placeholder="结束时间"
format="YYYY-MM-DD 23:59:59"
>
<el-date-picker v-model="inquire.time[1]"
type="date"
placeholder="结束时间"
format="YYYY-MM-DD 23:59:59">
</el-date-picker>
</div>
</div>
<!-- 公会ID -->
<div class="inquire">
<span>会长ID</span>
<el-input v-model="inquire.id" placeholder="" class="input"></el-input>
<el-input v-model="inquire.id"
placeholder=""
class="input"></el-input>
</div>
<!-- 公会 -->
<!-- 查询按钮 -->
<el-button class="primary" type="primary" @click="getData()"
>查询</el-button
>
<el-button class="primary"
type="primary"
@click="getData()">查询</el-button>
<!-- 表格 -->
<el-table
v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="ownerErbanNo" align="center" label="会长ID" />
<el-table-column prop="name" align="center" label="公会名称" />
<el-table-column prop="zoneName" align="center" label="公会长所属国家" />
<el-table-column
prop="ownerPartitionName"
align="center"
label="会长分区"
/>
<el-table-column prop="memberNum" align="center" label="成员数" />
<el-table-column
prop="goldIncome"
align="center"
label="月金币收入(流水)"
/>
<el-table-column
prop="hasGoldIncomeMemberNum"
align="center"
label="有流水成员数"
/>
<el-table-column prop="sendGiftUserNum" align="center" label="送礼人数" />
<el-table-column align="center" label="操作">
<el-table v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px">
<el-table-column prop="ownerErbanNo"
align="center"
label="会长ID" />
<el-table-column prop="name"
align="center"
label="公会名称" />
<el-table-column prop="zoneName"
align="center"
label="会长所属国家" />
<el-table-column prop="ownerPartitionName"
align="center"
label="会长分区" />
<el-table-column prop="memberNum"
align="center"
label="成员数" />
<el-table-column prop="goldIncome"
align="center"
label="月金币收入(流水)" />
<el-table-column align="center"
label="操作">
<template v-slot="scope">
<el-button @click="ediClick(scope.row)" type="text" size="default"
>查看详情</el-button
>
<el-button @click="ediClick(scope.row)"
type="text"
size="default">查看详情</el-button>
</template>
</el-table-column>
</el-table>
<!-- 内嵌单个工会详情 -->
<el-dialog :title="detailsTitle" v-model="detailsDialog">
<el-table
v-loading="loading"
:data="tableDataDetails"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="erbanNo" align="center" label="用户平台ID"
><template v-slot="scope">
<el-dialog :title="detailsTitle"
v-model="detailsDialog">
<el-table v-loading="loading"
:data="tableDataDetails"
border
style="width: 100%; margin-top: 25px">
<el-table-column prop="erbanNo"
align="center"
label="用户平台ID"><template v-slot="scope">
{{
scope.row.enable ? scope.row.erbanNo : scope.row.erbanNo + "离开"
}}
</template>
</el-table-column>
<el-table-column prop="nick" align="center" label="用户昵称" />
<el-table-column prop="micRemainTime" align="center" label="直播时长" />
<el-table-column
prop="goldIncome"
align="center"
label="金币收入(流水)"
/>
<el-table-column
prop="sendGiftUserNum"
align="center"
label="送礼人数"
/>
<el-table-column prop="nick"
align="center"
label="用户昵称" />
<el-table-column prop="micRemainTime"
align="center"
label="直播时长" />
<el-table-column prop="goldIncome"
align="center"
label="金币收入(流水)" />
<el-table-column prop="sendGiftUserNum"
align="center"
label="送礼人数" />
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
class="paginationClass"
v-model:current-page="detailspageNum"
v-model:page-size="detailspageSize"
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
layout="sizes, prev, pager, next"
:total="detailstotal"
@size-change="detailshandleSizeChange"
@current-change="detailshandleCurrentChange"
/>
<el-pagination style="margin-top: 10px"
class="paginationClass"
v-model:current-page="detailspageNum"
v-model:page-size="detailspageSize"
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
layout="sizes, prev, pager, next"
:total="detailstotal"
@size-change="detailshandleSizeChange"
@current-change="detailshandleCurrentChange" />
<template #footer>
<div class="dialog-footer">
<el-button @click="detailsDialog = false">关闭</el-button>
</div></template
>
</div>
</template>
</el-dialog>
<!-- 分页 -->
<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-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" />
</div>
</template>
<script>
@@ -146,7 +137,7 @@ import { dateFormat } from "@/utils/system-helper";
import { ElMessage } from "element-plus";
export default {
name: "GoldWaterSuper",
data() {
data () {
return {
loading: false,
//查询所需条件对象
@@ -165,24 +156,24 @@ export default {
detailsTitle: "",
tableDataDetails: [],
familyIdEx: "",
detailspageSize:10,
detailspageNum :1,
detailstotal:0
detailspageSize: 10,
detailspageNum: 1,
detailstotal: 0
};
},
created() {
created () {
// this.getData();
},
methods: {
// 默认七天
calculateLastSevenDays() {
// 默认七天
calculateLastSevenDays () {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
return [start, end];
},
// 查询接口
getData() {
getData () {
this.loading = true;
let time = this.inquire.time;
let startTime = null;
@@ -226,8 +217,8 @@ export default {
});
},
// 查看详情按钮
ediClick(val) {
ediClick (val) {
let time = this.inquire.time;
let startDate = "";
let endDate = "";
@@ -235,16 +226,16 @@ export default {
startDate = dateFormat(this.inquire.time[0], "yyyy-MM-dd hh:mm:ss");
endDate = dateFormat(this.inquire.time[1], "yyyy-MM-dd hh:mm:ss");
}
if(val){
if (val) {
this.detailsTitle = `公会昵称:【${val.name}】 时间:【${val.createTime}】—金币收入明细`;
this.familyIdEx = val.id;
this.familyIdEx = val.id;
}
incomeListFamilyMember({
endDate,
startDate,
familyId: this.familyIdEx,
pageNum:this.detailspageNum,
pageSize:this.detailspageSize
familyId: this.familyIdEx,
pageNum: this.detailspageNum,
pageSize: this.detailspageSize
}).then((res) => {
this.tableDataDetails = res.data.records;
this.detailsDialog = true;
@@ -252,16 +243,16 @@ export default {
});
},
// 分页导航
handleSizeChange() {
handleSizeChange () {
this.getData();
},
handleCurrentChange() {
handleCurrentChange () {
this.getData();
},
detailshandleSizeChange(){
detailshandleSizeChange () {
this.ediClick()
},
detailshandleCurrentChange(){
detailshandleCurrentChange () {
this.ediClick()
}
},