13 changed files with 338 additions and 281 deletions
@ -0,0 +1,58 @@ |
|||||||
|
import request from '/@/utils/request'; |
||||||
|
|
||||||
|
|
||||||
|
export function gameGetLoginUrl(params: object) { |
||||||
|
return request({ |
||||||
|
url: '/api/v1/game/loginUrl/getLoginUrl', |
||||||
|
method: 'post', |
||||||
|
params: params, |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
export function gameGetAllLoginUrl(params: object) { |
||||||
|
return request({ |
||||||
|
url: '/api/v1/game/loginUrl/getAllLoginUrl', |
||||||
|
method: 'post', |
||||||
|
params: params, |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
export function gameGetAllCcdUrl(params: object) { |
||||||
|
return request({ |
||||||
|
url: '/api/v1/game/loginUrl/getAllCcdUrl', |
||||||
|
method: 'post', |
||||||
|
params: params, |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
export function gameGetAllChannel(params: object) { |
||||||
|
return request({ |
||||||
|
url: '/api/v1/game/loginUrl/getAllChannel', |
||||||
|
method: 'post', |
||||||
|
params: params, |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
export function gameAddLoginUrl(params: object) { |
||||||
|
return request({ |
||||||
|
url: '/api/v1/game/loginUrl/addLoginUrl', |
||||||
|
method: 'post', |
||||||
|
params: params, |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
export function gameDelLoginUrl(params: object) { |
||||||
|
return request({ |
||||||
|
url: '/api/v1/game/loginUrl/delLoginUrl', |
||||||
|
method: 'post', |
||||||
|
params: params, |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
export function gameSendMsg(data: object) { |
||||||
|
return request({ |
||||||
|
url: '/api/v1/game/loginUrl/sendMsg', |
||||||
|
method: 'post', |
||||||
|
data: data, |
||||||
|
}); |
||||||
|
} |
@ -1,109 +1,129 @@ |
|||||||
<template> |
<template> |
||||||
<div> |
<div> |
||||||
<el-dialog :title="isNew?'新增服务器':'修改服务器'" v-model="isShowDialog" width="769px"> |
<el-dialog :title="isNew ? '新增服务器' : '修改服务器'" v-model="isShowDialog" width="769px"> |
||||||
<el-form label-width="90px" label-position="right"> |
<el-form label-width="90px" label-position="right"> |
||||||
<el-form-item label="服务器地址" prop="serverId"> |
<el-form-item label="服务器地址" prop="serverId"> |
||||||
<el-input v-model="queryParams.host" placeholder="请输入服务器地址" size="large" style="width: 220px"/> |
<el-input v-model="queryParams.host" placeholder="请输入服务器地址" size="large" style="width: 220px" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="服务器端口" prop="port"> |
<el-form-item label="服务器端口" prop="port"> |
||||||
<el-input v-model="queryParams.port" placeholder="请输入服务器端口" size="large" style="width: 220px"/> |
<el-input v-model="queryParams.port" placeholder="请输入服务器端口" size="large" style="width: 220px" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="服务器状态" prop="state"> |
<el-form-item label="服务器状态" prop="state"> |
||||||
<el-select v-model="queryParams.state" class="m-2" placeholder="选择服务器状态"> |
<el-select v-model="queryParams.state" class="m-2" placeholder="选择服务器状态"> |
||||||
<el-option label="正常" :value="1"/> |
<el-option label="正常" :value="1" /> |
||||||
<el-option label="维护" :value="2"/> |
<el-option label="维护" :value="2" /> |
||||||
<el-option label="白名单" :value="3"/> |
<el-option label="白名单" :value="3" /> |
||||||
</el-select> |
</el-select> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="是否推荐" prop="recommend"> |
<el-form-item label="是否推荐" prop="recommend"> |
||||||
<el-select v-model="queryParams.recommend" class="m-2" placeholder="选择推荐"> |
<el-select v-model="queryParams.recommend" class="m-2" placeholder="选择推荐"> |
||||||
<el-option label="推荐" :value="1"/> |
<el-option label="推荐" :value="1" /> |
||||||
<el-option label="不推荐" :value="0"/> |
<el-option label="不推荐" :value="0" /> |
||||||
</el-select> |
</el-select> |
||||||
</el-form-item> |
</el-form-item> |
||||||
</el-form> |
</el-form> |
||||||
<template #footer> |
<template #footer> |
||||||
<span class="dialog-footer"> |
<span class="dialog-footer"> |
||||||
<el-button @click="onCancel" size="default">取 消</el-button> |
<el-button @click="onCancel" size="default">取 消</el-button> |
||||||
<el-button size="default" type="primary" class="ml10" @click="addItem"> |
<el-button size="default" type="primary" class="ml10" @click="addItem"> |
||||||
<el-icon> |
<el-icon> |
||||||
<ele-EditPen/> |
<ele-EditPen /> |
||||||
</el-icon> |
</el-icon> |
||||||
<div v-if="isNew">新增</div> |
<div v-if="isNew">新增</div> |
||||||
<div v-else>修改</div> |
<div v-else>修改</div> |
||||||
</el-button> |
</el-button> |
||||||
</span> |
</span> |
||||||
</template> |
</template> |
||||||
</el-dialog> |
</el-dialog> |
||||||
</div> |
</div> |
||||||
</template> |
</template> |
||||||
|
|
||||||
<script lang="ts"> |
<script lang="ts"> |
||||||
import {reactive, toRefs, defineComponent} from 'vue'; |
import { reactive, toRefs, defineComponent } from 'vue'; |
||||||
import {ElLoading} from "element-plus"; |
import { ElLoading } from 'element-plus'; |
||||||
import {gameAddLoginUrl} from "/@/api/game"; |
import { gameAddLoginUrl, gameSendMsg } from '/@/api/game/loginUrl'; |
||||||
import {allChannelList} from "/@/utils/game"; |
import { allChannelList } from '/@/utils/game'; |
||||||
|
import { LoginUrlState } from '/@/api/common/consts'; |
||||||
|
|
||||||
interface TableDataState { |
interface TableDataState { |
||||||
isShowDialog: boolean, |
isShowDialog: boolean; |
||||||
isNew: boolean, |
isNew: boolean; |
||||||
queryParams: object; |
queryParams: object; |
||||||
channels: object[]; |
channels: object[]; |
||||||
} |
} |
||||||
|
|
||||||
export default defineComponent({ |
export default defineComponent({ |
||||||
name: 'systemEditDicData', |
name: 'systemEditDicData', |
||||||
setup(prop, {emit}) { |
setup(prop, { emit }) { |
||||||
const state = reactive<TableDataState>({ |
const state = reactive<TableDataState>({ |
||||||
isShowDialog: false, |
isShowDialog: false, |
||||||
isNew: false, |
isNew: false, |
||||||
queryParams: {}, |
queryParams: {}, |
||||||
channels: [], |
channels: [], |
||||||
}); |
}); |
||||||
// 打开弹窗 |
// 打开弹窗 |
||||||
const openDialog = (row: any | null) => { |
const openDialog = (row: any | null) => { |
||||||
state.isShowDialog = true; |
state.isShowDialog = true; |
||||||
state.isNew = !row; |
state.isNew = !row; |
||||||
state.queryParams = row || {}; |
state.queryParams = row || {}; |
||||||
console.log("openDialog: >>>>>>>>>>>", row) |
console.log('openDialog: >>>>>>>>>>>', row); |
||||||
allChannelList().then(res => { |
allChannelList().then((res) => { |
||||||
state.channels = res; |
state.channels = res; |
||||||
}) |
}); |
||||||
}; |
}; |
||||||
|
|
||||||
// 关闭弹窗 |
|
||||||
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)', |
|
||||||
}); |
|
||||||
|
|
||||||
gameAddLoginUrl(state.queryParams).then((res) => { |
// 关闭弹窗 |
||||||
console.log(res); |
const closeDialog = () => { |
||||||
}).finally(function () { |
state.isShowDialog = false; |
||||||
loading.close(); |
}; |
||||||
emit('countList') |
// 取消 |
||||||
closeDialog(); |
const onCancel = () => { |
||||||
}); |
closeDialog(); |
||||||
|
}; |
||||||
|
// 新增 |
||||||
|
const addItem = () => { |
||||||
|
const loading = ElLoading.service({ |
||||||
|
lock: true, |
||||||
|
text: 'Loading', |
||||||
|
background: 'rgba(0, 0, 0, 0.7)', |
||||||
|
}); |
||||||
|
|
||||||
}; |
gameAddLoginUrl(state.queryParams) |
||||||
return { |
.then((res) => { |
||||||
openDialog, |
console.log(res); |
||||||
closeDialog, |
}) |
||||||
onCancel, |
.finally(function () { |
||||||
addItem, |
loading.close(); |
||||||
...toRefs(state), |
emit('countList'); |
||||||
}; |
closeDialog(); |
||||||
}, |
}); |
||||||
|
sendMsg(); |
||||||
|
}; |
||||||
|
const sendMsg = () => { |
||||||
|
let content = ''; |
||||||
|
let server = '<' + state.queryParams.id + '区' + state.queryParams.remark + '>'; |
||||||
|
if (state.queryParams.state == LoginUrlState.NORMAL) { |
||||||
|
content = server + '开服了'; |
||||||
|
} |
||||||
|
if (state.queryParams.state == LoginUrlState.MAINTENANCE) { |
||||||
|
content = server + '开始维护'; |
||||||
|
} |
||||||
|
if (state.queryParams.state == LoginUrlState.WHITE_LIST) { |
||||||
|
content = server + '开启白名单'; |
||||||
|
} |
||||||
|
gameSendMsg({ title: content, subtitle: '', content: "服务器更新" }) |
||||||
|
.then((res) => { |
||||||
|
console.log(res); |
||||||
|
}) |
||||||
|
.finally(function () {}); |
||||||
|
}; |
||||||
|
return { |
||||||
|
openDialog, |
||||||
|
closeDialog, |
||||||
|
onCancel, |
||||||
|
addItem, |
||||||
|
...toRefs(state), |
||||||
|
}; |
||||||
|
}, |
||||||
}); |
}); |
||||||
</script> |
</script> |
||||||
|
@ -1,118 +1,124 @@ |
|||||||
<template> |
<template> |
||||||
<div> |
<div> |
||||||
<el-dialog :title="isNew?'新增服务器':'修改服务器'" v-model="isShowDialog" width="769px"> |
<el-dialog :title="isNew ? '新增服务器' : '修改服务器'" v-model="isShowDialog" width="769px"> |
||||||
<el-form label-width="90px" label-position="right"> |
<el-form label-width="90px" label-position="right"> |
||||||
<el-form-item label="数据库地址" prop="gameDbUrl"> |
<el-form-item label="数据库地址" prop="gameDbUrl"> |
||||||
<el-input v-model="queryParams.gameDbUrl" placeholder="请输入数据库地址" size="large" style="width: 220px"/> |
<el-input v-model="queryParams.gameDbUrl" placeholder="请输入数据库地址" size="large" style="width: 220px" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="数据库名称" prop="gameDbName"> |
<el-form-item label="数据库名称" prop="gameDbName"> |
||||||
<el-input v-model="queryParams.gameDbName" placeholder="请输入数据库名称" size="large" style="width: 220px"/> |
<el-input v-model="queryParams.gameDbName" placeholder="请输入数据库名称" size="large" style="width: 220px" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="内网地址" prop="innerIp"> |
<el-form-item label="内网地址" prop="innerIp"> |
||||||
<el-input v-model="queryParams.innerIp" placeholder="请输入内网地址" size="large" style="width: 220px"/> |
<el-input v-model="queryParams.innerIp" placeholder="请输入内网地址" size="large" style="width: 220px" /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="开服日期" prop="startTime"> |
<el-form-item label="开服日期" prop="startTime"> |
||||||
<el-date-picker type="datetime" size="large" v-model="queryParams.createTime" format="YYYY-MM-DD HH:mm:ss" |
<el-date-picker |
||||||
value-format="YYYY-MM-DD HH:mm:ss"/> |
type="datetime" |
||||||
</el-form-item> |
size="large" |
||||||
<el-form-item label="平台" prop="platform"> |
v-model="queryParams.createTime" |
||||||
<el-select v-model="queryParams.platform" class="m-2" placeholder="选择服务器状态"> |
format="YYYY-MM-DD HH:mm:ss" |
||||||
<el-option label="ios" :value="1"/> |
value-format="YYYY-MM-DD HH:mm:ss" |
||||||
<el-option label="安卓" :value="2"/> |
/> |
||||||
<el-option label="先行服" :value="3"/> |
</el-form-item> |
||||||
</el-select> |
<el-form-item label="平台" prop="platform"> |
||||||
</el-form-item> |
<el-select v-model="queryParams.platform" class="m-2" placeholder="选择服务器状态"> |
||||||
<el-form-item label="难度" prop="difficulty"> |
<el-option label="ios" :value="1" /> |
||||||
<el-select v-model="queryParams.difficulty" class="m-2" placeholder="选择推荐"> |
<el-option label="安卓" :value="2" /> |
||||||
<el-option label="普通" :value="1"/> |
<el-option label="先行服" :value="3" /> |
||||||
<el-option label="困难" :value="2"/> |
</el-select> |
||||||
</el-select> |
</el-form-item> |
||||||
</el-form-item> |
<el-form-item label="难度" prop="difficulty"> |
||||||
<el-form-item label="备注" prop="remark"> |
<el-select v-model="queryParams.difficulty" class="m-2" placeholder="选择推荐"> |
||||||
<el-input v-model="queryParams.remark" placeholder="请输入内网地址" size="large" style="width: 220px"/> |
<el-option label="普通" :value="1" /> |
||||||
</el-form-item> |
<el-option label="困难" :value="2" /> |
||||||
</el-form> |
</el-select> |
||||||
<template #footer> |
</el-form-item> |
||||||
|
<el-form-item label="备注" prop="remark"> |
||||||
|
<el-input v-model="queryParams.remark" placeholder="请输入内网地址" size="large" style="width: 220px" /> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<template #footer> |
||||||
<span class="dialog-footer"> |
<span class="dialog-footer"> |
||||||
<el-button @click="onCancel" size="default">取 消</el-button> |
<el-button @click="onCancel" size="default">取 消</el-button> |
||||||
<el-button size="default" type="primary" class="ml10" @click="addItem"> |
<el-button size="default" type="primary" class="ml10" @click="addItem"> |
||||||
<el-icon> |
<el-icon> |
||||||
<ele-EditPen/> |
<ele-EditPen /> |
||||||
</el-icon> |
</el-icon> |
||||||
<div v-if="isNew">新增</div> |
<div v-if="isNew">新增</div> |
||||||
<div v-else>修改</div> |
<div v-else>修改</div> |
||||||
</el-button> |
</el-button> |
||||||
</span> |
</span> |
||||||
</template> |
</template> |
||||||
</el-dialog> |
</el-dialog> |
||||||
</div> |
</div> |
||||||
</template> |
</template> |
||||||
|
|
||||||
<script lang="ts"> |
<script lang="ts"> |
||||||
import {reactive, toRefs, defineComponent} from 'vue'; |
import { reactive, toRefs, defineComponent } from 'vue'; |
||||||
import {ElLoading} from "element-plus"; |
import { ElLoading } from 'element-plus'; |
||||||
import {gameAddLoginUrl, gameAddServerConfig} from "/@/api/game"; |
import { gameAddServerConfig } from '/@/api/game'; |
||||||
import {allChannelList} from "/@/utils/game"; |
import { allChannelList } from '/@/utils/game'; |
||||||
|
|
||||||
interface TableDataState { |
interface TableDataState { |
||||||
isShowDialog: boolean, |
isShowDialog: boolean; |
||||||
isNew: boolean, |
isNew: boolean; |
||||||
queryParams: object; |
queryParams: object; |
||||||
channels: object[]; |
channels: object[]; |
||||||
} |
} |
||||||
|
|
||||||
export default defineComponent({ |
export default defineComponent({ |
||||||
name: 'gameServerConfigEdit', |
name: 'gameServerConfigEdit', |
||||||
setup(prop, {emit}) { |
setup(prop, { emit }) { |
||||||
const state = reactive<TableDataState>({ |
const state = reactive<TableDataState>({ |
||||||
isShowDialog: false, |
isShowDialog: false, |
||||||
isNew: false, |
isNew: false, |
||||||
queryParams: {}, |
queryParams: {}, |
||||||
channels: [], |
channels: [], |
||||||
}); |
}); |
||||||
// 打开弹窗 |
// 打开弹窗 |
||||||
const openDialog = (row: any | null) => { |
const openDialog = (row: any | null) => { |
||||||
state.isShowDialog = true; |
state.isShowDialog = true; |
||||||
state.isNew = !row; |
state.isNew = !row; |
||||||
state.queryParams = row || {}; |
state.queryParams = row || {}; |
||||||
console.log("openDialog: >>>>>>>>>>>", row) |
console.log('openDialog: >>>>>>>>>>>', row); |
||||||
allChannelList().then(res => { |
allChannelList().then((res) => { |
||||||
state.channels = res; |
state.channels = res; |
||||||
}) |
}); |
||||||
}; |
}; |
||||||
|
|
||||||
// 关闭弹窗 |
// 关闭弹窗 |
||||||
const closeDialog = () => { |
const closeDialog = () => { |
||||||
state.isShowDialog = false; |
state.isShowDialog = false; |
||||||
}; |
}; |
||||||
// 取消 |
// 取消 |
||||||
const onCancel = () => { |
const onCancel = () => { |
||||||
closeDialog(); |
closeDialog(); |
||||||
}; |
}; |
||||||
// 新增 |
// 新增 |
||||||
const addItem = () => { |
const addItem = () => { |
||||||
const loading = ElLoading.service({ |
const loading = ElLoading.service({ |
||||||
lock: true, |
lock: true, |
||||||
text: 'Loading', |
text: 'Loading', |
||||||
background: 'rgba(0, 0, 0, 0.7)', |
background: 'rgba(0, 0, 0, 0.7)', |
||||||
}); |
}); |
||||||
|
|
||||||
gameAddServerConfig(state.queryParams).then((res) => { |
gameAddServerConfig(state.queryParams) |
||||||
console.log(res); |
.then((res) => { |
||||||
}).finally(function () { |
console.log(res); |
||||||
loading.close(); |
}) |
||||||
emit('countList') |
.finally(function () { |
||||||
closeDialog(); |
loading.close(); |
||||||
}); |
emit('countList'); |
||||||
|
closeDialog(); |
||||||
}; |
}); |
||||||
return { |
}; |
||||||
openDialog, |
return { |
||||||
closeDialog, |
openDialog, |
||||||
onCancel, |
closeDialog, |
||||||
addItem, |
onCancel, |
||||||
...toRefs(state), |
addItem, |
||||||
}; |
...toRefs(state), |
||||||
}, |
}; |
||||||
|
}, |
||||||
}); |
}); |
||||||
</script> |
</script> |
||||||
|
Loading…
Reference in new issue