Browse Source

channel, debug

master
linquan 1 month ago
parent
commit
f5a3b0a865
  1. 1
      .env.test87
  2. 24
      src/api/game/index.ts
  3. 92
      src/views/gameLoginUrl/channelList/component/editConfig.vue
  4. 152
      src/views/gameLoginUrl/channelList/index.vue
  5. 21
      src/views/gameManage/copyUnit/index.vue
  6. 10
      src/views/gameOrder/count/index.vue
  7. 149
      src/views/gameRole/online/index.vue
  8. 2
      src/views/gameRole/rank/index.vue
  9. 2
      src/views/login/index.vue
  10. 10
      src/views/system/user/component/editUser.vue
  11. 2
      src/views/system/user/index.vue

1
.env.test87

@ -6,5 +6,6 @@ VITE_PUBLIC_PATH =
VITE_outDir = 'test87'
# 线上环境接口地址
VITE_API_URL = 'http://111.231.140.87:4111/'
VITE_API_URL1 = 'http://peachmanage.taoyuanjilogin.com:4111/'
VITE_API_TITLE = '桃源记2后台'
VITE_API_VICETITLE = '后台'

24
src/api/game/index.ts

@ -988,3 +988,27 @@ export function gameLoginOutGm(params: object) {
params: params,
});
}
export function gameGetChannel(params: object) {
return request({
url: '/api/v1/game/channel/get',
method: 'get',
params: params,
});
}
export function gameAddChannel(params: object) {
return request({
url: '/api/v1/game/channel/add',
method: 'get',
params: params,
});
}
export function gameDelChannel(params: object) {
return request({
url: '/api/v1/game/channel/del',
method: 'get',
params: params,
});
}

92
src/views/gameLoginUrl/channelList/component/editConfig.vue

@ -0,0 +1,92 @@
<template>
<div>
<el-dialog :title="isNew?'新增渠道':'修改渠道信息'" v-model="isShowDialog" width="769px">
<el-form label-width="90px" label-position="right">
<el-form-item label="名称" prop="label">
<el-input v-model="queryParams.label" placeholder="请输入名称" size="large" style="width: 220px"/>
</el-form-item>
<el-form-item label="渠道编号" prop="value">
<el-input v-model="queryParams.value" placeholder="请输入渠道编号" size="large" style="width: 220px"/>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="queryParams.sort" placeholder="请输入排序" size="large" style="width: 220px"/>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="onCancel" size="default"> </el-button>
<el-button size="default" type="primary" class="ml10" @click="addItem">
<el-icon>
<ele-EditPen/>
</el-icon>
<div v-if="isNew">新增</div>
<div v-else>修改</div>
</el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script lang="ts">
import {reactive, toRefs, defineComponent} from 'vue';
import {ElLoading} from "element-plus";
import {gameAddChannel} from "/@/api/game";
interface TableDataState {
isShowDialog: boolean,
isNew: boolean,
queryParams: object;
channels: object[];
}
export default defineComponent({
name: 'gameServerConfigEdit',
setup(prop, {emit}) {
const state = reactive<TableDataState>({
isShowDialog: false,
isNew: false,
queryParams: {},
channels: [],
});
//
const openDialog = (row: any | null) => {
state.isShowDialog = true;
state.isNew = !row;
state.queryParams = row || {};
};
//
const closeDialog = () => {
state.isShowDialog = false;
};
//
const onCancel = () => {
closeDialog();
};
//
const addItem = () => {
const loading = ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
});
gameAddChannel(state.queryParams).then((res) => {
console.log(res);
}).finally(function () {
loading.close();
emit('countList')
closeDialog();
});
};
return {
openDialog,
closeDialog,
onCancel,
addItem,
...toRefs(state),
};
},
});
</script>

152
src/views/gameLoginUrl/channelList/index.vue

