mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-08 18:36:46 +08:00
讲师列表页面调整
This commit is contained in:
8
.env
8
.env
@@ -2,6 +2,7 @@
|
|||||||
VUE_APP_BASE=/manage
|
VUE_APP_BASE=/manage
|
||||||
# api项目基础url
|
# api项目基础url
|
||||||
VUE_APP_BASE_API=/manageApi
|
VUE_APP_BASE_API=/manageApi
|
||||||
|
VUE_APP_BASE_API1=https://pretest.zcwytd.com/
|
||||||
# systemApi
|
# systemApi
|
||||||
VUE_APP_SYS_API=/systemapi
|
VUE_APP_SYS_API=/systemapi
|
||||||
# activityApi
|
# activityApi
|
||||||
@@ -13,11 +14,12 @@ VUE_APP_TOOL_FOLDERID=1147577145918910464
|
|||||||
#文件路径
|
#文件路径
|
||||||
VUE_APP_FILE_PATH=/upload/
|
VUE_APP_FILE_PATH=/upload/
|
||||||
# 代理url 本地调试,不可以用在其他地方
|
# 代理url 本地调试,不可以用在其他地方
|
||||||
VUE_APP_PROXY_URL=//u-pre.boe.com/manageApi
|
VUE_APP_PROXY_URL=//47.97.44.123:30001/
|
||||||
|
# VUE APP PROXY URL=//u-pre.boe.com/manageApi
|
||||||
# 登录url
|
# 登录url
|
||||||
VUE_APP_LOGIN_URL=//u-pre.boe.com/web?returnUrl=
|
VUE_APP_LOGIN_URL=//pretest.zcwytd.com/web?returnUrl=
|
||||||
# boe域名
|
# boe域名
|
||||||
VUE_APP_BOE_API_URL=//u-pre.boe.com
|
VUE_APP_BOE_API_URL=//47.97.44.123:30001
|
||||||
#打包路径
|
#打包路径
|
||||||
VUE_APP_OUTPUT_DIR=./dist
|
VUE_APP_OUTPUT_DIR=./dist
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export const getTeacherSystemList = (obj) => http.post('/admin/teacher/getSystem
|
|||||||
// 获取内部讲师列表
|
// 获取内部讲师列表
|
||||||
export const getTeacherList = (obj) => http.post('/admin/teacher/getInTeacherList', obj)
|
export const getTeacherList = (obj) => http.post('/admin/teacher/getInTeacherList', obj)
|
||||||
//获取内部讲师发薪地
|
//获取内部讲师发薪地
|
||||||
export const getTeacherPayRollPriceList = (obj) => http.post('/admin/teacher/getPayRollPlace', obj)
|
export const getPayRollPlace = (obj) => http.post('/admin/teacher/getPayRollPlace', obj)
|
||||||
//获取内部讲师级别
|
//获取内部讲师级别
|
||||||
export const getLevel = (obj) => http.post('/admin/teacher/getLevel', obj)
|
export const getLevel = (obj) => http.post('/admin/teacher/getLevel', obj)
|
||||||
//新增内部讲师
|
//新增内部讲师
|
||||||
@@ -21,7 +21,7 @@ export const insertTeacher = (obj) => http.post('/admin/teacher/insertInTeacher'
|
|||||||
//修改 内部讲师
|
//修改 内部讲师
|
||||||
export const updateInTeacher = (obj) => http.post('/admin/teacher/updateInTeacher' ,obj)
|
export const updateInTeacher = (obj) => http.post('/admin/teacher/updateInTeacher' ,obj)
|
||||||
//内部讲师详情
|
//内部讲师详情
|
||||||
export const getTeacherById= (obj) => http.post(`/admin/teacher/getTeacherById?userNo=${obj}`)
|
export const getTeacherById= (obj) => http.post(`/admin/teacher/getTeacherById?id=${obj}`)
|
||||||
//删除内部讲师
|
//删除内部讲师
|
||||||
export const deleteInTeacher= (obj) => http.post(`/admin/teacher/deleteInTeacher?id=${obj}`)
|
export const deleteInTeacher= (obj) => http.post(`/admin/teacher/deleteInTeacher?id=${obj}`)
|
||||||
//修改内部讲师状态
|
//修改内部讲师状态
|
||||||
|
|||||||
@@ -613,69 +613,35 @@
|
|||||||
<a-menu-item key="sub24-1">
|
<a-menu-item key="sub24-1">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub24-1' ? true : false,
|
circleActive: selectedKeys[0] === 'sub27-1' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub24-1' ? false : true,
|
circle: selectedKeys[0] === 'sub27-1' ? false : true,
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/insidelecturer">内部讲师</router-link>
|
<router-link to="/lecturerList">讲师列表</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub24-2">
|
<a-menu-item key="sub24-2">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub24-2' ? true : false,
|
circleActive: selectedKeys[0] === 'sub27-2' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub24-2' ? false : true,
|
circle: selectedKeys[0] === 'sub27-2' ? false : true,
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/externallecturer">外部讲师</router-link>
|
<router-link to="/teachingRecord">授课记录</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
<a-menu-item key="sub24-3">
|
||||||
<a-sub-menu key="sub25" @titleClick="titleClick">
|
|
||||||
<template #icon>
|
|
||||||
<div class="imgBox">
|
|
||||||
<img style="width: 15px; height: 15px" src="../assets/images/navleft/project.png" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<template #title>授课记录</template>
|
|
||||||
<a-menu-item key="sub25-1">
|
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub25-1' ? true : false,
|
circleActive: selectedKeys[0] === 'sub27-3' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub25-1' ? false : true,
|
circle: selectedKeys[0] === 'sub27-3' ? false : true,
|
||||||
}"
|
|
||||||
></span>
|
|
||||||
<router-link to="/insideteaching">内部授课</router-link>
|
|
||||||
</a-menu-item>
|
|
||||||
<a-menu-item key="sub25-2">
|
|
||||||
<span
|
|
||||||
:class="{
|
|
||||||
circleActive: selectedKeys[0] === 'sub25-2' ? true : false,
|
|
||||||
circle: selectedKeys[0] === 'sub25-2' ? false : true,
|
|
||||||
}"
|
|
||||||
></span>
|
|
||||||
<router-link to="/externalteaching">外部授课</router-link>
|
|
||||||
</a-menu-item>
|
|
||||||
</a-sub-menu>
|
|
||||||
<a-sub-menu key="sub26" @titleClick="titleClick">
|
|
||||||
<template #icon>
|
|
||||||
<div class="imgBox">
|
|
||||||
<img style="width: 15px; height: 15px" src="../assets/images/navleft/project.png" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<template #title>讲师费</template>
|
|
||||||
<a-menu-item key="sub26-1">
|
|
||||||
<span
|
|
||||||
:class="{
|
|
||||||
circleActive: selectedKeys[0] === 'sub26-1' ? true : false,
|
|
||||||
circle: selectedKeys[0] === 'sub26-1' ? false : true,
|
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/lecturerfeemanagement">讲师费管理</router-link>
|
<router-link to="/lecturerfeemanagement">讲师费管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub26-2">
|
<a-menu-item key="sub24-4">
|
||||||
<span
|
<span
|
||||||
:class="{
|
:class="{
|
||||||
circleActive: selectedKeys[0] === 'sub26-2' ? true : false,
|
circleActive: selectedKeys[0] === 'sub27-4' ? true : false,
|
||||||
circle: selectedKeys[0] === 'sub26-2' ? false : true,
|
circle: selectedKeys[0] === 'sub27-4' ? false : true,
|
||||||
}"
|
}"
|
||||||
></span>
|
></span>
|
||||||
<router-link to="/lecturerfeestatistics">讲师费统计</router-link>
|
<router-link to="/lecturerfeestatistics">讲师费统计</router-link>
|
||||||
@@ -696,20 +662,18 @@
|
|||||||
mode="inline"
|
mode="inline"
|
||||||
@click="handleClick"
|
@click="handleClick"
|
||||||
>
|
>
|
||||||
|
|
||||||
<a-menu-item key="sub24" @titleClick="titleClick">
|
<a-menu-item key="sub24" @titleClick="titleClick">
|
||||||
<router-link to="/insidelecturer">内部讲师</router-link>
|
<router-link to="/lecturerList">讲师列表</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub25" @titleClick="titleClick">
|
<a-menu-item key="sub25" @titleClick="titleClick">
|
||||||
<router-link to="/externallecturer">外部讲师</router-link>
|
<router-link to="/teachingRecord">授课记录</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub26" @titleClick="titleClick">
|
<a-menu-item key="sub26" @titleClick="titleClick">
|
||||||
<router-link to="/insideteaching">内部授课</router-link>
|
<router-link to="/lecturerfeemanagement">讲师费管理</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub27" @titleClick="titleClick">
|
<a-menu-item key="sub27" @titleClick="titleClick">
|
||||||
<router-link to="/externalteaching">外部授课</router-link>
|
<router-link to="/lecturerfeestatistics">讲师费统计</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
|
||||||
<a-menu-item key="sub10" @titleClick="titleClick">
|
<a-menu-item key="sub10" @titleClick="titleClick">
|
||||||
<router-link to="/coursereviewedn">审核</router-link>
|
<router-link to="/coursereviewedn">审核</router-link>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
|||||||
@@ -7,10 +7,11 @@
|
|||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div style="border: 1px solid #ccc; width: 100%; ">
|
<div style="border: 1px solid #ccc; width: 100%; ">
|
||||||
<Toolbar style="border-bottom: 1px solid #ccc ;font-size:4px" :editor="editorRef" :defaultConfig="toolbarConfig" mode="default" />
|
<Toolbar style="border-bottom: 1px solid #ccc ;font-size:4px" :editor="editorRef" :defaultConfig="toolbarConfig" mode="simple" />
|
||||||
<Editor style="height: 100px; overflow-y: hidden" v-model="valueHtml" :defaultConfig="editorConfig" mode="default" @onCreated="handleCreated" @customPaste="customPaste" />
|
<Editor style="height: 100px; overflow-y: hidden" v-model="valueHtml" :defaultConfig="editorConfig" mode="simple" @onCreated="handleCreated" @customPaste="customPaste" />
|
||||||
|
<span>{{ }}</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- <el-button style="margin: 0 auto" @click="getEditorHTML">获取富文本HTML内容</el-button> -->
|
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
// 富文本编辑器文档链接: https://www.wangeditor.com/v5/getting-started.html
|
// 富文本编辑器文档链接: https://www.wangeditor.com/v5/getting-started.html
|
||||||
@@ -31,13 +32,23 @@
|
|||||||
// 自定义图片上传
|
// 自定义图片上传
|
||||||
editorConfig.value.MENU_CONF['uploadImage'] = {
|
editorConfig.value.MENU_CONF['uploadImage'] = {
|
||||||
async customUpload(file, insertFn) {
|
async customUpload(file, insertFn) {
|
||||||
console.log('上传图片', file);
|
const formData = new FormData();
|
||||||
// 将上传的file图片转换为base64
|
formData.append("file", file);
|
||||||
const base64 = URL.createObjectURL(file);
|
fileUp(formData).then((res) => {
|
||||||
|
if (res.data.code === 200) {
|
||||||
// 这里的file为上传的图片对象,insertFn传入
|
// 最后插入图片 url alt href
|
||||||
insertFn(base64, 'img');
|
console.log(
|
||||||
},
|
"上传图片结果",
|
||||||
|
process.env.VUE_APP_FILE_PATH + res.data.data
|
||||||
|
);
|
||||||
|
insertFn(
|
||||||
|
process.env.VUE_APP_FILE_PATH + res.data.data,
|
||||||
|
file.name,
|
||||||
|
res.data.data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// 自定义视频上传
|
// 自定义视频上传
|
||||||
@@ -63,12 +74,6 @@
|
|||||||
callback(false);
|
callback(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// // 获取富文本html内容
|
|
||||||
// const getEditorHTML = () => {
|
|
||||||
// console.log(editorRef.value.getHtml());
|
|
||||||
// };
|
|
||||||
|
|
||||||
// 组件销毁时,也及时销毁编辑器
|
// 组件销毁时,也及时销毁编辑器
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
const editor = editorRef.value;
|
const editor = editorRef.value;
|
||||||
|
|||||||
@@ -69,112 +69,112 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 弹窗组件 -->
|
<!-- 弹窗组件 -->
|
||||||
<a-modal :visible="teacherdialog" @ok="closeModal2" :footer="null" :closable="false"
|
<a-drawer v-model:visible="teacherdialog" placement="right" @closa="cancelTeacherDialog" :maskClosable="true"
|
||||||
wrapClassName="CreatePath" >
|
width="60%" :title="teacherdialogtitle">
|
||||||
<div class="out">
|
<a-form :model="formParam" :rules="rules" layout="vertical">
|
||||||
<div class="top">
|
<!-- 基本信息 -->
|
||||||
<div class="topc">{{teacherdialogtitle }}</div>
|
<a-row>
|
||||||
<div @click="cancelTeacherDialog" style="margin-left: 650px; cursor: pointer">
|
<a-col :span="24">
|
||||||
<img
|
<span class="line"></span><span>基本信息</span>
|
||||||
style="width: 20px; height: 20px"
|
</a-col>
|
||||||
src="../../assets/images/basicinfo/close.png"
|
<!-- 头像 -->
|
||||||
/>
|
</a-row>
|
||||||
</div>
|
<a-row :gutter="16">
|
||||||
</div>
|
<a-col :span="24">
|
||||||
<div style="padding-bottom: 15px;">
|
<a-upload
|
||||||
<div class="headerLeft" style="margin-left: 33px">
|
v-model:file-list="fileList"
|
||||||
<a-button @click="particulars" v-if="teacherdialog1 == 1">个人详情</a-button>
|
name="avatar"
|
||||||
<a-button @click="teacherrecords" v-if="teacherdialog1 == 1">授课记录</a-button>
|
list-type="picture-card"
|
||||||
</div>
|
class="avatar-uploader"
|
||||||
<!-- 个人详情 -->
|
:show-upload-list="false"
|
||||||
<div style=" margin-left: 33px; margin-right: 33px; margin-bottom: 33px;"
|
action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
|
||||||
v-show="tagsshow == 1">
|
:before-upload="beforeUpload"
|
||||||
<div class="ExternalLecturer">
|
@change="handleChange"
|
||||||
<div class="filter">
|
/>
|
||||||
<div class="filterItems">
|
</a-col>
|
||||||
<!-- <div class="select">
|
</a-row>
|
||||||
<span style="display:inline-block ;width:100px ;text-align:center ">头像 :</span>
|
<!-- 讲师名称 ,手机号码-->
|
||||||
|
<a-row :gutter="16">
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item label="讲师名称" name="name">
|
||||||
|
<a-tree-select v-model:value="formParam.name" tree-data-simple-mode style=" width:276px ;"
|
||||||
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" :tree-data="treeData" placeholder="请输入讲师名称" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item label="手机号码" name="mobile">
|
||||||
|
<a-input v-model:value="formParam.mobile" style="width:276px; height: 40px; "
|
||||||
|
placeholder="请输入手机号码" allowClear showSearch>
|
||||||
|
</a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<!-- 供应商 ,邮箱-->
|
||||||
|
<a-row :gutter="16">
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item label="供应商" name="levelId">
|
||||||
|
<a-input v-model:value="formParam.userNo" style="width:276px; height: 40px; "
|
||||||
|
placeholder="请输入供应商" allowClear showSearch>
|
||||||
|
</a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item label="讲师邮箱" name="email">
|
||||||
|
<a-input v-model:value="formParam.email" style="width:276px; height: 40px; "
|
||||||
|
placeholder="请输入讲师邮箱" allowClear showSearch>
|
||||||
|
</a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
|
||||||
</div> -->
|
<!-- 其他信息 -->
|
||||||
<div class="select">
|
<a-row>
|
||||||
<div style="display:inline-block ;width:5px ;text-align:center ">
|
<a-col :span="24">
|
||||||
<img style="width: 5px; height: 5px" src="../../assets/images/basicinfo/asterisk.png" />
|
<span class="line"></span><span>其他信息</span>
|
||||||
</div>
|
</a-col>
|
||||||
<!-- v-model:value="searchParam.name" -->
|
</a-row>
|
||||||
<span style="display:inline-block ;width:80px ;text-align:center ">讲师姓名 :</span>
|
<!-- 讲师介绍 -->
|
||||||
<a-input v-if="teacherdialog1 == 0" v-model:value="formParam.name" style="width:200px; height: 40px; "
|
<a-row :gutter="16">
|
||||||
placeholder="请输入讲师姓名" allowClear showSearch>
|
<a-col :span="24">
|
||||||
</a-input>
|
<a-form-item label="讲师介绍">
|
||||||
<span v-if="teacherdialog1 == 1" class=display1>{{ formParam.name }}</span>
|
<Editor v-model="formParam.description "/>
|
||||||
</div>
|
</a-form-item>
|
||||||
<div class="select">
|
</a-col>
|
||||||
<div style="display:inline-block ;width:5px ;text-align:center ">
|
</a-row>
|
||||||
<img style="width: 5px; height: 5px" src="../../assets/images/basicinfo/asterisk.png" />
|
<!-- 备注 -->
|
||||||
</div>
|
<a-row :gutter="16">
|
||||||
<span style="display:inline-block ;width:80px ;text-align:center ">手机号码 :</span>
|
<a-col :span="24">
|
||||||
<a-input v-if="teacherdialog1 == 0" v-model:value="formParam.mobile" style="width:200px; height: 40px; "
|
<a-form-item label="备注">
|
||||||
placeholder="请输入11位手机号码" allowClear showSearch>
|
<a-textarea v-if="teacherdialog1 == 0"
|
||||||
</a-input>
|
|
||||||
<span v-if="teacherdialog1 == 1" class=display1>{{ formParam.mobile }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="select">
|
|
||||||
<div style="display:inline-block ;width:5px ;text-align:center ">
|
|
||||||
<img style="width: 5px; height: 5px" src="../../assets/images/basicinfo/asterisk.png" />
|
|
||||||
</div>
|
|
||||||
<span style="display:inline-block ;width:80px ;text-align:center ">邮箱:</span>
|
|
||||||
<a-input v-if="teacherdialog1 == 0" v-model:value="formParam.email" style="width:200px; height: 40px;"
|
|
||||||
placeholder="" allowClear showSearch>
|
|
||||||
</a-input>
|
|
||||||
<span v-if="teacherdialog1 == 1" class=display1>{{ formParam.email }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="select">
|
|
||||||
<!-- <Editor/> -->
|
|
||||||
<div class="select">
|
|
||||||
<span style="display:inline-block ;width:80px ; text-align:center ">讲师介绍 :</span>
|
|
||||||
</div>
|
|
||||||
<Editor v-if="teacherdialog1 == 0" v-model="formParam.description"
|
|
||||||
style="width: 500px ;display:inline-block ; margin-top:-50px ;margin-left:80px " />
|
|
||||||
<span v-if="teacherdialog1 == 1" style="display: block; width: 500px;">{{ formParam.description
|
|
||||||
}}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 备注 -->
|
|
||||||
<div style="width: 834px;height: 1px;"></div>
|
|
||||||
<span style="display:inline-block ;width:115px ;text-align:center ">备注 :</span>
|
|
||||||
<a-textarea v-if="teacherdialog1 == 0"
|
|
||||||
v-model:value="formParam.remark"
|
v-model:value="formParam.remark"
|
||||||
showCount
|
showCount
|
||||||
:maxlength="200"
|
:maxlength="200"
|
||||||
style="width: 500px; height: 100px; border-radius: 8px"
|
style="width: 100%; height: 100px; border-radius: 8px"
|
||||||
placeholder="请输入"/>
|
placeholder="请输入"/>
|
||||||
<span v-if="teacherdialog1 == 1" class=display1>{{ formParam.remark }}</span>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
<!-- 交互按钮 -->
|
||||||
|
<div
|
||||||
|
:style="{
|
||||||
|
position: 'absolute',
|
||||||
|
right: 0,
|
||||||
|
bottom: 0,
|
||||||
|
width: '100%',
|
||||||
|
borderTop: '1px solid #e9e9e9',
|
||||||
|
padding: '10px 16px',
|
||||||
|
background: '#fff',
|
||||||
|
textAlign: 'right',
|
||||||
|
zIndex: 1,
|
||||||
|
} "
|
||||||
|
>
|
||||||
|
<a-button style="margin-right: 8px" @click="cancelTeacherDialog" >取消</a-button>
|
||||||
|
<a-button type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
</a-drawer>
|
||||||
|
|
||||||
<div class="del_btnbox" v-if="teacherdialog1 == 0">
|
|
||||||
<a-button class="del_btn btn1" @click="cancelTeacherDialog" style="margin-right: 32px;">取消</a-button>
|
|
||||||
<a-button class="del_btn btn2" @click="createTeacherDialog" :loading="buttonLoading">保存
|
|
||||||
</a-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- 授课记录 -->
|
|
||||||
<div class="ExternalLecturer" v-show="tagsshow == 2" style="margin">
|
|
||||||
<div style="padding: 33px">
|
|
||||||
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe"
|
|
||||||
:columns="teacherrecordsColumns" :data-source="teacherrecordstableData" :loading="teacherrecordsLoading"
|
|
||||||
@expand="expandTable" :pagination="false">
|
|
||||||
<template #bodyCell="{ record, column }">
|
|
||||||
</template>
|
|
||||||
</a-table>
|
|
||||||
</div>
|
|
||||||
<a-pagination v-if="teacherrecordstableDataTotal > 10" :showSizeChanger="true" :hideOnSinglePage="true"
|
|
||||||
:pageSize="pageSize" v-model:current="searchParam.pageNo" :total="teacherrecordstableDataTotal"
|
|
||||||
class="pagination" @change="teacherchangePagination" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a-modal>
|
|
||||||
<!-- 删除功能弹窗 -->
|
<!-- 删除功能弹窗 -->
|
||||||
<div>
|
<div>
|
||||||
<a-modal v-model:visible="deleteTeacherdialog" :footer="null" :closable="close" wrapClassName="canclestu1"
|
<a-modal v-model:visible="deleteTeacherdialog" :footer="null" :closable="close" wrapClassName="canclestu1"
|
||||||
@@ -1217,4 +1217,8 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//小竖线
|
||||||
|
.line{
|
||||||
|
float:left; width: 3px; height: 25px; background: #4ea6ff;border-radius: 30%; margin-right: 5px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -252,7 +252,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div> <Upload/> </div> -->
|
<!-- <div> <ImageUpload/> </div> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -376,15 +376,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div> <Upload/> </div> -->
|
<!-- <div> <ImageUpload/> </div> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { reactive, toRefs, ref } from "vue";
|
import { reactive, toRefs, ref } from "vue";
|
||||||
import moment, { Moment } from 'moment';
|
import moment, { Moment } from 'moment';
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
import Editor from "@/components/project/Editor";
|
// import Editor from "@/components/project/Editor";
|
||||||
import Upload from "@/components/project/Upload";
|
import ImageUpload from "@/components/project/ImageUpload";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import {getTeacherSystemList ,infoteacher, getTeacherExpertise,deleteInTeacherCourse} from "../../api/Lecturer";
|
import {getTeacherSystemList ,infoteacher, getTeacherExpertise,deleteInTeacherCourse} from "../../api/Lecturer";
|
||||||
import {getNewInTeacherCourseList,getOrganization,getTeacherCourseList,insertInTeacherCourse,updateInTeacherCourse} from "../../api/Teaching";
|
import {getNewInTeacherCourseList,getOrganization,getTeacherCourseList,insertInTeacherCourse,updateInTeacherCourse} from "../../api/Teaching";
|
||||||
@@ -393,8 +393,8 @@ export default {
|
|||||||
name: "InsideTeaching",
|
name: "InsideTeaching",
|
||||||
components: {
|
components: {
|
||||||
// AddTeacher,
|
// AddTeacher,
|
||||||
Editor,
|
// Editor,
|
||||||
Upload
|
ImageUpload
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 更多筛选-->
|
<!-- 更多筛选-->
|
||||||
<div v-if="moreid== 1 " style="width: 150px ;">
|
<div v-if="moreid== 1 " style="width: 150px ;">
|
||||||
<div @click="handlemoreid()"> 更多筛选 </div>
|
<div @click="handlemoreid()">展开</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="moreid== 2 " style="width: 150px ;">
|
<div v-if="moreid== 2 " style="width: 150px ;">
|
||||||
<div @click="handlemoreid() "> 返回 </div>
|
<div @click="handlemoreid() "> 返回 </div>
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
v-for="item in PlaceOfPayList"
|
v-for="item in PlaceOfPayList"
|
||||||
:key="item.value "
|
:key="item.value "
|
||||||
:value="item.value "
|
:value="item.value "
|
||||||
>{{ item.label}}</a-select-option>
|
>{{ item.label}}</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -466,7 +466,7 @@
|
|||||||
import { reactive, toRefs, ref ,watch} from "vue";
|
import { reactive, toRefs, ref ,watch} from "vue";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import {getTeacherPayRollPriceList} from "../../api/Lecturer";
|
import {getPayRollPlace} from "../../api/Lecturer";
|
||||||
import {getTeacherFeeList,getTeacherFeeDetail,addTeacherFee ,updateTeacherFee,updateStatusSubmit,updateStatusWithDraw,getTrainOrg,getTeacherLevel} from "../../api/lecturerFeeManagement";
|
import {getTeacherFeeList,getTeacherFeeDetail,addTeacherFee ,updateTeacherFee,updateStatusSubmit,updateStatusWithDraw,getTrainOrg,getTeacherLevel} from "../../api/lecturerFeeManagement";
|
||||||
// lecturerFeeManagement
|
// lecturerFeeManagement
|
||||||
// import {getProjSt} from "../../api/indexProjStu";
|
// import {getProjSt} from "../../api/indexProjStu";
|
||||||
@@ -577,7 +577,7 @@ export default {
|
|||||||
// { value: 0, label: "发薪地B1" },
|
// { value: 0, label: "发薪地B1" },
|
||||||
])
|
])
|
||||||
const PlaceOfPayLista =() => {
|
const PlaceOfPayLista =() => {
|
||||||
getTeacherPayRollPriceList().then((res)=>{
|
getPayRollPlace().then((res)=>{
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
let arr = res.data.data;
|
let arr = res.data.data;
|
||||||
let array = [];
|
let array = [];
|
||||||
|
|||||||
@@ -178,7 +178,7 @@
|
|||||||
import { reactive, toRefs, ref, watch } from "vue";
|
import { reactive, toRefs, ref, watch } from "vue";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { getTeacherPayRollPriceList } from "../../api/Lecturer";
|
import { getPayRollPlace } from "../../api/Lecturer";
|
||||||
import { getOrganization } from "../../api/Teaching";
|
import { getOrganization } from "../../api/Teaching";
|
||||||
import { queryTeacherFeeTotalList, queryTeacherFeeMonthly, getTeacherFeeDetailListByTeacherNo, getTeacherFeeListByTeacherNo ,getPreviousTeacherfee} from "../../api/lecturerFeeStatistics";
|
import { queryTeacherFeeTotalList, queryTeacherFeeMonthly, getTeacherFeeDetailListByTeacherNo, getTeacherFeeListByTeacherNo ,getPreviousTeacherfee} from "../../api/lecturerFeeStatistics";
|
||||||
export default {
|
export default {
|
||||||
@@ -342,7 +342,7 @@ export default {
|
|||||||
])
|
])
|
||||||
//获取讲师发薪地列表
|
//获取讲师发薪地列表
|
||||||
const PlaceOfPayLista = () => {
|
const PlaceOfPayLista = () => {
|
||||||
getTeacherPayRollPriceList().then((res) => {
|
getPayRollPlace().then((res) => {
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
let arr = res.data.data;
|
let arr = res.data.data;
|
||||||
let array = [];
|
let array = [];
|
||||||
|
|||||||
371
src/views/lecturer/LookExternalLecturer.vue
Normal file
371
src/views/lecturer/LookExternalLecturer.vue
Normal file
@@ -0,0 +1,371 @@
|
|||||||
|
|
||||||
|
ExternalLecturer
|
||||||
|
<template>
|
||||||
|
<!-- 外部讲师查看详情 -->
|
||||||
|
<div class="LookExternalLecturer">
|
||||||
|
<a-layout-header style="background: white;color: black; font-size: 20px ;">
|
||||||
|
<span>查看讲师</span>
|
||||||
|
<a-button @click="handleBack" class="backbtn" type="text">返回</a-button>
|
||||||
|
</a-layout-header>
|
||||||
|
<a-divider style="height: 1px; background-color: #b7b8b7 ;margin: 0;" />
|
||||||
|
<a-layout-content>
|
||||||
|
<!-- 讲师信息 -->
|
||||||
|
<div style="width: 100%;margin-top: 10px;">
|
||||||
|
<span class="line"></span>
|
||||||
|
<a-descriptions title="讲师信息" bordered :column="4" :contentStyle="rowCenter" :labelStyle="rowCenter">
|
||||||
|
<!-- 一层 -->
|
||||||
|
<a-descriptions-item label="讲师头像">{{formParam.url }}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="讲师工号">{{formParam.userNo}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="讲师姓名">{{formParam.name}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="讲师体系">{{formParam.systemId}}</a-descriptions-item>
|
||||||
|
<!-- 二层 -->
|
||||||
|
<a-descriptions-item label="讲师级别">{{formParam.levelId }}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="认证状态">{{ formParam.certStatus==0?'未认证' :formParam.certStatus==1 ?'已认证':''}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="授课时长">{{formParam.teaching}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发薪地 ">{{formParam.payrollPlaceId}}</a-descriptions-item>
|
||||||
|
<!-- 三层 -->
|
||||||
|
<a-descriptions-item label="在职">{{formParam.waitStatus==0?'在职' :formParam.waitStatus==1 ?'离职':''}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="账号状态">{{formParam.status==0?'临时' :formParam.status==1 ?'启用':formParam.status==1 ?'停用':''}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="所属组织" :span="2">{{formParam.departId}}</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
<div style="margin-top: 10px;"></div>
|
||||||
|
<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}}</div> </a-descriptions-item>
|
||||||
|
<a-descriptions-item label="工作职责" :span="4">{{formParam.workExperience}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="擅长课程" :span="4">{{formParam.courses}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="教师专长" :span="4">{{formParam.TeacherExpertise}}</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
<!-- 记录 -->
|
||||||
|
<div style="margin-top: 1px;"></div>
|
||||||
|
<a-tabs v-model:activeKey="activeKey">
|
||||||
|
<a-tab-pane key="1" tab="授课记录">
|
||||||
|
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe" :columns="teacherrecordsColumns"
|
||||||
|
|
||||||
|
:data-source="teacherrecordstableData" :loading="teacherrecordsLoading" @expand="expandTable" :pagination="false">
|
||||||
|
<template #bodyCell="{ record, column }" >
|
||||||
|
<!-- 鼠标悬停提示 -->
|
||||||
|
<template v-if="column.key === 'score'">
|
||||||
|
<a-space style="display:flex ;justify-content: space-around; ">
|
||||||
|
<a-popover>
|
||||||
|
<template #content>
|
||||||
|
<p>{{ record.score }}</p>
|
||||||
|
</template>
|
||||||
|
<span>{{ record.score }}</span>
|
||||||
|
</a-popover>
|
||||||
|
</a-space>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
<div style="float: right;">
|
||||||
|
<a-pagination
|
||||||
|
v-if="teacherrecordstableDataTotal > 10"
|
||||||
|
:showSizeChanger="true"
|
||||||
|
:hideOnSinglePage="true"
|
||||||
|
:pageSize="pageSize"
|
||||||
|
v-model:current="teacherrecords.pageNo"
|
||||||
|
:total="teacherrecordstableDataTotal"
|
||||||
|
class="pagination"
|
||||||
|
@change="teacherchangePagination"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane key="2" tab="晋级记录">
|
||||||
|
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe" :columns="promotionrecordsColumns"
|
||||||
|
|
||||||
|
:data-source="promotionrecordstableData" :loading="promotionrecordsLoading" @expand="expandTable" :pagination="false">
|
||||||
|
<template #bodyCell="{ record, column }" >
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
<div style="float: right;">
|
||||||
|
<a-pagination
|
||||||
|
v-if="teacherrepromotableDataTotal > 10"
|
||||||
|
:showSizeChanger="true"
|
||||||
|
:hideOnSinglePage="true"
|
||||||
|
:pageSize="pageSize"
|
||||||
|
v-model:current="teacherrepromo.pageNo"
|
||||||
|
:total="teacherrepromotableDataTotal"
|
||||||
|
class="pagination"
|
||||||
|
@change="teacherrepromoPagination"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
</a-tabs>
|
||||||
|
</div>
|
||||||
|
</a-layout-content>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang ="jsx">
|
||||||
|
import { useRouter,useRoute } from "vue-router";
|
||||||
|
import { reactive, toRefs, ref } from "vue"
|
||||||
|
import {getTeacherById,getTeacherCourseList ,getTeacherLogList} from "../../api/Lecturer";
|
||||||
|
export default{
|
||||||
|
name :"LookExternalLecturer",
|
||||||
|
components:{
|
||||||
|
|
||||||
|
},
|
||||||
|
setup(){
|
||||||
|
const router=useRouter();
|
||||||
|
const { query: { id }} = useRoute();
|
||||||
|
const state = reactive({
|
||||||
|
activeKey:'1',
|
||||||
|
id,
|
||||||
|
formParam: {
|
||||||
|
},
|
||||||
|
promotionrecordsLoading: false, //晋级记录遮罩层
|
||||||
|
teacherrecordsLoading: false,// 授课记录遮罩层
|
||||||
|
teacherrecordstableDataTotal: -1,//授课记录列表总条数
|
||||||
|
teacherrepromotableDataTotal: -1,//晋级记录总条数
|
||||||
|
teacherrecords: {
|
||||||
|
pageNo: "1",
|
||||||
|
pageSize: "10",
|
||||||
|
id: null
|
||||||
|
},
|
||||||
|
teacherrepromo:{
|
||||||
|
id:null,
|
||||||
|
pageNo: "1",
|
||||||
|
pageSize: "10",
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//内部讲师详情
|
||||||
|
const TeacherSystem = () => {
|
||||||
|
getTeacherById(state.id).then((res) => {
|
||||||
|
console.log("内部讲师详情", res.data);
|
||||||
|
state.formParam = res.data.data
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("内部讲师详情", err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
TeacherSystem()
|
||||||
|
//返回上一层
|
||||||
|
const handleBack=()=>{
|
||||||
|
router.back()
|
||||||
|
};
|
||||||
|
//授课记录列表
|
||||||
|
const teacherrecordsColumns = ref([
|
||||||
|
{
|
||||||
|
title: '课程编号',
|
||||||
|
dataIndex: 'offcourseId',
|
||||||
|
key: 'offcourseId',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '课程名称',
|
||||||
|
dataIndex: 'name',
|
||||||
|
key: 'name',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '课程日期',
|
||||||
|
dataIndex: 'beginTime',
|
||||||
|
key: 'beginTime',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '内容分类',
|
||||||
|
dataIndex: 'nrfl',
|
||||||
|
key: 'nrfl',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '课程类型',
|
||||||
|
dataIndex: 'type',
|
||||||
|
key: 'type',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
customRender: (value) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.type == 1 || value.record.type == 2 || value.record.type == 3
|
||||||
|
? {
|
||||||
|
"1": "项目开课",
|
||||||
|
"2": "路径开课",
|
||||||
|
"3": "面授开课",
|
||||||
|
}[value.record.type + ""] || ""
|
||||||
|
: "-"}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '学习总人数',
|
||||||
|
dataIndex: 'projectMember',
|
||||||
|
key: 'projectMember',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '授课时长',
|
||||||
|
dataIndex: 'duration',
|
||||||
|
key: 'duration',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '评分',
|
||||||
|
dataIndex: 'score ',
|
||||||
|
key: 'score ',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '开课状态',
|
||||||
|
dataIndex: 'status ',
|
||||||
|
key: 'status ',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
customRender: (value) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.status == 0 || value.record.status == 1
|
||||||
|
? {
|
||||||
|
"0": "未开课",
|
||||||
|
"1": "已开课",
|
||||||
|
}[value.record.status + ""] || ""
|
||||||
|
: "-"}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '备注',
|
||||||
|
dataIndex: 'score ',
|
||||||
|
key: 'score ',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
scopedSlots: { customRender: "score" },
|
||||||
|
},
|
||||||
|
])
|
||||||
|
//授课记录列表数据
|
||||||
|
const teacherrecordstableData = ref([
|
||||||
|
])
|
||||||
|
const getteacherrecordstableData = () => {
|
||||||
|
state.teacherrecordsLoading = true
|
||||||
|
state.teacherrecords.id = state.id
|
||||||
|
let obj = { ...state.teacherrecords }
|
||||||
|
|
||||||
|
// api接口
|
||||||
|
getTeacherCourseList(obj).then((res) => {
|
||||||
|
teacherrecordstableData.value = res.data.data.records
|
||||||
|
state.teacherrecordstableDataTotal = Number(res.data.data.total);
|
||||||
|
state.teacherrecordsLoading = false
|
||||||
|
})
|
||||||
|
};
|
||||||
|
getteacherrecordstableData()
|
||||||
|
//授课翻页
|
||||||
|
const teacherchangePagination = (page) => {
|
||||||
|
state.teacherrecords.pageNo = page;
|
||||||
|
getteacherrecordstableData();
|
||||||
|
};
|
||||||
|
//晋级记录翻页
|
||||||
|
const teacherrepromoPagination = (page) => {
|
||||||
|
state.teacherrecords.pageNo = page;
|
||||||
|
getpromotionrecordstableData();
|
||||||
|
};
|
||||||
|
//晋级记录列表
|
||||||
|
const promotionrecordsColumns = ref([
|
||||||
|
{
|
||||||
|
title: '变更时间',
|
||||||
|
dataIndex: 'operatorTime',
|
||||||
|
key: 'operatorTime',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '变更方式',
|
||||||
|
dataIndex: 'operatorType',
|
||||||
|
key: 'operatorType',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '变更结果',
|
||||||
|
dataIndex: 'afterInfo',
|
||||||
|
key: 'afterInfo',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作人',
|
||||||
|
dataIndex: 'operatorId',
|
||||||
|
key: 'operatorId',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
])
|
||||||
|
//晋级记录列表数据
|
||||||
|
const promotionrecordstableData = ref([
|
||||||
|
])
|
||||||
|
const getpromotionrecordstableData = () => {
|
||||||
|
state.promotionrecordsLoading = true
|
||||||
|
state.teacherrepromo.id = state.id
|
||||||
|
getTeacherLogList(state.teacherrepromo).then((res) => {
|
||||||
|
promotionrecordstableData.value = res.data.data.records
|
||||||
|
state.teacherrepromotableDataTotal = Number(res.data.data.total);
|
||||||
|
})
|
||||||
|
state.promotionrecordsLoading = false
|
||||||
|
};
|
||||||
|
getpromotionrecordstableData()
|
||||||
|
return{
|
||||||
|
...toRefs(state),
|
||||||
|
router,
|
||||||
|
TeacherSystem,
|
||||||
|
handleBack,
|
||||||
|
rowCenter:{"text-align":"center"},
|
||||||
|
teacherrecordstableData,
|
||||||
|
teacherrecordsColumns,
|
||||||
|
getteacherrecordstableData,
|
||||||
|
teacherchangePagination,
|
||||||
|
teacherrepromoPagination,
|
||||||
|
promotionrecordsColumns,
|
||||||
|
promotionrecordstableData,
|
||||||
|
getpromotionrecordstableData
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
.LookExternalLecturer {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.filter {
|
||||||
|
margin-left: 38px;
|
||||||
|
margin-right: 38px;
|
||||||
|
margin-top: 30px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
.select {
|
||||||
|
margin-right: 20px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.backbtn{
|
||||||
|
float: right;
|
||||||
|
margin-right: 20px;
|
||||||
|
border: none;
|
||||||
|
color: #4ea6ff;
|
||||||
|
width: 80px;
|
||||||
|
height:64px
|
||||||
|
}
|
||||||
|
//小竖线
|
||||||
|
.line{
|
||||||
|
float:left; width: 3px; height: 25px; background: #4ea6ff;border-radius: 30%; margin-right: 5px;
|
||||||
|
}
|
||||||
|
::v-deep .ant-descriptions-header{
|
||||||
|
margin-bottom: 10px ;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
369
src/views/lecturer/LookInsideLecturer.vue
Normal file
369
src/views/lecturer/LookInsideLecturer.vue
Normal file
@@ -0,0 +1,369 @@
|
|||||||
|
<template>
|
||||||
|
<!-- 内部讲师查看详情 -->
|
||||||
|
<div class="LookInsideLecturer">
|
||||||
|
<a-layout-header style="background: white;color: black; font-size: 20px ;">
|
||||||
|
<span>查看讲师</span>
|
||||||
|
<a-button @click="handleBack" class="backbtn" type="text">返回</a-button>
|
||||||
|
</a-layout-header>
|
||||||
|
<a-divider style="height: 1px; background-color: #b7b8b7 ;margin: 0;" />
|
||||||
|
<a-layout-content>
|
||||||
|
<!-- 讲师信息 -->
|
||||||
|
<div style="width: 100%;margin-top: 10px;">
|
||||||
|
<span class="line"></span>
|
||||||
|
<a-descriptions title="讲师信息" bordered :column="4" :contentStyle="rowCenter" :labelStyle="rowCenter">
|
||||||
|
<!-- 一层 -->
|
||||||
|
<a-descriptions-item label="讲师头像">{{formParam.url}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="讲师工号">{{formParam.userNo}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="讲师姓名">{{formParam.name}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="讲师体系">{{formParam.systemId}}</a-descriptions-item>
|
||||||
|
<!-- 二层 -->
|
||||||
|
<a-descriptions-item label="讲师级别">{{formParam.levelId }}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="认证状态">{{ formParam.certStatus==0?'未认证' :formParam.certStatus==1 ?'已认证':''}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="授课时长">{{formParam.teaching}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发薪地 ">{{formParam.payrollPlaceId}}</a-descriptions-item>
|
||||||
|
<!-- 三层 -->
|
||||||
|
<a-descriptions-item label="在职">{{formParam.waitStatus==0?'在职' :formParam.waitStatus==1 ?'离职':''}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="账号状态">{{formParam.status==0?'临时' :formParam.status==1 ?'启用':formParam.status==1 ?'停用':''}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="所属组织" :span="2">{{formParam.departId}}</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
<div style="margin-top: 10px;"></div>
|
||||||
|
<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}}</div> </a-descriptions-item>
|
||||||
|
<a-descriptions-item label="工作职责" :span="4">{{formParam.workExperience}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="擅长课程" :span="4">{{formParam.courses}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="教师专长" :span="4">{{formParam.TeacherExpertise}}</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
<!-- 记录 -->
|
||||||
|
<div style="margin-top: 1px;"></div>
|
||||||
|
<a-tabs v-model:activeKey="activeKey">
|
||||||
|
<a-tab-pane key="1" tab="授课记录">
|
||||||
|
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe" :columns="teacherrecordsColumns"
|
||||||
|
|
||||||
|
:data-source="teacherrecordstableData" :loading="teacherrecordsLoading" @expand="expandTable" :pagination="false">
|
||||||
|
<template #bodyCell="{ record, column }" >
|
||||||
|
<!-- 鼠标悬停提示 -->
|
||||||
|
<template v-if="column.key === 'score'">
|
||||||
|
<a-space style="display:flex ;justify-content: space-around; ">
|
||||||
|
<a-popover>
|
||||||
|
<template #content>
|
||||||
|
<p>{{ record.score }}</p>
|
||||||
|
</template>
|
||||||
|
<span>{{ record.score }}</span>
|
||||||
|
</a-popover>
|
||||||
|
</a-space>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
<div style="float: right;">
|
||||||
|
<a-pagination
|
||||||
|
v-if="teacherrecordstableDataTotal > 10"
|
||||||
|
:showSizeChanger="true"
|
||||||
|
:hideOnSinglePage="true"
|
||||||
|
:pageSize="pageSize"
|
||||||
|
v-model:current="teacherrecords.pageNo"
|
||||||
|
:total="teacherrecordstableDataTotal"
|
||||||
|
class="pagination"
|
||||||
|
@change="teacherchangePagination"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane key="2" tab="晋级记录">
|
||||||
|
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe" :columns="promotionrecordsColumns"
|
||||||
|
|
||||||
|
:data-source="promotionrecordstableData" :loading="promotionrecordsLoading" @expand="expandTable" :pagination="false">
|
||||||
|
<template #bodyCell="{ record, column }" >
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
<div style="float: right;">
|
||||||
|
<a-pagination
|
||||||
|
v-if="teacherrepromotableDataTotal > 10"
|
||||||
|
:showSizeChanger="true"
|
||||||
|
:hideOnSinglePage="true"
|
||||||
|
:pageSize="pageSize"
|
||||||
|
v-model:current="teacherrepromo.pageNo"
|
||||||
|
:total="teacherrepromotableDataTotal"
|
||||||
|
class="pagination"
|
||||||
|
@change="teacherrepromoPagination"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
</a-tabs>
|
||||||
|
</div>
|
||||||
|
</a-layout-content>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang ="jsx">
|
||||||
|
import { useRouter,useRoute } from "vue-router";
|
||||||
|
import { reactive, toRefs, ref } from "vue"
|
||||||
|
import {getTeacherById,getTeacherCourseList ,getTeacherLogList} from "../../api/Lecturer";
|
||||||
|
export default{
|
||||||
|
name :"LookInsideLecturer",
|
||||||
|
components:{
|
||||||
|
|
||||||
|
},
|
||||||
|
setup(){
|
||||||
|
const router=useRouter();
|
||||||
|
const { query: { id }} = useRoute();
|
||||||
|
const state = reactive({
|
||||||
|
activeKey:'1',
|
||||||
|
id,
|
||||||
|
formParam: {
|
||||||
|
},
|
||||||
|
promotionrecordsLoading: false, //晋级记录遮罩层
|
||||||
|
teacherrecordsLoading: false,// 授课记录遮罩层
|
||||||
|
teacherrecordstableDataTotal: -1,//授课记录列表总条数
|
||||||
|
teacherrepromotableDataTotal: -1,//晋级记录总条数
|
||||||
|
teacherrecords: {
|
||||||
|
pageNo: "1",
|
||||||
|
pageSize: "10",
|
||||||
|
id: null
|
||||||
|
},
|
||||||
|
teacherrepromo:{
|
||||||
|
id:null,
|
||||||
|
pageNo: "1",
|
||||||
|
pageSize: "10",
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//内部讲师详情
|
||||||
|
const TeacherSystem = () => {
|
||||||
|
getTeacherById(state.id).then((res) => {
|
||||||
|
console.log("内部讲师详情", res.data);
|
||||||
|
state.formParam = res.data.data
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("内部讲师详情", err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
TeacherSystem()
|
||||||
|
//返回上一层
|
||||||
|
const handleBack=()=>{
|
||||||
|
router.back()
|
||||||
|
};
|
||||||
|
//授课记录列表
|
||||||
|
const teacherrecordsColumns = ref([
|
||||||
|
{
|
||||||
|
title: '课程编号',
|
||||||
|
dataIndex: 'offcourseId',
|
||||||
|
key: 'offcourseId',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '课程名称',
|
||||||
|
dataIndex: 'name',
|
||||||
|
key: 'name',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '课程日期',
|
||||||
|
dataIndex: 'beginTime',
|
||||||
|
key: 'beginTime',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '内容分类',
|
||||||
|
dataIndex: 'nrfl',
|
||||||
|
key: 'nrfl',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '课程类型',
|
||||||
|
dataIndex: 'type',
|
||||||
|
key: 'type',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
customRender: (value) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.type == 1 || value.record.type == 2 || value.record.type == 3
|
||||||
|
? {
|
||||||
|
"1": "项目开课",
|
||||||
|
"2": "路径开课",
|
||||||
|
"3": "面授开课",
|
||||||
|
}[value.record.type + ""] || ""
|
||||||
|
: "-"}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '学习总人数',
|
||||||
|
dataIndex: 'projectMember',
|
||||||
|
key: 'projectMember',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '授课时长',
|
||||||
|
dataIndex: 'duration',
|
||||||
|
key: 'duration',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '评分',
|
||||||
|
dataIndex: 'score ',
|
||||||
|
key: 'score ',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '开课状态',
|
||||||
|
dataIndex: 'status ',
|
||||||
|
key: 'status ',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
customRender: (value) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.status == 0 || value.record.status == 1
|
||||||
|
? {
|
||||||
|
"0": "未开课",
|
||||||
|
"1": "已开课",
|
||||||
|
}[value.record.status + ""] || ""
|
||||||
|
: "-"}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '备注',
|
||||||
|
dataIndex: 'score ',
|
||||||
|
key: 'score ',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
scopedSlots: { customRender: "score" },
|
||||||
|
},
|
||||||
|
])
|
||||||
|
//授课记录列表数据
|
||||||
|
const teacherrecordstableData = ref([
|
||||||
|
])
|
||||||
|
const getteacherrecordstableData = () => {
|
||||||
|
state.teacherrecordsLoading = true
|
||||||
|
state.teacherrecords.id = state.id
|
||||||
|
let obj = { ...state.teacherrecords }
|
||||||
|
|
||||||
|
// api接口
|
||||||
|
getTeacherCourseList(obj).then((res) => {
|
||||||
|
teacherrecordstableData.value = res.data.data.records
|
||||||
|
state.teacherrecordstableDataTotal = Number(res.data.data.total);
|
||||||
|
state.teacherrecordsLoading = false
|
||||||
|
})
|
||||||
|
};
|
||||||
|
getteacherrecordstableData()
|
||||||
|
//授课翻页
|
||||||
|
const teacherchangePagination = (page) => {
|
||||||
|
state.teacherrecords.pageNo = page;
|
||||||
|
getteacherrecordstableData();
|
||||||
|
};
|
||||||
|
//晋级记录翻页
|
||||||
|
const teacherrepromoPagination = (page) => {
|
||||||
|
state.teacherrecords.pageNo = page;
|
||||||
|
getpromotionrecordstableData();
|
||||||
|
};
|
||||||
|
//晋级记录列表
|
||||||
|
const promotionrecordsColumns = ref([
|
||||||
|
{
|
||||||
|
title: '变更时间',
|
||||||
|
dataIndex: 'operatorTime',
|
||||||
|
key: 'operatorTime',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '变更方式',
|
||||||
|
dataIndex: 'operatorType',
|
||||||
|
key: 'operatorType',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '变更结果',
|
||||||
|
dataIndex: 'afterInfo',
|
||||||
|
key: 'afterInfo',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作人',
|
||||||
|
dataIndex: 'operatorId',
|
||||||
|
key: 'operatorId',
|
||||||
|
elipsis: true, align: "center",
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
])
|
||||||
|
//晋级记录列表数据
|
||||||
|
const promotionrecordstableData = ref([
|
||||||
|
])
|
||||||
|
const getpromotionrecordstableData = () => {
|
||||||
|
state.promotionrecordsLoading = true
|
||||||
|
state.teacherrepromo.id = state.id
|
||||||
|
getTeacherLogList(state.teacherrepromo).then((res) => {
|
||||||
|
promotionrecordstableData.value = res.data.data.records
|
||||||
|
state.teacherrepromotableDataTotal = Number(res.data.data.total);
|
||||||
|
})
|
||||||
|
state.promotionrecordsLoading = false
|
||||||
|
};
|
||||||
|
getpromotionrecordstableData()
|
||||||
|
return{
|
||||||
|
...toRefs(state),
|
||||||
|
router,
|
||||||
|
TeacherSystem,
|
||||||
|
handleBack,
|
||||||
|
rowCenter:{"text-align":"center"},
|
||||||
|
teacherrecordstableData,
|
||||||
|
teacherrecordsColumns,
|
||||||
|
getteacherrecordstableData,
|
||||||
|
teacherchangePagination,
|
||||||
|
teacherrepromoPagination,
|
||||||
|
promotionrecordsColumns,
|
||||||
|
promotionrecordstableData,
|
||||||
|
getpromotionrecordstableData
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
.LookInsideLecturer {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.filter {
|
||||||
|
margin-left: 38px;
|
||||||
|
margin-right: 38px;
|
||||||
|
margin-top: 30px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
.select {
|
||||||
|
margin-right: 20px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.backbtn{
|
||||||
|
float: right;
|
||||||
|
margin-right: 20px;
|
||||||
|
border: none;
|
||||||
|
color: #4ea6ff;
|
||||||
|
width: 80px;
|
||||||
|
height:64px
|
||||||
|
}
|
||||||
|
//小竖线
|
||||||
|
.line{
|
||||||
|
float:left; width: 3px; height: 25px; background: #4ea6ff;border-radius: 30%; margin-right: 5px;
|
||||||
|
}
|
||||||
|
::v-deep .ant-descriptions-header{
|
||||||
|
margin-bottom: 10px ;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user