From ed2c39e7fc38dbd0118d8808cb422483d43d2002 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Thu, 27 Feb 2025 09:47:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 7 ++-- package.json | 5 ++- src/page/Home/Index/index.tsx | 64 +++++++++++++++++------------ src/page/Login/index.tsx | 77 +++++++++++++++++++---------------- src/shims-react.d.ts | 1 + src/utils/package/public.ts | 34 ++++++++++++++++ 6 files changed, 122 insertions(+), 66 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8e15458..ebeb9ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "WGShare.Metting", - "version": "0.4.8", + "version": "0.7.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "WGShare.Metting", - "version": "0.4.8", + "version": "0.7.1", "dependencies": { "@ant-design/icons": "^5.3.7", "@microsoft/signalr": "^8.0.0", "@types/node": "^20.14.9", - "agora-electron-sdk": "^4.4.0", + "agora-electron-sdk": "4.4.0", "animate.css": "^4.1.1", "antd": "^5.18.2", "axios": "^1.7.2", @@ -19,6 +19,7 @@ "dayjs": "^1.11.11", "electron-squirrel-startup": "^1.0.1", "electron-updater": "^6.2.1", + "js-yaml": "^4.1.0", "os": "^0.1.2", "path": "^0.12.7", "postcss-px-to-viewport-8-plugin": "^1.2.5", diff --git a/package.json b/package.json index af25b5e..bb0fb96 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "WGShare.Metting", "private": true, - "version": "0.7.1", + "version": "0.7.0", "main": "main.js", "authors": "yj", "description": "智汇享", @@ -34,6 +34,7 @@ "dayjs": "^1.11.11", "electron-squirrel-startup": "^1.0.1", "electron-updater": "^6.2.1", + "js-yaml": "^4.1.0", "os": "^0.1.2", "path": "^0.12.7", "postcss-px-to-viewport-8-plugin": "^1.2.5", @@ -58,4 +59,4 @@ "vite": "^2.8.0", "vite-plugin-resolve": "^2.5.1" } -} \ No newline at end of file +} diff --git a/src/page/Home/Index/index.tsx b/src/page/Home/Index/index.tsx index 0c13fe6..7f4bac8 100644 --- a/src/page/Home/Index/index.tsx +++ b/src/page/Home/Index/index.tsx @@ -16,6 +16,8 @@ import { GetSubDpList } from '@/api/Home/User'; import FeedBackModel from '@/components/FeedBackModel'; import { PostHomeVerLog } from '@/api/Meeting'; import Code from '@/components/Code'; +import { isVersion } from "@/utils/package/public"; + const { setInterval, clearInterval } = require('timers'); const fs = require('fs').promises; const { exec } = require('child_process'); @@ -308,35 +310,43 @@ const Index: React.FC = () => { diff --git a/src/shims-react.d.ts b/src/shims-react.d.ts index cad1cfa..ab90445 100644 --- a/src/shims-react.d.ts +++ b/src/shims-react.d.ts @@ -1,3 +1,4 @@ declare module 'react-dom/client'; declare module 'crypto-js'; +declare module 'js-yaml'; declare module 'uuid'; \ No newline at end of file diff --git a/src/utils/package/public.ts b/src/utils/package/public.ts index 35e1e85..61dc529 100644 --- a/src/utils/package/public.ts +++ b/src/utils/package/public.ts @@ -1,5 +1,7 @@ import path from "path"; import storage from "./storage"; +import axios from "axios"; +import yaml from 'js-yaml' export const setKeyOpenChildWindow = async (key: string, bool: boolean) => { const openChildWindow = await JSON.parse(storage.getItem('openChildWindow') as string) openChildWindow[key] = bool; @@ -71,4 +73,36 @@ export const getTitle = (env: string) => { default: return '智汇享' } +} +export const compareVersions = (version1: string, version2: string): number => { + const v1Parts = version1.split('.').map(Number); + const v2Parts = version2.split('.').map(Number); + const maxLength = Math.max(v1Parts.length, v2Parts.length); + for (let i = 0; i < maxLength; i++) { + const v1 = v1Parts[i] || 0; + const v2 = v2Parts[i] || 0; + if (v1 > v2) { + return 1; + } else if (v1 < v2) { + return -1; + } + } + return 0; +} + +export const isVersion = (callBack: Function) => { + axios.get(import.meta.env.VITE_ENV !== 'development' ? 'https://meeting-api.23544.com/meeting/update' : 'http://192.168.2.9:8827/latest.yml').then(res => { + if (res.status === 200 && res.data) { + const data = yaml.load(res.data); // 解析 YAML 内容 + window.electron.getVersion().then(req => { + if (compareVersions(data.version, req) === -1) { + callBack(false) + } else { + callBack(true) + } + }) + } + }).catch(() => { + callBack(true) + }) } \ No newline at end of file