更新画布菜单交互逻辑,画布生成或画布编辑图片更新外面版本图片
This commit is contained in:
@@ -279,3 +279,24 @@ export const threeToThreeViewsApi = (data:threeToThreeViewsData) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据sketchId更新VersionNode的sketch的URL值
|
||||||
|
* @param data 根据sketchId更新VersionNode的sketchL值的参数
|
||||||
|
* @param data.sketchId sketch id
|
||||||
|
* @param data.newUrl 生成的3d模型地址
|
||||||
|
* @returns 根据sketchId更新VersionNode的sketch的URL值
|
||||||
|
*/
|
||||||
|
export interface threeToThreeViewsData {
|
||||||
|
sketchId?: string
|
||||||
|
newUrl?: string
|
||||||
|
}
|
||||||
|
export const updateVersionSketchUrlApi = (data:threeToThreeViewsData) => {
|
||||||
|
return request({
|
||||||
|
url: `/api/canvas/sketchIdAndUrl/${data.sketchId}`,
|
||||||
|
method: 'put',
|
||||||
|
data:{
|
||||||
|
newUrl: data.newUrl,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<span class="icon">
|
<span class="icon">
|
||||||
<svg-icon :name="v.type + '-2'" size="15" size-unit="px" />
|
<svg-icon :name="v.type.split('_')[0] + '-2'" size="15" size-unit="px" />
|
||||||
</span>
|
</span>
|
||||||
<span class="title">{{ v.title }}</span>
|
<span class="title">{{ v.title }}</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -63,6 +63,25 @@
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},{
|
||||||
|
tier: NODE_DATATIER.SURFACE_EDIT_,
|
||||||
|
type: NODE_DATATYPE.SURFACE_EDIT_,
|
||||||
|
title: t('FlowCanvas.surfaceEditTitle'),
|
||||||
|
secondaryMenu: {
|
||||||
|
title: t('FlowCanvas.surfaceEditTitle'),
|
||||||
|
icon: NODE_DATATYPE.SURFACE_EDIT_,
|
||||||
|
selectList: [
|
||||||
|
{
|
||||||
|
tier: NODE_DATATIER.CANVAS_MODE_,
|
||||||
|
type: NODE_DATATYPE.CANVAS_MODE_,
|
||||||
|
title: t('FlowCanvas.surfaceEditCanvasTitle'),
|
||||||
|
},{
|
||||||
|
tier: NODE_DATATIER.Fast_MODE_,
|
||||||
|
type: NODE_DATATYPE.Fast_MODE_,
|
||||||
|
title: t('FlowCanvas.surfaceEditTitle'),
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: NODE_DATATIER.SCENE_COMPOSITION,
|
tier: NODE_DATATIER.SCENE_COMPOSITION,
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
import myEvent from '@/utils/myEvent'
|
import myEvent from '@/utils/myEvent'
|
||||||
import { getCurrentTime } from '../../../../tools/tools.ts'
|
import { getCurrentTime } from '../../../../tools/tools.ts'
|
||||||
import { NODE_DATATIER } from '../../../tools/index.d'
|
import { NODE_DATATIER } from '../../../tools/index.d'
|
||||||
|
import { updateVersionSketchUrlApi } from '@/api/flow-canvas'
|
||||||
const attrs = useAttrs()
|
const attrs = useAttrs()
|
||||||
const stateManager = inject('stateManager') as any
|
const stateManager = inject('stateManager') as any
|
||||||
const nodeManager = inject('nodeManager') as any
|
const nodeManager = inject('nodeManager') as any
|
||||||
@@ -24,7 +25,7 @@
|
|||||||
return {
|
return {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const opCanvas = ()=>{
|
const opCanvas = (tier)=>{
|
||||||
const superiorNodeUrl = stateManager.getSuperiorNodeImage(attrs?.node?.data?.superiorID || null)
|
const superiorNodeUrl = stateManager.getSuperiorNodeImage(attrs?.node?.data?.superiorID || null)
|
||||||
if (!superiorNodeUrl) console.log('superiorNodeUrl 找不到原始图片')
|
if (!superiorNodeUrl) console.log('superiorNodeUrl 找不到原始图片')
|
||||||
const data = {
|
const data = {
|
||||||
@@ -46,7 +47,7 @@
|
|||||||
superiorID: attrs.node.id,
|
superiorID: attrs.node.id,
|
||||||
superiorNodeType: attrs.node?.data?.type,
|
superiorNodeType: attrs.node?.data?.type,
|
||||||
createIndexPosition: 0 + subordNodes.length,
|
createIndexPosition: 0 + subordNodes.length,
|
||||||
tier: NODE_DATATIER.RESULT_IMAGE,
|
tier,
|
||||||
isActive: subordNodes.length == 0,
|
isActive: subordNodes.length == 0,
|
||||||
data: {
|
data: {
|
||||||
imageProcessTasks:[workbenchData],
|
imageProcessTasks:[workbenchData],
|
||||||
@@ -54,6 +55,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
//更新VersionNode的sketchIDAndUrl中指定key的URL值
|
||||||
|
updateVersionSketchUrlApi({
|
||||||
|
sketchId: stateManager.sketchId.value,
|
||||||
|
newUrl: options.url,
|
||||||
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
eventManager.removeEvents()
|
eventManager.removeEvents()
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<div class="header">
|
<div class="header">
|
||||||
<svg-icon
|
<svg-icon
|
||||||
v-if="attrs.node?.data?.secondaryMenu?.icon || !currentComponent?.hideIcon"
|
v-if="attrs.node?.data?.secondaryMenu?.icon || !currentComponent?.hideIcon"
|
||||||
:name="attrs.node?.data?.secondaryMenu?.icon || currentComponent?.type"
|
:name="attrs.node?.data?.secondaryMenu?.icon || currentComponent?.type.split('_')[0]"
|
||||||
color="#fff"
|
color="#fff"
|
||||||
size="16"
|
size="16"
|
||||||
size-unit="px"
|
size-unit="px"
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
{
|
{
|
||||||
tier: NODE_DATATIER.TO_REAL_VARIANTS,
|
tier: NODE_DATATIER.TO_REAL_VARIANTS,
|
||||||
type: NODE_DATATYPE.TO_REAL_VARIANTS,
|
type: NODE_DATATYPE.TO_REAL_VARIANTS,
|
||||||
title: 'To Real Variants',
|
title: t('FlowCanvas.toRealVariantsTitle'),
|
||||||
component: ToRealVariants,
|
component: ToRealVariants,
|
||||||
api: toRealVariantsApi
|
api: toRealVariantsApi
|
||||||
},
|
},
|
||||||
@@ -92,7 +92,25 @@
|
|||||||
hideFooter: true,
|
hideFooter: true,
|
||||||
showCanvasEdit: true,
|
showCanvasEdit: true,
|
||||||
on: ()=>{
|
on: ()=>{
|
||||||
componentRef.value?.opCanvas()
|
componentRef.value?.opCanvas(0)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tier: NODE_DATATIER.Fast_MODE_,
|
||||||
|
type: NODE_DATATYPE.Fast_MODE_,
|
||||||
|
title: t('FlowCanvas.surfaceEditTitle'),
|
||||||
|
component: SurfaceEdit,
|
||||||
|
api: sketchAddPrintApi
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tier: NODE_DATATIER.CANVAS_MODE_,
|
||||||
|
type: NODE_DATATYPE.CANVAS_MODE_,
|
||||||
|
title: t('FlowCanvas.surfaceEditCanvasTitle'),
|
||||||
|
component: FastMode,
|
||||||
|
hideFooter: true,
|
||||||
|
showCanvasEdit: true,
|
||||||
|
on: ()=>{
|
||||||
|
componentRef.value?.opCanvas(1)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -155,6 +173,7 @@
|
|||||||
const onGenerateClick = async () => {
|
const onGenerateClick = async () => {
|
||||||
const data = componentRef.value?.getApiData?.() || {}
|
const data = componentRef.value?.getApiData?.() || {}
|
||||||
const subordNodes = stateManager.getSubordNodes(attrs.node.id)
|
const subordNodes = stateManager.getSubordNodes(attrs.node.id)
|
||||||
|
const maxPosition = subordNodes.length == 0?0:(subordNodes[subordNodes.length - 1].data.createIndexPosition + 1)
|
||||||
const superiorNodeUrl = stateManager.getSuperiorNodeImage(attrs.node.data.superiorID)
|
const superiorNodeUrl = stateManager.getSuperiorNodeImage(attrs.node.data.superiorID)
|
||||||
if(!superiorNodeUrl)return console.log('superiorNodeUrl 找不到原始图片')
|
if(!superiorNodeUrl)return console.log('superiorNodeUrl 找不到原始图片')
|
||||||
emit('update-data', componentRef.value?.data)
|
emit('update-data', componentRef.value?.data)
|
||||||
@@ -175,12 +194,16 @@
|
|||||||
NODE_DATATYPE.CANVAS_MODE,
|
NODE_DATATYPE.CANVAS_MODE,
|
||||||
NODE_DATATYPE.SCENE_COMPOSITION,
|
NODE_DATATYPE.SCENE_COMPOSITION,
|
||||||
NODE_DATATYPE.COLOR_PALETTE,
|
NODE_DATATYPE.COLOR_PALETTE,
|
||||||
|
NODE_DATATYPE.Fast_MODE_,
|
||||||
|
NODE_DATATYPE.CANVAS_MODE_,
|
||||||
]
|
]
|
||||||
let tritList = [
|
let tritList = [
|
||||||
NODE_DATATIER.Fast_MODE,
|
NODE_DATATIER.Fast_MODE,
|
||||||
NODE_DATATIER.CANVAS_MODE,
|
NODE_DATATIER.CANVAS_MODE,
|
||||||
NODE_DATATIER.SCENE_COMPOSITION,
|
NODE_DATATIER.SCENE_COMPOSITION,
|
||||||
NODE_DATATIER.COLOR_PALETTE,
|
NODE_DATATIER.COLOR_PALETTE,
|
||||||
|
NODE_DATATIER.Fast_MODE_,
|
||||||
|
NODE_DATATIER.CANVAS_MODE_,
|
||||||
]
|
]
|
||||||
let tier = (tritList.includes(currentComponent.value.tier) && typeList.includes(currentComponent.value.type))?currentComponent.value.tier - 1:currentComponent.value.tier
|
let tier = (tritList.includes(currentComponent.value.tier) && typeList.includes(currentComponent.value.type))?currentComponent.value.tier - 1:currentComponent.value.tier
|
||||||
if(NODE_DATATYPE.TO_REAL_STYLE == currentComponent.value.type && false){
|
if(NODE_DATATYPE.TO_REAL_STYLE == currentComponent.value.type && false){
|
||||||
@@ -206,7 +229,7 @@
|
|||||||
superiorID: attrs.node.id,
|
superiorID: attrs.node.id,
|
||||||
superiorNodeType: attrs.node?.data?.type,
|
superiorNodeType: attrs.node?.data?.type,
|
||||||
superiorGenerateImg: superiorNodeUrl || null,
|
superiorGenerateImg: superiorNodeUrl || null,
|
||||||
createIndexPosition: index + subordNodes.length,
|
createIndexPosition: index + maxPosition,
|
||||||
tier: tier,
|
tier: tier,
|
||||||
isActive: index == 0 && subordNodes.length == 0,
|
isActive: index == 0 && subordNodes.length == 0,
|
||||||
data: {
|
data: {
|
||||||
|
|||||||
@@ -66,6 +66,7 @@
|
|||||||
import HighlightAdmin from '@/components/highlightAdmin.vue'
|
import HighlightAdmin from '@/components/highlightAdmin.vue'
|
||||||
import { NODE_DATATIER, NODE_DATATYPE } from '../../tools/index.d'
|
import { NODE_DATATIER, NODE_DATATYPE } from '../../tools/index.d'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
import { updateVersionSketchUrlApi } from '@/api/flow-canvas'
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
const openImagePreview = inject('openImagePreview') as (url: string) => void
|
const openImagePreview = inject('openImagePreview') as (url: string) => void
|
||||||
const openThreeModelPreview = inject('openThreeModelPreview') as (obj: any) => void
|
const openThreeModelPreview = inject('openThreeModelPreview') as (obj: any) => void
|
||||||
@@ -225,6 +226,11 @@
|
|||||||
}
|
}
|
||||||
depthCanvasWorkbench(workbenchData)
|
depthCanvasWorkbench(workbenchData)
|
||||||
depthCanvasClose()
|
depthCanvasClose()
|
||||||
|
//更新VersionNode的sketchIDAndUrl中指定key的URL值
|
||||||
|
updateVersionSketchUrlApi({
|
||||||
|
sketchId: stateManager.sketchId.value,
|
||||||
|
newUrl: options.url,
|
||||||
|
})
|
||||||
},
|
},
|
||||||
onClose:depthCanvasClose
|
onClose:depthCanvasClose
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { getSketchFlowCanvas } from '@/api/flow-canvas'
|
import { getSketchFlowCanvas } from '@/api/flow-canvas'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
import myEvent from '@/utils/myEvent'
|
||||||
|
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const config = ref({}) as any
|
const config = ref({}) as any
|
||||||
@@ -33,6 +34,7 @@
|
|||||||
}
|
}
|
||||||
const close = async () => {
|
const close = async () => {
|
||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
|
myEvent.emit('closeFlowCanvas')
|
||||||
}
|
}
|
||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { getTaskidResult } from '@/api/flow-canvas'
|
import { getTaskidResult } from '@/api/flow-canvas'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
|
import { updateVersionSketchUrlApi } from '@/api/flow-canvas'
|
||||||
|
|
||||||
// interface NodeOptions {
|
// interface NodeOptions {
|
||||||
// }
|
// }
|
||||||
@@ -54,6 +55,12 @@ export class GenerateManager {
|
|||||||
nodeDataItem.url = item.url
|
nodeDataItem.url = item.url
|
||||||
nodeDataItem.createTime = item.createTime
|
nodeDataItem.createTime = item.createTime
|
||||||
nodeDataItem.status = item.status
|
nodeDataItem.status = item.status
|
||||||
|
|
||||||
|
//更新VersionNode的sketchIDAndUrl中指定key的URL值
|
||||||
|
updateVersionSketchUrlApi({
|
||||||
|
sketchId: this.stateManager.sketchId.value,
|
||||||
|
newUrl: item.url,
|
||||||
|
})
|
||||||
if(item.glbPath){
|
if(item.glbPath){
|
||||||
nodeDataItem.glbPath = item.glbPath
|
nodeDataItem.glbPath = item.glbPath
|
||||||
nodeDataItem.glbInfoObj = item.glbInfoObj
|
nodeDataItem.glbInfoObj = item.glbInfoObj
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ export const NODE_DATATYPE = {
|
|||||||
SURFACE_EDIT: 'surface-edit',
|
SURFACE_EDIT: 'surface-edit',
|
||||||
CANVAS_MODE: 'canvas-mode',
|
CANVAS_MODE: 'canvas-mode',
|
||||||
Fast_MODE: 'fast-mode',
|
Fast_MODE: 'fast-mode',
|
||||||
|
SURFACE_EDIT_: 'surface-edit_',
|
||||||
|
CANVAS_MODE_: 'canvas-mode_',
|
||||||
|
Fast_MODE_: 'fast-mode_',
|
||||||
SCENE_COMPOSITION: 'scene-composition',
|
SCENE_COMPOSITION: 'scene-composition',
|
||||||
COLOR_PALETTE: 'color-palette',
|
COLOR_PALETTE: 'color-palette',
|
||||||
TO_3D_MODEL: 'to-3d-model',
|
TO_3D_MODEL: 'to-3d-model',
|
||||||
@@ -41,9 +44,12 @@ export const NODE_DATATIER = {
|
|||||||
CARDS_SELECT: 0,
|
CARDS_SELECT: 0,
|
||||||
TO_REAL_STYLE: 1,
|
TO_REAL_STYLE: 1,
|
||||||
TO_REAL_VARIANTS: 1,
|
TO_REAL_VARIANTS: 1,
|
||||||
SURFACE_EDIT: 2,
|
SURFACE_EDIT: 1,
|
||||||
CANVAS_MODE: 2,
|
CANVAS_MODE: 1,
|
||||||
Fast_MODE: 2,
|
Fast_MODE: 1,
|
||||||
|
SURFACE_EDIT_: 2,
|
||||||
|
CANVAS_MODE_: 2,
|
||||||
|
Fast_MODE_: 2,
|
||||||
SCENE_COMPOSITION: 2,
|
SCENE_COMPOSITION: 2,
|
||||||
COLOR_PALETTE: 2,
|
COLOR_PALETTE: 2,
|
||||||
TO_3D_MODEL: 2,
|
TO_3D_MODEL: 2,
|
||||||
|
|||||||
Reference in New Issue
Block a user