@ -0,0 +1,152 @@
<template>
<div>
<!-- <el-card shadow="hover" header="">-->
<!-- <div class="mb15">-->
<el-form class="flex-warp" label-position="right">
<el-form-item>
<el-button type="success" class="ml10" @click="reloadServer">
<el-icon>
<ele-FolderAdd />
</el-icon>
重载配置
</el-button>
</el-form-item>
<el-form-item>
<el-button type="success" class="ml10" @click="countList"> 刷新列表</el-button>
</el-form-item>
<el-form-item>
<el-button type="success" class="ml10" @click="onOpenAddDic"> 添加</el-button>
</el-form-item>
<el-table :data="tableData.data" style="width: 100%" stripe border>
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="label" label="名称" width="180" />
<el-table-column prop="value" label="渠道编号" width="260" />
<el-table-column prop="sort" label="排序" width="180" />
<el-table-column>
<template #default="scope">
<el-button size="small" type="success" @click="onOpenEditDic(scope.row)">修改</el-button>
<el-button size="small" type="danger" @click="delLoginUrl(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-row justify="space-evenly">
<el-pagination
:hide-on-single-page="true"
v-model:page-size="tableData.params.pageSize"
:pager-count="5"
v-model:current-page="tableData.params.pageNum"
layout="total, prev, pager, next"
:total="tableData.total"
@current-change="handleCurrentChange"
/>
</el-row>
</el-form>
<EditConfig ref="editDicRef" @countList="countList" />
</div>
</template>
<script lang="ts">
import { toRefs, reactive, onMounted, defineComponent, ref } from 'vue';
import EditConfig from '/@/views/gameLoginUrl/channelList/component/editConfig.vue';
import { gameReloadServer, gameGetChannel, gameDelChannel } from '/@/api/game';
import { PLATFORM } from '/@/api/common/consts';
//
interface TableData {
id: number;
ip: string;
}
interface TableDataState {
tableData: {
data: Array<TableData>;
total: number;
params: {
pageNum: number;
pageSize: number;
};
};
platform: Array<{ label: string; value: string }>;
}
export default defineComponent({
name: 'apiV1ServerConfig',
components: { EditConfig },
setup() {
const editDicRef = ref();
const state = reactive<TableDataState>({
platform: PLATFORM,
tableData: {
data: [],
total: 0,
params: {
pageNum: 1,
pageSize: 10,
},
},
});
//
const onOpenAddDic = () => {
editDicRef.value.openDialog();
};
//
const onOpenEditDic = (row: TableData) => {
editDicRef.value.openDialog(row);
};
const countList = () => {
gameGetChannel(state.tableData.params).then((res) => {
console.log('countList:', res);
state.tableData.total = res.data.total || 1;
state.tableData.data = res.data.list ?? [];
console.log('countList:', state.tableData);
});
};
const delLoginUrl = (id: number) => {
gameDelChannel({ id: id }).then((res) => {
countList();
});
};
const reloadServer = () => {
gameReloadServer({ sType: 2 }).then((res) => {
console.log(res);
});
};
const handleCurrentChange = (val: number) => {
state.tableData.params.pageNum = val;
countList();
};
onMounted(() => {
countList();
});
return {
editDicRef,
handleCurrentChange,
countList,
onOpenAddDic,
onOpenEditDic,
delLoginUrl,
reloadServer,
...toRefs(state),
};
},
});
</script>
<style scoped lang="scss">
.el-form-item {
display: -moz-flex;
vertical-align: middle;
margin-right: 32px;
}
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td {
background: #ffffd5;
}
::v-deep .el-table .el-table--enable-row-hover .el-table__body tr:hover > td {
background: inherit;
}
</style>

21
src/views/gameManage/copyUnit/index.vue

