Merge branch 'dev_vite' of http://18.167.251.121:10003/aidlab/aida_front into dev_vite
This commit is contained in:
@@ -85,7 +85,7 @@
|
||||
" alt="">
|
||||
</div>
|
||||
<div class="contentRight" v-else-if="currentDetailType && !isEditPattern.value">
|
||||
<detailRight ref="detailRight"></detailRight>
|
||||
<detailRight ref="detailRight" :sketchSize="sketchSize"></detailRight>
|
||||
<div class="btn"
|
||||
v-show="
|
||||
currentDetailType !== 'color' &&
|
||||
@@ -101,7 +101,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="contentRight canvas" v-if="selectDetail && selectDetail.id && currentDetailType" :class="{'active': isEditPattern.value}">
|
||||
<canvasBox ref="canvasBox" :key="canvasKey" @setSloganData="setSloganData" :isEditPattern="isEditPattern.value" :updateOtherLayers="updateOtherLayers"></canvasBox>
|
||||
<canvasBox ref="canvasBox" :key="canvasKey" :sketchSize="sketchSize" @setSloganData="setSloganData" :isEditPattern="isEditPattern.value" :updateOtherLayers="updateOtherLayers"></canvasBox>
|
||||
</div>
|
||||
<!-- 画布 -->
|
||||
<!-- <div class="content" v-else-if="selectDetail && selectDetail.id">
|
||||
@@ -170,13 +170,29 @@ export default defineComponent({
|
||||
},
|
||||
positionKey:0,
|
||||
detailLeftColorKey:0,
|
||||
sketchSize:{
|
||||
width:0,
|
||||
height:0,
|
||||
}
|
||||
})
|
||||
watch(()=>detailData.selectDetail,(newValue,oldValue)=>{
|
||||
const getSketchSize:any = async ()=>{
|
||||
let img = new Image();
|
||||
img.src = detailData.selectDetail.path;
|
||||
await new Promise((resolve, reject) => {
|
||||
img.onload = () => {
|
||||
detailData.sketchSize.width = img.width
|
||||
detailData.sketchSize.height = img.height
|
||||
resolve([img.width, img.height]);
|
||||
}
|
||||
img.onerror = reject;
|
||||
});
|
||||
}
|
||||
watch(()=>detailData.selectDetail,async (newValue,oldValue)=>{
|
||||
detailData.imgDomIndex = detailData.frontBack.front.findIndex((item:any)=>item.id == newValue.id)
|
||||
if(newValue)await getSketchSize()
|
||||
detailData.canvasKey += 1
|
||||
// privewDetail(oldValue)
|
||||
},{immediate: true})
|
||||
|
||||
provide('getCanvasIfEdit',detailData.getCanvasIfEdit)
|
||||
provide('singleOveral',detailData.singleOveral)
|
||||
provide('isEditPattern',detailData.isEditPattern)
|
||||
@@ -342,25 +358,6 @@ 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)=>{
|
||||
@@ -398,8 +395,11 @@ 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(!data.partialDesign.partialDesignMinioPath){
|
||||
data.partialDesign.partialDesignMinioPath = data.path
|
||||
}
|
||||
printObjectToJSON(data.printObject.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)
|
||||
@@ -428,7 +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',
|
||||
designType:detailData.selectDetail.id?'merge':'default',
|
||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||
processId:userDetail.value.userId,
|
||||
probjectId:store.state.Workspace.probjects.id,
|
||||
@@ -463,7 +463,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',
|
||||
designType:detailData.selectDetail.id?'merge':'default',
|
||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||
processId:userDetail.value.userId,
|
||||
probjectId:store.state.Workspace.probjects.id,
|
||||
@@ -596,7 +596,7 @@ export default defineComponent({
|
||||
if(detailDom.detailRight?.privewDetail)await (detailDom.detailRight as any).privewDetail()
|
||||
if(str == 'all'){
|
||||
otherData = {
|
||||
color: detailData.selectDetail.newDetail?.color.r?detailData.selectDetail.newDetail?.color:detailData.selectDetail.color,
|
||||
color: detailData.selectDetail.newDetail?.color?.r?detailData.selectDetail.newDetail?.color:detailData.selectDetail.color,
|
||||
printObject: detailData.selectDetail.newDetail?.print?.length>0?{prints:detailData.selectDetail.newDetail?.print}:detailData.selectDetail.printObject || null,
|
||||
trims: detailData.selectDetail.newDetail?.element?.length>0?detailData.selectDetail.newDetail?.element:detailData.selectDetail.trims || null,
|
||||
}
|
||||
@@ -619,7 +619,7 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
if(detailData.currentDetailType == 'print'){
|
||||
otherData.printObject = {prints:detailData.selectDetail.newDetail?.print}
|
||||
otherData.printObject = detailData.selectDetail.newDetail?.print?.length>0?{prints:detailData.selectDetail.newDetail?.print}:detailData.selectDetail.printObject || null
|
||||
}
|
||||
if(detailData.currentDetailType == 'element'){
|
||||
otherData.trims = detailData.selectDetail.newDetail?.element
|
||||
|
||||
@@ -13,8 +13,6 @@
|
||||
:clothingImageUrl="selectDetail.path"
|
||||
:clothingImageUrl2="selectDetail.layersObject[0].maskUrl"
|
||||
showFixedLayer
|
||||
:width="sketchWidth"
|
||||
:height="sketchHeight"
|
||||
:canvasJSON="canvasJSON"
|
||||
@canvasLoadJsonSuccess="canvasLoadJsonSuccess"
|
||||
:clothing-image-opts="{
|
||||
@@ -81,7 +79,11 @@ export default defineComponent({
|
||||
updateOtherLayers:{
|
||||
type:Function,
|
||||
default:()=>{}
|
||||
}
|
||||
},
|
||||
sketchSize:{
|
||||
type:Object,
|
||||
default:()=>{}
|
||||
},
|
||||
},
|
||||
setup(props,{emit}) {
|
||||
const store = useStore();
|
||||
@@ -121,8 +123,6 @@ export default defineComponent({
|
||||
printObject: store.state.DesignDetail.selectDetail.printObject,
|
||||
trims: store.state.DesignDetail.selectDetail.trims,
|
||||
})),
|
||||
sketchWidth:0,
|
||||
sketchHeight:0,
|
||||
})
|
||||
watch(()=>detailData.selectDetail,(newValue,oldValue)=>{
|
||||
detailData.imgDomIndex = detailData.frontBack.front.findIndex((item:any)=>item.id == newValue.id)
|
||||
@@ -177,7 +177,11 @@ export default defineComponent({
|
||||
const privewDetail = async (oldSelectDetail = detailData.selectDetail)=>{
|
||||
// if(!detailDom.editCanvas)return
|
||||
return new Promise(async (res,reject)=>{
|
||||
await detailDom.editCanvas.exportImage({isContainFixed:true}).then((rv)=>{
|
||||
await detailDom.editCanvas.exportImage({
|
||||
isContainFixed:true,
|
||||
width:props.sketchSize.width,
|
||||
height:props.sketchSize.height,
|
||||
}).then((rv)=>{
|
||||
if(oldSelectDetail?.partialDesign)oldSelectDetail.partialDesign.partialDesignBase64 = rv
|
||||
})
|
||||
//包含平铺图层 single+overall模式的图
|
||||
@@ -188,6 +192,7 @@ export default defineComponent({
|
||||
// await detailDom.editCanvas.exportImage({isContainFixed:true,isPrintTrimsNoRepeat:false,isPrintTrimsRepeat:true,isContainNormalLayer:false}).then((rv)=>{
|
||||
// oldSelectDetail.undividedLayer = rv
|
||||
// })
|
||||
await setUndivideLayer()
|
||||
res('')
|
||||
})
|
||||
}
|
||||
@@ -203,11 +208,14 @@ export default defineComponent({
|
||||
let img = new Image()
|
||||
img.onload = ()=>{
|
||||
let wH = [1,1]
|
||||
let domHeight = detailDom.canvasContent.offsetHeight - 200
|
||||
let domHeight = detailDom.canvasContent?.offsetHeight - 200
|
||||
let imgHeight = img.height
|
||||
wH = [1,domHeight/imgHeight]
|
||||
detailData.canvasConfig.width = img.width * wH[1]
|
||||
detailData.canvasConfig.height = domHeight
|
||||
// detailData.canvasConfig.width = img.width * wH[1]
|
||||
// detailData.canvasConfig.height = domHeight
|
||||
console.log(detailData.canvasConfig,'===============')
|
||||
detailData.canvasConfig.width = img.width
|
||||
detailData.canvasConfig.height = img.height
|
||||
|
||||
res('')
|
||||
}
|
||||
@@ -335,34 +343,45 @@ export default defineComponent({
|
||||
// }
|
||||
const canvasLoadJsonSuccess = async ()=>{
|
||||
let otherData = await props.updateOtherLayers()
|
||||
updateOtherLayers(otherData)
|
||||
if(!detailData.selectDetail.undividedLayerColor){
|
||||
await detailDom.editCanvas.exportImage({isContainFixed:true,isPrintTrimsRepeat:false,isPrintTrimsNoRepeat:false,isContainNormalLayer:false}).then((rv)=>{
|
||||
detailData.selectDetail.undividedLayerColor = rv
|
||||
})
|
||||
}
|
||||
if(!detailData.selectDetail.undividedLayer){
|
||||
await detailDom.editCanvas.exportImage({isContainFixed:true,isPrintTrimsNoRepeat:false,isPrintTrimsRepeat:true,isContainNormalLayer:false}).then((rv)=>{
|
||||
detailData.selectDetail.undividedLayer = rv
|
||||
})
|
||||
}
|
||||
|
||||
await updateOtherLayers(otherData)
|
||||
await setUndivideLayer()
|
||||
}
|
||||
const setUndivideLayer = async ()=>{
|
||||
await new Promise<void>(async (resolve, reject) => {
|
||||
// if(!detailData.selectDetail.undividedLayerColor){
|
||||
await detailDom.editCanvas.exportImage({
|
||||
isContainFixed:true,
|
||||
isPrintTrimsRepeat:false,
|
||||
isPrintTrimsNoRepeat:false,
|
||||
isContainNormalLayer:false,
|
||||
width:props.sketchSize.width,
|
||||
height:props.sketchSize.height}).then((rv)=>{
|
||||
detailData.selectDetail.undividedLayerColor = rv
|
||||
})
|
||||
// }
|
||||
// if(!detailData.selectDetail.undividedLayer){
|
||||
await detailDom.editCanvas.exportImage({
|
||||
isContainFixed:true,
|
||||
isPrintTrimsNoRepeat:false,
|
||||
isPrintTrimsRepeat:true,
|
||||
isContainNormalLayer:false,
|
||||
width:props.sketchSize.width,
|
||||
height:props.sketchSize.height,
|
||||
}).then((rv)=>{
|
||||
console.log(rv,'======')
|
||||
detailData.selectDetail.undividedLayer = rv
|
||||
})
|
||||
// }
|
||||
resolve()
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const submitBase64Data = ()=>{
|
||||
return detailDom.generalMiniCanvas.submitBase64Data()
|
||||
}
|
||||
const sketchSize:any = async ()=>{
|
||||
let img = new Image();
|
||||
img.src = detailData.selectDetail.path;
|
||||
await new Promise((resolve, reject) => {
|
||||
img.onload = () => {
|
||||
detailData.sketchWidth = img.width
|
||||
detailData.sketchHeight = img.height
|
||||
resolve([img.width, img.height]);
|
||||
}
|
||||
img.onerror = reject;
|
||||
});
|
||||
}
|
||||
|
||||
onBeforeUnmount(()=>{
|
||||
let front = detailData.frontBack.front[detailData.imgDomIndex]
|
||||
let back = detailData.frontBack.back[detailData.imgDomIndex]
|
||||
@@ -403,7 +422,6 @@ export default defineComponent({
|
||||
});
|
||||
})
|
||||
}
|
||||
await sketchSize()
|
||||
setCanvas(detailData.selectDetail.path).then(()=>{
|
||||
detailData.canvasLoad = true
|
||||
})
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
</ul> -->
|
||||
</div>
|
||||
<div class="designOpenrtion_pingpu" v-else>
|
||||
<pingpu :list="printStyleList[type].overall" ref="pingpuRef" @change-canvas="updateCanvas"></pingpu>
|
||||
<pingpu :list="printStyleList[type].overall" :width="sketchSize.width" :height="sketchSize.height" ref="pingpuRef" @change-canvas="updateCanvas"></pingpu>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -141,7 +141,11 @@ export default defineComponent({
|
||||
type: {
|
||||
type: String,
|
||||
default: 'print',
|
||||
}
|
||||
},
|
||||
sketchSize:{
|
||||
type:Object,
|
||||
default:()=>{}
|
||||
},
|
||||
},
|
||||
setup(props,{emit}) {
|
||||
const { t } = useI18n()
|
||||
@@ -273,7 +277,7 @@ export default defineComponent({
|
||||
let x = Number(style.left.replace(/px/g,''))
|
||||
let y = Number(style.top.replace(/px/g,''))
|
||||
location = [(x*sketchWH[0]) ,(y*sketchWH[1])]
|
||||
scale =[ editPrintElementData.systemDesignerPercentage/100, editPrintElementData.systemDesignerPercentage/100]
|
||||
scale = item.scale
|
||||
// scale = [item.pattern.style.width/item.pattern.style.height,item.pattern.style.height/item.pattern.style.width]
|
||||
// location = [item.pattern.style.left,item.pattern.style.top]
|
||||
}
|
||||
@@ -352,18 +356,9 @@ export default defineComponent({
|
||||
}
|
||||
editPrintElementData.printZIndex++
|
||||
item.pattern = pattern
|
||||
function isJSONString(str) {
|
||||
try {
|
||||
JSON.parse(str);
|
||||
return true; // 解析成功,是有效的JSON字符串
|
||||
} catch (e) {
|
||||
return false; // 解析失败,不是有效的JSON字符串
|
||||
}
|
||||
}
|
||||
|
||||
if(item.object){
|
||||
if(isJSONString(item.object)){
|
||||
item.object = JSON.parse(item.object)
|
||||
}
|
||||
|
||||
}else{
|
||||
item.object = {
|
||||
top: 0,
|
||||
@@ -916,6 +911,7 @@ export default defineComponent({
|
||||
}
|
||||
const inputFillScale = (scale:any)=>{
|
||||
let arr = editPrintElementData.printStyleList[props.type].overall
|
||||
console.log(arr,scale,editPrintElementData.imgDomIndex)
|
||||
arr[editPrintElementData.imgDomIndex].scale = [scale,scale]
|
||||
editPrintElementDom.pingpuRef.updataList([
|
||||
{
|
||||
@@ -1104,7 +1100,10 @@ export default defineComponent({
|
||||
.habit_System_Designer {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
justify-content: flex-end;
|
||||
margin-top: 1.8rem;
|
||||
margin-right: .8rem;
|
||||
|
||||
.ant-slider-track,
|
||||
.ant-slider-rail {
|
||||
background-color: #e1e1e1;
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
</div> -->
|
||||
<sketchType v-if="currentDetailType === 'sketch'"></sketchType>
|
||||
<!-- <printType v-if="currentDetailType === 'print'"></printType> -->
|
||||
<editPrintElement ref="editPrintElement" v-if="currentDetailType === 'print'" type="print"></editPrintElement>
|
||||
<editPrintElement ref="editPrintElement" v-if="currentDetailType === 'element'" type="element"></editPrintElement>
|
||||
<editPrintElement ref="editPrintElement" v-if="currentDetailType === 'print'" type="print" :sketchSize="sketchSize"></editPrintElement>
|
||||
<editPrintElement ref="editPrintElement" v-if="currentDetailType === 'element'" type="element" :sketchSize="sketchSize"></editPrintElement>
|
||||
<modelsType ref="modelsType" v-if="currentDetailType === 'models'"></modelsType>
|
||||
</div>
|
||||
|
||||
@@ -24,6 +24,12 @@ export default defineComponent({
|
||||
components:{
|
||||
sketchType,printType,editPrintElement,modelsType
|
||||
},
|
||||
props:{
|
||||
sketchSize:{
|
||||
type:Object,
|
||||
default:()=>{}
|
||||
},
|
||||
},
|
||||
setup(props,{emit}) {
|
||||
const store = useStore();
|
||||
const detailData = reactive({
|
||||
|
||||
Reference in New Issue
Block a user