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