Browse Source

gmlist

master
linquan 2 months ago
parent
commit
4b60ec1a15
  1. 8
      src/api/game/index.ts
  2. 20
      src/utils/game.ts
  3. 147
      src/views/gameManage/gm/component/editConfig.vue
  4. 17
      src/views/gameManage/gm/index.vue
  5. 5
      src/views/gameNotice/log/index.vue
  6. 36
      src/views/gameOrder/orderLog/index.vue
  7. 1
      src/views/gameRole/rank/index.vue
  8. 76
      src/views/gameRole/role/index.vue

8
src/api/game/index.ts

@ -972,3 +972,11 @@ export function deleteGameRank(params: object) {
params: params,
});
}
export function getOperLog(params: object) {
return request({
url: '/api/v1/game/log/getOperLog',
method: 'get',
params: params,
});
}

20
src/utils/game.ts

@ -331,6 +331,7 @@ export async function allChannelList(): Promise<object[]> {
{
value: '',
label: '所有渠道',
sort: 0,
},
].concat(data.data.List ?? []);
}
@ -363,3 +364,22 @@ export async function allCcdList(): Promise<object[]> {
console.log('allCcdList: ', data);
return data.data.list ?? [];
}
export const AllChannelSort = {
'': 0,
'000002000000': 1,
'000003000024': 2,
'000003000017': 3,
'000003000023': 4,
'000003002376': 5,
'000003000015': 6,
'000003000027': 7,
'000006000000': 8,
'000004000000': 9,
'000002999999': 10,
'000005000000': 11,
'000007000000': 12,
'000000000000': 100,
'000001000000': 100,
'000003000000': 100,
};

147
src/views/gameManage/gm/component/editConfig.vue

@ -0,0 +1,147 @@
<template>
<div>
<el-drawer class="el-drawer" title="开启gm权限历史" v-model="isShowDialog" direction="ltr" size="50%">
<el-table :data="tableData.list" border>
<el-table-column label="操作账号" width="180">
<template #default="scope">
<span>{{ scope.row.operName }}</span>
</template>
</el-table-column>
<el-table-column label="发送玩家" width="180">
<template #default="scope">
<span>{{ scope.row.uids }}</span>
</template>
</el-table-column>
<el-table-column label="服务器" width="180">
<template #default="scope">
<span>{{ scope.row.serverName }}</span>
</template>
</el-table-column>
<el-table-column label="state" width="180">
<template #default="scope">
<div v-if="scope.row.state == 1">开启</div>
<div v-if="scope.row.state == 0">关闭</div>
</template>
</el-table-column>
<el-table-column label="时间" width="180">
<template #default="scope">
<span>{{ scope.row.operTime }}</span>
</template>
</el-table-column>
</el-table>
<el-row justify="space-evenly">
<el-pagination
:hide-on-single-page="true"
v-model:page-size="queryParams.pageSize"
v-model:current-page="queryParams.pageNum"
:pager-count="5"
@current-change="getRecord"
layout="total, prev, pager, next"
:total="queryParams.total"
/>
</el-row>
</el-drawer>
</div>
</template>
<script lang="ts">
import { reactive, toRefs, defineComponent } from 'vue';
import { ElLoading } from 'element-plus';
import { getOperLog } from '/@/api/game';
import { allChannelList, serverList } from '/@/utils/game';
interface TableDataState {
isShowDialog: boolean;
queryParams: object;
channels: object[];
servers: object[];
tableData: object[];
}
export default defineComponent({
name: 'apiV1GameGmEdit',
setup(prop, { emit }) {
const state = reactive<TableDataState>({
isShowDialog: false,
queryParams: { label: '/api/v1/game/mange/setclientgm', pageNum: 1, pageSize: 10, total: 0 },
channels: [],
servers: [],
tableData: {
list: [],
},
});
//
const openDialog = (row: any | null) => {
state.isShowDialog = true;
state.queryParams = { label: '/api/v1/game/mange/setclientgm', pageNum: 1, pageSize: 10, total: 0 };
state.tableData = {
list: [],
};
console.log('openDialog: >>>>>>>>>>>', row);
allChannelList().then((res) => {
state.channels = res;
});
serverList().then((res) => {
state.servers = res;
});
getRecord();
};
//
const closeDialog = () => {
state.isShowDialog = false;
};
//
const onCancel = () => {
closeDialog();
};
//
const getRecord = () => {
const loading = ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
});
getOperLog(state.queryParams)
.then((res) => {
console.log(res);
state.queryParams.total = res.data.total;
state.tableData.list = res.data.list || [];
state.tableData.list.forEach((item: any) => {
item.serverName = item.serverId;
if (state.servers.find((r) => r.id == item.serverId)) {
item.serverName = state.servers.find((r) => r.id == item.serverId).name;
}
let param = item.operParam.split('&');
for (let i in param) {
let data = param[i].split('=');
if (data[0]) {
item[data[0]] = data[1];
}
}
});
})
.catch((err) => {
state.tableData.list = [];
state.queryParams.total = 0;
})
.finally(function () {
loading.close();
});
};
return {
openDialog,
closeDialog,
onCancel,
getRecord,
...toRefs(state),
};
},
});
</script>
<style scoped lang="scss">
::v-deep .el-drawer {
background-color: rgba(253, 253, 253, 0.68);
}
</style>

