Commit 2c35a49a authored by 罗超's avatar 罗超

支持无画板导入

parent 6b6c0d52
...@@ -13,16 +13,21 @@ export const ResolveThumbHandler = async (psd:any)=>{ ...@@ -13,16 +13,21 @@ export const ResolveThumbHandler = async (psd:any)=>{
let imgs:Array<any> = [] let imgs:Array<any> = []
let imgBase64String = psd.image.toBase64() let imgBase64String = psd.image.toBase64()
for (let i = 0; i < _children.length; i++) { if(!isNotArtboard(_children)){
for (let i = 0; i < _children.length; i++) {
Z_INDEX = 2000
Z_INDEX = 2000
const item = _children[i]; const item = _children[i];
if(item.layer.artboard && item.layer.visible) { if(item.layer.artboard && item.layer.visible) {
let cropImagePath = await cropImage(imgBase64String,"image/jpeg",item.layer.artboard().export().coords) let cropImagePath = await cropImage(imgBase64String,"image/jpeg",item.layer.artboard().export().coords)
let imagePath = await compressionThumbnail(cropImagePath,"image/jpeg",600) let imagePath = await compressionThumbnail(cropImagePath,"image/jpeg",600)
imgs.push(imagePath) imgs.push(imagePath)
}
} }
}else{
let cropImagePath = await cropImage(imgBase64String,"image/jpeg",psd.tree())
let imagePath = await compressionThumbnail(cropImagePath,"image/jpeg",600)
imgs.push(imagePath)
} }
return imgs return imgs
...@@ -34,30 +39,34 @@ export const generateUniqueId = () => { ...@@ -34,30 +39,34 @@ export const generateUniqueId = () => {
} }
export const ResolvePsdToSliderHandler = async (psd:any) => { export const ResolvePsdToSliderHandler = async (psd:any) => {
const { slides } = storeToRefs(useSlidesStore()) const { slides } = storeToRefs(useSlidesStore())
const psdTree = psd.tree()
const ID_PREV = "import-slide-" const ID_PREV = "import-slide-"
let items:Array<any> = psd.tree().children().filter((x:any)=>x.layer.visible) let items:Array<any> = psdTree.children().filter((x:any)=>x.layer.visible)
let sliders:Array<Slide> = [] let sliders:Array<Slide> = []
if(items && items.length>0){ if(items && items.length>0){
if(!isNotArtboard(items)){
for (let i = 0; i < items.length; i++) { for (let i = 0; i < items.length; i++) {
const x = items[i];
const x = items[i]; // let t =CreateDefaultSlider(ID_PREV+i)
// let t =CreateDefaultSlider(ID_PREV+i) // let randomNum = Math.floor(Math.random()*100)+i
// let randomNum = Math.floor(Math.random()*100)+i // let t =CreateDefaultSlider(ID_PREV+randomNum)
// let t =CreateDefaultSlider(ID_PREV+randomNum) let t =CreateDefaultSlider(ID_PREV+i+generateUniqueId())
let t =CreateDefaultSlider(ID_PREV+i+generateUniqueId()) t.isTripItems=x.name.indexOf('trip_item')!=-1
t.isTripItems=x.name.indexOf('trip_item')!=-1 const {_children} = x
const {_children} = x
if(_children && _children.length>0){
if(_children && _children.length>0){ const {top,left} = x.layer.artboard().export().coords
const {top,left} = x.layer.artboard().export().coords t.elements = (await GetSlidersHandler(_children,left,top)).reverse()
t.elements = (await GetSlidersHandler(_children,left,top)).reverse()
}
sliders.push(t)
} }
}else{
let t =CreateDefaultSlider(ID_PREV+0+generateUniqueId())
t.isTripItems=false
t.elements = (await GetSlidersHandler(items,psdTree.left,psdTree.top)).reverse()
sliders.push(t) sliders.push(t)
} }
} }
if(slides.value.length>0 && !(slides.value.length==1 && slides.value[0].elements.length==0)){ if(slides.value.length>0 && !(slides.value.length==1 && slides.value[0].elements.length==0)){
let copySlides = JSON.parse(JSON.stringify(slides.value)) let copySlides = JSON.parse(JSON.stringify(slides.value))
...@@ -68,23 +77,37 @@ export const ResolvePsdToSliderHandler = async (psd:any) => { ...@@ -68,23 +77,37 @@ export const ResolvePsdToSliderHandler = async (psd:any) => {
} }
} }
const isNotArtboard = (items:any)=>{
return !(items.find((x:any)=>x.layer.artboard))
}
export const ResolvePsdDrawingBoardSize= async (psd:any) => { export const ResolvePsdDrawingBoardSize= async (psd:any) => {
let items:Array<any> = psd.tree().children().filter((x:any)=>x.layer.visible) let items:Array<any> = psd.tree().children().filter((x:any)=>x.layer.visible)
const psdTree = psd.tree()
let DrawingBoardSize = { let DrawingBoardSize = {
Width: 0, Width: 0,
Height: 0 Height: 0
} }
if(items && items.length>0){ if(!isNotArtboard(items)){
for (let i = 0; i < items.length; i++) {
const x = items[i]; if(items && items.length>0){
const {_children} = x for (let i = 0; i < items.length; i++) {
if(_children && _children.length>0){ const x = items[i];
DrawingBoardSize = { const {_children} = x
Width: x.layer.artboard().export().coords.right-x.layer.artboard().export().coords.left, if(_children && _children.length>0){
Height: x.layer.artboard().export().coords.bottom-x.layer.artboard().export().coords.top if(x.layer.artboard){
DrawingBoardSize = {
Width: x.layer.artboard().export().coords.right-x.layer.artboard().export().coords.left,
Height: x.layer.artboard().export().coords.bottom-x.layer.artboard().export().coords.top
}
}
} }
} }
}
}else{
DrawingBoardSize = {
Width: psdTree.right-psdTree.left,
Height: psdTree.bottom-psdTree.top
} }
} }
return DrawingBoardSize return DrawingBoardSize
...@@ -117,7 +140,6 @@ const CreateDefaultSlider = (id:string):Slide =>{ ...@@ -117,7 +140,6 @@ const CreateDefaultSlider = (id:string):Slide =>{
const GetSlidersHandler = async (child:any[],offsetLeft:number,offsetTop:number,groupId:string ='') : Promise<PPTElement[]> =>{ const GetSlidersHandler = async (child:any[],offsetLeft:number,offsetTop:number,groupId:string ='') : Promise<PPTElement[]> =>{
let elements = [] as Array<PPTElement> let elements = [] as Array<PPTElement>
for (let i = 0; i < child.length; i++) { for (let i = 0; i < child.length; i++) {
const x= child[i] const x= child[i]
Z_INDEX-- Z_INDEX--
...@@ -137,7 +159,6 @@ const GetSlidersHandler = async (child:any[],offsetLeft:number,offsetTop:number, ...@@ -137,7 +159,6 @@ const GetSlidersHandler = async (child:any[],offsetLeft:number,offsetTop:number,
} }
//groupId='' //groupId=''
} }
return elements return elements
} }
......
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