This commit is contained in:
guochunsi
2026-01-14 11:41:04 +08:00
parent d0c8ea0223
commit 6055033289
49 changed files with 2043 additions and 1740 deletions

View File

@@ -129,7 +129,7 @@ const getTabStaticDataList = async () => {
tableData.value = [] tableData.value = []
dataListLoading.value = true dataListLoading.value = true
const response = await getTabStaticDataListApi(queryForm) const response = await getTabStaticDataListApi(queryForm)
tableData.value = response.data.data || [] tableData.value = response.data || []
} catch (error) { } catch (error) {
console.error('获取统计数据失败', error) console.error('获取统计数据失败', error)
} finally { } finally {
@@ -151,7 +151,7 @@ const resetQuery = () => {
const init = async () => { const init = async () => {
try { try {
const data = await list() const data = await list()
planList.value = data.data.data || [] planList.value = data.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
getTabStaticDataList() getTabStaticDataList()

View File

@@ -154,7 +154,7 @@ const init = async () => {
const getGradeData = async () => { const getGradeData = async () => {
try { try {
const data = await list() const data = await list()
gradeList.value = data.data.data || [] gradeList.value = data.data || []
} catch (error) { } catch (error) {
console.error('获取入学年份失败', error) console.error('获取入学年份失败', error)
} }
@@ -164,7 +164,7 @@ const getGradeData = async () => {
const getDeptData = async () => { const getDeptData = async () => {
try { try {
const data = await getDeptList() const data = await getDeptList()
deptList.value = data.data.data || [] deptList.value = data.data || []
} catch (error) { } catch (error) {
console.error('获取学院列表失败', error) console.error('获取学院列表失败', error)
} }
@@ -174,7 +174,7 @@ const getDeptData = async () => {
const getClassData = async () => { const getClassData = async () => {
try { try {
const data = await getClasslist() const data = await getClasslist()
classData.value = data.data.data || [] classData.value = data.data || []
} catch (error) { } catch (error) {
console.error('获取班级列表失败', error) console.error('获取班级列表失败', error)
} }
@@ -185,7 +185,7 @@ const getList = async () => {
try { try {
tableLoading.value = true tableLoading.value = true
const response = await getDataStatistics(queryForm) const response = await getDataStatistics(queryForm)
tableData.value = response.data.data || [] tableData.value = response.data || []
} catch (error) { } catch (error) {
console.error('获取数据失败', error) console.error('获取数据失败', error)
} finally { } finally {

View File

@@ -120,7 +120,7 @@ const init = async (formData: any, pageData: any) => {
try { try {
const data = await getTypeValue('check_in_status') const data = await getTypeValue('check_in_status')
checkInStatusData.value = data.data.data || [] checkInStatusData.value = data.data || []
} catch (error) { } catch (error) {
console.error('获取字典数据失败', error) console.error('获取字典数据失败', error)
} }

View File

@@ -361,8 +361,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await backSchoolStuPage(params) const response = await backSchoolStuPage(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
}, },
@@ -383,7 +383,7 @@ const chanMajor = async () => {
const getMajorList = async (groupId: string) => { const getMajorList = async (groupId: string) => {
try { try {
const data = await planMajor({ groupId }) const data = await planMajor({ groupId })
planMajorList.value = data.data.data || [] planMajorList.value = data.data || []
} catch (error) { } catch (error) {
console.error('获取专业列表失败', error) console.error('获取专业列表失败', error)
} }
@@ -394,15 +394,15 @@ const init = async () => {
try { try {
// 查询报到状态字典 // 查询报到状态字典
const dictData = await getTypeValue('check_in_status') const dictData = await getTypeValue('check_in_status')
backSchoolStateList.value = dictData.data.data || [] backSchoolStateList.value = dictData.data || []
// 查询二级学院信息 // 查询二级学院信息
const deptData = await getDeptList() const deptData = await getDeptList()
deptList.value = deptData.data.data || [] deptList.value = deptData.data || []
// 获取招生计划列表 // 获取招生计划列表
const planData = await list() const planData = await list()
planList.value = planData.data.data || [] planList.value = planData.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
await getMajorList(queryForm.groupId) await getMajorList(queryForm.groupId)

View File

@@ -174,8 +174,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
}) })
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
} }

View File

@@ -154,7 +154,7 @@ const init = async () => {
const getGradeData = async () => { const getGradeData = async () => {
try { try {
const data = await list() const data = await list()
gradeList.value = data.data.data || [] gradeList.value = data.data || []
} catch (error) { } catch (error) {
console.error('获取入学年份失败', error) console.error('获取入学年份失败', error)
} }
@@ -164,7 +164,7 @@ const getGradeData = async () => {
const getDeptData = async () => { const getDeptData = async () => {
try { try {
const data = await getDeptList() const data = await getDeptList()
deptList.value = data.data.data || [] deptList.value = data.data || []
} catch (error) { } catch (error) {
console.error('获取学院列表失败', error) console.error('获取学院列表失败', error)
} }
@@ -174,7 +174,7 @@ const getDeptData = async () => {
const getClassData = async () => { const getClassData = async () => {
try { try {
const data = await getClasslist() const data = await getClasslist()
classData.value = data.data.data || [] classData.value = data.data || []
} catch (error) { } catch (error) {
console.error('获取班级列表失败', error) console.error('获取班级列表失败', error)
} }
@@ -185,7 +185,7 @@ const getList = async () => {
try { try {
tableLoading.value = true tableLoading.value = true
const response = await getDataStatistics(queryForm) const response = await getDataStatistics(queryForm)
tableData.value = response.data.data || [] tableData.value = response.data || []
} catch (error) { } catch (error) {
console.error('获取数据失败', error) console.error('获取数据失败', error)
} finally { } finally {

View File

@@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<el-dialog :visible.sync="newStuCheckInDialog" width="40%"> <el-dialog v-model="newStuCheckInDialog" width="40%">
<el-form :model="form" :rules="rules" ref="form" label-width="120px" <el-form :model="form" :rules="rules" ref="formRef" label-width="120px"
class="demo-ruleForm"> class="demo-ruleForm">
<el-form-item label="姓名" prop="realName"> <el-form-item label="姓名" prop="realName">
@@ -46,14 +46,13 @@
</el-form-item> </el-form-item>
<el-form-item label="宿舍号" prop="roomNo" v-if="isRoomTab && form.isRoom=='1'"> <el-form-item label="宿舍号" prop="roomNo" v-if="isRoomTab && form.isRoom=='1'">
<!-- <el-select v-model="form.roomNo" filterable placeholder="请选择房间号" :remote-method="remoteMethod" style=" width: 80% ">-->
<el-select <el-select
v-model="form.roomNo" v-model="form.roomNo"
filterable filterable
remote remote
placeholder="请选择宿舍号" placeholder="请选择宿舍号"
:remote-method="remoteMethod" :remote-method="remoteMethod"
@change="change" @change="handleRoomNoChange"
:loading="loading" :loading="loading"
style=" width: 80% " style=" width: 80% "
> >
@@ -66,9 +65,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="床号" prop="bedNo" v-if="isRoomTab && form.isRoom=='1'"> <el-form-item label="床号" prop="bedNo" v-if="isRoomTab && form.isRoom=='1'">
<el-select v-model="form.bedNo" filterable placeholder="请选择床号" style=" width: 80% "> <el-select v-model="form.bedNo" filterable placeholder="请选择床号" style=" width: 80% " :key="bedNoKey">
<el-option <el-option
v-for="item in bedNoData" v-for="item in bedNoData"
:key="item.bedNo" :key="item.bedNo"
@@ -83,7 +81,7 @@
<el-input v-model="form.remarks" :rows="2" style=" width: 80%"></el-input> <el-input v-model="form.remarks" :rows="2" style=" width: 80%"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="checkIn('form')" v-loading="submitLoading">确定</el-button> <el-button type="primary" @click="checkIn" v-loading="submitLoading">确定</el-button>
<el-button @click="newStuCheckInDialog = false">取消</el-button> <el-button @click="newStuCheckInDialog = false">取消</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@@ -91,28 +89,48 @@
</div> </div>
</template> </template>
<script> <script setup lang="ts">
import {getDataByRoomNo} from "/@/api/stuwork/dormroom"; import { ref, reactive, watch } from 'vue'
import {fearchRoomStuNum} from "/@/api/stuwork/dormroomstudent"; import { useMessage } from '/@/hooks/message'
import {getDictByType} from "/@/api/contract/contract"; import { getDataByRoomNo } from "/@/api/stuwork/dormroom"
import { fearchRoomStuNum } from "/@/api/stuwork/dormroomstudent"
import { getDictByType } from "/@/api/contract/contract"
import { putObj } from '@/api/recruit/newstucheckin' import { putObj } from '@/api/recruit/newstucheckin'
export default { // Emits
name: "stu-check-in", const emit = defineEmits<{
data() { (e: 'reload', page: any): void
return { }>()
page:{},
newStuCheckInDialog:false, // 消息提示
bedNoData:[], const message = useMessage()
roomNoList:[],
checkInStatusData:[], // 表单引用
loading:false, const formRef = ref()
isRoomTab:false,
yesOrNoData:[{label:'否', value:'0'},{label:'是', value:'1'}], // 响应式数据
genderData:[{label:'女', value:'2'},{label:'男', value:'1'}], const page = ref<any>({})
submitLoading:false, const newStuCheckInDialog = ref(false)
form:{ const bedNoData = ref<any[]>([])
const roomNoList = ref<any[]>([])
const checkInStatusData = ref<any[]>([])
const loading = ref(false)
const isRoomTab = ref(false)
const bedNoKey = ref(0) // 用于强制更新床号选择器
const yesOrNoData = [
{ label: '否', value: '0' },
{ label: '是', value: '1' }
]
const genderData = [
{ label: '女', value: '2' },
{ label: '男', value: '1' }
]
const submitLoading = ref(false)
const form = reactive({
name: "", name: "",
checkInStatus: "", checkInStatus: "",
gender: "", gender: "",
@@ -125,8 +143,9 @@ export default {
parentName: "", parentName: "",
parentTelOne: "", parentTelOne: "",
parentTelTwo: "" parentTelTwo: ""
}, })
rules: {
const rules = {
name: [ name: [
{ required: true, message: '请输入姓名', trigger: ["blur", "change"] } { required: true, message: '请输入姓名', trigger: ["blur", "change"] }
], ],
@@ -149,130 +168,129 @@ export default {
{ required: true, message: '请选择床位号', trigger: ["blur", "change"] } { required: true, message: '请选择床位号', trigger: ["blur", "change"] }
], ],
} }
}
},
watch:{
'form.checkInStatus':{
handler(newVal){
if(newVal==='1'){
this.isRoomTab = true
}else {
this.isRoomTab = false
}
},
},
'form.roomNo':{ // 监听报到状态变化
handler(newVal){ watch(() => form.checkInStatus, (newVal) => {
if (newVal === '1') {
isRoomTab.value = true
} else {
isRoomTab.value = false
}
})
// 监听宿舍号变化
watch(() => form.roomNo, (newVal) => {
console.log(newVal) console.log(newVal)
if (newVal) { if (newVal) {
this.fearchRoomStuNums(newVal) fearchRoomStuNums(newVal)
} }
} })
},
'form.isRoom':{ // 监听是否住宿变化
handler(newVal){ watch(() => form.isRoom, (newVal) => {
if (newVal === '0') { if (newVal === '0') {
this.form.roomNo = '' form.roomNo = ''
this.form.bedNo = '' form.bedNo = ''
}
} }
})
// 初始化表单
const initForm = () => {
form.name = ""
form.checkInStatus = ""
form.gender = ""
form.idNumber = ""
form.isRoom = ""
form.roomNo = ""
form.bedNo = ""
form.remarks = ""
form.residenceDetail = ""
form.parentName = ""
form.parentTelOne = ""
form.parentTelTwo = ""
} }
}, // 初始化方法
methods:{ const init = (formData: any, pageData: any) => {
initForm(){ initForm()
this.form.name = "" page.value = pageData
this.form.checkInStatus = "" submitLoading.value = false
this.form.gender = "" newStuCheckInDialog.value = true
this.form.idNumber = ""
this.form.isRoom = ""
this.form.roomNo = ""
this.form.bedNo = ""
this.form.remarks = ""
this.form.residenceDetail="";
this.form.parentName="";
this.form.parentTelOne="";
this.form.parentTelTwo="";
},
init(formData,page){
this.initForm();
this.page = page
this.submitLoading = false
this.newStuCheckInDialog = true
Object.assign(this.form,formData) Object.assign(form, formData)
if (formData.roomNo) { if (formData.roomNo) {
this.remoteMethod(formData.roomNo); remoteMethod(formData.roomNo)
this.fearchRoomStuNums(formData.bedNo); fearchRoomStuNums(formData.bedNo)
} }
getDictByType('check_in_status').then(data => { getDictByType('check_in_status').then(data => {
this.checkInStatusData = data.data.data checkInStatusData.value = data.data
}) })
console.log("OKKK") console.log("OKKK")
}, }
checkIn(form) {
let _that = this // 报到提交
_that.submitLoading = true; const checkIn = () => {
_that.$refs[form].validate((valid) => { submitLoading.value = true
formRef.value?.validate((valid: boolean) => {
if (valid) { if (valid) {
// console.log("form",this.form) putObj(form).then(() => {
// _that.formLoading = true message.success('报到成功')
putObj(this.form).then(data => { emit('reload', page.value)
this.$message({ newStuCheckInDialog.value = false
showClose: true, submitLoading.value = false
message: '报到成功', }).catch(() => {
type: 'success' submitLoading.value = false
}) })
_that.$emit("reload",this.page);
_that.newStuCheckInDialog = false
_that.submitLoading = false
})
// _that.formLoading = false
} else { } else {
submitLoading.value = false
return false return false
} }
}) })
}, }
// 实时检索宿舍号 // 实时检索宿舍号
remoteMethod(query) { const remoteMethod = (query: string) => {
if (query != '' && query.length >= 3) { if (query != '' && query.length >= 3) {
let data = {'roomNo':query} const data = { 'roomNo': query }
this.loading = true loading.value = true
let _this = this
getDataByRoomNo(data).then(data => { getDataByRoomNo(data).then(data => {
_this.roomNoList = data.data.data; roomNoList.value = data.data
console.log("this.roomNoList") console.log("this.roomNoList")
console.log(_this.roomNoList) console.log(roomNoList.value)
_this.loading = false loading.value = false
}).catch(() => {
loading.value = false
}) })
} }
}, }
// 查询此房间为几人间 // 查询此房间为几人间
fearchRoomStuNums(roomNo){ const fearchRoomStuNums = (roomNo: string) => {
var data = {"roomNo":roomNo} const data = { "roomNo": roomNo }
fearchRoomStuNum(data).then(data => { fearchRoomStuNum(data).then(data => {
this.bedNoData = data.data.data; bedNoData.value = data.data
}) })
}, }
isRoomDisable(notBedNo){
// 判断床位是否禁用
const isRoomDisable = (notBedNo: any) => {
if (undefined != notBedNo && "" != notBedNo) { if (undefined != notBedNo && "" != notBedNo) {
return true return true
} else { } else {
return false return false
} }
},
change(){
this.form.bedNo='';
this.$forceUpdate()
}
} }
// 宿舍号变化时清空床号
const handleRoomNoChange = () => {
form.bedNo = ''
bedNoKey.value++ // 强制更新床号选择器
} }
// 暴露方法给父组件
defineExpose({
init
})
</script> </script>
<style scoped> <style scoped>

View File

@@ -2,10 +2,10 @@
<el-dialog <el-dialog
:title="!dataForm.id ? '新增' : '修改'" :title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible" v-model="visible"
append-to-body append-to-body
> >
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="140px"> <el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="140px">
<el-form-item label="模拟学生" prop="serialNumber"> <el-form-item label="模拟学生" prop="serialNumber">
<el-select <el-select
@@ -15,7 +15,7 @@
remote remote
clearable clearable
reserve-keyword reserve-keyword
:disabled="!dataForm.id ? false : true" placeholder="请选择唯一号" size="small" style="width: 100%" :disabled="!!dataForm.id" placeholder="请选择唯一号" size="small" style="width: 100%"
:remote-method="remoteTeacherByQuery" :remote-method="remoteTeacherByQuery"
> >
<el-option <el-option
@@ -83,31 +83,50 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="canSubmit">确定</el-button> <el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</span> </div>
</template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { addMNObj, getMNObj, putMNObj } from '@/api/recruit/recruitImitateAdjustBatch' import { addMNObj, getMNObj, putMNObj } from '@/api/recruit/recruitImitateAdjustBatch'
import {getList} from "@/api/recruit/recruitstudentsignup"; import { getList } from "@/api/recruit/recruitstudentsignup"
import {list as planMajor, listByEdu} from "@/api/recruit/recruitplanmajor"; import { list as planMajor, listByEdu } from "@/api/recruit/recruitplanmajor"
import {queryTeacherStationInfo} from "@/api/professional/teacherbase";
export default { // Emits
data () { const emit = defineEmits<{
return { (e: 'refreshDataList'): void
visible: false, }>()
canSubmit: false,
dataForm: { // 表单引用
const dataFormRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const disabled = ref(false)
const serialNumberList = ref<any[]>([])
const planMajorEduList = ref<any[]>([])
const planMajorList = ref<any[]>([])
const isOutList = [
{ label: "学校", value: "0" },
{ label: "市平台", value: "1" }
]
const dataForm = reactive({
id: "", id: "",
serialNumber: "", serialNumber: "",
groupId: "", groupId: "",
batchNo: "",
wishMajorOne: '', wishMajorOne: '',
wishMajorTwo: '', wishMajorTwo: '',
wishMajorThree: '', wishMajorThree: '',
@@ -117,13 +136,10 @@ import {queryTeacherStationInfo} from "@/api/professional/teacherbase";
name: "", name: "",
gender: "", gender: "",
idNumber: "", idNumber: "",
}, oldConfirmedMajor: ""
disabled:false, })
serialNumberList:[],
planMajorEduList:[], const dataRule = {
isOutList:[{label:"学校",value:"0"},{label:"市平台",value:"1"}],
planMajorList:[],
dataRule: {
serialNumber: [ serialNumber: [
{ required: true, message: '模拟学生不能为空', trigger: 'blur' }, { required: true, message: '模拟学生不能为空', trigger: 'blur' },
], ],
@@ -131,133 +147,149 @@ import {queryTeacherStationInfo} from "@/api/professional/teacherbase";
{ required: true, message: '录取专业不能为空', trigger: 'blur' }, { required: true, message: '录取专业不能为空', trigger: 'blur' },
], ],
} }
}
},
created () {
},
methods: {
init (id,groupId,batchNo) {
this.dataForm.id = id || null;
this.dataForm.batchNo = batchNo;
this.dataForm.groupId= groupId;
this.visible = true;
this.canSubmit = true;
this.planMajorEduList = [];
this.initData();
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
getMNObj(this.dataForm.id).then(response => {
this.dataForm = response.data.data
this.getMajorListByEdu();
})
}else{
this.disabled = true;
}
})
},
/** /**
* 判断拟报专业是否已经占用,占用不可选 * 判断拟报专业是否已经占用,占用不可选
* @param notBedNo
* @returns {boolean}
*/ */
isDisable(zydm){ const isDisable = (zydm: string) => {
if(zydm == this.dataForm.wishMajorOne if (zydm == dataForm.wishMajorOne
|| zydm == this.dataForm.wishMajorTwo || zydm == dataForm.wishMajorTwo
|| zydm == this.dataForm.wishMajorThree || zydm == dataForm.wishMajorThree
) { ) {
return true return true
} else { } else {
return false return false
} }
}, }
initData() {
this.planMajorList=[]; // 初始化数据
this.serialNumberList=[]; const initData = () => {
planMajor({groupId: this.dataForm.groupId}).then(data =>{ planMajorList.value = []
this.planMajorList = data.data.data; serialNumberList.value = []
}); planMajor({ groupId: dataForm.groupId }).then((data: any) => {
// getList({groupId:this.dataForm.groupId}).then(data =>{ planMajorList.value = data.data
// this.serialNumberList = data.data.data })
// }); }
},
remoteTeacherByQuery(query) { // 远程搜索学生
this.serialNumberList = [] const remoteTeacherByQuery = (query: string) => {
serialNumberList.value = []
if (query !== '') { if (query !== '') {
setTimeout(() => { setTimeout(() => {
getList({groupId:this.dataForm.groupId,name:query}).then(response => { getList({ groupId: dataForm.groupId, name: query }).then((response: any) => {
this.serialNumberList = response.data.data serialNumberList.value = response.data
}) })
}, 200); }, 200)
}
} }
},
changeStu(){
let _this = this;
_this.planMajorEduList = [];
_this.dataForm.wishMajorOne='';
_this.dataForm.wishMajorTwo='';
_this.dataForm.wishMajorThree='';
_this.dataForm.degreeOfEducation = "";
_this.dataForm.oldConfirmedMajor = "";
_this.dataForm.name = "";
_this.dataForm.idNumber = "";
_this.dataForm.confirmedMajor = "";
_this.dataForm.gender = "";
_this.dataForm.isOut = "";
console.log(_this.dataForm);
_this.serialNumberList.forEach(e=>{
if(e.serialNumber == _this.dataForm.serialNumber){
_this.dataForm.wishMajorOne = e.wishMajorOne;
_this.dataForm.wishMajorTwo = e.wishMajorTwo;
_this.dataForm.wishMajorThree = e.wishMajorThree;
_this.dataForm.degreeOfEducation = e.degreeOfEducation;
_this.dataForm.name = e.name;
_this.dataForm.idNumber = e.idNumber;
_this.dataForm.gender = e.gender; // 学生选择变化
_this.dataForm.isOut = e.isOut; const changeStu = () => {
_this.dataForm.confirmedMajor = e.confirmedMajor; planMajorEduList.value = []
_this.dataForm.oldConfirmedMajor = e.confirmedMajor; dataForm.wishMajorOne = ''
_this.getMajorListByEdu(); dataForm.wishMajorTwo = ''
dataForm.wishMajorThree = ''
dataForm.degreeOfEducation = ""
dataForm.oldConfirmedMajor = ""
dataForm.name = ""
dataForm.idNumber = ""
dataForm.confirmedMajor = ""
dataForm.gender = ""
dataForm.isOut = ""
serialNumberList.value.forEach(e => {
if (e.serialNumber == dataForm.serialNumber) {
dataForm.wishMajorOne = e.wishMajorOne
dataForm.wishMajorTwo = e.wishMajorTwo
dataForm.wishMajorThree = e.wishMajorThree
dataForm.degreeOfEducation = e.degreeOfEducation
dataForm.name = e.name
dataForm.idNumber = e.idNumber
dataForm.gender = e.gender
dataForm.isOut = e.isOut
dataForm.confirmedMajor = e.confirmedMajor
dataForm.oldConfirmedMajor = e.confirmedMajor
getMajorListByEdu()
} }
}) })
}
// 根据学历获取专业列表
const getMajorListByEdu = () => {
planMajorEduList.value = []
listByEdu({ groupId: dataForm.groupId, degreeOfEducation: dataForm.degreeOfEducation }).then((res: any) => {
planMajorEduList.value = res.data
})
}
},
getMajorListByEdu(){
this.planMajorEduList=[];
listByEdu({groupId: this.dataForm.groupId,degreeOfEducation:this.dataForm.degreeOfEducation}).then(res=> {
this.planMajorEduList = res.data.data;
});
},
// 表单提交 // 表单提交
dataFormSubmit () { const dataFormSubmit = () => {
this.$refs['dataForm'].validate((valid) => { dataFormRef.value?.validate((valid: boolean) => {
if (valid) { if (valid) {
if(this.dataForm.oldConfirmedMajor == this.dataForm.confirmedMajor){ if (dataForm.oldConfirmedMajor == dataForm.confirmedMajor) {
this.$notify.error('模拟调整的专业不能和原录取专业相同,请检查'); ElNotification.error({
title: '错误',
message: '模拟调整的专业不能和原录取专业相同,请检查'
})
return return
} }
this.canSubmit = false; canSubmit.value = false
if (this.dataForm.id) { if (dataForm.id) {
putMNObj(this.dataForm).then(data => { putMNObj(dataForm).then(() => {
this.$notify.success('修改成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} else { } else {
addMNObj(this.dataForm).then(data => { addMNObj(dataForm).then(() => {
this.$notify.success('添加成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} }
} }
}) })
} }
// 初始化方法
const init = (id: string | null, groupId: string, batchNo: string) => {
dataForm.id = id || ""
dataForm.batchNo = batchNo
dataForm.groupId = groupId
visible.value = true
canSubmit.value = true
planMajorEduList.value = []
initData()
nextTick(() => {
dataFormRef.value?.resetFields()
if (dataForm.id) {
getMNObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
getMajorListByEdu()
})
} else {
disabled.value = true
} }
})
} }
// 暴露方法给父组件
defineExpose({
init
})
</script> </script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

View File

@@ -2,11 +2,11 @@
<el-dialog <el-dialog
:title="!dataForm.id ? '新增' : '修改'" :title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible"> v-model="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="140px"> <el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="140px">
<el-form-item label="招生计划" prop="groupId"> <el-form-item label="招生计划" prop="groupId">
<el-select v-model="dataForm.groupId" filterable :disabled="!dataForm.id ? false : true" placeholder="请选择招生计划" size="small" style="width: 100%"> <el-select v-model="dataForm.groupId" filterable :disabled="!!dataForm.id" placeholder="请选择招生计划" size="small" style="width: 100%">
<el-option <el-option
v-for="item in planList" v-for="item in planList"
:key="item.id" :key="item.id"
@@ -20,32 +20,42 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="canSubmit">确定</el-button> <el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</span> </div>
</template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { addObj, getObj, putObj } from '@/api/recruit/recruitImitateAdjustBatch' import { addObj, getObj, putObj } from '@/api/recruit/recruitImitateAdjustBatch'
import {list} from "@/api/recruit/recruitstudentplangroup"; import { list } from "@/api/recruit/recruitstudentplangroup"
export default { // Emits
data () { const emit = defineEmits<{
return { (e: 'refreshDataList'): void
visible: false, }>()
canSubmit: false,
dataForm: { // 表单引用
const dataFormRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const disabled = ref(false)
const planList = ref<any[]>([])
const dataForm = reactive({
id: "", id: "",
batchName: "", batchName: "",
groupId: "", groupId: "",
}, })
disabled:false,
planList: [], const dataRule = {
areaList:[],
deptList:[],
dataRule: {
groupId: [ groupId: [
{ required: true, message: '招生计划不能为空', trigger: 'blur' }, { required: true, message: '招生计划不能为空', trigger: 'blur' },
], ],
@@ -54,60 +64,75 @@ import {addObj, getObj, putObj} from '@/api/recruit/recruitImitateAdjustBatch'
{ min: 1, max: 20, message: '批次名称长度不大于20个字符', trigger: 'blur' } { min: 1, max: 20, message: '批次名称长度不大于20个字符', trigger: 'blur' }
], ],
} }
}
}, // 初始化数据
created () { const initData = () => {
}, list().then((data: any) => {
methods: { planList.value = data.data
init (id) { if (!dataForm.id) {
this.dataForm.id = id || null; dataForm.groupId = planList.value[0].id
this.visible = true;
this.canSubmit = true;
this.initData();
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
getObj(this.dataForm.id).then(response => {
this.dataForm = response.data.data
})
}else{
this.disabled = true;
} }
}) })
},
initData() {
list().then(data =>{
this.planList = data.data.data
if(!this.dataForm.id){
this.dataForm.groupId=this.planList[0].id
} }
});
},
// 表单提交 // 表单提交
dataFormSubmit () { const dataFormSubmit = () => {
this.$refs['dataForm'].validate((valid) => { dataFormRef.value?.validate((valid: boolean) => {
if (valid) { if (valid) {
this.canSubmit = false; canSubmit.value = false
if (this.dataForm.id) { if (dataForm.id) {
putObj(this.dataForm).then(data => { putObj(dataForm).then(() => {
this.$notify.success('修改成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} else { } else {
addObj(this.dataForm).then(data => { addObj(dataForm).then(() => {
this.$notify.success('添加成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} }
} }
}) })
} }
// 初始化方法
const init = (id: string | null) => {
dataForm.id = id || ""
visible.value = true
canSubmit.value = true
initData()
nextTick(() => {
dataFormRef.value?.resetFields()
if (dataForm.id) {
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
})
} else {
disabled.value = true
} }
})
} }
// 暴露方法给父组件
defineExpose({
init
})
</script> </script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

View File

@@ -131,8 +131,7 @@ import { useUserInfo } from '/@/stores/userInfo'
import { BasicTableProps, useTable } from '/@/hooks/table' import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message' import { useMessage, useMessageBox } from '/@/hooks/message'
import { list } from '/@/api/recruit/recruitstudentplangroup' import { list } from '/@/api/recruit/recruitstudentplangroup'
import { addObj, delObj, fetchList } from '/@/api/recruit/recruitImitateAdjustBatch' import { delObj, fetchList } from '/@/api/recruit/recruitImitateAdjustBatch'
import request from '/@/utils/request'
const TableForm = defineAsyncComponent(() => import('./detaiform.vue')) const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
const MnTable = defineAsyncComponent(() => import('./mnTable.vue')) const MnTable = defineAsyncComponent(() => import('./mnTable.vue'))
@@ -181,8 +180,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
}, },
@@ -196,13 +195,13 @@ const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle, downBlob
const init = async () => { const init = async () => {
try { try {
const data = await list() const data = await list()
planList.value = data.data.data || [] planList.value = data.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
} }
getDataList() getDataList()
} catch (error) { } catch (error) {
console.error('初始化失败', error) // 初始化失败
} }
} }
@@ -250,9 +249,9 @@ const deleteHandle = async (id: string) => {
// 重置查询 // 重置查询
const resetQuery = () => { const resetQuery = () => {
searchFormRef.value?.resetFields() searchFormRef.value?.resetFields()
Object.keys(queryForm).forEach(key => { queryForm.groupId = ''
queryForm[key] = '' queryForm.batchName = ''
}) queryForm.batchCode = ''
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
} }

View File

@@ -2,12 +2,12 @@
<el-dialog <el-dialog
title="模拟列表" title="模拟列表"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible" v-model="visible"
width="80%" width="80%"
> >
<el-form :inline="true"> <el-form :inline="true">
<el-form-item> <el-form-item>
<el-button v-if="permissions.recruit_recruitImitateAdjustBatch_add" icon="el-icon-plus" size="small" type="primary" @click="addOrUpdateHandle()">新增</el-button> <el-button v-if="permissions.recruit_recruitImitateAdjustBatch_add" :icon="Plus" size="small" type="primary" @click="addOrUpdateHandle()">新增</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="avue-crud"> <div class="avue-crud">
@@ -34,7 +34,7 @@
header-align="center" header-align="center"
align="center" align="center"
label="性别"> label="性别">
<template slot-scope="scope"> <template #default="scope">
<span v-if="scope.row.gender==1"></span> <span v-if="scope.row.gender==1"></span>
<span v-if="scope.row.gender==2"></span> <span v-if="scope.row.gender==2"></span>
</template> </template>
@@ -44,7 +44,7 @@
header-align="center" header-align="center"
align="center" align="center"
label="学历"> label="学历">
<template slot-scope="scope"> <template #default="scope">
{{global.getLabelValueByPropes(eduList,scope.row.degreeOfEducation,{'key':'value','value':'label'})}} {{global.getLabelValueByPropes(eduList,scope.row.degreeOfEducation,{'key':'value','value':'label'})}}
</template> </template>
</el-table-column> </el-table-column>
@@ -54,7 +54,7 @@
width="100px" width="100px"
align="center" align="center"
label="拟报专业1"> label="拟报专业1">
<template slot-scope="scope"> <template #default="scope">
{{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorOne,{'key':'zydm','value':'zymc'})}} {{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorOne,{'key':'zydm','value':'zymc'})}}
</template> </template>
</el-table-column> </el-table-column>
@@ -64,7 +64,7 @@
align="center" align="center"
width="100px" width="100px"
label="拟报专业2"> label="拟报专业2">
<template slot-scope="scope"> <template #default="scope">
{{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorTwo,{'key':'zydm','value':'zymc'})}} {{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorTwo,{'key':'zydm','value':'zymc'})}}
</template> </template>
</el-table-column> </el-table-column>
@@ -75,7 +75,7 @@
align="center" align="center"
width="100px" width="100px"
label="拟报专业3"> label="拟报专业3">
<template slot-scope="scope"> <template #default="scope">
{{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorThree,{'key':'zydm','value':'zymc'})}} {{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorThree,{'key':'zydm','value':'zymc'})}}
</template> </template>
</el-table-column> </el-table-column>
@@ -84,7 +84,7 @@
header-align="center" header-align="center"
align="center" align="center"
label="原录取专业"> label="原录取专业">
<template slot-scope="scope"> <template #default="scope">
{{global.getLabelValueByPropes2(planMajorList,scope.row.oldConfirmedMajor,{'key':'zydm','value':'zymc'})}} {{global.getLabelValueByPropes2(planMajorList,scope.row.oldConfirmedMajor,{'key':'zydm','value':'zymc'})}}
</template> </template>
</el-table-column> </el-table-column>
@@ -93,7 +93,7 @@
header-align="center" header-align="center"
align="center" align="center"
label="模拟录取专业"> label="模拟录取专业">
<template slot-scope="scope"> <template #default="scope">
{{global.getLabelValueByPropes2(planMajorList,scope.row.confirmedMajor,{'key':'zydm','value':'zymc'})}} {{global.getLabelValueByPropes2(planMajorList,scope.row.confirmedMajor,{'key':'zydm','value':'zymc'})}}
</template> </template>
</el-table-column> </el-table-column>
@@ -103,7 +103,7 @@
align="center" align="center"
width="120" width="120"
label="来源"> label="来源">
<template slot-scope="scope"> <template #default="scope">
<span v-if="scope.row.isOut==0">学校</span> <span v-if="scope.row.isOut==0">学校</span>
<span v-if="scope.row.isOut==1">市平台</span> <span v-if="scope.row.isOut==1">市平台</span>
</template> </template>
@@ -112,105 +112,135 @@
header-align="center" header-align="center"
align="center" align="center"
label="操作"> label="操作">
<template slot-scope="scope"> <template #default="scope">
<el-button v-if="permissions.recruit_recruitImitateAdjustBatch_edit" type="text" size="small" icon="el-icon-edit" @click="addOrUpdateHandle(scope.row.id)">修改</el-button> <el-button v-if="permissions.recruit_recruitImitateAdjustBatch_edit" type="text" size="small" :icon="Edit" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
<el-button v-if="permissions.recruit_recruitImitateAdjustBatch_del" type="text" size="small" icon="el-icon-delete" @click="deleteHandle(scope.row.id)">删除</el-button> <el-button v-if="permissions.recruit_recruitImitateAdjustBatch_del" type="text" size="small" :icon="Delete" @click="deleteHandle(scope.row.id)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<add-m-n-stu v-if="addMnStuVisible" ref="addMnStuRef" @refreshDataList="getDataList"></add-m-n-stu>
<add-m-n-stu v-if="addMnStuVisible" ref="addMnStu" @refreshDataList="getDataList"></add-m-n-stu>
</el-dialog> </el-dialog>
</template> </template>
<script> <script setup lang="ts">
import { ref, reactive, computed, nextTick, defineAsyncComponent } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { Plus, Edit, Delete } from '@element-plus/icons-vue'
import { getMNStuList, delMNObj } from '@/api/recruit/recruitImitateAdjustBatch' import { getMNStuList, delMNObj } from '@/api/recruit/recruitImitateAdjustBatch'
import {list as planMajor} from "@/api/recruit/recruitplanmajor"; import { list as planMajor } from "@/api/recruit/recruitplanmajor"
import {mapGetters} from "vuex"; import { getTypeValue } from "@/api/admin/dict"
import addMNStu from './addMNStu' // @ts-ignore
import global from '@/components/tools/commondict' import global from '@/components/tools/commondict'
import {getTypeValue} from "@/api/admin/dict";
export default { const AddMNStu = defineAsyncComponent(() => import('./addMNStu.vue'))
data () {
return { // Emits
visible: false, const emit = defineEmits<{
canSubmit: false, (e: 'refreshDataList'): void
dataForm: { }>()
// 使用 Pinia store
const userInfoStore = useUserInfo()
const { userInfos } = storeToRefs(userInfoStore)
// 创建权限对象
const permissions = computed(() => {
const perms: Record<string, boolean> = {}
userInfos.value.authBtnList.forEach((perm: string) => {
perms[perm] = true
})
return perms
})
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()
// 组件引用
const addMnStuRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const dataListLoading = ref(false)
const addMnStuVisible = ref(false)
const dataForm = reactive({
batchNo: "", batchNo: "",
groupId: "" groupId: ""
}, })
dataListLoading: false,
addMnStuVisible: false,
global:global,
disabled:false,
dataRule: {
},
planAllMajorList:[],
dataList: [],
eduList:[],
const dataList = ref<any[]>([])
const eduList = ref<any[]>([])
const planMajorList = ref<any[]>([])
// 初始化方法
const init = (batchNo: string, groupId: string) => {
dataForm.batchNo = batchNo
dataForm.groupId = groupId
visible.value = true
canSubmit.value = true
initData()
} }
},
created () {
},
computed: {
...mapGetters(['permissions'])
},
components: {
addMNStu
},
methods: {
init (batchNo,groupId) {
this.dataForm.batchNo = batchNo;
this.dataForm.groupId = groupId;
this.visible = true;
this.canSubmit = true;
this.initData();
},
// 新增 / 修改 // 新增 / 修改
addOrUpdateHandle (id) { const addOrUpdateHandle = (id?: string) => {
this.addMnStuVisible = true addMnStuVisible.value = true
this.$nextTick(() => { nextTick(() => {
this.$refs.addMnStu.init(id,this.dataForm.groupId,this.dataForm.batchNo) addMnStuRef.value?.init(id || null, dataForm.groupId, dataForm.batchNo)
}) })
}, }
// 删除 // 删除
deleteHandle (id) { const deleteHandle = async (id: string) => {
this.$confirm('是否确认删除本条数据?请谨慎操作', '提示', { try {
confirmButtonText: '确定', await messageBox.confirm('是否确认删除本条数据?请谨慎操作')
cancelButtonText: '取消', await delMNObj(id)
type: 'warning' message.success('删除成功')
}).then(function () { getDataList()
return delMNObj(id) } catch {
}).then(data => { // 用户取消
this.$message.success('删除成功')
this.getDataList()
})
},
getDataList(){
this.dataList=[]
this.dataListLoading = true
this.$emit('refreshDataList')
getMNStuList(this.dataForm).then(response => {
this.dataList = response.data.data
})
this.dataListLoading = false
},
initData(){
this.eduList=[];
getTypeValue('finance_student_source').then(res=>{
this.eduList=res.data.data
})
this.planMajorList=[];
planMajor({groupId: this.dataForm.groupId}).then(data =>{
this.planMajorList = data.data.data;
this.getDataList();
});
},
} }
} }
// 获取数据列表
const getDataList = () => {
dataList.value = []
dataListLoading.value = true
emit('refreshDataList')
getMNStuList(dataForm).then((response: any) => {
dataList.value = response.data
dataListLoading.value = false
}).catch(() => {
dataListLoading.value = false
})
}
// 初始化数据
const initData = () => {
eduList.value = []
getTypeValue('finance_student_source').then((res: any) => {
eduList.value = res.data
})
planMajorList.value = []
planMajor({ groupId: dataForm.groupId }).then((data: any) => {
planMajorList.value = data.data
getDataList()
})
}
// 暴露方法给父组件
defineExpose({
init
})
</script> </script>
<style scoped>
.avue-crud {
margin-top: 20px;
}
</style>

View File

@@ -166,8 +166,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
}, },
@@ -196,7 +196,7 @@ const remoteTeacherByQuery = (query: string) => {
if (query !== '') { if (query !== '') {
setTimeout(() => { setTimeout(() => {
queryTeacherBaseByNoByAssets(query).then(response => { queryTeacherBaseByNoByAssets(query).then(response => {
teacherList.value = response.data.data teacherList.value = response.data
}) })
}, 200) }, 200)
} }

View File

@@ -2,8 +2,8 @@
<el-dialog <el-dialog
:title="!dataForm.id ? '新增' : '修改'" :title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible"> v-model="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" <el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit"
label-width="140px"> label-width="140px">
<el-form-item label="招生计划" prop="groupId"> <el-form-item label="招生计划" prop="groupId">
@@ -106,26 +106,44 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="canSubmit">确定</el-button> <el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</span> </div>
</template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { addObj, getObj, putObj, getCityPlan } from '@/api/recruit/recruitplanmajor' import { addObj, getObj, putObj, getCityPlan } from '@/api/recruit/recruitplanmajor'
import {getDeptList} from "@/api/basic/basicclass"; import { getDeptList } from "@/api/basic/basicclass"
import {getDictByType} from "@/api/contract/contract"; import { getDictByType } from "@/api/contract/contract"
import {list} from "@/api/recruit/recruitstudentplangroup"; import { list } from "@/api/recruit/recruitstudentplangroup"
import {getMajorNameList} from "@/api/basic/major"; import { getMajorNameList } from "@/api/basic/major"
export default { // Emits
data() { const emit = defineEmits<{
return { (e: 'refreshDataList'): void
visible: false, }>()
canSubmit: false,
dataForm: { // 表单引用
const dataFormRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const cityPlanIdList = ref<any[]>([])
const offcialZydmList = ref<any[]>([])
const planList = ref<any[]>([])
const yesNoList = ref<any[]>([])
const deptList = ref<any[]>([])
const ccList = ref<any[]>([])
const majorYears = ref<any[]>([])
const dataForm = reactive({
id: "", id: "",
groupId: "", groupId: "",
zydm: "", zydm: "",
@@ -140,16 +158,14 @@ export default {
offcialZydm: "", offcialZydm: "",
isUnion: "0", isUnion: "0",
tuitionFee: 0, tuitionFee: 0,
cityPlanId:null cityPlanId: null as string | null,
}, cityPlanIds: [] as string[],
cityPlanIdList:[], cityPlanName: "",
offcialZydmList: [], cityPlanYear: "",
planList: [], sort: 0
yeNoList: [], })
deptList: [],
ccList: [], const dataRule = {
majorYears: [],
dataRule: {
zydm: [ zydm: [
{ required: true, message: '专业代码不能为空', trigger: 'blur' }, { required: true, message: '专业代码不能为空', trigger: 'blur' },
{ min: 1, max: 6, message: '专业代码长度不大于6个字符', trigger: 'blur' } { min: 1, max: 6, message: '专业代码长度不大于6个字符', trigger: 'blur' }
@@ -160,7 +176,6 @@ export default {
zymc: [ zymc: [
{ required: true, message: '专业名称不能为空', trigger: 'blur' }, { required: true, message: '专业名称不能为空', trigger: 'blur' },
{ min: 1, max: 200, message: '专业名称长度不大于200个字符', trigger: 'blur' } { min: 1, max: 200, message: '专业名称长度不大于200个字符', trigger: 'blur' }
], ],
zygfmc: [ zygfmc: [
{ required: true, message: '专业规范名称不能为空', trigger: 'blur' }, { required: true, message: '专业规范名称不能为空', trigger: 'blur' },
@@ -191,102 +206,112 @@ export default {
{ min: 1, max: 100, message: '备注长度不大于100个字符', trigger: 'blur' } { min: 1, max: 100, message: '备注长度不大于100个字符', trigger: 'blur' }
], ],
} }
}
},
created() {
},
methods: {
init(id) {
this.dataForm.id = id || null;
this.visible = true;
this.canSubmit = true;
this.initData();
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
getObj(this.dataForm.id).then(response => {
this.dataForm = response.data.data
//获取市平台对应年份下的招生计划
getCityPlan({id:this.dataForm.id}).then(data =>{
this.cityPlanIdList = data.data.data
})
})
}
})
},
/** /**
* 判断市平台招生专业是否占用,占用不可选 * 判断市平台招生专业是否占用,占用不可选
* @param notBedNo
* @returns {boolean}
*/ */
isCityDisable(id){ const isCityDisable = (id: string) => {
var returnFlag = false; if (!dataForm.cityPlanIds || !Array.isArray(dataForm.cityPlanIds)) {
this.dataForm.cityPlanIds.forEach(e=>{ return false
if(e == id){
returnFlag = true;
} }
}) return dataForm.cityPlanIds.some(e => e == id)
return returnFlag; }
},
initData() { // 初始化数据
const initData = () => {
// 查询二级学院信息 // 查询二级学院信息
getDeptList().then(data => { getDeptList().then((data: any) => {
this.deptList = data.data.data deptList.value = data.data
}) })
list().then(data => { list().then((data: any) => {
this.planList = data.data.data planList.value = data.data
if (!this.dataForm.id) { if (!dataForm.id) {
this.dataForm.groupId = this.planList[0].id; dataForm.groupId = planList.value[0]?.id || ""
} }
}); })
getMajorNameList().then(data =>{ getMajorNameList().then((data: any) => {
this.offcialZydmList = data.data.data offcialZydmList.value = data.data
}) })
// 获取数据字典 // 获取数据字典
getDictByType("yes_no").then(res => { getDictByType("yes_no").then((res: any) => {
this.yesNoList = res.data.data yesNoList.value = res.data
}) })
getDictByType("basic_major_years").then(res => { getDictByType("basic_major_years").then((res: any) => {
this.majorYears = res.data.data majorYears.value = res.data
}) })
getDictByType("basic_major_level").then(res => { getDictByType("basic_major_level").then((res: any) => {
this.ccList = res.data.data ccList.value = res.data
}) })
}
},
// 表单提交 // 表单提交
dataFormSubmit() { const dataFormSubmit = () => {
if(this.dataForm.cityPlanId !=null){ if (dataForm.cityPlanId != null) {
this.cityPlanIdList.forEach(e=>{ cityPlanIdList.value.forEach(e => {
if(e.id == this.dataForm.cityPlanId){ if (e.id == dataForm.cityPlanId) {
this.dataForm.cityPlanName = e.schoolMajorName; dataForm.cityPlanName = e.schoolMajorName
this.dataForm.cityPlanYear = e.educational; dataForm.cityPlanYear = e.educational
} }
}) })
} }
this.$refs['dataForm'].validate((valid) => { dataFormRef.value?.validate((valid: boolean) => {
if (valid) { if (valid) {
this.canSubmit = false; canSubmit.value = false
if (this.dataForm.id) { if (dataForm.id) {
putObj(this.dataForm).then(data => { putObj(dataForm).then(() => {
this.$notify.success('修改成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} else { } else {
addObj(this.dataForm).then(data => { addObj(dataForm).then(() => {
this.$notify.success('添加成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} }
} }
}) })
} }
// 初始化方法
const init = (id: string | null) => {
dataForm.id = id || ""
visible.value = true
canSubmit.value = true
initData()
nextTick(() => {
dataFormRef.value?.resetFields()
if (dataForm.id) {
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
// 获取市平台对应年份下的招生计划
getCityPlan({ id: dataForm.id }).then((data: any) => {
cityPlanIdList.value = data.data
})
})
} }
})
} }
// 暴露方法给父组件
defineExpose({
init
})
</script> </script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

View File

@@ -252,8 +252,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
}, },
@@ -268,18 +268,18 @@ const init = async () => {
try { try {
// 查询二级学院信息 // 查询二级学院信息
const deptData = await getDeptList() const deptData = await getDeptList()
deptList.value = deptData.data.data || [] deptList.value = deptData.data || []
// 获取招生计划列表 // 获取招生计划列表
const planData = await list() const planData = await list()
planList.value = planData.data.data || [] planList.value = planData.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
} }
// 获取专业名称列表 // 获取专业名称列表
const majorData = await getMajorNameList() const majorData = await getMajorNameList()
offcialZydmList.value = majorData.data.data || [] offcialZydmList.value = majorData.data || []
getDataList() getDataList()
} catch (error) { } catch (error) {

View File

@@ -4,8 +4,8 @@
append-to-body append-to-body
width="90%" width="90%"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible"> v-model="visible">
<el-form :model="dataForm" ref="dataForm" label-width="140px"> <el-form :model="dataForm" ref="dataFormRef" label-width="140px">
<el-form-item label="招生计划名称" prop="groupName"> <el-form-item label="招生计划名称" prop="groupName">
<el-input v-model="dataForm.groupName" placeholder="招生计划名称" disabled></el-input> <el-input v-model="dataForm.groupName" placeholder="招生计划名称" disabled></el-input>
</el-form-item> </el-form-item>
@@ -27,7 +27,7 @@
align="center" align="center"
label="专业" label="专业"
> >
<template slot-scope="scope"> <template #default="scope">
<span>{{ scope.row.zymc+' || '+scope.row.zydm+' || '+scope.row.xz+' 年制'}}</span> <span>{{ scope.row.zymc+' || '+scope.row.zydm+' || '+scope.row.xz+' 年制'}}</span>
</template> </template>
</el-table-column> </el-table-column>
@@ -38,7 +38,7 @@
label="计划总数" label="计划总数"
width="180px" width="180px"
> >
<template slot-scope="scope"> <template #default="scope">
<el-input-number style="width: 80%" v-model="scope.row.planStudentNum" :min="0" :max="999" @change="updateMajor(scope.row)" width="100px"></el-input-number> <el-input-number style="width: 80%" v-model="scope.row.planStudentNum" :min="0" :max="999" @change="updateMajor(scope.row)" width="100px"></el-input-number>
</template> </template>
</el-table-column> </el-table-column>
@@ -50,7 +50,7 @@
label="控制数" label="控制数"
width="180px" width="180px"
> >
<template slot-scope="scope"> <template #default="scope">
<el-input-number style="width: 80%" v-model="scope.row.needStudentNum" :min="0" :max="999" <el-input-number style="width: 80%" v-model="scope.row.needStudentNum" :min="0" :max="999"
@change="updateMajor(scope.row)"></el-input-number> @change="updateMajor(scope.row)"></el-input-number>
</template> </template>
@@ -63,7 +63,7 @@
label="预留" label="预留"
width="180px" width="180px"
> >
<template slot-scope="scope"> <template #default="scope">
<el-input-number style="width: 80%" v-model="scope.row.needStudentOverNum" :min="0" :max="999" <el-input-number style="width: 80%" v-model="scope.row.needStudentOverNum" :min="0" :max="999"
@change="updateMajor(scope.row)"></el-input-number> @change="updateMajor(scope.row)"></el-input-number>
</template> </template>
@@ -76,7 +76,7 @@
label="录取线" label="录取线"
width="180px" width="180px"
> >
<template slot-scope="scope"> <template #default="scope">
<el-input-number style="width: 80%" v-model="scope.row.scoreLine" :min="0" :max="999" <el-input-number style="width: 80%" v-model="scope.row.scoreLine" :min="0" :max="999"
@change="updateMajor(scope.row)"></el-input-number> @change="updateMajor(scope.row)"></el-input-number>
</template> </template>
@@ -86,7 +86,7 @@
header-align="center" header-align="center"
align="center" align="center"
label="生源"> label="生源">
<template slot-scope="scope"> <template #default="scope">
<el-select v-model="scope.row.degreeOfEducation" placeholder="请选择生源" style=" width: 100%;text-align:center" multiple <el-select v-model="scope.row.degreeOfEducation" placeholder="请选择生源" style=" width: 100%;text-align:center" multiple
@change="updateMajor(scope.row)"> @change="updateMajor(scope.row)">
<el-option <el-option
@@ -104,70 +104,61 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-dialog> </el-dialog>
</template> </template>
<script> <script setup lang="ts">
import { ref, reactive } from 'vue'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { ElNotification } from 'element-plus'
import { list, delObj } from '@/api/recruit/recruitplanmajor' import { list, delObj } from '@/api/recruit/recruitplanmajor'
import { putObj } from '@/api/recruit/recruitstudentplan' import { putObj } from '@/api/recruit/recruitstudentplan'
import { fetchSecondTree } from "@/api/basic/basicdept"
import { getDictByType } from "@/api/contract/contract"
import {mapGetters} from 'vuex' // 消息提示 hooks
import global from '@/components/tools/commondict' const message = useMessage()
import {fetchSecondTree} from "@/api/basic/basicdept"; const messageBox = useMessageBox()
import {getDictByType} from "@/api/contract/contract";
export default { // 表单引用
data() { const dataFormRef = ref()
return {
dataForm: { // 响应式数据
const visible = ref(false)
const activiName = ref("11")
const dataList = ref<any[]>([])
const deptList = ref<any[]>([])
const degreeOfEducationList = ref<any[]>([])
const dataListLoading = ref(false)
const dataForm = reactive({
groupId: "", groupId: "",
groupName: "", groupName: "",
deptCode: "11", deptCode: "11",
}, })
activiName: "11",
global: global, // 初始化数据
dataList: [], const initData = () => {
deptList: [], degreeOfEducationList.value = []
degreeOfEducationList:[],
dataListLoading: false,
visible: false,
tableLoading: false,
}
},
components: {},
created() {
},
computed: {
...mapGetters(['permissions'])
},
methods: {
init(row) {
this.visible = true;
this.dataForm.deptCode = "11";
this.dataForm.groupName = row.groupName;
this.dataForm.groupId = row.id;
this.initData()
this.getDepartment();
this.getDataList()
},
initData(){
this.degreeOfEducationList=[];
// 获取数据字典 // 获取数据字典
getDictByType("finance_student_source").then(res => { getDictByType("finance_student_source").then((res: any) => {
this.degreeOfEducationList = res.data.data degreeOfEducationList.value = res.data
}) })
}, }
getDepartment() {
fetchSecondTree().then(res => { // 获取部门列表
this.deptList = res.data.data const getDepartment = () => {
fetchSecondTree().then((res: any) => {
deptList.value = res.data
}) })
}, }
updateMajor(row) {
if(row.degreeOfEducation.length!=0){ // 更新专业
row.degreeOfEducations = row.degreeOfEducation.join(","); const updateMajor = (row: any) => {
if (row.degreeOfEducation && row.degreeOfEducation.length != 0) {
row.degreeOfEducations = row.degreeOfEducation.join(",")
} else { } else {
row.degreeOfEducations=""; row.degreeOfEducations = ""
} }
putObj({ putObj({
id: row.planId, id: row.planId,
@@ -179,49 +170,74 @@ export default {
scoreLine: row.scoreLine, scoreLine: row.scoreLine,
scoreMinLine: row.scoreMinLine, scoreMinLine: row.scoreMinLine,
degreeOfEducations: row.degreeOfEducations degreeOfEducations: row.degreeOfEducations
}).then(res => { }).then(() => {
this.$notify.success('修改成功') ElNotification.success({
title: '成功',
message: '修改成功'
})
}).catch(() => { }).catch(() => {
}); // 错误处理
}, })
handleChange(tab, event) {
this.dataForm.deptCode = tab.name;
this.getDataList()
},
// 获取数据列表
getDataList() {
this.dataList = []
this.dataListLoading = true
if (this.dataForm.deptCode == '') {
this.dataForm.deptCode = "11";
} }
list({groupId: this.dataForm.groupId, deptCode: this.dataForm.deptCode}).then(response => {
this.dataList = response.data.data // 标签切换
this.dataList.forEach(e=>{ const handleChange = (tab: any) => {
dataForm.deptCode = tab.name
getDataList()
}
// 获取数据列表
const getDataList = () => {
dataList.value = []
dataListLoading.value = true
if (dataForm.deptCode == '') {
dataForm.deptCode = "11"
}
list({ groupId: dataForm.groupId, deptCode: dataForm.deptCode }).then((response: any) => {
dataList.value = response.data
dataList.value.forEach(e => {
if (e.degreeOfEducation) { if (e.degreeOfEducation) {
e.degreeOfEducation = e.degreeOfEducation.split(",") e.degreeOfEducation = e.degreeOfEducation.split(",")
} }
}) })
dataListLoading.value = false
}).catch(() => {
dataListLoading.value = false
}) })
this.dataListLoading = false }
},
// 删除 // 删除
deleteHandle(id) { const deleteHandle = async (id: string) => {
this.$confirm('是否确认删除本条数据?请谨慎操作', '提示', { try {
confirmButtonText: '确定', await messageBox.confirm('是否确认删除本条数据?请谨慎操作')
cancelButtonText: '取消', await delObj(id)
type: 'warning' message.success('删除成功')
}).then(function () { getDataList()
return delObj(id) } catch {
}).then(data => { // 用户取消
this.$message.success('删除成功')
this.getDataList()
})
} }
} }
}
</script>
<style lang="scss" scoped>
// 初始化方法
const init = (row: any) => {
visible.value = true
dataForm.deptCode = "11"
dataForm.groupName = row.groupName
dataForm.groupId = row.id
initData()
getDepartment()
getDataList()
}
// 暴露方法给父组件
defineExpose({
init,
deleteHandle
})
</script>
<style lang="scss" scoped>
.avue-crud {
margin-top: 20px;
}
</style> </style>

View File

@@ -2,13 +2,13 @@
<el-dialog <el-dialog
:title="!dataForm.id ? '新增' : '修改'" :title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible"> v-model="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="140px"> <el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="140px">
<el-form-item label="招生计划名称" prop="groupId"> <el-form-item label="招生计划名称" prop="groupId">
<el-select v-model="dataForm.groupId" filterable placeholder="请选择招生计划" size="small" style="width: 100%;" :disabled="!dataForm.id ? false : true"> <el-select v-model="dataForm.groupId" filterable placeholder="请选择招生计划" size="small" style="width: 100%;" :disabled="!!dataForm.id">
<el-option <el-option
v-for="item in planList" v-for="item in planListLocal"
:key="item.id" :key="item.id"
:label="item.groupName" :label="item.groupName"
:value="item.id"> :value="item.id">
@@ -38,18 +38,8 @@
<el-input v-model="dataForm.admission" placeholder="准考证"></el-input> <el-input v-model="dataForm.admission" placeholder="准考证"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="中考成绩" prop="achievement"> <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="中考成绩" style="width: 100%"></el-input-number>
</el-form-item> </el-form-item>
<!-- <el-form-item label="联系人" prop="contactsNo">-->
<!-- <el-select v-model="dataForm.contactsNo" filterable clearable placeholder="" size="small" style="width: 100%" >-->
<!-- <el-option-->
<!-- v-for="item in contactNameList"-->
<!-- :key="item.teacherNo"-->
<!-- :label="item.realName+'-'+item.deptCode"-->
<!-- :value="item.teacherNo">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="对接人" prop="djUser" v-if="permissions.recruit_recruitprestudent_dj_sure"> <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="" size="small" style="width: 100%">
<el-option <el-option
@@ -84,8 +74,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="拟报专业2" prop="planMajorTwo"> <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" size="small" style="width: 100%;">
>
<el-option <el-option
v-for="item in planMajorList" v-for="item in planMajorList"
:key="item.id" :key="item.id"
@@ -147,7 +136,7 @@
</el-form-item> </el-form-item>
<el-form-item label="拟报专业7" prop="planMajorSeven"> <el-form-item label="拟报专业7" prop="planMajorSeven">
<el-select v-model="dataForm.planMajorSeven" filterable clearable placeholder="请选择拟报专业5" size="small" style="width: 100%;" > <el-select v-model="dataForm.planMajorSeven" filterable clearable placeholder="请选择拟报专业7" size="small" style="width: 100%;">
<el-option <el-option
v-for="item in planMajorList" v-for="item in planMajorList"
:key="item.id" :key="item.id"
@@ -225,26 +214,59 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="canSubmit">确定</el-button> <el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</span> </div>
</template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script setup lang="ts">
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 { getObj, addObjStu, putObj } from '@/api/recruit/recruitprestudent'
import {queryAllTeacherByRecruit} from "@/api/professional/teacherbase"; import { queryAllTeacherByRecruit } from "@/api/professional/teacherbase"
import {mapGetters} from "vuex"; import { list } from "@/api/recruit/recruitstudentplangroup"
import {list} from "@/api/recruit/recruitstudentplangroup";
export default { // Props
props:["planList","planMajorList","schoolList"], const props = defineProps<{
data () { planList?: any[]
return { planMajorList?: any[]
visible: false, schoolList?: any[]
canSubmit: false, }>()
contactNameList:[],
sexyList: [ // Emits
const emit = defineEmits<{
(e: 'refreshDataList'): void
}>()
// 使用 Pinia store
const userInfoStore = useUserInfo()
const { userInfos } = storeToRefs(userInfoStore)
// 创建权限对象
const permissions = computed(() => {
const perms: Record<string, boolean> = {}
userInfos.value.authBtnList.forEach((perm: string) => {
perms[perm] = true
})
return perms
})
// 表单引用
const dataFormRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const contactNameList = ref<any[]>([])
const planListLocal = ref<any[]>([])
const sexyList = [
{ {
label: '男', label: '男',
value: '1' value: '1'
@@ -253,8 +275,10 @@ import {list} from "@/api/recruit/recruitstudentplangroup";
label: '女', label: '女',
value: '2' value: '2'
} }
], ]
dataForm: {
const dataForm = reactive({
id: "",
groupId: "", groupId: "",
name: "", name: "",
gender: "", gender: "",
@@ -274,11 +298,17 @@ import {list} from "@/api/recruit/recruitstudentplangroup";
planMajorEleven: "", planMajorEleven: "",
planMajorTwelve: "", planMajorTwelve: "",
admission: "", admission: "",
achievement:"", achievement: null as number | null,
contactsNo: "", contactsNo: "",
djUser:"" djUser: null as string | null,
}, djTime: null as string | null,
dataRule: { djName: null as string | null,
djDept: null as string | null,
isDj: "0",
year: ""
})
const dataRule = {
planMajorOne: [ planMajorOne: [
{ required: true, message: '拟报专业1不能为空', trigger: 'blur' } { required: true, message: '拟报专业1不能为空', trigger: 'blur' }
], ],
@@ -296,100 +326,111 @@ import {list} from "@/api/recruit/recruitstudentplangroup";
gender: [ gender: [
{ required: true, message: '性别不能为空', trigger: 'blur' } { required: true, message: '性别不能为空', trigger: 'blur' }
], ],
schoolId: [ schoolId: [
{ required: true, message: '学校不能为空', trigger: 'blur' } { required: true, message: '学校不能为空', trigger: 'blur' }
], ],
// admission: [
// { required: true, message: '准考证不能为空', trigger: 'blur' }
// ],
// achievement: [
// { required: true, message: '中考成绩不能为空', trigger: 'blur' }
// ],
} }
}
},
created () {
},
computed: {
...mapGetters(['permissions'])
},
methods: {
init (id) {
let _this = this;
this.dataForm.id = id || null;
this.visible = true;
this.canSubmit = true;
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
queryAllTeacherByRecruit().then(res =>{
this.contactNameList = res.data.data
});
if (this.dataForm.id) {
getObj(this.dataForm.id).then(response => { /**
_this.dataForm = response.data.data * 判断拟报专业是否已经占用,占用不可选
_this.dataForm.year = this.dataForm.year+""; */
const isDisable = (id: string) => {
}) if (id == dataForm.planMajorOne
|| id == dataForm.planMajorTwo
}else { || id == dataForm.planMajorThree
list().then(data => { || id == dataForm.planMajorFour
_this.planList = data.data.data || id == dataForm.planMajorFive
_this.dataForm.groupId = _this.planList[0].id; || id == dataForm.planMajorSix
}) || id == dataForm.planMajorSeven
} || id == dataForm.planMajorEight
}) || id == dataForm.planMajorNine
}, || id == dataForm.planMajorTen
isDisable(id){ || id == dataForm.planMajorEleven
if(id==this.dataForm.planMajorOne || id == dataForm.planMajorTwelve
||id==this.dataForm.planMajorTwo
||id==this.dataForm.planMajorThree
||id==this.dataForm.planMajorFour
||id==this.dataForm.planMajorFive
||id==this.dataForm.planMajorSix
||id==this.dataForm.planMajorSeven
||id==this.dataForm.planMajorEight
||id==this.dataForm.planMajorNine
||id==this.dataForm.planMajorTen
||id==this.dataForm.planMajorEleven
||id==this.dataForm.planMajorTwelve
) { ) {
return true return true
} else { } else {
return false return false
} }
}, }
// 表单提交 // 表单提交
dataFormSubmit () { const dataFormSubmit = () => {
this.$refs['dataForm'].validate((valid) => { dataFormRef.value?.validate((valid: boolean) => {
if (valid) { if (valid) {
this.canSubmit = false; canSubmit.value = false
if (this.dataForm.id) { if (dataForm.id) {
putObj(this.dataForm).then(data => { putObj(dataForm).then(() => {
this.$notify.success('修改成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} else { } else {
this.dataForm.djUser=null; dataForm.djUser = null
this.dataForm.djTime=null; dataForm.djTime = null
this.dataForm.djName=null; dataForm.djName = null
this.dataForm.djDept=null; dataForm.djDept = null
this.dataForm.isDj="0"; dataForm.isDj = "0"
addObjStu(this.dataForm).then(data => { addObjStu(dataForm).then(() => {
this.$notify.success('添加成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} }
} }
}) })
} }
// 初始化方法
const init = (id: string | null) => {
dataForm.id = id || ""
visible.value = true
canSubmit.value = true
// 初始化 planListLocal优先使用 props如果没有则使用空数组
planListLocal.value = props.planList ? [...props.planList] : []
nextTick(() => {
dataFormRef.value?.resetFields()
queryAllTeacherByRecruit().then((res: any) => {
contactNameList.value = res.data
})
if (dataForm.id) {
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
if (dataForm.year) {
dataForm.year = String(dataForm.year)
} }
})
} else {
list().then((data: any) => {
planListLocal.value = data.data
if (planListLocal.value.length > 0) {
dataForm.groupId = planListLocal.value[0].id
} }
})
}
})
}
// 暴露方法给父组件
defineExpose({
init
})
</script> </script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

View File

@@ -267,8 +267,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
}, },
@@ -283,18 +283,18 @@ const init = async () => {
try { try {
// 获取部门列表 // 获取部门列表
const deptData = await getDeptListByLevelTwo() const deptData = await getDeptListByLevelTwo()
deptList.value = deptData.data.data || [] deptList.value = deptData.data || []
// 获取招生计划列表 // 获取招生计划列表
const planData = await list() const planData = await list()
planList.value = planData.data.data || [] planList.value = planData.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
await getMajor(queryForm.groupId) await getMajor(queryForm.groupId)
// 获取学校列表 // 获取学校列表
const schoolData = await schoolListApi({ groupId: queryForm.groupId }) const schoolData = await schoolListApi({ groupId: queryForm.groupId })
schoolList.value = schoolData.data.data || [] schoolList.value = schoolData.data || []
} }
getDataList() getDataList()
@@ -308,7 +308,7 @@ const changeG = async () => {
if (queryForm.groupId) { if (queryForm.groupId) {
await getMajor(queryForm.groupId) await getMajor(queryForm.groupId)
const schoolData = await schoolListApi({ groupId: queryForm.groupId }) const schoolData = await schoolListApi({ groupId: queryForm.groupId })
schoolList.value = schoolData.data.data || [] schoolList.value = schoolData.data || []
} }
} }
@@ -316,7 +316,7 @@ const changeG = async () => {
const getMajor = async (groupId: string) => { const getMajor = async (groupId: string) => {
try { try {
const data = await listcz({ groupId }) const data = await listcz({ groupId })
planMajorList.value = data.data.data || [] planMajorList.value = data.data || []
getDataList() getDataList()
} catch (error) { } catch (error) {
console.error('获取专业列表失败', error) console.error('获取专业列表失败', error)

View File

@@ -84,8 +84,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchListStatic(params) const response = await fetchListStatic(params)
return { return {
data: { data: {
records: response.data.data || [], records: response.data || [],
total: response.data.data?.length || 0 total: response.data?.length || 0
} }
} }
}, },
@@ -99,7 +99,7 @@ const { getDataList, tableStyle, downBlobFile } = useTable(state)
const init = async () => { const init = async () => {
try { try {
const data = await list() const data = await list()
planList.value = data.data.data || [] planList.value = data.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
getDataList() getDataList()

View File

@@ -2,11 +2,11 @@
<el-dialog <el-dialog
:title="!dataForm.id ? '新增' : '修改'" :title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible"> v-model="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="140px"> <el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="140px">
<el-form-item label="招生计划" prop="groupId"> <el-form-item label="招生计划" prop="groupId">
<el-select v-model="dataForm.groupId" filterable :disabled="!dataForm.id ? false : true" placeholder="请选择招生计划" size="small" style="width: 100%"> <el-select v-model="dataForm.groupId" filterable :disabled="!!dataForm.id" placeholder="请选择招生计划" size="small" style="width: 100%">
<el-option <el-option
v-for="item in planList" v-for="item in planList"
:key="item.id" :key="item.id"
@@ -23,33 +23,43 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="canSubmit">确定</el-button> <el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</span> </div>
</template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { addObj, getObj, putObj } from '@/api/recruit/recruitschoolcode' import { addObj, getObj, putObj } from '@/api/recruit/recruitschoolcode'
import {list} from "@/api/recruit/recruitstudentplangroup"; import { list } from "@/api/recruit/recruitstudentplangroup"
export default { // Emits
data () { const emit = defineEmits<{
return { (e: 'refreshDataList'): void
visible: false, }>()
canSubmit: false,
dataForm: { // 表单引用
const dataFormRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const planList = ref<any[]>([])
const dataForm = reactive({
id: "", id: "",
groupId: "", groupId: "",
schoolName: "", schoolName: "",
schoolCode: "", schoolCode: "",
}, area: ""
disabled:false, })
planList: [],
areaList:[], const dataRule = {
deptList:[],
dataRule: {
groupId: [ groupId: [
{ required: true, message: '招生计划不能为空', trigger: 'blur' }, { required: true, message: '招生计划不能为空', trigger: 'blur' },
], ],
@@ -61,63 +71,77 @@ import {addObj, getObj, putObj} from '@/api/recruit/recruitschoolcode'
{ required: true, message: '学校代码不能为空', trigger: 'blur' }, { required: true, message: '学校代码不能为空', trigger: 'blur' },
{ min: 4, max: 4, message: '学校代码长度为4个字符', trigger: 'blur' } { min: 4, max: 4, message: '学校代码长度为4个字符', trigger: 'blur' }
], ],
}
} // 初始化数据
} const initData = () => {
}, list().then((data: any) => {
created () { planList.value = data.data
}, if (!dataForm.id) {
methods: { dataForm.groupId = planList.value[0]?.id || ""
init (id) {
this.dataForm.id = id || null;
this.visible = true;
this.canSubmit = true;
this.initData();
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
getObj(this.dataForm.id).then(response => {
this.dataForm = response.data.data
this.dataForm.area = this.dataForm.area+"";
})
}else{
this.disabled = true;
} }
}) })
},
initData() {
list().then(data =>{
this.planList = data.data.data
if(!this.dataForm.id){
this.dataForm.groupId=this.planList[0].id
} }
});
},
// 表单提交 // 表单提交
dataFormSubmit () { const dataFormSubmit = () => {
this.$refs['dataForm'].validate((valid) => { dataFormRef.value?.validate((valid: boolean) => {
if (valid) { if (valid) {
this.canSubmit = false; canSubmit.value = false
if (this.dataForm.id) { if (dataForm.id) {
putObj(this.dataForm).then(data => { putObj(dataForm).then(() => {
this.$notify.success('修改成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} else { } else {
addObj(this.dataForm).then(data => { addObj(dataForm).then(() => {
this.$notify.success('添加成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} }
} }
}) })
} }
// 初始化方法
const init = (id: string | null) => {
dataForm.id = id || ""
visible.value = true
canSubmit.value = true
initData()
nextTick(() => {
dataFormRef.value?.resetFields()
if (dataForm.id) {
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
if (dataForm.area) {
dataForm.area = String(dataForm.area)
} }
})
} }
})
}
// 暴露方法给父组件
defineExpose({
init
})
</script> </script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

View File

@@ -233,8 +233,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
}, },
@@ -248,7 +248,7 @@ const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle } = useTa
const init = async () => { const init = async () => {
try { try {
const data = await list() const data = await list()
planList.value = data.data.data || [] planList.value = data.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
} }
@@ -303,13 +303,13 @@ const submitUpload = async () => {
} }
}) })
if (res.data.data === 'fail') { if (res.data === 'fail') {
message.error('请上传正确的学校代码模板') message.error('请上传正确的学校代码模板')
return return
} }
if (res.data && res.data.data === 0) { if (res.data && res.data === 0) {
message.error(res.data.msg) message.error(res.data.msg)
} else if (res.data && res.data.data === 10) { } else if (res.data && res.data === 10) {
message.error(res.data.msg) message.error(res.data.msg)
} else { } else {
message.success('操作成功') message.success('操作成功')

View File

@@ -234,8 +234,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
} }

View File

@@ -2,12 +2,12 @@
<el-dialog <el-dialog
:title="!dataForm.id ? '新增' : '修改'" :title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible"> v-model="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" <el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit"
label-width="140px"> label-width="140px">
<el-form-item label="招生计划" prop="groupId"> <el-form-item label="招生计划" prop="groupId">
<el-select v-model="dataForm.groupId" filterable placeholder="请选择招生计划" size="small" style="width: 100%" :disabled="!dataForm.id ? false : true"> <el-select v-model="dataForm.groupId" filterable placeholder="请选择招生计划" size="small" style="width: 100%" :disabled="!!dataForm.id">
<el-option <el-option
v-for="item in planList" v-for="item in planList"
:key="item.id" :key="item.id"
@@ -31,32 +31,45 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="canSubmit">确定</el-button> <el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</span> </div>
</template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { addObj, getObj, putObj } from '@/api/recruit/recruitstudentplancorrectscoreconfig' import { addObj, getObj, putObj } from '@/api/recruit/recruitstudentplancorrectscoreconfig'
import {areaList} from "@/api/recruit/recruitstudentschool"; import { areaList } from "@/api/recruit/recruitstudentschool"
import {list} from "@/api/recruit/recruitstudentplangroup"; import { list } from "@/api/recruit/recruitstudentplangroup"
export default { // Emits
data() { const emit = defineEmits<{
return { (e: 'refreshDataList'): void
visible: false, }>()
canSubmit: false,
dataForm: { // 表单引用
const dataFormRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const regionList = ref<any[]>([])
const planList = ref<any[]>([])
const dataForm = reactive({
id: "", id: "",
groupId: "", groupId: "",
regionId: "", regionId: "",
fullScore:"" fullScore: null as number | null,
}, regionName: ""
regionList:[], })
planList:[],
dataRule: { const dataRule = {
groupId: [ groupId: [
{ required: true, message: '招生计划不能为空', trigger: 'blur' } { required: true, message: '招生计划不能为空', trigger: 'blur' }
], ],
@@ -67,63 +80,78 @@ export default {
{ required: true, message: '分数线不能为空', trigger: 'blur' } { required: true, message: '分数线不能为空', trigger: 'blur' }
], ],
} }
}
}, // 初始化数据
created() { const initData = () => {
}, list().then((data: any) => {
methods: { planList.value = data.data
init(id) { })
this.dataForm.id = id || null; areaList({ type: "0", parentId: "11" }).then((data: any) => {
this.visible = true; regionList.value = data.data
this.canSubmit = true;
this.$nextTick(() => {
this.initData();
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
getObj(this.dataForm.id).then(response => {
this.dataForm = response.data.data
}) })
} }
})
},
initData() {
list().then(data => {
this.planList = data.data.data
});
areaList({type:"0",parentId:"11"}).then(data =>{
this.regionList = data.data.data;
});
},
// 表单提交 // 表单提交
dataFormSubmit() { const dataFormSubmit = () => {
this.$refs['dataForm'].validate((valid) => { dataFormRef.value?.validate((valid: boolean) => {
if (valid) { if (valid) {
this.canSubmit = false; canSubmit.value = false
this.regionList.forEach(e=>{ regionList.value.forEach(e => {
if(e.code == this.dataForm.regionId){ if (e.code == dataForm.regionId) {
this.dataForm.regionName =e.name; dataForm.regionName = e.name
} }
}); })
if (this.dataForm.id) { if (dataForm.id) {
putObj(this.dataForm).then(data => { putObj(dataForm).then(() => {
this.$notify.success('修改成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} else { } else {
addObj(this.dataForm).then(data => { addObj(dataForm).then(() => {
this.$notify.success('添加成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} }
} }
}) })
} }
// 初始化方法
const init = (id: string | null) => {
dataForm.id = id || ""
visible.value = true
canSubmit.value = true
nextTick(() => {
initData()
dataFormRef.value?.resetFields()
if (dataForm.id) {
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
})
} }
})
} }
// 暴露方法给父组件
defineExpose({
init
})
</script> </script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

View File

@@ -160,8 +160,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
}, },
@@ -175,7 +175,7 @@ const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle } = useTa
const init = async () => { const init = async () => {
try { try {
const data = await list() const data = await list()
planList.value = data.data.data || [] planList.value = data.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
} }

View File

@@ -166,8 +166,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
} }

View File

@@ -2,15 +2,15 @@
<el-dialog <el-dialog
:title="!dataForm.id ? '新增' : '修改'" :title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible"> v-model="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="140px"> <el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="140px">
<el-form-item label="年份" prop="year"> <el-form-item label="年份" prop="year">
<el-date-picker <el-date-picker
style="width: 100%" style="width: 100%"
v-model="dataForm.year" v-model="dataForm.year"
type="year" type="year"
format="yyyy" format="YYYY"
value-format="yyyy" value-format="YYYY"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="招生计划名称" prop="groupName"> <el-form-item label="招生计划名称" prop="groupName">
@@ -18,20 +18,48 @@
</el-form-item> </el-form-item>
<el-form-item label="报名开始时间" prop="startDate"> <el-form-item label="报名开始时间" prop="startDate">
<el-date-picker v-model="dataForm.startDate" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" filterable clearable style="width: 100%" <el-date-picker
:picker-options="startDatePicker" type="datetime" ></el-date-picker> v-model="dataForm.startDate"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
clearable
style="width: 100%"
:disabled-date="startDateDisabledDate"
type="datetime"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="报名截止时间" prop="endDate"> <el-form-item label="报名截止时间" prop="endDate">
<el-date-picker v-model="dataForm.endDate" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" filterable clearable style="width: 100%" <el-date-picker
:picker-options="endDatePicker" type="datetime" ></el-date-picker> v-model="dataForm.endDate"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
clearable
style="width: 100%"
:disabled-date="endDateDisabledDate"
type="datetime"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="维护开始时间" prop="maintenanceStartDate"> <el-form-item label="维护开始时间" prop="maintenanceStartDate">
<el-date-picker v-model="dataForm.maintenanceStartDate" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" filterable clearable style="width: 100%" <el-date-picker
:picker-options="maintenanceStartDatePicker" type="datetime" ></el-date-picker> v-model="dataForm.maintenanceStartDate"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
clearable
style="width: 100%"
:disabled-date="maintenanceStartDateDisabledDate"
type="datetime"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="维护结束时间" prop="maintenanceEndDate"> <el-form-item label="维护结束时间" prop="maintenanceEndDate">
<el-date-picker v-model="dataForm.maintenanceEndDate" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" filterable clearable style="width: 100%" <el-date-picker
:picker-options="maintenanceEndDatePicker" type="datetime" ></el-date-picker> v-model="dataForm.maintenanceEndDate"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
clearable
style="width: 100%"
:disabled-date="maintenanceEndDateDisabledDate"
type="datetime"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="初中生报名" prop="czSignStart"> <el-form-item label="初中生报名" prop="czSignStart">
@@ -45,7 +73,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="高中生报名" prop="gzSignStart"> <el-form-item label="高中生报名" prop="gzSignStart">
<el-select v-model="dataForm.gzSignStart" placeholder="请选择中生报名" style=" width: 100%"> <el-select v-model="dataForm.gzSignStart" placeholder="请选择中生报名" style="width: 100%">
<el-option <el-option
v-for="item in yesNoList" v-for="item in yesNoList"
:key="item.value" :key="item.value"
@@ -55,7 +83,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="技职校报名" prop="jzxSignStart"> <el-form-item label="技职校报名" prop="jzxSignStart">
<el-select v-model="dataForm.jzxSignStart" placeholder="请选择初中生报名" style=" width: 100%"> <el-select v-model="dataForm.jzxSignStart" placeholder="请选择技职校报名" style="width: 100%">
<el-option <el-option
v-for="item in yesNoList" v-for="item in yesNoList"
:key="item.value" :key="item.value"
@@ -66,26 +94,39 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="canSubmit">确定</el-button> <el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</span> </div>
</template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script setup lang="ts">
import { ref, reactive, nextTick, computed } from 'vue'
import { ElNotification } from 'element-plus'
import { addObj, getObj, putObj } from '@/api/recruit/recruitstudentplangroup' import { addObj, getObj, putObj } from '@/api/recruit/recruitstudentplangroup'
export default { // Emits
data () { const emit = defineEmits<{
return { (e: 'refreshDataList'): void
startDatePicker: this.beginDate(), }>()
endDatePicker: this.processDate(),
maintenanceStartDatePicker: this.mainBeginDate(), // 表单引用
maintenanceEndDatePicker: this.mainEndDate(), const dataFormRef = ref()
visible: false,
canSubmit: false, // 响应式数据
dataForm: { const visible = ref(false)
const canSubmit = ref(false)
const yesNoList = [
{ label: "否", value: "0" },
{ label: "是", value: "1" }
]
const dataForm = reactive({
id: "",
year: "", year: "",
groupName: "", groupName: "",
startDate: "", startDate: "",
@@ -96,9 +137,9 @@
czSignStart: "", czSignStart: "",
gzSignStart: "", gzSignStart: "",
jzxSignStart: "" jzxSignStart: ""
}, })
yesNoList:[{"label": "否", "value": "0"},{"label": "是", "value": "1"}],
dataRule: { const dataRule = {
year: [ year: [
{ required: true, message: '年份不能为空', trigger: 'blur' } { required: true, message: '年份不能为空', trigger: 'blur' }
], ],
@@ -131,95 +172,94 @@
{ required: true, message: '技职校不能为空', trigger: 'blur' } { required: true, message: '技职校不能为空', trigger: 'blur' }
], ],
} }
}
},
created () {
},
methods: {
beginDate(){ // 日期选择器的禁用日期函数
const self = this const startDateDisabledDate = (time: Date) => {
return { if (dataForm.endDate) {
disabledDate(time){ return new Date(dataForm.endDate).getTime() < time.getTime()
if (self.dataForm.endDate) { //如果结束时间不为空,则小于结束时间
return new Date(self.dataForm.endDate).getTime() < time.getTime()
} else {
} }
return false
} }
const endDateDisabledDate = (time: Date) => {
if (dataForm.startDate) {
return new Date(dataForm.startDate).getTime() > time.getTime()
} }
}, return false
processDate() {
const self = this
return {
disabledDate(time) {
if (self.dataForm.startDate) { //如果开始时间不为空,则结束时间大于开始时间
return new Date(self.dataForm.startDate).getTime() > time.getTime()
} else {
} }
const maintenanceStartDateDisabledDate = (time: Date) => {
if (dataForm.maintenanceEndDate) {
return new Date(dataForm.maintenanceEndDate).getTime() < time.getTime()
} }
return false
} }
},
mainBeginDate(){ const maintenanceEndDateDisabledDate = (time: Date) => {
const self = this if (dataForm.maintenanceStartDate) {
return { return new Date(dataForm.maintenanceStartDate).getTime() > time.getTime()
disabledDate(time){
if (self.dataForm.maintenanceEndDate) { //如果结束时间不为空,则小于结束时间
return new Date(self.dataForm.maintenanceEndDate).getTime() < time.getTime()
} else {
} }
return false
} }
}
},
mainEndDate() {
const self = this
return {
disabledDate(time) {
if (self.dataForm.maintenanceStartDate) { //如果开始时间不为空,则结束时间大于开始时间
return new Date(self.dataForm.maintenanceStartDate).getTime() > time.getTime()
} else {
}
}
}
},
init (id) {
this.dataForm.id = id || null;
this.visible = true;
this.canSubmit = true;
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
getObj(this.dataForm.id).then(response => {
this.dataForm = response.data.data
this.dataForm.year = this.dataForm.year+"";
})
}
})
},
// 表单提交 // 表单提交
dataFormSubmit () { const dataFormSubmit = () => {
this.$refs['dataForm'].validate((valid) => { dataFormRef.value?.validate((valid: boolean) => {
if (valid) { if (valid) {
this.canSubmit = false; canSubmit.value = false
if (this.dataForm.id) { if (dataForm.id) {
putObj(this.dataForm).then(data => { putObj(dataForm).then(() => {
this.$notify.success('修改成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} else { } else {
addObj(this.dataForm).then(data => { addObj(dataForm).then(() => {
this.$notify.success('添加成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} }
} }
}) })
} }
// 初始化方法
const init = (id: string | null) => {
dataForm.id = id || ""
visible.value = true
canSubmit.value = true
nextTick(() => {
dataFormRef.value?.resetFields()
if (dataForm.id) {
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
if (dataForm.year) {
dataForm.year = String(dataForm.year)
} }
})
} }
})
}
// 暴露方法给父组件
defineExpose({
init
})
</script> </script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

View File

@@ -239,8 +239,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
} }

View File

@@ -2,11 +2,11 @@
<el-dialog <el-dialog
:title="!dataForm.id ? '新增' : '修改'" :title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible"> v-model="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="140px"> <el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="140px">
<el-form-item label="招生计划" prop="groupId"> <el-form-item label="招生计划" prop="groupId">
<el-select v-model="dataForm.groupId" filterable :disabled="!dataForm.id ? false : true" placeholder="请选择招生计划" size="small" style="width: 100%"> <el-select v-model="dataForm.groupId" filterable :disabled="!!dataForm.id" placeholder="请选择招生计划" size="small" style="width: 100%">
<el-option <el-option
v-for="item in planList" v-for="item in planList"
:key="item.id" :key="item.id"
@@ -31,7 +31,7 @@
<el-form-item label="地区" prop="area"> <el-form-item label="地区" prop="area">
<el-select v-model="dataForm.area" filterable placeholder="请选择地区" size="small" style="width: 100%;"> <el-select v-model="dataForm.area" filterable placeholder="请选择地区" size="small" style="width: 100%;">
<el-option <el-option
v-for="item in areaList" v-for="item in areaListData"
:key="item.code" :key="item.code"
:label="item.name" :label="item.name"
:value="item.code"> :value="item.code">
@@ -40,35 +40,46 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="canSubmit">确定</el-button> <el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</span> </div>
</template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { addObj, areaList, getObj, putObj } from '@/api/recruit/recruitstudentschool' import { addObj, areaList, getObj, putObj } from '@/api/recruit/recruitstudentschool'
import {getDeptList} from "@/api/basic/basicclass"; import { getDeptList } from "@/api/basic/basicclass"
import {list} from "@/api/recruit/recruitstudentplangroup"; import { list } from "@/api/recruit/recruitstudentplangroup"
export default { // Emits
data () { const emit = defineEmits<{
return { (e: 'refreshDataList'): void
visible: false, }>()
canSubmit: false,
dataForm: { // 表单引用
const dataFormRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const planList = ref<any[]>([])
const areaListData = ref<any[]>([])
const deptList = ref<any[]>([])
const dataForm = reactive({
id: "", id: "",
groupId: "", groupId: "",
area: "", area: "",
xy: "", xy: "",
schoolName:"", schoolName: ""
}, })
disabled:false,
planList: [], const dataRule = {
areaList:[],
deptList:[],
dataRule: {
groupId: [ groupId: [
{ required: true, message: '招生计划不能为空', trigger: 'blur' }, { required: true, message: '招生计划不能为空', trigger: 'blur' },
], ],
@@ -76,75 +87,89 @@ import {addObj, areaList, getObj, putObj} from '@/api/recruit/recruitstudentscho
{ required: true, message: '学校名称不能为空', trigger: 'blur' }, { required: true, message: '学校名称不能为空', trigger: 'blur' },
{ min: 1, max: 20, message: '学校名称长度不大于20个字符', trigger: 'blur' } { min: 1, max: 20, message: '学校名称长度不大于20个字符', trigger: 'blur' }
], ],
area: [ area: [
{ required: true, message: '地区不能为空', trigger: 'blur' }, { required: true, message: '地区不能为空', trigger: 'blur' },
], ],
} }
}
}, // 初始化数据
created () { const initData = () => {
},
methods: {
init (id) {
this.dataForm.id = id || null;
this.visible = true;
this.canSubmit = true;
this.initData();
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
getObj(this.dataForm.id).then(response => {
this.dataForm = response.data.data
this.dataForm.area = this.dataForm.area+"";
})
}else{
this.disabled = true;
}
})
},
initData() {
// 查询二级学院信息 // 查询二级学院信息
getDeptList().then(data => { getDeptList().then((data: any) => {
this.deptList = data.data.data deptList.value = data.data
this.deptList.push({deptCode:"190",deptName:"招生就业处"}) deptList.value.push({ deptCode: "190", deptName: "招生就业处" })
}) })
list().then(data =>{ list().then((data: any) => {
this.planList = data.data.data planList.value = data.data
if(!this.dataForm.id){ if (!dataForm.id) {
this.dataForm.groupId=this.planList[0].id dataForm.groupId = planList.value[0]?.id || ""
} }
}); })
// 获取所有省 // 获取所有省
areaList({type:"0",parentId:112}).then(res=>{ areaList({ type: "0", parentId: 112 }).then((res: any) => {
this.areaList = res.data.data; areaListData.value = res.data
}); })
}, }
// 表单提交 // 表单提交
dataFormSubmit () { const dataFormSubmit = () => {
this.$refs['dataForm'].validate((valid) => { dataFormRef.value?.validate((valid: boolean) => {
if (valid) { if (valid) {
this.canSubmit = false; canSubmit.value = false
if (this.dataForm.id) { if (dataForm.id) {
putObj(this.dataForm).then(data => { putObj(dataForm).then(() => {
this.$notify.success('修改成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} else { } else {
addObj(this.dataForm).then(data => { addObj(dataForm).then(() => {
this.$notify.success('添加成功') ElNotification.success({
this.visible = false title: '成功',
this.$emit('refreshDataList') message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => { }).catch(() => {
this.canSubmit = true; canSubmit.value = true
}); })
} }
} }
}) })
} }
// 初始化方法
const init = (id: string | null) => {
dataForm.id = id || ""
visible.value = true
canSubmit.value = true
initData()
nextTick(() => {
dataFormRef.value?.resetFields()
if (dataForm.id) {
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
if (dataForm.area) {
dataForm.area = String(dataForm.area)
} }
})
} }
})
}
// 暴露方法给父组件
defineExpose({
init
})
</script> </script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

View File

@@ -181,8 +181,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
}, },
@@ -197,16 +197,16 @@ const init = async () => {
try { try {
// 查询二级学院信息 // 查询二级学院信息
const deptData = await getDeptList() const deptData = await getDeptList()
deptList.value = deptData.data.data || [] deptList.value = deptData.data || []
deptList.value.push({ deptCode: '190', deptName: '招生就业处' }) deptList.value.push({ deptCode: '190', deptName: '招生就业处' })
// 获取所有省 // 获取所有省
const areaData = await areaList({ type: '0', parentId: 112 }) const areaData = await areaList({ type: '0', parentId: 112 })
provinceList.value = areaData.data.data || [] provinceList.value = areaData.data || []
// 获取招生计划列表 // 获取招生计划列表
const planData = await list() const planData = await list()
planList.value = planData.data.data || [] planList.value = planData.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
} }

View File

@@ -68,7 +68,7 @@ export default {
init(){ init(){
let _this = this; let _this = this;
list().then(data =>{ list().then(data =>{
_this.planList = data.data.data _this.planList = data.data
_this.dataForm.groupId=_this.planList[0].id; _this.dataForm.groupId=_this.planList[0].id;
this.getDataList(); this.getDataList();
}); });
@@ -78,8 +78,8 @@ export default {
this.indexArray=[]; this.indexArray=[];
this.dataForm.degreeOfEducation='1'; this.dataForm.degreeOfEducation='1';
getAreaStatic(this.dataForm).then(response =>{ getAreaStatic(this.dataForm).then(response =>{
this.list = response.data.data.data; this.list = response.data;
this.chartOption = response.data.data.option this.chartOption = response.data.option
}) })
}, },
exportExcel: function(form,url) { exportExcel: function(form,url) {

View File

@@ -63,7 +63,7 @@ export default {
init(){ init(){
let _this = this; let _this = this;
list().then(data =>{ list().then(data =>{
_this.planList = data.data.data _this.planList = data.data
_this.dataForm.groupId=_this.planList[0].id; _this.dataForm.groupId=_this.planList[0].id;
this.getDataList(); this.getDataList();
}); });
@@ -72,7 +72,7 @@ export default {
this.list = []; this.list = [];
this.indexArray=[]; this.indexArray=[];
getContantByUserStatic(this.dataForm).then(response =>{ getContantByUserStatic(this.dataForm).then(response =>{
this.list = response.data.data; this.list = response.data;
let count = 0 let count = 0
for (let rowIndex = 0; rowIndex < this.list.length; ) { for (let rowIndex = 0; rowIndex < this.list.length; ) {
this.indexArray.push(rowIndex) this.indexArray.push(rowIndex)

View File

@@ -64,7 +64,7 @@ export default {
init(){ init(){
let _this = this; let _this = this;
list().then(data =>{ list().then(data =>{
_this.planList = data.data.data _this.planList = data.data
_this.dataForm.groupId=_this.planList[0].id; _this.dataForm.groupId=_this.planList[0].id;
this.getDataList(); this.getDataList();
}); });
@@ -73,7 +73,7 @@ export default {
this.list = []; this.list = [];
this.indexArray=[]; this.indexArray=[];
getContantByDeptStatic(this.dataForm).then(response =>{ getContantByDeptStatic(this.dataForm).then(response =>{
this.list = response.data.data; this.list = response.data;
}) })
}, },
exportExcel: function(form,url) { exportExcel: function(form,url) {

View File

@@ -68,7 +68,7 @@ export default {
init(){ init(){
let _this = this; let _this = this;
list().then(data =>{ list().then(data =>{
_this.planList = data.data.data _this.planList = data.data
_this.dataForm.groupId=_this.planList[0].id; _this.dataForm.groupId=_this.planList[0].id;
this.getDataList(); this.getDataList();
}); });
@@ -77,7 +77,7 @@ export default {
this.list = []; this.list = [];
this.indexArray=[]; this.indexArray=[];
getContantByUserStatic(this.dataForm).then(response =>{ getContantByUserStatic(this.dataForm).then(response =>{
this.list = response.data.data; this.list = response.data;
let count = 0 let count = 0
for (let rowIndex = 0; rowIndex < this.list.length; ) { for (let rowIndex = 0; rowIndex < this.list.length; ) {
this.indexArray.push(rowIndex) this.indexArray.push(rowIndex)

View File

@@ -822,15 +822,15 @@ export default {
this.areaHAList=[]; this.areaHAList=[];
//获取数据字典 //获取数据字典
getDictByType("finance_student_source").then(edu => { getDictByType("finance_student_source").then(edu => {
_this.eduList = edu.data.data _this.eduList = edu.data
//获取数据字典代办费 //获取数据字典代办费
getDictByType("agency_fee").then(fee => { getDictByType("agency_fee").then(fee => {
_this.agencyFeeList = fee.data.data _this.agencyFeeList = fee.data
//获取数据字典学费 //获取数据字典学费
getDictByType("tuition_fee").then(res => { getDictByType("tuition_fee").then(res => {
_this.tuitionFeeList = res.data.data _this.tuitionFeeList = res.data
getObj(this.dataForm.id).then(response => { getObj(this.dataForm.id).then(response => {
this.dataForm = response.data.data this.dataForm = response.data
this.dataForm.scorePhotoList=[]; this.dataForm.scorePhotoList=[];
this.dataForm.graPicList=[]; this.dataForm.graPicList=[];
this.dataForm.yyPicList=[]; this.dataForm.yyPicList=[];
@@ -865,7 +865,7 @@ export default {
} }
}); });
listByEdu({groupId: this.dataForm.groupId,degreeOfEducation:this.dataForm.degreeOfEducation}).then(e=>{ listByEdu({groupId: this.dataForm.groupId,degreeOfEducation:this.dataForm.degreeOfEducation}).then(e=>{
_this.planMajorList = e.data.data; _this.planMajorList = e.data;
if (1 != _this.dataForm.degreeOfEducation) { if (1 != _this.dataForm.degreeOfEducation) {
_this.gzAuditChange(); _this.gzAuditChange();
} }
@@ -888,12 +888,12 @@ export default {
}); });
//获取招生计划下的学校和分数线 //获取招生计划下的学校和分数线
scoreList({groupId:_this.dataForm.groupId}).then(data =>{ scoreList({groupId:_this.dataForm.groupId}).then(data =>{
_this.schoolCodeList = data.data.data; _this.schoolCodeList = data.data;
}); });
let areas = []; let areas = [];
//获取户口所在 省市区 //获取户口所在 省市区
areaList({type: 0}).then(data => { areaList({type: 0}).then(data => {
areas = data.data.data; areas = data.data;
//省 //省
let pid = ""; let pid = "";
areas.forEach(e=>{ areas.forEach(e=>{
@@ -1012,7 +1012,7 @@ export default {
this.sixMajorList=[]; this.sixMajorList=[];
this.sevenMajorList=[]; this.sevenMajorList=[];
listByEdu({groupId: this.dataForm.groupId,degreeOfEducation:this.dataForm.degreeOfEducation}).then(e=>{ listByEdu({groupId: this.dataForm.groupId,degreeOfEducation:this.dataForm.degreeOfEducation}).then(e=>{
_this.planMajorList = e.data.data; _this.planMajorList = e.data;
if (1 != _this.dataForm.degreeOfEducation) { if (1 != _this.dataForm.degreeOfEducation) {
_this.gzAuditChange(); _this.gzAuditChange();
} }
@@ -1043,14 +1043,14 @@ export default {
let _this = this; let _this = this;
//联系人(教职工) //联系人(教职工)
queryAllTeacher().then(res =>{ queryAllTeacher().then(res =>{
_this.contactNameList = res.data.data _this.contactNameList = res.data
}); });
//查询二级学院信息 //查询二级学院信息
getDeptList().then(data => { getDeptList().then(data => {
_this.deptList = data.data.data _this.deptList = data.data
}) })
list().then(data => { list().then(data => {
_this.planList = data.data.data _this.planList = data.data
}); });
@@ -1167,9 +1167,9 @@ export default {
} }
areaSonList({code: code}).then(data => { areaSonList({code: code}).then(data => {
if(type==1){ if(type==1){
this.areaCList = data.data.data; this.areaCList = data.data;
}else{ }else{
this.areaAList = data.data.data; this.areaAList = data.data;
} }
}); });
@@ -1188,9 +1188,9 @@ export default {
} }
areaSonList({code: code}).then(data => { areaSonList({code: code}).then(data => {
if(type==1){ if(type==1){
this.areaHCList = data.data.data; this.areaHCList = data.data;
}else{ }else{
this.areaHAList = data.data.data; this.areaHAList = data.data;
} }
}); });
}, },

View File

@@ -69,7 +69,7 @@ export default {
this.circleShow = true; this.circleShow = true;
this.$nextTick(() => { this.$nextTick(() => {
getTypeValue("dorm_jw").then(data=>{ getTypeValue("dorm_jw").then(data=>{
let arr = data.data.data; let arr = data.data;
arr.forEach(e=>{ arr.forEach(e=>{
if(e.label=='bj'){ if(e.label=='bj'){
_this.form.raidus=e.value; _this.form.raidus=e.value;

View File

@@ -110,7 +110,7 @@ export default {
methods: { methods: {
initDept() { initDept() {
getDeptList().then(data => { getDeptList().then(data => {
this.deptList = data.data.data this.deptList = data.data
}) })
}, },
@@ -141,13 +141,13 @@ export default {
}, },
initPlanGroup(){ initPlanGroup(){
list().then(data =>{ list().then(data =>{
this.planList = data.data.data this.planList = data.data
this.dataForm.groupId=this.planList[0].id; this.dataForm.groupId=this.planList[0].id;
}); });
}, },
getTableList(groupId){ getTableList(groupId){
dormApplyAnalysis({"groupId":groupId}).then(response => { dormApplyAnalysis({"groupId":groupId}).then(response => {
this.dataList = response.data.data this.dataList = response.data
}) })
} }

View File

@@ -78,8 +78,8 @@ const init = async () => {
list() list()
]) ])
deptCodes.value = deptResponse.data.data || [] deptCodes.value = deptResponse.data || []
planList.value = planData.data.data || [] planList.value = planData.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
@@ -96,11 +96,11 @@ const getDataList = async () => {
dataListLoading.value = true dataListLoading.value = true
dataList.value = [] dataList.value = []
const response = await inSchoolSocreStatic(queryForm) const response = await inSchoolSocreStatic(queryForm)
if (response.data.data && response.data.data.length > 0) { if (response.data && response.data.length > 0) {
response.data.data.forEach((e: any) => { response.data.forEach((e: any) => {
dataList.value.push(e.map) dataList.value.push(e.map)
}) })
headList.value = response.data.data[0].list || [] headList.value = response.data[0].list || []
} }
} catch (error) { } catch (error) {
console.error('获取数据失败', error) console.error('获取数据失败', error)

View File

@@ -699,7 +699,7 @@ export default {
if (query !== '') { if (query !== '') {
setTimeout(() => { setTimeout(() => {
queryTeacherBaseByNo(query).then(response => { queryTeacherBaseByNo(query).then(response => {
this.teacherList = response.data.data this.teacherList = response.data
}) })
}, 200); }, 200);
} }
@@ -910,22 +910,22 @@ export default {
init() { init() {
//查询二级学院信息 //查询二级学院信息
getDeptList().then(data => { getDeptList().then(data => {
this.deptList = data.data.data this.deptList = data.data
}) })
list().then(data => { list().then(data => {
this.planList = data.data.data this.planList = data.data
this.dataForm.groupId = this.planList[0].id; this.dataForm.groupId = this.planList[0].id;
this.getDataList() this.getDataList()
this.chanMajor() this.chanMajor()
}); });
getTypeValue('finance_student_source').then(res => { getTypeValue('finance_student_source').then(res => {
this.eduList = res.data.data this.eduList = res.data
}) })
//所有经办人 //所有经办人
getUserListByRole(ROLE_CODE.ROLE_RECRUIT_SECOND).then(res => { getUserListByRole(ROLE_CODE.ROLE_RECRUIT_SECOND).then(res => {
this.auditorList = res.data.data; this.auditorList = res.data;
getUserListByRole(ROLE_CODE.ROLE_RECRUIT).then(re => { getUserListByRole(ROLE_CODE.ROLE_RECRUIT).then(re => {
re.data.data.forEach(r => { re.data.forEach(r => {
this.auditorList.push(r) this.auditorList.push(r)
}); });
this.auditorList = this.unique(this.auditorList); this.auditorList = this.unique(this.auditorList);
@@ -949,7 +949,7 @@ export default {
chanMajor() { chanMajor() {
this.planMajorList = []; this.planMajorList = [];
planMajor({groupId: this.dataForm.groupId}).then(data => { planMajor({groupId: this.dataForm.groupId}).then(data => {
this.planMajorList = data.data.data; this.planMajorList = data.data;
}); });
}, },
handleFilter() { handleFilter() {
@@ -964,8 +964,8 @@ export default {
current: this.pageIndex, current: this.pageIndex,
size: this.pageSize size: this.pageSize
}, this.dataForm)).then(response => { }, this.dataForm)).then(response => {
this.dataList = response.data.data.records this.dataList = response.data.records
this.totalPage = response.data.data.total this.totalPage = response.data.total
}) })
this.dataListLoading = false this.dataListLoading = false
}, },
@@ -1065,7 +1065,7 @@ export default {
this.lqtzsShow = false; this.lqtzsShow = false;
} }
toWord(row).then(res => { toWord(row).then(res => {
this.pdfPath = "/recruit/file/previewPdf?filePath=" + encodeURIComponent(res.data.data); this.pdfPath = "/recruit/file/previewPdf?filePath=" + encodeURIComponent(res.data);
this.lqtzsVisible = true; this.lqtzsVisible = true;
}); });
}, },

View File

@@ -538,7 +538,7 @@ export default {
//查找所有班级 //查找所有班级
getClassData(){ getClassData(){
getClassListByRole().then(data=>{ getClassListByRole().then(data=>{
this.classList = data.data.data this.classList = data.data
}) })
}, },
sendImg(){ sendImg(){
@@ -765,23 +765,23 @@ export default {
init(){ init(){
//查询二级学院信息 //查询二级学院信息
getDeptList().then(data => { getDeptList().then(data => {
this.deptList = data.data.data this.deptList = data.data
}) })
this.getClassData(); this.getClassData();
list().then(data =>{ list().then(data =>{
this.planList = data.data.data this.planList = data.data
this.dataForm.groupId=this.planList[0].id; this.dataForm.groupId=this.planList[0].id;
this.getDataList() this.getDataList()
this.chanMajor() this.chanMajor()
}); });
getTypeValue('finance_student_source').then(res=>{ getTypeValue('finance_student_source').then(res=>{
this.eduList=res.data.data this.eduList=res.data
}) })
//所有经办人 //所有经办人
getUserListByRole(ROLE_CODE.ROLE_RECRUIT_SECOND).then(res=>{ getUserListByRole(ROLE_CODE.ROLE_RECRUIT_SECOND).then(res=>{
this.auditorList = res.data.data; this.auditorList = res.data;
getUserListByRole(ROLE_CODE.ROLE_RECRUIT).then(re=>{ getUserListByRole(ROLE_CODE.ROLE_RECRUIT).then(re=>{
re.data.data.forEach(r=>{ re.data.forEach(r=>{
this.auditorList.push(r) this.auditorList.push(r)
}); });
this.auditorList = this.unique(this.auditorList); this.auditorList = this.unique(this.auditorList);
@@ -805,7 +805,7 @@ export default {
chanMajor(){ chanMajor(){
this.planMajorList=[]; this.planMajorList=[];
planMajor({groupId: this.dataForm.groupId}).then(data =>{ planMajor({groupId: this.dataForm.groupId}).then(data =>{
this.planMajorList = data.data.data; this.planMajorList = data.data;
}); });
}, },
handleFilter(){ handleFilter(){
@@ -821,8 +821,8 @@ export default {
current: this.pageIndex, current: this.pageIndex,
size: this.pageSize size: this.pageSize
},this.dataForm)).then(response => { },this.dataForm)).then(response => {
this.dataList = response.data.data.records this.dataList = response.data.records
this.totalPage = response.data.data.total this.totalPage = response.data.total
}) })
this.dataListLoading = false this.dataListLoading = false
}, },
@@ -840,7 +840,7 @@ export default {
changeclass(row){ changeclass(row){
this.changeClassList=[]; this.changeClassList=[];
getMajorClass(row).then(response => { getMajorClass(row).then(response => {
this.changeClassList = response.data.data this.changeClassList = response.data
this.changeClassVisible = true this.changeClassVisible = true
this.changeForm.id=row.id; this.changeForm.id=row.id;
@@ -964,7 +964,7 @@ export default {
this.lqtzsShow = false; this.lqtzsShow = false;
} }
toWord(row).then(res=>{ toWord(row).then(res=>{
this.pdfPath = "/recruit/file/previewPdf?filePath="+encodeURIComponent(res.data.data); this.pdfPath = "/recruit/file/previewPdf?filePath="+encodeURIComponent(res.data);
this.lqtzsVisible = true; this.lqtzsVisible = true;
}); });
}, },

View File

@@ -113,9 +113,9 @@ const init = async () => {
list() list()
]) ])
deptCodes.value = deptResponse.data.data || [] deptCodes.value = deptResponse.data || []
majorYears.value = majorYearsRes.data.data || [] majorYears.value = majorYearsRes.data || []
planList.value = planData.data.data || [] planList.value = planData.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
@@ -132,7 +132,7 @@ const getDataList = async () => {
dataListLoading.value = true dataListLoading.value = true
dataList.value = [] dataList.value = []
const response = await juniorlneStatic(queryForm) const response = await juniorlneStatic(queryForm)
dataList.value = response.data.data || [] dataList.value = response.data || []
} catch (error) { } catch (error) {
console.error('获取数据失败', error) console.error('获取数据失败', error)
} finally { } finally {

View File

@@ -356,8 +356,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchListStuDorm(params) const response = await fetchListStuDorm(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
}, },
@@ -372,11 +372,11 @@ const init = async () => {
try { try {
// 查询二级学院信息 // 查询二级学院信息
const deptData = await getDeptList() const deptData = await getDeptList()
deptList.value = deptData.data.data || [] deptList.value = deptData.data || []
// 获取招生计划列表 // 获取招生计划列表
const planData = await list() const planData = await list()
planList.value = planData.data.data || [] planList.value = planData.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
} }

View File

@@ -238,12 +238,12 @@ export default {
if (this.dataForm.id) { if (this.dataForm.id) {
//获取数据字典代办费 //获取数据字典代办费
getDictByType("agency_fee").then(res => { getDictByType("agency_fee").then(res => {
_this.agencyFeeList = res.data.data _this.agencyFeeList = res.data
//获取数据字典学费 //获取数据字典学费
getDictByType("tuition_fee").then(res => { getDictByType("tuition_fee").then(res => {
_this.tuitionFeeList = res.data.data _this.tuitionFeeList = res.data
getObj(this.dataForm.id).then(response => { getObj(this.dataForm.id).then(response => {
this.dataForm = response.data.data this.dataForm = response.data
this.title = this.dataForm.serialNumber this.title = this.dataForm.serialNumber
//获取文化程度对应的专业 //获取文化程度对应的专业
this.planMajorList=[]; this.planMajorList=[];
@@ -259,11 +259,11 @@ export default {
} }
}); });
listByEdu({groupId: this.dataForm.groupId,degreeOfEducation:this.dataForm.degreeOfEducation}).then(e=>{ listByEdu({groupId: this.dataForm.groupId,degreeOfEducation:this.dataForm.degreeOfEducation}).then(e=>{
_this.planMajorList = e.data.data; _this.planMajorList = e.data;
}); });
//获取招生计划下的学校和分数线 //获取招生计划下的学校和分数线
scoreList({groupId:_this.dataForm.groupId}).then(data =>{ scoreList({groupId:_this.dataForm.groupId}).then(data =>{
_this.schoolCodeList = data.data.data; _this.schoolCodeList = data.data;
}); });
if ("1" == this.dataForm.degreeOfEducation) { if ("1" == this.dataForm.degreeOfEducation) {
@@ -291,7 +291,7 @@ export default {
initData() { initData() {
let _this = this; let _this = this;
list().then(data => { list().then(data => {
_this.planList = data.data.data _this.planList = data.data
}); });
}, },
changeCM(id){ changeCM(id){

View File

@@ -339,7 +339,7 @@ const getDataList = async () => {
dataList.value = [] dataList.value = []
indexArray.value = [] indexArray.value = []
const response = await schoolAreaStatic(queryForm) const response = await schoolAreaStatic(queryForm)
dataList.value = response.data.data || [] dataList.value = response.data || []
// 计算合并单元格的索引 // 计算合并单元格的索引
let count = 0 let count = 0

View File

@@ -73,7 +73,7 @@ const { tableStyle, downBlobFile } = useTable()
const init = async () => { const init = async () => {
try { try {
const data = await list() const data = await list()
planList.value = data.data.data || [] planList.value = data.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
getDataList() getDataList()
@@ -90,7 +90,7 @@ const getDataList = async () => {
dataList.value = [] dataList.value = []
indexArray.value = [] indexArray.value = []
const response = await getSchoolStatic(queryForm) const response = await getSchoolStatic(queryForm)
dataList.value = response.data.data || [] dataList.value = response.data || []
} catch (error) { } catch (error) {
console.error('获取数据失败', error) console.error('获取数据失败', error)
} finally { } finally {

View File

@@ -64,7 +64,7 @@ export default {
this.form.homeAddressDetail = row.homeAddressDetail; this.form.homeAddressDetail = row.homeAddressDetail;
this.$nextTick(() => { this.$nextTick(() => {
getTypeValue("dorm_jw").then(data => { getTypeValue("dorm_jw").then(data => {
let arr = data.data.data; let arr = data.data;
arr.forEach(e => { arr.forEach(e => {
if (e.label == 'bj') { if (e.label == 'bj') {
_this.form.raidus = e.value; _this.form.raidus = e.value;

View File

@@ -92,8 +92,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchListByStatic(params) const response = await fetchListByStatic(params)
return { return {
data: { data: {
records: response.data.data || [], records: response.data || [],
total: response.data.data?.length || 0 total: response.data?.length || 0
} }
} }
}, },
@@ -108,7 +108,7 @@ const init = async () => {
try { try {
// 查询二级学院信息 // 查询二级学院信息
const deptData = await getDeptList() const deptData = await getDeptList()
deptList.value = deptData.data.data || [] deptList.value = deptData.data || []
deptList.value.push({ deptCode: '小计(高中/职技校)', deptName: '小计(高中/职技校)' }) deptList.value.push({ deptCode: '小计(高中/职技校)', deptName: '小计(高中/职技校)' })
deptList.value.push({ deptCode: '小计(初中)', deptName: '小计(初中)' }) deptList.value.push({ deptCode: '小计(初中)', deptName: '小计(初中)' })
deptList.value.push({ deptCode: '小计(初中_联院大专)', deptName: '小计(初中_联院大专)' }) deptList.value.push({ deptCode: '小计(初中_联院大专)', deptName: '小计(初中_联院大专)' })
@@ -116,7 +116,7 @@ const init = async () => {
// 获取招生计划列表 // 获取招生计划列表
const planData = await list() const planData = await list()
planList.value = planData.data.data || [] planList.value = planData.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
getDataList() getDataList()
@@ -125,7 +125,7 @@ const init = async () => {
// 获取字典数据 // 获取字典数据
const eduRes = await getTypeValue('education_type') const eduRes = await getTypeValue('education_type')
eduList.value = eduRes.data.data || [] eduList.value = eduRes.data || []
} catch (error) { } catch (error) {
console.error('初始化失败', error) console.error('初始化失败', error)
} }
@@ -149,7 +149,7 @@ const chanMajor = async () => {
planMajorList.value = [] planMajorList.value = []
if (queryForm.groupId) { if (queryForm.groupId) {
const data = await planMajor({ groupId: queryForm.groupId }) const data = await planMajor({ groupId: queryForm.groupId })
planMajorList.value = data.data.data || [] planMajorList.value = data.data || []
} }
} catch (error) { } catch (error) {
console.error('获取专业列表失败', error) console.error('获取专业列表失败', error)

View File

@@ -359,7 +359,7 @@ export default {
this.houseList=[]; this.houseList=[];
this.sbPicList=[]; this.sbPicList=[];
this.hkPicList=[]; this.hkPicList=[];
this.dataForm = response.data.data this.dataForm = response.data
this.title = this.dataForm.serialNumber this.title = this.dataForm.serialNumber
if(this.dataForm.scorePhoto !=''){ if(this.dataForm.scorePhoto !=''){
let obj={url:this.dataForm.scorePhoto,name:""}; let obj={url:this.dataForm.scorePhoto,name:""};
@@ -549,11 +549,11 @@ export default {
initData() { initData() {
let _this = this; let _this = this;
list().then(data => { list().then(data => {
_this.planList = data.data.data _this.planList = data.data
}); });
//联系人(教职工) //联系人(教职工)
queryAllTeacher().then(res =>{ queryAllTeacher().then(res =>{
_this.contactNameList = res.data.data _this.contactNameList = res.data
}); });
}, },
// 表单提交 // 表单提交

View File

@@ -233,8 +233,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
}, },
@@ -248,7 +248,7 @@ const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle } = useTa
const init = async () => { const init = async () => {
try { try {
const data = await list() const data = await list()
planList.value = data.data.data || [] planList.value = data.data || []
if (planList.value.length > 0) { if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id queryForm.groupId = planList.value[0].id
} }

View File

@@ -67,8 +67,8 @@
current: page.currentPage, current: page.currentPage,
size: page.pageSize size: page.pageSize
}, this.params)).then(response => { }, this.params)).then(response => {
this.tableData = response.data.data.records this.tableData = response.data.records
this.page.total = response.data.data.total this.page.total = response.data.total
this.tableLoading = false this.tableLoading = false
}) })
}, },

View File

@@ -201,8 +201,8 @@ const state: BasicTableProps = reactive<BasicTableProps>({
const response = await fetchList(params) const response = await fetchList(params)
return { return {
data: { data: {
records: response.data.data.records, records: response.data.records,
total: response.data.data.total total: response.data.total
} }
} }
} }