mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-13 04:46:46 +08:00
讲师管理页面调整
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import http from "./config";
|
||||
// 列表查看讲师费月度统计
|
||||
export const queryTeacherFeeTotalList = (params) => http.get('teacher/fee/queryTeacherFeeTotalList',{ params })
|
||||
// export const queryTeacherFeeTotalList = (params) => http.get('teacher/fee/queryTeacherFeeTotalList',{ params })
|
||||
export const queryTeacherFeeTotalList = (obj) => http.post ('teacher/fee/queryTeacherFeeTotalList',obj)
|
||||
// 列表查看讲师费月度统计详情
|
||||
export const queryTeacherFeeMonthly = (obj) => http.post('teacher/fee/queryTeacherFeeMonthly', obj)
|
||||
////讲师费月度统计--明细
|
||||
|
||||
@@ -278,6 +278,7 @@ import {
|
||||
} from '@ant-design/icons-vue';
|
||||
import { message } from "ant-design-vue";
|
||||
import ProjectManager from "@/components/project/ProjectManagerNew";
|
||||
import dayjs from "dayjs";
|
||||
import { updateInTeacher, getTeacherExpertise } from "../../api/Lecturer";
|
||||
import { getOuterTeacherCourseList, getAddress, updateInTeacherCourse, deleteInTeacherCourse, insertOutTeaherCourse,getOuterTeacherCourseDetail } from "../../api/Teaching";
|
||||
// import {getProjSt} from "../../api/indexProjStu";
|
||||
@@ -297,7 +298,7 @@ export default {
|
||||
const state = reactive({
|
||||
moreid: 1,
|
||||
tableLoading: false,
|
||||
delTeacherId: null, //删除id确认
|
||||
delTeacherId: null, //删除id确认
|
||||
userNoid: null, //详情工号确认
|
||||
lookTeacherId: null, //详情id确认
|
||||
deleteTeacherdialog: false, //删除弹窗
|
||||
@@ -561,6 +562,8 @@ export default {
|
||||
const getTableDate = (obj) => {
|
||||
state.tableLoading = true
|
||||
let objA = { ...state.searchParam };
|
||||
objA.startDate = state.searchParam.startDate !== null ? dayjs(new Date(state.searchParam.startDate).getTime()).format("YYYY-MM-DD") : "",
|
||||
objA.endDate = state.searchParam.endDate !== null ? dayjs(new Date(state.searchParam.endDate).getTime()).format("YYYY-MM-DD") : "",
|
||||
getOuterTeacherCourseList(objA)
|
||||
.then((res) => {
|
||||
tableData.value = res.data.data.records
|
||||
@@ -587,6 +590,7 @@ export default {
|
||||
const handleModify = (record) => {
|
||||
state.teacherdialog = true;
|
||||
state.teacherdialogtitle = '修改授课记录'
|
||||
state.lookTeacherId = record.teacherId
|
||||
TeacherSystem(record)
|
||||
}
|
||||
//保存
|
||||
|
||||
@@ -179,13 +179,12 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师组织" name="userNo">
|
||||
<a-form-item label="讲师组织" name="departId">
|
||||
<a-popover title="讲师组织">
|
||||
<template #content>
|
||||
<p>自动带出讲师的组织,展示主要部分,鼠标浮上去展示所有</p>
|
||||
{{ formParam.userNo }}
|
||||
{{ formParam.departId }}
|
||||
</template>
|
||||
<a-input disabled v-model:value="formParam.userNo" class="draitem"
|
||||
<a-input disabled v-model:value="formParam.departId" class="draitem"
|
||||
placeholder="自动带出讲师的组织,展示主要部分,鼠标浮上去展示所有" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-popover>
|
||||
@@ -218,7 +217,7 @@
|
||||
<a-input v-model:value="formParam.defaultTeachingTime" style="width:80%; height: 40px; border-radius: 8px; " placeholder="0"
|
||||
allowClear showSearch suffix="分钟">
|
||||
</a-input>
|
||||
<span style="margin-left: 5px ;">{{ (formParam.defaultTeachingTime /60 ).toFixed(2)}}小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.defaultTeachingTime!= null">{{ (formParam.defaultTeachingTime /60 ).toFixed(2)}}小时</span>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -407,7 +406,8 @@ export default {
|
||||
formParam: {
|
||||
userNo:null,
|
||||
certStatus: 0,//认证状态
|
||||
defaultTeachingTime: '0'
|
||||
defaultTeachingTime: '0',
|
||||
|
||||
},
|
||||
searchParam: {
|
||||
name:null,
|
||||
@@ -475,7 +475,7 @@ export default {
|
||||
let array = [];
|
||||
arr.map((value) => {
|
||||
let obj = {
|
||||
value: value.systemid,
|
||||
value: value.kid,
|
||||
label: value.systemName,
|
||||
};
|
||||
array.push(obj);
|
||||
@@ -649,7 +649,7 @@ console.log( "讲师体系id" +val);
|
||||
}
|
||||
const columns = ref([
|
||||
{
|
||||
title: '姓名 ',
|
||||
title: '讲师姓名 ',
|
||||
dataIndex: 'name',
|
||||
key: 'name',
|
||||
elipsis: true,
|
||||
@@ -657,7 +657,7 @@ console.log( "讲师体系id" +val);
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: '工号 ',
|
||||
title: '讲师工号 ',
|
||||
dataIndex: 'userNo',
|
||||
key: 'userNo',
|
||||
elipsis: true,
|
||||
@@ -787,6 +787,7 @@ console.log( "讲师体系id" +val);
|
||||
state.searchParam = {
|
||||
name:null,
|
||||
userNo: null,
|
||||
departId:null,
|
||||
systemid: null,
|
||||
tlevelId: null,
|
||||
waitStatus: null,
|
||||
|
||||
@@ -51,24 +51,38 @@
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-select style="width: 230px" v-model:value="searchParam.status" placeholder="开课状态"
|
||||
:options="AuthenticationStatusList" allowClear>
|
||||
:options="AuthenticationStatusList" allowClear showSearch>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-select style="width: 230px" placeholder="请选择所属组织" v-model:value="searchParam.trainorgId"
|
||||
:options="getOrganizationList" allowClear>
|
||||
:options="getOrganizationList" allowClear showSearch>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-select style="width: 230px" placeholder="请选择讲师体系" v-model:value="searchParam.systemId"
|
||||
:options="LecturerSystemList" allowClear>
|
||||
:options="LecturerSystemList" allowClear showSearch>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-select style="width: 230px" v-model:value="searchParam.id" placeholder="内容分类"
|
||||
:options="getTeacherExpertiseList" allowClear>
|
||||
:options="getTeacherExpertiseList" allowClear showSearch>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<div style="width: 100%;"></div>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-select style="width: 230px ;margin-bottom:20px" v-model:value="searchParam.id" placeholder="请选择授课满意度"
|
||||
:options="getTeacherExpertiseList" allowClear showSearch >
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-select style="width: 230px" v-model:value="searchParam.id" placeholder="授课人数"
|
||||
:options="getTeacherExpertiseList" allowClear showSearch>
|
||||
</a-select>
|
||||
<!-- <a-input v-model:value="searchParam.name" style="width: 260px; height: 40px; border-radius: 8px"
|
||||
placeholder="授课人数" allowClear showSearch>
|
||||
</a-input> -->
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<div style="width: 100%;"></div>
|
||||
<div style="display: flex; margin-bottom: 20px">
|
||||
@@ -201,11 +215,11 @@
|
||||
<!-- 授课时长defaultTeachingTime 评分 score-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="初始授课时长" name="defaultTeachingTime">
|
||||
<a-input v-model:value="formParam.defaultTeachingTime" style="width:80%; height: 40px; border-radius: 8px ; " placeholder="0"
|
||||
<a-form-item label="授课时长" name="duration">
|
||||
<a-input v-model:value="formParam.duration" style="width:80%; height: 40px; border-radius: 8px ; " placeholder="0"
|
||||
allowClear showSearch suffix="分钟">
|
||||
</a-input>
|
||||
<span style="margin-left: 5px ;">{{ (formParam.defaultTeachingTime /60 ).toFixed(2)}}小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.duration!= null">{{ (formParam.duration /60 ).toFixed(2)}}小时</span>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -268,7 +282,7 @@
|
||||
<a-descriptions-item label="课程类型">{{formParam.type==1?'项目开课' :formParam.type==2 ?'路径开课':formParam.type==3 ?'面授开课':''}}</a-descriptions-item>
|
||||
<a-descriptions-item label="课程名称">{{formParam.name}}</a-descriptions-item>
|
||||
<a-descriptions-item label="开课状态">{{formParam.status==0?'未开课' :formParam.status==1 ?'已开课':''}}</a-descriptions-item>
|
||||
<a-descriptions-item label="授课时长 ">{{formParam.duration}}</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>
|
||||
<a-descriptions-item label="授课/课程日期 ">{{formParam.beginTime}}</a-descriptions-item>
|
||||
<a-descriptions-item label="参训人数 ">{{formParam.studys}}</a-descriptions-item>
|
||||
<a-descriptions-item label="评分 ">{{formParam.score}}</a-descriptions-item>
|
||||
@@ -370,6 +384,7 @@ export default {
|
||||
setup() {
|
||||
const router = useRouter();
|
||||
const state = reactive({
|
||||
moreid:1,
|
||||
showWork: false,
|
||||
currentPage1: 1,
|
||||
pageSize1: 10,
|
||||
@@ -391,7 +406,7 @@ export default {
|
||||
formParam: {
|
||||
status: 1,
|
||||
entryType:1,
|
||||
defaultTeachingTime:0
|
||||
duration:0
|
||||
},
|
||||
searchParam: {
|
||||
userNo: null,//工号姓名
|
||||
@@ -798,7 +813,7 @@ export default {
|
||||
systemId:null,
|
||||
levelId: null,
|
||||
name:null,
|
||||
defaultTeachingTime:0,
|
||||
duration:0,
|
||||
endDate:null,
|
||||
startDate:null,
|
||||
studys: null,
|
||||
@@ -861,7 +876,7 @@ export default {
|
||||
// ref< moment.Moment >(moment(record.beginTime,'YYYY-MM-DD')),
|
||||
// record.beginTime,
|
||||
duration: record.duration,
|
||||
defaultTeachingTime: record.defaultTeachingTime,
|
||||
duration: record.duration,
|
||||
score: record.score,
|
||||
studys: record.studys,
|
||||
remark: record.remark,
|
||||
@@ -921,13 +936,11 @@ export default {
|
||||
},
|
||||
])
|
||||
const gettableDatas =(record)=>{
|
||||
state.tableLoadings = true
|
||||
getCharges({kid:record.kid})
|
||||
.then((res) => {
|
||||
console.log(res)
|
||||
tableDatas.value = res.data.data.records
|
||||
state.tableDataTotal = Number(res.data.data.total);
|
||||
state.tableLoadings = false
|
||||
})
|
||||
}
|
||||
const tableDatas = ref([])
|
||||
@@ -939,7 +952,7 @@ export default {
|
||||
id: [{ required: true, message: '内容分类不能为空' }],
|
||||
name: [{ required: true, message: '课程名称不能为空' }],
|
||||
beginTime: [{ required: true, message: '授课/课程日期不能为空' }],
|
||||
defaultTeachingTime: [{ required: true, message: '授课时长不能为空' }],
|
||||
duration: [{ required: true, message: '授课时长不能为空' }],
|
||||
certStatus: [{ required: true, message: '认证状态不能为空' }],
|
||||
|
||||
}
|
||||
|
||||
@@ -72,9 +72,11 @@
|
||||
</a-form>
|
||||
<div style="width: 100%;"></div>
|
||||
<div style="display: flex; margin-bottom: 20px">
|
||||
|
||||
<a-button @click="handleExport()" class="resetbtn">
|
||||
<UploadOutlined /> 导出
|
||||
</a-button>
|
||||
<div v-if="moreid == 2" style="line-height: 40px;" >当前页面汇总金额:<span style="line-height: 40px; font-size: 26px; color: rgb(207, 34, 34) ;font-weight: 600;">1,230,490</span>元 当前总汇总金额:<span style="line-height: 40px; font-size: 26px; color: rgb(207, 34, 34) ;font-weight: 600;">9,230,490</span>元</div>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div style="padding: 10px 0">
|
||||
@@ -157,8 +159,9 @@
|
||||
zIndex: 1,
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeachingDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="cancelTeachingDialog" :loading="buttonLoading">返回
|
||||
<a-button class="drabtn" type="primary" @click="cancelTeachingDialog" :loading="buttonLoading">通过
|
||||
</a-button>
|
||||
<a-button class="drabtn" @click="cancelTeachingDialog" type="primary" danger>拒绝</a-button>
|
||||
</div>
|
||||
</a-drawer>
|
||||
<!-- 修改状态功能弹窗 -->
|
||||
|
||||
@@ -86,7 +86,9 @@
|
||||
<a-button @click="handleExport()" class="resetbtn">
|
||||
<UploadOutlined /> 导出
|
||||
</a-button>
|
||||
</div>
|
||||
|
||||
<div v-if="moreid == 2" style="line-height: 40px;" >当前页面汇总金额:<span style="line-height: 40px; font-size: 26px; color: rgb(207, 34, 34) ;font-weight: 600;">1,230,490</span>元 当前总汇总金额:<span style="line-height: 40px; font-size: 26px; color: rgb(207, 34, 34) ;font-weight: 600;">9,230,490</span>元</div>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div style="padding: 10px 0">
|
||||
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe" :columns="columns"
|
||||
@@ -139,8 +141,8 @@
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师名称" name="teacher">
|
||||
<ProjectManager v-model:value="searchParam.teacherNo"
|
||||
v-model:name="searchParam.teacherName"
|
||||
<ProjectManager v-model:value="formParam.teacherNo"
|
||||
v-model:name="formParam.teacherName"
|
||||
placeholder="请输入工号/讲师姓名进行检索"
|
||||
@onChange="managerChange" mode="multiple"></ProjectManager>
|
||||
|
||||
@@ -861,16 +863,16 @@ console.log( "讲师体系id" +val);
|
||||
state.kid= record.kid
|
||||
};
|
||||
// //确认删除
|
||||
// const closeDeleteTeacher=()=>{
|
||||
// //调用删除接口
|
||||
// deleteInTeacher(state.delTeacherId).then((res)=>{
|
||||
// if(res.data.code == 200 ){
|
||||
// // message.success("删除成功");
|
||||
// state.deleteInTeacherdialog = false
|
||||
// getTableDate();
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
const closeDeleteTeacher=()=>{
|
||||
//调用删除接口
|
||||
deleteInTeacher(state.delTeacherId).then((res)=>{
|
||||
if(res.data.code == 200 ){
|
||||
// message.success("删除成功");
|
||||
state.deleteInTeacherdialog = false
|
||||
getTableDate();
|
||||
}
|
||||
})
|
||||
}
|
||||
//提交撤回状态
|
||||
const closehandleOperate= ()=>{
|
||||
//调用接口
|
||||
@@ -1041,6 +1043,7 @@ console.log( "讲师体系id" +val);
|
||||
return {
|
||||
...toRefs(state),
|
||||
rules,
|
||||
closeDeleteTeacher,
|
||||
cancelTeachingDialog,
|
||||
managerChange,
|
||||
courseTypeList,
|
||||
|
||||
@@ -9,9 +9,12 @@
|
||||
:options="PlaceOfPayList">
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item class="select " >
|
||||
<!-- <a-form-item class="select " >
|
||||
<a-range-picker style="width: 260px; height: 40px; border-radius: 8px" v-model:value="searchdate" separator=""
|
||||
:placeholder="['重新汇总上月周期']" @change="searchTimeChange" />
|
||||
</a-form-item> -->
|
||||
<a-form-item class="select">
|
||||
<a-month-picker placeholder="重新汇总上月周期" @change="onChange" style="width: 260px; height: 40px; border-radius: 8px" v-model:value="searchdate" />
|
||||
</a-form-item>
|
||||
<div style="display: flex; margin-bottom: 20px">
|
||||
<a-button @click="searchSubmit()" type="primary" class="resetbtn">查询 </a-button>
|
||||
@@ -25,6 +28,7 @@
|
||||
<a-button @click="searchResetPrevious()" type="primary" class="langbtn" style="width: 150px; height: 40px; border-radius: 8px" >
|
||||
<FolderAddOutlined /> 重新汇总上月讲师费
|
||||
</a-button>
|
||||
<div style="line-height: 40px;" >当前页面汇总金额:<span style="line-height: 40px; font-size: 26px; color: rgb(207, 34, 34) ;font-weight: 600;">1,230,490</span>元 当前总汇总金额:<span style="line-height: 40px; font-size: 26px; color: rgb(207, 34, 34) ;font-weight: 600;">9,230,490</span>元</div>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div style="padding: 10px 0">
|
||||
@@ -326,6 +330,17 @@ export default {
|
||||
state.tableLoading = false
|
||||
})
|
||||
}
|
||||
//重置
|
||||
const searchReset = () => {
|
||||
state.searchParam = {
|
||||
pageNo: "1",
|
||||
pageSize: "10",
|
||||
startDate: null,
|
||||
endDate: null,
|
||||
payrollPlaceId: null,
|
||||
};
|
||||
getTableDate();
|
||||
};
|
||||
// // 翻页
|
||||
const changePagination = (page, pageSize) => {
|
||||
state.searchParam.pageNo = page;
|
||||
@@ -744,6 +759,7 @@ export default {
|
||||
return {
|
||||
...toRefs(state),
|
||||
router,
|
||||
searchReset,
|
||||
searchTimeChange,
|
||||
handleFeeMonthly,
|
||||
TeacherSystem,
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<div v-for="(item,index) in formParam.levelList " :key="index">
|
||||
<div v-for="(item,index) in formParam.levelList " :key="index" >
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="4">
|
||||
<a-input v-model:value="item.levelName" class="draitem" placeholder="" allowClear showSearch>
|
||||
@@ -187,7 +187,7 @@ import {
|
||||
import dialog from "@/utils/dialog";
|
||||
import { message } from "ant-design-vue";
|
||||
import ProjectManager from "@/components/project/ProjectManagerNew";
|
||||
import { systemList,addLecturerSystem ,deleteLecturerSystem,updateSystem} from "../../api/organization";
|
||||
import { systemList,addLecturerSystem ,deleteLecturerSystem,querySystemLevelByKid,updateSystem} from "../../api/organization";
|
||||
export default {
|
||||
name: "LecturerSystem",
|
||||
components: {
|
||||
@@ -347,7 +347,14 @@ export default {
|
||||
})
|
||||
.catch((err) => {
|
||||
});
|
||||
getteacherrecordstableData()
|
||||
}
|
||||
const getteacherrecordstableData = () => {
|
||||
// api接口
|
||||
querySystemLevelByKid({systemId: state.delId}).then((res) => {
|
||||
state.formParam.levelList = res.data.data
|
||||
})
|
||||
};
|
||||
const cancel = () => {
|
||||
state.formParam = {
|
||||
kid:null,
|
||||
@@ -366,34 +373,21 @@ export default {
|
||||
}
|
||||
//保存
|
||||
const createTeacherDialog = () => {
|
||||
let a ={
|
||||
kid:11111111,
|
||||
systemCode: 888,
|
||||
systemName: 'cesceshi',
|
||||
remark: 'cesceshi',
|
||||
levelList:[{
|
||||
levelName:'cesceshi',
|
||||
levelTime:'222',
|
||||
sort:1,
|
||||
levelPay:'56',
|
||||
upperLimit:'186'
|
||||
}, ]
|
||||
}
|
||||
console.log(a)
|
||||
// console.log(state.formParam)
|
||||
// if (state.formParam.kid != undefined) {
|
||||
// updateSystem(state.formParam).then(response => {
|
||||
// message.success("修改成功");
|
||||
// });
|
||||
// }
|
||||
// else {
|
||||
addLecturerSystem(a)
|
||||
|
||||
console.log(state.formParam)
|
||||
if (state.formParam.kid != undefined) {
|
||||
updateSystem(state.formParam).then(response => {
|
||||
message.success("修改成功");
|
||||
});
|
||||
}
|
||||
else {
|
||||
addLecturerSystem(state.formParam)
|
||||
.then((res) => {
|
||||
message.success("保存成功");
|
||||
}).catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
// }
|
||||
}
|
||||
cancel()
|
||||
state.teacherdialog = false;
|
||||
getTableDate();
|
||||
@@ -427,6 +421,7 @@ export default {
|
||||
return {
|
||||
...toRefs(state),
|
||||
rules,
|
||||
getteacherrecordstableData,
|
||||
inputRemove,
|
||||
inputAdd,
|
||||
managerChange,
|
||||
|
||||
@@ -18,7 +18,11 @@
|
||||
<a-descriptions title="讲师信息" bordered :column="4" :contentStyle="rowCenter" :labelStyle="rowCenter">
|
||||
<!-- 一层 -->
|
||||
<a-descriptions-item label="讲师头像">
|
||||
<a-avatar :src="formParam.photo" /></a-descriptions-item>
|
||||
<!-- <a-avatar :src="formParam.photo" /> -->
|
||||
<a-image
|
||||
:width="60" style="border-radius: 50%;"
|
||||
src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
|
||||
/></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.tsystemName}}</a-descriptions-item>
|
||||
@@ -26,7 +30,8 @@
|
||||
<a-descriptions-item label="讲师级别">{{formParam.tlevelName
|
||||
}}</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="授课时长"> <span v-if="formParam.defaultTeachingTime!= null" >{{ (formParam.defaultTeachingTime /60 ).toFixed(2)}}小时</span>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="发薪地 ">{{formParam.payrollPlaceName}}</a-descriptions-item>
|
||||
<!-- 三层 -->
|
||||
<a-descriptions-item label="在职">{{formParam.waitStatus==0?'在职' :formParam.waitStatus==1 ?'离职':''}}</a-descriptions-item>
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
</a-form-item>
|
||||
<a-form-item class="select">
|
||||
<a-select style="width: 230px" v-model:value="searchParam.payrollPlaceId" placeholder="发薪地"
|
||||
:options="PlaceOfPayList"/>
|
||||
:options="PlaceOfPayList" allowClear showSearch/>
|
||||
</a-form-item>
|
||||
<a-form-item class="select " >
|
||||
<a-select style="width: 276px" v-model:value="searchParam.trainorgId" placeholder="培训发生组织"
|
||||
:options="trainOrglist">
|
||||
:options="trainOrglist" allowClear showSearch>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<div style="display: flex; margin-bottom: 20px">
|
||||
@@ -82,8 +82,45 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<CostDetails v-model:visible="opendrawer" :teacherNo="teacherNo">
|
||||
</CostDetails>
|
||||
<!-- 抽屉 -->
|
||||
<a-drawer v-model:visible="opendrawer" placement="right"
|
||||
@closa="cancelTeachingDialog" :maskClosable="true" width="60%" title="查看详情">
|
||||
<a-form layout="inline">
|
||||
<a-form-item class="select">
|
||||
<a-input v-model:value="drawer.name" style="width: 260px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入课程名称进行搜索" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item class="select ">
|
||||
<a-range-picker style="width: 260px; height: 40px; margin-bottom: 20px; border-radius: 8px" v-model:value="drawersearchdate" separator="至"
|
||||
:placeholder="[' 开始时间', ' 结束时间']" @change="searchTimeChange" />
|
||||
</a-form-item>
|
||||
<div style="display: flex; margin-bottom: 20px">
|
||||
<a-button @click="searchSubmitdrawer()" type="primary" class="resetbtn">查询 </a-button>
|
||||
<a-button class="resetbtn " @click="searchResetdrawer">重置</a-button>
|
||||
</div>
|
||||
</a-form>
|
||||
<span>讲师费发放情况</span>
|
||||
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe" :columns="column" :data-source="tableDatas" :loading="tableLoadings" :pagination="false">
|
||||
<template #bodyCell="{ record, column }">
|
||||
</template>
|
||||
</a-table>
|
||||
<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 class="drabtn" @click="cancelTeachingDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="cancelTeachingDialog" :loading="buttonLoading">返回
|
||||
</a-button>
|
||||
</div>
|
||||
</a-drawer>>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="jsx">
|
||||
@@ -107,9 +144,8 @@ export default {
|
||||
setup() {
|
||||
const router=useRouter();
|
||||
const { query: { id }} = useRoute();
|
||||
const opendrawer=ref(false)
|
||||
const state = reactive({
|
||||
open:true,
|
||||
opendrawer:false,
|
||||
id,
|
||||
summaryDate: null,
|
||||
resbgTxt: null,
|
||||
@@ -132,21 +168,10 @@ export default {
|
||||
departId: null,
|
||||
summaryDate:null,
|
||||
},
|
||||
queryFeeMonthly: {
|
||||
teacherNo: null,
|
||||
payrollPlaceId: null,
|
||||
departId: null,
|
||||
pageNo: "1",
|
||||
pageSize: "10"
|
||||
},
|
||||
queryTeacherFeeDetail: {
|
||||
teacherNo: null,
|
||||
teachingDate: null
|
||||
},
|
||||
teacherNo:null,
|
||||
querytableFee: {
|
||||
teacherNo: null,
|
||||
teachingDate: null,
|
||||
drawer: {
|
||||
name: null,
|
||||
drawersearchdate: null,
|
||||
pageNo: '1',
|
||||
pageSize: '10',
|
||||
}
|
||||
@@ -314,25 +339,162 @@ export default {
|
||||
getOrganizationLista()
|
||||
//表格内查看数据操作
|
||||
const handleLook = (record) => {
|
||||
opendrawer.value=true
|
||||
state.opendrawer=true
|
||||
}
|
||||
const changePagination = (page, pageSize) => {
|
||||
state.searchParam.pageNo = page;
|
||||
getTableDate();
|
||||
};
|
||||
// 二级页面导出
|
||||
// 导出
|
||||
const handleFeeMonthly = () => {
|
||||
window.open(
|
||||
`${process.env.VUE_APP_BASE_API}/teacher/fee/exportTeacherMonthlyFee?pageNo=${state.currentPage2
|
||||
}&pageSize=${state.pageSize2}
|
||||
&userNo=${state.queryFeeMonthly.payrollPlaceId ? state.queryFeeMonthly.payrollPlaceId : ""}
|
||||
&teacherNo=${state.queryFeeMonthly.teacherNo ? state.queryFeeMonthly.teacherNo : ""}
|
||||
&departId=${state.queryFeeMonthly.departId ? state.queryFeeMonthly.departId : ""}`)
|
||||
`${process.env.VUE_APP_BASE_API}/teacher/fee/exportTeacherMonthlyFee?pageNo=${state.searchParam.currentPage
|
||||
}&pageSize=${state.searchParam.pageSize}
|
||||
&userNo=${state.searchParam.payrollPlaceId ? state.searchParam.payrollPlaceId : ""}
|
||||
&teacherNo=${state.searchParam.teacherNo ? state.searchParam.teacherNo : ""}
|
||||
&departId=${state.searchParam.trainorgId ? state.searchParam.trainorgId : ""}`)
|
||||
}
|
||||
//重置
|
||||
const searchReset = () => {
|
||||
state.searchParam = {
|
||||
pageNo: "1",
|
||||
pageSize: "10",
|
||||
teacherNo: null,
|
||||
payrollPlaceId: null,
|
||||
departId: null,
|
||||
summaryDate:null,
|
||||
};
|
||||
getTableDate();
|
||||
};
|
||||
//二级页面重置
|
||||
const searchResetdrawer =()=>{
|
||||
state. drawer={
|
||||
name: null,
|
||||
drawersearchdate: null,
|
||||
pageNo: '1',
|
||||
pageSize: '10',
|
||||
}
|
||||
}
|
||||
//二级页面查询
|
||||
const searchSubmitdrawer=()=>{
|
||||
|
||||
}
|
||||
const tableDatas = ref[{}]
|
||||
const column = ref([
|
||||
{
|
||||
title: '讲师姓名 ',
|
||||
dataIndex: 'teacherName',
|
||||
key: 'teacherName',
|
||||
elipsis: true,
|
||||
align: "center",
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '讲师工号',
|
||||
dataIndex: 'teacherNo',
|
||||
key: 'teacherNo',
|
||||
align: "center",
|
||||
elipsis: true,
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '课程名称 ',
|
||||
dataIndex: 'courseName',
|
||||
key: 'courseName',
|
||||
elipsis: true, align: "center",
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '课程类型 ',
|
||||
dataIndex: ' courseType',
|
||||
key: ' courseType',
|
||||
elipsis: true, align: "center",
|
||||
width: 120,
|
||||
customRender: (value) => {
|
||||
return (
|
||||
<div>
|
||||
{value.record. courseType == "1" || value.record. courseType == "2"|| value.record.courseTypeype == "3"
|
||||
? {
|
||||
"1": "项目开课",
|
||||
"2": "路径开课",
|
||||
"3": "面授开课",
|
||||
}[value.record. courseType + ""] || ""
|
||||
: "-"}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '授课时长 ',
|
||||
dataIndex: 'teachingTime',
|
||||
key: 'teachingTime',
|
||||
elipsis: true, align: "center",
|
||||
width: 120,
|
||||
|
||||
},
|
||||
{
|
||||
title: '授课日期 ',
|
||||
dataIndex: 'teacherOrg',
|
||||
key: 'teacherOrg',
|
||||
elipsis: true,
|
||||
align: "center",
|
||||
width: 300,
|
||||
scopedSlots: { customRender: "teacherOrg" },
|
||||
},
|
||||
{
|
||||
title: '讲师体系',
|
||||
dataIndex: 'systemName',
|
||||
key: 'systemName',
|
||||
elipsis: true, align: "center",
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '讲师级别 ',
|
||||
dataIndex: 'levelName',
|
||||
key: 'levelName',
|
||||
elipsis: true, align: "center",
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '讲师发薪地 ',
|
||||
dataIndex: 'teacherpayrollPlace',
|
||||
key: 'teacherpayrollPlace',
|
||||
elipsis: true,
|
||||
align: "center",
|
||||
width: 200,
|
||||
},
|
||||
|
||||
{
|
||||
title: '基准课酬 ',
|
||||
dataIndex: 'teacherlevelPay',
|
||||
key: 'teacherlevelPay',
|
||||
elipsis: true, align: "center",
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '计划费用 ',
|
||||
dataIndex: 'expense',
|
||||
key: 'expense',
|
||||
elipsis: true,
|
||||
align: "center",
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '应发费用 ',
|
||||
dataIndex: 'payableExpense',
|
||||
key: 'payableExpense',
|
||||
elipsis: true,
|
||||
align: "center",
|
||||
width: 200,
|
||||
},
|
||||
|
||||
])
|
||||
return {
|
||||
...toRefs(state),
|
||||
trainOrglist,
|
||||
tableDatas,
|
||||
column,
|
||||
searchReset,
|
||||
trainOrglista,
|
||||
handleFeeMonthly,
|
||||
handleLook,
|
||||
@@ -345,6 +507,7 @@ export default {
|
||||
PlaceOfPayLista,
|
||||
getOrganizationList,
|
||||
getOrganizationLista,
|
||||
searchResetdrawer
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@@ -102,6 +102,34 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="组织负责人" name="zzfzr">
|
||||
<a-select v-model:value="formParam.zzfzr" placeholder="请选择组织负责人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="一级审批人" name="yjspr">
|
||||
<a-select v-model:value="formParam.yjspr" placeholder="请选择一级审批人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="二级审批人" name="zzfzr">
|
||||
<a-select v-model:value="formParam.zzfzr" placeholder="请选择二级审批人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="三级审批人" name="sjspr">
|
||||
<a-select v-model:value="formParam.sjspr" placeholder="请选择三级审批人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item label="选中组织">
|
||||
<a-row :gutter="50" style="margin-bottom: 10px;">
|
||||
<a-col :span="2">
|
||||
@@ -333,6 +361,10 @@ const getTableDate = (obj) => {
|
||||
const rules = {
|
||||
trainorgId: [{ required: true, message: '归属组织编号不能为空' }],
|
||||
trainorgName: [{ required: true, message: '归属组织名称不能为空' }],
|
||||
zzfzr: [{ required: true, message: '组织负责人不能为空' }],
|
||||
yjspr: [{ required: true, message: '"一级审批人不能为空' }],
|
||||
zzfzr: [{ required: true, message: '二级审批人不能为空' }],
|
||||
sjspr: [{ required: true, message: '三级审批人不能为空' }],
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user