Commit 48cc4e94 authored by zhengke's avatar zhengke

批量移动文件

parent 3d04a225
......@@ -63,7 +63,6 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="()=>closedhandler()">关闭</el-button>
<!-- <el-button type="primary" @click="()=>closedhandler()"> 保存分享配置 </el-button> -->
</span>
</template>
</el-dialog>
......
......@@ -5,9 +5,12 @@
<template #header>
<div class="row overflow-hide">
<div>
<img class="q-px-md"
:src="FileType==1?datas.pdfImg:datas.adsImg"
style="height: 43px;" />
<img v-if="details.FileType>0" class="q-px-md"
:src="details.FileType==1?datas.pdfImg:datas.adsImg"
style="height: 43px;" />
<img v-else class="q-px-md"
src="@/assets/img/file.png"
style="height: 43px;" />
</div>
<div class="q-pl-md col">
<div>
......@@ -17,7 +20,14 @@
<div class="TreeFile-Title pointer">{{details.FileName}}</div>
</el-tooltip>
</div>
<div class="text-small text-5B5D62 q-pt-sm">创建者:{{details.CreateName}}</div>
<div class="text-small text-5B5D62 q-pt-sm">
<template v-if="details">
创建者:{{details.CreateName}}
</template>
<template v-else>
移动文件 {{selectedDatas.join(',')}}
</template>
</div>
</div>
</div>
......@@ -31,19 +41,16 @@
:data="dataList"
:props="defaultProps"
node-key="FileId"
:default-expanded-keys="[datas.FolderId]"
:default-checked-keys="[datas.FolderId]"
default-expand-all
show-checkbox
:filter-node-method="filterNode"
@check="handleTreeNodeClick"
@check-change="handleCheckChange"/>
@check="handleTreeNodeClick"/>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="()=>closedhandler()">关闭</el-button>
<el-button type="primary" @click="()=>MoveToFolder()"> 保存分享配置 </el-button>
<el-button type="primary" @click="()=>MoveToFolder()"> 保存移动 </el-button>
</span>
</template>
</el-dialog>
......@@ -66,7 +73,11 @@ import FolderService from "@/services/FolderService";
type: Array,
required:[]
},
FileType: {
setFileList:{
type: Array,
required:[]
},
fileType: {
type:Number,
required: 1
}
......@@ -93,9 +104,9 @@ import FolderService from "@/services/FolderService";
adsImg: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708250377000_777.png',
fileList: [] as Tree[],
FolderId: '',
FolderObj: {}
FolderObj: {},
checkedKeys: null as any
})
const show=ref(true)
const loading = ref(true)
const deleteLoading = ref<any>(null);
......@@ -104,11 +115,6 @@ import FolderService from "@/services/FolderService";
const closedhandler=()=>{
emit('close')
}
const handleCheckChange = (data:any, checked:any, indeterminate:any) => {
if (checked) {
treeRef.value.setCheckedKeys([data.FileId])
}
}
const handleTreeNodeClick = (data:any,checkObj:any) => {
// 共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、树目前的选中状态对象
// 树目前的选中状态对象,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性
......@@ -117,12 +123,10 @@ import FolderService from "@/services/FolderService";
if (checkObj.checkedKeys.length == 2) {
// 如果选择超过一个节点,则只保留最后一个节点
//单选实现
console.log(data,'----data.FileId')
datas.FolderId = data.FileId
// if(checkObj.checkedNodes.length>1)
treeRef.value.setCheckedKeys([data.FileId]);
}else{
console.log(data,'----data.FileId2222')
datas.FolderId = data.FileId
treeRef.value.setCheckedKeys([data.FileId]);
}
......@@ -133,20 +137,20 @@ import FolderService from "@/services/FolderService";
return data.FileName.includes(value)
}
const MoveToFolder = () => {
let File = datas.FolderObj
let title = ''
let Id = ''
console.log(File,'=====File')
let FileList = []
if(!props.details) {
title = `文件${props.selectedDatas.join(',')}`
Id = props.selectedDatas.join(',')
title = `文件ID ${props.selectedDatas.join(',')}`
FileList = props.setFileList
}else {
title = props.details.FileName
Id = props.details.FileId
FileList.push({
FileId: props.details.FileId,
FileType: props.details.FileType
})
}
// console.log(title,'=======11111')
// return
ElMessageBox.confirm(`此操作将${title}移动到${File.FileName},是否确定?`, "提示", {
ElMessageBox.confirm(`此操作将${title}移动到${datas.FolderObj.FileName},是否确定?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
......@@ -154,8 +158,8 @@ import FolderService from "@/services/FolderService";
.then(async () => {
try {
let queryMsg = {
FolderId: datas.FolderId, //文件夹Id
Id: Id, //广告行程Id
FileList: FileList,
TargetFolderId: datas.FolderId,
};
deleteLoading.value = ElLoading.service({
lock: true,
......@@ -165,7 +169,7 @@ import FolderService from "@/services/FolderService";
if (pageRes.data.resultCode == 1) {
ElMessage({
showClose: true,
message: `移动${props.FileType == 2 ? "广告" : "行程"}至文件夹成功`,
message: `移动文件成功`,
type: "success",
});
emit('close')
......@@ -173,7 +177,7 @@ import FolderService from "@/services/FolderService";
} else {
ElMessage({
showClose: true,
message: `移动${props.FileType == 2 ? "广告" : "行程"}至文件夹失败`,
message: `移动文件失败`,
type: "warning",
});
}
......@@ -186,34 +190,48 @@ import FolderService from "@/services/FolderService";
const getFile = async () => {
let querys = {
FileType: props.FileType
FileType: props.fileType
}
let pageRes = await FolderService.GetMyFolderTree(querys);
if (pageRes.data.resultCode == 1) {
dataList.value = pageRes.data.data
recursiveFun(dataList.value)
recursive(dataList.value)
}
}
const recursiveFun = (arrs:Array,) =>{
const recursive = (arrs:Array,disabled:any) =>{
let isDisableds:Boolean
if(arrs.length>0) arrs.forEach(x => {
Object.assign(x,{disabled:props.selectedDatas.indexOf(x.FileId)!=-1||props.details.FileId==x.FileId?true:false})
isDisableds = (props.selectedDatas.indexOf(x.FileId)!=-1&&!props.details)||props.details.FileId==x.FileId||disabled?true:false
if(props.details.FileType>0&&x.FileId==props.details.FileId) isDisableds = false
if(!props.details){
for(let i =0;i<props.setFileList.length;i++){
if(props.setFileList[i].FileType&&props.setFileList[i].FileId==x.FileId) isDisableds = false
}
}
Object.assign(x,{disabled:isDisableds})
if(x.ChildList.length>0){
recursion(x)
recursionChild(x,isDisableds)
}
})
else Object.assign(arrs,{disabled:props.selectedDatas.indexOf(arrs.FileId)!=-1||props.details.FileId==arrs.FileId?true:false})
else {
isDisableds = (props.selectedDatas.indexOf(arrs.FileId)!=-1&&!props.details)||props.details.FileId==arrs.FileId||disabled?true:false
Object.assign(arrs,{disabled:isDisableds})
}
}
const recursion = (arrs:any,type:any) => {
const recursionChild = (arrs:any,disabled:any) => {
if(arrs&&arrs.ChildList.length>0) {
recursiveFun(arrs.ChildList)
recursive(arrs.ChildList,disabled)
}
}
watch(filterText, (val) => {
treeRef.value!.filter(val)
})
watch(props.selectedDatas, (val) => {
recursive(dataList.value)
})
getFile()
</script>
<style scoped>
......
......@@ -8,6 +8,8 @@
@click="
() => {
queryObj.FileId = 0;
datas.selectAll = false;
datas.selectedDatas = [];
refreshHandler();
}
"
......@@ -210,9 +212,16 @@
<TreeFile v-if="isTreeFile"
:details="journeyAdsDetails"
:selected-datas="datas.selectedDatas" :file-type="queryObj.FileType"
:selected-datas="datas.selectedDatas"
:set-file-list="datas.setFileList"
:file-type="queryObj.FileType"
@close="() => {journeyAdsDetails = '';isTreeFile=false}"
@success="() => {journeyAdsDetails = '';isTreeFile=false;refreshHandler()}"></TreeFile>
@success="() => {
journeyAdsDetails = '';
isTreeFile=false;
datas.selectAll = false;
datas.selectedDatas = [];
refreshHandler()}"></TreeFile>
</template>
<script setup lang="ts">
import { ref, reactive, provide, watch, inject, onMounted } from "vue";
......@@ -254,6 +263,7 @@ const datas = reactive({
selectAll: false as any,
journeyAds: { RefreshLoading: false } as any,
fileList: [] as any,
setFileList: [] as any,
pdfImg:
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708337830000_43.png",
adsImg:
......@@ -284,6 +294,21 @@ const SellTemplateRef = ref<any>();
// 移动到文件夹
const MoveFile = (item:any) => {
if(item) journeyAdsDetails.value = item
else {
datas.setFileList = []
for(let i=0;i<dataList.value.length;i++){
for(let j=0;j<datas.selectedDatas.length;j++){
if(dataList.value[i].FileId==datas.selectedDatas[j]){
datas.setFileList.push(
{
FileId: dataList.value[i].FileId,
FileType: dataList.value[i].FileType
}
)
}
}
}
}
isTreeFile.value = true
}
// 历史版本
......@@ -481,6 +506,9 @@ const editDelete = async (row: any, type: Number) => {
if (type == 2) {
queryObj.FileId = row.FileId;
Navigation.value = row;
datas.selectAll = false
datas.selectedDatas = []
isIndeterminate.value = false
refreshHandler();
} else {
folderObj.value.id = row.FileId;
......@@ -491,7 +519,6 @@ const editDelete = async (row: any, type: Number) => {
}
};
const querySearchHandler = async () => {
datas.selectedDatas = []
loading.value = true;
try {
if (queryObj.pageIndex == 1) dataList.value = [];
......@@ -517,6 +544,7 @@ const querySearchHandler = async () => {
});
};
arrList(pageRes.data.data.pageData);
datas.selectedDatas = Array.from(new Set(datas.selectedDatas))
dataList.value = dataList.value.concat(pageRes.data.data.pageData);
queryObj.pageCount = pageRes.data.data.pageCount;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment