6 changed files with 388 additions and 37 deletions
@ -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> |
||||
@ -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…
Reference in new issue