Merge remote-tracking branch 'zcwy/zcwy-teacher-manage' into zcwy-teacher-manage

This commit is contained in:
zhangsir
2024-10-16 16:54:03 +08:00
9 changed files with 80 additions and 58 deletions

View File

@@ -17,7 +17,7 @@ export const getTeacherList = (obj) => http.get('/admin/teacher/list' ,{params:
//讲师详情
export const getTeacherById= (obj) => http.get('/admin/teacher/queryById',{params: obj})
//删除讲师
export const deleteInTeacher= (obj) => http.post('/admin/teacher/delById',obj)
export const deleteInTeacher= (obj) => http.post(`/admin/teacher/delById?id=${obj}`)
//新增讲师
export const insertTeacher = (obj) => http.post('/admin/teacher/addTeacher' ,obj)
//修改讲师

View File

@@ -5,7 +5,7 @@ export const getNewInTeacherCourseList = (obj) => http.get('/admin/teacherRecord
//新增授课记录
export const insertInTeacherCourse = (obj) => http.post('/admin/teacherRecord/addTeacher', obj)
//删除讲师授课记录
export const deleteInTeacherCourse= (obj) => http.post('/admin/teacherRecord/delById' ,obj)
export const deleteInTeacherCourse= (obj) => http.post(`/admin/teacherRecord/delById?id=${obj}`)
//修改讲师授课记录
export const updateInTeacherCourse = (obj) => http.post('/admin/teacherRecord/editTeacher', obj)
//讲师授课记录详情

BIN
src/assets/boe.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -6,7 +6,7 @@
<a-form layout="inline">
<a-form-item class="select">
<!-- v-model:value="searchParam.name" -->
<a-input v-model:value="searchParam.teacherNameOrMobel" style="width: 276px; height: 40px; border-radius: 8px"
<a-input v-model:value="searchParam.name" style="width: 276px; height: 40px; border-radius: 8px"
placeholder="请输入讲师姓名/手机号进行检索" allowClear showSearch>
</a-input>
</a-form-item >
@@ -97,16 +97,16 @@
<!-- 讲师名称 ,手机号码-->
<a-row :gutter="16">
<a-col :span="24">
<a-form-item label="讲师名称" name="userNo">
<a-form-item label="讲师名称" name="name">
<a-input v-model:value="formParam.name" class="draitem"
placeholder="请输入讲师姓名" allowClear showSearch>
</a-input>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="手机号码" name="mobile">
<a-form-item label="手机号码" name="mobile" prop="mobile">
<a-input v-model:value="formParam.mobile" class="draitem"
placeholder="请输入手机号码" allowClear showSearch @blur="sendPhone">
placeholder="请输入手机号码" allowClear showSearch :maxLength="11" @blur="sendPhone">
</a-input>
</a-form-item>
</a-col>
@@ -121,8 +121,8 @@
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="讲师邮箱" name="email">
<a-input v-model:value="formParam.email" class="draitem"
<a-form-item label="讲师邮箱" name="email" prop="email">
<a-input v-model:value="formParam.email" type="email" class="draitem"
placeholder="请输入讲师邮箱" allowClear showSearch @blur="sendEmail">
</a-input>
</a-form-item>
@@ -251,7 +251,8 @@ import ProjectManager from "@/components/project/ProjectManagerNew";
import { getTeacherList, getTeacherById, deleteInTeacher, updateTeacherState, insertTeacher, updateInTeacher } from "../../api/Lecturer";
import { fileUp } from "../../api/indexEval";
import {getCookieForName} from "@/api/method"
import SearchTeacher from "@/components/project/SearchTeacher";;
import SearchTeacher from "@/components/project/SearchTeacher";
import boe from '@/assets/boe.jpg'
export default {
name: "ExternalLecturer",
components: {
@@ -290,12 +291,13 @@ export default {
formParam: {
description:"",
teacherType:'2',
photo: 'https://p0.itc.cn/q_70/images01/20211013/f45d91616a364d6ea9c42a8db69734aa.png'
photo:boe,
status:1
},
vf:true,
searchParam: {
teacherType:2,
teacherNameOrMobel: null,//姓名
name: null,//姓名
status: null,//状态
pageNo: "1",
pageSize: "10"
@@ -339,8 +341,8 @@ export default {
};
const AccountStatusList = ref([
{ value: '', label: "全部" },
{ value: 0, label: "启用" },
{ value: 1, label: "停用" },
{ value: 1, label: "启用" },
{ value: 2, label: "停用" },
])
const columns = ref([
{
@@ -421,7 +423,7 @@ export default {
pageNo: 1,
pageSize: 10,
teacherType:2,
teacherNameOrMobel: null,
name: null,
status: null
};
getTableDate();
@@ -452,7 +454,7 @@ export default {
state.teacherdialog = true;
state.teacherdialogtitle = '新增讲师'
state.vf = true
state.formParam.photo = state.formParam.photo === null ? 'https://p0.itc.cn/q_70/images01/20211013/f45d91616a364d6ea9c42a8db69734aa.png' : state.formParam.photo
state.formParam.photo = state.formParam.photo === null ?boe : state.formParam.photo
}
//修改讲师信息弹窗
@@ -514,7 +516,7 @@ export default {
//确认删除
const closeDeleteTeacher = () => {
//调用删除接口
deleteInTeacher({id:state.delTeacherId}).then((res) => {
deleteInTeacher(state.delTeacherId).then((res) => {
if (res.data.code == 200) {
message.success("删除成功");
state.deleteTeacherdialog = false
@@ -564,8 +566,9 @@ export default {
//清空数据
const cancel = () => {
state.formParam = {
status:1,
teacherType:2,
photo: 'https://p0.itc.cn/q_70/images01/20211013/f45d91616a364d6ea9c42a8db69734aa.png',
photo:boe,
name: null,
mobile: null,
email: null,
@@ -580,6 +583,20 @@ export default {
const rules = {
name: [{ required: true, message: '讲师不能为空' }],
supplier:[{ required: true, message: '供应商不能为空' }],
email:[
{
type: "email",
message: '请输入正确的邮箱地址',
trigger: "blur"
}
],
mobile: [
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur"
}
]
}
const rule =()=>{
if (state.formParam.name==null){
@@ -606,7 +623,7 @@ export default {
console.log("外部讲师详情", res.data);
state.formParam = res.data.data
state.formParam.description = state.formParam.description === null ? '' : state.formParam.description
state.formParam.photo = state.formParam.photo === null ? 'https://p0.itc.cn/q_70/images01/20211013/f45d91616a364d6ea9c42a8db69734aa.png' : state.formParam.photo
state.formParam.photo = state.formParam.photo === null ?boe : state.formParam.photo
})
.catch((err) => {
console.log("外部讲师详情", err);
@@ -631,7 +648,7 @@ export default {
const handleExport = () => {
window.open(
`${process.env.VUE_APP_BASE_API}/teacher/export?pageNo=${state.searchParam.pageNo
}&pageSize=${state.searchParam.pageSize}&teacherNameOrMobel=${state.searchParam.teacherNameOrMobel ? state.searchParam.teacherNameOrMobel : ""}&status=${state.searchParam.status ? state.searchParam.status : ""}`
}&pageSize=${state.searchParam.pageSize}&name=${state.searchParam.name ? state.searchParam.name : ""}&status=${state.searchParam.status ? state.searchParam.status : ""}`
);
// this.download('lesson_records/export', {
// ...state.searchParam

View File

@@ -659,17 +659,17 @@ export default {
//删除弹窗
const deleteModal = (record) => {
state.deleteTeacherdialog = true
state.delTeacherId = record.offcourseId
state.delTeacherId = record.id
};
//确认删除
const closeDeleteTeacher = () => {
//调用删除接口
let obj ={
offcourseId :state.delTeacherId,
recordType:2
}
deleteInTeacherCourse(obj).then((res) => {
// let obj ={
// offcourseId :state.delTeacherId,
// recordType:2
// }
deleteInTeacherCourse(state.delTeacherId,).then((res) => {
if (res.data.code == 200) {
message.success("删除成功");
state.deleteTeacherdialog = false
@@ -1174,7 +1174,7 @@ const handleImport = () => {
}
.tableBox {
padding-bottom: 20px;
 margin: 20px 38px 30px;
margin: 20px 38px 30px;
::v-deep .ant-select-dropdown{
display: inline-block;
}

View File

@@ -367,6 +367,7 @@ import { teacherUpload } from "../../api/Teaching";
import { getCookieForName } from "@/api/method";
// import {getProjSt} from "../../api/indexProjStu";
import AddContent from "../../components/project/AddContent.vue"
import boe from '@/assets/boe.jpg'
export default {
name: "InsideLecturer",
components: {
@@ -419,7 +420,7 @@ export default {
certStatus: 0,//认证状态
defaultteachingTime: null,
teacherType:1,
photo: 'https://p0.itc.cn/q_70/images01/20211013/f45d91616a364d6ea9c42a8db69734aa.png'
photo: boe
},
searchParam: {
teacherType:1,
@@ -841,7 +842,7 @@ export default {
cancel()
state.teacherdialog = true;
state.teacherdialogtitle = '新增讲师'
state.formParam.photo ='https://p0.itc.cn/q_70/images01/20211013/f45d91616a364d6ea9c42a8db69734aa.png'
state.formParam.photo =boe
state.formParam.status = '1'
state.vf = true
}
@@ -956,7 +957,7 @@ export default {
//确认删除
const closeDeleteTeacher = () => {
//调用删除接口
deleteInTeacher({id:state.delTeacherId}).then((res) => {
deleteInTeacher(state.delTeacherId).then((res) => {
if (res.data.code == 200) {
message.success("删除成功");
state.deleteInTeacherdialog = false
@@ -1084,7 +1085,7 @@ export default {
state.formParam.description = state.formParam.description === null ? '' : state.formParam.description
state.formParam.workExp0erience = state.formParam.workExperience === null ? '' : state.formParam.workExperience
state.formParam.courses = state.formParam.courses === null ? '' : state.formParam.courses
state.formParam.photo = state.formParam.photo === null ? 'https://p0.itc.cn/q_70/images01/20211013/f45d91616a364d6ea9c42a8db69734aa.png' : state.formParam.photo
state.formParam.photo = state.formParam.photo === null ? boe : state.formParam.photo
state.tSystemNames.systemName = res.data.data.systemName
state.tSystemNames.systemCode = res.data.data.systemCode
state.tSystemNames.systemId = res.data.data.systemId
@@ -1518,7 +1519,7 @@ export default {
}
.tableBox {
padding-bottom: 20px;
 margin: 20px 38px 30px;
margin: 20px 38px 30px;
::v-deep .ant-select-dropdown{
display: inline-block;
}

View File

@@ -57,7 +57,7 @@
</a-select>
</a-form-item>
<a-form-item class="select" v-if="moreid == 2">
<a-select style="width: 230px" v-model:value="searchParam.status" placeholder="开课状态"
<a-select style="width: 230px" v-model:value="searchParam.courseStatus" placeholder="开课状态"
:options="AuthenticationStatusList" allowClear showSearch>
</a-select>
</a-form-item>
@@ -199,7 +199,7 @@
</a-form-item>
</a-col>
</a-row>
<!-- 授课日期 beginTime 开课状态 status -->
<!-- 授课日期 beginTime 开课状态 courseStatus -->
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="授课/课程日期 :" name="beginTime">
@@ -209,7 +209,7 @@
</a-col>
<a-col :span="12">
<a-form-item label="开课状态">
<a-radio-group v-model:value="formParam.status" class="draitem">
<a-radio-group v-model:value="formParam.courseStatus" class="draitem">
<a-radio :value="0">未开课</a-radio>
<a-radio :value="1">已开课</a-radio>
</a-radio-group>
@@ -287,7 +287,7 @@
<a-descriptions-item label="课程类型">{{ formParam.type == 1 ? '项目开课' : formParam.type == 2 ? '路径开课' : formParam.type == 3
? '面授开课' : '' }}</a-descriptions-item>
<a-descriptions-item label="课程名称">{{ formParam.coursename }}</a-descriptions-item>
<a-descriptions-item label="开课状态">{{ formParam.status == 0 ? '未开课' : formParam.status == 1
<a-descriptions-item label="开课状态">{{ formParam.courseStatus == 0 ? '未开课' : formParam.courseStatus == 1
? '已开课' : '' }}</a-descriptions-item>
<a-descriptions-item label="授课时长 "><span style="margin-left: 5px ;" v-if="formParam.duration != null">{{
(formParam.duration / 60).toFixed(2) }}小时</span> </a-descriptions-item>
@@ -423,13 +423,13 @@ export default {
beginTime: null, //开始时间
endTime: null, //结束时间
formParam: {
status: 1,
courseStatus: 1,
createFrom: 1,
duration: null,
},
startTime:null,
searchParam:
{ "recordType": 1, "pageNo": 1, "pageSize": 10, "managerId": null, "name": null, "createFrom": null, "status": null, "orgId": null, "tSystemId": null, "endTime": null, "beginTime":null, "studysranges": [], "score": null }
{ "recordType": 1, "pageNo": 1, "pageSize": 10, "managerId": null, "name": null, "createFrom": null, "courseStatus": null, "orgId": null, "tSystemId": null, "endTime": null, "beginTime":null, "studysranges": [], "score": null }
})
//获取所属组织
@@ -662,18 +662,18 @@ export default {
},
{
title: '开课状态 ',
dataIndex: 'status',
key: 'status',
dataIndex: 'courseStatus',
key: 'courseStatus',
elipsis: true, align: "center",
width: 120,
customRender: (value) => {
return (
<div>
{value.record.status == 0 || value.record.status == 1
{value.record.courseStatus == 0 || value.record.courseStatus == 1
? {
"0": "未开课",
"1": "已开课",
}[value.record.status + ""] || ""
}[value.record.courseStatus + ""] || ""
: "-"}
</div>
)
@@ -748,7 +748,7 @@ export default {
else if (state.moreid == 2) {
state.moreid = 1
state.searchParam.createFrom = null
state.searchParam.status = '0'
state.searchParam.courseStatus = '0'
state.searchParam.orgId = null
state.searchParam.tSystemId = null
state.searchParam.id = null
@@ -787,7 +787,7 @@ export default {
managerId: null,
name: null,
createFrom: null,
status:null,
courseStatus:null,
orgId: null,
tSystemId: null,
endTime: null,
@@ -869,18 +869,18 @@ export default {
//删除弹窗
const deleteModal = (record) => {
state.deleteTeacherdialog = true
state.delTeacherId = record.offcourseId
state.delTeacherId = record.id
};
//确认删除
const closeDeleteTeacher = () => {
//调用删除接口
let obj = {
offcourseId: state.delTeacherId,
recordType: 1
}
deleteInTeacherCourse(obj).then((res) => {
// let obj = {
// offcourseId: state.delTeacherId,
// recordType: 1
// }
deleteInTeacherCourse(state.delTeacherId).then((res) => {
if (res.data.code == 200) {
message.success("删除成功");
state.deleteTeacherdialog = false
@@ -964,7 +964,7 @@ export default {
levelId: record.levelId,
type: record.type,
courseName: record.courseName,
status:record.status,
courseStatus:record.courseStatus,
beginTime: dayjs(record.beginTime, 'YYYY-MM-DD'),
// ref< moment.Moment >(moment(record.beginTime,'YYYY-MM-DD')),
// record.beginTime,
@@ -993,7 +993,7 @@ export default {
// sLevelName: record.sLevelName,
// type: record.type,
// courseName: record.courseName,
// status:record.status,
// courseStatus:record.courseStatus,
// beginTime:record.beginTime,
// // ref< moment.Moment >(moment(record.beginTime,'YYYY-MM-DD')),
// // record.beginTime,
@@ -1074,7 +1074,7 @@ export default {
courseName: [{ required: true, message: '课程名称不能为空' }],
beginTime: [{ required: true, message: '授课/课程日期不能为空' }],
duration: [{ required: true, message: '授课时长不能为空' }],
status: [{ required: true, message: '开课状态不能为空' }],
courseStatus: [{ required: true, message: '开课状态不能为空' }],
}
const rule = () => {
// if (state.formParam.teacher == null) {
@@ -1595,7 +1595,7 @@ export default {
}
.tableBox {
padding-bottom: 20px;
 margin: 20px 38px 30px;
margin: 20px 38px 30px;
::v-deep .ant-select-dropdown{
display: inline-block;
}

View File

@@ -35,7 +35,9 @@ ExternalLecturer
<span class="line" ></span>
<a-descriptions title="其他信息" bordered :column="4" :contentStyle="rowCenter" :labelStyle="rowCenter" >
<!-- 一层 -->
<a-descriptions-item label="讲师介绍" :span="4"><div style="min-width: 500px;"> {{formParam.description===null?'--':formParam.description}}</div> </a-descriptions-item>
<a-descriptions-item label="讲师介绍" :span="4">
<div v-html="formParam.description" style="min-width: 500px;"></div>
</a-descriptions-item>
<a-descriptions-item label="备注" :span="4">
{{formParam.remark===null?'--':formParam.remark}}</a-descriptions-item>
</a-descriptions>
@@ -86,6 +88,7 @@ import { useRouter,useRoute } from "vue-router";
import { reactive, toRefs, ref } from "vue"
import {getTeacherById} from "../../api/Lecturer";
import { getNewInTeacherCourseList } from "../../api/Teaching";
import boe from '@/assets/boe.jpg'
export default{
name :"LookExternalLecturer",
components:{
@@ -104,7 +107,7 @@ export default{
teacherrecordstableDataTotal: -1,//授课记录列表总条数
teacherrepromotableDataTotal: -1,//晋级记录总条数
teacherrecords: {
teacherType:2,
recordType:2,
pageNo: "1",
pageSize: "10",
id: null
@@ -121,7 +124,7 @@ export default{
getTeacherById({id:state.id}).then((res) => {
console.log("内部讲师详情", res.data);
state.formParam = res.data.data
state.formParam.photo = state.formParam.photo ===null ? 'https://p0.itc.cn/q_70/images01/20211013/f45d91616a364d6ea9c42a8db69734aa.png' : state.formParam.photo
state.formParam.photo = state.formParam.photo ===null ?boe : state.formParam.photo
getteacherrecordstableData()
})
.catch((err) => {

View File

@@ -130,6 +130,7 @@ import { reactive, toRefs, ref, computed } from "vue"
import { useStore } from "vuex";
import {getTeacherById ,getTeacherLogList} from "../../api/Lecturer";
import { getNewInTeacherCourseList } from "../../api/Teaching";
import boe from '@/assets/boe.jpg'
export default{
name :"LookInsideLecturer",
components:{
@@ -148,7 +149,7 @@ export default{
teacherrecordstableDataTotal: -1,//授课记录列表总条数
teacherrepromotableDataTotal: -1,//晋级记录总条数
teacherrecords: {
teacherType:'0',
recordType:1,
pageNo: "1",
pageSize: "10",
id: null
@@ -171,7 +172,7 @@ export default{
// objA.neworgName= objA.neworgName[objA.neworgName.length-1]
// }
state.formParam = objA
state.formParam.photo = state.formParam.photo ===null ? 'https://p0.itc.cn/q_70/images01/20211013/f45d91616a364d6ea9c42a8db69734aa.png' : state.formParam.photo
state.formParam.photo = state.formParam.photo ===null ?boe : state.formParam.photo
state.teacherrepromo.userId=res.data.data.id
console.log(state.teacherrepromo.id);
getteacherrecordstableData()