讲师bug

This commit is contained in:
joshen
2025-01-04 18:19:07 +08:00
parent af6896830d
commit 863852cf08
4 changed files with 81 additions and 37 deletions

View File

@@ -76,7 +76,9 @@ export const isEnable = (obj) => http.post(`/admin/affiliation/isEnable`,obj)
//撤回培训发生组织
export const affiliatIsConfirm = (id) => http.post(`/admin/affiliation/isConfirm?id=${id}`)
//讲师费统计详情
export const expenseSummaryById = (obj) => http.get( `/admin/expenseSummary/queryById?id=${obj.id}&name=${obj.name}&trainOrgId=${obj.trainOrgId||''}`)
export const expenseSummaryById = (obj) => http.get( `/admin/expenseSummary/queryById?id=${obj.id}&name=${obj.name}&trainOrgId=${obj.trainOrgId||''}&pageNo=${obj.pageNo}&pageSize=${obj.pageSize}`)
//撤回讲师费统计详情
export const removeBySummaryId = (obj) => http.post(`/admin/expenseSummary/removeBySummaryId?summaryId=${obj.summaryId}`,obj)
//查看月度讲师费详情
export const queryDetailId = (obj) => http.get(`/admin/expenseSummary/queryDetailId?summaryId=${obj.summaryId}&name=${obj.name}&startTime=${obj.startTime}&endTime=${obj.endTime}`)
//查询未汇总的数据(批量确认弹框)

View File

