Commit e092dc76 authored by zhengke's avatar zhengke

Merge branch 'master' into 1.4.0

parents 825dd19c ccd06b45
...@@ -514,9 +514,6 @@ page { ...@@ -514,9 +514,6 @@ page {
.q-mt-lg{ .q-mt-lg{
margin-top:20px margin-top:20px
} }
.q-mb-md{
margin-bottom:10px
}
.q-mb-lg{ .q-mb-lg{
margin-bottom:20px margin-bottom:20px
} }
...@@ -738,7 +735,8 @@ page { ...@@ -738,7 +735,8 @@ page {
border:none !important; border:none !important;
} }
.el-button:not(.is-link).none-border,.el-menu-item.none-border, .el-button:not(.is-link).none-border,.el-menu-item.none-border,
.el-button:not(.is-link).none-border:hover,.el-menu-item.none-border:hover{ .el-button:not(.is-link).none-border:hover,.el-menu-item.none-border:hover,
.el-dropdown.none-border:hover,.el-dropdown-menu.none-border:hover{
border: 0; border: 0;
} }
.el-avatar--square{ .el-avatar--square{
......
<template>
<el-dialog v-model="dialogFormVisible"
:show-close="false"
:title="dialogTitle" width="340"
:close-on-press-escape="false" :close-on-click-modal="false" >
<div>
<el-input v-model="addEditMsg.GName"
placeholder="请输入分组名称">
</el-input>
<el-input class="q-pt-lg" type="Number" v-model="addEditMsg.SortNum"
placeholder="排序">
</el-input>
</div>
<template #footer>
<div class="dialog-footer">
<el-button @click="close">取消</el-button>
<el-button type="primary" @click="setGroup" :loading="setLoading">
确认
</el-button>
</div>
</template>
</el-dialog>
</template>
<script lang="ts" setup>
import { reactive, ref, onMounted, watch} from "vue";
import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import CloudDiskService from '@/services/CloudDiskService'
import { ApiResult } from "@/configs/axios";
const dialogFormVisible = ref(true)
const dialogTitle = ref('')
const setLoading = ref(false)
// const addEditMsg = reactive({
// Id: '',
// GName: '',
// SortNum: null,
// })
const props = defineProps({
dialogType: {
type: Number,
required: true,
},
addEditMsg: {
type: Object,
required: '',
},
})
const emit = defineEmits<{
(event: 'close'): void,
(event: 'success'): void,
}>()
dialogTitle.value = props.dialogType==1?'新增分组名称':'编辑分组名称'
const close = () =>{
dialogFormVisible.value = false
emit('close')
}
const setGroup = async () =>{
if(!props.addEditMsg.GName) return ElMessage.warning({
showClose: true,
message: `请输入分组名称`,
})
setLoading.value = true
let pageRes = await CloudDiskService.SetPPTCloudGroup(props.addEditMsg);
if (pageRes.data.resultCode==ApiResult.SUCCESS) {
dialogFormVisible.value = false
emit('success')
}
setLoading.value = false
}
</script>
\ No newline at end of file
<template>
<el-dialog v-model="dialogFormVisible"
:show-close="false"
:title="dialogTitle" width="340"
:close-on-press-escape="false" :close-on-click-modal="false" >
<div v-loading="loadingGroup">
<el-select v-model="params.GId" placeholder="Select" style="width: 100%;"
@change="getGName">
<el-option
v-for="item in GroupList"
:key="item.Id"
:label="item.GName"
:value="item.Id"
>
</el-option>
</el-select>
</div>
<template #footer>
<div class="dialog-footer">
<el-button @click="close">取消</el-button>
<el-button type="primary" @click="submit" :loading="setLoading">
确认{{dialogType==1?'复制':'移动'}}
</el-button>
</div>
</template>
</el-dialog>
</template>
<script lang="ts" setup>
import { reactive, ref, onMounted, watch} from "vue";
import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import CloudDiskService from '@/services/CloudDiskService'
import { ApiResult } from "@/configs/axios";
const dialogFormVisible = ref(true)
const dialogTitle = ref('')
const setLoading = ref(false)
const loadingGroup = ref(false)
// const GroupList = ref([] as any)
const currentGroup = ref('' as any)
const props = defineProps({
dialogType: {
type: Number,
required: true,
},
DetailsId: {
type: String,
required: '',
},
GroupId: {
type: String,
required: '',
},
GroupList:{
type: Array,
required: [],
}
})
const params = reactive({
Id: '' as String,
GId: '' as String,
})
params.GId = props.GroupId
const emit = defineEmits<{
(event: 'close'): void,
(event: 'success'): void,
}>()
dialogTitle.value = props.dialogType==1?'复制文件':'移动文件'
const getGName = () =>{
let GroupArr = GroupList.value.filter(x=>x.Id==params.GId)
currentGroup.value = GroupArr[0].GName
}
const close = () =>{
dialogFormVisible.value = false
emit('close')
}
const submit = () => {
params.Id = props.DetailsId
let text = ''
if(props.dialogType==1)text = `复制到${currentGroup.value}分组下`
else text = `移动至${currentGroup.value}分组下`
ElMessageBox.confirm(
`${text}`,
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
).then(() => {
setCopy()
}).catch(() => {})
}
const setCopy = async () =>{
setLoading.value = true
let pageRes;
if(props.dialogType==1) pageRes = await CloudDiskService.CloudFileCopy(params);
else pageRes = await CloudDiskService.CloudFileMove(params);
if (pageRes.data.resultCode==ApiResult.SUCCESS) {
dialogFormVisible.value = false
emit('success')
}
setLoading.value = false
}
const querySearchGroup = async () =>{
if(loadingGroup.value) return
loadingGroup.value = true
try {
// let datasRes = await CloudDiskService.GetPPTCloudLists('');
// if (datasRes.data.resultCode==ApiResult.SUCCESS) {
// GroupList.value = datasRes.data.data.list
// GroupList.value.unshift({
// Id: '',
// GName: '全部',
// RecordNum: datasRes.data.data.TotalNum
// })
// let GroupArr = GroupList.value.filter(x=>x.Id==params.GId)
// if(GroupArr.length==0) params.GId = ''
// }
loadingGroup.value = false
} catch (error) {
loadingGroup.value = false
}
}
querySearchGroup()
let GroupArr = props.GroupList.filter(x=>x.Id==params.GId)
if(GroupArr.length==0) params.GId = ''
</script>
\ No newline at end of file
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
<div class="CloudDisk-form row"> <div class="CloudDisk-form row">
<div class="CloudDisk-L"> <div class="CloudDisk-L">
<div class="row CloudDisk-L-inquire"> <div class="row CloudDisk-L-inquire">
<el-input v-model="GName" <el-input style="width: 123px;" v-model="GName"
placeholder="搜索分组名称" @keyup.enter="querySearchGroup" placeholder="搜索分组名称" clearable @keyup.enter="querySearchGroup"
@input="SearchGroup"> @input="SearchGroup">
</el-input> </el-input>
<el-button type="primary" @click="addEditGroup">添加</el-button> <el-button type="primary" @click="addEditGroup">添加</el-button>
</div> </div>
<div class="CloudDisk-L-Center fz14" v-loading="deleteLoading"> <div class="CloudDisk-L-Center fz14" v-loading="loadingGroup">
<div class="CloudDisk-L-Title row flex-between cusor-pointer" <div class="CloudDisk-L-Title row flex-between cusor-pointer"
v-for="(item,index) in GroupList" :key="index" @click.stop="Search(item)" v-for="(item,index) in GroupList" :key="index" @click.stop="Search(item)"
:class="[queryObj.CloudGroupId==item.Id?'active':'']"> :class="[queryObj.CloudGroupId==item.Id?'active':'']">
...@@ -42,9 +42,15 @@ ...@@ -42,9 +42,15 @@
</div> </div>
<div class="CloudDisk-R grow"> <div class="CloudDisk-R grow">
<div class="row CloudDisk-R-inquire"> <div class="row CloudDisk-R-inquire">
<el-input v-model="queryObj.FileName" <!-- <el-input v-model="queryObj.FileName"
placeholder="请输入图片名称搜索" @keyup.enter="Search" placeholder="请输入图片名称搜索" clearable @keyup.enter="Search"
@input="SearchImg" @change="SearchImg">
</el-input> -->
<el-input v-model="queryObj.FileName" placeholder="请输入图片名称搜索" clearable @keyup.enter="Search"
@input="SearchImg"> @input="SearchImg">
<template #append>
<el-button type="primary" style="color: white;" @click="Search">搜索</el-button>
</template>
</el-input> </el-input>
</div> </div>
<div ref="imgDiskRef" style="height: 420px;padding-top: 20px;"> <div ref="imgDiskRef" style="height: 420px;padding-top: 20px;">
...@@ -96,7 +102,6 @@ ...@@ -96,7 +102,6 @@
v-model:current-page="queryObj.pageIndex" v-model:current-page="queryObj.pageIndex"
:page-size="queryObj.pageSize" :page-size="queryObj.pageSize"
small-padding small-padding
small="small"
layout="prev, pager, next" layout="prev, pager, next"
:total="total" :total="total"
@size-change="handleSizeChange" @size-change="handleSizeChange"
...@@ -106,25 +111,12 @@ ...@@ -106,25 +111,12 @@
</div> </div>
</div> </div>
<el-dialog v-model="dialogFormVisible" <NewEditCloudDisk
:title="dialogTitle" width="340" @close="close"> v-if="dialogFormVisible"
<div> :dialogType="dialogType"
<el-input v-model="addEditMsg.GName" :addEditMsg="addEditMsg"
placeholder="请输入分组名称"> @close="close"
</el-input> @success="dialogFormVisible=false,querySearchGroup()"></NewEditCloudDisk>
<el-input class="q-pt-lg" type="Number" v-model="addEditMsg.SortNum"
placeholder="排序">
</el-input>
</div>
<template #footer>
<div class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button>
<el-button type="primary" @click="setGroup" :loading="setLoading">
确认
</el-button>
</div>
</template>
</el-dialog>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { Plus, Top, Bottom, Delete, Edit } from "@element-plus/icons-vue"; import { Plus, Top, Bottom, Delete, Edit } from "@element-plus/icons-vue";
...@@ -137,11 +129,12 @@ import AliyunUpload from '@/utils/upload/aliyun' ...@@ -137,11 +129,12 @@ import AliyunUpload from '@/utils/upload/aliyun'
import { useUserStore } from "@/store"; import { useUserStore } from "@/store";
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { ApiResult } from "@/configs/axios"; import { ApiResult } from "@/configs/axios";
import NewEditCloudDisk from './NewEdit'
const { token, userInfo } = storeToRefs(useUserStore()) const { token, userInfo } = storeToRefs(useUserStore())
const dialogFormVisible = ref(false) const dialogFormVisible = ref(false)
const dialogTitle = ref('') const dialogType = ref(0)
const queryObj = reactive({ const queryObj = reactive({
pageIndex: 1, pageIndex: 1,
pageSize: 11, pageSize: 11,
...@@ -161,11 +154,9 @@ const GroupId = ref(''|Number) ...@@ -161,11 +154,9 @@ const GroupId = ref(''|Number)
const imgDiskRef = ref<any>() const imgDiskRef = ref<any>()
const dataList = ref([] as any) const dataList = ref([] as any)
const loading = ref(false) const loading = ref(false)
const loadingGroup = ref(false)
const GroupList = ref([] as any) const GroupList = ref([] as any)
const setLoading = ref(false)
const deleteLoading = ref(false)
const deleteImgLoading = ref<any>(null)
const props = defineProps({ const props = defineProps({
active: '' as any, active: '' as any,
show: false as Boolean show: false as Boolean
...@@ -174,7 +165,8 @@ const props = defineProps({ ...@@ -174,7 +165,8 @@ const props = defineProps({
const GroupObj = ref({} as any) const GroupObj = ref({} as any)
const emit = defineEmits<{ const emit = defineEmits<{
(event: 'setImg'): void (event: 'setImg'): void,
(event: 'getImg'): void,
}>() }>()
watch(() => props.active, () => { watch(() => props.active, () => {
...@@ -288,27 +280,14 @@ const deleteImg = (item:any) => { ...@@ -288,27 +280,14 @@ const deleteImg = (item:any) => {
const addEditGroup = () =>{ const addEditGroup = () =>{
dialogFormVisible.value = true dialogFormVisible.value = true
dialogTitle.value = '添加分组名称' dialogType.value = 1
}
const setGroup = async () =>{
if(!addEditMsg.GName) return ElMessage.warning({
showClose: true,
message: `请输入分组名称`,
})
setLoading.value = true
let pageRes = await CloudDiskService.SetPPTCloudGroup(addEditMsg);
if (pageRes.data.resultCode==ApiResult.SUCCESS) {
dialogFormVisible.value = false
querySearchGroup()
}
setLoading.value = false
} }
const close = () =>{ const close = () =>{
addEditMsg.Id = '' addEditMsg.Id = ''
addEditMsg.GName = '' addEditMsg.GName = ''
addEditMsg.SortNum = null addEditMsg.SortNum = null
dialogFormVisible.value = false
} }
const EditGroup = (item:any) =>{ const EditGroup = (item:any) =>{
...@@ -317,11 +296,11 @@ const EditGroup = (item:any) =>{ ...@@ -317,11 +296,11 @@ const EditGroup = (item:any) =>{
addEditMsg.GName = data.GName addEditMsg.GName = data.GName
addEditMsg.SortNum = data.SortNum addEditMsg.SortNum = data.SortNum
dialogFormVisible.value = true dialogFormVisible.value = true
dialogTitle.value ='编辑分组名称' dialogType.value = 2
} }
// 删除 // 删除
const deleteGroup = (item:any) => { const deleteGroup = async (item:any) => {
ElMessageBox.confirm( ElMessageBox.confirm(
`此操作将删除该分组,是否确定?`, `此操作将删除该分组,是否确定?`,
'提示', '提示',
...@@ -331,13 +310,13 @@ const deleteGroup = (item:any) => { ...@@ -331,13 +310,13 @@ const deleteGroup = (item:any) => {
type: 'warning', type: 'warning',
} }
).then(async () => { ).then(async () => {
loadingGroup.value = true
try { try {
deleteLoading.value = true
let dataRes = await CloudDiskService.RemovePPTCloudGroup(item.Id) let dataRes = await CloudDiskService.RemovePPTCloudGroup(item.Id)
loadingGroup.value = false
if (dataRes.data.resultCode == 1) { if (dataRes.data.resultCode == 1) {
querySearchGroup() querySearchGroup()
} }
deleteLoading.value = false
} catch (error) {} } catch (error) {}
}).catch(() => {}) }).catch(() => {})
...@@ -347,6 +326,8 @@ const SearchGroup = () => { ...@@ -347,6 +326,8 @@ const SearchGroup = () => {
if(GName.value=='') querySearchGroup() if(GName.value=='') querySearchGroup()
} }
const querySearchGroup = async () =>{ const querySearchGroup = async () =>{
if(loadingGroup.value) return
loadingGroup.value = true
try { try {
let datasRes = await CloudDiskService.GetPPTCloudList(GName.value); let datasRes = await CloudDiskService.GetPPTCloudList(GName.value);
if (datasRes.data.resultCode==ApiResult.SUCCESS) { if (datasRes.data.resultCode==ApiResult.SUCCESS) {
...@@ -357,9 +338,11 @@ const querySearchGroup = async () =>{ ...@@ -357,9 +338,11 @@ const querySearchGroup = async () =>{
RecordNum: datasRes.data.data.TotalNum RecordNum: datasRes.data.data.TotalNum
}) })
} }
loadingGroup.value = false
} catch (error) { } catch (error) {
loadingGroup.value = false
} }
} }
const SearchImg = () =>{ const SearchImg = () =>{
if(queryObj.FileName=='') Search() if(queryObj.FileName=='') Search()
...@@ -374,6 +357,7 @@ const Search = (item:any=null) =>{ ...@@ -374,6 +357,7 @@ const Search = (item:any=null) =>{
} }
const querySearchHandler = async () =>{ const querySearchHandler = async () =>{
if(loading.value) return
loading.value = true loading.value = true
try { try {
// if(queryObj.pageIndex == 1) dataList.value =[] // if(queryObj.pageIndex == 1) dataList.value =[]
...@@ -423,6 +407,11 @@ onMounted(()=>{ ...@@ -423,6 +407,11 @@ onMounted(()=>{
}) })
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.CloudDisk-R-inquire::v-deep(.el-button){
border-top-left-radius: 0;
border-bottom-left-radius: 0;
/* height: 36px; */
}
.CloudDisk-L{ .CloudDisk-L{
border-right: 1px solid #E9E9E9; border-right: 1px solid #E9E9E9;
padding: 0 20px 22px 0; padding: 0 20px 22px 0;
...@@ -432,10 +421,10 @@ onMounted(()=>{ ...@@ -432,10 +421,10 @@ onMounted(()=>{
} }
.CloudDisk-L-inquire .el-input{ .CloudDisk-L-inquire .el-input{
width: 112px; width: 112px;
height: 36px; /* height: 36px; */
} }
.CloudDisk-L-inquire .el-button{ .CloudDisk-L-inquire .el-button{
height: 36px; /* height: 36px; */
margin-left: 20px; margin-left: 20px;
} }
.CloudDisk-L-Title:first-child{ .CloudDisk-L-Title:first-child{
...@@ -483,7 +472,7 @@ onMounted(()=>{ ...@@ -483,7 +472,7 @@ onMounted(()=>{
} }
.CloudDisk-R-inquire .el-input{ .CloudDisk-R-inquire .el-input{
width: 100%; width: 100%;
height: 36px; /* height: 36px; */
} }
.CloudDisk-R-Center{ .CloudDisk-R-Center{
flex-wrap: wrap; flex-wrap: wrap;
......
...@@ -84,7 +84,7 @@ import { useSellTemplateStore,useSlidesStore } from '@/store' ...@@ -84,7 +84,7 @@ import { useSellTemplateStore,useSlidesStore } from '@/store'
import { useScreenStore } from "@/store/screen"; import { useScreenStore } from "@/store/screen";
import { storeToRefs } from "pinia"; import { storeToRefs } from "pinia";
import { injectKeyTemplate } from '@/types/injectKey' import { injectKeyTemplate } from '@/types/injectKey'
import { createOpEditorLink, createSaleCreateLink, managerTemplateLink } from '@/utils/common' import { noDataImg, createOpEditorLink, createSaleCreateLink, managerTemplateLink, createSaleEditorLink } from '@/utils/common'
import { ElLoading, ElMessage, ElMessageBox } from "element-plus"; import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import UserCard from "@/components/User/UserCard.vue"; import UserCard from "@/components/User/UserCard.vue";
...@@ -92,8 +92,6 @@ import { Delete,View } from '@element-plus/icons-vue'; ...@@ -92,8 +92,6 @@ import { Delete,View } from '@element-plus/icons-vue';
import { VIEWPORT_SIZE, VIEWPORT_VER_SIZE } from '@/configs/canvas' import { VIEWPORT_SIZE, VIEWPORT_VER_SIZE } from '@/configs/canvas'
import foote from '@/components/footer/index.vue'; import foote from '@/components/footer/index.vue';
import { noDataImg } from "@/utils/common";
const slidesStore = useSlidesStore() const slidesStore = useSlidesStore()
const { const {
...@@ -160,7 +158,7 @@ const CloseDetails = () => { ...@@ -160,7 +158,7 @@ const CloseDetails = () => {
const ToggleImg = (text: String) => { const ToggleImg = (text: String) => {
if(text=='left'){ if(text=='left'){
props.TemCurrent scrollContainer.value.scrollTop = 0
emit('previous') emit('previous')
// if(datas.currentImg>0) { // if(datas.currentImg>0) {
// datas.currentImg-- // datas.currentImg--
...@@ -168,6 +166,7 @@ const ToggleImg = (text: String) => { ...@@ -168,6 +166,7 @@ const ToggleImg = (text: String) => {
// } // }
} }
if(text=='right'){ if(text=='right'){
scrollContainer.value.scrollTop = 0
emit('next') emit('next')
// if(datas.currentImg<imgList.value.length-1) { // if(datas.currentImg<imgList.value.length-1) {
// datas.currentImg++ // datas.currentImg++
...@@ -227,9 +226,16 @@ const getTemplate = async (item:any) => { ...@@ -227,9 +226,16 @@ const getTemplate = async (item:any) => {
* 页面跳转 * 页面跳转
*/ */
const goToTemplate = (item: any) => { const goToTemplate = (item: any) => {
if((searchData.value.TempId2&&searchData.value.TempId2!=item.TempId)||!searchData.value.TempId2) slidesStore.ClearSlides() searchData.value.TempId = item.TempId
if((searchData.value.TempId2&&searchData.value.TempId2!=item.TempId)||!searchData.value.TempId2) {
slidesStore.ClearSlides()
}
let url = '' let url = ''
if(model.value==2) url = createSaleCreateLink(item.TempId,item.TemplateType) if(model.value==2) url = createSaleCreateLink(item.TempId,item.TemplateType)
else if(model.value==2&&searchData.value.TempId2) {
let Editor = searchData.value.SalesEditor
url = createSaleEditorLink(Editor.id,item.TempId,Editor.type,Editor.pid,Editor.e,Editor.c)
}
else if(model.value==0 && router.currentRoute.value.params.configId) url = createOpEditorLink(parseInt(router.currentRoute.value.params.configId.toString()),item.TempType,item.TempId) else if(model.value==0 && router.currentRoute.value.params.configId) url = createOpEditorLink(parseInt(router.currentRoute.value.params.configId.toString()),item.TempType,item.TempId)
else if(model.value==1) { else if(model.value==1) {
searchData.value.currentMenu = null searchData.value.currentMenu = null
......
...@@ -3,6 +3,27 @@ import Api,{ HttpResponse, Result } from './../utils/request'; ...@@ -3,6 +3,27 @@ import Api,{ HttpResponse, Result } from './../utils/request';
class CloudDiskService{ class CloudDiskService{
static async CloudFileCopy(params:any):Promise<HttpResponse>{
return Api.Post("ppt_CloudFileCopy",params)
}
static async CloudFileMove(params:any):Promise<HttpResponse>{
return Api.Post("ppt_CloudFileMove",params)
}
static async UpdateCloudInfoName(params:any):Promise<HttpResponse>{
return Api.Post("ppt_UpdateCloudInfoName",params)
}
static async GetPPTCloudLists(GName:String):Promise<HttpResponse>{
let msg = {GName}
return Api.Post("ppt_GetPPTCloudList",msg)
}
static async GetPPTCloudInfoPages(params:any):Promise<HttpResponse>{
return Api.Post("ppt_GetPPTCloudInfoPage",params)
}
static async CheckCloudInfo(parms:any):Promise<HttpResponse>{ static async CheckCloudInfo(parms:any):Promise<HttpResponse>{
let msg = parms let msg = parms
return Api.Post("ppt_CheckCloudInfo",msg) return Api.Post("ppt_CheckCloudInfo",msg)
...@@ -15,11 +36,11 @@ class CloudDiskService{ ...@@ -15,11 +36,11 @@ class CloudDiskService{
static async GetPPTCloudList(GName:String):Promise<HttpResponse>{ static async GetPPTCloudList(GName:String):Promise<HttpResponse>{
let msg = {GName} let msg = {GName}
return Api.Post("ppt_GetMyCloudList",msg)//ppt_GetPPTCloudList return Api.Post("ppt_GetMyCloudList",msg)
} }
static async GetPPTCloudInfoPage(params:any):Promise<HttpResponse>{ static async GetPPTCloudInfoPage(params:any):Promise<HttpResponse>{
return Api.Post("ppt_GetMyPPTCloudInfoPage",params)//ppt_GetPPTCloudInfoPage return Api.Post("ppt_GetMyPPTCloudInfoPage",params)
} }
static async RemovePPTCloudGroup(Id:Number):Promise<HttpResponse>{ static async RemovePPTCloudGroup(Id:Number):Promise<HttpResponse>{
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="平台资料库" name="1"> <el-tab-pane label="平台资料库" name="1">
<template v-if="userInfo.iv||userInfo.it"> <template v-if="userInfo.iv||userInfo.it">
<el-row class="q-mb-md"> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-select v-model="datas.queryMsg.Type" class="m-2" <el-select v-model="datas.queryMsg.Type" class="m-2"
@change="SearchHandler()"> @change="SearchHandler()">
...@@ -19,14 +19,19 @@ ...@@ -19,14 +19,19 @@
/> />
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="18"> <el-col :span="18" class="spiderRes">
<el-input v-model="datas.queryMsg.Name" placeholder="输入关键字快速查找" clearable class="input-with-select q-pl-lg" @change="SearchHandler()"></el-input> <el-input class="input-with-select q-pl-lg" v-model="datas.queryMsg.Name" placeholder="输入关键字快速查找" clearable @keyup.enter="SearchHandler">
<template #append>
<el-button type="primary" style="color: white;" @click="SearchHandler">搜索</el-button>
</template>
</el-input>
<!-- <el-input v-model="datas.queryMsg.Name" placeholder="输入关键字快速查找" clearable class="input-with-select q-pl-lg" @change="SearchHandler()"></el-input> -->
</el-col> </el-col>
</el-row> </el-row>
<div class="row UploadPicture-box" v-loading="datas.loading"> <div class="row UploadPicture-box q-pt-lg" v-loading="datas.loading">
<div v-for="(item,index) in datas.imgList" class="UploadPicture-list" :key="item.ID"> <div v-for="(item,index) in datas.imgList" class="UploadPicture-list" :key="item.ID">
<div class="UploadPicture-listBox"> <div class="UploadPicture-listBox">
<img :src="item.Path" class="rounded" @click="getImgs(item,index)"/> <img :src="item.Path" class="" @click="getImgs(item,index)"/>
<div class="UploadPicture-Hover" v-if="item.show"> <div class="UploadPicture-Hover" v-if="item.show">
<div> <div>
<el-icon :size="20"><CircleCheckFilled/></el-icon> <el-icon :size="20"><CircleCheckFilled/></el-icon>
...@@ -37,9 +42,9 @@ ...@@ -37,9 +42,9 @@
</div> </div>
<div class="q-mt-md" style="display: flex;justify-content: center;"> <div class="q-mt-md" style="display: flex;justify-content: center;">
<el-pagination <el-pagination
v-model:current-page="currentPage" v-model:current-page="datas.queryMsg.pageIndex"
:page-size="datas.queryMsg.pageSize" :page-size="datas.queryMsg.pageSize"
small="small" small-padding
layout="prev, pager, next" layout="prev, pager, next"
:total="datas.queryMsg.total" :total="datas.queryMsg.total"
@size-change="handleSizeChange" @size-change="handleSizeChange"
...@@ -117,7 +122,6 @@ const imgOnline = ref('') ...@@ -117,7 +122,6 @@ const imgOnline = ref('')
const imgPath = ref('') const imgPath = ref('')
const imgUrl = ref('') const imgUrl = ref('')
const spiderImgUrl = ref('') const spiderImgUrl = ref('')
const currentPage = ref(1)
const upload = ref<UploadInstance>() const upload = ref<UploadInstance>()
const { userInfo } =storeToRefs(useUserStore()) const { userInfo } =storeToRefs(useUserStore())
...@@ -139,7 +143,6 @@ const datas = reactive({ ...@@ -139,7 +143,6 @@ const datas = reactive({
queryMsg:{ queryMsg:{
pageSize: 16, pageSize: 16,
pageIndex: 1, pageIndex: 1,
currentPage: 1,
total: 0, total: 0,
Type: 0, //1-酒店,2-餐厅,3-景点,4-票务,5-车辆,6-领队,7-购物店 Type: 0, //1-酒店,2-餐厅,3-景点,4-票务,5-车辆,6-领队,7-购物店
Name: "", //资源图片名称 Name: "", //资源图片名称
...@@ -340,6 +343,10 @@ const getImgList = async () =>{ ...@@ -340,6 +343,10 @@ const getImgList = async () =>{
getImgList() getImgList()
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.spiderRes::v-deep(.el-button){
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.UploadPicture-from{ .UploadPicture-from{
position: fixed; position: fixed;
left: 0; left: 0;
...@@ -370,20 +377,23 @@ getImgList() ...@@ -370,20 +377,23 @@ getImgList()
} }
.UploadPicture-box{ .UploadPicture-box{
flex-wrap: wrap; flex-wrap: wrap;
margin-left: -10px;
} }
.UploadPicture-list{ .UploadPicture-list{
width: 150px; width: calc(25% - 10px) !important;
margin: 5px; margin-bottom: 10px;
margin-left: 10px;
} }
.UploadPicture-listBox{ .UploadPicture-listBox{
width: 150px; width: 150px;
height: 0; height: 0;
position: relative; position: relative;
padding-bottom: 56.25%; padding-bottom: 64.96%;
} }
.UploadPicture-list img{ .UploadPicture-list img{
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 5px;
position: absolute; position: absolute;
object-fit: cover; object-fit: cover;
cursor: pointer; cursor: pointer;
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<Popover v-if="SalesEditor>0" trigger="click" placement="bottom-start" v-model:value="mainBackVisible"> <Popover v-if="SalesEditor>0" trigger="click" placement="bottom-start" v-model:value="mainBackVisible">
<template #content> <template #content>
<div class="menu-item" @click="goBack(1)">重选 {{searchData.TemplateType==2?'广告':'模版'}}</div> <div class="menu-item" @click="goBack(1)">重选 {{searchData.TemplateType==2?'广告':'模版'}}</div>
<div class="menu-item" @click="goBack(0)">返回首页</div> <div class="menu-item" @click="goBack(0)">返回工作台</div>
</template> </template>
<div class="menu-item"> <div class="menu-item">
<el-icon color="#564bec"><ArrowLeftBold /></el-icon> <el-icon color="#564bec"><ArrowLeftBold /></el-icon>
...@@ -224,7 +224,6 @@ const journeyAdsDetails = ref<Object>() ...@@ -224,7 +224,6 @@ const journeyAdsDetails = ref<Object>()
const psdVisibleStatus = ref(false) const psdVisibleStatus = ref(false)
const { market, model, ConfigId, CoverImg, dataLoading, TempId, TempType, SourceLoading } = storeToRefs(useScreenStore()) const { market, model, ConfigId, CoverImg, dataLoading, TempId, TempType, SourceLoading } = storeToRefs(useScreenStore())
const routers = useRouter(); const routers = useRouter();
// 返回到首页 type 1 模版列表页 0 销售在线模版页 // 返回到首页 type 1 模版列表页 0 销售在线模版页
const goBack = (type:any) =>{ const goBack = (type:any) =>{
mainBackVisible.value = false mainBackVisible.value = false
...@@ -241,15 +240,23 @@ const goBack = (type:any) =>{ ...@@ -241,15 +240,23 @@ const goBack = (type:any) =>{
mainStore.setToolbarState(ToolbarStates.SLIDE_DESIGN) mainStore.setToolbarState(ToolbarStates.SLIDE_DESIGN)
let path ='/' let path ='/'
const t = useSlidesStore().viewportRatio<0?1:2 const t = useSlidesStore().viewportRatio<0?1:2
searchData.value.SalesEditor = null
if(model.value==0) { if(model.value==0) {
path = `/market/op/${ConfigId.value}/${TempType.value}` path = `/market/op/${ConfigId.value}/${TempType.value}`
router.push({path}) router.push({path})
}else if(model.value==2&&searchData.value.currentMenu>=0){ }else if(model.value==2){
if(type==1) path = `/market/create` if(type==1) {
else { searchData.value.SalesEditor = router.currentRoute.value.params
searchData.value.TempId2 = queryObj.value.TempId
marketStore.setMarket(true)
SalesBackStore.setSalesBack(1)
searchData.value.TempId = 0
path = `/market/create/${queryObj.value.TemplateType==1?'trip':'ad'}${searchData.value.currentMenu>=0?'/'+searchData.value.currentMenu:''}`
}
else if(searchData.value.currentMenu>=0) {
path = `/space/${searchData.value.currentMenu}` path = `/space/${searchData.value.currentMenu}`
searchData.value.currentMenu = null searchData.value.currentMenu = null
} }else path = `/space`
router.push({path}) router.push({path})
} }
else window.history.back() else window.history.back()
...@@ -258,13 +265,7 @@ const goBack = (type:any) =>{ ...@@ -258,13 +265,7 @@ const goBack = (type:any) =>{
} }
// 返回是否清空数据 // 返回是否清空数据
const setNewDatas = (type,i) => { const setNewDatas = (type,i) => {
if(type) { if(!type) {
marketStore.setMarket(true)
if(model.value==2) {
if(searchData.value.TempId) searchData.value.TempId2 = searchData.value.TempId
SalesBackStore.setSalesBack(1)
}
}else {
searchData.value.TempId2 = 0 searchData.value.TempId2 = 0
searchData.value.sellId = 0 searchData.value.sellId = 0
searchData.value.sellTempId = 0 searchData.value.sellTempId = 0
...@@ -272,8 +273,6 @@ const setNewDatas = (type,i) => { ...@@ -272,8 +273,6 @@ const setNewDatas = (type,i) => {
SalesBackStore.setSalesBack(0) SalesBackStore.setSalesBack(0)
SalesEditorStore.setSalesEditor(0) SalesEditorStore.setSalesEditor(0)
} }
searchData.value.TempId = 0
// i 1模版权限 0无模版权限
CoverImgStore.setCoverImg(null) CoverImgStore.setCoverImg(null)
} }
// 导入PSD // 导入PSD
......
...@@ -522,7 +522,8 @@ const GetTripTemplate = async () =>{ ...@@ -522,7 +522,8 @@ const GetTripTemplate = async () =>{
queryObj.value.TempType = dataRes.data.data.TempType queryObj.value.TempType = dataRes.data.data.TempType
queryObj.value.TemplateType = dataRes.data.data.TemplateType queryObj.value.TemplateType = dataRes.data.data.TemplateType
queryObj.value.AuthType = dataRes.data.data.AuthType queryObj.value.AuthType = dataRes.data.data.AuthType
queryObj.value.Title = dataRes.data.data.Title
if(queryObj.value.Width){ if(queryObj.value.Width){
VIEWPORT_SIZE.Value = queryObj.value.Height VIEWPORT_SIZE.Value = queryObj.value.Height
VIEWPORT_VER_SIZE.Value = queryObj.value.Width VIEWPORT_VER_SIZE.Value = queryObj.value.Width
...@@ -943,7 +944,6 @@ const contextmenusThumbnailItem = (): ContextmenuItem[] => { ...@@ -943,7 +944,6 @@ const contextmenusThumbnailItem = (): ContextmenuItem[] => {
}, },
] ]
} }
if(searchData.value.sellId&&!searchData.value.TempId) sellGetTripTemplate() if(searchData.value.sellId&&!searchData.value.TempId) sellGetTripTemplate()
if(!viewSlideShow) { if(!viewSlideShow) {
GetTripTemplate() GetTripTemplate()
......
...@@ -237,7 +237,7 @@ import { useSellTemplateStore, useSlidesStore } from '@/store' ...@@ -237,7 +237,7 @@ import { useSellTemplateStore, useSlidesStore } from '@/store'
import { useScreenStore } from "@/store/screen"; import { useScreenStore } from "@/store/screen";
import { storeToRefs } from "pinia"; import { storeToRefs } from "pinia";
import { injectKeyTemplate } from '@/types/injectKey' import { injectKeyTemplate } from '@/types/injectKey'
import { createOpEditorLink, createSaleCreateLink, managerTemplateLink } from '@/utils/common' import { createOpEditorLink, createSaleCreateLink, managerTemplateLink, createSaleEditorLink } from '@/utils/common'
import { ElLoading, ElMessage, ElMessageBox } from "element-plus"; import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import UserCard from "@/components/User/UserCard.vue"; import UserCard from "@/components/User/UserCard.vue";
...@@ -430,9 +430,16 @@ const getTemplate = (item:any,index:Number) => { ...@@ -430,9 +430,16 @@ const getTemplate = (item:any,index:Number) => {
* 页面跳转 * 页面跳转
*/ */
const goToTemplate = (item: any) => { const goToTemplate = (item: any) => {
if((searchData.value.TempId2&&searchData.value.TempId2!=item.TempId)||!searchData.value.TempId2) slidesStore.ClearSlides() searchData.value.TempId = item.TempId
if((searchData.value.TempId2&&searchData.value.TempId2!=item.TempId)||!searchData.value.TempId2) {
slidesStore.ClearSlides()
}
let url = '' let url = ''
if(model.value==2) url = createSaleCreateLink(item.TempId,item.TemplateType) if(model.value==2&&!searchData.value.TempId2) url = createSaleCreateLink(item.TempId,item.TemplateType)
else if(model.value==2&&searchData.value.TempId2) {
let Editor = searchData.value.SalesEditor
url = createSaleEditorLink(Editor.id,item.TempId,Editor.type,Editor.pid,Editor.e,Editor.c)
}
else if(model.value==0 && router.currentRoute.value.params.configId) url = createOpEditorLink(parseInt(router.currentRoute.value.params.configId.toString()),item.TempType,item.TempId) else if(model.value==0 && router.currentRoute.value.params.configId) url = createOpEditorLink(parseInt(router.currentRoute.value.params.configId.toString()),item.TempType,item.TempId)
else if(model.value==1) url = managerTemplateLink(item.TempId,item.TemplateType) else if(model.value==1) url = managerTemplateLink(item.TempId,item.TemplateType)
if(url!='') { if(url!='') {
......
This diff is collapsed.
...@@ -30,6 +30,11 @@ ...@@ -30,6 +30,11 @@
<div class="tabs-items"> <div class="tabs-items">
<div class="item" :class="{'active':currentMenu==-1}" @click="setCurrentMenuHandler(-1)" v-if="userInfo.iv||userInfo.it"><el-icon color="#564bec" class="q-mr-md" size="16"><Delete /></el-icon>回收站</div> <div class="item" :class="{'active':currentMenu==-1}" @click="setCurrentMenuHandler(-1)" v-if="userInfo.iv||userInfo.it"><el-icon color="#564bec" class="q-mr-md" size="16"><Delete /></el-icon>回收站</div>
</div> </div>
<div class="tabs-items" v-if="userInfo.iv||userInfo.it">
<div class="q-mb-md q-ml-lg text-small">我的云盘</div>
<div class="item" :class="{'active':currentMenu==5}" @click="setCurrentMenuHandler(5)"><el-icon color="#564bec" class="q-mr-md" size="16"><MostlyCloudy /></el-icon>云盘空间</div>
</div>
</div> </div>
<div class="col"> <div class="col">
<BrowsingHistory :current-menu="currentMenu" v-if="currentMenu==0"></BrowsingHistory> <BrowsingHistory :current-menu="currentMenu" v-if="currentMenu==0"></BrowsingHistory>
...@@ -37,6 +42,7 @@ ...@@ -37,6 +42,7 @@
<journeyAds :position="position" :current-menu="currentMenu" v-if="currentMenu==3||currentMenu==4" @destroy-position="()=>position=null"></journeyAds> <journeyAds :position="position" :current-menu="currentMenu" v-if="currentMenu==3||currentMenu==4" @destroy-position="()=>position=null"></journeyAds>
<RecycleBin :current-menu="currentMenu" v-if="currentMenu==-1"></RecycleBin> <RecycleBin :current-menu="currentMenu" v-if="currentMenu==-1"></RecycleBin>
<ShareList :position="position" v-if="currentMenu==2" @destroy-position="()=>position=null"></ShareList> <ShareList :position="position" v-if="currentMenu==2" @destroy-position="()=>position=null"></ShareList>
<CloudDiskList v-if="currentMenu==5"></CloudDiskList>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
...@@ -48,6 +54,7 @@ import StarTarget from './StarTarget.vue' ...@@ -48,6 +54,7 @@ import StarTarget from './StarTarget.vue'
import ShareList from './Share.vue'; import ShareList from './Share.vue';
import journeyAds from './journeyAds.vue' import journeyAds from './journeyAds.vue'
import RecycleBin from './RecycleBin.vue' import RecycleBin from './RecycleBin.vue'
import CloudDiskList from './CloudDiskList.vue'
import { Plus,ArrowDown,Clock,Star,Share,Picture,Management,Delete,Setting } from '@element-plus/icons-vue'; import { Plus,ArrowDown,Clock,Star,Share,Picture,Management,Delete,Setting } from '@element-plus/icons-vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { openNewBlank } from '@/utils/common'; import { openNewBlank } from '@/utils/common';
......
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