2025-06-23会议更改内容

This commit is contained in:
wangxk 2025-06-23 17:29:34 +08:00
parent 09a89fb889
commit e88750b00c
5 changed files with 100 additions and 78 deletions

View File

@ -51,7 +51,7 @@ onBeforeUnmount(() => {
}
})
const projectId = ref()
const storageKey:any = ref()
const storageKey: any = ref()
//websocket
let ws1
function setupWebSocket() {
@ -100,14 +100,12 @@ const vMove = {
const projectArr = ref([])
const projectName = ref('')
const localStorageId = ref('')
//
function getProject() {
projectList().then((res: any) => {
projectArr.value = res.data
projectId.value = projectArr.value[0].id
storageKey.value = projectArr.value[0].key
localStorageId.value = projectArr.value[0].localStorageId
projectName.value = projectArr.value[0].projectName
ws1 = new WebSocket(userStore.WebSocketUrl + '/websocket/' + 'projectId_' + projectId.value)
setupWebSocket()
@ -150,7 +148,7 @@ const filePath = ref('')
function gettreedata() {
treeloading.value = true
treeForm.value.projectId = projectId.value
let keyar = projectArr.value.find(item => item.localStorageId === localStorageId.value);
let keyar = projectArr.value.find(item => item.id == projectId.value);
storageKey.value = keyar.key
getNodesTree(treeForm.value).then((res: any) => {
treedata.value = res.data
@ -158,7 +156,12 @@ function gettreedata() {
if (treedata.value[0]) {
pathid.value = treedata.value[0].id
nodename.value = res.data[0].nodeName
filePath.value = res.data[0].path + res.data[0].nodeName + '/'
if (nodename.value == '根节点') {
filePath.value = res.data[0].path
} else {
filePath.value = res.data[0].path + nodename.value + '/'
}
nextTick(() => {
treeRef.value?.setCurrentKey(pathid.value);
});
@ -175,8 +178,12 @@ const pathid = ref()
const nodename = ref('')
function handleNodeClick(data: any, node: any) {
pathid.value = data.id
filePath.value = data.path + data.nodeName + '/'
nodename.value = data.nodeName
if (nodename.value == '根节点') {
filePath.value = data.path
} else {
filePath.value = data.path + nodename.value + '/'
}
getdata()
}
//
@ -534,7 +541,7 @@ function delfile(row: any) {
}
)
.then(() => {
deleteFilesById({ id: row.id,projectId:projectId.value }).then((res: any) => {
deleteFilesById({ id: row.id, projectId: projectId.value }).then((res: any) => {
if (res.code == 0) {
getdata()
ElMessage({
@ -569,7 +576,7 @@ function delprojectArr() {
}
)
.then(() => {
deleteFilesByIds({ ids: ids.join(','),projectId:projectId.value }).then((res: any) => {
deleteFilesByIds({ ids: ids.join(','), projectId: projectId.value }).then((res: any) => {
if (res.code == 0) {
ElMessage({
type: 'success',
@ -594,7 +601,7 @@ function xiafile(row: any) {
}
)
.then(() => {
sdLocalUrl({ id: row.id,projectId:projectId.value }).then((res: any) => {
sdLocalUrl({ id: row.id, projectId: projectId.value }).then((res: any) => {
window.open(res.data.url);
})
@ -615,8 +622,10 @@ function xiafilemony() {
)
.then(() => {
tableIdarr.value.forEach((item: any) => {
if (item.url) {
downloadFileUseIframeMode(item.url);
if (item.id) {
sdLocalUrl({ id: item.id, projectId: projectId.value }).then((res: any) => {
downloadFileUseIframeMode(res.data.url);
})
}
})
})
@ -709,7 +718,7 @@ function openPreview(row: any) {
}
function geturl(row: any, pan: any) {
sdLocalUrl({ id: row.id,projectId:projectId.value }).then((res: any) => {
sdLocalUrl({ id: row.id, projectId: projectId.value }).then((res: any) => {
if (pan) {
ViewfileUrl.value = res.data.url
isViewfile.value = true
@ -849,7 +858,7 @@ function tonstatus() {
<template #default="{ data }">
<span class="custom-tree-node">
<span class="text">{{ data.nodeName }}</span>
<span class="img_tree" v-if="nodename != '根节点'" >
<span class="img_tree" v-if="nodename != '根节点'">
<img src="@/assets/project/xiu.png" alt="" title="编辑" @click="editSubItem(data)">
<img src="@/assets/project/del.png" alt="" title="删除" @click="delSubItem(data)">
<img v-if="data.nodeType == '01'" src="@/assets/project/jia.png" alt="" title="添加课题"
@ -890,16 +899,16 @@ function tonstatus() {
</div>
<div>
<!-- :disabled="pathid.value" -->
<el-button type="primary" :disabled="!pathid|| nodename == '根节点' " @click="openFile">上传</el-button>
<el-button type="primary" @click="delprojectArr()" :disabled="tableIdarr.length == 0 || nodename == '根节点' ">删除</el-button>
<el-button type="primary" @click="xiafilemony()" :disabled="tableIdarr.length == 0|| nodename == '根节点'">下载</el-button>
<el-button type="primary" :disabled="!pathid" @click="openFile">上传</el-button>
<el-button type="primary" @click="delprojectArr()" :disabled="tableIdarr.length == 0">删除</el-button>
<el-button type="primary" @click="xiafilemony()" :disabled="tableIdarr.length == 0">下载</el-button>
</div>
</div>
<el-table v-loading="loading" :data="tableData" @selection-change="handleSelectionChange"
:header-cell-style="{ background: 'rgb(250 250 250)', color: '#383838', height: '50px' }"
style="width: 100%; height: calc(100vh - 275px);margin-bottom: 20px;" border>
<el-table-column type="selection" width="40" v-if=" nodename != '根节点'" />
<el-table-column type="selection" width="40" />
<!-- <el-table-column type="index" label="序号" width="70" align="center"></el-table-column> -->
<el-table-column prop="fileName" label="文件名称">
@ -915,7 +924,7 @@ function tonstatus() {
</el-table-column>
<el-table-column prop="uploader" width="80" label="上传人"></el-table-column>
<el-table-column prop="uploadTime" width="170" label="上传时间"></el-table-column>
<el-table-column label="操作" width="100" v-if="nodename != '根节点'" align="center">
<el-table-column label="操作" width="100" align="center">
<template #default="scope">
<span
style="display: flex;display: -webkit-flex;justify-content: space-between;-webkit-justify-content: space-between; ">

View File

@ -106,7 +106,7 @@ function addproject() {
, localStorageId: "",
attributeContentJson:'',
}
shidou.value = false
shidou.value = true
// formitemarr.value.length = 0
}
//
@ -405,11 +405,7 @@ let result2 = ref([])
format="YYYY-MM-DD HH:mm:ss" style="width:100%;" value-format="YYYY-MM-DD HH:mm:ss" />
</el-form-item>
</div>
<el-form-item label="存储空间绑定" prop="localStorageId">
<el-select v-model="projectForme.localStorageId" clearable placeholder=" " :disabled="shidou">
<el-option v-for="item in storagesarr" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label=" 项目描述">
<el-input v-model="projectForme.description" :rows="25" type="textarea" show-word-limit />
</el-form-item>
@ -418,7 +414,11 @@ let result2 = ref([])
<el-input v-model="item.data" style="width: 92%;" />
<el-button type="primary" @click="dellable(index)">删除</el-button>
</div>
</el-form-item>
<el-form-item label="存储空间设定" prop="localStorageId">
<el-select v-model="projectForme.localStorageId" clearable placeholder=" " :disabled="!shidou">
<el-option v-for="item in storagesarr" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-scrollbar>
<el-form-item>

View File

@ -105,16 +105,13 @@ watch(() => projectId.value, (newVal) => {
//
const projectArr = ref([])
const taskName = ref('')
const localStorageId = ref('')
const storageKey:any = ref()
const storageKey: any = ref()
//
function getProject() {
tstaskList().then((res: any) => {
projectArr.value = res.data
projectId.value = projectArr.value[0].id
storageKey.value = projectArr.value[0].key
localStorageId.value = projectArr.value[0].localStorageId
// taskName.value = projectArr.value[0].taskName
ws1 = new WebSocket(userStore.WebSocketUrl + '/websocket/' + 'taskId_' + projectId.value)
setupWebSocket()
@ -163,7 +160,7 @@ const filepath = ref('')
function gettreedata() {
treeloading.value = true
treeForm.value.taskId = projectId.value
let keyar = projectArr.value.find(item => item.localStorageId === localStorageId.value);
let keyar = projectArr.value.find(item => item.id === projectId.value);
storageKey.value = keyar.key
getTsNodesTree(treeForm.value).then((res: any) => {
treedata.value = res.data
@ -171,7 +168,11 @@ function gettreedata() {
if (treedata.value[0]) {
pathid.value = treedata.value[0].nodeId
nodename.value = res.data[0].nodeName
filepath.value = res.data[0].path + res.data[0].nodeName + '/'
if (nodename.value == '根节点') {
filepath.value = res.data[0].path
} else {
filepath.value = res.data[0].path + nodename.value + '/'
}
nextTick(() => {
treeRef.value?.setCurrentKey(pathid.value);
});
@ -187,11 +188,16 @@ const pathid = ref()
const nodename = ref('')
function handleNodeClick(data: any, node: any) {
pathid.value = data.nodeId
filepath.value = data.path + data.nodeName + '/'
// filepath.value = data.path + data.nodeName + '/'
creatform.value.parentId = ''
patharr.value.length = 0
getdata()
nodename.value = data.nodeName
if (nodename.value == '根节点') {
filepath.value = data.path
} else {
filepath.value =data.path + nodename.value + '/'
}
creatform.value.workPath = ''
}
//
@ -503,7 +509,7 @@ function delfile(row: any) {
)
.then(() => {
loading.value = true
deleteTsFilesById({ id: row.id, type: 'local',taskId:projectId.value }).then((res: any) => {
deleteTsFilesById({ id: row.id, type: 'local', taskId: projectId.value }).then((res: any) => {
if (res.code == 0) {
getdata()
ElMessage({
@ -539,7 +545,7 @@ function delprojectArr() {
)
.then(() => {
loading.value = true
deleteTsFilesByIds({ ids: ids.join(','), type: 'local',taskId:projectId.value }).then((res: any) => {
deleteTsFilesByIds({ ids: ids.join(','), type: 'local', taskId: projectId.value }).then((res: any) => {
if (res.code == 0) {
ElMessage({
type: 'success',
@ -882,7 +888,7 @@ function paste() {
newFileName: [],
rename: '',
type: '',
taskId:projectId.value,
taskId: projectId.value,
nodeId: pathid.value
}
// debugger
@ -998,7 +1004,7 @@ function copycover(row: any) {
newFileName: [],
rename: '',
type: '',
taskId:projectId.value,
taskId: projectId.value,
nodeId: pathid.value
}
repeatObj.newPath = creatform.value.workPath ? creatform.value.workPath : filepath.value
@ -1075,7 +1081,7 @@ function copysomefile() {
newFileName: [],
rename: '',
type: '',
taskId:projectId.value,
taskId: projectId.value,
nodeId: pathid.value
}
repeatObj.newPath = creatform.value.workPath ? creatform.value.workPath : filepath.value
@ -1141,7 +1147,7 @@ async function submitrename(formEl: any) {
newFileName: [],
rename: '',
type: '',
taskId:projectId.value,
taskId: projectId.value,
nodeId: pathid.value
}
repeatObj.newPath = creatform.value.workPath ? creatform.value.workPath : filepath.value
@ -1319,7 +1325,7 @@ async function submitzip(formEl: any) {
})
} else {
Decompression({ id: jiezip.value.id, parentId: zipParentid.value, decompressionPath: zipObj.value.compressedPath, path: filepath.value,taskId:projectId.value }).then((res: any) => {
Decompression({ id: jiezip.value.id, parentId: zipParentid.value, decompressionPath: zipObj.value.compressedPath, path: filepath.value, taskId: projectId.value }).then((res: any) => {
if (res.code == 0) {
ElMessage.success('解压成功')
getdata()
@ -1545,7 +1551,8 @@ const maptime: any = ref(300)
const qvehuan: any = ref(false)
const qvehuan1: any = ref(false)
function frequency(row: any) {
startSimpleNavi({ samTimes: maptime.value, id: fredid.value, token: userStore.userId,taskId:projectId.value
startSimpleNavi({
samTimes: maptime.value, id: fredid.value, token: userStore.userId, taskId: projectId.value
}).then((res: any) => {
if (res.code == '0' && row) {
ElMessage.success("切换成功")
@ -1658,7 +1665,7 @@ function repstring(row: any) {
:props="defaultProps" v-loading="treeloading" @node-click="handleNodeClick"
class="silderLeft-default" style="height: calc(100vh - 280px); overflow: auto;margin-top: 10px;">
<template #default="{ data }">
<span class="custom-tree-node" >
<span class="custom-tree-node">
<span class="text">{{ data.nodeName }}</span>
<span class="img_tree" v-if="nodename != '根节点'">
<img src="@/assets/project/xiu.png" alt="" title="编辑" @click="editSubItem(data)">
@ -1697,23 +1704,24 @@ function repstring(row: any) {
</div>
<div>
<!-- :disabled="pathid.value" -->
<el-button type="primary" :disabled="loading || nodename == '根节点'" @click="creatFile " >创建文件/文件夹</el-button>
<el-button type="primary" :disabled="loading|| nodename == '根节点'" @click="openFile">上传</el-button>
<el-button type="primary" @click="delprojectArr()" :disabled="tableIdarr.length == 0|| nodename == '根节点'">删除</el-button>
<el-button type="primary" @click="xiafilemony()" :disabled="tableIdarr.length == 0|| nodename == '根节点'">下载</el-button>
<el-button type="primary" :disabled="loading || nodename == '根节点'"
@click="creatFile">创建文件/文件夹</el-button>
<el-button type="primary" :disabled="loading" @click="openFile">上传</el-button>
<el-button type="primary" @click="delprojectArr()" :disabled="tableIdarr.length == 0">删除</el-button>
<el-button type="primary" @click="xiafilemony()" :disabled="tableIdarr.length == 0">下载</el-button>
</div>
</div>
<div style="margin-bottom: 10px;">
<el-button type="primary" v-if="pasteing" @click="paste()">粘贴({{ copyarr.length }})</el-button>
<el-button type="primary" :disabled="tableIdarr.length == 0|| nodename == '根节点'" @click="copyMove('copy')">复制</el-button>
<el-button type="primary" :disabled="tableIdarr.length == 0|| nodename == '根节点'" @click="copyMove('move')">移动</el-button>
<el-button type="primary" :disabled="tableIdarr.length == 0|| nodename == '根节点'" @click="zipFile(true)">压缩</el-button>
<el-button type="primary" :disabled="tableIdarr.length == 0" @click="copyMove('copy')">复制</el-button>
<el-button type="primary" :disabled="tableIdarr.length == 0" @click="copyMove('move')">移动</el-button>
<el-button type="primary" :disabled="tableIdarr.length == 0" @click="zipFile(true)">压缩</el-button>
</div>
<el-table ref="filetableRef" v-loading="loading" :data="tableData" @selection-change="handleSelectionChange"
:header-cell-style="{ background: 'rgb(250 250 250)', color: '#383838', height: '50px' }"
style="width: 100%; height: calc(66vh);margin-bottom: 20px;" border>
<el-table-column type="selection" width="40" v-if=" nodename != '根节点'" />
<el-table-column type="selection" width="40" />
<!-- <el-table-column type="index" label="序号" width="70" align="center"></el-table-column> -->
<el-table-column prop="fileName" label="文件名称" width="200">
<template #default="scope">
@ -1741,7 +1749,7 @@ function repstring(row: any) {
</el-table-column>
<el-table-column prop="uploader" width="80" label="上传人"></el-table-column>
<el-table-column prop="updateTime" width="170" label="修改日期"></el-table-column>
<el-table-column v-if=" nodename != '根节点'" label="操作" width="140" align="center">
<el-table-column label="操作" width="140" align="center">
<template #default="scope">
<span
style="display: flex;display: -webkit-flex;justify-content: space-between;-webkit-justify-content: space-between; ">

View File

@ -140,6 +140,7 @@ function backups() {
comparearr.value = comparearr.value.filter(item => {
return seen.has(item.id) ? false : seen.add(item.id);
});
const ids = []
const params: any = {}
if (comparearr.value.length > 0) {
@ -219,6 +220,7 @@ function diffSure(row: any) {
loading1.value = true
const ids = []
const params: any = {}
params.taskId = projectId.value
if (comparearr.value.length > 0) {
comparearr.value.forEach((item: any) => {
ids.push(item.id)
@ -226,7 +228,7 @@ function diffSure(row: any) {
params.id = ids.join(',')
} else {
params.nodeId = pathid.value
params.taskId = projectId.value
}
params.size = sureSize.value
params.current = sureCurrent.value
@ -246,6 +248,7 @@ function diffChange(row: any) {
loading2.value = true
const ids = []
const params: any = {}
params.taskId = projectId.value
if (comparearr.value.length > 0) {
comparearr.value.forEach((item: any) => {
ids.push(item.id)
@ -253,7 +256,7 @@ function diffChange(row: any) {
params.id = ids.join(',')
} else {
params.nodeId = pathid.value
params.taskId = projectId.value
}
params.size = ChangeSize.value
params.current = ChangeCurrent.value
@ -274,6 +277,7 @@ function diffMiss(row: any) {
loading3.value = true
const ids = []
const params: any = {}
params.taskId = projectId.value
if (comparearr.value.length > 0) {
comparearr.value.forEach((item: any) => {
ids.push(item.id)
@ -281,7 +285,7 @@ function diffMiss(row: any) {
params.id = ids.join(',')
} else {
params.nodeId = pathid.value
params.taskId = projectId.value
}
params.size = MisseSize.value
params.current = MissCurrent.value
@ -625,7 +629,7 @@ const handleMenuClick = (action: string, type: any) => {
size: currentNode.value.fileSize,
type: currentNode.value.isFile
}]
downloadToLocal({ parameterLists: params }).then((res: any) => {
downloadToLocal({ parameterLists: params,taskId:projectId.value }).then((res: any) => {
if (res.code == '0') {
ElMessage.success("恢复成功")
minioOnlyFiles.value = minioOnlyFiles.value.filter((item: any) => item.id !== currentNode.value.id)
@ -771,7 +775,7 @@ function tablerestore(row: any) {
}]
loading3.value = true
loading2.value = true
downloadToLocal({ parameterLists: params }).then((res: any) => {
downloadToLocal({ parameterLists: params,taskId:projectId.value }).then((res: any) => {
if (res.code == '0') {
ElMessage.success("恢复成功")
diffChange(false)
@ -803,7 +807,7 @@ function moretablerestore() {
})
loading2.value = true
loading3.value = true
downloadToLocal({ parameterLists: restoreArr3 }).then((res: any) => {
downloadToLocal({ parameterLists: restoreArr3,taskId:projectId.value }).then((res: any) => {
if (res.code == '0') {
ElMessage.success("恢复成功")
diffChange(false)
@ -880,7 +884,7 @@ function bfclick(type: any) {
restoreArr2.forEach((items: any) => {
restoreArr3.push({ path: items.backupPath, name: items.fileName, size: items.fileSize, type: items.isFile })
})
downloadToLocal({ parameterLists: restoreArr3 }).then((res: any) => {
downloadToLocal({ parameterLists: restoreArr3,taskId:projectId.value }).then((res: any) => {
if (res.code == '0') {
ElMessage.success("恢复成功")
diffChange(false)

View File

@ -130,7 +130,7 @@ function addproject() {
backupStorageId: ''
}
// formitemarr.value.length = 0
shidou.value = false
shidou.value = true
}
//
function editproject(row: any) {
@ -404,8 +404,8 @@ let result2 = ref([])
@change="getdata()" placeholder="传感器描述"></el-input>
<el-input v-for="item in result2" style="margin:10px 10px 0px 0px;width:180px;" v-model="queryParams[item.code]"
clearable @change="getdata()" :placeholder="item.name"></el-input>
<el-button type="primary" style="margin-top: 10px;" @click="getdata()">搜索</el-button>
<el-button v-if="result2.length == 0" type="primary" @click="getdata()">搜索</el-button>
<el-button v-else type="primary" style="margin-top: 10px;" @click="getdata()">搜索</el-button>
</div>
<div>
<el-button type="primary" @click="addproject()">新增</el-button>
@ -526,22 +526,7 @@ let result2 = ref([])
<el-form-item label="传感器描述">
<el-input v-model="projectForme.sensorDescribe" :rows="12" type="textarea" show-word-limit />
</el-form-item>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label="本地存储空间" prop="localStorageId" style="width: 50%;">
<el-select v-model="projectForme.localStorageId" clearable placeholder=" "
:disabled="shidou">
<el-option v-for="item in localarr" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="minio存储空间" prop="backupStorageId" style="width: 50%;margin-left: 15px;">
<el-select v-model="projectForme.backupStorageId" clearable placeholder=" "
:disabled="shidou">
<el-option v-for="item in minioarr" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</div>
<!-- <el-form-item label="设备名称">
<el-input v-model="projectForme.deviceName" maxlength="40" show-word-limit />
</el-form-item> -->
@ -551,6 +536,22 @@ let result2 = ref([])
<el-button type="primary" @click="dellable(index)">删除</el-button>
</div>
</el-form-item>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label="本地存储空间" prop="localStorageId" style="width: 50%;">
<el-select v-model="projectForme.localStorageId" clearable placeholder=" "
:disabled="!shidou">
<el-option v-for="item in localarr" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="备份存储空间" prop="backupStorageId" style="width: 50%;margin-left: 15px;">
<el-select v-model="projectForme.backupStorageId" clearable placeholder=" "
:disabled="!shidou">
<el-option v-for="item in minioarr" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</div>
</el-scrollbar>