|
|
|
<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="gm开关" width="100">
|
|
|
|
<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) => {
|
|
|
|
let param = item.operParam.split('&');
|
|
|
|
for (let i in param) {
|
|
|
|
let data = param[i].split('=');
|
|
|
|
if (data[0]) {
|
|
|
|
item[data[0]] = data[1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
item.serverName = item.serverId;
|
|
|
|
if (state.servers.find((r) => r.id == Number(item.serverId))) {
|
|
|
|
item.serverName = state.servers.find((r) => r.id == Number(item.serverId)).name;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
})
|
|
|
|
.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>
|