electron 文件提交

main
xiangcongshuai 4 days ago
parent f375cb8868
commit 4f49d0b387

@ -0,0 +1,53 @@
const { app, BrowserWindow } = require("electron");
const path = require("path");
const http = require("http");
const httpProxy = require("http-proxy"); // 需要安装npm install http-proxy
// 创建代理服务器
const proxyServer = httpProxy.createProxyServer({});
// 定义目标服务
const proxyTargets = {
"/live-digital-avatar-manage": "http://192.168.10.25:8080/live-digital-avatar-manage",
"/asr": "http://192.168.10.138:8090",
"/tts": "http://192.168.10.113:9880"
};
// 创建本地 HTTP 服务器
const server = http.createServer((req, res) => {
// 根据请求路径匹配目标服务
for (const pathPrefix in proxyTargets) {
if (req.url.startsWith(pathPrefix)) {
const target = proxyTargets[pathPrefix];
// 重写路径(移除前缀)
req.url = req.url.replace(pathPrefix, "");
// 转发请求
proxyServer.web(req, res, { target });
return;
}
}
res.statusCode = 404;
res.end("Not Found");
});
// 启动服务器
server.listen(3000, () => {
console.log("Proxy server running on port 3000");
});
function createWindow() {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, "preload.js"), // 使用计算后的 __dirname
nodeIntegration: true,
contextIsolation: false
}
});
// 加载应用
win.loadFile("dist/index.html");
}
app.whenReady().then(createWindow);

@ -0,0 +1,6 @@
import { contextBridge } from "electron";
// 安全地暴露 API 给渲染进程
contextBridge.exposeInMainWorld("electronAPI", {
// 可以在这里添加需要暴露的 API
});

69
package-lock.json generated

@ -4029,6 +4029,12 @@
"@iconify/types": "*" "@iconify/types": "*"
} }
}, },
"node_modules/@iconify/types": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz",
"integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
"dev": true
},
"node_modules/@iconify/vue": { "node_modules/@iconify/vue": {
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmmirror.com/@iconify/vue/-/vue-4.3.0.tgz", "resolved": "https://registry.npmmirror.com/@iconify/vue/-/vue-4.3.0.tgz",
@ -4044,12 +4050,6 @@
"vue": ">=3" "vue": ">=3"
} }
}, },
"node_modules/@iconify/vue/node_modules/@iconify/types": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz",
"integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
"dev": true
},
"node_modules/@isaacs/balanced-match": { "node_modules/@isaacs/balanced-match": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmmirror.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", "resolved": "https://registry.npmmirror.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
@ -4154,12 +4154,6 @@
"node": ">=18.12.0" "node": ">=18.12.0"
} }
}, },
"node_modules/@nuxt/kit/node_modules/@types/estree": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz",
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"optional": true
},
"node_modules/@nuxt/kit/node_modules/c12": { "node_modules/@nuxt/kit/node_modules/c12": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmmirror.com/c12/-/c12-3.1.0.tgz", "resolved": "https://registry.npmmirror.com/c12/-/c12-3.1.0.tgz",
@ -5929,18 +5923,42 @@
"@types/estree": "*" "@types/estree": "*"
} }
}, },
"node_modules/@types/estree": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz",
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"devOptional": true
},
"node_modules/@types/http-cache-semantics": {
"version": "4.0.4",
"resolved": "https://registry.npmmirror.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
"integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
"dev": true
},
"node_modules/@types/js-cookie": { "node_modules/@types/js-cookie": {
"version": "3.0.6", "version": "3.0.6",
"resolved": "https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-3.0.6.tgz", "resolved": "https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-3.0.6.tgz",
"integrity": "sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==", "integrity": "sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==",
"dev": true "dev": true
}, },
"node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true
},
"node_modules/@types/mockjs": { "node_modules/@types/mockjs": {
"version": "1.0.10", "version": "1.0.10",
"resolved": "https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.10.tgz", "resolved": "https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.10.tgz",
"integrity": "sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==", "integrity": "sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==",
"dev": true "dev": true
}, },
"node_modules/@types/ms": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/@types/ms/-/ms-2.1.0.tgz",
"integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
"dev": true
},
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.19.9", "version": "20.19.9",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-20.19.9.tgz", "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.19.9.tgz",
@ -6330,12 +6348,6 @@
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
} }
}, },
"node_modules/@typescript-eslint/utils/node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true
},
"node_modules/@typescript-eslint/utils/node_modules/@types/semver": { "node_modules/@typescript-eslint/utils/node_modules/@types/semver": {
"version": "7.7.0", "version": "7.7.0",
"resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.7.0.tgz", "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.7.0.tgz",
@ -21184,13 +21196,6 @@
"url": "https://opencollective.com/webpack" "url": "https://opencollective.com/webpack"
} }
}, },
"node_modules/schema-utils/node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true,
"peer": true
},
"node_modules/schema-utils/node_modules/ajv": { "node_modules/schema-utils/node_modules/ajv": {
"version": "8.17.1", "version": "8.17.1",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz", "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz",
@ -24279,20 +24284,6 @@
"node": ">=10.13.0" "node": ">=10.13.0"
} }
}, },
"node_modules/webpack/node_modules/@types/estree": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz",
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"dev": true,
"peer": true
},
"node_modules/webpack/node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true,
"peer": true
},
"node_modules/webpack/node_modules/eslint-scope": { "node_modules/webpack/node_modules/eslint-scope": {
"version": "5.1.1", "version": "5.1.1",
"resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",

@ -53,6 +53,28 @@ export default [
} }
] ]
}, },
{
path: "/AiLive",
redirect: "/AiLive",
meta: {
title: "AI直播",
rank: 4
},
children: [
{
path: "/AiLive",
name: "AiLive",
component: () => import("@/views/AiLive/index.vue"),
meta: {
title: "数字人",
showLink: true,
showParent: true,
roles: ["admin", "common"]
},
children: []
}
]
},
{ {
path: "/redirect", path: "/redirect",
component: Layout, component: Layout,

@ -0,0 +1,9 @@
<script setup lang="ts">
import { useRouter } from "vue-router";
</script>
<template>
<div class="AiLive">
<div>1111</div>
</div>
</template>
Loading…
Cancel
Save