diff --git a/apps/web-antd/public/merge/Launcher_B_LV1.png b/apps/web-antd/public/merge/Launcher_B_LV1.png index 0db5fb3..4326d81 100644 Binary files a/apps/web-antd/public/merge/Launcher_B_LV1.png and b/apps/web-antd/public/merge/Launcher_B_LV1.png differ diff --git a/apps/web-antd/public/merge/Launcher_B_LV2.png b/apps/web-antd/public/merge/Launcher_B_LV2.png index 8479266..e987799 100644 Binary files a/apps/web-antd/public/merge/Launcher_B_LV2.png and b/apps/web-antd/public/merge/Launcher_B_LV2.png differ diff --git a/apps/web-antd/public/merge/Launcher_B_LV3.png b/apps/web-antd/public/merge/Launcher_B_LV3.png index 0fc30f3..f92f101 100644 Binary files a/apps/web-antd/public/merge/Launcher_B_LV3.png and b/apps/web-antd/public/merge/Launcher_B_LV3.png differ diff --git a/apps/web-antd/public/merge/Launcher_B_LV4.png b/apps/web-antd/public/merge/Launcher_B_LV4.png index 2be4932..32c194f 100644 Binary files a/apps/web-antd/public/merge/Launcher_B_LV4.png and b/apps/web-antd/public/merge/Launcher_B_LV4.png differ diff --git a/apps/web-antd/public/merge/Launcher_B_LV5.png b/apps/web-antd/public/merge/Launcher_B_LV5.png index 78a3b45..e5e6bdb 100644 Binary files a/apps/web-antd/public/merge/Launcher_B_LV5.png and b/apps/web-antd/public/merge/Launcher_B_LV5.png differ diff --git a/apps/web-antd/public/merge/Launcher_B_LV6.png b/apps/web-antd/public/merge/Launcher_B_LV6.png index 05a9330..dcb21cf 100644 Binary files a/apps/web-antd/public/merge/Launcher_B_LV6.png and b/apps/web-antd/public/merge/Launcher_B_LV6.png differ diff --git a/apps/web-antd/public/merge/Launcher_B_LV7.png b/apps/web-antd/public/merge/Launcher_B_LV7.png index 863f737..096176b 100644 Binary files a/apps/web-antd/public/merge/Launcher_B_LV7.png and b/apps/web-antd/public/merge/Launcher_B_LV7.png differ diff --git a/apps/web-antd/public/merge/Launcher_B_LV8.png b/apps/web-antd/public/merge/Launcher_B_LV8.png index b718dc2..c85a725 100644 Binary files a/apps/web-antd/public/merge/Launcher_B_LV8.png and b/apps/web-antd/public/merge/Launcher_B_LV8.png differ diff --git a/apps/web-antd/public/merge/Launcher_B_LV9.png b/apps/web-antd/public/merge/Launcher_B_LV9.png index 5c6a5cd..e3f8bf0 100644 Binary files a/apps/web-antd/public/merge/Launcher_B_LV9.png and b/apps/web-antd/public/merge/Launcher_B_LV9.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV1.png b/apps/web-antd/public/merge/Production_A1_LV1.png index cb079b0..ea7a09f 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV1.png and b/apps/web-antd/public/merge/Production_A1_LV1.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV10.png b/apps/web-antd/public/merge/Production_A1_LV10.png index fa12d75..221a8e0 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV10.png and b/apps/web-antd/public/merge/Production_A1_LV10.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV11.png b/apps/web-antd/public/merge/Production_A1_LV11.png index 96a33d4..0f59884 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV11.png and b/apps/web-antd/public/merge/Production_A1_LV11.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV12.png b/apps/web-antd/public/merge/Production_A1_LV12.png index 7603c63..73057b0 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV12.png and b/apps/web-antd/public/merge/Production_A1_LV12.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV13.png b/apps/web-antd/public/merge/Production_A1_LV13.png index 56ff260..94c5889 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV13.png and b/apps/web-antd/public/merge/Production_A1_LV13.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV14.png b/apps/web-antd/public/merge/Production_A1_LV14.png index 070580f..fc8b78b 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV14.png and b/apps/web-antd/public/merge/Production_A1_LV14.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV15.png b/apps/web-antd/public/merge/Production_A1_LV15.png index be05a79..eba155a 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV15.png and b/apps/web-antd/public/merge/Production_A1_LV15.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV2.png b/apps/web-antd/public/merge/Production_A1_LV2.png index 4bcc8cc..1696556 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV2.png and b/apps/web-antd/public/merge/Production_A1_LV2.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV3.png b/apps/web-antd/public/merge/Production_A1_LV3.png index fcd6621..97b86e6 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV3.png and b/apps/web-antd/public/merge/Production_A1_LV3.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV4.png b/apps/web-antd/public/merge/Production_A1_LV4.png index be1c881..a984b24 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV4.png and b/apps/web-antd/public/merge/Production_A1_LV4.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV5.png b/apps/web-antd/public/merge/Production_A1_LV5.png index 18cf7be..51fe69e 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV5.png and b/apps/web-antd/public/merge/Production_A1_LV5.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV6.png b/apps/web-antd/public/merge/Production_A1_LV6.png index bf53fa9..c400ed5 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV6.png and b/apps/web-antd/public/merge/Production_A1_LV6.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV7.png b/apps/web-antd/public/merge/Production_A1_LV7.png index 30e8aa8..093b5d8 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV7.png and b/apps/web-antd/public/merge/Production_A1_LV7.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV8.png b/apps/web-antd/public/merge/Production_A1_LV8.png index 702cb89..971fe7c 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV8.png and b/apps/web-antd/public/merge/Production_A1_LV8.png differ diff --git a/apps/web-antd/public/merge/Production_A1_LV9.png b/apps/web-antd/public/merge/Production_A1_LV9.png index ba45b99..f9df481 100644 Binary files a/apps/web-antd/public/merge/Production_A1_LV9.png and b/apps/web-antd/public/merge/Production_A1_LV9.png differ diff --git a/apps/web-antd/src/api/core/admin.user.ts b/apps/web-antd/src/api/core/admin.user.ts index 1298f45..906d1dd 100644 --- a/apps/web-antd/src/api/core/admin.user.ts +++ b/apps/web-antd/src/api/core/admin.user.ts @@ -4,6 +4,12 @@ import type { UserInfo,AdminLog } from '#/model/admin.user'; export interface UserParam { uid: string; } +export interface AdminLogParam { + username?: string; + page?: number; + pageSize?: number; + opration?: string; +} export async function getAdminInfoApi(param: UserParam) { return requestClient.post('/admin/info', param); } @@ -12,8 +18,8 @@ export async function getAdminListApi() { return requestClient.post('/admin/list'); } -export async function getAdminLogListApi() { - return requestClient.post('/admin/log/list'); +export async function getAdminLogListApi(param:AdminLogParam) { + return requestClient.post('/admin/log/list', param); } diff --git a/apps/web-antd/src/api/core/mail.ts b/apps/web-antd/src/api/core/mail.ts index 389bd69..2161d30 100644 --- a/apps/web-antd/src/api/core/mail.ts +++ b/apps/web-antd/src/api/core/mail.ts @@ -12,6 +12,9 @@ export interface MailData { title_en: string; subtitle_en?: string; content_en: string; + title_ptbr?: string; + subTitle_ptbr?: string; + content_ptbr?: string; items : string; start_time: number; end_time: number; diff --git a/apps/web-antd/src/api/core/operation.ts b/apps/web-antd/src/api/core/operation.ts new file mode 100644 index 0000000..7e07caf --- /dev/null +++ b/apps/web-antd/src/api/core/operation.ts @@ -0,0 +1,8 @@ + +import { requestClient } from '#/api/request'; +import type { copyUserParam } from '#/model/type'; + + +export async function copyUser(data:copyUserParam) { + return requestClient.post('/operation/copyUser', data); +} \ No newline at end of file diff --git a/apps/web-antd/src/api/core/statistics.ts b/apps/web-antd/src/api/core/statistics.ts index 34e8b58..806abf3 100644 --- a/apps/web-antd/src/api/core/statistics.ts +++ b/apps/web-antd/src/api/core/statistics.ts @@ -47,4 +47,8 @@ export async function addLanguageList(data: languageType[]) { export async function exportLanguageFile() { return requestClient.post('/language/export', {}); +} + +export async function deleteLanguageItem(data: {key: string}) { + return requestClient.post('/language/delete', data); } \ No newline at end of file diff --git a/apps/web-antd/src/component/modal/orderComponent.vue b/apps/web-antd/src/component/modal/orderComponent.vue index 52a3c92..783eada 100644 --- a/apps/web-antd/src/component/modal/orderComponent.vue +++ b/apps/web-antd/src/component/modal/orderComponent.vue @@ -39,7 +39,7 @@ const orderTypeMeta: Record = { 1: { name: '普通订单', desc: '自动生成的基础订单。' }, 2: { name: '额外订单(弃用)', desc: '历史类型,当前已弃用。' }, 3: { name: '超级订单', desc: '奖励更高,难度更大的订单类型。' }, - 4: { name: '预热订单', desc: '用于活动或阶段开始前的预热内容。' }, + 4: { name: '预热订单', desc: '新获得发射器生成的特殊订单,订单内容和奖励固定' }, 5: { name: '触发订单', desc: '由特定事件或条件触发生成。' }, 6: { name: '退役发射器清理订单', desc: '用于清理退役发射器相关棋子。' }, 7: { name: '清理无法生成订单的棋子', desc: '处理异常或失效的棋子。' }, @@ -93,6 +93,8 @@ defineEmits(['click']);
  • 简单:订单总消耗体力在15-150之间
  • 中等:订单总消耗体力在100-600之间
  • 困难:订单总消耗体力在500-1200之间
  • +
  • 零件订单:订单总消耗体力在40-400之间
  • +
  • 消耗品订单:订单总消耗体力在40-200之间
  • diff --git a/apps/web-antd/src/locales/langs/en-US/page.json b/apps/web-antd/src/locales/langs/en-US/page.json index 0ee8147..0522097 100644 --- a/apps/web-antd/src/locales/langs/en-US/page.json +++ b/apps/web-antd/src/locales/langs/en-US/page.json @@ -10,7 +10,8 @@ "searchField": "Search Field", "value": "Value", "startTime": "Start Time", - "endTime": "End Time" + "endTime": "End Time", + "action": "Action" }, "auth": { "login": "Login", @@ -45,7 +46,9 @@ "languageList": "Language List", "translationList": "Translation List", "lastUpdate": "Last update", - "newLineContent": "New Translation" + "newLineContent": "New Translation", + "noChangesToSave": "No changes to save", + "deleteSuccess": "Delete Success" }, "operation": { "title": "Operation", diff --git a/apps/web-antd/src/locales/langs/zh-CN/page.json b/apps/web-antd/src/locales/langs/zh-CN/page.json index ab2e452..829a5bd 100644 --- a/apps/web-antd/src/locales/langs/zh-CN/page.json +++ b/apps/web-antd/src/locales/langs/zh-CN/page.json @@ -10,7 +10,8 @@ "searchField": "搜索列", "value": "值", "startTime": "开始时间", - "endTime": "结束时间" + "endTime": "结束时间", + "action": "操作" }, "auth": { "login": "登录", @@ -45,14 +46,17 @@ "languageList": "语言列表", "translationList": "翻译列表", "lastUpdate": "最后修改日期", - "newLineContent": "新增翻译" + "newLineContent": "新增翻译", + "noChangesToSave": "没有需要保存的更改", + "deleteSuccess": "删除成功" }, "operation": { "title": "运营管理", "level": "等级分布", "mail": "邮件管理", "order": "订单管理", - "language": "翻译管理" + "language": "翻译管理", + "copyUser": "用户数据复制" }, "log": { "event": { @@ -88,7 +92,17 @@ "emoji_income": "获得表情包", "avatarIcon_income": "获得头像框", "gm": "GM操作", - "nickname_set": "设置昵称" + "nickname_set": "设置昵称", + "logout": "登出", + "pet_item_get": "获得宠物物品", + "ReqGetChessFromBuff": "从暂存区取棋子", + "room_deco_get": "获得房间装饰", + "playroom_interact": "playroom互动", + "pet_item_use": "使用宠物物品", + "room_daily_task":"playroom日常任务", + "finish_mini_game":"完成小游戏", + "playerdeco_set":"设置玩家装饰", + "ReqGetMonthLoginReward":"获取月度登录奖励" } } } diff --git a/apps/web-antd/src/model/admin.user.ts b/apps/web-antd/src/model/admin.user.ts index e8d4f9e..3190c39 100644 --- a/apps/web-antd/src/model/admin.user.ts +++ b/apps/web-antd/src/model/admin.user.ts @@ -7,6 +7,7 @@ export interface UserInfo { uid?: string; group: string; role: number; + remark?: string; } export interface AdminLog{ diff --git a/apps/web-antd/src/model/type.ts b/apps/web-antd/src/model/type.ts index f7dd4cf..505e529 100644 --- a/apps/web-antd/src/model/type.ts +++ b/apps/web-antd/src/model/type.ts @@ -49,9 +49,9 @@ export interface Chess{ export interface languageType { Id: number; key: string; - English: string; - ChineseSimplified: string; - Portuguese: string; + en_US: string; + zh_CN: string; + pt_BR: string; } @@ -64,3 +64,10 @@ export interface languageRecord{ Field: string; Update?: number; } + +export interface copyUserParam{ + src_app: number; + src_uid: number; + dst_app: number; + dst_uid: number; +} diff --git a/apps/web-antd/src/router/routes/modules/language.ts b/apps/web-antd/src/router/routes/modules/language.ts index 64823e9..5bcdc9e 100644 --- a/apps/web-antd/src/router/routes/modules/language.ts +++ b/apps/web-antd/src/router/routes/modules/language.ts @@ -7,7 +7,7 @@ const routes: RouteRecordRaw[] = [ { component: BasicLayout, meta: { - icon: 'lucide:file-clock', + icon: 'solar:book-2-bold', order: 1001, title: $t('page.language.title'), }, diff --git a/apps/web-antd/src/router/routes/modules/operation.ts b/apps/web-antd/src/router/routes/modules/operation.ts index ca54f6e..f800a4f 100644 --- a/apps/web-antd/src/router/routes/modules/operation.ts +++ b/apps/web-antd/src/router/routes/modules/operation.ts @@ -36,6 +36,16 @@ const routes: RouteRecordRaw[] = [ title: $t('page.operation.mail'), }, }, + { + name: 'CopyUser', + path: '/copyUser', + component: () => import('#/views/operation/copyUser/index.vue'), + meta: { + affixTab: true, + icon: 'lucide:mail', + title: $t('page.operation.copyUser'), + }, + }, { name: 'Order', path: '/order', diff --git a/apps/web-antd/src/views/admin/log/log-table.vue b/apps/web-antd/src/views/admin/log/log-table.vue index fdfffc2..b3a7199 100644 --- a/apps/web-antd/src/views/admin/log/log-table.vue +++ b/apps/web-antd/src/views/admin/log/log-table.vue @@ -4,25 +4,61 @@ import { useVbenVxeGrid } from '#/adapter/vxe-table'; import type { VxeGridProps } from '#/adapter/vxe-table'; import type { AdminLog } from '#/model/admin.user'; import { getAdminLogListApi } from '#/api/core/admin.user'; - +import type { AdminLogParam } from '#/api/core/admin.user'; +import type { VbenFormProps } from '#/adapter/form'; +const formOptions: VbenFormProps = { + // 所有表单项共用,可单独在表单内覆盖 + commonConfig: { + // 所有表单项 + componentProps: { + class: 'w-full', + }, + }, + schema: [ + { + component: 'Select', + componentProps: { + filterOption: true, + options: [ + { label: 'key', value: 'key' }, + { label: 'English', value: 'English' }, + { label: 'ChineseSimplified', value: 'ChineseSimplified' }, + { label: 'Portuguese', value: 'Portuguese' }, + ], + placeholder: 'key', + showSearch: true, + }, + fieldName: 'SearchField', + label: '操作:', + }, + ], +}; const gridOptions: VxeGridProps = { columns: [ { field: 'admin', title: '用户名', }, { field: 'action', title: '操作' }, { field: 'params', title: '参数' }, { field: 'ip', title: 'IP' }, - { field: 'createTime', title: '时间' }, + { + field: 'createTime', title: '时间', formatter: ({ cellValue }) => new Date(cellValue * 1000).toLocaleString() + }, ], height: 'auto', - pagerConfig: {}, + pagerConfig: { + pageSize: 100, + }, proxyConfig: { response: { total: 'total', result: 'data', }, ajax: { - query: async () => { - return await getAdminLogListApi(); + query: async ({ page }) => { + const req: AdminLogParam = { + page: page.currentPage, + pageSize: page.pageSize, + }; + return await getAdminLogListApi(req); }, }, }, @@ -32,7 +68,7 @@ const gridOptions: VxeGridProps = { }, }; -const [Grid] = useVbenVxeGrid({ gridOptions }); +const [Grid] = useVbenVxeGrid({ formOptions, gridOptions }); diff --git a/apps/web-antd/src/views/admin/user/addUser.vue b/apps/web-antd/src/views/admin/user/addUser.vue index a0bb854..0b64a2d 100644 --- a/apps/web-antd/src/views/admin/user/addUser.vue +++ b/apps/web-antd/src/views/admin/user/addUser.vue @@ -73,6 +73,14 @@ const [Form, FormApi] = useVbenForm({ label: '用户组', formItemClass: 'col-span-2', }, + { + component: 'Textarea', + componentProps: {}, + rules: 'required', + fieldName: 'remark', + label: '备注', + formItemClass: 'col-span-2', + }, ], showDefaultActions: false, // 大屏一行显示3个,中屏一行显示2个,小屏一行显示1个 @@ -90,6 +98,7 @@ const [Modal, modalApi] = useVbenModal({ phone: values.phone, role: values.role, group: values.group, + remark: values.remark, }; await addAdminApi(Parms); modalApi.close(); diff --git a/apps/web-antd/src/views/admin/user/user-table.vue b/apps/web-antd/src/views/admin/user/user-table.vue index bb38224..6a983f0 100644 --- a/apps/web-antd/src/views/admin/user/user-table.vue +++ b/apps/web-antd/src/views/admin/user/user-table.vue @@ -11,9 +11,10 @@ import addUserModal from './addUser.vue'; const gridOptions: VxeGridProps = { columns: [ { field: 'username', title: '用户名', }, - { field: 'phone', title: '手机号' }, + // { field: 'phone', title: '手机号' }, { field: 'role', title: '角色' }, { field: 'group', title: '用户组' }, + { field: 'remark', title: '备注' }, ], height: 'auto', pagerConfig: {}, @@ -48,7 +49,7 @@ const addAdmin = () => {