This commit is contained in:
guochunsi
2026-01-14 18:32:09 +08:00
parent 6055033289
commit 8166fa31e0
33 changed files with 3926 additions and 3383 deletions

View File

@@ -2,11 +2,13 @@
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
v-model="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="140px">
v-model="visible"
width="600px"
>
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="120px">
<el-form-item label="招生计划名称" prop="groupId">
<el-select v-model="dataForm.groupId" filterable placeholder="请选择招生计划" size="small" style="width: 100%;" :disabled="!!dataForm.id">
<el-select v-model="dataForm.groupId" filterable placeholder="请选择招生计划" :disabled="!!dataForm.id">
<el-option
v-for="item in planListLocal"
:key="item.id"
@@ -25,7 +27,7 @@
<el-input v-model="dataForm.idCard" placeholder="身份证"></el-input>
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-select v-model="dataForm.gender" style="width: 100%">
<el-select v-model="dataForm.gender">
<el-option
v-for="item in sexyList"
:key="item.value"
@@ -38,10 +40,10 @@
<el-input v-model="dataForm.admission" placeholder="准考证"></el-input>
</el-form-item>
<el-form-item label="中考成绩" prop="achievement">
<el-input-number v-model="dataForm.achievement" :min="0" :max="700" placeholder="中考成绩" style="width: 100%"></el-input-number>
<el-input-number v-model="dataForm.achievement" :min="0" :max="700" placeholder="中考成绩"></el-input-number>
</el-form-item>
<el-form-item label="对接人" prop="djUser" v-if="permissions.recruit_recruitprestudent_dj_sure">
<el-select v-model="dataForm.djUser" filterable clearable placeholder="" size="small" style="width: 100%">
<el-select v-model="dataForm.djUser" filterable clearable placeholder="">
<el-option
v-for="item in contactNameList"
:key="item.teacherNo"
@@ -51,7 +53,7 @@
</el-select>
</el-form-item>
<el-form-item label="学校" prop="schoolId">
<el-select v-model="dataForm.schoolId" filterable placeholder="请选择学校" size="small" style="width: 100%;">
<el-select v-model="dataForm.schoolId" filterable placeholder="请选择学校">
<el-option
v-for="item in schoolList"
:key="item.id"
@@ -62,7 +64,7 @@
</el-form-item>
<el-form-item label="拟报专业1" prop="planMajorOne">
<el-select v-model="dataForm.planMajorOne" filterable placeholder="请选择拟报专业1" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorOne" filterable placeholder="请选择拟报专业1">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -74,7 +76,7 @@
</el-select>
</el-form-item>
<el-form-item label="拟报专业2" prop="planMajorTwo">
<el-select v-model="dataForm.planMajorTwo" filterable clearable placeholder="请选择拟报专业2" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorTwo" filterable clearable placeholder="请选择拟报专业2">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -86,7 +88,7 @@
</el-select>
</el-form-item>
<el-form-item label="拟报专业3" prop="planMajorThree">
<el-select v-model="dataForm.planMajorThree" filterable clearable placeholder="请选择拟报专业3" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorThree" filterable clearable placeholder="请选择拟报专业3">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -98,7 +100,7 @@
</el-select>
</el-form-item>
<el-form-item label="拟报专业4" prop="planMajorFour">
<el-select v-model="dataForm.planMajorFour" filterable clearable placeholder="请选择拟报专业4" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorFour" filterable clearable placeholder="请选择拟报专业4">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -110,7 +112,7 @@
</el-select>
</el-form-item>
<el-form-item label="拟报专业5" prop="planMajorFive">
<el-select v-model="dataForm.planMajorFive" filterable clearable placeholder="请选择拟报专业5" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorFive" filterable clearable placeholder="请选择拟报专业5">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -123,7 +125,7 @@
</el-form-item>
<el-form-item label="拟报专业6" prop="planMajorSix">
<el-select v-model="dataForm.planMajorSix" filterable clearable placeholder="请选择拟报专业6" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorSix" filterable clearable placeholder="请选择拟报专业6">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -136,7 +138,7 @@
</el-form-item>
<el-form-item label="拟报专业7" prop="planMajorSeven">
<el-select v-model="dataForm.planMajorSeven" filterable clearable placeholder="请选择拟报专业7" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorSeven" filterable clearable placeholder="请选择拟报专业7">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -149,7 +151,7 @@
</el-form-item>
<el-form-item label="拟报专业8" prop="planMajorEight">
<el-select v-model="dataForm.planMajorEight" filterable clearable placeholder="请选择拟报专业8" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorEight" filterable clearable placeholder="请选择拟报专业8">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -162,7 +164,7 @@
</el-form-item>
<el-form-item label="拟报专业9" prop="planMajorNine">
<el-select v-model="dataForm.planMajorNine" filterable clearable placeholder="请选择拟报专业9" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorNine" filterable clearable placeholder="请选择拟报专业9">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -175,7 +177,7 @@
</el-form-item>
<el-form-item label="拟报专业10" prop="planMajorTen">
<el-select v-model="dataForm.planMajorTen" filterable clearable placeholder="请选择拟报专业10" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorTen" filterable clearable placeholder="请选择拟报专业10">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -188,7 +190,7 @@
</el-form-item>
<el-form-item label="拟报专业11" prop="planMajorEleven">
<el-select v-model="dataForm.planMajorEleven" filterable clearable placeholder="请选择拟报专业11" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorEleven" filterable clearable placeholder="请选择拟报专业11">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -201,7 +203,7 @@
</el-form-item>
<el-form-item label="拟报专业12" prop="planMajorTwelve">
<el-select v-model="dataForm.planMajorTwelve" filterable clearable placeholder="请选择拟报专业12" size="small" style="width: 100%;">
<el-select v-model="dataForm.planMajorTwelve" filterable clearable placeholder="请选择拟报专业12">
<el-option
v-for="item in planMajorList"
:key="item.id"
@@ -228,9 +230,10 @@ import { ref, reactive, computed, nextTick } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { ElNotification } from 'element-plus'
import { getObj, addObjStu, putObj } from '@/api/recruit/recruitprestudent'
import { queryAllTeacherByRecruit } from "@/api/professional/teacherbase"
import { list } from "@/api/recruit/recruitstudentplangroup"
import { getObj, addObjStu, putObj } from '/@/api/recruit/recruitprestudent'
import { queryTeacherBaseByNoByAssets } from '/@/api/professional/professionaluser/teacherbase'
import { list } from '/@/api/recruit/recruitstudentplangroup'
import { getDicts } from '/@/api/admin/dict'
// Props
const props = defineProps<{
@@ -265,17 +268,7 @@ const visible = ref(false)
const canSubmit = ref(false)
const contactNameList = ref<any[]>([])
const planListLocal = ref<any[]>([])
const sexyList = [
{
label: '男',
value: '1'
},
{
label: '女',
value: '2'
}
]
const sexyList = ref<any[]>([])
const dataForm = reactive({
id: "",
@@ -402,9 +395,11 @@ const init = (id: string | null) => {
nextTick(() => {
dataFormRef.value?.resetFields()
queryAllTeacherByRecruit().then((res: any) => {
contactNameList.value = res.data
// 获取性别字典
getDicts('sexy').then((res: any) => {
sexyList.value = res.data || []
})
// 这里如果需要教师列表,可以改用新的教师接口;当前项目中常用的是 queryTeacherBaseByNoByAssets
if (dataForm.id) {
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)

View File

@@ -19,9 +19,9 @@
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<!-- 搜索表单 -->
<el-form :model="queryForm" inline class="mb-4" ref="searchFormRef">
<el-form :model="queryForm" inline ref="searchFormRef">
<el-form-item label="招生计划" prop="groupId">
<el-select v-model="queryForm.groupId" filterable clearable placeholder="请选择招生计划" @change="changeG" style="width: 150px;">
<el-select v-model="queryForm.groupId" filterable clearable placeholder="请选择招生计划" @change="changeG">
<el-option
v-for="item in planList"
:key="item.id"
@@ -31,7 +31,7 @@
</el-select>
</el-form-item>
<el-form-item label="对接部门" prop="deptCode">
<el-select v-model="queryForm.deptCode" filterable clearable placeholder="请选择对接部门" style="width: 150px;">
<el-select v-model="queryForm.deptCode" filterable clearable placeholder="请选择对接部门">
<el-option
v-for="item in deptList"
:key="item.deptCode"
@@ -41,7 +41,7 @@
</el-select>
</el-form-item>
<el-form-item label="是否对接" prop="isDj">
<el-select v-model="queryForm.isDj" filterable clearable placeholder="请选择是否对接" style="width: 80px;">
<el-select v-model="queryForm.isDj" filterable clearable placeholder="请选择是否对接">
<el-option
v-for="item in isDjList"
:key="item.value"
@@ -51,7 +51,7 @@
</el-select>
</el-form-item>
<el-form-item label="对接人" prop="djUser">
<el-input v-model="queryForm.djName" type="text" style="width: 100px;" placeholder="请输入对接人" />
<el-input v-model="queryForm.djName" type="text" placeholder="请输入对接人" />
</el-form-item>
<el-form-item label="姓名/身份证/电话" prop="name">
<el-input v-model="queryForm.name" clearable placeholder="请填写学生姓名/身份证/电话" />
@@ -78,7 +78,7 @@
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="getDataList">查询</el-button>
<el-button type="primary" plain icon="Refresh" class="ml10" @click="resetQuery">重置</el-button>
<el-button plain icon="Refresh" class="ml10" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
@@ -154,7 +154,7 @@
</el-table-column>
<el-table-column prop="name" label="学生姓名" width="120" align="center" show-overflow-tooltip />
<el-table-column prop="phone" label="电话" width="120" align="center" show-overflow-tooltip />
<el-table-column prop="achievement" label="中考分数" width="80" align="center" show-overflow-tooltip />
<el-table-column prop="achievement" label="中考分数" width="90" align="center" show-overflow-tooltip />
<el-table-column prop="admission" label="准考证号" width="120" align="left" show-overflow-tooltip />
<el-table-column prop="planMajorOne" label="拟报专业1" align="left" show-overflow-tooltip>
<template #default="scope">
@@ -177,7 +177,6 @@
<!-- 弹窗, 新增 / 修改 -->
<table-form
v-if="addOrUpdateVisible"
ref="addOrUpdateRef"
@refreshDataList="getDataList"
:planList="planList"
@@ -193,14 +192,13 @@ import { ref, reactive, computed, onMounted, nextTick, defineAsyncComponent } fr
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useDict } from '/@/hooks/dict'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { delObj, fetchList, sureDJ } from '/@/api/recruit/recruitprestudent'
import { list } from '/@/api/recruit/recruitstudentplangroup'
import { listcz } from '/@/api/recruit/recruitplanmajor'
import { list as schoolListApi } from '/@/api/recruit/recruitstudentschool'
import { getDeptListByLevelTwo } from '/@/api/basic/basicdept'
// @ts-ignore
import global from '@/components/tools/commondict'
const TableForm = defineAsyncComponent(() => import('./enrolplantemplate-form.vue'))
@@ -227,15 +225,16 @@ const searchFormRef = ref()
const addOrUpdateRef = ref()
// 弹窗状态
const addOrUpdateVisible = ref(false)
const exportLoading = ref(false)
// 字典数据
const { yes_no_type: isDjList } = useDict('yes_no_type')
// 数据
const planList = ref<any[]>([])
const deptList = ref<any[]>([])
const schoolList = ref<any[]>([])
const planMajorList = ref<any[]>([])
const isDjList = ref([{ label: '是', value: '1' }, { label: '否', value: '0' }])
// 查询表单
const queryForm = reactive({
@@ -324,10 +323,9 @@ const getMajor = async (groupId: string) => {
}
// 新增 / 修改
const addOrUpdateHandle = (id?: string) => {
addOrUpdateVisible.value = true
const addOrUpdateHandle = (id?: string | null) => {
nextTick(() => {
addOrUpdateRef.value?.init(id)
addOrUpdateRef.value?.init(id ?? null)
})
}