From 43ea733eac9665941ef3be522e70ef996fa1ef4b Mon Sep 17 00:00:00 2001 From: hebo Date: Sun, 7 Sep 2025 21:48:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E6=97=A5=E5=B8=B8=E8=A7=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/base/assesment.ts | 2 +- src/api/base/student.ts | 34 + src/components/BasicForm/Form.vue | 2 +- .../BasicForm/src/BasicComponent.vue | 4 + src/components/BasicForm/type/useForm.d.ts | 3 + src/components/BasicNjBjPicker/example.vue | 193 +++++ src/components/BasicNjBjPicker/index.ts | 4 + src/components/BasicNjBjPicker/index.vue | 216 +++++ src/components/BasicXsPicker/example.vue | 283 ++++++ src/components/BasicXsPicker/index.ts | 4 + src/components/BasicXsPicker/index.vue | 816 ++++++++++++++++++ src/pages/base/service/index.vue | 11 +- .../assessment/assessment.vue | 42 +- .../casualShot/casualShot.vue | 219 +++-- .../quantitativeAssessment/index/details.vue | 4 +- .../quantitativeAssessment/index/index.vue | 52 +- src/static/base/home/stxc.png | Bin 0 -> 5380 bytes src/static/base/home/yrcg.png | Bin 0 -> 10622 bytes 18 files changed, 1769 insertions(+), 120 deletions(-) create mode 100644 src/api/base/student.ts create mode 100644 src/components/BasicNjBjPicker/example.vue create mode 100644 src/components/BasicNjBjPicker/index.ts create mode 100644 src/components/BasicNjBjPicker/index.vue create mode 100644 src/components/BasicXsPicker/example.vue create mode 100644 src/components/BasicXsPicker/index.ts create mode 100644 src/components/BasicXsPicker/index.vue create mode 100644 src/static/base/home/stxc.png create mode 100644 src/static/base/home/yrcg.png diff --git a/src/api/base/assesment.ts b/src/api/base/assesment.ts index a677d9c..fc02957 100644 --- a/src/api/base/assesment.ts +++ b/src/api/base/assesment.ts @@ -46,7 +46,7 @@ export const gradeClassFindByGradeApi = async (params: any) => { }; export const cmsArticleFindPageApi = async (params: any) => { - return await get("/api/cmsArticle/findPage", params); + return await get("/api/cms/article/findPage", params); }; //根据id查询部门 export const deptFindAllGradeClassApi = async (param: { pid: number }) => { diff --git a/src/api/base/student.ts b/src/api/base/student.ts new file mode 100644 index 0000000..a3fde43 --- /dev/null +++ b/src/api/base/student.ts @@ -0,0 +1,34 @@ +import { get, post } from "@/utils/request"; + +/** + * 根据年级ID和班级ID查询学生及家长信息 + */ +export const findStudentInfoByNjAndBjApi = async (params: { + njId?: string, + bjIds?: string[] +}) => { + return await post("/api/xs/findByNjAndBj", params); +}; + +/** + * 根据学生ID列表查询学生及家长信息 + */ +export const findStudentInfoByIdsApi = async (params: { + xsIdList?: string +}) => { + return await post("/api/xs/findStudentInfoWithParentIds", params); +}; + +/** + * 根据学生身份证号查询学生信息 + */ +export const findStudentBySfzhApi = async (sfzh: string) => { + return await get("/api/xs/findXsBySfzh", { sfzh }); +}; + +/** + * 根据学生ID查询学生详情 + */ +export const getStudentDetailByIdApi = async (id: string) => { + return await get("/api/xs/getDetailById", { id }); +}; diff --git a/src/components/BasicForm/Form.vue b/src/components/BasicForm/Form.vue index 6a54fe3..0362d92 100644 --- a/src/components/BasicForm/Form.vue +++ b/src/components/BasicForm/Form.vue @@ -11,7 +11,7 @@ + + diff --git a/src/components/BasicNjBjPicker/index.ts b/src/components/BasicNjBjPicker/index.ts new file mode 100644 index 0000000..9ed5873 --- /dev/null +++ b/src/components/BasicNjBjPicker/index.ts @@ -0,0 +1,4 @@ +import BasicNjBjPicker from './index.vue' + +export { BasicNjBjPicker } +export default BasicNjBjPicker diff --git a/src/components/BasicNjBjPicker/index.vue b/src/components/BasicNjBjPicker/index.vue new file mode 100644 index 0000000..71d0675 --- /dev/null +++ b/src/components/BasicNjBjPicker/index.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/src/components/BasicXsPicker/example.vue b/src/components/BasicXsPicker/example.vue new file mode 100644 index 0000000..43282db --- /dev/null +++ b/src/components/BasicXsPicker/example.vue @@ -0,0 +1,283 @@ + + + + + diff --git a/src/components/BasicXsPicker/index.ts b/src/components/BasicXsPicker/index.ts new file mode 100644 index 0000000..7b885d9 --- /dev/null +++ b/src/components/BasicXsPicker/index.ts @@ -0,0 +1,4 @@ +import BasicXsPicker from './index.vue' + +export { BasicXsPicker } +export default BasicXsPicker diff --git a/src/components/BasicXsPicker/index.vue b/src/components/BasicXsPicker/index.vue new file mode 100644 index 0000000..6ec33f8 --- /dev/null +++ b/src/components/BasicXsPicker/index.vue @@ -0,0 +1,816 @@ + + + + + diff --git a/src/pages/base/service/index.vue b/src/pages/base/service/index.vue index 477b033..cf4697e 100644 --- a/src/pages/base/service/index.vue +++ b/src/pages/base/service/index.vue @@ -249,13 +249,20 @@ const sections = reactive([ }, { id: "r5", - icon: "hc-fill", + icon: "stxc", text: "食堂巡查", show: true, permissionKey: "routine-stxc", // 食堂巡查权限编码 path: "/pages/view/routine/ShiTangXunCha/index", }, - + { + id: "r5", + icon: "yrcg", + text: "一日常规", + show: true, + permissionKey: "routine-yrcg", // 一日常规权限编码 + path: "/pages/view/quantitativeAssessment/index/index", + }, ], }, diff --git a/src/pages/view/quantitativeAssessment/assessment/assessment.vue b/src/pages/view/quantitativeAssessment/assessment/assessment.vue index 3d17a43..60a7cdc 100644 --- a/src/pages/view/quantitativeAssessment/assessment/assessment.vue +++ b/src/pages/view/quantitativeAssessment/assessment/assessment.vue @@ -105,6 +105,7 @@ import {onShow} from "@dcloudio/uni-app"; import {deptFindByPidApi, dicApi} from "@/api/system/dic"; import {useForm} from "@/components/BasicForm/hooks/useForm"; import {getUserViewApi} from "@/api/system/login"; +import {BasicNjBjPicker} from "@/components/BasicNjBjPicker"; function setItemValue() { console.log(444,value.value) @@ -122,37 +123,18 @@ function setItemValue() { const [register, {getValue, setSchema, setValue}] = useForm({ schema: [ { - field: "grade", - label: "年级", - component: "BasicPickerCheckbox", + field: "classInfo", + label: "年级班级", + component: "BasicNjBjPicker", required: true, componentProps: { - api: deptFindByPidApi, - param: {pid: 1}, - rangeKey: 'deptName', - savaKey: 'id', - ok: async (ysave: any, svalue: any, range: any) => { - let res = await deptFindByPidApi({pid: svalue}); - setSchema([{ - field: "gradeClassId", - componentProps: { - range: res.result, - rangeKey: 'deptName', - savaKey: 'id' - } - }]) + placeholder: "请选择年级班级", + customStyle: { + backgroundColor: '#fff', + borderRadius: '8px', + padding: '12px 15px' } } - }, { - field: "gradeClassId", - label: "班级", - component: "BasicPickerCheckbox", - required: true, - componentProps: { - // api: gradeClassFindAllsApi, - rangeKey: 'deptName', - savaKey: 'id' - } } ] }) @@ -272,10 +254,12 @@ async function submit() { return; } let values = await getValue(); - if (values.gradeClassId) { + + // 处理 classInfo 数据,提取 bjId + if (values.classInfo && values.classInfo.bjId) { await evaluationSaveApi({ itemList: itemList, - gradeClassId: values.gradeClassId + bjId: values.classInfo.bjId }); showToast({title: "操作成功"}); navigateBack({delta: 1}) diff --git a/src/pages/view/quantitativeAssessment/casualShot/casualShot.vue b/src/pages/view/quantitativeAssessment/casualShot/casualShot.vue index 69a3026..8eaac34 100644 --- a/src/pages/view/quantitativeAssessment/casualShot/casualShot.vue +++ b/src/pages/view/quantitativeAssessment/casualShot/casualShot.vue @@ -1,7 +1,7 @@