Browse Source

改名,小景, 热更重载

master
linquan 1 week ago
parent
commit
6097d27cbb
  1. 8
      src/api/game/gameConfig.ts
  2. 8
      src/api/game/mange.ts
  3. 43
      src/views/gameLoginUrl/serverReloadDll/index.vue
  4. 95
      src/views/gameManage/changeName/index.vue
  5. 29
      src/views/gameManage/copyUnit/index.vue
  6. 242
      src/views/gameSmallLayout/update/index.vue

8
src/api/game/gameConfig.ts

@ -239,3 +239,11 @@ export function gameGMCheckPeriodIdBattlePass(params: object) {
params: params,
});
}
export function gameSendOfficialView(params: object) {
return request({
url: '/api/v1/game/sendOfficialView',
method: 'get',
params: params,
});
}

8
src/api/game/mange.ts

@ -97,3 +97,11 @@ export function gameGMDelAccount(params: object) {
params: params,
});
}
export function gameChangeName(params: object) {
return request({
url: '/api/v1/game/changeName',
method: 'get',
params: params,
});
}

43
src/views/gameLoginUrl/serverReloadDll/index.vue

@ -2,7 +2,16 @@
<div class="game-online-container">
<el-card shadow="hover">
<div class="system-user-search mb15">
<el-form :inline="true">
<el-form>
<el-form-item label="服务器:" prop="serverId">
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-select v-model="tableData.param.servers" class="m-2" placeholder="选择服务器" size="large" multiple collapse-tags clearable>
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
<el-button size="small" type="primary" style="margin-left: 20px" @click="changeServer">全选</el-button>
</el-form-item>
<el-form-item>
<el-button size="default" type="primary" class="ml10" @click="onlineList">
<el-icon>
@ -14,7 +23,7 @@
</el-form>
</div>
<el-table :data="tableData.data" style="width: 100%" @selection-change="handleSelectionChange" stripe border>
<el-table :data="getServerList()" style="width: 100%" @selection-change="handleSelectionChange" stripe border>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="71" />
<el-table-column prop="name" label="服务器名" width="250"></el-table-column>
@ -34,6 +43,7 @@
import { toRefs, reactive, onMounted, defineComponent } from 'vue';
import { serverList, ServerCategorize, ServerList } from '/@/utils/game';
import { gameServerReloadDll } from '/@/api/game/serverConfig';
import { gSwitchServer } from '/@/utils/utils';
//
interface TableData {
@ -45,14 +55,14 @@ interface TableData {
}
interface TableDataState {
serverSwitch: number;
tableData: {
data: Array<TableData>;
param: {
serverId: number[];
servers: number[];
};
};
servers: object[];
serverSwitch: number;
serverCategorize: object[];
}
@ -64,16 +74,16 @@ export default defineComponent({
tableData: {
data: [],
param: {
serverId: '',
servers: '',
},
},
servers: ServerList,
serverCategorize: ServerCategorize,
});
const onlineList = () => {
if (state.tableData.param.serverId.length > 0) {
for (let server in state.tableData.param.serverId) {
onlines(state.tableData.param.serverId[server]);
if (state.tableData.param.servers.length > 0) {
for (let server in state.tableData.param.servers) {
onlines(state.tableData.param.servers[server]);
}
}
};
@ -97,6 +107,7 @@ export default defineComponent({
onMounted(() => {
serverList().then((res) => {
// console.log(res);
state.servers = res;
state.tableData.data = res;
});
});
@ -104,7 +115,23 @@ export default defineComponent({
state.tableData.param.serverId = selection.map((item) => item.id);
console.log(state.tableData.param.serverId, selection);
};
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
const changeServer = () => {
let servers = gSwitchServer(state.serverSwitch, state.servers);
state.tableData.param.servers = [];
for (let i in servers) {
state.tableData.param.servers.push(servers[i].id);
}
};
const getServerList = () => {
return state.tableData.data.filter(r => state.tableData.param.servers.includes(r.id))
};
return {
getServerList,
switchServer,
changeServer,
handleSelectionChange,
onlineList,
...toRefs(state),

95
src/views/gameManage/changeName/index.vue

@ -0,0 +1,95 @@
<template>
<div class="game-maintenance-container">
<el-card shadow="hover" header="更新桃谷名称">
<div class="game-order-search mb15">
<el-form label-position="right" label-width="300px" style="max-width: 600px">
<el-form-item label="账号服务器" prop="server">
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-select v-model="tableData.param.server" class="m-2" placeholder="选择服务器" size="large" filterable>
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="uid">
<el-input v-model="tableData.param.uid" placeholder="请填写uid" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item label="桃谷名称">
<el-input v-model="tableData.param.name" placeholder="请填写桃谷名称" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item>
<el-button size="large" type="primary" class="ml10" @click="changeName">更新</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</div>
</template>
<script lang="ts">
import { toRefs, reactive, onMounted, defineComponent } from 'vue';
import { ElMessage } from 'element-plus';
import { gameChangeName } from '/@/api/game/mange';
import { gSwitchServer } from '/@/utils/utils';
import { ServerCategorize, serverList } from '/@/utils/game';
interface TableData {
name: string;
uid: string;
server: string;
}
interface TableDataState {
tableData: {
param: TableData;
};
servers: object[];
serverSwitch: number;
serverCategorize: object;
}
export default defineComponent({
name: 'apiV1GameMangeChangeName',
setup() {
const state = reactive<TableDataState>({
tableData: {
param: {
name: '',
uid: '',
server: '',
},
},
servers: [],
serverSwitch: 0,
serverCategorize: ServerCategorize,
});
const changeName = () => {
console.log('state.tableData.data: ', state.tableData.param);
gameChangeName(state.tableData.param)
.then((res) => {
ElMessage.success('修改成功');
console.log('copy: ', res);
})
.finally(() => {});
};
onMounted(() => {
serverList().then((res) => {
state.servers = res;
// console.log(" server : ", state.servers);
});
});
//
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
return {
switchServer,
changeName,
...toRefs(state),
};
},
});
</script>

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

@ -20,11 +20,6 @@
<el-form-item label="原账号">
<el-input v-model="tableData.data.SrcName" placeholder="请填写uid" class="w-50 m-2" clearable />
</el-form-item>
<!-- <el-form-item label="原账号服务器">-->
<!-- <el-select v-model="tableData.data.SrcServer" class="m-2" placeholder="选择服务器" filterable>-->
<!-- <el-option v-for="item in servers" :key="item.id" :label="item.name" :value="item.id" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="原账号服务器" prop="SrcServer">
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" />
@ -42,30 +37,6 @@
<div v-else>下载账号json数据</div>
</el-button>
</el-form-item>
<!-- <el-form-item>-->
<!-- <el-button size="default" type="primary" @click="onDownload(filename)" v-if="!disabled" :loading="loading">-->
<!-- <div v-if="loading">正在复制账号</div>-->
<!-- <div v-else>下载账号json数据</div>-->
<!-- </el-button>-->
<!-- </el-form-item>-->
<!-- <el-form-item inlist="true">-->
<!-- <el-button size="default" type="primary" @click="onDownload(storeFilename)" v-if="!disabled" :loading="loading1">-->
<!-- <div v-if="loading1">正在复制仓库</div>-->
<!-- <div v-else>下载仓库json数据</div>-->
<!-- </el-button>-->
<!-- </el-form-item>-->
<!-- <el-form-item inlist="true">-->
<!-- <el-button size="default" type="primary" @click="onDownload(deadFilename)" v-if="!disabled" :loading="loading2">-->
<!-- <div v-if="loading2">正在复制村民</div>-->
<!-- <div v-else>下载村民json数据</div>-->
<!-- </el-button>-->
<!-- </el-form-item>-->
<!-- <el-form-item inlist="true">-->
<!-- <el-button size="default" type="primary" @click="onDownload(decorationFilename)" v-if="!disabled" :loading="loading3">-->
<!-- <div v-if="loading3">正在复制装饰</div>-->
<!-- <div v-else>下载装饰json数据</div>-->
<!-- </el-button>-->
<!-- </el-form-item>-->
</el-form>
</div>
</div>

242
src/views/gameSmallLayout/update/index.vue

@ -0,0 +1,242 @@
<template>
<div class="system-edit-post-container">
<el-form ref="formRef" :model="tableData.param" :rules="rules" size="default" label-width="90px">
<el-card shadow="hover" header="小景更新">
<el-form label-width="90px">
<el-form-item label="服务器:" prop="serverId">
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-select v-model="tableData.param.servers" class="m-2" placeholder="选择服务器" size="large" multiple collapse-tags clearable>
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
<el-button size="small" type="primary" style="margin-left: 20px" @click="changeServer">全选</el-button>
</el-form-item>
</el-form>
<el-form-item>
<el-button size="default" type="primary" @click="onSubmit">
<el-icon>
<ele-Select />
</el-icon>
更新小景
</el-button>
</el-form-item>
<el-table :data="tableData.data" :inline="true" :cell-style="{ padding: '0' }">
<el-table-column>
<template #default="scope">
<div class="flex-warp">
{{ servers.find((r) => r.id == scope.row.id).name }}
</div>
</template>
</el-table-column>
<el-table-column>
<template #default="scope">
<div class="flex-warp">
{{ scope.row.message }}
</div>
</template>
</el-table-column>
</el-table>
</el-card>
</el-form>
</div>
</template>
<script lang="ts">
import { reactive, toRefs, defineComponent, ref, unref, onMounted } from 'vue';
import { gameSendOfficialView } from '/@/api/game/gameConfig';
import { ElMessage, ElLoading } from 'element-plus';
import { ServerCategorize, serverList } from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
interface TableDataState {
check: boolean;
dbs: object[];
tableData: {
param: {
ServerId: string;
servers: string[];
};
data: object[];
};
servers: object[];
serverSwitch: number;
serverCategorize: object[];
}
export default defineComponent({
name: 'apiV1GameSmallLayout',
setup: function () {
const formRef = ref<HTMLElement | null>(null);
const state = reactive<TableDataState>({
tableData: {
param: {
serverId: '',
servers: [],
},
data: [],
},
servers: [],
serverSwitch: 0,
serverCategorize: ServerCategorize,
});
const onSubmit = () => {
const loading = ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
});
const formWrap = unref(formRef) as any;
if (!formWrap) return;
formWrap.validate(() => {
state.tableData.data = [];
for (let i in state.tableData.param.servers) {
sendServer(state.tableData.param.servers[i], loading);
}
return;
});
};
const sendServer = (serverId: number, loading) => {
gameSendOfficialView({ serverId: serverId })
.then((res) => {
console.log(res);
if (!res || Number(res.code) != 0) {
ElMessage.success('更新失败');
return;
}
state.tableData.data.push({ id: serverId, message: res.data.message });
ElMessage.success('更新成功');
})
.finally(() => {
loading.close();
});
};
onMounted(() => {
serverList().then((res) => {
state.servers = res;
console.log(state.servers);
});
});
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
const changeServer = () => {
let servers = gSwitchServer(state.serverSwitch, state.servers);
state.tableData.param.servers = [];
for (let i in servers) {
state.tableData.param.servers.push(servers[i].id);
}
};
return {
changeServer,
switchServer,
onSubmit,
formRef,
...toRefs(state),
};
},
});
</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>
Loading…
Cancel
Save