This commit is contained in:
likun 2025-07-31 14:22:35 +08:00
parent df108f1cd8
commit 8bfe36105b
55 changed files with 1004 additions and 48 deletions

View File

@ -150,11 +150,12 @@ func parseStr2FieldValue(field reflect.StructField, rawValue any) (realSetValue
return reflect.ValueOf(sql.NullTime{Time: t}) return reflect.ValueOf(sql.NullTime{Time: t})
} }
return reflect.ValueOf(sql.NullTime{Time: t, Valid: true}) return reflect.ValueOf(sql.NullTime{Time: t, Valid: true})
} } else if typeName == "DeletedAt" {
if typeName == "DeletedAt" {
return reflect.ValueOf(gorm.DeletedAt{}) return reflect.ValueOf(gorm.DeletedAt{})
} else if typeName == "ServerExtraInfo" {
return reflect.ValueOf(model.ServerExtraInfo{})
} }
fallthrough return reflect.ValueOf(rawValue)
case reflect.Slice: case reflect.Slice:
typeName := field.Type.String() typeName := field.Type.String()
if typeName == "[]string" { if typeName == "[]string" {

View File

@ -38,14 +38,16 @@ var base64decodeFields = map[string]struct{}{
"chatlog_msg": {}, "chatlog_msg": {},
} }
var reasonValueAlias = map[string]struct{}{ var reasonValueAlias = map[string]map[string]string{
"gainitem_itempath": {}, "gainitem_itempath": reasonGainDesc,
"loseitem_itempath": {}, "loseitem_itempath": reasonCostDesc,
"addcoin_reasonstr": reasonGainDesc,
"costcoin_reasonstr": reasonCostDesc,
} }
var reasonEnumValueAlias = map[string]struct{}{ var reasonEnumValueAlias = map[string]map[int]string{
"addcoin_coinpath": {}, "addcoin_coinpath": reasonCostEnumDesc,
"costcoin_coinpath": {}, "costcoin_coinpath": reasonCostEnumDesc,
} }
func init() { func init() {
@ -99,6 +101,31 @@ func (hook *GameLogHook) Trim(projectInfo *entity.Project, eventName []string, t
//rBin, _ := json.Marshal(&rows) //rBin, _ := json.Marshal(&rows)
//xlog.Tracef("gamelog1 query result:%v, rows:%v", string(fBin), string(rBin)) //xlog.Tracef("gamelog1 query result:%v, rows:%v", string(fBin), string(rBin))
for i, f := range fieldsDescInfo {
// 修改每一行日志值描述
if replaceMap, findReplaceValue := reasonValueAlias[f.Name]; findReplaceValue {
for j := range rows {
curValue, ok := rows[j][i].(string)
if ok {
newValue, find := replaceMap[curValue]
if find {
rows[j][i] = newValue
}
}
}
} else if replaceMap, findReplaceValue := reasonEnumValueAlias[f.Name]; findReplaceValue {
for j := range rows {
curValue, ok := rows[j][i].(float64)
if ok {
newValue, find := replaceMap[int(curValue)]
if find {
rows[j][i] = newValue
}
}
}
}
}
fieldsDescInfo, rows = (&queryResultInfo{fields: fieldsDescInfo, rows: rows}).tidyByEventDescInfo(eventName) fieldsDescInfo, rows = (&queryResultInfo{fields: fieldsDescInfo, rows: rows}).tidyByEventDescInfo(eventName)
//fBin, _ = json.Marshal(&fieldsDescInfo) //fBin, _ = json.Marshal(&fieldsDescInfo)
@ -122,11 +149,7 @@ func (hook *GameLogHook) Trim(projectInfo *entity.Project, eventName []string, t
rows[j][i] = eventDate.Format(time.DateTime) rows[j][i] = eventDate.Format(time.DateTime)
} }
} }
_, findReplaceValue := reasonValueAlias[f.Name]
if findReplaceValue {
// 需要替换值内容
}
// 修改每一行公共属性别名 // 修改每一行公共属性别名
alias, find := fieldsAlias[f.Name] alias, find := fieldsAlias[f.Name]
if find && f.Name == f.Alias { if find && f.Name == f.Alias {

View File

@ -47,7 +47,7 @@ func init() {
} }
} }
var reasonDesc = map[string]string{ var reasonGainDesc = map[string]string{
"UNKNOWN": "未知", "UNKNOWN": "未知",
"FIRST_LOGIN": "初始化需要", "FIRST_LOGIN": "初始化需要",
"TEST": "测试端口", "TEST": "测试端口",
@ -634,15 +634,808 @@ var reasonDesc = map[string]string{
"BIND_ACCOUNT": "绑定账号", "BIND_ACCOUNT": "绑定账号",
"GODDESS_PICKING_UP_RANK_REWARD": "女神评选活动 - 排名奖励", "GODDESS_PICKING_UP_RANK_REWARD": "女神评选活动 - 排名奖励",
} }
var reasonEnumDesc = make(map[int]string) var reasonGainEnumDesc = make(map[int]string)
var reasonCostEnumDesc = map[int]string{
1: "未知",
2: "商店购物消耗",
3: "解锁背包格",
4: "任务",
5: "使用道具",
6: "学习技能",
7: "升级技能",
8: "创建帮派",
9: "加速神殿副本同步",
10: "副本翻牌",
11: "原地复活",
12: "运货填充",
13: "召唤金车",
14: "时间沙漏奖励",
15: "帮派捐献",
16: "时装解锁",
17: "时装颜色解锁",
18: "时装染色",
19: "时装购买",
20: "交易行购买物品",
21: "解锁交易行摊位格子",
22: "交易行上架物品",
23: "交易行上架手续费",
24: "出售道具",
25: "强化装备",
26: "突破装备",
27: "交易行预定物品",
28: "交易行扣税",
29: "宝石镶嵌",
30: "宝石合成",
31: "宝石升级",
32: "装备称号打造",
33: "装备洗练",
34: "装备精炼",
35: "装备拆解",
36: "宠物升阶",
37: "宠物解锁槽",
38: "宠物洗髓",
39: "宠物炼骨",
40: "宠物装备合成",
41: "宠物装备洗练",
42: "宠物兑换",
43: "修改帮派信息",
44: "发送帮派群邮件",
45: "临时背包领取",
46: "生活技能 采集类消耗",
47: "每日清空",
48: "货币兑换",
49: "坐骑升阶",
50: "坐骑皮肤升阶",
51: "帮派建筑升级",
52: "GM",
53: "拍卖行竞拍",
54: "拍卖行一口价",
55: "玩家主动销毁物品",
56: "商会购买物品",
57: "商会出售物品",
58: "家园购买装饰",
59: "更换生肖",
60: "机缘收集道具",
61: "点歌",
62: "帮派篝火-使用加成道具",
63: "挖宝",
64: "购买礼物",
65: "赠送礼物",
66: "系统商店购买物品",
67: "帮派建筑维护",
68: "帮派技能升级",
69: "祝福礼包赠送",
70: "修为突破",
71: "卡片解锁",
72: "修改捏脸信息",
75: "翅膀升级",
76: "翅膀强化",
77: "翅膀激活",
78: "翅膀升星",
79: "谁与争锋购买次数",
80: "集字兑换",
81: "碎片分解",
82: "神兵升级",
83: "神兵强化",
84: "神兵激活",
85: "神兵升星",
86: "vip物品购买",
87: "合成",
88: "抽奖",
89: "奇缘扩阵",
90: "坐骑兽魂吞噬",
92: "活动资源找回",
93: "夺宝功能扣除物品",
94: "夺宝领取物品",
95: "等级限购",
96: "福利卡",
97: "成长基金",
98: "首领之家",
99: "副本购买次数",
100: "世界BOSS",
101: "每日限购",
102: "星印升级",
103: "个人首领",
104: "装备洗练",
105: "御灵升级",
106: "结契",
107: "星印升级",
108: "宝石赐福",
109: "经脉突破消耗灵力值",
110: "时装升星",
111: "boss复活卡",
112: "装备进阶",
113: "江湖助战开槽位",
114: "江湖助战穿装备",
115: "江湖助战装备升级",
116: "跨服个人首领",
117: "结婚购买彩礼",
118: "结婚购买请帖",
119: "道具回收",
120: "神兵觉醒升级",
121: "装饰升星",
122: "装饰分解",
123: "仙气升级",
124: "仙气强化",
125: "仙气激活",
126: "仙气升星",
127: "奇缘心炼",
128: "巅峰基金",
129: "全服献礼",
130: "烟花献礼购买烟花",
131: "投资计划",
132: "结婚送红包",
133: "星印分解",
134: "仙缘赠送",
135: "觉醒星盘点亮",
136: "宝物解锁",
137: "宝物强化",
138: "宝物附灵",
139: "宝物附灵突破",
140: "宝物升星",
141: "宝物材料拆解消耗",
142: "幸运云购",
143: "觉醒天赋升级",
144: "灵器装备拆解",
145: "限时秒杀直接扣钱",
146: "限时秒杀直接扣钱",
147: "改名",
148: "追剿暗河",
149: "圣印分解",
150: "装备铸灵",
151: "装备铸灵",
152: "装备铸灵",
153: "圣印升阶",
154: "圣印强化",
155: "秘境首领",
156: "神秘遗迹",
157: "五行圣殿",
158: "喜砸金蛋",
159: "情缘对对碰",
160: "世界聊天消耗精力点",
161: "装备精粹",
162: "跨服领地战扣除帮派资金",
163: "纹印合成",
164: "纹印镶嵌",
165: "纹印升级",
166: "仙缘同心锁升级",
167: "仙缘同心锁升阶",
168: "回归奖励 回归基金购买",
169: "合服活动 庆典兑换",
170: "情缘带购买",
180: "师徒系统",
181: "宠物内丹穿戴",
182: "交易行购买 密码交易",
183: "交易行上架物品 密码交易",
184: "交易行上架手续费 密码交易",
191: "坐骑装备强化",
192: "挖宝自动鉴定宝图",
195: "仓库到背包",
196: "背包到仓库",
197: "邮件强制删除",
198: "整理主背包",
199: "穿上宠物装备 原装备删除",
200: "宠物驭兽天赋升级",
201: "帮派捐献",
202: "传送到场景",
203: "经验副本消耗",
204: "神器强化",
205: "神器精炼",
206: "神器精炼重置",
207: "神器分解",
208: "神器精炼材料熔炼",
209: "神器附魔",
210: "神器传承",
211: "神器铸灵",
212: "启示录事件激活",
213: "启示录黑市购买",
214: "启示录黑市刷新",
215: "启示录人物分解",
216: "转职",
217: "升品",
218: "整理仓库",
219: "扩展仓库",
220: "高级宝图指引",
221: "公会盗贼开启高级怪消耗",
222: "卡牌产出副本(时光回廊)手动刷新",
223: "宠物打书",
224: "购买要塞区域",
225: "宠物装备洗练",
226: "宠物内丹升级",
227: "客服gm使用",
228: "要塞招募居民",
229: "要塞推荐居民",
230: "要塞购买建筑",
231: "生活技能 切换专精",
232: "生活技能 生产类消耗",
233: "生活技能 学习技能消耗",
234: "采集稻草",
235: "NPC提交物品",
236: "驻地许愿池许愿",
237: "要塞升级建筑",
238: "要塞维修建筑",
239: "帮派任务提交物品",
240: "要塞维护建筑",
241: "每日限购",
242: "0元购购买",
243: "窃取资源",
244: "工会商店购买物品",
245: "迷城寻宝",
246: "战争工厂制造物品",
247: "公会仓库兑换消耗",
248: "魔法学院研究",
249: "练马场派遣消耗",
250: "魔宠乐园",
251: "幸运摇摇乐",
252: "装备升星【新】",
253: "幸运抽奖",
254: "刷新金蛋",
255: "砸开金蛋",
256: "购买背包格子",
257: "神器精炼属性激活",
258: "荣耀夺宝",
259: "荣耀夺宝",
260: "幸运云购",
261: "宝石转换",
262: "神魄强化",
263: "神魄装备分解",
264: "神魄装备打造",
265: "神魄升级",
266: "庆典纪元",
267: "重生",
268: "星矿争夺",
269: "充值抽奖",
271: "神秘商店",
272: "羽灵",
273: "春节登陆",
274: "新充值转盘",
275: "元宵庆典",
276: "神兽兑换",
277: "圣纹合成",
278: "时装合成",
279: "时装分解",
280: "时装圣光升级",
281: "时装圣光解锁",
282: "猜灯谜 换类型",
283: "猜灯谜 答题",
284: "军衔消耗",
285: "祝福礼包发送",
290: "基础斗魂升级",
291: "觉醒斗魂激活",
292: "觉醒斗魂升星",
293: "觉醒之路升级",
294: "招财进宝",
295: "团购",
296: "神魔战令 购买等级",
297: "神魔战令 兑换",
298: "神秘宝箱",
299: "宝石赐福解锁",
300: "宠物皮肤升星",
301: "圣印套共鸣升级",
302: "宣战消耗",
303: "幸运杂货铺",
304: "神器法阵点 升级",
305: "神器激活",
306: "宠物图鉴升星",
307: "创建家族",
308: "修改家族名称",
309: "家族成员扩展",
310: "家族商店购买商品",
311: "装备铸魂",
312: "装备快捷合成",
313: "直播打赏",
314: "家族团购",
315: "直播打赏购买物品",
316: "星座升阶",
317: "星座洗练开槽",
318: "星座洗练",
319: "星座装备升阶",
320: "星座合成",
321: "星引升级",
322: "星座篆刻",
323: "星座星石 镶嵌",
324: "星石合成",
325: "星石升级",
326: "活力点换钱",
327: "镶嵌泰坦",
328: "泰坦升级",
329: "泰坦重铸",
330: "公会跑商,每周重置清空",
331: "公会跑商,站点交易",
332: "宠物蛋转魂石",
335: "卡牌商店购买卡牌",
336: "卡牌商店刷新卡牌",
337: "万能卡兑换普通卡牌",
338: "万能卡兑换游戏币",
339: "和NPC交换卡牌",
340: "卡牌屋匹配成功 - 预扣除",
341: "卡牌屋对战失败",
342: "惊喜商店购买物品",
345: "占位",
346: "购买狗粮",
347: "花火升级",
348: "羁绊升级",
349: "扭蛋",
350: "魔法水晶球",
351: "扭蛋买礼盒",
352: "文字动作激活",
353: "文字动作升级",
354: "誓约典礼购买道具",
355: "宠物技能升级",
356: "宠物升级槽位等级",
357: "惊喜魔盒",
358: "芒星法阵开启",
359: "芒星法阵升级",
360: "圣装合成",
361: "新装备强化",
362: "新装备合成",
363: "新装备重铸",
364: "圣装强化",
365: "新装备铸魂",
366: "婚后自定义爱称",
367: "泰坦拆解",
368: "婚后投喂",
369: "巅峰之路",
370: "新装备宝石镶嵌",
371: "宝石升级",
372: "铸魂",
373: "命轮装备",
374: "命轮宝石镶嵌",
375: "命轮宝石升级",
376: "命轮洗练",
377: "强化天使圣装",
378: "打造天使圣装",
379: "天使圣装分解",
380: "任务 提交道具",
381: "命轮分解",
382: "命轮升阶",
383: "天使洗练",
384: "统领助战激活",
385: "统领助战升阶",
386: "神器法阵开槽",
387: "启示录宝典升级",
388: "迷雾战场临时背包清空",
389: "魔宠付费拆解",
390: "宠物图鉴技能激活",
391: "属性阵强化",
392: "属性阵洗炼",
393: "轮回装备高级重铸",
394: "轮回装备分解",
395: "好友时装赠送",
400: "一番赏抽奖",
401: "圣典阵法升级",
402: "圣典阵法隐阵升级",
403: "圣典升阶",
404: "圣典合成",
405: "圣典道具合成",
406: "交易行购买物品",
407: "解锁交易行摊位格子",
408: "交易行上架物品",
409: "交易行上架手续费",
410: "交易行购买 密码交易",
411: "交易行上架物品 密码交易",
412: "交易行上架手续费 密码交易",
413: "斗魂强化",
414: "命轮合成",
415: "御魂升级",
416: "御魂升阶",
417: "御魂主动技能升级",
418: "御魂被动技能升级",
419: "御魂天赋",
420: "属性阵重置",
421: "师徒委托发布",
422: "圣典领悟",
423: "切换技能组合",
424: "魔武战技加点",
425: "魔武战技重置",
430: "女神评选活动赠送礼物",
}
var reasonCostDesc = map[string]string{
"UNKNOWN": "未知",
"SHOP_BUY": "商店购物消耗",
"BAG_BUY": "解锁背包格",
"QUEST": "任务",
"ITEM_USE": "使用道具",
"SKILL_LEARN": "学习技能",
"SKILL_UPGRADE": "升级技能",
"CREATE_UNION": "创建帮派",
"TOWER_QUICK_AUTO": "加速神殿副本同步",
"INSTANCE_GET_CARD": "副本翻牌",
"REVIVE_NOWPOS": "原地复活",
"ESCORT_FILL": "运货填充",
"ESCORT_BUY": "召唤金车",
"HOURGLASS_AWARD": "时间沙漏奖励",
"UNION_CONTRIBUTION": "帮派捐献",
"FASHION_CLOLUR_EXTENDS": "时装解锁",
"FASHION_COLOUR_OPEN": "时装颜色解锁",
"FASHION_DYE": "时装染色",
"FASHION_BUY": "时装购买",
"TRADE_BUY": "交易行购买物品",
"TRADE_STALL_UNLOCK": "解锁交易行摊位格子",
"TRADE_PUT_ON_ITEM": "交易行上架物品",
"TRADE_PUT_ON_FEE": "交易行上架手续费",
"ITEM_SELL": "出售道具",
"EQUIPMENT_INTENSIFY": "强化装备",
"EQUIPMENT_INTENSIFY_BREAK": "突破装备",
"TRADE_BOOK": "交易行预定物品",
"TRADE_TAX": "交易行扣税",
"EQUIPMENT_JEWELRY_INLAY": "宝石镶嵌",
"EQUIPMENT_JEWELRY_COMPOSITE": "宝石合成",
"EQUIPMENT_JEWELRY_LEVELUP": "宝石升级",
"EQUIPMENT_TITLE_FORGE": "装备称号打造",
"EQUIPMENT_WASH": "装备洗练",
"EQUIPMENT_COMPOSITE": "装备精炼",
"EQUIPMENT_DISMANTLE": "装备拆解",
"PET_RANK_UP": "宠物升阶",
"PET_OPEN_SLOT": "宠物解锁槽",
"PET_WASH": "宠物洗髓",
"PET_BONE": "宠物炼骨",
"PET_EQUIP_SYNYHESIS": "宠物装备合成",
"PET_EQUIP_WASH": "宠物装备洗练",
"PET_EXCHANGE": "宠物兑换",
"ALTER_UNION_INFO": "修改帮派信息",
"UNION_MAIL": "发送帮派群邮件",
"INTERIM_BAG_RECEIVE": "临时背包领取",
"LIFESKILL_PICK_COST": "生活技能 采集类消耗",
"DAILY_CLEAR": "每日清空",
"CURRENCY_EXCHANGE": "货币兑换",
"RIDING_RANKUP": "坐骑升阶",
"RIDING_SKIN_RANKUP": "坐骑皮肤升阶",
"UNION_BUILDING_LEVELUP": "帮派建筑升级",
"GM": "GM",
"AUCTION": "拍卖行竞拍",
"AUCTION_FIXED": "拍卖行一口价",
"ITEM_ACTIVE_DROP": "玩家主动销毁物品",
"B2CSHOP_BUY": "商会购买物品",
"B2CSHOP_SELL": "商会出售物品",
"HOME_DECORATION_BUY": "家园购买装饰",
"CHANGE_CHINESEZODIAC": "更换生肖",
"LUCK_COLLECT_ITEM": "机缘收集道具",
"ORDER_MUSIC": "点歌",
"UNION_FIRE_USE_ITEM": "帮派篝火-使用加成道具",
"TREASURE": "挖宝",
"GIFT_BUY": "购买礼物",
"GIFT_GIVE": "赠送礼物",
"SYSTEMSHOP_BUY": "系统商店购买物品",
"UNION_BUILDING_OPENING": "帮派建筑维护",
"UNION_SKILL_LEVELUP": "帮派技能升级",
"BLESS_GIFT_SEND": "祝福礼包赠送",
"DEGREE_LEVELUP": "修为突破",
"CARD_UNLOCK": "卡片解锁",
"ALTER_FACEINFO": "修改捏脸信息",
"WING_UP_LEVEL": "翅膀升级",
"WING_STRENGTHEN": "翅膀强化",
"WING_ACTIVE": "翅膀激活",
"WING_UPSTAR": "翅膀升星",
"FIGHT_OR_DEAD": "谁与争锋购买次数",
"WELFARE_COLLECT_WORDS": "集字兑换",
"CHIP_SPLITE": "碎片分解",
"MAGIC_WEAPON_UP_LEVEL": "神兵升级",
"MAGIC_WEAPON_STRENGTHEN": "神兵强化",
"MAGIC_WEAPON_ACTIVE": "神兵激活",
"MAGIC_WEAPON_UPSTAR": "神兵升星",
"VIP_BUY": "vip物品购买",
"COMPOSE": "合成",
"LOTTERY": "抽奖",
"CARD_POS_EXTEND": "奇缘扩阵",
"RIDING_BEASTSOUL": "坐骑兽魂吞噬",
"ACTIVITY_RECOVER": "活动资源找回",
"LUCKDRAW": "夺宝功能扣除物品",
"LUCKDRAW_RECEIVE": "夺宝领取物品",
"LEVEL_BUY": "等级限购",
"WELFARE_CARD": "福利卡",
"GROWTH_FUND": "成长基金",
"ACTIVITY_WORLD_HOME": "首领之家",
"INST_BUY_TIMES": "副本购买次数",
"WORLD_BOSS": "世界BOSS",
"DAILY_BUY": "每日限购",
"STAR_LEVEL": "星印升级",
"WORLD_SOLO_BOSS": "个人首领",
"EQUIPMENT_OPEN_SLOT": "装备洗练",
"NIMBUS_LEVEL_UP": "御灵升级",
"PARTNER": "结契",
"STAR_COMBINE": "星印升级",
"EQUIPMENT_JEWELRY_BLESSING": "宝石赐福",
"MERIDIAN_SPEND": "经脉突破消耗灵力值",
"FASHION_STAR_LEVEL_UP": "时装升星",
"REVIVE_BOSS_CARD": "boss复活卡",
"EQUIPMENT_RANKUP": "装备进阶",
"JIANGHU_ASSIST_OPEN_SLOT": "江湖助战开槽位",
"JIANGHU_ASSIST_EQUIP_PUTON": "江湖助战穿装备",
"JIANGHU_ASSIST_EQUIP_INTENSIFY": "江湖助战装备升级",
"CROSS_SOLO_BOSS": "跨服个人首领",
"WEDDING_BUY_REWARD": "结婚购买彩礼",
"WEDDING_BUY_CARD": "结婚购买请帖",
"ITEM_RECOVER": "道具回收",
"MAGIC_WEAPON_WAKE_UP_LEVEL": "神兵觉醒升级",
"GARNITURE_STARUP": "装饰升星",
"GARNITURE_BREAKUP": "装饰分解",
"FAIRYISM_UP_LEVEL": "仙气升级",
"FAIRYISM_STRENGTHEN": "仙气强化",
"FAIRYISM_ACTIVE": "仙气激活",
"FAIRYISM_UPSTAR": "仙气升星",
"CARD_REFRESH": "奇缘心炼",
"PEAK_FUND": "巅峰基金",
"CONTRIBUTION": "全服献礼",
"FIREWORKS": "烟花献礼购买烟花",
"INVESTMENT_PLAN": "投资计划",
"WEDDING_BLESS": "结婚送红包",
"STAR_DECOMPOSE": "星印分解",
"MARRIAGE_GIVE": "仙缘赠送",
"AWAKE_STAR_LIGHT": "觉醒星盘点亮",
"ARTIFACT_UNLOCK": "宝物解锁",
"ARTIFACT_INTENSIFY": "宝物强化",
"ARTIFACT_SOUL_INTENSIFY": "宝物附灵",
"ARTIFACT_SOUL_BREAK": "宝物附灵突破",
"ARTIFACT_STAR_UP": "宝物升星",
"ARTIFACT_DISMANTLE": "宝物材料拆解消耗",
"LUCK_BUY": "幸运云购",
"AWAKE_TALENT_LEVELUP": "觉醒天赋升级",
"EQUIPMENT_LINGQI_DISMANTLE": "灵器装备拆解",
"TIME_SEC_PERSON_BUY": "限时秒杀直接扣钱",
"TIME_SEC_SERVER_BUY": "限时秒杀直接扣钱",
"CHANGE_NAME": "改名",
"SOLO_MONSTER": "追剿暗河",
"HOLY_SEAL_DECOMPOSE": "圣印分解",
"EQUIPMENT_FORGESOUL": "装备铸灵",
"EQUIPMENT_AWAKEN": "装备铸灵",
"EQUIPMENT_AWAKEN_SKILL": "装备铸灵",
"HOLY_SEAL_SOUL_RANK": "圣印升阶",
"HOLY_SEAL_STRNEG": "圣印强化",
"WORLD_VIP_BOSS": "秘境首领",
"WORLD_SECRET_BOSS": "神秘遗迹",
"WORLD_FIVE_ELEMENT": "五行圣殿",
"SMASH_GOLD_EGG": "喜砸金蛋",
"TOUCH_OF_LOVE": "情缘对对碰",
"WORLD_CHAT": "世界聊天消耗精力点",
"EQUIPMENT_JINGCUI": "装备精粹",
"TERRITORY_WAR_AUCTION": "跨服领地战扣除帮派资金",
"EQUIPMENT_SEAL_COMPOSITE": "纹印合成",
"EQUIPMENT_SEAL_INLAY": "纹印镶嵌",
"EQUIPMENT_SEAL_LEVELUP": "纹印升级",
"HEART_LOCK_LEVEL_UP": "仙缘同心锁升级",
"HEART_LOCK_RANK_UP": "仙缘同心锁升阶",
"BACK_REWARD_FUND": "回归奖励 回归基金购买",
"WHOLE_COLLECT_WORDS": "合服活动 庆典兑换",
"MARRAGE_BUY": "情缘带购买",
"HOME_GATE": "师徒系统",
"PET_GM_PUTON": "宠物内丹穿戴",
"TRADE_BUY_PASSWORD": "交易行购买 密码交易",
"TRADE_PUT_ON_ITEM_PASSWORD": "交易行上架物品 密码交易",
"TRADE_PUT_ON_FEE_PASSWORD": "交易行上架手续费 密码交易",
"RIDING_EQUIP_INTENSIFY": "坐骑装备强化",
"TREASURE_AUTO_IDENTIFY": "挖宝自动鉴定宝图",
"WAREHOUSE_TO_BAG": "仓库到背包",
"BAG_TO_WAREHOUSE": "背包到仓库",
"MAIL_FORCE_REMOVE": "邮件强制删除",
"ITEM_BAG_SORT": "整理主背包",
"PET_EQUIP_REPLACE": "穿上宠物装备 原装备删除",
"PET_TALENT_UPGRADE": "宠物驭兽天赋升级",
"UNION_DONATE": "帮派捐献",
"TRANSFER_TO_STAGE": "传送到场景",
"INSTANCE_EXP": "经验副本消耗",
"HOLY_WEAPON_ENHANCE": "神器强化",
"HOLY_WEAPON_REFINE": "神器精炼",
"HOLY_WEAPON_REFINE_RESET": "神器精炼重置",
"HOLY_WEAPON_DISMANTLE": "神器分解",
"HOLY_WEAPON_REFINE_MATERIAL_MELT": "神器精炼材料熔炼",
"HOLY_WEAPON_RUNE": "神器附魔",
"HOLY_WEAPON_INHERIT": "神器传承",
"HOLY_WEAPON_NIMBUS": "神器铸灵",
"REVELATION_EVENT_ACTIVATE": "启示录事件激活",
"REVEVALTION_MARKET_BUY_ITEM": "启示录黑市购买",
"REVELATION_MARKET_REFRESH": "启示录黑市刷新",
"REVELATION_ITEM_DISMANTLE": "启示录人物分解",
"CHANGE_PROFESSION": "转职",
"EQUOPMENT_COLOR_UP": "升品",
"WAREHOUSE_ARRANGE": "整理仓库",
"WAREHOUSE_ADD_SLOT": "扩展仓库",
"TREASURE_SENIOR_DIRECT": "高级宝图指引",
"UNION_MISER_MONSTER_OPEN": "公会盗贼开启高级怪消耗",
"CARD_INST_REFRESH": "卡牌产出副本(时光回廊)手动刷新",
"PET_SKILL_BOOK": "宠物打书",
"BUY_FORTRESS_SPOT": "购买要塞区域",
"PET_EQUIP_INTENSIFY": "宠物装备洗练",
"PET_GEM_LEVEL_UP": "宠物内丹升级",
"GM_DELET_ITEM": "客服gm使用",
"FORTRESS_RECRUIT_CIVILIAN": "要塞招募居民",
"FORTRESS_RECOMMEND_CIVILIAN": "要塞推荐居民",
"FORTRESS_BUY_ARCHITECTURE": "要塞购买建筑",
"LIFESKILL_CHANGE_MASTER": "生活技能 切换专精",
"LIFESKILL_PRODUCE_COST": "生活技能 生产类消耗",
"LIFESKILL_LEARN": "生活技能 学习技能消耗",
"COLLECT_STRAW": "采集稻草",
"NPC_PRESENT_ITEM": "NPC提交物品",
"UNION_TREVI_FOUNTAINTIMES": "驻地许愿池许愿",
"FORTRESS_UPGRADE_ARCHITECTURE": "要塞升级建筑",
"FORTRESS_REPAIR_ARCHITECTURE": "要塞维修建筑",
"UNION_TASK_HAND": "帮派任务提交物品",
"FORTRESS_MAINTAIN_ARCHITECTURE": "要塞维护建筑",
"MONEY_DAY_BUY": "每日限购",
"MONEY_TWO_ZERO": "0元购购买",
"UNION_TASK_STEAL": "窃取资源",
"UNION_SHOP_BUY_ITEM": "工会商店购买物品",
"JOY_MAZE": "迷城寻宝",
"WAR_FACTORY_CREATE_ITEM": "战争工厂制造物品",
"UNION_STORAGE_EXCHANGE": "公会仓库兑换消耗",
"MAGIC_ACADEMY_RESEARCH": "魔法学院研究",
"HORSE_FARM_DISPATCH_COST": "练马场派遣消耗",
"UNION_PET_HAPPYNESS": "魔宠乐园",
"YOYO": "幸运摇摇乐",
"EQUIPMENT_STARUP": "装备升星【新】",
"MONEY_LOTTERY_LOTTERY": "幸运抽奖",
"MONEY_EGG_REFRESH": "刷新金蛋",
"MONEY_EGG_SMASH": "砸开金蛋",
"INVENTORY_ADD_SLOT": "购买背包格子",
"HOLY_WEAPON_REFINE_ATTR_ACTIVE": "神器精炼属性激活",
"MONEY_HONOUR": "荣耀夺宝",
"MONEY_CROSS_DRAW": "荣耀夺宝",
"CROSS_LUCK_BUY": "幸运云购",
"EQUOPMENT_JEWELRY_EXCHANGE": "宝石转换",
"SHENPO_STRENGTHEN": "神魄强化",
"SHENPO_EQUIP_DECOMPOSE": "神魄装备分解",
"SHENPO_EQUIP_MAKE": "神魄装备打造",
"SHENPO_UP_LEVEL": "神魄升级",
"MONEY_ERA": "庆典纪元",
"REBIRTH": "重生",
"CROSS_STAR_STONE": "星矿争夺",
"MONEY_R_LOTTERY": "充值抽奖",
"MONEY_SHOP": "神秘商店",
"WING_SOUL": "羽灵",
"NATIONAL_DAY_LOGIN_LOTTERY": "春节登陆",
"MONEY_ZP": "新充值转盘",
"MID_AUTUMN": "元宵庆典",
"WELFARE_COLLECT_WORDS_TWO": "神兽兑换",
"HOLY_SEAL_COMPOSE": "圣纹合成",
"FASHION_COMPOSE": "时装合成",
"FASHION_DISMANTLE": "时装分解",
"FASHION_BLESSING_LEVELUP": "时装圣光升级",
"FASHION_BLESSING_UNLOCK": "时装圣光解锁",
"MONEY_LANTERN_CHANGE": "猜灯谜 换类型",
"MONEY_LANTERN_RIDDLE": "猜灯谜 答题",
"ARMY_GRADE": "军衔消耗",
"BLESS_PACKAGE_SEND": "祝福礼包发送",
"FIGHT_SPIRIT_UPGRADE": "基础斗魂升级",
"FIGHT_SPIRIT_AWAKEN_ACTIVE": "觉醒斗魂激活",
"FIGHT_SPIRIT_AWAKEN_STAR_UPGRADE": "觉醒斗魂升星",
"FIGHT_SPIRIT_AWAKEN_ROAD_LV_UPGRADE": "觉醒之路升级",
"MONEY_THRIVING": "招财进宝",
"MONEY_GROUP": "团购",
"MONEY_TOKEN_BUY_LEVEL": "神魔战令 购买等级",
"MONEY_TOKEN_EXCHANGE": "神魔战令 兑换",
"MONEY_LUCK_BOX": "神秘宝箱",
"EQUIPMENT_JEWELRY_BLESSING_UNLOCK": "宝石赐福解锁",
"PET_SKIN_STAR_UP": "宠物皮肤升星",
"HOLY_SUIT_RESONATE_UPGRADE_LEVEL": "圣印套共鸣升级",
"DECLARE_WAR": "宣战消耗",
"LUCKY_SHOP": "幸运杂货铺",
"HOLY_WEAPON_POINT_UPGRADE": "神器法阵点 升级",
"HOLY_WEAPON_ACTIVE": "神器激活",
"PET_HANDBOOK_STAR_UP": "宠物图鉴升星",
"CREATE_FAMILY": "创建家族",
"ALTER_FAMILY_NAME": "修改家族名称",
"EXPAND_FAMILY_COUNT": "家族成员扩展",
"FAMILY_STORE_SHOPPING": "家族商店购买商品",
"EQUIPMENT_SPIRIT": "装备铸魂",
"EQUIPMENT_QUICK_COMPOSE": "装备快捷合成",
"ANCHOR_SEND_GIFT": "直播打赏",
"FAMILY_MONEY_GROUP": "家族团购",
"ANCHOR_BUY_SEND_GIFT": "直播打赏购买物品",
"CONSTELLATION_STAR_UP": "星座升阶",
"CONSTELLATION_OPEN_SLOT": "星座洗练开槽",
"CONSTELLATION_WASH": "星座洗练",
"CONSTELLATION_EQUIP_LEVEL_UP": "星座装备升阶",
"CONSTELLATION_COMPOSE": "星座合成",
"CONSTELLATION_TWO_STAR_UP": "星引升级",
"CONSTELLATION_SEAL_CUTTING": "星座篆刻",
"CONSTELLATION_STAR_STONE_INLAY": "星座星石 镶嵌",
"CONSTELLATION_STAR_STONE_COMPOSE": "星石合成",
"CONSTELLATION_STAR_STONE_LEVEL_UP": "星石升级",
"LIFESKILL_POINT_EXCHANGE": "活力点换钱",
"EQUIPMENT_TITAN_INLAY": "镶嵌泰坦",
"EQUIPMENT_TITAN_LEVELUP": "泰坦升级",
"EQUIPMENT_TITAN_REFORGE": "泰坦重铸",
"UNION_TRADE_RESET_WEEK": "公会跑商,每周重置清空",
"UNION_TRADE_SITE_SHOP": "公会跑商,站点交易",
"PET_EGG_DISMENTAL": "宠物蛋转魂石",
"MINI_GAME2_CARD_SHOP_BUY": "卡牌商店购买卡牌",
"MINI_GAME2_CARD_SHOP_REFRESH": "卡牌商店刷新卡牌",
"MINI_GAME2_EXCHANGE_CARD": "万能卡兑换普通卡牌",
"MINI_GAME2_EXCHANGE_GAME_COIN": "万能卡兑换游戏币",
"MINI_GAME2_EXCHANGE_CARD_WITH_NPC": "和NPC交换卡牌",
"MINI_GAME2_CARD_HOUSE_MATCH_SUCCESS": "卡牌屋匹配成功 - 预扣除",
"MINI_GAME2_CARD_HOUSE_FAILURE": "卡牌屋对战失败",
"MINI_GAME2_SURPRISE_SHOP_BUY": "惊喜商店购买物品",
"MINI_GAME_MAX": "占位",
"WEDDING_BUY_DOGFOOD": "购买狗粮",
"AFTER_MARRIAGE_FIRE_LEVEL_UP": "花火升级",
"AFTER_MARRIAGE_FETTER_LEVEL_UP": "羁绊升级",
"CAPSULE": "扭蛋",
"MONEY_BALL_LOTTERY": "魔法水晶球",
"CAPSULE_BUY_BOX": "扭蛋买礼盒",
"AFTER_MARRIAGE_TEXT_ACT_ACTIVE": "文字动作激活",
"AFTER_MARRIAGE_TEXT_ACT_LEVEL_UP": "文字动作升级",
"WEDDING_BUY_ITEM": "誓约典礼购买道具",
"PET_SKILL_UPGRADE": "宠物技能升级",
"PET_UPGRADE_SLOT_LEVEL": "宠物升级槽位等级",
"MONEY_SURPRISE_BOX": "惊喜魔盒",
"STAR_OPEN_PHALANX": "芒星法阵开启",
"STAR_LEVEL_UP_PHALANX": "芒星法阵升级",
"GOD_EQUIP_FORGE": "圣装合成",
"EQUIP_GEAR_INTEGRITY": "新装备强化",
"EQUIP_GEAR_COMPOSE": "新装备合成",
"EQUIP_GEAR_REBUILD": "新装备重铸",
"GOD_EQUIP_ENHANCE": "圣装强化",
"EQUIP_GEAR_SPIRIT": "新装备铸魂",
"AFTER_MARRIAGE_CUSTOM_TITLE": "婚后自定义爱称",
"EQUIPMENT_TITAN_DISMANTLE": "泰坦拆解",
"AFTER_MARRIAGE_FEED": "婚后投喂",
"PEAK_PATH": "巅峰之路",
"GEAR_EQUIP_JEWELRY_INLAY": "新装备宝石镶嵌",
"GEAR_EQUIP_JEWELRY_LEVELUP": "宝石升级",
"ZERO_EQUIP_SPIRIT": "铸魂",
"ZERO_TO_ZERO_EQUIP": "命轮装备",
"ZERO_EQUIP_JEWELRY_INLAY": "命轮宝石镶嵌",
"ZERO_EQUIP_JEWELRY_LEVELUP": "命轮宝石升级",
"ZERO_EQUIP_WASH": "命轮洗练",
"HOLY_SPIRIT_EQUIP_INTENSIFY": "强化天使圣装",
"HOLY_SPIRIT_EQUIP_MAKE": "打造天使圣装",
"HOLY_SPIRIT_DECOMPOSE": "天使圣装分解",
"QUEST_SUBMIT_ITEM": "任务 提交道具",
"ZERO_TO_ZERO_DECOMPOSE": "命轮分解",
"ZERO_EQUIP_UP_GRADE": "命轮升阶",
"SHEN_PO_WASH": "天使洗练",
"TONGLING_ASSIST_ACTIVATE": "统领助战激活",
"TONGLING_ASSIST_UPGRADE": "统领助战升阶",
"HOLY_WEAPON_PHALANX_OPEN_SLOT": "神器法阵开槽",
"REVELATION_BOOK_LEVELUP": "启示录宝典升级",
"MIST_EMPTY_TEMP_BAG": "迷雾战场临时背包清空",
"PET_DISMANTING": "魔宠付费拆解",
"PET_HANDBOOK_SKILL_ACTIVE": "宠物图鉴技能激活",
"ATTR_MATRIX_STRENGTHEN": "属性阵强化",
"ATTR_MATRIX_REFINE": "属性阵洗炼",
"GEAR_EQUIP_SUPER_REBUILD": "轮回装备高级重铸",
"GEAR_EQUIP_SUPER_DISMISSMENT": "轮回装备分解",
"FRIEND_FASHION_GIFT": "好友时装赠送",
"MONEY_ICHIBAN_DRAW": "一番赏抽奖",
"HOLY_BOOK_LINEUP_LEVELUP": "圣典阵法升级",
"HOLY_BOOK_HIDDEN_LINEUP_LEVELUP": "圣典阵法隐阵升级",
"HOLY_BOOK_ADVANCE": "圣典升阶",
"HOLY_BOOK_COMPOSE": "圣典合成",
"HOLY_BOOK_ITEM_COMPOSE": "圣典道具合成",
"CROSS_TRADE_BUY": "交易行购买物品",
"CROSS_TRADE_STALL_UNLOCK": "解锁交易行摊位格子",
"CROSS_TRADE_PUT_ON_ITEM": "交易行上架物品",
"CROSS_TRADE_PUT_ON_FEE": "交易行上架手续费",
"CROSS_TRADE_BUY_PASSWORD": "交易行购买 密码交易",
"CROSS_TRADE_PUT_ON_ITEM_PASSWORD": "交易行上架物品 密码交易",
"CROSS_TRADE_PUT_ON_FEE_PASSWORD": "交易行上架手续费 密码交易",
"FIGHT_SPIRIT_STRENGTHEN": "斗魂强化",
"ZERO_TO_ZERO_COMPOSE": "命轮合成",
"PET_CRUSADE_SOUL_LEVEL_UP": "御魂升级",
"PET_CRUSADE_SOUL_CLASS_LEVEL_UP": "御魂升阶",
"PET_CRUSADE_SOUL_ACTIVE_SKILL_LEVEL_UP": "御魂主动技能升级",
"PET_CRUSADE_SOUL_PASSIVE_SKILL_LEVEL_UP": "御魂被动技能升级",
"PET_CRUSADE_SOUL_TALENT": "御魂天赋",
"ATTR_MATRIX_RESET": "属性阵重置",
"SCHOOL_ENTRUST_PUBLISH": "师徒委托发布",
"HOLY_BOOK_COMPREHEND": "圣典领悟",
"SWITCH_SKILL_SETTING": "切换技能组合",
"MAGIC_WEAPON_DOT_TALENT": "魔武战技加点",
"MAGIC_WEAPON_RESET_TALENT": "魔武战技重置",
"GODDESS_PICKING_UP_GIVE_GIFT": "女神评选活动赠送礼物",
}
func init() { func init() {
for k, v := range reasonEnumDescTmp { for k, v := range reasonGainEnumDescTmp {
reasonEnumDesc[v] = k chineseDesc := reasonGainDesc[k]
reasonGainEnumDesc[v] = chineseDesc
} }
} }
var reasonEnumDescTmp = map[string]int{ var reasonGainEnumDescTmp = map[string]int{
"UNKNOWN": 0, "UNKNOWN": 0,
"FIRST_LOGIN": 1, "FIRST_LOGIN": 1,
"TEST": 2, "TEST": 2,

View File

@ -7,20 +7,22 @@ import (
) )
type ServerInfo struct { type ServerInfo struct {
ProjectId int `json:"project_id"` ProjectId int `json:"project_id"`
ServerId string `json:"serverId"` ServerId string `json:"serverId"`
ServerName string `json:"serverName"` ServerName string `json:"serverName"`
Ccu int `json:"ccu"` Ccu int `json:"ccu"`
TotalRoleCount int `json:"total_role_count"` TotalRoleCount int `json:"total_role_count"`
TotalAccountCount int `json:"total_account_count"` TotalAccountCount int `json:"total_account_count"`
Addr string `json:"addr"` Addr string `json:"addr"`
IsServerDown bool `json:"open_whitelist_login"` IsServerDown bool `json:"open_whitelist_login"`
CrossUid bool `json:"cross_uid"` CrossUid string `json:"cross_uid"`
CrossOutIp bool `json:"cross_out_ip"` CrossOutIp string `json:"cross_out_ip"`
CrossInIp bool `json:"cross_in_ip"` CrossInIp string `json:"cross_in_ip"`
BigCrossUid bool `json:"big_cross_uid"` BigCrossUid string `json:"big_cross_uid"`
BigCrossOutIp bool `json:"big_cross_out_ip"` BigCrossOutIp string `json:"big_cross_out_ip"`
BigCrossInIp bool `json:"big_cross_in_ip"` BigCrossInIp string `json:"big_cross_in_ip"`
MergedIds []string `json:"merged_ids"`
MergedTo string `json:"merged_to"`
} }
func (server *ServerInfo) Down(api string) error { func (server *ServerInfo) Down(api string) error {

View File

@ -39,6 +39,10 @@ func (hook *ServerHook) List(projectInfo *entity.Project, resource string, param
break break
} }
} }
extraInfo := model.ServerExtraInfo{
CrossInfo: &model.ServerCrossInfo{},
MergedInfo: &model.MergedInfo{},
}
if findRemoteServerInfo != nil { if findRemoteServerInfo != nil {
row["RunningStatus"] = "运行中" row["RunningStatus"] = "运行中"
row["Ccu"] = findRemoteServerInfo.Ccu row["Ccu"] = findRemoteServerInfo.Ccu
@ -49,6 +53,14 @@ func (hook *ServerHook) List(projectInfo *entity.Project, resource string, param
} else { } else {
row["IsServerDown"] = false row["IsServerDown"] = false
} }
extraInfo.CrossInfo.CrossUID = findRemoteServerInfo.CrossUid
extraInfo.CrossInfo.CrossOutIp = findRemoteServerInfo.CrossOutIp
extraInfo.CrossInfo.CrossInIp = findRemoteServerInfo.CrossInIp
extraInfo.CrossInfo.BigCrossUID = findRemoteServerInfo.BigCrossUid
extraInfo.CrossInfo.BigCrossOutIp = findRemoteServerInfo.BigCrossOutIp
extraInfo.CrossInfo.BigCrossInIp = findRemoteServerInfo.BigCrossInIp
extraInfo.MergedInfo.MergedIds = findRemoteServerInfo.MergedIds
extraInfo.MergedInfo.MergedToServer = findRemoteServerInfo.MergedTo
} else { } else {
row["IsServerDown"] = false row["IsServerDown"] = false
row["RunningStatus"] = "失联" row["RunningStatus"] = "失联"
@ -57,6 +69,7 @@ func (hook *ServerHook) List(projectInfo *entity.Project, resource string, param
row["TotalAccountCount"] = 0 row["TotalAccountCount"] = 0
row["IsWhitelistLogin"] = "否" row["IsWhitelistLogin"] = "否"
} }
row["ExtraInfo"] = extraInfo
} }
return totalCount, fields, rows, nil return totalCount, fields, rows, nil

