<template> <div> <div class="ds-serch-box"> <el-input v-model="search" placeholder="请输入姓名、警号、账号" style=" 250px"></el-input> <el-button type="primary" @click="getList">查询</el-button> </div> <el-table :data="tableData" stripe style=" 100%"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="timeStr" label="日期"></el-table-column> <el-table-column label="ip" prop="ip" align="center"></el-table-column> </el-table> <div class="user-page"> <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage1" :page-size="rows" layout="total, prev, pager, next" :total="total" ></el-pagination> </div> </div> </template> <script> import addDialog from "./addDialog"; import SourceMirror from "@/components/resource/dutyMirror"; import { defineComponent, ref, reactive, onMounted, toRefs, getCurrentInstance } from "vue"; export default { components: { addDialog }, props: {}, setup(props) { const { proxy } = getCurrentInstance(); const data = reactive({ search: "", currentPage1: 1, tableData: [], rows: 10, page: 1, total: 100 }); const getList = () => { const parmas = { page: data.page, rows: data.rows, search: data.search }; SourceMirror.queryLogs(parmas).then(res => { if (res.data.code === 200) { data.total = res.data.data.total; data.tableData = res.data.data.list; proxy.$message({ message: "成功", type: "warning" }); } else { proxy.$message({ message: "失败", type: "warning" }); } }); }; const handleCurrentChange = page => { data.page = page; getList(); }; onMounted(() => { getList(); }); return { ...toRefs(data), getList, handleCurrentChange }; } }; </script> <style lang="less" scoped> .ds-serch-box { padding: 20px; display: flex; justify-content: flex-start; } .user-page { display: flex; justify-content: flex-end; margin-top: 20px; } </style>
ref 用来创建简单的响应式变量
reactive用来创建复杂的响应式对象,参考vue2.0里面的data,然后可以用toRefs去配合