17
src/views/gameManage/gm/index.vue

@ -61,7 +61,8 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button size="large" type="primary" class="ml10" @click="setclientgm"> 修改</el-button>
<el-button size="large" type="primary" class="ml10" @click="setclientgm">修改</el-button>
<el-button size="large" type="primary" class="ml10" style="margin-left: 200px" @click="showClientGm">查看开启记录</el-button>
</el-form-item>
</el-form>
</div>
@ -78,16 +79,19 @@
</el-form>
</div>
</el-card>
<EditConfig ref="editDicRef" />
</div>
</template>
<script lang="ts">
import { toRefs, reactive, onMounted, defineComponent } from 'vue';
import {toRefs, reactive, onMounted, defineComponent, ref} from 'vue';
import { gameChangeGm, gameGmSearch, gameSetclientgm, setOpenId } from '/@/api/game';
import { channelList, ServerCategorize, serverList } from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
import { ElMessage } from 'element-plus/es';
import { AccountType } from '/@/api/common/consts';
import EditConfig from '/@/views/gameManage/gm/component/editConfig.vue';
interface TableData {
type: number;
@ -126,7 +130,9 @@ interface TableDataState {
export default defineComponent({
name: 'apiV1GameManageChangegm',
components: { EditConfig },
setup() {
const editDicRef = ref();
const state = reactive<TableDataState>({
serverSwitch: 0,
queryParams: {
@ -206,7 +212,6 @@ export default defineComponent({
})
.finally(() => {});
};
const blacklist = (val: number) => {
state.tableData.blackQuerys.pageNum = val;
};
@ -223,12 +228,18 @@ export default defineComponent({
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
//
const showClientGm = () => {
editDicRef.value.openDialog();
};
return {
editDicRef,
switchServer,
gmSearch,
gmChange,
setOpenIds,
setclientgm,
showClientGm,
blacklist,
...toRefs(state),
};

5
src/views/gameNotice/log/index.vue

@ -54,6 +54,11 @@
{{ servers.find(r => r.value == scope.row.serverId) ? servers.find(r => r.value == scope.row.serverId).name : scope.row.serverId }}
</template>
</el-table-column>
<el-table-column prop="uids" label="指定发送用户" show-overflow-tooltip>
<template #default="scope">
<span type="text" @click="alertContent(scope.row.uids)">{{ scope.row.uids }}</span>
</template>
</el-table-column>
<el-table-column>
<template #default="scope">
<el-button size="small" type="danger" @click="noticeDel(scope.row.id)">删除</el-button>

36
src/views/gameOrder/orderLog/index.vue

@ -115,7 +115,7 @@
<script lang="ts">
import { toRefs, reactive, onMounted, defineComponent } from 'vue';
import { orderLog, orderLogPlatform } from '/@/api/game/index';
import { allChannelList, CompareType, allServerList, ServerCategorize } from '/@/utils/game';
import {allChannelList, CompareType, allServerList, ServerCategorize, AllChannelSort} from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
//
@ -218,13 +218,14 @@ export default defineComponent({
const rechargeAccountTotal = (res.data && res.data.rechargeAccountTotal) || [];
const accountTotal = (res.data && res.data.accountTotal) || [];
amountTotal.map((item: any) => {
if (!state.channels.find((r) => r.value == item.channel)) {
let channel = state.channels.find((r) => r.value == item.channel);
if (!channel) {
return;
}
let channelData = state.tableData.data.find((r) => r.channel === item.channel);
if (!channelData) {
channelData = { channel: item.channel };
channelData = { channel: item.channel, sort: channel.sort };
state.tableData.data.push(channelData);
}
@ -232,12 +233,13 @@ export default defineComponent({
defaultData.rechargeTotal += Number(item.totalAmount);
});
rechargeAccountTotal.map((item: any) => {
if (!state.channels.find((r) => r.value == item.channel)) {
let channel = state.channels.find((r) => r.value == item.channel);
if (!channel) {
return;
}
let channelData = state.tableData.data.find((r) => r.channel === item.channel);
if (!channelData) {
channelData = { channel: item.channel };
channelData = { channel: item.channel, sort: channel.sort };
state.tableData.data.push(channelData);
}
@ -245,12 +247,13 @@ export default defineComponent({
defaultData.rechargeAccountTotal += Number(item.totalAccount);
});
accountTotal.map((item: any) => {
if (!state.channels.find((r) => r.value == item.channel)) {
let channel = state.channels.find((r) => r.value == item.channel);
if (!channel) {
return;
}
let channelData = state.tableData.data.find((r) => r.channel === item.channel);
if (!channelData) {
channelData = { channel: item.channel };
channelData = { channel: item.channel, sort: channel.sort };
state.tableData.data.push(channelData);
}
@ -271,6 +274,9 @@ export default defineComponent({
item.rechargePer = item.rechargeTotal / (item.accountTotal || 1);
item.rechargeAccountPer = item.rechargeTotal / (item.rechargeAccountTotal || 1);
});
state.tableData.data.sort((a, b) => {
return a.sort - b.sort;
});
console.log(' state.tableData.data:', state.tableData.data);
});
orderLogPlatform({
@ -286,13 +292,14 @@ export default defineComponent({
console.log('orderLogPlatform: ', res);
const amountTotal = (res.data && res.data.amountTotal) || [];
amountTotal.map((item: any) => {
if (!state.channels.find((r) => r.value == item.channel)) {
let channel = state.channels.find((r) => r.value == item.channel);
if (!channel) {
return;
}
let channelData = state.tableData.data.find((r) => r.channel === item.channel);
if (!channelData) {
channelData = { channel: item.channel };
channelData = { channel: item.channel, sort: channel.sort };
state.tableData.data.push(channelData);
}
if (item.platform == 1) {
@ -302,6 +309,10 @@ export default defineComponent({
channelData.wChat = (item.totalAmount / 100).toFixed(2);
}
});
state.tableData.data.sort((a, b) => {
return a.sort - b.sort;
});
});
};
const checkRecharge = (value: any) => {
@ -313,7 +324,12 @@ export default defineComponent({
});
allChannelList().then((res) => {
state.channels = res;
// console.log("allChannelList", res)
if (!state.channels[0].sort) {
state.channels.forEach((channel: any) => {
channel.sort = channel.sort || AllChannelSort[channel.value];
})
}
console.log("allChannelList", res)
});
});

1
src/views/gameRole/rank/index.vue

@ -29,7 +29,6 @@
<el-table-column type="index" label="序号" width="80" />
<el-table-column prop="uid" label="uid" show-overflow-tooltip></el-table-column>
<el-table-column prop="StringId" label="id" show-overflow-tooltip></el-table-column>
<el-table-column prop="UnitId" label="id" show-overflow-tooltip></el-table-column>
<el-table-column prop="Name" label="名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="Scale" label="规模" show-overflow-tooltip></el-table-column>
<el-table-column prop="Value" label="数值" show-overflow-tooltip></el-table-column>

76
src/views/gameRole/role/index.vue

@ -38,12 +38,7 @@
</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" class="ml10" @click="noticePop">
<el-icon>
<ele-Search />
</el-icon>
删排行退出
</el-button>
<el-button v-if="tableData.account.uid" type="primary" class="ml10" @click="noticePop"> 退出并选择删除排行榜 </el-button>
</el-form-item>
</el-form>
</div>
@ -299,10 +294,6 @@
<span>{{ scope.row.state == 1 ? '登录' : '登出' }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="" width="80">-->
<!-- <template #default="scope">-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="山谷信息" width="100">
<template #default="scope">
<el-tag @click="getShowData(1, scope.row)">点击查看</el-tag>
@ -313,6 +304,11 @@
<el-tag @click="getShowData(2, scope.row)">点击查看</el-tag>
</template>
</el-table-column>
<el-table-column label="其他信息" width="100">
<template #default="scope">
<el-tag @click="getShowData(3, JSON.stringify(scope.row))">点击查看</el-tag>
</template>
</el-table-column>
</el-table>
<el-row justify="space-evenly">
<el-pagination
@ -343,16 +339,37 @@
</template>
<div v-show="item.listShow && tableData.itemRecordData.length > 0">
<el-table :data="tableData.itemRecordData" border>
<el-table-column label="物品" width="180">
<el-table-column label="物品Id" width="180">
<template #default="scope">
<span>{{ scope.row.itemId }}</span>
</template>
</el-table-column>
<el-table-column label="物品名称" width="180">
<template #default="scope">
<span>{{ scope.row.Name }}</span>
<span>{{ allItemConfig.find((r) => r.Id == scope.row.itemId)?.Name }}</span>
</template>
</el-table-column>
<el-table-column label="" width="180">
<template>
<el-tag @click="getShowData(3)">点击查看</el-tag>
<el-table-column label="物品数量" width="180">
<template #default="scope">
<span>{{ scope.row.num }}</span>
</template>
</el-table-column>
<el-table-column label="物品数量" width="180">
<template #default="scope">
<div v-if="scope.row.state == 1"><span style="color: #f81f1fd5">消耗</span></div>
<div v-else><span style="color: #087512d6">增加</span></div>
</template>
</el-table-column>
<el-table-column label="时间" width="180">
<template #default="scope">
<span>{{ scope.row.cTime }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="物品Id" width="180">-->
<!-- <template #default="scope">-->
<!-- <span>{{ scope.row }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<el-row justify="space-evenly">
<el-pagination
@ -919,7 +936,6 @@ export default defineComponent({
});
};
const itemRecord = () => {
// return;
state.tableData.itemRecordData = [];
gameItemRecord({
account: state.queryParams.orderAccount,
@ -932,7 +948,7 @@ export default defineComponent({
// ElMessage.error('');
return;
}
console.log('itemRecord: ', res);
state.queryParams.itemTotal = res.data.total;
state.tableData.itemRecordData = res.data.logs;
});
@ -1368,7 +1384,7 @@ export default defineComponent({
} else if (type == 2) {
state.showData = '桃花石: ' + data.goldIngot + ', 铜币: ' + data.copper + ', 基础食物: ' + data.baseFood;
} else if (type == 3) {
state.showData = '';
state.showData = data;
}
state.listVisible = true;
};
@ -1388,7 +1404,7 @@ export default defineComponent({
popTo: 2,
};
console.log('Notice: ', data);
// gameNoticePop(data)
gameNoticePop(data)
.then(() => {
ElMessage.success(data.serverId + '退出弹窗发送成功');
deleteRank();
@ -1403,13 +1419,21 @@ export default defineComponent({
uid: state.tableData.account.uid,
};
console.log('Notice: ', data);
deleteGameRank(data)
.then(() => {
ElMessage.success(data.serverId + '排行榜删除成功');
})
.finally(() => {
// state.loading = false;
});
ElMessageBox.confirm('是否确认删除排行榜?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
deleteGameRank(data)
.then((res) => {
if (res.data.mess) {
ElMessage.success(data.serverId + '排行榜删除成功!' + res.data.mess);
}
})
.finally(() => {
// state.loading = false;
});
});
};
return {
deleteRank,

Loading…
Cancel
Save