|
|
|
<template>
|
|
|
|
<div class="game-maintenance-container">
|
|
|
|
<el-card shadow="hover" header="复制账号">
|
|
|
|
<template #header>
|
|
|
|
复制账号
|
|
|
|
<el-button v-show="item.copyShow == false" @click="item.copyShow = true" class="button-caret" type="text">
|
|
|
|
<el-icon>
|
|
|
|
<ele-CaretBottom />
|
|
|
|
</el-icon>
|
|
|
|
</el-button>
|
|
|
|
<el-button v-show="item.copyShow == true" @click="item.copyShow = false" class="button-caret" type="text">
|
|
|
|
<el-icon>
|
|
|
|
<ele-CaretTop />
|
|
|
|
</el-icon>
|
|
|
|
</el-button>
|
|
|
|
</template>
|
|
|
|
<div v-show="item.copyShow">
|
|
|
|
<div class="game-order-search mb15">
|
|
|
|
<el-form label-position="right" label-width="300px" style="max-width: 600px">
|
|
|
|
<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" />
|
|
|
|
</el-select>
|
|
|
|
<el-select v-model="tableData.data.SrcServer" 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>
|
|
|
|
<el-button size="large" type="primary" class="ml10" @click="copyUnit"> 复制</el-button>
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item>
|
|
|
|
<el-button size="default" type="primary" @click="onDownload()" v-if="!disabled" :loading="loading && loading1 && loading2 && loading3">
|
|
|
|
<div v-if="loading && loading1 && loading2 && loading3">正在复制账号</div>
|
|
|
|
<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>
|
|
|
|
</el-card>
|
|
|
|
|
|
|
|
<el-card shadow="hover" header="载入账号信息">
|
|
|
|
<template #header>
|
|
|
|
上载账号信息
|
|
|
|
<el-button v-show="item.copyShow == false" @click="item.copyShow = true" class="button-caret" type="text">
|
|
|
|
<el-icon>
|
|
|
|
<ele-CaretBottom />
|
|
|
|
</el-icon>
|
|
|
|
</el-button>
|
|
|
|
<el-button v-show="item.copyShow == true" @click="item.copyShow = false" class="button-caret" type="text">
|
|
|
|
<el-icon>
|
|
|
|
<ele-CaretTop />
|
|
|
|
</el-icon>
|
|
|
|
</el-button>
|
|
|
|
</template>
|
|
|
|
<div v-show="item.copyShow">
|
|
|
|
<div class="game-order-search mb15">
|
|
|
|
<el-form label-position="right" label-width="300px" style="max-width: 600px">
|
|
|
|
<el-upload
|
|
|
|
class="upload-demo"
|
|
|
|
:action="baseURL + 'api/v1/pub/upload/singleFile'"
|
|
|
|
:on-preview="handlePreview"
|
|
|
|
:on-remove="handleRemove"
|
|
|
|
:on-change="handleChange"
|
|
|
|
:before-remove="beforeRemove"
|
|
|
|
multiple
|
|
|
|
:limit="4"
|
|
|
|
:on-exceed="handleExceed"
|
|
|
|
:file-list="fileList"
|
|
|
|
>
|
|
|
|
<el-button size="small" type="primary">点击上传</el-button>
|
|
|
|
只能上传Json文件
|
|
|
|
</el-upload>
|
|
|
|
<el-form-item label="unit文件名称">
|
|
|
|
<el-select v-model="tableData.data.filename" class="m-2" placeholder="选择载入文件" style="width: 300px" filterable>
|
|
|
|
<el-option v-for="item in tableData.fileNames" :key="item" :label="item" :value="item" />
|
|
|
|
</el-select>
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item label="仓库文件名称">
|
|
|
|
<el-select v-model="tableData.data.storeFilename" class="m-2" placeholder="选择载入文件" style="width: 300px" filterable>
|
|
|
|
<el-option v-for="item in tableData.fileNames" :key="item" :label="item" :value="item" />
|
|
|
|
</el-select>
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item label="村民文件名称">
|
|
|
|
<el-select v-model="tableData.data.deadFilename" class="m-2" placeholder="选择载入文件" style="width: 300px" filterable>
|
|
|
|
<el-option v-for="item in tableData.fileNames" :key="item" :label="item" :value="item" />
|
|
|
|
</el-select>
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item label="装饰文件名称">
|
|
|
|
<el-select v-model="tableData.data.decorationFilename" class="m-2" placeholder="选择载入文件" style="width: 300px" filterable>
|
|
|
|
<el-option v-for="item in tableData.fileNames" :key="item" :label="item" :value="item" />
|
|
|
|
</el-select>
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item label="目标账号">
|
|
|
|
<el-input v-model="tableData.data.DestName" placeholder="请填写uid" class="w-50 m-2" clearable />
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item label="目标服务器" prop="DestServer">
|
|
|
|
<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.data.DestServer" 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>
|
|
|
|
<el-button size="large" type="primary" class="ml10" @click="updateUnit"> 更新</el-button>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</el-card>
|
|
|
|
<el-card shadow="hover" header="删除账号">
|
|
|
|
<template #header>
|
|
|
|
删除账号
|
|
|
|
<el-button v-show="item.delShow == false" @click="item.delShow = true" class="button-caret" type="text">
|
|
|
|
<el-icon>
|
|
|
|
<ele-CaretBottom />
|
|
|
|
</el-icon>
|
|
|
|
</el-button>
|
|
|
|
<el-button v-show="item.delShow == true" @click="item.delShow = false" class="button-caret" type="text">
|
|
|
|
<el-icon>
|
|
|
|
<ele-CaretTop />
|
|
|
|
</el-icon>
|
|
|
|
</el-button>
|
|
|
|
</template>
|
|
|
|
<div v-show="item.delShow">
|
|
|
|
<div class="game-order-search mb15">
|
|
|
|
<el-form label-position="right" label-width="300px" style="max-width: 600px">
|
|
|
|
<el-form-item label="账号">
|
|
|
|
<el-input v-model="tableData.del.SrcName" placeholder="" class="w-50 m-2" clearable />
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item label="账号服务器">
|
|
|
|
<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.del.serverId" class="m-2" placeholder="选择服务器" 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>
|
|
|
|
<el-button type="primary" class="ml10" @click="delAccount"> 删除账号</el-button>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</el-card>
|
|
|
|
<el-card shadow="hover">
|
|
|
|
<template #header>
|
|
|
|
修改游戏登录密码
|
|
|
|
<el-button v-show="item.pwdShow == false" @click="item.pwdShow = true" class="button-caret" type="text">
|
|
|
|
<el-icon>
|
|
|
|
<ele-CaretBottom />
|
|
|
|
</el-icon>
|
|
|
|
</el-button>
|
|
|
|
<el-button v-show="item.pwdShow == true" @click="item.pwdShow = false" class="button-caret" type="text">
|
|
|
|
<el-icon>
|
|
|
|
<ele-CaretTop />
|
|
|
|
</el-icon>
|
|
|
|
</el-button>
|
|
|
|
</template>
|
|
|
|
<div class="game-order-search mb15" v-show="item.pwdShow">
|
|
|
|
<el-form label-position="right" label-width="300px" style="max-width: 600px">
|
|
|
|
<el-form-item label="account:">
|
|
|
|
<el-input v-model="tableData.password.account" placeholder="" class="w-50 m-2" size="large" clearable />
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item label="账号服务器">
|
|
|
|
<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.password.serverId" class="m-2" placeholder="选择服务器" 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="密码:">
|
|
|
|
<el-input v-model="tableData.password.pwd" placeholder="" class="w-50 m-2" size="large" clearable />
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item>
|
|
|
|
<el-button size="large" type="primary" class="ml10" @click="resetPwd"> 修改登录密码</el-button>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form>
|
|
|
|
</div>
|
|
|
|
</el-card>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
|
|
import { toRefs, reactive, onMounted, defineComponent, warn } from 'vue';
|
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus';
|
|
|
|
import { gameGMClearResource, gameGMCopyUnit, gameGMUpdateUnit, gameGMDelAccount, gameResetPwd, giftExchangeExists } from '/@/api/game';
|
|
|
|
import { gSwitchServer } from '/@/utils/utils';
|
|
|
|
import { AllServerList, ServerCategorize, serverList } from '/@/utils/game';
|
|
|
|
|
|
|
|
const baseURL: string | undefined | boolean = import.meta.env.VITE_API_URL;
|
|
|
|
|
|
|
|
interface TableData {
|
|
|
|
filename: string;
|
|
|
|
storeFilename: string;
|
|
|
|
deadFilename: string;
|
|
|
|
decorationFilename: string;
|
|
|
|
SrcName: number;
|
|
|
|
SrcServer: number;
|
|
|
|
DestName: string;
|
|
|
|
DestServer: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface DelData {
|
|
|
|
SrcName: string;
|
|
|
|
serverId: number;
|
|
|
|
password: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface TableDataState {
|
|
|
|
item: { copyShow: boolean; delShow: boolean; pwdShow: boolean; resourceShow: boolean };
|
|
|
|
tableData: {
|
|
|
|
data: TableData;
|
|
|
|
del: DelData;
|
|
|
|
password: {
|
|
|
|
account: string;
|
|
|
|
serverId: number;
|
|
|
|
pwd: string;
|
|
|
|
};
|
|
|
|
resource: {
|
|
|
|
account: string;
|
|
|
|
serverId: number;
|
|
|
|
};
|
|
|
|
fileNames: string[];
|
|
|
|
downloadFiles: string[];
|
|
|
|
};
|
|
|
|
servers: object[];
|
|
|
|
disabled: boolean;
|
|
|
|
loading: boolean;
|
|
|
|
loading1: boolean;
|
|
|
|
loading2: boolean;
|
|
|
|
loading3: boolean;
|
|
|
|
fileList: object[];
|
|
|
|
filename: string;
|
|
|
|
storeFilename: string;
|
|
|
|
deadFilename: string;
|
|
|
|
decorationFilename: string;
|
|
|
|
serverSwitch: number;
|
|
|
|
serverCategorize: object;
|
|
|
|
}
|
|
|
|
|
|
|
|
var timeInterval;
|
|
|
|
var timeInterval1;
|
|
|
|
var timeInterval2;
|
|
|
|
var timeInterval3;
|
|
|
|
export default defineComponent({
|
|
|
|
name: 'apiV1GameMangeCopyUnit',
|
|
|
|
setup() {
|
|
|
|
const state = reactive<TableDataState>({
|
|
|
|
serverSwitch: 0,
|
|
|
|
fileList: [],
|
|
|
|
baseURL: baseURL,
|
|
|
|
item: { copyShow: true, delShow: false, pwdShow: false, resourceShow: false },
|
|
|
|
tableData: {
|
|
|
|
data: {
|
|
|
|
SrcName: '',
|
|
|
|
SrcServer: '',
|
|
|
|
},
|
|
|
|
del: {
|
|
|
|
SrcName: '',
|
|
|
|
serverId: '',
|
|
|
|
password: '',
|
|
|
|
},
|
|
|
|
password: {
|
|
|
|
account: '',
|
|
|
|
serverId: '',
|
|
|
|
pwd: '',
|
|
|
|
},
|
|
|
|
resource: {
|
|
|
|
account: '',
|
|
|
|
},
|
|
|
|
fileNames: [],
|
|
|
|
downloadFiles: [],
|
|
|
|
},
|
|
|
|
servers: AllServerList,
|
|
|
|
disabled: true,
|
|
|
|
loading: false,
|
|
|
|
loading1: false,
|
|
|
|
loading2: false,
|
|
|
|
loading3: false,
|
|
|
|
filename: '',
|
|
|
|
storeFilename: '',
|
|
|
|
deadFilename: '',
|
|
|
|
decorationFilename: '',
|
|
|
|
serverCategorize: ServerCategorize,
|
|
|
|
});
|
|
|
|
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} 个文件`);
|
|
|
|
};
|
|
|
|
const handleChange = (files, fileList) => {
|
|
|
|
console.log('handleChange: ', files, fileList);
|
|
|
|
if (state.tableData.fileNames.indexOf(files.name) >= 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
warn(`当前限制选择 4 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
|
|
|
|
let name = files.name.toLowerCase();
|
|
|
|
if (name.includes('unit') ) {
|
|
|
|
state.tableData.data.filename = files.name;
|
|
|
|
} else if (name.includes('store') ) {
|
|
|
|
state.tableData.data.storeFilename = files.name;
|
|
|
|
} else if (name.includes('dead') ) {
|
|
|
|
state.tableData.data.deadFilename = files.name;
|
|
|
|
} else if (name.includes('decoration')) {
|
|
|
|
state.tableData.data.decorationFilename = files.name;
|
|
|
|
} else {
|
|
|
|
state.tableData.data.filename = files.name;
|
|
|
|
}
|
|
|
|
state.tableData.fileNames.push(files.name);
|
|
|
|
};
|
|
|
|
const beforeRemove = (file, fileList) => {
|
|
|
|
console.log('beforeRemove: ', file, fileList);
|
|
|
|
return confirm(`确定移除 ${file.name}? ${fileList.length}`);
|
|
|
|
};
|
|
|
|
const copyUnit = () => {
|
|
|
|
console.log('state.tableData.data: ', state.tableData.data);
|
|
|
|
state.loading = true;
|
|
|
|
state.loading1 = true;
|
|
|
|
state.loading2 = true;
|
|
|
|
state.loading3 = true;
|
|
|
|
state.disabled = false;
|
|
|
|
state.tableData.fileNames = [];
|
|
|
|
state.tableData.downloadFiles = [];
|
|
|
|
gameGMCopyUnit({
|
|
|
|
SrcName: state.tableData.data.SrcName,
|
|
|
|
SrcServer: state.tableData.data.SrcServer,
|
|
|
|
})
|
|
|
|
.then((res) => {
|
|
|
|
ElMessage.success('修改成功');
|
|
|
|
console.log('copy: ', res);
|
|
|
|
state.tableData.data.filename = res.data.filename;
|
|
|
|
state.tableData.data.storeFilename = res.data.storeFilename;
|
|
|
|
state.tableData.data.deadFilename = res.data.deadFilename;
|
|
|
|
state.tableData.data.decorationFilename = res.data.decorationFilename;
|
|
|
|
state.tableData.fileNames.push(res.data.filename);
|
|
|
|
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;
|
|
|
|
state.deadFilename = res.data.deadFilename;
|
|
|
|
state.decorationFilename = res.data.decorationFilename;
|
|
|
|
|
|
|
|
console.log('gameRandomGenerateCode: ', res, state.filename, state.storeFilename, state.deadFilename, state.decorationFilename);
|
|
|
|
timeInterval = setInterval(function () {
|
|
|
|
checkGiftExchangeExists();
|
|
|
|
}, 1000);
|
|
|
|
timeInterval1 = setInterval(function () {
|
|
|
|
checkGiftExchangeExists1();
|
|
|
|
}, 1000);
|
|
|
|
timeInterval2 = setInterval(function () {
|
|
|
|
checkGiftExchangeExists2();
|
|
|
|
}, 1000);
|
|
|
|
timeInterval3 = setInterval(function () {
|
|
|
|
checkGiftExchangeExists3();
|
|
|
|
}, 1000);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.catch(() => {
|
|
|
|
state.disabled = true;
|
|
|
|
})
|
|
|
|
.finally(() => {});
|
|
|
|
};
|
|
|
|
|
|
|
|
const updateUnit = () => {
|
|
|
|
console.log('state.tableData.data: ', state.tableData.data);
|
|
|
|
gameGMUpdateUnit({
|
|
|
|
filename: state.tableData.data.filename,
|
|
|
|
storeFilename: state.tableData.data.storeFilename,
|
|
|
|
deadFilename: state.tableData.data.deadFilename,
|
|
|
|
decorationFilename: state.tableData.data.decorationFilename,
|
|
|
|
DestName: state.tableData.data.DestName,
|
|
|
|
DestServer: state.tableData.data.DestServer,
|
|
|
|
})
|
|
|
|
.then((res) => {
|
|
|
|
ElMessage.success('修改成功');
|
|
|
|
console.log('update: ', res);
|
|
|
|
})
|
|
|
|
.finally(() => {});
|
|
|
|
};
|
|
|
|
const delAccount = () => {
|
|
|
|
ElMessageBox.prompt(`此操作将删除账号:“${state.tableData.del.SrcName}”,是否继续? 请输入密码`, '提示', {
|
|
|
|
confirmButtonText: '确认',
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
inputErrorMessage: 'Invalid password',
|
|
|
|
// type: 'warning',
|
|
|
|
}).then(({ value }) => {
|
|
|
|
if (value == 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
state.tableData.del.password = value;
|
|
|
|
console.log('state.tableData.data: ', state.tableData.del);
|
|
|
|
gameGMDelAccount(state.tableData.del)
|
|
|
|
.then(() => {
|
|
|
|
ElMessage.success('删除成功');
|
|
|
|
})
|
|
|
|
.finally(() => {});
|
|
|
|
});
|
|
|
|
};
|
|
|
|
const resetPwd = () => {
|
|
|
|
gameResetPwd(state.tableData.password)
|
|
|
|
.then(() => {
|
|
|
|
ElMessage.success('修改密码成功!');
|
|
|
|
})
|
|
|
|
.finally(() => {});
|
|
|
|
};
|
|
|
|
const clearResource = () => {
|
|
|
|
console.log('state.tableData.resource: ', state.tableData.resource);
|
|
|
|
gameGMClearResource(state.tableData.resource)
|
|
|
|
.then(() => {
|
|
|
|
ElMessage.success('删除成功');
|
|
|
|
})
|
|
|
|
.finally(() => {});
|
|
|
|
};
|
|
|
|
onMounted(() => {
|
|
|
|
// initTableData();
|
|
|
|
serverList().then((res) => {
|
|
|
|
state.servers = res;
|
|
|
|
// console.log(" server : ", state.servers);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
const checkGiftExchangeExists = () => {
|
|
|
|
giftExchangeExists({ file: state.filename }).then((response) => {
|
|
|
|
console.log('checkGiftExchangeExists', state.filename, response);
|
|
|
|
if (response.data.state == 1) {
|
|
|
|
clearInterval(timeInterval);
|
|
|
|
state.loading = false;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
const checkGiftExchangeExists1 = () => {
|
|
|
|
giftExchangeExists({ file: state.storeFilename }).then((response) => {
|
|
|
|
console.log('checkGiftExchangeExists1', state.storeFilename, response);
|
|
|
|
if (response.data.state == 1) {
|
|
|
|
clearInterval(timeInterval1);
|
|
|
|
state.loading1 = false;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
const checkGiftExchangeExists2 = () => {
|
|
|
|
giftExchangeExists({ file: state.deadFilename }).then((response) => {
|
|
|
|
console.log('checkGiftExchangeExists2', state.deadFilename, response);
|
|
|
|
if (response.data.state == 1) {
|
|
|
|
clearInterval(timeInterval2);
|
|
|
|
state.loading2 = false;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
const checkGiftExchangeExists3 = () => {
|
|
|
|
giftExchangeExists({ file: state.decorationFilename }).then((response) => {
|
|
|
|
console.log('checkGiftExchangeExists3', state.decorationFilename, response);
|
|
|
|
if (response.data.state == 1) {
|
|
|
|
clearInterval(timeInterval3);
|
|
|
|
state.loading3 = false;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
const onDownload = () => {
|
|
|
|
state.tableData.downloadFiles.forEach((url, i) => {
|
|
|
|
setTimeout(function () {
|
|
|
|
download(url);
|
|
|
|
}, i * 1000);
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
const download = (file: string) => {
|
|
|
|
if (file) {
|
|
|
|
console.log('download', file);
|
|
|
|
|
|
|
|
let link = document.createElement('a');
|
|
|
|
link.href = baseURL + 'download_file?filename=' + file;
|
|
|
|
link.setAttribute('download', ''); // 或者设置为具体的下载文件名
|
|
|
|
link.style.display = 'none';
|
|
|
|
document.body.appendChild(link);
|
|
|
|
link.click();
|
|
|
|
document.body.removeChild(link);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
// 打开修改字典弹窗
|
|
|
|
const switchServer = () => {
|
|
|
|
return gSwitchServer(state.serverSwitch, state.servers);
|
|
|
|
};
|
|
|
|
return {
|
|
|
|
switchServer,
|
|
|
|
onDownload,
|
|
|
|
handleRemove,
|
|
|
|
handleChange,
|
|
|
|
handlePreview,
|
|
|
|
handleExceed,
|
|
|
|
beforeRemove,
|
|
|
|
resetPwd,
|
|
|
|
copyUnit,
|
|
|
|
updateUnit,
|
|
|
|
delAccount,
|
|
|
|
clearResource,
|
|
|
|
...toRefs(state),
|
|
|
|
};
|
|
|
|
},
|
|
|
|
});
|
|
|
|
</script>
|