Skip to content

Commit c41a054

Browse files
committed
frontend-next base layout
1 parent 8711928 commit c41a054

File tree

109 files changed

+12353
-188
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+12353
-188
lines changed

demo.Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ FROM --platform=linux/amd64 uozi/nginx-ui-base:latest
33
WORKDIR /app
44
EXPOSE 80
55

6+
COPY resources/demo/ojbk.me /etc/nginx/sites-available/ojbk.me
67
COPY resources/demo/app.ini /etc/nginx-ui/app.ini
78
COPY resources/demo/demo.db /etc/nginx-ui/database.db
89
COPY resources/docker/nginx.conf /etc/nginx/nginx.conf

frontend-next/.env.development

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
VITE_API_ROOT = /api
2+
VITE_API_WSS_ROOT = wss://nginx.jackyu.cn/api

frontend-next/.env.production

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
VUE_APP_API_ROOT = /api
2+
VUE_APP_API_WSS_ROOT = /api

frontend-next/.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"recommendations": ["Vue.volar"]
3+
}

frontend-next/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Vue 3 + TypeScript + Vite
2+
3+
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
4+
5+
## Recommended IDE Setup
6+
7+
- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar)
8+
9+
## Type Support For `.vue` Imports in TS
10+
11+
Since TypeScript cannot handle type information for `.vue` imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in `.vue` imports (for example to get props validation when using manual `h(...)` calls), you can enable Volar's Take Over mode by following these steps:
12+
13+
1. Run `Extensions: Show Built-in Extensions` from VS Code's command palette, look for `TypeScript and JavaScript Language Features`, then right click and select `Disable (Workspace)`. By default, Take Over mode will enable itself if the default TypeScript extension is disabled.
14+
2. Reload the VS Code window by running `Developer: Reload Window` from the command palette.
15+
16+
You can learn more about Take Over mode [here](https://github.com/johnsoncodehk/volar/discussions/471).

frontend-next/components.d.ts

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// generated by unplugin-vue-components
2+
// We suggest you to commit this file into source control
3+
// Read more: https://github.com/vuejs/core/pull/3399
4+
import '@vue/runtime-core'
5+
6+
export {}
7+
8+
declare module '@vue/runtime-core' {
9+
export interface GlobalComponents {
10+
AAvatar: typeof import('ant-design-vue/es')['Avatar']
11+
ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb']
12+
ABreadcrumbItem: typeof import('ant-design-vue/es')['BreadcrumbItem']
13+
AButton: typeof import('ant-design-vue/es')['Button']
14+
ACard: typeof import('ant-design-vue/es')['Card']
15+
ACol: typeof import('ant-design-vue/es')['Col']
16+
AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider']
17+
ADrawer: typeof import('ant-design-vue/es')['Drawer']
18+
AForm: typeof import('ant-design-vue/es')['Form']
19+
AFormItem: typeof import('ant-design-vue/es')['FormItem']
20+
AInput: typeof import('ant-design-vue/es')['Input']
21+
AInputPassword: typeof import('ant-design-vue/es')['InputPassword']
22+
ALayout: typeof import('ant-design-vue/es')['Layout']
23+
ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent']
24+
ALayoutFooter: typeof import('ant-design-vue/es')['LayoutFooter']
25+
ALayoutHeader: typeof import('ant-design-vue/es')['LayoutHeader']
26+
ALayoutSider: typeof import('ant-design-vue/es')['LayoutSider']
27+
AMenu: typeof import('ant-design-vue/es')['Menu']
28+
AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
29+
ARow: typeof import('ant-design-vue/es')['Row']
30+
ASelect: typeof import('ant-design-vue/es')['Select']
31+
ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
32+
AStatistic: typeof import('ant-design-vue/es')['Statistic']
33+
ASubMenu: typeof import('ant-design-vue/es')['SubMenu']
34+
Breadcrumb: typeof import('./src/components/Breadcrumb/Breadcrumb.vue')['default']
35+
CPUChart: typeof import('./src/components/Chart/CPUChart.vue')['default']
36+
DiskChart: typeof import('./src/components/Chart/DiskChart.vue')['default']
37+
DynamicIcon: typeof import('./src/components/DynamicIcon/DynamicIcon.vue')['default']
38+
FooterToolBar: typeof import('./src/components/FooterToolbar/FooterToolBar.vue')['default']
39+
HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
40+
LineChart: typeof import('./src/components/Chart/LineChart.vue')['default']
41+
Logo: typeof import('./src/components/Logo/Logo.vue')['default']
42+
NetChart: typeof import('./src/components/Chart/NetChart.vue')['default']
43+
PageHeader: typeof import('./src/components/PageHeader/PageHeader.vue')['default']
44+
RadialBarChart: typeof import('./src/components/Chart/RadialBarChart.vue')['default']
45+
RouterLink: typeof import('vue-router')['RouterLink']
46+
RouterView: typeof import('vue-router')['RouterView']
47+
SetLanguage: typeof import('./src/components/SetLanguage/SetLanguage.vue')['default']
48+
StdCheckGroup: typeof import('./src/components/StdDataEntry/StdCheckGroup.vue')['default']
49+
StdCheckTag: typeof import('./src/components/StdDataEntry/StdCheckTag.vue')['default']
50+
StdCurd: typeof import('./src/components/StdDataDisplay/StdCurd.vue')['default']
51+
StdDataEntry: typeof import('./src/components/StdDataEntry/StdDataEntry.vue')['default']
52+
StdDatePicker: typeof import('./src/components/StdDataEntry/StdDatePicker.vue')['default']
53+
StdMultiCheckTag: typeof import('./src/components/StdDataEntry/StdMultiCheckTag.vue')['default']
54+
StdMultiFilesUpload: typeof import('./src/components/StdDataEntry/StdMultiFilesUpload.vue')['default']
55+
StdPagination: typeof import('./src/components/StdDataDisplay/StdPagination.vue')['default']
56+
StdRadioGroup: typeof import('./src/components/StdDataEntry/StdRadioGroup.vue')['default']
57+
StdSelectOption: typeof import('./src/components/StdDataEntry/StdSelectOption.vue')['default']
58+
StdSelector: typeof import('./src/components/StdDataEntry/StdSelector.vue')['default']
59+
StdSingleFileUpload: typeof import('./src/components/StdDataEntry/StdSingleFileUpload.vue')['default']
60+
StdTable: typeof import('./src/components/StdDataDisplay/StdTable.vue')['default']
61+
StdTransfer: typeof import('./src/components/StdDataEntry/StdTransfer.vue')['default']
62+
StdUpload: typeof import('./src/components/StdDataEntry/StdUpload.vue')['default']
63+
}
64+
}

frontend-next/gettext.config.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module.exports = {
2+
output: {
3+
locales: ['en', 'zh_CN', 'zh_TW'],
4+
},
5+
}

frontend-next/index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8"/>
5+
<link href="/favicon.ico" rel="icon">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
7+
<title><%- title %></title>
8+
</head>
9+
<body>
10+
<div id="app"></div>
11+
<script type="module" src="/src/main.ts"></script>
12+
</body>
13+
</html>

frontend-next/package.json

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"name": "nginx-ui-frontend-next",
3+
"private": true,
4+
"version": "0.0.0",
5+
"type": "commonjs",
6+
"scripts": {
7+
"dev": "vite",
8+
"build": "vue-tsc --noEmit && vite build",
9+
"preview": "vite preview",
10+
"gettext:extract": "vue-gettext-extract",
11+
"gettext:compile": "vue-gettext-compile"
12+
},
13+
"dependencies": {
14+
"@ant-design/icons-vue": "^6.1.0",
15+
"ant-design-vue": "^3.2.10",
16+
"axios": "^0.27.2",
17+
"lodash": "^4.17.21",
18+
"moment": "^2.29.4",
19+
"path": "^0.12.7",
20+
"pinia": "^2.0.17",
21+
"pinia-plugin-persistedstate": "^1.6.3",
22+
"reconnecting-websocket": "^4.4.0",
23+
"vue": "^3.2.37",
24+
"vue-apexcharts": "^1.6.2",
25+
"vue-chartjs": "^4.1.1",
26+
"vue-router": "4",
27+
"vue3-gettext": "^2.3.0",
28+
"vuex": "^4.0.2",
29+
"xterm": "^4.19.0",
30+
"xterm-addon-attach": "^0.6.0",
31+
"xterm-addon-fit": "^0.5.0"
32+
},
33+
"devDependencies": {
34+
"@types/lodash": "^4.14.182",
35+
"@vitejs/plugin-vue": "^3.0.0",
36+
"@zougt/vite-plugin-theme-preprocessor": "^1.4.5",
37+
"less": "^4.1.3",
38+
"typescript": "^4.6.4",
39+
"unplugin-vue-components": "^0.21.2",
40+
"vite": "^3.0.0",
41+
"vite-plugin-html": "^3.2.0",
42+
"vue-tsc": "^0.38.4"
43+
}
44+
}

0 commit comments

Comments
 (0)