数通智联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

112 lines
2.5 KiB

<!--
@ 作者: 秦东
@ 时间: 2023-09-22 08:59:47
@ 备注: 任务列表
-->
<script lang='ts' setup>
import { gainTaskListQuery,taskListCont } from '@/api/taskapi/types'
import { gainTaskList } from '@/api/taskapi/management'
const props = defineProps({
isshow:{
type:Boolean,
default:true
}
})
const taskLoding = ref(false);
const gainTaskListInfo = reactive<gainTaskListQuery>({
page:1,
pagesize:9,
status:1
});
const taskTotal = ref<number>(0)
const taskList = ref<taskListCont[]>();
const emits = defineEmits(["update:isshow","opencustomerform"]);
const isShow = computed({
get: () => props.isshow,
set: (val) => {
emits("update:isshow", val);
},
});
//获取记录
const gainTaskContAry = () => {
taskLoding.value = true
gainTaskList(gainTaskListInfo)
.then(({data})=>{
// console.log(data)
if(data != null){
taskList.value = data.list;
taskTotal.value = data.total;
}
})
.finally(()=>{
taskLoding.value = false
})
}
//初始化数据
const initData = () => {
gainTaskListInfo.page = 1;
gainTaskListInfo.pagesize = 9;
gainTaskListInfo.status = 1;
}
//关闭弹窗
const taskEntryClose = () => {
emits("update:isshow", false);
initData();
}
//监听
watch(() => props.isshow,(val:boolean)=>{
if(val) {
gainTaskContAry();
}
})
//使用版本
const startUsing = (id:string,title:string) => {
taskEntryClose();
emits("opencustomerform",id,title)
}
</script>
<template>
<el-dialog
v-model="isShow"
title="选择任务"
width="845"
:before-close="taskEntryClose"
>
<el-space v-loading="taskLoding" wrap >
<el-card v-for="item in taskList" :key="item.id" style="width: 260px">
<el-space direction="vertical" style="width: 100%;">
<div>
<el-space wrap>
<el-text class="mx-1">{{ item.name }}</el-text>
<el-text class="mx-1">设计者:{{ item.createrName }}({{ item.createrNumber }})</el-text>
<el-text class="mx-1">发布时间:{{ item.createrTame }}</el-text>
</el-space>
</div>
<div class="taskButton"><el-button type="primary" @click.stop="startUsing(item.id,item.name)">使用</el-button></div>
</el-space>
</el-card>
</el-space>
<template #footer>
<pagination
v-if="taskTotal > 0"
v-model:total="taskTotal"
v-model:page="gainTaskListInfo.page"
v-model:limit="gainTaskListInfo.pagesize"
align="center"
@pagination="gainTaskContAry"
/>
</template>
</el-dialog>
</template>
<style lang='scss' scoped>
.taskButton{
width: 100%;
text-align: center;
}
</style>