View File

@ -107,7 +107,7 @@ func (querier *EventListQuerier) genSql(tableName string, pageNo int, pageLen in
if querier.serverId != 0 { if querier.serverId != 0 {
whereList = append(whereList, "`pub_serverid`=?") whereList = append(whereList, "`pub_serverid`=?")
whereArgs = append(whereArgs, querier.serverId) whereArgs = append(whereArgs, strconv.Itoa(querier.serverId))
} }
if querier.roleId != "" { if querier.roleId != "" {
whereList = append(whereList, "`xwl_distinct_id`=?") whereList = append(whereList, "`xwl_distinct_id`=?")

View File

@ -0,0 +1,20 @@
package model
import "time"
type Attribute struct {
ID int `gorm:"primarykey" readonly:"true"`
AppId int
Status int // 是否显示 0为不显示 1为显示 默认不显示
AttributeName string
ShowName string
DataType string
AttributeType int
AttributeSource int
CreateTime time.Time
UpdateTime time.Time
}
func (m *Attribute) TableName() string {
return "attribute"
}

View File

@ -0,0 +1,17 @@
package model
import "time"
type Event struct {
ID int `gorm:"primarykey" readonly:"true"`
Appid int
EventName string
ShowName string
YesterdayCount int
CreateTime time.Time
UpdateTime time.Time
}
func (m *Event) TableName() string {
return "mata_event"
}

View File

@ -0,0 +1,12 @@
package model
type EventAttribute struct {
ID int `gorm:"primarykey" readonly:"true"`
AppId int
EventName string
EventAttr string
}
func (m *EventAttribute) TableName() string {
return "meta_attr_relation"
}

View File

@ -12,19 +12,39 @@ func init() {
db.RegisterTableModels(Server{}) db.RegisterTableModels(Server{})
} }
type ServerCrossInfo struct {
CrossUID string
CrossOutIp string
CrossInIp string
BigCrossUID string
BigCrossOutIp string
BigCrossInIp string
}
type MergedInfo struct {
MergedToServer string `json:"merged_to_server,omitempty"`
MergedIds []string `json:"merged_ids"`
}
type ServerExtraInfo struct {
CrossInfo *ServerCrossInfo `json:"cross_info,omitempty"`
MergedInfo *MergedInfo `json:"merged_info,omitempty"`
}
// Server 逻辑服 // Server 逻辑服
type Server struct { type Server struct {
ID int `gorm:"primarykey" readonly:"true"` ID int `gorm:"primarykey" readonly:"true"`
ProjectId int `gorm:"uniqueIndex:idx_server"` ProjectId int `gorm:"uniqueIndex:idx_server"`
ServerConfID string `gorm:"type:varchar(200);uniqueIndex:idx_server" name:"区服id" required:"true" uneditable:"true"` ServerConfID string `gorm:"type:varchar(200);uniqueIndex:idx_server" name:"区服id" required:"true" uneditable:"true"`
Desc string `name:"描述" required:"true"` Desc string `name:"描述" required:"true"`
ClientConnAddr string `name:"客户端连接地址" desc:"填 公网ip:公网端口" required:"true"` ClientConnAddr string `name:"客户端连接地址" desc:"填 公网ip:公网端口" required:"true"`
RunningStatus string `name:"进程运行状态" desc:"进程运行状态:未知、运行中、停止" readonly:"true" uneditable:"true" type:"tagStatus" choices:"GetRunningStatusChoices"` RunningStatus string `name:"进程运行状态" desc:"进程运行状态:未知、运行中、停止" readonly:"true" uneditable:"true" type:"tagStatus" choices:"GetRunningStatusChoices"`
Ccu int `name:"实时在线" desc:"ccu" readonly:"true" uneditable:"true"` Ccu int `name:"实时在线" desc:"ccu" readonly:"true" uneditable:"true"`
TotalRoleCount int `name:"总角色数" desc:"" readonly:"true" uneditable:"true"` TotalRoleCount int `name:"总角色数" desc:"" readonly:"true" uneditable:"true"`
TotalAccountCount int `name:"总账号数" desc:"" readonly:"true" uneditable:"true"` TotalAccountCount int `name:"总账号数" desc:"" readonly:"true" uneditable:"true"`
IsServerDown bool `name:"停服维护中" desc:"" readonly:"true" uneditable:"true" type:"tagStatus" choices:"GetServerDownStatusChoices"` IsServerDown bool `name:"停服维护中" desc:"" readonly:"true" uneditable:"true" type:"tagStatus" choices:"GetServerDownStatusChoices"`
ServerStatus string `gorm:"varchar(20);default:normal" name:"服务器逻辑状态" desc:"爆满、繁忙、流畅" type:"tagStatus" choices:"GetServerStatusChoices"` ServerStatus string `gorm:"varchar(20);default:normal" name:"服务器逻辑状态" desc:"爆满、繁忙、流畅" type:"tagStatus" choices:"GetServerStatusChoices"`
ExtraInfo ServerExtraInfo `gorm:"type:json;serializer:json" name:"跨服信息" readonly:"true" big_column:"true"`
// command_list接口服务器地址为空代表由由项目统一提供command_list. // command_list接口服务器地址为空代表由由项目统一提供command_list.
// 取决于每个项目改造难度: // 取决于每个项目改造难度:
// 为空就代表项目要实现一个自己统一对外暴露的gm调用服务对内聚合、分发指令执行本后台执行指令只调用一次 // 为空就代表项目要实现一个自己统一对外暴露的gm调用服务对内聚合、分发指令执行本后台执行指令只调用一次

Binary file not shown.

View File

@ -5,7 +5,7 @@
<link rel="icon" href="/favicon.ico"> <link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title> <title>Vite App</title>
<script type="module" crossorigin src="/static/js/index-CpWFkf7_.js"></script> <script type="module" crossorigin src="/static/js/index-DWfXqx13.js"></script>
<link rel="modulepreload" crossorigin href="/static/js/vendor-BRRlSJxx.js"> <link rel="modulepreload" crossorigin href="/static/js/vendor-BRRlSJxx.js">
<link rel="stylesheet" crossorigin href="/static/css/vendor-DnLjZ1mj.css"> <link rel="stylesheet" crossorigin href="/static/css/vendor-DnLjZ1mj.css">
<link rel="stylesheet" crossorigin href="/static/css/index-BqAGgcXq.css"> <link rel="stylesheet" crossorigin href="/static/css/index-BqAGgcXq.css">

View File

@ -0,0 +1 @@
.roleDetailList[data-v-5a8d8958] .el-table__header-wrapper th{word-break:break-word;background-color:#f8f8f9!important;color:#515a6e;height:40px!important;font-size:13px}.roleDetailList[data-v-5a8d8958] .el-table__header .el-table-column--selection .cell{width:60px!important}.roleDetailList[data-v-5a8d8958] .el-table .fixed-width .el-button--small{padding-left:0;padding-right:0;width:20px!important}.roleDetailList[data-v-5a8d8958] .el-table__header{background:#f5f7fa!important}.roleDetailList[data-v-5a8d8958] .el-table__row td{border-color:#ebeef5}.app-content[data-v-4fbc3c96]{height:calc(100vh - 100px);display:flex}.app-content .table-content[data-v-4fbc3c96]{display:flex;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.app-content .table-content .table[data-v-4fbc3c96]{flex:1;position:relative}.app-content .table-content .table[data-v-4fbc3c96] .el-table{flex:1;position:absolute}.app-content .table-content .table[data-v-4fbc3c96] .el-popper{max-width:640px;word-break:break-all}.pagination-container .el-pagination[data-v-4fbc3c96]{right:0;position:absolute;height:25px;margin-bottom:50px;margin-top:0;padding:10px 30px!important;z-index:2}.pagination-container.hidden[data-v-4fbc3c96]{display:none}@media (max-width: 768px){.pagination-container .el-pagination>.el-pagination__jump[data-v-4fbc3c96]{display:none!important}.pagination-container .el-pagination>.el-pagination__sizes[data-v-4fbc3c96]{display:none!important}}

View File

@ -0,0 +1 @@
.roleDetailList[data-v-5a8d8958] .el-table__header-wrapper th{word-break:break-word;background-color:#f8f8f9!important;color:#515a6e;height:40px!important;font-size:13px}.roleDetailList[data-v-5a8d8958] .el-table__header .el-table-column--selection .cell{width:60px!important}.roleDetailList[data-v-5a8d8958] .el-table .fixed-width .el-button--small{padding-left:0;padding-right:0;width:20px!important}.roleDetailList[data-v-5a8d8958] .el-table__header{background:#f5f7fa!important}.roleDetailList[data-v-5a8d8958] .el-table__row td{border-color:#ebeef5}.app-content[data-v-43c33ce5]{height:calc(100vh - 100px);display:flex}.app-content .table-content[data-v-43c33ce5]{display:flex;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.app-content .table-content .table[data-v-43c33ce5]{flex:1;position:relative}.app-content .table-content .table[data-v-43c33ce5] .el-table{flex:1;position:absolute}.app-content .table-content .table[data-v-43c33ce5] .el-popper{max-width:640px;word-break:break-all}.pagination-container .el-pagination[data-v-43c33ce5]{right:0;position:absolute;height:25px;margin-bottom:50px;margin-top:0;padding:10px 30px!important;z-index:2}.pagination-container.hidden[data-v-43c33ce5]{display:none}@media (max-width: 768px){.pagination-container .el-pagination>.el-pagination__jump[data-v-43c33ce5]{display:none!important}.pagination-container .el-pagination>.el-pagination__sizes[data-v-43c33ce5]{display:none!important}}

View File

@ -0,0 +1 @@
.roleDetailList[data-v-5a8d8958] .el-table__header-wrapper th{word-break:break-word;background-color:#f8f8f9!important;color:#515a6e;height:40px!important;font-size:13px}.roleDetailList[data-v-5a8d8958] .el-table__header .el-table-column--selection .cell{width:60px!important}.roleDetailList[data-v-5a8d8958] .el-table .fixed-width .el-button--small{padding-left:0;padding-right:0;width:20px!important}.roleDetailList[data-v-5a8d8958] .el-table__header{background:#f5f7fa!important}.roleDetailList[data-v-5a8d8958] .el-table__row td{border-color:#ebeef5}.app-content[data-v-9576c8e1]{height:calc(100vh - 100px);display:flex}.app-content .table-content[data-v-9576c8e1]{display:flex;flex-direction:column;justify-content:space-between;height:100%;overflow:auto}.app-content .table-content .table[data-v-9576c8e1]{flex:1;position:relative}.app-content .table-content .table[data-v-9576c8e1] .el-table{flex:1;position:absolute}.app-content .table-content .table[data-v-9576c8e1] .el-popper{max-width:640px;word-break:break-all}.pagination-container .el-pagination[data-v-9576c8e1]{right:0;position:absolute;height:25px;margin-bottom:50px;margin-top:0;padding:10px 30px!important;z-index:2}.pagination-container.hidden[data-v-9576c8e1]{display:none}@media (max-width: 768px){.pagination-container .el-pagination>.el-pagination__jump[data-v-9576c8e1]{display:none!important}.pagination-container .el-pagination>.el-pagination__sizes[data-v-9576c8e1]{display:none!important}}

View File

@ -0,0 +1 @@
import{r as e,ab as a,a as s,o,d as r,b as l,w as n,a0 as t,a3 as u,ac as d,W as i,v as p,$ as c,a9 as m,I as v}from"./vendor-BRRlSJxx.js";import{_ as f,u as _,r as g}from"./index-DywEcDGD.js";const y={class:"login-box"},h={class:m({container:!0,animate__animated:!0,animate__flipInX:!0})},w={class:"form-container sign-in-container"},b=f({__name:"Login",setup(m){e(void 0);const{proxy:f}=a(),b=e({user:"",password:""}),V={user:[{required:!0,trigger:"blur",message:"请输入您的账号"}],password:[{required:!0,trigger:"blur",message:"请输入您的密码"}]},x=e=>{e&&f.$refs.ruleFormRef.validate((e=>{if(!e)return console.log("error submit!"),!1;_().login(b.value.user,b.value.password).then((()=>{console.log("登录成功,推送首页。。"),g.push({path:"/welcome"})}),(e=>{})).catch((()=>{v.error("login response error")}))}))};return(e,a)=>{const m=u,v=t,f=i,_=c;return o(),s("div",y,[r("div",h,[r("div",w,[l(_,{ref:"ruleFormRef",model:b.value,"status-icon":"",rules:V,class:"form"},{default:n((()=>[l(v,{class:"form-item",prop:"username"},{default:n((()=>[l(m,{modelValue:b.value.user,"onUpdate:modelValue":a[0]||(a[0]=e=>b.value.user=e),placeholder:"用户名",autocomplete:"off",onKeyup:a[1]||(a[1]=d((e=>x(b.value)),["enter"]))},null,8,["modelValue"])])),_:1}),l(v,{class:"form-item",prop:"password"},{default:n((()=>[l(m,{modelValue:b.value.password,"onUpdate:modelValue":a[2]||(a[2]=e=>b.value.password=e),placeholder:"密码",type:"password",autocomplete:"off",onKeyup:a[3]||(a[3]=d((e=>x(b.value)),["enter"]))},null,8,["modelValue"])])),_:1}),l(f,{class:"theme-button",type:"primary",onClick:a[4]||(a[4]=e=>x(b.value)),onKeydown:a[5]||(a[5]=d((e=>{var a;13!==a.keyCode&&100!==a.keyCode||x(b.value)}),["enter"]))},{default:n((()=>a[6]||(a[6]=[p("登 陆 ")]))),_:1})])),_:1},8,["model"])]),a[7]||(a[7]=r("div",{class:"overlay_container"},[r("div",{class:"overlay"},[r("div",{class:"overlay_panel overlay_right_container"},[r("h2",{class:"container-title"},"hello friend!"),r("p",null,"输入您的个人信息,以便使用后台管理系统")])])],-1))])])}}},[["__scopeId","data-v-68d4afe9"]]);export{b as default};

View File

@ -0,0 +1 @@
import{r as e,ab as a,a as s,o,d as r,b as l,w as n,a0 as t,a3 as u,ac as d,W as i,v as p,$ as c,a9 as m,I as v}from"./vendor-BRRlSJxx.js";import{_ as f,u as _,r as g}from"./index-DWfXqx13.js";const y={class:"login-box"},h={class:m({container:!0,animate__animated:!0,animate__flipInX:!0})},w={class:"form-container sign-in-container"},b=f({__name:"Login",setup(m){e(void 0);const{proxy:f}=a(),b=e({user:"",password:""}),V={user:[{required:!0,trigger:"blur",message:"请输入您的账号"}],password:[{required:!0,trigger:"blur",message:"请输入您的密码"}]},x=e=>{e&&f.$refs.ruleFormRef.validate((e=>{if(!e)return console.log("error submit!"),!1;_().login(b.value.user,b.value.password).then((()=>{console.log("登录成功,推送首页。。"),g.push({path:"/welcome"})}),(e=>{})).catch((()=>{v.error("login response error")}))}))};return(e,a)=>{const m=u,v=t,f=i,_=c;return o(),s("div",y,[r("div",h,[r("div",w,[l(_,{ref:"ruleFormRef",model:b.value,"status-icon":"",rules:V,class:"form"},{default:n((()=>[l(v,{class:"form-item",prop:"username"},{default:n((()=>[l(m,{modelValue:b.value.user,"onUpdate:modelValue":a[0]||(a[0]=e=>b.value.user=e),placeholder:"用户名",autocomplete:"off",onKeyup:a[1]||(a[1]=d((e=>x(b.value)),["enter"]))},null,8,["modelValue"])])),_:1}),l(v,{class:"form-item",prop:"password"},{default:n((()=>[l(m,{modelValue:b.value.password,"onUpdate:modelValue":a[2]||(a[2]=e=>b.value.password=e),placeholder:"密码",type:"password",autocomplete:"off",onKeyup:a[3]||(a[3]=d((e=>x(b.value)),["enter"]))},null,8,["modelValue"])])),_:1}),l(f,{class:"theme-button",type:"primary",onClick:a[4]||(a[4]=e=>x(b.value)),onKeydown:a[5]||(a[5]=d((e=>{var a;13!==a.keyCode&&100!==a.keyCode||x(b.value)}),["enter"]))},{default:n((()=>a[6]||(a[6]=[p("登 陆 ")]))),_:1})])),_:1},8,["model"])]),a[7]||(a[7]=r("div",{class:"overlay_container"},[r("div",{class:"overlay"},[r("div",{class:"overlay_panel overlay_right_container"},[r("h2",{class:"container-title"},"hello friend!"),r("p",null,"输入您的个人信息,以便使用后台管理系统")])])],-1))])])}}},[["__scopeId","data-v-68d4afe9"]]);export{b as default};

View File

@ -0,0 +1 @@
import{r as e,ab as a,a as s,o,d as r,b as l,w as n,a0 as t,a3 as u,ac as d,W as i,v as p,$ as c,a9 as m,I as v}from"./vendor-BRRlSJxx.js";import{_ as f,u as _,r as g}from"./index-vJHlbzq8.js";const y={class:"login-box"},h={class:m({container:!0,animate__animated:!0,animate__flipInX:!0})},w={class:"form-container sign-in-container"},b=f({__name:"Login",setup(m){e(void 0);const{proxy:f}=a(),b=e({user:"",password:""}),V={user:[{required:!0,trigger:"blur",message:"请输入您的账号"}],password:[{required:!0,trigger:"blur",message:"请输入您的密码"}]},x=e=>{e&&f.$refs.ruleFormRef.validate((e=>{if(!e)return console.log("error submit!"),!1;_().login(b.value.user,b.value.password).then((()=>{console.log("登录成功,推送首页。。"),g.push({path:"/welcome"})}),(e=>{})).catch((()=>{v.error("login response error")}))}))};return(e,a)=>{const m=u,v=t,f=i,_=c;return o(),s("div",y,[r("div",h,[r("div",w,[l(_,{ref:"ruleFormRef",model:b.value,"status-icon":"",rules:V,class:"form"},{default:n((()=>[l(v,{class:"form-item",prop:"username"},{default:n((()=>[l(m,{modelValue:b.value.user,"onUpdate:modelValue":a[0]||(a[0]=e=>b.value.user=e),placeholder:"用户名",autocomplete:"off",onKeyup:a[1]||(a[1]=d((e=>x(b.value)),["enter"]))},null,8,["modelValue"])])),_:1}),l(v,{class:"form-item",prop:"password"},{default:n((()=>[l(m,{modelValue:b.value.password,"onUpdate:modelValue":a[2]||(a[2]=e=>b.value.password=e),placeholder:"密码",type:"password",autocomplete:"off",onKeyup:a[3]||(a[3]=d((e=>x(b.value)),["enter"]))},null,8,["modelValue"])])),_:1}),l(f,{class:"theme-button",type:"primary",onClick:a[4]||(a[4]=e=>x(b.value)),onKeydown:a[5]||(a[5]=d((e=>{var a;13!==a.keyCode&&100!==a.keyCode||x(b.value)}),["enter"]))},{default:n((()=>a[6]||(a[6]=[p("登 陆 ")]))),_:1})])),_:1},8,["model"])]),a[7]||(a[7]=r("div",{class:"overlay_container"},[r("div",{class:"overlay"},[r("div",{class:"overlay_panel overlay_right_container"},[r("h2",{class:"container-title"},"hello friend!"),r("p",null,"输入您的个人信息,以便使用后台管理系统")])])],-1))])])}}},[["__scopeId","data-v-68d4afe9"]]);export{b as default};

View File

@ -0,0 +1 @@
import{t as e}from"./tableUser-DhieNA1o.js";import{u as r,L as t}from"./index-DywEcDGD.js";import{a as s,o as a,c as o,B as c}from"./vendor-BRRlSJxx.js";import"./resource-XDuIQuqf.js";import"./empty-Bz47xX2f.js";const m={__name:"character",setup(m){let u={meta:{desc:"character",resource:"character",resource_url:"/resource/character",methods:{get:!0,post:!0,put:!0,delete:!0}}};return"admin"!==r().userInfo.character&&(u.meta.methods={}),t.setCache("resource",u),(r,t)=>(a(),s("div",null,[(a(),o(c(e)))]))}};export{m as default};

View File

@ -0,0 +1 @@
import{t as e}from"./tableUser-DwImSDNC.js";import{u as r,L as t}from"./index-vJHlbzq8.js";import{a as s,o as a,c as o,B as c}from"./vendor-BRRlSJxx.js";import"./resource-Dxfjm6yW.js";import"./empty-Br3lJEpX.js";const m={__name:"character",setup(m){let u={meta:{desc:"character",resource:"character",resource_url:"/resource/character",methods:{get:!0,post:!0,put:!0,delete:!0}}};return"admin"!==r().userInfo.character&&(u.meta.methods={}),t.setCache("resource",u),(r,t)=>(a(),s("div",null,[(a(),o(c(e)))]))}};export{m as default};

View File

@ -0,0 +1 @@
import{t as e}from"./tableUser-CzsOqJTl.js";import{u as r,L as t}from"./index-DWfXqx13.js";import{a as s,o as a,c as o,B as c}from"./vendor-BRRlSJxx.js";import"./resource-CbEQC1zg.js";import"./empty-ButIdlMe.js";const m={__name:"character",setup(m){let u={meta:{desc:"character",resource:"character",resource_url:"/resource/character",methods:{get:!0,post:!0,put:!0,delete:!0}}};return"admin"!==r().userInfo.character&&(u.meta.methods={}),t.setCache("resource",u),(r,t)=>(a(),s("div",null,[(a(),o(c(e)))]))}};export{m as default};

View File

@ -0,0 +1 @@
import{c as o,o as r,ai as s}from"./vendor-BRRlSJxx.js";import{_ as n}from"./index-vJHlbzq8.js";const e=n({},[["render",function(n,e){const t=s;return r(),o(t,{description:"没有权限!请联系管理员添加权限!"})}]]);export{e};

View File

@ -0,0 +1 @@
import{c as o,o as r,ai as s}from"./vendor-BRRlSJxx.js";import{_ as n}from"./index-DWfXqx13.js";const e=n({},[["render",function(n,e){const t=s;return r(),o(t,{description:"没有权限!请联系管理员添加权限!"})}]]);export{e};

View File

@ -0,0 +1 @@
import{c as o,o as r,ai as s}from"./vendor-BRRlSJxx.js";import{_ as n}from"./index-DywEcDGD.js";const e=n({},[["render",function(n,e){const t=s;return r(),o(t,{description:"没有权限!请联系管理员添加权限!"})}]]);export{e};

View File

@ -0,0 +1 @@
import{t as s}from"./history-C4b0fAxA.js";import{c as o,o as t,B as e}from"./vendor-BRRlSJxx.js";import"./index-DWfXqx13.js";import"./empty-ButIdlMe.js";const i={__name:"history",setup:i=>(i,r)=>(t(),o(e(s),{disableConditionInput:false}))};export{i as default};

View File

@ -0,0 +1 @@
import{r as e,T as a,a as l,o as t,c as o,u,B as n,F as s,U as p,w as r,b as d,V as i,a7 as v,a3 as m,a8 as c,W as g,v as h,C as y,d as f,X as V,Y as b,Z as x,D as w,a9 as I}from"./vendor-BRRlSJxx.js";import{_ as k,u as _,a as C}from"./index-vJHlbzq8.js";import{e as U}from"./empty-Br3lJEpX.js";const z={class:"table-content"},j={class:"table"},D={class:"pagination-container"},R=k({__name:"history",props:{rowInfo:{},disableConditionInput:!0},setup(k){const R=k;let S=!0;!1===R.disableConditionInput&&(S=!1);const T="admin"===_().userInfo.character,A=e(T),B=e(1),F=e(20),G=e(R.userId);R.rowInfo&&void 0!==R.rowInfo.ID&&(G.value=R.rowInfo.ID);const K=e(""),N=e(""),P=e(""),W=e(""),X=e(!1),Y=[20,50,100],Z=e(0),q=e([]),E=()=>{C(B.value,F.value,G.value,K.value,N.value,P.value,W.value).then((e=>{q.value=e.data.list,Z.value=e.data.totalCount,X.value=!0}),(e=>{}))};a((()=>{E()}));const H=()=>{G.value="",K.value="",N.value="",P.value="",W.value=""},J=e=>{Z.value<=0||F.value*B.value>Z.value&&q.value.length>=Z.value||E()},L=e=>{E()};return(e,a)=>{const k=m,_=g,C=v,R=i,T=b,M=V,O=x,Q=y,$=w;return t(),l("div",{class:I(u(S)?"app-content1":"app-content")},[u(A)?(t(),l(s,{key:1},[u(X)?(t(),o($,{key:0},{default:r((()=>[d(R,{style:{"margin-bottom":"10px"}},{default:r((()=>[d(C,null,{default:r((()=>[!1===u(S)?(t(),o(k,{key:0,modelValue:u(G),"onUpdate:modelValue":a[0]||(a[0]=e=>c(G)?G.value=e:null),placeholder:"用户id",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:1,modelValue:u(K),"onUpdate:modelValue":a[1]||(a[1]=e=>c(K)?K.value=e:null),placeholder:"操作资源类型",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:2,modelValue:u(N),"onUpdate:modelValue":a[2]||(a[2]=e=>c(N)?N.value=e:null),placeholder:"操作资源组",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:3,modelValue:u(P),"onUpdate:modelValue":a[3]||(a[3]=e=>c(P)?P.value=e:null),placeholder:"操作对象",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:4,modelValue:u(W),"onUpdate:modelValue":a[4]||(a[4]=e=>c(W)?W.value=e:null),placeholder:"操作方法",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(_,{key:5,onClick:E,type:"primary",style:{"margin-right":"10px"}},{default:r((()=>a[7]||(a[7]=[h("条件搜索 ")]))),_:1})):p("",!0),!1===u(S)?(t(),o(_,{key:6,onClick:H},{default:r((()=>a[8]||(a[8]=[h("清空条件")]))),_:1})):p("",!0)])),_:1})])),_:1}),d(Q,null,{default:r((()=>[f("div",z,[f("div",j,[d(M,{data:u(q),style:{width:"100%"},"table-layout":"auto",stripe:"","tooltip-effect":"light"},{default:r((()=>[d(T,{prop:"userId",label:"用户id"}),d(T,{prop:"userName",label:"用户名"}),d(T,{prop:"opResourceType",label:"操作资源类型"}),d(T,{prop:"opResourceGroup",label:"操作资源组"}),d(T,{prop:"opResourceKey",label:"操作对象"}),d(T,{prop:"method",label:"操作方法"}),d(T,{prop:"createdAt",label:"创建时间"}),d(T,{prop:"detailInfo",label:"详情数据","show-overflow-tooltip":""})])),_:1},8,["data"])]),f("div",D,[d(O,{"current-page":u(B),"onUpdate:currentPage":a[5]||(a[5]=e=>c(B)?B.value=e:null),"page-size":u(F),"onUpdate:pageSize":a[6]||(a[6]=e=>c(F)?F.value=e:null),"page-sizes":Y,layout:"total, sizes, prev, pager, next, jumper",total:u(Z),onSizeChange:J,onCurrentChange:L},null,8,["current-page","page-size","total"])])])])),_:1})])),_:1})):p("",!0)],64)):(t(),o(n(U),{key:0}))],2)}}},[["__scopeId","data-v-926d7759"]]);export{R as t};

View File

@ -0,0 +1 @@
import{t as s}from"./history-VDHnVlem.js";import{c as o,o as t,B as e}from"./vendor-BRRlSJxx.js";import"./index-DywEcDGD.js";import"./empty-Bz47xX2f.js";const i={__name:"history",setup:i=>(i,r)=>(t(),o(e(s),{disableConditionInput:false}))};export{i as default};

View File

@ -0,0 +1 @@
import{r as e,T as a,a as l,o as t,c as o,u,B as n,F as s,U as p,w as r,b as d,V as i,a7 as v,a3 as m,a8 as c,W as g,v as h,C as y,d as f,X as V,Y as b,Z as x,D as w,a9 as I}from"./vendor-BRRlSJxx.js";import{_ as k,u as _,a as C}from"./index-DWfXqx13.js";import{e as U}from"./empty-ButIdlMe.js";const z={class:"table-content"},j={class:"table"},D={class:"pagination-container"},R=k({__name:"history",props:{rowInfo:{},disableConditionInput:!0},setup(k){const R=k;let S=!0;!1===R.disableConditionInput&&(S=!1);const T="admin"===_().userInfo.character,A=e(T),B=e(1),F=e(20),G=e(R.userId);R.rowInfo&&void 0!==R.rowInfo.ID&&(G.value=R.rowInfo.ID);const K=e(""),N=e(""),P=e(""),W=e(""),X=e(!1),Y=[20,50,100],Z=e(0),q=e([]),E=()=>{C(B.value,F.value,G.value,K.value,N.value,P.value,W.value).then((e=>{q.value=e.data.list,Z.value=e.data.totalCount,X.value=!0}),(e=>{}))};a((()=>{E()}));const H=()=>{G.value="",K.value="",N.value="",P.value="",W.value=""},J=e=>{Z.value<=0||F.value*B.value>Z.value&&q.value.length>=Z.value||E()},L=e=>{E()};return(e,a)=>{const k=m,_=g,C=v,R=i,T=b,M=V,O=x,Q=y,$=w;return t(),l("div",{class:I(u(S)?"app-content1":"app-content")},[u(A)?(t(),l(s,{key:1},[u(X)?(t(),o($,{key:0},{default:r((()=>[d(R,{style:{"margin-bottom":"10px"}},{default:r((()=>[d(C,null,{default:r((()=>[!1===u(S)?(t(),o(k,{key:0,modelValue:u(G),"onUpdate:modelValue":a[0]||(a[0]=e=>c(G)?G.value=e:null),placeholder:"用户id",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:1,modelValue:u(K),"onUpdate:modelValue":a[1]||(a[1]=e=>c(K)?K.value=e:null),placeholder:"操作资源类型",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:2,modelValue:u(N),"onUpdate:modelValue":a[2]||(a[2]=e=>c(N)?N.value=e:null),placeholder:"操作资源组",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:3,modelValue:u(P),"onUpdate:modelValue":a[3]||(a[3]=e=>c(P)?P.value=e:null),placeholder:"操作对象",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:4,modelValue:u(W),"onUpdate:modelValue":a[4]||(a[4]=e=>c(W)?W.value=e:null),placeholder:"操作方法",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(_,{key:5,onClick:E,type:"primary",style:{"margin-right":"10px"}},{default:r((()=>a[7]||(a[7]=[h("条件搜索 ")]))),_:1})):p("",!0),!1===u(S)?(t(),o(_,{key:6,onClick:H},{default:r((()=>a[8]||(a[8]=[h("清空条件")]))),_:1})):p("",!0)])),_:1})])),_:1}),d(Q,null,{default:r((()=>[f("div",z,[f("div",j,[d(M,{data:u(q),style:{width:"100%"},"table-layout":"auto",stripe:"","tooltip-effect":"light"},{default:r((()=>[d(T,{prop:"userId",label:"用户id"}),d(T,{prop:"userName",label:"用户名"}),d(T,{prop:"opResourceType",label:"操作资源类型"}),d(T,{prop:"opResourceGroup",label:"操作资源组"}),d(T,{prop:"opResourceKey",label:"操作对象"}),d(T,{prop:"method",label:"操作方法"}),d(T,{prop:"createdAt",label:"创建时间"}),d(T,{prop:"detailInfo",label:"详情数据","show-overflow-tooltip":""})])),_:1},8,["data"])]),f("div",D,[d(O,{"current-page":u(B),"onUpdate:currentPage":a[5]||(a[5]=e=>c(B)?B.value=e:null),"page-size":u(F),"onUpdate:pageSize":a[6]||(a[6]=e=>c(F)?F.value=e:null),"page-sizes":Y,layout:"total, sizes, prev, pager, next, jumper",total:u(Z),onSizeChange:J,onCurrentChange:L},null,8,["current-page","page-size","total"])])])])),_:1})])),_:1})):p("",!0)],64)):(t(),o(n(U),{key:0}))],2)}}},[["__scopeId","data-v-926d7759"]]);export{R as t};

View File

@ -0,0 +1 @@
import{t as s}from"./history-B6FltBCr.js";import{c as o,o as t,B as e}from"./vendor-BRRlSJxx.js";import"./index-vJHlbzq8.js";import"./empty-Br3lJEpX.js";const i={__name:"history",setup:i=>(i,r)=>(t(),o(e(s),{disableConditionInput:false}))};export{i as default};

View File

@ -0,0 +1 @@
import{r as e,T as a,a as l,o as t,c as o,u,B as n,F as s,U as p,w as r,b as d,V as i,a7 as v,a3 as m,a8 as c,W as g,v as h,C as y,d as f,X as V,Y as b,Z as x,D as w,a9 as I}from"./vendor-BRRlSJxx.js";import{_ as k,u as _,a as C}from"./index-DywEcDGD.js";import{e as U}from"./empty-Bz47xX2f.js";const z={class:"table-content"},j={class:"table"},D={class:"pagination-container"},R=k({__name:"history",props:{rowInfo:{},disableConditionInput:!0},setup(k){const R=k;let S=!0;!1===R.disableConditionInput&&(S=!1);const T="admin"===_().userInfo.character,A=e(T),B=e(1),F=e(20),G=e(R.userId);R.rowInfo&&void 0!==R.rowInfo.ID&&(G.value=R.rowInfo.ID);const K=e(""),N=e(""),P=e(""),W=e(""),X=e(!1),Y=[20,50,100],Z=e(0),q=e([]),E=()=>{C(B.value,F.value,G.value,K.value,N.value,P.value,W.value).then((e=>{q.value=e.data.list,Z.value=e.data.totalCount,X.value=!0}),(e=>{}))};a((()=>{E()}));const H=()=>{G.value="",K.value="",N.value="",P.value="",W.value=""},J=e=>{Z.value<=0||F.value*B.value>Z.value&&q.value.length>=Z.value||E()},L=e=>{E()};return(e,a)=>{const k=m,_=g,C=v,R=i,T=b,M=V,O=x,Q=y,$=w;return t(),l("div",{class:I(u(S)?"app-content1":"app-content")},[u(A)?(t(),l(s,{key:1},[u(X)?(t(),o($,{key:0},{default:r((()=>[d(R,{style:{"margin-bottom":"10px"}},{default:r((()=>[d(C,null,{default:r((()=>[!1===u(S)?(t(),o(k,{key:0,modelValue:u(G),"onUpdate:modelValue":a[0]||(a[0]=e=>c(G)?G.value=e:null),placeholder:"用户id",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:1,modelValue:u(K),"onUpdate:modelValue":a[1]||(a[1]=e=>c(K)?K.value=e:null),placeholder:"操作资源类型",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:2,modelValue:u(N),"onUpdate:modelValue":a[2]||(a[2]=e=>c(N)?N.value=e:null),placeholder:"操作资源组",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:3,modelValue:u(P),"onUpdate:modelValue":a[3]||(a[3]=e=>c(P)?P.value=e:null),placeholder:"操作对象",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(k,{key:4,modelValue:u(W),"onUpdate:modelValue":a[4]||(a[4]=e=>c(W)?W.value=e:null),placeholder:"操作方法",style:{width:"150px","margin-right":"10px"}},null,8,["modelValue"])):p("",!0),!1===u(S)?(t(),o(_,{key:5,onClick:E,type:"primary",style:{"margin-right":"10px"}},{default:r((()=>a[7]||(a[7]=[h("条件搜索 ")]))),_:1})):p("",!0),!1===u(S)?(t(),o(_,{key:6,onClick:H},{default:r((()=>a[8]||(a[8]=[h("清空条件")]))),_:1})):p("",!0)])),_:1})])),_:1}),d(Q,null,{default:r((()=>[f("div",z,[f("div",j,[d(M,{data:u(q),style:{width:"100%"},"table-layout":"auto",stripe:"","tooltip-effect":"light"},{default:r((()=>[d(T,{prop:"userId",label:"用户id"}),d(T,{prop:"userName",label:"用户名"}),d(T,{prop:"opResourceType",label:"操作资源类型"}),d(T,{prop:"opResourceGroup",label:"操作资源组"}),d(T,{prop:"opResourceKey",label:"操作对象"}),d(T,{prop:"method",label:"操作方法"}),d(T,{prop:"createdAt",label:"创建时间"}),d(T,{prop:"detailInfo",label:"详情数据","show-overflow-tooltip":""})])),_:1},8,["data"])]),f("div",D,[d(O,{"current-page":u(B),"onUpdate:currentPage":a[5]||(a[5]=e=>c(B)?B.value=e:null),"page-size":u(F),"onUpdate:pageSize":a[6]||(a[6]=e=>c(F)?F.value=e:null),"page-sizes":Y,layout:"total, sizes, prev, pager, next, jumper",total:u(Z),onSizeChange:J,onCurrentChange:L},null,8,["current-page","page-size","total"])])])])),_:1})])),_:1})):p("",!0)],64)):(t(),o(n(U),{key:0}))],2)}}},[["__scopeId","data-v-926d7759"]]);export{R as t};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{t as e}from"./table-CYPH4eHC.js";import{L as s,u as a,c as r}from"./index-vJHlbzq8.js";import{i as t,a as o,o as m,c,B as p}from"./vendor-BRRlSJxx.js";import"./resource-Dxfjm6yW.js";import"./empty-Br3lJEpX.js";const i={__name:"project",setup(i){s.setCache("project",{}),t();let n=r;return"admin"!==a().userInfo.character&&(n.meta.methods={}),s.setCache("resource",n),(s,a)=>(m(),o("div",null,[(m(),c(p(e)))]))}};export{i as default};

View File

@ -0,0 +1 @@
import{t as e}from"./table-D92D9bCS.js";import{L as s,u as a,c as r}from"./index-DywEcDGD.js";import{i as t,a as o,o as m,c,B as p}from"./vendor-BRRlSJxx.js";import"./resource-XDuIQuqf.js";import"./empty-Bz47xX2f.js";const i={__name:"project",setup(i){s.setCache("project",{}),t();let n=r;return"admin"!==a().userInfo.character&&(n.meta.methods={}),s.setCache("resource",n),(s,a)=>(m(),o("div",null,[(m(),c(p(e)))]))}};export{i as default};

View File

@ -0,0 +1 @@
import{t as e}from"./table-D5VYE8yX.js";import{L as s,u as a,c as r}from"./index-DWfXqx13.js";import{i as t,a as o,o as m,c,B as p}from"./vendor-BRRlSJxx.js";import"./resource-CbEQC1zg.js";import"./empty-ButIdlMe.js";const i={__name:"project",setup(i){s.setCache("project",{}),t();let n=r;return"admin"!==a().userInfo.character&&(n.meta.methods={}),s.setCache("resource",n),(s,a)=>(m(),o("div",null,[(m(),c(p(e)))]))}};export{i as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{s as t}from"./index-DWfXqx13.js";function r(r,e){return t({url:r,method:"get",params:e})}function e(r,e){return t({url:r,method:"post",data:{dto:e}})}function o(r,e){return t({url:r,method:"put",data:{dto:e}})}function n(r,e){return t({url:r,method:"delete",data:e})}function u(r,e){return t({url:r+"/selection",method:"post",data:e})}function a(r){return t({url:"/project/"+r.toString()+"/items",method:"get"})}export{n as a,e as b,o as c,a as d,u as e,r};

View File

@ -0,0 +1 @@
import{s as t}from"./index-vJHlbzq8.js";function r(r,e){return t({url:r,method:"get",params:e})}function e(r,e){return t({url:r,method:"post",data:{dto:e}})}function o(r,e){return t({url:r,method:"put",data:{dto:e}})}function n(r,e){return t({url:r,method:"delete",data:e})}function u(r,e){return t({url:r+"/selection",method:"post",data:e})}function a(r){return t({url:"/project/"+r.toString()+"/items",method:"get"})}export{n as a,e as b,o as c,a as d,u as e,r};

View File

@ -0,0 +1 @@
import{s as t}from"./index-DywEcDGD.js";function r(r,e){return t({url:r,method:"get",params:e})}function e(r,e){return t({url:r,method:"post",data:{dto:e}})}function o(r,e){return t({url:r,method:"put",data:{dto:e}})}function n(r,e){return t({url:r,method:"delete",data:e})}function u(r,e){return t({url:r+"/selection",method:"post",data:e})}function a(r){return t({url:"/project/"+r.toString()+"/items",method:"get"})}export{n as a,e as b,o as c,a as d,u as e,r};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{t as e}from"./tableUser-DhieNA1o.js";import{u as s,L as r}from"./index-DywEcDGD.js";import{t}from"./history-VDHnVlem.js";import{a as o,o as a,c,B as m}from"./vendor-BRRlSJxx.js";import"./resource-XDuIQuqf.js";import"./empty-Bz47xX2f.js";const u={__name:"user",setup(u){let n={meta:{desc:"user",resource:"user",resource_url:"/resource/user",methods:{get:!0,post:!0,put:!0,delete:!0}}};"admin"!==s().userInfo.character&&(n.meta.methods={}),r.setCache("resource",n);const p=[];return p.push({key:"user:exec:history",name:"执行记录",btn_color_type:"info",btn_type:1,btn_callback_component:t}),(s,r)=>(a(),o("div",null,[(a(),c(m(e),{rowClickDialogBtns:p}))]))}};export{u as default};

View File

@ -0,0 +1 @@
import{t as e}from"./tableUser-CzsOqJTl.js";import{u as s,L as r}from"./index-DWfXqx13.js";import{t}from"./history-C4b0fAxA.js";import{a as o,o as a,c,B as m}from"./vendor-BRRlSJxx.js";import"./resource-CbEQC1zg.js";import"./empty-ButIdlMe.js";const u={__name:"user",setup(u){let n={meta:{desc:"user",resource:"user",resource_url:"/resource/user",methods:{get:!0,post:!0,put:!0,delete:!0}}};"admin"!==s().userInfo.character&&(n.meta.methods={}),r.setCache("resource",n);const p=[];return p.push({key:"user:exec:history",name:"执行记录",btn_color_type:"info",btn_type:1,btn_callback_component:t}),(s,r)=>(a(),o("div",null,[(a(),c(m(e),{rowClickDialogBtns:p}))]))}};export{u as default};

View File

@ -0,0 +1 @@
import{t as e}from"./tableUser-DwImSDNC.js";import{u as s,L as r}from"./index-vJHlbzq8.js";import{t}from"./history-B6FltBCr.js";import{a as o,o as a,c,B as m}from"./vendor-BRRlSJxx.js";import"./resource-Dxfjm6yW.js";import"./empty-Br3lJEpX.js";const u={__name:"user",setup(u){let n={meta:{desc:"user",resource:"user",resource_url:"/resource/user",methods:{get:!0,post:!0,put:!0,delete:!0}}};"admin"!==s().userInfo.character&&(n.meta.methods={}),r.setCache("resource",n);const p=[];return p.push({key:"user:exec:history",name:"执行记录",btn_color_type:"info",btn_type:1,btn_callback_component:t}),(s,r)=>(a(),o("div",null,[(a(),c(m(e),{rowClickDialogBtns:p}))]))}};export{u as default};

View File

@ -0,0 +1 @@
import{a as s,o as a,d as e,b as n,v as t,t as o,u as r,aa as p,F as l}from"./vendor-BRRlSJxx.js";import{u}from"./index-DWfXqx13.js";const f={style:{"font-size":"40px"}},i={style:{color:"darkslategrey","font-size":"50px"}},m={__name:"welcome",setup(m){const c=u().userInfo;return(u,m)=>{const d=p;return a(),s(l,null,[e("span",f,[m[0]||(m[0]=t("亲爱的")),e("span",i,o(r(c).nick_name),1),m[1]||(m[1]=t("!欢迎使用本公司后台管理系统!"))]),n(d),m[2]||(m[2]=e("span",{style:{"font-size":"40px"}},"硬盘有价,数据无价,操作不规范,亲人两行泪。",-1))],64)}}};export{m as default};

View File

@ -0,0 +1 @@
import{a as s,o as a,d as e,b as n,v as t,t as o,u as r,aa as p,F as l}from"./vendor-BRRlSJxx.js";import{u}from"./index-DywEcDGD.js";const f={style:{"font-size":"40px"}},i={style:{color:"darkslategrey","font-size":"50px"}},m={__name:"welcome",setup(m){const c=u().userInfo;return(u,m)=>{const d=p;return a(),s(l,null,[e("span",f,[m[0]||(m[0]=t("亲爱的")),e("span",i,o(r(c).nick_name),1),m[1]||(m[1]=t("!欢迎使用本公司后台管理系统!"))]),n(d),m[2]||(m[2]=e("span",{style:{"font-size":"40px"}},"硬盘有价,数据无价,操作不规范,亲人两行泪。",-1))],64)}}};export{m as default};

View File

@ -0,0 +1 @@
import{a as s,o as a,d as e,b as n,v as t,t as o,u as r,aa as p,F as l}from"./vendor-BRRlSJxx.js";import{u}from"./index-vJHlbzq8.js";const f={style:{"font-size":"40px"}},i={style:{color:"darkslategrey","font-size":"50px"}},m={__name:"welcome",setup(m){const c=u().userInfo;return(u,m)=>{const d=p;return a(),s(l,null,[e("span",f,[m[0]||(m[0]=t("亲爱的")),e("span",i,o(r(c).nick_name),1),m[1]||(m[1]=t("!欢迎使用本公司后台管理系统!"))]),n(d),m[2]||(m[2]=e("span",{style:{"font-size":"40px"}},"硬盘有价,数据无价,操作不规范,亲人两行泪。",-1))],64)}}};export{m as default};

View File

@ -74,7 +74,11 @@ const handleServerRowData = (fieldsDescInfoData, rowData) => {
if (field.type === "items") { if (field.type === "items") {
dialogObjectForm.value[field.key] = [] dialogObjectForm.value[field.key] = []
rowData.jsonValue = JSON.stringify(rowData[field.key]) let itemsValue = []
rowData[field.key].forEach(item => {
itemsValue.push("(" + item.desc + "," + item.id.toString() + "," + item.num.toString() + ")")
})
rowData.jsonValue = JSON.stringify(itemsValue)
if (field.required === true) { if (field.required === true) {
rules.value[field.key] = [{ rules.value[field.key] = [{
required: true, required: true,
@ -89,9 +93,11 @@ const handleServerRowData = (fieldsDescInfoData, rowData) => {
trigger: ["blur", "change"], trigger: ["blur", "change"],
}] }]
} }
} else if (field.big_column === true) {
rowData.jsonValue = JSON.stringify(rowData[field.key])
} }
const tagStatusColorArray = ["plain", "primary", "success", "info", "waring", "danger"] const tagStatusColorArray = ["plain", "primary", "success", "info", "warning", "danger"]
if (field.type === "tagStatus") { if (field.type === "tagStatus") {
for (let k = 0; k < field.choices.length; k++) { for (let k = 0; k < field.choices.length; k++) {
if (rowData[field.key] === field.choices[k].value) { if (rowData[field.key] === field.choices[k].value) {
@ -519,6 +525,10 @@ const handleQueryItem = (itemQueryStr) => {
console.log("获取所有道具返回:", res.data) console.log("获取所有道具返回:", res.data)
console.log("查询字符串:[" + itemQueryStr + "]") console.log("查询字符串:[" + itemQueryStr + "]")
itemChoices.value = res.data.items.filter((item) => { itemChoices.value = res.data.items.filter((item) => {
const idFind = (item.value.toString()).includes(itemQueryStr)
if (idFind) {
return idFind
}
return item.desc.includes(itemQueryStr) return item.desc.includes(itemQueryStr)
}) })
loadingRemoteItems.value = false loadingRemoteItems.value = false
@ -664,7 +674,7 @@ const handleGenRandAccount = () => {
<!-- 道具列表 --> <!-- 道具列表 -->
<el-table-column prop="jsonValue" :label="fieldDescInfo.name" <el-table-column prop="jsonValue" :label="fieldDescInfo.name"
:show-overflow-tooltip="{effect:'light',placement:'top'}" :show-overflow-tooltip="{effect:'light',placement:'top'}"
v-if="(fieldDescInfo.type === 'items')"></el-table-column> v-if="(fieldDescInfo.type === 'items' || fieldDescInfo.key === 'ExtraInfo')"></el-table-column>
<!-- 状态 --> <!-- 状态 -->
<el-table-column :prop="'tagValue'+fieldDescInfo.key" :label="fieldDescInfo.name" <el-table-column :prop="'tagValue'+fieldDescInfo.key" :label="fieldDescInfo.name"
v-else-if="(fieldDescInfo.type === 'tagStatus')"> v-else-if="(fieldDescInfo.type === 'tagStatus')">