From 2f8288dceb49c9fcbd3ea1f50f235e905a9a839c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=85=81=E6=9E=9E?= <3422692813@qq.com> Date: Mon, 24 Mar 2025 16:59:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/partner/api/file.js | 8 ++++ src/views/partner/file/file.vue | 69 +++++++++++++++++++++++++++++++-- 2 files changed, 73 insertions(+), 4 deletions(-) diff --git a/src/views/partner/api/file.js b/src/views/partner/api/file.js index a4a2049..4d9262f 100644 --- a/src/views/partner/api/file.js +++ b/src/views/partner/api/file.js @@ -16,6 +16,14 @@ export function listByPermission(query) { params: query }) } +// 查询inspectionFile文件夹树结构 +export function queryTreeFolder(query) { + return request({ + url: '/inspectionFile/inspectionFile/queryTreeFolder', + method: 'get', + params: query + }) +} // 根据文件id获取有权限的用户id export function getUserIdsByFileId(query) { return request({ diff --git a/src/views/partner/file/file.vue b/src/views/partner/file/file.vue index 9700275..1f69d52 100644 --- a/src/views/partner/file/file.vue +++ b/src/views/partner/file/file.vue @@ -82,7 +82,7 @@ 分配权限
历史版本
-
删除
+
删除
@@ -206,6 +206,23 @@ :fileType="['doc', 'xls', 'ppt', 'txt', 'pdf','png','jpg','jpeg','gif','docx','xlsx','pptx','wps']" v-model="form.filePath"/> + + + + { + this.folderList = response.data + console.log('folderList', this.folderList) + }) + }, + handleFolderChange(e) { + // if (e.length === 0) { + // this.form.fatherId = null + // return + // } + // console.log(e) + // this.form.fatherId = e[e.length - 1] + }, formatDate(timestamp) { if (!timestamp) return ""; const date = new Date(timestamp); @@ -472,6 +504,7 @@ export default { this.queryParams.fatherId = this.$route.query.folderId this.fatherId = this.$route.query.folderId } + this.queryTreeFolder() listByPermission(this.queryParams).then(response => { this.inspectionFileList = response.data; this.queryParams.fatherId = response.data[0].fatherId; @@ -615,6 +648,32 @@ export default { this.form = item; this.open = true; this.title = "修改"; + console.log(item) + //判断文件夹树中是否有item的id或者item子类的id如果有禁用 + this.folderList = this.disableIfExistsInTree(this.folderList, item.id) + }, + disableIfExistsInTree(treeData, targetId) { + console.log(treeData, targetId, '执行'); + + function traverse(nodes, parentDisabled = false) { + return nodes.map(node => { + let newNode = { ...node }; + + // 递归处理子节点,同时传递父级的禁用状态 + if (newNode.children && newNode.children.length > 0) { + newNode.children = traverse(newNode.children, newNode.value === targetId || parentDisabled); + } + + // 只禁用目标节点及其子节点,不影响兄弟节点 + if (newNode.value === targetId || parentDisabled) { + newNode.disabled = true; + } + + return newNode; + }); + } + + return traverse(treeData); }, /** 修改按钮操作 */ handleUpdate(row) { @@ -638,6 +697,7 @@ export default { if (this.form.id != null) { updateInspectionFile(this.form).then(response => { this.$modal.msgSuccess("修改成功"); + this.form = {} this.open = false; this.getList(); }); @@ -645,6 +705,7 @@ export default { this.form.fatherId = this.fatherId addInspectionFile(this.form).then(response => { this.$modal.msgSuccess("新增成功"); + this.form = {} this.open = false; this.getList(); });