diff --git a/README.md b/README.md index c4015bd..3591a5f 100644 --- a/README.md +++ b/README.md @@ -15,9 +15,13 @@ ## 🎉 V1.0.4更新日志(未发布) -- 新增远程状态下是否支持跨域 +- 新增配置远程存储状态下是否支持跨域 - 修复系统重启错误 - 支持配置onlyOffice地址,onlyOffice编辑word/ppt/excel文件 +- 修复1.0.3闪屏问题 +- 修复默认不打开广告 +- 修复设置ollama地址无效的问题 +- 修复内网聊天初始化问题 ## 🏭 第三阶段目标(十二月底发布) 1. **文档处理与Markdown智能升级**:(已完成) diff --git a/docs/Faq.md b/docs/Faq.md index cdcd4e3..b420d47 100644 --- a/docs/Faq.md +++ b/docs/Faq.md @@ -74,3 +74,14 @@ systemctl stop godoos 左下角,系统设置,选远程存储,添加docker的ip或虚拟机的ip地址(例子:http://192.168.1.16:56780) +### 如何配置onlyoffice + +``` +docker pull onlyoffice/documentserver + +docker run -i -t -d -p 8000:80 -e JWT_ENABLED=false --restart=always --name=onlyoffice --privileged=true -v /data/onlyoffice/logs:/var/log/onlyoffice -v /data/onlyoffice/data:/var/www/onlyoffice/Data -v /data/onlyoffice/lib:/var/lib/onlyoffice -v /data/onlyoffice/db:/var/lib/postgresql onlyoffice/documentserver +``` + +- 系统设置,编辑器配置填写onlyoffice的网址,如:http://127.0.0.1:8000 +- 局域网内只配置一台机器即可,其他机器访问的时候,需要配置onlyoffice的公网ip,如:http://192.168.1.1:8000 + diff --git a/frontend/components.d.ts b/frontend/components.d.ts index cd7d5f7..c3086bb 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -64,23 +64,55 @@ declare module 'vue' { DownModelInfo: typeof import('./src/components/ai/DownModelInfo.vue')['default'] EditFileName: typeof import('./src/components/builtin/EditFileName.vue')['default'] EditType: typeof import('./src/components/builtin/EditType.vue')['default'] + ElAside: typeof import('element-plus/es')['ElAside'] ElAvatar: typeof import('element-plus/es')['ElAvatar'] + ElBadge: typeof import('element-plus/es')['ElBadge'] ElButton: typeof import('element-plus/es')['ElButton'] ElCard: typeof import('element-plus/es')['ElCard'] ElCarousel: typeof import('element-plus/es')['ElCarousel'] ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem'] + ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] + ElCol: typeof import('element-plus/es')['ElCol'] + ElCollapse: typeof import('element-plus/es')['ElCollapse'] + ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] + ElColorPicker: typeof import('element-plus/es')['ElColorPicker'] + ElContainer: typeof import('element-plus/es')['ElContainer'] ElDialog: typeof import('element-plus/es')['ElDialog'] + ElDrawer: typeof import('element-plus/es')['ElDrawer'] + ElDropdown: typeof import('element-plus/es')['ElDropdown'] + ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] + ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] + ElEmpty: typeof import('element-plus/es')['ElEmpty'] + ElFooter: typeof import('element-plus/es')['ElFooter'] ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] + ElHeader: typeof import('element-plus/es')['ElHeader'] ElIcon: typeof import('element-plus/es')['ElIcon'] + ElImage: typeof import('element-plus/es')['ElImage'] ElInput: typeof import('element-plus/es')['ElInput'] + ElMain: typeof import('element-plus/es')['ElMain'] + ElMenu: typeof import('element-plus/es')['ElMenu'] + ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElOption: typeof import('element-plus/es')['ElOption'] + ElPageHeader: typeof import('element-plus/es')['ElPageHeader'] ElPagination: typeof import('element-plus/es')['ElPagination'] + ElPopover: typeof import('element-plus/es')['ElPopover'] ElProgress: typeof import('element-plus/es')['ElProgress'] ElRow: typeof import('element-plus/es')['ElRow'] + ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElSelect: typeof import('element-plus/es')['ElSelect'] + ElSlider: typeof import('element-plus/es')['ElSlider'] + ElSpace: typeof import('element-plus/es')['ElSpace'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] + ElTable: typeof import('element-plus/es')['ElTable'] + ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + ElTabPane: typeof import('element-plus/es')['ElTabPane'] + ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] + ElText: typeof import('element-plus/es')['ElText'] + ElTooltip: typeof import('element-plus/es')['ElTooltip'] + ElTransfer: typeof import('element-plus/es')['ElTransfer'] + ElTree: typeof import('element-plus/es')['ElTree'] Error: typeof import('./src/components/taskbar/Error.vue')['default'] FileIcon: typeof import('./src/components/builtin/FileIcon.vue')['default'] FileIconImg: typeof import('./src/components/builtin/FileIconImg.vue')['default'] diff --git a/frontend/package.json.md5 b/frontend/package.json.md5 index f5cb381..5b3bc06 100755 --- a/frontend/package.json.md5 +++ b/frontend/package.json.md5 @@ -1 +1 @@ -0427c64c40c111c3bee3a5dd4c0d87ed \ No newline at end of file +d53bd39c40fc22f9f32490af3d478550 \ No newline at end of file diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 0ba0032..d97316e 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -6,7 +6,7 @@ import { isMobileDevice } from "@/util/device"; onMounted(() => { new System(); isMobile.value = isMobileDevice(); - console.log(isMobile.value); + //console.log(isMobile.value); }); const isMobile = ref(false); diff --git a/frontend/src/components/desktop/LockDesktop.vue b/frontend/src/components/desktop/LockDesktop.vue index f597528..cfe68c7 100644 --- a/frontend/src/components/desktop/LockDesktop.vue +++ b/frontend/src/components/desktop/LockDesktop.vue @@ -63,7 +63,6 @@
{ const info = chatStore.editInfo; - console.log(info) + //console.log(info) if (!info.title) { notifyInfo(t("aichat.inputTitle")); return; diff --git a/frontend/src/components/window/WindowInner.vue b/frontend/src/components/window/WindowInner.vue index 7916a3c..7ce076d 100644 --- a/frontend/src/components/window/WindowInner.vue +++ b/frontend/src/components/window/WindowInner.vue @@ -4,7 +4,7 @@ - + diff --git a/frontend/src/stores/aichat.ts b/frontend/src/stores/aichat.ts index 540af2a..1dc24c9 100644 --- a/frontend/src/stores/aichat.ts +++ b/frontend/src/stores/aichat.ts @@ -30,7 +30,7 @@ export const useAiChatStore = defineStore('aichat', () => { } const initChat = async () => { if (activeId.value === 0) { - return await newChat() + await newChat() } modelList.value = await modelStore.getModelAction('chat') const promptRes = await promptStore.getPrompts('chat') diff --git a/frontend/src/stores/model.ts b/frontend/src/stores/model.ts index 0d7e656..fe2b62b 100644 --- a/frontend/src/stores/model.ts +++ b/frontend/src/stores/model.ts @@ -91,6 +91,11 @@ export const useModelStore = defineStore('modelStore', () => { //console.log(res) if (res.ok) { resetData(res) + const modelData = await getModel("chat") + if(modelData){ + await setCurrentModel("chat", modelData?.model) + } + } } function getModelInfo(model: string) { diff --git a/frontend/src/system/config.ts b/frontend/src/system/config.ts index 0afec85..d152e46 100644 --- a/frontend/src/system/config.ts +++ b/frontend/src/system/config.ts @@ -121,7 +121,7 @@ export const getSystemConfig = (ifset = false) => { // 初始化账户信息,若本地存储中已存在则不进行覆盖 if (!config.account) { config.account = { - ad: true, + ad: false, username: '', password: '', }; diff --git a/frontend/src/system/index.ts b/frontend/src/system/index.ts index ae68061..3088488 100644 --- a/frontend/src/system/index.ts +++ b/frontend/src/system/index.ts @@ -333,10 +333,10 @@ export class System { ); } //if(!options.window.content)return - if (typeof options.window.content !== 'string') { - console.log('index.ts:', options.window.content) + //if (typeof options.window.content !== 'string') { + //console.log('index.ts:', options.window.content) //options.window.content = markRaw(options.window.content); - } + //} // console.log(options.window) // console.log(options.name) this._rootState.windowMap[loc].set(options.name, options); diff --git a/frontend/src/system/menu/Tary.ts b/frontend/src/system/menu/Tary.ts index c570bf0..411bd9a 100644 --- a/frontend/src/system/menu/Tary.ts +++ b/frontend/src/system/menu/Tary.ts @@ -19,7 +19,7 @@ export class Tray { this.image = options.image; } else { //this.image = markRaw(options.image); - console.log('tary.ts:', options.image) + //console.log('tary.ts:', options.image) } if (typeof options.component === 'string') { this.component = options.component; diff --git a/frontend/wailsjs/go/app/App.d.ts b/frontend/wailsjs/go/app/App.d.ts index 43d4ff9..58673a2 100755 --- a/frontend/wailsjs/go/app/App.d.ts +++ b/frontend/wailsjs/go/app/App.d.ts @@ -1,6 +1,9 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT +import {context} from '../models'; export function OpenDirDialog():Promise; export function RestartApp():Promise; + +export function Shutdown(arg1:context.Context):Promise; diff --git a/frontend/wailsjs/go/app/App.js b/frontend/wailsjs/go/app/App.js index a5390dd..a25a879 100755 --- a/frontend/wailsjs/go/app/App.js +++ b/frontend/wailsjs/go/app/App.js @@ -9,3 +9,7 @@ export function OpenDirDialog() { export function RestartApp() { return window['go']['app']['App']['RestartApp'](); } + +export function Shutdown(arg1) { + return window['go']['app']['App']['Shutdown'](arg1); +} diff --git a/godo/ai/server/chat.go b/godo/ai/server/chat.go index da2504a..2431dbf 100644 --- a/godo/ai/server/chat.go +++ b/godo/ai/server/chat.go @@ -3,6 +3,7 @@ package server import ( "encoding/json" "godo/libs" + "log" "net/http" ) @@ -12,14 +13,14 @@ func ChatHandler(w http.ResponseWriter, r *http.Request) { var req map[string]interface{} err := json.NewDecoder(r.Body).Decode(&req) if err != nil { - libs.ErrorMsg(w, err.Error()) + libs.ErrorMsg(w, "the chat request error:"+err.Error()) return } headers, url, err := GetHeadersAndUrl(req, "chat") - // log.Printf("url: %s", url) - // log.Printf("headers: %v", headers) + log.Printf("url: %s", url) + log.Printf("headers: %v", headers) if err != nil { - libs.ErrorMsg(w, err.Error()) + libs.ErrorMsg(w, "the chat request header or url errors:"+err.Error()) return } ForwardHandler(w, r, req, url, headers, "POST") diff --git a/godo/ai/server/ollama.go b/godo/ai/server/ollama.go index dc985ed..5488255 100644 --- a/godo/ai/server/ollama.go +++ b/godo/ai/server/ollama.go @@ -398,9 +398,9 @@ func GetOllamaUrl() string { if s := strings.TrimSpace(Var("OLLAMA_HOST")); s != "" { return "http://" + s } - ollamaUrl, ok := libs.GetConfig("ollamaUrl") - if ok { - return "http://" + ollamaUrl.(string) + ollamaUrl := libs.GetConfigString("ollamaUrl") + if ollamaUrl != "" { + return ollamaUrl } else { return "http://localhost:11434" } diff --git a/godo/cmd/main.go b/godo/cmd/main.go index fdd0bcf..40b3c48 100644 --- a/godo/cmd/main.go +++ b/godo/cmd/main.go @@ -50,8 +50,9 @@ func OsStart() { router := mux.NewRouter() router.Use(recoverMiddleware) if libs.GetIsCors() { - //router.Use(corsMiddleware()) + router.Use(corsMiddleware()) } + router.Use(corsMiddleware()) router.Use(loggingMiddleware{}.Middleware) staticDir := libs.GetStaticDir() router.PathPrefix("/static").Handler(http.StripPrefix("/static", http.FileServer(http.Dir(staticDir)))) diff --git a/godo/files/onlyoffice.go b/godo/files/onlyoffice.go index a216e26..fb2edf6 100644 --- a/godo/files/onlyoffice.go +++ b/godo/files/onlyoffice.go @@ -54,7 +54,7 @@ func OnlyOfficeCallbackHandler(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() // 打印原始请求体 - fmt.Printf("Received raw data: %s\n", body) + //fmt.Printf("Received raw data: %s\n", body) // 解析 JSON 数据 var callbackData CallbackData @@ -65,7 +65,7 @@ func OnlyOfficeCallbackHandler(w http.ResponseWriter, r *http.Request) { } // 打印解析后的回调数据 - fmt.Printf("Received callback: %+v\n", callbackData) + //fmt.Printf("Received callback: %+v\n", callbackData) // 使用 key 查找对应的 path mapOnlyOfficeMutex.Lock() diff --git a/godo/libs/dir.go b/godo/libs/dir.go index df40a69..7619462 100644 --- a/godo/libs/dir.go +++ b/godo/libs/dir.go @@ -201,9 +201,9 @@ func GetNetPath() string { func GetIsCors() bool { isCors := GetString("isCors") if isCors == "" { - return false - } else { return true + } else { + return false } } diff --git a/godo/localchat/addr.go b/godo/localchat/addr.go index 1f549b8..2f25689 100644 --- a/godo/localchat/addr.go +++ b/godo/localchat/addr.go @@ -31,6 +31,7 @@ import ( "time" "godo/libs" + "godo/store" ) // 发送 UDP 包并忽略响应 @@ -158,7 +159,7 @@ func getArpCacheIPs() ([]string, error) { default: return nil, fmt.Errorf("unsupported operating system: %v", runtime.GOOS) } - + cmd = store.SetHideConsoleCursor(cmd) out, err = cmd.Output() if err != nil { return nil, fmt.Errorf("error executing arp command: %v", err) diff --git a/godo/localchat/server.go b/godo/localchat/server.go index 4b4a53a..a48a122 100644 --- a/godo/localchat/server.go +++ b/godo/localchat/server.go @@ -114,14 +114,6 @@ func UdpServer() { continue } - // if udpMsg.Type == "file" { - // ReceiveFile(udpMsg) - // continue - // } - // if udpMsg.Type == "fileAccessed" { - // HandlerSendFile(udpMsg) - // continue - // } if udpMsg.Type == "image" { filePath, err := ReceiveImg(udpMsg) if err != nil {