|
@@ -5,14 +5,16 @@
|
|
|
:visible.sync="dialogType" v-if="dialogType" width="1373px">
|
|
|
<!--提交界面-->
|
|
|
<el-form class="add-dialog-form-box" ref="dialogForm" v-show="!dialogUserType" :model="dialogForm" :rules="rules" label-width="120px">
|
|
|
- <el-form-item label="课程名称:" prop="data1">
|
|
|
- <el-input v-model="dialogForm.data1" placeholder="请输入课程名称" maxLength="15" style="width:800px;"/>
|
|
|
+ <el-form-item label="课程名称:" prop="courseName">
|
|
|
+ <el-input v-model="dialogForm.courseName" placeholder="请输入课程名称"
|
|
|
+ maxLength="30" style="width:800px;"/>
|
|
|
</el-form-item>
|
|
|
<div class="dialogFormFlex">
|
|
|
- <el-form-item label="主讲老师:" prop="data2">
|
|
|
+ <el-form-item label="主讲老师:" prop="lecturerId">
|
|
|
<el-select
|
|
|
+ @change="lecturerIdChange"
|
|
|
style="width:300px;"
|
|
|
- v-model="dialogForm.data2"
|
|
|
+ v-model="dialogForm.lecturerId"
|
|
|
filterable
|
|
|
remote
|
|
|
reserve-keyword
|
|
@@ -21,66 +23,76 @@
|
|
|
:loading="loading">
|
|
|
<el-option
|
|
|
v-for="item in mainTeacherOptions"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.label">
|
|
|
+ :key="item.userId"
|
|
|
+ :label="item.nickName"
|
|
|
+ :value="item.userId">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="辅导老师:" prop="data3" label-width="200px">
|
|
|
+ <el-form-item label="辅导老师:" prop="tutorId" label-width="200px">
|
|
|
<el-select
|
|
|
style="width:300px;"
|
|
|
- v-model="dialogForm.data3"
|
|
|
+ v-model="dialogForm.tutorId"
|
|
|
multiple
|
|
|
filterable
|
|
|
remote
|
|
|
reserve-keyword
|
|
|
+ collapse-tags
|
|
|
+ :multiple-limit="3"
|
|
|
placeholder="请输入姓名"
|
|
|
:remote-method="getSecondaryTeacher"
|
|
|
:loading="loading">
|
|
|
<el-option
|
|
|
v-for="item in secondaryTeacherOptions"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.label">
|
|
|
+ :key="item.userId"
|
|
|
+ :label="item.nickName"
|
|
|
+ :value="item.userId">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="上课人员:" prop="data4" label-width="200px">
|
|
|
- <p style="line-height:40px;color:#0183FA;cursor: pointer" @click="addUserButton">
|
|
|
- 已选择 ({{dialogForm.data4?dialogForm.data4.length:0}}人)
|
|
|
+ <el-form-item label="上课人员:" prop="userIds" label-width="200px">
|
|
|
+ <p style="line-height:40px;color:#0183FA;cursor: pointer;width:300px;" @click="addUserButton">
|
|
|
+ 已选择 ({{dialogForm.userIds?dialogForm.userIds.length:0}}人)
|
|
|
</p>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="dialogFormFlex">
|
|
|
- <el-form-item label="上课场所:" prop="data5">
|
|
|
- <el-select v-model="dialogForm.data5"
|
|
|
+ <el-form-item label="上课场所:" prop="placeId">
|
|
|
+ <el-select v-model="dialogForm.placeId"
|
|
|
+ @change="deptChange"
|
|
|
style="width:300px;" placeholder="请选择学院">
|
|
|
<el-option
|
|
|
- @change="deptChange"
|
|
|
v-for="item in deptOptions"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.label">
|
|
|
+ :key="item.deptId"
|
|
|
+ :label="item.deptName"
|
|
|
+ :value="item.deptId">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="实验室:" prop="data6" label-width="200px">
|
|
|
- <el-select v-model="dialogForm.data6" v-if="dialogForm.data7 == 1"
|
|
|
- style="width:300px;" placeholder="请选择实验室">
|
|
|
+ <el-form-item :label="dialogForm.selectType==1?'实验室:':'上课场所:'" prop="subId" label-width="200px">
|
|
|
+ <el-select
|
|
|
+ style="width:300px;"
|
|
|
+ v-if="dialogForm.selectType == 1"
|
|
|
+ v-model="dialogForm.subId"
|
|
|
+ filterable
|
|
|
+ remote
|
|
|
+ reserve-keyword
|
|
|
+ placeholder="请选择实验室"
|
|
|
+ :remote-method="getSubList"
|
|
|
+ :loading="loading">
|
|
|
<el-option
|
|
|
v-for="item in subOptions"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.label">
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
- <el-input v-model="dialogForm.data6" v-if="dialogForm.data7 == 2"
|
|
|
- placeholder="请输入上课场所" maxLength="15" style="width:300px;"/>
|
|
|
+ <el-input v-model="dialogForm.position" v-if="dialogForm.selectType == 2"
|
|
|
+ placeholder="请输入上课场所" maxLength="20" style="width:300px;"/>
|
|
|
</el-form-item>
|
|
|
<p class="inquire-button-one"
|
|
|
style="margin-left:20px;width:140px;border-radius:4px;" @click="subTypeClick">
|
|
|
- {{dialogForm.data7==1?'手动输入上课场所':(dialogForm.data7==2?'选择学校':'')}}
|
|
|
+ {{dialogForm.selectType==1?'手动输入上课场所':(dialogForm.selectType==2?'选择学校':'')}}
|
|
|
</p>
|
|
|
</div>
|
|
|
<div class="dialogFormFlex">
|
|
@@ -99,7 +111,7 @@
|
|
|
placeholder="选择时间范围">
|
|
|
</el-time-picker>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="上课日期:" prop="courseDate" label-width="200px">
|
|
|
+ <el-form-item label="上课日期:" prop="courseDate" label-width="200px" v-if="!dialogForm.id">
|
|
|
<el-date-picker
|
|
|
style="width:300px;"
|
|
|
value-format="yyyy-MM-dd"
|
|
@@ -111,9 +123,19 @@
|
|
|
end-placeholder="结束日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="上课日期:" prop="courseDate" label-width="200px" v-if="dialogForm.id">
|
|
|
+ <el-date-picker
|
|
|
+ style="width:300px;"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ v-model="dialogForm.courseDate"
|
|
|
+ type="date"
|
|
|
+ :picker-options="pickerOptions"
|
|
|
+ placeholder="选择日期">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
</div>
|
|
|
- <el-form-item label="课程内容:" prop="data8">
|
|
|
- <el-input type="textarea" v-model="dialogForm.data8" resize="none" show-word-limit
|
|
|
+ <el-form-item label="课程内容:" prop="content">
|
|
|
+ <el-input type="textarea" v-model="dialogForm.content" resize="none" show-word-limit
|
|
|
:autosize="{ minRows: 10, maxRows: 10}" maxLength="100" placeholder="请输入处理描述"
|
|
|
style="width:1122px;"/>
|
|
|
</el-form-item>
|
|
@@ -230,7 +252,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import { findUserList } from '@/api/safetyCheck/index'
|
|
|
+ import { findUserList,selectUser,departmentsList,subListAdmin,securitycourseAdd,securitycourseEdit } from '@/api/trainingCourse/index'
|
|
|
export default {
|
|
|
name: 'trainingCourseAddDialog',
|
|
|
props:{
|
|
@@ -248,7 +270,8 @@
|
|
|
// 设置只能选择当前日期及之后的日期
|
|
|
pickerOptions: {
|
|
|
disabledDate(time) {
|
|
|
- return time.getTime() < Date.now() - 8.64e7;//如果没有后面的-8.64e7就是不可以选择今天的
|
|
|
+ const times = new Date(new Date().toLocaleDateString()).getTime() + 30 * 8.64e7 - 1
|
|
|
+ return time.getTime() < Date.now() - 8.64e7 || time.getTime() > times // 如果没有后面的-8.64e7就是不可以选择今天的
|
|
|
}
|
|
|
},
|
|
|
// 遮罩层
|
|
@@ -258,15 +281,18 @@
|
|
|
dialogUserType:false,
|
|
|
dialogTitle:"",
|
|
|
dialogForm:{
|
|
|
- data1:"",
|
|
|
- data2:"",
|
|
|
- data3:"",
|
|
|
- data4:[],
|
|
|
- data5:"",
|
|
|
- data6:"",
|
|
|
- data7:1,
|
|
|
- data8:"",
|
|
|
- courseTime:[new Date(2023, 1, 1, 0, 0), new Date(2023, 1, 1, 23, 59)],
|
|
|
+ courseName:"",
|
|
|
+ lecturerId:"",
|
|
|
+ lecturerName:"",
|
|
|
+ tutorId:"",
|
|
|
+ userIds:[],
|
|
|
+ placeId:"",
|
|
|
+ place:"",
|
|
|
+ subId:"",
|
|
|
+ position:"",
|
|
|
+ selectType:1,
|
|
|
+ content:"",
|
|
|
+ courseTime:["00:00","00:00"],
|
|
|
courseDate:[],
|
|
|
},
|
|
|
//验证
|
|
@@ -276,17 +302,17 @@
|
|
|
{ required: true, message: "请输入联系方式", validator: this.spaceJudgment, trigger: "blur" },
|
|
|
{ pattern:/^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(16[0-9])|(17[0,3,5-8])|(18[0-9])|(147))+\d{8}$/, message: "请输入正确的联系方式", trigger: "blur" }
|
|
|
],
|
|
|
- data1: [
|
|
|
+ courseName: [
|
|
|
{ required: true, message: "请输入课程名称", trigger: "blur" },
|
|
|
{ required: true, message: "请输入课程名称", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
],
|
|
|
- data2: [
|
|
|
+ lecturerId: [
|
|
|
{ required: true, message: "请选择主讲老师", trigger: "blur" },
|
|
|
],
|
|
|
- data4: [
|
|
|
+ userIds: [
|
|
|
{ required: true, message: "请选择上课人员", trigger: "blur" },
|
|
|
],
|
|
|
- data5: [
|
|
|
+ placeId: [
|
|
|
{ required: true, message: "请选择上课场所", trigger: "blur" },
|
|
|
],
|
|
|
courseTime: [
|
|
@@ -298,7 +324,7 @@
|
|
|
],
|
|
|
},
|
|
|
//主要老师
|
|
|
- mainTeacherOptions:[{value:'1',label:"1"}],
|
|
|
+ mainTeacherOptions:[],
|
|
|
//辅助老师
|
|
|
secondaryTeacherOptions:[],
|
|
|
//院系列表
|
|
@@ -341,14 +367,69 @@
|
|
|
methods:{
|
|
|
//初始化
|
|
|
initialize(){
|
|
|
+ let self = this;
|
|
|
this.$set(this,'dialogTitle',this.addDialogData.id?'编辑':'添加');
|
|
|
if(this.addDialogData.id){
|
|
|
//编辑数据
|
|
|
+ let obj = {
|
|
|
+ id:this.addDialogData.id,
|
|
|
+ courseName:this.addDialogData.courseName,
|
|
|
+ lecturerId:this.addDialogData.lecturerId,
|
|
|
+ lecturerName:this.addDialogData.lecturerName,
|
|
|
+ tutorId:'',
|
|
|
+ placeId:parseInt(this.addDialogData.placeId),
|
|
|
+ place:this.addDialogData.place,
|
|
|
+ content:this.addDialogData.content,
|
|
|
+ courseTime:[this.addDialogData.coStartTime,this.addDialogData.coEndTime],
|
|
|
+ courseDate:this.addDialogData.coStartDate,
|
|
|
+ userIds:[],
|
|
|
+ };
|
|
|
+ //处理主要老师列表
|
|
|
+ let mainTeacherList = [{userId:this.addDialogData.lecturerId,nickName:this.addDialogData.lecturerName}];
|
|
|
+ this.$set(this,'mainTeacherOptions',mainTeacherList);
|
|
|
+ //处理辅助老师列表
|
|
|
+ if(this.addDialogData.tutorId){
|
|
|
+ obj.tutorId = this.addDialogData.tutorId.split(',');
|
|
|
+ let userIdList = this.addDialogData.tutorId.split(',');
|
|
|
+ let nickNameList = this.addDialogData.tutorName.split(',');
|
|
|
+ let secondaryTeacherList = [];
|
|
|
+ for(let i=0;i<userIdList.length;i++){
|
|
|
+ secondaryTeacherList.push({userId:userIdList[i],nickName:nickNameList[i]})
|
|
|
+ }
|
|
|
+ this.$set(this,'secondaryTeacherOptions',secondaryTeacherList);
|
|
|
+ }
|
|
|
+ //处理实验室数据&手动输入场地
|
|
|
+ if(this.addDialogData.subId){
|
|
|
+ obj.subId = this.addDialogData.subId;
|
|
|
+ obj.position = "";
|
|
|
+ obj.selectType = 1;
|
|
|
+ //处理实验室列表
|
|
|
+ let subList = [{name:this.addDialogData.subName,id:this.addDialogData.subId}]
|
|
|
+ this.$set(this,'subOptions',subList);
|
|
|
+ }else{
|
|
|
+ if(this.addDialogData.position){
|
|
|
+ obj.subId = "";
|
|
|
+ obj.position = this.addDialogData.position;
|
|
|
+ obj.selectType = 2;
|
|
|
+ }else{
|
|
|
+ obj.subId = "";
|
|
|
+ obj.position = "";
|
|
|
+ obj.selectType = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //处理学生数据
|
|
|
+ for(let i=0;i<self.addDialogData.userIds.length;i++){
|
|
|
+ obj.userIds.push({userId:self.addDialogData.userIds[i]})
|
|
|
+ }
|
|
|
+ //根据当前选择院系获取实验室列表
|
|
|
+ this.getSubList('',this.addDialogData.placeId)
|
|
|
+ this.$set(this,'dialogForm',obj);
|
|
|
}
|
|
|
this.getDeptList();
|
|
|
},
|
|
|
//提交按钮
|
|
|
dialogSubmit(){
|
|
|
+ let self = this;
|
|
|
if(this.dialogUserType){
|
|
|
//选择人员页面
|
|
|
if(!this.dialogTableDataList[0]){
|
|
@@ -356,13 +437,72 @@
|
|
|
return
|
|
|
}
|
|
|
let userList = JSON.parse(JSON.stringify(this.dialogTableDataList))
|
|
|
- this.$set(this.dialogForm,'data4',userList)
|
|
|
+ this.$set(this.dialogForm,'userIds',userList)
|
|
|
this.$set(this,'dialogUserType',false)
|
|
|
}else{
|
|
|
//提交页面
|
|
|
this.$refs["dialogForm"].validate(valid => {
|
|
|
if (valid) {
|
|
|
- this.$parent.controlsButton(6)
|
|
|
+ if(this.dialogForm.id){
|
|
|
+ //编辑
|
|
|
+ let obj = {
|
|
|
+ id:this.dialogForm.id,
|
|
|
+ courseName:this.dialogForm.courseName,
|
|
|
+ lecturerId:this.dialogForm.lecturerId,
|
|
|
+ lecturerName:this.dialogForm.lecturerName,
|
|
|
+ tutorId:this.dialogForm.tutorId+'',
|
|
|
+ userIds:[],
|
|
|
+ placeId:this.dialogForm.placeId,
|
|
|
+ place:this.dialogForm.place,
|
|
|
+ coStartTime:this.dialogForm.courseTime[0],
|
|
|
+ coEndTime:this.dialogForm.courseTime[1],
|
|
|
+ courseDate:[this.dialogForm.courseDate,this.dialogForm.courseDate],
|
|
|
+ content:this.dialogForm.content,
|
|
|
+ peopleCount:this.dialogForm.userIds.length,
|
|
|
+ }
|
|
|
+ if(this.dialogForm.selectType == 1){
|
|
|
+ obj.subId = this.dialogForm.subId;
|
|
|
+ }else{
|
|
|
+ obj.position = this.dialogForm.position;
|
|
|
+ }
|
|
|
+ for(let i=0;i<self.dialogForm.userIds.length;i++){
|
|
|
+ obj.userIds.push(self.dialogForm.userIds[i].userId)
|
|
|
+ }
|
|
|
+ securitycourseEdit(obj).then(response => {
|
|
|
+ this.msgSuccess(response.msg)
|
|
|
+ this.$parent.controlsButton(6)
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ //提交
|
|
|
+ let obj = {
|
|
|
+ courseName:this.dialogForm.courseName,
|
|
|
+ lecturerId:this.dialogForm.lecturerId,
|
|
|
+ lecturerName:this.dialogForm.lecturerName,
|
|
|
+ tutorId:this.dialogForm.tutorId+'',
|
|
|
+ userIds:[],
|
|
|
+ placeId:this.dialogForm.placeId,
|
|
|
+ place:this.dialogForm.place,
|
|
|
+ coStartTime:this.dialogForm.courseTime[0],
|
|
|
+ coEndTime:this.dialogForm.courseTime[1],
|
|
|
+ courseDate:this.dialogForm.courseDate,
|
|
|
+ content:this.dialogForm.content,
|
|
|
+ peopleCount:this.dialogForm.userIds.length,
|
|
|
+ }
|
|
|
+ if(this.dialogForm.selectType == 1){
|
|
|
+ obj.subId = this.dialogForm.subId;
|
|
|
+ }else{
|
|
|
+ obj.position = this.dialogForm.position;
|
|
|
+ }
|
|
|
+ for(let i=0;i<self.dialogForm.userIds.length;i++){
|
|
|
+ obj.userIds.push(self.dialogForm.userIds[i].userId)
|
|
|
+ }
|
|
|
+ securitycourseAdd(obj).then(response => {
|
|
|
+ this.msgSuccess(response.msg)
|
|
|
+ this.$parent.controlsButton(6)
|
|
|
+ });
|
|
|
+ }
|
|
|
+ console.log('dialogForm',this.dialogForm)
|
|
|
+
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -378,46 +518,73 @@
|
|
|
this.$parent.controlsButton(5)
|
|
|
}
|
|
|
},
|
|
|
+ //主要老师选中
|
|
|
+ lecturerIdChange(val){
|
|
|
+ let self = this;
|
|
|
+ for(let i=0;i<self.mainTeacherOptions.length;i++){
|
|
|
+ if(self.mainTeacherOptions[i].userId == val){
|
|
|
+ this.$set(this.dialogForm,'lecturerName',self.mainTeacherOptions[i].nickName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
//主要老师搜索
|
|
|
getMainTeacher(query){
|
|
|
- if(query != ''){
|
|
|
+ if(query.length > 1){
|
|
|
this.loading = true;
|
|
|
- console.log('query',query)
|
|
|
- this.$set(this,'mainTeacherOptions',[{value:'1',label:"11"}])
|
|
|
- this.loading = false;
|
|
|
- console.log('mainTeacherOptions',this.mainTeacherOptions)
|
|
|
+ selectUser({userType:11,nickName:query}).then(response => {
|
|
|
+ this.$set(this,'mainTeacherOptions',response.data)
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
//辅助老师搜错
|
|
|
getSecondaryTeacher(query){
|
|
|
- if(query != ''){
|
|
|
- console.log('1')
|
|
|
+ if(query.length > 1){
|
|
|
this.loading = true;
|
|
|
- this.$set(this,'secondaryTeacherOptions',[{value:'2',label:"22"}])
|
|
|
- this.loading = false;
|
|
|
+ selectUser({userType:11,nickName:query}).then(response => {
|
|
|
+ this.$set(this,'secondaryTeacherOptions',response.data)
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
//选择院系
|
|
|
deptChange(val){
|
|
|
- this.$set(this.dialogForm,'data6','');
|
|
|
- this.getSubList(val)
|
|
|
+ let self = this;
|
|
|
+ for(let i=0;i<self.deptOptions.length;i++){
|
|
|
+ if(self.deptOptions[i].deptId == val){
|
|
|
+ this.$set(this.dialogForm,'place',self.deptOptions[i].deptName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.$set(this.dialogForm,'subId','');
|
|
|
+ this.getSubList('')
|
|
|
},
|
|
|
//获取院系列表
|
|
|
getDeptList(){
|
|
|
- this.$set(this,'deptOptions',[]);
|
|
|
+ departmentsList().then(response => {
|
|
|
+ this.$set(this,'deptOptions',response.data);
|
|
|
+ });
|
|
|
},
|
|
|
//获取实验室列表
|
|
|
- getSubList(val){
|
|
|
- this.$set(this,'subOptions',[]);
|
|
|
+ getSubList(val,deptId){
|
|
|
+ console.log(val,deptId)
|
|
|
+ if(val == '' && deptId){
|
|
|
+ subListAdmin({deptId:deptId,name:val}).then(response => {
|
|
|
+ this.$set(this,'subOptions',response.data);
|
|
|
+ });
|
|
|
+ }else if(this.dialogForm.placeId && (val == '' || val.length > 1)){
|
|
|
+ subListAdmin({deptId:this.dialogForm.placeId,name:val}).then(response => {
|
|
|
+ this.$set(this,'subOptions',response.data);
|
|
|
+ });
|
|
|
+ }
|
|
|
},
|
|
|
//实验室切换
|
|
|
subTypeClick(){
|
|
|
- this.$set(this.dialogForm,'data6','');
|
|
|
- this.$set(this.dialogForm,'data7',this.dialogForm.data7==1?2:1);
|
|
|
+ this.$set(this.dialogForm,'subId','');
|
|
|
+ this.$set(this.dialogForm,'selectType',this.dialogForm.selectType==1?2:1);
|
|
|
},
|
|
|
//开启人员选择
|
|
|
addUserButton(){
|
|
|
- let userList = JSON.parse(JSON.stringify(this.dialogForm.data4))
|
|
|
+ let userList = JSON.parse(JSON.stringify(this.dialogForm.userIds))
|
|
|
this.$set(this,'dialogTableDataList',userList)
|
|
|
this.$set(this,'dialogTitle','选择人员');
|
|
|
this.$set(this,'dialogUserType',true);
|