Files
aida_front/src/component/home/newProject/setting.vue
X1627315083 360bfd01ac 部分优化
2025-09-08 14:50:59 +08:00

153 lines
4.2 KiB
Vue

<template>
<div class="projectSettingModal" ref="projectSettingModal"></div>
<a-modal
class="projectSetting generalModel"
v-model:visible="habitSetStyle"
:footer="null"
width="50%"
height="auto"
:get-container="() => $refs.projectSettingModal"
:maskClosable="false"
:centered="true"
:closable="false"
:mask="true"
:keyboard="false"
:destroyOnClose="true"
:zIndex="1000"
>
<div class="generalModel_btn">
<div class="generalModel_closeIcon" @click.stop="cleardata()">
<svg width="100%" height="100%" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="23" cy="23" r="23" fill="white" fill-opacity="0.3"/>
<rect x="32.5063" y="12" width="3" height="29" rx="1.5" transform="rotate(45 32.5063 12)" fill="white"/>
<rect x="34.6274" y="32.5059" width="3" height="29" rx="1.5" transform="rotate(135 34.6274 32.5059)" fill="white"/>
</svg>
</div>
</div>
<div class="designOpenrtion_content">
<div class="modal_title_text">
<div>{{ $t('newProjectg.projectSetting') }}</div>
</div>
<div class="workspaceBox">
<workspace ref="workspace" :status="'edit'" @setProject="setProject" :httpWorkflowType="projectData.process"></workspace>
</div>
</div>
<div class="mark_loading" v-show="isShowMark">
<a-spin size="large" />
</div>
</a-modal>
</template>
<script lang="ts">
import { defineComponent,computed,ref,provide,nextTick,createVNode,toRefs, reactive} from 'vue'
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { Https } from "@/tool/https";
import { useStore } from "vuex";
import { useI18n } from 'vue-i18n'
import workspace from './workspace.vue'
export default defineComponent({
components:{
workspace,
},
props:{
},
emits:['getHistory'],
setup(props,{emit}) {
const store = useStore();
const data = reactive({
habitSetStyle:false,
isShowMark:false,
projectData:{} as any,
})
const dataDom = reactive({
workspace:null as any,
})
const setIsShowMark = (boolean:boolean)=>{
data.isShowMark = boolean
}
const init = (value:any)=>{
data.projectData = value
data.habitSetStyle = true
getHistory(value.id)
}
provide('setIsShowMark',setIsShowMark)
let cleardata = ()=>{
data.habitSetStyle = false
}
const getHistory = (id:any)=>{
let value = {
id,
}
if(!id)return
Https.axiosPost(Https.httpUrls.selectHistoryProject,value).then((rv: any) => {
setProjectData(rv)
}).catch((res)=>{
data.isShowMark = false
})
}
const setProjectData = (rv:any)=>{
let storeData = {
name:rv.name,
id:rv.id,
type:rv.process == 'SERIES_DESIGN'?'seriesDesign':'singleProductDesign',
httpType:rv.process,//项目类型
ageGroup:rv.workspaceVO.ageGroup,
style:rv.workspaceVO.style,
styleId:rv.workspaceVO.styleId,
styleName:rv.workspaceVO.styleName,
sex:rv.workspaceVO.sex,
userBrandDnaImg:rv.workspaceVO.userBrandDnaImg,
userBrandDnaName:rv.workspaceVO.userBrandDnaName,
brandPercentage:rv.workspaceVO.brandPercentage,
userBrandDna:rv.workspaceVO.userBrandDna,
systemDesignerPercentage:rv.workspaceVO.systemDesignerPercentage,
position:{
label:rv.workspaceVO.positionEnum.value,
value:rv.workspaceVO.positionEnum.name
},
positionList:[],
workspaceId:rv.workspaceVO?.id,
publishData:{
id:rv.portfolioDTO.id?rv.portfolioDTO.id:'',
portfolioDes:rv.portfolioDTO.portfolioDes?rv.portfolioDTO.portfolioDes:'',
portfolioName:rv.portfolioDTO.portfolioName?rv.portfolioDTO.portfolioName:'',
tagsDTO:rv.portfolioDTO.tagsDTO?rv.portfolioDTO.tagsDTO:[],
},
// model:[]
}
let position = []
if(storeData.sex == "Female"){
position = store.state.UserHabit.FemalePosition
}else{
position = store.state.UserHabit.MalePosition
}
// storeData.model = model
storeData.positionList = position
dataDom.workspace.init(storeData)
}
const setProject = ()=>{
cleardata()
emit('getHistory')
}
return{
...toRefs(dataDom),
...toRefs(data),
cleardata,
init,
setProject,
}
},
provide() {
return {
}
},
})
</script>
<style lang="less" scoped>
.projectSettingModal{
:deep(.designOpenrtion_content){
display: flex;
flex-direction: column;
}
}
</style>