74 changed files with 16102 additions and 5718 deletions
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,9 @@
|
||||
[ |
||||
{ |
||||
"Id": 100, |
||||
"Level": 674, |
||||
"ItemId": 210000, |
||||
"Max": 100000, |
||||
"Income": 100 |
||||
} |
||||
] |
@ -0,0 +1,146 @@
|
||||
[ |
||||
{ |
||||
"Id": 1010, |
||||
"Name": "高级守卫", |
||||
"BodyLv": 10, |
||||
"SkillLv": 5, |
||||
"GemLv": 3, |
||||
"HighRank": 1, |
||||
"LowRank": 5, |
||||
"WarriorList": [ |
||||
7, |
||||
8, |
||||
3 |
||||
], |
||||
"EquipList": [ |
||||
10630, |
||||
10730, |
||||
10530 |
||||
] |
||||
}, |
||||
{ |
||||
"Id": 1020, |
||||
"Name": "中级守卫", |
||||
"BodyLv": 6, |
||||
"SkillLv": 4, |
||||
"GemLv": 2, |
||||
"HighRank": 6, |
||||
"LowRank": 10, |
||||
"WarriorList": [ |
||||
4, |
||||
5, |
||||
3 |
||||
], |
||||
"EquipList": [ |
||||
10120, |
||||
10420, |
||||
10520 |
||||
] |
||||
}, |
||||
{ |
||||
"Id": 1030, |
||||
"Name": "初级守卫", |
||||
"BodyLv": 2, |
||||
"SkillLv": 3, |
||||
"GemLv": 2, |
||||
"HighRank": 11, |
||||
"LowRank": 50, |
||||
"WarriorList": [ |
||||
4, |
||||
3, |
||||
2 |
||||
], |
||||
"EquipList": [ |
||||
10120, |
||||
10520, |
||||
10220 |
||||
] |
||||
}, |
||||
{ |
||||
"Id": 1040, |
||||
"Name": "高级幻影", |
||||
"BodyLv": 2, |
||||
"SkillLv": 2, |
||||
"GemLv": 1, |
||||
"HighRank": 51, |
||||
"LowRank": 100, |
||||
"WarriorList": [ |
||||
4, |
||||
1, |
||||
2 |
||||
], |
||||
"EquipList": [ |
||||
10110, |
||||
10010, |
||||
10210 |
||||
] |
||||
}, |
||||
{ |
||||
"Id": 1050, |
||||
"Name": "中级幻影", |
||||
"BodyLv": 1, |
||||
"SkillLv": 1, |
||||
"GemLv": 1, |
||||
"HighRank": 101, |
||||
"LowRank": 200, |
||||
"WarriorList": [ |
||||
1, |
||||
2, |
||||
6 |
||||
], |
||||
"EquipList": [ |
||||
10010, |
||||
10210, |
||||
10310 |
||||
] |
||||
}, |
||||
{ |
||||
"Id": 1060, |
||||
"Name": "低级幻影", |
||||
"BodyLv": 1, |
||||
"SkillLv": 1, |
||||
"GemLv": 0, |
||||
"HighRank": 201, |
||||
"LowRank": 300, |
||||
"WarriorList": [ |
||||
1, |
||||
2 |
||||
], |
||||
"EquipList": [ |
||||
10000, |
||||
10200 |
||||
] |
||||
}, |
||||
{ |
||||
"Id": 1070, |
||||
"Name": "低级幻影", |
||||
"BodyLv": 1, |
||||
"SkillLv": 1, |
||||
"GemLv": 0, |
||||
"HighRank": 301, |
||||
"LowRank": 400, |
||||
"WarriorList": [ |
||||
1, |
||||
2 |
||||
], |
||||
"EquipList": [ |
||||
10000, |
||||
10200 |
||||
] |
||||
}, |
||||
{ |
||||
"Id": 1080, |
||||
"Name": "脆弱幻影", |
||||
"BodyLv": 1, |
||||
"SkillLv": 1, |
||||
"GemLv": 0, |
||||
"HighRank": 401, |
||||
"LowRank": 500, |
||||
"WarriorList": [ |
||||
1 |
||||
], |
||||
"EquipList": [ |
||||
10000 |
||||
] |
||||
} |
||||
] |
@ -0,0 +1,65 @@
|
||||
[ |
||||
{ |
||||
"Id": 1010, |
||||
"HighRank": 1, |
||||
"LowRank": 5, |
||||
"CoinReward": 50000, |
||||
"DailyReward": 10000 |
||||
}, |
||||
{ |
||||
"Id": 1020, |
||||
"HighRank": 6, |
||||
"LowRank": 10, |
||||
"CoinReward": 900, |
||||
"DailyReward": 5000 |
||||
}, |
||||
{ |
||||
"Id": 1030, |
||||
"HighRank": 11, |
||||
"LowRank": 50, |
||||
"CoinReward": 80, |
||||
"DailyReward": 4000 |
||||
}, |
||||
{ |
||||
"Id": 1040, |
||||
"HighRank": 51, |
||||
"LowRank": 100, |
||||
"CoinReward": 70, |
||||
"DailyReward": 3000 |
||||
}, |
||||
{ |
||||
"Id": 1050, |
||||
"HighRank": 101, |
||||
"LowRank": 200, |
||||
"CoinReward": 60, |
||||
"DailyReward": 2000 |
||||
}, |
||||
{ |
||||
"Id": 1060, |
||||
"HighRank": 201, |
||||
"LowRank": 300, |
||||
"CoinReward": 50, |
||||
"DailyReward": 1000 |
||||
}, |
||||
{ |
||||
"Id": 1070, |
||||
"HighRank": 301, |
||||
"LowRank": 400, |
||||
"CoinReward": 40, |
||||
"DailyReward": 500 |
||||
}, |
||||
{ |
||||
"Id": 1080, |
||||
"HighRank": 401, |
||||
"LowRank": 500, |
||||
"CoinReward": 6, |
||||
"DailyReward": 100 |
||||
}, |
||||
{ |
||||
"Id": 1090, |
||||
"HighRank": 500, |
||||
"LowRank": 100000, |
||||
"CoinReward": 0, |
||||
"DailyReward": 0 |
||||
} |
||||
] |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,121 @@
|
||||
[ |
||||
{ |
||||
"Id": 1, |
||||
"SkinName": "榕树皮肤", |
||||
"SkinPrefab": [ |
||||
"ResourceSkin_1_1", |
||||
"ResourceSkin_1_2", |
||||
"ResourceSkin_1_3", |
||||
"ResourceSkin_1_4" |
||||
], |
||||
"Picture": [ |
||||
"ResourceSkin_1_1", |
||||
"ResourceSkin_1_2", |
||||
"ResourceSkin_1_3", |
||||
"ResourceSkin_1_4" |
||||
], |
||||
"GetMethod": "暂未开放" |
||||
}, |
||||
{ |
||||
"Id": 2, |
||||
"SkinName": "桢楠皮肤", |
||||
"SkinPrefab": [ |
||||
"ResourceSkin_2_1", |
||||
"ResourceSkin_2_2", |
||||
"ResourceSkin_2_3", |
||||
"ResourceSkin_2_4" |
||||
], |
||||
"Picture": [ |
||||
"ResourceSkin_2_1", |
||||
"ResourceSkin_2_2", |
||||
"ResourceSkin_2_3", |
||||
"ResourceSkin_2_4" |
||||
], |
||||
"GetMethod": "暂未开放" |
||||
}, |
||||
{ |
||||
"Id": 3, |
||||
"SkinName": "桃树皮肤", |
||||
"SkinPrefab": [ |
||||
"ResourceSkin_3_1", |
||||
"ResourceSkin_3_2", |
||||
"ResourceSkin_3_3", |
||||
"ResourceSkin_3_4" |
||||
], |
||||
"Picture": [ |
||||
"ResourceSkin_3_1", |
||||
"ResourceSkin_3_2", |
||||
"ResourceSkin_3_3", |
||||
"ResourceSkin_3_4" |
||||
], |
||||
"GetMethod": "暂未开放" |
||||
}, |
||||
{ |
||||
"Id": 4, |
||||
"SkinName": "松树皮肤", |
||||
"SkinPrefab": [ |
||||
"ResourceSkin_4_1", |
||||
"ResourceSkin_4_2", |
||||
"ResourceSkin_4_3", |
||||
"ResourceSkin_4_4" |
||||
], |
||||
"Picture": [ |
||||
"ResourceSkin_4_1", |
||||
"ResourceSkin_4_2", |
||||
"ResourceSkin_4_3", |
||||
"ResourceSkin_4_4" |
||||
], |
||||
"GetMethod": "暂未开放" |
||||
}, |
||||
{ |
||||
"Id": 5, |
||||
"SkinName": "桑树皮肤", |
||||
"SkinPrefab": [ |
||||
"ResourceSkin_5_1", |
||||
"ResourceSkin_5_2", |
||||
"ResourceSkin_5_3", |
||||
"ResourceSkin_5_4" |
||||
], |
||||
"Picture": [ |
||||
"ResourceSkin_5_1", |
||||
"ResourceSkin_5_2", |
||||
"ResourceSkin_5_3", |
||||
"ResourceSkin_5_4" |
||||
], |
||||
"GetMethod": "暂未开放" |
||||
}, |
||||
{ |
||||
"Id": 6, |
||||
"SkinName": "柳树皮肤", |
||||
"SkinPrefab": [ |
||||
"ResourceSkin_6_1", |
||||
"ResourceSkin_6_2", |
||||
"ResourceSkin_6_3", |
||||
"ResourceSkin_6_4" |
||||
], |
||||
"Picture": [ |
||||
"ResourceSkin_6_1", |
||||
"ResourceSkin_6_2", |
||||
"ResourceSkin_6_3", |
||||
"ResourceSkin_6_4" |
||||
], |
||||
"GetMethod": "暂未开放" |
||||
}, |
||||
{ |
||||
"Id": 7, |
||||
"SkinName": "梨树皮肤", |
||||
"SkinPrefab": [ |
||||
"ResourceSkin_7_1", |
||||
"ResourceSkin_7_2", |
||||
"ResourceSkin_7_3", |
||||
"ResourceSkin_7_4" |
||||
], |
||||
"Picture": [ |
||||
"ResourceSkin_7_1", |
||||
"ResourceSkin_7_2", |
||||
"ResourceSkin_7_3", |
||||
"ResourceSkin_7_4" |
||||
], |
||||
"GetMethod": "暂未开放" |
||||
} |
||||
] |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,212 @@
|
||||
[ |
||||
{ |
||||
"Id": 1, |
||||
"GroupId": 1, |
||||
"DayNumber": 1, |
||||
"ItemId": 7308, |
||||
"ItemNumber": 5 |
||||
}, |
||||
{ |
||||
"Id": 2, |
||||
"GroupId": 1, |
||||
"DayNumber": 2, |
||||
"ItemId": 7321, |
||||
"ItemNumber": 3 |
||||
}, |
||||
{ |
||||
"Id": 3, |
||||
"GroupId": 1, |
||||
"DayNumber": 3, |
||||
"ItemId": 4154, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 4, |
||||
"GroupId": 1, |
||||
"DayNumber": 4, |
||||
"ItemId": 4153, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 5, |
||||
"GroupId": 1, |
||||
"DayNumber": 5, |
||||
"ItemId": 4155, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 6, |
||||
"GroupId": 1, |
||||
"DayNumber": 6, |
||||
"ItemId": 7230, |
||||
"ItemNumber": 5 |
||||
}, |
||||
{ |
||||
"Id": 7, |
||||
"GroupId": 1, |
||||
"DayNumber": 7, |
||||
"ItemId": 701, |
||||
"ItemNumber": 5 |
||||
}, |
||||
{ |
||||
"Id": 8, |
||||
"GroupId": 1, |
||||
"DayNumber": 8, |
||||
"ItemId": 7308, |
||||
"ItemNumber": 6 |
||||
}, |
||||
{ |
||||
"Id": 9, |
||||
"GroupId": 1, |
||||
"DayNumber": 9, |
||||
"ItemId": 7321, |
||||
"ItemNumber": 3 |
||||
}, |
||||
{ |
||||
"Id": 10, |
||||
"GroupId": 1, |
||||
"DayNumber": 10, |
||||
"ItemId": 4154, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 11, |
||||
"GroupId": 1, |
||||
"DayNumber": 11, |
||||
"ItemId": 4153, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 12, |
||||
"GroupId": 1, |
||||
"DayNumber": 12, |
||||
"ItemId": 4155, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 13, |
||||
"GroupId": 1, |
||||
"DayNumber": 13, |
||||
"ItemId": 7230, |
||||
"ItemNumber": 6 |
||||
}, |
||||
{ |
||||
"Id": 14, |
||||
"GroupId": 1, |
||||
"DayNumber": 14, |
||||
"ItemId": 701, |
||||
"ItemNumber": 6 |
||||
}, |
||||
{ |
||||
"Id": 15, |
||||
"GroupId": 1, |
||||
"DayNumber": 15, |
||||
"ItemId": 7308, |
||||
"ItemNumber": 7 |
||||
}, |
||||
{ |
||||
"Id": 16, |
||||
"GroupId": 1, |
||||
"DayNumber": 16, |
||||
"ItemId": 7321, |
||||
"ItemNumber": 3 |
||||
}, |
||||
{ |
||||
"Id": 17, |
||||
"GroupId": 1, |
||||
"DayNumber": 17, |
||||
"ItemId": 4154, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 18, |
||||
"GroupId": 1, |
||||
"DayNumber": 18, |
||||
"ItemId": 4153, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 19, |
||||
"GroupId": 1, |
||||
"DayNumber": 19, |
||||
"ItemId": 4155, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 20, |
||||
"GroupId": 1, |
||||
"DayNumber": 20, |
||||
"ItemId": 7230, |
||||
"ItemNumber": 7 |
||||
}, |
||||
{ |
||||
"Id": 21, |
||||
"GroupId": 1, |
||||
"DayNumber": 21, |
||||
"ItemId": 701, |
||||
"ItemNumber": 7 |
||||
}, |
||||
{ |
||||
"Id": 22, |
||||
"GroupId": 1, |
||||
"DayNumber": 22, |
||||
"ItemId": 7308, |
||||
"ItemNumber": 8 |
||||
}, |
||||
{ |
||||
"Id": 23, |
||||
"GroupId": 1, |
||||
"DayNumber": 23, |
||||
"ItemId": 7321, |
||||
"ItemNumber": 3 |
||||
}, |
||||
{ |
||||
"Id": 24, |
||||
"GroupId": 1, |
||||
"DayNumber": 24, |
||||
"ItemId": 4154, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 25, |
||||
"GroupId": 1, |
||||
"DayNumber": 25, |
||||
"ItemId": 4153, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 26, |
||||
"GroupId": 1, |
||||
"DayNumber": 26, |
||||
"ItemId": 4155, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 27, |
||||
"GroupId": 1, |
||||
"DayNumber": 27, |
||||
"ItemId": 7230, |
||||
"ItemNumber": 8 |
||||
}, |
||||
{ |
||||
"Id": 28, |
||||
"GroupId": 1, |
||||
"DayNumber": 28, |
||||
"ItemId": 701, |
||||
"ItemNumber": 8 |
||||
}, |
||||
{ |
||||
"Id": 29, |
||||
"GroupId": 1, |
||||
"DayNumber": 29, |
||||
"ItemId": 7314, |
||||
"ItemNumber": 1 |
||||
}, |
||||
{ |
||||
"Id": 30, |
||||
"GroupId": 1, |
||||
"DayNumber": 30, |
||||
"ItemId": 131, |
||||
"ItemNumber": 10 |
||||
} |
||||
] |
@ -0,0 +1,32 @@
|
||||
[ |
||||
{ |
||||
"Id": 1, |
||||
"GroupId": 1, |
||||
"NeededPoints": 7, |
||||
"GiftContents": 110000 |
||||
}, |
||||
{ |
||||
"Id": 2, |
||||
"GroupId": 1, |
||||
"NeededPoints": 14, |
||||
"GiftContents": 110001 |
||||
}, |
||||
{ |
||||
"Id": 3, |
||||
"GroupId": 1, |
||||
"NeededPoints": 21, |
||||
"GiftContents": 110002 |
||||
}, |
||||
{ |
||||
"Id": 4, |
||||
"GroupId": 1, |
||||
"NeededPoints": 28, |
||||
"GiftContents": 110003 |
||||
}, |
||||
{ |
||||
"Id": 5, |
||||
"GroupId": 1, |
||||
"NeededPoints": 30, |
||||
"GiftContents": 110004 |
||||
} |
||||
] |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,114 @@
|
||||
<template> |
||||
<div> |
||||
<el-dialog title="检验热更地址" v-model="isShowDialog"> |
||||
<el-form label-width="130px" label-position="right"> |
||||
<el-form-item label="渠道:"> |
||||
<el-select v-model="tableData.param.channelType" class="m-2"> |
||||
<el-option v-for="item in channels" :key="item.id + ''" :label="item.label" :value="item.value + ''" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="平台:"> |
||||
<el-select v-model="tableData.param.platform" class="m-2"> |
||||
<el-option label="IOS" value="Ios" /> |
||||
<el-option label="安卓" value="Android" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="版本号:"> |
||||
<el-input v-model="tableData.param.version" class="m-2"></el-input> |
||||
</el-form-item> |
||||
</el-form> |
||||
<template #footer> |
||||
<span class="dialog-footer"> |
||||
<el-button @click="onCancel" size="default">取 消</el-button> |
||||
<el-button size="default" type="primary" class="ml10" @click="addVersion"> |
||||
<el-icon> |
||||
<ele-Promotion /> |
||||
</el-icon> |
||||
校验 |
||||
</el-button> |
||||
</span> |
||||
</template> |
||||
</el-dialog> |
||||
</div> |
||||
</template> |
||||
|
||||
<script lang="ts"> |
||||
import { reactive, toRefs, defineComponent } from 'vue'; |
||||
import { allChannelList } from '/src/utils/game'; |
||||
import axios from 'axios'; |
||||
import {gameCCD} from "/@/api/game"; |
||||
|
||||
const baseURL: string | undefined | boolean = import.meta.env.VITE_API_URL; |
||||
|
||||
interface TableData { |
||||
channelType: string; |
||||
platform: string; |
||||
version: string; |
||||
} |
||||
|
||||
interface TableDataState { |
||||
channels: Array<{ label: string; value: string }>; |
||||
isShowDialog: boolean; |
||||
tableData: { |
||||
param: TableData; |
||||
}; |
||||
baseURL: string; |
||||
} |
||||
|
||||
export default defineComponent({ |
||||
name: 'gameCheckCCD', |
||||
setup() { |
||||
const state = reactive<TableDataState>({ |
||||
channels: [], |
||||
isShowDialog: false, |
||||
tableData: { |
||||
param: { |
||||
channelType: '', |
||||
platform: '', |
||||
version: '', |
||||
}, |
||||
}, |
||||
baseURL: baseURL, |
||||
}); |
||||
|
||||
// 打开弹窗 |
||||
const openDialog = () => { |
||||
state.tableData.param = {}; |
||||
allChannelList().then((value) => { |
||||
state.channels = value; |
||||
state.isShowDialog = true; |
||||
}); |
||||
}; |
||||
// 关闭弹窗 |
||||
const closeDialog = () => { |
||||
state.isShowDialog = false; |
||||
}; |
||||
// 取消 |
||||
const onCancel = () => { |
||||
closeDialog(); |
||||
}; |
||||
// 新增 |
||||
const addVersion = () => { |
||||
// let url = `${baseURL}frontApi/game/ccd/get`; |
||||
// axios |
||||
// .post(url, { |
||||
// params: state.tableData.param, |
||||
// }) |
||||
// .then((res) => { |
||||
// console.log(res); |
||||
// }); |
||||
gameCCD(state.tableData.param).then((res) => { |
||||
console.log(res); |
||||
}) |
||||
// window.open(baseURL + '/frontApi/game/loginUrl/get?channelType=' + state.tableData.param.channelType + '&platform=' + state.tableData.param.platform+ '&version=' + state.tableData.param.version); |
||||
}; |
||||
return { |
||||
openDialog, |
||||
closeDialog, |
||||
onCancel, |
||||
addVersion, |
||||
...toRefs(state), |
||||
}; |
||||
}, |
||||
}); |
||||
</script> |
@ -1,334 +1,367 @@
|
||||
<template> |
||||
<div class=""> |
||||
<el-card shadow="hover" header="列表"> |
||||
<div class="mb15"> |
||||
<el-form class="flex-warp" label-position="right"> |
||||
<el-form-item label="选择平台" prop="platform"> |
||||
<el-select v-model="tableData.search.platform" class="m-2" placeholder="选择平台" size="large"> |
||||
<el-option v-for="item in platform" :key="item.value" :label="item.label" :value="item.value"/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="输入IP" prop="ip"> |
||||
<el-input size="default" v-model="tableData.search.ip" placeholder="输入IP,则其他参数无效" clearable/> |
||||
</el-form-item> |
||||
<el-form-item label="版本号"> |
||||
<el-input size="default" v-model="tableData.search.versionName" placeholder="版本号,例:2.0.08" clearable/> |
||||
</el-form-item> |
||||
<el-form-item label="渠道"> |
||||
<el-select v-model="tableData.search.channelType" class="m-2" placeholder="选择渠道" size="large"> |
||||
<el-option v-for="item in channel" :key="item.value" :label="item.label" :value="item.value"/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="primary" class="ml10" @click="countList"> |
||||
<el-icon> |
||||
<ele-Search/> |
||||
</el-icon> |
||||
查找 |
||||
</el-button> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="success" class="ml10" @click="onOpenAddDic"> |
||||
<el-icon> |
||||
<ele-FolderAdd/> |
||||
</el-icon> |
||||
新增 |
||||
</el-button> |
||||
</el-form-item> |
||||
<el-table :data="tableData.data" style="width: 100%" stripe border> |
||||
<el-table-column width="70" label="平台"> |
||||
<template #default="scope"> |
||||
<span>{{ platform.find(r => r.value == scope.row.platform).label }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="content" label="ip" show-overflow-tooltip width="80"> |
||||
<template #default="scope"> |
||||
{{ scope.row.ip }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="hotfixVersion" label="版本号" width="90"> |
||||
<template #default="scope"> |
||||
{{ scope.row.versionName }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="channelType" label="渠道" width="100"> |
||||
<template #default="scope"> |
||||
<span>{{ |
||||
channel.find(r => r.value == scope.row.channelType) ? channel.find(r => r.value == scope.row.channelType).label : scope.row.channelType |
||||
}}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="state" label="版本更新状态" width="100"> |
||||
<template #default="scope"> |
||||
<span>{{ state.find(r => r.value == scope.row.state).label }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="hotfixVersion" label="热更版本" width="100"> |
||||
<template #default="scope"> |
||||
{{ scope.row.hotfixVersion }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="versionCompare" label="比较版本" width="100"> |
||||
<template #default="scope"> |
||||
{{ scope.row.versionCompare }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="url" label="url" show-overflow-tooltip> |
||||
<template #default="scope"> |
||||
{{ scope.row.url }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column width="145"> |
||||
<template #default="scope"> |
||||
<el-button size="small" type="danger" @click="delCCD(scope.row.id)">删除</el-button> |
||||
<el-button size="small" type="primary" @click="fixCCD(scope.row)">修改</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
</el-form> |
||||
<el-row justify="space-evenly"> |
||||
<el-pagination :hide-on-single-page="true" :page-size="tableData.search.pageSize" :total="tableData.total" |
||||
:pager-count="5" @current-change="handleCurrentChange" |
||||
layout="total, prev, pager, next, jumper"/> |
||||
</el-row> |
||||
</div> |
||||
</el-card> |
||||
<div class=""> |
||||
<el-card shadow="hover" header="列表"> |
||||
<div class="mb15"> |
||||
<el-form class="flex-warp" label-position="right"> |
||||
<el-form-item label="选择平台" prop="platform"> |
||||
<el-select v-model="tableData.search.platform" class="m-2" placeholder="选择平台" size="large"> |
||||
<el-option v-for="item in platform" :key="item.value" :label="item.label" :value="item.value" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="输入IP" prop="ip"> |
||||
<el-input size="default" v-model="tableData.search.ip" placeholder="输入IP,则其他参数无效" clearable /> |
||||
</el-form-item> |
||||
<el-form-item label="版本号"> |
||||
<el-input size="default" v-model="tableData.search.versionName" placeholder="版本号,例:2.0.08" clearable /> |
||||
</el-form-item> |
||||
<el-form-item label="渠道"> |
||||
<el-select v-model="tableData.search.channelType" class="m-2" placeholder="选择渠道" size="large"> |
||||
<el-option v-for="item in channel" :key="item.value" :label="item.label" :value="item.value" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="primary" class="ml10" @click="countList"> |
||||
<el-icon> |
||||
<ele-Search /> |
||||
</el-icon> |
||||
查找 |
||||
</el-button> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="success" class="ml10" @click="onOpenAddDic"> |
||||
<el-icon> |
||||
<ele-FolderAdd /> |
||||
</el-icon> |
||||
新增 |
||||
</el-button> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="success" class="ml10" @click="onOpenCheckCCD"> |
||||
<el-icon> |
||||
<ele-Promotion /> |
||||
</el-icon> |
||||
校验 |
||||
</el-button> |
||||
</el-form-item> |
||||
<el-table :data="tableData.data" style="width: 100%" stripe border> |
||||
<el-table-column width="70" label="平台"> |
||||
<template #default="scope"> |
||||
<span>{{ platform.find((r) => r.value == scope.row.platform).label }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="content" label="ip" show-overflow-tooltip width="80"> |
||||
<template #default="scope"> |
||||
{{ scope.row.ip }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="hotfixVersion" label="版本号" width="90"> |
||||
<template #default="scope"> |
||||
{{ scope.row.versionName }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="channelType" label="渠道" width="100"> |
||||
<template #default="scope"> |
||||
<span>{{ |
||||
channel.find((r) => r.value == scope.row.channelType) |
||||
? channel.find((r) => r.value == scope.row.channelType).label |
||||
: scope.row.channelType |
||||
}}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="state" label="版本更新状态" width="100"> |
||||
<template #default="scope"> |
||||
<span>{{ state.find((r) => r.value == scope.row.state).label }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="hotfixVersion" label="热更版本" width="100"> |
||||
<template #default="scope"> |
||||
{{ scope.row.hotfixVersion }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="versionCompare" label="比较版本" width="100"> |
||||
<template #default="scope"> |
||||
{{ scope.row.versionCompare }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="url" label="url" show-overflow-tooltip> |
||||
<template #default="scope"> |
||||
{{ scope.row.url }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column width="145"> |
||||
<template #default="scope"> |
||||
<el-button size="small" type="danger" @click="delCCD(scope.row.id)">删除</el-button> |
||||
<el-button size="small" type="primary" @click="fixCCD(scope.row)">修改</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
</el-form> |
||||
<el-row justify="space-evenly"> |
||||
<el-pagination |
||||
:hide-on-single-page="true" |
||||
:page-size="tableData.search.pageSize" |
||||
:total="tableData.total" |
||||
:pager-count="5" |
||||
@current-change="handleCurrentChange" |
||||
layout="total, prev, pager, next, jumper" |
||||
/> |
||||
</el-row> |
||||
</div> |
||||
</el-card> |
||||
|
||||
<el-dialog :title="tableData.param.id?'修改':'新增'" v-model="isShowDialog" width="769px"> |
||||
<div class=" mb15"> |
||||
<el-form label-width="100px" label-position="right"> |
||||
<el-form-item label="选择平台" prop="platform"> |
||||
<el-select v-model="tableData.param.platform" class="m-2" placeholder="选择平台" size="large" |
||||
:disabled="!!tableData.param.id"> |
||||
<el-option v-for="item in platform" :key="item.value" :label="item.label" :value="item.value"/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="输入IP" prop="ip"> |
||||
<el-input size="default" v-model="tableData.param.ip" placeholder="输入IP,则其他参数无效" clearable |
||||
:disabled="!!tableData.param.id"/> |
||||
</el-form-item> |
||||
<el-form-item label="版本号"> |
||||
<el-input size="default" v-model="tableData.param.versionName" placeholder="版本号,例:2.0.08" clearable |
||||
:disabled="!!tableData.param.id"/> |
||||
</el-form-item> |
||||
<el-form-item label="渠道"> |
||||
<el-select v-model="tableData.param.channelType" class="m-2" placeholder="选择渠道" size="large" |
||||
:disabled="!!tableData.param.id"> |
||||
<el-option v-for="item in channel" :key="item.value" :label="item.label" :value="item.value"/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="版本更新状态"> |
||||
<el-select v-model="tableData.param.state" class="m-2" placeholder="选择状态" size="large"> |
||||
<el-option v-for="item in state" :key="item.value" :label="item.label" :value="item.value"/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="热更版本"> |
||||
<el-input size="default" v-model="tableData.param.hotfixVersion" placeholder="" class="w-50 m-2" clearable/> |
||||
</el-form-item> |
||||
<el-form-item label="比较版本"> |
||||
<el-input size="default" v-model="tableData.param.versionCompare" placeholder="" class="w-50 m-2" |
||||
clearable/> |
||||
</el-form-item> |
||||
<el-form-item label="热更盒子"> |
||||
<el-select v-model="tableData.param.box" class="m-2" placeholder="选择状态" size="large"> |
||||
<el-option v-for="item in allCcdBox" :key="item.id" :label="item.data" :value="item.data"/> |
||||
</el-select> |
||||
<!-- <el-input size="default" v-model="tableData.param.url" placeholder="" class="w-50 m-2" clearable/>--> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button size="default" type="primary" class="ml10" @click="addCCD"> |
||||
<el-icon> |
||||
<ele-EditPen/> |
||||
</el-icon> |
||||
{{ tableData.param.id ? '修改' : '新增' }} |
||||
</el-button> |
||||
</el-form-item> |
||||
</el-form> |
||||
</div> |
||||
</el-dialog> |
||||
</div> |
||||
<el-dialog :title="tableData.param.id ? '修改' : '新增'" v-model="isShowDialog" width="769px"> |
||||
<div class="mb15"> |
||||
<el-form label-width="100px" label-position="right"> |
||||
<el-form-item label="选择平台" prop="platform"> |
||||
<el-select v-model="tableData.param.platform" class="m-2" placeholder="选择平台" size="large" :disabled="!!tableData.param.id"> |
||||
<el-option v-for="item in platform" :key="item.value" :label="item.label" :value="item.value" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="输入IP" prop="ip"> |
||||
<el-input size="default" v-model="tableData.param.ip" placeholder="输入IP,则其他参数无效" clearable :disabled="!!tableData.param.id" /> |
||||
</el-form-item> |
||||
<el-form-item label="版本号"> |
||||
<el-input |
||||
size="default" |
||||
v-model="tableData.param.versionName" |
||||
placeholder="版本号,例:2.0.08" |
||||
clearable |
||||
:disabled="!!tableData.param.id" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="渠道"> |
||||
<el-select v-model="tableData.param.channelType" class="m-2" placeholder="选择渠道" size="large" :disabled="!!tableData.param.id"> |
||||
<el-option v-for="item in channel" :key="item.value" :label="item.label" :value="item.value" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="版本更新状态"> |
||||
<el-select v-model="tableData.param.state" class="m-2" placeholder="选择状态" size="large"> |
||||
<el-option v-for="item in state" :key="item.value" :label="item.label" :value="item.value" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="热更版本"> |
||||
<el-input size="default" v-model="tableData.param.hotfixVersion" placeholder="" class="w-50 m-2" clearable /> |
||||
</el-form-item> |
||||
<el-form-item label="比较版本"> |
||||
<el-input size="default" v-model="tableData.param.versionCompare" placeholder="" class="w-50 m-2" clearable /> |
||||
</el-form-item> |
||||
<el-form-item label="热更盒子"> |
||||
<el-select v-model="tableData.param.box" class="m-2" placeholder="选择状态" size="large"> |
||||
<el-option v-for="item in allCcdBox" :key="item.id" :label="item.data" :value="item.data" /> |
||||
</el-select> |
||||
<!-- <el-input size="default" v-model="tableData.param.url" placeholder="" class="w-50 m-2" clearable/>--> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button size="default" type="primary" class="ml10" @click="addCCD"> |
||||
<el-icon> |
||||
<ele-EditPen /> |
||||
</el-icon> |
||||
{{ tableData.param.id ? '修改' : '新增' }} |
||||
</el-button> |
||||
</el-form-item> |
||||
</el-form> |
||||
</div> |
||||
</el-dialog> |
||||
</div> |
||||
<CheckCCD ref="checkDicRef" /> |
||||
</template> |
||||
|
||||
<script lang="ts"> |
||||
import {toRefs, reactive, onMounted, defineComponent} from 'vue'; |
||||
//import { ElMessageBox, ElMessage } from 'element-plus'; |
||||
import {gameGetCCD, gameAddCCD, gameDelCCD} from "/@/api/game"; |
||||
import {allCcdList, allChannelList} from "/@/utils/game"; |
||||
import { toRefs, reactive, onMounted, defineComponent, ref } from 'vue'; |
||||
import { gameGetCCD, gameAddCCD, gameDelCCD } from '/@/api/game'; |
||||
import { allCcdList, allChannelList } from '/@/utils/game'; |
||||
import CheckCCD from '/src/views/gameCCD/hotfix/component/checkCCD.vue'; |
||||
|
||||
// 定义接口来定义对象的类型 |
||||
interface TableData { |
||||
id: string; |
||||
platform: string; |
||||
ip: string; |
||||
hotfixVersion: string; |
||||
versionCompare: string; |
||||
channelType: string; |
||||
ccd: string; |
||||
version: string; |
||||
id: string; |
||||
platform: string; |
||||
ip: string; |
||||
hotfixVersion: string; |
||||
versionCompare: string; |
||||
channelType: string; |
||||
ccd: string; |
||||
version: string; |
||||
} |
||||
|
||||
interface TableDataState { |
||||
tableData: { |
||||
data: Array<TableData>; |
||||
total: number; |
||||
param: { |
||||
platform: string; |
||||
ip: string; |
||||
versionName: string; |
||||
channelType: string; |
||||
state: number; |
||||
hotfixVersion: string; |
||||
versionCompare: string; |
||||
url: string; |
||||
box: string; |
||||
}; |
||||
search: { |
||||
platform: string; |
||||
ip: string; |
||||
versionName: string; |
||||
channelType: string; |
||||
pageNum: number; |
||||
pageSize: number; |
||||
}; |
||||
}; |
||||
platform: Array<{ label: string, value: string }> |
||||
channel: Array<{ label: string, value: string }> |
||||
state: Array<{ label: string, value: number }> |
||||
allCcdBox: object, |
||||
isShowDialog: boolean; |
||||
tableData: { |
||||
data: Array<TableData>; |
||||
total: number; |
||||
param: { |
||||
platform: string; |
||||
ip: string; |
||||
versionName: string; |
||||
channelType: string; |
||||
state: number; |
||||
hotfixVersion: string; |
||||
versionCompare: string; |
||||
url: string; |
||||
box: string; |
||||
}; |
||||
search: { |
||||
platform: string; |
||||
ip: string; |
||||
versionName: string; |
||||
channelType: string; |
||||
pageNum: number; |
||||
pageSize: number; |
||||
}; |
||||
}; |
||||
platform: Array<{ label: string; value: string }>; |
||||
channel: Array<{ label: string; value: string }>; |
||||
state: Array<{ label: string; value: number }>; |
||||
allCcdBox: object; |
||||
isShowDialog: boolean; |
||||
} |
||||
|
||||
export default defineComponent({ |
||||
name: 'apiV1GameCcdAdd', |
||||
setup() { |
||||
const state = reactive<TableDataState>({ |
||||
channel: [], |
||||
platform: [{label: "编辑器", value: "Editor"}, {label: "安卓", value: "Android"}, {label: "苹果", value: "Ios"}], |
||||
state: [{label: "测试", value: 0}, {label: "审核", value: 2}, {label: "正式", value: 1}], |
||||
tableData: { |
||||
data: [], |
||||
total: 0, |
||||
param: { |
||||
platform: "", |
||||
ip: "", |
||||
versionName: "", |
||||
channelType: "", |
||||
state: 0, |
||||
hotfixVersion: "", |
||||
versionCompare: "", |
||||
url: "", |
||||
box: "", |
||||
}, |
||||
search: { |
||||
platform: "", |
||||
ip: "", |
||||
versionName: "", |
||||
channelType: "", |
||||
pageNum: 1, |
||||
pageSize: 10, |
||||
}, |
||||
}, |
||||
allCcdBox: [], |
||||
isShowDialog: false |
||||
}); |
||||
name: 'apiV1GameCcdAdd', |
||||
components: { CheckCCD }, |
||||
setup() { |
||||
const checkDicRef = ref(); |
||||
const state = reactive<TableDataState>({ |
||||
channel: [], |
||||
platform: [ |
||||
{ label: '编辑器', value: 'Editor' }, |
||||
{ label: '安卓', value: 'Android' }, |
||||
{ label: '苹果', value: 'Ios' }, |
||||
], |
||||
state: [ |
||||
{ label: '测试', value: 0 }, |
||||
{ label: '审核', value: 2 }, |
||||
{ label: '正式', value: 1 }, |
||||
], |
||||
tableData: { |
||||
data: [], |
||||
total: 0, |
||||
param: { |
||||
platform: '', |
||||
ip: '', |
||||
versionName: '', |
||||
channelType: '', |
||||
state: 0, |
||||
hotfixVersion: '', |
||||
versionCompare: '', |
||||
url: '', |
||||
box: '', |
||||
}, |
||||
search: { |
||||
platform: '', |
||||
ip: '', |
||||
versionName: '', |
||||
channelType: '', |
||||
pageNum: 1, |
||||
pageSize: 10, |
||||
}, |
||||
}, |
||||
allCcdBox: [], |
||||
isShowDialog: false, |
||||
}); |
||||
|
||||
const countList = () => { |
||||
state.isShowDialog = false; |
||||
gameGetCCD(state.tableData.search).then(res => { |
||||
// console.log("countList:", res); |
||||
state.tableData.total = res.data.total; |
||||
state.tableData.data = res.data.ccdList ?? []; |
||||
}) |
||||
}; |
||||
const addCCD = () => { |
||||
if (state.tableData.param.box) { |
||||
state.tableData.param.url = "https://a.unity.cn/client_api/v1/buckets/" + state.tableData.param.box + "/entry_by_path/content/?path=" |
||||
} |
||||
gameAddCCD(state.tableData.param).then(res => { |
||||
console.log("countList:", res); |
||||
countList() |
||||
}) |
||||
}; |
||||
const delCCD = (id: number) => { |
||||
gameDelCCD({id: id}).then(res => { |
||||
console.log("countList:", res); |
||||
countList() |
||||
}) |
||||
}; |
||||
const fixCCD = (row: any) => { |
||||
onOpenAddDic(); |
||||
state.tableData.param = row; |
||||
let box = row.url.split("https://a.unity.cn/client_api/v1/buckets/")[1]; |
||||
state.tableData.param.box = box.split("/entry_by_path/content/?path=")[0] |
||||
console.log(state.tableData.param) |
||||
}; |
||||
const countList = () => { |
||||
state.isShowDialog = false; |
||||
gameGetCCD(state.tableData.search).then((res) => { |
||||
// console.log("countList:", res); |
||||
state.tableData.total = res.data.total; |
||||
state.tableData.data = res.data.ccdList ?? []; |
||||
}); |
||||
}; |
||||
const addCCD = () => { |
||||
if (state.tableData.param.box) { |
||||
state.tableData.param.url = 'https://a.unity.cn/client_api/v1/buckets/' + state.tableData.param.box + '/entry_by_path/content/?path='; |
||||
} |
||||
gameAddCCD(state.tableData.param).then((res) => { |
||||
console.log('countList:', res); |
||||
countList(); |
||||
}); |
||||
}; |
||||
const delCCD = (id: number) => { |
||||
gameDelCCD({ id: id }).then((res) => { |
||||
console.log('countList:', res); |
||||
countList(); |
||||
}); |
||||
}; |
||||
const fixCCD = (row: any) => { |
||||
onOpenAddDic(); |
||||
state.tableData.param = row; |
||||
let box = row.url.split('https://a.unity.cn/client_api/v1/buckets/')[1]; |
||||
state.tableData.param.box = box.split('/entry_by_path/content/?path=')[0]; |
||||
console.log(state.tableData.param); |
||||
}; |
||||
|
||||
const onTableRowClassName = ({row, rowIndex}: any) => { |
||||
console.log("onTableRowClassName", row, rowIndex); |
||||
if (row.Day % 2 == 0 || row.day % 2 == 0) { |
||||
return 'warning-row'; |
||||
} else { |
||||
return ''; |
||||
} |
||||
}; |
||||
const handleCurrentChange = (val: number) => { |
||||
// console.log(`current page: ${val}`); |
||||
state.tableData.search.pageNum = val; |
||||
countList(); |
||||
}; |
||||
const onTableRowClassName = ({ row, rowIndex }: any) => { |
||||
console.log('onTableRowClassName', row, rowIndex); |
||||
if (row.Day % 2 == 0 || row.day % 2 == 0) { |
||||
return 'warning-row'; |
||||
} else { |
||||
return ''; |
||||
} |
||||
}; |
||||
const handleCurrentChange = (val: number) => { |
||||
// console.log(`current page: ${val}`); |
||||
state.tableData.search.pageNum = val; |
||||
countList(); |
||||
}; |
||||
|
||||
// 打开新增字典弹窗 |
||||
const onOpenAddDic = () => { |
||||
state.isShowDialog = true; |
||||
state.tableData.param = { |
||||
platform: "", |
||||
ip: "", |
||||
versionName: "", |
||||
channelType: "", |
||||
state: 0, |
||||
hotfixVersion: "", |
||||
versionCompare: "", |
||||
url: "", |
||||
box: "", |
||||
}; |
||||
}; |
||||
onMounted(() => { |
||||
countList() |
||||
// 打开新增字典弹窗 |
||||
const onOpenAddDic = () => { |
||||
state.isShowDialog = true; |
||||
state.tableData.param = { |
||||
platform: '', |
||||
ip: '', |
||||
versionName: '', |
||||
channelType: '', |
||||
state: 0, |
||||
hotfixVersion: '', |
||||
versionCompare: '', |
||||
url: '', |
||||
box: '', |
||||
}; |
||||
}; |
||||
// 打开新增字典弹窗 |
||||
const onOpenCheckCCD = () => { |
||||
checkDicRef.value.openDialog(); |
||||
}; |
||||
onMounted(() => { |
||||
countList(); |
||||
|
||||
allChannelList().then(res => { |
||||
state.channel = res; |
||||
}); |
||||
allChannelList().then((res) => { |
||||
state.channel = res; |
||||
}); |
||||
|
||||
allCcdList().then(res => { |
||||
console.log("allCcdList: ", res) |
||||
state.allCcdBox = res; |
||||
}); |
||||
}); |
||||
return { |
||||
onTableRowClassName, |
||||
handleCurrentChange, |
||||
countList, |
||||
addCCD, |
||||
delCCD, |
||||
fixCCD, |
||||
onOpenAddDic, |
||||
...toRefs(state), |
||||
}; |
||||
}, |
||||
allCcdList().then((res) => { |
||||
console.log('allCcdList: ', res); |
||||
state.allCcdBox = res; |
||||
}); |
||||
}); |
||||
return { |
||||
checkDicRef, |
||||
onTableRowClassName, |
||||
handleCurrentChange, |
||||
countList, |
||||
addCCD, |
||||
delCCD, |
||||
fixCCD, |
||||
onOpenCheckCCD, |
||||
onOpenAddDic, |
||||
...toRefs(state), |
||||
}; |
||||
}, |
||||
}); |
||||
</script> |
||||
<style scoped lang="scss"> |
||||
.el-form-item { |
||||
display: -moz-flex; |
||||
vertical-align: middle; |
||||
margin-right: 32px; |
||||
display: -moz-flex; |
||||
vertical-align: middle; |
||||
margin-right: 32px; |
||||
} |
||||
|
||||
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td { |
||||
background: #ffffd5; |
||||
background: #ffffd5; |
||||
} |
||||
|
||||
::v-deep .el-table .el-table--enable-row-hover .el-table__body tr:hover > td { |
||||
background: inherit; |
||||
background: inherit; |
||||
} |
||||
</style> |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,165 @@
|
||||
<template> |
||||
<div class="game-maintenance-container"> |
||||
<el-form shadow="hover" label-width="90px"> |
||||
<el-card header="排行榜"> |
||||
<el-form :inline="true"> |
||||
<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.serverId" 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="default" type="primary" class="ml10" @click="onList"> |
||||
<el-icon> |
||||
<ele-Search /> |
||||
</el-icon> |
||||
查询 |
||||
</el-button> |
||||
</el-form-item> |
||||
</el-form> |
||||
<el-table :data="tableData.data" stripe border> |
||||
<el-table-column prop="stringId" label="id" width="200" show-overflow-tooltip></el-table-column> |
||||
<el-table-column prop="uniqueId" label="uid" width="100" show-overflow-tooltip></el-table-column> |
||||
<el-table-column prop="server" label="区服" show-overflow-tooltip> |
||||
<template #default="scope"> |
||||
{{ |
||||
servers.find(r => r.id == scope.row.server) ? servers.find(r => r.id == scope.row.server).name : scope.row.server |
||||
}} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="物品Id" width="100" show-overflow-tooltip> |
||||
<template #default="scope"> |
||||
<span>{{ scope.row.itemId }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="物品名称" width="180" show-overflow-tooltip> |
||||
<template #default="scope"> |
||||
<span>{{ allItemConfig.find((r) => r.Id == scope.row.itemId)?.Name }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="物品数量" width="180" show-overflow-tooltip> |
||||
<template #default="scope"> |
||||
<span>{{ scope.row.num }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="状态" width="100" show-overflow-tooltip> |
||||
<template #default="scope"> |
||||
<div v-if="scope.row.state == 1"><span style="color: #f81f1fd5">消耗</span></div> |
||||
<div v-else><span style="color: #087512d6">增加</span></div> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="时间" width="180"> |
||||
<template #default="scope"> |
||||
<span>{{ scope.row.cTime }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
<el-row justify="space-evenly"> |
||||
<el-pagination |
||||
:hide-on-single-page="true" |
||||
v-model:page-size="tableData.param.pageSize" |
||||
v-model:current-page="tableData.param.pageNum" |
||||
:pager-count="5" |
||||
@current-change="onList" |
||||
layout="total, prev, pager, next" |
||||
:total="tableData.total" |
||||
/> |
||||
</el-row> |
||||
</el-card> |
||||
</el-form> |
||||
</div> |
||||
</template> |
||||
<script lang="ts"> |
||||
import { reactive, toRefs, defineComponent, onMounted } from 'vue'; |
||||
import { gameItemRecordTwo } from '/@/api/game'; |
||||
import { ElLoading } from 'element-plus'; |
||||
import { serverList, ServerCategorize } from '/@/utils/game'; |
||||
import { gSwitchServer } from '/@/utils/utils'; |
||||
import AllItemConfigCategory from '/@/api/config/AllItemConfigCategory.json'; |
||||
|
||||
interface TableDataState { |
||||
tableData: { |
||||
param: { |
||||
pageSize: number; |
||||
pageNum: number; |
||||
serverId: number; |
||||
uid: string; |
||||
itemId: string; |
||||
}; |
||||
data: object[]; |
||||
total: number; |
||||
}; |
||||
servers: object[]; |
||||
rankNames: object[]; |
||||
serverSwitch: number; |
||||
serverCategorize: object[]; |
||||
allItemConfig: object[]; |
||||
} |
||||
|
||||
export default defineComponent({ |
||||
name: 'apiV1GameRoleItemRecord', |
||||
setup: function () { |
||||
const state = reactive<TableDataState>({ |
||||
tableData: { |
||||
param: { |
||||
serverId: '', |
||||
uid: '', |
||||
itemId: '', |
||||
pageSize: 10, |
||||
pageNum: 1, |
||||
}, |
||||
data: [], |
||||
}, |
||||
serverSwitch: 0, |
||||
servers: [], |
||||
serverCategorize: ServerCategorize, |
||||
allItemConfig: AllItemConfigCategory, |
||||
}); |
||||
|
||||
const onList = () => { |
||||
const loading = ElLoading.service({ |
||||
lock: true, |
||||
text: 'Loading', |
||||
background: 'rgba(0, 0, 0, 0.7)', |
||||
}); |
||||
state.tableData.data = []; |
||||
gameItemRecordTwo(state.tableData.param) |
||||
.then((res) => { |
||||
if (!res.data.logs || res.data.logs.length == 0) { |
||||
// ElMessage.error('未查询到物品交易记录!'); |
||||
return; |
||||
} |
||||
console.log('itemRecord: ', res); |
||||
state.tableData.total = res.data.total; |
||||
state.tableData.data = res.data.logs; |
||||
}) |
||||
.finally(() => { |
||||
loading.close(); |
||||
}); |
||||
}; |
||||
// 页面加载时 |
||||
onMounted(() => { |
||||
serverList().then((res) => { |
||||
state.servers = res; |
||||
}); |
||||
}); |
||||
const switchServer = () => { |
||||
return gSwitchServer(state.serverSwitch, state.servers); |
||||
}; |
||||
return { |
||||
switchServer, |
||||
onList, |
||||
...toRefs(state), |
||||
}; |
||||
}, |
||||
}); |
||||
</script> |
||||
|
||||
<style scoped lang="scss"> |
||||
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td { |
||||
background: #ffffd5; |
||||
} |
||||
</style> |
@ -0,0 +1,101 @@
|
||||
<template> |
||||
<div> |
||||
<el-dialog title="检验获取登录地址" v-model="isShowDialog"> |
||||
<el-form label-width="130px" label-position="right"> |
||||
<el-form-item label="渠道:"> |
||||
<el-select v-model="tableData.param.channel" class="m-2"> |
||||
<el-option v-for="item in channels" :key="item.id + ''" :label="item.label" :value="item.value + ''" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="版本号:"> |
||||
<el-input v-model="tableData.param.version" class="m-2"></el-input> |
||||
</el-form-item> |
||||
</el-form> |
||||
<template #footer> |
||||
<span class="dialog-footer"> |
||||
<el-button @click="onCancel" size="default">取 消</el-button> |
||||
<el-button size="default" type="primary" class="ml10" @click="addVersion"> |
||||
<el-icon> |
||||
<ele-Promotion /> |
||||
</el-icon> |
||||
校验 |
||||
</el-button> |
||||
</span> |
||||
</template> |
||||
</el-dialog> |
||||
</div> |
||||
</template> |
||||
|
||||
<script lang="ts"> |
||||
import { reactive, toRefs, defineComponent } from 'vue'; |
||||
import { allChannelList } from '/src/utils/game'; |
||||
|
||||
const baseURL: string | undefined | boolean = import.meta.env.VITE_API_URL; |
||||
|
||||
interface TableData { |
||||
channel: string; |
||||
version: string; |
||||
} |
||||
|
||||
interface TableDataState { |
||||
channels: Array<{ label: string; value: string }>; |
||||
isShowDialog: boolean; |
||||
tableData: { |
||||
param: TableData; |
||||
}; |
||||
setName: object; |
||||
isNew: boolean; |
||||
} |
||||
|
||||
export default defineComponent({ |
||||
name: 'gameCheckLoginUrl', |
||||
setup() { |
||||
const state = reactive<TableDataState>({ |
||||
channels: [], |
||||
isShowDialog: false, |
||||
tableData: { |
||||
param: { |
||||
channel: '', |
||||
version: '', |
||||
}, |
||||
}, |
||||
baseURL: baseURL, |
||||
setName: {}, |
||||
isNew: false, |
||||
}); |
||||
|
||||
// 打开弹窗 |
||||
const openDialog = () => { |
||||
state.tableData.param = {}; |
||||
allChannelList().then((value) => { |
||||
state.channels = value; |
||||
state.isShowDialog = true; |
||||
}); |
||||
}; |
||||
// 关闭弹窗 |
||||
const closeDialog = () => { |
||||
state.isShowDialog = false; |
||||
}; |
||||
// 取消 |
||||
const onCancel = () => { |
||||
closeDialog(); |
||||
}; |
||||
// 新增 |
||||
const addVersion = () => { |
||||
// axios.get(baseURL + 'frontApi/game/loginUrl/get', { |
||||
// params: state.tableData.param, |
||||
// }).then((res) => { |
||||
// console.log(res); |
||||
// }); |
||||
window.open(baseURL + '/frontApi/game/loginUrl/get?channel=' + state.tableData.param.channel + '&version=' + state.tableData.param.version); |
||||
}; |
||||
return { |
||||
openDialog, |
||||
closeDialog, |
||||
onCancel, |
||||
addVersion, |
||||
...toRefs(state), |
||||
}; |
||||
}, |
||||
}); |
||||
</script> |
Loading…
Reference in new issue