|
|
@@ -1,6 +1,6 @@
|
|
|
<script setup>
|
|
|
import { reactive, ref, watch } from "vue"
|
|
|
-import { createTableDataApi, deleteTableDataApi, updateTableDataApi, getTableDataApi } from "@/api/table"
|
|
|
+import { createTableDataApi, deleteTableDataApi, updateTableDataApi, getTableDataApi, getRoleTypes } from "@/api/table"
|
|
|
import { ElMessage, ElMessageBox } from "element-plus"
|
|
|
import { usePagination } from "@/hooks/usePagination"
|
|
|
import { cloneDeep } from "lodash-es"
|
|
|
@@ -11,17 +11,22 @@ const { paginationData, handleCurrentChange, handleSizeChange } = usePagination(
|
|
|
//#region 增
|
|
|
const DEFAULT_FORM_DATA = {
|
|
|
id: undefined,
|
|
|
+ account: "",
|
|
|
+ cardNumber: "",
|
|
|
name: "",
|
|
|
- todo: "",
|
|
|
- realName: "",
|
|
|
password: "",
|
|
|
- roles: []
|
|
|
+ roles: [],
|
|
|
+ roleId: ""
|
|
|
}
|
|
|
const dialogVisible = ref(false)
|
|
|
const formRef = ref(null)
|
|
|
const formData = ref(cloneDeep(DEFAULT_FORM_DATA))
|
|
|
const formRules = {
|
|
|
- name: [{ required: true, trigger: "blur", message: "必填" }]
|
|
|
+ account: [{ required: true, trigger: "blur", message: "账号必填" }],
|
|
|
+ cardNumber: [{ required: true, trigger: "blur", message: "微校卡号必填" }],
|
|
|
+ name: [{ required: true, trigger: "blur", message: "姓名必填" }],
|
|
|
+ password: [{ required: true, trigger: "blur", message: "密码必填" }],
|
|
|
+ roleId: [{ required: true, trigger: "blur", message: "角色必填" }]
|
|
|
}
|
|
|
const handleCreateOrUpdate = () => {
|
|
|
formRef.value?.validate((valid, fields) => {
|
|
|
@@ -64,6 +69,7 @@ const handleDelete = (row) => {
|
|
|
const handleUpdate = (row) => {
|
|
|
dialogVisible.value = true
|
|
|
formData.value = cloneDeep(row)
|
|
|
+ getTypes()
|
|
|
}
|
|
|
//#endregion
|
|
|
|
|
|
@@ -72,19 +78,22 @@ const tableData = ref([])
|
|
|
const searchFormRef = ref(null)
|
|
|
const searchData = reactive({
|
|
|
name: undefined,
|
|
|
- createTime: null
|
|
|
+ createTime: []
|
|
|
})
|
|
|
const getTableData = () => {
|
|
|
loading.value = true
|
|
|
+
|
|
|
getTableDataApi({
|
|
|
currentPage: paginationData.currentPage,
|
|
|
- size: paginationData.pageSize,
|
|
|
+ pageCount: paginationData.pageSize,
|
|
|
name: searchData.name,
|
|
|
- starTime: searchData.createTime ? searchData.createTime[0] : undefined,
|
|
|
+ startTime: searchData.createTime ? searchData.createTime[0] : undefined,
|
|
|
endTime: searchData.createTime ? searchData.createTime[1] : undefined
|
|
|
})
|
|
|
.then(({ data }) => {
|
|
|
- paginationData.total = data.total
|
|
|
+ // console.log(data)
|
|
|
+
|
|
|
+ paginationData.total = data.totalCount
|
|
|
tableData.value = data.list
|
|
|
})
|
|
|
.catch(() => {
|
|
|
@@ -101,6 +110,19 @@ const resetSearch = () => {
|
|
|
searchFormRef.value?.resetFields()
|
|
|
handleSearch()
|
|
|
}
|
|
|
+
|
|
|
+// 新增按钮回调
|
|
|
+const handleAdd = () => {
|
|
|
+ dialogVisible.value = true
|
|
|
+ getTypes()
|
|
|
+}
|
|
|
+
|
|
|
+// 获取角色下拉列表数据
|
|
|
+const getTypes = async () => {
|
|
|
+ const res = await getRoleTypes()
|
|
|
+ // console.log(res)
|
|
|
+ formData.value.roles = res.data
|
|
|
+}
|
|
|
//#endregion
|
|
|
|
|
|
/** 监听分页参数的变化 */
|
|
|
@@ -121,7 +143,7 @@ watch([() => paginationData.currentPage, () => paginationData.pageSize], getTabl
|
|
|
type="datetimerange"
|
|
|
start-placeholder="开始时间"
|
|
|
end-placeholder="结束时间"
|
|
|
- value-format="x"
|
|
|
+ value-format="YYYY:MM:DD HH:mm:ss"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
@@ -130,16 +152,16 @@ watch([() => paginationData.currentPage, () => paginationData.pageSize], getTabl
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div>
|
|
|
- <el-button type="primary" @click="dialogVisible = true">新增</el-button>
|
|
|
+ <el-button type="primary" @click="handleAdd">新增</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="table-wrapper">
|
|
|
<el-table :data="tableData" max-height="500">
|
|
|
<el-table-column type="index" label="序号" width="100" align="center" />
|
|
|
- <el-table-column prop="name" label="账号名称" align="center" />
|
|
|
- <el-table-column prop="role" label="角色名称" align="center" />
|
|
|
- <el-table-column prop="realName" label="真实姓名" align="center" />
|
|
|
- <el-table-column prop="createTime" label="创建时间" align="center" />
|
|
|
+ <el-table-column prop="account" label="账号名称" align="center" />
|
|
|
+ <el-table-column prop="roleName" label="角色名称" align="center" />
|
|
|
+ <el-table-column prop="name" label="真实姓名" align="center" />
|
|
|
+ <el-table-column prop="createAccountTime" label="创建时间" align="center" />
|
|
|
<el-table-column fixed="right" label="操作" width="200" align="center">
|
|
|
<template #default="scope">
|
|
|
<el-link type="primary" @click="handleUpdate(scope.row)">编辑</el-link>
|
|
|
@@ -169,21 +191,21 @@ watch([() => paginationData.currentPage, () => paginationData.pageSize], getTabl
|
|
|
width="50%"
|
|
|
>
|
|
|
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="auto" size="large">
|
|
|
- <el-form-item prop="name" label="账号">
|
|
|
- <el-input v-model="formData.name" placeholder="请输入" />
|
|
|
+ <el-form-item prop="account" label="账号">
|
|
|
+ <el-input v-model="formData.account" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="todo" label="微校卡号">
|
|
|
- <el-input v-model="formData.todo" placeholder="请输入" />
|
|
|
+ <el-form-item prop="cardNumber" label="微校卡号">
|
|
|
+ <el-input v-model="formData.cardNumber" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="realName" label="姓名">
|
|
|
- <el-input v-model="formData.realName" placeholder="请输入" />
|
|
|
+ <el-form-item prop="name" label="姓名">
|
|
|
+ <el-input v-model="formData.name" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="password" label="密码">
|
|
|
- <el-input v-model="formData.password" placeholder="请输入" />
|
|
|
+ <el-input v-model="formData.password" placeholder="请输入" type="password" show-password />
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="roles" label="角色">
|
|
|
- <el-select v-model="formData.roles" placeholder="请选择" multiple>
|
|
|
- <el-option label="todo" value="todo" />
|
|
|
+ <el-form-item prop="roleId" label="角色">
|
|
|
+ <el-select v-model="formData.roleId" placeholder="请选择">
|
|
|
+ <el-option v-for="item in formData.roles" :label="item.name" :value="item.id" :key="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|