讲师管理bug

This commit is contained in:
zhangsir
2024-11-22 18:13:32 +08:00
parent ad64f71b38
commit fa05be699c
8 changed files with 294 additions and 165 deletions

View File

@@ -16,7 +16,7 @@
</div>
<div class="content">
<div class="box">
<div style="margin-bottom: 20px;font-size: 18px;font-weight: 700;">选择讲师费汇总:<span style="color:red;margin-left:20px;">{{levelPay||0}}</span></div>
<div style="margin-bottom: 20px;font-size: 18px;font-weight: 700;">选择讲师费汇总:<span style="color:red;margin-left:20px;">{{payableExpense||0}}</span></div>
<div class="table">
<a-table
:columns="columns"
@@ -86,14 +86,14 @@ const addList = (item) => {
selectedRowKeys.value.push(item.id)
selectsData.value.push(item)
}
const levelPay = ref(0)
const payableExpense = ref(0)
watch(()=>selectsData.value.length,(val)=>{
if(val){
levelPay.value = selectsData.value.reduce((a,b)=>{
return a + b.levelPay
payableExpense.value = selectsData.value.reduce((a,b)=>{
return a + b.payableExpense
},0)
}else{
levelPay.value = 0
payableExpense.value = 0
}
})
const removeList = (item) => {
@@ -115,35 +115,51 @@ const columns = [
},
{
title: '所属组织',
dataIndex: 'name',
key: 'name',
dataIndex: 'orgName',
key: 'orgName',
align: 'center',
},
{
title: '讲师体系',
dataIndex: 'name',
key: 'name',
dataIndex: 'tsystemName',
key: 'tsystemName',
align: 'center',
},
{
title: '讲师等级',
dataIndex: 'name',
key: 'name',
dataIndex: 'tlevelName',
key: 'tlevelName',
align: 'center',
},
{
title: '发薪地',
dataIndex: 'name',
key: 'name',
dataIndex: 'payrollPlace',
key: 'payrollPlace',
align: 'center',
},
{
title: '课程类型',
dataIndex: 'name',
key: 'name',
dataIndex: 'courseType',
key: 'courseType',
align: 'center',
customRender: ({ text,record })=>{
switch (text) {
case 0:
return "在线课"
case 1:
return "面授课"
case 2:
return "课程开发"
case 3:
return "作业员入模培训"
case 4:
return "其他"
default:
return "-"
}
}
},
{
title: '课程名称',
@@ -153,44 +169,47 @@ const columns = [
},
{
title: '授课/开发课程日期',
dataIndex: 'name',
key: 'name',
dataIndex: 'teachingDate',
key: 'teachingDate',
align: 'center',
},
{
title: '授课/开发课程时长',
dataIndex: 'name',
key: 'name',
dataIndex: 'teachingTime',
key: 'teachingTime',
align: 'center',
customRender: ({ text,record })=>{
return (text/60).toFixed(2)+'小时'
}
},
{
title: '参训人数',
dataIndex: 'name',
key: 'name',
dataIndex: 'studys',
key: 'studys',
align: 'center',
},
{
title: '评分',
dataIndex: 'name',
key: 'name',
dataIndex: 'score',
key: 'score',
align: 'center',
},
{
title: '课酬基准',
dataIndex: 'name',
key: 'name',
dataIndex: 'levelPay',
key: 'levelPay',
align: 'center',
},
{
title: '计划费用',
dataIndex: 'name',
key: 'name',
dataIndex: 'expense',
key: 'expense',
align: 'center',
},
{
title: '应发费用',
dataIndex: 'name',
key: 'name',
dataIndex: 'payableExpense',
key: 'payableExpense',
align: 'center',
},
{

View File

@@ -4,6 +4,7 @@
class="drawerStyle RouterFaceStus"
placement="right"
width="60%"
:zIndex="1001"
>
<div class="drawerMains">
<div class="headers">
@@ -23,14 +24,14 @@
</div>
<div class="right">
<div class="org" :title="item?.trainOrgName">{{item?.trainOrgName}}</div>
<div class="text">{{item?.summaryTotal}}</div>
<div class="text org" :title="item?.summaryTotal">{{item?.summaryTotal}}</div>
</div>
</div>
</div>
<div class="box">
<div class="top">
<div class="item">
<a-input style="border-radius: 8px;width:240px;height: 40px;" v-model:value="nameUserNo" placeholder="请输入工号/讲师名称进行搜索" allowClear />
<a-input @pressEnter="searchData(true)" style="border-radius: 8px;width:240px;height: 40px;" v-model:value="nameUserNo" placeholder="请输入工号/讲师名称进行搜索" allowClear />
</div>
<div class="item">
<a-range-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD" style="border-radius: 8px;width:360px;height: 40px;" v-model:value="dateValue" />
@@ -148,6 +149,11 @@ const handleConfirm = () => {
close()
closeDrawer()
})
}).catch(err=>{
message.destroy()
message.error(err.data.msg)
close()
closeDrawer()
})
}
const forData = ref()
@@ -186,19 +192,25 @@ watch(()=>props.visible,(val)=>{
}
})
const removeId = (e,i) =>{
forData.value?.forEach(item=>{
item.expenseList?.some((i,l)=>{
if(i.id == e.id){
return item.expenseList.splice(l,1)
dialog({
content: "是否确认移除",
ok: () =>{
forData.value?.forEach(item=>{
item.expenseList?.some((i,l)=>{
if(i.id == e.id){
return item.expenseList.splice(l,1)
}
})
})
if(searchTrue.value){
searchList.value = searchList.value.filter(item=>item.id !== e.id)
expenseList.value = expenseList.value.filter(item=>item.id !== e.id)
}else{
expenseList.value = expenseList.value.filter(item=>item.id !== e.id)
}
})
forData.value[indexList.value].summaryTotal = forData.value[indexList.value]?.summaryTotal - e.payableExpense
}
})
if(searchTrue.value){
searchList.value = searchList.value.filter(item=>item.id !== e.id)
expenseList.value = expenseList.value.filter(item=>item.id !== e.id)
}else{
expenseList.value = expenseList.value.filter(item=>item.id !== e.id)
}
}
const nameUserNo = ref(null)
const dateValue = ref(null)
@@ -244,15 +256,15 @@ const columns = [
},
{
title: '所属组织',
dataIndex: 'name',
key: 'name',
dataIndex: 'orgName',
key: 'orgName',
align: 'center',
},
{
title: '讲师体系',
dataIndex: 'name',
key: 'name',
dataIndex: 'tsystemName',
key: 'tsystemName',
align: 'center',
},
{
@@ -276,15 +288,15 @@ const columns = [
customRender: ({ text,record })=>{
switch (text) {
case 0:
return "在线"
return "在线"
case 1:
return "面授"
return "面授"
case 2:
return "授课"
case 3:
return "课程开发"
case 3:
return "作业员入模培训"
case 4:
return "作业员如模培训"
return "其他"
default:
return "-"
}
@@ -307,6 +319,9 @@ const columns = [
dataIndex: 'teachingTime',
key: 'teachingTime',
align: 'center',
customRender: ({ text,record })=>{
return (text/60).toFixed(2)+'小时'
}
},
{
title: '参训人数',
@@ -528,6 +543,7 @@ const config = () => {
margin-bottom: 20px;
.left{
width: 35%;
min-width: 86px;
text-align:right;
margin-right:30px;
color: rgba(116, 120, 141, 0.603921568627451);
@@ -538,7 +554,7 @@ const config = () => {
.right{
color: #646C9A;
.org{
max-width: 180px;
max-width: 148px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;