Merge branch 'dev_vite' of http://18.167.251.121:10003/aidlab/aida_front into dev_vite
This commit is contained in:
@@ -14,7 +14,8 @@
|
||||
@click="setBrushTypeWithCommand(brush.id)"
|
||||
:class="['brush-type-item', { active: brushStore.state.type === brush.id }]"
|
||||
>
|
||||
<div class="brush-preview" :style="getBrushPreviewStyle(brush)"></div>
|
||||
<!-- <div class="brush-preview" :style="getBrushPreviewStyle(brush)"></div> -->
|
||||
<img class="brush-preview" :src="brush.imgUrl" :title="brush.name" alt="">
|
||||
<span class="brush-name">{{ brush.name }}</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -886,6 +887,7 @@ onMounted(() => {
|
||||
const availableBrushes = toolManager.brushManager
|
||||
.getBrushTypes()
|
||||
?.filter((brush) => brush.id !== "eraser");
|
||||
console.log(availableBrushes)
|
||||
BrushStore.setAvailableBrushes(availableBrushes);
|
||||
}
|
||||
});
|
||||
@@ -1178,6 +1180,8 @@ const brushStore = BrushStore;
|
||||
margin-bottom: 8px;
|
||||
border-radius: 4px;
|
||||
background-color: rgba(0, 0, 0, 0.02);
|
||||
object-fit: contain;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
/* 保持笔刷预览内容样式一致 */
|
||||
|
||||
@@ -340,7 +340,7 @@ onMounted(async () => {
|
||||
props.redGreenImageUrl
|
||||
) {
|
||||
canvasManager.canvas.fill = "#fff"; // 设置画布背景色为白色 // 初始化红绿图模式管理器
|
||||
redGreenModeManager = new RedGreenModeManager({
|
||||
redGreenModeManager = new toolManagerRedGreenModeManager({
|
||||
canvas: canvasManager.canvas,
|
||||
canvasManager,
|
||||
layerManager,
|
||||
|
||||
@@ -65,6 +65,7 @@ export class BrushManager {
|
||||
description: "基础铅笔工具,适合精细线条绘制",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/pencil.jpg',
|
||||
});
|
||||
|
||||
// 注册材质笔刷
|
||||
@@ -73,6 +74,7 @@ export class BrushManager {
|
||||
description: "使用纹理图片作为笔刷,支持缩放和透明度",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/texture.jpg',
|
||||
});
|
||||
|
||||
// 注册集成的笔刷类型
|
||||
@@ -81,54 +83,63 @@ export class BrushManager {
|
||||
description: "使用纹理图片作为笔刷,支持缩放和透明度",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/crayon.jpg',
|
||||
});
|
||||
brushRegistry.register("fur", FurBrush, {
|
||||
name: this.t("Canvas.Fur"),
|
||||
description: "使用纹理图片作为笔刷,支持缩放和透明度",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/fur.jpg',
|
||||
});
|
||||
brushRegistry.register("ink", InkBrush, {
|
||||
name: this.t("Canvas.Ink"),
|
||||
description: "墨水笔刷,适合书写和绘图",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/ink.jpg',
|
||||
});
|
||||
brushRegistry.register("", LongfurBrush, {
|
||||
name: this.t("Canvas.Longfur"),
|
||||
description: "长毛发笔刷,适合绘制动物毛皮、草或头发",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/longFur.jpg',
|
||||
});
|
||||
brushRegistry.register("writing", WritingBrush, {
|
||||
name: this.t("Canvas.Writing"),
|
||||
description: "书法笔刷,模拟中国传统书法毛笔效果,具有笔锋和墨色变化",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/writing.jpg',
|
||||
});
|
||||
brushRegistry.register("marker", MarkerBrush, {
|
||||
name: this.t("Canvas.Marker"),
|
||||
description: "马克笔笔刷,适合粗线条和填充",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/marker.jpg',
|
||||
});
|
||||
brushRegistry.register("pen", CustomPenBrush, {
|
||||
name: this.t("Canvas.Pen"),
|
||||
description: "自定义钢笔笔刷,适合书写和绘图",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/pen.jpg',
|
||||
});
|
||||
brushRegistry.register("ribbon", RibbonBrush, {
|
||||
name: this.t("Canvas.Ribbon"),
|
||||
description: "丝带笔刷,适合创建流动的丝带效果",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/ribbon.jpg',
|
||||
});
|
||||
brushRegistry.register("shaded", ShadedBrush, {
|
||||
name: this.t("Canvas.Shaded"),
|
||||
description: "阴影笔刷,适合创建渐变和阴影效果",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/shaded.jpg',
|
||||
});
|
||||
|
||||
brushRegistry.register("spray", SprayBrush, {
|
||||
@@ -136,6 +147,7 @@ export class BrushManager {
|
||||
description: "模拟喷枪效果,创建散点效果",
|
||||
t:this.t,
|
||||
category: this.t('Canvas.BasicBrushes'),
|
||||
imgUrl:'./image/brush/spray.jpg',
|
||||
});
|
||||
|
||||
// brushRegistry.register("sketchy", SketchyBrush);
|
||||
@@ -365,6 +377,7 @@ export class BrushManager {
|
||||
description: brushInfo.metadata.description || "",
|
||||
category: brushInfo.metadata.category || "默认",
|
||||
icon: brushInfo.metadata.icon || null,
|
||||
imgUrl: brushInfo.metadata.imgUrl || null,
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
@@ -302,14 +302,15 @@ export default defineComponent({
|
||||
if(detailData.currentDetailType == 'sketch' && newData){
|
||||
color = detailData.designDetail.clothes[0].color?.rgba?.r?`${detailData.designDetail.clothes[0].color.rgba.r} ${detailData.designDetail.clothes[0].color.rgba.g} ${detailData.designDetail.clothes[0].color.rgba.b}`:''
|
||||
}
|
||||
console.log(list[i])
|
||||
let data:any = {
|
||||
changed:false,
|
||||
color,
|
||||
designType:(newData && detailData.currentDetailType == 'sketch' && isCurrent)?newData.designType:list[i].designType,
|
||||
id:(newData && detailData.currentDetailType == 'sketch' && isCurrent)?newData.id:list[i].id,
|
||||
maskMinioUrl:list[i]?.maskMinioUrl,
|
||||
maskMinioUrl:(newData && detailData.currentDetailType == 'sketch')?'':list[i]?.maskMinioUrl,
|
||||
// maskUrl:'',
|
||||
maskUrl:list[i].maskUrl,
|
||||
maskUrl:(newData && detailData.currentDetailType == 'sketch')?'':list[i]?.maskUrl,
|
||||
// offset:[
|
||||
// -233.13985,
|
||||
// 406.90964
|
||||
|
||||
@@ -190,7 +190,7 @@ export default defineComponent({
|
||||
})
|
||||
}
|
||||
const frontBackChange = (value:any)=>{
|
||||
let full = detailData.frontBack.front[detailData.imgDomIndex].undividedLayer || detailData.frontBack.front[detailData.imgDomIndex].imageUrl
|
||||
let full = detailData.frontBack.front[detailData.imgDomIndex].undividedLayer || detailData.selectDetail.path
|
||||
let size = {
|
||||
...detailData.canvasConfig,
|
||||
}
|
||||
|
||||
@@ -56,11 +56,13 @@ export default defineComponent({
|
||||
})
|
||||
const selectImgItem = (file:any)=>{
|
||||
if(props.type != 'models'){
|
||||
if(!file.resData.minIOPath){
|
||||
file.minIOPath = getMinioUrl(file.imgUrl || file.resData.url)
|
||||
if(!file.resData?.minIOPath){
|
||||
file.minIOPath = getMinioUrl(file?.imgUrl || file?.resData?.url)
|
||||
}else{
|
||||
file.minIOPath = file.resData.minIOPath
|
||||
}
|
||||
if(!file.designType){
|
||||
file.designType = file.resData.designType
|
||||
file.designType = file?.resData?.designType
|
||||
}
|
||||
}
|
||||
// store.commit('DesignDetail/setNewDetail',file.resData)
|
||||
|
||||
@@ -76,10 +76,10 @@ export default defineComponent({
|
||||
selectImgItem(data)
|
||||
return
|
||||
}
|
||||
data.id = id
|
||||
if(data?.imgUrl)data.url = data.imgUrl
|
||||
let value = {
|
||||
data,
|
||||
id,
|
||||
}
|
||||
if(detailData.currentDetailType == 'sketch'){
|
||||
detailData.selectDetail.sketchString = ''
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="editPrintElement">
|
||||
<div class="detailText" style="text-align: left; margin-bottom: 1rem;">
|
||||
<div class="detailText" style="text-align: left; margin-bottom: 1rem;" v-if="type == 'print'">
|
||||
{{ $t('DesignPrintOperation.ModifyPrint') }}
|
||||
</div>
|
||||
<div class="printOverallBtn" v-if="type == 'print'">
|
||||
|
||||
@@ -481,7 +481,7 @@ export default defineComponent({
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
img{
|
||||
height: auto;
|
||||
// height: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ import poseTransfer from '@/component/home/tools/poseTransfer/index.vue';
|
||||
import deReconstruction from '@/component/home/tools/deReconstruction/index.vue';
|
||||
import patternMaking3D from '@/component/home/tools/patternMaking3D/index.vue';
|
||||
import canvasUpload from "@/component/modules/generalMiniCanvas.vue";
|
||||
import {openTypeList} from "@/tool/listData.js";
|
||||
import {navTypeList} from "@/tool/listData.js";
|
||||
|
||||
export default defineComponent({
|
||||
components:{
|
||||
@@ -105,7 +105,7 @@ export default defineComponent({
|
||||
return await new Promise((resolve, reject) => {
|
||||
let tools = route.query.tools as any
|
||||
if(!tools){reject(false)}
|
||||
let toolsData:any = openTypeList(t).tools.list.find((item:any)=>item.value == route.query.tools)
|
||||
let toolsData:any = navTypeList(t).tools.list.find((item:any)=>item.value == route.query.tools)
|
||||
let value = {
|
||||
name:toolsData.label,
|
||||
process:data.toolsList[tools],
|
||||
|
||||
Reference in New Issue
Block a user