diff --git a/src/api/lecturerFeeManagement.js b/src/api/lecturerFeeManagement.js index 282deb09..c9f9d201 100644 --- a/src/api/lecturerFeeManagement.js +++ b/src/api/lecturerFeeManagement.js @@ -10,8 +10,10 @@ export const updateTeacherFee= (obj) => http.post('/teacher/fee/updateTeacherFee //修改讲师费状态(已提交) export const updateStatusSubmit= (obj) => http.post('/teacher/fee/updateStatusSubmit',obj) //修改讲师费状态(已撤回) -export const updateStatusWithDraw= (obj) => http.post('/teacher/fee/updateStatusWithDraw',obj) +export const approveTeacherFee= (obj) => http.post('/teacher/fee/approveTeacherFee',obj) //获取培训发生组织列表 export const getTrainOrg= (obj) => http.post('/teacher/fee/getTrainOrg',obj) //获取讲师级别 export const getTeacherLevel= (obj) => http.post('/teacher/fee/getTeacherLevel',obj) +//列表查看讲师费审批(用于讲师费管理查看讲师费详情里面) +export const getTeacherFeeApprovalList= (obj) => http.post('/teacher/fee/getTeacherFeeApprovalList',obj) \ No newline at end of file diff --git a/src/api/organization.js b/src/api/organization.js new file mode 100644 index 00000000..00278e97 --- /dev/null +++ b/src/api/organization.js @@ -0,0 +1,7 @@ +import http from "./config"; +// 列表分页查看归属组织 +export const queryTrainOrg = (obj) => http.post('/configuration/queryTrainOrg', obj) +// 删除归属组织 +export const deleteTrainOrg = (obj) => http.post('/configuration/deleteTrainOrg', obj) +//列表分页查看讲师体系 +export const systemList = (obj) => http.get('/configuration/list',{params: obj}) \ No newline at end of file diff --git a/src/views/lecturer/CostDetails.vue b/src/views/lecturer/CostDetails.vue index 2538231b..63805870 100644 --- a/src/views/lecturer/CostDetails.vue +++ b/src/views/lecturer/CostDetails.vue @@ -1,697 +1,356 @@ - - - - \ No newline at end of file + } + + .selecteds { + display: flex; + flex-wrap: wrap; + margin-left: 32px; + + .person { + width: 100%; + margin-top: 20px; + border-top: 1px solid #f2f6fe; + } + + .chose { + width: 160px; + height: 32px; + margin-top: 25px; + margin-right: 25px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 2px; + border: 1px solid rgba(56, 139, 225, 1); + color: rgba(56, 139, 225, 1); + font-size: 12px; + position: relative; + padding: 0 10px; + border-radius: 16px; + .ch { + position: absolute; + width: 18px; + height: 18px; + background-image: url(../../assets/images/basicinfo/ch.png); + right: -8px; + top: -8px; + } + } + + .ifsw { + display: flex; + align-items: end; + justify-content: center; + color: #4ea6ff; + } + + .sw { + display: flex; + align-items: center; + justify-content: center; + text-align: justify; + color: #4ea6ff; + margin-top: 23px; + margin-left: 10px; + } + + .dept { + width: 100%; + margin-top: 30px; + border-top: 1px solid #f2f6fe; + } + + } + } + + + +} + diff --git a/src/views/lecturer/ExternalTeaching.vue b/src/views/lecturer/ExternalTeaching.vue index deca71d6..ecfadcbf 100644 --- a/src/views/lecturer/ExternalTeaching.vue +++ b/src/views/lecturer/ExternalTeaching.vue @@ -45,8 +45,8 @@
- + @@ -309,6 +309,7 @@ export default { tableDataTotal: -1,//table列表总条数 formParam: { status: 1, + entryType:1, }, searchParam: { pageNo: 1, @@ -319,6 +320,7 @@ export default { status: null, startDate: null, endDate: null, + entryType:null, }, }) //修改时间 @@ -371,6 +373,10 @@ export default { { value: 0, label: "未开课" }, { value: 1, label: "已开课" }, ]) + const entryTypeList= ref([ + { value:0 ,label:"系统生成"}, + { value:1 ,label:"手动录入"}, + ]) const columns = ref([ // { @@ -422,11 +428,23 @@ export default { width: 120, }, { - title: '录入类型(未命名) ', - dataIndex: 'name', - key: 'name', - elipsis: true, align: "center", + title: '数据来源', + dataIndex: 'entryType', + key: 'entryType', + elipsis: true, align: "center", width: 120, + customRender: (value) => { + return ( +
+ {value.record.entryType == "1" || value.record.entryType == "2" + ? { + "0": "系统生成", + "1": "手动录入", + }[value.record.entryType + ""] || "" + : "-"} +
+ ) + } }, { title: '授课/课程日期 ', @@ -525,11 +543,15 @@ export default { state.searchParam = { pageNo: 1, pageSize: 10, - teacher: null, - name: null, - address: null, + managerId: null, + teacherNo: null, + manager:null, + entryType: null, status: null, + entryType:null, + systemId:null, beginTime: null, + entryType:null }; getTableDate(); }; @@ -653,6 +675,7 @@ export default { state.searchParam.type = null state.searchParam.status = null state.searchParam.tlevelName = null + state.searchParam.entryType=null } } //表格内查看数据操作 @@ -692,6 +715,7 @@ export default { return { ...toRefs(state), rules, + entryTypeList, searchTimeChange, cancelTeachingDialog, getTeacherExpertiseList, diff --git a/src/views/lecturer/InsideLecturer.vue b/src/views/lecturer/InsideLecturer.vue index 443b6e97..83906653 100644 --- a/src/views/lecturer/InsideLecturer.vue +++ b/src/views/lecturer/InsideLecturer.vue @@ -6,8 +6,8 @@
-
@@ -139,8 +139,8 @@ 基本信息 - +
@@ -168,8 +168,8 @@ - @@ -262,8 +262,15 @@ - -
+
+ + + 管理业务 + + +
+
+
+
+
{ + getLevel( {systemId:val}).then((res) => { if (res.data.code === 200) { let arr = res.data.data; let array = []; arr.map((value) => { let obj = { - value: value.id, - label: value.name, + value: value.levelCode, + label: value.levelName, }; array.push(obj); }); @@ -774,6 +783,7 @@ console.log( "讲师体系id" +val); //重置 const searchReset = () => { state.searchParam = { + name:null, userNo: null, tsystemName: null, tlevelId: null, diff --git a/src/views/lecturer/InsideTeaching.vue b/src/views/lecturer/InsideTeaching.vue index 4192bb8c..a23deee9 100644 --- a/src/views/lecturer/InsideTeaching.vue +++ b/src/views/lecturer/InsideTeaching.vue @@ -45,8 +45,8 @@
- + @@ -55,7 +55,7 @@ - @@ -261,7 +261,8 @@ {{formParam.departId}} {{formParam.systemId}} {{formParam.levelId }} - "未命名" + + {{formParam.entryType==0?'系统生成' :formParam.entryType==1 ?'手动录入':''}} {{formParam.type==1?'项目开课' :formParam.type==2 ?'路径开课':formParam.type==3 ?'面授开课':''}} {{formParam.name}} {{formParam.status==0?'未开课' :formParam.status==1 ?'已开课':''}} @@ -381,13 +382,15 @@ export default { startTime: null, //开始时间 endTime: null, //结束时间 formParam: { - status: 1 + status: 1, + entryType:1, }, searchParam: { userNo: null,//工号姓名 teacherNo: null,//课程编号 tsystemName: null,//讲师体系 payrollPlaceName: null,//发薪地 + entryType:null, pageNo: "1", pageSize: "10", startDate: null, @@ -430,8 +433,8 @@ export default { let array = []; arr.map((value) => { let obj = { - value: value.id, - label: value.name, + value: value.kid, + label: value.systemName, }; array.push(obj); }); @@ -471,6 +474,10 @@ export default { { value: 0, label: "未开课" }, { value: 1, label: "已开课" }, ]) + const entryTypeList= ref([ + { value:0 ,label:"系统生成"}, + { value:1 ,label:"手动录入"}, + ]) const columns = ref([ { @@ -509,11 +516,23 @@ export default { // } }, { - title: '数据来源(未命名) ', - dataIndex: 'systemName', - key: 'systemName', + title: '数据来源', + dataIndex: 'entryType', + key: 'entryType', elipsis: true, align: "center", width: 120, + customRender: (value) => { + return ( +
+ {value.record.entryType == "1" || value.record.entryType == "2" + ? { + "0": "系统生成", + "1": "手动录入", + }[value.record.entryType + ""] || "" + : "-"} +
+ ) + } }, { title: '课程名称 ', @@ -661,15 +680,16 @@ export default { //重置 const searchReset = () => { state.searchParam = { - pageNo: 1, pageSize: 10, - name: null, - offcourseId: null, - departId: null, - systemId: null, + managerId: null, + teacherNo: null, + manager:null, + entryType: null, + status: null, + entryType:null, + systemId:null, beginTime: null, - type: null, - status: null + entryType:null }; getTableDate(); }; @@ -772,7 +792,8 @@ export default { score: null, type: null, remark: null, - offcourseId: null + offcourseId: null, + entryType:null } } @@ -805,6 +826,7 @@ export default { } //内部授课详情 const TeacherSystem = (record) => { + console.log(record.teacher); // getTeacherCourseList( state.lookTeacherId).then((res) => { // console.log("内部授课详情", res.data); // state.formParam= res.data.data @@ -829,6 +851,7 @@ export default { score: record.score, studys: record.studys, remark: record.remark, + entryType:record.entryType } console.log(state.formParam) } @@ -910,6 +933,7 @@ export default { OnTheJobStatusList, getTeacherExpertiseLista, AuthenticationStatusList, + entryTypeList, searchSubmit, searchReset, columns, diff --git a/src/views/lecturer/LecturerApproval.vue b/src/views/lecturer/LecturerApproval.vue index 52f014f9..c7f881e3 100644 --- a/src/views/lecturer/LecturerApproval.vue +++ b/src/views/lecturer/LecturerApproval.vue @@ -117,22 +117,21 @@ 讲师费用详情 {{formParam.teacherName}} - {{formParam.teacherId -}} - {{formParam.departId}} - {{formParam.systemId}} - {{formParam.levelId }} + {{formParam.teacherNo}} + {{formParam.teacherOrg}} + {{formParam.systemName}} + {{formParam.levelName }} {{formParam.teacherpayrollPlace}} "费用类型(未命名)" - {{formParam.type==1?'项目开课' :formParam.type==2 ?'路径开课':formParam.type==3 ?'面授开课':''}} - {{formParam.name}} - {{formParam.duration}} + {{formParam.courseType==1?'项目开课' :formParam.courseType==2 ?'路径开课':formParam.courseType==3 ?'面授开课':''}} + {{formParam.courseName}} + {{formParam.teachingTime}} {{formParam.teachingDate}} {{formParam.studys}} {{formParam.score}} {{formParam.teacherlevelPay}} {{formParam.expense}} - "应发费用(未命名)" + {{formParam.payableExpense}} {{formParam.status=="A10"?'待审核' :formParam.status=="A20"?'已提交':formParam.status== "A30" ?'审核中':formParam.status== "E10" ?'审核打回':formParam.status=="S20"?'审核通过':''}} {{formParam.remark}} @@ -176,13 +175,13 @@
- - 同意 - 拒绝 + + 同意 + 拒绝 - @@ -214,7 +213,8 @@ } from '@ant-design/icons-vue'; import ProjectManager from "@/components/project/ProjectManagerNew"; import {getPayRollPlace} from "../../api/Lecturer"; - import {getTeacherFeeList,getTeacherFeeDetail,addTeacherFee ,updateTeacherFee,updateStatusSubmit,updateStatusWithDraw,getTrainOrg,getTeacherLevel} from "../../api/lecturerFeeManagement";import { getTeacherExpertise,getTeacherSystemList } from "../../api/Lecturer"; + import {getTeacherFeeList,getTeacherFeeDetail,getTeacherFeeApprovalList ,updateTeacherFee,updateStatusSubmit,approveTeacherFee,getTrainOrg,getTeacherLevel} from "../../api/lecturerFeeManagement"; + import { getTeacherExpertise,getTeacherSystemList } from "../../api/Lecturer"; // lecturerFeeManagement // import {getProjSt} from "../../api/indexProjStu"; // import AddTeacher from "../../components/drawers/project/AddTeacher" @@ -257,7 +257,9 @@ defaultTeachingTime:"0", }, formParamstatues:{ - shenpi:'0' + status:'S20', + remark: null, + kid:null, }, searchParam: { teacherNo:null, @@ -312,8 +314,8 @@ let array = []; arr.map((value) => { let obj = { - value: value.id, - label: value.name, + value: value.kid, + label: value.systemName, }; array.push(obj); }); @@ -592,8 +594,6 @@ ]) //列表数据 const tableData = ref([ - - ]) // 搜索 const searchSubmit = () => { @@ -643,80 +643,18 @@ state.teacherdialogtitle = '添加讲师费' } - //修改讲师费信息弹窗 - const handleModify = (record) => { - state.teacherdialog1 = 0 - state.teachingdialog = true; - state.teacherdialogtitle = '修改信息' - state.kid= record.kid - TeacherSystem() - } - //保存 - const createTeacherDialog = () => { - state.formParam.teachingDate= state.formParam.teachingDate!==null? dayjs(new Date(state.formParam.teachingDate).getTime()).format("YYYY-MM-DD"): "", - console.log(state.formParam); - if (state.formParam.kid != undefined) { - updateTeacherFee (state.formParam).then(response => { - message.success("修改成功"); - }); - } - else { - addTeacherFee(state.formParam) - .then((res) => { - message.success("保存成功"); - }).catch((err) => { - console.log(err); - }); - } - state.teachingdialog = false; - getTableDate(); - }; - //删除弹窗 - // const deleteModal = (record) => { - // state.deleteInTeacherdialog = true - // state.delTeacherId = record.id - // }; //修改状态窗口 const handleOperate = (record) => { - state.handleOperate1=null - state.handleOperate1 = record.status state.editTeacher = true - state.kid= record.kid + state.formParamstatues.kid= record.kid }; - // //确认删除 - // const closeDeleteTeacher=()=>{ - // //调用删除接口 - // deleteInTeacher(state.delTeacherId).then((res)=>{ - // if(res.data.code == 200 ){ - // // message.success("删除成功"); - // state.deleteInTeacherdialog = false - // getTableDate(); - // } - // }) - // } - //提交撤回状态 + //提交 const closehandleOperate= ()=>{ - //调用接口 - let ids ={ - kid : state.kid - } - console.log( state.handleOperate1) - console.log( state.handleOperate1 === 'A10'); - if ( state.handleOperate1 === 'A10'){ - updateStatusSubmit(ids).then((res) => { - message.success("提交成功"); - state.editTeacher = false - getTableDate(); - console.log(111); - }) - } - else if( state.handleOperate1 === 'A20'){ - updateStatusWithDraw(ids).then((res) => { - message.success("撤回成功"); + approveTeacherFee(state.formParamstatues).then((res) => { + message.success("审批成功"); state.editTeacher = false getTableDate(); }) - } } //取消按钮 清空输入的数据 const cancelTeachingDialog = () => { @@ -727,7 +665,6 @@ } state.deleteInTeacherdialog = false state.editTeacher = false - state.tagsshow= 1 }; //清空数据 @@ -756,6 +693,7 @@ state.teachingdialog = true; state.kid= record.kid TeacherSystem() + gettableDataExamine( ) } //详情 @@ -771,6 +709,12 @@ } const tableDataExamine = ref([ ]) + const gettableDataExamine = () => { + getTeacherFeeApprovalList({kid : state.kid}) + .then((res) => { + tableDataExamine.value = res.data.data.records + }) + }; //二级页面 const columnsExamine = ref([ { @@ -817,23 +761,6 @@ width: 120, }, ]) - const rules = { - name: [{ required: true, message: '讲师不能为空' }], - user: [{ required: true, message: '讲师工号不能为空' }], - departId: [{ required: true, message: '讲师组织不能为空' }], - systemId: [{ required: true, message: '讲师体系不能为空' }], - levelId: [{ required: true, message: ' 讲师级别 不能为空' }], - payrollPlaceId: [{ required: true, message: '讲师发薪地 不能为空' }], - courseName: [{ required: true, message: '费用类型不能为空' }], - courseName: [{ required: true, message: '课程名称不能为空' }], - beginTime: [{ required: true, message: '授课日期不能为空' }], - defaultTeachingTime: [{ required: true, message: ' 授课时长不能为空' }], - studys: [{ required: true, message: ' 参训人数不能为空' }], - score: [{ required: true, message: ' 评分不能为空' }], - score: [{ required: true, message: '课酬基准 不能为空' }], - expense: [{ required: true, message: '计划费用不能为空' }], - - } //导出功能 const handleExport = ()=>{ window.open ( @@ -853,7 +780,8 @@ } return { ...toRefs(state), - rules,handleDate, + gettableDataExamine, + handleDate, trainOrglist, trainOrglista, getTeacherExpertiseList, @@ -879,10 +807,6 @@ cancelTeachingDialog, handleLook, cancel, - // deleteModal, - handleModify, - // closeDeleteTeacher, - createTeacherDialog, handleOperate, closehandleOperate, getTableDate, //list接口数据调用 diff --git a/src/views/lecturer/LecturerFee.vue b/src/views/lecturer/LecturerFee.vue index 1a729716..5ee31929 100644 --- a/src/views/lecturer/LecturerFee.vue +++ b/src/views/lecturer/LecturerFee.vue @@ -437,8 +437,8 @@ let array = []; arr.map((value) => { let obj = { - value: value.id, - label: value.name, + value: value.kid, + label: value.systemName, }; array.push(obj); }); diff --git a/src/views/lecturer/LecturerSystem.vue b/src/views/lecturer/LecturerSystem.vue new file mode 100644 index 00000000..6bbb7634 --- /dev/null +++ b/src/views/lecturer/LecturerSystem.vue @@ -0,0 +1,732 @@ + + + + \ No newline at end of file diff --git a/src/views/lecturer/MonthlyStatistics.vue b/src/views/lecturer/MonthlyStatistics.vue index da6367f6..e9ef111a 100644 --- a/src/views/lecturer/MonthlyStatistics.vue +++ b/src/views/lecturer/MonthlyStatistics.vue @@ -82,7 +82,7 @@ /> - + @@ -107,6 +107,7 @@ export default { setup() { const router=useRouter(); const { query: { id }} = useRoute(); + const opendrawer=ref(false) const state = reactive({ open:true, id, @@ -142,6 +143,7 @@ export default { teacherNo: null, teachingDate: null }, + teacherNo:null, querytableFee: { teacherNo: null, teachingDate: null, @@ -312,14 +314,7 @@ export default { getOrganizationLista() //表格内查看数据操作 const handleLook = (record) => { - let id = record.summaryDate - router.push({ path: '/MonthlyStatistics', query: { id } }) - // state.teacherdialog = true; - // state.teacherdialogtitle = '讲师费月度统计详情' - // state.summaryDate = record.summaryDate; - // state.resbgTxt = record.resbgTxt - // state.queryFeeMonthly.summaryDate = record.summaryDate - // TeacherSystem() + opendrawer.value=true } const changePagination = (page, pageSize) => { state.searchParam.pageNo = page; diff --git a/src/views/lecturer/Organization.vue b/src/views/lecturer/Organization.vue new file mode 100644 index 00000000..f10a6f00 --- /dev/null +++ b/src/views/lecturer/Organization.vue @@ -0,0 +1,702 @@ + + + + \ No newline at end of file