Commit 66ead027 authored by zhengke's avatar zhengke

历史版本 另存 替换

parent f46fc611
......@@ -14,6 +14,7 @@
</template>
<script lang="ts" setup>
import { ApiResult } from '@/configs/axios';
import { onMounted,ref,provide } from 'vue'
import { storeToRefs } from 'pinia'
import { useScreenStore, useMainStore, useSnapshotStore,
......@@ -124,7 +125,7 @@ const sellHistoryTripTemplate = async (sellId:any) => {
Id: sellId
}
let dataRes = await ConfigService.sellGetTemplateDetails(queryMsg);
if (dataRes.data.resultCode == 1) {
if (dataRes.data.resultCode==ApiResult.SUCCESS) {
loadingObj.close()
loading.value = false
isFinish.value=true
......@@ -178,7 +179,7 @@ const sellShareTemplate = async () =>{
}
const slidesData = slides.value
let dataRes = await ConfigService.GetTripOtherByCode(queryMsg);
if (dataRes.data.resultCode == 1) {
if (dataRes.data.resultCode==ApiResult.SUCCESS) {
loadingObj.close()
loading.value = false
isFinish.value=true
......@@ -231,7 +232,7 @@ const GetTripConfig = async (ConfigId) =>{
ConfigId: ConfigId
}
let datasRes = await ConfigService.triptemplateGetTripConfig(queryMsg);
if (datasRes.data.resultCode == 1 && datasRes.data.data) {
if (datasRes.data.resultCode==ApiResult.SUCCESS && datasRes.data.data) {
let dataObj = datasRes.data.data
if(dataObj.TempId==0){
return window.parent.postMessage(`暂无行程数据`, `${domainManager().notificationUrl}`);
......
......@@ -40,6 +40,12 @@ class ConfigService{
return Api.Post("triptemplate_SetTripBrowse",params)
}
/**
* 历史版本另存、替换
*/
static async UpdateOtherByHistory(params : any):Promise<HttpResponse>{
return Api.Post("triptemplate_UpdateOtherByHistory",params)
}
/**
* 获取行程广告历史版本
*/
......
......@@ -2,6 +2,13 @@ import Api,{ HttpResponse, Result } from './../utils/request';
class FolderService{
/**
* 复制文件夹、文件到指定目录
*/
static async CopyFile(params : any):Promise<HttpResponse>{
return Api.Post("triptemplate_CopyFile",params)
}
/**
* 文件夹树形结构
*/
......
......@@ -10,7 +10,7 @@
<div class="select-btn q-pl-lg pointer q-mt-sm">
<el-icon>
<RefreshRight
v-if="!datas.journeyAds.RefreshLoading"
v-if="!datas.RefreshLoading"
@click="() => refreshHandler()"
/>
<Refresh v-else />
......@@ -56,8 +56,9 @@
<div style="min-width: '700px';height: 100%;">
<table class="text-small" style="width: 100%">
<tr @click="OffEdit">
<th v-if="currentMenu==3||currentMenu==4" class="text-left" style="width: 20px;">
<el-checkbox
<th class="text-left"
:style="{'width':currentMenu==3||currentMenu==4?'20px':'0px'}">
<el-checkbox v-if="currentMenu==3||currentMenu==4"
size="sm"
class="SelectAllBox"
v-model="datas.selectAll"
......@@ -73,9 +74,9 @@
<span>最近修浏览 </span>
<span class="column">
<el-icon class="reactive"
style="top: 3px" :class="[datas.Sort==2?'active':'']"><CaretTop /></el-icon>
style="top: 3px" :class="[queryObj.OrderByType==1?'active':'']"><CaretTop /></el-icon>
<el-icon class="reactive"
style="top:-3px" :class="[datas.Sort==1?'active':'']"><CaretBottom /></el-icon>
style="top:-3px" :class="[queryObj.OrderByType==2?'active':'']"><CaretBottom /></el-icon>
</span>
</div>
</th>
......@@ -90,7 +91,6 @@
:current-menu="currentMenu"
:list="dataList"
:msg="queryObj"
:sort="datas.Sort"
:selected-datas="datas.selectedDatas"
@UpdateData="UpdateData"
@success="success"
......@@ -123,37 +123,17 @@
></div>
</el-scrollbar>
</div>
<ShareForm
:id="shareId"
v-if="shareId > 0"
@close="() => (shareId = 0)"
></ShareForm>
<HistoricalVersion
:details="journeyAdsDetails"
v-if="isHistoricalVersion"
@close="() => {journeyAdsDetails = '';isHistoricalVersion=false}"
></HistoricalVersion>
<TreeFile v-if="isTreeFile"
:details="journeyAdsDetails"
:selected-datas="datas.selectedDatas"
:set-file-list="datas.setFileList"
:file-type="queryObj.FileType"
@close="() => {journeyAdsDetails = '';isTreeFile=false}"
@success="() => {
journeyAdsDetails = '';
isTreeFile=false;
datas.selectAll = false;
datas.selectedDatas = [];
refreshHandler()}"></TreeFile>
<CopyFile v-if="isCopyTo"
:details="journeyAdsDetails"
@close="() => {journeyAdsDetails = '';isCopyTo=false}"></CopyFile>
@close="() => isTreeFile=false"
@success="success"></TreeFile>
</template>
<script setup lang="ts">
import { ApiResult } from '@/configs/axios';
import { ref, reactive, provide, watch, inject, onMounted } from "vue";
import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import { MoreFilled, Edit, ArrowLeft,CopyDocument,DCaret,CaretTop,CaretBottom } from "@element-plus/icons-vue";
......@@ -161,12 +141,9 @@
import FolderService from "@/services/FolderService";
import { injectKeyTemplate } from "@/types/injectKey";
import { getDaysBetween } from "@/utils/common";
import { useSellTemplateStore, useScreenStore, useSlidesStore } from "@/store";
import ShareForm from "./ShareForm.vue";
import HistoricalVersion from "./HistoricalVersion.vue";
import { useSellTemplateStore, useScreenStore } from "@/store";
import TreeFile from "./TreeFile.vue";
import breadPeeling from "./breadPeeling.vue";
import CopyFile from "./CopyFile.vue";
import journeyAdsList from "./journeyAdsList.vue";
const SalesEditorStore = useSellTemplateStore();
......@@ -179,33 +156,20 @@
});
const PopoverVisibleControls = ref(false);
const shareId = ref(0);
const journeyAdsDetails = ref('');
const isHistoricalVersion = ref(false);
const isCopyTo = ref(false);
const isTreeFile = ref(false)
const Navigations = ref([] as Array<any>);
const showHistory = ref(true);
const isIndeterminate = ref(false);
const dataList = ref([] as Array<any>);
const copyDataList = ref([] as Array<any>);
const NewDataList = ref([] as Array<any>);
const searchData = ref({} as any);
searchData.value = inject(injectKeyTemplate);
const deleteLoading = ref<any>(null);
const removeShareLoading = ref<any>(null);
const datas = reactive({
Sort: 0,
selectedDatas: [] as Array,
selectAll: false as any,
journeyAds: { RefreshLoading: false } as any,
fileList: [] as any,
RefreshLoading: false as Boolean,
setFileList: [] as any,
pdfImg:
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708337830000_43.png",
adsImg:
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708250377000_777.png",
folderImg: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708250377000_777.png",
});
const queryObj = reactive({
......@@ -213,9 +177,9 @@
pageSize: 50,
pageCount: 0, //总页数
FileType: 0,
OrderByType: 2,//1 升序 2倒序
});
const editObj = reactive({});
//datas.journeyAds = inject('journeyAds')
const loading = ref(false as any);
const SellTemplateRef = ref<any>();
......@@ -224,82 +188,24 @@
singleChoice(obj.row)
}
const success = () => {
isTreeFile.value =false;
datas.selectAll = false;
datas.selectedDatas = []
}
const cribrosin = (msg:any) =>{
if(msg) queryObj=msg
datas.selectedDatas = [];
refreshHandler()
}
// 收藏文件
const CollectHandler = async (row:any) => {
try {
let queryMsg = {
FileId: row.FileId,
FileType: row.FileType,
IsCollect: row.IsCollect?0:1,
}
deleteLoading.value = ElLoading.service({
lock: true,
text: "正在处理",
});
let dataRes = await FolderService.SetFileCollect(queryMsg);
if (dataRes.data.resultCode == 1) {
ElMessage({
showClose: true,
message: `收藏${row.FileName}成功`,
type: "success",
});
refreshHandler();
}else{
ElMessage({
showClose: true,
message: `收藏${row.FileName}失败`,
type: "warning",
});
}
deleteLoading.value.close();
deleteLoading.value = null;
} catch (error) {}
}
// 复制文件
const CopyTo = (row:any) => {
isCopyTo.value = true
journeyAdsDetails.value = row
}
const clickSort = (type:any) =>{
if(datas.Sort==0) copyDataList.value = JSON.parse(JSON.stringify(dataList.value))
// 1降序 2升序
if(datas.Sort==2) datas.Sort=0
else datas.Sort++
getSort()
}
const getSort = () => {
let list = JSON.parse(JSON.stringify(dataList.value))
for (let i=0;i<list.length;i++){
for (let j=i;j<list.length;j++){
let time
if(datas.Sort==1) time = new Date(list[i].UpdateTime.replace(/-/,'/'))-new Date(list[j].UpdateTime.replace(/-/,'/'))
if(datas.Sort==2) time = new Date(list[j].UpdateTime.replace(/-/,'/'))-new Date(list[i].UpdateTime.replace(/-/,'/'))
if(time>0){
let listObj=list[i];
list[i]=list[j];
list[j]=listObj;
}
}
const cribrosin = (msg:any) =>{
if(msg&&msg.FileId!=undefined){
datas.selectAll = false
datas.selectedDatas = []
isIndeterminate.value = false
}
dataList.value = datas.Sort?list:JSON.parse(JSON.stringify(copyDataList.value))
for(let i=0;i<dataList.value.length;i++) {
if (datas.selectAll) {
dataList.value[i].singleChoice = true;
datas.selectedDatas.push(dataList.value[i].FileId);
} else if (
datas.selectedDatas.length > 0 &&
datas.selectedDatas.indexOf(dataList.value[i].FileId) != -1
) dataList.value[i].singleChoice = true;
if(msg) queryObj = msg
refreshHandler()
}
const clickSort = () =>{
if(queryObj.OrderByType==2) queryObj.OrderByType = 1
else queryObj.OrderByType = 2
refreshHandler()
}
const sellAdd = (type:number) =>{
......@@ -310,8 +216,6 @@
}
// 移动到文件夹
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++){
......@@ -326,16 +230,9 @@
}
}
}
}
isTreeFile.value = true
}
// 历史版本
const history = (row: any) => {
journeyAdsDetails.value = row;
isHistoricalVersion.value = true
};
// 重命名
const OffEdit = () => {
for (let i = 0; i < dataList.value.length; i++) {
......@@ -349,64 +246,6 @@
}
}
};
const handleUpdateTitle = async (row: any) => {
if (!row.FileName) row.FileName = editObj.value.FileName;
row.editTitle = false;
if (row.FileName != editObj.value.FileName) {
editObj.value.FileName = row.FileName;
try {
let queryMsg = {
FileId: row.FileId,
Title: editObj.value.FileName,
};
let TemplateRes = await ConfigService.ReNameTripOther(queryMsg);
if (TemplateRes.data.resultCode == 1) {
ElMessage({
showClose: true,
message: "重命名成功",
type: "success",
});
} else {
ElMessage({
showClose: true,
message: "重命名失败",
type: "warning",
});
}
} catch (error) {}
}
};
const startEditTitle = (row: any) => {
row.editTitle = true;
editObj.value = JSON.parse(JSON.stringify(row));
};
const removeShareHandler= async (item:any) =>{
if(removeShareLoading.value) return
removeShareLoading.value=ElLoading.service({
lock: true,
text: "正在处理",
})
let errmsg=''
try {
let response = await ConfigService.RemoveFileShareAsync([item.FileId])
if(response.data.resultCode==ApiResult.SUCCESS){
ElMessage.success({
message:'设置成功'
})
item.IsShare=false
} else errmsg='取消分享失败,请刷新重试'
} catch (error) {
errmsg = '取消分享失败,请刷新重试'
}
if(errmsg!='') {
ElMessage.error({
message:errmsg
})
}
removeShareLoading.value.close();
removeShareLoading.value = null;
}
// 全选按钮
const clickSelectAll = () => {
......@@ -444,78 +283,18 @@
datas.selectAll = "";
isIndeterminate.value = true;
}
console.log(checkedCount,'----')
if (checkedCount == 0) {
datas.selectAll = ""
isIndeterminate.value = false;
}
};
const DeleteTemplate = async (item: any) => {
ElMessageBox.confirm("此操作将删除该模版,是否确定?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
try {
let queryMsg = {
Id: item.FileId,
};
deleteLoading.value = ElLoading.service({
lock: true,
text: "正在处理",
});
let pageRes = await ConfigService.sellSetRemoveTemplate(queryMsg);
if (pageRes.data.resultCode == 1) {
ElMessage({
showClose: true,
message: `删除${queryObj.FileType == 2 ? "广告" : "行程"}成功`,
type: "success",
});
refreshHandler();
} else {
ElMessage({
showClose: true,
message: `删除${queryObj.FileType == 2 ? "广告" : "行程"}失败`,
type: "warning",
});
}
deleteLoading.value.close();
deleteLoading.value = null;
} catch (error) {}
})
.catch(() => {});
};
const editDelete = async (row: any, type: Number) => {
if (type == 1) {
DeleteTemplate(row)
} else {
let list = [
{
id: "test-slide-1",
pageType: 0,
elements: [],
background: {
type: "solid",
color: "#ffffff",
},
},
];
useSlidesStore().setSlides(list);
searchData.value.sellId = row.FileId;
searchData.value.sellTempId = row.TempId;
searchData.value.TemplateType = row.FileType;
SalesEditorStore.setSalesEditor(2);
marketStore.setMarket(false);
}
};
const querySearchHandler = async () => {
loading.value = true;
try {
if (queryObj.pageIndex == 1) dataList.value = [];
let pageRes = await ConfigService.GetTripBrowsePage(queryObj);
if (pageRes.data.resultCode == 1) {
if (pageRes.data.resultCode==ApiResult.SUCCESS) {
let arrList = function (list) {
list.forEach((x) => {
x.show = false;
......@@ -538,15 +317,13 @@
arrList(pageRes.data.data.pageData);
datas.selectedDatas = Array.from(new Set(datas.selectedDatas))
dataList.value = dataList.value.concat(pageRes.data.data.pageData);
copyDataList.value = dataList.value
queryObj.pageCount = pageRes.data.data.pageCount;
getSort()
}
loading.value = false;
datas.journeyAds.RefreshLoading = false;
datas.RefreshLoading = false;
} catch (error) {
loading.value = false;
datas.journeyAds.RefreshLoading = false;
datas.RefreshLoading = false;
}
};
const scrollingHandler = () => {
......@@ -564,7 +341,7 @@
}
};
const refreshHandler = () => {
datas.journeyAds.RefreshLoading = true;
datas.RefreshLoading = true;
queryObj.pageIndex = 1;
querySearchHandler();
};
......@@ -572,11 +349,10 @@
watch(
() => searchData.value.SellTemplateType,
(n, o) => {
return
isIndeterminate.value = false;
datas.selectAll = false;
datas.selectedDatas = [];
queryObj.FileType = n;
queryObj.FileId = 0;
refreshHandler();
}
);
......@@ -597,6 +373,18 @@
position: relative;
top: 3px;
}
.journeyAds-container th {
background: #fff;
position: sticky;
top: 0px;
z-index: 2;
}
.journeyAds-container th {
border-bottom: 1px solid #f6f6f6;
}
.journeyAds-container th:first-child {
border: 0;
}
.active {
color: $themeColor;
}
......
......@@ -5,12 +5,22 @@
<template #header>
<div class="row overflow-hide" @click="OffEdit">
<div>
<template v-if="type">
<img v-if="fileObj.FileType>0" class="q-px-md"
:src="fileObj.FileType==1?datas.pdfImg:datas.adsImg"
style="height: 43px;" />
<img v-else class="q-px-md"
src="@/assets/img/file.png"
style="height: 43px;" />
</template>
<template v-else>
<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;" />
</template>
</div>
<div class="q-pl-md col">
<div class="row flex-center">
......@@ -33,7 +43,13 @@
/>
</div>
<div class="text-small text-5B5D62 q-pt-sm">
创建者:{{details.CreateName}}
创建者:
<template v-if="type==1">
{{details.CreateByName}}
</template>
<template v-else>
{{details.CreateName}}
</template>
</div>
</div>
</div>
......@@ -61,7 +77,11 @@
<div @click="OffEdit">
<span class="dialog-footer">
<el-button @click="()=>closedhandler()">关闭</el-button>
<el-button type="primary" @click="()=>save()"> 保存复制 </el-button>
<el-button type="primary" @click="()=>save()">
保存<template v-if="type==1">另存</template>
<template v-else-if="type==2">替换</template>
<template v-else>复制</template>
</el-button>
</span>
</div>
</template>
......@@ -74,16 +94,21 @@ import { ref,reactive,watch } from 'vue';
import { View,Download,EditPen,Delete } from '@element-plus/icons-vue';
import { ElMessage,ElTree } from 'element-plus';
import FolderService from "@/services/FolderService";
import ConfigService from "@/services/ConfigService";
const props = defineProps({
details:{
type:Object,
required:''
},
fileType: {
fileObj: {
type: Object,
required: {}
},
type: {
type:Number,
required: 1
}
required: 0
},
})
const emit = defineEmits<{
(event: 'close'): void,
......@@ -134,40 +159,38 @@ import FolderService from "@/services/FolderService";
return data.FileName.includes(value)
}
const save = () => {
return
let title = ''
let FileList = []
if(!props.details) {
title = ` 12121 `
FileList = []
}else {
title = props.details.FileName
FileList.push({
FileId: props.details.FileId,
FileType: props.details.FileType
})
}
ElMessageBox.confirm(`此操作将${title}移动到${datas.FolderObj.FileName},是否确定?`, "提示", {
let title = props.details.FileName
if(props.type) title = props.type==1?'另存':'替换'
else title = title+'复制'
ElMessageBox.confirm(`此操作将${title}${datas.FolderObj.FileName?datas.FolderObj.FileName:'根目录'},是否确定?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
try {
if(props.type) SaveOverlay(title)
else CopyId()
} catch (error) {}
})
.catch(() => {});
}
const SaveOverlay = async (title:String) => {
let queryMsg = {
FileList: FileList,
TargetFolderId: datas.FolderId,
LogId: props.details.LogId,
FileId: props.details.FileId,
UpdateType: props.type,
FolderId: datas.FolderId,
};
deleteLoading.value = ElLoading.service({
lock: true,
text: "正在处理",
});
let pageRes = await FolderService.UpdateTripOtherFolder(queryMsg);
if (pageRes.data.resultCode == 1) {
let pageRes = await ConfigService.UpdateOtherByHistory(queryMsg);
if (pageRes.data.resultCode==ApiResult.SUCCESS) {
ElMessage({
showClose: true,
message: `移动文件成功`,
message: `${title}文件${props.details.FileType?'':'夹'}成功`,
type: "success",
});
emit('close')
......@@ -175,20 +198,47 @@ import FolderService from "@/services/FolderService";
} else {
ElMessage({
showClose: true,
message: `移动文件失败`,
message: `${title}文件${props.details.FileType?'':'夹'}失败`,
type: "warning",
});
}
deleteLoading.value.close();
deleteLoading.value = null;
} catch (error) {}
})
.catch(() => {});
}
const CopyId = async () => {
let queryMsg = {
FileId: props.details.FileId,
FileType: props.details.FileType,
FileName: props.details.FileName,
TargetFolderId: datas.FolderId,
};
deleteLoading.value = ElLoading.service({
lock: true,
text: "正在处理",
});
let pageRes = await FolderService.CopyFile(queryMsg);
if (pageRes.data.resultCode==ApiResult.SUCCESS) {
ElMessage({
showClose: true,
message: `复制文件${props.details.FileType?'':'夹'}成功`,
type: "success",
});
emit('close')
emit('success')
} else {
ElMessage({
showClose: true,
message: `移动文件${props.details.FileType?'':'夹'}失败`,
type: "warning",
});
}
deleteLoading.value.close();
deleteLoading.value = null;
}
const getFile = async () => {
let querys = {
FileType: props.fileType
FileType: props.details.FileType
}
let pageRes = await FolderService.GetMyFolderTree(querys);
if (pageRes.data.resultCode == 1) {
......
......@@ -55,8 +55,8 @@
<el-icon size="16" color="#b1b7cf"><MoreFilled /></el-icon>
<template #dropdown>
<el-dropdown-menu class="q-pa-md" @click.stop="OffEdit">
<el-dropdown-item icon="EditPen" @click.stop="clickControls(item,1)">另存</el-dropdown-item>
<el-dropdown-item icon="Clock" @click.stop="clickControls(item,2)">替换</el-dropdown-item>
<el-dropdown-item icon="Promotion" @click.stop="clickControls(item,1)">另存</el-dropdown-item>
<el-dropdown-item icon="Switch" @click.stop="clickControls(item,2)">替换</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
......@@ -82,6 +82,12 @@
</span>
</template>
</el-dialog>
<CopyFile v-if="isCopyTo"
:details="journeyAdsDetails"
:type="datas.type"
:file-obj="details"
@close="() => {journeyAdsDetails = '';isCopyTo=false}"
@success="refreshHandler()"></CopyFile>
</template>
<script setup lang="ts">
import { ApiResult } from '@/configs/axios';
......@@ -92,6 +98,7 @@ import { ElMessage } from 'element-plus';
import ConfigService from '@/services/ConfigService';
import { isPC, query } from '@/utils/common'
import { injectKeyTemplate } from '@/types/injectKey'
import CopyFile from "./CopyFile.vue";
const props = defineProps({
id:{
......@@ -107,6 +114,7 @@ import { injectKeyTemplate } from '@/types/injectKey'
(event: 'close'): void
}>()
const datas = reactive({
type: 1,
pdfImg: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708337830000_43.png',
adsImg: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708250377000_777.png',
})
......@@ -124,36 +132,21 @@ import { injectKeyTemplate } from '@/types/injectKey'
FileId: props.details.FileId,
UpdateTime: ''
})
const journeyAdsDetails = ref('');
const isCopyTo = ref(false);
const dataList=ref([])
const clickControls = (row:any,type:any) => {
if(type){
datas.type = type
journeyAdsDetails.value = row
isCopyTo.value = true
}else {
let param = query()
const url = `${process.env.VUE_APP_SHARE_URL}/?uid=${param.uid}&sellId=${row.FileId}&ViewSlideshow=1`
window.open(url);
}
}
const getSort = () => {
let list = JSON.parse(JSON.stringify(dataList.value))
for (let i=0;i<list.length;i++){
for (let j=i;j<list.length;j++){
let time
time = new Date(list[j].UpdateTime.replace(/-/,'/'))-new Date(list[i].UpdateTime.replace(/-/,'/'))
if(time>0){
let listObj=list[i];
list[i]=list[j];
list[j]=listObj;
}
}
}
datas.UpdateTime = list[0].UpdateTime
for (let i=0;i<dataList.value.length;i++){
if(dataList.value[i].UpdateTime==datas.UpdateTime) dataList.value[i].NewTitle = '当前版本'
}
}
const closedhandler=()=>{
emit('close')
}
......@@ -162,7 +155,7 @@ import { injectKeyTemplate } from '@/types/injectKey'
try {
if(queryObj.pageIndex == 1) dataList.value =[]
let pageRes = await ConfigService.GetFileHistory(queryObj);
if (pageRes.data.resultCode == 1) {
if (pageRes.data.resultCode==ApiResult.SUCCESS) {
let arrList = function (list) {
list.forEach((x) => {
x.NewTitle = ''
......@@ -170,9 +163,8 @@ import { injectKeyTemplate } from '@/types/injectKey'
};
arrList(pageRes.data.data.pageData);
dataList.value = dataList.value.concat(pageRes.data.data.pageData);
copyDataList.value = dataList.value
dataList.value[0].NewTitle = '当前版本'
queryObj.pageCount = pageRes.data.data.pageCount;
getSort()
}
loading.value = false
} catch (error) {
......@@ -190,6 +182,11 @@ import { injectKeyTemplate } from '@/types/injectKey'
}
}
const refreshHandler = () => {
queryObj.pageIndex = 1;
querySearchHandler();
};
querySearchHandler()
</script>
......
......@@ -90,9 +90,9 @@
<span>最近修改 </span>
<span class="column">
<el-icon class="reactive"
style="top: 3px" :class="[datas.Sort==2?'active':'']"><CaretTop /></el-icon>
style="top: 3px" :class="[queryObj.OrderByType==1?'active':'']"><CaretTop /></el-icon>
<el-icon class="reactive"
style="top:-3px" :class="[datas.Sort==1?'active':'']"><CaretBottom /></el-icon>
style="top:-3px" :class="[queryObj.OrderByType==2?'active':'']"><CaretBottom /></el-icon>
</span>
</div>
</th>
......@@ -267,14 +267,12 @@ const Navigations = ref([] as Array<any>);
const showHistory = ref(true);
const isIndeterminate = ref(false);
const dataList = ref([] as Array<any>);
const copyDataList = ref([] as Array<any>);
const NewDataList = ref([] as Array<any>);
const searchData = ref({} as any);
searchData.value = inject(injectKeyTemplate);
const deleteLoading = ref<any>(null);
const removeShareLoading = ref<any>(null);
const datas = reactive({
Sort: 0,
selectedDatas: [] as Array,
selectAll: false as any,
journeyAds: { RefreshLoading: false } as any,
......@@ -304,6 +302,7 @@ const queryObj = reactive({
pageCount: 0, //总页数
FileType: TemplateType,
FileId: 0,
OrderByType: 2,//1 升序 2倒序
});
const editObj = reactive({});
//datas.journeyAds = inject('journeyAds')
......@@ -315,37 +314,9 @@ const CopyTo = (row:any) => {
journeyAdsDetails.value = row
}
const clickSort = (type:any) =>{
if(datas.Sort==0) copyDataList.value = JSON.parse(JSON.stringify(dataList.value))
// 1降序 2升序
if(datas.Sort==2) datas.Sort=0
else datas.Sort++
getSort()
}
const getSort = () => {
let list = JSON.parse(JSON.stringify(dataList.value))
for (let i=0;i<list.length;i++){
for (let j=i;j<list.length;j++){
let time
if(datas.Sort==1) time = new Date(list[i].UpdateTime.replace(/-/,'/'))-new Date(list[j].UpdateTime.replace(/-/,'/'))
if(datas.Sort==2) time = new Date(list[j].UpdateTime.replace(/-/,'/'))-new Date(list[i].UpdateTime.replace(/-/,'/'))
if(time>0){
let listObj=list[i];
list[i]=list[j];
list[j]=listObj;
}
}
}
dataList.value = datas.Sort?list:JSON.parse(JSON.stringify(copyDataList.value))
for(let i=0;i<dataList.value.length;i++) {
if (datas.selectAll) {
dataList.value[i].singleChoice = true;
datas.selectedDatas.push(dataList.value[i].FileId);
} else if (
datas.selectedDatas.length > 0 &&
datas.selectedDatas.indexOf(dataList.value[i].FileId) != -1
) dataList.value[i].singleChoice = true;
}
if(queryObj.OrderByType==2) queryObj.OrderByType = 1
else queryObj.OrderByType = 2
refreshHandler()
}
// 导航
......@@ -662,9 +633,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);
copyDataList.value = dataList.value
queryObj.pageCount = pageRes.data.data.pageCount;
getSort()
}
loading.value = false;
datas.journeyAds.RefreshLoading = false;
......
<template>
<tr class="text-5B5D62 journeyAdsple-table pointer" v-for="(item,index) in dataList">
<td v-if="currentMenu==3||currentMenu==4" @click.stop="OffEdit()">
<div class="row items-center hoverShow"
<td @click.stop="OffEdit()">
<div v-if="currentMenu==3||currentMenu==4" class="row items-center hoverShow"
:style="{'opacity':item.singleChoice?1:''}">
<el-checkbox size="sm" class="SelectAllBox" v-model="item.singleChoice"
@click.stop="singleChoice(item)"/></div>
......@@ -49,10 +49,10 @@
<el-dropdown-item icon="Position" @click.stop="()=>shareId=item.FileId">分享</el-dropdown-item>
<el-dropdown-item v-if="item.IsShare" icon="Hide" @click.stop="removeShareHandler(item)">取消分享</el-dropdown-item>
<el-dropdown-item v-if="currentMenu==3||currentMenu==4" icon="Expand" @click.stop="MoveFile(item)">移动至</el-dropdown-item>
<el-dropdown-item @click.stop="CollectHandler(item)"
:text-color="!item.IsCollect?'#FCC525':'#65676B'">
<el-dropdown-item @click.stop="CollectHandler(item)">
<!-- :style="{color:item.IsCollect?'#FCC525':'#65676B'}" -->
<span class="row items-center">
<el-icon :color="item.IsCollect?'#FCC525':'#65676B'"><Star /></el-icon>
<el-icon :color="item.IsCollect?'#FCC525':'#65676B'" size="14"><Star /></el-icon>
<span>{{item.IsCollect?'取消收藏':'收藏'}}</span>
</span>
</el-dropdown-item>
......@@ -134,10 +134,6 @@ import CopyFile from "./CopyFile.vue";
type:Object,
required:{}
},
sort:{
type:Number,
required:0
},
selectedDatas:{
type:Array,
required:[]
......@@ -156,7 +152,6 @@ import CopyFile from "./CopyFile.vue";
type: number;
}>({ id: -1, name: "", parentId: 0, number: 1 });
const datas = reactive({
selectAll: false as any,
journeyAds: { RefreshLoading: false } as any,
fileList: [] as any,
setFileList: [] as any,
......@@ -180,7 +175,6 @@ import CopyFile from "./CopyFile.vue";
const isCopyTo = ref(false);
const isTreeFile = ref(false)
const Navigations = ref([] as Array<any>);
const showHistory = ref(true);
const searchData = ref({} as any);
searchData.value = inject(injectKeyTemplate);
const deleteLoading = ref<any>(null);
......@@ -199,6 +193,8 @@ import CopyFile from "./CopyFile.vue";
text: "正在处理",
});
let dataRes = await FolderService.SetFileCollect(queryMsg);
deleteLoading.value.close();
deleteLoading.value = null;
if (dataRes.data.resultCode == 1) {
ElMessage({
showClose: true,
......@@ -213,8 +209,6 @@ import CopyFile from "./CopyFile.vue";
type: "warning",
});
}
deleteLoading.value.close();
deleteLoading.value = null;
} catch (error) {}
}
......@@ -438,9 +432,6 @@ import CopyFile from "./CopyFile.vue";
ParentFileId: row.ParentFileId
}
);
datas.selectAll = false
props.selectedDatas = []
isIndeterminate.value = false
emit('refreshHandler',queryObj.value);
} else {
folderObj.value.id = row.FileId;
......@@ -488,22 +479,14 @@ import CopyFile from "./CopyFile.vue";
position: relative;
overflow: auto;
}
.journeyAds-container th {
background: #fff;
position: sticky;
top: 0px;
z-index: 2;
}
.journeyAdsple-table td > div {
display: flex;
}
.journeyAdsple-table td,
.journeyAds-container th {
.journeyAdsple-table td {
border-bottom: 1px solid #f6f6f6;
}
.journeyAdsple-table td:first-child,
.journeyAdsple-table td:nth-child(2),
.journeyAds-container th:first-child {
.journeyAdsple-table td:nth-child(2) {
border: 0;
}
.journeyAdsple-table td {
......
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