From 4caeb1d349d065dabcaa02e466c03fb1917a1e4e Mon Sep 17 00:00:00 2001 From: ywyonui Date: Tue, 8 Jul 2025 22:20:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=86=E5=A4=87=E8=B0=83=E6=95=B4=E9=80=9A?= =?UTF-8?q?=E8=AE=AF=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/base/server.ts | 16 + src/pages/components/NjBjPicker/index.vue | 93 +++++ .../homeSchool/parentAddressBook/index.vue | 324 +++++++++++------- src/pages/view/hr/teacherProfile/position.vue | 8 +- src/pages/view/notice/publish.vue | 4 +- 5 files changed, 306 insertions(+), 139 deletions(-) create mode 100644 src/pages/components/NjBjPicker/index.vue diff --git a/src/api/base/server.ts b/src/api/base/server.ts index 31fa1ac..083ba3a 100644 --- a/src/api/base/server.ts +++ b/src/api/base/server.ts @@ -108,3 +108,19 @@ export const xsQjSpApi = async (params: any) => { return await post("/api/xsQj/sp", params); }; +// 获取所有班级 +export const bjFindAllApi = async (params: any) => { + return await get("/api/bj/findAll", params); +}; + +// 获取学生列表 +export const xsFindList = async (params: any) => { + return await get("/api/xs/findPage", params); +}; + +// 获取学生家长列表 +export const xsJzListByXsIdApi = async (params: any) => { + return await get("/api/jz/getListByXsId", params); +}; + + diff --git a/src/pages/components/NjBjPicker/index.vue b/src/pages/components/NjBjPicker/index.vue new file mode 100644 index 0000000..0075e33 --- /dev/null +++ b/src/pages/components/NjBjPicker/index.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/pages/view/homeSchool/parentAddressBook/index.vue b/src/pages/view/homeSchool/parentAddressBook/index.vue index 016798c..d663c4b 100644 --- a/src/pages/view/homeSchool/parentAddressBook/index.vue +++ b/src/pages/view/homeSchool/parentAddressBook/index.vue @@ -3,102 +3,127 @@ - - - {{ selectedCombinedClassName || "选择班级" }} - - - - 共 {{ studentList.length }} 人 - + + + + + + + + + + + + + + + 共 {{ studentList.length }} 人 + - 加载中... - - 暂无学生数据 + 加载中... + + 暂无学生数据 @@ -188,34 +213,65 @@ onMounted(async () => { justify-content: space-between; // 改为 space-between 以容纳人数 align-items: center; padding: 10px 15px; - background-color: #fff; + background-color: #fff; border-bottom: 1px solid #eee; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04); - .picker-item { - display: flex; - align-items: center; - padding: 5px 15px; - background-color: #f7f7f7; - border: 1px solid #eee; - border-radius: 16px; - font-size: 14px; - color: #333; - min-width: 160px; - justify-content: space-between; - - text { - margin-right: 8px; - } - } - .student-count { - font-size: 14px; - color: #666; - white-space: nowrap; // 防止换行 + font-size: 14px; + color: #666; + white-space: nowrap; // 防止换行 } + + .bj-picker { + flex: 1 0 1px; + max-width: 45%; + } + + .search-section { + flex: 1 0 1px; + } + } +.search-section { + padding: 0rpx 15rpx; + background-color: #ffffff; + position: sticky; + top: 0; + z-index: 10; + + .search-box { + display: flex; + align-items: center; + background-color: #f5f5f5; + border-radius: 50rpx; + padding: 0 20rpx; + height: 70rpx; + + uni-icons { + margin-right: 15rpx; + } + + .search-input { + flex: 1; + height: 100%; + border: none; + background: transparent; + font-size: 28rpx; + color: #333; + + &::placeholder { + color: #999; + } + } + + .search-clear { + margin-left: 15rpx; + cursor: pointer; + } + } +} .student-list-container { flex: 1; @@ -226,10 +282,10 @@ onMounted(async () => { .loading-indicator, .empty-state { - text-align: center; - color: #999; - padding: 30px 15px; - font-size: 14px; + text-align: center; + color: #999; + padding: 30px 15px; + font-size: 14px; } .student-item { @@ -298,9 +354,10 @@ onMounted(async () => { uni-icons { margin-right: 3px; } - text { - line-height: 1; // 确保文字和图标对齐 - } + + text { + line-height: 1; // 确保文字和图标对齐 + } } } @@ -319,9 +376,10 @@ onMounted(async () => { &::after { border: none; } + // 可选:按下效果 &:active { - background-color: #f0f0f0; + background-color: #f0f0f0; } } - \ No newline at end of file + \ No newline at end of file diff --git a/src/pages/view/hr/teacherProfile/position.vue b/src/pages/view/hr/teacherProfile/position.vue index 2007726..549a093 100644 --- a/src/pages/view/hr/teacherProfile/position.vue +++ b/src/pages/view/hr/teacherProfile/position.vue @@ -28,7 +28,7 @@ import { useForm } from "@/components/BasicForm/hooks/useForm"; import { dicApi } from "@/api/system/dic"; import { useDataStore } from "@/store/modules/data"; import { - findAllNjBjTree, + findAllNjBjTreeApi, findAllXxXqNjTree, kmFindAllApi, } from "@/api/base/server"; @@ -82,7 +82,7 @@ const [register, { getValue, setValue }] = useForm({ // label: "主任班级", // component: "BasicPicker", // componentProps: { - // api: findAllNjBjTree, + // api: findAllNjBjTreeApi, // rangeKey: "title", // savaKey: "key", // }, @@ -102,7 +102,7 @@ const [register, { getValue, setValue }] = useForm({ // label: "兼任班级", // component: "BasicPicker", // componentProps: { - // api: findAllNjBjTree, + // api: findAllNjBjTreeApi, // rangeKey: "title", // savaKey: "key", // }, @@ -122,7 +122,7 @@ const [register, { getValue, setValue }] = useForm({ // label: "班主任班级", // component: "BasicTree", // componentProps: { - // api: findAllNjBjTree, + // api: findAllNjBjTreeApi, // rangeKey: "title", // savaKey: "key", // }, diff --git a/src/pages/view/notice/publish.vue b/src/pages/view/notice/publish.vue index c385a54..947acfb 100644 --- a/src/pages/view/notice/publish.vue +++ b/src/pages/view/notice/publish.vue @@ -223,7 +223,7 @@ import CustomUpload from "/src/components/BasicUpload/CustomUpload.vue"; import BasicTree from "@/components/BasicTree/Tree.vue"; import { attachmentUpload } from "@/api/system/upload"; import { imagUrl } from "@/utils"; -import { findAllNjBjTree, mobilejlstudentListApi } from "@/api/base/server"; +import { findAllNjBjTreeApi, mobilejlstudentListApi } from "@/api/base/server"; interface Attachment { name: string; @@ -286,7 +286,7 @@ const displayNames = computed(() => { // 加载树形数据 const loadTreeData = async () => { try { - const res = await findAllNjBjTree(); + const res = await findAllNjBjTreeApi(); if (res.resultCode === 1 && res.result) { // 转换数据格式以适配 BasicTree 组件 treeData.value = res.result.map((item: any) => ({