From a13b6c27db1f35a9fa23f6a56680f2bcd0f19a7d Mon Sep 17 00:00:00 2001 From: zhangsir Date: Wed, 16 Oct 2024 13:44:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B2=E5=B8=88=E7=AE=A1=E7=90=86=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E8=AE=B2=E5=B8=88=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/Lecturer.js | 2 + src/components/project/SearchTeacher.vue | 63 ++++++++++++++++++------ src/views/lecturer/InsideLecturer.vue | 16 ++++-- 3 files changed, 64 insertions(+), 17 deletions(-) diff --git a/src/api/Lecturer.js b/src/api/Lecturer.js index 4462fe2c..ffc6309e 100644 --- a/src/api/Lecturer.js +++ b/src/api/Lecturer.js @@ -59,3 +59,5 @@ export const fileUp = (obj) => http.post('/file/upload', obj) export const getTeacherByDepartId = (obj) => http.get(`/admin/thirdApi/user/list?departId=${obj.organizationId}&pageNo=1&pageSize=1000&keyword=`) //根据姓名工号查询讲师 export const getTeacherByNameOrUserNo = (obj) => http.get(`/admin/thirdApi/user/list?keyword=${obj.nameOrUserNo}&pageNo=1&pageSize=50&departId=`) +//根据userid获取讲师体系信息 +export const getSystemInfoByUserId = (id) => http.get(`/admin/ststem/getSystemInfoByUserId?id=${id}`) \ No newline at end of file diff --git a/src/components/project/SearchTeacher.vue b/src/components/project/SearchTeacher.vue index 0d4a5371..173e80df 100644 --- a/src/components/project/SearchTeacher.vue +++ b/src/components/project/SearchTeacher.vue @@ -25,7 +25,7 @@
- +
取消
-
确定
+ + 确定
@@ -63,8 +67,8 @@ import { ref,defineProps,defineEmits,watch,onMounted } from 'vue'; import { request, useRequest} from "@/api/request"; import { message } from "ant-design-vue" import { ORG_CHILD_LIST, ORG_LIST,USER_LIST_PAGE} from "@/api/apis"; -import { getTeacherByDepartId,getTeacherByNameOrUserNo } from "@/api/Lecturer"; -import { ZoomInOutlined } from '@ant-design/icons-vue'; +import { getTeacherByDepartId,getTeacherByNameOrUserNo,getSystemInfoByUserId } from "@/api/Lecturer"; +import { ZoomInOutlined,UserOutlined } from '@ant-design/icons-vue'; const props = defineProps({ value:{ type: String, @@ -79,8 +83,8 @@ const props = defineProps({ default: '', }, system:{ - type: String, - default: '', + type: Object, + default: ()=>{}, }, level:{ type: String, @@ -105,16 +109,18 @@ function blur() { isOpen.value = false } const orgName = ref('') -const systemName = ref('') +const systemName = ref(null) const levelName = ref('') const neworgName = ref('') +const teacherId = ref('') const handleChange = (e,l) => { isOpen.value = false // emit('update:value',e) teacherName.value = e orgName.value = l.orgName - systemName.value = l.systemName + // systemName.value = l.systemName levelName.value = l.levelName + teacherId.value = l.key if( l.orgName !==null ){ neworgName.value= orgName.value.split('/') neworgName.value= neworgName.value[ neworgName.value.length-1] @@ -145,7 +151,7 @@ const searchMember = (keyword) => { loading.value = false options.value = res.data.data.list.map((item) => { return { - value: item.realName, + value: item.realName+'/'+item.userNo, label: item.realName+'('+item.userNo+')'+item.orgName, system: item.realName+'('+item.userNo+')'+item.tSystemName, level: item.realName+'('+item.userNo+')'+item.sLevelName, @@ -184,7 +190,8 @@ function onLoadData(treeNode) { res.data.data.list.map(item=>{ return ( item.isLeaf = true, - item.name = item.realName + item.name = item.realName + '/' + item.userNo, + item.slots = {icon:'smile'} ) }) childDatas.unshift(...res.data.data.list) @@ -210,13 +217,15 @@ function stuStuOrgSelect(e, {selected: bool, selectedNodes, node, event}) { console.log(selectedNodes) teacherName.value = '' orgName.value = '' - systemName.value = '' + systemName.value = null levelName.value = '' + teacherId.value = '' if(selectedNodes[0].isLeaf){ teacherName.value = selectedNodes[0].name orgName.value = selectedNodes[0].orgName - systemName.value = selectedNodes[0].systemName + // systemName.value = selectedNodes[0].systemName levelName.value = selectedNodes[0].levelName + teacherId.value = selectedNodes[0].id // emit('update:value',selectedNodes[0].realName) } } @@ -226,10 +235,13 @@ watch(()=>visible.value,(val)=>{ stuTreeExpandedKeys.value = [] teacherName.value = '' orgName.value = '' - systemName.value = '' + systemName.value = null levelName.value = '' neworgName.value='' selectName.value = null + selectData.value = '' + teacherId.value = '' + loadingChange.value = false // changeneworg() } }) @@ -237,10 +249,32 @@ const notChange = () => { visible.value = false teacherName.value = '' orgName.value = '' - systemName.value = '' + systemName.value = null levelName.value = '' neworgName.value='' + teacherId.value = '' + loadingChange.value = false } +const loadingChange = ref(false) +watch(()=>teacherId.value,(val)=>{ + if(val){ + loadingChange.value = true + getSystemInfoByUserId(teacherId.value).then(res=>{ + if(res.data.code == 200){ + systemName.value = { + systemId:res.data.data.id, + systemName:res.data.data.systemName, + systemCode:res.data.data.systemCode + } + } + loadingChange.value = false + emit('update:system',systemName.value) + }).catch(err=>{ + message.error('讲师体系获取失败,请重新选择') + loadingChange.value = false + }) + } +}) const changeOut = () => { if(!teacherName.value){ message.error('请选择讲师') @@ -290,6 +324,7 @@ const changeOut = () => { } .btn2{ background-color: rgba(50, 107, 250, 1); + padding: 0; } } } diff --git a/src/views/lecturer/InsideLecturer.vue b/src/views/lecturer/InsideLecturer.vue index 09323382..c4ec7b4e 100644 --- a/src/views/lecturer/InsideLecturer.vue +++ b/src/views/lecturer/InsideLecturer.vue @@ -145,7 +145,7 @@ + v-model:system="tSystemNames" v-model:level="formParam.tLevelId"> @@ -167,7 +167,7 @@ - @@ -411,6 +411,9 @@ export default { pageSize: 10, tableDataTotal: -1,//table列表总条数 vf: false, + tSystemNames:{ + systemName:null + }, formParam: { name: null, certStatus: 0,//认证状态 @@ -870,6 +873,7 @@ export default { return message.error(rules[formItemNames[i]][0].log) } } + state.formParam = {...state.formParam,...state.tSystemNames} if (state.vf == false) { updateInTeacher(state.formParam).then(response => { message.success("修改成功"); @@ -1011,6 +1015,9 @@ export default { workExperience: '', courses: '', } + state.tSystemNames = { + systemName:null + } } const clearNonNumber = () => { state.formParam.defaultteachingTime = state.formParam.defaultteachingTime.replace(/\D/g, ''); @@ -1019,7 +1026,7 @@ export default { name: [{ required: true, message: '',log:'讲师不能为空' }], // newdepartId: [{ required: true, message: '组织不能为空' }], tLevelId: [{ required: true, message: '',log:'讲师级别不能为空' }], - // tSystemName: [{ required: true, message: '讲师体系不能为空' }], + tSystemName: [{ required: true, message: '讲师体系不能为空' }], defaultteachingTime: [{ required: true, message: '',log:'初始授课时长不能为空' }], // certStatus: [{ required: true, message: '认证状态不能为空' }], @@ -1078,6 +1085,9 @@ export default { 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.tSystemNames.systemName = res.data.data.systemName + state.tSystemNames.systemCode = res.data.data.systemCode + state.tSystemNames.systemId = res.data.data.systemId }