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> |
<template> |
||||||
<div class=""> |
<div class=""> |
||||||
<el-card shadow="hover" header="列表"> |
<el-card shadow="hover" header="列表"> |
||||||
<div class="mb15"> |
<div class="mb15"> |
||||||
<el-form class="flex-warp" label-position="right"> |
<el-form class="flex-warp" label-position="right"> |
||||||
<el-form-item label="选择平台" prop="platform"> |
<el-form-item label="选择平台" prop="platform"> |
||||||
<el-select v-model="tableData.search.platform" class="m-2" placeholder="选择平台" size="large"> |
<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-option v-for="item in platform" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
</el-select> |
</el-select> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="输入IP" prop="ip"> |
<el-form-item label="输入IP" prop="ip"> |
||||||
<el-input size="default" v-model="tableData.search.ip" placeholder="输入IP,则其他参数无效" clearable/> |
<el-input size="default" v-model="tableData.search.ip" placeholder="输入IP,则其他参数无效" clearable /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="版本号"> |
<el-form-item label="版本号"> |
||||||
<el-input size="default" v-model="tableData.search.versionName" placeholder="版本号,例:2.0.08" clearable/> |
<el-input size="default" v-model="tableData.search.versionName" placeholder="版本号,例:2.0.08" clearable /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="渠道"> |
<el-form-item label="渠道"> |
||||||
<el-select v-model="tableData.search.channelType" class="m-2" placeholder="选择渠道" size="large"> |
<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-option v-for="item in channel" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
</el-select> |
</el-select> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item> |
<el-form-item> |
||||||
<el-button type="primary" class="ml10" @click="countList"> |
<el-button type="primary" class="ml10" @click="countList"> |
||||||
<el-icon> |
<el-icon> |
||||||
<ele-Search/> |
<ele-Search /> |
||||||
</el-icon> |
</el-icon> |
||||||
查找 |
查找 |
||||||
</el-button> |
</el-button> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item> |
<el-form-item> |
||||||
<el-button type="success" class="ml10" @click="onOpenAddDic"> |
<el-button type="success" class="ml10" @click="onOpenAddDic"> |
||||||
<el-icon> |
<el-icon> |
||||||
<ele-FolderAdd/> |
<ele-FolderAdd /> |
||||||
</el-icon> |
</el-icon> |
||||||
新增 |
新增 |
||||||
</el-button> |
</el-button> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-table :data="tableData.data" style="width: 100%" stripe border> |
<el-form-item> |
||||||
<el-table-column width="70" label="平台"> |
<el-button type="success" class="ml10" @click="onOpenCheckCCD"> |
||||||
<template #default="scope"> |
<el-icon> |
||||||
<span>{{ platform.find(r => r.value == scope.row.platform).label }}</span> |
<ele-Promotion /> |
||||||
</template> |
</el-icon> |
||||||
</el-table-column> |
校验 |
||||||
<el-table-column prop="content" label="ip" show-overflow-tooltip width="80"> |
</el-button> |
||||||
<template #default="scope"> |
</el-form-item> |
||||||
{{ scope.row.ip }} |
<el-table :data="tableData.data" style="width: 100%" stripe border> |
||||||
</template> |
<el-table-column width="70" label="平台"> |
||||||
</el-table-column> |
<template #default="scope"> |
||||||
<el-table-column prop="hotfixVersion" label="版本号" width="90"> |
<span>{{ platform.find((r) => r.value == scope.row.platform).label }}</span> |
||||||
<template #default="scope"> |
</template> |
||||||
{{ scope.row.versionName }} |
</el-table-column> |
||||||
</template> |
<el-table-column prop="content" label="ip" show-overflow-tooltip width="80"> |
||||||
</el-table-column> |
<template #default="scope"> |
||||||
<el-table-column prop="channelType" label="渠道" width="100"> |
{{ scope.row.ip }} |
||||||
<template #default="scope"> |
</template> |
||||||
<span>{{ |
</el-table-column> |
||||||
channel.find(r => r.value == scope.row.channelType) ? channel.find(r => r.value == scope.row.channelType).label : scope.row.channelType |
<el-table-column prop="hotfixVersion" label="版本号" width="90"> |
||||||
}}</span> |
<template #default="scope"> |
||||||
</template> |
{{ scope.row.versionName }} |
||||||
</el-table-column> |
</template> |
||||||
<el-table-column prop="state" label="版本更新状态" width="100"> |
</el-table-column> |
||||||
<template #default="scope"> |
<el-table-column prop="channelType" label="渠道" width="100"> |
||||||
<span>{{ state.find(r => r.value == scope.row.state).label }}</span> |
<template #default="scope"> |
||||||
</template> |
<span>{{ |
||||||
</el-table-column> |
channel.find((r) => r.value == scope.row.channelType) |
||||||
<el-table-column prop="hotfixVersion" label="热更版本" width="100"> |
? channel.find((r) => r.value == scope.row.channelType).label |
||||||
<template #default="scope"> |
: scope.row.channelType |
||||||
{{ scope.row.hotfixVersion }} |
}}</span> |
||||||
</template> |
</template> |
||||||
</el-table-column> |
</el-table-column> |
||||||
<el-table-column prop="versionCompare" label="比较版本" width="100"> |
<el-table-column prop="state" label="版本更新状态" width="100"> |
||||||
<template #default="scope"> |
<template #default="scope"> |
||||||
{{ scope.row.versionCompare }} |
<span>{{ state.find((r) => r.value == scope.row.state).label }}</span> |
||||||
</template> |
</template> |
||||||
</el-table-column> |
</el-table-column> |
||||||
<el-table-column prop="url" label="url" show-overflow-tooltip> |
<el-table-column prop="hotfixVersion" label="热更版本" width="100"> |
||||||
<template #default="scope"> |
<template #default="scope"> |
||||||
{{ scope.row.url }} |
{{ scope.row.hotfixVersion }} |
||||||
</template> |
</template> |
||||||
</el-table-column> |
</el-table-column> |
||||||
<el-table-column width="145"> |
<el-table-column prop="versionCompare" label="比较版本" width="100"> |
||||||
<template #default="scope"> |
<template #default="scope"> |
||||||
<el-button size="small" type="danger" @click="delCCD(scope.row.id)">删除</el-button> |
{{ scope.row.versionCompare }} |
||||||
<el-button size="small" type="primary" @click="fixCCD(scope.row)">修改</el-button> |
</template> |
||||||
</template> |
</el-table-column> |
||||||
</el-table-column> |
<el-table-column prop="url" label="url" show-overflow-tooltip> |
||||||
</el-table> |
<template #default="scope"> |
||||||
</el-form> |
{{ scope.row.url }} |
||||||
<el-row justify="space-evenly"> |
</template> |
||||||
<el-pagination :hide-on-single-page="true" :page-size="tableData.search.pageSize" :total="tableData.total" |
</el-table-column> |
||||||
:pager-count="5" @current-change="handleCurrentChange" |
<el-table-column width="145"> |
||||||
layout="total, prev, pager, next, jumper"/> |
<template #default="scope"> |
||||||
</el-row> |
<el-button size="small" type="danger" @click="delCCD(scope.row.id)">删除</el-button> |
||||||
</div> |
<el-button size="small" type="primary" @click="fixCCD(scope.row)">修改</el-button> |
||||||
</el-card> |
</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"> |
<el-dialog :title="tableData.param.id ? '修改' : '新增'" v-model="isShowDialog" width="769px"> |
||||||
<div class=" mb15"> |
<div class="mb15"> |
||||||
<el-form label-width="100px" label-position="right"> |
<el-form label-width="100px" label-position="right"> |
||||||
<el-form-item label="选择平台" prop="platform"> |
<el-form-item label="选择平台" prop="platform"> |
||||||
<el-select v-model="tableData.param.platform" class="m-2" placeholder="选择平台" size="large" |
<el-select v-model="tableData.param.platform" class="m-2" placeholder="选择平台" size="large" :disabled="!!tableData.param.id"> |
||||||
:disabled="!!tableData.param.id"> |
<el-option v-for="item in platform" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
<el-option v-for="item in platform" :key="item.value" :label="item.label" :value="item.value"/> |
</el-select> |
||||||
</el-select> |
</el-form-item> |
||||||
</el-form-item> |
<el-form-item label="输入IP" prop="ip"> |
||||||
<el-form-item label="输入IP" prop="ip"> |
<el-input size="default" v-model="tableData.param.ip" placeholder="输入IP,则其他参数无效" clearable :disabled="!!tableData.param.id" /> |
||||||
<el-input size="default" v-model="tableData.param.ip" placeholder="输入IP,则其他参数无效" clearable |
</el-form-item> |
||||||
:disabled="!!tableData.param.id"/> |
<el-form-item label="版本号"> |
||||||
</el-form-item> |
<el-input |
||||||
<el-form-item label="版本号"> |
size="default" |
||||||
<el-input size="default" v-model="tableData.param.versionName" placeholder="版本号,例:2.0.08" clearable |
v-model="tableData.param.versionName" |
||||||
:disabled="!!tableData.param.id"/> |
placeholder="版本号,例:2.0.08" |
||||||
</el-form-item> |
clearable |
||||||
<el-form-item label="渠道"> |
:disabled="!!tableData.param.id" |
||||||
<el-select v-model="tableData.param.channelType" class="m-2" placeholder="选择渠道" size="large" |
/> |
||||||
:disabled="!!tableData.param.id"> |
</el-form-item> |
||||||
<el-option v-for="item in channel" :key="item.value" :label="item.label" :value="item.value"/> |
<el-form-item label="渠道"> |
||||||
</el-select> |
<el-select v-model="tableData.param.channelType" class="m-2" placeholder="选择渠道" size="large" :disabled="!!tableData.param.id"> |
||||||
</el-form-item> |
<el-option v-for="item in channel" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
<el-form-item label="版本更新状态"> |
</el-select> |
||||||
<el-select v-model="tableData.param.state" class="m-2" placeholder="选择状态" size="large"> |
</el-form-item> |
||||||
<el-option v-for="item in state" :key="item.value" :label="item.label" :value="item.value"/> |
<el-form-item label="版本更新状态"> |
||||||
</el-select> |
<el-select v-model="tableData.param.state" class="m-2" placeholder="选择状态" size="large"> |
||||||
</el-form-item> |
<el-option v-for="item in state" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
<el-form-item label="热更版本"> |
</el-select> |
||||||
<el-input size="default" v-model="tableData.param.hotfixVersion" placeholder="" class="w-50 m-2" clearable/> |
</el-form-item> |
||||||
</el-form-item> |
<el-form-item label="热更版本"> |
||||||
<el-form-item label="比较版本"> |
<el-input size="default" v-model="tableData.param.hotfixVersion" placeholder="" class="w-50 m-2" clearable /> |
||||||
<el-input size="default" v-model="tableData.param.versionCompare" placeholder="" class="w-50 m-2" |
</el-form-item> |
||||||
clearable/> |
<el-form-item label="比较版本"> |
||||||
</el-form-item> |
<el-input size="default" v-model="tableData.param.versionCompare" placeholder="" class="w-50 m-2" clearable /> |
||||||
<el-form-item label="热更盒子"> |
</el-form-item> |
||||||
<el-select v-model="tableData.param.box" class="m-2" placeholder="选择状态" size="large"> |
<el-form-item label="热更盒子"> |
||||||
<el-option v-for="item in allCcdBox" :key="item.id" :label="item.data" :value="item.data"/> |
<el-select v-model="tableData.param.box" class="m-2" placeholder="选择状态" size="large"> |
||||||
</el-select> |
<el-option v-for="item in allCcdBox" :key="item.id" :label="item.data" :value="item.data" /> |
||||||
<!-- <el-input size="default" v-model="tableData.param.url" placeholder="" class="w-50 m-2" clearable/>--> |
</el-select> |
||||||
</el-form-item> |
<!-- <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-form-item> |
||||||
<el-icon> |
<el-button size="default" type="primary" class="ml10" @click="addCCD"> |
||||||
<ele-EditPen/> |
<el-icon> |
||||||
</el-icon> |
<ele-EditPen /> |
||||||
{{ tableData.param.id ? '修改' : '新增' }} |
</el-icon> |
||||||
</el-button> |
{{ tableData.param.id ? '修改' : '新增' }} |
||||||
</el-form-item> |
</el-button> |
||||||
</el-form> |
</el-form-item> |
||||||
</div> |
</el-form> |
||||||
</el-dialog> |
</div> |
||||||
</div> |
</el-dialog> |
||||||
|
</div> |
||||||
|
<CheckCCD ref="checkDicRef" /> |
||||||
</template> |
</template> |
||||||
|
|
||||||
<script lang="ts"> |
<script lang="ts"> |
||||||
import {toRefs, reactive, onMounted, defineComponent} from 'vue'; |
import { toRefs, reactive, onMounted, defineComponent, ref } from 'vue'; |
||||||
//import { ElMessageBox, ElMessage } from 'element-plus'; |
import { gameGetCCD, gameAddCCD, gameDelCCD } from '/@/api/game'; |
||||||
import {gameGetCCD, gameAddCCD, gameDelCCD} from "/@/api/game"; |
import { allCcdList, allChannelList } from '/@/utils/game'; |
||||||
import {allCcdList, allChannelList} from "/@/utils/game"; |
import CheckCCD from '/src/views/gameCCD/hotfix/component/checkCCD.vue'; |
||||||
|
|
||||||
// 定义接口来定义对象的类型 |
// 定义接口来定义对象的类型 |
||||||
interface TableData { |
interface TableData { |
||||||
id: string; |
id: string; |
||||||
platform: string; |
platform: string; |
||||||
ip: string; |
ip: string; |
||||||
hotfixVersion: string; |
hotfixVersion: string; |
||||||
versionCompare: string; |
versionCompare: string; |
||||||
channelType: string; |
channelType: string; |
||||||
ccd: string; |
ccd: string; |
||||||
version: string; |
version: string; |
||||||
} |
} |
||||||
|
|
||||||
interface TableDataState { |
interface TableDataState { |
||||||
tableData: { |
tableData: { |
||||||
data: Array<TableData>; |
data: Array<TableData>; |
||||||
total: number; |
total: number; |
||||||
param: { |
param: { |
||||||
platform: string; |
platform: string; |
||||||
ip: string; |
ip: string; |
||||||
versionName: string; |
versionName: string; |
||||||
channelType: string; |
channelType: string; |
||||||
state: number; |
state: number; |
||||||
hotfixVersion: string; |
hotfixVersion: string; |
||||||
versionCompare: string; |
versionCompare: string; |
||||||
url: string; |
url: string; |
||||||
box: string; |
box: string; |
||||||
}; |
}; |
||||||
search: { |
search: { |
||||||
platform: string; |
platform: string; |
||||||
ip: string; |
ip: string; |
||||||
versionName: string; |
versionName: string; |
||||||
channelType: string; |
channelType: string; |
||||||
pageNum: number; |
pageNum: number; |
||||||
pageSize: number; |
pageSize: number; |
||||||
}; |
}; |
||||||
}; |
}; |
||||||
platform: Array<{ label: string, value: string }> |
platform: Array<{ label: string; value: string }>; |
||||||
channel: Array<{ label: string, value: string }> |
channel: Array<{ label: string; value: string }>; |
||||||
state: Array<{ label: string, value: number }> |
state: Array<{ label: string; value: number }>; |
||||||
allCcdBox: object, |
allCcdBox: object; |
||||||
isShowDialog: boolean; |
isShowDialog: boolean; |
||||||
} |
} |
||||||
|
|
||||||
export default defineComponent({ |
export default defineComponent({ |
||||||
name: 'apiV1GameCcdAdd', |
name: 'apiV1GameCcdAdd', |
||||||
setup() { |
components: { CheckCCD }, |
||||||
const state = reactive<TableDataState>({ |
setup() { |
||||||
channel: [], |
const checkDicRef = ref(); |
||||||
platform: [{label: "编辑器", value: "Editor"}, {label: "安卓", value: "Android"}, {label: "苹果", value: "Ios"}], |
const state = reactive<TableDataState>({ |
||||||
state: [{label: "测试", value: 0}, {label: "审核", value: 2}, {label: "正式", value: 1}], |
channel: [], |
||||||
tableData: { |
platform: [ |
||||||
data: [], |
{ label: '编辑器', value: 'Editor' }, |
||||||
total: 0, |
{ label: '安卓', value: 'Android' }, |
||||||
param: { |
{ label: '苹果', value: 'Ios' }, |
||||||
platform: "", |
], |
||||||
ip: "", |
state: [ |
||||||
versionName: "", |
{ label: '测试', value: 0 }, |
||||||
channelType: "", |
{ label: '审核', value: 2 }, |
||||||
state: 0, |
{ label: '正式', value: 1 }, |
||||||
hotfixVersion: "", |
], |
||||||
versionCompare: "", |
tableData: { |
||||||
url: "", |
data: [], |
||||||
box: "", |
total: 0, |
||||||
}, |
param: { |
||||||
search: { |
platform: '', |
||||||
platform: "", |
ip: '', |
||||||
ip: "", |
versionName: '', |
||||||
versionName: "", |
channelType: '', |
||||||
channelType: "", |
state: 0, |
||||||
pageNum: 1, |
hotfixVersion: '', |
||||||
pageSize: 10, |
versionCompare: '', |
||||||
}, |
url: '', |
||||||
}, |
box: '', |
||||||
allCcdBox: [], |
}, |
||||||
isShowDialog: false |
search: { |
||||||
}); |
platform: '', |
||||||
|
ip: '', |
||||||
|
versionName: '', |
||||||
|
channelType: '', |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
}, |
||||||
|
}, |
||||||
|
allCcdBox: [], |
||||||
|
isShowDialog: false, |
||||||
|
}); |
||||||
|
|
||||||
const countList = () => { |
const countList = () => { |
||||||
state.isShowDialog = false; |
state.isShowDialog = false; |
||||||
gameGetCCD(state.tableData.search).then(res => { |
gameGetCCD(state.tableData.search).then((res) => { |
||||||
// console.log("countList:", res); |
// console.log("countList:", res); |
||||||
state.tableData.total = res.data.total; |
state.tableData.total = res.data.total; |
||||||
state.tableData.data = res.data.ccdList ?? []; |
state.tableData.data = res.data.ccdList ?? []; |
||||||
}) |
}); |
||||||
}; |
}; |
||||||
const addCCD = () => { |
const addCCD = () => { |
||||||
if (state.tableData.param.box) { |
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=" |
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 => { |
gameAddCCD(state.tableData.param).then((res) => { |
||||||
console.log("countList:", res); |
console.log('countList:', res); |
||||||
countList() |
countList(); |
||||||
}) |
}); |
||||||
}; |
}; |
||||||
const delCCD = (id: number) => { |
const delCCD = (id: number) => { |
||||||
gameDelCCD({id: id}).then(res => { |
gameDelCCD({ id: id }).then((res) => { |
||||||
console.log("countList:", res); |
console.log('countList:', res); |
||||||
countList() |
countList(); |
||||||
}) |
}); |
||||||
}; |
}; |
||||||
const fixCCD = (row: any) => { |
const fixCCD = (row: any) => { |
||||||
onOpenAddDic(); |
onOpenAddDic(); |
||||||
state.tableData.param = row; |
state.tableData.param = row; |
||||||
let box = row.url.split("https://a.unity.cn/client_api/v1/buckets/")[1]; |
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] |
state.tableData.param.box = box.split('/entry_by_path/content/?path=')[0]; |
||||||
console.log(state.tableData.param) |
console.log(state.tableData.param); |
||||||
}; |
}; |
||||||
|
|
||||||
const onTableRowClassName = ({row, rowIndex}: any) => { |
const onTableRowClassName = ({ row, rowIndex }: any) => { |
||||||
console.log("onTableRowClassName", row, rowIndex); |
console.log('onTableRowClassName', row, rowIndex); |
||||||
if (row.Day % 2 == 0 || row.day % 2 == 0) { |
if (row.Day % 2 == 0 || row.day % 2 == 0) { |
||||||
return 'warning-row'; |
return 'warning-row'; |
||||||
} else { |
} else { |
||||||
return ''; |
return ''; |
||||||
} |
} |
||||||
}; |
}; |
||||||
const handleCurrentChange = (val: number) => { |
const handleCurrentChange = (val: number) => { |
||||||
// console.log(`current page: ${val}`); |
// console.log(`current page: ${val}`); |
||||||
state.tableData.search.pageNum = val; |
state.tableData.search.pageNum = val; |
||||||
countList(); |
countList(); |
||||||
}; |
}; |
||||||
|
|
||||||
// 打开新增字典弹窗 |
// 打开新增字典弹窗 |
||||||
const onOpenAddDic = () => { |
const onOpenAddDic = () => { |
||||||
state.isShowDialog = true; |
state.isShowDialog = true; |
||||||
state.tableData.param = { |
state.tableData.param = { |
||||||
platform: "", |
platform: '', |
||||||
ip: "", |
ip: '', |
||||||
versionName: "", |
versionName: '', |
||||||
channelType: "", |
channelType: '', |
||||||
state: 0, |
state: 0, |
||||||
hotfixVersion: "", |
hotfixVersion: '', |
||||||
versionCompare: "", |
versionCompare: '', |
||||||
url: "", |
url: '', |
||||||
box: "", |
box: '', |
||||||
}; |
}; |
||||||
}; |
}; |
||||||
onMounted(() => { |
// 打开新增字典弹窗 |
||||||
countList() |
const onOpenCheckCCD = () => { |
||||||
|
checkDicRef.value.openDialog(); |
||||||
|
}; |
||||||
|
onMounted(() => { |
||||||
|
countList(); |
||||||
|
|
||||||
allChannelList().then(res => { |
allChannelList().then((res) => { |
||||||
state.channel = res; |
state.channel = res; |
||||||
}); |
}); |
||||||
|
|
||||||
allCcdList().then(res => { |
allCcdList().then((res) => { |
||||||
console.log("allCcdList: ", res) |
console.log('allCcdList: ', res); |
||||||
state.allCcdBox = res; |
state.allCcdBox = res; |
||||||
}); |
}); |
||||||
}); |
}); |
||||||
return { |
return { |
||||||
onTableRowClassName, |
checkDicRef, |
||||||
handleCurrentChange, |
onTableRowClassName, |
||||||
countList, |
handleCurrentChange, |
||||||
addCCD, |
countList, |
||||||
delCCD, |
addCCD, |
||||||
fixCCD, |
delCCD, |
||||||
onOpenAddDic, |
fixCCD, |
||||||
...toRefs(state), |
onOpenCheckCCD, |
||||||
}; |
onOpenAddDic, |
||||||
}, |
...toRefs(state), |
||||||
|
}; |
||||||
|
}, |
||||||
}); |
}); |
||||||
</script> |
</script> |
||||||
<style scoped lang="scss"> |
<style scoped lang="scss"> |
||||||
.el-form-item { |
.el-form-item { |
||||||
display: -moz-flex; |
display: -moz-flex; |
||||||
vertical-align: middle; |
vertical-align: middle; |
||||||
margin-right: 32px; |
margin-right: 32px; |
||||||
} |
} |
||||||
|
|
||||||
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td { |
::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 { |
::v-deep .el-table .el-table--enable-row-hover .el-table__body tr:hover > td { |
||||||
background: inherit; |
background: inherit; |
||||||
} |
} |
||||||
</style> |
</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