完善 - 运营流水分析
This commit is contained in:
@@ -64,4 +64,20 @@ export const getGuildOperatorHistoryList = query => {
|
|||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
});
|
});
|
||||||
|
};
|
||||||
|
// 获取 运营流水分析 - 公会明细
|
||||||
|
export const getPageWeekStatDetail = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/guildOperator/pageWeekStatDetail',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 获取 运营流水分析 - 公会明细 - 添加备注
|
||||||
|
export const guildOperatorMarkDetail = query => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/guildOperator/markDetail',
|
||||||
|
method: 'post',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
};
|
};
|
@@ -43,8 +43,12 @@
|
|||||||
style="width: 100%; margin-top: 25px"
|
style="width: 100%; margin-top: 25px"
|
||||||
>
|
>
|
||||||
<el-table-column prop="partitionDesc" align="center" label="分区" />
|
<el-table-column prop="partitionDesc" align="center" label="分区" />
|
||||||
<el-table-column prop="name" align="center" label="负责人名字" />
|
<el-table-column prop="operatorName" align="center" label="负责人名字" />
|
||||||
<el-table-column prop="date" align="center" label="周期" />
|
<el-table-column prop="date" align="center" label="周期">
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ scope.row.date + "~" + scope.row.endDate }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="newGuildCount" align="center" label="新公会数" />
|
<el-table-column prop="newGuildCount" align="center" label="新公会数" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="newActiveGuildCount"
|
prop="newActiveGuildCount"
|
||||||
@@ -56,9 +60,9 @@
|
|||||||
align="center"
|
align="center"
|
||||||
label="新公会总钻石流水"
|
label="新公会总钻石流水"
|
||||||
>
|
>
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
{{ formattedNumber(scope.row.newGuildTotalGoldFlow) }}
|
{{ formattedNumber(scope.row.newGuildTotalGoldFlow) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="guildCount"
|
prop="guildCount"
|
||||||
@@ -70,34 +74,34 @@
|
|||||||
align="center"
|
align="center"
|
||||||
label="总钻石流水"
|
label="总钻石流水"
|
||||||
>
|
>
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
{{ formattedNumber(scope.row.guildTotalGoldFlow) }}
|
{{ formattedNumber(scope.row.guildTotalGoldFlow) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="guildTotalGoldFlowWow"
|
prop="guildTotalGoldFlowWow"
|
||||||
align="center"
|
align="center"
|
||||||
label="周环比/钻石流水"
|
label="周环比/钻石流水"
|
||||||
>
|
>
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
{{ formattedNumber(scope.row.guildTotalGoldFlowWow) }}
|
{{ formattedNumber(scope.row.guildTotalGoldFlowWow) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="guildTotalDiamondFlow"
|
prop="guildTotalDiamondFlow"
|
||||||
align="center"
|
align="center"
|
||||||
label="总金币流水"
|
label="总金币流水"
|
||||||
>
|
>
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
{{ formattedNumber(scope.row.guildTotalDiamondFlow) }}
|
{{ formattedNumber(scope.row.guildTotalDiamondFlow) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" label="操作" width="300">
|
<el-table-column align="center" label="操作" width="300">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-button
|
<el-button
|
||||||
class="primary"
|
class="primary"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="detailPageFun(scope.row)"
|
@click="regionStatPageFun(scope.row)"
|
||||||
size="default"
|
size="default"
|
||||||
>地区明细</el-button
|
>地区明细</el-button
|
||||||
>
|
>
|
||||||
@@ -124,65 +128,57 @@
|
|||||||
@current-change="handleCurrentChange"
|
@current-change="handleCurrentChange"
|
||||||
/>
|
/>
|
||||||
<!-- 地区明细弹窗 -->
|
<!-- 地区明细弹窗 -->
|
||||||
<el-dialog v-model="regionStatDialog" title="地区明细" width="36%" center>
|
<el-dialog v-model="regionStatDialog" title="地区明细" width="70%" center>
|
||||||
<el-table :data="regionStatTable" style="width: 100%">
|
<el-table :data="regionStatTable" style="width: 100%" ref="multipleTable">
|
||||||
|
<el-table-column prop="partitionDesc" align="center" label="分区" />
|
||||||
|
<el-table-column prop="regionDesc" align="center" label="地区" />
|
||||||
|
<el-table-column prop="newGuildCount" align="center" label="新公会数" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="partitionDesc"
|
prop="newActiveGuildCount"
|
||||||
align="center"
|
align="center"
|
||||||
label="分区"
|
label="新公会数(有效)"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="newGuildTotalGoldFlow"
|
prop="newGuildTotalGoldFlow"
|
||||||
align="center"
|
align="center"
|
||||||
label="地区"
|
label="新公会总钻石流水"
|
||||||
|
>
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ formattedNumber(scope.row.newGuildTotalGoldFlow) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="newGuildTotalDiamondFlow"
|
||||||
|
align="center"
|
||||||
|
label="新公会总金币流水"
|
||||||
|
>
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ formattedNumber(scope.row.newGuildTotalDiamondFlow) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="guildCount"
|
||||||
|
align="center"
|
||||||
|
label="总公会数(有效)"
|
||||||
/>
|
/>
|
||||||
<el-table-column prop="newGuildCount" align="center" label="新公会数" />
|
<el-table-column
|
||||||
<el-table-column
|
prop="guildGoldFlow"
|
||||||
prop="newActiveGuildCount"
|
align="center"
|
||||||
align="center"
|
label="本周总钻石流水"
|
||||||
label="新公会数(有效)"
|
>
|
||||||
/>
|
<template v-slot="scope">
|
||||||
<el-table-column
|
{{ formattedNumber(scope.row.guildGoldFlow) }}
|
||||||
prop="newGuildTotalGoldFlow"
|
</template>
|
||||||
align="center"
|
</el-table-column>
|
||||||
label="新公会总钻石流水"
|
<el-table-column
|
||||||
>
|
prop="guildDiamondFlow"
|
||||||
<template v-slot="scope">
|
align="center"
|
||||||
{{ formattedNumber(scope.row.newGuildTotalGoldFlow) }}
|
label="本周总金币流水"
|
||||||
</template>
|
>
|
||||||
</el-table-column>
|
<template v-slot="scope">
|
||||||
<el-table-column
|
{{ formattedNumber(scope.row.guildDiamondFlow) }}
|
||||||
prop="newGuildTotalDiamondFlow"
|
</template>
|
||||||
align="center"
|
</el-table-column>
|
||||||
label="新公会总金币流水"
|
|
||||||
>
|
|
||||||
<template v-slot="scope">
|
|
||||||
{{ formattedNumber(scope.row.newGuildTotalDiamondFlow) }}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column
|
|
||||||
prop="guildCount"
|
|
||||||
align="center"
|
|
||||||
label="总公会数(有效)"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
prop="guildCount"
|
|
||||||
align="center"
|
|
||||||
label="本周总钻石流水"
|
|
||||||
>
|
|
||||||
<template v-slot="scope">
|
|
||||||
{{ formattedNumber(scope.row.guildCount) }}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column
|
|
||||||
prop="guildCount"
|
|
||||||
align="center"
|
|
||||||
label="本周总金币流水"
|
|
||||||
>
|
|
||||||
<template v-slot="scope">
|
|
||||||
{{ formattedNumber(scope.row.guildGoldCount) }}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
@@ -193,17 +189,126 @@
|
|||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!-- 公会明细弹窗 -->
|
||||||
|
<el-dialog v-model="statDetailDialog" title="公会明细" width="70%" center>
|
||||||
|
<el-table
|
||||||
|
v-loading="tableStatDetailData.loading"
|
||||||
|
:data="tableStatDetailData.data"
|
||||||
|
ref="multipleTable"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
border
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-table-column prop="partitionDesc" align="center" label="分区" />
|
||||||
|
<el-table-column prop="regionDesc" align="center" label="地区" />
|
||||||
|
<el-table-column prop="operatorName" align="center" label="负责人" />
|
||||||
|
<el-table-column prop="guildId" align="center" label="公会ID" />
|
||||||
|
<el-table-column
|
||||||
|
prop="guildOwnerErbanNo"
|
||||||
|
align="center"
|
||||||
|
label="公会长ID"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="guildCreateTime"
|
||||||
|
align="center"
|
||||||
|
label="公会注册时间"
|
||||||
|
>
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ dateFormat(scope.row.guildCreateTime) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="newGuild" align="center" label="是否为新公会">
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ scope.row.newGuild ? "是" : "否" }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="guildGoldFlow"
|
||||||
|
align="center"
|
||||||
|
label="本周钻石流水"
|
||||||
|
>
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ formattedNumber(scope.row.guildGoldFlow) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="guildGoldFlowWow"
|
||||||
|
align="center"
|
||||||
|
label="周环比/钻石流水"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="guildDiamondFlowSub"
|
||||||
|
align="center"
|
||||||
|
label="周涨跌幅度/钻石流水"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="guildDiamondFlow"
|
||||||
|
align="center"
|
||||||
|
label="本周金币流水"
|
||||||
|
>
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ formattedNumber(scope.row.guildDiamondFlow) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="remark" align="center" label="备注">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-button type="text" size="small" @click="remarkFun(scope.row)">
|
||||||
|
{{ scope.row.remark?scope.row.remark:'备注' }}
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<!-- 分页 -->
|
||||||
|
<el-pagination
|
||||||
|
style="margin-top: 10px"
|
||||||
|
class="paginationClass"
|
||||||
|
:current-page="formStatDetailData.pageNo"
|
||||||
|
:page-size="formStatDetailData.pageSize"
|
||||||
|
:page-sizes="[10, 20, 50, 100, 200]"
|
||||||
|
layout="sizes, prev, pager, next"
|
||||||
|
:total="tableStatDetailData.total"
|
||||||
|
@size-change="handleSizeChangeDetail"
|
||||||
|
@current-change="handleCurrentChangeDetail"
|
||||||
|
/>
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="statDetailDialog = false">
|
||||||
|
关闭
|
||||||
|
</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
<!-- 填写备注弹窗 -->
|
||||||
|
<el-dialog v-model="remarkDialog" title="备注" width="30%" center>
|
||||||
|
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
|
||||||
|
<span style="display: inline-block; margin-right: 20px"
|
||||||
|
class="col-sm-2 control-label">备注</span>
|
||||||
|
<el-input v-model="remarkData.remark"
|
||||||
|
type="textarea"
|
||||||
|
rows="4"
|
||||||
|
placeholder="请输入"
|
||||||
|
class="input"></el-input>
|
||||||
|
</div>
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button @click="remarkDialog = false">取消</el-button>
|
||||||
|
<el-button type="primary" @click="confirmRemarkFun()"> 确认 </el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { ref, onMounted, reactive,computed } from "vue";
|
import { ref, onMounted, reactive, computed } from "vue";
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
import PartitionSelect from "../common/partitionSelect.vue";
|
import PartitionSelect from "../common/partitionSelect.vue";
|
||||||
import {
|
import {
|
||||||
getGuildOperatorListAll,
|
getGuildOperatorListAll,
|
||||||
getGuildOperatorPageWeekStatList,
|
getGuildOperatorPageWeekStatList,
|
||||||
familyMemberWeekLevelRewardListCycleDate,
|
familyMemberWeekLevelRewardListCycleDate,
|
||||||
|
getPageWeekStatDetail,
|
||||||
|
guildOperatorMarkDetail
|
||||||
} from "@/api/ResponsiblePersonManagement/ResponsiblePersonManagement.js";
|
} from "@/api/ResponsiblePersonManagement/ResponsiblePersonManagement.js";
|
||||||
import { dateFormat } from "@/utils/system-helper";
|
import { dateFormat } from "@/utils/system-helper";
|
||||||
export default {
|
export default {
|
||||||
@@ -226,6 +331,27 @@ export default {
|
|||||||
total: 0,
|
total: 0,
|
||||||
loading: false,
|
loading: false,
|
||||||
});
|
});
|
||||||
|
const statDetailDialog = ref(false);
|
||||||
|
const tableStatDetailData = reactive({
|
||||||
|
data: [],
|
||||||
|
total: 0,
|
||||||
|
loading: false,
|
||||||
|
});
|
||||||
|
const formStatDetailData = reactive({
|
||||||
|
partitionId: undefined,
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
operatorId: "",
|
||||||
|
date: "",
|
||||||
|
});
|
||||||
|
const remarkDialog = ref(false);
|
||||||
|
const remarkData = reactive({
|
||||||
|
partitionId: '',
|
||||||
|
operatorId: "",
|
||||||
|
date: "",
|
||||||
|
guildId:'',
|
||||||
|
remark:'',
|
||||||
|
});
|
||||||
const getData = () => {
|
const getData = () => {
|
||||||
tableData.loading = true;
|
tableData.loading = true;
|
||||||
getGuildOperatorPageWeekStatList(formData).then((res) => {
|
getGuildOperatorPageWeekStatList(formData).then((res) => {
|
||||||
@@ -239,6 +365,58 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 地区明细
|
||||||
|
const regionStatPageFun = (row) => {
|
||||||
|
regionStatTable.value = JSON.parse(row.regionStat);
|
||||||
|
regionStatDialog.value = true;
|
||||||
|
};
|
||||||
|
// 公会明细
|
||||||
|
const detailPageFun = (row) => {
|
||||||
|
formStatDetailData.partitionId = row.partitionId;
|
||||||
|
formStatDetailData.operatorId = row.operatorId;
|
||||||
|
formStatDetailData.date = row.date;
|
||||||
|
tableStatDetailData.loading = true;
|
||||||
|
getPageWeekStatDetail(formStatDetailData).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
tableStatDetailData.data = res.data.records;
|
||||||
|
tableStatDetailData.loading = false;
|
||||||
|
tableStatDetailData.total = res.data.total;
|
||||||
|
statDetailDialog.value = true;
|
||||||
|
} else {
|
||||||
|
tableStatDetailData.loading = false;
|
||||||
|
ElMessage.error(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 添加备注
|
||||||
|
const remarkFun = (row) => {
|
||||||
|
remarkData.partitionId = row.partitionId;
|
||||||
|
remarkData.operatorId = row.operatorId;
|
||||||
|
remarkData.guildId = row.guildId;
|
||||||
|
remarkData.date = row.date;
|
||||||
|
remarkDialog.value = true;
|
||||||
|
};
|
||||||
|
const confirmRemarkFun = () => {
|
||||||
|
guildOperatorMarkDetail(remarkData).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
remarkDialog.value = false;
|
||||||
|
getPageWeekStatDetail(formStatDetailData).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
tableStatDetailData.data = res.data.records;
|
||||||
|
tableStatDetailData.loading = false;
|
||||||
|
tableStatDetailData.total = res.data.total;
|
||||||
|
statDetailDialog.value = true;
|
||||||
|
} else {
|
||||||
|
tableStatDetailData.loading = false;
|
||||||
|
ElMessage.error(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
tableStatDetailData.loading = false;
|
||||||
|
ElMessage.error(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
// 重置
|
// 重置
|
||||||
const resetFormData = () => {
|
const resetFormData = () => {
|
||||||
Object.assign(formData, {
|
Object.assign(formData, {
|
||||||
@@ -250,11 +428,32 @@ export default {
|
|||||||
};
|
};
|
||||||
// 千分位
|
// 千分位
|
||||||
const formattedNumber = computed(() => {
|
const formattedNumber = computed(() => {
|
||||||
return (num) => {
|
return (num) => {
|
||||||
if (num === null || num === undefined) return '';
|
if (num === null || num === undefined) return "";
|
||||||
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||||
};
|
};
|
||||||
})
|
});
|
||||||
|
|
||||||
|
const dateFormat = (row) => {
|
||||||
|
const date = new Date(row);
|
||||||
|
return date.format("yyyy-MM-dd hh:mm:ss");
|
||||||
|
}
|
||||||
|
const handleSizeChange = (val) => {
|
||||||
|
formData.pageSize = val;
|
||||||
|
getData();
|
||||||
|
};
|
||||||
|
const handleCurrentChange = (val) => {
|
||||||
|
formData.pageNo = val;
|
||||||
|
getData();
|
||||||
|
};
|
||||||
|
const handleSizeChangeDetail = (val) => {
|
||||||
|
formStatDetailData.pageSize = val;
|
||||||
|
getData();
|
||||||
|
};
|
||||||
|
const handleCurrentChangeDetail = (val) => {
|
||||||
|
formStatDetailData.pageNo = val;
|
||||||
|
getData();
|
||||||
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getGuildOperatorListAll().then((res) => {
|
getGuildOperatorListAll().then((res) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
@@ -292,7 +491,21 @@ export default {
|
|||||||
resetFormData,
|
resetFormData,
|
||||||
regionStatDialog,
|
regionStatDialog,
|
||||||
regionStatTable,
|
regionStatTable,
|
||||||
formattedNumber
|
formattedNumber,
|
||||||
|
regionStatPageFun,
|
||||||
|
tableStatDetailData,
|
||||||
|
statDetailDialog,
|
||||||
|
formStatDetailData,
|
||||||
|
detailPageFun,
|
||||||
|
dateFormat,
|
||||||
|
handleSizeChange,
|
||||||
|
handleCurrentChange,
|
||||||
|
handleSizeChangeDetail,
|
||||||
|
handleCurrentChangeDetail,
|
||||||
|
remarkDialog,
|
||||||
|
remarkData,
|
||||||
|
remarkFun,
|
||||||
|
confirmRemarkFun
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user