@@ -27,6 +27,8 @@ export const withdrawRecord= (obj) => http.post('/admin/expenseBill/withdrawReco
export const confirm= (obj) => http.post('/admin/teacherExpense/confirm',obj)
//获取培训发生组织列表
export const getTrainOrg= (obj) => http.get('/admin/affiliation/list',{params: obj})
//获取资源归属所有
export const getParentAapprovallist= (obj) => http.get('/admin/affiliation/getParentAapprovallist',{params: obj})
// 根据发生组织查询汇总的讲师费数据(一键确认弹框使用)
export const getListByIds= (obj) => http.get('/admin/teacherExpense/getListByIds',{params: obj})
//根据发生组织查询汇总的数据(一键确认弹框使用)

View File

@@ -168,7 +168,7 @@
</div>
</a-modal>
</div>
<MonthlyStatistics v-model:visible="opendrawer" :id="drawerId" ></MonthlyStatistics>
<MonthlyStatistics @tableList="tableList" v-model:visible="opendrawer" :id="drawerId" ></MonthlyStatistics>
</template>
<script lang="jsx">
import locale from 'ant-design-vue/es/date-picker/locale/zh_CN';
@@ -181,7 +181,7 @@ import { useRouter } from "vue-router";
import { getOrganization } from "../../api/Teaching";
import { queryTeacherFeeMonthly, getTeacherFeeDetailListByTeacherNo, getTeacherFeeListByTeacherNo,TeacherFeeTotalList,createMonthSummary} from "../../api/lecturerFeeStatistics"
;
import {expenseSummaryList,getTrainOrg,CreateMonthSummary,isShowReimport} from "../../api/lecturerFeeManagement";
import {expenseSummaryList,getTrainOrg,getParentAapprovallist,CreateMonthSummary,isShowReimport} from "../../api/lecturerFeeManagement";
import dialog from '@/utils/dialog'
import MonthlyStatistics from './MonthlyStatistics'
export default {
@@ -351,7 +351,7 @@ export default {
//重置
const searchReset = () => {
state.searchdate=null,
state.searchParam = {
state.searchParam = {
pageNo: "1",
pageSize: "10",
summaryDate: null,
@@ -383,10 +383,10 @@ export default {
])
//获取培训发生组织
const TrainOrglista = () => {
getTrainOrg().then((res) => {
getParentAapprovallist().then((res) => {
console.log(res,'ressss')
if (res.data.code === 200) {
let arr = res.data.data.records;
let arr = res.data.data;
let array = [];
arr?.map((value) => {
let obj = {
@@ -427,7 +427,7 @@ export default {
}
})
}
getOrganizationLista()
// getOrganizationLista()
//二级页面取消按钮
const cancelTeacherDialog = () => {
if (state.teacherdialog = true) {
@@ -450,6 +450,9 @@ export default {
}
}
//表格内查看数据操作
const tableList = (val) => {
searchSubmit()
}
const handleLook = (record) => {
// let id = record.id
// const trainOrgId = record.trainOrgId
@@ -465,7 +468,7 @@ export default {
}
const tableDataFeeDetail = ref([
])
//详情
//详情
const TeacherSystem = () => {
queryTeacherFeeMonthly(state.queryFeeMonthly).then((res) => {
// state.formParam=Object.assign({} ,res.data.data)
@@ -792,7 +795,7 @@ export default {
    }
};
return {
...toRefs(state),
...toRefs(state),
router,
enterPressHadlerSearch,
searchReset,
@@ -800,6 +803,7 @@ export default {
handleFeeMonthly,
TeacherSystem,
handleLook,
tableList,
handleLooka,
cancel,
cancelTeacherDialog,

View File

@@ -25,7 +25,7 @@
<div class="filter">
<a-form layout="inline" >
<a-form-item class="select">
<a-input v-model:value="searchParam.name" style="width: 235px; height: 40px; border-radius: 8px"
<a-input v-model:value="searchParam.name" style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入工号/讲师姓名进行检索" allowClear showSearch
v-on:keydown.enter="enterPressHadlerSearch">
</a-input>
@@ -63,7 +63,7 @@
<a-button class="resetbtn " @click="searchReset">重置</a-button>
</div>
</a-form>
<div style="width: 100%;"></div>
<div style="width: 100%;"></div>
<!-- <div style="display: flex; margin-bottom: 20px">
<a-button class="resetbtn" @click="handleFeeMonthly" type="primary"><UploadOutlined/>导出
</a-button>
@@ -71,11 +71,15 @@
<!-- 表格 -->
<div style="padding: 10px 0">
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe" :columns="columns"
:data-source="tableData" :loading="tableLoading" :scroll="{ x: 600}" :pagination="false">
:data-source="tableData" :loading="tableLoading" :scroll="{ x: 600}" :pagination="pagination">
<template #orgName="{ record }">
<div :title="record.orgName">{{ endOrg(record.orgName) }}</div>
</template>"
<template #bodyCell="{ record, column }">
<template v-if="column.key === 'operation'">
<a-space >
<a-button type="link" @click="() => handleLook(record, String(record.courseform))">查看</a-button>
<a-button type="link" @click="handleLess(record)">撤回</a-button>
</a-space>
</template>
</template>
@@ -84,13 +88,13 @@
</div>
<!-- 翻页 -->
<div class="tableBox ">
<!-- <div class="tableBox ">
<div style="float: right;">
<a-pagination
v-if="tableDataTotal > 10"
:showSizeChanger="true"
:showQuickJumper="false"
:hideOnSinglePage="true"
:hideOnSinglePage="false"
:pageSize="searchParam.pageSize"
:current="searchParam.pageNo"
:total="tableDataTotal"
@@ -98,7 +102,7 @@
@change="changePagination"
/>
</div>
</div>
</div> -->
<!-- 抽屉 -->
<a-drawer class="largeDrawerInside" v-model:visible="opendrawer" placement="right"
@closa="cancelTeachingDialog" :maskClosable="true" width="60%" :title="false">
@@ -159,12 +163,14 @@ import { useRouter,useRoute } from "vue-router";
import {
UploadOutlined,
} from '@ant-design/icons-vue';
import { getPayRollPlace,expenseSummaryById ,queryDetailId} from "../../api/Lecturer";
import { getPayRollPlace,expenseSummaryById ,removeBySummaryId,queryDetailId} from "../../api/Lecturer";
import { getOrganization } from "../../api/Teaching";
import ProjectManager from "@/components/project/ProjectManagerNew";
import {queryTeacherFeeMonthly} from "../../api/lecturerFeeStatistics";
import {CostDetails} from "../lecturer/CostDetails.vue"
// import * as api from '@/api/Lecturer'
import dialog from '@/utils/dialog'
import {message} from 'ant-design-vue'
export default {
name: "MonthlyStatistics",
components: {
@@ -245,8 +251,9 @@ export default {
const endOrg = (val) => {
if(val){
const parts = val.split('/');
const reversedParts = parts.reverse();
return reversedParts.join('/');
// const reversedParts = parts.reverse();
// return reversedParts.join('/');
return parts[parts.length - 1]
}
}
//获取内容分类
@@ -276,9 +283,10 @@ export default {
ellipsis: true,
align: "center",
width: 160,
customRender: ({text})=>{
return endOrg(text)
}
// customRender: ({text})=>{
// return endOrg(text)
// },
slots: { customRender: "orgName" },
},
{
title: '发薪地',
@@ -350,7 +358,7 @@ export default {
ellipsis: true,
align: "center",
fixed: "right",
width: 100,
width: 120,
scopedSlots: { customRender: "action" },
},
])
@@ -368,7 +376,7 @@ export default {
//获取讲师发薪地列表
const PlaceOfPayLista = () => {
getPayRollPlace().then((res) => {
if (res.data.code === 200) {
let arr = res.data.data;
let array = [];
@@ -391,8 +399,7 @@ export default {
state.tableLoading = true
expenseSummaryById(state.searchParam)
.then((res) => {
console.log(res,'resssss')
tableData.value = res.data.data
tableData.value = res.data.data.records
state.tableDataTotal = Number(res.data.data.total);
state.tableLoading = false
}).catch(err=>{
@@ -400,7 +407,7 @@ export default {
message.error(err.data.msg)
})
};
//获取所属组织
const getOrganizationList = ref([
// { value: 0, systemName: "讲师体系" },
@@ -438,6 +445,25 @@ export default {
state.opendrawer=true
searchSubmitdrawer()
}
const handleLess = (record) => {
console.log(record,'record')
dialog({
content: '是否确认撤回 ?',
ok:()=>{
removeBySummaryId({summaryId:record.id}).then(res=>{
if(res.data.code == 200){
message.success('撤回成功')
emits.emit('tableList',true)
searchSubmit()
}else{
message.error(res.data.msg)
}
}).catch(err=>{
message.error(err.data.msg)
})
}
})
}
const searchTimeChange = (e) => {
console.log(e,'eeeee')
if(e){
@@ -447,8 +473,16 @@ export default {
state.drawer.startTime = ''
state.drawer.endTime = ''
}
}
const pagination = computed(() => ({
total: state.tableDataTotal,
showSizeChanger: true,
showQuickJumper:true,
current: state.searchParam.pageNo,
pageSize: state.searchParam.pageSize,
onChange: changePagination,
}));
const changePagination = (page, pageSize) => {
state.searchParam.pageNo = page;
// state.pageNo = page;
@@ -465,7 +499,7 @@ export default {
}
//重置
const searchReset = () => {
state.searchParam = {
state.searchParam = {
pageNo: "1",
pageSize: "10",
id: props.id,
@@ -594,7 +628,7 @@ export default {
align: "center",
width: 120,
},
{
title: '基准课酬 ',
dataIndex: 'levelPay',
@@ -627,12 +661,12 @@ export default {
return text ? text+'元' : '-'
}
},
])
//取消按钮 清空输入的数据
const cancelTeachingDialog = () => {
state.opendrawer = false
state.drawer={
name: '',
drawersearchdate: [],
@@ -652,14 +686,16 @@ export default {
};
return {
...toRefs(state),
tableDatas,
tableDatas,
column,
enterPressHadlerSearch,
cancelTeachingDialog,
searchReset,
handleFeeMonthly,
handleLook,
handleLess,
changePagination,
pagination,
searchTimeChange,
searchSubmitdrawer,
getTableDate,
@@ -1043,9 +1079,9 @@ export default {
// /* 确保文字垂直居中 */
// }
::v-deep .ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
height: 40px !important;
line-height: 40px;
border-radius: 8px
height: 32px !important;
// line-height: 40px;
// border-radius: 8px
}
// 抽屉内样式
@@ -1063,8 +1099,8 @@ export default {
margin-right: 20px
}
::v-deep .ant-select:not(.ant-select-customize-input) .ant-select-selector{
border-radius:8px;
height:40px;
// border-radius:8px;
height:32px;
}
.ant-col-12{
height:90px;