diff --git a/apps/web-antd/src/api/core/server.ts b/apps/web-antd/src/api/core/server.ts
index 172e55f..0aff971 100644
--- a/apps/web-antd/src/api/core/server.ts
+++ b/apps/web-antd/src/api/core/server.ts
@@ -77,6 +77,10 @@ export async function updateAppApi(AppId: number){
return requestClient.post('/server/updateApp', {AppId: AppId}, {timeout: 120000});
}
+export async function updateAppReviewApi(AppId: number){
+ return requestClient.post('/server/updateAppReview', {AppId: AppId}, {timeout: 120000});
+}
+
export async function releaseApp(appId: number, appName: string){
return requestClient.post(`/server/release`, {AppId: appId, AppName: appName}, {timeout: 120000});
}
@@ -89,8 +93,8 @@ export async function reloadServer(appId: number, serverId: number, serverName:
return requestClient.post(`/server/reload`, {AppId: appId, ServerId: serverId, ServerName: serverName}, {timeout: 120000});
}
-export async function addServer(AppId:number, ServerId:number, ServerName: string, Status: number, OpenServerTime: number){
- return requestClient.post(`/server/addServer`, {AppId:AppId, ServerId: ServerId, ServerName: ServerName, Status: Status, OpenServerTime: OpenServerTime});
+export async function addServer(AppId:number, ServerId:number, ServerName: string, Status: number, OpenServerTime: number, Host?: string, Port?: number, WsPort?: number, Version?: string, Ecs?: number, WorkDir?: string){
+ return requestClient.post(`/server/addServer`, {AppId:AppId, ServerId: ServerId, ServerName: ServerName, Status: Status, OpenServerTime: OpenServerTime, Host: Host, Port: Port, WsPort: WsPort, ClientVersion: Version, Ecs: Ecs, WorkDir: WorkDir});
}
export async function editServer(editParam: editServerParam){
diff --git a/apps/web-antd/src/views/dashboard/serverList/addServer.vue b/apps/web-antd/src/views/dashboard/serverList/addServer.vue
index ca79570..2f62da8 100644
--- a/apps/web-antd/src/views/dashboard/serverList/addServer.vue
+++ b/apps/web-antd/src/views/dashboard/serverList/addServer.vue
@@ -57,6 +57,81 @@ const [Form, FormApi] = useVbenForm({
label: 'ServerName:',
formItemClass:'col-span-2',
},
+ {
+ component: 'Input',
+ defaultValue: '',
+ componentProps: {
+ placeholder: 'google.bywaystudios.com',
+ },
+ rules: "required",
+ fieldName: 'Host',
+ label: 'Host',
+ formItemClass:'col-span-2',
+ },
+ {
+ component: 'Input',
+ defaultValue: '',
+ componentProps: {
+ placeholder: '3601',
+ },
+ rules: "required",
+ fieldName: 'Port',
+ label: 'Port',
+ formItemClass:'col-span-2',
+ },
+ {
+ component: 'Input',
+ defaultValue: '',
+ componentProps: {
+ placeholder: '3701',
+ },
+ rules: "required",
+ fieldName: 'WsPort',
+ label: 'WsPort',
+ formItemClass:'col-span-2',
+ },
+ {
+ component: 'Input',
+ defaultValue: '',
+ componentProps: {
+ placeholder: '1.0.50',
+ },
+ rules: "required",
+ fieldName: 'ClientVersion',
+ label: 'ClientVersion',
+ formItemClass:'col-span-2',
+ },
+ {
+ component: 'Input',
+ defaultValue: '',
+ componentProps: {
+ placeholder: '/usr/local/game',
+ },
+ rules: "required",
+ fieldName: 'WorkDir',
+ label: 'WorkDir',
+ formItemClass:'col-span-2',
+ },
+ {
+ component: 'Select',
+ defaultValue: '',
+ componentProps: {
+ options: [
+ {
+ label: 'ECS-tencent',
+ value: 1,
+ },
+ {
+ label: 'ECS-aliyun-us-silicon',
+ value: 2,
+ },
+ ],
+ },
+ rules: "required",
+ fieldName: 'Ecs',
+ label: 'Ecs',
+ formItemClass:'col-span-2',
+ },
{
component: 'DatePicker',
fieldName: 'datePicker',
@@ -134,7 +209,7 @@ const [Modal, modalApi] = useVbenModal({
const dateTime = dayjs(`${date} ${time}`).valueOf()/1000;
const modalData = modalApi.getData();
const ServerId = parseInt(values.ServerId, 10);
- await addServer(modalData.AppId, ServerId, values.ServerName, values.Status, dateTime);
+ await addServer(modalData.AppId, ServerId, values.ServerName, values.Status, dateTime, values.Host, parseInt(values.Port,10), parseInt(values.WsPort,10), values.ClientVersion, values.Ecs, values.WorkDir);
modalApi.close();
},
});
diff --git a/apps/web-antd/src/views/dashboard/serverList/appList.vue b/apps/web-antd/src/views/dashboard/serverList/appList.vue
index 42970d4..79d5c9e 100644
--- a/apps/web-antd/src/views/dashboard/serverList/appList.vue
+++ b/apps/web-antd/src/views/dashboard/serverList/appList.vue
@@ -30,6 +30,10 @@ function getColor(status: number) {
return 'red';
case 1:
return 'green';
+ case 2:
+ return 'gray';
+ case 3:
+ return 'orange';
default:
return 'blue';
}
@@ -114,6 +118,21 @@ function confirmUpdate(Server: ServerData) {
},
});
}
+
+function getStatusName(status: number) {
+ switch (status){
+ case 0:
+ return 'Inactive';
+ case 1:
+ return 'Running';
+ case 2:
+ return 'Stopped';
+ case 3:
+ return 'Maintenance';
+ default:
+ return 'Unknown';
+ }
+}
@@ -138,7 +157,7 @@ function confirmUpdate(Server: ServerData) {
- {{ item.Status == 0 ? 'Inactive' : item.Status == 1 ? 'Running' : 'Unknown' }}
+ {{ getStatusName(item.Status || 0) }}
diff --git a/apps/web-antd/src/views/dashboard/serverList/index.vue b/apps/web-antd/src/views/dashboard/serverList/index.vue
index 0c8c29f..3d8cfae 100644
--- a/apps/web-antd/src/views/dashboard/serverList/index.vue
+++ b/apps/web-antd/src/views/dashboard/serverList/index.vue
@@ -1,9 +1,9 @@
@@ -172,7 +222,8 @@ async function update() {
-
+
+
diff --git a/apps/web-antd/src/views/language/language.vue b/apps/web-antd/src/views/language/language.vue
index 1197468..e948e8e 100644
--- a/apps/web-antd/src/views/language/language.vue
+++ b/apps/web-antd/src/views/language/language.vue
@@ -2,7 +2,7 @@
import type { VxeGridProps, VxeGridListeners } from '#/adapter/vxe-table';
import { Button, notification,Image } from 'ant-design-vue';
import { Page } from '@vben/common-ui';
-import { getLanguageList, exportLanguageFile, saveLanguageList, deleteLanguageItem } from '#/api/core/statistics';
+import { getLanguageList, saveLanguageList, deleteLanguageItem } from '#/api/core/statistics';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import addLanguage from './addLanguage.vue';
import type { VbenFormProps } from '#/adapter/form';
@@ -97,15 +97,12 @@ const formOptions: VbenFormProps = {
},
wrapperClass: 'grid-cols-1 md:grid-cols-5',
// 是否在字段值改变时提交表单
- submitOnChange: true,
+ submitOnChange: false,
// 按下回车时是否提交表单
submitOnEnter: false,
}
const gridOptions: VxeGridProps = {
border: true,
- cellConfig:{
- height:60,
- },
columns: [
{ title: 'Id', field: 'Id', width: 100 },
{ editRender: { name: 'input' }, field: 'key', title: 'key', filters: [{ data: "" }], filterRender: { name: "input" }, visible: keyVisible },
@@ -317,7 +314,7 @@ const gridOptions: VxeGridProps = {
pageSizes: [40, 80, 100, 200, 500, 1000],
},
height: 'auto',
- showOverflow: true,
+ showOverflow: false,
};
const gridEvents: VxeGridListeners = {
editClosed: ({ row, column }) => {
@@ -374,23 +371,6 @@ function saveAll() {
}
-function exportLang() {
- exportLanguageFile().then((response) => {
- const code = response.code || 0;
- const msg = response.msg || '';
- if (code !== 0) {
- notification.error({
- duration: 10,
- message: msg,
- });
- return;
- }
- notification.success({
- duration: 10,
- message: $t('page.language.exportSuccess'),
- });
- });
-}
function deleteRow(row: languageType) {
deleteLanguageItem({ key: row.key }).then((response) => {
const code = response.code || 0;
diff --git a/apps/web-antd/src/views/operation/mail/mail-table.vue b/apps/web-antd/src/views/operation/mail/mail-table.vue
index 062baa2..9b0d6dc 100644
--- a/apps/web-antd/src/views/operation/mail/mail-table.vue
+++ b/apps/web-antd/src/views/operation/mail/mail-table.vue
@@ -115,7 +115,7 @@ const gridOptions: VxeGridProps = {
},
},
},
-
+ showOverflow: false,
rowConfig: {
isHover: true,
},
diff --git a/apps/web-antd/src/views/operation/scripts/scripts.vue b/apps/web-antd/src/views/operation/scripts/scripts.vue
index 2933790..968c979 100644
--- a/apps/web-antd/src/views/operation/scripts/scripts.vue
+++ b/apps/web-antd/src/views/operation/scripts/scripts.vue
@@ -1,6 +1,6 @@
+
+
+
+
+
+
+
+

+
没有更多数据了!
+
+
+
+ 总数: {{ d.sum }}
+ 正数和: {{ d.psum }}
+ 负数和: {{ d.nsum }}
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/userlog/userlist/event-table.vue b/apps/web-antd/src/views/userlog/userlist/event-table.vue
new file mode 100644
index 0000000..d01ec4d
--- /dev/null
+++ b/apps/web-antd/src/views/userlog/userlist/event-table.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/userlog/userlist/order-table.vue b/apps/web-antd/src/views/userlog/userlist/order-table.vue
new file mode 100644
index 0000000..92d1333
--- /dev/null
+++ b/apps/web-antd/src/views/userlog/userlist/order-table.vue
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/userlog/userlist/user.vue b/apps/web-antd/src/views/userlog/userlist/user.vue
index 4679d2d..ade6189 100644
--- a/apps/web-antd/src/views/userlog/userlist/user.vue
+++ b/apps/web-antd/src/views/userlog/userlist/user.vue
@@ -4,7 +4,7 @@ import MergeData from '#/store/MergeData.json';
import { orderTypeData, orderDiffData } from '#/store/order';
import { faceTypeData } from '#/store/face';
import { useVbenModal, useVbenForm, WorkbenchTrends } from '@vben/common-ui';
-import { message, Card } from 'ant-design-vue';
+import { message, Card, Tabs } from 'ant-design-vue';
import { getUserlogInfoApi } from '#/api/core/log';
import { userGmApi, userBanApi } from '#/api/core/user';
import { calendar } from '#/component/index';
@@ -18,7 +18,9 @@ import dayjs from 'dayjs';
import { WorkbenchDetail } from '@vben/common-ui';
import UserHeader from './user-header.vue';
import { AccessControl } from '@vben/access';
-
+import eventTable from './event-table.vue';
+import assetTable from './asset-table.vue';
+import orderTable from './order-table.vue';
// 这是一个示例数据,实际项目中需要根据实际情况进行调整
@@ -252,6 +254,7 @@ let trendItems: WorkbenchTrendItem[] = [
];
const [Modal, modalApi] = useVbenModal({
+ fullscreen: true,
onCancel() {
modalApi.close();
},
@@ -464,57 +467,62 @@ watch(
-
+
-
- nick_name: {{ info.Name || 'N/A' }}
- user_name: {{ info.Mac }}
- uid: {{ info.Uid }}
- {{ info.Level }}
- {{ info.Star }}
- {{ info.Energy }}
- {{ info.Diamond }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ info.AreaId }}
- ${{ chargeDisplay }}
- {{ info.RegisterTime }}
- {{ info.LoginTime }}
- {{ info.Cumulative }}
- {{ info.AreaId }}
- {{ info.Code || 0 }}
- {{ info.TodayCumulative }}
-
-
-
-
- 暂无热力图数据
+
+
+
+ nick_name: {{ info.Name || 'N/A' }}
+ user_name: {{ info.Mac }}
+ uid: {{ info.Uid }}
+ {{ info.Level }}
+ {{ info.Star }}
+ {{ info.Energy }}
+ {{ info.Diamond }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ info.AreaId }}
+ ${{ chargeDisplay }}
+ {{ info.RegisterTime }}
+ {{ info.LoginTime }}
+ {{ info.Cumulative }}
+ {{ info.AreaId }}
+ {{ info.Code || 0 }}
+ {{ info.TodayCumulative }}
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/userlog/userlist/userlist.vue b/apps/web-antd/src/views/userlog/userlist/userlist.vue
index 703e4ad..a526601 100644
--- a/apps/web-antd/src/views/userlog/userlist/userlist.vue
+++ b/apps/web-antd/src/views/userlog/userlist/userlist.vue
@@ -12,6 +12,8 @@ import { onMounted, ref, inject } from 'vue';
import { globalState } from '#/store/globalState';
import { getServerListApi, getAppListApi } from '#/api/core/server';
import type { AppData, ServerData } from '#/api/core/server';
+import { $t } from '#/locales'
+
const state = inject('globalState', globalState);
const appList = ref
([]);
const ServerList = ref([]);
@@ -142,7 +144,7 @@ const gridEvents: VxeGridListeners = {
const gridOptions: VxeGridProps = {
columns: [
- { field: 'Uid', title: 'id' },
+ { field: 'Uid', title: 'id' , sortable: true, sortBy: 'Uid'},
{ field: 'UserName', title: '登录名' },
{ field: 'Level', title: '等级', formatter: ({ cellValue }) => `${cellValue} 级`, sortable: true, sortBy: 'Level' },
{ field: 'Node', title: '节点', },
@@ -150,8 +152,8 @@ const gridOptions: VxeGridProps = {
{ field: 'Diamond', title: '钻石', formatter: ({ cellValue }) => `${cellValue} 💎`, sortable: true, sortBy: 'Diamond' },
{ field: 'Star', title: '星星', formatter: ({ cellValue }) => `${cellValue} ⭐`, sortable: true, sortBy: 'Star' },
{ field: 'Energy', title: '能量', formatter: ({ cellValue }) => `${cellValue} ⚡`, sortable: true, sortBy: 'Energy' },
- { field: 'LoginTime', sortable: true, title: '登录时间', formatter: ({ cellValue }) => dayjs(cellValue * 1000).format('YYYY-MM-DD HH:mm:ss') },
- { field: 'Online', title: '在线状态', slots: { default: 'online' } },
+ { field: 'LoginTime', sortable: true, title: '登录时间', formatter: ({ cellValue }) => dayjs(cellValue * 1000).format('YYYY-MM-DD HH:mm:ss'),sortBy: 'LoginTime' },
+ { field: 'Online', title: '在线状态', slots: { default: 'online' } , sortable: true, sortBy: 'Online' },
],
height: 'auto',
pagerConfig: {},
@@ -200,7 +202,7 @@ onMounted(async () => {
component: 'Select',
componentProps: {
options: appList.value.map((item) => ({
- label: item.AppName,
+ label: $t('page.server.' + item.AppName),
value: item.AppId,
})),
},
@@ -233,13 +235,13 @@ function getTagColor(online: string): string {
-
+
{{ row.Online }}
-
+