91 changed files with 13117 additions and 3977 deletions
@ -0,0 +1,955 @@ |
|||||||
|
[ |
||||||
|
{ |
||||||
|
"AchievementsId": 1, |
||||||
|
"AchievementsName": "神木擎天接紫霄", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "不死树等级达到{0}", |
||||||
|
"RequirementTpye": 41, |
||||||
|
"TargetType": [ |
||||||
|
30 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2, |
||||||
|
"AchievementsName": "百榫连城筑铁壁", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计加固建筑{0}次", |
||||||
|
"RequirementTpye": 36, |
||||||
|
"TargetType": [ |
||||||
|
100 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3, |
||||||
|
"AchievementsName": "桃谷春秋历百转", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "桃谷度过{0}天", |
||||||
|
"RequirementTpye": 43, |
||||||
|
"TargetType": [ |
||||||
|
100 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 4, |
||||||
|
"AchievementsName": "悬壶济世百草方", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计使用药品{0}次", |
||||||
|
"RequirementTpye": 35, |
||||||
|
"TargetType": [ |
||||||
|
100 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 5, |
||||||
|
"AchievementsName": "晨耕暮织五十笺", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计完成日常任务{0}个", |
||||||
|
"RequirementTpye": 38, |
||||||
|
"TargetType": [ |
||||||
|
50 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 6, |
||||||
|
"AchievementsName": "霓裳织就云霞色", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计制作{0}件衣服", |
||||||
|
"RequirementTpye": 40, |
||||||
|
"TargetType": [ |
||||||
|
200 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 7, |
||||||
|
"AchievementsName": "八野嘉禾覆阡陌", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "解锁{0}种农作物", |
||||||
|
"RequirementTpye": 32, |
||||||
|
"TargetType": [ |
||||||
|
8 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 8, |
||||||
|
"AchievementsName": "六千驿马络桃川", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "{0}个村落声望值达到{3}", |
||||||
|
"RequirementTpye": 12, |
||||||
|
"TargetType": [ |
||||||
|
1, |
||||||
|
6000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 9, |
||||||
|
"AchievementsName": "雄关血铸镇妖门", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": false, |
||||||
|
"Describe": "成功研究{7}最高级科技", |
||||||
|
"RequirementTpye": 33, |
||||||
|
"TargetType": [ |
||||||
|
2310 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 10, |
||||||
|
"AchievementsName": "金鸡栖梧鸣桃坞", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "桃谷内同时存在鸡{0}只", |
||||||
|
"RequirementTpye": 44, |
||||||
|
"TargetType": [ |
||||||
|
50 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 11, |
||||||
|
"AchievementsName": "采薇人归暮云深", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计采集谷外小资源{0}次", |
||||||
|
"RequirementTpye": 37, |
||||||
|
"TargetType": [ |
||||||
|
500 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 12, |
||||||
|
"AchievementsName": "比邻共饮桃花酿", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": false, |
||||||
|
"Describe": "邀请一个邻居", |
||||||
|
"RequirementTpye": 17, |
||||||
|
"TargetType": [ |
||||||
|
0 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 7207, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 13, |
||||||
|
"AchievementsName": "二十炊烟绕新柳", |
||||||
|
"AchievementsType": 1, |
||||||
|
"IsProgress": false, |
||||||
|
"Describe": "规模达到{0}", |
||||||
|
"RequirementTpye": 1, |
||||||
|
"TargetType": [ |
||||||
|
20 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 20000, |
||||||
|
"RewareId2": 7211, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2001, |
||||||
|
"AchievementsName": "桃谷春秋贮万粟", |
||||||
|
"AchievementsType": 2, |
||||||
|
"IsProgress": false, |
||||||
|
"Describe": "桃谷基础食物达到{0}", |
||||||
|
"RequirementTpye": 42, |
||||||
|
"TargetType": [ |
||||||
|
100000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 40000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2002, |
||||||
|
"AchievementsName": "玄甲夜戍五十更", |
||||||
|
"AchievementsType": 2, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "攻城战累计胜利{0}次", |
||||||
|
"RequirementTpye": 8, |
||||||
|
"TargetType": [ |
||||||
|
50 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 40000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2003, |
||||||
|
"AchievementsName": "踏遍千山寻仙踪", |
||||||
|
"AchievementsType": 2, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计完成探索{0}次", |
||||||
|
"RequirementTpye": 10, |
||||||
|
"TargetType": [ |
||||||
|
100 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 40000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2004, |
||||||
|
"AchievementsName": "百器流光缀桃源", |
||||||
|
"AchievementsType": 2, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "解锁{0}个建筑皮肤", |
||||||
|
"RequirementTpye": 14, |
||||||
|
"TargetType": [ |
||||||
|
5 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 40000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2005, |
||||||
|
"AchievementsName": "四海皆闻桃源名", |
||||||
|
"AchievementsType": 2, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "{0}个村落声望值达到{3}", |
||||||
|
"RequirementTpye": 12, |
||||||
|
"TargetType": [ |
||||||
|
4, |
||||||
|
6000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 40000, |
||||||
|
"RewareId2": 140000, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2006, |
||||||
|
"AchievementsName": "百家灯火续长明", |
||||||
|
"AchievementsType": 2, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "族谱中记录的村民数量累计{0}个", |
||||||
|
"RequirementTpye": 22, |
||||||
|
"TargetType": [ |
||||||
|
200 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 40000, |
||||||
|
"RewareId2": 140001, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2007, |
||||||
|
"AchievementsName": "初砺魂石现锋芒", |
||||||
|
"AchievementsType": 2, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "{0}个勇士的体魂达到{3}级", |
||||||
|
"RequirementTpye": 9, |
||||||
|
"TargetType": [ |
||||||
|
1, |
||||||
|
10 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 40000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2008, |
||||||
|
"AchievementsName": "千里鹅毛寄桃源", |
||||||
|
"AchievementsType": 2, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计收到村落赠送的礼物{0}份", |
||||||
|
"RequirementTpye": 34, |
||||||
|
"TargetType": [ |
||||||
|
50 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 40000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2009, |
||||||
|
"AchievementsName": "千券化作炊烟去", |
||||||
|
"AchievementsType": 2, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计消耗{1}{0}个", |
||||||
|
"RequirementTpye": 39, |
||||||
|
"TargetType": [ |
||||||
|
701, |
||||||
|
4000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 40000, |
||||||
|
"RewareId2": 140007, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 2010, |
||||||
|
"AchievementsName": "百战黄沙砺剑鸣", |
||||||
|
"AchievementsType": 2, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计进行{0}次兽潮挑战", |
||||||
|
"RequirementTpye": 16, |
||||||
|
"TargetType": [ |
||||||
|
100 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 40000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3001, |
||||||
|
"AchievementsName": "金瓜垂垂满秋架", |
||||||
|
"AchievementsType": 3, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计获得{0}个{1}", |
||||||
|
"RequirementTpye": 7, |
||||||
|
"TargetType": [ |
||||||
|
855, |
||||||
|
1000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 60000, |
||||||
|
"RewareId2": 7208, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3002, |
||||||
|
"AchievementsName": "水芝累累覆霜圃", |
||||||
|
"AchievementsType": 3, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计获得{0}个{1}", |
||||||
|
"RequirementTpye": 7, |
||||||
|
"TargetType": [ |
||||||
|
856, |
||||||
|
1000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 60000, |
||||||
|
"RewareId2": 7207, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3003, |
||||||
|
"AchievementsName": "千禽过隙录桃簿", |
||||||
|
"AchievementsType": 3, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计获得{0}只{1}", |
||||||
|
"RequirementTpye": 7, |
||||||
|
"TargetType": [ |
||||||
|
8001, |
||||||
|
1000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 60000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3004, |
||||||
|
"AchievementsName": "万粟流转太平策", |
||||||
|
"AchievementsType": 3, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计制作{0}份菜品", |
||||||
|
"RequirementTpye": 11, |
||||||
|
"TargetType": [ |
||||||
|
10000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 60000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3005, |
||||||
|
"AchievementsName": "一竿钓尽武陵春", |
||||||
|
"AchievementsType": 3, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计获得{0}条{1}", |
||||||
|
"RequirementTpye": 7, |
||||||
|
"TargetType": [ |
||||||
|
131, |
||||||
|
500 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 60000, |
||||||
|
"RewareId2": 140002, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3006, |
||||||
|
"AchievementsName": "千蟹横行入瓮来", |
||||||
|
"AchievementsType": 3, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计获得{0}只{1}", |
||||||
|
"RequirementTpye": 7, |
||||||
|
"TargetType": [ |
||||||
|
113, |
||||||
|
1000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 60000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3007, |
||||||
|
"AchievementsName": "渔溪慈航渡五十", |
||||||
|
"AchievementsType": 3, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计在{2}捐赠{0}次", |
||||||
|
"RequirementTpye": 27, |
||||||
|
"TargetType": [ |
||||||
|
3002, |
||||||
|
50 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 60000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3008, |
||||||
|
"AchievementsName": "赤丘燃灯明千帐", |
||||||
|
"AchievementsType": 3, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计在{2}捐赠{0}次", |
||||||
|
"RequirementTpye": 27, |
||||||
|
"TargetType": [ |
||||||
|
3003, |
||||||
|
50 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 60000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3009, |
||||||
|
"AchievementsName": "太姥织云庇万椽", |
||||||
|
"AchievementsType": 3, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计在{2}捐赠{0}次", |
||||||
|
"RequirementTpye": 27, |
||||||
|
"TargetType": [ |
||||||
|
3004, |
||||||
|
50 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 60000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 3010, |
||||||
|
"AchievementsName": "广纳流民筑新庐", |
||||||
|
"AchievementsType": 3, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计接纳{0}位难民", |
||||||
|
"RequirementTpye": 21, |
||||||
|
"TargetType": [ |
||||||
|
100 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 60000, |
||||||
|
"RewareId2": 7320, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 4001, |
||||||
|
"AchievementsName": "人生七十古来稀", |
||||||
|
"AchievementsType": 4, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计{0}个村民寿命达到{3}岁", |
||||||
|
"RequirementTpye": 2, |
||||||
|
"TargetType": [ |
||||||
|
20, |
||||||
|
70 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 80000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 4002, |
||||||
|
"AchievementsName": "三魂淬火铸金身", |
||||||
|
"AchievementsType": 4, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "{0}个勇士的体魂达到{3}级", |
||||||
|
"RequirementTpye": 9, |
||||||
|
"TargetType": [ |
||||||
|
3, |
||||||
|
15 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 80000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 4003, |
||||||
|
"AchievementsName": "万贯春风扫落英", |
||||||
|
"AchievementsType": 4, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计获得{0}个铜钱", |
||||||
|
"RequirementTpye": 7, |
||||||
|
"TargetType": [ |
||||||
|
210000, |
||||||
|
100000000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 80000, |
||||||
|
"RewareId2": 140005, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 4004, |
||||||
|
"AchievementsName": "百匠授业承星火", |
||||||
|
"AchievementsType": 4, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计有{0}个村民通过学习获得技能", |
||||||
|
"RequirementTpye": 26, |
||||||
|
"TargetType": [ |
||||||
|
100 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 80000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 4005, |
||||||
|
"AchievementsName": "半百檐铃缀桃源", |
||||||
|
"AchievementsType": 4, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "解锁{0}种装饰品", |
||||||
|
"RequirementTpye": 13, |
||||||
|
"TargetType": [ |
||||||
|
50 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 80000, |
||||||
|
"RewareId2": 140004, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 4006, |
||||||
|
"AchievementsName": "檐角流光驻春秋", |
||||||
|
"AchievementsType": 4, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "拥有{0}个建筑每日耐久度+1", |
||||||
|
"RequirementTpye": 15, |
||||||
|
"TargetType": [ |
||||||
|
3 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 80000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 4007, |
||||||
|
"AchievementsName": "比翼楼前拾遗羽", |
||||||
|
"AchievementsType": 4, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "在比翼楼中触发羽毛掉落事件{0}次", |
||||||
|
"RequirementTpye": 19, |
||||||
|
"TargetType": [ |
||||||
|
99 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 80000, |
||||||
|
"RewareId2": 140003, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 4008, |
||||||
|
"AchievementsName": "夜市点石成金手", |
||||||
|
"AchievementsType": 4, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计在{5}处获得{0}个铜钱", |
||||||
|
"RequirementTpye": 20, |
||||||
|
"TargetType": [ |
||||||
|
1070, |
||||||
|
10000000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 80000, |
||||||
|
"RewareId2": 140006, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 100001, |
||||||
|
"RewardNumber3": 1, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 4009, |
||||||
|
"AchievementsName": "千金散作桃花雨", |
||||||
|
"AchievementsType": 4, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计在{5}处花费{0}个铜钱", |
||||||
|
"RequirementTpye": 28, |
||||||
|
"TargetType": [ |
||||||
|
1068, |
||||||
|
10000000 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 80000, |
||||||
|
"RewareId2": 100000, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 5001, |
||||||
|
"AchievementsName": "鹤寿盈门映桃源", |
||||||
|
"AchievementsType": 5, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计{0}个村民寿命达到{3}岁", |
||||||
|
"RequirementTpye": 2, |
||||||
|
"TargetType": [ |
||||||
|
50, |
||||||
|
70 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 100000, |
||||||
|
"RewareId2": 100002, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 5002, |
||||||
|
"AchievementsName": "万象玄功映星辰", |
||||||
|
"AchievementsType": 5, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计{0}个村民拥有{4}技能", |
||||||
|
"RequirementTpye": 25, |
||||||
|
"TargetType": [ |
||||||
|
100, |
||||||
|
15 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 100000, |
||||||
|
"RewareId2": 0, |
||||||
|
"RewardNumber2": 0, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 5003, |
||||||
|
"AchievementsName": "一脉世居桃花源", |
||||||
|
"AchievementsType": 5, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计{0}个村民姓氏相同", |
||||||
|
"RequirementTpye": 24, |
||||||
|
"TargetType": [ |
||||||
|
50 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 100000, |
||||||
|
"RewareId2": 7227, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 5004, |
||||||
|
"AchievementsName": "担岳踏浪撼地鸣", |
||||||
|
"AchievementsType": 5, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计{0}个村民劳力达到{3}", |
||||||
|
"RequirementTpye": 3, |
||||||
|
"TargetType": [ |
||||||
|
1, |
||||||
|
70 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 100000, |
||||||
|
"RewareId2": 220000, |
||||||
|
"RewardNumber2": 100, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 5005, |
||||||
|
"AchievementsName": "观天织雾解玄机", |
||||||
|
"AchievementsType": 5, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计{0}个村民智力达到{3}", |
||||||
|
"RequirementTpye": 4, |
||||||
|
"TargetType": [ |
||||||
|
1, |
||||||
|
70 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 100000, |
||||||
|
"RewareId2": 220000, |
||||||
|
"RewardNumber2": 100, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 5006, |
||||||
|
"AchievementsName": "八旬仙人隐桃谷", |
||||||
|
"AchievementsType": 5, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "累计{0}个村民年龄达到{3}", |
||||||
|
"RequirementTpye": 5, |
||||||
|
"TargetType": [ |
||||||
|
1, |
||||||
|
80 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 100000, |
||||||
|
"RewareId2": 220000, |
||||||
|
"RewardNumber2": 100, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"AchievementsId": 5008, |
||||||
|
"AchievementsName": "千姓共织桃源梦", |
||||||
|
"AchievementsType": 5, |
||||||
|
"IsProgress": true, |
||||||
|
"Describe": "桃谷中出现过{0}个姓氏", |
||||||
|
"RequirementTpye": 45, |
||||||
|
"TargetType": [ |
||||||
|
300 |
||||||
|
], |
||||||
|
"RewareId1": 210000, |
||||||
|
"RewardNumber1": 100000, |
||||||
|
"RewareId2": 140009, |
||||||
|
"RewardNumber2": 1, |
||||||
|
"RewareId3": 0, |
||||||
|
"RewardNumber3": 0, |
||||||
|
"RewareId4": 0, |
||||||
|
"RewardNumber4": 0 |
||||||
|
} |
||||||
|
] |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@ |
|||||||
|
[ |
||||||
|
{ |
||||||
|
"Id": 1, |
||||||
|
"GemId": 1204, |
||||||
|
"ItemId": 1205, |
||||||
|
"Num": 50 |
||||||
|
} |
||||||
|
] |
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
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,124 @@ |
|||||||
|
<template> |
||||||
|
<div> |
||||||
|
<el-dialog :title="isNew ? '新增服务器推荐' : '修改服务器推荐'" v-model="isShowDialog" width="769px"> |
||||||
|
<el-form label-width="90px" label-position="right"> |
||||||
|
<el-form-item label="是否推荐" prop="recommend"> |
||||||
|
<el-select v-model="queryParams.recommend" class="m-2" placeholder="选择推荐"> |
||||||
|
<el-option label="推荐" :value="1" /> |
||||||
|
<el-option label="不推荐" :value="0" /> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="服务器" prop="servers"> |
||||||
|
<el-select v-model="serverSwitch" class="m-2" @change="changeServer" 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="queryParams.servers" multiple collapse-tags clearable class="m-2" placeholder="选择服务器" size="large"> |
||||||
|
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" /> |
||||||
|
</el-select> |
||||||
|
</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="addItem"> |
||||||
|
<el-icon> |
||||||
|
<ele-EditPen /> |
||||||
|
</el-icon> |
||||||
|
<div v-if="isNew">新增</div> |
||||||
|
<div v-else>修改</div> |
||||||
|
</el-button> |
||||||
|
</span> |
||||||
|
</template> |
||||||
|
</el-dialog> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts"> |
||||||
|
import { reactive, toRefs, defineComponent } from 'vue'; |
||||||
|
import { ElLoading } from 'element-plus'; |
||||||
|
import { gameAddLoginUrl } from '/@/api/game'; |
||||||
|
import { ServerCategorize, serverList } from '/@/utils/game'; |
||||||
|
import { gSwitchServer } from '/@/utils/utils'; |
||||||
|
|
||||||
|
interface TableDataState { |
||||||
|
isShowDialog: boolean; |
||||||
|
isNew: boolean; |
||||||
|
queryParams: object; |
||||||
|
servers: object[]; |
||||||
|
serverSwitch: number; |
||||||
|
serverCategorize: object[]; |
||||||
|
} |
||||||
|
|
||||||
|
export default defineComponent({ |
||||||
|
name: 'systemEditRecommendData', |
||||||
|
setup(prop, { emit }) { |
||||||
|
const state = reactive<TableDataState>({ |
||||||
|
isShowDialog: false, |
||||||
|
isNew: false, |
||||||
|
queryParams: { recommend: 0, servers: [] }, |
||||||
|
servers: [], |
||||||
|
serverCategorize: ServerCategorize, |
||||||
|
serverSwitch: 0, |
||||||
|
}); |
||||||
|
const switchServer = () => { |
||||||
|
return gSwitchServer(state.serverSwitch, state.servers); |
||||||
|
}; |
||||||
|
// 打开弹窗 |
||||||
|
const openDialog = (row: any | null) => { |
||||||
|
state.isShowDialog = true; |
||||||
|
console.log('openDialog: >>>>>>>>>>>', row); |
||||||
|
serverList().then((res) => { |
||||||
|
state.servers = res; |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
// 关闭弹窗 |
||||||
|
const closeDialog = () => { |
||||||
|
state.isShowDialog = false; |
||||||
|
}; |
||||||
|
// 取消 |
||||||
|
const onCancel = () => { |
||||||
|
closeDialog(); |
||||||
|
}; |
||||||
|
// 新增 |
||||||
|
const addItem = () => { |
||||||
|
const loading = ElLoading.service({ |
||||||
|
lock: true, |
||||||
|
text: 'Loading', |
||||||
|
background: 'rgba(0, 0, 0, 0.7)', |
||||||
|
}); |
||||||
|
|
||||||
|
for (let i in state.queryParams.servers) { |
||||||
|
updateItem(state.queryParams.servers[i]); |
||||||
|
} |
||||||
|
|
||||||
|
loading.close(); |
||||||
|
closeDialog(); |
||||||
|
}; |
||||||
|
const updateItem = (server: number) => { |
||||||
|
gameAddLoginUrl({ recommend: state.queryParams.recommend, id: server }) |
||||||
|
.then((res) => { |
||||||
|
console.log(res); |
||||||
|
emit('countList'); |
||||||
|
}) |
||||||
|
.finally(function () {}); |
||||||
|
}; |
||||||
|
const changeServer = () => { |
||||||
|
let servers = gSwitchServer(state.serverSwitch, state.servers); |
||||||
|
state.queryParams.servers = []; |
||||||
|
for (let i in servers) { |
||||||
|
state.queryParams.servers.push(servers[i].id); |
||||||
|
} |
||||||
|
}; |
||||||
|
return { |
||||||
|
changeServer, |
||||||
|
switchServer, |
||||||
|
openDialog, |
||||||
|
closeDialog, |
||||||
|
onCancel, |
||||||
|
addItem, |
||||||
|
...toRefs(state), |
||||||
|
}; |
||||||
|
}, |
||||||
|
}); |
||||||
|
</script> |
@ -0,0 +1,125 @@ |
|||||||
|
<template> |
||||||
|
<div> |
||||||
|
<el-dialog :title="isNew ? '新增服务器状态' : '修改服务器状态'" v-model="isShowDialog" width="769px"> |
||||||
|
<el-form label-width="90px" label-position="right"> |
||||||
|
<el-form-item label="服务器状态" prop="state"> |
||||||
|
<el-select v-model="queryParams.state" class="m-2" placeholder="选择服务器状态"> |
||||||
|
<el-option label="正常" :value="1" /> |
||||||
|
<el-option label="维护" :value="2" /> |
||||||
|
<el-option label="白名单" :value="3" /> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="服务器" prop="servers"> |
||||||
|
<el-select v-model="serverSwitch" class="m-2" @change="changeServer" 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="queryParams.servers" multiple collapse-tags clearable class="m-2" placeholder="选择服务器" size="large"> |
||||||
|
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" /> |
||||||
|
</el-select> |
||||||
|
</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="addItem"> |
||||||
|
<el-icon> |
||||||
|
<ele-EditPen /> |
||||||
|
</el-icon> |
||||||
|
<div v-if="isNew">新增</div> |
||||||
|
<div v-else>修改</div> |
||||||
|
</el-button> |
||||||
|
</span> |
||||||
|
</template> |
||||||
|
</el-dialog> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts"> |
||||||
|
import { reactive, toRefs, defineComponent } from 'vue'; |
||||||
|
import { ElLoading } from 'element-plus'; |
||||||
|
import { gameAddLoginUrl } from '/@/api/game'; |
||||||
|
import { ServerCategorize, serverList } from '/@/utils/game'; |
||||||
|
import { gSwitchServer } from '/@/utils/utils'; |
||||||
|
|
||||||
|
interface TableDataState { |
||||||
|
isShowDialog: boolean; |
||||||
|
isNew: boolean; |
||||||
|
queryParams: object; |
||||||
|
servers: object[]; |
||||||
|
serverSwitch: number; |
||||||
|
serverCategorize: object[]; |
||||||
|
} |
||||||
|
|
||||||
|
export default defineComponent({ |
||||||
|
name: 'systemEditRecommendData', |
||||||
|
setup(prop, { emit }) { |
||||||
|
const state = reactive<TableDataState>({ |
||||||
|
isShowDialog: false, |
||||||
|
isNew: false, |
||||||
|
queryParams: { state: 1, servers: [] }, |
||||||
|
servers: [], |
||||||
|
serverCategorize: ServerCategorize, |
||||||
|
serverSwitch: 0, |
||||||
|
}); |
||||||
|
const switchServer = () => { |
||||||
|
return gSwitchServer(state.serverSwitch, state.servers); |
||||||
|
}; |
||||||
|
// 打开弹窗 |
||||||
|
const openDialog = () => { |
||||||
|
state.isShowDialog = true; |
||||||
|
serverList().then((res) => { |
||||||
|
state.servers = res; |
||||||
|
console.log('openDialog: >>>>>>>>>>>', res); |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
// 关闭弹窗 |
||||||
|
const closeDialog = () => { |
||||||
|
state.isShowDialog = false; |
||||||
|
}; |
||||||
|
// 取消 |
||||||
|
const onCancel = () => { |
||||||
|
closeDialog(); |
||||||
|
}; |
||||||
|
// 新增 |
||||||
|
const addItem = () => { |
||||||
|
const loading = ElLoading.service({ |
||||||
|
lock: true, |
||||||
|
text: 'Loading', |
||||||
|
background: 'rgba(0, 0, 0, 0.7)', |
||||||
|
}); |
||||||
|
|
||||||
|
for (let i in state.queryParams.servers) { |
||||||
|
updateItem(state.queryParams.servers[i]); |
||||||
|
} |
||||||
|
|
||||||
|
loading.close(); |
||||||
|
closeDialog(); |
||||||
|
}; |
||||||
|
const updateItem = (server: number) => { |
||||||
|
gameAddLoginUrl({ state: state.queryParams.state, id: server }) |
||||||
|
.then((res) => { |
||||||
|
console.log(res); |
||||||
|
emit('countList'); |
||||||
|
}) |
||||||
|
.finally(function () {}); |
||||||
|
}; |
||||||
|
const changeServer = () => { |
||||||
|
let servers = gSwitchServer(state.serverSwitch, state.servers); |
||||||
|
state.queryParams.servers = []; |
||||||
|
for (let i in servers) { |
||||||
|
state.queryParams.servers.push(servers[i].id); |
||||||
|
} |
||||||
|
}; |
||||||
|
return { |
||||||
|
changeServer, |
||||||
|
switchServer, |
||||||
|
openDialog, |
||||||
|
closeDialog, |
||||||
|
onCancel, |
||||||
|
addItem, |
||||||
|
...toRefs(state), |
||||||
|
}; |
||||||
|
}, |
||||||
|
}); |
||||||
|
</script> |
@ -1,173 +1,205 @@ |
|||||||
<template> |
<template> |
||||||
<div> |
<div> |
||||||
<!-- <el-card shadow="hover" header="">--> |
<el-form class="flex-warp" label-position="right"> |
||||||
<!-- <div class="mb15">--> |
<el-form-item> |
||||||
<el-form class="flex-warp" label-position="right"> |
<el-button type="success" class="ml10" @click="reloadServer"> |
||||||
<el-form-item> |
<el-icon> |
||||||
<!-- <el-button type="success" class="ml10" @click="onOpenAddDic">--> |
<ele-FolderAdd /> |
||||||
<!-- <el-icon>--> |
</el-icon> |
||||||
<!-- <ele-FolderAdd/>--> |
重载配置 |
||||||
<!-- </el-icon>--> |
</el-button> |
||||||
<!-- 新增参数--> |
</el-form-item> |
||||||
<!-- </el-button>--> |
<el-form-item> |
||||||
<el-button type="success" class="ml10" @click="reloadServer"> |
<el-button type="success" class="ml10" @click="countList"> 刷新列表</el-button> |
||||||
<el-icon> |
</el-form-item> |
||||||
<ele-FolderAdd/> |
<el-form-item> |
||||||
</el-icon> |
<el-button type="success" class="ml10" @click="onOpenRecommendDic">批量修改推荐</el-button> |
||||||
重载配置 |
</el-form-item> |
||||||
</el-button> |
<el-form-item> |
||||||
</el-form-item> |
<el-button type="success" class="ml10" @click="onOpenStateDic">批量修改服务器状态</el-button> |
||||||
<el-form-item> |
</el-form-item> |
||||||
<el-button type="success" class="ml10" @click="countList"> |
<el-table :data="tableData.data" style="width: 100%" stripe border> |
||||||
刷新列表 |
<el-table-column prop="id" label="ID" width="65"> |
||||||
</el-button> |
<template #default="scope"> |
||||||
</el-form-item> |
{{ scope.row.id }} |
||||||
<el-table :data="tableData.data" style="width: 100%" stripe border> |
</template> |
||||||
<el-table-column prop="id" label="ID" width="60"> |
</el-table-column> |
||||||
<template #default="scope"> |
<el-table-column prop="remark" label="服务器名称" width="180" /> |
||||||
{{scope.row.id}} |
<el-table-column prop="name" label="服务器名称" width="180" /> |
||||||
</template> |
<el-table-column prop="host" label="服务器地址" width="240" /> |
||||||
</el-table-column> |
<el-table-column prop="port" label="服务器端口" width="80" /> |
||||||
<el-table-column prop="remark" label="服务器名称" width="180"/> |
<el-table-column prop="state" label="服务器状态" width="100"> |
||||||
<el-table-column prop="name" label="服务器名称" width="180"/> |
<template #default="scope"> |
||||||
<el-table-column prop="host" label="服务器地址" width="240"/> |
<div v-if="scope.row.state === 1">正常</div> |
||||||
<el-table-column prop="port" label="服务器端口" width="80"/> |
<div v-else-if="scope.row.state === 2">维护</div> |
||||||
<el-table-column prop="state" label="服务器状态" width="100"> |
<div v-else-if="scope.row.state === 3">白名单</div> |
||||||
<template #default="scope"> |
</template> |
||||||
<div v-if="scope.row.state===1">正常</div> |
</el-table-column> |
||||||
<div v-else-if="scope.row.state===2">维护</div> |
<el-table-column prop="recommend" label="推荐" width="100"> |
||||||
<div v-else-if="scope.row.state===3">白名单</div> |
<template #default="scope"> |
||||||
</template> |
<div v-if="scope.row.recommend === 1">推荐</div> |
||||||
</el-table-column> |
<div v-else-if="scope.row.recommend === 0">不推荐</div> |
||||||
<el-table-column prop="recommend" label="推荐" width="100"> |
</template> |
||||||
<template #default="scope"> |
</el-table-column> |
||||||
<div v-if="scope.row.recommend===1">推荐</div> |
<el-table-column prop="difficulty" label="难度" width="100"> |
||||||
<div v-else-if="scope.row.recommend===0">不推荐</div> |
<template #default="scope"> |
||||||
</template> |
<div v-if="scope.row.difficulty === 1">普通</div> |
||||||
</el-table-column> |
<div v-else-if="scope.row.difficulty === 2">困难</div> |
||||||
<el-table-column prop="difficulty" label="难度" width="100"> |
</template> |
||||||
<template #default="scope"> |
</el-table-column> |
||||||
<div v-if="scope.row.difficulty===1">普通</div> |
<el-table-column> |
||||||
<div v-else-if="scope.row.difficulty===2">困难</div> |
<template #default="scope"> |
||||||
</template> |
<el-button size="small" type="success" @click="onOpenEditDic(scope.row)">修改</el-button> |
||||||
</el-table-column> |
</template> |
||||||
<el-table-column> |
</el-table-column> |
||||||
<template #default="scope"> |
</el-table> |
||||||
<el-button size="small" type="success" @click="onOpenEditDic(scope.row)">修改</el-button> |
<el-row justify="space-evenly"> |
||||||
<!-- <el-button size="small" type="danger" @click="delLoginUrl(scope.row.id)">删除</el-button>--> |
<el-pagination |
||||||
</template> |
:hide-on-single-page="true" |
||||||
</el-table-column> |
v-model:page-size="tableData.params.pageSize" |
||||||
</el-table> |
:pager-count="5" |
||||||
<el-row justify="space-evenly"> |
v-model:current-page="tableData.params.pageNum" |
||||||
<el-pagination :hide-on-single-page="true" v-model:page-size="tableData.params.pageSize" :pager-count="5" |
layout="total, prev, pager, next" |
||||||
v-model:current-page="tableData.params.pageNum" layout="total, prev, pager, next" :total="tableData.total" |
:total="tableData.total" |
||||||
@current-change="handleCurrentChange"/> |
@current-change="handleCurrentChange" |
||||||
</el-row> |
/> |
||||||
</el-form> |
</el-row> |
||||||
|
</el-form> |
||||||
<EditConfig ref="editDicRef" @countList="countList"/> |
<EditConfig ref="editDicRef" @countList="countList" /> |
||||||
</div> |
<EditRecommend ref="editRecommendRef" @countList="countList" /> |
||||||
|
<EditState ref="editStateRef" @countList="countList" /> |
||||||
|
</div> |
||||||
</template> |
</template> |
||||||
|
|
||||||
<script lang="ts"> |
<script lang="ts"> |
||||||
import {toRefs, reactive, onMounted, defineComponent, ref} from 'vue'; |
import { toRefs, reactive, onMounted, defineComponent, ref } from 'vue'; |
||||||
import EditConfig from '/@/views/gameLoginUrl/list/component/editConfig.vue'; |
import EditConfig from '/@/views/gameLoginUrl/list/component/editConfig.vue'; |
||||||
import {gameGetLoginUrl, gameDelLoginUrl, gameReloadServer} from "/@/api/game"; |
import EditRecommend from '/@/views/gameLoginUrl/list/component/editRecommend.vue'; |
||||||
import {PLATFORM} from "/@/api/common/consts"; |
import EditState from '/@/views/gameLoginUrl/list/component/editState.vue'; |
||||||
|
import { gameGetLoginUrl, gameDelLoginUrl, gameReloadServer } from '/@/api/game'; |
||||||
|
import { PLATFORM } from '/@/api/common/consts'; |
||||||
|
import { serverList } from '/@/utils/game'; |
||||||
|
|
||||||
// 定义接口来定义对象的类型 |
// 定义接口来定义对象的类型 |
||||||
interface TableData{ |
interface TableData { |
||||||
id: number; |
id: number; |
||||||
ip: string; |
remark: string; |
||||||
} |
name: string; |
||||||
|
host: string; |
||||||
|
port: number; |
||||||
|
state: number; |
||||||
|
recommend: number; |
||||||
|
difficulty: number; |
||||||
|
} |
||||||
|
|
||||||
interface TableDataState{ |
interface TableDataState { |
||||||
tableData: { |
tableData: { |
||||||
data: Array<TableData>; |
data: Array<TableData>; |
||||||
total: number; |
total: number; |
||||||
params: { |
params: { |
||||||
pageNum: number; |
pageNum: number; |
||||||
pageSize: number; |
pageSize: number; |
||||||
}; |
}; |
||||||
}; |
}; |
||||||
platform: Array<{label: string, value: string}> |
platform: Array<{ label: string; value: string }>; |
||||||
} |
} |
||||||
|
|
||||||
export default defineComponent({ |
export default defineComponent({ |
||||||
name: 'apiV1GameLoginUrlList', |
name: 'apiV1ServerList', |
||||||
components: {EditConfig}, |
components: { EditConfig, EditRecommend , EditState }, |
||||||
setup(){ |
setup() { |
||||||
const editDicRef = ref(); |
const editDicRef = ref(); |
||||||
const state = reactive<TableDataState>({ |
const editRecommendRef = ref(); |
||||||
platform: PLATFORM, |
const editStateRef = ref(); |
||||||
tableData: { |
const state = reactive<TableDataState>({ |
||||||
data: [], |
platform: PLATFORM, |
||||||
total: 0, |
tableData: { |
||||||
params: { |
data: [], |
||||||
pageNum: 1, |
total: 0, |
||||||
pageSize: 10, |
params: { |
||||||
}, |
pageNum: 1, |
||||||
}, |
pageSize: 10, |
||||||
}); |
}, |
||||||
// 打开新增字典弹窗 |
}, |
||||||
const onOpenAddDic = () => { |
}); |
||||||
editDicRef.value.openDialog(); |
// 打开新增字典弹窗 |
||||||
}; |
const onOpenAddDic = () => { |
||||||
// 打开修改字典弹窗 |
editDicRef.value.openDialog(); |
||||||
const onOpenEditDic = (row: TableData) => { |
}; |
||||||
editDicRef.value.openDialog(row); |
// 打开修改字典弹窗 |
||||||
}; |
const onOpenEditDic = (row: TableData) => { |
||||||
const countList = () => { |
editDicRef.value.openDialog(row); |
||||||
gameGetLoginUrl(state.tableData.params).then(res => { |
}; |
||||||
console.log("countList:", res); |
// 打开新增字典弹窗 |
||||||
state.tableData.total = res.data.total || 1; |
const onOpenRecommendDic = () => { |
||||||
state.tableData.data = res.data.loginUrlList ?? []; |
editRecommendRef.value.openDialog(); |
||||||
console.log("countList:", state.tableData); |
}; |
||||||
}) |
// 打开新增字典弹窗 |
||||||
}; |
const onOpenStateDic = () => { |
||||||
|
editStateRef.value.openDialog(); |
||||||
|
}; |
||||||
|
const countList = () => { |
||||||
|
gameGetLoginUrl(state.tableData.params).then((res) => { |
||||||
|
console.log('countList:', res); |
||||||
|
state.tableData.total = res.data.total || 1; |
||||||
|
state.tableData.data = res.data.loginUrlList ?? []; |
||||||
|
console.log('countList:', state.tableData); |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
const delLoginUrl = (id: number) => { |
const delLoginUrl = (id: number) => { |
||||||
gameDelLoginUrl({id: id}).then(res => { |
gameDelLoginUrl({ id: id }).then((res) => { |
||||||
countList() |
countList(); |
||||||
}) |
}); |
||||||
}; |
}; |
||||||
|
|
||||||
const reloadServer = () => { |
const reloadServer = () => { |
||||||
gameReloadServer({}).then(res => { |
gameReloadServer({}).then((res) => {}); |
||||||
}) |
}; |
||||||
}; |
const handleCurrentChange = (val: number) => { |
||||||
const handleCurrentChange = (val: number) => { |
state.tableData.params.pageNum = val; |
||||||
state.tableData.params.pageNum = val; |
countList(); |
||||||
countList(); |
}; |
||||||
}; |
onMounted(() => { |
||||||
onMounted(() => { |
countList(); |
||||||
countList(); |
serverList().then((res) => { |
||||||
}); |
state.servers = res; |
||||||
return { |
}); |
||||||
editDicRef, |
}); |
||||||
handleCurrentChange, |
// const handleSelectionChange = (val: TableData[]) => { |
||||||
countList, |
// console.log("handleSelectionChange: ", val); |
||||||
onOpenAddDic, |
// // multipleSelection.value = val; |
||||||
onOpenEditDic, |
// }; |
||||||
delLoginUrl, |
return { |
||||||
reloadServer, |
editDicRef, |
||||||
...toRefs(state), |
editRecommendRef, |
||||||
}; |
editStateRef, |
||||||
}, |
// handleSelectionChange, |
||||||
}); |
handleCurrentChange, |
||||||
|
countList, |
||||||
|
onOpenAddDic, |
||||||
|
onOpenEditDic, |
||||||
|
onOpenRecommendDic, |
||||||
|
onOpenStateDic, |
||||||
|
delLoginUrl, |
||||||
|
reloadServer, |
||||||
|
...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> |
||||||
|
@ -0,0 +1,209 @@ |
|||||||
|
<template> |
||||||
|
<div class="game-order-container"> |
||||||
|
<el-card shadow="hover"> |
||||||
|
<div class="game-order-search mb15"> |
||||||
|
<el-form> |
||||||
|
<el-form-item label="订单Id" prop="channel"> |
||||||
|
<el-input size="default" v-model="tableData.param.order" placeholder="请输入订单Id" class="w-50 m-2" clearable /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item> |
||||||
|
<el-button size="default" type="primary" class="ml10" @click="orderList"> |
||||||
|
<el-icon> |
||||||
|
<ele-Search /> |
||||||
|
</el-icon> |
||||||
|
查询 |
||||||
|
</el-button> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
<el-table :data="tableData.data" style="width: 100%" border> |
||||||
|
<el-table-column prop="tradeNo" label="订单id" show-overflow-tooltip></el-table-column> |
||||||
|
<el-table-column prop="unitId" label="id" show-overflow-tooltip></el-table-column> |
||||||
|
<el-table-column prop="amount" label="金额(元)" show-overflow-tooltip width="120"></el-table-column> |
||||||
|
<el-table-column prop="createTime" label="充值时间" show-overflow-tooltip width="180"></el-table-column> |
||||||
|
<el-table-column prop="remark" label="状态" show-overflow-tooltip width="120"> |
||||||
|
<template #default="scope"> |
||||||
|
<div v-if="scope.row.remark == ''" style="color: #e60000">充值失败</div> |
||||||
|
<div v-else-if="scope.row.remark == 'SUCCESS'">充值成功</div> |
||||||
|
<div v-else>{{ scope.row.remark }}</div> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column prop="user" label="操作人员" show-overflow-tooltip width="120"></el-table-column> |
||||||
|
<el-table-column prop="channel" label="渠道" show-overflow-tooltip width="120"> |
||||||
|
<template #default="scope"> |
||||||
|
<span>{{ channels.find((r) => r.value == scope.row.channel)?.label }}</span> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column prop="server" label="区服" show-overflow-tooltip width="120"> |
||||||
|
<template #default="scope"> |
||||||
|
<span>{{ servers.find((r) => r.id == scope.row.server).name }}</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="orderList" |
||||||
|
layout="total, prev, pager, next" |
||||||
|
:total="tableData.total" |
||||||
|
/> |
||||||
|
</el-row> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts"> |
||||||
|
import { toRefs, reactive, onMounted, defineComponent } from 'vue'; |
||||||
|
import { gameRechargeChangeStateDelete, gmOrderList } from '/@/api/game'; |
||||||
|
import { allChannelList, ServerCategorize, serverList, ServerList } from '/@/utils/game'; |
||||||
|
import RechargeConfigCategory from '/@/api/config/RechargeConfigCategory.json'; |
||||||
|
import { ElMessage, ElMessageBox } from 'element-plus/es'; |
||||||
|
import { gSwitchServer, guid } from '/@/utils/utils'; |
||||||
|
import jwt from 'jsonwebtoken'; |
||||||
|
|
||||||
|
// 定义接口来定义对象的类型 |
||||||
|
interface TableData { |
||||||
|
id: string; |
||||||
|
CreateTime: string; |
||||||
|
CfgId: number; |
||||||
|
Rmb: number; |
||||||
|
SilverPiece: number; |
||||||
|
Identity: string; |
||||||
|
timeStr: string; |
||||||
|
uid: string; |
||||||
|
RealName: string; |
||||||
|
StringId: string; |
||||||
|
} |
||||||
|
|
||||||
|
interface TableDataState { |
||||||
|
serverSwitch: number; |
||||||
|
serverCategorize: object; |
||||||
|
tableData: { |
||||||
|
data: Array<TableData>; |
||||||
|
total: number; |
||||||
|
param: { |
||||||
|
order: string; |
||||||
|
}; |
||||||
|
}; |
||||||
|
servers: object; |
||||||
|
channels: object; |
||||||
|
rechargeInfo: object[]; |
||||||
|
} |
||||||
|
|
||||||
|
export default defineComponent({ |
||||||
|
name: 'apiV1GameOrderTransactionId', |
||||||
|
setup() { |
||||||
|
// const {proxy} = getCurrentInstance() as any; |
||||||
|
|
||||||
|
const state = reactive<TableDataState>({ |
||||||
|
serverSwitch: 0, |
||||||
|
serverCategorize: ServerCategorize, |
||||||
|
tableData: { |
||||||
|
data: [], |
||||||
|
total: 0, |
||||||
|
param: { |
||||||
|
order: '', |
||||||
|
}, |
||||||
|
}, |
||||||
|
servers: ServerList, |
||||||
|
channels: [], |
||||||
|
rechargeInfo: RechargeConfigCategory, |
||||||
|
}); |
||||||
|
|
||||||
|
const orderList = () => { |
||||||
|
// gmOrderList(state.tableData.param).then((res) => { |
||||||
|
// console.log(res); |
||||||
|
// state.tableData.total = Number(res.data.total) || 0; |
||||||
|
// state.tableData.data = res.data.list || []; |
||||||
|
// }); |
||||||
|
let time = Math.floor(Date.now() / 1000); |
||||||
|
let payload = { |
||||||
|
iss: 'b8b82821-922e-4b43-a3cf-d293020a70d1', |
||||||
|
iat: time - 10, |
||||||
|
exp: time + 3590, |
||||||
|
aud: 'appstoreconnect-v1', |
||||||
|
nonce: guid(), |
||||||
|
// "bid": "com.Avatar.PeachColony" |
||||||
|
bid: 'com.XiamenAvatar.PeachValley', |
||||||
|
}; |
||||||
|
|
||||||
|
let key_data = |
||||||
|
`-----BEGIN PRIVATE KEY----- |
||||||
|
MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQg2XqPEHgWj2cUnO2GoPfIeEcAc0tJsTehvNNNBTGf4KigCgYIKoZIzj0DAQehRANCAAT6IdBMPYuNAQYuZsYi3EkflniotI/KJa6ELt1ednywlOpuwgNOn2WXONmDzzVVMJqQjD/6FSJ4jH7fRtP+Eci6 |
||||||
|
-----END PRIVATE KEY-----`; |
||||||
|
let signture = jwt.sign(payload, key_data, {algorithm: "ES256",keyid: "J4RAWQBLHF"}); |
||||||
|
|
||||||
|
getTransactionId(signture); |
||||||
|
}; |
||||||
|
const getTransactionId = function (data) { |
||||||
|
console.log("header: %j", data); |
||||||
|
let config = { |
||||||
|
method: "GET", |
||||||
|
// url: "https://api.storekit.itunes.apple.com/inApps/v1/history/" + order7, |
||||||
|
url: "https://api.storekit.itunes.apple.com/inApps/v1/lookup/" + state.tableData.param.order, |
||||||
|
headers: {Authorization: "Bearer " + data,"Content-Type": "application/json"} |
||||||
|
}; |
||||||
|
console.log("config: %j", config); |
||||||
|
axios.request(config).then(function (response) { |
||||||
|
console.log("res", response.data.signedTransactions[0]); |
||||||
|
let decode = jwt.decode(response.data.signedTransactions[0]); |
||||||
|
console.log("decode", decode); |
||||||
|
}).catch(function (error) { |
||||||
|
console.log("error", error); |
||||||
|
// logger.error(" getTransactionId bug >> catch err: %j ", throw error); |
||||||
|
}); |
||||||
|
}; |
||||||
|
// 页面加载时 |
||||||
|
onMounted(() => { |
||||||
|
serverList().then((res) => { |
||||||
|
state.servers = res; |
||||||
|
}); |
||||||
|
allChannelList().then((res) => { |
||||||
|
state.channels = res; |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
const switchServer = () => { |
||||||
|
return gSwitchServer(state.serverSwitch, state.servers); |
||||||
|
}; |
||||||
|
const changeState = (order: string, state: number, remark: string) => { |
||||||
|
if (state != 3 && state != 2) { |
||||||
|
return; |
||||||
|
} |
||||||
|
if (state == 3) { |
||||||
|
let mess = '是否确认订单失效?,点击确认后本条订单失效。'; |
||||||
|
ElMessageBox.confirm(mess).then(() => { |
||||||
|
gameRechargeChangeStateDelete({ order: order, state: state }).then((res) => { |
||||||
|
if (res.data.data == 1) { |
||||||
|
ElMessage.success('发送成功'); |
||||||
|
} |
||||||
|
orderList(); |
||||||
|
}); |
||||||
|
}); |
||||||
|
} else if (state == 2) { |
||||||
|
ElMessageBox.prompt('请输入修改成功理由', '提示', { |
||||||
|
confirmButtonText: '确认', |
||||||
|
cancelButtonText: '取消', |
||||||
|
inputErrorMessage: 'Invalid http request', |
||||||
|
}).then(({ value }) => { |
||||||
|
gameRechargeChangeStateDelete({ order: order, state: state, remark: remark + ', ' + value }).then((res) => { |
||||||
|
if (res.data.data == 1) { |
||||||
|
ElMessage.success('发送成功'); |
||||||
|
} |
||||||
|
orderList(); |
||||||
|
}); |
||||||
|
}); |
||||||
|
} |
||||||
|
}; |
||||||
|
return { |
||||||
|
switchServer, |
||||||
|
orderList, |
||||||
|
changeState, |
||||||
|
...toRefs(state), |
||||||
|
}; |
||||||
|
}, |
||||||
|
}); |
||||||
|
</script> |
@ -1,304 +1,331 @@ |
|||||||
<template> |
<template> |
||||||
<div class="game-statistics-container"> |
<div class="game-statistics-container"> |
||||||
<el-card shadow="hover"> |
<el-card shadow="hover"> |
||||||
<div class="system-user-search mb15"> |
<div class="system-user-search mb15"> |
||||||
<el-form :inline="true"> |
<el-form :inline="true"> |
||||||
<el-form-item label="渠道" prop="channel"> |
<el-form-item label="渠道" prop="channel"> |
||||||
<el-select v-model="tableData.param.channel" class="m-2" placeholder="选择渠道"> |
<el-select v-model="tableData.param.channel" class="m-2" placeholder="选择渠道"> |
||||||
<el-option v-for="item in channels" :key="item.value" :label="item.label" :value="item.value"/> |
<el-option v-for="item in channels" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
</el-select> |
</el-select> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="选择区服" prop="server"> |
<el-form-item label="选择区服" prop="server"> |
||||||
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px"> |
<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-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
</el-select> |
</el-select> |
||||||
<el-select v-model="tableData.param.server" class="m-2" placeholder="选择区服" |
<el-select v-model="tableData.param.server" class="m-2" placeholder="选择区服" :disabled="tableData.param.channel === ''" filterable> |
||||||
:disabled="tableData.param.channel===''" filterable> |
<el-option v-for="item in switchServer()" :key="item.id + ''" :label="item.name" :value="item.id + ''" /> |
||||||
<el-option v-for="item in switchServer()" :key="item.id+''" :label="item.name" :value="item.id+''"/> |
</el-select> |
||||||
</el-select> |
</el-form-item> |
||||||
</el-form-item> |
<el-form-item label="起始日期" prop="startTime"> |
||||||
<el-form-item label="起始日期" prop="startTime"> |
<el-date-picker type="datetime" size="large" v-model="tableData.param.startTime" format="YYYY/MM/DD HH:mm:ss" value-format="x" /> |
||||||
<el-date-picker type="datetime" size="large" v-model="tableData.param.startTime" |
</el-form-item> |
||||||
format="YYYY/MM/DD HH:mm:ss" value-format="x"/> |
<el-form-item label="截止日期" prop="endTime"> |
||||||
</el-form-item> |
<el-date-picker type="datetime" size="large" v-model="tableData.param.endTime" format="YYYY/MM/DD HH:mm:ss" value-format="x" /> |
||||||
<el-form-item label="截止日期" prop="endTime"> |
</el-form-item> |
||||||
<el-date-picker type="datetime" size="large" v-model="tableData.param.endTime" |
<!-- <el-form-item label="单笔充值额度">--> |
||||||
format="YYYY/MM/DD HH:mm:ss" value-format="x"/> |
<!-- <el-input size="default" v-model="tableData.param.rechargeTotal" @change="checkRecharge"--> |
||||||
</el-form-item> |
<!-- placeholder="请输单笔充值额度"--> |
||||||
<!-- <el-form-item label="单笔充值额度">--> |
<!-- class="input-with-select">--> |
||||||
<!-- <el-input size="default" v-model="tableData.param.rechargeTotal" @change="checkRecharge"--> |
<!-- <template #prepend>--> |
||||||
<!-- placeholder="请输单笔充值额度"--> |
<!-- <el-select v-model="tableData.param.compareType1" class="m-2" placeholder=""--> |
||||||
<!-- class="input-with-select">--> |
<!-- size="default" style="width: 60px">--> |
||||||
<!-- <template #prepend>--> |
<!-- <el-option v-for="item in tableData.compareType" :key="item.value"--> |
||||||
<!-- <el-select v-model="tableData.param.compareType1" class="m-2" placeholder=""--> |
<!-- :label="item.label" :value="item.value"/>--> |
||||||
<!-- size="default" style="width: 60px">--> |
<!-- </el-select>--> |
||||||
<!-- <el-option v-for="item in tableData.compareType" :key="item.value"--> |
<!-- </template>--> |
||||||
<!-- :label="item.label" :value="item.value"/>--> |
<!-- </el-input>--> |
||||||
<!-- </el-select>--> |
<!-- </el-form-item>--> |
||||||
<!-- </template>--> |
<el-form-item label="充值总额"> |
||||||
<!-- </el-input>--> |
<el-input |
||||||
<!-- </el-form-item>--> |
size="default" |
||||||
<el-form-item label="充值总额"> |
v-model="tableData.param.rechargeMin" |
||||||
<el-input size="default" v-model="tableData.param.rechargeMin" @change="checkRecharge" |
@change="checkRecharge" |
||||||
placeholder="请输入充值总额" |
placeholder="请输入充值总额" |
||||||
class="input-with-select"> |
class="input-with-select" |
||||||
<template #prepend> |
> |
||||||
<el-select v-model="tableData.param.compareType" class="m-2" placeholder="" |
<template #prepend> |
||||||
size="default" style="width: 60px"> |
<el-select v-model="tableData.param.compareType" class="m-2" placeholder="" size="default" style="width: 60px"> |
||||||
<el-option v-for="item in tableData.compareType" :key="item.value" |
<el-option v-for="item in tableData.compareType" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
:label="item.label" :value="item.value"/> |
</el-select> |
||||||
</el-select> |
</template> |
||||||
</template> |
</el-input> |
||||||
</el-input> |
</el-form-item> |
||||||
</el-form-item> |
<el-form-item> |
||||||
<el-form-item> |
<el-button size="default" type="primary" class="ml10" @click="getRemain"> |
||||||
<el-button size="default" type="primary" class="ml10" @click="getRemain"> |
<el-icon> |
||||||
<el-icon> |
<ele-Search /> |
||||||
<ele-Search/> |
</el-icon> |
||||||
</el-icon> |
查询 |
||||||
查询 |
</el-button> |
||||||
</el-button> |
</el-form-item> |
||||||
</el-form-item> |
</el-form> |
||||||
</el-form> |
</div> |
||||||
</div> |
<el-table :data="tableData.data" border> |
||||||
<el-table :data="tableData.data" border> |
<el-table-column prop="one" label="渠道名称" width="200"> |
||||||
<el-table-column prop="one" label="渠道名称" width="200"> |
<template #default="scope"> |
||||||
<template #default="scope"> |
<span>{{ |
||||||
<span>{{ |
channels.find((i) => i.value == scope.row.channel) ? channels.find((i) => i.value == scope.row.channel).label : scope.row.channel |
||||||
channels.find(i => i.value == scope.row.channel) ? channels.find(i => i.value == scope.row.channel).label : scope.row.channel |
}}</span> |
||||||
}}</span> |
</template> |
||||||
</template> |
</el-table-column> |
||||||
</el-table-column> |
<el-table-column prop="two" label="充值" width="200"> |
||||||
<el-table-column prop="two" label="充值" width="200"> |
<template #default="scope"> |
||||||
<template #default="scope"> |
<el-popover effect="light" trigger="hover" placement="top" width="auto"> |
||||||
<!-- <div v-if="scope.row.rechargeTotal">--> |
<template #default> |
||||||
<span>{{ (scope.row.rechargeTotal / 100).toFixed(2) }}</span> |
<div>支付宝: {{ scope.row.ali || 0 }}</div> |
||||||
<!-- </div>--> |
<div>微信: {{ scope.row.wChat || 0 }}</div> |
||||||
</template> |
</template> |
||||||
</el-table-column> |
<template #reference> |
||||||
<el-table-column prop="three" label="总注册用户" width="200"> |
<span>{{ (scope.row.rechargeTotal / 100).toFixed(2) }}</span> |
||||||
<template #default="scope"> |
</template> |
||||||
<!-- <div v-if="scope.row.accountTotal">--> |
</el-popover> |
||||||
<span>{{ scope.row.accountTotal }}</span> |
</template> |
||||||
<!-- </div>--> |
</el-table-column> |
||||||
</template> |
<el-table-column prop="three" label="总注册用户" width="200"> |
||||||
</el-table-column> |
<template #default="scope"> |
||||||
<el-table-column prop="four" label="充值玩家数量" width="200"> |
<span>{{ scope.row.accountTotal }}</span> |
||||||
<template #default="scope"> |
</template> |
||||||
<!-- <div v-if="scope.row.rechargeAccountTotal">--> |
</el-table-column> |
||||||
<span>{{ scope.row.rechargeAccountTotal }}</span> |
<el-table-column prop="four" label="充值玩家数量" width="200"> |
||||||
<!-- </div>--> |
<template #default="scope"> |
||||||
</template> |
<span>{{ scope.row.rechargeAccountTotal }}</span> |
||||||
</el-table-column> |
</template> |
||||||
<el-table-column prop="five" label="付费率" width="140"> |
</el-table-column> |
||||||
<template #default="scope"> |
<el-table-column prop="five" label="付费率" width="140"> |
||||||
<span>{{ scope.row.accountPer }}</span>% |
<template #default="scope"> |
||||||
</template> |
<span>{{ scope.row.accountPer }}</span |
||||||
</el-table-column> |
>% |
||||||
<el-table-column prop="six" label="ARPU" width="200"> |
</template> |
||||||
<template #default="scope"> |
</el-table-column> |
||||||
<!-- <div v-if="scope.row.rechargePer">--> |
<el-table-column prop="six" label="ARPU" width="200"> |
||||||
<span>{{ (scope.row.rechargePer / 100).toFixed(2) }}</span> |
<template #default="scope"> |
||||||
<!-- </div>--> |
<span>{{ (scope.row.rechargePer / 100).toFixed(2) }}</span> |
||||||
</template> |
</template> |
||||||
</el-table-column> |
</el-table-column> |
||||||
<el-table-column prop="seven" label="ARPPU" width="200"> |
<el-table-column prop="seven" label="ARPPU" width="200"> |
||||||
<template #default="scope"> |
<template #default="scope"> |
||||||
<!-- <div v-if="scope.row.rechargeAccountPer">--> |
<span>{{ (scope.row.rechargeAccountPer / 100).toFixed(2) }}</span> |
||||||
<span>{{ (scope.row.rechargeAccountPer / 100).toFixed(2) }}</span> |
</template> |
||||||
<!-- </div>--> |
</el-table-column> |
||||||
</template> |
</el-table> |
||||||
</el-table-column> |
</el-card> |
||||||
</el-table> |
</div> |
||||||
</el-card> |
|
||||||
</div> |
|
||||||
</template> |
</template> |
||||||
|
|
||||||
<script lang="ts"> |
<script lang="ts"> |
||||||
import {toRefs, reactive, onMounted, defineComponent,} from 'vue'; |
import { toRefs, reactive, onMounted, defineComponent } from 'vue'; |
||||||
import {orderLog} from "/@/api/game/index"; |
import { orderLog, orderLogPlatform } from '/@/api/game/index'; |
||||||
import {allChannelList, CompareType, allServerList, ServerCategorize} from "/@/utils/game"; |
import { allChannelList, CompareType, allServerList, ServerCategorize } from '/@/utils/game'; |
||||||
import {gSwitchServer} from "/@/utils/utils"; |
import { gSwitchServer } from '/@/utils/utils'; |
||||||
|
|
||||||
// 定义接口来定义对象的类型 |
// 定义接口来定义对象的类型 |
||||||
interface TableData { |
interface TableData { |
||||||
labelName: string |
labelName: string; |
||||||
one: number |
one: number; |
||||||
two: number |
two: number; |
||||||
three: number |
three: number; |
||||||
four: number |
four: number; |
||||||
five: number |
five: number; |
||||||
six: number |
six: number; |
||||||
seven: number |
seven: number; |
||||||
fifteen: number |
fifteen: number; |
||||||
thirty: number |
thirty: number; |
||||||
} |
} |
||||||
|
|
||||||
interface TableDataState { |
interface TableDataState { |
||||||
serverSwitch: number; |
serverSwitch: number; |
||||||
tableData: { |
tableData: { |
||||||
data: Array<TableData>; |
data: Array<TableData>; |
||||||
registerNum: number; |
registerNum: number; |
||||||
param: { |
param: { |
||||||
channel: string; |
channel: string; |
||||||
server: number; |
server: number; |
||||||
rechargeMin: number; |
rechargeMin: number; |
||||||
rechargeTotal: number; |
rechargeTotal: number; |
||||||
startTime: number; |
startTime: number; |
||||||
endTime: number; |
endTime: number; |
||||||
compareType: number; |
compareType: number; |
||||||
compareType1: number; |
compareType1: number; |
||||||
}; |
}; |
||||||
total: number; |
total: number; |
||||||
compareType: object; |
compareType: object; |
||||||
}; |
}; |
||||||
servers: object; |
servers: object; |
||||||
channels: object[]; |
channels: object[]; |
||||||
dateNames: object; |
dateNames: object; |
||||||
serverCategorize: object; |
serverCategorize: object; |
||||||
} |
} |
||||||
|
|
||||||
export default defineComponent({ |
export default defineComponent({ |
||||||
name: 'apiV1SystemRoleList', |
name: 'apiV1SystemRoleList', |
||||||
setup() { |
setup() { |
||||||
const state = reactive<TableDataState>({ |
const state = reactive<TableDataState>({ |
||||||
serverSwitch: 0, |
serverSwitch: 0, |
||||||
tableData: { |
tableData: { |
||||||
data: [], |
data: [], |
||||||
param: { |
param: { |
||||||
channel: "", |
channel: '', |
||||||
server: "", |
server: '', |
||||||
startTime: "", |
startTime: '', |
||||||
endTime: "", |
endTime: '', |
||||||
rechargeMin: 0, |
rechargeMin: 0, |
||||||
rechargeTotal: 1, |
rechargeTotal: 1, |
||||||
compareType: 5, |
compareType: 5, |
||||||
compareType1: 5, |
compareType1: 5, |
||||||
}, |
}, |
||||||
compareType: CompareType |
compareType: CompareType, |
||||||
}, |
}, |
||||||
servers: [], |
servers: [], |
||||||
channels: [], |
channels: [], |
||||||
dateNames: { |
dateNames: { |
||||||
1: "one", |
1: 'one', |
||||||
2: "two", |
2: 'two', |
||||||
3: "three", |
3: 'three', |
||||||
4: "four", |
4: 'four', |
||||||
5: "five", |
5: 'five', |
||||||
6: "six", |
6: 'six', |
||||||
7: "seven", |
7: 'seven', |
||||||
15: "fifteen", |
15: 'fifteen', |
||||||
30: "thirty" |
30: 'thirty', |
||||||
}, |
}, |
||||||
serverCategorize: ServerCategorize, |
serverCategorize: ServerCategorize, |
||||||
}); |
}); |
||||||
|
|
||||||
const getRemain = () => { |
const getRemain = () => { |
||||||
var defaultData = {channel: 0, rechargeTotal: 0, rechargeAccountTotal: 0, accountTotal: 0}; |
var defaultData = { channel: 0, rechargeTotal: 0, rechargeAccountTotal: 0, accountTotal: 0 }; |
||||||
state.tableData.data = [defaultData]; |
state.tableData.data = [defaultData]; |
||||||
var rechargeMin = state.tableData.param.rechargeMin |
var rechargeMin = state.tableData.param.rechargeMin; |
||||||
if (rechargeMin > 0) { |
if (rechargeMin > 0) { |
||||||
rechargeMin = rechargeMin * 100; |
rechargeMin = rechargeMin * 100; |
||||||
} |
} |
||||||
var rechargeTotal = state.tableData.param.rechargeTotal |
var rechargeTotal = state.tableData.param.rechargeTotal; |
||||||
if (rechargeTotal > 0) { |
if (rechargeTotal > 0) { |
||||||
rechargeTotal = rechargeTotal * 100; |
rechargeTotal = rechargeTotal * 100; |
||||||
} |
} |
||||||
orderLog({ |
orderLog({ |
||||||
channel: state.tableData.param.channel, |
channel: state.tableData.param.channel, |
||||||
server: state.tableData.param.server, |
server: state.tableData.param.server, |
||||||
rechargeMin: rechargeMin, |
rechargeMin: rechargeMin, |
||||||
rechargeTotal: rechargeTotal, |
rechargeTotal: rechargeTotal, |
||||||
startTime: state.tableData.param.startTime, |
startTime: state.tableData.param.startTime, |
||||||
endTime: state.tableData.param.endTime, |
endTime: state.tableData.param.endTime, |
||||||
compareType: state.tableData.param.compareType, |
compareType: state.tableData.param.compareType, |
||||||
compareType1: state.tableData.param.compareType1, |
compareType1: state.tableData.param.compareType1, |
||||||
}).then(res => { |
}).then((res) => { |
||||||
state.tableData.total = 0; |
state.tableData.total = 0; |
||||||
console.log("keepAccount:", res); |
console.log('keepAccount:', res); |
||||||
const amountTotal = res.data && res.data.amountTotal || []; |
const amountTotal = (res.data && res.data.amountTotal) || []; |
||||||
const rechargeAccountTotal = res.data && res.data.rechargeAccountTotal || []; |
const rechargeAccountTotal = (res.data && res.data.rechargeAccountTotal) || []; |
||||||
const accountTotal = res.data && res.data.accountTotal || []; |
const accountTotal = (res.data && res.data.accountTotal) || []; |
||||||
amountTotal.map((item: any) => { |
amountTotal.map((item: any) => { |
||||||
if (!state.channels.find(r => r.value == item.channel)) { |
if (!state.channels.find((r) => r.value == item.channel)) { |
||||||
return |
return; |
||||||
} |
} |
||||||
|
|
||||||
let channelData = state.tableData.data.find(r => r.channel === item.channel); |
let channelData = state.tableData.data.find((r) => r.channel === item.channel); |
||||||
if (!channelData) { |
if (!channelData) { |
||||||
channelData = {channel: item.channel}; |
channelData = { channel: item.channel }; |
||||||
state.tableData.data.push(channelData); |
state.tableData.data.push(channelData); |
||||||
} |
} |
||||||
|
|
||||||
channelData.rechargeTotal = item.totalAmount; |
channelData.rechargeTotal = item.totalAmount; |
||||||
defaultData.rechargeTotal += Number(item.totalAmount); |
defaultData.rechargeTotal += Number(item.totalAmount); |
||||||
}); |
}); |
||||||
rechargeAccountTotal.map((item: any) => { |
rechargeAccountTotal.map((item: any) => { |
||||||
if (!state.channels.find(r => r.value == item.channel)) { |
if (!state.channels.find((r) => r.value == item.channel)) { |
||||||
return |
return; |
||||||
} |
} |
||||||
let channelData = state.tableData.data.find(r => r.channel === item.channel); |
let channelData = state.tableData.data.find((r) => r.channel === item.channel); |
||||||
if (!channelData) { |
if (!channelData) { |
||||||
channelData = {channel: item.channel}; |
channelData = { channel: item.channel }; |
||||||
state.tableData.data.push(channelData); |
state.tableData.data.push(channelData); |
||||||
} |
} |
||||||
|
|
||||||
channelData.rechargeAccountTotal = item.totalAccount; |
channelData.rechargeAccountTotal = item.totalAccount; |
||||||
defaultData.rechargeAccountTotal += Number(item.totalAccount); |
defaultData.rechargeAccountTotal += Number(item.totalAccount); |
||||||
}); |
}); |
||||||
accountTotal.map((item: any) => { |
accountTotal.map((item: any) => { |
||||||
if (!state.channels.find(r => r.value == item.channel)) { |
if (!state.channels.find((r) => r.value == item.channel)) { |
||||||
return |
return; |
||||||
} |
} |
||||||
let channelData = state.tableData.data.find(r => r.channel === item.channel); |
let channelData = state.tableData.data.find((r) => r.channel === item.channel); |
||||||
if (!channelData) { |
if (!channelData) { |
||||||
channelData = {channel: item.channel}; |
channelData = { channel: item.channel }; |
||||||
state.tableData.data.push(channelData); |
state.tableData.data.push(channelData); |
||||||
} |
} |
||||||
|
|
||||||
channelData.accountTotal = item.totalAccount; |
channelData.accountTotal = item.totalAccount; |
||||||
defaultData.accountTotal += Number(item.totalAccount); |
defaultData.accountTotal += Number(item.totalAccount); |
||||||
}); |
}); |
||||||
state.tableData.data.map((item: any) => { |
state.tableData.data.map((item: any) => { |
||||||
if (!item.rechargeAccountTotal) { |
if (!item.rechargeAccountTotal) { |
||||||
item.rechargeAccountTotal = 0 |
item.rechargeAccountTotal = 0; |
||||||
} |
} |
||||||
if (!item.accountTotal) { |
if (!item.accountTotal) { |
||||||
item.accountTotal = 0 |
item.accountTotal = 0; |
||||||
} |
} |
||||||
if (!item.rechargeTotal) { |
if (!item.rechargeTotal) { |
||||||
item.rechargeTotal = 0 |
item.rechargeTotal = 0; |
||||||
} |
} |
||||||
item.accountPer = Math.floor(item.rechargeAccountTotal / (item.accountTotal || 1) * 100); |
item.accountPer = Math.floor((item.rechargeAccountTotal / (item.accountTotal || 1)) * 100); |
||||||
item.rechargePer = item.rechargeTotal / (item.accountTotal || 1); |
item.rechargePer = item.rechargeTotal / (item.accountTotal || 1); |
||||||
item.rechargeAccountPer = item.rechargeTotal / (item.rechargeAccountTotal || 1); |
item.rechargeAccountPer = item.rechargeTotal / (item.rechargeAccountTotal || 1); |
||||||
|
}); |
||||||
|
console.log(' state.tableData.data:', state.tableData.data); |
||||||
|
}); |
||||||
|
orderLogPlatform({ |
||||||
|
channel: state.tableData.param.channel, |
||||||
|
server: state.tableData.param.server, |
||||||
|
rechargeMin: rechargeMin, |
||||||
|
rechargeTotal: rechargeTotal, |
||||||
|
startTime: state.tableData.param.startTime, |
||||||
|
endTime: state.tableData.param.endTime, |
||||||
|
compareType: state.tableData.param.compareType, |
||||||
|
compareType1: state.tableData.param.compareType1, |
||||||
|
}).then((res) => { |
||||||
|
console.log('orderLogPlatform: ', res); |
||||||
|
const amountTotal = (res.data && res.data.amountTotal) || []; |
||||||
|
amountTotal.map((item: any) => { |
||||||
|
if (!state.channels.find((r) => r.value == item.channel)) { |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
}); |
let channelData = state.tableData.data.find((r) => r.channel === item.channel); |
||||||
console.log(" state.tableData.data:", state.tableData.data); |
if (!channelData) { |
||||||
}) |
channelData = { channel: item.channel }; |
||||||
}; |
state.tableData.data.push(channelData); |
||||||
const checkRecharge = (value: any) => { |
} |
||||||
console.log("checkRecharge", value) |
if (item.platform == 1) { |
||||||
}; |
channelData.ali = (item.totalAmount / 100).toFixed(2); |
||||||
onMounted(function () { |
} |
||||||
allServerList().then(res => { |
if (item.platform == 3) { |
||||||
state.servers = res; |
channelData.wChat = (item.totalAmount / 100).toFixed(2); |
||||||
}); |
} |
||||||
allChannelList().then(res => { |
}); |
||||||
state.channels = res; |
}); |
||||||
// console.log("allChannelList", res) |
}; |
||||||
}); |
const checkRecharge = (value: any) => { |
||||||
}); |
console.log('checkRecharge', value); |
||||||
|
}; |
||||||
|
onMounted(function () { |
||||||
|
allServerList().then((res) => { |
||||||
|
state.servers = res; |
||||||
|
}); |
||||||
|
allChannelList().then((res) => { |
||||||
|
state.channels = res; |
||||||
|
// console.log("allChannelList", res) |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
const switchServer = () => { |
const switchServer = () => { |
||||||
return gSwitchServer(state.serverSwitch, state.servers) |
return gSwitchServer(state.serverSwitch, state.servers); |
||||||
}; |
}; |
||||||
return { |
return { |
||||||
switchServer, |
switchServer, |
||||||
getRemain, |
getRemain, |
||||||
checkRecharge, |
checkRecharge, |
||||||
...toRefs(state), |
...toRefs(state), |
||||||
}; |
}; |
||||||
}, |
}, |
||||||
}); |
}); |
||||||
</script> |
</script> |
||||||
|
@ -0,0 +1,62 @@ |
|||||||
|
<template> |
||||||
|
<div class="system-edit-post-container"> |
||||||
|
<el-form ref="formRef" size="default" label-width="80px"> |
||||||
|
<el-card shadow="hover" header=""> |
||||||
|
<el-form-item> |
||||||
|
<el-button size="default" type="primary" class="ml10" @click="onReset"> |
||||||
|
<el-icon> |
||||||
|
<ele-RefreshRight /> |
||||||
|
</el-icon> |
||||||
|
重置充值档位记录 |
||||||
|
</el-button> |
||||||
|
</el-form-item> |
||||||
|
</el-card> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<script lang="ts"> |
||||||
|
import { defineComponent, reactive, ref, toRefs } from 'vue'; |
||||||
|
import { resetOrderSign } from '/@/api/game'; |
||||||
|
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'; |
||||||
|
|
||||||
|
interface TableDataState {} |
||||||
|
|
||||||
|
export default defineComponent({ |
||||||
|
name: 'apiV1GameResetSign', |
||||||
|
setup: function () { |
||||||
|
const formRef = ref<HTMLElement | null>(null); |
||||||
|
const menuRef = ref(); |
||||||
|
const state = reactive<TableDataState>({}); |
||||||
|
const onReset = () => { |
||||||
|
const loading = ElLoading.service({ |
||||||
|
lock: true, |
||||||
|
text: 'Loading', |
||||||
|
background: 'rgba(0, 0, 0, 0.7)', |
||||||
|
}); |
||||||
|
ElMessageBox.confirm(`此操作将删除:玩家充值档位记录,是否继续?`, '提示', { |
||||||
|
confirmButtonText: '确认', |
||||||
|
cancelButtonText: '取消', |
||||||
|
type: 'warning', |
||||||
|
}) |
||||||
|
.then(() => { |
||||||
|
resetOrderSign() |
||||||
|
.then(() => { |
||||||
|
ElMessage.success('删除成功'); |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.close(); |
||||||
|
}); |
||||||
|
}) |
||||||
|
.catch(() => { |
||||||
|
loading.close(); |
||||||
|
}); |
||||||
|
}; |
||||||
|
return { |
||||||
|
onReset, |
||||||
|
menuRef, |
||||||
|
formRef, |
||||||
|
...toRefs(state), |
||||||
|
}; |
||||||
|
}, |
||||||
|
}); |
||||||
|
</script> |
@ -1,165 +1,187 @@ |
|||||||
<template> |
<template> |
||||||
<div class="game-account-container"> |
<div class="game-account-container"> |
||||||
<el-card shadow="hover"> |
<el-card shadow="hover"> |
||||||
<div class="game-account-search mb15"> |
<div class="game-account-search mb15"> |
||||||
<el-form :inline="true"> |
<el-form :inline="true"> |
||||||
<el-form-item label="服务器"> |
<el-form-item label="服务器"> |
||||||
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px"> |
<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-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
</el-select> |
</el-select> |
||||||
<el-select v-model="queryParams.serverId" class="m-2" placeholder="选择服务器" filterable> |
<el-select v-model="queryParams.serverId" class="m-2" placeholder="选择服务器" filterable> |
||||||
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id"/> |
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" /> |
||||||
</el-select> |
</el-select> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="账号"> |
<el-form-item label="账号"> |
||||||
<el-input size="default" v-model="queryParams.account" placeholder="请输入账号" class="w-50 m-2" clearable/> |
<el-input size="default" v-model="queryParams.account" placeholder="请输入账号" class="w-50 m-2" clearable /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="id"> |
<el-form-item label="id"> |
||||||
<el-input size="default" v-model="queryParams.id" placeholder="请输入uid" class="w-50 m-2" clearable/> |
<el-input size="default" v-model="queryParams.id" placeholder="请输入uid" class="w-50 m-2" clearable /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item label="uid"> |
<el-form-item label="uid"> |
||||||
<el-input size="default" v-model="queryParams.uid" placeholder="请输入uid" class="w-50 m-2" clearable/> |
<el-input size="default" v-model="queryParams.uid" placeholder="请输入uid" 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="queryParams.ident" placeholder="身份证" class="w-50 m-2" clearable/> |
<el-input size="default" v-model="queryParams.ident" 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="queryParams.name" placeholder="名字" class="w-50 m-2" clearable/> |
<el-input size="default" v-model="queryParams.name" placeholder="名字" class="w-50 m-2" clearable /> |
||||||
</el-form-item> |
</el-form-item> |
||||||
<el-form-item> |
<el-form-item label="账号状态"> |
||||||
<el-button size="default" type="primary" class="ml10" @click="accountList"> |
<el-select v-model="queryParams.gmState" class="m-2" placeholder="选择状态" size="large"> |
||||||
<el-icon> |
<el-option label="" value="" /> |
||||||
<ele-Search/> |
<el-option v-for="item in tableData.accountType" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
</el-icon> |
</el-select> |
||||||
查询 |
</el-form-item> |
||||||
</el-button> |
<el-form-item> |
||||||
</el-form-item> |
<el-button size="default" type="primary" class="ml10" @click="accountList"> |
||||||
</el-form> |
<el-icon> |
||||||
</div> |
<ele-Search /> |
||||||
<el-table :data="tableData.data" style="width: 100%" stripe> |
</el-icon> |
||||||
<el-table-column type="index" label="id" width="60"/> |
查询 |
||||||
<el-table-column prop="AccountName" label="账号" show-overflow-tooltip></el-table-column> |
</el-button> |
||||||
<el-table-column prop="uid" label="uid" show-overflow-tooltip></el-table-column> |
</el-form-item> |
||||||
<el-table-column prop="StringId" label="id" show-overflow-tooltip></el-table-column> |
</el-form> |
||||||
<el-table-column prop="AccountType" label="账号类型" show-overflow-tooltip></el-table-column> |
</div> |
||||||
<el-table-column prop="RealName" label="名字" show-overflow-tooltip></el-table-column> |
<el-table :data="tableData.data" style="width: 100%" stripe> |
||||||
<el-table-column prop="Identity" label="身份证" show-overflow-tooltip></el-table-column> |
<el-table-column type="index" label="id" width="60" /> |
||||||
<el-table-column prop="CreateTime" label="创建时间" show-overflow-tooltip></el-table-column> |
<el-table-column prop="AccountName" label="账号" show-overflow-tooltip></el-table-column> |
||||||
</el-table> |
<el-table-column prop="uid" label="uid" show-overflow-tooltip></el-table-column> |
||||||
<el-row justify="space-evenly"> |
<el-table-column prop="StringId" label="id" show-overflow-tooltip></el-table-column> |
||||||
<el-pagination :hide-on-single-page="true" :total="tableData.total" v-model:page-size="queryParams.pageSize" |
<el-table-column prop="AccountType" label="账号类型" show-overflow-tooltip></el-table-column> |
||||||
v-model:current-page="queryParams.pageNum" @current-change="accountList"/> |
<el-table-column prop="RealName" label="名字" show-overflow-tooltip></el-table-column> |
||||||
</el-row> |
<el-table-column prop="Identity" label="身份证" show-overflow-tooltip></el-table-column> |
||||||
</el-card> |
<el-table-column prop="CreateTime" label="创建时间" show-overflow-tooltip></el-table-column> |
||||||
</div> |
</el-table> |
||||||
|
<el-row justify="space-evenly"> |
||||||
|
<el-pagination |
||||||
|
:hide-on-single-page="true" |
||||||
|
:total="tableData.total" |
||||||
|
v-model:page-size="queryParams.pageSize" |
||||||
|
v-model:current-page="queryParams.pageNum" |
||||||
|
@current-change="accountList" |
||||||
|
/> |
||||||
|
</el-row> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
</template> |
</template> |
||||||
|
|
||||||
<script lang="ts"> |
<script lang="ts"> |
||||||
import {toRefs, reactive, onMounted, defineComponent} from 'vue'; |
import { toRefs, reactive, onMounted, defineComponent } from 'vue'; |
||||||
import {gameAccountList} from "/@/api/game"; |
import { gameAccountList } from '/@/api/game'; |
||||||
import {ElMessage} from "element-plus"; |
import { ElMessage } from 'element-plus'; |
||||||
import {ServerCategorize, serverList} from "/@/utils/game"; |
import { ServerCategorize, serverList } from '/@/utils/game'; |
||||||
import {gSwitchServer} from "/@/utils/utils"; |
import { gSwitchServer } from '/@/utils/utils'; |
||||||
|
import { AccountType } from '/@/api/common/consts'; |
||||||
|
|
||||||
// 定义接口来定义对象的类型 |
// 定义接口来定义对象的类型 |
||||||
interface TableData { |
interface TableData { |
||||||
uid: number; |
uid: number; |
||||||
name: string; |
name: string; |
||||||
region: number; |
region: number; |
||||||
totalTime: number; |
totalTime: number; |
||||||
rechargeTotal: number; |
rechargeTotal: number; |
||||||
CreateTime: string; |
CreateTime: string; |
||||||
AccountType: string; |
AccountType: string; |
||||||
} |
} |
||||||
|
|
||||||
interface TableDataState { |
interface TableDataState { |
||||||
serverSwitch: number; |
serverSwitch: number; |
||||||
queryParams: { |
queryParams: { |
||||||
account: string, |
account: string; |
||||||
serverId: number, |
serverId: number; |
||||||
id: string, |
id: string; |
||||||
pageSize: number, |
uid: string; |
||||||
pageNum: number, |
ident: string; |
||||||
}; |
name: string; |
||||||
tableData: { |
gmState: string; |
||||||
data: Array<TableData>; |
pageSize: number; |
||||||
total: 0, |
pageNum: number; |
||||||
accountType: Array<{ label: string, value: number }> |
}; |
||||||
}; |
tableData: { |
||||||
servers: object[] |
data: Array<TableData>; |
||||||
serverCategorize: object[] |
total: 0; |
||||||
|
accountType: Array<{ label: string; value: number }>; |
||||||
|
}; |
||||||
|
servers: object[]; |
||||||
|
gmStates: object; |
||||||
|
serverCategorize: object[]; |
||||||
} |
} |
||||||
|
|
||||||
export default defineComponent({ |
export default defineComponent({ |
||||||
name: 'apiV1GameRoleAccount', |
name: 'apiV1GameRoleAccount', |
||||||
setup() { |
setup() { |
||||||
const state = reactive<TableDataState>({ |
const state = reactive<TableDataState>({ |
||||||
serverSwitch: 0, |
serverSwitch: 0, |
||||||
queryParams: { |
queryParams: { |
||||||
account: "", |
account: '', |
||||||
serverId: "", |
serverId: '', |
||||||
id: "", |
id: '', |
||||||
pageSize: 10, |
uid: '', |
||||||
pageNum: 1, |
ident: '', |
||||||
}, |
name: '', |
||||||
tableData: { |
gmState: '', |
||||||
data: [], |
pageSize: 10, |
||||||
total: 0, |
pageNum: 1, |
||||||
accountType: [{label: "正常", value: 0}, {label: "黑名单", value: 1}, {label: "GM", value: 2}] |
}, |
||||||
}, |
tableData: { |
||||||
servers: [], |
data: [], |
||||||
serverCategorize: ServerCategorize, |
total: 0, |
||||||
}); |
accountType: AccountType, |
||||||
|
}, |
||||||
|
servers: [], |
||||||
|
serverCategorize: ServerCategorize, |
||||||
|
}); |
||||||
|
|
||||||
const accountList = () => { |
const accountList = () => { |
||||||
console.log(state.queryParams); |
state.tableData.data = []; |
||||||
gameAccountList(state.queryParams).then(res => { |
console.log(state.queryParams); |
||||||
if (!res.data.list || res.data.list.length == 0) { |
gameAccountList(state.queryParams).then((res) => { |
||||||
ElMessage.error('未查询到用户信息!'); |
if (!res.data.list || res.data.list.length == 0) { |
||||||
return; |
ElMessage.error('未查询到用户信息!'); |
||||||
} |
return; |
||||||
console.log(res); |
} |
||||||
const list = res.data.list ?? []; |
console.log(res); |
||||||
state.tableData.total = res.data.total; |
const list = res.data.list ?? []; |
||||||
list.map((item: TableData) => { |
state.tableData.total = res.data.total; |
||||||
item.AccountType = state.tableData.accountType.find(r => r.value == item.AccountType).label; |
list.map((item: TableData) => { |
||||||
item.CreateTime = new Date(item.CreateTime).toLocaleString(); |
item.AccountType = state.tableData.accountType.find((r) => r.value == item.AccountType).label; |
||||||
}); |
item.CreateTime = new Date(item.CreateTime).toLocaleString(); |
||||||
state.tableData.data = list; |
}); |
||||||
}) |
state.tableData.data = list; |
||||||
}; |
}); |
||||||
// 页面加载时 |
}; |
||||||
onMounted(() => { |
// 页面加载时 |
||||||
serverList().then(res => { |
onMounted(() => { |
||||||
state.servers = res; |
serverList().then((res) => { |
||||||
state.queryParams.serverId = res[0].id; |
state.servers = res; |
||||||
}); |
state.queryParams.serverId = res[0].id; |
||||||
}); |
}); |
||||||
|
}); |
||||||
|
|
||||||
const switchServer = () => { |
const switchServer = () => { |
||||||
return gSwitchServer(state.serverSwitch, state.servers) |
return gSwitchServer(state.serverSwitch, state.servers); |
||||||
}; |
}; |
||||||
|
|
||||||
return { |
return { |
||||||
switchServer, |
switchServer, |
||||||
accountList, |
accountList, |
||||||
...toRefs(state), |
...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> |
||||||
|
@ -1,93 +1,115 @@ |
|||||||
<template> |
<template> |
||||||
<div class="game-account-container"> |
<div class="game-account-container"> |
||||||
<el-card shadow="hover"> |
<el-card shadow="hover"> |
||||||
<div class="game-account-search mb15"> |
<div class="game-account-search mb15"> |
||||||
<el-form :inline="true"> |
<el-form :inline="true"> |
||||||
<el-form-item label="账号"> |
<el-form-item label="账号"> |
||||||
<el-input size="default" v-model="queryParams.account" placeholder="请输入账号" class="w-50 m-2" |
<el-input size="default" v-model="queryParams.account" placeholder="请输入账号" class="w-50 m-2" clearable /> |
||||||
clearable/> |
</el-form-item> |
||||||
</el-form-item> |
<!-- <el-form-item label="账号服务器"> |
||||||
<el-form-item> |
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px"> |
||||||
<el-button size="default" type="primary" class="ml10" @click="deleteAccount"> |
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" /> |
||||||
<el-icon> |
</el-select> |
||||||
<ele-Search/> |
<el-select v-model="queryParams.serverId" class="m-2" placeholder="选择服务器" filterable> |
||||||
</el-icon> |
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" /> |
||||||
删除账号 |
</el-select> |
||||||
</el-button> |
</el-form-item>--> |
||||||
</el-form-item> |
<el-form-item> |
||||||
</el-form> |
<el-button size="default" type="primary" class="ml10" @click="deleteAccount"> |
||||||
</div> |
<el-icon> |
||||||
|
<ele-Search /> |
||||||
</el-card> |
</el-icon> |
||||||
</div> |
删除后台游戏账号所有数据 |
||||||
|
</el-button> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
</template> |
</template> |
||||||
|
|
||||||
<script lang="ts"> |
<script lang="ts"> |
||||||
import {toRefs, reactive, onMounted, defineComponent} from 'vue'; |
import { toRefs, reactive, onMounted, defineComponent } from 'vue'; |
||||||
import {gameDeleteAccount} from "/@/api/game"; |
import { gameDeleteAccount } from '/@/api/game'; |
||||||
import {ElMessage, ElMessageBox} from "element-plus"; |
import { ElMessage, ElMessageBox } from 'element-plus'; |
||||||
|
import { AllServerList, ServerCategorize, serverList } from '/@/utils/game'; |
||||||
|
import { gSwitchServer } from '/@/utils/utils'; |
||||||
|
|
||||||
interface TableDataState { |
interface TableDataState { |
||||||
queryParams: { |
queryParams: { |
||||||
account: string; |
account: string; |
||||||
password: string; |
password: string; |
||||||
}; |
}; |
||||||
|
serverCategorize: object; |
||||||
|
serverSwitch: number; |
||||||
|
servers: object[]; |
||||||
} |
} |
||||||
|
|
||||||
export default defineComponent({ |
export default defineComponent({ |
||||||
name: 'apiV1GameRoleDeleteAccount', |
name: 'apiV1GameRoleDeleteAccount', |
||||||
setup() { |
setup() { |
||||||
const state = reactive<TableDataState>({ |
const state = reactive<TableDataState>({ |
||||||
queryParams: { |
queryParams: { |
||||||
password: "", |
password: '', |
||||||
account: "", |
account: '', |
||||||
}, |
}, |
||||||
}); |
servers: [], |
||||||
|
serverCategorize: ServerCategorize, |
||||||
|
serverSwitch: 0, |
||||||
|
}); |
||||||
|
|
||||||
const deleteAccount = () => { |
const deleteAccount = () => { |
||||||
console.log(state.queryParams) |
console.log(state.queryParams); |
||||||
ElMessageBox.prompt(`确认删除账号${state.queryParams.account},请输入密码`, '提示', { |
ElMessageBox.prompt(`确认删除账号${state.queryParams.account},请输入密码`, '提示', { |
||||||
confirmButtonText: '确认', |
confirmButtonText: '确认', |
||||||
cancelButtonText: '取消', |
cancelButtonText: '取消', |
||||||
// inputPattern: |
// inputPattern: |
||||||
// /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/, |
// /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/, |
||||||
inputErrorMessage: 'Invalid password', |
inputErrorMessage: 'Invalid password', |
||||||
}).then(({value}) => { |
}).then(({ value }) => { |
||||||
if(value == 0){ |
if (value == 0) { |
||||||
return |
return; |
||||||
} |
} |
||||||
state.queryParams.password = value; |
state.queryParams.password = value; |
||||||
gameDeleteAccount(state.queryParams).then(res => { |
gameDeleteAccount(state.queryParams).then((res) => { |
||||||
console.log(res) |
console.log(res); |
||||||
if (res.data.data === 1) { |
if (res.data.data === 1) { |
||||||
ElMessage.success("操作成功") |
ElMessage.success('操作成功'); |
||||||
} |
} |
||||||
}) |
}); |
||||||
}); |
}); |
||||||
|
}; |
||||||
|
// 页面加载时 |
||||||
|
onMounted(() => { |
||||||
|
serverList().then((res) => { |
||||||
|
state.servers = res; |
||||||
|
// state.queryParams.serverId = res[0].id; |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
}; |
const switchServer = () => { |
||||||
// 页面加载时 |
return gSwitchServer(state.serverSwitch, state.servers); |
||||||
onMounted(() => { |
}; |
||||||
}); |
return { |
||||||
return { |
switchServer, |
||||||
deleteAccount, |
deleteAccount, |
||||||
...toRefs(state), |
...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> |
||||||
|
Loading…
Reference in new issue