12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <template>
- <div class="table-box">
- <ProTable
- ref="proTable"
- :columns="columns"
- :request-api="getTableList"
- :init-param="initParam"
- :data-callback="dataCallback"
- @drag-sort="sortTable"
- >
-
- <template #tableHeader="">
- <el-form :model="queryParams" label-width="auto" :inline="true">
- <el-form-item label="自动站:">
- <el-select v-model="queryParams.name" placeholder="请选择自动站" clearable style="width: 200px">
- <el-option label="站1" value="1" />
- <el-option label="站2" value="2" />
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="handleQuery"> 查询 </el-button>
- <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
- </el-form-item>
- </el-form>
- </template>
- </ProTable>
- </div>
- </template>
- <script setup lang="ts" name="useProTable">
- import { ref, reactive } from "vue";
- import { User } from "@/api/interface";
- import { ElMessage } from "element-plus";
- import ProTable from "@/components/ProTable/index.vue";
- import { ProTableInstance, ColumnProps } from "@/components/ProTable/interface";
- import { getUserList } from "@/api/modules/user";
- const proTable = ref<ProTableInstance>();
- const initParam = reactive({ type: 1 });
- const dataCallback = (data: any) => {
- return {
- list: data.list,
- total: data.total
- };
- };
- const queryParams = ref({
- name: "",
- pageNum: 1,
- pageSize: 10
- });
- const handleQuery = () => {
- queryParams.value.pageNum = 1;
- };
- const resetQuery = () => {
- queryParams.value.pageNum = 1;
- };
- const getTableList = (params: any) => {
- let newParams = JSON.parse(JSON.stringify(params));
- newParams.createTime && (newParams.startTime = newParams.createTime[0]);
- newParams.createTime && (newParams.endTime = newParams.createTime[1]);
- delete newParams.createTime;
- return getUserList(newParams);
- };
- const columns = reactive<ColumnProps<User.ResUserList>[]>([
- { prop: "username", label: "站号" },
- { prop: "gender", label: "性别" },
- { prop: "user.detail.age", label: "年龄" },
- { prop: "idCard", label: "身份证号", search: { el: "input" } },
- { prop: "email", label: "邮箱" },
- { prop: "address", label: "居住地址" },
- { prop: "status", label: "用户状态" },
- { prop: "createTime", label: "创建时间", width: 180 }
- ]);
- const sortTable = ({ newIndex, oldIndex }: { newIndex?: number; oldIndex?: number }) => {
- console.log(newIndex, oldIndex);
- console.log(proTable.value?.tableData);
- ElMessage.success("修改列表排序成功");
- };
- </script>
|