diff --git a/README.md b/README.md
index 8e8ee5d6..731faf67 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-
+
FastApiAdmin v3.0.0
๐ ๅผ็ฎฑๅณ็จ๏ผ5 ๅ้ๆญๅปบไผไธ็บงไธญๅๅฐ
diff --git a/backend/app/api/v1/module_system/auth/service.py b/backend/app/api/v1/module_system/auth/service.py
index 351b83b2..c0f8fa8f 100644
--- a/backend/app/api/v1/module_system/auth/service.py
+++ b/backend/app/api/v1/module_system/auth/service.py
@@ -412,7 +412,7 @@ class LoginService:
.where(
TenantUserModel.user_id == uid,
TenantModel.status == "0",
- TenantModel.is_deleted == 0,
+ TenantModel.is_deleted.is_(False),
)
.order_by(TenantUserModel.is_default.desc(), TenantModel.sort, TenantModel.id)
)
diff --git a/backend/app/config/setting.py b/backend/app/config/setting.py
index e43fd4d8..dad35e11 100755
--- a/backend/app/config/setting.py
+++ b/backend/app/config/setting.py
@@ -214,7 +214,7 @@ class Settings(BaseSettings):
REDOC_JS_URL: str = "static/swagger/redoc/bundles/redoc.standalone.js"
CUSTOM_CSS_URL: str = "static/swagger/custom-ui/styles.css"
CUSTOM_JS_URL: str = "static/swagger/custom-ui/scripts.js"
- FAVICON_URL: str = "static/swagger/favicon.png"
+ FAVICON_URL: str = "static/image/favicon.ico"
# ================================================= #
# ******************* AIๅคงๆจกๅ้
็ฝฎ ****************** #
diff --git a/backend/app/scripts/data/sys_tenant_config.json b/backend/app/scripts/data/sys_tenant_config.json
index 5289e540..7dbec1cc 100644
--- a/backend/app/scripts/data/sys_tenant_config.json
+++ b/backend/app/scripts/data/sys_tenant_config.json
@@ -19,13 +19,13 @@
},
{
"config_key": "tenant_logo",
- "config_value": "https://service.fastapiadmin.com/api/v1/static/image/logo.png",
+ "config_value": "https://service.fastapiadmin.com/api/v1/static/image/logo.svg",
"config_type": "string",
"tenant_id": 1
},
{
"config_key": "tenant_favicon",
- "config_value": "https://service.fastapiadmin.com/api/v1/static/image/favicon.png",
+ "config_value": "https://service.fastapiadmin.com/api/v1/static/image/favicon.ico",
"config_type": "string",
"tenant_id": 1
},
diff --git a/backend/app/utils/banner.py b/backend/app/utils/banner.py
index aa00f5f5..5fb6a860 100644
--- a/backend/app/utils/banner.py
+++ b/backend/app/utils/banner.py
@@ -1,18 +1,17 @@
from app.config.path_conf import BANNER_FILE
-from app.core.logger import log
-def worship(env: str) -> None:
+def worship(env: str) -> str:
"""
- ่ฏปๅๅนถๆๅฐๅฏๅจ Banner๏ผไผๅ
`banner.txt`๏ผๅนถ้ๅธฆๅฝๅ็ฏๅขๅ๏ผใ
+ ่ฏปๅๅฏๅจ Banner๏ผไผๅ
`banner.txt`๏ผๅนถ้ๅธฆๅฝๅ็ฏๅขๅ๏ผใ
ๅๆฐ:
- env (str): ๅฝๅ่ฟ่ก็ฏๅขๆ ่ฏใ
่ฟๅ:
- - None
+ - str: banner ๆๆฌใ
"""
if BANNER_FILE.exists():
banner = BANNER_FILE.read_text(encoding="utf-8")
- banner = f"๐ ๅฝๅ่ฟ่ก็ฏๅข: {env}\n{banner}"
- log.info(banner)
+ return f"๐ ๅฝๅ่ฟ่ก็ฏๅข: {env}\n{banner}"
+ return ""
diff --git a/backend/banner.txt b/backend/banner.txt
index eb6ac1ec..20de62df 100644
--- a/backend/banner.txt
+++ b/backend/banner.txt
@@ -1,8 +1,7 @@
- ___ _ _ __ _
- .' ..] / |_ (_) | ] (_)
- _| |_ ,--. .--. `| |-',--. _ .--. __ ,--. .--.| | _ .--..--. __ _ .--.
-'-| |-'`'_\ : ( (`\] | | `'_\ :[ '/'`\ \[ | `'_\ : / /'`\' | [ `.-. .-. | [ | [ `.-. |
- | | // | |, `'.'. | |,// | |,| \__/ | | | // | |,| \__/ | | | | | | | | | | | | |
- [___] \'-;__/[\__) )\__/\'-;__/| ;.__/ [___]\'-;__/ '.__.;__][___||__||__][___][___||__]
- [__|
+โโโโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโ โโโโโโโ โโโ โโโโโโ โโโโโโโ โโโโ โโโโโโโโโโโ โโโ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโ โโโ
+โโโโโโ โโโโโโโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โโโ
+โโโโโโ โโโโโโโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โโโ โโโ โโโโโโโโโโโ โโโ โโโ โโโโโโ โโโโโโ โโโโโโโโโโโโโโ โโโ โโโโโโโโโ โโโโโโ
+โโโ โโโ โโโโโโโโโโโ โโโ โโโ โโโโโโ โโโโโโ โโโโโโโโโโ โโโ โโโโโโโโโ โโโโโ
\ No newline at end of file
diff --git a/backend/main.py b/backend/main.py
index cd4457af..4501791c 100755
--- a/backend/main.py
+++ b/backend/main.py
@@ -3,10 +3,10 @@ from typing import Annotated
import typer
import uvicorn
-from alembic import command
from alembic.config import Config
from fastapi import FastAPI
+from alembic import command
from app.common.enums import EnvironmentEnum
fastapiadmin_cli = typer.Typer()
@@ -74,11 +74,18 @@ def run(
try:
# ่ฎพ็ฝฎ็ฏๅขๅ้
os.environ["ENVIRONMENT"] = env.value
- typer.echo("้กน็ฎๅฏๅจไธญ...")
+
+ # ๆพ็คบๅฏๅจๆจชๅน
+ from app.utils.banner import worship
+
+ typer.secho(
+ message=worship(env.value),
+ fg=typer.colors.GREEN,
+ )
# ๆธ
้ค้
็ฝฎ็ผๅญ๏ผ็กฎไฟ้ๆฐๅ ่ฝฝ้
็ฝฎ
from app.config.setting import get_settings
-
+
get_settings.cache_clear()
settings = get_settings()
@@ -86,11 +93,6 @@ def run(
setup_logging()
- # ๆพ็คบๅฏๅจๆจชๅน
- from app.utils.banner import worship
-
- worship(env.value)
-
# ๅฏๅจuvicornๆๅก
uvicorn.run(
app="main:create_app",
diff --git a/backend/static/image/avatar.png b/backend/static/image/avatar.png
index fe3df177..4f9f1ae9 100644
Binary files a/backend/static/image/avatar.png and b/backend/static/image/avatar.png differ
diff --git a/backend/static/image/background.svg b/backend/static/image/background.svg
index 70f391f6..4beb3ab1 100644
--- a/backend/static/image/background.svg
+++ b/backend/static/image/background.svg
@@ -1,73 +1 @@
-
-
+
\ No newline at end of file
diff --git a/backend/static/image/favicon.ico b/backend/static/image/favicon.ico
new file mode 100644
index 00000000..9243837f
Binary files /dev/null and b/backend/static/image/favicon.ico differ
diff --git a/backend/static/image/favicon.png b/backend/static/image/favicon.png
deleted file mode 100644
index fe3df177..00000000
Binary files a/backend/static/image/favicon.png and /dev/null differ
diff --git a/backend/static/image/logo.svg b/backend/static/image/logo.svg
new file mode 100644
index 00000000..603ad458
--- /dev/null
+++ b/backend/static/image/logo.svg
@@ -0,0 +1,70 @@
+
\ No newline at end of file
diff --git a/backend/static/swagger/favicon.png b/backend/static/swagger/favicon.png
deleted file mode 100644
index b3dcdd30..00000000
Binary files a/backend/static/swagger/favicon.png and /dev/null differ
diff --git a/deploy.sh b/deploy.sh
index 6e47dc5b..bf8b695b 100644
--- a/deploy.sh
+++ b/deploy.sh
@@ -61,9 +61,19 @@ pull_code() {
script_md5=$(md5 -q "$0")
fi
if [ -d ".git" ]; then
- log "ๅๆฏ: $(git rev-parse --abbrev-ref HEAD)"
- git fetch origin || true
- git pull || { log "git pull ๅคฑ่ดฅ" "ERROR"; exit 1; }
+ local branch
+ branch=$(git rev-parse --abbrev-ref HEAD)
+ log "ๅๆฏ: ${branch}"
+ local old_head
+ old_head=$(git rev-parse HEAD 2>/dev/null || echo "")
+ git fetch origin || { log "git fetch ๅคฑ่ดฅ" "ERROR"; exit 1; }
+ git reset --hard "origin/${branch}" || { log "git reset ๅคฑ่ดฅ" "ERROR"; exit 1; }
+ local new_head
+ new_head=$(git rev-parse HEAD 2>/dev/null || echo "")
+ if [ -n "$old_head" ] && [ "$old_head" != "$new_head" ]; then
+ log "๐ ๆฌๆฌกๆๅๆไบค๏ผ"
+ git log --oneline --no-decorate "${old_head}..${new_head}" 2>/dev/null | sed 's/^/ /' || true
+ fi
# deploy.sh ่ช่บซๆๆดๆฐๅ้่ฝฝ
if [ -n "$script_md5" ]; then
local new_md5=""
@@ -83,7 +93,7 @@ pull_code() {
build_image() {
cd "${DOCKER_DIR}"
export DOCKER_BUILDKIT=1
- docker compose build --no-cache || { log "้ๅๆๅปบๅคฑ่ดฅ" "ERROR"; exit 1; }
+ docker compose build || { log "้ๅๆๅปบๅคฑ่ดฅ" "ERROR"; exit 1; }
log "โ
้ๅๆๅปบๅฎๆ" "SUCCESS"
}
diff --git a/frontend/web/.env.development b/frontend/web/.env.development
index 0a6dd7d0..6fea62e6 100755
--- a/frontend/web/.env.development
+++ b/frontend/web/.env.development
@@ -4,7 +4,7 @@
VITE_APP_ENV = development
# ้กน็ฎๅ็งฐ
-VITE_APP_TITLE = FastAPI Admin
+VITE_APP_TITLE = FastapiAdmin
# ๆต่งๅจไพงๅๆบๅ็ผ๏ผไธ Vite ไปฃ็้
ๅๆถ็จ /๏ผ่ฏทๆฑ่ตฐ localhost:็ซฏๅฃ + ไปฃ็๏ผ
VITE_API_URL = /
diff --git a/frontend/web/.env.example b/frontend/web/.env.example
index 7b313ed8..8eb3a7ba 100644
--- a/frontend/web/.env.example
+++ b/frontend/web/.env.example
@@ -17,7 +17,7 @@ VITE_APP_BASE_API=/api/v1
# ---------- ๅผๅ๏ผๅคๅถๅฐ .env.development๏ผ----------
VITE_APP_ENV=development
-VITE_APP_TITLE=FastAPI Admin
+VITE_APP_TITLE=FastapiAdmin
VITE_API_URL=/
# ๆฌๅฐๅ็ซฏ๏ผๅผๅๆถไปฃ็ไผๆ /api/v1 ่ฝฌๅฐๆญคๅค
diff --git a/frontend/web/.env.production b/frontend/web/.env.production
index 8b7b76b1..c94a9326 100755
--- a/frontend/web/.env.production
+++ b/frontend/web/.env.production
@@ -4,7 +4,7 @@
VITE_APP_ENV = production
# ้กน็ฎๅ็งฐ
-VITE_APP_TITLE = FastAPI Admin
+VITE_APP_TITLE = FastapiAdmin
# API ่ฏทๆฑๅบ็ก่ทฏๅพ๏ผ็ไบง็ฏๅขไฝฟ็จๅฎๆดๅ็ซฏๅฐๅ๏ผ
VITE_API_BASE_URL = https://service.fastapiadmin.com
diff --git a/frontend/web/build/banner.ts b/frontend/web/build/banner.ts
index a7bf19a0..3c1ef029 100644
--- a/frontend/web/build/banner.ts
+++ b/frontend/web/build/banner.ts
@@ -1,9 +1,9 @@
-export const BANNER = [
- " ___ _ _ __ _ ",
- " .' ..] / |_ (_) | ] (_) ",
- " _| |_ ,--. .--. `| |-',--. _ .--. __ ,--. .--.| | _ .--..--. __ _ .--. ",
- " '-| |-'`'_\\ : ( (`\\] | | `'_\\ :[ '/ '`\\ [ | `'_\\ : / /'`\\' | [ `.-. .-. | [ | [ `.-. | ",
- " | | // | |, `'.'. | |,// | |,| \\__/ | | | // | |,| \\__/ | | | | | | | | | | | | | ",
- " [___] \\'-;__/[\\__) )\\__/\\'-;__/| ;.__/ [___]\\'-;__/ '.__.;__][___||__||__][___][___||__] ",
- " [__] ",
-].join("\n");
+/* eslint-disable no-irregular-whitespace */
+export const BANNER = [`
+โโโโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโ โโโโโโโ โโโ โโโโโโ โโโโโโโ โโโโ โโโโโโโโโโโ โโโ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโ โโโ
+โโโโโโ โโโโโโโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โโโ
+โโโโโโ โโโโโโโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โโโ โโโ โโโโโโโโโโโ โโโ โโโ โโโโโโ โโโโโโ โโโโโโโโโโโโโโ โโโ โโโโโโโโโ โโโโโโ
+โโโ โโโ โโโโโโโโโโโ โโโ โโโ โโโโโโ โโโโโโ โโโโโโโโโโ โโโ โโโโโโโโโ โโโโโ
+`].join("\n");
diff --git a/frontend/web/index.html b/frontend/web/index.html
index 87c89e7f..2e9163e3 100755
--- a/frontend/web/index.html
+++ b/frontend/web/index.html
@@ -9,7 +9,7 @@
name="keywords"
content="vue,element-plus,typescript,vue-element-admin,vue3-element-admin"
/>
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/frontend/web/public/favicon.ico b/frontend/web/public/favicon.ico
new file mode 100644
index 00000000..9243837f
Binary files /dev/null and b/frontend/web/public/favicon.ico differ
diff --git a/frontend/web/public/favicon.png b/frontend/web/public/favicon.png
deleted file mode 100644
index fe3df177..00000000
Binary files a/frontend/web/public/favicon.png and /dev/null differ
diff --git a/frontend/web/public/logo.png b/frontend/web/public/logo.png
deleted file mode 100644
index 4f9f1ae9..00000000
Binary files a/frontend/web/public/logo.png and /dev/null differ
diff --git a/frontend/web/public/logo.svg b/frontend/web/public/logo.svg
new file mode 100644
index 00000000..603ad458
--- /dev/null
+++ b/frontend/web/public/logo.svg
@@ -0,0 +1,70 @@
+
\ No newline at end of file
diff --git a/frontend/web/scripts/clean-dev.ts b/frontend/web/scripts/clean-dev.ts
index 8ef02eb7..56c08b20 100644
--- a/frontend/web/scripts/clean-dev.ts
+++ b/frontend/web/scripts/clean-dev.ts
@@ -253,7 +253,7 @@ async function cleanRouteModules() {
);
if (reset === mp) {
console.log(
- ` ${icons.warn} ${fmt.dim("MenuProcessor.ts ไธญๆชๆพๅฐ builtinFrontendRoutes๏ผ่ทณ่ฟ้็ฝฎ")}`
+ ` ${icons.warning} ${fmt.dim("MenuProcessor.ts ไธญๆชๆพๅฐ builtinFrontendRoutes๏ผ่ทณ่ฟ้็ฝฎ")}`
);
} else {
await fs.writeFile(menuProcessorPath, reset, "utf-8");
diff --git a/backend/static/image/logo.png b/frontend/web/src/assets/fa_imgs/avatar.png
similarity index 100%
rename from backend/static/image/logo.png
rename to frontend/web/src/assets/fa_imgs/avatar.png
diff --git a/frontend/web/src/assets/fa_imgs/background.svg b/frontend/web/src/assets/fa_imgs/background.svg
new file mode 100644
index 00000000..4beb3ab1
--- /dev/null
+++ b/frontend/web/src/assets/fa_imgs/background.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/web/src/assets/fa_imgs/favicon.ico b/frontend/web/src/assets/fa_imgs/favicon.ico
new file mode 100644
index 00000000..9243837f
Binary files /dev/null and b/frontend/web/src/assets/fa_imgs/favicon.ico differ
diff --git a/frontend/web/src/assets/fa_imgs/logo.svg b/frontend/web/src/assets/fa_imgs/logo.svg
new file mode 100644
index 00000000..603ad458
--- /dev/null
+++ b/frontend/web/src/assets/fa_imgs/logo.svg
@@ -0,0 +1,70 @@
+
\ No newline at end of file
diff --git a/frontend/web/src/assets/fa_logo/ๆต
่ฒ็logo.svg b/frontend/web/src/assets/fa_imgs/็ฝๅบlogo้ๆ.svg
similarity index 99%
rename from frontend/web/src/assets/fa_logo/ๆต
่ฒ็logo.svg
rename to frontend/web/src/assets/fa_imgs/็ฝๅบlogo้ๆ.svg
index 7b1e984d..3e69be77 100644
--- a/frontend/web/src/assets/fa_logo/ๆต
่ฒ็logo.svg
+++ b/frontend/web/src/assets/fa_imgs/็ฝๅบlogo้ๆ.svg
@@ -1,5 +1,4 @@
+
\ No newline at end of file
diff --git a/frontend/web/src/assets/fa_logo/logo.svg b/frontend/web/src/assets/fa_imgs/้ปๅบlogo้ๆ.svg
similarity index 99%
rename from frontend/web/src/assets/fa_logo/logo.svg
rename to frontend/web/src/assets/fa_imgs/้ปๅบlogo้ๆ.svg
index ee89f104..a8465f84 100644
--- a/frontend/web/src/assets/fa_logo/logo.svg
+++ b/frontend/web/src/assets/fa_imgs/้ปๅบlogo้ๆ.svg
@@ -1,5 +1,4 @@
+
\ No newline at end of file
diff --git a/frontend/web/src/assets/fa_logo/background.svg b/frontend/web/src/assets/fa_logo/background.svg
deleted file mode 100644
index 70f391f6..00000000
--- a/frontend/web/src/assets/fa_logo/background.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/frontend/web/src/assets/fa_logo/favicon-old.png b/frontend/web/src/assets/fa_logo/favicon-old.png
deleted file mode 100644
index 43eeb762..00000000
Binary files a/frontend/web/src/assets/fa_logo/favicon-old.png and /dev/null differ
diff --git a/frontend/web/src/assets/fa_logo/favicon.ico b/frontend/web/src/assets/fa_logo/favicon.ico
deleted file mode 100644
index 9d55c82a..00000000
Binary files a/frontend/web/src/assets/fa_logo/favicon.ico and /dev/null differ
diff --git a/frontend/web/src/assets/fa_logo/favicon.png b/frontend/web/src/assets/fa_logo/favicon.png
deleted file mode 100644
index fe3df177..00000000
Binary files a/frontend/web/src/assets/fa_logo/favicon.png and /dev/null differ
diff --git a/frontend/web/src/assets/fa_logo/logo-old.png b/frontend/web/src/assets/fa_logo/logo-old.png
deleted file mode 100644
index 81834963..00000000
Binary files a/frontend/web/src/assets/fa_logo/logo-old.png and /dev/null differ
diff --git a/frontend/web/src/assets/fa_logo/logo.png b/frontend/web/src/assets/fa_logo/logo.png
deleted file mode 100644
index 4f9f1ae9..00000000
Binary files a/frontend/web/src/assets/fa_logo/logo.png and /dev/null differ
diff --git a/frontend/web/src/assets/fa_logo/ๅ็ฝlogo.svg b/frontend/web/src/assets/fa_logo/ๅ็ฝlogo.svg
deleted file mode 100644
index 54aa138f..00000000
--- a/frontend/web/src/assets/fa_logo/ๅ็ฝlogo.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/web/src/assets/fa_logo/ๆฎ้้ข่ฒlogo.svg b/frontend/web/src/assets/fa_logo/ๆฎ้้ข่ฒlogo.svg
deleted file mode 100644
index 37d9fc7a..00000000
--- a/frontend/web/src/assets/fa_logo/ๆฎ้้ข่ฒlogo.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/frontend/web/src/assets/fa_logo/ๆ ็ญพ1.png b/frontend/web/src/assets/fa_logo/ๆ ็ญพ1.png
deleted file mode 100644
index 9e453fc7..00000000
Binary files a/frontend/web/src/assets/fa_logo/ๆ ็ญพ1.png and /dev/null differ
diff --git a/frontend/web/src/assets/fa_logo/ๆต
่ฒ.png b/frontend/web/src/assets/fa_logo/ๆต
่ฒ.png
deleted file mode 100644
index ea99d9c0..00000000
Binary files a/frontend/web/src/assets/fa_logo/ๆต
่ฒ.png and /dev/null differ
diff --git a/frontend/web/src/assets/fa_logo/ๆทฑ่ฒ1.png b/frontend/web/src/assets/fa_logo/ๆทฑ่ฒ1.png
deleted file mode 100644
index e1b42517..00000000
Binary files a/frontend/web/src/assets/fa_logo/ๆทฑ่ฒ1.png and /dev/null differ
diff --git a/frontend/web/src/assets/images/common/logo.webp b/frontend/web/src/assets/images/common/logo.webp
deleted file mode 100644
index 71542b57..00000000
Binary files a/frontend/web/src/assets/images/common/logo.webp and /dev/null differ
diff --git a/frontend/web/src/assets/images/favicon.ico b/frontend/web/src/assets/images/favicon.ico
deleted file mode 100644
index 21e70635..00000000
Binary files a/frontend/web/src/assets/images/favicon.ico and /dev/null differ
diff --git a/frontend/web/src/assets/images/favicon.png b/frontend/web/src/assets/images/favicon.png
deleted file mode 100644
index 43eeb762..00000000
Binary files a/frontend/web/src/assets/images/favicon.png and /dev/null differ
diff --git a/frontend/web/src/components/base/fa-logo/index.vue b/frontend/web/src/components/base/fa-logo/index.vue
index 95d5c425..03f8c644 100644
--- a/frontend/web/src/components/base/fa-logo/index.vue
+++ b/frontend/web/src/components/base/fa-logo/index.vue
@@ -12,7 +12,7 @@