detail submit preview完善
This commit is contained in:
@@ -61,12 +61,10 @@
|
||||
<model
|
||||
ref="model"
|
||||
:key="positionKey"
|
||||
@canvasReload="canvasReload"
|
||||
@detailEdit="detailEdit"
|
||||
@addSketch="()=>isEditPattern.value = ''"
|
||||
@revocation="revocation"
|
||||
@oppositeRevocation="oppositeRevocation"
|
||||
@modelOnLoad="modelOnLoad"
|
||||
@sketchSysToLibrary="sketchSysToLibrary"
|
||||
></model>
|
||||
<div class="btn">
|
||||
@@ -171,12 +169,11 @@ export default defineComponent({
|
||||
fun:null,
|
||||
},
|
||||
positionKey:0,
|
||||
isUndividedLayerWithSinglePrint:false,
|
||||
detailLeftColorKey:0,
|
||||
})
|
||||
watch(()=>detailData.selectDetail,(newValue,oldValue)=>{
|
||||
detailData.imgDomIndex = detailData.frontBack.front.findIndex((item:any)=>item.id == newValue.id)
|
||||
if(newValue?.undividedLayer)newValue.undividedLayer_ = newValue.undividedLayer
|
||||
detailData.canvasKey += 1
|
||||
// privewDetail(oldValue)
|
||||
},{immediate: true})
|
||||
|
||||
@@ -198,6 +195,11 @@ export default defineComponent({
|
||||
detailData.loadingShow = true
|
||||
Https.axiosGet(url).then(
|
||||
async (rv: any) => {
|
||||
//清除画布JSON数据
|
||||
sessionStorage.removeItem('canvasList');
|
||||
sessionStorage.removeItem('revocation');
|
||||
sessionStorage.removeItem('oppositeRevocation');
|
||||
sessionStorage.setItem('key', 'value');
|
||||
store.commit('DesignDetail/setDesignDetail',rv)
|
||||
rv.clothes.forEach((item:any)=>{
|
||||
let a
|
||||
@@ -231,25 +233,17 @@ export default defineComponent({
|
||||
element.designType = 'Library'
|
||||
}
|
||||
});
|
||||
if(!item.layersObject[0].undividedLayerWithSinglePrint){
|
||||
detailData.isUndividedLayerWithSinglePrint = true
|
||||
}
|
||||
})
|
||||
detailData.singleOveral.value = rv.singleOverall
|
||||
detailData.designDetailShow = true
|
||||
// this.deleteShow = false
|
||||
initialize()
|
||||
setRevocation()
|
||||
if(rv.singleOverall == "single"){
|
||||
store.commit('DesignDetail/setDesignColthes',rv.clothes[0].id)
|
||||
modelOnLoad()
|
||||
}
|
||||
|
||||
|
||||
if(detailData.isUndividedLayerWithSinglePrint){
|
||||
}else{
|
||||
detailData.loadingShow = false
|
||||
}
|
||||
detailData.loadingShow = false
|
||||
resolve(rv)
|
||||
}
|
||||
).catch(rv=>{
|
||||
@@ -259,12 +253,6 @@ export default defineComponent({
|
||||
})
|
||||
|
||||
}
|
||||
const initialize = ()=>{//design后初始化
|
||||
|
||||
|
||||
sessionStorage.removeItem('oppositeRevocation')
|
||||
sessionStorage.removeItem('revocation')
|
||||
}
|
||||
//撤回
|
||||
const setRevocation = ()=>{//设置撤销
|
||||
let itemDetail = JSON.parse(JSON.stringify(detailData.designDetail))
|
||||
@@ -331,7 +319,7 @@ export default defineComponent({
|
||||
})
|
||||
for(let i = 0;i<list.length;i++){
|
||||
detailData.selectDetail
|
||||
let {scale,offset,priority,transpose,rotate,maskUrl,maskMinioUrl} = await (detailDom.model as any).getSubmitData(list[i],detailData.isUndividedLayerWithSinglePrint)
|
||||
let {scale,offset,priority,transpose,rotate,maskUrl,maskMinioUrl} = await (detailDom.model as any).getSubmitData(list[i])
|
||||
if(detailDom.detailRight?.privewDetail)await (detailDom.detailRight as any).privewDetail()
|
||||
let gradient = null
|
||||
let newData = list[i]?.newDetail?.[detailData.currentDetailType]
|
||||
@@ -354,6 +342,32 @@ export default defineComponent({
|
||||
detailData.selectDetail.maskUrl = ''
|
||||
detailData.selectDetail.maskMinioUrl = ''
|
||||
}
|
||||
function isNetworkPath(str) {
|
||||
if (typeof str !== 'string' || str.trim() === '') {
|
||||
return false;
|
||||
}
|
||||
const urlPatterns = [
|
||||
/^https?:\/\//i, // http:// 或 https://
|
||||
/^ftp:\/\//i, // ftp://
|
||||
/^ws:\/\//i, // ws://
|
||||
/^wss:\/\//i, // wss://
|
||||
/^\/\//, // 协议相对路径 //example.com
|
||||
/^data:/i, // data:image/png;base64,...(这是Base64,不是网络路径)
|
||||
];
|
||||
// 排除data:URL(这实际上是Base64)
|
||||
if (str.startsWith('data:')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return urlPatterns.some(pattern => pattern.test(str));
|
||||
}
|
||||
const printObjectToJSON = (list:any)=>{
|
||||
if(list?.length > 0){
|
||||
list.forEach((item:any)=>{
|
||||
if(item.object)item.object = JSON.stringify(item.object)
|
||||
})
|
||||
}
|
||||
}
|
||||
let data:any = {
|
||||
changed:false,
|
||||
color,
|
||||
@@ -361,7 +375,7 @@ export default defineComponent({
|
||||
id:(newData && detailData.currentDetailType == 'sketch' && isCurrent && !detailData.isEditPattern.value)?newData.id:list[i].id,
|
||||
maskMinioUrl:((newData && detailData.currentDetailType == 'sketch') || list[i].sketchString)?'':list[i]?.maskMinioUrl,
|
||||
// maskUrl:'',
|
||||
maskUrl:((newData && detailData.currentDetailType == 'sketch') || list[i].sketchString)?'':list[i]?.maskUrl,
|
||||
maskUrl:list[i]?.maskUrl || '',
|
||||
// offset:[
|
||||
// -233.13985,
|
||||
// 406.90964
|
||||
@@ -369,7 +383,7 @@ export default defineComponent({
|
||||
offset,
|
||||
transpose,
|
||||
rotate,
|
||||
partialDesign:(detailData.currentDetailType == 'sketch' || detailData.isEditPattern.value == 'editSketch')?{}:list[i].partialDesign,
|
||||
partialDesign:list[i].partialDesign,
|
||||
// partialDesign:detailData.isEditPattern.value?list[i].partialDesign:{},
|
||||
path:(newData && detailData.currentDetailType == 'sketch' && isCurrent && !detailData.isEditPattern.value)?newData.minIOPath:list[i].minIOPath,
|
||||
printObject:(newData && detailData.currentDetailType == 'print' && isCurrent && !detailData.isEditPattern.value)?{prints:newData}:list[i].printObject?list[i].printObject:{prints:[]},
|
||||
@@ -384,6 +398,8 @@ export default defineComponent({
|
||||
trims:(newData && detailData.currentDetailType == 'element' && isCurrent && !detailData.isEditPattern.value)?{prints:newData}:list[i].trims?.prints?list[i].trims:{prints:[]},
|
||||
accessory:(newData && detailData.currentDetailType == 'accessory' && isCurrent && !detailData.isEditPattern.value)?{prints:newData}:list[i].trims?.prints?list[i].trims:{prints:[]},
|
||||
}
|
||||
data.printObject.prints = printObjectToJSON(data.printObject.prints)
|
||||
data.trims.prints = printObjectToJSON(data.trims.prints)
|
||||
if((detailData.isEditPattern.value && list[i].color?.gradient) || (!detailData.isEditPattern.value && (list[i].newDetail?.color?.gradient || list[i].color?.gradient))){
|
||||
gradient = list[i].newDetail?.color?.gradient || list[i].color.gradient
|
||||
gradient.colorImg = await setGradual(gradient,320,700)
|
||||
@@ -398,7 +414,7 @@ export default defineComponent({
|
||||
let workspace = store.state.Workspace.probjects
|
||||
if(!detailData?.selectDetail?.path && !detailData?.selectDetail?.newDetail?.sketch?.minIOPath)return
|
||||
let clothes:any
|
||||
if(detailData.currentDetailType == 'models' || detailData.isUndividedLayerWithSinglePrint){
|
||||
if(detailData.currentDetailType == 'models'){
|
||||
clothes = await setClothes(detailData.designDetail.clothes,str)
|
||||
}else{
|
||||
clothes = await setClothes([detailData.selectDetail],str)
|
||||
@@ -412,6 +428,7 @@ export default defineComponent({
|
||||
sketchString:'',
|
||||
modelId:(detailData.currentDetailType == 'models' && detailData.designDetail.newModel)?detailData.designDetail.newModel.id:detailData.designDetail.oldModel?detailData.designDetail.oldModel.id:'',
|
||||
modelType:(detailData.currentDetailType == 'models' && detailData.designDetail.newModel)?detailData.designDetail.newModel.type:detailData.designDetail.oldModel?detailData.designDetail.oldModel.type:'',
|
||||
designType:detailData.selectDetail.id?'merage':'default',
|
||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||
processId:userDetail.value.userId,
|
||||
probjectId:store.state.Workspace.probjects.id,
|
||||
@@ -428,7 +445,6 @@ export default defineComponent({
|
||||
detailData.selectDetail.sketchString = null
|
||||
store.commit('DesignDetail/setPraeview',value)
|
||||
detailData.loadingShow = false
|
||||
detailData.isUndividedLayerWithSinglePrint = false
|
||||
canvasReload()
|
||||
// setRevocation()
|
||||
}).catch(res=>{
|
||||
@@ -447,13 +463,21 @@ export default defineComponent({
|
||||
sketchString:'',
|
||||
modelId:(detailData.currentDetailType == 'models' && detailData.designDetail.newModel)?detailData.designDetail.newModel.id:detailData.designDetail.oldModel?detailData.designDetail.oldModel.id:'',
|
||||
modelType:(detailData.currentDetailType == 'models' && detailData.designDetail.newModel)?detailData.designDetail.newModel.type:detailData.designDetail.oldModel?detailData.designDetail.oldModel.type:'',
|
||||
designType:detailData.selectDetail.id?'merage':'default',
|
||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||
processId:userDetail.value.userId,
|
||||
probjectId:store.state.Workspace.probjects.id,
|
||||
}
|
||||
detailData.loadingShow = true
|
||||
Https.axiosPost(Https.httpUrls.designSingle, data).then((rv)=>{
|
||||
Https.axiosPost(Https.httpUrls.designSingle, data).then(async (rv)=>{
|
||||
saveCanvasJSONToSession()
|
||||
// store.commit('DesignDetail/setPraeview',rv)
|
||||
const sessionCanvasList = sessionStorage.getItem('canvasList');
|
||||
const canvasList = sessionCanvasList ? JSON.parse(sessionCanvasList) : []
|
||||
for (let i = 0; i < canvasList.length; i++) {
|
||||
const index = detailData.designDetail.clothes.findIndex(item => item.id === canvasList[i].id);
|
||||
if(index>-1)await detailDom.canvasBox.saveCanvas(canvasList[i])
|
||||
}
|
||||
let designCollectionList = store.state.HomeStoreModule.designCollectionList
|
||||
let likeDesignCollectionList = store.state.HomeStoreModule.likeDesignCollectionList
|
||||
designCollectionList.forEach((item:any) => {
|
||||
@@ -503,19 +527,29 @@ export default defineComponent({
|
||||
|
||||
front.imageUrl = rv.targetFrontUrl
|
||||
back.imageUrl = rv.targetBackUrl
|
||||
detailData.selectDetail.undividedLayerWithSinglePrint = partialDesign
|
||||
store.commit('DesignDetail/canvasPreviewUpdata',{type:detailData.isEditPattern.value?'all':detailData.currentDetailType,callBack:setRevocation})
|
||||
})
|
||||
}
|
||||
img.src = detailData.selectDetail.path
|
||||
saveCanvasJSONToSession()
|
||||
}
|
||||
}
|
||||
const modelOnLoad = ()=>{
|
||||
if(!detailData.isUndividedLayerWithSinglePrint)return
|
||||
setTimeout(()=>{
|
||||
let data = getSubmitData('sub')
|
||||
store.dispatch('DesignDetail/setSubmit',data)
|
||||
const saveCanvasJSONToSession = ()=>{
|
||||
let canvasJSON = detailDom.canvasBox.getCanvasJSON()
|
||||
const sessionCanvasList = sessionStorage.getItem('canvasList');
|
||||
const list = sessionCanvasList ? JSON.parse(sessionCanvasList) : []
|
||||
let index = -1
|
||||
list.forEach((item:any,i:number)=>{
|
||||
if(item.id == detailData.selectDetail.id){
|
||||
index = i
|
||||
}
|
||||
})
|
||||
if(index < 0){
|
||||
list.push({id:detailData.selectDetail.id,canvasJSON:canvasJSON})
|
||||
}else{
|
||||
list[index].canvasJSON = canvasJSON
|
||||
}
|
||||
sessionStorage.setItem('canvasList', JSON.stringify(list));
|
||||
}
|
||||
const detailEdit = async (str:any)=>{
|
||||
if(str){
|
||||
@@ -574,10 +608,13 @@ export default defineComponent({
|
||||
}
|
||||
if(detailData.currentDetailType == 'color'){
|
||||
let color = detailData.selectDetail.newDetail?.color
|
||||
console.log(color)
|
||||
// let colorData:any = await getColorName(color?.rgba)
|
||||
if(detailData.selectDetail.newDetail?.color?.rgba?.r){
|
||||
color.rgba = {r:color.r,g:color.g,b:color.b,a:color.a}
|
||||
if(detailData.selectDetail.newDetail?.color){
|
||||
if(color.r){
|
||||
color.rgba = {r:color.r,g:color.g,b:color.b,a:color.a}
|
||||
}else{
|
||||
color.rbga = {}
|
||||
}
|
||||
otherData.color = color
|
||||
}
|
||||
}
|
||||
@@ -685,7 +722,6 @@ export default defineComponent({
|
||||
oppositeRevocation,
|
||||
detailEdit,
|
||||
canvasReload,
|
||||
modelOnLoad,
|
||||
sketchSysToLibrary,
|
||||
setSloganData,
|
||||
updateOtherLayers,//更新到画布图层 再canvasInit中执行
|
||||
|
||||
Reference in New Issue
Block a user