@ -256,6 +256,7 @@ interface TableDataState {
serverId: number;
};
fileNames: string[];
downloadFiles: string[];
};
servers: object[];
disabled: boolean;
@ -303,6 +304,7 @@ export default defineComponent({
account: '',
},
fileNames: [],
downloadFiles: [],
},
servers: AllServerList,
disabled: true,
@ -316,12 +318,12 @@ export default defineComponent({
decorationFilename: '',
serverCategorize: ServerCategorize,
});
// const handleRemove = (file, fileList) => {
// console.log('handleRemove: ', file, fileList);
// };
// const handlePreview = (file) => {
// console.log('handlePreview: ', file);
// };
const handleRemove = (file, fileList) => {
console.log('handleRemove: ', file, fileList);
};
const handlePreview = (file) => {
console.log('handlePreview: ', file);
};
const handleExceed = (files, fileList) => {
console.log('handleExceed: ', files, fileList);
warn(`当前限制选择 4 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
@ -358,6 +360,7 @@ export default defineComponent({
state.loading3 = true;
state.disabled = false;
state.tableData.fileNames = [];
state.tableData.downloadFiles = [];
gameGMCopyUnit({
SrcName: state.tableData.data.SrcName,
SrcServer: state.tableData.data.SrcServer,
@ -373,6 +376,10 @@ export default defineComponent({
state.tableData.fileNames.push(res.data.storeFilename);
state.tableData.fileNames.push(res.data.deadFilename);
state.tableData.fileNames.push(res.data.decorationFilename);
state.tableData.downloadFiles.push(res.data.filename);
state.tableData.downloadFiles.push(res.data.storeFilename);
state.tableData.downloadFiles.push(res.data.deadFilename);
state.tableData.downloadFiles.push(res.data.decorationFilename);
if (res.data.filename != '') {
state.filename = res.data.filename;
state.storeFilename = res.data.storeFilename;
@ -495,7 +502,7 @@ export default defineComponent({
};
const onDownload = () => {
state.tableData.fileNames.forEach((url, i) => {
state.tableData.downloadFiles.forEach((url, i) => {
setTimeout(function () {
download(url);
}, i * 1000);

10
src/views/gameOrder/count/index.vue

@ -56,7 +56,7 @@
</el-table>
<el-row justify="space-evenly">
<el-pagination :hide-on-single-page="true" v-model:page-size="tableData.param.pageSize"
v-model:current-page="tableData.param.pageNo" :pager-count="5"
v-model:current-page="tableData.param.pageNum" :pager-count="5"
@current-change="countList" layout="total, prev, pager, next" :total="tableData.total"/>
</el-row>
</el-card>
@ -68,7 +68,7 @@ import {toRefs, reactive, onMounted, defineComponent} from 'vue';
//import { ElMessageBox, ElMessage } from 'element-plus';
import {gameOrderCount} from "/@/api/game";
import {allServerList, AllServerList, ServerCategorize} from "/@/utils/game";
import actionModel from "/@/views/gameMarket/actionModel/index.vue";
// import actionModel from "/@/views/gameMarket/actionModel/index.vue";
import {gSwitchServer} from "/@/utils/utils";
//
@ -92,7 +92,7 @@ interface TableDataState {
compareType: number,
GM: number,
server: number,
pageNo: number,
pageNum: number,
pageSize: number,
}
compareType: object
@ -114,7 +114,7 @@ export default defineComponent({
compareType: 1,
GM: 0,
server: "",
pageNo: 1,
pageNum: 1,
pageSize: 10,
},
compareType: [
@ -149,7 +149,7 @@ export default defineComponent({
compareType: state.tableData.param.compareType,
GM: state.tableData.param.GM,
server: state.tableData.param.server,
pageNo: state.tableData.param.pageNo,
pageNum: state.tableData.param.pageNum,
pageSize: state.tableData.param.pageSize,
}).then(res => {
console.log(res);

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

@ -32,12 +32,12 @@
</div>
<div class="system-user-search mb15">
<div v-for="(num, k) in tableData.topNumbers" :key="k">
<el-form :inline="true">
<el-form :inline="true" style="height: 25px">
<el-form-item> {{ servers.find((res) => res.id == k).name }}</el-form-item>
<el-form-item label="在线数量">
{{ tableData.Numbers[k] || 0 }}
</el-form-item>
<el-form-item label="最高在线数量">
<el-form-item label="最高在线数量">
{{ num }}
</el-form-item>
</el-form>
@ -55,7 +55,7 @@
</el-form-item>
</el-form>
</div>
<el-table :data="tableData.data" style="width: 100%">
<el-table :data="tableData.data" stripe border style="width: 100%">
<el-table-column type="index" label="序号" width="60" />
<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>
@ -152,13 +152,19 @@ export default defineComponent({
if (state.tableData.param.serverId != '') {
state.topOnlineCount = 0;
}
gameOnlineTopList(state.tableData.param).then((res) => {
console.log('gameOnlineTopList: ', res.data);
const list = res.data.onlines ?? [];
for (let i in list) {
state.tableData.topNumbers[list[i].server] = list[i].num;
if (state.tableData.param.serverId == '') {
for (let server in state.servers) {
onlinesTop(state.servers[server].id);
}
});
} else {
gameOnlineTopList(state.tableData.param).then((res) => {
console.log('gameOnlineTopList: ', res.data);
const list = res.data.onlines ?? [];
for (let i in list) {
state.tableData.topNumbers[list[i].server] = list[i].num;
}
});
}
}
};
const onlines = (server: number) => {
@ -171,8 +177,27 @@ export default defineComponent({
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));
console.log(
'server index: ',
server,
state.servers.indexOf((r) => r.id == server)
);
}, 1000 * state.servers.indexOf((r) => r.id == server));
};
const onlinesTop = (server: number) => {
if (!server) {
return;
}
setTimeout(function () {
gameOnlineTopList({ serverId: server }).then((res) => {
console.log('gameOnlineTopList: ', server, res.data);
const list = res.data.onlines ?? [];
for (let i in list) {
state.tableData.topNumbers[list[i].server] = list[i].num;
}
});
console.log('server index: ', server, state.servers.indexOf((r) => r.id == server));
}, 1000 * state.servers.indexOf((r) => r.id == server));
};
//
onMounted(() => {
@ -192,3 +217,105 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.el-table {
--el-table-border-color: var(--el-border-color-lighter);
--el-table-border: 0px solid var(--el-table-border-color);
}
::v-deep .table-style {
margin-top: -15px;
padding-top: -20px;
}
::v-deep .el-table .el-table__cell {
padding: 0;
margin-left: -20px;
min-width: 0;
box-sizing: border-box;
text-overflow: ellipsis;
vertical-align: middle;
position: relative;
text-align: left;
z-index: 1;
}
.tree-border {
margin-top: 5px;
border: 1px solid #e5e6e7 !important;
background: #fff none !important;
border-radius: 4px;
}
.system-edit-post-container {
.menu-data-tree {
border: var(--el-input-border, var(--el-border-base));
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
padding: 5px;
}
}
.editable-cell__input {
display: inline;
width: 10%;
.el-input__inner {
padding: 0 8px;
font-size: 12px;
}
}
/*.table-left-block {*/
/* margin-left: 0px;*/
/*}*/
.left-block {
margin-left: -20px;
}
.table-num-left {
margin-left: -85px;
}
.num-left {
margin-left: -30px;
}
.table-item {
margin-top: 10px;
margin-bottom: -10px;
}
.title-label-block {
margin-left: -20px;
}
.label-block {
padding-left: 10px;
}
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td {
background: #ffffd5;
}
.warning-row {
background: #ffffd5;
}
::v-deep .warning-row .el-table__body tr {
background-color: #ffffd5;
}
::v-deep .warning-row .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: inherit;
}
::v-deep .warning-row .el-table__cell {
background-color: #ffffd5;
}
::v-deep .tableCell {
margin-left: -15px;
}
</style>

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

@ -25,7 +25,7 @@
</el-button>
</el-form-item>
</el-form>
<el-table :data="tableData.data" style="width: 100%" stripe border>
<el-table :data="tableData.data" style="width: 100%" stripe>
<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>

2
src/views/login/index.vue

@ -91,8 +91,8 @@ export default defineComponent({
return;
}
state.state += res.key;
console.log(state.state);
if (state.state === 'email') {
console.log(state.state);
state.showEmail = true;
state.tabsActiveName = 'email';
state.state = '';

10
src/views/system/user/component/editUser.vue

@ -53,11 +53,11 @@
<el-input v-model="ruleForm.mobile" placeholder="请输入手机号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="邮箱" prop="email">
<el-input v-model="ruleForm.email" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
<!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">-->
<!-- <el-form-item label="邮箱" prop="email">-->
<!-- <el-input v-model="ruleForm.email" placeholder="请输入" clearable></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">-->
<!-- <el-form-item label="性别" prop="sex">-->
<!-- <el-select v-model="ruleForm.sex" placeholder="请选择" clearable class="w100">-->

2
src/views/system/user/index.vue

@ -107,7 +107,7 @@
</template>
</el-table-column>
<el-table-column prop="mobile" label="手机号" show-overflow-tooltip></el-table-column>
<el-table-column prop="userEmail" label="邮箱" show-overflow-tooltip></el-table-column>
<!-- <el-table-column prop="userEmail" label="邮箱" show-overflow-tooltip></el-table-column>-->
<el-table-column prop="userStatus" label="用户状态" show-overflow-tooltip>
<template #default="scope">
<el-switch

Loading…
Cancel
Save