共享文件开始
This commit is contained in:
parent
6695fe7ab6
commit
fca49f35cb
|
|
@ -40,7 +40,7 @@
|
|||
"@vitejs/plugin-react": "^1.0.7",
|
||||
"concurrently": "^7.6.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"electron": "^31.1.0",
|
||||
"electron": "^23.3.13",
|
||||
"typescript": "^4.5.4",
|
||||
"vite": "^2.8.0"
|
||||
}
|
||||
|
|
@ -647,6 +647,16 @@
|
|||
"resolved": "https://registry.npmmirror.com/@electron-forge/cli/-/cli-7.4.0.tgz",
|
||||
"integrity": "sha512-a+zZv3ja/IxkJzNyx4sOHSZv6DPV85S0PEVF6pcRjUpbDL5r+DxjRFsNc0Nq4UIWyFm1nw7RWoPdd9uDst4Tvg==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "https://github.com/sponsors/malept"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/subscription/pkg/npm-.electron-forge-cli?utm_medium=referral&utm_source=npm_fund"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@electron-forge/core": "7.4.0",
|
||||
"@electron-forge/shared-types": "7.4.0",
|
||||
|
|
@ -1112,9 +1122,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@electron/osx-sign": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/@electron/osx-sign/-/osx-sign-1.3.0.tgz",
|
||||
"integrity": "sha512-TEXhxlYSDRr9JWK5nWdOv5MtuUdaZ412uxIIEQ0hLt80o0HYWtQJBlW5QmrQDMtebzATaOjKG9UfCzLyA90zWQ==",
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/@electron/osx-sign/-/osx-sign-1.3.1.tgz",
|
||||
"integrity": "sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"compare-version": "^0.1.2",
|
||||
|
|
@ -2948,9 +2958,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@remix-run/router": {
|
||||
"version": "1.17.0",
|
||||
"resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.17.0.tgz",
|
||||
"integrity": "sha512-2D6XaHEVvkCn682XBnipbJjgZUU7xjLtA4dGJRBVUKpEaDYOZMENZoZjAOSb7qirxt5RupjzZxz4fK2FO+EFPw==",
|
||||
"version": "1.17.1",
|
||||
"resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.17.1.tgz",
|
||||
"integrity": "sha512-mCOMec4BKd6BRGBZeSnGiIgwsbLGp3yhVqAD8H+PxiRNEHgDpZb8J1TnrSDlg97t0ySKMQJTHCWBCmBpSmkF6Q==",
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
|
|
@ -3145,9 +3155,9 @@
|
|||
"optional": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.14.9",
|
||||
"resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.9.tgz",
|
||||
"integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==",
|
||||
"version": "20.14.10",
|
||||
"resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.10.tgz",
|
||||
"integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==",
|
||||
"dependencies": {
|
||||
"undici-types": "~5.26.4"
|
||||
}
|
||||
|
|
@ -3418,11 +3428,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/antd": {
|
||||
"version": "5.19.0",
|
||||
"resolved": "https://registry.npmmirror.com/antd/-/antd-5.19.0.tgz",
|
||||
"integrity": "sha512-+w+3zJUKqwU1GSXUxnKhzSGuWUqwwpHQm/voJr2X0JBdYxr9gkLhKR0HBhQjVSSJzSb86rB48fUbByHKrN05Xg==",
|
||||
"version": "5.19.1",
|
||||
"resolved": "https://registry.npmmirror.com/antd/-/antd-5.19.1.tgz",
|
||||
"integrity": "sha512-ogGEUPaamSZ2HFGvlyLBNfxZ0c4uX5aqEIwMtmqRTPNjcLY/k+qdMmdWrMMiY1CDJ3j1in5wjzQTvREG+do65g==",
|
||||
"dependencies": {
|
||||
"@ant-design/colors": "^7.0.2",
|
||||
"@ant-design/colors": "^7.1.0",
|
||||
"@ant-design/cssinjs": "^1.21.0",
|
||||
"@ant-design/icons": "^5.3.7",
|
||||
"@ant-design/react-slick": "~1.1.2",
|
||||
|
|
@ -3451,7 +3461,7 @@
|
|||
"rc-motion": "^2.9.2",
|
||||
"rc-notification": "~5.6.0",
|
||||
"rc-pagination": "~4.2.0",
|
||||
"rc-picker": "~4.6.6",
|
||||
"rc-picker": "~4.6.7",
|
||||
"rc-progress": "~4.0.0",
|
||||
"rc-rate": "~2.13.0",
|
||||
"rc-resize-observer": "^1.4.0",
|
||||
|
|
@ -5652,14 +5662,14 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/electron": {
|
||||
"version": "31.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/electron/-/electron-31.1.0.tgz",
|
||||
"integrity": "sha512-TBOwqLxSxnx6+pH6GMri7R3JPH2AkuGJHfWZS0p1HsmN+Qr1T9b0IRJnnehSd/3NZAmAre4ft9Ljec7zjyKFJA==",
|
||||
"version": "23.3.13",
|
||||
"resolved": "https://registry.npmmirror.com/electron/-/electron-23.3.13.tgz",
|
||||
"integrity": "sha512-BaXtHEb+KYKLouUXlUVDa/lj9pj4F5kiE0kwFdJV84Y2EU7euIDgPthfKtchhr5MVHmjtavRMIV/zAwEiSQ9rQ==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@electron/get": "^2.0.0",
|
||||
"@types/node": "^20.9.0",
|
||||
"@types/node": "^16.11.26",
|
||||
"extract-zip": "^2.0.1"
|
||||
},
|
||||
"bin": {
|
||||
|
|
@ -6116,9 +6126,9 @@
|
|||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.816",
|
||||
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz",
|
||||
"integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==",
|
||||
"version": "1.4.819",
|
||||
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.819.tgz",
|
||||
"integrity": "sha512-8RwI6gKUokbHWcN3iRij/qpvf/wCbIVY5slODi85werwqUQwpFXM+dvUBND93Qh7SB0pW3Hlq3/wZsqQ3M9Jaw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/electron-winstaller": {
|
||||
|
|
@ -6198,6 +6208,12 @@
|
|||
"global-agent": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/electron/node_modules/@types/node": {
|
||||
"version": "16.18.101",
|
||||
"resolved": "https://registry.npmmirror.com/@types/node/-/node-16.18.101.tgz",
|
||||
"integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/electron/node_modules/fs-extra": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz",
|
||||
|
|
@ -11184,9 +11200,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/rc-picker": {
|
||||
"version": "4.6.6",
|
||||
"resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.6.6.tgz",
|
||||
"integrity": "sha512-sEWARCNlodubP7/IM6nXHDDIuKZ3gYd5CpS2cYcNORa2telX3nAfllqnGSGjGEFvdtyW+IqGAVatLOmFT0lKYg==",
|
||||
"version": "4.6.7",
|
||||
"resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.6.7.tgz",
|
||||
"integrity": "sha512-ZntxLH863jdNPZq2i6e2+1iXpRfYKHjNfUGgoObA1YExuWAnTCHpZzOkBuS43GnVcnp2MPDp78pH9OZJFd2hLw==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.24.7",
|
||||
"@rc-component/trigger": "^2.0.0",
|
||||
|
|
@ -11585,11 +11601,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/react-router": {
|
||||
"version": "6.24.0",
|
||||
"resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.24.0.tgz",
|
||||
"integrity": "sha512-sQrgJ5bXk7vbcC4BxQxeNa5UmboFm35we1AFK0VvQaz9g0LzxEIuLOhHIoZ8rnu9BO21ishGeL9no1WB76W/eg==",
|
||||
"version": "6.24.1",
|
||||
"resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.24.1.tgz",
|
||||
"integrity": "sha512-PTXFXGK2pyXpHzVo3rR9H7ip4lSPZZc0bHG5CARmj65fTT6qG7sTngmb6lcYu1gf3y/8KxORoy9yn59pGpCnpg==",
|
||||
"dependencies": {
|
||||
"@remix-run/router": "1.17.0"
|
||||
"@remix-run/router": "1.17.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
|
|
@ -11599,12 +11615,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/react-router-dom": {
|
||||
"version": "6.24.0",
|
||||
"resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.24.0.tgz",
|
||||
"integrity": "sha512-960sKuau6/yEwS8e+NVEidYQb1hNjAYM327gjEyXlc6r3Skf2vtwuJ2l7lssdegD2YjoKG5l8MsVyeTDlVeY8g==",
|
||||
"version": "6.24.1",
|
||||
"resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.24.1.tgz",
|
||||
"integrity": "sha512-U19KtXqooqw967Vw0Qcn5cOvrX5Ejo9ORmOtJMzYWtCT4/WOfFLIZGGsVLxcd9UkBO0mSTZtXqhZBsWlHr7+Sg==",
|
||||
"dependencies": {
|
||||
"@remix-run/router": "1.17.0",
|
||||
"react-router": "6.24.0"
|
||||
"@remix-run/router": "1.17.1",
|
||||
"react-router": "6.24.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
|
|
@ -15420,9 +15436,9 @@
|
|||
}
|
||||
},
|
||||
"@electron/osx-sign": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/@electron/osx-sign/-/osx-sign-1.3.0.tgz",
|
||||
"integrity": "sha512-TEXhxlYSDRr9JWK5nWdOv5MtuUdaZ412uxIIEQ0hLt80o0HYWtQJBlW5QmrQDMtebzATaOjKG9UfCzLyA90zWQ==",
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/@electron/osx-sign/-/osx-sign-1.3.1.tgz",
|
||||
"integrity": "sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"compare-version": "^0.1.2",
|
||||
|
|
@ -16475,9 +16491,9 @@
|
|||
}
|
||||
},
|
||||
"@remix-run/router": {
|
||||
"version": "1.17.0",
|
||||
"resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.17.0.tgz",
|
||||
"integrity": "sha512-2D6XaHEVvkCn682XBnipbJjgZUU7xjLtA4dGJRBVUKpEaDYOZMENZoZjAOSb7qirxt5RupjzZxz4fK2FO+EFPw=="
|
||||
"version": "1.17.1",
|
||||
"resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.17.1.tgz",
|
||||
"integrity": "sha512-mCOMec4BKd6BRGBZeSnGiIgwsbLGp3yhVqAD8H+PxiRNEHgDpZb8J1TnrSDlg97t0ySKMQJTHCWBCmBpSmkF6Q=="
|
||||
},
|
||||
"@rollup/pluginutils": {
|
||||
"version": "4.2.1",
|
||||
|
|
@ -16644,9 +16660,9 @@
|
|||
"optional": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "20.14.9",
|
||||
"resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.9.tgz",
|
||||
"integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==",
|
||||
"version": "20.14.10",
|
||||
"resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.10.tgz",
|
||||
"integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==",
|
||||
"requires": {
|
||||
"undici-types": "~5.26.4"
|
||||
}
|
||||
|
|
@ -16864,11 +16880,11 @@
|
|||
"integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw=="
|
||||
},
|
||||
"antd": {
|
||||
"version": "5.19.0",
|
||||
"resolved": "https://registry.npmmirror.com/antd/-/antd-5.19.0.tgz",
|
||||
"integrity": "sha512-+w+3zJUKqwU1GSXUxnKhzSGuWUqwwpHQm/voJr2X0JBdYxr9gkLhKR0HBhQjVSSJzSb86rB48fUbByHKrN05Xg==",
|
||||
"version": "5.19.1",
|
||||
"resolved": "https://registry.npmmirror.com/antd/-/antd-5.19.1.tgz",
|
||||
"integrity": "sha512-ogGEUPaamSZ2HFGvlyLBNfxZ0c4uX5aqEIwMtmqRTPNjcLY/k+qdMmdWrMMiY1CDJ3j1in5wjzQTvREG+do65g==",
|
||||
"requires": {
|
||||
"@ant-design/colors": "^7.0.2",
|
||||
"@ant-design/colors": "^7.1.0",
|
||||
"@ant-design/cssinjs": "^1.21.0",
|
||||
"@ant-design/icons": "^5.3.7",
|
||||
"@ant-design/react-slick": "~1.1.2",
|
||||
|
|
@ -16897,7 +16913,7 @@
|
|||
"rc-motion": "^2.9.2",
|
||||
"rc-notification": "~5.6.0",
|
||||
"rc-pagination": "~4.2.0",
|
||||
"rc-picker": "~4.6.6",
|
||||
"rc-picker": "~4.6.7",
|
||||
"rc-progress": "~4.0.0",
|
||||
"rc-rate": "~2.13.0",
|
||||
"rc-resize-observer": "^1.4.0",
|
||||
|
|
@ -18560,13 +18576,13 @@
|
|||
"dev": true
|
||||
},
|
||||
"electron": {
|
||||
"version": "31.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/electron/-/electron-31.1.0.tgz",
|
||||
"integrity": "sha512-TBOwqLxSxnx6+pH6GMri7R3JPH2AkuGJHfWZS0p1HsmN+Qr1T9b0IRJnnehSd/3NZAmAre4ft9Ljec7zjyKFJA==",
|
||||
"version": "23.3.13",
|
||||
"resolved": "https://registry.npmmirror.com/electron/-/electron-23.3.13.tgz",
|
||||
"integrity": "sha512-BaXtHEb+KYKLouUXlUVDa/lj9pj4F5kiE0kwFdJV84Y2EU7euIDgPthfKtchhr5MVHmjtavRMIV/zAwEiSQ9rQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@electron/get": "^2.0.0",
|
||||
"@types/node": "^20.9.0",
|
||||
"@types/node": "^16.11.26",
|
||||
"extract-zip": "^2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
|
|
@ -18586,6 +18602,12 @@
|
|||
"sumchecker": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "16.18.101",
|
||||
"resolved": "https://registry.npmmirror.com/@types/node/-/node-16.18.101.tgz",
|
||||
"integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==",
|
||||
"dev": true
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz",
|
||||
|
|
@ -18951,9 +18973,9 @@
|
|||
}
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.4.816",
|
||||
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz",
|
||||
"integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==",
|
||||
"version": "1.4.819",
|
||||
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.819.tgz",
|
||||
"integrity": "sha512-8RwI6gKUokbHWcN3iRij/qpvf/wCbIVY5slODi85werwqUQwpFXM+dvUBND93Qh7SB0pW3Hlq3/wZsqQ3M9Jaw==",
|
||||
"dev": true
|
||||
},
|
||||
"electron-winstaller": {
|
||||
|
|
@ -22647,9 +22669,9 @@
|
|||
}
|
||||
},
|
||||
"rc-picker": {
|
||||
"version": "4.6.6",
|
||||
"resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.6.6.tgz",
|
||||
"integrity": "sha512-sEWARCNlodubP7/IM6nXHDDIuKZ3gYd5CpS2cYcNORa2telX3nAfllqnGSGjGEFvdtyW+IqGAVatLOmFT0lKYg==",
|
||||
"version": "4.6.7",
|
||||
"resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.6.7.tgz",
|
||||
"integrity": "sha512-ZntxLH863jdNPZq2i6e2+1iXpRfYKHjNfUGgoObA1YExuWAnTCHpZzOkBuS43GnVcnp2MPDp78pH9OZJFd2hLw==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.24.7",
|
||||
"@rc-component/trigger": "^2.0.0",
|
||||
|
|
@ -22898,20 +22920,20 @@
|
|||
}
|
||||
},
|
||||
"react-router": {
|
||||
"version": "6.24.0",
|
||||
"resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.24.0.tgz",
|
||||
"integrity": "sha512-sQrgJ5bXk7vbcC4BxQxeNa5UmboFm35we1AFK0VvQaz9g0LzxEIuLOhHIoZ8rnu9BO21ishGeL9no1WB76W/eg==",
|
||||
"version": "6.24.1",
|
||||
"resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.24.1.tgz",
|
||||
"integrity": "sha512-PTXFXGK2pyXpHzVo3rR9H7ip4lSPZZc0bHG5CARmj65fTT6qG7sTngmb6lcYu1gf3y/8KxORoy9yn59pGpCnpg==",
|
||||
"requires": {
|
||||
"@remix-run/router": "1.17.0"
|
||||
"@remix-run/router": "1.17.1"
|
||||
}
|
||||
},
|
||||
"react-router-dom": {
|
||||
"version": "6.24.0",
|
||||
"resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.24.0.tgz",
|
||||
"integrity": "sha512-960sKuau6/yEwS8e+NVEidYQb1hNjAYM327gjEyXlc6r3Skf2vtwuJ2l7lssdegD2YjoKG5l8MsVyeTDlVeY8g==",
|
||||
"version": "6.24.1",
|
||||
"resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.24.1.tgz",
|
||||
"integrity": "sha512-U19KtXqooqw967Vw0Qcn5cOvrX5Ejo9ORmOtJMzYWtCT4/WOfFLIZGGsVLxcd9UkBO0mSTZtXqhZBsWlHr7+Sg==",
|
||||
"requires": {
|
||||
"@remix-run/router": "1.17.0",
|
||||
"react-router": "6.24.0"
|
||||
"@remix-run/router": "1.17.1",
|
||||
"react-router": "6.24.1"
|
||||
}
|
||||
},
|
||||
"react-style-singleton": {
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
"@vitejs/plugin-react": "^1.0.7",
|
||||
"concurrently": "^7.6.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"electron": "^31.1.0",
|
||||
"electron": "^23.3.13",
|
||||
"typescript": "^4.5.4",
|
||||
"vite": "^2.8.0"
|
||||
},
|
||||
|
|
|
|||
35
preload.js
35
preload.js
|
|
@ -11,12 +11,18 @@ const {
|
|||
MediaRecorderContainerFormat,
|
||||
MediaRecorderStreamType
|
||||
} = require("agora-electron-sdk");
|
||||
const agoraAonfig = require('./src/utils/package/agoraConfig');
|
||||
const { message } = require('antd');
|
||||
const rtcEngine = createAgoraRtcEngine();
|
||||
const option = {
|
||||
appId: 'dcfc466a6ecb4a1f972630065dfb1e75',
|
||||
token: '',
|
||||
channelId: '',
|
||||
userid: '',
|
||||
}
|
||||
rtcEngine.initialize({
|
||||
appId: agoraAonfig.appid,
|
||||
appId: option.appId,
|
||||
});
|
||||
|
||||
let videoID = '';
|
||||
let iMediaRecorder = '';
|
||||
|
||||
|
|
@ -33,8 +39,9 @@ const leaveChannel = () => {
|
|||
}
|
||||
// 离开频道
|
||||
const joinChannel = (bool) => {
|
||||
console.log(option);
|
||||
if (bool) {
|
||||
rtcEngine.joinChannel(agoraAonfig.token, agoraAonfig.channelId, 123, {
|
||||
rtcEngine.joinChannel(option.token, option.channelId, option.userid, {
|
||||
channelProfile: ChannelProfileType.ChannelProfileLiveBroadcasting, //设置频道场景为直播场景
|
||||
clientRoleType: ClientRoleType.ClientRoleBroadcaster, //用户角色 1主播 2观众
|
||||
publishMicrophoneTrack: true, //设置是否发布麦克风采集到的音频
|
||||
|
|
@ -44,7 +51,7 @@ const joinChannel = (bool) => {
|
|||
autoSubscribeVideo: true, //设置是否自动订阅所有视频流
|
||||
});
|
||||
} else {
|
||||
rtcEngine.joinChannel(agoraAonfig.token, agoraAonfig.channelId, 123, {
|
||||
rtcEngine.joinChannel(option.token, option.channelId, option.userid, {
|
||||
channelProfile: ChannelProfileType.ChannelProfileLiveBroadcasting, //设置频道场景为直播场景
|
||||
clientRoleType: ClientRoleType.ClientRoleBroadcaster, //设置用户角色为主播;如果要将用户角色设置为观众,保持默认值即可
|
||||
publishMicrophoneTrack: true, //发布麦克风采集的音频
|
||||
|
|
@ -159,29 +166,19 @@ contextBridge.exposeInMainWorld(
|
|||
}
|
||||
);
|
||||
}
|
||||
videoID = `vidoe-${123}-${agoraAonfig.channelId}`;
|
||||
joinChannel(true)
|
||||
},
|
||||
// 摄像头采集
|
||||
setCameraCapture: () => {
|
||||
rtcEngine.startCameraCapture(VideoSourceType.VideoSourceCamera, {})
|
||||
videoID = `vidoe-${123}-${agoraAonfig.channelId}`;
|
||||
joinChannel(false)
|
||||
},
|
||||
// 加入频道
|
||||
setJoinChannel: (data) => {
|
||||
// videoID = `vidoe-${data.userid}-${data.channelId}`;
|
||||
rtcEngine.joinChannelEx(agoraAonfig.token, {
|
||||
channelId: data.channelId,
|
||||
localUid: data.userid,
|
||||
}, {
|
||||
autoSubscribeAudio: true, //设置是否自动订阅所有音频流
|
||||
autoSubscribeVideo: true, //设置是否自动订阅所有视频流
|
||||
publishMicrophoneTrack: false, //设置是否发布麦克风采集到的音频
|
||||
publishCameraTrack: false, //设置是否发布摄像头采集的视频
|
||||
clientRoleType: ClientRoleType.ClientRoleAudience, //用户角色 1主播 2观众
|
||||
publishScreenTrack: true, //设置是否发布屏幕采集的视频
|
||||
});
|
||||
option.token = data.token;
|
||||
option.channelId = data.channelId;
|
||||
option.userid = Number(data.userid);
|
||||
joinChannel(false)
|
||||
},
|
||||
// 离开频道
|
||||
leaveChannel: () => {
|
||||
|
|
@ -273,7 +270,7 @@ contextBridge.exposeInMainWorld(
|
|||
// 开始录制音视频
|
||||
startRecording: () => {
|
||||
iMediaRecorder = rtcEngine.createMediaRecorder({
|
||||
channelId: agoraAonfig.channelId,
|
||||
channelId: option.channelId,
|
||||
uid: 123,
|
||||
})
|
||||
iMediaRecorder.setMediaRecorderObserver({
|
||||
|
|
|
|||
|
|
@ -116,7 +116,12 @@ const Index: React.FC = () => {
|
|||
onClick={() => {
|
||||
getRoomRtcToken(item.roomNum, (res: any) => {
|
||||
if (res) {
|
||||
navigate(`/meeting?channelId=${item.roomNum}&token=${res}`)
|
||||
navigate(`/meeting`, {
|
||||
state: {
|
||||
channelId: item.roomNum,
|
||||
token: res
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}}
|
||||
|
|
@ -246,7 +251,12 @@ const Index: React.FC = () => {
|
|||
if (bool) {
|
||||
getRoomRtcToken(joinRoomFrom, (res: any) => {
|
||||
if (res) {
|
||||
navigate(`/meeting?channelId=${joinRoomFrom}&token=${res}`)
|
||||
navigate(`/meeting`, {
|
||||
state: {
|
||||
channelId: joinRoomFrom,
|
||||
token: res
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import { Input, Button, Checkbox, message } from "antd"
|
|||
import { storage } from '@/utils'
|
||||
import { GetCheckUser, PostLogin } from '@/api/Login'
|
||||
import { md5 } from 'js-md5';
|
||||
|
||||
import { startSignalr } from '@/utils/package/signalr'
|
||||
const Login: React.FC = () => {
|
||||
const navigate = useNavigate();
|
||||
const [accountPasswordStatus, setAccountPasswordStatus] = useState<boolean>(false);
|
||||
|
|
@ -118,6 +118,7 @@ const Login: React.FC = () => {
|
|||
width: 1200,
|
||||
height: 800,
|
||||
})
|
||||
startSignalr()
|
||||
navigate('/home')
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -8,13 +8,12 @@ import 'swiper/css/navigation';
|
|||
import 'swiper/css/pagination';
|
||||
import { Button, Input, Popover, Modal, Checkbox, message, Select, Slider } from "antd";
|
||||
import { SearchOutlined } from '@ant-design/icons';
|
||||
import { useNavigate, useSearchParams } from 'react-router-dom';
|
||||
import { useLocation, useNavigate } from 'react-router-dom';
|
||||
import { thumbImageBufferToBase64 } from '@/utils/package/base64'
|
||||
import { storage } from '@/utils';
|
||||
import * as signalR from '@microsoft/signalr';
|
||||
const Meeting: React.FC = () => {
|
||||
const navigate = useNavigate();
|
||||
const [searchParams] = useSearchParams();
|
||||
const { state } = useLocation();
|
||||
const [statusList, setStatusList] = useState({
|
||||
userList: false,
|
||||
userChatList: false,
|
||||
|
|
@ -97,35 +96,12 @@ const Meeting: React.FC = () => {
|
|||
const [videoID, setVideoID] = useState('')
|
||||
|
||||
useEffect(() => {
|
||||
// const user = JSON.parse(storage.getItem('user') as string);
|
||||
// const connection = new signalR.HubConnectionBuilder().withAutomaticReconnect()
|
||||
// .withUrl("http://192.168.2.8:5192/session-manage", {
|
||||
// skipNegotiation: true,
|
||||
// transport: signalR.HttpTransportType.WebSockets,
|
||||
// accessTokenFactory: () => user.token
|
||||
// })
|
||||
// .build();
|
||||
|
||||
// connection.start()
|
||||
// .then(() => console.log('Connection started!'))
|
||||
// .catch(err => console.error('Error while establishing connection: ', err));
|
||||
|
||||
// connection.on("GetUserId", (message) => {
|
||||
// console.log(message);
|
||||
// });
|
||||
|
||||
// setTimeout(() => {
|
||||
// connection.invoke("GetUserId",'11111')
|
||||
// .catch(err => console.error(err));
|
||||
// }, 3000);
|
||||
// return () => {
|
||||
// connection.stop()
|
||||
// }
|
||||
window.electron.setJoinChannel({
|
||||
channelId: searchParams.get('channelId') as string,
|
||||
userid: searchParams.get('userid') as string,
|
||||
token: searchParams.get('token') as string,
|
||||
})
|
||||
const user = JSON.parse(storage.getItem('user') as string);
|
||||
// window.electron.setJoinChannel({
|
||||
// channelId: state.channelId,
|
||||
// userid: user.userName,
|
||||
// token: state.token,
|
||||
// })
|
||||
}, []);
|
||||
|
||||
const changeStatusList = (row: any, itemIndex: number, rowIndex: number): void => {
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
module.exports = {
|
||||
appid: "dcfc466a6ecb4a1f972630065dfb1e75",
|
||||
token: "007eJxTYOAzvBU4eaX8g2nNm16Yp0YZ6SzIVbXWteo/H1tr947n0jUFhpTktGQTM7NEs9TkJJNEwzRLcyMzYwMDM9OUtCTDVHPT9MD2tIZARobaiU4MjFAI4nMzGJqbGxkbWJgam5gxMAAA0L4e4A==",
|
||||
channelId: '17723085346',
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
import * as signalR from '@microsoft/signalr';
|
||||
import storage from './storage';
|
||||
const user = JSON.parse(storage.getItem('user') as string);
|
||||
let connection = null as any;
|
||||
export const startSignalr = () => {
|
||||
connection = new signalR.HubConnectionBuilder().withAutomaticReconnect()
|
||||
.withUrl(`${import.meta.env.VITE_BASE_URL_API}/session-manage`, {
|
||||
skipNegotiation: true,
|
||||
transport: signalR.HttpTransportType.WebSockets,
|
||||
accessTokenFactory: () => user.token
|
||||
})
|
||||
.build();
|
||||
|
||||
connection.start()
|
||||
.then(() => console.log('Connection started!'))
|
||||
.catch((err: any) => console.error('Error while establishing connection: ', err));
|
||||
}
|
||||
|
||||
export const onSignalr = (callBack: Function) => {
|
||||
connection.on("GetUserId", (message: any) => {
|
||||
callBack(message)
|
||||
});
|
||||
}
|
||||
export const onInvoke = (message: string) => {
|
||||
connection.invoke("GetUserId", message)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue