From ebd7fa385112c6f0ceca75dc95dc8c9a6ee29e8f Mon Sep 17 00:00:00 2001 From: dj <1042039504@qq.com> Date: Sun, 30 Mar 2025 15:06:39 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat(project-manage):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=99=84=E4=BB=B6=E6=A0=87=E7=AD=BE=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DetailComponent/ProjectAttachment.vue | 96 +++++++++++-------- vite.config.js | 14 +-- 2 files changed, 64 insertions(+), 46 deletions(-) diff --git a/src/components/DetailComponent/ProjectAttachment.vue b/src/components/DetailComponent/ProjectAttachment.vue index 10e37b0..221b4ec 100644 --- a/src/components/DetailComponent/ProjectAttachment.vue +++ b/src/components/DetailComponent/ProjectAttachment.vue @@ -32,7 +32,7 @@ - 编辑 + 编辑 handleDownload(row)}>下载 { - row.newFile ? - deleteSingleFile(row)}/> : '' + uploadState.value ? + deleteSingleFile(row)}/>:'' } ) @@ -137,6 +137,7 @@ const executeTableConfig = reactive({ } ] }) +// row.newFile ?: '' const otherAttachmentList = ref([]) const filePreviewParam = ref({ @@ -159,6 +160,8 @@ const deleteSingleFile = (row) => { }) if (res.code === 1000) { otherAttachmentList.value.splice(otherAttachmentList.value.findIndex((item) => item.fileId === row.fileId), 1); + getAttachmentList() + activeName.value = 'all' } }); } @@ -176,6 +179,9 @@ const changeTag = async () => { projectId: route.query.projectId, fileTag: fileParam.value.tagName }) + getAttachmentList() + fileParam.value.tagName = '' + activeName.value = 'all' } ElNotification({ title: '提示', @@ -188,11 +194,9 @@ const changeTag = async () => { // label: fileParam.value.tagName // }) tagNameShow.value = false; - fileParam.value.tagName = '' - activeName.value = 'all' } const tabRemove = async (val) => { - ElMessageBox.confirm(`确认删除名称为${getFileName(val)}的标签吗?`, '系统提示', { + ElMessageBox.confirm(`确认删除名称为${getTagName(val)}的标签吗?`, '系统提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' @@ -205,15 +209,16 @@ const tabRemove = async (val) => { }) if (res.code === 1000) { getTagsOption() + otherAttachmentList.value = allFiles.value } }) } const handleEditTag = () => { tagNameShow.value = true - fileParam.value.tagName = getFileName(activeName.value) + fileParam.value.tagName = getTagName(activeName.value) isEdit.value = true } -const getFileName = (name) => { +const getTagName = (name) => { const tagArray = tagsOption.value.filter((item1) => item1.tagId == name) let tagName = '' if (tagArray && tagArray.length > 0) { @@ -227,16 +232,17 @@ const handleTabClick = (item) => { isEdit.value = false } if (item.props.name != 'plus') { - if (item.props.name == 'all') { - otherAttachmentList.value = allFiles.value - } else { - otherAttachmentList.value = allFiles.value.filter(item1 => item1.tag == getFileName(item.props.name)) - } + changeFileList(getTagName(item.props.name)) + // if (item.props.name == 'all') { + // otherAttachmentList.value = allFiles.value + // } else { + // otherAttachmentList.value = allFiles.value.filter(item1 => item1.tag == getTagName(item.props.name)) + // } } - showAttachmentTable.value = false - nextTick(() => { - showAttachmentTable.value = true - }) + // showAttachmentTable.value = false + // nextTick(() => { + // showAttachmentTable.value = true + // }) } const compositeParam = (item) => { return { @@ -246,7 +252,7 @@ const compositeParam = (item) => { fileType: item.fileType, url: item.url, newFile: true, - tag: activeName.value, + tag: getTagName(activeName.value), } } const getFile = (val) => { @@ -264,11 +270,14 @@ const handleSubmit = async (list) => { targetState: "30" } let res = await uploadFileList(params) - // ElNotification({ - // title: '提示', - // message: res.msg, - // type: res.code === 1000 ? 'success' : 'error' - // }) + if(res.code !== 1000){ + ElNotification({ + title: '提示', + message: res.msg, + type: 'error' + }) + } + getTagsOption() } const clickToPreview = (row) => { filePreviewShow.value = false @@ -281,12 +290,29 @@ const clickToPreview = (row) => { filePreviewShow.value = true }) } -const handleSearch = () => { +const changeFileList=(tag)=>{ + showAttachmentTable.value = false + let params = { + targetId: route.query.projectId, + targetState: "30", + tag:tag + } + searchImplementationFileList(params).then(res => { + if (res.code === 1000) { + otherAttachmentList.value = res.data.fileList + nextTick(() => { + showAttachmentTable.value = true + }) + } + }) +} +const getAttachmentList = () => { const loading = ElLoading.service({fullscreen: true}) let params = { targetId: route.query.projectId, targetState: "30" } + showAttachmentTable.value = false if (attachmentParam.tag) { tagsOption.value.forEach(item => { if (item.value === attachmentParam.tag) { @@ -296,7 +322,6 @@ const handleSearch = () => { params.tag = attachmentParam.tag } searchImplementationFileList(params).then(res => { - showAttachmentTable.value = false if (res.code === 1000) { // otherAttachmentList.value = res.data.fileList otherAttachmentList.value = res.data.fileList @@ -322,19 +347,12 @@ const getTagsOption = () => { if (!route.query.projectId) return getTagList(route.query.projectId).then(res => { if (res.code === 1000) { - res.data.rows[0].isClose = 1 tagsOption.value = res.data.rows - otherAttachmentList.value.forEach(item => { - tagsOption.value.forEach(tag => { - // console.log(tag.fileTag,item.tag) - if (tag.fileTag == item.tag) { - tag.isClose = 0 - } else { - tag.isClose = 1 - } - }) + tagsOption.value.forEach((tag, index) => { + const filterArray = otherAttachmentList.value.filter(item => tag.fileTag == item.tag) + tagsOption.value[index].isClose = filterArray.length > 0 ? 0 : 1 }) - if (!res.data.rows || res.data.rows.length == 0) return; + // if (!res.data.rows || res.data.rows.length == 0) return; // activeName.value=res.data.rows[0].tagId } else { ElNotification({ @@ -356,9 +374,9 @@ const handleUpload = () => { } }) } -handleSearch() +getAttachmentList() onActivated(() => { - handleSearch() + getAttachmentList() })