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

This commit is contained in:
zhangsir
2024-09-29 19:38:38 +08:00
5 changed files with 100 additions and 130 deletions

View File

@@ -700,24 +700,6 @@
mode="inline"
@click="handleClick"
>
<a-menu-item key="sub24" @titleClick="titleClick">
<router-link to="/lecturerlist">讲师列表</router-link>
</a-menu-item>
<a-menu-item key="sub25" @titleClick="titleClick">
<router-link to="/teachingrecord">授课记录</router-link>
</a-menu-item>
<a-menu-item key="sub26" @titleClick="titleClick">
<router-link to="/lecturerfeemanagement">讲师费管理</router-link>
</a-menu-item>
<a-menu-item key="sub27" @titleClick="titleClick">
<router-link to="/lecturerfeestatistics">讲师费统计</router-link>
</a-menu-item>
<a-menu-item key="sub28" @titleClick="titleClick">
<router-link to="/organization">归属组织管理</router-link>
</a-menu-item>
<a-menu-item key="sub29" @titleClick="titleClick">
<router-link to="/lecturerSystem">讲师体系管理</router-link>
</a-menu-item>
<a-menu-item key="sub10" @titleClick="titleClick">
<router-link to="/coursereviewedn">审核</router-link>
</a-menu-item>
@@ -788,7 +770,24 @@
<a-menu-item key="sub20" v-if="checkMenu('dictmanage')">
<router-link to="/dictmanage">字典</router-link>
</a-menu-item>
<a-menu-item key="sub24" @titleClick="titleClick">
<router-link to="/lecturerlist">讲师列表</router-link>
</a-menu-item>
<a-menu-item key="sub25" @titleClick="titleClick">
<router-link to="/teachingrecord">授课记录</router-link>
</a-menu-item>
<a-menu-item key="sub26" @titleClick="titleClick">
<router-link to="/lecturerfeemanagement">讲师费管理</router-link>
</a-menu-item>
<a-menu-item key="sub27" @titleClick="titleClick">
<router-link to="/lecturerfeestatistics">讲师费统计</router-link>
</a-menu-item>
<a-menu-item key="sub28" @titleClick="titleClick">
<router-link to="/organization">归属组织管理</router-link>
</a-menu-item>
<a-menu-item key="sub29" @titleClick="titleClick">
<router-link to="/lecturerSystem">讲师体系管理</router-link>
</a-menu-item>
</a-menu>
</div>
</div>
@@ -834,6 +833,8 @@ export default {
"sub25",
"sub26",
"sub27",
"sub28",
"sub29",
],
openKeys: localStorage.getItem("openKeys")
? JSON.parse(localStorage.getItem("openKeys"))
@@ -1055,30 +1056,42 @@ export default {
selectedKeys: "sub23-1",
pagename: "测评上传",
},
// {
// href: "/lecturerlist",
// openKeys: "sub24",
// selectedKeys: "sub24",
// pagename: "讲师列表",
// },
// {
// href: "/externallecturer",
// openKeys: "sub25",
// selectedKeys: "sub25",
// pagename: "外部讲师",
// },
// {
// href: "/insideteaching",
// openKeys: "sub26",
// selectedKeys: "sub26",
// pagename: "内部授课",
// },
// {
// href: "/externalteaching",
// openKeys: "sub27",
// selectedKeys: "sub27",
// pagename: "外部授课",
// },
{
href: "/lecturerlist",
openKeys: "sub24",
selectedKeys: "sub24",
pagename: "讲师列表",
},
{
href: "/teachingrecord",
openKeys: "sub25",
selectedKeys: "sub25",
pagename: "授课记录",
},
{
href: "/lecturerfeemanagement",
openKeys: "sub26",
selectedKeys: "sub26",
pagename: "讲师费管理",
},
{
href: "/lecturerfeestatistics",
openKeys: "sub27",
selectedKeys: "sub27",
pagename: "讲师费统计",
},
{
href: "/organization",
openKeys: "sub28",
selectedKeys: "sub28",
pagename: "归属组织管理",
},
{
href: "/lecturerSystem",
openKeys: "sub29",
selectedKeys: "sub29",
pagename: "讲师体系管理",
},
{
href: "/download",
openKeys: "sub15",

View File

@@ -151,12 +151,12 @@ const searchMember = (keyword) => {
return {
value: item.realName,
label: item.realName+'('+item.userNo+')'+item.orgName,
system: item.realName+'('+item.userNo+')'+item.systemName,
level: item.realName+'('+item.userNo+')'+item.levelName,
system: item.realName+'('+item.userNo+')'+item.tSystemName,
level: item.realName+'('+item.userNo+')'+item.sLevelName,
key: item.id,
orgName: item.orgName,
systemName:item.systemName,
levelName:item.levelName
tSystemName:item.tSystemName,
sLevelName:item.sLevelName
}
})
}else{

View File

@@ -1,36 +0,0 @@
<template>
<div>
<input type="file" @change="handleFileUpload" />
<img :src="avatarUrl" alt="Avatar" v-if="avatarUrl" />
</div>
</template>
<script>
export default {
data() {
return {
avatarUrl: '' // 存储头像的 URLBase64 编码或服务器 URL
};
},
methods: {
handleFileUpload(event) {
const file = event.target.files[0]; // 获取用户选择的文件
if (!file) return;
// 创建一个 FileReader 实例
const reader = new FileReader();
// 读取文件内容,并在读取完成后设置 img 的 src
reader.onload = (e) => {
this.avatarUrl = e.target.result; // e.target.result 是 Base64 编码的字符串
};
// 读取文件内容(作为 DataURL
reader.readAsDataURL(file);
// 如果你需要上传文件到服务器,可以在这里添加代码
// 例如,使用 Axios 发送 POST 请求到服务器
}
}
};
</script>

View File

@@ -17,7 +17,7 @@
</a-form-item>
<!-- <div @click="handlesearchlevel"> -->
<a-form-item class="select" >
<a-select style="width: 276px" v-model:value="searchParam.levelId" placeholder="请选择讲师级别" allowClear
<a-select style="width: 276px" v-model:value="searchParam.sLevelName" placeholder="请选择讲师级别" allowClear
:options="getLevelList" >
<!-- :disabled="getLevelList.length !== 0 ? false : true" 禁用状态 -->
</a-select>
@@ -144,7 +144,7 @@
<a-col :span="24">
<a-form-item label="讲师名称" name="name">
<SearchTeacher v-model:value="formParam.name" v-model:lable="formParam.orgName"
v-model:system="formParam.systemName" v-model:level="formParam.levelName"></SearchTeacher>
v-model:system="formParam.tSystemName" v-model:level="formParam.sLevelName"></SearchTeacher>
</a-form-item>
</a-col>
<a-col :span="24">
@@ -162,19 +162,19 @@
</a-col>
</a-row>
<a-col :span="24">
<a-form-item label="讲师体系" name="systemId">
<!-- <a-select class="draitem" v-model:value="formParam.systemId" placeholder="请选择讲师体系" allowClear
<a-form-item label="讲师体系" name="tSystemName">
<!-- <a-select class="draitem" v-model:value="formParam.tSystemName" placeholder="请选择讲师体系" allowClear
@change="changetlevel" .:options="LecturerSystemList">
</a-select> -->
<a-input disabled v-model:value="formParam.systemName" class="draitem"
<a-input disabled v-model:value="formParam.tSystemName" class="draitem"
placeholder="自动带出讲师的体系" allowClear showSearch>
</a-input>
</a-form-item>
</a-col>
<a-col :span="24">
<!-- <div @click="handleformlevel"> -->
<a-form-item label="讲师级别" name="levelId">
<a-select class="draitem" v-model:value="formParam.levelId" placeholder="请选择讲师级别" allowClear
<a-form-item label="讲师级别" name="sLevelName">
<a-select class="draitem" v-model:value="formParam.sLevelName" placeholder="请选择讲师级别" allowClear
:disabled="getLevelList.length !== 0 ? false : true" :options="getLevelList">
</a-select>
</a-form-item>
@@ -421,8 +421,8 @@ export default {
pageNo: 1,
// pageSize1: "10",
teacherNameOrUserNo: null,
systemId: null,
levelId: null,
tSystemName: null,
sLevelName: null,
waitStatus: null,
certStatus: null,
courses: null,
@@ -810,8 +810,8 @@ export default {
name: null,
userNo: null,
newdepartId: null,
systemid: null,
levelId: null,
tsystemname: null,
sLevelName: null,
waitStatus: null,
certStatus: null,
salaryName: null,
@@ -1005,9 +1005,9 @@ export default {
photo: null,
teacherNameOrUserNo: null,
newdepartId: null,
levelId: null,
sLevelName: null,
defaultteachingTime:null,
systemId: null,
tSystemName: null,
certStatus: 0,
description: '',
workExperience: '',
@@ -1020,8 +1020,8 @@ export default {
const rules = {
name: [{ required: true, message: '讲师不能为空' }],
newdepartId: [{ required: true, message: '组织不能为空' }],
levelId: [{ required: true, message: '讲师级别不能为空' }],
systemId: [{ required: true, message: '讲师体系不能为空' }],
sLevelName: [{ required: true, message: '讲师级别不能为空' }],
tSystemName: [{ required: true, message: '讲师体系不能为空' }],
defaultteachingTime: [{ required: true, message: '' }],
certStatus: [{ required: true, message: '认证状态不能为空' }],
@@ -1037,12 +1037,12 @@ export default {
message.warning('组织不能为空')
return
}
if (state.formParam.levelId == null) {
if (state.formParam.sLevelName == null) {
state.log = true
message.warning('讲师级别不能为空')
return
}
if (state.formParam.systemId == null) {
if (state.formParam.tSystemName == null) {
state.log = true
message.warning('讲师体系不能为空')
return
@@ -1099,7 +1099,7 @@ export default {
// }
// const handlesearchlevel = () => {
// console.log('请先选择讲师体系')
// if (state.searchParam.systemId == undefined) {
// if (state.searchParam.tSystemName == undefined) {
// message.warning('请先选择讲师体系')
// }
// }
@@ -1112,13 +1112,7 @@ export default {
//导出功能
const handleExport = () => {
window.open(
`${process.env.VUE_APP_BASE_API}/teacher/export?pageNo=${state.searchParam.pageNo
}&pageSize=${state.searchParam.pageSize}&teacherNameOrUserNo=${state.searchParam.teacherNameOrUserNo ? state.searchParam.teacherNameOrUserNo : ""}
&systemId=${state.searchParam.systemId ? state.searchParam.systemId : ""}
&levelId=${state.searchParam.levelId ? state.searchParam.levelId : ""
}&waitStatus=${state.searchParam.waitStatus ? state.searchParam.waitStatus : ""}
&certStatus=${state.searchParam.certStatus ? state.searchParam.certStatus : ""
}&courses=${state.searchParam.courses ? state.searchParam.courses : ""}`
`${process.env.VUE_APP_BASE_API}/teacher/export?pageNo=${state.searchParam.pageNo}&pageSize=${state.searchParam.pageSize}&teacherNameOrUserNo=${state.searchParam.teacherNameOrUserNo ? state.searchParam.teacherNameOrUserNo : ""}&systemId=${state.searchParam.systemId ? state.searchParam.systemId : ""}&sLevelName=${state.searchParam.sLevelName ? state.searchParam.sLevelName : "" }&waitStatus=${state.searchParam.waitStatus ? state.searchParam.waitStatus : ""}&certStatus=${state.searchParam.certStatus ? state.searchParam.certStatus : ""}&courses=${state.searchParam.courses ? state.searchParam.courses : ""}`
);
// this.download('lesson_records/export', {
// ...state.searchParam

View File

@@ -134,37 +134,37 @@
<a-drawer v-model:visible="teacherdialog" placement="right" @closa="cancelTeacherDialog" :maskClosable="true"
dropdown-style="drawaer" width="60%" :title="teacherdialogtitle">
<a-form :model="formParam" :rules="rules" layout="vertical" ref="formRef">
<!-- 讲师姓名 teacher 组织 departId-->
<!-- 讲师姓名 teacher 组织 orgName-->
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="讲师名称" name="teacher">
<SearchTeacher v-model:value="formParam.teacher" v-model:lable="formParam.orgName"
v-model:system="formParam.systemName" v-model:level="formParam.levelName"></SearchTeacher>
v-model:system="formParam.tSystemName" v-model:level="formParam.sLevelName"></SearchTeacher>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="讲师组织" name="departId">
<a-form-item label="讲师组织" name="orgName">
<a-popover title="讲师组织">
<template #content>
{{ formParam.departId }}
{{ formParam.orgName }}
</template>
<a-input disabled v-model:value="formParam.departId" class="draitem"
<a-input disabled v-model:value="formParam.orgName" class="draitem"
placeholder="自动带出讲师的组织,展示主要部分,鼠标浮上去展示所有" allowClear showSearch>
</a-input>
</a-popover>
</a-form-item>
</a-col>
</a-row>
<!-- 讲师体系 systemId 级别 levelId -->
<!-- 讲师体系 tSystemName 级别 levelId -->
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="讲师体系" name="systemId">
<a-form-item label="讲师体系" name="tSystemName">
<a-popover title="讲师体系">
<template #content>
{{ formParam.systemName }}
{{ formParam.tSystemName }}
</template>
<a-input disabled v-model:value="formParam.systemName" class="draitem"
<a-input disabled v-model:value="formParam.tSystemName" class="draitem"
placeholder="自动带出讲师体系" allowClear showSearch>
</a-input>
</a-popover>
@@ -174,10 +174,9 @@
<a-form-item label="讲师级别" name="levelId">
<a-popover title="讲师级别">
<template #content>
{{ formParam.levelName }}
{{ formParam.sLevelName }}
</template>
<a-input v-model:value="formParam.levelName" class="draitem"
:disabled="getLevelList.length !== 0 ? false : true"
<a-input v-model:value="formParam.sLevelName" class="draitem"
placeholder="自动带出讲师级别" allowClear showSearch>
</a-input>
</a-popover>
@@ -281,7 +280,7 @@
<a-descriptions-item label="讲师工号">{{ formParam.userNo }}</a-descriptions-item>
<a-descriptions-item label="讲师组织" :span="2">{{ formParam.organizationName }}</a-descriptions-item>
<a-descriptions-item label="讲师体系">{{ formParam.systemName }}</a-descriptions-item>
<a-descriptions-item label="讲师级别">{{ formParam.levelName }}</a-descriptions-item>
<a-descriptions-item label="讲师级别">{{ formParam.sLevelName }}</a-descriptions-item>
<a-descriptions-item label="录入方式">
{{ formParam.entryType == 0 ? '系统生成' : formParam.entryType == 1 ? '手动录入' : '' }}</a-descriptions-item>
<a-descriptions-item label="课程类型">{{ formParam.type == 1 ? '项目开课' : formParam.type == 2 ? '路径开课' : formParam.type == 3
@@ -899,8 +898,8 @@ export default {
state.formParam = {
teacherType: '0',
teacher: null,
departId: null,
systemId: null,
orgName: null,
tSystemName: null,
levelId: null,
courseName: null,
duration:null,
@@ -952,8 +951,8 @@ export default {
teacherType: '0',
teacherName: record.teacherName,
userNo: record.userNo,
departId: record.departId,
systemId: record.systemId,
orgName: record.orgName,
tSystemName: record.tSystemName,
levelId: record.levelId,
type: record.type,
courseName: record.courseName,
@@ -977,7 +976,7 @@ export default {
userNo: record.userNo,
organizationName: record.organizationName,
systemName: record.systemName,
levelName: record.levelName,
sLevelName: record.sLevelName,
type: record.type,
courseName: record.courseName,
status:record.status,
@@ -1054,9 +1053,9 @@ export default {
const tableDatas = ref([])
const rules = {
teacher: [{ required: true, message: '讲师不能为空' }],
departId: [{ required: true, message: '讲师组织不能为空' }],
orgName: [{ required: true, message: '讲师组织不能为空' }],
levelId: [{ required: true, message: '讲师级别不能为空' }],
systemId: [{ required: true, message: '讲师体系不能为空' }],
tSystemName: [{ required: true, message: '讲师体系不能为空' }],
id: [{ required: true, message: '内容分类不能为空' }],
courseName: [{ required: true, message: '课程名称不能为空' }],
beginTime: [{ required: true, message: '授课/课程日期不能为空' }],
@@ -1068,7 +1067,7 @@ export default {
state.log = true
message.warning('讲师不能为空')
}
if (state.formParam.departId == null) {
if (state.formParam.orgName == null) {
state.log = true
message.warning('组织不能为空')
}
@@ -1076,7 +1075,7 @@ export default {
state.log = true
message.warning('讲师级别不能为空')
}
if (state.formParam.systemId == null) {
if (state.formParam.tSystemName == null) {
state.log = true
message.warning('讲师体系不能为空')
}