From 2086959c4d637bac863b76b487f301b1cf334dc2 Mon Sep 17 00:00:00 2001 From: jinyaoMa Date: Wed, 28 Sep 2022 22:04:52 -0400 Subject: [PATCH] . --- README.md | 12 +++- backend/model/my_option.go | 4 ++ backend/service/service.go | 19 +++++ backend/service/settings.go | 54 +++++++++++++++ backend/services/settings.go | 22 ------ backend/tray/listeners.go | 9 +-- diagrams/package.drawio | 10 +++ diagrams/package.png | Bin 66688 -> 69469 bytes frontend/packages/components/form/index.ts | 15 ++++ .../components/form/src/form-group.vue | 57 +++++++++++++++ .../components/form/src/form-item.vue | 46 +++++++++++++ .../packages/components/form/src/form.vue | 32 +++++++++ frontend/packages/components/index.ts | 1 + .../packages/components/link/src/link.vue | 5 +- .../components/menu/src/menu-group.vue | 16 ++--- .../components/menu/src/menu-item.vue | 6 +- .../packages/components/menu/src/menu.vue | 8 +-- .../components/theme-default/mixin.scss | 10 +-- .../components/theme-default/style.scss | 65 ++++++++++++++++-- frontend/packages/components/types.ts | 3 + frontend/packages/design/index.ts | 3 +- frontend/src/App.vue | 4 +- frontend/src/i18n/locales/en.json | 19 +++++ frontend/src/i18n/locales/zh.json | 19 +++++ frontend/src/store/color-theme.ts | 12 ++++ frontend/src/style.scss | 6 +- frontend/src/views/About.vue | 2 +- frontend/src/views/Home.vue | 2 +- frontend/src/views/Settings.vue | 51 +++++++++++++- frontend/src/views/Test.vue | 31 ++------- frontend/src/vite-env.d.ts | 13 ++++ main.go | 7 +- 32 files changed, 467 insertions(+), 96 deletions(-) create mode 100644 backend/service/service.go create mode 100644 backend/service/settings.go delete mode 100644 backend/services/settings.go create mode 100644 frontend/packages/components/form/index.ts create mode 100644 frontend/packages/components/form/src/form-group.vue create mode 100644 frontend/packages/components/form/src/form-item.vue create mode 100644 frontend/packages/components/form/src/form.vue diff --git a/README.md b/README.md index 70b5f90..16101c9 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,9 @@ $ pnpm ... # install/preinstall scripts trigger during project setup │ │ ├── i18n # manage locale/translation strings for backend │ │ ├── log # define loggers for backend │ │ └── utils # helper functions +│ ├── service # service module, business layer +│ │ ├── service.go # initialize provided services +│ │ └── settings.go # functions about configure application │ ├── tray # tray module, presentations & services layer │ │ ├── icons # tray icons │ │ ├── menus # tray menus @@ -91,18 +94,21 @@ $ pnpm ... # install/preinstall scripts trigger during project setup │ │ ├── docs # auto-generated, try script `docs:build` │ │ ├── swagger # auto-generated, try script `swag:docs` │ │ ├── static.go # manage static sources -│ │ └── ... # other static sources +│ │ └── ... │ ├── air.go # special function for air to run web service individually │ ├── router.go # entry point of swaggo docs generator, manage routes for API │ └── web.go # web service ├── build # sources to use during wails build process │ ├── bin # auto-generated, try script `wails:dev` or `wails:build` -│ └── ... # wails related sources +│ └── ... ├── diagrams # diagrams about 4+1 view model ├── docs # vitepress documentation ├── frontend # sources related to frontend code, workplace managed by PNPM │ ├── packages # frontend components, icons, etc. -│ └── ... # wails frontend related sources +│ ├── src # wails frontend sources +│ │ ├── vite-env.d.ts # put go struct associated types into namespace app +│ │ └── ... +│ └── ... ├── main.go # wails main application, presentations & services layer ├── wails_life_cycle.go # wails life cycle ├── wails.json # wails CLI config diff --git a/backend/model/my_option.go b/backend/model/my_option.go index 93803ef..892c12b 100644 --- a/backend/model/my_option.go +++ b/backend/model/my_option.go @@ -8,6 +8,10 @@ type MyOption struct { Value string `` // Option value associated with name } +func (mo *MyOption) Load() *gorm.DB { + return db.Where(mo).Find(mo) +} + func (mo *MyOption) Update(newValue string) *gorm.DB { return db.Model(mo).Where(mo).Updates(MyOption{ Value: newValue, diff --git a/backend/service/service.go b/backend/service/service.go new file mode 100644 index 0000000..878bce3 --- /dev/null +++ b/backend/service/service.go @@ -0,0 +1,19 @@ +package service + +var ( + instance *service +) + +type service struct { + Settings *settings +} + +func init() { + instance = &service{ + Settings: &settings{}, + } +} + +func Settings() *settings { + return instance.Settings +} diff --git a/backend/service/settings.go b/backend/service/settings.go new file mode 100644 index 0000000..665e5ae --- /dev/null +++ b/backend/service/settings.go @@ -0,0 +1,54 @@ +package service + +import ( + "my-app/backend/app" + "my-app/backend/model" +) + +type settings struct{} + +func (s *settings) SaveOption(name string, value string) error { + option := model.MyOption{ + Name: name, + } + result := option.Update(value) + if result.Error == nil { + switch name { + case app.CfgDisplayLanguage: + app.App().Config().DisplayLanguage = value + case app.CfgColorTheme: + app.App().Config().ColorTheme = value + case app.CfgLogPath: + app.App().Config().LogPath = value + case app.CfgWebPortHttp: + app.App().Config().Web.PortHttp = value + case app.CfgWebPortHttps: + app.App().Config().Web.PortHttps = value + case app.CfgWebDirCerts: + app.App().Config().Web.DirCerts = value + } + } + return result.Error +} + +func (s *settings) GetOption(name string) string { + switch name { + case app.CfgDisplayLanguage: + return app.App().Config().DisplayLanguage + case app.CfgColorTheme: + return app.App().Config().ColorTheme + case app.CfgLogPath: + return app.App().Config().LogPath + case app.CfgWebPortHttp: + return app.App().Config().Web.PortHttp + case app.CfgWebPortHttps: + return app.App().Config().Web.PortHttps + case app.CfgWebDirCerts: + return app.App().Config().Web.DirCerts + } + return "" +} + +func (s *settings) GetOptions() *app.Config { + return app.App().Config() +} diff --git a/backend/services/settings.go b/backend/services/settings.go deleted file mode 100644 index 991faca..0000000 --- a/backend/services/settings.go +++ /dev/null @@ -1,22 +0,0 @@ -package services - -import ( - "my-app/backend/app" - "my-app/backend/model" -) - -func SaveColorThemeOption(theme string) error { - option := model.MyOption{ - Name: app.CfgColorTheme, - } - result := option.Update(theme) - return result.Error -} - -func SaveDisplayLanguageOption(lang string) error { - option := model.MyOption{ - Name: app.CfgDisplayLanguage, - } - result := option.Update(lang) - return result.Error -} diff --git a/backend/tray/listeners.go b/backend/tray/listeners.go index cdf0046..4a59674 100644 --- a/backend/tray/listeners.go +++ b/backend/tray/listeners.go @@ -4,7 +4,7 @@ import ( "fmt" "my-app/backend/app" "my-app/backend/pkg/i18n" - "my-app/backend/services" + "my-app/backend/service" "my-app/backend/tray/menus" "my-app/backend/web" @@ -63,12 +63,11 @@ func (t *tray) displayLanguageListener() menus.DisplayLanguageListener { t.colorTheme.SetLocale() t.quit.SetLocale() - if err := services.SaveDisplayLanguageOption(locale.Lang.Code); err != nil { + if err := service.Settings().SaveOption(app.CfgDisplayLanguage, locale.Lang.Code); err != nil { app.App().TrayLog().Fatalf("failed to update language option: %+v\n", err) } return true, func() { - app.App().Config().DisplayLanguage = lang t.refreshTooltip() } }, @@ -88,14 +87,12 @@ func (t *tray) colorThemeListener() menus.ColorThemeListener { } runtime.EventsEmit(t.wailsCtx, "onColorThemeChanged", theme) - if err := services.SaveColorThemeOption(theme); err != nil { + if err := service.Settings().SaveOption(app.CfgColorTheme, theme); err != nil { app.App().TrayLog().Fatalf("failed to update theme option: %+v\n", err) } return true, func() { - app.App().Config().ColorTheme = theme t.refreshTooltip() - runtime.Show(t.wailsCtx) } }, } diff --git a/diagrams/package.drawio b/diagrams/package.drawio index 6580226..a175204 100644 --- a/diagrams/package.drawio +++ b/diagrams/package.drawio @@ -161,6 +161,16 @@ + + + + + + + + + + diff --git a/diagrams/package.png b/diagrams/package.png index 8b3e45289c5ed8528cb38274c8ac8b9016ac8851..14edd34f676c8ab184c593f4b7613d954eca4dfd 100644 GIT binary patch literal 69469 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%0As`jI*<>a%29O0O3*5u` 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 literal 66688 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 Tv{c4-@V9NtPP2?nPN)6^NOQE; diff --git a/frontend/packages/components/form/index.ts b/frontend/packages/components/form/index.ts new file mode 100644 index 0000000..49e6c34 --- /dev/null +++ b/frontend/packages/components/form/index.ts @@ -0,0 +1,15 @@ +import type { App } from "vue"; +import Form from "./src/form.vue"; +import FormItem from "./src/form-item.vue"; +import FormGroup from "./src/form-group.vue"; + +Form.install = (app: App) => { + app.component(Form.name, Form); + app.component(FormItem.name, FormItem); + app.component(FormGroup.name, FormGroup); +}; + +export default Form; +export const MyForm = Form; +export const MyFormItem = FormItem; +export const MyFormGroup = FormGroup; diff --git a/frontend/packages/components/form/src/form-group.vue b/frontend/packages/components/form/src/form-group.vue new file mode 100644 index 0000000..56f4c1a --- /dev/null +++ b/frontend/packages/components/form/src/form-group.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/frontend/packages/components/form/src/form-item.vue b/frontend/packages/components/form/src/form-item.vue new file mode 100644 index 0000000..2f6cc62 --- /dev/null +++ b/frontend/packages/components/form/src/form-item.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/frontend/packages/components/form/src/form.vue b/frontend/packages/components/form/src/form.vue new file mode 100644 index 0000000..362e639 --- /dev/null +++ b/frontend/packages/components/form/src/form.vue @@ -0,0 +1,32 @@ + + + diff --git a/frontend/packages/components/index.ts b/frontend/packages/components/index.ts index 93586bc..f955609 100644 --- a/frontend/packages/components/index.ts +++ b/frontend/packages/components/index.ts @@ -2,3 +2,4 @@ export * from "./icon"; export * from "./container"; export * from "./link"; export * from "./menu"; +export * from "./form"; diff --git a/frontend/packages/components/link/src/link.vue b/frontend/packages/components/link/src/link.vue index 4ceccd6..da43ecd 100644 --- a/frontend/packages/components/link/src/link.vue +++ b/frontend/packages/components/link/src/link.vue @@ -28,7 +28,6 @@ const props = withDefaults( type: "default", underline: true, disabled: false, - href: "", } ); const emit = defineEmits<{ @@ -36,7 +35,9 @@ const emit = defineEmits<{ }>(); const href = computed(() => { - return props.disabled || !props.href ? undefined : props.href; + if (!props.disabled) { + return props.href || undefined; + } }); const handleClick = (e: MouseEvent) => { diff --git a/frontend/packages/components/menu/src/menu-group.vue b/frontend/packages/components/menu/src/menu-group.vue index 344a320..ec7b45e 100644 --- a/frontend/packages/components/menu/src/menu-group.vue +++ b/frontend/packages/components/menu/src/menu-group.vue @@ -1,6 +1,6 @@ diff --git a/frontend/src/i18n/locales/en.json b/frontend/src/i18n/locales/en.json index 43e7175..d4e3c8b 100644 --- a/frontend/src/i18n/locales/en.json +++ b/frontend/src/i18n/locales/en.json @@ -1,5 +1,10 @@ { "lang": "English", + "theme": { + "system": "System Default", + "light": "Light", + "dark": "Dark" + }, "menu": { "main": { "title": "Main", @@ -15,5 +20,19 @@ "footer": { "openVitePress": "Open VitePress Docs", "openSwagger": "Open Swagger Docs" + }, + "settings": { + "general": { + "legend": "General", + "displayLanguage": "Display Language", + "colorTheme": "Color Theme", + "logPath": "Log Path" + }, + "webService": { + "legend": "Web Service", + "portHttp": "HTTP Port", + "portHttps": "HTTPS Port", + "dirCerts": "TLS Certificate Path" + } } } diff --git a/frontend/src/i18n/locales/zh.json b/frontend/src/i18n/locales/zh.json index fb8a0c5..7ec2a23 100644 --- a/frontend/src/i18n/locales/zh.json +++ b/frontend/src/i18n/locales/zh.json @@ -1,5 +1,10 @@ { "lang": "简体中文", + "theme": { + "system": "跟随系统", + "light": "浅色", + "dark": "深色" + }, "menu": { "main": { "title": "主菜单", @@ -15,5 +20,19 @@ "footer": { "openVitePress": "打开 VitePress 文档", "openSwagger": "打开 Swagger 文档" + }, + "settings": { + "general": { + "legend": "通用", + "displayLanguage": "显示语言", + "colorTheme": "颜色主题", + "logPath": "日志保存路径" + }, + "webService": { + "legend": "Web 服务", + "portHttp": "HTTP 端口", + "portHttps": "HTTPS 端口", + "dirCerts": "TLS 证书路径" + } } } diff --git a/frontend/src/store/color-theme.ts b/frontend/src/store/color-theme.ts index 62284bc..3f38881 100644 --- a/frontend/src/store/color-theme.ts +++ b/frontend/src/store/color-theme.ts @@ -1,7 +1,19 @@ import { defineStore } from "pinia"; +const prefix = "my-theme-"; + export const useColorTheme = defineStore("color-theme", { state: () => ({ theme: "system", }), + actions: { + changeTheme(theme: string) { + const root = document.querySelector(":root"); + if (root) { + root.classList.remove(prefix + this.theme); + root.classList.add(prefix + theme); + } + this.theme = theme; + }, + }, }); diff --git a/frontend/src/style.scss b/frontend/src/style.scss index a50da35..06df14d 100644 --- a/frontend/src/style.scss +++ b/frontend/src/style.scss @@ -12,10 +12,10 @@ -moz-osx-font-smoothing: grayscale; -webkit-text-size-adjust: 100%; user-select: none; -} -body { - margin: 0; + body { + margin: 0; + } } @media (prefers-color-scheme: light) { diff --git a/frontend/src/views/About.vue b/frontend/src/views/About.vue index c2f70d6..b7a5dae 100644 --- a/frontend/src/views/About.vue +++ b/frontend/src/views/About.vue @@ -4,7 +4,7 @@ import { useColorTheme } from "../store/color-theme"; import { EventsOn } from "../../wailsjs/runtime"; const { t, locale } = useI18n(); -const colorTheme = useColorTheme(); +const { theme, changeTheme } = useColorTheme();