diff --git a/.gitignore b/.gitignore
index c2a8a77..79b8df9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -49,3 +49,4 @@ vite.config.ts.*
*.sln
*.sw?
.history
+node-compile-cache/*
diff --git a/apps/web-antd/src/api/core/log.ts b/apps/web-antd/src/api/core/log.ts
index 4e20685..f380679 100644
--- a/apps/web-antd/src/api/core/log.ts
+++ b/apps/web-antd/src/api/core/log.ts
@@ -23,7 +23,12 @@ export interface UserLogOrder {
Time: number;
Type: number;
Diff: number;
- ChessId: string;
+ ChessId: ChessType[];
+}
+
+export interface ChessType {
+ Id: string;
+ Icon: string;
}
export interface heatType {
date: string;
diff --git a/apps/web-antd/src/api/core/scripts.ts b/apps/web-antd/src/api/core/scripts.ts
new file mode 100644
index 0000000..18e044c
--- /dev/null
+++ b/apps/web-antd/src/api/core/scripts.ts
@@ -0,0 +1,8 @@
+import { requestClient } from '#/api/request';
+
+export interface scripts_params{
+ step :number;
+}
+export async function copywritingscript(params :scripts_params) {
+ return requestClient.post('/scripts/copywriting', params, {timeout: 180000});
+}
\ No newline at end of file
diff --git a/apps/web-antd/src/api/core/server.ts b/apps/web-antd/src/api/core/server.ts
index 757a106..172e55f 100644
--- a/apps/web-antd/src/api/core/server.ts
+++ b/apps/web-antd/src/api/core/server.ts
@@ -18,8 +18,8 @@ export interface ServerData {
AppId : number;
ServerId: number;
ServerName: string;
- Status: number;
- OpenServerTime: number;
+ Status?: number;
+ OpenServerTime?: number;
StartTime?: number;
PlayerNum?: number;
Loading?:boolean;
@@ -30,6 +30,14 @@ export interface ServerData {
Tags?: string[];
}
+export interface editServerParam {
+ AppId : number;
+ ServerId: number;
+ ServerName: string;
+ Tags?: string;
+ ClientVersion?: string;
+}
+
export interface NodeData{
NodeId?: number;
NodeName: string;
@@ -85,3 +93,7 @@ export async function addServer(AppId:number, ServerId:number, ServerName: strin
return requestClient.post(`/server/addServer`, {AppId:AppId, ServerId: ServerId, ServerName: ServerName, Status: Status, OpenServerTime: OpenServerTime});
}
+export async function editServer(editParam: editServerParam){
+ return requestClient.post(`/server/editServer`, editParam);
+}
+
diff --git a/apps/web-antd/src/component/modal/orderComponent.vue b/apps/web-antd/src/component/modal/orderComponent.vue
index 783eada..5fdf564 100644
--- a/apps/web-antd/src/component/modal/orderComponent.vue
+++ b/apps/web-antd/src/component/modal/orderComponent.vue
@@ -118,8 +118,8 @@ defineEmits(['click']);
![]()
+ :src="`${mergeItem.Icon}`" class="inline-block h-6 w-6 rounded"
+ :alt="mergeItem.Icon" :title="mergeItem.Id" />
{{ item.content }}
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 829a5bd..a3b5a4c 100644
--- a/apps/web-antd/src/locales/langs/zh-CN/page.json
+++ b/apps/web-antd/src/locales/langs/zh-CN/page.json
@@ -27,7 +27,7 @@
"log": "操作日志"
},
"dashboard": {
- "title": "服务器管理",
+ "title": "运维管理",
"analytics": "分析台",
"server-list": "区服列表",
"node-list": "节点列表",
@@ -52,12 +52,18 @@
},
"operation": {
"title": "运营管理",
- "level": "等级分布",
+ "scripts": "自动化脚本",
"mail": "邮件管理",
"order": "订单管理",
"language": "翻译管理",
"copyUser": "用户数据复制"
},
+ "server":{
+ "merge_pet_test":"测试服",
+ "merge_pet_sdk":"QA服",
+ "merge_pet_online":"正式服",
+ "merge_pet_audit":"审核服"
+ },
"log": {
"event": {
"order_finish": "完成订单",
diff --git a/apps/web-antd/src/model/type.ts b/apps/web-antd/src/model/type.ts
index 93f21c2..e75e7a4 100644
--- a/apps/web-antd/src/model/type.ts
+++ b/apps/web-antd/src/model/type.ts
@@ -21,12 +21,15 @@ export interface Merge {
export interface MergeRecord{
[key: string]: Merge;
}
-
+export interface ChessType {
+ Id: string;
+ Icon: string;
+}
export interface Order {
id: number;
color?: string;
icon?:string;
- merge?: Merge[];
+ merge?: ChessType[];
type?: number;
typeName?: string;
diff: number;
@@ -72,3 +75,11 @@ export interface copyUserParam{
dst_app: number;
dst_uid: number;
}
+
+export interface scriptsRecord{
+ step: number;
+ label: string;
+ tips :string[];
+ code: number;
+ color?: string;
+}
diff --git a/apps/web-antd/src/router/routes/modules/language.ts b/apps/web-antd/src/router/routes/modules/language.ts
index 5bcdc9e..50eaf7d 100644
--- a/apps/web-antd/src/router/routes/modules/language.ts
+++ b/apps/web-antd/src/router/routes/modules/language.ts
@@ -17,7 +17,7 @@ const routes: RouteRecordRaw[] = [
{
name: 'Language',
path: '/language',
- component: () => import('#/views/language/language/index.vue'),
+ component: () => import('#/views/language/index.vue'),
meta: {
affixTab: true,
icon: 'lets-icons:order',
diff --git a/apps/web-antd/src/router/routes/modules/operation.ts b/apps/web-antd/src/router/routes/modules/operation.ts
index f800a4f..4e31f78 100644
--- a/apps/web-antd/src/router/routes/modules/operation.ts
+++ b/apps/web-antd/src/router/routes/modules/operation.ts
@@ -16,13 +16,13 @@ const routes: RouteRecordRaw[] = [
path: '/operation',
children: [
{
- name: 'Level',
- path: '/level',
- component: () => import('#/views/operation/level/index.vue'),
+ name: 'Scripts',
+ path: '/scripts',
+ component: () => import('#/views/operation/scripts/index.vue'),
meta: {
affixTab: true,
icon: 'lucide:chart-no-axes-column-increasing',
- title: $t('page.operation.level'),
+ title: $t('page.operation.scripts'),
authority: ['super', 'admin'],
},
},
diff --git a/apps/web-antd/src/views/dashboard/serverList/appList.vue b/apps/web-antd/src/views/dashboard/serverList/appList.vue
index dedcf5a..42970d4 100644
--- a/apps/web-antd/src/views/dashboard/serverList/appList.vue
+++ b/apps/web-antd/src/views/dashboard/serverList/appList.vue
@@ -157,12 +157,7 @@ function confirmUpdate(Server: ServerData) {
- 32ms
-
-
-
-
- 1.0.0
+ {{ item.ClientVersion }}
diff --git a/apps/web-antd/src/views/dashboard/serverList/editServer.vue b/apps/web-antd/src/views/dashboard/serverList/editServer.vue
index cd980e1..9c403f5 100644
--- a/apps/web-antd/src/views/dashboard/serverList/editServer.vue
+++ b/apps/web-antd/src/views/dashboard/serverList/editServer.vue
@@ -1,6 +1,6 @@
-
+
diff --git a/apps/web-antd/src/views/language/language/index.vue b/apps/web-antd/src/views/language/index.vue
similarity index 100%
rename from apps/web-antd/src/views/language/language/index.vue
rename to apps/web-antd/src/views/language/index.vue
diff --git a/apps/web-antd/src/views/language/language/language.vue b/apps/web-antd/src/views/language/language.vue
similarity index 97%
rename from apps/web-antd/src/views/language/language/language.vue
rename to apps/web-antd/src/views/language/language.vue
index bd5a95c..1197468 100644
--- a/apps/web-antd/src/views/language/language/language.vue
+++ b/apps/web-antd/src/views/language/language.vue
@@ -103,6 +103,9 @@ const formOptions: VbenFormProps = {
}
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 },
@@ -110,7 +113,7 @@ const gridOptions: VxeGridProps = {
field: 'imageUrl',
slots: { default: 'image-url' },
title: 'Image',
- width: 100,
+ width: 60,
},
{ editRender: { name: 'input' }, field: 'en_US', title: 'en_US', filters: [{ data: "" }], filterRender: { name: "input" }, visible: en_USVisible },
{
@@ -253,7 +256,7 @@ const gridOptions: VxeGridProps = {
field: 'imageUrl',
slots: { default: 'image-url' },
title: 'Image',
- width: 50,
+ width: 60,
},
{ editRender: { name: 'input' }, field: 'en_US', title: 'en_US', filters: [{ data: "" }], filterRender: { name: "input" }, visible: en_USVisible },
{
@@ -420,7 +423,7 @@ function deleteRow(row: languageType) {
-
+
{{ $t('page.language.lastUpdate') }}:{{ lastUpdate }}
@@ -428,11 +431,11 @@ function deleteRow(row: languageType) {
{{ $t('page.common.addLine') }}
-
+
-
-
+
+
diff --git a/apps/web-antd/src/views/operation/copyUser/copy.vue b/apps/web-antd/src/views/operation/copyUser/copy.vue
index 77a50aa..699d25e 100644
--- a/apps/web-antd/src/views/operation/copyUser/copy.vue
+++ b/apps/web-antd/src/views/operation/copyUser/copy.vue
@@ -2,6 +2,7 @@
import { useVbenForm } from '#/adapter/form';
import { message } from 'ant-design-vue'
import { copyUser } from '#/api/core/operation';
+import { VbenPopover, VbenIcon } from '../../../../../../packages/@core/ui-kit/shadcn-ui';
import type { copyUserParam } from '#/model/type';
const [Form] = useVbenForm({
// 所有表单项共用,可单独在表单内覆盖
@@ -69,16 +70,6 @@ const [Form] = useVbenForm({
],
},
},
- {
- component: 'Input',
- fieldName: 'dst_uid',
- label: '目标用户ID',
- defaultValue: 100100042,
- rules: 'required',
- componentProps: {
- placeholder: '请输入目标用户ID',
- },
- },
],
handleSubmit: onSubmit,
@@ -102,7 +93,22 @@ async function onSubmit(values: Record) {
-
-
+
+
+
+
+
+
账号复制说明
+
+ - 源应用ID:需要复制的账号所在的APP
+ - 源用户ID:需要复制的账号所生成的后端唯一ID
+ - 目标应用ID:需要复制到的APP
+ - 目标应用账号:源用户ID
+
+
+
+
\ No newline at end of file
diff --git a/apps/web-antd/src/views/operation/level/level-table.vue b/apps/web-antd/src/views/operation/level/level-table.vue
deleted file mode 100644
index e26a161..0000000
--- a/apps/web-antd/src/views/operation/level/level-table.vue
+++ /dev/null
@@ -1,152 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/apps/web-antd/src/views/operation/scripts/drawer.vue b/apps/web-antd/src/views/operation/scripts/drawer.vue
new file mode 100644
index 0000000..dd96bf3
--- /dev/null
+++ b/apps/web-antd/src/views/operation/scripts/drawer.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+ completed
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/operation/level/index.vue b/apps/web-antd/src/views/operation/scripts/index.vue
similarity index 62%
rename from apps/web-antd/src/views/operation/level/index.vue
rename to apps/web-antd/src/views/operation/scripts/index.vue
index 34fccbe..5f1f726 100644
--- a/apps/web-antd/src/views/operation/level/index.vue
+++ b/apps/web-antd/src/views/operation/scripts/index.vue
@@ -1,7 +1,7 @@
+
+
+
+
+
+
+
+ Script Name
+
+
+
+
+ TAGS
+
+
+
+
+ Last Running
+
+
+
+
+ Start
+
+
+
+
+
+
+
+
+
+ 文案自动化脚本
+
+
+
+
+ xlsx
+
+
+
+
+ 2026-01-01 12:00:00
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/userlog/userlist/user.vue b/apps/web-antd/src/views/userlog/userlist/user.vue
index 98a40d9..4679d2d 100644
--- a/apps/web-antd/src/views/userlog/userlist/user.vue
+++ b/apps/web-antd/src/views/userlog/userlist/user.vue
@@ -331,16 +331,6 @@ const [Modal, modalApi] = useVbenModal({
}
for (const i in r.Order) {
var chessArr = r.Order[i]?.ChessId
- ? r.Order[i]?.ChessId.split(' ')
- : [];
- var ChessData: Merge[] = [];
- for (const chessId of chessArr) {
- const key = String(parseInt(chessId));
- const chessInfo = (MergeData as Record)[key];
- if (chessInfo) {
- ChessData.push(chessInfo);
- }
- }
var orderTypeName = Object.entries(orderTypeData).find(
([key]) => Number(key) === r.Order[i]?.Type
)?.[1];
@@ -349,9 +339,8 @@ const [Modal, modalApi] = useVbenModal({
)?.[1];
info.value.Order.push({
id: r.Order[i]?.Id || 0,
- merge: ChessData,
+ merge: chessArr,
color: '#3fb27f',
- content: r.Order[i]?.ChessId || '',
typeName: orderTypeName || '未知类型',
diff: r.Order[i]?.Diff || 0,
diffName: diffName || '未知',