Commit ae359e0f authored by zhengke's avatar zhengke

修复 新增编辑文件

parent 8ecaba8c
<template> <template>
<div class="q-px-md q-pt-lg"> <div class="q-px-md q-pt-lg">
<div class="q-pl-lg row q-mb-lg"> <div class="q-pl-lg row q-mb-lg">
<div class="col row items-center q-pl-md"> <div class="col row items-center q-pl-md">
<h5> <h5 class="row items-center">
<template v-if="currentMenu==3">行程文档</template> <span
<template v-else-if="currentMenu==4">广告图</template> class="pointer"
</h5> @click="
<div class="select-btn q-pl-lg pointer q-mt-sm"> () => {
<el-icon> queryObj.FileId = 0;
<RefreshRight v-if="!datas.journeyAds.RefreshLoading" refreshHandler();
@click="()=>refreshHandler()"/> }
<Refresh v-else /> "
</el-icon> ><el-icon class="q-pt-md" v-if="queryObj.FileId > 0" size="20"
</div> ><ArrowLeft /></el-icon
</div> ></span>
<div> <span v-if="queryObj.FileId == 0" class="q-pl-md">
<el-dropdown trigger="click"> <template v-if="currentMenu == 3">行程文档</template>
<el-button>新建</el-button> <template v-else-if="currentMenu == 4">广告图</template>
<template #dropdown> </span>
<el-dropdown-menu> <span v-else class="q-pl-md row items-center">
<el-dropdown-item @click="()=>operaFolder(0,'')">新建文件夹</el-dropdown-item> <span>
<el-dropdown-item @click="searchData.TemplateType=1,sellAdd(1)" v-if="currentMenu==3">新建行程</el-dropdown-item> <template v-if="currentMenu == 3">行程文档</template>
<el-dropdown-item @click="searchData.TemplateType=2,sellAdd(3)" v-if="currentMenu==4">建广告图</el-dropdown-item> <template v-else-if="currentMenu == 4">广告图</template>
</el-dropdown-menu> </span>
</template> <span>/{{ Navigation.FileName }}</span>
</el-dropdown> </span>
</div> </h5>
<div class="select-btn q-pl-lg pointer q-mt-sm">
<el-icon>
<RefreshRight
v-if="!datas.journeyAds.RefreshLoading"
@click="() => refreshHandler()"
/>
<Refresh v-else />
</el-icon>
</div>
</div>
<div>
<el-dropdown trigger="click">
<el-button>新建</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="() => operaFolder(0, '')"
>新建文件夹</el-dropdown-item
>
<el-dropdown-item
@click="(searchData.TemplateType = 1), sellAdd(1)"
v-if="currentMenu == 3"
>新建行程</el-dropdown-item
>
<el-dropdown-item
@click="(searchData.TemplateType = 2), sellAdd(3)"
v-if="currentMenu == 4"
>建广告图</el-dropdown-item
>
</el-dropdown-menu>
</template>
</el-dropdown>
</div> </div>
</div>
</div> </div>
<div ref="SellTemplateRef" class="journeyAds-container" style="height: 100%;overflow: auto;"> <div
<el-scrollbar @scroll="scrollingHandler" height="100%" class="q-px-md"> ref="SellTemplateRef"
<div style="min-width:'700px';overflow-x: scroll;"> class="journeyAds-container"
<table class="text-small" style="width: 100%;"> style="height: 100%; overflow: auto"
<tr @click.stop="OffEdit"> >
<th class="text-left" style="width: 20px;"><el-checkbox size="sm" class="SelectAllBox" v-model="datas.selectAll" <el-scrollbar @scroll="scrollingHandler" class="q-px-md" style="height: 100%;">
@click="clickSelectAll" <div style="min-width: '700px';height: 100%;">
:indeterminate="isIndeterminate"/></th> <table class="text-small" style="width: 100%">
<th colspan="2" class="text-light"><div class="text-left q-pl-md">文档名称</div></th> <tr @click="OffEdit">
<th class="text-light" style="min-width: 100px;width: 110px;">最近修改</th> <th class="text-left" style="width: 20px;">
<th class="text-light" style="min-width: 100px;width: 100px;">创建者</th> <el-checkbox
<th class="text-light" style="min-width: 120px;width: 120px;">操作</th> size="sm"
</tr> class="SelectAllBox"
<template v-for="(item,index) in dataList"> v-model="datas.selectAll"
<tr class="text-5B5D62 journeyAdsple-table pointer" v-on:click.right="handleRightClick(item)"> @click="clickSelectAll"
<td @click.stop="OffEdit"><div class="row items-center hoverShow" :indeterminate="isIndeterminate"
:style="{'opacity':item.singleChoice?1:''}"> />
<el-checkbox size="sm" class="SelectAllBox" v-model="item.singleChoice" </th>
@click="singleChoice(item)"/></div></td> <th colspan="2" class="text-light">
<td style="width: 30px;" @click.stop="OffEdit"> <div class="text-left q-pl-md">文档名称</div>
<img v-if="item.TemplateType" class="q-px-md" :src="item.TemplateType==1?datas.pdfImg:datas.adsImg" </th>
style="height: 25px;" /> <th class="text-light" style="min-width: 150px; width: 150px">
<img v-else class="q-px-md" :src="datas.folderImg" 最近修改
style="height: 25px;" /> </th>
</td> <th class="text-light" style="min-width: 100px; width: 100px">
<td class="journeyAds-title wrap row"> 创建者
<div class="col" v-if="!item.editTitle" @click.stop="OffEdit"> </th>
<div class="row flex-center"> <th class="text-light" style="min-width: 120px; width: 120px">
<el-tooltip 操作
effect="dark" </th>
placement="top-start"> </tr>
<template #content><div style="max-width: 600px;">{{item.Title}}</div></template> <template v-for="(item,index) in dataList">
<div class="journeyAds-TitleCenter">{{item.Title}} <tr class="text-5B5D62 journeyAdsple-table pointer">
<span v-if="item.Title.length>70">...</span> <td @click.stop="item.FileType?OffEdit():editDelete(item,2)"><div class="row items-center hoverShow"
</div> :style="{'opacity':item.singleChoice?1:''}">
</el-tooltip> <el-checkbox size="sm" class="SelectAllBox" v-model="item.singleChoice"
</div> @click.stop="singleChoice(item)"/></div></td>
<td style="width: 30px;" @click.stop="item.FileType?OffEdit():editDelete(item,2)">
<img v-if="item.FileType" class="q-px-md" :src="item.FileType==1?datas.pdfImg:datas.adsImg"
style="height: 25px;" />
<img v-else class="q-px-md" :src="datas.folderImg"
style="height: 25px;" />
</td>
<td class="journeyAds-title wrap row">
<div class="col" v-if="!item.editTitle" @click.stop="item.FileType?OffEdit():editDelete(item,2)">
<div class="row flex-center">
<el-tooltip
placement="top-start">
<template #content><div style="max-width: 600px;">{{item.FileName}}</div></template>
<div class="journeyAds-TitleCenter">{{item.FileName}}
<span v-if="item.FileName.length>70">...</span>
</div> </div>
<el-input </el-tooltip>
class="journeyAds-Input" </div>
v-model="item.Title" </div>
autosize <el-input
type="textarea" class="journeyAds-Input"
placeholder="Please input" v-model="item.FileName"
maxlength="500" autosize
size="small" type="textarea"
v-if="item.editTitle" placeholder="Please input"
@blur="handleUpdateTitle(item)" maxlength="500"
/></td> size="small"
<td class="text-center" @click.stop="OffEdit"><span>{{item.Day?item.Day+'天前':item.UpdateTime}}</span></td> v-if="item.editTitle"
<td class="text-center" @click.stop="OffEdit"><span>{{item.CreateByName}}</span></td> @blur="handleUpdateTitle(item)"
<td class="text-center"> /></td>
<div class="hoverShow row items-center just-center q-pt-sm"> <td class="text-center" @click.stop="item.FileType?OffEdit():editDelete(item,2)"><span>{{item.Day?item.Day+'天前':item.UpdateTime}}</span></td>
<el-button type="primary" :icon="Edit" size="small" @click.stop="editDelete(item)">编辑</el-button> <td class="text-center" @click.stop="item.FileType?OffEdit():editDelete(item,2)"><span>{{item.CreateByName}}</span></td>
<el-dropdown class="q-pl-md" trigger="click"> <td class="text-center">
<el-icon size="16" color="#b1b7cf"><MoreFilled /></el-icon> <div class="hoverShow row items-center just-center q-pt-sm">
<template #dropdown> <el-button type="primary" :icon="Edit" size="small" @click.stop="editDelete(item)">编辑</el-button>
<el-dropdown-menu class="q-pa-md" @click.stop="OffEdit"> <el-dropdown class="q-pl-md" trigger="click">
<el-dropdown-item icon="EditPen" @click.stop="startEditTitle(item)">重命名</el-dropdown-item> <el-icon size="16" color="#b1b7cf"><MoreFilled /></el-icon>
<el-dropdown-item icon="Clock" @click.stop="history(item)">历史版本</el-dropdown-item> <template #dropdown>
<el-dropdown-item icon="Position" @click="()=>shareId=item.Id">分享</el-dropdown-item> <el-dropdown-menu class="q-pa-md" @click.stop="OffEdit">
<el-dropdown-item icon="Delete" @click="editDelete(item,1)">删除</el-dropdown-item> <el-dropdown-item v-if="item.FileType" icon="EditPen" @click.stop="startEditTitle(item)">重命名</el-dropdown-item>
</el-dropdown-menu> <el-dropdown-item v-if="item.FileType" icon="Clock" @click.stop="history(item)">历史版本</el-dropdown-item>
</template> <el-dropdown-item v-if="item.FileType" icon="Position" @click="()=>shareId=item.Id">分享</el-dropdown-item>
</el-dropdown> <el-dropdown-item icon="Delete" @click="editDelete(item,1)">删除</el-dropdown-item>
</div></td> </el-dropdown-menu>
</tr> </template>
</template> </el-dropdown>
</table> </div>
</div> </td>
<div v-if="dataList.length == 0 && !loading" class="q-mt-lg bg-white rounded" </tr>
style="padding: 30px 10px 30px 10px;"> </template>
<el-empty description="暂无数据" />
</div> </table>
<el-divider class="no-bg q-mt-lg" v-if='queryObj.pageCount == queryObj.pageIndex && !loading'> </div>
<span class="text-small bg-white" style="padding: 0 10px;color:#a3a3a3">已加载完成所有数据</span> <div
</el-divider> v-if="dataList.length == 0 && !loading"
<div style="height:40px;" class="q-mt-md no-bg" background="transparent" v-loading="loading" element-loading-text="正在加载中"></div> class="q-mt-lg bg-white rounded"
</el-scrollbar> style="padding: 30px 10px 30px 10px"
>
<el-empty description="暂无数据" />
</div>
<el-divider
class="no-bg q-mt-lg"
v-if="queryObj.pageCount == queryObj.pageIndex && !loading"
>
<span
class="text-small bg-white"
style="padding: 0 10px; color: #a3a3a3"
>已加载完成所有数据</span
>
</el-divider>
<div
style="height: 40px"
class="q-mt-md no-bg"
background="transparent"
v-loading="loading"
element-loading-text="正在加载中"
></div>
</el-scrollbar>
</div> </div>
<ShareForm :id="shareId" v-if="shareId>0" @close="()=>shareId=0"></ShareForm> <ShareForm
<Folder :folder-id="folderObj?.id" :folder-name="folderObj?.name" :parent-id="folderObj.parentId" v-if="folderObj.id>-1" @close="()=>folderObj.id=-1" @success="refreshHandler()"></Folder> :id="shareId"
<HistoricalVersion :details="journeyAdsDetails" v-if="journeyAdsDetails.Id>0" @close="()=>journeyAdsDetails={}"></HistoricalVersion> v-if="shareId > 0"
@close="() => (shareId = 0)"
></ShareForm>
<Folder
:folder-id="folderObj?.id"
:folder-name="folderObj?.name"
:parent-id="folderObj.parentId"
:folder-type="folderObj?.type"
v-if="folderObj.id > -1"
@close="() => (folderObj.id = -1)"
@success="refreshHandler()"
></Folder>
<HistoricalVersion
:details="journeyAdsDetails"
v-if="journeyAdsDetails.FileId > 0"
@close="() => (journeyAdsDetails = {})"
></HistoricalVersion>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, reactive, provide, watch, inject, onMounted } from 'vue' import { ref, reactive, provide, watch, inject, onMounted } from "vue";
import { ElLoading, ElMessage, ElMessageBox } from "element-plus"; import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import { MoreFilled,Edit } from '@element-plus/icons-vue' import { MoreFilled, Edit, ArrowLeft } from "@element-plus/icons-vue";
import ConfigService from '@/services/ConfigService' import ConfigService from "@/services/ConfigService";
import { injectKeyTemplate } from '@/types/injectKey' import FolderService from "@/services/FolderService";
import { getDaysBetween } from '@/utils/common' import { injectKeyTemplate } from "@/types/injectKey";
import { useSellTemplateStore, useScreenStore, useSlidesStore } from '@/store' import { getDaysBetween } from "@/utils/common";
import ShareForm from './ShareForm.vue'; import { useSellTemplateStore, useScreenStore, useSlidesStore } from "@/store";
import Folder from './Folder.vue'; import ShareForm from "./ShareForm.vue";
import HistoricalVersion from './HistoricalVersion.vue'; import Folder from "./Folder.vue";
import HistoricalVersion from "./HistoricalVersion.vue";
const SalesEditorStore = useSellTemplateStore() import Draggable from "vuedraggable";
const marketStore = useScreenStore()
const props = defineProps({
currentMenu:{
type:Number,
default:3
}
})
const SalesEditorStore = useSellTemplateStore();
const marketStore = useScreenStore();
const props = defineProps({
currentMenu: {
type: Number,
default: 3,
},
});
const PopoverVisibleControls = ref(false) const PopoverVisibleControls = ref(false);
const shareId = ref(0) const shareId = ref(0);
const journeyAdsDetails = ref({}) const journeyAdsDetails = ref({});
const showHistory = ref(true) const Navigation = ref({});
const isIndeterminate = ref(false) const showHistory = ref(true);
const dataList = ref([] as Array < any > ) const isIndeterminate = ref(false);
const searchData = ref({} as any) const dataList = ref([] as Array<any>);
searchData.value = inject(injectKeyTemplate) const searchData = ref({} as any);
const datas = reactive({ searchData.value = inject(injectKeyTemplate);
selectedDatas: [] as Array, const deleteLoading = ref<any>(null);
selectAll: false as any, const datas = reactive({
journeyAds:{RefreshLoading:false} as any, selectedDatas: [] as Array,
pdfImg: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708337830000_43.png', selectAll: false as any,
adsImg: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708250377000_777.png', journeyAds: { RefreshLoading: false } as any,
folderImg: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708250377000_777.png', pdfImg:
}) "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708337830000_43.png",
const folderObj = ref<{id:number,name:string,parentId:number}>({id:-1,name:'',parentId:0}) adsImg:
let TemplateType = 0 "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708250377000_777.png",
if(searchData.value.SellTemplateType) TemplateType = searchData.value.SellTemplateType folderImg: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708250377000_777.png",
});
const folderObj = ref<{
id: number;
name: string;
parentId: number;
type: number;
}>({ id: -1, name: "", parentId: 0, number: 1 });
let TemplateType = 0;
if (searchData.value.SellTemplateType)
TemplateType = searchData.value.SellTemplateType;
const queryObj = reactive({ const queryObj = reactive({
Title: '', pageIndex: 1,
pageIndex: 1, pageSize: 20,
pageSize: 20, pageCount: 0, //总页数
pageCount: 0, //总页数 FileType: TemplateType,
TemplateType: TemplateType, FileId: 0,
}) });
const editObj = reactive({}) const editObj = reactive({});
//datas.journeyAds = inject('journeyAds') //datas.journeyAds = inject('journeyAds')
const loading = ref(false as any) const loading = ref(false as any);
const SellTemplateRef = ref<any>() const SellTemplateRef = ref<any>();
const history = (row:any) => { // 拖拽
journeyAdsDetails.value = row const onMoveCallback = (event) => {
} console.log(event.relatedContext, "=====event1111");
};
const getdata = (event: any) => {
console.log(event, "=====event222222");
};
// 历史版本
const history = (row: any) => {
journeyAdsDetails.value = row;
};
// // 重命名
const handleRightClick = () =>{ const OffEdit = () => {
for (let i = 0; i < dataList.value.length; i++) {
dataList.value[i].editTitle = false;
if (
editObj.value &&
editObj.value.FileId &&
dataList.value[i].FileId == editObj.value.FileId
) {
dataList.value[i].FileName = editObj.value.FileName;
}
} }
};
// 重命名 const handleUpdateTitle = (row: any) => {
const OffEdit = () => { if (!row.FileName) row.FileName = editObj.value.FileName;
for(let i=0;i<dataList.value.length;i++){ row.editTitle = false;
dataList.value[i].editTitle = false if (row.FileName != editObj.value.FileName) {
if(editObj.value&&editObj.value.Id editObj.value.FileName = row.FileName;
&&dataList.value[i].Id==editObj.value.Id) { SetSellTemplate(row);
dataList.value[i].Title = editObj.value.Title
}
}
} }
const handleUpdateTitle = (row:any) => { };
if(!row.Title) return ElMessage({ const startEditTitle = (row: any) => {
showClose: true, row.editTitle = true;
message: '文档名称不能为空', editObj.value = JSON.parse(JSON.stringify(row));
type: 'warning', };
})
row.editTitle = false // 保存重命名
if(row.Title!=editObj.value.Title) { const SetSellTemplate = async (row: any) => {
editObj.value.Title = row.Title try {
SetSellTemplate(row) 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 clickSelectAll = () => {
if (datas.selectAll) {
datas.selectedDatas = dataList.value.map((x) => {
return x.FileId;
});
} else {
datas.selectedDatas = [];
isIndeterminate.value = false;
} }
const startEditTitle = (row:any) => {
for(let i=0;i<dataList.value.length;i++){ setTimeout(() => {
dataList.value[i].editTitle = false for (let i = 0; i < dataList.value.length; i++) {
if(dataList.value[i].Id==row.Id) { if (datas.selectAll == true) dataList.value[i].singleChoice = true;
row.editTitle = true else dataList.value[i].singleChoice = false;
sellGetTripTemplate(row) }
} }, 100);
} };
const singleChoice = (row: any) => {
if (!row.singleChoice) {
datas.selectedDatas.push(row.FileId);
} else {
let index;
for (let i = 0; i < datas.selectedDatas.length; i++) {
if (datas.selectedDatas[i] == row.FileId) index = i;
}
datas.selectedDatas.splice(index, 1);
} }
// 销售模版数据 isIndeterminate.value = false;
const sellGetTripTemplate = async (row:any) =>{ let checkedCount = datas.selectedDatas.length;
try { let datasList = dataList.value.length;
let queryMsg = { if (datasList > 0 && checkedCount > 0 && datasList == checkedCount)
Id: row.Id datas.selectAll = true;
} if (datasList > 0 && checkedCount > 0 && datasList > checkedCount) {
let dataRes = await ConfigService.sellGetTemplateDetails(queryMsg); datas.selectAll = "";
if (dataRes.data.resultCode == 1) { isIndeterminate.value = true;
editObj.value = dataRes.data.data
}
} catch (error) {
}
} }
// 保存重命名 if (datasList == 0 && checkedCount == 0) datas.selectAll = "";
const SetSellTemplate = async (row:any) => { };
const DeleteFile = async (item: any) => {
ElMessageBox.confirm("此操作将删除该文件夹,是否确定?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
try { try {
let TempId = row.TempId let queryMsg = {
let Id = row.Id FolderId: item.FileId,
let queryMsg = { };
Id: Id, deleteLoading.value = ElLoading.service({
TempId: TempId, lock: true,
TempData: editObj.value.TempData, text: "正在处理",
Title: editObj.value.Title, });
OWidth: 0, let pageRes = await FolderService.RemoveTripFolder(queryMsg);
OHeight: 0, if (pageRes.data.resultCode == 1) {
} ElMessage({
if(editObj.value.TemplateType==2){ showClose: true,
queryMsg.OWidth = editObj.value.Width message: `删除${
queryMsg.OHeight = editObj.value.Height queryObj.FileType == 2 ? "广告" : "行程"
} }文件夹成功`,
let TemplateRes = await ConfigService.sellSetTemplate(queryMsg); type: "success",
if (TemplateRes.data.resultCode == 1) { });
ElMessage({ refreshHandler();
showClose: true, } else {
message: '重命名成功', ElMessage({
type: 'success', showClose: true,
}) message: `删除${
}else{ queryObj.FileType == 2 ? "广告" : "行程"
ElMessage({ }文件夹失败`,
showClose: true, type: "warning",
message: '重命名失败', });
type: 'warning', }
}) deleteLoading.value.close();
} deleteLoading.value = null;
} catch (error) {} } catch (error) {}
} })
.catch(() => {});
// 全选按钮 };
const clickSelectAll = () => {
if(datas.selectAll) {
datas.selectedDatas = dataList.value.map(x=>{
return x.Id
})
}else {
datas.selectedDatas = []
isIndeterminate.value = false
}
setTimeout(()=>{
for(let i=0;i<dataList.value.length;i++){
if(datas.selectAll==true) dataList.value[i].singleChoice = true
else dataList.value[i].singleChoice = false
}
},100)
}
const singleChoice = (row:any) => {
if(!row.singleChoice){
datas.selectedDatas.push(row.Id)
}else {
let index
for(let i=0;i<datas.selectedDatas.length;i++){
if(datas.selectedDatas[i] == row.Id) index = i
}
datas.selectedDatas.splice(index,1)
}
isIndeterminate.value = false
let checkedCount = datas.selectedDatas.length
let datasList = dataList.value.length
if(datasList>0
&&checkedCount>0
&&datasList==checkedCount) datas.selectAll = true
if(datasList>0
&&checkedCount>0
&&datasList>checkedCount) {
datas.selectAll = ''
isIndeterminate.value = true
}
if(datasList==0&&checkedCount==0) datas.selectAll = ''
} const DeleteTemplate = async (item: any) => {
const setTemplateType = (Id:number) => { ElMessageBox.confirm("此操作将删除该模版,是否确定?", "提示", {
queryObj.pageIndex = 1 confirmButtonText: "确定",
queryObj.TemplateType = Id cancelButtonText: "取消",
querySearchHandler() type: "warning",
} })
const DeleteTemplate = async (item:any) => { .then(async () => {
ElMessageBox.confirm(
'此操作将删除该模版,是否确定?',
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
).then(async () => {
try {
let queryMsg = {
Id: item.Id
}
deleteLoading.value = ElLoading.service({
lock:true,
text:'正在处理'
})
let pageRes = await ConfigService.sellSetRemoveTemplate(queryMsg);
if (pageRes.data.resultCode == 1) {
queryObj.pageIndex = 1
ElMessage({
showClose: true,
message: `删除${item.TemplateType==2?'广告':'行程'}成功`,
type: 'success',
})
querySearchHandler()
}else {
ElMessage({
showClose: true,
message: `删除${item.TemplateType==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.Id
searchData.value.sellTempId = row.TempId
searchData.value.TemplateType = row.TemplateType
SalesEditorStore.setSalesEditor(2)
marketStore.setMarket(false)
}
}
const querySearchHandler = async () => {
loading.value = true
try { try {
if(queryObj.pageIndex == 1) dataList.value =[] let queryMsg = {
let pageRes = await ConfigService.sellGetTripOtherPage(queryObj); Id: item.FileId,
if (pageRes.data.resultCode == 1) { };
let arrList = function(list){ deleteLoading.value = ElLoading.service({
list.forEach(x => { lock: true,
x.show = false text: "正在处理",
x.singleChoice = false });
if(datas.selectAll) { let pageRes = await ConfigService.sellSetRemoveTemplate(queryMsg);
x.singleChoice = true if (pageRes.data.resultCode == 1) {
datas.selectedDatas.push(x.Id) ElMessage({
}else if(datas.selectedDatas.length>0&&datas.selectedDatas.indexOf(x.Id)!=-1) x.singleChoice = true showClose: true,
const date1 = new Date(); message: `删除${queryObj.FileType == 2 ? "广告" : "行程"}成功`,
const date2 = new Date(x.UpdateTime); type: "success",
x.Day = getDaysBetween(date1, date2) });
}); refreshHandler();
} } else {
arrList(pageRes.data.data.pageData) ElMessage({
dataList.value = dataList.value.concat(pageRes.data.data.pageData); showClose: true,
queryObj.pageCount = pageRes.data.data.pageCount; message: `删除${queryObj.FileType == 2 ? "广告" : "行程"}失败`,
} type: "warning",
loading.value = false });
datas.journeyAds.RefreshLoading = false }
} catch (error) { deleteLoading.value.close();
loading.value = false deleteLoading.value = null;
datas.journeyAds.RefreshLoading = false } catch (error) {}
} })
} .catch(() => {});
const scrollingHandler = () =>{ };
if(SellTemplateRef.value && !loading.value){ const editDelete = async (row: any, type: Number) => {
let maxHeight = SellTemplateRef.value.scrollHeight - SellTemplateRef.value.offsetHeight if (type == 1) {
let scrollTop = SellTemplateRef.value.scrollTop if (row.FileType) DeleteTemplate(row);
if((maxHeight - scrollTop==0||maxHeight - scrollTop<1) && queryObj.pageCount > queryObj.pageIndex) { else DeleteFile(row);
queryObj.pageIndex++ } else {
querySearchHandler() if (row.FileType) {
} 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);
} else {
// 2文件夹详情
if (type == 2) {
queryObj.FileId = row.FileId;
Navigation.value = row;
refreshHandler();
} else {
folderObj.value.id = row.FileId;
folderObj.value.name = row.FileName;
folderObj.value.type = row.FileType;
} }
}
} }
const refreshHandler = ()=>{ };
datas.journeyAds.RefreshLoading=true const querySearchHandler = async () => {
queryObj.pageIndex = 1 loading.value = true;
querySearchHandler() try {
if (queryObj.pageIndex == 1) dataList.value = [];
let pageRes = await FolderService.GetMyTripFolderPage(queryObj);
if (pageRes.data.resultCode == 1) {
let arrList = function (list) {
list.forEach((x) => {
x.show = false;
x.singleChoice = false;
if (datas.selectAll) {
x.singleChoice = true;
datas.selectedDatas.push(x.FileId);
} else if (
datas.selectedDatas.length > 0 &&
datas.selectedDatas.indexOf(x.FileId) != -1
)
x.singleChoice = true;
const date1 = new Date();
const date2 = new Date(x.UpdateTime);
x.Day = getDaysBetween(date1, date2);
});
};
arrList(pageRes.data.data.pageData);
dataList.value = dataList.value.concat(pageRes.data.data.pageData);
queryObj.pageCount = pageRes.data.data.pageCount;
}
loading.value = false;
datas.journeyAds.RefreshLoading = false;
} catch (error) {
loading.value = false;
datas.journeyAds.RefreshLoading = false;
} }
const operaFolder = (id:number,name:string)=>{ };
folderObj.value.id=id const scrollingHandler = () => {
folderObj.value.name=name if (SellTemplateRef.value && !loading.value) {
let maxHeight =
SellTemplateRef.value.scrollHeight - SellTemplateRef.value.offsetHeight;
let scrollTop = SellTemplateRef.value.scrollTop;
if (
(maxHeight - scrollTop == 0 || maxHeight - scrollTop < 1) &&
queryObj.pageCount > queryObj.pageIndex
) {
queryObj.pageIndex++;
querySearchHandler();
}
} }
};
const refreshHandler = () => {
datas.journeyAds.RefreshLoading = true;
queryObj.pageIndex = 1;
querySearchHandler();
};
const operaFolder = (id: number, name: string) => {
folderObj.value.FileId = id;
folderObj.value.name = name;
folderObj.value.type = queryObj.FileType;
console.log(folderObj.value);
};
watch(() => searchData.value.SellTemplateType, (n,o) => { watch(
isIndeterminate.value = false () => searchData.value.SellTemplateType,
datas.selectAll = false (n, o) => {
datas.selectedDatas = [] isIndeterminate.value = false;
setTemplateType(n) datas.selectAll = false;
}) datas.selectedDatas = [];
queryObj.FileType = n;
queryObj.FileId = 0;
refreshHandler();
}
);
onMounted(()=>{ onMounted(() => {});
})
querySearchHandler() querySearchHandler();
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import url('../../../assets/styles/common.css'); @import url("../../../assets/styles/common.css");
.SelectAllBox{ .SelectAllBox {
position: relative; position: relative;
top: 3px; top: 3px;
} }
.journeyAds-title{ .journeyAds-title {
}
} .journeyAds-TitleCenter {
.journeyAds-TitleCenter{ width: 100%;
width: 100%; height: 18px;
height: 18px; padding-bottom: 21px;
padding-bottom: 21px; overflow: hidden; /* 隐藏超出部分 */
overflow: hidden; /* 隐藏超出部分 */ text-overflow: ellipsis; /* 显示省略号 */
text-overflow: ellipsis; /* 显示省略号 */ white-space: wrap; /* 不换行 */
white-space: wrap; /* 不换行 */ position: relative;
position: relative; padding-right: 20px;
padding-right: 20px; }
} .journeyAds-TitleCenter span {
.journeyAds-TitleCenter span{ position: absolute;
position: absolute; right: 16px;
right: 16px; top: 0px;
top: 0px; }
} .journeyAds-Input {
.journeyAds-Input{ padding-right: 20px;
padding-right: 20px; position: relative;
position: relative; margin-bottom: 2px;
margin-bottom: 0px; ::v-deep(.el-textarea__inner) {
::v-deep(.el-textarea__inner){ padding: 5px;
padding: 5px; background: #f5f5f5;
background: #f5f5f5;
}
}
.journeyAds-container {
position: relative;
overflow: auto ;
}
.journeyAds-container th {
background: #fff;
position: sticky;
top: 0px;
z-index: 2;
} }
.journeyAdsple-table td>div{ }
display: flex; .journeyAds-container {
} position: relative;
.journeyAdsple-table td,.journeyAds-container th{ overflow: auto;
border-bottom: 1px solid #F6F6F6; }
} .journeyAds-container th {
.journeyAdsple-table td:first-child, background: #fff;
.journeyAdsple-table td:nth-child(2), position: sticky;
.journeyAds-container th:first-child{ top: 0px;
border: 0; z-index: 2;
} }
.journeyAdsple-table td{ .journeyAdsple-table td > div {
padding-bottom: 6px; display: flex;
} }
.journeyAdsple-table td:nth-child(2){ .journeyAdsple-table td,
padding-bottom: 0; .journeyAds-container th {
} border-bottom: 1px solid #f6f6f6;
.hoverShow{ }
opacity: 0; .journeyAdsple-table td:first-child,
} .journeyAdsple-table td:nth-child(2),
.journeyAdsple-table:hover .hoverShow{ .journeyAds-container th:first-child {
opacity: 1; border: 0;
} }
.journeyAdsple-table td {
</style> padding-bottom: 6px;
\ No newline at end of file }
.journeyAdsple-table td:nth-child(2) {
padding-bottom: 0;
}
.hoverShow {
opacity: 0;
}
.journeyAdsple-table:hover .hoverShow {
opacity: 1;
}
</style>
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