云生成

This commit is contained in:
X1627315083
2025-04-23 09:39:24 +08:00
parent b776f6a0c5
commit 42dfa3c032
22 changed files with 604 additions and 144 deletions

View File

@@ -22,26 +22,27 @@
<tr v-for="(row, index) in contentList" :key="index">
<td v-for="header in cloudTiltleList" :key="header.value">
<span v-show="header.value != 'operation'">
{{ row[header.value] }}
{{header?.fun?header.fun(row[header.value]) : row[header.value]}}
</span>
<span v-show="header.value == 'operation'" @click="downloadIamge(row)" style="cursor: pointer;">
download
<span v-show="header.value == 'operation'" @click="detailIamge(row)" style="cursor: pointer;">
Check
</span>
</td>
</tr>
</div>
<a-pagination style="text-align: center;" v-model:current="currentPage" :total="total" show-less-items />
</div>
{{ generateList }}
<createCloud ref="createCloud" :cloudList="generateList[workflowType]"></createCloud>
<createCloud ref="createCloud" :cloudList="generateList[workflowType]" @getContentList="submitGetContentList"></createCloud>
</div>
</template>
<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 { Https } from "@/tool/https";
import { useStore } from "vuex";
import { useI18n } from 'vue-i18n'
import createCloud from "./createCloud.vue";
import { da } from 'element-plus/es/locale';
export default defineComponent({
components:{
createCloud,
@@ -53,39 +54,56 @@ export default defineComponent({
required:true
}
},
emits:[],
emits:['retrieve'],
setup(props,{emit}) {
const store = useStore();
const data = reactive({
pageType:'list',
pageSize:10,
currentPage:1,
total:0,
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
generateList:{
seriesDesign:[
{
name:'1',
value:100,
}
label:'Design',
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:[
{
name:'1',
label:'1BuildTyped',
value:100,
}
],
printDesign:[
{
name:'1',
label:'1',
value:100,
}
],
productDrawingDesign:[
{
name:'1',
label:'1',
value:100,
}
],
printingDesign3D:[
{
name:'1',
label:'1',
value:100,
}
],
@@ -96,39 +114,109 @@ export default defineComponent({
name:'File name',
value:'name',
},{
name:'File size',
value:'size',
name:'Build Type',
value:'buildType',
},{
name:'UPloaded by',
value:'upLoadedBy',
name:'Generate quantity',
value:'nums',
},{
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',
value:'operation',
},
] as any,
contentList:[
{ name: '张三', size: 28, upLoadedBy: '1', taskTime: '123' },
{ name: '李四', size: 32, upLoadedBy: '2', taskTime: '321' },
{ name: '王五', size: 25, upLoadedBy: '3', taskTime: '222' }
] as any,
isGetContentList:false as any,
})
const dataDom = reactive({
createCloud,
})
const createClound = ()=>{
data.isGetContentList = false
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{
...toRefs(dataDom),
...toRefs(data),
createClound,
downloadIamge,
detailIamge,
getContentList,
submitGetContentList,
}
},
provide() {
@@ -187,6 +275,8 @@ export default defineComponent({
flex: 1;
overflow: hidden;
padding-top: 2.5rem;
display: flex;
flex-direction: column;
> .content tr , > .title{
display: flex;
justify-content: space-between;
@@ -202,12 +292,16 @@ export default defineComponent({
text-align: center;
}
}
.content > tr{
> td{
text-align: center;
width: calc(100% / 4);
line-height: 4.6rem;
font-size: 2.2rem;
.content{
flex: 1;
overflow: hidden;
> tr{
> td{
text-align: center;
width: calc(100% / 4);
line-height: 4.6rem;
font-size: 2.2rem;
}
}
}
}