云生成
This commit is contained in:
@@ -384,12 +384,12 @@ export default defineComponent({
|
|||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.molepositon{
|
.molepositon{
|
||||||
width: 30rem;
|
width: 30rem;
|
||||||
height: 65rem;
|
height: 66rem;
|
||||||
// height: 80rem;
|
// height: 80rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
// margin: auto 0;
|
// margin: auto 0;
|
||||||
padding-top: 3rem;
|
// padding-top: 3rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
display: none;
|
display: none;
|
||||||
&.active{
|
&.active{
|
||||||
@@ -409,9 +409,9 @@ export default defineComponent({
|
|||||||
z-index: 2;
|
z-index: 2;
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: auto;
|
||||||
object-fit: contain;
|
// height: 100%;
|
||||||
object-fit: contain;
|
// object-fit: contain;
|
||||||
}
|
}
|
||||||
>div{
|
>div{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -422,8 +422,10 @@ export default defineComponent({
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
img{
|
img{
|
||||||
|
// width: 100%;
|
||||||
|
// height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: auto;
|
||||||
float: left;
|
float: left;
|
||||||
user-select:none;
|
user-select:none;
|
||||||
-webkit-user-drag: none;
|
-webkit-user-drag: none;
|
||||||
|
|||||||
@@ -255,6 +255,8 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
roborSend (){
|
roborSend (){
|
||||||
this.clearTimer()
|
this.clearTimer()
|
||||||
|
console.log(this.workspace)
|
||||||
|
return
|
||||||
if(!this.chatCentent){
|
if(!this.chatCentent){
|
||||||
message.info(this.t('RobotAssist.jsContent1'));
|
message.info(this.t('RobotAssist.jsContent1'));
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent,computed,onMounted,nextTick,onBeforeMount,toRefs, reactive,watch} from 'vue'
|
import { defineComponent,computed,onMounted,nextTick,onBeforeUnmount,toRefs, reactive,watch} from 'vue'
|
||||||
// import setDesignItem from '@/component/Detail/setDesignItem2.vue'
|
// import setDesignItem from '@/component/Detail/setDesignItem2.vue'
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import {useRoute} from 'vue-router'
|
import {useRoute} from 'vue-router'
|
||||||
@@ -253,7 +253,7 @@ export default defineComponent({
|
|||||||
getHistory()
|
getHistory()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
onBeforeMount(()=>{
|
onBeforeUnmount(()=>{
|
||||||
// data.selectObject = null
|
// data.selectObject = null
|
||||||
// store.commit('createProbject')
|
// store.commit('createProbject')
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -18,15 +18,14 @@
|
|||||||
<div class="generalModel_closeIcon" @click.stop="cancelDsign()">
|
<div class="generalModel_closeIcon" @click.stop="cancelDsign()">
|
||||||
<svg width="46" height="46" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="46" height="46" 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"/>
|
<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="32.5063" y="12" width="3" height="29" rx="1.5" transform="rotate(45 32.5063 12)" fill="#000"/>
|
||||||
<rect x="34.6274" y="32.5059" width="3" height="29" rx="1.5" transform="rotate(135 34.6274 32.5059)" fill="white"/>
|
<rect x="34.6274" y="32.5059" width="3" height="29" rx="1.5" transform="rotate(135 34.6274 32.5059)" fill="#000"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal_title_text">
|
<div class="modal_title_text">
|
||||||
<div>Cloud generation task</div>
|
<div>Cloud generation task</div>
|
||||||
</div>
|
</div>
|
||||||
{{ cloudList }}
|
|
||||||
<div class="allUserPoeration_center admin_page">
|
<div class="allUserPoeration_center admin_page">
|
||||||
<div class="admin_state_item">
|
<div class="admin_state_item">
|
||||||
<span>Build type <span>*</span></span>
|
<span>Build type <span>*</span></span>
|
||||||
@@ -34,34 +33,76 @@
|
|||||||
v-model:value="buildType"
|
v-model:value="buildType"
|
||||||
show-search
|
show-search
|
||||||
allowClear
|
allowClear
|
||||||
style="width: 220px"
|
style="width: 200px"
|
||||||
placeholder="Please select"
|
placeholder="Please select"
|
||||||
:options="cloudList"
|
:options="cloudList"
|
||||||
|
@change="changeBuildType"
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="admin_state_item" >
|
<div class="admin_state_item" >
|
||||||
<span>Image upload</span>
|
<span>Number of images <span>*</span></span>
|
||||||
<input
|
|
||||||
v-model="percentOff"
|
|
||||||
placeholder="Please enter percentOff"
|
|
||||||
type="text"
|
|
||||||
style="width: 220px"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="admin_state_item" >
|
|
||||||
<span>Number of images</span>
|
|
||||||
<input
|
<input
|
||||||
v-model="numberOfImages"
|
v-model="numberOfImages"
|
||||||
|
:disabled="buildType =='relight' || buildType == 'poseTransfer'"
|
||||||
placeholder="Please enter number"
|
placeholder="Please enter number"
|
||||||
type="text"
|
type="text"
|
||||||
style="width: 220px"
|
style="width: 200px"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="admin_state_item" style="width: 100%;">
|
<!-- toProductimg -->
|
||||||
<span style="margin: 0;">Generation time:19min</span>
|
<div v-show="buildType == 'toProductImage'" class="admin_state_item ">
|
||||||
|
<span>{{$t('ProductImg.Similarity')}}</span>
|
||||||
|
<div class="sliderAndImput" style="width: 200px">
|
||||||
|
<a-slider class="system_silder"
|
||||||
|
v-model:value="similarity"
|
||||||
|
:tooltipVisible="false"
|
||||||
|
:step="5"
|
||||||
|
|
||||||
|
>
|
||||||
|
</a-slider>
|
||||||
|
<input type="number" readonly v-model="similarity">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-show="buildType == 'relight'" class="admin_state_item ">
|
||||||
|
<span>{{$t('ProductImg.RelightDirection')}}</span>
|
||||||
|
<a-select style="width: 200px" v-model:value="relightDirection" :options="relightDirectionList"></a-select>
|
||||||
|
</div>
|
||||||
|
<div v-show="buildType == 'relight'" class="admin_state_item ">
|
||||||
|
<span>{{$t('ProductImg.Highlight')}}</span>
|
||||||
|
<div class="sliderAndImput" style="width: 200px">
|
||||||
|
<a-slider class="system_silder"
|
||||||
|
v-model:value="brightenValue"
|
||||||
|
:tooltipVisible="false"
|
||||||
|
|
||||||
|
:max="3"
|
||||||
|
:min="1"
|
||||||
|
:step="0.1"
|
||||||
|
>
|
||||||
|
</a-slider>
|
||||||
|
<input type="number" readonly v-model="brightenValue">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-show="buildType == 'toProductImage' || buildType == 'relight'" class="admin_state_item">
|
||||||
|
<span>Keyword</span>
|
||||||
|
<input
|
||||||
|
v-model="generateText"
|
||||||
|
:placeholder="$t('Generate.inputContent1')"
|
||||||
|
type="text"
|
||||||
|
style="width: 200px"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="selectImgList generalScroll" v-mousewheel v-show="exhibitionImgList.length>0">
|
||||||
|
<div v-for="item in exhibitionImgList" class="item">
|
||||||
|
<img :src="item.designOutfitUrl||item.url" alt="">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- <div class="admin_state_item" style="width: 100%;">
|
||||||
|
<span style="margin: 0;">Generation time:19min</span>
|
||||||
|
</div> -->
|
||||||
<div class="admin_state_item" style="width: 100%;">
|
<div class="admin_state_item" style="width: 100%;">
|
||||||
<span style="margin: 0;">Cost credit:500</span>
|
<span style="margin: 0;">Cost credit:{{credits * numberOfImages}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="allUserPoeration_btn admin_page">
|
<div class="allUserPoeration_btn admin_page">
|
||||||
@@ -79,12 +120,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { defineComponent, ref, reactive, watch, onMounted, nextTick, toRefs } from "vue";
|
import { defineComponent, computed, reactive, watch, onMounted, nextTick, toRefs } from "vue";
|
||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { Modal, message } from "ant-design-vue";
|
import { Modal, message } from "ant-design-vue";
|
||||||
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
||||||
import { formatTime,isEmail } from "@/tool/util";
|
import { formatTime,isEmail } from "@/tool/util";
|
||||||
import dayjs, { Dayjs } from 'dayjs';
|
import dayjs, { Dayjs } from 'dayjs';
|
||||||
|
import { useStore } from "vuex";
|
||||||
|
import { useI18n } from "vue-i18n";
|
||||||
|
import {getMinioUrl} from '@/tool/util'
|
||||||
const md5 = require("md5");
|
const md5 = require("md5");
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: {
|
components: {
|
||||||
@@ -95,41 +139,154 @@ export default defineComponent({
|
|||||||
default:[]
|
default:[]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
emits: ['searchHistoryList'],
|
emits: ['getContentList'],
|
||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
|
const store = useStore();
|
||||||
let operations = reactive({
|
let operations = reactive({
|
||||||
operationsModal:false,
|
operationsModal:false,
|
||||||
loadingShow:false,
|
loadingShow:false,
|
||||||
})
|
})
|
||||||
let operationsData = reactive({
|
let operationsData = reactive({
|
||||||
buildType:'',
|
buildType:'',
|
||||||
commissionRate:'',
|
|
||||||
numberOfImages:'',
|
numberOfImages:'',
|
||||||
|
credits:0,
|
||||||
|
exhibitionImgList:[],//选择的图片
|
||||||
|
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
|
||||||
|
//toProduct
|
||||||
|
generateText:'',//输入的内容
|
||||||
|
similarity:30,
|
||||||
|
brightenValue:1,//亮度
|
||||||
|
relightDirection:'Right Light',//打光方向
|
||||||
|
relightDirectionList:[
|
||||||
|
{
|
||||||
|
value:'Right Light',
|
||||||
|
label:useI18n().t('ProductImg.RightLight')
|
||||||
|
},{
|
||||||
|
value:'Left Light',
|
||||||
|
label:useI18n().t('ProductImg.LeftLight')
|
||||||
|
},{
|
||||||
|
value:'Top Light',
|
||||||
|
label:useI18n().t('ProductImg.TopLight')
|
||||||
|
},{
|
||||||
|
value:'Bottom Light',
|
||||||
|
label:useI18n().t('ProductImg.BottomLight')
|
||||||
|
}
|
||||||
|
]
|
||||||
})
|
})
|
||||||
let init = ()=>{
|
let init = ()=>{
|
||||||
operations.operationsModal = true
|
operations.operationsModal = true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
const changeBuildType = ()=>{
|
||||||
|
if(operationsData.buildType == 'design'){
|
||||||
|
operationsData.exhibitionImgList = []
|
||||||
|
}else if(operationsData.buildType == 'toProductImage'){
|
||||||
|
operationsData.exhibitionImgList = store.state.UploadFilesModule.modularData.design.likeData
|
||||||
|
}else if(operationsData.buildType == 'relight'){
|
||||||
|
operationsData.exhibitionImgList = store.state.UploadFilesModule.modularData.toProduct
|
||||||
|
operationsData.numberOfImages = operationsData.exhibitionImgList.length
|
||||||
|
}else if(operationsData.buildType == 'poseTransfer'){
|
||||||
|
operationsData.exhibitionImgList = store.state.UploadFilesModule.modularData.toProduct
|
||||||
|
operationsData.numberOfImages = operationsData.exhibitionImgList.length
|
||||||
|
}
|
||||||
|
props.cloudList.forEach((item)=>{
|
||||||
|
if(item.value == operationsData.buildType){
|
||||||
|
operationsData.credits = item.consumption
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
let getPorductImg = ()=>{
|
||||||
|
let modularData = store.state.UploadFilesModule.modularData
|
||||||
|
let list = []
|
||||||
|
if(operationsData.buildType == 'toProductImage' || operationsData.buildType == 'relight'){
|
||||||
|
let productOrRelight = []
|
||||||
|
if(operationsData.buildType == 'toProductImage')productOrRelight = modularData.design.likeData
|
||||||
|
if(operationsData.buildType == 'relight')productOrRelight = modularData.toProduct
|
||||||
|
|
||||||
|
productOrRelight.forEach((item)=>{
|
||||||
|
if(!item.id)return
|
||||||
|
let obj = {
|
||||||
|
"createTime": "",
|
||||||
|
"elementId": 0,
|
||||||
|
"elementType": "",
|
||||||
|
"id": 0,
|
||||||
|
"isLike": 0,
|
||||||
|
"taskId": "",
|
||||||
|
"toProductImageRecordId": 0,
|
||||||
|
"url": "",
|
||||||
|
}
|
||||||
|
obj.elementId = item.designOutfitId
|
||||||
|
obj.elementType = 'DesignOutfit'
|
||||||
|
if(operationsData.buildType == 'relight'){
|
||||||
|
obj.elementId = item.id
|
||||||
|
obj.elementType = 'ToProductImage'
|
||||||
|
}
|
||||||
|
list.push(obj)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
const getImageStrength = () => {
|
||||||
|
let imageStrength = operationsData.similarity == 100? 95 :operationsData.similarity
|
||||||
|
return imageStrength;
|
||||||
|
};
|
||||||
|
const getPoseTransformData = ()=>{
|
||||||
|
let list = []
|
||||||
|
let toProduct = store.state.UploadFilesModule.modularData.toProduct
|
||||||
|
toProduct.forEach((item)=>{
|
||||||
|
let obj = {
|
||||||
|
poseId:1,
|
||||||
|
productImage:getMinioUrl(item.url)
|
||||||
|
}
|
||||||
|
list.push(obj)
|
||||||
|
})
|
||||||
|
return list
|
||||||
|
}
|
||||||
let setAddData = ()=>{
|
let setAddData = ()=>{
|
||||||
return {
|
return {
|
||||||
"percentOff": operationsData.percentOff,
|
"buildType": operationsData.buildType,
|
||||||
"commissionRate": operationsData.commissionRate,
|
nums: operationsData.numberOfImages,
|
||||||
|
projectId: operationsData.selectObject.id,
|
||||||
|
//productimg
|
||||||
|
toProductImage:{
|
||||||
|
prompt:operationsData.generateText,//输入的内容
|
||||||
|
toProductImageVOList:getPorductImg(),//选择的图片
|
||||||
|
projectId: operationsData.selectObject.id,
|
||||||
|
direction:operationsData.relightDirection,//打光方向
|
||||||
|
brightenValue:operationsData.brightenValue,
|
||||||
|
imageStrength:(100 - getImageStrength())/100,
|
||||||
|
},
|
||||||
|
//poseTransform
|
||||||
|
poseTransform:getPoseTransformData(),
|
||||||
|
private: operationsData.selectObject.id,
|
||||||
|
ToProductImageDTO: operationsData.selectObject.id,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let cancelDsign = ()=>{
|
let cancelDsign = ()=>{
|
||||||
operationsData.percentOff=''
|
operationsData.buildType=''
|
||||||
operationsData.commissionRate=''
|
operationsData.numberOfImages=''
|
||||||
operations.operationsModal = false
|
operations.operationsModal = false
|
||||||
}
|
}
|
||||||
let setOk = ()=>{
|
let setOk = ()=>{
|
||||||
let data
|
let data
|
||||||
data = setAddData()
|
data = setAddData()
|
||||||
Https.axiosPost(Https.httpUrls.createCoupon, data).then(
|
console.log(data)
|
||||||
|
if(operationsData.buildType == 'toProductImage' || operationsData.buildType == 'relight'){
|
||||||
|
if(data.toProductImage.toProductImageVOList.length == 0)return message.warning('Please select the image')
|
||||||
|
}else if(operationsData.buildType == 'poseTransfer'){
|
||||||
|
if(data.poseTransform.length == 0)return message.warning('Please enter the number of images')
|
||||||
|
}
|
||||||
|
if(!data.buildType || !data.nums)return message.warning('Please check the input box marked with *')
|
||||||
|
operations.loadingShow = true
|
||||||
|
Https.axiosPost(Https.httpUrls.designCloud, data).then(
|
||||||
(rv) => {
|
(rv) => {
|
||||||
if (rv) {
|
if (rv) {
|
||||||
|
operations.loadingShow = false
|
||||||
cancelDsign()
|
cancelDsign()
|
||||||
emit('searchHistoryList')
|
emit('getContentList')
|
||||||
}
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
operations.loadingShow = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
@@ -140,6 +297,7 @@ export default defineComponent({
|
|||||||
focus,
|
focus,
|
||||||
blur,
|
blur,
|
||||||
setOk,
|
setOk,
|
||||||
|
changeBuildType,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -150,10 +308,39 @@ export default defineComponent({
|
|||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
directives:{
|
||||||
|
mousewheel:{
|
||||||
|
mounted (el) {
|
||||||
|
el.addEventListener('mouseenter', (e)=> {
|
||||||
|
if(el.scrollWidth > el.clientWidth){
|
||||||
|
el.parentElement.style.overflowY = 'hidden';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 鼠标移出事件
|
||||||
|
el.addEventListener('mouseleave', ()=> {
|
||||||
|
el.parentElement.style.overflowY = 'auto';
|
||||||
|
});
|
||||||
|
el.addEventListener('wheel',(e)=>{
|
||||||
|
let num = 0
|
||||||
|
if(e.deltaY > 0){
|
||||||
|
num = 25
|
||||||
|
}else{
|
||||||
|
num = -25
|
||||||
|
}
|
||||||
|
el.scrollBy(num, 0);
|
||||||
|
},{ passive: true })
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
:deep(.ant-modal-mask){
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
:deep(.createCloud_modal){
|
:deep(.createCloud_modal){
|
||||||
|
|
||||||
.ant-modal-body{
|
.ant-modal-body{
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -183,6 +370,27 @@ export default defineComponent({
|
|||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-content: flex-start;
|
align-content: flex-start;
|
||||||
|
padding: 0 2rem;
|
||||||
|
> .selectImgList{
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
overflow-x: auto;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
height: 20rem;
|
||||||
|
margin: 2rem 0;
|
||||||
|
> .item{
|
||||||
|
height: 100%;
|
||||||
|
margin-right: 1rem;
|
||||||
|
&:last-child{
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
> img{
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
}
|
||||||
> .admin_state_item{
|
> .admin_state_item{
|
||||||
width: auto;
|
width: auto;
|
||||||
// width: 100%;
|
// width: 100%;
|
||||||
@@ -201,6 +409,22 @@ export default defineComponent({
|
|||||||
> input{
|
> input{
|
||||||
border-radius: 1.6rem;
|
border-radius: 1.6rem;
|
||||||
}
|
}
|
||||||
|
>.sliderAndImput{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex: 1;
|
||||||
|
:deep(> .ant-slider){
|
||||||
|
// border-radius: 1.6rem;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
> input{
|
||||||
|
border-radius: 1.6rem;
|
||||||
|
width: 4rem;
|
||||||
|
margin-left: 1rem;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,26 +22,27 @@
|
|||||||
<tr v-for="(row, index) in contentList" :key="index">
|
<tr v-for="(row, index) in contentList" :key="index">
|
||||||
<td v-for="header in cloudTiltleList" :key="header.value">
|
<td v-for="header in cloudTiltleList" :key="header.value">
|
||||||
<span v-show="header.value != 'operation'">
|
<span v-show="header.value != 'operation'">
|
||||||
{{ row[header.value] }}
|
{{header?.fun?header.fun(row[header.value]) : row[header.value]}}
|
||||||
</span>
|
</span>
|
||||||
<span v-show="header.value == 'operation'" @click="downloadIamge(row)" style="cursor: pointer;">
|
<span v-show="header.value == 'operation'" @click="detailIamge(row)" style="cursor: pointer;">
|
||||||
download
|
Check
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</div>
|
</div>
|
||||||
|
<a-pagination style="text-align: center;" v-model:current="currentPage" :total="total" show-less-items />
|
||||||
</div>
|
</div>
|
||||||
{{ generateList }}
|
<createCloud ref="createCloud" :cloudList="generateList[workflowType]" @getContentList="submitGetContentList"></createCloud>
|
||||||
<createCloud ref="createCloud" :cloudList="generateList[workflowType]"></createCloud>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent,computed,ref,provide,nextTick,createVNode,toRefs, reactive} from 'vue'
|
import { defineComponent,computed,ref,onMounted,nextTick,createVNode,toRefs, reactive, onBeforeUnmount} from 'vue'
|
||||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
import createCloud from "./createCloud.vue";
|
import createCloud from "./createCloud.vue";
|
||||||
|
import { da } from 'element-plus/es/locale';
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components:{
|
components:{
|
||||||
createCloud,
|
createCloud,
|
||||||
@@ -53,39 +54,56 @@ export default defineComponent({
|
|||||||
required:true
|
required:true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
emits:[],
|
emits:['retrieve'],
|
||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
pageType:'list',
|
pageType:'list',
|
||||||
|
pageSize:10,
|
||||||
|
currentPage:1,
|
||||||
|
total:0,
|
||||||
|
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
|
||||||
generateList:{
|
generateList:{
|
||||||
seriesDesign:[
|
seriesDesign:[
|
||||||
{
|
{
|
||||||
name:'1',
|
label:'Design',
|
||||||
value:100,
|
value:'design',
|
||||||
}
|
consumption:0,
|
||||||
|
},{
|
||||||
|
label:'To Product Image',
|
||||||
|
value:'toProductImage',
|
||||||
|
consumption:5,
|
||||||
|
},{
|
||||||
|
label:'Relight',
|
||||||
|
value:'relight',
|
||||||
|
consumption:5,
|
||||||
|
},{
|
||||||
|
label:'Transfer Pose',
|
||||||
|
value:'poseTransfer',
|
||||||
|
consumption:10,
|
||||||
|
},
|
||||||
],
|
],
|
||||||
singleProductDesign:[
|
singleProductDesign:[
|
||||||
{
|
{
|
||||||
name:'1',
|
label:'1BuildTyped',
|
||||||
value:100,
|
value:100,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
printDesign:[
|
printDesign:[
|
||||||
{
|
{
|
||||||
name:'1',
|
label:'1',
|
||||||
value:100,
|
value:100,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
productDrawingDesign:[
|
productDrawingDesign:[
|
||||||
{
|
{
|
||||||
name:'1',
|
label:'1',
|
||||||
value:100,
|
value:100,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
printingDesign3D:[
|
printingDesign3D:[
|
||||||
{
|
{
|
||||||
name:'1',
|
label:'1',
|
||||||
value:100,
|
value:100,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -96,39 +114,109 @@ export default defineComponent({
|
|||||||
name:'File name',
|
name:'File name',
|
||||||
value:'name',
|
value:'name',
|
||||||
},{
|
},{
|
||||||
name:'File size',
|
name:'Build Type',
|
||||||
value:'size',
|
value:'buildType',
|
||||||
},{
|
},{
|
||||||
name:'UPloaded by',
|
name:'Generate quantity',
|
||||||
value:'upLoadedBy',
|
value:'nums',
|
||||||
},{
|
},{
|
||||||
name:'Task time',
|
name:'Task time',
|
||||||
value:'taskTime',
|
value:'updateTime',
|
||||||
|
fun:(value:any)=>{
|
||||||
|
if(!value)return
|
||||||
|
return value.split('T')[0] + ' ' + value.split('T')[1].split('.')[0]
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
name:'Schedule',
|
||||||
|
value:'process',
|
||||||
|
fun:(value:any)=>{
|
||||||
|
if(value == '100.00%'){
|
||||||
|
return 'Completed'
|
||||||
|
}else{
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
}
|
||||||
},{
|
},{
|
||||||
name:'Operation',
|
name:'Operation',
|
||||||
value:'operation',
|
value:'operation',
|
||||||
},
|
},
|
||||||
] as any,
|
] as any,
|
||||||
contentList:[
|
contentList:[
|
||||||
{ name: '张三', size: 28, upLoadedBy: '1', taskTime: '123' },
|
|
||||||
{ name: '李四', size: 32, upLoadedBy: '2', taskTime: '321' },
|
|
||||||
{ name: '王五', size: 25, upLoadedBy: '3', taskTime: '222' }
|
|
||||||
] as any,
|
] as any,
|
||||||
|
isGetContentList:false as any,
|
||||||
})
|
})
|
||||||
const dataDom = reactive({
|
const dataDom = reactive({
|
||||||
createCloud,
|
createCloud,
|
||||||
})
|
})
|
||||||
const createClound = ()=>{
|
const createClound = ()=>{
|
||||||
|
data.isGetContentList = false
|
||||||
dataDom.createCloud.init()
|
dataDom.createCloud.init()
|
||||||
}
|
}
|
||||||
const downloadIamge = (item:any)=>{
|
const detailIamge = (item:any)=>{
|
||||||
|
//去除里面的T2025-04-17T13:45:43
|
||||||
|
if(item.process == '100.00%' || item.status == 1){
|
||||||
|
let value = {
|
||||||
|
taskId:item.taskId,
|
||||||
|
page:1,
|
||||||
|
size:10,
|
||||||
|
buildType:item.buildType,
|
||||||
|
}
|
||||||
|
Https.axiosPost(Https.httpUrls.getDesignCloudResult,value).then((rv)=>{
|
||||||
|
console.log(rv)
|
||||||
|
if(rv.design && rv.design.length > 0){
|
||||||
|
store.commit('addDesignCollectionList',rv.design)
|
||||||
|
emit('retrieve','design')
|
||||||
|
}else if(rv.toProductImage && rv.toProductImage.length > 0){
|
||||||
|
store.commit('setCloudList',{str:'toProduct',list:rv.toProductImage})
|
||||||
|
emit('retrieve','toProduct')
|
||||||
|
}else if(rv.relight && rv.relight.length > 0){
|
||||||
|
store.commit('setCloudList',{str:'relight',list:rv.relight})
|
||||||
|
emit('retrieve','relight')
|
||||||
|
}else if(rv.poseTransfer && rv.poseTransfer.length > 0){
|
||||||
|
store.commit('setCloudList',{str:'poseTransfer',list:rv.poseTransfer})
|
||||||
|
emit('retrieve','poseTransfer')
|
||||||
|
}
|
||||||
|
data.isGetContentList = false
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
const getContentList = ()=>{
|
||||||
|
if(data.isGetContentList){
|
||||||
|
let value = {
|
||||||
|
page:data.currentPage,
|
||||||
|
size:data.pageSize,
|
||||||
|
projectId: data.selectObject.id,
|
||||||
|
}
|
||||||
|
Https.axiosPost(Https.httpUrls.cloudPage,value).then((rv)=>{
|
||||||
|
data.contentList = rv.content
|
||||||
|
data.total = rv.total
|
||||||
|
let arr = rv.content
|
||||||
|
let result = arr.some((item:any) => (item.process !== '100.00%' && item.status !== 1));
|
||||||
|
if(!result)data.isGetContentList = false
|
||||||
|
setTimeout(()=>{
|
||||||
|
getContentList()
|
||||||
|
},1500)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const submitGetContentList = ()=>{
|
||||||
|
data.isGetContentList = true
|
||||||
|
getContentList()
|
||||||
|
}
|
||||||
|
onBeforeUnmount(()=>{
|
||||||
|
data.isGetContentList = false
|
||||||
|
})
|
||||||
|
onMounted(()=>{
|
||||||
|
data.isGetContentList = true
|
||||||
|
getContentList()
|
||||||
|
})
|
||||||
return{
|
return{
|
||||||
...toRefs(dataDom),
|
...toRefs(dataDom),
|
||||||
...toRefs(data),
|
...toRefs(data),
|
||||||
createClound,
|
createClound,
|
||||||
downloadIamge,
|
detailIamge,
|
||||||
|
getContentList,
|
||||||
|
submitGetContentList,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
provide() {
|
provide() {
|
||||||
@@ -187,6 +275,8 @@ export default defineComponent({
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
padding-top: 2.5rem;
|
padding-top: 2.5rem;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
> .content tr , > .title{
|
> .content tr , > .title{
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@@ -202,12 +292,16 @@ export default defineComponent({
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.content > tr{
|
.content{
|
||||||
> td{
|
flex: 1;
|
||||||
text-align: center;
|
overflow: hidden;
|
||||||
width: calc(100% / 4);
|
> tr{
|
||||||
line-height: 4.6rem;
|
> td{
|
||||||
font-size: 2.2rem;
|
text-align: center;
|
||||||
|
width: calc(100% / 4);
|
||||||
|
line-height: 4.6rem;
|
||||||
|
font-size: 2.2rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -376,7 +376,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
let getDesignTime = null as any;
|
let getDesignTime = null as any;
|
||||||
const setSystemDesigner = (time:any)=>{
|
const setSystemDesigner = (time:any)=>{
|
||||||
|
console.log(123)
|
||||||
clearTimeout(collItemSize.collTime)
|
clearTimeout(collItemSize.collTime)
|
||||||
collItemSize.collTime = setTimeout(()=>{
|
collItemSize.collTime = setTimeout(()=>{
|
||||||
nextTick(()=>{
|
nextTick(()=>{
|
||||||
@@ -420,6 +420,7 @@ export default defineComponent({
|
|||||||
userLikeSortId:item.designItemId
|
userLikeSortId:item.designItemId
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
console.log(posiitonData.value.generateElList)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -521,7 +522,6 @@ export default defineComponent({
|
|||||||
width = (collItemDom.value.offsetWidth - 30) / 3 * collItemSize.scale[0]
|
width = (collItemDom.value.offsetWidth - 30) / 3 * collItemSize.scale[0]
|
||||||
height = (collItemDom.value.offsetWidth - 30) / 3 * collItemSize.scale[1]
|
height = (collItemDom.value.offsetWidth - 30) / 3 * collItemSize.scale[1]
|
||||||
}
|
}
|
||||||
|
|
||||||
let moveIndex = Math.round(x / (width + 10)) + Math.round(y / (height + 10)) * num;
|
let moveIndex = Math.round(x / (width + 10)) + Math.round(y / (height + 10)) * num;
|
||||||
moveIndex = elList.length - 1 - moveIndex
|
moveIndex = elList.length - 1 - moveIndex
|
||||||
moveIndex = moveIndex < 0 ? 0 : moveIndex;
|
moveIndex = moveIndex < 0 ? 0 : moveIndex;
|
||||||
@@ -532,6 +532,7 @@ export default defineComponent({
|
|||||||
}else{
|
}else{
|
||||||
posiitonData.value.generateSelectIndex = moveIndex;
|
posiitonData.value.generateSelectIndex = moveIndex;
|
||||||
}
|
}
|
||||||
|
console.log(elList)
|
||||||
let currentSort = item.sort;
|
let currentSort = item.sort;
|
||||||
for(let i = 0;i < elList.length;i++){
|
for(let i = 0;i < elList.length;i++){
|
||||||
if(currentSort < moveIndex){
|
if(currentSort < moveIndex){
|
||||||
@@ -1180,7 +1181,7 @@ export default defineComponent({
|
|||||||
Https.axiosPost(Https.httpUrls.designDislike, data)
|
Https.axiosPost(Https.httpUrls.designDislike, data)
|
||||||
.then((rv: any) => {
|
.then((rv: any) => {
|
||||||
if (rv) {
|
if (rv) {
|
||||||
this.store.commit("addDesignCollectionList", design);
|
this.store.commit("addDesignCollectionList", [design]);
|
||||||
this.store.commit(
|
this.store.commit(
|
||||||
"deleteLikeDesignCollectionList",
|
"deleteLikeDesignCollectionList",
|
||||||
index
|
index
|
||||||
@@ -1385,7 +1386,9 @@ export default defineComponent({
|
|||||||
this.designNewCollection()
|
this.designNewCollection()
|
||||||
}
|
}
|
||||||
nextTick(()=>{
|
nextTick(()=>{
|
||||||
|
if(this.designCollectionList.length > 0)this.recycleDomHidden = true
|
||||||
this.setSystemDesigner(100)
|
this.setSystemDesigner(100)
|
||||||
|
this.setDesignItemStyle()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//销毁图片详情
|
//销毁图片详情
|
||||||
|
|||||||
@@ -98,7 +98,9 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
},{immediate:true})
|
},{immediate:true})
|
||||||
|
watch(()=>data.selectObject.sex,(newVal)=>{
|
||||||
|
getModel()
|
||||||
|
})
|
||||||
const dataDom = reactive({
|
const dataDom = reactive({
|
||||||
habitSetStyle:null as any,
|
habitSetStyle:null as any,
|
||||||
edit:null as any,
|
edit:null as any,
|
||||||
|
|||||||
@@ -1,5 +1,30 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="three">
|
<div class="three">
|
||||||
|
<div class="parameter">
|
||||||
|
<label>
|
||||||
|
<span>X:</span>
|
||||||
|
<a-slider class="system_silder"
|
||||||
|
v-model:value="repeat.x"
|
||||||
|
:tooltipVisible="false"
|
||||||
|
@change="changeRepeat"
|
||||||
|
:max="2"
|
||||||
|
:step="0.001"
|
||||||
|
:min="0.002"
|
||||||
|
>
|
||||||
|
</a-slider>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<span>Y:</span>
|
||||||
|
<a-slider class="system_silder"
|
||||||
|
v-model:value="repeat.y"
|
||||||
|
:tooltipVisible="false"
|
||||||
|
@change="changeRepeat"
|
||||||
|
:max="2"
|
||||||
|
:step="0.01"
|
||||||
|
>
|
||||||
|
</a-slider>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
<div class="model" ref="threeDom">
|
<div class="model" ref="threeDom">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -13,7 +38,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent,computed,shallowRef,provide,nextTick,onMounted,toRefs, reactive} from 'vue'
|
import { defineComponent,computed,shallowRef,provide,nextTick,onMounted,toRefs, reactive, onBeforeUnmount} from 'vue'
|
||||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
@@ -46,14 +71,23 @@ export default defineComponent({
|
|||||||
renderer:shallowRef() as any,//渲染器
|
renderer:shallowRef() as any,//渲染器
|
||||||
pointLight:shallowRef() as any,//光
|
pointLight:shallowRef() as any,//光
|
||||||
controls:shallowRef() as any,//监听鼠标、键盘事件
|
controls:shallowRef() as any,//监听鼠标、键盘事件
|
||||||
|
textureLoader:shallowRef() as any,//材质
|
||||||
load:{
|
load:{
|
||||||
state:false,
|
state:false,
|
||||||
progress:0 as any,
|
progress:0 as any,
|
||||||
}
|
},
|
||||||
|
repeat:{
|
||||||
|
x:1,
|
||||||
|
y:1,
|
||||||
|
},
|
||||||
|
animationId:null as any,
|
||||||
})
|
})
|
||||||
const dataDom = reactive({
|
const dataDom = reactive({
|
||||||
threeDom:null as any,
|
threeDom:null as any,
|
||||||
})
|
})
|
||||||
|
const dataTime = reactive({
|
||||||
|
updataRepeat:null as any
|
||||||
|
})
|
||||||
const init = ()=>{
|
const init = ()=>{
|
||||||
data.scene = new THREE.Scene();
|
data.scene = new THREE.Scene();
|
||||||
data.group = new THREE.Group()
|
data.group = new THREE.Group()
|
||||||
@@ -190,8 +224,8 @@ export default defineComponent({
|
|||||||
|
|
||||||
|
|
||||||
data.controls.enableDamping = true;
|
data.controls.enableDamping = true;
|
||||||
let animate = function () {
|
let animate = ()=>{
|
||||||
requestAnimationFrame(animate);
|
data.animationId = requestAnimationFrame(animate);
|
||||||
// data.renderer.render(data.scene, data.camera);
|
// data.renderer.render(data.scene, data.camera);
|
||||||
// model.rotation.x += 0.01; //旋转物体
|
// model.rotation.x += 0.01; //旋转物体
|
||||||
var vector = data.camera.position.clone()
|
var vector = data.camera.position.clone()
|
||||||
@@ -204,6 +238,7 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
animate();
|
animate();
|
||||||
}
|
}
|
||||||
|
|
||||||
const setModel = async (url:any)=>{
|
const setModel = async (url:any)=>{
|
||||||
clearModel()
|
clearModel()
|
||||||
await addModel(url)
|
await addModel(url)
|
||||||
@@ -215,6 +250,7 @@ export default defineComponent({
|
|||||||
let textureLoader = new THREE.TextureLoader()
|
let textureLoader = new THREE.TextureLoader()
|
||||||
textureLoader.load(url, // 图片放在public/textures目录下
|
textureLoader.load(url, // 图片放在public/textures目录下
|
||||||
(texture:any) => {
|
(texture:any) => {
|
||||||
|
data.textureLoader = texture
|
||||||
// 3. 配置纹理参数
|
// 3. 配置纹理参数
|
||||||
texture.wrapS = THREE.RepeatWrapping;
|
texture.wrapS = THREE.RepeatWrapping;
|
||||||
texture.wrapT = THREE.RepeatWrapping;
|
texture.wrapT = THREE.RepeatWrapping;
|
||||||
@@ -229,11 +265,11 @@ export default defineComponent({
|
|||||||
const box = new THREE.Box3().setFromObject(child);
|
const box = new THREE.Box3().setFromObject(child);
|
||||||
const modelWidth = box.getSize(new THREE.Vector3()).x;
|
const modelWidth = box.getSize(new THREE.Vector3()).x;
|
||||||
const modelHeight = box.getSize(new THREE.Vector3()).y;
|
const modelHeight = box.getSize(new THREE.Vector3()).y;
|
||||||
const repeatX = modelWidth / textureWidth;
|
data.repeat.x = 2 - modelWidth / textureWidth;
|
||||||
const repeatY = modelHeight / textureHeight;
|
data.repeat.y = 2 - modelHeight / textureHeight;
|
||||||
// texture.repeat.set(1, 1); // 纹理重复次数
|
// texture.repeat.set(1, 1); // 纹理重复次数
|
||||||
texture.repeat.set(repeatX, repeatY); // 纹理重复次数
|
texture.repeat.set(2 - data.repeat.x, 2 - data.repeat.y); // 纹理重复次数
|
||||||
|
|
||||||
const newMaterial = new THREE.MeshStandardMaterial({
|
const newMaterial = new THREE.MeshStandardMaterial({
|
||||||
map: texture, // 基础颜色贴图
|
map: texture, // 基础颜色贴图
|
||||||
roughness: 0.7, // 表面粗糙度 (0-1)
|
roughness: 0.7, // 表面粗糙度 (0-1)
|
||||||
@@ -258,6 +294,8 @@ export default defineComponent({
|
|||||||
console.error('纹理加载失败:', error);
|
console.error('纹理加载失败:', error);
|
||||||
data.load.state = false
|
data.load.state = false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const addModel = async (url:any)=>{
|
const addModel = async (url:any)=>{
|
||||||
@@ -340,13 +378,43 @@ export default defineComponent({
|
|||||||
await setModel(modeUrl)
|
await setModel(modeUrl)
|
||||||
data.load.state = false
|
data.load.state = false
|
||||||
}
|
}
|
||||||
|
const changeRepeat = (e:any)=>{
|
||||||
|
clearTimeout(dataTime.updataRepeat)
|
||||||
|
dataTime.updataRepeat = setTimeout(()=>{
|
||||||
|
data.textureLoader.repeat.set(2 - data.repeat.x,2 - data.repeat.y); // 纹理重复次数
|
||||||
|
},1000)
|
||||||
|
}
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
})
|
})
|
||||||
|
onBeforeUnmount(()=>{
|
||||||
|
if(data.animationId){
|
||||||
|
cancelAnimationFrame(data.animationId);
|
||||||
|
data.animationId = null;
|
||||||
|
}
|
||||||
|
data.scene.traverse((child:any) => {
|
||||||
|
if (child.material) {
|
||||||
|
child.material.dispose();
|
||||||
|
}
|
||||||
|
if (child.geometry) {
|
||||||
|
child.geometry.dispose();
|
||||||
|
}
|
||||||
|
child = null;
|
||||||
|
});
|
||||||
|
data.renderer.forceContextLoss();
|
||||||
|
data.renderer.dispose();
|
||||||
|
data.scene.clear();
|
||||||
|
data.scene = null;
|
||||||
|
data.camera = null;
|
||||||
|
data.controls = null;
|
||||||
|
data.renderer.domElement = null;
|
||||||
|
data.renderer = null;
|
||||||
|
})
|
||||||
return{
|
return{
|
||||||
...toRefs(dataDom),
|
...toRefs(dataDom),
|
||||||
...toRefs(data),
|
...toRefs(data),
|
||||||
openSetData,
|
openSetData,
|
||||||
addMaterial,
|
addMaterial,
|
||||||
|
changeRepeat,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
provide() {
|
provide() {
|
||||||
@@ -362,6 +430,22 @@ export default defineComponent({
|
|||||||
position: relative;
|
position: relative;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
> .parameter{
|
||||||
|
display: flex;
|
||||||
|
> label{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex: 1;
|
||||||
|
padding-right: 2rem;
|
||||||
|
// &:not(:last-child){
|
||||||
|
// margin-right: 3rem;
|
||||||
|
// }
|
||||||
|
> span{
|
||||||
|
font-size: 2rem;
|
||||||
|
margin-right: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
> .model{
|
> .model{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|||||||
@@ -169,6 +169,18 @@ export default defineComponent({
|
|||||||
if(data.poseList.length == 0){
|
if(data.poseList.length == 0){
|
||||||
getPoseList()
|
getPoseList()
|
||||||
}
|
}
|
||||||
|
setCloudImg()
|
||||||
|
}
|
||||||
|
const setCloudImg = ()=>{
|
||||||
|
let arr = store.state.UploadFilesModule.cloudList
|
||||||
|
let list = JSON.parse(JSON.stringify(arr.poseTransfer)) || []
|
||||||
|
console.log(list)
|
||||||
|
list.forEach((item:any)=>{
|
||||||
|
item.url = item.firstFrameUrl
|
||||||
|
data.noLikeList.unshift(item)
|
||||||
|
})
|
||||||
|
|
||||||
|
store.commit('clearCloudList','poseTransfer')
|
||||||
}
|
}
|
||||||
const gifPlay = (e:any,item:any)=>{
|
const gifPlay = (e:any,item:any)=>{
|
||||||
e.target.src = item.gif//使用gif图片
|
e.target.src = item.gif//使用gif图片
|
||||||
@@ -329,7 +341,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
const likeSetBtn = (id:any,str:string)=>{
|
const likeSetBtn = (id:any,str:string)=>{
|
||||||
data.likeList.forEach((item:any,index:any)=>{
|
data.likeList.forEach((item:any,index:any)=>{
|
||||||
if(item.id == id){
|
if(item.id == id && id){
|
||||||
if(str == 'zoom'){
|
if(str == 'zoom'){
|
||||||
showViewVideo({url:item.videoUrl})
|
showViewVideo({url:item.videoUrl})
|
||||||
}else if(str == 'like'){
|
}else if(str == 'like'){
|
||||||
@@ -340,16 +352,21 @@ export default defineComponent({
|
|||||||
|
|
||||||
}
|
}
|
||||||
const noLikeSetBtn = (id:any,str:string)=>{
|
const noLikeSetBtn = (id:any,str:string)=>{
|
||||||
data.noLikeList.forEach((item:any,index:any)=>{
|
if(str == 'delete'){
|
||||||
if(item.id == id){
|
data.noLikeList = data.noLikeList.filter((v:any) => v.id != id);
|
||||||
if(str == 'zoom'){
|
}else{
|
||||||
showViewVideo({url:item.videoUrl})
|
data.noLikeList.forEach((item:any,index:any)=>{
|
||||||
|
if(item.id == id && id){
|
||||||
}else if(str == 'like'){
|
if(str == 'zoom'){
|
||||||
likeFile(item,'like',index)
|
showViewVideo({url:item.videoUrl})
|
||||||
|
|
||||||
|
}else if(str == 'like'){
|
||||||
|
likeFile(item,'like',index)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
})
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
let likeFile = (item:any,str:any,index:any) =>{
|
let likeFile = (item:any,str:any,index:any) =>{
|
||||||
let url
|
let url
|
||||||
|
|||||||
@@ -169,7 +169,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<generalDrag ref="generalDragLeft" @setBtn="selectSetBtn" :isLike="true" :list="likeList[productimgMenu.value]"></generalDrag>
|
<generalDrag ref="generalDragLeft" @setBtn="selectSetBtn" :isDelete="false" :isLike="true" :list="likeList[productimgMenu.value]"></generalDrag>
|
||||||
</div>
|
</div>
|
||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
|
|
||||||
@@ -340,6 +340,21 @@ export default defineComponent({
|
|||||||
userlikeGroupId = selectDesignList.value.userlikeGroupId
|
userlikeGroupId = selectDesignList.value.userlikeGroupId
|
||||||
// getLikeProductImage(selectDesignList.value.userlikeGroupId)
|
// getLikeProductImage(selectDesignList.value.userlikeGroupId)
|
||||||
productImgDom.generalDragLeft.setItemPosition()
|
productImgDom.generalDragLeft.setItemPosition()
|
||||||
|
|
||||||
|
setCloudImg()
|
||||||
|
}
|
||||||
|
const setCloudImg = ()=>{
|
||||||
|
let arr = store.state.UploadFilesModule.cloudList
|
||||||
|
if(props.productimgMenu.value == 'ToProductImage'){
|
||||||
|
let list = JSON.parse(JSON.stringify(arr.toProduct)) || []
|
||||||
|
productImgData.generateList.unshift(...list)
|
||||||
|
store.commit('clearCloudList','ToProductImage')
|
||||||
|
}else if(props.productimgMenu.value == 'Relight'){
|
||||||
|
let list = JSON.parse(JSON.stringify(arr.relight)) || []
|
||||||
|
productImgData.generateList.unshift(...list)
|
||||||
|
store.commit('clearCloudList','relight')
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
let setproduct = (value:any)=>{
|
let setproduct = (value:any)=>{
|
||||||
// props.productimgMenu = value
|
// props.productimgMenu = value
|
||||||
@@ -684,7 +699,6 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const setLikeZoom = (item:any,str:string,index:number,list:List) =>{
|
const setLikeZoom = (item:any,str:string,index:number,list:List) =>{
|
||||||
console.log(str)
|
|
||||||
if(str == 'zoom'){
|
if(str == 'zoom'){
|
||||||
setScaleImage(list,index,true)
|
setScaleImage(list,index,true)
|
||||||
}else{
|
}else{
|
||||||
@@ -701,13 +715,19 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const generateSetBtn = (id:any,str:string)=>{
|
const generateSetBtn = (id:any,str:string)=>{
|
||||||
productImgData.generateList.forEach((item:any,index:number)=>{
|
console.log(str)
|
||||||
if(item.id == id){
|
if(str == 'delete'){
|
||||||
let selectStr = ''
|
productImgData.generateList = productImgData.generateList.filter((v:any) => v.id != id);
|
||||||
str == 'zoom'?selectStr = 'zoom':selectStr ='like'
|
}else{
|
||||||
setLikeZoom(item,selectStr,index,productImgData.generateList)
|
productImgData.generateList.forEach((item:any,index:number)=>{
|
||||||
}
|
if(item.id == id){
|
||||||
})
|
let selectStr = ''
|
||||||
|
str == 'zoom'?selectStr = 'zoom':selectStr ='like'
|
||||||
|
setLikeZoom(item,selectStr,index,productImgData.generateList)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
const setItemPosition = ()=>{
|
const setItemPosition = ()=>{
|
||||||
productImgDom.generalDragLeft.setItemPosition()
|
productImgDom.generalDragLeft.setItemPosition()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<printingDesign3D v-show="selectKey_ != 'yun'" v-if="selectObject.id && workflowType == 'printingDesign3D'" ref="printingDesign3D" :selectKey_="selectKey_" :workflowType="workflowType" :httpWorkflowType="httpWorkflowType"></printingDesign3D>
|
<printingDesign3D v-show="selectKey_ != 'yun'" v-if="selectObject.id && workflowType == 'printingDesign3D'" ref="printingDesign3D" :selectKey_="selectKey_" :workflowType="workflowType" :httpWorkflowType="httpWorkflowType"></printingDesign3D>
|
||||||
<printDesign v-show="selectKey_ != 'yun'" v-if="selectObject.id && workflowType == 'printDesign'" ref="printDesign" :selectKey_="selectKey_" :workflowType="workflowType" :httpWorkflowType="httpWorkflowType"></printDesign>
|
<printDesign v-show="selectKey_ != 'yun'" v-if="selectObject.id && workflowType == 'printDesign'" ref="printDesign" :selectKey_="selectKey_" :workflowType="workflowType" :httpWorkflowType="httpWorkflowType"></printDesign>
|
||||||
<div class="public">
|
<div class="public">
|
||||||
<cloudUploading v-show="selectKey_ == 'yun'" v-if="selectObject.id" :workflowType="workflowType" ref="cloudUploading"></cloudUploading>
|
<cloudUploading v-show="selectKey_ == 'yun'" v-if="selectObject.id" :workflowType="workflowType" ref="cloudUploading" @retrieve="(value:any)=>$emit('retrieve',value)"></cloudUploading>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -40,7 +40,7 @@ export default defineComponent({
|
|||||||
workflowType:String,
|
workflowType:String,
|
||||||
httpWorkflowType:String,
|
httpWorkflowType:String,
|
||||||
},
|
},
|
||||||
emit:['projectComplete'],
|
emit:['projectComplete','retrieve'],
|
||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
@@ -60,7 +60,6 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
//处理design数据
|
//处理design数据
|
||||||
const setDesignData = (str:any)=>{
|
const setDesignData = (str:any)=>{
|
||||||
console.log(dataDom,str)
|
|
||||||
// if (str in dataDom) {
|
// if (str in dataDom) {
|
||||||
if(str == 'workspace' || str == '')return
|
if(str == 'workspace' || str == '')return
|
||||||
return new Promise(async (resolve,reject)=>{
|
return new Promise(async (resolve,reject)=>{
|
||||||
@@ -154,36 +153,8 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const setModule = (value:any)=>{//选中设置数据
|
const setModule = (value:any)=>{//选中设置数据
|
||||||
// setStoreData(value)//设置数据或者清除数据
|
|
||||||
if(dataDom[data.selectObject.type]?.open)dataDom[data.selectObject.type].open(value.str,value.button)
|
if(dataDom[data.selectObject.type]?.open)dataDom[data.selectObject.type].open(value.str,value.button)
|
||||||
}
|
}
|
||||||
const setStoreData = async (data:any)=>{
|
|
||||||
let {value,select} = data
|
|
||||||
let allBoardData = ['sketchBoard','moodBoard','printBoard','colorBoard']
|
|
||||||
if (select) {
|
|
||||||
await setDesignData(value)
|
|
||||||
if(allBoardData.indexOf(value) != -1){
|
|
||||||
store.commit('setAllBoardData',value)
|
|
||||||
}else{
|
|
||||||
let data = {
|
|
||||||
data:'',
|
|
||||||
type:value
|
|
||||||
}
|
|
||||||
store.commit('setModularData',data)
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if(allBoardData.indexOf(value) != -1){
|
|
||||||
store.commit('clearAllBoardData',value)
|
|
||||||
}else{
|
|
||||||
let data = {
|
|
||||||
data:null,
|
|
||||||
type:value
|
|
||||||
}
|
|
||||||
store.commit('setModularData',data)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
const unfold = ()=>{
|
const unfold = ()=>{
|
||||||
dataDom[data.selectObject.type].unfold()
|
dataDom[data.selectObject.type].unfold()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="workflowBox">
|
<div class="workflowBox">
|
||||||
<div class="workflow" v-show="isUpdataPorject || selectObject.id">
|
<div class="workflow" v-show="isUpdataPorject || selectObject.id">
|
||||||
<navList @setSelectKey="setSelectKey" @unfold="unfold" @goHome="goHome" :navListData="navListData" :selectKey="selectKey"></navList>
|
<navList ref="navList" @setSelectKey="setSelectKey" @unfold="unfold" @goHome="goHome" :navListData="navListData" :selectKey="selectKey"></navList>
|
||||||
<div class="contentBox" :style="[{overflow:selectKey == 'canvas'?'hidden':''}]">
|
<div class="contentBox" :style="[{overflow:selectKey == 'canvas'?'hidden':''}]">
|
||||||
<div class="homeContent" ref="parent">
|
<div class="homeContent" ref="parent">
|
||||||
<navListBox
|
<navListBox
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="text" @click="setBack()"><i class="fi fi-bs-down-left-and-up-right-to-center"></i></div>
|
<div class="text" @click="setBack()"><i class="fi fi-bs-down-left-and-up-right-to-center"></i></div>
|
||||||
</div>
|
</div>
|
||||||
<content ref="content" :selectKey_="selectKey_" @projectComplete="setBack()" :workflowType="workflowType" :httpWorkflowType="httpWorkflowType"></content>
|
<content ref="content" @retrieve="retrieve" :selectKey_="selectKey_" @projectComplete="setBack()" :workflowType="workflowType" :httpWorkflowType="httpWorkflowType"></content>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -101,7 +101,8 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
const dataDom = reactive({
|
const dataDom = reactive({
|
||||||
parent:null as any,
|
parent:null as any,
|
||||||
content:null as any
|
content:null as any,
|
||||||
|
navList:null as any
|
||||||
})
|
})
|
||||||
const setBack = ()=>{
|
const setBack = ()=>{
|
||||||
data.selectKey = ''
|
data.selectKey = ''
|
||||||
@@ -168,6 +169,10 @@ export default defineComponent({
|
|||||||
const unfold = ()=>{
|
const unfold = ()=>{
|
||||||
dataDom.content.unfold()
|
dataDom.content.unfold()
|
||||||
}
|
}
|
||||||
|
const retrieve = (str:any)=>{
|
||||||
|
console.log(str)
|
||||||
|
dataDom.navList.uploadSelectKey(str)
|
||||||
|
}
|
||||||
return{
|
return{
|
||||||
...toRefs(dataDom),
|
...toRefs(dataDom),
|
||||||
...toRefs(data),
|
...toRefs(data),
|
||||||
@@ -176,6 +181,7 @@ export default defineComponent({
|
|||||||
setSelectKey,
|
setSelectKey,
|
||||||
unfold,
|
unfold,
|
||||||
goHome,
|
goHome,
|
||||||
|
retrieve,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -12,16 +12,16 @@
|
|||||||
<i class="fi fi-sr-home"></i>
|
<i class="fi fi-sr-home"></i>
|
||||||
<span v-show="isUnfold">Home</span>
|
<span v-show="isUnfold">Home</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="navList" :class="{active:selectKey == 'workspace'}" @click="setNav('workspace', $event)">
|
<div class="navList" :class="{active:selectKey == 'workspace'}" @click="setNav('workspace', $event.target)">
|
||||||
<i class="fi fi-rr-settings-sliders"></i>
|
<i class="fi fi-rr-settings-sliders"></i>
|
||||||
<span v-show="isUnfold">Settings</span>
|
<span v-show="isUnfold">Settings</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="border"></div>
|
<div class="border"></div>
|
||||||
<div class="navList list" :class="{active:selectKey == item.value,exist:navListData.some((navListItem:any) => navListItem.value === item.value)}" v-for="item in navList" :key="item.value" @click="setNav(item.value, $event)">
|
<div class="navList list" :class="[selectKey == item.value?'active':'',navListData.some((navListItem:any) => navListItem.value === item.value)?'exist':'',item.value]" v-for="item in navList" :key="item.value" @click="setNav(item.value, $event.target)">
|
||||||
<i :class="item.icon"></i>
|
<i :class="item.icon"></i>
|
||||||
<span v-show="isUnfold">{{ item.name }}</span>
|
<span v-show="isUnfold">{{ item.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="navList list exist" style="margin-top: auto;" @click="setNav('yun', $event)">
|
<div class="navList list exist" style="margin-top: auto;" @click="setNav('yun', $event.target)">
|
||||||
<i class="fi fi-rr-cloud-upload-alt"></i>
|
<i class="fi fi-rr-cloud-upload-alt"></i>
|
||||||
<span v-show="isUnfold">云生成</span>
|
<span v-show="isUnfold">云生成</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -53,10 +53,10 @@ export default defineComponent({
|
|||||||
|
|
||||||
const dataDom = reactive({
|
const dataDom = reactive({
|
||||||
})
|
})
|
||||||
const setNav = (str:any,event:any)=>{
|
const setNav = (str:any,target:any)=>{
|
||||||
let data = {
|
let data = {
|
||||||
str:str == props.selectKey?'':str,
|
str:str == props.selectKey?'':str,
|
||||||
dom:event.target,
|
dom:target,
|
||||||
posiiton:'nav',
|
posiiton:'nav',
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,6 +85,10 @@ export default defineComponent({
|
|||||||
store.commit('createProbject')
|
store.commit('createProbject')
|
||||||
emit("goHome");
|
emit("goHome");
|
||||||
}
|
}
|
||||||
|
const uploadSelectKey = (str:any)=>{
|
||||||
|
let dom = document.querySelector(`.homeNav .${str}`)
|
||||||
|
setNav(str,dom)
|
||||||
|
}
|
||||||
return{
|
return{
|
||||||
...toRefs(dataDom),
|
...toRefs(dataDom),
|
||||||
...toRefs(data),
|
...toRefs(data),
|
||||||
@@ -92,6 +96,7 @@ export default defineComponent({
|
|||||||
setUnfold,
|
setUnfold,
|
||||||
goHome,
|
goHome,
|
||||||
projectList,
|
projectList,
|
||||||
|
uploadSelectKey,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent,computed,watch,nextTick,onBeforeMount,toRefs, reactive, onMounted, inject} from 'vue'
|
import { defineComponent,computed,watch,nextTick,onBeforeUnmount,toRefs, reactive, onMounted, inject} from 'vue'
|
||||||
// import setDesignItem from '@/component/Detail/setDesignItem2.vue'
|
// import setDesignItem from '@/component/Detail/setDesignItem2.vue'
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|||||||
@@ -251,6 +251,7 @@ export default defineComponent({
|
|||||||
publishData.subPublishDate.openSource = publishData.selectPermissions.isSecondaryCreation?1:0
|
publishData.subPublishDate.openSource = publishData.selectPermissions.isSecondaryCreation?1:0
|
||||||
let tagDTO = textareaChange()
|
let tagDTO = textareaChange()
|
||||||
publishData.subPublishDate.tagsDTO = tagDTO
|
publishData.subPublishDate.tagsDTO = tagDTO
|
||||||
|
publishData.subPublishDate.projectId = store.state.Workspace.probjects.id
|
||||||
param.append('data',JSON.stringify(publishData.subPublishDate))
|
param.append('data',JSON.stringify(publishData.subPublishDate))
|
||||||
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
||||||
// let data = publishData.subPublishDate
|
// let data = publishData.subPublishDate
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
<div class="zoom" v-if="item.url" @click.stop="()=>$emit('setBtn',item.id,'zoom')">
|
<div class="zoom" v-if="item.url" @click.stop="()=>$emit('setBtn',item.id,'zoom')">
|
||||||
<i class="fi fi-bs-expand-arrows-alt"></i>
|
<i class="fi fi-bs-expand-arrows-alt"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="delete" v-if="item.url" @click.stop="()=>$emit('setBtn',item.id,'zoom')">
|
<div class="delete" v-if="item.url && isDelete" @click.stop="()=>$emit('setBtn',item.id,'delete')">
|
||||||
<i class="fi fi-rr-trash icon_delete"></i>
|
<i class="fi fi-rr-trash icon_delete"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -50,6 +50,7 @@ export default defineComponent({
|
|||||||
isVideo:{type:Boolean,default:false},
|
isVideo:{type:Boolean,default:false},
|
||||||
showMark:{type:Boolean,default:false},
|
showMark:{type:Boolean,default:false},
|
||||||
isLike:{type:Boolean,default:false},
|
isLike:{type:Boolean,default:false},
|
||||||
|
isDelete:{type:Boolean,default:true},
|
||||||
},
|
},
|
||||||
emits:['setBtn','setSort'],
|
emits:['setBtn','setSort'],
|
||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ const HomeStoreModule : Module<DesignDetail,RootState> = {
|
|||||||
state.likeDesignCollectionList[data.index] = data.design
|
state.likeDesignCollectionList[data.index] = data.design
|
||||||
},
|
},
|
||||||
addDesignCollectionList(state,data){
|
addDesignCollectionList(state,data){
|
||||||
state.designCollectionList.push(data)
|
state.designCollectionList.unshift(...data)
|
||||||
},
|
},
|
||||||
addLikeDesignCollectionList(state,data){
|
addLikeDesignCollectionList(state,data){
|
||||||
state.likeDesignCollectionList.unshift(data)
|
state.likeDesignCollectionList.unshift(data)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import workspace from '../workspace/workspace'
|
|||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
import GO from '@/tool/GO';
|
import GO from '@/tool/GO';
|
||||||
|
import setColor from '@/tool/color';
|
||||||
interface UploadFiles{
|
interface UploadFiles{
|
||||||
moodboard:any,
|
moodboard:any,
|
||||||
disposeMoodboard:any,
|
disposeMoodboard:any,
|
||||||
@@ -27,6 +28,7 @@ interface UploadFiles{
|
|||||||
moodTemplateId:any,
|
moodTemplateId:any,
|
||||||
chooseIsDesign:any,
|
chooseIsDesign:any,
|
||||||
modularData:any,
|
modularData:any,
|
||||||
|
cloudList:any,
|
||||||
}
|
}
|
||||||
|
|
||||||
const UploadFilesModule : Module<UploadFiles,RootState> = {
|
const UploadFilesModule : Module<UploadFiles,RootState> = {
|
||||||
@@ -71,6 +73,11 @@ const UploadFilesModule : Module<UploadFiles,RootState> = {
|
|||||||
patternMaking3D:null,
|
patternMaking3D:null,
|
||||||
deReconstruction:null,
|
deReconstruction:null,
|
||||||
},
|
},
|
||||||
|
cloudList:{
|
||||||
|
toProduct:null,
|
||||||
|
relight:null,
|
||||||
|
poseTransfer:null,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
mutations:{
|
mutations:{
|
||||||
|
|
||||||
@@ -323,6 +330,13 @@ const UploadFilesModule : Module<UploadFiles,RootState> = {
|
|||||||
state.disposeMoodboard = []
|
state.disposeMoodboard = []
|
||||||
state.moodboardPosition = {}
|
state.moodboardPosition = {}
|
||||||
},
|
},
|
||||||
|
// 上传云
|
||||||
|
setCloudList(state,{str,list}){
|
||||||
|
state.cloudList[str] = list
|
||||||
|
},
|
||||||
|
clearCloudList(state,str){
|
||||||
|
state.cloudList[str] = ''
|
||||||
|
}
|
||||||
},
|
},
|
||||||
actions:{
|
actions:{
|
||||||
setAllBoardData({ state,commit },data) {
|
setAllBoardData({ state,commit },data) {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ axios.defaults.baseURL = process.env.VUE_APP_BASE_URL; //配置接口地址
|
|||||||
const CancelToken = axios.CancelToken;
|
const CancelToken = axios.CancelToken;
|
||||||
const source = CancelToken.source();
|
const source = CancelToken.source();
|
||||||
// console.log(process.env.VUE_APP_BASE_URL);
|
// console.log(process.env.VUE_APP_BASE_URL);
|
||||||
const filterHttpsUrl = ['/api/portfolio/page','/api/portfolio/detail','/api/account/preLogin']
|
const filterHttpsUrl = ['/api/portfolio/page','/api/portfolio/detail','/api/account/preLogin','/api/account/schoolLogin','/api/account/enterpriseLogin']
|
||||||
//POST传参序列化(添加请求拦截器)
|
//POST传参序列化(添加请求拦截器)
|
||||||
axios.interceptors.request.use((config) => {
|
axios.interceptors.request.use((config) => {
|
||||||
//在发送请求之前做某件事
|
//在发送请求之前做某件事
|
||||||
@@ -167,6 +167,8 @@ export const Https = {
|
|||||||
|
|
||||||
|
|
||||||
preLogin:'/api/account/preLogin',//预先登入
|
preLogin:'/api/account/preLogin',//预先登入
|
||||||
|
schoolLogin:'/api/account/schoolLogin',//学校管理员登录
|
||||||
|
enterpriseLogin:'/api/account/enterpriseLogin',//企业管理员登录
|
||||||
accountSendEmail:`/api/account/sendEmail`, //发送邮件
|
accountSendEmail:`/api/account/sendEmail`, //发送邮件
|
||||||
accountResetPwd:'/api/account/resetPwd', //忘记密码修改
|
accountResetPwd:'/api/account/resetPwd', //忘记密码修改
|
||||||
accountLogout:'/api/account/logout',//登出
|
accountLogout:'/api/account/logout',//登出
|
||||||
@@ -311,6 +313,11 @@ export const Https = {
|
|||||||
getAllCoupons:`/api/stripe/getAllCoupons`,//查询优惠码列表
|
getAllCoupons:`/api/stripe/getAllCoupons`,//查询优惠码列表
|
||||||
checkCoupon:`/api/stripe/checkCoupon`,//根据优惠码获取结算后的金额
|
checkCoupon:`/api/stripe/checkCoupon`,//根据优惠码获取结算后的金额
|
||||||
|
|
||||||
|
//云生成
|
||||||
|
designCloud:`/api/design/designCloud`,//创建云生成
|
||||||
|
cloudPage:`/api/design/cloudPage`,//创建云生成
|
||||||
|
getDesignCloudResult:`/api/design/getDesignCloudResult`,//查询这条云生成记录的所有内容
|
||||||
|
|
||||||
//企业版教育版管理员页面
|
//企业版教育版管理员页面
|
||||||
subAccountList:`/api/account/subAccountList`,//查询子账号
|
subAccountList:`/api/account/subAccountList`,//查询子账号
|
||||||
addOrUpdateSubAccount:`/api/account/addOrUpdateSubAccount`,//添加子账号
|
addOrUpdateSubAccount:`/api/account/addOrUpdateSubAccount`,//添加子账号
|
||||||
|
|||||||
@@ -482,10 +482,17 @@ export default defineComponent({
|
|||||||
userId: this.userDetail.userId,
|
userId: this.userDetail.userId,
|
||||||
};
|
};
|
||||||
// console.log(getCookie("token"));
|
// console.log(getCookie("token"));
|
||||||
if(this.userDetail.systemUser == 3){
|
console.log(this.userDetail)
|
||||||
|
if(this.userDetail.systemList.indexOf(3)>-1){
|
||||||
await Https.axiosGet(Https.httpUrls.trialUserLogout,).then((rv) => {
|
await Https.axiosGet(Https.httpUrls.trialUserLogout,).then((rv) => {
|
||||||
Https.axiosPost(Https.httpUrls.accountLogout, data).then((rv) => {
|
Https.axiosPost(Https.httpUrls.accountLogout, data).then((rv) => {
|
||||||
this.$router.replace("/");
|
if(this.userDetail.systemUser == 7){
|
||||||
|
this.$router.replace("/schoolLogin");
|
||||||
|
}else if(this.userDetail.systemUser == 5){
|
||||||
|
this.$router.replace("/enterpriseLogin");
|
||||||
|
}else{
|
||||||
|
this.$router.replace("/");
|
||||||
|
}
|
||||||
// WriteCookie("token");
|
// WriteCookie("token");
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -533,7 +533,7 @@ export default defineComponent({
|
|||||||
// this.loginType = 'email'
|
// this.loginType = 'email'
|
||||||
if (this.loginTime) {
|
if (this.loginTime) {
|
||||||
this.loginTime = false;
|
this.loginTime = false;
|
||||||
Https.axiosPost(Https.httpUrls.preLogin, data)
|
Https.axiosPost(Https.httpUrls.enterpriseLogin, data)
|
||||||
.then((rv: any) => {
|
.then((rv: any) => {
|
||||||
// if (rv) {
|
// if (rv) {
|
||||||
// this.loginType = 'email'
|
// this.loginType = 'email'
|
||||||
|
|||||||
@@ -533,7 +533,7 @@ export default defineComponent({
|
|||||||
// this.loginType = 'email'
|
// this.loginType = 'email'
|
||||||
if (this.loginTime) {
|
if (this.loginTime) {
|
||||||
this.loginTime = false;
|
this.loginTime = false;
|
||||||
Https.axiosPost(Https.httpUrls.preLogin, data)
|
Https.axiosPost(Https.httpUrls.schoolLogin, data)
|
||||||
.then((rv: any) => {
|
.then((rv: any) => {
|
||||||
// if (rv) {
|
// if (rv) {
|
||||||
// this.loginType = 'email'
|
// this.loginType = 'email'
|
||||||
|
|||||||
Reference in New Issue
Block a user