feat(ui): web移动端初始化
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "gpt-vue",
|
||||
"name": "chatgpt-plus",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"clear": "rimraf node_modules projects/vue-admin/node_modules",
|
||||
"dev": "pnpm --filter=@gpt-vue-projects/* run dev",
|
||||
"build": "pnpm --filter=@gpt-vue-projects/* run build"
|
||||
"clear": "rimraf node_modules rimraf -g */node_modules rimraf -g */*/node_modules",
|
||||
"dev": "pnpm --filter=@chatgpt-plus-projects/* run dev",
|
||||
"build": "pnpm --filter=@chatgpt-plus-projects/* run build"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@gpt-vue/packages",
|
||||
"name": "@chatgpt-plus/packages",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
|
@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ChatPlus-Ai</title>
|
||||
<title>chatgpt-plus-Ai</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@gpt-vue-projects/vue-admin",
|
||||
"name": "@chatgpt-plus-projects/admin",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
@ -13,7 +13,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@arco-design/web-vue": "^2.54.6",
|
||||
"@gpt-vue/packages": "workspace:^1.0.0",
|
||||
"@chatgpt-plus/packages": "workspace:^1.0.0",
|
||||
"echarts": "^5.5.0",
|
||||
"md-editor-v3": "^2.2.1",
|
||||
"pinia": "^2.1.7",
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 276 B After Width: | Height: | Size: 276 B |
@ -1,7 +1,7 @@
|
||||
<script lang="ts" setup>
|
||||
import { computed } from "vue";
|
||||
import { Message, type SwitchInstance } from "@arco-design/web-vue";
|
||||
import type { BaseResponse } from "@gpt-vue/packages/type";
|
||||
import type { BaseResponse } from "@chatgpt-plus/packages/type";
|
||||
|
||||
type OriginProps = SwitchInstance["$props"];
|
||||
|
@ -18,7 +18,7 @@ const [visible, setVisible] = useState(false);
|
||||
<ALayoutHeader class="custom-layout-header">
|
||||
<div class="logo">
|
||||
<img :src="Logo" alt="logo" />
|
||||
<span>ChatPlus 控制台</span>
|
||||
<span>chatgpt-plus 控制台</span>
|
||||
</div>
|
||||
<div class="action">
|
||||
<ADropdown>
|
||||
@ -38,7 +38,7 @@ const [visible, setVisible] = useState(false);
|
||||
<template #icon>
|
||||
<icon-github />
|
||||
</template>
|
||||
<span>ChatPlus-AI 创作系统</span>
|
||||
<span>chatgpt-plus-AI 创作系统</span>
|
||||
</ADoption>
|
||||
</a>
|
||||
<ADoption value="2" @click="setVisible(true)">
|
@ -1,6 +1,6 @@
|
||||
import { computed, onMounted, reactive, unref, type Ref } from "vue";
|
||||
import type { TableInstance } from "@arco-design/web-vue";
|
||||
import type { BaseResponse, ListResponse } from "@gpt-vue/packages/type";
|
||||
import type { BaseResponse, ListResponse } from "@chatgpt-plus/packages/type";
|
||||
|
||||
export type TableOriginalProps = TableInstance["$props"];
|
||||
export type TableRequest<T extends Record<string, unknown>> = (params?: any) => Promise<BaseResponse<ListResponse<T>>>
|
@ -1,6 +1,6 @@
|
||||
import { computed, onMounted, reactive, unref } from "vue";
|
||||
import type { TableInstance } from "@arco-design/web-vue";
|
||||
import type { BaseResponse } from "@gpt-vue/packages/type";
|
||||
import type { BaseResponse } from "@chatgpt-plus/packages/type";
|
||||
|
||||
export type TableOriginalProps = TableInstance["$props"];
|
||||
export type TableRequest<T extends Record<string, unknown>> = (
|
@ -1,7 +1,7 @@
|
||||
import usePopup, { type Config } from "./usePopup";
|
||||
import { Message } from "@arco-design/web-vue";
|
||||
import type { Component } from "vue";
|
||||
import type { BaseResponse } from "@gpt-vue/packages/type";
|
||||
import type { BaseResponse } from "@chatgpt-plus/packages/type";
|
||||
interface Arg {
|
||||
reload?: () => void;
|
||||
record?: Record<string, any>;
|
@ -1,6 +1,6 @@
|
||||
import { ref } from "vue";
|
||||
import type { Ref } from "vue";
|
||||
import type { BaseResponse } from "@gpt-vue/packages/type";
|
||||
import type { BaseResponse } from "@chatgpt-plus/packages/type";
|
||||
|
||||
type Request<T> = (params?: any) => Promise<BaseResponse<T>>
|
||||
function useRequest<T>(request: Request<T>) {
|
@ -1,6 +1,6 @@
|
||||
import { ref, reactive, unref } from "vue";
|
||||
import { Message } from "@arco-design/web-vue";
|
||||
import type { BaseResponse } from "@gpt-vue/packages/type";
|
||||
import type { BaseResponse } from "@chatgpt-plus/packages/type";
|
||||
function useSubmit<T extends Record<string, any> = Record<string, any>, R = any>(defaultData?: T) {
|
||||
const formRef = ref();
|
||||
const formData = reactive<T | Record<string, any>>({ ...defaultData ?? {} });
|
@ -1,7 +1,7 @@
|
||||
import router from "@/router";
|
||||
import { Notification } from "@arco-design/web-vue";
|
||||
import createInstance from "@gpt-vue/packages/request"
|
||||
import type { BaseResponse } from "@gpt-vue/packages/type";
|
||||
import createInstance from "@chatgpt-plus/packages/request"
|
||||
import type { BaseResponse } from "@chatgpt-plus/packages/type";
|
||||
|
||||
export const uploadUrl = import.meta.env.VITE_PROXY_BASE_URL + "/api/admin/upload";
|
||||
|
@ -5,7 +5,7 @@ import ApiKeyForm from "./ApiKeyForm.vue";
|
||||
import useCustomFormPopup from "@/composables/useCustomFormPopup";
|
||||
import { Message } from "@arco-design/web-vue";
|
||||
import SimpleTable from "@/components/SimpleTable/SimpleTable.vue";
|
||||
import { dateFormat } from "@gpt-vue/packages/utils";
|
||||
import { dateFormat } from "@chatgpt-plus/packages/utils";
|
||||
// table 配置
|
||||
const columns = [
|
||||
{
|
||||
@ -30,7 +30,7 @@ const columns = [
|
||||
dataIndex: "use_proxy",
|
||||
slotName: "proxy",
|
||||
align: "center",
|
||||
width: 100
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: "最后使用时间",
|
||||
@ -45,7 +45,7 @@ const columns = [
|
||||
dataIndex: "enabled",
|
||||
slotName: "status",
|
||||
align: "center",
|
||||
width: 100
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: "操作",
|
@ -5,7 +5,7 @@ import ChatModelForm from "./ChatModelForm.vue";
|
||||
import useCustomFormPopup from "@/composables/useCustomFormPopup";
|
||||
import { Message } from "@arco-design/web-vue";
|
||||
import SimpleTable from "@/components/SimpleTable/SimpleTable.vue";
|
||||
import { dateFormat } from "@gpt-vue/packages/utils";
|
||||
import { dateFormat } from "@chatgpt-plus/packages/utils";
|
||||
// table 配置
|
||||
const columns = [
|
||||
{
|
@ -1,7 +1,7 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref, h } from "vue";
|
||||
import { Message, Modal } from "@arco-design/web-vue";
|
||||
import { dateFormat } from "@gpt-vue/packages/utils";
|
||||
import { dateFormat } from "@chatgpt-plus/packages/utils";
|
||||
import SearchTable from "@/components/SearchTable/SearchTable.vue";
|
||||
import type { SearchTableColumns } from "@/components/SearchTable/type";
|
||||
import app from "@/main";
|
@ -1,7 +1,7 @@
|
||||
<script lang="ts" setup>
|
||||
import { onMounted } from "vue";
|
||||
import { Message } from "@arco-design/web-vue";
|
||||
import { dateFormat } from "@gpt-vue/packages/utils";
|
||||
import { dateFormat } from "@chatgpt-plus/packages/utils";
|
||||
import useRequest from "@/composables/useRequest";
|
||||
import { history } from "./api";
|
||||
|
@ -1,5 +1,5 @@
|
||||
<script lang="ts" setup>
|
||||
import { dateFormat } from "@gpt-vue/packages/utils";
|
||||
import { dateFormat } from "@chatgpt-plus/packages/utils";
|
||||
import SearchTable from "@/components/SearchTable/SearchTable.vue";
|
||||
import type { SearchTableColumns } from "@/components/SearchTable/type";
|
||||
import { loginLog } from "@/http/login";
|
@ -1,7 +1,7 @@
|
||||
<script lang="ts" setup>
|
||||
import SearchTable from "@/components/SearchTable/SearchTable.vue";
|
||||
import type { SearchTableColumns } from "@/components/SearchTable/type";
|
||||
import { dateFormat } from "@gpt-vue/packages/utils";
|
||||
import { dateFormat } from "@chatgpt-plus/packages/utils";
|
||||
import { getList } from "./api";
|
||||
|
||||
const columns: SearchTableColumns[] = [
|
@ -5,7 +5,7 @@ import ProductForm from "./ProductForm.vue";
|
||||
import useCustomFormPopup from "@/composables/useCustomFormPopup";
|
||||
import { Message } from "@arco-design/web-vue";
|
||||
import SimpleTable from "@/components/SimpleTable/SimpleTable.vue";
|
||||
import { dateFormat } from "@gpt-vue/packages/utils";
|
||||
import { dateFormat } from "@chatgpt-plus/packages/utils";
|
||||
// table 配置
|
||||
const columns = [
|
||||
{
|
||||
@ -41,7 +41,7 @@ const columns = [
|
||||
dataIndex: "enabled",
|
||||
slotName: "status",
|
||||
align: "center",
|
||||
width: 100
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: "更新时间",
|
||||
@ -55,7 +55,7 @@ const columns = [
|
||||
title: "操作",
|
||||
slotName: "action",
|
||||
width: 120,
|
||||
fixed: "right"
|
||||
fixed: "right",
|
||||
},
|
||||
];
|
||||
|
@ -1,6 +1,6 @@
|
||||
<script lang="ts" setup>
|
||||
import { Message, type TableColumnData } from "@arco-design/web-vue";
|
||||
import { dateFormat } from "@gpt-vue/packages/utils";
|
||||
import { dateFormat } from "@chatgpt-plus/packages/utils";
|
||||
import SimpleTable from "@/components/SimpleTable/SimpleTable.vue";
|
||||
import { getList, remove } from "./api";
|
||||
|