设备管理

This commit is contained in:
2025-10-17 16:48:37 +08:00
parent de9815e154
commit 0ef9069cc5
11 changed files with 126 additions and 23 deletions

Binary file not shown.

View File

@ -9,6 +9,7 @@ import dayjs from 'dayjs'
import os from "os";
import { GetHomeDir } from './config'
import { start, getServer } from "./app";
const http = require("http");
const yaml = require("js-yaml");
@ -208,7 +209,6 @@ function createWindow(): void {
if (!files.canceled) {
path = files.filePath.replace(/\\/g, "/");
function callBack(key) {
console.log("下载完成");
event.sender.send("saveNetFileRes", key);
}
function downloadFile(url, path) {
@ -226,8 +226,7 @@ function createWindow(): void {
}
}
);*/
http
.get(url, (response) => {
http.get(url, (response) => {
let contentLength = parseInt(
response.headers["content-length"]
);

Binary file not shown.

Binary file not shown.

View File

@ -36,4 +36,13 @@ export const deviceApi = {
url: `/device/import/template`
})
},
uploadSingle: async (data: any) => {
return await request.post({
url: `/device/import`,
data,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
},
}

View File

@ -21,7 +21,11 @@
</template>
<span>下载模板</span>
</el-button>
<el-button color="#004b4b" style="border: 1px solid rgba(0, 255, 255, 0.5)">
<el-button
color="#004b4b"
style="border: 1px solid rgba(0, 255, 255, 0.5)"
@click="attachUpload"
>
<template #icon>
<svg-icon name="pitchImport" />
</template>
@ -33,13 +37,14 @@
placeholder="请输入设备名称进行搜索"
class="input-with-select"
:suffix-icon="Search"
@input="getTableList()"
>
</el-input>
</div>
<div class="nav_table">
<el-table :data="tableData" height="40vh" style="width: 100%">
<el-table-column fixed prop="cameraName" label="设备名称" width="150" />
<el-table-column prop="cameraName" label="设备名称" width="150" />
<el-table-column prop="deviceType" label="设备类型" width="120">
<template #default="scope">
<span class="deviceType"></span>
@ -120,7 +125,11 @@ var statusTrans = (id) => {
}
const getTableList = async () => {
const res = await deviceApi.deviceList(pages)
let params = {
...pages,
cameraName: input3.value
}
const res = await deviceApi.deviceList(params)
// if (res.code === 50) {
// ElMessage.warning(res.message)
// return
@ -211,8 +220,29 @@ var delFun = (row) => {
})
.catch(() => {})
}
const downloadTemp = () => {
let serve = localStorage.getItem('ip')
const attachUpload = async () => {
let option = {
properties: ['openFile'],
filters: [
{
name: '模板', //、底图
extensions: ['xlsx']
}
]
}
$sendElectronChanel('open-directory-dialog', option)
$recvElectronChanel('selectedItem', (e, path) => {
if (path.length) {
const params = new URLSearchParams()
params.append('filePath', path[0])
deviceApi.uploadSingle(params).then((res) => {
console.log(res, 'res')
ElMessage.success('导入成功')
})
}
})
}
const downloadTemp = async () => {
let p = 'xlsx'
if (process.platform == 'linux') {
p = 'et'
@ -220,7 +250,10 @@ const downloadTemp = () => {
p = 'xlsx'
}
let url = serve + '/static/excel/%E8%AE%BE%E5%A4%87%E6%A8%A1%E6%9D%BF.' + p
const { ipcRenderer } = require('electron')
let availablePort = await ipcRenderer.invoke('get-available-port')
let url = `http://localhost:${availablePort}/excel/imporTemp.` + p
$sendElectronChanel('saveNetFile', {
title: '保存文件',
filename: '模板',
@ -229,6 +262,7 @@ const downloadTemp = () => {
})
$recvElectronChanel('saveNetFileRes', (e, key) => {
console.log(key, 'key')
ElMessage({
message: '下载结束',
type: 'success'
@ -237,8 +271,6 @@ const downloadTemp = () => {
console.log(res)
})
})
deviceApi.downloadTemp().then((res) => {})
}
</script>
<style lang="scss">

View File

@ -1085,6 +1085,11 @@ acorn-jsx@^5.3.2:
resolved "https://registry.npmmirror.com/acorn/-/acorn-8.15.0.tgz"
integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
adler-32@~1.3.0:
version "1.3.1"
resolved "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz"
integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==
agent-base@^6.0.2:
version "6.0.2"
resolved "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz"
@ -1678,6 +1683,14 @@ caniuse-lite@^1.0.30001726:
resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz"
integrity sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==
cfb@~1.2.1:
version "1.2.2"
resolved "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz"
integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==
dependencies:
adler-32 "~1.3.0"
crc-32 "~1.2.0"
chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz"
@ -1796,6 +1809,11 @@ clone@^2.1.1:
resolved "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz"
integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==
codepage@~1.15.0:
version "1.15.0"
resolved "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz"
integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==
collection-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz"
@ -1943,7 +1961,7 @@ cors@^2.8.5:
object-assign "^4"
vary "^1"
crc-32@^1.2.0:
crc-32@^1.2.0, crc-32@~1.2.0, crc-32@~1.2.1:
version "1.2.2"
resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz"
integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
@ -3000,6 +3018,11 @@ file-entry-cache@^8.0.0:
dependencies:
flat-cache "^4.0.0"
file-saver@^2.0.5:
version "2.0.5"
resolved "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz"
integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
filelist@^1.0.4:
version "1.0.4"
resolved "https://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz"
@ -3098,6 +3121,11 @@ forwarded@0.2.0:
resolved "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz"
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
frac@~1.1.2:
version "1.1.2"
resolved "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz"
integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==
fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz"
@ -3658,6 +3686,11 @@ inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2,
resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
ini@^5.0.0:
version "5.0.0"
resolved "https://registry.npmmirror.com/ini/-/ini-5.0.0.tgz"
integrity sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==
internal-slot@^1.1.0:
version "1.1.0"
resolved "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.1.0.tgz"
@ -5882,6 +5915,13 @@ sprintf-js@^1.1.2, sprintf-js@^1.1.3:
resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz"
integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
ssf@~0.11.2:
version "0.11.2"
resolved "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz"
integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==
dependencies:
frac "~1.1.2"
ssri@^9.0.0:
version "9.0.1"
resolved "https://registry.npmmirror.com/ssri/-/ssri-9.0.1.tgz"
@ -6717,11 +6757,21 @@ wide-align@^1.1.5:
dependencies:
string-width "^1.0.2 || 2 || 3 || 4"
wmf@~1.0.1:
version "1.0.2"
resolved "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz"
integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==
word-wrap@^1.2.5:
version "1.2.5"
resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz"
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
word@~0.3.0:
version "0.3.0"
resolved "https://registry.npmmirror.com/word/-/word-0.3.0.tgz"
integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version "7.0.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
@ -6754,6 +6804,19 @@ wrappy@1:
resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
xlsx@^0.18.5:
version "0.18.5"
resolved "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz"
integrity sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==
dependencies:
adler-32 "~1.3.0"
cfb "~1.2.1"
codepage "~1.15.0"
crc-32 "~1.2.1"
ssf "~0.11.2"
wmf "~1.0.1"
word "~0.3.0"
xml-name-validator@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz"