讲师管理bug

This commit is contained in:
zhangsir
2024-12-06 17:38:48 +08:00
parent 23277bc71d
commit 5044213ec2
7 changed files with 69 additions and 36 deletions

View File

@@ -74,7 +74,7 @@ import { reactive, toRefs, ref,computed,watch } from "vue"
import {getTeacherById} from "../../api/Lecturer"; import {getTeacherById} from "../../api/Lecturer";
import { getNewInTeacherCourseList } from "../../api/Teaching"; import { getNewInTeacherCourseList } from "../../api/Teaching";
// import boe from '@/assets/boe.jpg' // import boe from '@/assets/boe.jpg'
import avatar from '@/assets/avatar.png' import avatar from '@/assets/Avatarman.png'
import dayjs from "dayjs"; import dayjs from "dayjs";
export default{ export default{
name :"LookExternalLecturer", name :"LookExternalLecturer",

View File

@@ -185,7 +185,7 @@ export default{
state.formParam = objA state.formParam = objA
state.formParam.photo = state.formParam.photo ==null ? state.formParam.photo = state.formParam.photo ==null ?
state.formParam.gender == 1 ? Avatarman : state.formParam.gender == 1 ? Avatarman :
state.formParam.gender ==2 ? Avatarwoman : avatar : state.formParam.photo state.formParam.gender ==2 ? Avatarwoman : Avatarman : (state.formParam.photo.includes('upload')?state.formParam.photo:'/upload'+state.formParam.photo)
state.teacherrepromo.userId=res.data.data.id state.teacherrepromo.userId=res.data.data.id
console.log(state.teacherrepromo.id); console.log(state.teacherrepromo.id);
isOrgNames(state.formParam.orgName) isOrgNames(state.formParam.orgName)

View File

@@ -1,6 +1,10 @@
<template> <template>
<div> <div>
<a-popover v-model:visible="visible" placement="bottom" trigger="click"> <a-popover :getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
" v-model:visible="visible" placement="bottom" trigger="click">
<template #content v-if="!disabled"> <template #content v-if="!disabled">
<div class="pover"> <div class="pover">
<div class="search"> <div class="search">
@@ -26,13 +30,13 @@
</div> </div>
<div class="tree"> <div class="tree">
<a-tree show-icon allow-clear tree-default-expand-all :tree-data="treeData" :loading="orgLoading" <a-tree show-icon allow-clear tree-default-expand-all :tree-data="treeData" :loading="orgLoading"
:load-data="onLoadData" v-model:selectedKeys="stuTreeSelectKeys" :load-data="onLoadData" @expand="onExpand" v-model:selectedKeys="stuTreeSelectKeys"
v-model:expandedKeys="stuTreeExpandedKeys" :fieldNames="{ v-model:expandedKeys="stuTreeExpandedKeys" :fieldNames="{
children: 'treeChildList', children: 'treeChildList',
key: 'id', key: 'id',
title: 'name', title: 'name',
value: 'name', value: 'name',
}" @select="stuStuOrgSelect" style="max-height: 260px;overflow-y: auto;width: 250px;"> }" @select="stuStuOrgSelect" style="height: 300px;max-height: 300px;overflow-y: auto;width: 266px;">
<template #smile> <template #smile>
<UserOutlined /> <UserOutlined />
</template> </template>
@@ -259,6 +263,9 @@ const { data: treeData, loading: orgLoading } = useRequest(
ORG_LIST, ORG_LIST,
{ keyword: "" }, { keyword: "" },
); );
const onExpand = (expandedKeys, aaa) => {
console.log(expandedKeys, aaa,'xixixiiixi')
}
function onLoadData(treeNode) { function onLoadData(treeNode) {
teacherById.value = treeNode.id teacherById.value = treeNode.id
const promises = []; const promises = [];
@@ -293,7 +300,12 @@ function onLoadData(treeNode) {
}); });
} }
function stuStuOrgSelect(e, {selected: bool, selectedNodes, node, event}) { function stuStuOrgSelect(e, {selected: bool, selectedNodes, node, event}) {
console.log(selectedNodes) const index = stuTreeExpandedKeys.value.indexOf(node.id);
if (index === -1) {
stuTreeExpandedKeys.value.push(node.id);
} else {
stuTreeExpandedKeys.value.splice(index, 1);
}
teacherName.value = '' teacherName.value = ''
orgName.value = '' orgName.value = ''
orgId.value = '' orgId.value = ''
@@ -302,7 +314,7 @@ function stuStuOrgSelect(e, {selected: bool, selectedNodes, node, event}) {
teacherId.value = '' teacherId.value = ''
payrollPlaceCode.value = '' payrollPlaceCode.value = ''
payrollPlaceName.value = '' payrollPlaceName.value = ''
if(selectedNodes[0].isLeaf){ if(selectedNodes[0]?.isLeaf){
teacherName.value = selectedNodes[0].name teacherName.value = selectedNodes[0].name
orgName.value = selectedNodes[0].orgName orgName.value = selectedNodes[0].orgName
orgId.value = selectedNodes[0].departId orgId.value = selectedNodes[0].departId
@@ -401,13 +413,25 @@ const changeOut = () => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .ant-popover{
width: 300px;
hight: 400px;
top: 35px !important;
left: 0px !important;
}
.pover{ .pover{
::v-deep .ant-select-selector{
height: 30px !important;
border-radius: 4px !important;
line-height: 30px !important;
}
.search{ .search{
margin-top: 10px; margin-top: 10px;
} }
.tree{ .tree{
margin-top: 5px; margin-top: 5px;
border: 1px solid rgba(215, 215, 215, 1); border: 1px solid rgba(215, 215, 215, 1);
border-radius: 4px;
} }
.btn{ .btn{
margin-top: 10px; margin-top: 10px;
@@ -418,10 +442,11 @@ const changeOut = () => {
height: 25px; height: 25px;
color: #FFFFFF; color: #FFFFFF;
text-align: center; text-align: center;
line-height: 25px; // line-height: 25px;
cursor: pointer; cursor: pointer;
} }
.btn1{ .btn1{
line-height: 25px;
margin-right: 10px; margin-right: 10px;
background-color: rgba(170, 170, 170, 1); background-color: rgba(170, 170, 170, 1);
} }

View File

@@ -87,7 +87,7 @@
<a-upload name="avatar" list-type="picture-card" class="avatar-uploader" :show-upload-list="false" <a-upload name="avatar" list-type="picture-card" class="avatar-uploader" :show-upload-list="false"
:headers="headers" :before-upload="beforeUpload"> :headers="headers" :before-upload="beforeUpload">
<img class="i_upload_img" v-if="formParam.photo" :src="formParam.photo" alt="avatar" title="更换头像" /> <img class="i_upload_img" v-if="formParam.photo" :src="formParam.photo" alt="avatar" title="更换头像" />
<img class="i_upload_img" v-else src="../../assets/avatar.png" alt="avatar" title="更换头像" /> <img class="i_upload_img" v-else src="../../assets/Avatarman.png" alt="avatar" title="更换头像" />
<!-- <div class="i_upload" v-else> <!-- <div class="i_upload" v-else>
<div class="addimg"> <div class="addimg">
<div class="heng"></div> <div class="heng"></div>

View File

@@ -6,30 +6,30 @@
<a-form layout="inline"> <a-form layout="inline">
<a-form-item class="select"> <a-form-item class="select">
<!-- v-model:value="searchParam.name" --> <!-- v-model:value="searchParam.name" -->
<a-input v-model:value="searchParam.name" style="width: 276px; height: 40px; border-radius: 8px" <a-input v-model:value="searchParam.name" style="width: 235px; height: 40px; border-radius: 8px"
placeholder="请输入工号/讲师姓名进行检索" allowClear showSearch @pressEnter="searchSubmit"> placeholder="请输入工号/讲师姓名进行检索" allowClear showSearch @pressEnter="searchSubmit">
</a-input> </a-input>
</a-form-item> </a-form-item>
<a-form-item class="select"> <a-form-item class="select">
<a-select style="width: 276px" placeholder="请选择讲师体系" v-model:value="searchParam.tSystemId" allowClear <a-select style="width: 235px" placeholder="请选择讲师体系" v-model:value="searchParam.tSystemId" allowClear
:options="LecturerSystemList"> :options="LecturerSystemList" @keydown.enter="enterPressHadlerSearch">
</a-select> </a-select>
</a-form-item> </a-form-item>
<!-- <div @click="handlesearchlevel"> --> <!-- <div @click="handlesearchlevel"> -->
<a-form-item class="select" > <a-form-item class="select" >
<a-select style="width: 200px" v-model:value="searchParam.tLevelName" placeholder="请选择讲师级别" allowClear <a-select style="width: 200px" v-model:value="searchParam.tLevelName" placeholder="请选择讲师级别" allowClear
:options="getLevelList" > :options="getLevelList" @keydown.enter="enterPressHadlerSearch" >
<!-- :disabled="getLevelList.length !== 0 ? false : true" 禁用状态 --> <!-- :disabled="getLevelList.length !== 0 ? false : true" 禁用状态 -->
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item class="select"> <a-form-item class="select">
<a-select style="width: 200px ;margin-bottom:20px" v-model:value="searchParam.waitStatus" placeholder="在职状态" <a-select style="width: 170px ;margin-bottom:20px" v-model:value="searchParam.waitStatus" placeholder="在职状态"
:options="OnTheJobStatusList" allowClear> :options="OnTheJobStatusList" @keydown.enter="enterPressHadlerSearch" allowClear>
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item class="select"> <a-form-item class="select">
<a-select style="width: 200px ;" v-model:value="searchParam.certStatus" placeholder="认证状态" allowClear <a-select style="width: 170px ;" v-model:value="searchParam.certStatus" placeholder="认证状态" allowClear
:options="AuthenticationStatusList"> :options="AuthenticationStatusList" @keydown.enter="enterPressHadlerSearch">
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item class="select"> <a-form-item class="select">
@@ -139,7 +139,7 @@
<img class="i_upload_img" v-if="formParam.photo" :src="formParam.photo" alt="avatar" title="更换头像" /> <img class="i_upload_img" v-if="formParam.photo" :src="formParam.photo" alt="avatar" title="更换头像" />
<img class="i_upload_img" v-else-if="formParam.gender==1" src="../../assets/Avatarman.png" alt="avatar" title="更换头像" /> <img class="i_upload_img" v-else-if="formParam.gender==1" src="../../assets/Avatarman.png" alt="avatar" title="更换头像" />
<img class="i_upload_img" v-else-if="formParam.gender==2" src="../../assets/Avatarwoman.png" alt="avatar" title="更换头像" /> <img class="i_upload_img" v-else-if="formParam.gender==2" src="../../assets/Avatarwoman.png" alt="avatar" title="更换头像" />
<img class="i_upload_img" v-else src="../../assets/avatar.png" alt="avatar" title="更换头像" /> <img class="i_upload_img" v-else src="../../assets/Avatarman.png" alt="avatar" title="更换头像" />
<!-- <div class="i_upload" v-else> <!-- <div class="i_upload" v-else>
<div class="addimg"> <div class="addimg">
<div class="heng"></div> <div class="heng"></div>
@@ -198,13 +198,13 @@
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :span="24"> <a-col :span="24">
<a-form-item label="初始授课时长" name="defaultTeachingTime"> <a-form-item label="初始授课时长" name="defaultTeachingTime">
<a-input v-model:value="formParam.defaultTeachingTime" style="width:80%; height: 40px; border-radius: 8px; " <a-input v-model:value="formParam.defaultTeachingTime" style="width:100%; height: 40px; border-radius: 8px; "
:maxLength="8" :maxLength="8"
@change="clearNonNumber" placeholder="请输入初始授课时长" allowClear suffix="分钟"> @change="clearNonNumber" placeholder="请输入初始授课时长" allowClear suffix="分钟">
</a-input> </a-input>
<span style="margin-left: 5px ;" v-if="formParam.defaultTeachingTime === null">0.00小时</span> <!-- <span style="margin-left: 5px ;" v-if="formParam.defaultTeachingTime === null">0.00小时</span>
<span style="margin-left: 5px ;" v-if="formParam.defaultTeachingTime != null">{{ <span style="margin-left: 5px ;" v-if="formParam.defaultTeachingTime != null">{{
(formParam.defaultTeachingTime / 60).toFixed(2) }}小时</span> (formParam.defaultTeachingTime / 60).toFixed(2) }}小时</span> -->
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@@ -318,7 +318,7 @@
textAlign: 'right', textAlign: 'right',
zIndex: 1, zIndex: 1,
display: 'flex', display: 'flex',
justifyContent: 'center', justifyContent: 'end',
}"> }">
<a-button class="drabtn" @click="cancelTeacherDialog">取消</a-button> <a-button class="drabtn" @click="cancelTeacherDialog">取消</a-button>
<a-button class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存 <a-button class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
@@ -874,6 +874,11 @@ export default {
const tableData = ref([ const tableData = ref([
]) ])
const enterPressHadlerSearch = (e) => {
if(e.keyCode==13){
searchSubmit()
}
}
// 搜索 // 搜索
const searchSubmit = () => { const searchSubmit = () => {
state.searchParam.pageNo = 1 state.searchParam.pageNo = 1
@@ -963,6 +968,7 @@ export default {
const teacherTlevel = (val) => { const teacherTlevel = (val) => {
console.log(val,'vallll') console.log(val,'vallll')
if(val?.avatar){ if(val?.avatar){
val.avatar = val.avatar.includes('upload') ? val.avatar : '/upload' + val.avatar
state.formParam.photo = val.avatar state.formParam.photo = val.avatar
} }
state.formParam.gender = val?.gender state.formParam.gender = val?.gender
@@ -1329,6 +1335,7 @@ export default {
// PlaceOfPayList, // PlaceOfPayList,
AccountStatusList, AccountStatusList,
searchSubmit, searchSubmit,
enterPressHadlerSearch,
searchReset, searchReset,
columns, columns,
tableData, tableData,
@@ -1762,31 +1769,32 @@ export default {
} }
} }
.add_list{ .add_list{
width: 150%; width: 136%;
margin-right:20px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 10px; margin-top: 10px;
margin-bottom: 20px; margin-bottom: 20px;
// overflow: auto; // overflow: auto;
.add_item{ .add_item{
padding: 0 10px; padding: 5px 15px;
color: #096dd9; color: #096dd9;
background: #e6f7ff; background: #e6f7ff;
border: 1px solid #91d5ff; border: 1px solid #91d5ff;
margin-left: 10px; margin-left: 10px;
width: 66px; // width: 66px;
height: 22px; // height: 22px;
line-height: 22px; // line-height: 22px;
text-align: center; // text-align: center;
white-space: nowrap; // white-space: nowrap;
overflow: hidden; // overflow: hidden;
text-overflow: ellipsis; // text-overflow: ellipsis;
margin-bottom: 20px; margin-bottom: 20px;
font-size: 12px; font-size: 12px;
} }
.add_content { .add_content {
width: 20px; width: 30px;
height: 20px; height: 30px;
cursor: pointer; cursor: pointer;
border-radius: 50%; border-radius: 50%;
background-color: #4ea6ff; background-color: #4ea6ff;

View File

@@ -74,7 +74,7 @@
</div> </div>
<a-drawer v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false" dropdown-style="drawaer" <a-drawer v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false" dropdown-style="drawaer"
width="60%" :title="false"> width="60%" :title="false">
<div class="headers"> <div class="headers" style="margin-top:-24px;">
<div class="headerTitle">编辑讲师费</div> <div class="headerTitle">编辑讲师费</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer"
@@ -894,7 +894,7 @@ export default {
width: 200px; width: 200px;
} }
.headers { .headers {
height: 73px; height: 57px;
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;

View File

@@ -1690,7 +1690,7 @@ const column = ref([
width: 410px !important; width: 410px !important;
} }
.headers { .headers {
height: 73px; height: 57px;
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;