diff --git a/gpt-vue/projects/vue-admin/src/composables/useCustomFormPopup.ts b/gpt-vue/projects/vue-admin/src/composables/useCustomFormPopup.ts
index 298e9556..94c3ca33 100644
--- a/gpt-vue/projects/vue-admin/src/composables/useCustomFormPopup.ts
+++ b/gpt-vue/projects/vue-admin/src/composables/useCustomFormPopup.ts
@@ -18,7 +18,7 @@ export default function (
const popupProps = (arg: Arg[], getExposed) => {
return {
- width: 700,
+ width: 800,
onBeforeOk: async () => {
const exposed = getExposed();
const validateRes = await exposed?.formRef.value.validate();
diff --git a/gpt-vue/projects/vue-admin/src/router/menu.ts b/gpt-vue/projects/vue-admin/src/router/menu.ts
index c8ab464a..81e7f5b8 100644
--- a/gpt-vue/projects/vue-admin/src/router/menu.ts
+++ b/gpt-vue/projects/vue-admin/src/router/menu.ts
@@ -4,80 +4,112 @@ import {
IconOrderedList,
IconCalendar,
IconSettings,
+ IconUserGroup,
+ IconLock,
+ IconCodepen,
+ IconWechatpay,
} from "@arco-design/web-vue/es/icon";
const menu = [
{
- path: '/dashboard',
- name: 'Dashboard',
+ path: "/dashboard",
+ name: "Dashboard",
meta: {
title: "仪表盘",
- icon: IconDashboard
+ icon: IconDashboard,
},
- component: () => import('@/views/DashboardView.vue')
+ component: () => import("@/views/DashboardView.vue"),
},
{
- path: '/user',
- name: 'User',
+ path: "/user",
+ name: "User",
meta: {
title: "用户管理",
icon: IconUser,
},
- component: () => import('@/views/User/UserContainer.vue')
+ component: () => import("@/views/User/UserContainer.vue"),
},
{
- path: '/order',
- name: 'Order',
+ path: "/Role",
+ name: "Role",
+ meta: {
+ title: "角色管理",
+ icon: IconUserGroup,
+ },
+ component: () => import("@/views/Role/RoleContainer.vue"),
+ },
+ {
+ path: "/ChatModel",
+ name: "ChatModel",
+ meta: {
+ title: "语言模型",
+ icon: IconCodepen,
+ },
+ component: () => import("@/views/ChatModel/ChatModelContainer.vue"),
+ },
+ {
+ path: "/Product",
+ name: "Product",
+ meta: {
+ title: "充值产品",
+ icon: IconWechatpay,
+ },
+ component: () => import("@/views/Product/ProductContainer.vue"),
+ },
+ {
+ path: "/ApiKey",
+ name: "ApiKey",
+ meta: {
+ title: "APIKEY",
+ icon: IconLock,
+ },
+ component: () => import("@/views/ApiKey/ApiKeyContainer.vue"),
+ },
+ {
+ path: "/order",
+ name: "Order",
meta: {
title: "充值订单",
icon: IconOrderedList,
},
- component: () => import('@/views/Order/OrderContainer.vue')
+ component: () => import("@/views/Order/OrderContainer.vue"),
},
+
{
- path: '/reward',
- name: 'Reward',
+ path: "/reward",
+ name: "Reward",
meta: {
title: "众筹管理",
icon: IconCalendar,
},
- component: () => import('@/views/Reward/RewardContainer.vue')
+ component: () => import("@/views/Reward/RewardContainer.vue"),
},
{
- path: '/functions',
- name: 'Functions',
- meta: {
- title: "函数管理",
- icon: IconCalendar,
- },
- component: () => import('@/views/Functions/FunctionsContainer.vue')
- },
- {
- path: '/chats',
- name: 'Chats',
+ path: "/chats",
+ name: "Chats",
meta: {
title: "对话管理",
icon: IconCalendar,
},
- component: () => import('@/views/Chats/ChatsContainer.vue')
+ component: () => import("@/views/Chats/ChatsContainer.vue"),
},
{
- path: '/system',
- name: 'System',
+ path: "/system",
+ name: "System",
meta: {
title: "系统设置",
icon: IconSettings,
},
- component: () => import('@/views/System/SystemContainer.vue')
+ component: () => import("@/views/System/SystemContainer.vue"),
},
{
- path: '/loginLog',
- name: 'LoginLog',
+ path: "/loginLog",
+ name: "LoginLog",
meta: {
title: "登录日志",
icon: IconCalendar,
},
- component: () => import('@/views/LoginLog.vue')
+ component: () => import("@/views/LoginLog.vue"),
},
];
diff --git a/gpt-vue/projects/vue-admin/src/views/ApiKey/ApiKeyContainer.vue b/gpt-vue/projects/vue-admin/src/views/ApiKey/ApiKeyContainer.vue
index 9d13f383..1b1dbac4 100644
--- a/gpt-vue/projects/vue-admin/src/views/ApiKey/ApiKeyContainer.vue
+++ b/gpt-vue/projects/vue-admin/src/views/ApiKey/ApiKeyContainer.vue
@@ -1,4 +1,120 @@
-
+
-
+
+
+ 编辑
+
+ 删除
+
+
+
+ 新增
+
+
+ {
+ handleStatusChange({ filed: 'enabled', value, record, reload });
+ }
+ "
+ />
+
+
+ {
+ handleStatusChange({ filed: 'use_proxy', value, record, reload });
+ }
+ "
+ />
+
+
diff --git a/gpt-vue/projects/vue-admin/src/views/ApiKey/ApiKeyForm.vue b/gpt-vue/projects/vue-admin/src/views/ApiKey/ApiKeyForm.vue
new file mode 100644
index 00000000..a5a6248b
--- /dev/null
+++ b/gpt-vue/projects/vue-admin/src/views/ApiKey/ApiKeyForm.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gpt-vue/projects/vue-admin/src/views/ApiKey/api.ts b/gpt-vue/projects/vue-admin/src/views/ApiKey/api.ts
new file mode 100644
index 00000000..9c5f6b4d
--- /dev/null
+++ b/gpt-vue/projects/vue-admin/src/views/ApiKey/api.ts
@@ -0,0 +1,29 @@
+import http from "@/http/config";
+
+export const getList = (params?: Record) => {
+ return http({
+ url: "/api/admin/apikey/list",
+ method: "get",
+ params,
+ });
+};
+export const save = (data?: Record) => {
+ return http({
+ url: "/api/admin/apikey/save",
+ method: "post",
+ data,
+ });
+};
+export const deleting = (id: string | number) => {
+ return http({
+ url: `/api/admin/apikey/remove?id=${id}`,
+ method: "get",
+ });
+};
+export const setStatus = (data) => {
+ return http({
+ url: `/api/admin/apikey/set`,
+ method: "post",
+ data,
+ });
+};
diff --git a/gpt-vue/projects/vue-admin/src/views/ChatModel/ChatModelContainer.vue b/gpt-vue/projects/vue-admin/src/views/ChatModel/ChatModelContainer.vue
index 9d13f383..bee2ceb5 100644
--- a/gpt-vue/projects/vue-admin/src/views/ChatModel/ChatModelContainer.vue
+++ b/gpt-vue/projects/vue-admin/src/views/ChatModel/ChatModelContainer.vue
@@ -1,4 +1,120 @@
-
+
-
+
+
+ 编辑
+
+ 删除
+
+
+
+ 新增
+
+
+ {
+ handleStatusChange({ filed: 'enabled', value, record, reload });
+ }
+ "
+ />
+
+
+ {
+ handleStatusChange({ filed: 'open', value, record, reload });
+ }
+ "
+ />
+
+
diff --git a/gpt-vue/projects/vue-admin/src/views/ChatModel/ChatModelForm.vue b/gpt-vue/projects/vue-admin/src/views/ChatModel/ChatModelForm.vue
new file mode 100644
index 00000000..463cf15a
--- /dev/null
+++ b/gpt-vue/projects/vue-admin/src/views/ChatModel/ChatModelForm.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gpt-vue/projects/vue-admin/src/views/ChatModel/api.ts b/gpt-vue/projects/vue-admin/src/views/ChatModel/api.ts
new file mode 100644
index 00000000..a237661b
--- /dev/null
+++ b/gpt-vue/projects/vue-admin/src/views/ChatModel/api.ts
@@ -0,0 +1,29 @@
+import http from "@/http/config";
+
+export const getList = (params?: Record) => {
+ return http({
+ url: "/api/admin/model/list",
+ method: "get",
+ params,
+ });
+};
+export const save = (data?: Record) => {
+ return http({
+ url: "/api/admin/model/save",
+ method: "post",
+ data,
+ });
+};
+export const deleting = (id: string | number) => {
+ return http({
+ url: `/api/admin/model/remove?id=${id}`,
+ method: "get",
+ });
+};
+export const setStatus = (data) => {
+ return http({
+ url: `/api/admin/model/set`,
+ method: "post",
+ data,
+ });
+};
diff --git a/gpt-vue/projects/vue-admin/src/views/DashboardView.vue b/gpt-vue/projects/vue-admin/src/views/DashboardView.vue
index 9d13f383..0dbca80a 100644
--- a/gpt-vue/projects/vue-admin/src/views/DashboardView.vue
+++ b/gpt-vue/projects/vue-admin/src/views/DashboardView.vue
@@ -1,4 +1,69 @@
-
+
-
+
+
diff --git a/gpt-vue/projects/vue-admin/src/views/Product/ProductContainer.vue b/gpt-vue/projects/vue-admin/src/views/Product/ProductContainer.vue
index 9d13f383..d2c7f3e6 100644
--- a/gpt-vue/projects/vue-admin/src/views/Product/ProductContainer.vue
+++ b/gpt-vue/projects/vue-admin/src/views/Product/ProductContainer.vue
@@ -1,4 +1,116 @@
-
+
-
+
+
+ 编辑
+
+ 删除
+
+
+
+ 新增
+
+
+ {
+ handleStatusChange({ value, record, reload });
+ }
+ "
+ />
+
+
diff --git a/gpt-vue/projects/vue-admin/src/views/Product/ProductForm.vue b/gpt-vue/projects/vue-admin/src/views/Product/ProductForm.vue
new file mode 100644
index 00000000..4e1722c9
--- /dev/null
+++ b/gpt-vue/projects/vue-admin/src/views/Product/ProductForm.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gpt-vue/projects/vue-admin/src/views/Product/api.ts b/gpt-vue/projects/vue-admin/src/views/Product/api.ts
new file mode 100644
index 00000000..9b1514e8
--- /dev/null
+++ b/gpt-vue/projects/vue-admin/src/views/Product/api.ts
@@ -0,0 +1,29 @@
+import http from "@/http/config";
+
+export const getList = (params?: Record) => {
+ return http({
+ url: "/api/admin/product/list",
+ method: "get",
+ params,
+ });
+};
+export const save = (data?: Record) => {
+ return http({
+ url: "/api/admin/product/save",
+ method: "post",
+ data,
+ });
+};
+export const deleting = (id: string | number) => {
+ return http({
+ url: `/api/admin/product/remove?id=${id}`,
+ method: "get",
+ });
+};
+export const setStatus = (data) => {
+ return http({
+ url: `/api/admin/product/enable`,
+ method: "post",
+ data,
+ });
+};
diff --git a/gpt-vue/projects/vue-admin/src/views/Role/RoleContainer.vue b/gpt-vue/projects/vue-admin/src/views/Role/RoleContainer.vue
index 9d13f383..9afb94ef 100644
--- a/gpt-vue/projects/vue-admin/src/views/Role/RoleContainer.vue
+++ b/gpt-vue/projects/vue-admin/src/views/Role/RoleContainer.vue
@@ -1,4 +1,118 @@
-
+
-
+
+
+
+
+
+ 编辑
+
+ 删除
+
+
+
+ 新增
+
+
+ {
+ handleStatusChange({ value, record, reload });
+ }
+ "
+ />
+
+
diff --git a/gpt-vue/projects/vue-admin/src/views/Role/RoleForm.vue b/gpt-vue/projects/vue-admin/src/views/Role/RoleForm.vue
new file mode 100644
index 00000000..4df2cf8f
--- /dev/null
+++ b/gpt-vue/projects/vue-admin/src/views/Role/RoleForm.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gpt-vue/projects/vue-admin/src/views/Role/api.ts b/gpt-vue/projects/vue-admin/src/views/Role/api.ts
new file mode 100644
index 00000000..f32eebb7
--- /dev/null
+++ b/gpt-vue/projects/vue-admin/src/views/Role/api.ts
@@ -0,0 +1,29 @@
+import http from "@/http/config";
+
+export const getList = (params?: Record) => {
+ return http({
+ url: "/api/admin/role/list",
+ method: "get",
+ params,
+ });
+};
+export const save = (data?: Record) => {
+ return http({
+ url: "/api/admin/role/save",
+ method: "post",
+ data,
+ });
+};
+export const deleting = (id: string | number) => {
+ return http({
+ url: `/api/admin/role/remove?id=${id}`,
+ method: "get",
+ });
+};
+export const setStatus = (data) => {
+ return http({
+ url: `/api/admin/role/set`,
+ method: "post",
+ data,
+ });
+};