Merge branch 'dev_vite' of ssh://18.167.251.121:10002/aidlab/aida_front into dev_vite
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1335,7 +1335,7 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer')
|
||||
}
|
||||
}
|
||||
loadJSON(json, calllBack) {
|
||||
|
||||
this.canvas.loading.value = true;
|
||||
// 确保传入的json是字符串格式
|
||||
if (typeof json === "object") {
|
||||
json = JSON.stringify(json);
|
||||
@@ -1507,7 +1507,6 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer')
|
||||
*/
|
||||
async createOtherLayers(otherData) {
|
||||
if (!otherData) return console.warn("otherData 为空不需要添加");
|
||||
this.canvas.loading.value = true;
|
||||
let resolve = ()=>{};
|
||||
this.awaitCanvasRun = ()=>(new Promise((v) => resolve = v))
|
||||
const otherData_ = JSON.parse(JSON.stringify(otherData));
|
||||
@@ -1555,7 +1554,6 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer')
|
||||
console.log("==========创建其他图层成功");
|
||||
resolve();
|
||||
this.awaitCanvasRun = null;
|
||||
this.canvas.loading.value = false;
|
||||
}
|
||||
|
||||
// 设置画布对象的裁剪信息
|
||||
|
||||
@@ -1580,7 +1580,7 @@ export class LayerManager {
|
||||
/**
|
||||
* 排序图层,确保图层顺序: 普通图层 > 固定图层 > 背景图层
|
||||
*/
|
||||
sortLayers() {
|
||||
async sortLayers() {
|
||||
// 对图层进行排序:背景图层在最底层(数组最后),固定图层在中间
|
||||
this.layers.value.sort((a, b) => {
|
||||
// 如果a是背景图层,它应该排在后面(最底层)
|
||||
@@ -1604,17 +1604,17 @@ export class LayerManager {
|
||||
});
|
||||
|
||||
// 更新画布对象顺序
|
||||
this._rearrangeObjects();
|
||||
await this._rearrangeObjects();
|
||||
}
|
||||
|
||||
/**
|
||||
* 重新排列画布上的对象以匹配图层顺序
|
||||
* @private
|
||||
*/
|
||||
_rearrangeObjects() {
|
||||
async _rearrangeObjects() {
|
||||
if (this.layerSort) {
|
||||
// 使用LayerSort的高级排序
|
||||
this.layerSort.rearrangeObjects();
|
||||
await this.layerSort.rearrangeObjects();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -30,27 +30,30 @@ export class LayerSort {
|
||||
if (canvasObjects.length === 0) return;
|
||||
|
||||
// 使用画布渲染优化
|
||||
await optimizeCanvasRendering(this.canvas, () => {
|
||||
// 计算每个对象应该在的 z-index 位置
|
||||
const objectZIndexMap = this.calculateObjectZIndexes();
|
||||
await new Promise((resolve) => {
|
||||
optimizeCanvasRendering(this.canvas, () => {
|
||||
// 计算每个对象应该在的 z-index 位置
|
||||
const objectZIndexMap = this.calculateObjectZIndexes();
|
||||
|
||||
// 按照新的 z-index 排序对象
|
||||
const sortedObjects = canvasObjects
|
||||
.map((obj) => ({
|
||||
object: obj,
|
||||
targetZIndex: objectZIndexMap.get(obj.id) ?? -1,
|
||||
}))
|
||||
.filter((item) => item.targetZIndex >= 0) // 过滤掉无效对象
|
||||
.sort((a, b) => a.targetZIndex - b.targetZIndex);
|
||||
// 按照新的 z-index 排序对象
|
||||
const sortedObjects = canvasObjects
|
||||
.map((obj) => ({
|
||||
object: obj,
|
||||
targetZIndex: objectZIndexMap.get(obj.id) ?? -1,
|
||||
}))
|
||||
.filter((item) => item.targetZIndex >= 0) // 过滤掉无效对象
|
||||
.sort((a, b) => a.targetZIndex - b.targetZIndex);
|
||||
|
||||
// 使用 fabric.js 的 moveTo 方法重新排序
|
||||
sortedObjects.forEach((item, index) => {
|
||||
const currentIndex = this.canvas.getObjects().indexOf(item.object);
|
||||
if (currentIndex !== index && currentIndex !== -1) {
|
||||
// 将对象移动到正确的位置
|
||||
this.canvas.moveTo(item.object, index);
|
||||
}
|
||||
});
|
||||
// 使用 fabric.js 的 moveTo 方法重新排序
|
||||
sortedObjects.forEach((item, index) => {
|
||||
const currentIndex = this.canvas.getObjects().indexOf(item.object);
|
||||
if (currentIndex !== index && currentIndex !== -1) {
|
||||
// 将对象移动到正确的位置
|
||||
this.canvas.moveTo(item.object, index);
|
||||
}
|
||||
});
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -759,7 +759,6 @@ export default defineComponent({
|
||||
const uploadSelectDetail = async ()=>{//更新选中的detail
|
||||
// await detailDom.canvasBox.saveCanvas()
|
||||
const allInfo = await (detailDom.canvasBox as any).getCanvasElement()
|
||||
console.log(allInfo)
|
||||
let color:any = {}
|
||||
if(allInfo.color?.color?.rgba || allInfo.color?.color?.gradient){
|
||||
let canvasColor = allInfo.color.color;
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
is-edit
|
||||
:clothingImageUrl="selectDetail.path"
|
||||
:clothingImageUrl2="selectDetail.maskUrl || selectDetail.layersObject[0].maskUrl"
|
||||
:clothingMinIOPath="selectDetail.minIOPath"
|
||||
showFixedLayer
|
||||
:canvasJSON="canvasJSON"
|
||||
@canvasLoadJsonSuccess="canvasLoadJsonSuccess"
|
||||
@@ -52,9 +51,9 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mark_loading" v-show="isShowMark">
|
||||
<!-- <div class="mark_loading" v-show="isShowMark">
|
||||
<a-spin size="large" />
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
@@ -273,7 +273,7 @@ export default defineComponent({
|
||||
minIOPath:data.minIOPath || data.originalUrl,
|
||||
path:data.url,
|
||||
priority:printIndex,
|
||||
scale,
|
||||
scale:editPrintElementData.stateOverallSingle == 'single'?scale:[1,1],
|
||||
globalCompositeOperation:'',
|
||||
}
|
||||
getItemPosition(item)
|
||||
@@ -300,7 +300,7 @@ export default defineComponent({
|
||||
// location = [item.pattern.style.left,item.pattern.style.top]
|
||||
}
|
||||
let value ={
|
||||
angle : item.pattern.transform.rotateZ,
|
||||
angle:0,
|
||||
// angle : !this.overallSingle ? 0:item.pattern.transform.rotateZ,
|
||||
location : location,
|
||||
priority:item.priority,
|
||||
@@ -312,7 +312,9 @@ export default defineComponent({
|
||||
ifSingle:!!item.ifSingle,
|
||||
globalCompositeOperation:'',
|
||||
}
|
||||
if(item.object)value.object = item.object
|
||||
if(item.object)value.object = item.object;
|
||||
value.angle = value.ifSingle?item.pattern.transform.rotateZ:item.angle
|
||||
|
||||
return value
|
||||
}
|
||||
if(editPrintElementData.printStyleList[props.type].single.length>0){
|
||||
@@ -359,7 +361,7 @@ export default defineComponent({
|
||||
//overall
|
||||
left = item.location[0] / editPrintElementData.sketchWH.scale[0]
|
||||
top = item.location[1] / editPrintElementData.sketchWH.scale[1]
|
||||
item.scale = [1,1]
|
||||
item.scale = item.scale || [1,1]
|
||||
}
|
||||
let pattern = {
|
||||
centers:{left:0,top:0},
|
||||
@@ -915,6 +917,7 @@ export default defineComponent({
|
||||
}
|
||||
const inputFillAngle = (angle:any)=>{
|
||||
let arr = editPrintElementData.printStyleList[props.type].overall
|
||||
console.log(angle)
|
||||
arr[editPrintElementData.imgDomIndex].angle = angle
|
||||
editPrintElementDom.pingpuRef.updataList([
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<div class="repeat-setting-item">
|
||||
<span class="label">Gap X</span>
|
||||
<slider
|
||||
:min="0"
|
||||
:min="1"
|
||||
:max="1000"
|
||||
:step="1"
|
||||
is-input
|
||||
@@ -39,7 +39,7 @@
|
||||
<div class="repeat-setting-item">
|
||||
<span class="label">Gap Y</span>
|
||||
<slider
|
||||
:min="0"
|
||||
:min="1"
|
||||
:max="1000"
|
||||
:step="1"
|
||||
is-input
|
||||
@@ -84,7 +84,7 @@
|
||||
const scale = computed(() => {
|
||||
// let scaleValue = props.object?.scale/10;
|
||||
// return props.object?.scale/10;
|
||||
return props.object?.scale[0] * 100;
|
||||
return (props.object?.scale[0] * 100).toFixed(0);
|
||||
});
|
||||
const scalePrint = computed(() => {
|
||||
let index = sketchWH.value[0] > sketchWH.value[1]?0:1;
|
||||
|
||||
@@ -272,12 +272,12 @@ const navTypeList = (t)=>{
|
||||
// },
|
||||
|
||||
|
||||
{
|
||||
icon:'fi fi-rr-puzzle-alt',
|
||||
value:'deReconstruction',
|
||||
label:t('Header.toolsDeReconstruction'),
|
||||
router:'tools=deReconstruction'
|
||||
},
|
||||
// {
|
||||
// icon:'fi fi-rr-puzzle-alt',
|
||||
// value:'deReconstruction',
|
||||
// label:t('Header.toolsDeReconstruction'),
|
||||
// router:'tools=deReconstruction'
|
||||
// },
|
||||
{
|
||||
icon:'fi fi-ss-box-open',
|
||||
value:'toProduct',
|
||||
@@ -294,18 +294,18 @@ const navTypeList = (t)=>{
|
||||
label:t('Header.toolsToTransferPose'),
|
||||
router:'tools=poseTransfer'
|
||||
},
|
||||
{
|
||||
icon:'fi fi-rr-cubes',
|
||||
value:'patternMaking3D',
|
||||
label:t('Header.toolsPatternMaking'),
|
||||
router:'tools=patternMaking3D'
|
||||
},
|
||||
{
|
||||
icon:'fi fi-rr-pen-swirl',
|
||||
value:'canvasUpload',
|
||||
label:t('Header.toolsCanvas'),
|
||||
router:'tools=canvasUpload'
|
||||
},
|
||||
// {
|
||||
// icon:'fi fi-rr-cubes',
|
||||
// value:'patternMaking3D',
|
||||
// label:t('Header.toolsPatternMaking'),
|
||||
// router:'tools=patternMaking3D'
|
||||
// },
|
||||
// {
|
||||
// icon:'fi fi-rr-pen-swirl',
|
||||
// value:'canvasUpload',
|
||||
// label:t('Header.toolsCanvas'),
|
||||
// router:'tools=canvasUpload'
|
||||
// },
|
||||
]
|
||||
},
|
||||
library:{
|
||||
|
||||
Reference in New Issue
Block a user