This commit is contained in:
gjz 2025-02-20 16:50:00 +08:00
parent c851395470
commit 1ae53262d3
9 changed files with 232 additions and 83 deletions

View File

@ -1,5 +1,11 @@
import axios from "@/utils/http/index"
export function getTeacherSelectList(params) {
return axios({
url: 'api/Teacher/GetTeacherSelectList',
params
})
}
/**
* 获取学院列表

View File

@ -5,14 +5,17 @@
<el-col :span="5" style="margin-right: 20px">
<el-input ref="sIpt" placeholder="姓名" v-model.trim="queryform.Name" @input="selectName1"
:prefix-icon="Search" clearable />
</el-col>
<el-col :span="5" style="margin-right: 20px">
<el-input ref="sIpt" placeholder="工号" v-model.trim="queryform.Number" @input="selectName1"
:prefix-icon="Search" clearable />
</el-col>
<el-select v-model="queryform.expertType" placeholder="类型" clearable @change="selectName1">
<el-option key="1" label="校内" value="1" />
<el-option key="2" label="校外" value="2" />
<el-option key="3" label="政府机关" value="3" />
<el-option key="4" label="高校" value="4" />
</el-select>
<!-- <el-col :span="5" style="margin-right: 20px">
<el-select v-model="queryform.CollegeId" @change="selectlxx" placeholder="所在学院" clearable
filterable>
@ -54,10 +57,13 @@
</el-table-column>
<el-table-column prop="Number" align="center" label="工号">
</el-table-column>
<el-table-column prop="CollegeName" align="center" label="所在学院">
</el-table-column>
<el-table-column prop="Title" align="center" label="职称">
</el-table-column>
<el-table-column prop="ExpertType" align="center" label="类型">
<template v-slot="scope">
{{ translateValue(scope.row.ExpertType) }}
</template>
</el-table-column>
</el-table>
</div>
@ -203,7 +209,19 @@ export default {
translateValue(value) {
switch(value) {
case 1:
return "校内";
case 2:
return "校外";
case 3:
return "政府机关";
case 4:
return "高校";
}
},
singleElection(row, column, event) {
if (event.target.tagName === 'INPUT') {
return;
@ -271,25 +289,18 @@ export default {
if (this.pageobj.disabled) return;
this.pageobj.pageNum++;
let params = {
oldTotal: this.pageobj.oldTotal,
oldCurrent: this.pageobj.oldCurrent,
pageSize: this.pageobj.pageSize,
pageNum: this.pageobj.pageNum,
Name: vm.queryform.Name ? vm.queryform.Name : "",
Number: vm.queryform.Number ? vm.queryform.Number : "",
Type: vm.queryform.Type ? vm.queryform.Type : 0,
CollegeId: 1,
Status: "",
SchoolId: "",
expertType: vm.queryform.expertType ? vm.queryform.expertType : "0",
};
// url: '/api/Teacher/GetTeacherSelectList',
axios({
url: '/api/Teacher',
url: '/api/Teacher/GetTeacherSelectList',
params
}).then((res) => {
// debugger;
let data1 = res;
if (data1) {
this.maintainList = res;
/* if (data1) {
if (data1.length > 0) {
this.pageobj.Total = data1[0].total;
@ -318,7 +329,7 @@ export default {
message: data1.Message.Inform,
type: 'error'
});
}
} */
})
.catch((err) => {

View File

@ -867,6 +867,9 @@ export default {
// console.log(err);
}
}
options.startTime = this.queryform.timerange[0]
options.endTime = this.queryform.timerange[1]
vm.getClassStuAtten(options);
} catch (err) {
// console.log(err);

View File

@ -1113,11 +1113,12 @@ export default {
//
getStuTotalInfo() {
// debugger
this.timerange = this.timerange == null ? [] :this.timerange;
let params = {
studentNumber: this.studentNumber,
courceId: this.courseNum || 0,
startTime: this.timerange[0] || "",
endTime: this.timerange[1] || "",
startTime: this.timerange[0] == undefined ? '' :this.timerange[0],
endTime: this.timerange[1] == undefined ? '' :this.timerange[1],
month: this.monthNum,
week: this.weekNum,
Signal: 1,

View File

@ -19,8 +19,13 @@
<div class="seachbox">
<el-input class="ml-5 seachbox_input" v-model.trim="queryParams.clname" placeholder="请输入班级名称"
clearable size="small" />
<el-button type="primary" @click="getclassinfoDatainfo(pageobj.pageNum)" class="seachboxadd">
clearable/>
<!-- <el-select v-model="queryParams.isValid" filterable placeholder="是否在培训期内">
<el-option key="1" label="在培训期内" value="1"></el-option>
<el-option key="-1" label="已过培训期" value="-1"></el-option>
<el-option key="0" label="全部" value="0"></el-option>
</el-select> -->
<el-button type="primary" @click="getclassinfoDatainfo(1)" class="seachboxadd" style="margin-left: 10px;">
搜索
</el-button>
@ -30,7 +35,7 @@
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column prop="Name" label="班级名称" align="center">
</el-table-column>
<el-table-column prop="HeadTeacherNum" label="教师" align="center">
<el-table-column prop="CounselorsNumber" label="教师" align="center">
</el-table-column>
<el-table-column prop="TrainingStartTime" align="center" label="培训开始时间">
</el-table-column>
@ -167,9 +172,16 @@
value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item label="教师" prop="TeacherName">
<el-input v-model="formItem.TeacherName" readonly placeholder="请选择教师" @click="modelteacher"
autocomplete="off"></el-input>
<el-form-item label="教师" prop="counselorsNumber">
<!-- <el-input v-model="formItem.TeacherName" readonly placeholder="请选择教师" @click="modelteacher"
autocomplete="off"></el-input> -->
<el-select ref="itemSelectclass" filterable multiple v-model="formItem.counselorsNumber"
placeholder="教师" clearable @change="handleChange">
<el-option v-for="item in NewClassList" :key="item.Number" :label="item.Name+'('+item.Number+')'"
:value="item.Number">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="ClassRemark">
<el-input v-model.trim="formItem.ClassRemark" placeholder=""
@ -240,7 +252,7 @@
<el-dialog title="选择教师" v-model="teachershow" center draggable destroy-on-close>
<teacher-select @funval="numberval" :showteacherselect="showteacherselect"
:activwshow="activwshow"></teacher-select>
:activwshow="activwshow" :message="formItem.CounselorsNumber"></teacher-select>
</el-dialog>
</div>
</template>
@ -250,7 +262,7 @@
import E from 'wangeditor';
import { getDefaultTime } from "@/utils/common.js"
import teacherSelect from "@/components/teacherselect.vue";
import { getclassinfoData, getCourseinfoData, delClassinfo, delCourseinfo, getStudentlevel, postClassInfoAddinfo, postClassInfoeditinfo, getClassInfodetail, postCourseInfoAddinfo, postCourseInfoeditinfo, getCourseInfodetail } from "@/api/collegeinformation.js";
import { getTeacherSelectList,getclassinfoData, getCourseinfoData, delClassinfo, delCourseinfo, getStudentlevel, postClassInfoAddinfo, postClassInfoeditinfo, getClassInfodetail, postCourseInfoAddinfo, postCourseInfoeditinfo, getCourseInfodetail } from "@/api/collegeinformation.js";
export default {
name: "classandcourse",
components: {
@ -262,6 +274,7 @@ export default {
},
data() {
return {
NewClassList: [],
activwshow: 0,
teachershow: false,
showteacherselect: false,
@ -273,6 +286,7 @@ export default {
queryParams: {
clname: '',
isValid: '1',
coursename: '',
type: 0,
},
@ -324,9 +338,6 @@ export default {
{ required: true, message: '请输入班级名称', trigger: 'blur' },
//{ min: 3, max: 5, message: ' 3 5 ', trigger: 'blur' }
],
TeacherName: [
{ required: true, message: '请选择教师', trigger: 'blur' },
],
TrainingStartTime: [
{ required: true, message: '请选择培训开始时间', trigger: 'blur' },
],
@ -378,10 +389,21 @@ export default {
},
numberval(data) {
//
// debugger;
this.formItem.TeacherName = data.Name;//
this.formItem.TeacherNumber = data.Number;//
this.teachershow = false;
let teacherNames = [];
let teacherNumbers = [];
data.forEach(teacher => {
teacherNames.push(teacher.Name);
teacherNumbers.push(teacher.Number);
});
teacherNames = teacherNames.join(','),
teacherNumbers = teacherNumbers.join(',')
this.formItem.TeacherName = teacherNames;//
this.formItem.TeacherNumber = teacherNumbers;//
//this.teachershow = false;
},
classmajorList() {
this.getlevemajorList(this.formItem.collegeId, "c");
@ -488,7 +510,7 @@ export default {
this.isedit1 = true;
this.drawerform1 = true;
this.getlevecolegelist();//
this.getclinfodetail(info.ClassInfoId,info.HeadTeacherNum);
this.getclinfodetail(info.ClassInfoId,info.CounselorsNumber);
this.drawerformtitle1 = '编辑班级信息';
@ -569,9 +591,9 @@ export default {
TrainingStartTime:data.TrainingStartTime,
TrainingEndTime:data.TrainingEndTime,
TeacherName:HeadTeacherNum,
HeadTeacherNum:data.HeadTeacherNum
HeadTeacherNum:data.HeadTeacherNum,
counselorsNumber:data.CounselorsNumber == undefined ? '' : data.CounselorsNumber.replace(/"([^"]*)"/, '$1').split(',')
};
})
.catch((err) => {
this.$message({
@ -597,7 +619,8 @@ export default {
TeacherName:this.formItem.TeacherName,
ClassRemark:this.formItem.ClassRemark,
ClassinfoGrade: '1',//this.formItem.ClassinfoGrade
HeadTeacherNum: this.formItem.TeacherNumber
HeadTeacherNum:'',
counselorsNumber:this.formItem.CounselorsNumber == undefined ? '' : this.formItem.counselorsNumber.join(',')
};
postClassInfoAddinfo(datas).then((res) => {
@ -659,6 +682,16 @@ export default {
message: '输入的辅导员工号不正确',
type: 'error'
});
} else if (data == 11) {
this.$message({
message: '培训开始日期为空或输入不正确',
type: 'error'
});
} else if (data == 12) {
this.$message({
message: '培训结束日期为空或输入不正确',
type: 'error'
});
} else {
this.$message({
message: '新增失败',
@ -699,7 +732,9 @@ export default {
MajorId: 1,
CounselorNum: '',
HeadTeacherNum: this.formItem.HeadTeacherNum
HeadTeacherNum: '',
counselorsNumber: this.formItem.counselorsNumber.join(',')
};
console.log(datas);
@ -761,6 +796,16 @@ export default {
message: '班级ID错误',
type: 'error'
});
} else if (data == 11) {
this.$message({
message: '培训开始日期为空或输入不正确',
type: 'error'
});
} else if (data == 12) {
this.$message({
message: '培训结束日期为空或输入不正确',
type: 'error'
});
} else {
this.$message({
message: '修改失败',
@ -1006,7 +1051,6 @@ export default {
// console.log(err);
});
},
// table
getclassinfoDatainfo(pageNum) {
// debugger
@ -1017,8 +1061,8 @@ export default {
pageSize: this.pageobj.pageSize,
pageNum: pageNum,
classname: this.queryParams.clname,
isValid: this.queryParams.isValid,
majorname: '培训班',
}).then((res) => {
let data = res;
if (data.length > 0) {
@ -1069,8 +1113,12 @@ export default {
});
});
},
handleChange() {
if (this.formItem.counselorsNumber.length > 3) {
this.formItem.counselorsNumber.pop();
this.$message.warning('最多只能选择3名教师');
}
}
},
//
@ -1088,6 +1136,14 @@ export default {
}
this.getclassinfoDatainfo(1);//
getTeacherSelectList({
Name:'',
Number:'',
expertType:'0'
}).then((res) => {
this.NewClassList = res
})
},
activated() {
},

View File

@ -24,6 +24,8 @@
style="width:200px; margin:0px 10px 0px 0px "></el-input>
<el-input v-model.trim="queryParams.num" placeholder="教师工号" clearable size="small"
style="width:200px; margin:0px 10px 0px 0px "></el-input>
<!-- <el-input v-model.trim="queryParams.num" placeholder="班级" clearable size="small"
style="width:200px; margin:0px 10px 0px 0px "></el-input> -->
<!-- 课程名检索 -->
<el-select v-model="queryParams.coursevalue" filterable placeholder="课程名" clearable size="small"
class="ml-5 seachbox_input">
@ -59,7 +61,7 @@
</el-table-column>
<el-table-column prop="ClassroomName" align="left" label="教室">
</el-table-column>
<el-table-column prop="weeksAndWeekday" align="center" label="节次">
<el-table-column prop="weeksAndWeekday" align="center" label="时间">
<template v-slot="scope">
<span>{{ scope.row.ScheduleName }}</span>
</template>
@ -212,6 +214,9 @@ export default {
term: semesterNum1 === "全部学期" ? "" : semesterNum1,
}).then((res) => {
let data = res;
if (data == null){
data = []
}
if (data.length > 0) {
this.pageobj.Total = data[0].total;
} else {

View File

@ -28,6 +28,8 @@
</el-select>
<el-input v-model.trim="queryParams.sname" placeholder="姓名" clearable class="ml-5 seachbox_input"
size="small" style="margin:0px 20px 0px 0px"></el-input>
<el-input v-model.trim="queryParams.phone" placeholder="电话" clearable class="ml-5 seachbox_input"
size="small" style="margin:0px 20px 0px 0px"></el-input>
<!-- <el-input v-model.trim="queryParams.Phone" placeholder="电话" class="ml-5 seachbox_input" size="small"
style="margin:0px 20px 0px 0px" clearable></el-input> -->
<el-button class="ml-5" type="primary" @click="gettableinfo(1)">搜索</el-button>
@ -100,11 +102,11 @@
:value="item.value" />
</el-select>
<div class="uploadanniubox">
<el-button :icon="Search" type="success"
<el-button :disabled="!classId" :icon="Search" type="success"
@click.native="$refs.studentList.click()">导入学生信息</el-button>
</div>
<div class="xiazaiuploadbox">
<a :href="urlStr1 + '/template/学生信息模板.xls'" style="color: #409EFF;display: block"
<a :href="urlStr1 + '/template/学生信息模板.xls' + '?' + Math.random()" style="color: #409EFF;display: block"
download="filename">
<p slot="title" style="margin: 16px">
<Icon type="ios-download-outline"></Icon>
@ -133,13 +135,20 @@
<el-form-item label="姓名" prop="Name">
<el-input v-model.trim="formItem.Name" placeholder="请输入姓名" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="班级" prop="classId">
<el-select v-model="formItem.classId" placeholder="请选择班级" filterable clearable
class="ml-5 seachbox_input" style="width: 100%;">
<el-option v-for="item in classList1" :key="item.name" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-select v-model="formItem.sex" placeholder="请选择性别" clearable>
<el-select v-model="formItem.sex" placeholder="请选择性别" clearable style="width: 100%;">
<el-option key="1" label="男" value="1" />
<el-option key="2" label="女" value="2" />
</el-select>
</el-form-item>
<el-form-item label="单位">
<el-form-item label="单位" prop="enterprise">
<el-input v-model.trim="formItem.enterprise" placeholder="请输入单位" autocomplete="off"></el-input>
</el-form-item>
<!-- <el-form-item label="学号" prop="Num">
@ -176,16 +185,9 @@
:value="item.value" />
</el-select>
</el-form-item> -->
<el-form-item label="班级" prop="classId">
<el-select v-model="formItem.classId" placeholder="请选择班级" filterable clearable
class="ml-5 seachbox_input" style="width: 100%;">
<el-option v-for="item in classList1" :key="item.name" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<p slot="title" style="color: #1ea0ff;border-left: 2px solid #1ea0ff;padding-left: 8px;">联系方式</p>
<el-form-item label="电话" prop="Phone">
<el-input v-model.trim="formItem.Phone" placeholder="请输入电话" autocomplete="off"></el-input>
<el-input v-model.trim="formItem.Phone" placeholder="请输入电话" autocomplete="off" :disabled="isedit"></el-input>
</el-form-item>
<!-- <el-form-item label="QQ号" prop="QQ">
<el-input v-model.trim="formItem.QQ" placeholder="请输入QQ号" autocomplete="off"></el-input>
@ -358,8 +360,29 @@ export default {
});
} else {
const datas = data.split('');
const column = datas[1].match(/\d+/)[0];
let columnValue;
switch (parseInt(column)) {
case 2:
columnValue = "班级名称";
break;
case 3:
columnValue = "姓名";
break;
case 4:
columnValue = "性别";
break;
case 5:
columnValue = "电话";
break;
case 6:
columnValue = "单位";
break;
}
this.$message({
message: '导入失败,错误状态' + data,
message: '导入失败,' + data + '(' + columnValue + ')数据错误或重复',
type: 'error'
});
@ -554,7 +577,7 @@ export default {
MajorId: this.queryParams.majorId,
CollegeId: this.queryParams.collegeId,
SchoolId: '',
Phone: this.queryParams.phone,
}).then((res) => {
let data = res;
if (data.length > 0) {
@ -679,6 +702,11 @@ export default {
message: '学制不能为空',
type: 'error'
});
} else if (data == 13) {
this.$message({
message: '手机号已存在',
type: 'error'
});
}
})
@ -766,6 +794,11 @@ export default {
message: '学制不能为空',
type: 'error'
});
} else if (data == 13) {
this.$message({
message: '手机号已存在',
type: 'error'
});
}
})
.catch((err) => {

View File

@ -153,7 +153,7 @@
</el-select>
</el-form-item>
<!-- 新增__按钮--添加专业班级 -->
<el-form-item label="添加班级" prop="MajorClass">
<el-form-item label="班级" prop="ClassCode">
<!-- <el-button type="primary" round @click="Newbox"><el-icon size="20">
<Plus />
</el-icon> </el-button> -->
@ -164,26 +164,19 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="校内/外教师" prop="xnw">
<!-- 新增__教师姓名 -->
<el-form-item label="教师姓名" prop="TeacherName">
<el-input v-model="formItem.TeacherName" readonly placeholder="请选择教师" @click="modelteacher"
autocomplete="off"></el-input>
</el-form-item>
<!-- <el-form-item label="校内/外教师" prop="xnw">
<el-radio-group v-model="IsOutSide" @change="handleChange">
<el-radio label="1">校内</el-radio>
<el-radio label="2">校外</el-radio>
</el-radio-group>
</el-form-item>
<!-- 新增__教师姓名 -->
<el-form-item label="教师姓名" prop="TeacherName">
<!-- <el-select v-model="formItem.TeacherNumber" placeholder="教师姓名" clearable size="small"
class="ml-5 seachbox_input">
<el-option v-for="item in TeacherNameList" :key="item.Number" :label="item.Name"
:value="item.Number">{{ item.Name }}({{ item.Number }})</el-option>>
</el-select> -->
<el-input v-if="IsOutSide==2" v-model="formItem.TeacherName" placeholder="请选择教师"
autocomplete="off"></el-input>
<el-input v-else v-model="formItem.TeacherName" readonly placeholder="请选择教师" @click="modelteacher"
autocomplete="off"></el-input>
</el-form-item>
</el-form-item> -->
<el-form-item label="职称" prop="TeacherTitle">
<el-input v-model="formItem.TeacherTitle" placeholder="请输入职称" autocomplete="off"></el-input>
<el-input v-model="formItem.TeacherTitle" placeholder="请输入职称" autocomplete="off" disabled></el-input>
</el-form-item>
<!-- 新增__周次
<el-form-item label="请选择周次" prop="Weeks">
@ -627,8 +620,41 @@ export default {
});
} else {
const datas = data.split('');
const column = datas[1].match(/\d+/)[0];
let columnValue;
switch (parseInt(column)) {
case 2:
columnValue = "日期";
break;
case 3:
columnValue = "时间";
break;
case 4:
columnValue = "教室名称";
break;
case 5:
columnValue = "班级名称";
break;
case 6:
columnValue = "课程名称";
break;
case 7:
columnValue = "授课教师";
break;
case 8:
columnValue = "教师职称";
break;
case 9:
columnValue = "是否校外教师";
break;
case 19:
columnValue = "教学形式";
break;
}
this.$message({
message: '导入失败,错误状态' + data,
message: '导入失败,' + data + '(' + columnValue + ')数据错误',
type: 'error'
});
@ -1119,6 +1145,7 @@ export default {
setTimeout(() => {
// debugger
this.$data.formItem = JSON.parse(JSON.stringify(this.$options.data().formItem));
this.$data.classformItem = JSON.parse(JSON.stringify(this.$options.data().classformItem));
this.$refs['ruleForm'].resetFields();
this.defaultValues();//
//
@ -1397,7 +1424,6 @@ export default {
TimeInterval:0,
TeachingForm:0
};
debugger
postaddinfo(datas).then((res) => {
let data = res;
if (data == 1) {
@ -1744,6 +1770,7 @@ export default {
this.AddInitialization();
this.zhaunclasslist = [];
this.$refs[formName].resetFields();
this.classformItem.ClassCode = ''
},
editresetForm(formName) {

View File

@ -9,11 +9,18 @@
<div class="seachbox">
<el-input v-model.trim="queryParams.nname" placeholder="姓名" clearable class="ml-5 seachbox_input"
size="small" style="margin:0rem 1.25rem 0rem 0rem"></el-input>
<el-input v-model.trim="queryParams.num" placeholder="工号" class="ml-5 seachbox_input" size="small"
style="margin:0rem 1.25rem 0rem 0rem"></el-input>
<el-input v-model.trim="queryParams.num" placeholder="工号" class="ml-5 seachbox_input"
style="margin:0rem 1.25rem 0rem 0rem" clearable></el-input>
<!-- <el-input v-model.trim="queryParams.num" placeholder="Leixing" class="ml-5 seachbox_input" size="small"
style="margin:0rem 1.25rem 0rem 0rem" clearable></el-input> -->
<el-select v-model="queryParams.expertType" placeholder="类型" clearable>
<el-option key="0" label="全部" value="0" />
<el-option key="1" label="校内" value="1" />
<el-option key="2" label="校外" value="2" />
<el-option key="3" label="政府机关" value="3" />
<el-option key="4" label="高校" value="4" />
</el-select>
<!-- <el-select ref="itemSelectcollege" v-model="queryParams.type" placeholder="类型" filterable clearable
size="small" class="ml-5 seachbox_input">
<el-option v-for="item in typeList" placeholder="类型" :key="item.value" :label="item.name"
@ -30,7 +37,7 @@
<el-option v-for="item in statusList" placeholder="状态" :key="item.value" :label="item.name"
:value="item.value" />
</el-select> -->
<el-button class="ml-5" type="primary" @click="getTeacherdatainfo(1)">搜索</el-button>
<el-button class="ml-5" type="primary" @click="getTeacherdatainfo(1)" style="margin-left: 10px;">搜索</el-button>
</div>
<div class="seachbox">
<el-button type="success" @click="addbox" class="seachboxadd">
@ -391,7 +398,7 @@ export default {
Status: this.queryParams.status || "",
SchoolId: this.schoolId || "",
CollegeId: this.queryParams.collegeId || "",
ExpertType: this.queryParams.expertType || 0
}).then((res) => {
let data = res;
if (data.length > 0) {