任务列表页面

This commit is contained in:
X1627315083
2024-03-21 10:49:21 +08:00
parent c5e3a5036d
commit c8f6884e7d
23 changed files with 1353 additions and 184 deletions

View File

@@ -7,8 +7,30 @@
placement="right"
@after-visible-change="afterVisibleChange"
>
<template #extra>
<div class="button_second" @click="openTaskDetailPage">Detailed Task</div>
</template>
<div class="task_content">
<div class="task_content_item" v-for="item in taskList">
<img v-if="item.state !== 'success'" src="@/assets/images/homePage/loading.gif" alt="">
<img v-else :src="item.inputParam.images" alt="">
<div class="task_content_item_text">
<div class="task_content_item_text_left modal_title_text">
<div class="task_content_item_text_left_titile">{{ item.title }}</div>
<div class="task_content_item_text_left_into modal_title_text_intro">{{ item.createDate }}</div>
</div>
<div class="task_content_item_text_right modal_title_text">
<div class="task_content_item_text_left_titile">{{ item.status }}</div>
</div>
</div>
</div>
<div class="task_content_more" v-show="taskListMore.length == 0" @click="setTaskListMore">
点击查看更多
</div>
<div class="task_content_select" v-show="taskListMore.length > 0">
<a-select :visibleChange="visibleChange()" v-model:value="currentState.value" size="large" optionFilterProp="label" :options="state" placeholder="Please select" :getPopupContainer="getPopupContainer" allowClear show-search></a-select>
</div>
<div class="task_content_item" v-for="item in taskListMore" v-show="taskListMore.length > 0">
<img v-if="item.state === '执行中' || item.state === '失败'" src="@/assets/images/homePage/loading.gif" alt="">
<img v-else :src="item.url" alt="">
<div class="task_content_item_text">
@@ -21,10 +43,11 @@
</div>
</div>
</div>
<div class="task_content_more">
点击查看更多
<div v-show="total > taskListMore?.length && total != 0 && taskListMore.length > 0" class="task_content_more" v-observe>
<img src="@/assets/images/homePage/loading.gif" alt="">
</div>
</div>
<TaskDetailPage ref="TaskDetailPage"></TaskDetailPage>
</a-drawer>
</template>
<script lang="ts">
@@ -32,12 +55,11 @@ import { message, Upload } from "ant-design-vue";
import { defineComponent, computed, h, ref, nextTick, inject } from "vue";
import { Https } from "@/tool/https";
import { useStore } from "vuex";
import GO from "@/tool/GO";
// import { forEach } from "jszip";
import scaleImage from "@/component/HomePage/scaleImage.vue";
import TaskDetailPage from "@/component/HomePage/TaskDetailPage.vue";
export default defineComponent({
components: {
scaleImage,
TaskDetailPage,
},
props: ["msg",'sketchCatecoryList'],
setup() {
@@ -45,41 +67,64 @@ export default defineComponent({
const store = useStore();
let visible = ref<boolean>(false);
let taskList = ref([
{
title:'111111111111',
state:'执行中',
url:'@/assets/images/homePage/loading.gif',
time:'2024-3-18'
},{
title:'111111111111',
state:'已完成',
url:'./image/texture/texture0.webp',
time:'2024-3-18'
},{
title:'111111111111',
state:'失败',
url:'@/assets/images/homePage/loading.gif',
time:'2024-3-18'
},{
title:'111111111111',
state:'执行中',
url:'@/assets/images/homePage/loading.gif',
time:'2024-3-18'
},
])
let taskListMore:any = ref([])
let state:any = ref([
{
label:'Income',
value:'income',
},
{
label:'Expend',
value:'expend',
}
])
let currentState = ref({
value:'income',
})
return {
store,
visible,
taskList,
taskListMore,
state,
currentState,
};
},
data(prop) {
return {
currentPage: 1,
pageSize: 10,
total: 99,
}
},
mounted() {
},
directives:{
observe:{
mounted (el,binding) {
// console.log(binding.instance);
const ob = new IntersectionObserver(callback,{
root:null,
threshold:[0.1]
})
ob.observe(el)
// this.currentPage = 1
// this.pageSize = 12
let this_:any = binding.instance
function callback(entries:any, observer:any) {
entries.forEach((entry:any) => {
if (entry.isIntersecting) {
this_.getTaskList()
} else {
}
});
}
},
},
},
watch:{
// newWindowState:{
// handler(newVal,oldVal){
@@ -92,11 +137,55 @@ export default defineComponent({
},
methods: {
getPopupContainer(){
let dom = document.querySelector('.task_page .task_content_select')
return dom
},
init(){
this.visible = true
Https.axiosGet(Https.httpUrls.getTasksList).then((rv)=>{
this.taskList = this.sort(rv)
})
},
sort(arr:any){
arr.sort((a:any, b:any) => {
var a_num = Date.parse(a.createDate);
var b_num = b.style.zIndex;
return a_num - b_num;
});
return arr
},
afterVisibleChange(bool:any){
if(!bool){
this.taskListMore = []
}
console.log(bool);
},
setTaskListMore(){
// this.taskListMore = this.taskList
this.taskListMore.push(...this.taskList,...this.taskList)
},
openTaskDetailPage(){
let taskDetailPage:any = this.$refs.TaskDetailPage
this.visible = false
taskDetailPage.init()
},
visibleChange(){
this.pageSize = 10
this.currentPage = 1
this.total = 0
},
getTaskList(){
let data = {
size:this.pageSize,
page: this.currentPage,
aaa:this.currentState,
}
console.log(123123);
this.currentPage += 1
Https.axiosGet()
}
},
});
@@ -174,8 +263,17 @@ export default defineComponent({
line-height: 5rem;
text-align: center;
cursor: pointer;
img{
width: 100%;
height: 5rem;
object-fit: contain;
}
}
.task_content_select{
>div{
width: 100%;
}
}
}
}