From 68c9c462845e3bde04f34e88187b0b559ceffda5 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期二, 20 六月 2023 14:58:17 +0800
Subject: [PATCH] 完善配置信息使用
---
src/views/home/index.vue | 22 ++++--
electron/preload/splash.ts | 2
electron/preload/autoUpdate.js | 73 ++++++++++++++++++++++++
imgs/1687242156020.png | 0
src/samples/sockteStomp.ts | 3
dev-app-update.yml | 0
src/stores/StoresConfing.ts | 1
src/samples/node-api.ts | 6 -
package.json | 9 ++
electron/main/index.ts | 11 +++
src/utils/axios.ts | 8 +-
11 files changed, 113 insertions(+), 22 deletions(-)
diff --git a/dev-app-update.yml b/dev-app-update.yml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/dev-app-update.yml
diff --git a/electron/main/index.ts b/electron/main/index.ts
index 36dd01e..7b6eb70 100644
--- a/electron/main/index.ts
+++ b/electron/main/index.ts
@@ -1,7 +1,7 @@
import { app, BrowserWindow, shell, ipcMain,Menu } from 'electron'
import { release } from 'os'
import { join } from 'path'
-
+// import updater from "../preload/autoUpdate.js"
import logger from '../preload/logger.js'
import fs from 'fs'
import iconv from 'iconv-lite'
@@ -61,16 +61,18 @@
const url = `http://${process.env['VITE_DEV_SERVER_HOST']}:${process.env['VITE_DEV_SERVER_PORT']}`
async function createWindow() {
+
win = new BrowserWindow({
title: 'Main window',
fullscreen: true,// 开启默认全屏
- // autoHideMenuBar:true, //关闭菜单栏
+ autoHideMenuBar:store.get('debug'), //关闭菜单栏
webPreferences: {
preload: splash,
nodeIntegration: true,
contextIsolation: false,
},
})
+
if (app.isPackaged) {
win.loadFile(join(__dirname, '../../index.html'))
} else {
@@ -100,6 +102,7 @@
if (process.platform !== 'darwin') app.quit()
})
+
app.on('second-instance', () => {
if (win) {
// 如果用户试图打开另一个窗口,则将焦点放在主窗口上
@@ -116,6 +119,10 @@
createWindow()
}
})
+// 自动更新
+// app.on('ready', async () => {
+// updater()
+// })
// 新窗口示例arg:新的Windows url
ipcMain.handle("open-win", (event, arg) => {
diff --git a/electron/preload/autoUpdate.js b/electron/preload/autoUpdate.js
new file mode 100644
index 0000000..429b264
--- /dev/null
+++ b/electron/preload/autoUpdate.js
@@ -0,0 +1,73 @@
+import { autoUpdater } from "electron-updater"
+
+import {dialog, BrowserWindow} from 'electron'
+
+import log from 'electron-log'
+autoUpdater.logger = log
+autoUpdater.logger.transports.file.level = "info"
+const path = require('path')
+const isDevelopment = process.env.NODE_ENV === 'development'
+
+// 防止报错no such file or directory dev-app-update.yml
+if (isDevelopment) {
+ autoUpdater.updateConfigPath = path.join(__dirname, '../dev-app-update.yml')
+}
+export default () => {
+ let win = null
+ //设置自动下载
+ autoUpdater.autoDownload = false
+ // 检测是否有新版本
+ autoUpdater.checkForUpdates()
+ autoUpdater.on('checking-for-update', res => {
+ log.info("获取版本信息:" + res)
+ })
+ autoUpdater.on('update-not-available', res => {
+ log.info("没有可更新版本:" + res)
+ })
+ autoUpdater.on('update-available', res => {
+ dialog.showMessageBox({
+ type: 'info',
+ title: '软件更新',
+ message: '发现新版本, 确定更新?',
+ buttons: ['确定', '取消']
+ }).then(resp => {
+ if (resp.response == 0) {
+ createWindow()
+ autoUpdater.downloadUpdate()
+ }
+ })
+ })
+ async function createWindow() {
+ win = new BrowserWindow({
+ width: 300,
+ height: 300,
+ title: "七鹊",
+ frame: false,
+ transparent: true,
+ maximizable: false,
+ webPreferences: {
+ nodeIntegration: true,
+ contextIsolation: false,
+ enableRemoteModule: true
+ },
+ })
+ if (process.env.WEBPACK_DEV_SERVER_URL) {
+ await win.loadURL(process.env.WEBPACK_DEV_SERVER_URL + '#/update')
+ } else {
+ win.loadURL('app://./index.html#/update')
+ }
+ }
+ autoUpdater.on('download-progress', res => {
+ log.info("下载监听:" + res)
+ win.webContents.send('downloadProgress', res)
+ })
+
+ autoUpdater.on('update-downloaded', () => {
+ dialog.showMessageBox({
+ title: '下载完成',
+ message: '最新版本已下载完成, 退出程序进行安装'
+ }).then(() => {
+ autoUpdater.quitAndInstall()
+ })
+ })
+}
diff --git a/electron/preload/splash.ts b/electron/preload/splash.ts
index 0eddd72..1777839 100644
--- a/electron/preload/splash.ts
+++ b/electron/preload/splash.ts
@@ -90,5 +90,5 @@
window.onmessage = ev => {
ev.data.payload === 'removeLoading' && removeLoading()
}
-setTimeout(removeLoading, 4999)
+setTimeout(removeLoading, 6999)
diff --git a/imgs/1687242156020.png b/imgs/1687242156020.png
new file mode 100644
index 0000000..5a9be19
--- /dev/null
+++ b/imgs/1687242156020.png
Binary files differ
diff --git a/package.json b/package.json
index e3c5f34..fe40e94 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "sign-tool",
- "version": "2.6.3",
+ "version": "2.6.5",
"icon": "public/favicon.ico",
"main": "dist/electron/main/index.js",
"author": "",
@@ -10,6 +10,12 @@
"dev": "vite",
"build": "vite build && electron-builder"
},
+ "publish": [
+ {
+ "provider": "generic",
+ "url": "http://dhcdn.leon056.com/upgrade/icoldchain"
+ }
+ ],
"engines": {
"node": ">=14.17.0"
},
@@ -50,6 +56,7 @@
"axios": "^0.27.2",
"electron-log": "^4.4.8",
"electron-store": "^8.0.2",
+ "electron-updater": "^6.1.1",
"element-plus": "^2.2.6",
"iconv-lite": "^0.6.3",
"internet-available": "^1.0.0",
diff --git a/src/samples/node-api.ts b/src/samples/node-api.ts
index 4f129ca..2ee1b5e 100644
--- a/src/samples/node-api.ts
+++ b/src/samples/node-api.ts
@@ -36,6 +36,7 @@
})
// 主进程获取配置项完成sockte注册和httpshu
ipcRenderer.on('getConfigData',(_event,...args)=>{
+ console.log('----------------')
console.log("config.json",...args)
if(args!==null){
if(args[0]===undefined){
@@ -44,13 +45,8 @@
else if(args.length>0&&args[0].clientCode.length>0){
console.log('配置文件读取')
clientCode=args[0].clientCode
- // 建立sockte 通讯
- deviceList=args[0].deviceList
// 存放conging到仓库
confingInfoStore().setconfingInfo(args[0])
- // connect()
- // creatorClient(args[0])
-
}
}
diff --git a/src/samples/sockteStomp.ts b/src/samples/sockteStomp.ts
index d85e949..17ae283 100644
--- a/src/samples/sockteStomp.ts
+++ b/src/samples/sockteStomp.ts
@@ -1,6 +1,5 @@
import Stomp from 'stompjs'
import os from 'os'
-import { ipcRenderer } from 'electron'
let stompClient: Stomp.Client | null=null
import { confingInfoStore } from '@/stores/StoresConfing'
@@ -170,7 +169,7 @@
// 创建客户端链接
const creatorClient=(configObj:any)=>{
config=configObj
- devices=configObj.deviceList
+ // devices=configObj.deviceList
clientCode=configObj.clientCode
console.log(devices,'设备列表','chong')
const socket = new WebSocket('ws://hemobs.icoldchain.cn/broadcast')
diff --git a/src/stores/StoresConfing.ts b/src/stores/StoresConfing.ts
index 5edd275..ce9264c 100644
--- a/src/stores/StoresConfing.ts
+++ b/src/stores/StoresConfing.ts
@@ -9,6 +9,7 @@
face_score:0.55,
timeJg:10000,
base_api:"",
+ face_push:3,
})
/**
diff --git a/src/utils/axios.ts b/src/utils/axios.ts
index 9d80d04..b80a459 100644
--- a/src/utils/axios.ts
+++ b/src/utils/axios.ts
@@ -1,14 +1,16 @@
import axios, {AxiosError, AxiosResponse} from 'axios'
import { Session } from '@/utils/storage'
import { ElMessage } from 'element-plus'
-
import { confingInfoStore } from '@/stores/StoresConfing'
-
// const BASE_URL = 'https://hemobs.icoldchain.cn'
-const BASE_URL = confingInfoStore().confingInfo.base_api
+let BASE_URL = 'https://hemobs.icoldchain.cn'
const TIME_OUT = 10 * 1000
+setTimeout(()=>{
+ console.log('重新赋值api',confingInfoStore().confingInfo)
+ BASE_URL=confingInfoStore().confingInfo.base_api
+},10000)
/**
* 创建axios实例
*/
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index fc46c7f..889188e 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -141,7 +141,7 @@
</div>
<div style="height: 75%;">
<div style="background: rgba(243, 247, 243, 0.3); height: 100%; width: 100%; font-size: 1.3rem; font-weight: 800; color: #FFFFFF;">
- <div class="textjuzhong" style="height: 25%; width: 100%;">干体重 {{patientInfo.preWeight}} kg</div>
+ <div class="textjuzhong" style="height: 25%; width: 100%;">干体重 {{patientInfo.pureWeight}} kg</div>
<div class="textjuzhong" style="height: 25%; width: 100%;">透析器 {{patientInfo.txq}}</div>
<div class="textjuzhong" style="height: 25%; width: 100%;">治疗模式 {{patientInfo.medMethod}}</div>
<div class="textjuzhong" style="height: 25%; width: 100%;">灌流器 {{patientInfo.glq}}</div>
@@ -183,7 +183,6 @@
<div class="footer" style="text-align: right;">
<div class="fanhuikey" v-if="!dialogVisible" @click="fuxuan">
返回
- <!-- <el-button type="primary" :icon="RefreshRight" circle /> -->
</div>
</div>
</div>
@@ -201,12 +200,11 @@
import os from "os"
import Speech from 'speak-tts'
import { reactive,computed, toRefs, onMounted, watch, ref } from "vue"
-import { RefreshRight } from '@element-plus/icons-vue'
import { sendPationCodeApi } from '../../samples/httpApi'
import { formatDate } from '@/utils/formatTime'
import { confingInfoStore } from '@/stores/StoresConfing'
import {base64toFile} from '@/samples/faceApi'
-import { ElMessage } from 'element-plus'
+import { ElLoading, ElMessage } from 'element-plus'
let trackerTask: any = null;
// 标识用的画布
const myCanvas = ref<HTMLCanvasElement | null>(null);
@@ -239,9 +237,9 @@
base64toFile(imgSrc)
}
setTimeout(() => {
- console.log('监测到人脸后3s')
+ console.log(configData.value.face_push+'秒跑一次人脸识别')
trackerTask.run();
- }, 3000);
+ }, configData.value.face_push*1000);
// @ts-ignore
if (typeof window.stream === "object") {
myVideo.srcObject = null;
@@ -335,6 +333,7 @@
}
else {
clearInterval(timer)
+ clockNum.value = patientInfoStore().viewNumber
patientInfoStore().setpatientInfo({
id: 0,
code: '',
@@ -354,6 +353,13 @@
})
sockteStore().setxyjSockte({
type: '血压计',
+ deviceName: '',
+ result: '',
+ resultTime: '',
+ state: 2
+ })
+ sockteStore().setfaceSockte({
+ type: '人脸识别',
deviceName: '',
result: '',
resultTime: '',
@@ -672,7 +678,7 @@
onMounted(() => {
console.log('页面初始化', os.hostname())
setTimeout(()=>{
- console.log('3秒后执行')
+ console.log('5秒后执行')
console.log('打印设置文件')
console.log(configData.value)
// 是否开启脸识别
@@ -703,7 +709,7 @@
speech.value?.init().then(() => {
console.log('语音初始化成功')
})
- },3000)
+ },8000)
})
--
Gitblit v1.8.0