查询列表 vue3.0 +ant


图样:
在这里插入图片描述

vue文件

ToTasks.vue:

<template>
  <div class="ToTasks">
    <div class="ToTasks_seach">
      <a-form layout="inline" :model="searchForm">
        <a-row>
          <a-col :span="18">
            <a-row>
              <a-col :span="8">
                <a-form-item label="名称:">
                  <a-input
                    v-model:value="searchForm.name"
                    placeholder="请输入名称"
                  ></a-input>
                </a-form-item>
              </a-col>
            </a-row>
          </a-col>
          <a-col
            :span="6"
            style="display: flex; justify-content: flex-end; flex-wrap: wrap"
          >
            <a-form-item style="width: auto">
              <a-button type="primary" @click="search">查询</a-button>
            </a-form-item>
            <a-form-item style="width: auto">
              <a-button @click="resetSearch">重置</a-button>
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <div class="ToTasks_content">
      <a-table
        :columns="columns"
        :data-source="searchForm.tableData"
        :pagination="pagination"
        @change="handleTableChange"
        :loading="tableLoading"
        rowKey="id"
      >
        <template #index="{ index }">
          {{ index + 1 }}
        </template>
        <template #createTime="{ record }">
          {{ $moment(record.createTime).format("YYYY-MM-DD HH:mm:ss") }}
        </template>
        <template #action="{ record }">
            <a href="javascript:void(0)" @click="detailGroup(record)">处理</a>
            &nbsp;&nbsp;
            <a href="javascript:void(0)" @click="editGroup(record)">详情</a>
          </template>
      </a-table>
    </div>
  </div>
</template>

<script>
import ToTasks from "./ToTasks";
export default ToTasks;
</script>
<style scoped lang="less" src='./ToTasks.less'>
</style>
<style >
</style>

js文件:

ToTasks.js:

import {
    ref,
    reactive,
    onMounted
} from 'vue';
import {
    message,
} from "ant-design-vue";
import {
    column,
    searchForms,
    paginations,
} from "./ToTasksJson"
import {
    API
} from "../../../../../../../../api/index";
import {
    post
} from "../../../../../../../../api/http";
export default {
    name: "ToTasks",
    setup() {
        //
        let searchForm = reactive(searchForms)
        //列表数据
        const columns = reactive(column)
        //loading
        let tableLoading = ref(false)
        //分页
        let pagination = reactive(paginations)
        const handleTableChange = (paginationing) => {
            console.log("分页")
            pagination.current = paginationing.current;
            pagination.pageSize = paginationing.pageSize;
            searchForm.current = paginationing.current;
            searchForm.size = paginationing.pageSize;
            findMyTodoTaskLists()
        }
        //查询
        const search = () => {
            searchForm.current = 1
            searchForm.size = 10
            pagination.current = 1
            findMyTodoTaskLists()
        }
        //搜索查询列表
        const findMyTodoTaskLists = () => {
            tableLoading.value = true
            post(API.workFlow.findMyCandidateTask, {
                    params: {
                        current: searchForm.current,
                        size: searchForm.size,
                        name: searchForm.name
                    }
                })
                .then((res) => {
                    console.log(res.data)
                    tableLoading.value = false
                    searchForm.tableData = res.data.records
                    pagination.total = res.data.total
                    pagination.pageSize = res.data.size
                })
                .catch((res) => {
                    pagination.total = 0
                    tableLoading.value = false
                    message.error(res);
                });
        }
        //重置
        const resetSearch = () => {
            searchForm.current = 1
            searchForm.size = 10
            pagination.current = 1
            searchForm.name = ""
            findMyTodoTaskLists()
        }

        onMounted(() => {
            pagination.current = 1
            findMyTodoTaskLists()
        })
        return {
            columns, //列表数据
            searchForm,
            tableLoading,
            //分页
            pagination,
            handleTableChange,
            search,
            resetSearch,
        }
    },
    components: {}
};

jsJson文件(用来放大量的数据)

ToTasksJson.js:

export const column = [{
        title: '序号',
        dataIndex: 'index',
        key: 'id',
        slots: {
            customRender: 'index'
        },
        ellipsis: true,
        align: 'center',
        width: "120px"
    }, {
        title: '名称',
        dataIndex: 'name',
        key: 'id',
        ellipsis: true,
        align: 'center'
    }, {
        title: '优先级',
        dataIndex: 'priority',
        key: 'id',
        ellipsis: true,
        align: 'center'
    },
    {
        title: '创建时间',
        dataIndex: 'createTime',
        key: 'id',
        slots: {
            customRender: 'createTime'
        },
        ellipsis: true,
        align: 'center'
    },
]
export let paginations = {
    total: 0,
    current: 1,
    pageSize: 10, //每页中显示10条数据
    showSizeChanger: true,
    pageSizeOptions: ["10", "20", "50", "100"], //每页中显示的数据
    showTotal: total => `共有 ${total} 条数据`, //分页中显示总的数据
}
export let searchForms = {
    current: 1,
    size: 10,
    tableData: [], //列表table
    name:""
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sunshinedada

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值