This commit is contained in:
2026-01-21 19:21:42 +08:00
parent e70b1bd306
commit b350322626
4 changed files with 36 additions and 45 deletions

View File

@@ -8,4 +8,4 @@ VITE_OPEN=true
ENV=development ENV=development
# ADMIN 服务地址 # ADMIN 服务地址
VITE_ADMIN_PROXY_PATH = http://localhost:9999 VITE_ADMIN_PROXY_PATH = http://scj-v3.zhxy.link/api

View File

@@ -0,0 +1,14 @@
import request from '/@/utils/request';
/**
* 分页查询宿舍学生异动列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/stuwork/dormroomstudentchange/page',
method: 'get',
params: query
});
};

View File

@@ -26,6 +26,12 @@
<span style="margin-left: 4px">管理员工号</span> <span style="margin-left: 4px">管理员工号</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="realName" label="管理员姓名" show-overflow-tooltip align="center">
<template #header>
<el-icon><UserFilled /></el-icon>
<span style="margin-left: 4px">管理员姓名</span>
</template>
</el-table-column>
<el-table-column label="操作" width="100" align="center" fixed="right"> <el-table-column label="操作" width="100" align="center" fixed="right">
<template #header> <template #header>
<el-icon><Setting /></el-icon> <el-icon><Setting /></el-icon>
@@ -57,7 +63,7 @@ import { reactive } from 'vue'
import { BasicTableProps, useTable } from "/@/hooks/table"; import { BasicTableProps, useTable } from "/@/hooks/table";
import { fetchList, delObjs } from "/@/api/stuwork/dormbuildingmanger"; import { fetchList, delObjs } from "/@/api/stuwork/dormbuildingmanger";
import { useMessage, useMessageBox } from "/@/hooks/message"; import { useMessage, useMessageBox } from "/@/hooks/message";
import { List, OfficeBuilding, CreditCard, Setting } from '@element-plus/icons-vue' import { List, OfficeBuilding, CreditCard, UserFilled, Setting } from '@element-plus/icons-vue'
// 配置 useTable // 配置 useTable
const state: BasicTableProps = reactive<BasicTableProps>({ const state: BasicTableProps = reactive<BasicTableProps>({

View File

@@ -65,7 +65,8 @@
v-loading="state.loading" v-loading="state.loading"
border border
:cell-style="tableStyle.cellStyle" :cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"> :header-cell-style="tableStyle.headerCellStyle"
@sort-change="sortChangeHandle">
<el-table-column type="index" label="序号" width="60" align="center"> <el-table-column type="index" label="序号" width="60" align="center">
<template #header> <template #header>
<el-icon><List /></el-icon> <el-icon><List /></el-icon>
@@ -167,14 +168,20 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页 -->
<pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
v-bind="state.pagination" />
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts" name="DormRoomStudentChange"> <script setup lang="ts" name="DormRoomStudentChange">
import { reactive, ref, onMounted, computed } from 'vue' import { reactive, ref, onMounted } from 'vue'
import { BasicTableProps, useTable } from "/@/hooks/table"; import { BasicTableProps, useTable } from "/@/hooks/table";
import { queryStudentAbnormal } from "/@/api/stuwork/dormroomstudent"; import { fetchList } from "/@/api/stuwork/dormroomstudentchange";
import { getDeptList } from "/@/api/basic/basicclass"; import { getDeptList } from "/@/api/basic/basicclass";
import { useMessage } from "/@/hooks/message"; import { useMessage } from "/@/hooks/message";
import { getDicts } from "/@/api/admin/dict"; import { getDicts } from "/@/api/admin/dict";
@@ -185,7 +192,6 @@ const searchFormRef = ref()
const showSearch = ref(true) const showSearch = ref(true)
const deptList = ref<any[]>([]) const deptList = ref<any[]>([])
const changeTypeList = ref<any[]>([]) const changeTypeList = ref<any[]>([])
const allDataList = ref<any[]>([])
// 搜索表单 // 搜索表单
const searchForm = reactive({ const searchForm = reactive({
@@ -197,30 +203,7 @@ const searchForm = reactive({
// 配置 useTable // 配置 useTable
const state: BasicTableProps = reactive<BasicTableProps>({ const state: BasicTableProps = reactive<BasicTableProps>({
queryForm: searchForm, queryForm: searchForm,
isPage: false, // 接口不支持分页 pageList: fetchList,
pageList: async () => {
try {
const res = await queryStudentAbnormal()
let dataList = []
if (Array.isArray(res.data)) {
dataList = res.data
} else if (res.data && Array.isArray(res.data.records)) {
dataList = res.data.records
} else if (res.data && Array.isArray(res.data.list)) {
dataList = res.data.list
}
allDataList.value = dataList
return {
...res,
data: filterData(dataList)
}
} catch (err: any) {
useMessage().error(err.msg || '获取数据失败')
return {
data: []
}
}
},
props: { props: {
item: 'records', item: 'records',
totalCount: 'total' totalCount: 'total'
@@ -228,24 +211,12 @@ const state: BasicTableProps = reactive<BasicTableProps>({
createdIsNeed: true createdIsNeed: true
}) })
// 过滤数据
const filterData = (data: any[]) => {
let filtered = data
if (searchForm.deptCode) {
filtered = filtered.filter(item => item.deptCode === searchForm.deptCode)
}
if (searchForm.classNo) {
filtered = filtered.filter(item => item.classNo && item.classNo.includes(searchForm.classNo))
}
if (searchForm.changeType) {
filtered = filtered.filter(item => item.changeType === searchForm.changeType)
}
return filtered
}
// table hook // table hook
const { const {
getDataList, getDataList,
currentChangeHandle,
sizeChangeHandle,
sortChangeHandle,
tableStyle tableStyle
} = useTable(state) } = useTable(state)