Browse Source

加踢出

master
linquan 2 months ago
parent
commit
13c4589255
  1. 8
      src/api/game/index.ts
  2. 40
      src/views/gameRole/online/index.vue
  3. 129
      src/views/gameRole/role/index.vue

8
src/api/game/index.ts

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

40
src/views/gameRole/online/index.vue

@ -57,20 +57,9 @@
</div>
<el-table :data="tableData.data" style="width: 100%">
<el-table-column type="index" label="序号" width="60" />
<!-- <el-table-column prop="connectId" label="连接服务器" show-overflow-tooltip></el-table-column>-->
<el-table-column prop="uid" label="uid" show-overflow-tooltip></el-table-column>
<el-table-column prop="Account" label="UniqueId" show-overflow-tooltip></el-table-column>
<!-- <el-table-column prop="address" label="IP地址" show-overflow-tooltip></el-table-column>-->
<!-- <el-table-column prop="loginTime" label="登录时间" show-overflow-tooltip></el-table-column>-->
</el-table>
<el-pagination
:hide-on-single-page="true"
v-show="tableData.total > 0"
:total="tableData.total"
v-model:page-size="tableData.param.pageNum"
v-model:current-page="tableData.param.pageSize"
@pagination="onlineList"
/>
</div>
</el-card>
</div>
@ -98,12 +87,13 @@ interface TableDataState {
};
TotalNumber: number;
Numbers: object;
Number: object;
topNumbers: object;
total: number;
};
topOnlineCount: number;
servers: object[];
serverSwitch: number;
serverSwitch: number;
serverCategorize: object[];
}
@ -124,13 +114,17 @@ export default defineComponent({
total: 0,
},
topOnlineCount: 0,
serverSwitch: 0,
serverSwitch: 0,
servers: ServerList,
serverCategorize: ServerCategorize,
});
const onlineList = () => {
// const data: Array<any> = [];
state.tableData.TotalNumber = 0;
state.tableData.Number = 0;
state.tableData.topNumbers = {};
state.tableData.Numbers = {};
if (state.tableData.param.serverId == '') {
for (let server in state.servers) {
onlines(state.servers[server].id);
@ -152,11 +146,14 @@ export default defineComponent({
}
if (state.topOnlineCount == 0) {
state.topOnlineCount = 1;
setTimeout(function () {
setTimeout(function () {
state.topOnlineCount = 0;
}, 30000);
if (state.tableData.param.serverId != '') {
state.topOnlineCount = 0;
}
gameOnlineTopList(state.tableData.param).then((res) => {
console.log("gameOnlineTopList: ", res.data);
console.log('gameOnlineTopList: ', res.data);
const list = res.data.onlines ?? [];
for (let i in list) {
state.tableData.topNumbers[list[i].server] = list[i].num;
@ -168,11 +165,14 @@ export default defineComponent({
if (!server) {
return;
}
gameOnlineList({ serverId: server }).then((res) => {
console.log('server: ', server, ' data: ', res.data);
state.tableData.Numbers[server] = res.data.total;
state.tableData.TotalNumber += res.data.total;
});
setTimeout(function () {
gameOnlineList({ serverId: server }).then((res) => {
console.log('server: ', server, ' data: ', res.data);
state.tableData.Numbers[server] = res.data.total;
state.tableData.TotalNumber += res.data.total;
});
console.log('server index: ', server, state.servers.indexOf(r => r.id == server));
}, 1000 * state.servers.indexOf(r => r.id == server));
};
//
onMounted(() => {

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

@ -12,22 +12,22 @@
</el-select>
</el-form-item>
<el-form-item label="id">
<el-input v-model="queryParams.id" placeholder="请输入id" clearable />
<el-input v-model="queryParams.id" placeholder="请输入id" clearable />
</el-form-item>
<el-form-item label="uid">
<el-input v-model="queryParams.uid" placeholder="请输入uid" clearable />
<el-input v-model="queryParams.uid" placeholder="请输入uid" clearable />
</el-form-item>
<el-form-item label="账号">
<el-select v-model="queryParams.channel" placeholder="选择渠道" style="width: 115px">
<el-option v-for="item in channels" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-input v-model="queryParams.account" placeholder="请输入账号" clearable style="width: 250px"/>
<el-select v-model="queryParams.channel" placeholder="选择渠道" style="width: 115px">
<el-option v-for="item in channels" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-input v-model="queryParams.account" placeholder="请输入账号" clearable style="width: 250px" />
</el-form-item>
<el-form-item label="身份证:">
<el-input v-model="queryParams.ident" placeholder="身份证" clearable />
<el-input v-model="queryParams.ident" placeholder="身份证" clearable />
</el-form-item>
<el-form-item label="名字:">
<el-input v-model="queryParams.name" placeholder="名字" clearable />
<el-input v-model="queryParams.name" placeholder="名字" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" class="ml10" @click="roleList">
@ -37,6 +37,14 @@
查询
</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-form-item>
</el-form>
</div>
</el-card>
@ -85,9 +93,10 @@
<el-form :inline="true">
山谷名称 {{ tableData.data[0] && tableData.data[0].ValleyComponent && tableData.data[0].ValleyComponent.Name }}
</el-form>
<el-form :inline="true">
山谷创建时间 {{ tableData.data[0] && new Date(tableData.data[0].UnitCreateTime).toLocaleString() }}
</el-form>
<el-form :inline="true">
山谷创建时间
{{ tableData.data[0] && new Date(tableData.data[0].UnitCreateTime).toLocaleString() }}
</el-form>
<el-form :inline="true">
游戏时间 {{ tableData.data[0] && tableData.data[0].ValleyComponent && tableData.data[0].ValleyComponent.Day }}
{{ tableData.data[0] && tableData.data[0].ValleyComponent && Math.floor(tableData.data[0].ValleyComponent.GameTime / 100) }}
@ -345,17 +354,17 @@
</template>
</el-table-column>
</el-table>
<el-row justify="space-evenly">
<el-pagination
:hide-on-single-page="true"
v-model:page-size="queryParams.itemPageSize"
v-model:current-page="queryParams.itemPageNum"
:pager-count="5"
@current-change="itemRecord"
layout="total, prev, pager, next"
:total="queryParams.itemTotal"
/>
</el-row>
<el-row justify="space-evenly">
<el-pagination
:hide-on-single-page="true"
v-model:page-size="queryParams.itemPageSize"
v-model:current-page="queryParams.itemPageNum"
:pager-count="5"
@current-change="itemRecord"
layout="total, prev, pager, next"
:total="queryParams.itemTotal"
/>
</el-row>
</div>
</el-card>
@ -605,7 +614,16 @@
<script lang="ts">
import { h, toRefs, reactive, onMounted, defineComponent } from 'vue';
import { gameRoleList, gameAccountList, gameLoginOut, gameLoginOutLog, gameItemRecord, gameOrderList } from '/@/api/game';
import {
gameRoleList,
gameAccountList,
gameLoginOut,
gameLoginOutLog,
gameItemRecord,
gameOrderList,
gameNoticePop,
deleteGameRank,
} from '/@/api/game';
import SeasonConfigCategory from '/@/api/config/SeasonConfigCategory.json';
import ScaleConfigCategory from '/@/api/config/ScaleConfigCategory.json';
import RegionConfigCategory from '/@/api/config/RegionConfigCategory.json';
@ -617,16 +635,7 @@ import WarriorConfigCategory from '/@/api/config/WarriorConfigCategory.json';
import SkillConfigCategory from '/@/api/config/SkillConfigCategory.json';
import EquipmentConfigCategory from '/@/api/config/EquipmentConfigCategory.json';
import ClothesConfigCategory from '/@/api/config/ClothesConfigCategory.json';
import {
ConstRegion,
GameUnitType,
NumericType,
Clothes_Type,
AttributeOperator,
Gender,
ConstBehaveType,
AccountType
} from '/@/api/common/consts';
import { ConstRegion, GameUnitType, NumericType, Clothes_Type, AttributeOperator, Gender, ConstBehaveType, AccountType } from '/@/api/common/consts';
import { ElMessage, ElMessageBox } from 'element-plus';
import { channelList, ServerCategorize, serverList } from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
@ -681,8 +690,8 @@ interface TableDataState {
account: TableData;
data: Array<TableData>;
loginOutData: object[];
loginOutLogData: object[];
itemRecordData: object[];
loginOutLogData: object[];
itemRecordData: object[];
total: 0;
building: { buildingList: object[] };
warrior: { list: object[] };
@ -751,8 +760,8 @@ export default defineComponent({
},
tableData: {
loginOutData: [],
itemRecordData: [],
loginOutLogData: [],
itemRecordData: [],
loginOutLogData: [],
orderData: [],
account: {},
data: [],
@ -808,7 +817,7 @@ export default defineComponent({
ElMessage.error('未查询到用户信息!');
return;
}
console.log(res);
console.log('gameAccountList: ', res);
const list = res.data.list ?? [];
list.map((item: TableData) => {
item.AccountType = state.tableData.accountType.find((r) => r.value == item.AccountType).label;
@ -821,7 +830,7 @@ export default defineComponent({
// ElMessage.error('');
return;
}
console.log(res);
console.log('gameRoleList: ', res);
let roleList = res.data.list || [];
state.tableData.total = res.data.total;
roleList.map((item: TableData) => {
@ -830,7 +839,7 @@ export default defineComponent({
}
});
state.tableData.data = roleList;
console.log(roleList);
console.log('gameRoleList: ', roleList);
});
state.queryParams.orderAccount = list[0].AccountName;
orderList();
@ -892,7 +901,7 @@ export default defineComponent({
});
};
const loginOutLog = () => {
state.tableData.loginOutLogData = [];
state.tableData.loginOutLogData = [];
gameLoginOutLog({
account: state.queryParams.orderAccount,
id: state.queryParams.id,
@ -911,10 +920,10 @@ export default defineComponent({
};
const itemRecord = () => {
// return;
state.tableData.itemRecordData = []
state.tableData.itemRecordData = [];
gameItemRecord({
account: state.queryParams.orderAccount,
id: state.queryParams.id,
id: state.queryParams.id,
serverId: state.queryParams.serverId,
pageSize: state.queryParams.itemPageSize,
pageNum: state.queryParams.itemPageNum,
@ -1370,7 +1379,41 @@ export default defineComponent({
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
const noticePop = () => {
let data = {
serverId: state.queryParams.serverId,
content: '强制踢出',
uids: state.tableData.account.uid,
popType: 3,
popTo: 2,
};
console.log('Notice: ', data);
// gameNoticePop(data)
.then(() => {
ElMessage.success(data.serverId + '退出弹窗发送成功');
deleteRank();
})
.finally(() => {
// state.loading = false;
});
};
const deleteRank = () => {
let data = {
serverId: state.queryParams.serverId,
uid: state.tableData.account.uid,
};
console.log('Notice: ', data);
deleteGameRank(data)
.then(() => {
ElMessage.success(data.serverId + '排行榜删除成功');
})
.finally(() => {
// state.loading = false;
});
};
return {
deleteRank,
noticePop,
switchServer,
handleClose,
getShowData,

Loading…
Cancel
Save