mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-11 11:56:46 +08:00
Merge branch 'zcwy-teacher-manage' into master_1202
This commit is contained in:
@@ -71,6 +71,8 @@ export const getApprovalResultByApprovalIdList = (approvalId) => http.post(`/adm
|
|||||||
export const recovery = (id) => http.post(`/admin/affiliation/recovery?id=${id}`)
|
export const recovery = (id) => http.post(`/admin/affiliation/recovery?id=${id}`)
|
||||||
//删除培训发生组织
|
//删除培训发生组织
|
||||||
export const affiliationDelById = (id)=>http.post(`/admin/affiliation/delById?id=${id}`)
|
export const affiliationDelById = (id)=>http.post(`/admin/affiliation/delById?id=${id}`)
|
||||||
|
//停用启用培训发生组织
|
||||||
|
export const isEnable = (obj) => http.post(`/admin/affiliation/isEnable`,obj)
|
||||||
//撤回培训发生组织
|
//撤回培训发生组织
|
||||||
export const affiliatIsConfirm = (id) => http.post(`/admin/affiliation/isConfirm?id=${id}`)
|
export const affiliatIsConfirm = (id) => http.post(`/admin/affiliation/isConfirm?id=${id}`)
|
||||||
//讲师费统计详情
|
//讲师费统计详情
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ export const queryTeacherFeeTotalList= (obj) => http.post('/teacher/fee/queryTea
|
|||||||
export const getPreviousTeacherFee= (obj) => http.post('/teacher/fee/getPreviousTeacherFee',obj)
|
export const getPreviousTeacherFee= (obj) => http.post('/teacher/fee/getPreviousTeacherFee',obj)
|
||||||
//汇总上月讲师费月度数据
|
//汇总上月讲师费月度数据
|
||||||
export const CreateMonthSummary= (obj) => http.post('/admin/expenseSummary/createMonthSummary',obj)
|
export const CreateMonthSummary= (obj) => http.post('/admin/expenseSummary/createMonthSummary',obj)
|
||||||
|
//是否显示重汇按钮
|
||||||
|
export const isShowReimport= () => http.get('/admin/expenseSummary/isAdmin')
|
||||||
//讲师费统计列表
|
//讲师费统计列表
|
||||||
export const expenseSummaryList= (obj) => http.get('/admin/expenseSummary/list',{params:obj})
|
export const expenseSummaryList= (obj) => http.get('/admin/expenseSummary/list',{params:obj})
|
||||||
//提交/撤回
|
//提交/撤回
|
||||||
|
|||||||
@@ -295,7 +295,7 @@ import {getCookieForName} from "@/api/method";
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
function downTemplate() {
|
function downTemplate() {
|
||||||
window.open(`${process.env.VUE_APP_BASE}/template/${props.template}.xlsx`);
|
window.open(`${process.env.VUE_APP_BOE_API_URL}/upload/template/${props.template}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ import * as lecturerApi from "@/api/Lecturer.js";
|
|||||||
notLists?.value?.some(i=>{
|
notLists?.value?.some(i=>{
|
||||||
if(i.orgId == item.id){
|
if(i.orgId == item.id){
|
||||||
item.disabled = true
|
item.disabled = true
|
||||||
item.name = item.name + '(' + i.orgName + ')'
|
item.name = item.name + '(' + i.affiliationName + ')'
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -129,7 +129,7 @@ import * as lecturerApi from "@/api/Lecturer.js";
|
|||||||
notLists.value.some(i=>{
|
notLists.value.some(i=>{
|
||||||
if(i.orgId == item.id){
|
if(i.orgId == item.id){
|
||||||
item.disabled = true
|
item.disabled = true
|
||||||
item.name = item.name + '(' + i.orgName + ')'
|
item.name = item.name + '(' + i.affiliationName + ')'
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
:closable="false"
|
:closable="false"
|
||||||
class="largeDrawerInside"
|
class="largeDrawerInside"
|
||||||
placement="right"
|
placement="right"
|
||||||
width="70%"
|
width="80%"
|
||||||
>
|
>
|
||||||
<div class="drawerMains">
|
<div class="drawerMains">
|
||||||
<div class="headers" style="margin-top:-24px;">
|
<div class="headers" style="margin-top:-24px;">
|
||||||
@@ -22,9 +22,9 @@
|
|||||||
<div class="item">
|
<div class="item">
|
||||||
<a-input @pressEnter="searchData(true)" 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>
|
||||||
<div class="item">
|
<!-- <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" />
|
<a-range-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD" style="border-radius: 8px;width:360px;height: 40px;" v-model:value="dateValue" />
|
||||||
</div>
|
</div> -->
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<a-button type="primary" @click="searchData(true)" style="margin-right:20px;border-radius:8px;width: 100px;height: 40px;">搜索</a-button>
|
<a-button type="primary" @click="searchData(true)" style="margin-right:20px;border-radius:8px;width: 100px;height: 40px;">搜索</a-button>
|
||||||
<a-button type="primary" @click="resetData()" style="border-radius:8px;width: 100px;height: 40px;">重置</a-button>
|
<a-button type="primary" @click="resetData()" style="border-radius:8px;width: 100px;height: 40px;">重置</a-button>
|
||||||
@@ -32,13 +32,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="table" style="padding-bottom:72px;">
|
<div class="table" style="padding-bottom:72px;">
|
||||||
<a-table
|
<a-table
|
||||||
|
ref="drawerContent"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:data-source="searchTrue?searchList:tableData"
|
:data-source="tableData"
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
:scroll="{ x: 'max-content' }"
|
:scroll="{ x: 'max-content',y:tableData.length? pageHeight : null }"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||||
|
:custom-row="customRow"
|
||||||
>
|
>
|
||||||
<template #action="{ record }">
|
<template #action="{ record }">
|
||||||
<div class="action">
|
<div class="action">
|
||||||
@@ -71,6 +73,17 @@ const props = defineProps({
|
|||||||
default: ""
|
default: ""
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
const drawerContent = ref(null)
|
||||||
|
const customRow = (record) => {
|
||||||
|
return {
|
||||||
|
style:{
|
||||||
|
backgroundColor: searchTrue.value && searchList.value.some(item => item.id === record.id) ? '#a6dff9' : '',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const pageHeight = computed(() => {
|
||||||
|
return window.innerHeight - 360
|
||||||
|
});
|
||||||
watch(()=>props.visible,(val)=>{
|
watch(()=>props.visible,(val)=>{
|
||||||
if(val){
|
if(val){
|
||||||
loading.value = true
|
loading.value = true
|
||||||
@@ -82,12 +95,15 @@ watch(()=>props.visible,(val)=>{
|
|||||||
}
|
}
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}).catch(err=>{
|
}).catch(err=>{
|
||||||
message.error(err.data.msg)
|
|
||||||
loading.value = false
|
loading.value = false
|
||||||
|
tableData.value = []
|
||||||
|
message.error(err.data.msg)
|
||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
selectedRowKeys.value = []
|
selectedRowKeys.value = []
|
||||||
selectsData.value = []
|
selectsData.value = []
|
||||||
|
drawerContent.value?.$el.querySelector('.ant-table-body')?.scrollTo({top:0,behavior: 'smooth'})
|
||||||
|
resetData()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const nameUserNo = ref(null)
|
const nameUserNo = ref(null)
|
||||||
@@ -100,9 +116,10 @@ const resetData = () => {
|
|||||||
searchData(false)
|
searchData(false)
|
||||||
}
|
}
|
||||||
const searchData = (val) => {
|
const searchData = (val) => {
|
||||||
|
// drawerContent.value.scrollTo({top:200,behavior: 'smooth'})
|
||||||
searchTrue.value = val
|
searchTrue.value = val
|
||||||
if(!nameUserNo.value&&!dateValue.value){
|
if(!nameUserNo.value&&!dateValue.value){
|
||||||
searchList.value = tableData.value;
|
searchList.value = [];
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//搜索 数组expenseList.value 参数名字或者工号:nameUserNo.value 日期:dateValue.value
|
//搜索 数组expenseList.value 参数名字或者工号:nameUserNo.value 日期:dateValue.value
|
||||||
@@ -121,6 +138,11 @@ const searchData = (val) => {
|
|||||||
return isNameMatch || isDateInRange;
|
return isNameMatch || isDateInRange;
|
||||||
});
|
});
|
||||||
searchList.value = filteredList;
|
searchList.value = filteredList;
|
||||||
|
let scrollHeight = null
|
||||||
|
filteredList.length && (scrollHeight = tableData.value.findIndex(item => item.id === filteredList[0].id))
|
||||||
|
if(scrollHeight||scrollHeight==0){
|
||||||
|
drawerContent.value?.$el.querySelector('.ant-table-body')?.scrollTo({top:scrollHeight*55,behavior: 'smooth'})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const selectedRowKeys = ref([])
|
const selectedRowKeys = ref([])
|
||||||
@@ -154,19 +176,30 @@ const columns = [
|
|||||||
dataIndex: 'name',
|
dataIndex: 'name',
|
||||||
key: 'name',
|
key: 'name',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '讲师工号',
|
title: '讲师工号',
|
||||||
dataIndex: 'userNo',
|
dataIndex: 'userNo',
|
||||||
key: 'userNo',
|
key: 'userNo',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '课程名称',
|
||||||
|
dataIndex: 'courseName',
|
||||||
|
key: 'courseName',
|
||||||
|
align: 'left',
|
||||||
|
width:160,
|
||||||
|
customCell :() => {return {style: {maxWidth: '200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer'}}},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '所属组织',
|
title: '所属组织',
|
||||||
dataIndex: 'orgName',
|
dataIndex: 'orgName',
|
||||||
key: 'orgName',
|
key: 'orgName',
|
||||||
align: 'center',
|
align: 'left',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
|
width:100,
|
||||||
customCell :() => {return {style: {maxWidth: '200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer'}}},
|
customCell :() => {return {style: {maxWidth: '200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer'}}},
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -174,13 +207,16 @@ const columns = [
|
|||||||
title: '讲师体系',
|
title: '讲师体系',
|
||||||
dataIndex: 'tsystemName',
|
dataIndex: 'tsystemName',
|
||||||
key: 'tsystemName',
|
key: 'tsystemName',
|
||||||
align: 'center',
|
align: 'left',
|
||||||
|
width:100,
|
||||||
|
customCell :() => {return {style: {maxWidth: '200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer'}}},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '讲师等级',
|
title: '讲师等级',
|
||||||
dataIndex: 'tlevelName',
|
dataIndex: 'tlevelName',
|
||||||
key: 'tlevelName',
|
key: 'tlevelName',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100,
|
||||||
customRender: ({ text })=>{
|
customRender: ({ text })=>{
|
||||||
return text||'-'
|
return text||'-'
|
||||||
}
|
}
|
||||||
@@ -190,6 +226,7 @@ const columns = [
|
|||||||
dataIndex: 'payrollPlace',
|
dataIndex: 'payrollPlace',
|
||||||
key: 'payrollPlace',
|
key: 'payrollPlace',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:120,
|
||||||
customRender: ({ text })=>{
|
customRender: ({ text })=>{
|
||||||
return text||'-'
|
return text||'-'
|
||||||
}
|
}
|
||||||
@@ -200,6 +237,7 @@ const columns = [
|
|||||||
dataIndex: 'courseType',
|
dataIndex: 'courseType',
|
||||||
key: 'courseType',
|
key: 'courseType',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:120,
|
||||||
customRender: ({ text,record })=>{
|
customRender: ({ text,record })=>{
|
||||||
switch (text) {
|
switch (text) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -217,23 +255,19 @@ const columns = [
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: '课程名称',
|
|
||||||
dataIndex: 'courseName',
|
|
||||||
key: 'courseName',
|
|
||||||
align: 'center',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: '授课/开发课程日期',
|
title: '授课/开发课程日期',
|
||||||
dataIndex: 'teachingDate',
|
dataIndex: 'teachingDate',
|
||||||
key: 'teachingDate',
|
key: 'teachingDate',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:150
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '授课/开发课程时长',
|
title: '授课/开发课程时长',
|
||||||
dataIndex: 'teachingTime',
|
dataIndex: 'teachingTime',
|
||||||
key: 'teachingTime',
|
key: 'teachingTime',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:150,
|
||||||
customRender: ({ text,record })=>{
|
customRender: ({ text,record })=>{
|
||||||
return (text/60).toFixed(2)+'小时'
|
return (text/60).toFixed(2)+'小时'
|
||||||
}
|
}
|
||||||
@@ -243,6 +277,7 @@ const columns = [
|
|||||||
dataIndex: 'studys',
|
dataIndex: 'studys',
|
||||||
key: 'studys',
|
key: 'studys',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100,
|
||||||
customRender: ({ text })=>{
|
customRender: ({ text })=>{
|
||||||
return text||'0'
|
return text||'0'
|
||||||
}
|
}
|
||||||
@@ -252,21 +287,28 @@ const columns = [
|
|||||||
dataIndex: 'score',
|
dataIndex: 'score',
|
||||||
key: 'score',
|
key: 'score',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
customRender: ({ text })=>{
|
width:100,
|
||||||
return text||'-'
|
customRender: (value) => {
|
||||||
}
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(0) : '-'}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '课酬基准',
|
title: '课酬基准',
|
||||||
dataIndex: 'levelPay',
|
dataIndex: 'levelPay',
|
||||||
key: 'levelPay',
|
key: 'levelPay',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '计划费用',
|
title: '计划费用',
|
||||||
dataIndex: 'expense',
|
dataIndex: 'expense',
|
||||||
key: 'expense',
|
key: 'expense',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: '应发费用',
|
// title: '应发费用',
|
||||||
@@ -279,6 +321,7 @@ const columns = [
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
width: 100,
|
width: 100,
|
||||||
|
customCell:()=>{return {style:{background:'#fff'}}},
|
||||||
slots: { customRender: "action" },
|
slots: { customRender: "action" },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
@@ -299,13 +342,44 @@ const queryDrawer = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.ant-table-wrapper{
|
||||||
|
border-right: 1px solid #ecf5ff;
|
||||||
|
}
|
||||||
|
/* 重置表格行的悬停效果 */
|
||||||
|
::v-deep .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
// 选中鼠标划入
|
||||||
|
::v-deep .ant-table-tbody > tr.ant-table-row-selected:hover > td{
|
||||||
|
background: none ;
|
||||||
|
}
|
||||||
|
/* 未选中行的鼠标划入样式 */
|
||||||
|
::v-deep .ant-table-tbody > tr:not(.ant-table-row-selected):hover > td {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
/* 未选中行的鼠标划出样式 */
|
||||||
|
::v-deep .ant-table-tbody > tr:not(.ant-table-row-selected):not(:hover) > td {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
// 选中
|
||||||
|
::v-deep .ant-table-tbody > tr.ant-table-row-selected > td{
|
||||||
|
background: none ;
|
||||||
|
}
|
||||||
|
/* 重置表格行的选中效果 */
|
||||||
|
::v-deep .ant-table-row-selected td {
|
||||||
|
// background: none !important;
|
||||||
|
}
|
||||||
|
::v-deep .ant-table-thead > tr > th {
|
||||||
|
background-color: #eff4fc !important;
|
||||||
|
text-align: center !important;
|
||||||
|
}
|
||||||
|
|
||||||
.largeDrawerInside {
|
.largeDrawerInside {
|
||||||
.drawerMains {
|
.drawerMains {
|
||||||
min-width: 600px;
|
min-width: 600px;
|
||||||
// margin: 0px 32px 0px 32px;
|
// margin: 0px 32px 0px 32px;
|
||||||
overflow-x: auto;
|
height:100%;
|
||||||
|
overflow: auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding:24px;
|
padding:24px;
|
||||||
@@ -319,6 +393,7 @@ const queryDrawer = () => {
|
|||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|
||||||
.headerTitle {
|
.headerTitle {
|
||||||
|
margin: 24px 0;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
@@ -373,7 +448,7 @@ const queryDrawer = () => {
|
|||||||
}
|
}
|
||||||
.table{
|
.table{
|
||||||
::v-deep .ant-table-cell-fix-right {
|
::v-deep .ant-table-cell-fix-right {
|
||||||
width: 160px !important;
|
width: 120px !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
:closable="false"
|
:closable="false"
|
||||||
class="largeDrawerInside"
|
class="largeDrawerInside"
|
||||||
placement="right"
|
placement="right"
|
||||||
width="64%"
|
width="76%"
|
||||||
:zIndex="1001"
|
:zIndex="1001"
|
||||||
>
|
>
|
||||||
<div class="drawerMains">
|
<div class="drawerMains">
|
||||||
@@ -30,25 +30,27 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<!-- <div class="top">
|
<div class="top">
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<a-input @pressEnter="searchData(true)" 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>
|
||||||
<div class="item">
|
<!-- <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" />
|
<a-range-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD" style="border-radius: 8px;width:360px;height: 40px;" v-model:value="dateValue" />
|
||||||
</div>
|
</div> -->
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<a-button type="primary" @click="searchData(true)" style="margin-right:20px;border-radius:8px;width: 100px;height: 40px;">搜索</a-button>
|
<a-button type="primary" @click="searchData(true)" style="margin-right:20px;border-radius:8px;width: 100px;height: 40px;">搜索</a-button>
|
||||||
<a-button type="primary" @click="resetData()" style="border-radius:8px;width: 100px;height: 40px;">重置</a-button>
|
<a-button type="primary" @click="resetData()" style="border-radius:8px;width: 100px;height: 40px;">重置</a-button>
|
||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div>
|
||||||
<div class="table">
|
<div class="table">
|
||||||
<a-table
|
<a-table
|
||||||
|
ref="drawerContent"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:data-source="searchTrue?searchList:expenseList"
|
:data-source="expenseList"
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
:scroll="{ x: 'max-content' }"
|
:scroll="{ x: 'max-content',y:expenseList.length? pageHeight : null }"
|
||||||
:loading="loadingData"
|
:loading="loadingData"
|
||||||
|
:custom-row="customRow"
|
||||||
>
|
>
|
||||||
<template #action="{ record,index }">
|
<template #action="{ record,index }">
|
||||||
<div class="action">
|
<div class="action">
|
||||||
@@ -60,8 +62,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnn">
|
<div class="btnn">
|
||||||
<button class="btn1" @click="config">确认提交审批</button>
|
<button class="btn1" @click="config">提交审批</button>
|
||||||
<button class="btn1" @click="qureyDrawer">确认至审批中心</button>
|
<button class="btn1" @click="qureyDrawer">保存至审批中心</button>
|
||||||
<button class="btn2" @click="closeDrawer">取消</button>
|
<button class="btn2" @click="closeDrawer">取消</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -174,6 +176,9 @@ const clickItem = (item,i) => {
|
|||||||
indexList.value = i
|
indexList.value = i
|
||||||
resetData()
|
resetData()
|
||||||
}
|
}
|
||||||
|
const pageHeight = computed(() => {
|
||||||
|
return window.innerHeight - 450
|
||||||
|
});
|
||||||
watch(()=>props.visible,(val)=>{
|
watch(()=>props.visible,(val)=>{
|
||||||
if(val){
|
if(val){
|
||||||
loadingData.value = true
|
loadingData.value = true
|
||||||
@@ -195,10 +200,14 @@ watch(()=>props.visible,(val)=>{
|
|||||||
}).catch(()=>{
|
}).catch(()=>{
|
||||||
message.error('获取数据失败,请重新尝试')
|
message.error('获取数据失败,请重新尝试')
|
||||||
loadingData.value = false
|
loadingData.value = false
|
||||||
|
forData.value = []
|
||||||
|
expenseList.value = []
|
||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
nameUserNo.value = null
|
nameUserNo.value = null
|
||||||
dateValue.value = null
|
dateValue.value = null
|
||||||
|
indexList.value = 0
|
||||||
|
drawerContent.value?.$el.querySelector('.ant-table-body')?.scrollTo({top:0,behavior: 'smooth'})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const removeId = (e,i) =>{
|
const removeId = (e,i) =>{
|
||||||
@@ -218,7 +227,7 @@ const removeId = (e,i) =>{
|
|||||||
}else{
|
}else{
|
||||||
expenseList.value = expenseList.value.filter(item=>item.id !== e.id)
|
expenseList.value = expenseList.value.filter(item=>item.id !== e.id)
|
||||||
}
|
}
|
||||||
forData.value[indexList.value].summaryTotal = forData.value[indexList.value]?.summaryTotal - e.payableExpense
|
forData.value[indexList.value].summaryTotal = (forData.value[indexList.value]?.summaryTotal - e.expense).toFixed(2)
|
||||||
if(!forData.value[indexList.value].expenseList.length){
|
if(!forData.value[indexList.value].expenseList.length){
|
||||||
forData.value.splice(indexList.value,1)
|
forData.value.splice(indexList.value,1)
|
||||||
forData.value.length > 0 && clickItem(forData.value[0],0)
|
forData.value.length > 0 && clickItem(forData.value[0],0)
|
||||||
@@ -229,10 +238,18 @@ const removeId = (e,i) =>{
|
|||||||
const nameUserNo = ref(null)
|
const nameUserNo = ref(null)
|
||||||
const dateValue = ref(null)
|
const dateValue = ref(null)
|
||||||
const searchTrue = ref(false)
|
const searchTrue = ref(false)
|
||||||
|
const drawerContent = ref(null)
|
||||||
|
const customRow = (record) => {
|
||||||
|
return {
|
||||||
|
style:{
|
||||||
|
backgroundColor: searchTrue.value && searchList.value.some(item => item.id === record.id) ? '#a6dff9' : '',
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
const searchData = (val) => {
|
const searchData = (val) => {
|
||||||
searchTrue.value = val
|
searchTrue.value = val
|
||||||
if(!nameUserNo.value&&!dateValue.value){
|
if(!nameUserNo.value&&!dateValue.value){
|
||||||
searchList.value = expenseList.value;
|
searchList.value = [];
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//搜索 数组expenseList.value 参数名字或者工号:nameUserNo.value 日期:dateValue.value
|
//搜索 数组expenseList.value 参数名字或者工号:nameUserNo.value 日期:dateValue.value
|
||||||
@@ -251,6 +268,11 @@ const searchData = (val) => {
|
|||||||
return isNameMatch || isDateInRange;
|
return isNameMatch || isDateInRange;
|
||||||
});
|
});
|
||||||
searchList.value = filteredList;
|
searchList.value = filteredList;
|
||||||
|
let scrollHeight = null
|
||||||
|
filteredList.length && (scrollHeight = expenseList.value.findIndex(item => item.id === filteredList[0].id))
|
||||||
|
if(scrollHeight||scrollHeight==0){
|
||||||
|
drawerContent.value?.$el.querySelector('.ant-table-body')?.scrollTo({top:scrollHeight*55,behavior: 'smooth'})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const resetData = () => {
|
const resetData = () => {
|
||||||
nameUserNo.value = null
|
nameUserNo.value = null
|
||||||
@@ -264,19 +286,30 @@ const columns = [
|
|||||||
dataIndex: 'name',
|
dataIndex: 'name',
|
||||||
key: 'name',
|
key: 'name',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '讲师工号',
|
title: '讲师工号',
|
||||||
dataIndex: 'userNo',
|
dataIndex: 'userNo',
|
||||||
key: 'userNo',
|
key: 'userNo',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '课程名称',
|
||||||
|
dataIndex: 'courseName',
|
||||||
|
key: 'courseName',
|
||||||
|
align: 'left',
|
||||||
|
width:160,
|
||||||
|
customCell :() => {return {style: {maxWidth: '200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer'}}},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '所属组织',
|
title: '所属组织',
|
||||||
dataIndex: 'orgName',
|
dataIndex: 'orgName',
|
||||||
key: 'orgName',
|
key: 'orgName',
|
||||||
align: 'center',
|
align: 'left',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
|
width:100,
|
||||||
customCell :() => {return {style: {maxWidth: '200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer'}}},
|
customCell :() => {return {style: {maxWidth: '200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer'}}},
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -284,13 +317,16 @@ const columns = [
|
|||||||
title: '讲师体系',
|
title: '讲师体系',
|
||||||
dataIndex: 'tsystemName',
|
dataIndex: 'tsystemName',
|
||||||
key: 'tsystemName',
|
key: 'tsystemName',
|
||||||
align: 'center',
|
align: 'left',
|
||||||
|
width:100,
|
||||||
|
customCell :() => {return {style: {maxWidth: '200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer'}}},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '讲师等级',
|
title: '讲师等级',
|
||||||
dataIndex: 'tlevelName',
|
dataIndex: 'tlevelName',
|
||||||
key: 'tlevelName',
|
key: 'tlevelName',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100,
|
||||||
customRender: ({ text })=>{
|
customRender: ({ text })=>{
|
||||||
return text||'-'
|
return text||'-'
|
||||||
}
|
}
|
||||||
@@ -300,6 +336,7 @@ const columns = [
|
|||||||
dataIndex: 'payrollPlace',
|
dataIndex: 'payrollPlace',
|
||||||
key: 'payrollPlace',
|
key: 'payrollPlace',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:120,
|
||||||
customRender: ({ text })=>{
|
customRender: ({ text })=>{
|
||||||
return text||'-'
|
return text||'-'
|
||||||
}
|
}
|
||||||
@@ -310,6 +347,7 @@ const columns = [
|
|||||||
dataIndex: 'courseType',
|
dataIndex: 'courseType',
|
||||||
key: 'courseType',
|
key: 'courseType',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:120,
|
||||||
customRender: ({ text,record })=>{
|
customRender: ({ text,record })=>{
|
||||||
switch (text) {
|
switch (text) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -327,23 +365,19 @@ const columns = [
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: '课程名称',
|
|
||||||
dataIndex: 'courseName',
|
|
||||||
key: 'courseName',
|
|
||||||
align: 'center',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: '授课/开发课程日期',
|
title: '授课/开发课程日期',
|
||||||
dataIndex: 'teachingDate',
|
dataIndex: 'teachingDate',
|
||||||
key: 'teachingDate',
|
key: 'teachingDate',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:150,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '授课/开发课程时长',
|
title: '授课/开发课程时长',
|
||||||
dataIndex: 'teachingTime',
|
dataIndex: 'teachingTime',
|
||||||
key: 'teachingTime',
|
key: 'teachingTime',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:150,
|
||||||
customRender: ({ text,record })=>{
|
customRender: ({ text,record })=>{
|
||||||
return (text/60).toFixed(2)+'小时'
|
return (text/60).toFixed(2)+'小时'
|
||||||
}
|
}
|
||||||
@@ -353,6 +387,7 @@ const columns = [
|
|||||||
dataIndex: 'studys',
|
dataIndex: 'studys',
|
||||||
key: 'studys',
|
key: 'studys',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100,
|
||||||
customRender: ({ text })=>{
|
customRender: ({ text })=>{
|
||||||
return text||'0'
|
return text||'0'
|
||||||
}
|
}
|
||||||
@@ -362,21 +397,28 @@ const columns = [
|
|||||||
dataIndex: 'score',
|
dataIndex: 'score',
|
||||||
key: 'score',
|
key: 'score',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
customRender: ({ text })=>{
|
width:100,
|
||||||
return text||'-'
|
customRender: (value) => {
|
||||||
}
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(0) : '-'}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '课酬基准',
|
title: '课酬基准',
|
||||||
dataIndex: 'levelPay',
|
dataIndex: 'levelPay',
|
||||||
key: 'levelPay',
|
key: 'levelPay',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '计划费用',
|
title: '计划费用',
|
||||||
dataIndex: 'expense',
|
dataIndex: 'expense',
|
||||||
key: 'expense',
|
key: 'expense',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width:100,
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: '应发费用',
|
// title: '应发费用',
|
||||||
@@ -388,6 +430,8 @@ const columns = [
|
|||||||
title: '操作',
|
title: '操作',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
|
width:100,
|
||||||
|
customCell:()=>{return {style:{background:'#fff'}}},
|
||||||
slots: { customRender: "action" },
|
slots: { customRender: "action" },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
@@ -424,6 +468,23 @@ const config = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
/* 重置表格行的悬停效果 */
|
||||||
|
::v-deep .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
/* 未选中行的鼠标划入样式 */
|
||||||
|
::v-deep .ant-table-tbody > tr:not(.ant-table-row-selected):hover > td {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 未选中行的鼠标划出样式 */
|
||||||
|
::v-deep .ant-table-tbody > tr:not(.ant-table-row-selected):not(:hover) > td {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
::v-deep .ant-table-thead > tr > th {
|
||||||
|
background-color: #eff4fc !important;
|
||||||
|
text-align: center !important;
|
||||||
|
}
|
||||||
.delete {
|
.delete {
|
||||||
min-width: 424px;
|
min-width: 424px;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
@@ -541,7 +602,8 @@ const config = () => {
|
|||||||
.drawerMains {
|
.drawerMains {
|
||||||
min-width: 600px;
|
min-width: 600px;
|
||||||
// margin: 0px 32px 0px 32px;
|
// margin: 0px 32px 0px 32px;
|
||||||
overflow-x: auto;
|
height:100%;
|
||||||
|
overflow: auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding:24px;
|
padding:24px;
|
||||||
@@ -555,6 +617,7 @@ const config = () => {
|
|||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|
||||||
.headerTitle {
|
.headerTitle {
|
||||||
|
margin: 24px 0;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
@@ -624,7 +687,7 @@ const config = () => {
|
|||||||
}
|
}
|
||||||
.table{
|
.table{
|
||||||
::v-deep .ant-table-cell-fix-right {
|
::v-deep .ant-table-cell-fix-right {
|
||||||
width: 160px !important;
|
width: 120px !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -227,6 +227,13 @@ export default{
|
|||||||
key: 'score',
|
key: 'score',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
|
customRender: (value) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(0) : '-'}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '开课状态',
|
title: '开课状态',
|
||||||
@@ -240,7 +247,7 @@ export default{
|
|||||||
{value.record.courseStatus == 0 || value.record.courseStatus == 1
|
{value.record.courseStatus == 0 || value.record.courseStatus == 1
|
||||||
? {
|
? {
|
||||||
"0": "未开课",
|
"0": "未开课",
|
||||||
"1": "开课",
|
"1": "已开课",
|
||||||
}[value.record.courseStatus + ""] || ""
|
}[value.record.courseStatus + ""] || ""
|
||||||
: "-"}
|
: "-"}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -290,6 +290,13 @@ export default{
|
|||||||
key: 'score',
|
key: 'score',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
|
customRender: (value) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(0) : '-'}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '开课状态',
|
title: '开课状态',
|
||||||
@@ -303,7 +310,7 @@ export default{
|
|||||||
{value.record.courseStatus == 0 || value.record.courseStatus == 1
|
{value.record.courseStatus == 0 || value.record.courseStatus == 1
|
||||||
? {
|
? {
|
||||||
"0": "未开课",
|
"0": "未开课",
|
||||||
"1": "开课",
|
"1": "已开课",
|
||||||
}[value.record.courseStatus + ""] || ""
|
}[value.record.courseStatus + ""] || ""
|
||||||
: "-"}
|
: "-"}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -64,11 +64,11 @@
|
|||||||
<a-tab-pane key="2" tab="审批记录" force-render>
|
<a-tab-pane key="2" tab="审批记录" force-render>
|
||||||
<div style="margin-bottom: 20px">
|
<div style="margin-bottom: 20px">
|
||||||
<a-table :columns="columnsTwo" :loading="formData?.loadingTwo" :data-source="formData?.tableDataTwo" :pagination="pagination">
|
<a-table :columns="columnsTwo" :loading="formData?.loadingTwo" :data-source="formData?.tableDataTwo" :pagination="pagination">
|
||||||
<template #action="{ record }">
|
<!-- <template #action="{ record }">
|
||||||
<div class="action">
|
<div class="action">
|
||||||
<div style="color: #1890ff;cursor: pointer;" class="btn" @click="lookList(record)">查看</div>
|
<div style="color: #1890ff;cursor: pointer;" class="btn" @click="lookList(record)">查看</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template> -->
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div style="margin-bottom: 100px">
|
<!-- <div style="margin-bottom: 100px">
|
||||||
@@ -244,18 +244,18 @@ const columnsTwo = ref([
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '审批人',
|
title: '提交人',
|
||||||
dataIndex: 'employeeName',
|
dataIndex: 'employeeName',
|
||||||
key: 'employeeName',
|
key: 'employeeName',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '操作',
|
// title: '操作',
|
||||||
dataIndex: 'address',
|
// dataIndex: 'address',
|
||||||
key:'age',
|
// key:'age',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
slots: { customRender: "action" },
|
// slots: { customRender: "action" },
|
||||||
}
|
// }
|
||||||
])
|
])
|
||||||
const approvalData = ref(null)
|
const approvalData = ref(null)
|
||||||
const threeList = ref(false)
|
const threeList = ref(false)
|
||||||
|
|||||||
@@ -4080,7 +4080,7 @@ function onFocusEnd(){
|
|||||||
editPlan(postData)
|
editPlan(postData)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if(res.data.code == 200){
|
if(res.data.code == 200){
|
||||||
getTableDate3();
|
handleSearchTable();
|
||||||
handleCancelStu();
|
handleCancelStu();
|
||||||
rest();
|
rest();
|
||||||
}else{
|
}else{
|
||||||
@@ -4089,6 +4089,7 @@ function onFocusEnd(){
|
|||||||
state.addLoading = false;
|
state.addLoading = false;
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
handleSearchTable();
|
||||||
message.destroy()
|
message.destroy()
|
||||||
message.error(err.data.msg)
|
message.error(err.data.msg)
|
||||||
state.addLoading = false;
|
state.addLoading = false;
|
||||||
@@ -4474,9 +4475,13 @@ function onFocusEnd(){
|
|||||||
dialog({
|
dialog({
|
||||||
content: "确定撤回吗?",
|
content: "确定撤回吗?",
|
||||||
ok: () => {
|
ok: () => {
|
||||||
message.success("撤回成功");
|
handle({ offcourseId: id, type: 0 }).then(res=>{
|
||||||
record.publishStatus ? (state.tableData1[index].publishStatus = 0) : (state.tableData1[index].auditStatus = 0);
|
message.success("撤回成功");
|
||||||
handle({ offcourseId: id, type: 0 });
|
record.publishStatus ? (state.tableData1[index].publishStatus = 0) : (state.tableData1[index].auditStatus = 0);
|
||||||
|
}).catch(err=>{
|
||||||
|
message.destroy();
|
||||||
|
message.error(err.data.msg);
|
||||||
|
})
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -4860,10 +4865,14 @@ function onFocusEnd(){
|
|||||||
dialog({
|
dialog({
|
||||||
content: "确定删除该课程吗?",
|
content: "确定删除该课程吗?",
|
||||||
ok: async () => {
|
ok: async () => {
|
||||||
message.success("删除成功");
|
await handle({ offcourseId: id, type: -1 }).then(res=>{
|
||||||
state.tableLoading = true;
|
message.success("删除成功");
|
||||||
await handle({ offcourseId: id, type: -1 });
|
state.tableLoading = true;
|
||||||
getTableDate();
|
getTableDate();
|
||||||
|
}).catch(err=>{
|
||||||
|
message.destroy()
|
||||||
|
message.error(err.data.msg)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -4912,9 +4921,14 @@ function onFocusEnd(){
|
|||||||
dialog({
|
dialog({
|
||||||
content: "确定停用该课程吗?",
|
content: "确定停用该课程吗?",
|
||||||
ok: () => {
|
ok: () => {
|
||||||
message.success("停用成功");
|
handle({ offcourseId: record.id, type: -2 }).then(res=>{
|
||||||
record.status = 0;
|
console.log(res,'handleStop')
|
||||||
handle({ offcourseId: record.id, type: -2 });
|
message.success("停用成功");
|
||||||
|
record.status = 0;
|
||||||
|
}).catch(err=>{
|
||||||
|
message.destroy()
|
||||||
|
message.error(err.data.msg)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -142,7 +142,7 @@
|
|||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="手机号码" name="mobile" prop="mobile">
|
<a-form-item label="手机号码" name="mobile" prop="mobile">
|
||||||
<a-input v-model:value.trim="formParam.mobile" class="draitem"
|
<a-input type="number" v-model:value.trim="formParam.mobile" class="draitem"
|
||||||
placeholder="请输入手机号码" allowClear showSearch :maxLength="11" @blur="sendPhone">
|
placeholder="请输入手机号码" allowClear showSearch :maxLength="11" @blur="sendPhone">
|
||||||
</a-input>
|
</a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -155,8 +155,16 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="初始授课时长" name="teaching">
|
<a-form-item name="defaultTeachingTime">
|
||||||
<a-input v-model:value="formParam.teaching" style="width:100%; height: 40px; border-radius: 8px ; "
|
<template v-slot:label>
|
||||||
|
<img
|
||||||
|
style="margin-right:4px;width: 7px;height: 7px"
|
||||||
|
src="@/assets/images/coursewareManage/asterisk.png"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
初始授课时长
|
||||||
|
</template>
|
||||||
|
<a-input v-model:value="formParam.defaultTeachingTime" style="width:100%; height: 40px; border-radius: 8px ; "
|
||||||
placeholder="0" allowClear showSearch suffix="分钟" @blur="clearNonNumber" @focus="focusTeaching">
|
placeholder="0" allowClear showSearch suffix="分钟" @blur="clearNonNumber" @focus="focusTeaching">
|
||||||
</a-input>
|
</a-input>
|
||||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching !== null">{{ (formParam.teaching / 60
|
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching !== null">{{ (formParam.teaching / 60
|
||||||
@@ -316,6 +324,8 @@ export default {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const userInfo = computed(() => store.state.userInfo);
|
const userInfo = computed(() => store.state.userInfo);
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
|
phoneEmil: 0,
|
||||||
|
phoneEmilTwo: 0,
|
||||||
lookExternalVisi:false,
|
lookExternalVisi:false,
|
||||||
lookExterId: null,
|
lookExterId: null,
|
||||||
currentPage1: 1,
|
currentPage1: 1,
|
||||||
@@ -348,7 +358,7 @@ export default {
|
|||||||
teacherType:'2',
|
teacherType:'2',
|
||||||
photo:null,
|
photo:null,
|
||||||
status:1,
|
status:1,
|
||||||
teaching:0,
|
defaultTeachingTime:0,
|
||||||
},
|
},
|
||||||
vf:true,
|
vf:true,
|
||||||
searchParam: {
|
searchParam: {
|
||||||
@@ -397,8 +407,8 @@ export default {
|
|||||||
};
|
};
|
||||||
const AccountStatusList = ref([
|
const AccountStatusList = ref([
|
||||||
{ value: '', label: "全部" },
|
{ value: '', label: "全部" },
|
||||||
{ value: 1, label: "启用" },
|
{ value: '1', label: "启用" },
|
||||||
{ value: 2, label: "停用" },
|
{ value: '2', label: "停用" },
|
||||||
])
|
])
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
{
|
{
|
||||||
@@ -527,6 +537,8 @@ export default {
|
|||||||
// 新增讲师
|
// 新增讲师
|
||||||
const addTeacher = () => {
|
const addTeacher = () => {
|
||||||
cancel()
|
cancel()
|
||||||
|
state.phoneEmil = 0
|
||||||
|
state.phoneEmilTwo = 0
|
||||||
state.teacherdialog = true;
|
state.teacherdialog = true;
|
||||||
state.teacherdialogtitle = '新增讲师'
|
state.teacherdialogtitle = '新增讲师'
|
||||||
// state.formParam.photo =userInfo.value?.avatar
|
// state.formParam.photo =userInfo.value?.avatar
|
||||||
@@ -538,6 +550,8 @@ export default {
|
|||||||
|
|
||||||
//修改讲师信息弹窗
|
//修改讲师信息弹窗
|
||||||
const handleModify = (record) => {
|
const handleModify = (record) => {
|
||||||
|
state.phoneEmil = 0
|
||||||
|
state.phoneEmilTwo = 0
|
||||||
state.teacherdialog = true;
|
state.teacherdialog = true;
|
||||||
state.teacherdialogtitle = '编辑讲师'
|
state.teacherdialogtitle = '编辑讲师'
|
||||||
state.id = record.id
|
state.id = record.id
|
||||||
@@ -558,6 +572,9 @@ export default {
|
|||||||
//保存
|
//保存
|
||||||
const createTeacherDialog = async () => {
|
const createTeacherDialog = async () => {
|
||||||
state.formParam.supplier = state.formParam?.supplier?.trim()
|
state.formParam.supplier = state.formParam?.supplier?.trim()
|
||||||
|
if(state.formParam.defaultTeachingTime||state.formParam.defaultTeachingTime==0){
|
||||||
|
state.formParam.defaultTeachingTime = String(state.formParam.defaultTeachingTime)
|
||||||
|
}
|
||||||
const formItemNames = Object.keys(rules);
|
const formItemNames = Object.keys(rules);
|
||||||
for(let i=0;i<formItemNames.length;i++){
|
for(let i=0;i<formItemNames.length;i++){
|
||||||
// const result = await validateField(formItemNames[i]);
|
// const result = await validateField(formItemNames[i]);
|
||||||
@@ -566,6 +583,14 @@ export default {
|
|||||||
return message.error(rules[formItemNames[i]][0].log)
|
return message.error(rules[formItemNames[i]][0].log)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(state.phoneEmil){
|
||||||
|
message.destroy()
|
||||||
|
return message.warning( '手机号格式不正确')
|
||||||
|
}
|
||||||
|
if(state.phoneEmilTwo){
|
||||||
|
message.destroy()
|
||||||
|
return message.warning( '邮箱格式不正确')
|
||||||
|
}
|
||||||
state.formParam.description = repl(state.formParam.description)
|
state.formParam.description = repl(state.formParam.description)
|
||||||
state.formParam = {...state.formParam}
|
state.formParam = {...state.formParam}
|
||||||
if (state.vf == false) {
|
if (state.vf == false) {
|
||||||
@@ -624,6 +649,7 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
message.error(err.data.msg)
|
||||||
state.deleteTeacherdialog = false
|
state.deleteTeacherdialog = false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -669,7 +695,7 @@ export default {
|
|||||||
status:1,
|
status:1,
|
||||||
teacherType:2,
|
teacherType:2,
|
||||||
photo:null,
|
photo:null,
|
||||||
teaching:0,
|
defaultTeachingTime:0,
|
||||||
name: null,
|
name: null,
|
||||||
mobile: null,
|
mobile: null,
|
||||||
email: null,
|
email: null,
|
||||||
@@ -684,6 +710,7 @@ export default {
|
|||||||
const rules = {
|
const rules = {
|
||||||
name: [{ required: true, message: '',log: '讲师不能为空' }],
|
name: [{ required: true, message: '',log: '讲师不能为空' }],
|
||||||
supplier:[{ required: true, message: '',log:'供应商不能为空' }],
|
supplier:[{ required: true, message: '',log:'供应商不能为空' }],
|
||||||
|
defaultTeachingTime:[{ required: true, message: '',log:'初始授课时长不能为空' }],
|
||||||
// email:[
|
// email:[
|
||||||
// {
|
// {
|
||||||
// type: "email",
|
// type: "email",
|
||||||
@@ -745,34 +772,38 @@ export default {
|
|||||||
state.formParam.name = state.formParam?.name?.replace(/\s/g, '');
|
state.formParam.name = state.formParam?.name?.replace(/\s/g, '');
|
||||||
}
|
}
|
||||||
const sendPhone=()=>{
|
const sendPhone=()=>{
|
||||||
|
state.phoneEmil = 0
|
||||||
console.log(state.formParam.mobile)
|
console.log(state.formParam.mobile)
|
||||||
const reg = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/;
|
const reg = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/;
|
||||||
if (!state.formParam.mobile) {
|
if (!state.formParam.mobile) {
|
||||||
} else if (!reg.test(state.formParam.mobile)) {
|
} else if (!reg.test(state.formParam.mobile)) {
|
||||||
message.warning( '手机号格式不正确')
|
message.warning( '手机号格式不正确')
|
||||||
state.formParam.mobile=''
|
// state.formParam.mobile=''
|
||||||
|
state.phoneEmil = 1
|
||||||
// state.formParam.mobile = state.formParam.mobile.replace(/\D/g, '');
|
// state.formParam.mobile = state.formParam.mobile.replace(/\D/g, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
const sendEmail=()=>{
|
const sendEmail=()=>{
|
||||||
|
state.phoneEmilTwo = 0
|
||||||
const reg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.\w{2,}$/;
|
const reg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.\w{2,}$/;
|
||||||
if(!state.formParam.email){
|
if(!state.formParam.email){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!reg.test(state.formParam.email)) {
|
if (!reg.test(state.formParam.email)) {
|
||||||
message.warning( '邮箱格式不正确')
|
message.warning( '邮箱格式不正确')
|
||||||
state.formParam.email=''
|
// state.formParam.email=''
|
||||||
|
state.phoneEmilTwo = 2
|
||||||
// state.formParam.email = state.formParam.email.replace( /[\u4e00-\u9fa5]/g, '');
|
// state.formParam.email = state.formParam.email.replace( /[\u4e00-\u9fa5]/g, '');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const clearNonNumber = () => {
|
const clearNonNumber = () => {
|
||||||
state.formParam.teaching = state.formParam.teaching?.replace(/\D/g, '');
|
state.formParam.defaultTeachingTime = state.formParam.defaultTeachingTime?.replace(/\D/g, '');
|
||||||
state.formParam.teaching = state.formParam.teaching?.slice(0,8)
|
state.formParam.defaultTeachingTime = state.formParam.defaultTeachingTime?.slice(0,8)
|
||||||
!state.formParam.teaching && (state.formParam.teaching = 0)
|
!state.formParam.defaultTeachingTime && (state.formParam.defaultTeachingTime = 0)
|
||||||
}
|
}
|
||||||
const focusTeaching = () => {
|
const focusTeaching = () => {
|
||||||
state.formParam.teaching == 0 && (state.formParam.teaching = null)
|
state.formParam.defaultTeachingTime == 0 && (state.formParam.defaultTeachingTime = null)
|
||||||
}
|
}
|
||||||
const sendRemark=()=>{
|
const sendRemark=()=>{
|
||||||
state.formParam.remark = state.formParam.remark?.replace(/\s/g, '');
|
state.formParam.remark = state.formParam.remark?.replace(/\s/g, '');
|
||||||
@@ -788,8 +819,7 @@ export default {
|
|||||||
//导出功能
|
//导出功能
|
||||||
const handleExport = () => {
|
const handleExport = () => {
|
||||||
window.open(
|
window.open(
|
||||||
`${process.env.VUE_APP_BASE_API}/admin/export/exportOutTeacher?pageNo=${state.searchParam.pageNo
|
`${process.env.VUE_APP_BASE_API}/admin/export/exportOutTeacher?name=${state.searchParam.name || ""}&status=${state.searchParam.status || ""}`
|
||||||
}&pageSize=${state.searchParam.pageSize}&name=${state.searchParam.name ? state.searchParam.name : ""}&status=${state.searchParam.status ? state.searchParam.status : ""}`
|
|
||||||
);
|
);
|
||||||
// this.download('lesson_records/export', {
|
// this.download('lesson_records/export', {
|
||||||
// ...state.searchParam
|
// ...state.searchParam
|
||||||
|
|||||||
@@ -341,7 +341,7 @@
|
|||||||
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
|
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
|
||||||
).toFixed(2) }}小时)</span>
|
).toFixed(2) }}小时)</span>
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
<a-descriptions-item label="评分 ">{{ formParam.score ||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="评分 ">{{ formParam.score?Number(formParam.score).toFixed(0)==0?'-':Number(formParam.score).toFixed(0):'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="参训人数 ">{{ formParam.studys ||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="参训人数 ">{{ formParam.studys ||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="备注 " :span="2">{{ formParam.remark ||'-' }}</a-descriptions-item>
|
<a-descriptions-item label="备注 " :span="2">{{ formParam.remark ||'-' }}</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
@@ -520,18 +520,22 @@ export default {
|
|||||||
label:item
|
label:item
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
supperList.value.unshift({
|
||||||
|
value: '',
|
||||||
|
label: '全部'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const AuthenticationStatusList = ref([
|
const AuthenticationStatusList = ref([
|
||||||
{ value: '', label: "全部" },
|
{ value: '', label: "全部" },
|
||||||
{ value: 0, label: "未开课" },
|
{ value: '0', label: "未开课" },
|
||||||
{ value: 1, label: "已开课" },
|
{ value: '1', label: "已开课" },
|
||||||
])
|
])
|
||||||
const entryTypeList = ref([
|
const entryTypeList = ref([
|
||||||
{ value: '', label: "全部" },
|
{ value: '', label: "全部" },
|
||||||
{ value: 0, label: "系统生成" },
|
{ value: '0', label: "系统生成" },
|
||||||
{ value: 1, label: "手动录入" },
|
{ value: '1', label: "手动录入" },
|
||||||
])
|
])
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
|
|
||||||
@@ -700,6 +704,13 @@ export default {
|
|||||||
key: 'score',
|
key: 'score',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
|
customRender: (value) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(0) : '-'}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -963,7 +974,7 @@ export default {
|
|||||||
//导出功能
|
//导出功能
|
||||||
const handleExport = () => {
|
const handleExport = () => {
|
||||||
window.open(
|
window.open(
|
||||||
`${process.env.VUE_APP_BASE_API}/admin/export/exportOutTeacherRecord?pageNo=${state.searchParam.pageNo}&pageSize=${state.searchParam.pageSize}&recordType=2&name=${state.searchParam.name ? state.searchParam.name : ""}&courseName=${state.searchParam.courseName ? state.searchParam.courseName : ""}&createFrom=${state.searchParam.createFrom ? state.searchParam.createFrom : ""}&beginTime=${state.searchParam.beginTime ? state.searchParam.beginTime : ""}&endTime=${state.searchParam.endTime ? state.searchParam.endTime : ""}&courseTypeId=${state.searchParam.courseTypeId ? state.searchParam.courseTypeId : ""}&courseStatus=${state.searchParam.courseStatus ? state.searchParam.courseStatus : ""}`
|
`${process.env.VUE_APP_BASE_API}/admin/export/exportOutTeacherRecord?recordType=2&name=${state.searchParam.name || ""}&courseName=${state.searchParam.courseName || ""}&createFrom=${state.searchParam.createFrom || ""}&beginTime=${state.searchParam.beginTime|| ""}&endTime=${state.searchParam.endTime || ""}&courseTypeId=${state.searchParam.courseTypeId || ""}&courseStatus=${state.searchParam.courseStatus || ""}&supplier=${state.searchParam.supplier || ""}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
const clearstudysNumber = () => {
|
const clearstudysNumber = () => {
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
<template #bodyCell="{ record, column }">
|
<template #bodyCell="{ record, column }">
|
||||||
|
|
||||||
<template v-if="column.key === 'orgName'">
|
<template v-if="column.key === 'orgName'">
|
||||||
<a-space style="display:flex ;justify-content: space-around; ">
|
<a-space style="display:flex ;justify-content: left; ">
|
||||||
<!-- <a-popover>
|
<!-- <a-popover>
|
||||||
<template #content>
|
<template #content>
|
||||||
<p>{{ record.orgName}}</p>
|
<p>{{ record.orgName}}</p>
|
||||||
@@ -674,6 +674,10 @@ export default {
|
|||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
});
|
||||||
LecturerSystemList.value = array;
|
LecturerSystemList.value = array;
|
||||||
|
LecturerSystemList.value.unshift({
|
||||||
|
value: "",
|
||||||
|
label: "全部"
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -706,19 +710,23 @@ export default {
|
|||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
});
|
||||||
getLevelList.value = array;
|
getLevelList.value = array;
|
||||||
|
getLevelList.value.unshift({
|
||||||
|
value: "",
|
||||||
|
label: "全部"
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
changetlevel()
|
changetlevel()
|
||||||
const OnTheJobStatusList = ref([
|
const OnTheJobStatusList = ref([
|
||||||
{ value:"", label: "全部" },
|
{ value:"", label: "全部" },
|
||||||
{ value: 0, label: "在职" },
|
{ value: '0', label: "在职" },
|
||||||
{ value: 1, label: "离职" },
|
{ value: '1', label: "离职" },
|
||||||
])
|
])
|
||||||
const AuthenticationStatusList = ref([
|
const AuthenticationStatusList = ref([
|
||||||
{ value: "", label: "全部" },
|
{ value: "", label: "全部" },
|
||||||
{ value: 0, label: "未认证" },
|
{ value: '0', label: "未认证" },
|
||||||
{ value: 1, label: "已认证" },
|
{ value: '1', label: "已认证" },
|
||||||
])
|
])
|
||||||
// const PlaceOfPayList = ref([
|
// const PlaceOfPayList = ref([
|
||||||
// // { value: 0, label: "发薪地B1" },
|
// // { value: 0, label: "发薪地B1" },
|
||||||
@@ -783,7 +791,7 @@ export default {
|
|||||||
title: '所属组织 ',
|
title: '所属组织 ',
|
||||||
dataIndex: 'orgName',
|
dataIndex: 'orgName',
|
||||||
key: 'orgName',
|
key: 'orgName',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "left",
|
||||||
scopedSlots: { customRender: "orgName" },
|
scopedSlots: { customRender: "orgName" },
|
||||||
width: 200,
|
width: 200,
|
||||||
// customRender: (value, record) => {
|
// customRender: (value, record) => {
|
||||||
@@ -798,7 +806,7 @@ export default {
|
|||||||
title: '讲师体系 ',
|
title: '讲师体系 ',
|
||||||
dataIndex: 'tsystemName',
|
dataIndex: 'tsystemName',
|
||||||
key: 'tsystemName',
|
key: 'tsystemName',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "left",
|
||||||
width: 200,
|
width: 200,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1343,7 +1351,7 @@ export default {
|
|||||||
//导出功能
|
//导出功能
|
||||||
const handleExport = () => {
|
const handleExport = () => {
|
||||||
window.open(
|
window.open(
|
||||||
`${process.env.VUE_APP_BASE_API}/admin/export/exportInTeacher?pageNo=${state.searchParam.pageNo}&pageSize=${state.searchParam.pageSize}&name=${state.searchParam.name ? state.searchParam.name : ""}&tsystemId=${state.searchParam.tsystemId ? state.searchParam.tsystemId : ""}&tLevelName=${state.searchParam.tLevelName ? state.searchParam.tLevelName : "" }&waitStatus=${state.searchParam.waitStatus ? state.searchParam.waitStatus : ""}&certStatus=${state.searchParam.certStatus ? state.searchParam.certStatus : ""}&courses=${state.searchParam.courses ? state.searchParam.courses : ""}`
|
`${process.env.VUE_APP_BASE_API}/admin/export/exportInTeacher?name=${state.searchParam.name || ""}&tSystemId=${state.searchParam.tSystemId || ""}&tLevelName=${state.searchParam.tLevelName || "" }&waitStatus=${state.searchParam.waitStatus || ""}&certStatus=${state.searchParam.certStatus || ""}&courses=${state.searchParam.courses || ""}`
|
||||||
);
|
);
|
||||||
// this.download('lesson_records/export', {
|
// this.download('lesson_records/export', {
|
||||||
// ...state.searchParam
|
// ...state.searchParam
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
<!-- <div style="width: 100%;"></div> -->
|
<!-- <div style="width: 100%;"></div> -->
|
||||||
<a-form-item class="select" v-if="moreid == 2">
|
<a-form-item class="select" v-if="moreid == 2">
|
||||||
<a-select style="min-width: 200px ; height: auto ;margin-bottom:20px" v-model:value="score" placeholder="请选择评分"
|
<a-select style="min-width: 200px ; height: auto ;margin-bottom:20px" v-model:value="score" placeholder="请选择评分" showArrow
|
||||||
:options="scoreList" allowClear showSearch mode="multiple" @change="scoreChange"
|
:options="scoreList" allowClear showSearch mode="multiple" @change="scoreChange"
|
||||||
v-on:keydown.enter="enterPressHadlerSearch">
|
v-on:keydown.enter="enterPressHadlerSearch">
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -423,7 +423,7 @@
|
|||||||
).toFixed(2) }}小时)</span> </a-descriptions-item>
|
).toFixed(2) }}小时)</span> </a-descriptions-item>
|
||||||
<a-descriptions-item label="授课/课程日期 ">{{ formParam.teachingDate||'-' }}</a-descriptions-item>
|
<a-descriptions-item label="授课/课程日期 ">{{ formParam.teachingDate||'-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="参训人数 ">{{ formParam.studys||'-' }}</a-descriptions-item>
|
<a-descriptions-item label="参训人数 ">{{ formParam.studys||'-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="评分 ">{{ formParam.score||'-' }}</a-descriptions-item>
|
<a-descriptions-item label="评分 ">{{ formParam.score?Number(formParam.score).toFixed(0)==0?'-':Number(formParam.score).toFixed(0):'-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="内容分类">{{ formParam.courseTypeName||'-' }}</a-descriptions-item>
|
<a-descriptions-item label="内容分类">{{ formParam.courseTypeName||'-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="备注 ">{{ formParam.remark||'-' }}</a-descriptions-item>
|
<a-descriptions-item label="备注 ">{{ formParam.remark||'-' }}</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
@@ -486,7 +486,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
<ImportWork v-model:showWork="showWork" :template="'内部授课记录导入模板'" :url="'/admin/export/importInTeacherRecord'" :title="title"></ImportWork>
|
<ImportWork v-model:showWork="showWork" :template="'内部讲师授课记录导入模板-20241220.xlsx'" :url="'/admin/export/importInTeacherRecord'" :title="title"></ImportWork>
|
||||||
<!-- <div> <Upload/> </div> -->
|
<!-- <div> <Upload/> </div> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -659,6 +659,10 @@ export default {
|
|||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
});
|
||||||
LecturerSystemList.value = array;
|
LecturerSystemList.value = array;
|
||||||
|
LecturerSystemList.value.unshift({
|
||||||
|
value: '',
|
||||||
|
label: '全部'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
console.log("获取讲师", LecturerSystemList);
|
console.log("获取讲师", LecturerSystemList);
|
||||||
})
|
})
|
||||||
@@ -678,13 +682,13 @@ export default {
|
|||||||
])
|
])
|
||||||
const AuthenticationStatusList = ref([
|
const AuthenticationStatusList = ref([
|
||||||
{ value: '', label: "全部" },
|
{ value: '', label: "全部" },
|
||||||
{ value: 0, label: "未开课" },
|
{ value: '0', label: "未开课" },
|
||||||
{ value: 1, label: "已开课" },
|
{ value: '1', label: "已开课" },
|
||||||
])
|
])
|
||||||
const entryTypeList = ref([
|
const entryTypeList = ref([
|
||||||
{ value: '', label: "全部" },
|
{ value: '', label: "全部" },
|
||||||
{ value: 0, label: "系统生成" },
|
{ value: '0', label: "系统生成" },
|
||||||
{ value: 1, label: "手动录入" },
|
{ value: '1', label: "手动录入" },
|
||||||
])
|
])
|
||||||
const scoreList = ref([
|
const scoreList = ref([
|
||||||
{ value: '', label: "全部" },
|
{ value: '', label: "全部" },
|
||||||
@@ -699,13 +703,15 @@ export default {
|
|||||||
{ value: '10~20', label: "10~20" },
|
{ value: '10~20', label: "10~20" },
|
||||||
])
|
])
|
||||||
const studysList = ref([
|
const studysList = ref([
|
||||||
|
{ value: '', label: "全部" },
|
||||||
{ value: '0-30', label: "0~30" },
|
{ value: '0-30', label: "0~30" },
|
||||||
{ value: '0-50', label: "0~50" },
|
{ value: '0-50', label: "0~50" },
|
||||||
{ value: '0-70', label: "0~70" },
|
{ value: '0-70', label: "0~70" },
|
||||||
{ value: '0-100', label: "0~100" },
|
{ value: '0-100', label: "0~100" },
|
||||||
{ value: '0-150', label: "0~150" },
|
// { value: '0-150', label: "0~150" },
|
||||||
{ value: '0-200', label: "0~200" },
|
{ value: '0-200', label: "0~200" },
|
||||||
{ value: '0-300', label: "0~300 " },
|
{ value: '0-300', label: "0~300 " },
|
||||||
|
{ value: '300以上', label: "300以上" },
|
||||||
])
|
])
|
||||||
const scoreChange = (e) => {
|
const scoreChange = (e) => {
|
||||||
if (e.length !== 0) {
|
if (e.length !== 0) {
|
||||||
@@ -751,18 +757,25 @@ export default {
|
|||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '课程名称 ',
|
||||||
|
dataIndex: 'courseName',
|
||||||
|
key: 'courseName ',
|
||||||
|
ellipsis: true, align: "left",
|
||||||
|
width: 200,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '讲师体系 ',
|
title: '讲师体系 ',
|
||||||
dataIndex: 'tsystemName',
|
dataIndex: 'tsystemName',
|
||||||
key: 'tsystemName',
|
key: 'tsystemName',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "left",
|
||||||
width: 200,
|
width: 200,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '培训发生组织 ',
|
title: '培训发生组织 ',
|
||||||
dataIndex: 'trainOrgName',
|
dataIndex: 'trainOrgName',
|
||||||
key: 'trainOrgName',
|
key: 'trainOrgName',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "left",
|
||||||
width: 200,
|
width: 200,
|
||||||
customRender: (value, record) => {
|
customRender: (value, record) => {
|
||||||
return (
|
return (
|
||||||
@@ -791,13 +804,7 @@ export default {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: '课程名称 ',
|
|
||||||
dataIndex: 'courseName',
|
|
||||||
key: 'courseName ',
|
|
||||||
ellipsis: true, align: "center",
|
|
||||||
width: 120,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: '课程类型 ',
|
title: '课程类型 ',
|
||||||
dataIndex: 'type',
|
dataIndex: 'type',
|
||||||
@@ -881,6 +888,13 @@ export default {
|
|||||||
key: 'score',
|
key: 'score',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
|
customRender: (value) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(0) : '-'}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '是否生成课时费 ',
|
title: '是否生成课时费 ',
|
||||||
@@ -905,8 +919,9 @@ export default {
|
|||||||
title: '操作 ',
|
title: '操作 ',
|
||||||
dataIndex: 'operation',
|
dataIndex: 'operation',
|
||||||
key: 'operation',
|
key: 'operation',
|
||||||
ellipsis: true, align: "right",
|
// ellipsis: true,
|
||||||
width: 200,
|
align: "center",
|
||||||
|
width: 100,
|
||||||
fixed: "right",
|
fixed: "right",
|
||||||
scopedSlots: { customRender: "action" },
|
scopedSlots: { customRender: "action" },
|
||||||
},
|
},
|
||||||
@@ -1024,7 +1039,23 @@ export default {
|
|||||||
tableData.value = res.data.data.records
|
tableData.value = res.data.data.records
|
||||||
state.tableDataTotal = Number(res.data.data.total);
|
state.tableDataTotal = Number(res.data.data.total);
|
||||||
state.tableLoading = false
|
state.tableLoading = false
|
||||||
console.log("获取tableData", tableData);
|
// console.log("获取tableData", tableData);
|
||||||
|
let findValue = false;
|
||||||
|
tableData.value.some(item=>{
|
||||||
|
if(item.createFrom == 1 && item.isSuperPermission === 'true'){
|
||||||
|
columns.value[14].width = 160
|
||||||
|
findValue = true
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if(!findValue){
|
||||||
|
const text = tableData.value.find(item=>item.createFrom == 1)
|
||||||
|
if(text){
|
||||||
|
columns.value[14].width = 120
|
||||||
|
}else{
|
||||||
|
columns.value[14].width = 100
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
state.tableLoading = false
|
state.tableLoading = false
|
||||||
@@ -1298,13 +1329,13 @@ export default {
|
|||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '应发费用 ',
|
// title: '应发费用 ',
|
||||||
dataIndex: 'payableExpense',
|
// dataIndex: 'payableExpense',
|
||||||
key: 'payableExpense',
|
// key: 'payableExpense',
|
||||||
ellipsis: true, align: "center",
|
// ellipsis: true, align: "center",
|
||||||
width: 120,
|
// width: 120,
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '状态 ',
|
title: '状态 ',
|
||||||
dataIndex: 'status',
|
dataIndex: 'status',
|
||||||
@@ -1313,14 +1344,15 @@ export default {
|
|||||||
width: 120,
|
width: 120,
|
||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
return (
|
return (
|
||||||
<div >
|
<div>
|
||||||
{value.record.status == "A10" || value.record.status == "A20" || value.record.status == "A30" || value.record.status == "E10" || value.record.status == "S20"
|
{String(value.record.status)
|
||||||
? {
|
? {
|
||||||
"A10": "待审核",
|
"0": "待确认",
|
||||||
"A20": "已提交",
|
"1": "待提交",
|
||||||
"A30": "审核中",
|
"2": "审核中",
|
||||||
"E10": "审核打回",
|
"3": "审核通过",
|
||||||
"S20": "审核通过",
|
'4': '审核拒绝',
|
||||||
|
'5': '待提交',
|
||||||
}[value.record.status + ""] || ""
|
}[value.record.status + ""] || ""
|
||||||
: "-"}
|
: "-"}
|
||||||
</div>
|
</div>
|
||||||
@@ -1337,11 +1369,11 @@ export default {
|
|||||||
// },
|
// },
|
||||||
])
|
])
|
||||||
const gettableDatas = (record) => {
|
const gettableDatas = (record) => {
|
||||||
getExpenseByCourseId({ courseId: record.courseId })
|
getExpenseByCourseId({ courseId: record.courseId,teacherId:record.teacherId })
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
tableDatas.value = res.data.data.records
|
tableDatas.value = res.data.data
|
||||||
state.tableDataTotal = Number(res.data.data.total);
|
// state.tableDataTotal = Number(res.data.data.total);
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
message.destroy()
|
message.destroy()
|
||||||
})
|
})
|
||||||
@@ -1357,7 +1389,7 @@ export default {
|
|||||||
//导出功能
|
//导出功能
|
||||||
const handleExport = () => {
|
const handleExport = () => {
|
||||||
window.open(
|
window.open(
|
||||||
`${process.env.VUE_APP_BASE_API}/admin/export/exportInTeacherRecord?pageNo=${state.searchParam.pageNo}&pageSize=${state.searchParam.pageSize}&recordType=1&name=${state.searchParam.name ? state.searchParam.name : ''}&courseName=${state.searchParam.courseName ? state.searchParam.courseName : ''}&createFrom=${state.searchParam.createFrom ? state.searchParam.createFrom : ''}&courseStatus=${state.searchParam.courseStatus ? state.searchParam.courseStatus : ''}&tSystemId=${state.searchParam.tSystemId ? state.searchParam.tSystemId : ''}&beginTime=${state.searchParam.beginTime ? state.searchParam.beginTime : ''}&endTime=${state.searchParam.endTime ? state.searchParam.endTime : ''}&orgId=${state.searchParam.orgId ? state.searchParam.orgId : ''}&courseTypeId=${state.searchParam.courseTypeId ? state.searchParam.courseTypeId : ''}&score=${state.searchParam.score ? state.searchParam.score : ''}&studys=${state.searchParam.studys ? state.searchParam.studys : ' '}
|
`${process.env.VUE_APP_BASE_API}/admin/export/exportInTeacherRecord?recordType=1&name=${state.searchParam.name || ''}&courseName=${state.searchParam.courseName || ''}&createFrom=${state.searchParam.createFrom || ''}&courseStatus=${state.searchParam.courseStatus || ''}&tSystemId=${state.searchParam.tSystemId || ''}&beginTime=${state.searchParam.beginTime || ''}&endTime=${state.searchParam.endTime || ''}&orgId=${state.searchParam.orgId || ''}&courseTypeId=${state.searchParam.courseTypeId || ''}&score=${state.searchParam.score || ''}&studys=${state.searchParam.studys || ''}
|
||||||
`)
|
`)
|
||||||
console.log(state.searchParam.name, state.searchParam, '参数')
|
console.log(state.searchParam.name, state.searchParam, '参数')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
text-overflow: ellipsis;">{{flipData(record.orgName)||'-'}}</div>
|
text-overflow: ellipsis;">{{flipData(record.orgName)||'-'}}</div>
|
||||||
</template>
|
</template>
|
||||||
<template #appEdit="{ record }">
|
<template #appEdit="{ record }">
|
||||||
<a-button type="link" :disabled="record.createFrom==1 ?false :true" @click="edit(record)">编辑</a-button>
|
<a-button type="link" v-if="record.createFrom" @click="edit(record)">编辑</a-button>
|
||||||
<a-button type="link" @click="recome(record)">移除</a-button>
|
<a-button type="link" @click="recome(record)">移除</a-button>
|
||||||
</template>
|
</template>
|
||||||
</a-table>
|
</a-table>
|
||||||
@@ -837,7 +837,7 @@ export default {
|
|||||||
}).then(res=>{
|
}).then(res=>{
|
||||||
message.success('移除成功')
|
message.success('移除成功')
|
||||||
search()
|
search()
|
||||||
state.formData.summaryTotal = Number(state.formData.summaryTotal) - Number(record.expense)
|
state.formData.summaryTotal = (Number(state.formData.summaryTotal) - Number(record.expense)).toFixed(2)
|
||||||
}).catch(err=>{
|
}).catch(err=>{
|
||||||
message.error(err.msg)
|
message.error(err.msg)
|
||||||
})
|
})
|
||||||
@@ -851,7 +851,7 @@ export default {
|
|||||||
key: 'name',
|
key: 'name',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '讲师工号',
|
title: '讲师工号',
|
||||||
@@ -859,7 +859,7 @@ export default {
|
|||||||
key: 'userNo',
|
key: 'userNo',
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '所属组织 ',
|
title: '所属组织 ',
|
||||||
@@ -867,7 +867,7 @@ export default {
|
|||||||
key: 'orgName',
|
key: 'orgName',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 200,
|
width: 160,
|
||||||
slots: { customRender: "orgName" },
|
slots: { customRender: "orgName" },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -876,7 +876,7 @@ export default {
|
|||||||
key: 'tsystemName',
|
key: 'tsystemName',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '讲师级别',
|
title: '讲师级别',
|
||||||
@@ -884,7 +884,7 @@ export default {
|
|||||||
key: 'tlevelName',
|
key: 'tlevelName',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 100,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '发薪地',
|
title: '发薪地',
|
||||||
@@ -892,7 +892,10 @@ export default {
|
|||||||
key: 'payrollPlace',
|
key: 'payrollPlace',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 100,
|
||||||
|
customRender: ({text}) => {
|
||||||
|
return text || '-'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '课程类型',
|
title: '课程类型',
|
||||||
@@ -900,7 +903,7 @@ export default {
|
|||||||
key: 'courseType',
|
key: 'courseType',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 100,
|
||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@@ -923,7 +926,7 @@ export default {
|
|||||||
key: 'courseName',
|
key: 'courseName',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 200,
|
width: 160,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '授课/开发课程日期',
|
title: '授课/开发课程日期',
|
||||||
@@ -931,7 +934,7 @@ export default {
|
|||||||
key: 'teachingDate',
|
key: 'teachingDate',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 200,
|
width: 160,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '授课/开发课程时长 ',
|
title: '授课/开发课程时长 ',
|
||||||
@@ -954,7 +957,7 @@ export default {
|
|||||||
key: 'studys',
|
key: 'studys',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 100,
|
||||||
customRender: ({text}) => {
|
customRender: ({text}) => {
|
||||||
return text || "0";
|
return text || "0";
|
||||||
}
|
}
|
||||||
@@ -965,9 +968,13 @@ export default {
|
|||||||
key: 'score',
|
key: 'score',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 100,
|
||||||
customRender: ({text}) => {
|
customRender: (value) => {
|
||||||
return text || "-";
|
return (
|
||||||
|
<div>
|
||||||
|
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(0) : '-'}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -976,7 +983,7 @@ export default {
|
|||||||
key: 'levelPay',
|
key: 'levelPay',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '计划费用 ',
|
title: '计划费用 ',
|
||||||
@@ -984,7 +991,7 @@ export default {
|
|||||||
key: 'expense',
|
key: 'expense',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: '应发费用 ',
|
// title: '应发费用 ',
|
||||||
@@ -1001,7 +1008,7 @@ export default {
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
fixed: "right",
|
fixed: "right",
|
||||||
width: 160,
|
width: 120,
|
||||||
slots: { customRender: "appEdit" },
|
slots: { customRender: "appEdit" },
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
@@ -1252,7 +1259,7 @@ export default {
|
|||||||
.table{
|
.table{
|
||||||
padding-bottom: 70px;
|
padding-bottom: 70px;
|
||||||
::v-deep .ant-table-cell-fix-right {
|
::v-deep .ant-table-cell-fix-right {
|
||||||
width: 160px !important;
|
width: 120px !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,7 @@
|
|||||||
<!-- <a-button type="link" @click="() => handleOperate(record, String(record.courseform))">审批</a-button> -->
|
<!-- <a-button type="link" @click="() => handleOperate(record, String(record.courseform))">审批</a-button> -->
|
||||||
<!-- <a-button type="link" @click="() => deleteModal(record, String(record.courseform))">删除</a-button> -->
|
<!-- <a-button type="link" @click="() => deleteModal(record, String(record.courseform))">删除</a-button> -->
|
||||||
<!-- <a-button v-if="record.status == 4" type="link" @click="submit(record)">提交</a-button> -->
|
<!-- <a-button v-if="record.status == 4" type="link" @click="submit(record)">提交</a-button> -->
|
||||||
<a-button v-if="record.status == 2" type="link" @click="withdraw(record)">撤回</a-button>
|
<a-button v-if="record.status == 2&&false" type="link" @click="withdraw(record)">撤回</a-button>
|
||||||
</a-space>
|
</a-space>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
@@ -136,9 +136,9 @@
|
|||||||
<a-descriptions style="margin-top:16px" bordered :column="2" :contentStyle="rowCenter" :labelStyle="rowCenter">
|
<a-descriptions style="margin-top:16px" bordered :column="2" :contentStyle="rowCenter" :labelStyle="rowCenter">
|
||||||
<a-descriptions-item label="审批编号">{{formParam?.approvalNumber||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="审批编号">{{formParam?.approvalNumber||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="培训发生组织">{{formParam?.trainOrgName||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="培训发生组织">{{formParam?.trainOrgName||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item v-if="activeKey==2" label="汇总周期" >{{formParam?.summaryDate||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="汇总时间" >{{formParam?.summaryTime||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="提交时间">{{formParam?.approvalSubmitTime||'-'}}</a-descriptions-item>
|
|
||||||
<a-descriptions-item label="汇总金额">{{formParam?.summaryTotal||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="汇总金额">{{formParam?.summaryTotal||'-'}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="提交时间">{{formParam?.approvalSubmitTime||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="状态">{{{0:'待确认' ,1:'待提交' ,2:'审核中', 3:'已完成', 4:'审核拒绝',5:'待提交'}[formParam?.status]}}</a-descriptions-item>
|
<a-descriptions-item label="状态">{{{0:'待确认' ,1:'待提交' ,2:'审核中', 3:'已完成', 4:'审核拒绝',5:'待提交'}[formParam?.status]}}</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
<!-- <span>审批详情</span> -->
|
<!-- <span>审批详情</span> -->
|
||||||
@@ -165,7 +165,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="2" tab="讲师费审批记录" force-render>
|
<a-tab-pane key="2" tab="讲师费审批记录" force-render v-if="false">
|
||||||
<div style="padding-bottom:70px">
|
<div style="padding-bottom:70px">
|
||||||
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe" :columns="columnsExamineTwo"
|
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe" :columns="columnsExamineTwo"
|
||||||
:data-source="tableDataExamineTwo" :loading="tableDataExamineLoading" @expand="expandTable" :pagination="false">
|
:data-source="tableDataExamineTwo" :loading="tableDataExamineLoading" @expand="expandTable" :pagination="false">
|
||||||
@@ -387,6 +387,10 @@
|
|||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
});
|
||||||
trainOrglist.value = array;
|
trainOrglist.value = array;
|
||||||
|
trainOrglist.value.unshift({
|
||||||
|
value: '',
|
||||||
|
label: "全部"
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -400,7 +404,7 @@
|
|||||||
])
|
])
|
||||||
//认证状态0待确认 1待提交 2审核中 3审核通过 4.审核拒绝
|
//认证状态0待确认 1待提交 2审核中 3审核通过 4.审核拒绝
|
||||||
const AuthenticationStatusList = ref([
|
const AuthenticationStatusList = ref([
|
||||||
// { value: 0, label: "待确认" },
|
{ value: '', label: "全部" },
|
||||||
{ value: 1, label: "待提交" },
|
{ value: 1, label: "待提交" },
|
||||||
{ value: 2, label: "审核中" },
|
{ value: 2, label: "审核中" },
|
||||||
{ value: 4, label: "审核拒绝" },
|
{ value: 4, label: "审核拒绝" },
|
||||||
@@ -448,7 +452,7 @@
|
|||||||
dataIndex: 'trainOrgName',
|
dataIndex: 'trainOrgName',
|
||||||
key: 'trainOrgName',
|
key: 'trainOrgName',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 120,
|
width: 200,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '汇总时间 ',
|
title: '汇总时间 ',
|
||||||
@@ -507,9 +511,9 @@
|
|||||||
title: '操作 ',
|
title: '操作 ',
|
||||||
dataIndex: 'operation',
|
dataIndex: 'operation',
|
||||||
key: 'operation',
|
key: 'operation',
|
||||||
ellipsis: true, align: "right",
|
ellipsis: true, align: "center",
|
||||||
fixed: "right",
|
fixed: "right",
|
||||||
width: 200,
|
width: 120,
|
||||||
scopedSlots: { customRender: "action" },
|
scopedSlots: { customRender: "action" },
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -959,6 +963,9 @@
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
|
customRender: ({text}) => {
|
||||||
|
return text || '-'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '基准课酬 ',
|
title: '基准课酬 ',
|
||||||
@@ -994,9 +1001,13 @@
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
customRender: ({text}) => {
|
customRender: (value) => {
|
||||||
return text || "-";
|
return (
|
||||||
}
|
<div>
|
||||||
|
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(0) : '-'}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '课程类型 ',
|
title: '课程类型 ',
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item class="select">
|
<a-form-item class="select">
|
||||||
<a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.trainOrgId" placeholder="请选择培训发生组织" allowClear
|
<a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.trainOrgId" placeholder="请选择培训发生组织" allowClear
|
||||||
:options="orgList"
|
:options="orgListSearch"
|
||||||
v-on:keydown.enter="enterPressHadlerSearch">
|
v-on:keydown.enter="enterPressHadlerSearch">
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -528,7 +528,7 @@
|
|||||||
<a-descriptions-item label="授课时间 ">{{(formParam.teachingDate) || '-'}}</a-descriptions-item>
|
<a-descriptions-item label="授课时间 ">{{(formParam.teachingDate) || '-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="授课时长 ">{{formParam.teachingTime || '-'}}分 <span v-if="formParam.teachingTime">({{(formParam.teachingTime/60).toFixed(2)}}小时)</span></a-descriptions-item>
|
<a-descriptions-item label="授课时长 ">{{formParam.teachingTime || '-'}}分 <span v-if="formParam.teachingTime">({{(formParam.teachingTime/60).toFixed(2)}}小时)</span></a-descriptions-item>
|
||||||
<a-descriptions-item label="参训人数 ">{{formParam.studys || '-'}}</a-descriptions-item>
|
<a-descriptions-item label="参训人数 ">{{formParam.studys || '-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="评分 ">{{formParam.score || '-'}}</a-descriptions-item>
|
<a-descriptions-item label="评分 ">{{formParam.score?Number(formParam.score).toFixed(0)==0?'-':Number(formParam.score).toFixed(0):'-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="课酬基准 ">{{formParam.levelPay || '-'}}</a-descriptions-item>
|
<a-descriptions-item label="课酬基准 ">{{formParam.levelPay || '-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="计划费用 ">{{formParam.expense || '-'}}</a-descriptions-item>
|
<a-descriptions-item label="计划费用 ">{{formParam.expense || '-'}}</a-descriptions-item>
|
||||||
<!-- <a-descriptions-item label="应发费用 ">{{formParam.payableExpense || '-'}}</a-descriptions-item> -->
|
<!-- <a-descriptions-item label="应发费用 ">{{formParam.payableExpense || '-'}}</a-descriptions-item> -->
|
||||||
@@ -536,11 +536,11 @@
|
|||||||
<a-descriptions-item label="状态">{{{0:'待确认' ,1:'待提交' ,2:'审核中', 3:'已完成', 4:'拒绝',5:'待提交'}[formParam?.status]}}</a-descriptions-item>
|
<a-descriptions-item label="状态">{{{0:'待确认' ,1:'待提交' ,2:'审核中', 3:'已完成', 4:'拒绝',5:'待提交'}[formParam?.status]}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="备注 ">{{formParam.remark || '-'}}</a-descriptions-item>
|
<a-descriptions-item label="备注 ">{{formParam.remark || '-'}}</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
<div style="margin-bottom: 20px;">
|
<div style="margin-bottom: 20px;" v-if="false">
|
||||||
<span class="line"></span>
|
<span class="line"></span>
|
||||||
<span style="font-weight: 600;">讲师费审批</span>
|
<span style="font-weight: 600;">讲师费审批</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-bottom:32px;">
|
<div style="margin-bottom:32px;" v-if="false">
|
||||||
<a-table :columns="columnSee" :loading="SeeLoading" :data-source="tableDataSee" :pagination="false" />
|
<a-table :columns="columnSee" :loading="SeeLoading" :data-source="tableDataSee" :pagination="false" />
|
||||||
</div>
|
</div>
|
||||||
<!-- <span class="line"></span> -->
|
<!-- <span class="line"></span> -->
|
||||||
@@ -561,7 +561,7 @@
|
|||||||
</div> -->
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
<ImportWork v-model:showWork="showWork" :template="'讲师费导入模板'" :url="'/admin/export/importTeacherExpense'" :fileName="uploadFile" :title="title"></ImportWork>
|
<ImportWork v-model:showWork="showWork" :template="'讲师费导入模板-20241220.xlsx'" :url="'/admin/export/importTeacherExpense'" :fileName="uploadFile" :title="title"></ImportWork>
|
||||||
</div>
|
</div>
|
||||||
<!-- 一键确认讲师费 -->
|
<!-- 一键确认讲师费 -->
|
||||||
<ConfirmLecturer @visibleFalse="visibleAll" :ids="selectsIds" v-model:visible="visibleConfirm" :name="'确认讲师费'" />
|
<ConfirmLecturer @visibleFalse="visibleAll" :ids="selectsIds" v-model:visible="visibleConfirm" :name="'确认讲师费'" />
|
||||||
@@ -611,6 +611,7 @@
|
|||||||
tableDataSee: [],
|
tableDataSee: [],
|
||||||
SeeLoading: false,
|
SeeLoading: false,
|
||||||
orgList: [],
|
orgList: [],
|
||||||
|
orgListSearch: [],
|
||||||
selectsIds: '',
|
selectsIds: '',
|
||||||
visibleConfirm: false,
|
visibleConfirm: false,
|
||||||
title:'导入讲师费记录',
|
title:'导入讲师费记录',
|
||||||
@@ -699,6 +700,15 @@
|
|||||||
value: item.id
|
value: item.id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
state.orgListSearch = res.data.data?.map(item=>{
|
||||||
|
return{
|
||||||
|
label: item.affiliationName,
|
||||||
|
value: item.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
state.orgListSearch.unshift({
|
||||||
|
label: '全部', value: ''
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
//费用类型
|
//费用类型
|
||||||
@@ -717,15 +727,16 @@
|
|||||||
{ value: '0', label: "在线课" },
|
{ value: '0', label: "在线课" },
|
||||||
{ value: '2', label: "课程开发" },
|
{ value: '2', label: "课程开发" },
|
||||||
{ value: '3', label: "作业员入模培训" },
|
{ value: '3', label: "作业员入模培训" },
|
||||||
{ value: '4', label: "其他" },
|
// { value: '4', label: "其他" },
|
||||||
])
|
])
|
||||||
//认证状态
|
//认证状态
|
||||||
const AuthenticationStatusList = ref([
|
const AuthenticationStatusList = ref([
|
||||||
{ value: 0, label: "待确认" },
|
{ value: '', label: "全部" },
|
||||||
{ value: 1, label: "待审核" },
|
{ value: '0', label: "待确认" },
|
||||||
{ value: 2, label: "审核中" },
|
{ value: '1', label: "待提交" },
|
||||||
{ value: 4, label: "审核拒绝" },
|
{ value: '2', label: "审核中" },
|
||||||
{ value: 3, label: "审核通过" },
|
{ value: '4', label: "审核拒绝" },
|
||||||
|
{ value: '3', label: "审核通过" },
|
||||||
])
|
])
|
||||||
|
|
||||||
const lecturerSystemList = ref([
|
const lecturerSystemList = ref([
|
||||||
@@ -748,6 +759,10 @@
|
|||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
});
|
||||||
lecturerSystemList.value = array;
|
lecturerSystemList.value = array;
|
||||||
|
lecturerSystemList.value.unshift({
|
||||||
|
value: '',
|
||||||
|
label: '全部'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -768,6 +783,10 @@ getAllLevelList().then((res) => {
|
|||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
});
|
||||||
getLevelList.value = array;
|
getLevelList.value = array;
|
||||||
|
getLevelList.value.unshift({
|
||||||
|
value: "",
|
||||||
|
label: "全部"
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -904,14 +923,14 @@ getAllLevelList().then((res) => {
|
|||||||
dataIndex: 'courseName',
|
dataIndex: 'courseName',
|
||||||
key: 'courseName',
|
key: 'courseName',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "left",
|
||||||
width: 200,
|
width: 200,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '培训发生组织',
|
title: '培训发生组织',
|
||||||
dataIndex: 'trainOrgName',
|
dataIndex: 'trainOrgName',
|
||||||
key: 'trainOrgName',
|
key: 'trainOrgName',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "left",
|
||||||
width: 200,
|
width: 200,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -941,8 +960,8 @@ getAllLevelList().then((res) => {
|
|||||||
title: '讲师体系',
|
title: '讲师体系',
|
||||||
dataIndex: 'tsystemName',
|
dataIndex: 'tsystemName',
|
||||||
key: 'tsystemName',
|
key: 'tsystemName',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "left",
|
||||||
width: 120,
|
width: 200,
|
||||||
customRender: ({ text })=>{
|
customRender: ({ text })=>{
|
||||||
return text||'-'
|
return text||'-'
|
||||||
}
|
}
|
||||||
@@ -997,9 +1016,13 @@ getAllLevelList().then((res) => {
|
|||||||
key: 'score',
|
key: 'score',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
customRender: ({ text })=>{
|
customRender: (value) => {
|
||||||
return text||'-'
|
return (
|
||||||
}
|
<div>
|
||||||
|
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(0) : '-'}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '课程类型 ',
|
title: '课程类型 ',
|
||||||
@@ -1640,9 +1663,13 @@ const column = ref([
|
|||||||
key: 'courseAssess',
|
key: 'courseAssess',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
customRender: ({ text })=>{
|
customRender: (value) => {
|
||||||
return text||'-'
|
return (
|
||||||
}
|
<div>
|
||||||
|
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(0) : '-'}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '课程类型 ',
|
title: '课程类型 ',
|
||||||
@@ -1726,8 +1753,8 @@ const column = ref([
|
|||||||
//导出功能
|
//导出功能
|
||||||
const handleExport = ()=>{
|
const handleExport = ()=>{
|
||||||
window.open (
|
window.open (
|
||||||
`${process.env.VUE_APP_BASE_API}/admin/export/exportTeacherExpense?pageNo=${state.searchParam.pageNo}&pageSize=${state.searchParam.pageSize}&name=${state.searchParam.name ? state.searchParam.name : ""
|
`${process.env.VUE_APP_BASE_API}/admin/export/exportTeacherExpense?name=${state.searchParam.name || ""
|
||||||
}&trainOrgId=${ state.searchParam.trainOrgId ? state.searchParam.trainOrgId : ""}&type=${state.searchParam.type ? state.searchParam.type : ""}&tsystemId=${ state.searchParam.tSystemId ? state.searchParam.tSystemId : ""}&tLevelName=${ state.searchParam.tLevelName ? state.searchParam.tLevelName : ""}&beginTime=${state.searchParam.beginTime ? state.searchParam.beginTime : ""}&endTime=${state.searchParam.endTime ? state.searchParam.endTime : ""}`
|
}&status=${ state.searchParam.status || ""}&trainOrgId=${ state.searchParam.trainOrgId || ""}&type=${state.searchParam.type || ""}&tSystemId=${ state.searchParam.tSystemId || ""}&tLevelName=${ state.searchParam.tLevelName || ""}&beginTime=${state.searchParam.beginTime || ""}&endTime=${state.searchParam.endTime || ""}`
|
||||||
);
|
);
|
||||||
// this.download('lesson_records/export', {
|
// this.download('lesson_records/export', {
|
||||||
// ...state.searchParam
|
// ...state.searchParam
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-form>
|
</a-form>
|
||||||
<div style="width: 100%;"></div>
|
<div style="width: 100%;"></div>
|
||||||
<div style="display: flex; margin-bottom: 20px">
|
<div v-if="isAdmin" style="display: flex; margin-bottom: 20px">
|
||||||
<a-button @click="searchResetPrevious()" type="primary" class="langbtn" style="width: 150px; height: 40px; border-radius: 8px" >
|
<a-button @click="searchResetPrevious()" type="primary" class="langbtn" style="width: 150px; height: 40px; border-radius: 8px" >
|
||||||
<FolderAddOutlined /> 重新汇总上月讲师费
|
<FolderAddOutlined /> 重新汇总上月讲师费
|
||||||
</a-button>
|
</a-button>
|
||||||
@@ -171,7 +171,7 @@
|
|||||||
<MonthlyStatistics v-model:visible="opendrawer" :id="drawerId" ></MonthlyStatistics>
|
<MonthlyStatistics v-model:visible="opendrawer" :id="drawerId" ></MonthlyStatistics>
|
||||||
</template>
|
</template>
|
||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { reactive, toRefs, ref, watch } from "vue";
|
import { reactive, toRefs, ref, watch,onMounted } from "vue";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
@@ -179,7 +179,7 @@ import { useRouter } from "vue-router";
|
|||||||
import { getOrganization } from "../../api/Teaching";
|
import { getOrganization } from "../../api/Teaching";
|
||||||
import { queryTeacherFeeMonthly, getTeacherFeeDetailListByTeacherNo, getTeacherFeeListByTeacherNo,TeacherFeeTotalList,createMonthSummary} from "../../api/lecturerFeeStatistics"
|
import { queryTeacherFeeMonthly, getTeacherFeeDetailListByTeacherNo, getTeacherFeeListByTeacherNo,TeacherFeeTotalList,createMonthSummary} from "../../api/lecturerFeeStatistics"
|
||||||
;
|
;
|
||||||
import {expenseSummaryList,getTrainOrg,CreateMonthSummary} from "../../api/lecturerFeeManagement";
|
import {expenseSummaryList,getTrainOrg,CreateMonthSummary,isShowReimport} from "../../api/lecturerFeeManagement";
|
||||||
import dialog from '@/utils/dialog'
|
import dialog from '@/utils/dialog'
|
||||||
import MonthlyStatistics from './MonthlyStatistics'
|
import MonthlyStatistics from './MonthlyStatistics'
|
||||||
export default {
|
export default {
|
||||||
@@ -188,9 +188,22 @@ export default {
|
|||||||
MonthlyStatistics,
|
MonthlyStatistics,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
|
onMounted(() => {
|
||||||
|
isShowReimport().then(res=>{
|
||||||
|
if(res.data.code == 200){
|
||||||
|
state.isAdmin = res.data.data
|
||||||
|
}else{
|
||||||
|
state.isAdmin = false
|
||||||
|
}
|
||||||
|
}).catch(err=>{
|
||||||
|
state.isAdmin = false
|
||||||
|
message.error(err.data.msg)
|
||||||
|
})
|
||||||
|
})
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
|
isAdmin: false,
|
||||||
opendrawer: false,
|
opendrawer: false,
|
||||||
drawerId: '',
|
drawerId: '',
|
||||||
summaryDate: null,
|
summaryDate: null,
|
||||||
@@ -243,11 +256,11 @@ export default {
|
|||||||
width:'100px',
|
width:'100px',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '资源归属 ',
|
title: '培训发生组织 ',
|
||||||
dataIndex: 'trainOrgName',
|
dataIndex: 'trainOrgName',
|
||||||
key: 'trainOrgName',
|
key: 'trainOrgName',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "left",
|
||||||
width: '200px',
|
width: '200px',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -378,6 +391,10 @@ export default {
|
|||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
});
|
||||||
TrainOrglist.value = array;
|
TrainOrglist.value = array;
|
||||||
|
TrainOrglist.value.unshift({
|
||||||
|
value: '',
|
||||||
|
label: "全部"
|
||||||
|
})
|
||||||
}
|
}
|
||||||
console.log("获取发薪地",TrainOrglist);
|
console.log("获取发薪地",TrainOrglist);
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ export default {
|
|||||||
key: 'name',
|
key: 'name',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '讲师工号',
|
title: '讲师工号',
|
||||||
@@ -266,7 +266,7 @@ export default {
|
|||||||
key: 'userNo',
|
key: 'userNo',
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '所属组织 ',
|
title: '所属组织 ',
|
||||||
@@ -274,7 +274,7 @@ export default {
|
|||||||
key: 'orgName',
|
key: 'orgName',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 200,
|
width: 160,
|
||||||
customRender: ({text})=>{
|
customRender: ({text})=>{
|
||||||
return endOrg(text)
|
return endOrg(text)
|
||||||
}
|
}
|
||||||
@@ -285,7 +285,7 @@ export default {
|
|||||||
key: 'payrollPlace',
|
key: 'payrollPlace',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '授课时长(系统 ) ',
|
title: '授课时长(系统 ) ',
|
||||||
@@ -293,7 +293,7 @@ export default {
|
|||||||
key: 'teachingSystem',
|
key: 'teachingSystem',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 140,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '授课时长(录入) ',
|
title: '授课时长(录入) ',
|
||||||
@@ -301,15 +301,15 @@ export default {
|
|||||||
key: 'teachingEnter',
|
key: 'teachingEnter',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 140,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '开发课程时长 ',
|
title: '开发课程时长 ',
|
||||||
dataIndex: 'expense',
|
dataIndex: 'teachingDevelop',
|
||||||
key: 'expense',
|
key: 'teachingDevelop',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '计划费用 ',
|
title: '计划费用 ',
|
||||||
@@ -317,7 +317,7 @@ export default {
|
|||||||
key: 'expense',
|
key: 'expense',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '应发费用 ',
|
title: '应发费用 ',
|
||||||
@@ -325,7 +325,7 @@ export default {
|
|||||||
key: 'payableExpense',
|
key: 'payableExpense',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 160,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作 ',
|
title: '操作 ',
|
||||||
@@ -334,7 +334,7 @@ export default {
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
fixed: "right",
|
fixed: "right",
|
||||||
width: 160,
|
width: 100,
|
||||||
scopedSlots: { customRender: "action" },
|
scopedSlots: { customRender: "action" },
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -39,8 +39,10 @@
|
|||||||
<div style="color: #1890ff;cursor: pointer;">查看</div>
|
<div style="color: #1890ff;cursor: pointer;">查看</div>
|
||||||
</lockLecturer>
|
</lockLecturer>
|
||||||
<a-button v-if="record.status!=2" type="link" @click="() => handleModify(record, String(record.courseform))">编辑</a-button>
|
<a-button v-if="record.status!=2" type="link" @click="() => handleModify(record, String(record.courseform))">编辑</a-button>
|
||||||
<a-button v-if="record.status==2" type="link" @click="() => updateModal(record)">撤回</a-button>
|
<a-button v-if="record.status==2&&false" type="link" @click="() => updateModal(record)">撤回</a-button>
|
||||||
<a-button type="link" @click="() => deleteModal(record, String(record.courseform))">删除</a-button>
|
<!-- <a-button type="link" @click="() => deleteModal(record, String(record.courseform))">删除</a-button> -->
|
||||||
|
<a-button @click="isEnablePost(record,0)" v-if="record.enable" type="link" >启用</a-button>
|
||||||
|
<a-button @click="isEnablePost(record,1)" v-if="!record.enable" type="link" >停用</a-button>
|
||||||
</a-space>
|
</a-space>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
@@ -148,11 +150,11 @@
|
|||||||
是否为根节点:
|
是否为根节点:
|
||||||
</template>
|
</template>
|
||||||
<div style="display: flex;align-items: center;">
|
<div style="display: flex;align-items: center;">
|
||||||
<a-radio-group style="min-width:126px;" @change="selectRadio" v-model:value="formParam.isParent" name="radioGroup">
|
<a-radio-group :disabled="!formParam.locking" style="min-width:126px;" @change="selectRadio" v-model:value="formParam.isParent" name="radioGroup">
|
||||||
<a-radio :value="1">否</a-radio>
|
<a-radio :value="1">否</a-radio>
|
||||||
<a-radio :value="0">是</a-radio>
|
<a-radio :value="0">是</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
<a-select v-model:value="formParam.code" :placeholder="!formParam.isParent?'请选择审批层级':'请选择根节点'"
|
<a-select :disabled="!formParam.locking" v-model:value="formParam.code" :placeholder="!formParam.isParent?'请选择审批层级':'请选择根节点'"
|
||||||
:options="!formParam.isParent?PlaceOfPayList:PlaceOfPayListTwo" allowClear showSearch/>
|
:options="!formParam.isParent?PlaceOfPayList:PlaceOfPayListTwo" allowClear showSearch/>
|
||||||
</div>
|
</div>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -348,6 +350,7 @@ export default{
|
|||||||
code: null,
|
code: null,
|
||||||
isContains: '0',
|
isContains: '0',
|
||||||
affiliationOrgList: [],
|
affiliationOrgList: [],
|
||||||
|
locking: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const PlaceOfPayList = ref([
|
const PlaceOfPayList = ref([
|
||||||
@@ -385,19 +388,19 @@ export default{
|
|||||||
state.formParam.code = null
|
state.formParam.code = null
|
||||||
}
|
}
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
{
|
// {
|
||||||
title: '培训发生组织编号 ',
|
// title: '培训发生组织编号 ',
|
||||||
dataIndex: 'affiliationCode',
|
// dataIndex: 'affiliationCode',
|
||||||
key: 'affiliationCode',
|
// key: 'affiliationCode',
|
||||||
ellipsis: true,
|
// ellipsis: true,
|
||||||
align: "center",
|
// align: "center",
|
||||||
width: '100px',
|
// width: '100px',
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '培训发生组织名称 ',
|
title: '培训发生组织名称 ',
|
||||||
dataIndex: 'affiliationName',
|
dataIndex: 'affiliationName',
|
||||||
key: 'affiliationName',
|
key: 'affiliationName',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "left",
|
||||||
width: '200px',
|
width: '200px',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -427,7 +430,7 @@ export default{
|
|||||||
title: '是否为根节点名称',
|
title: '是否为根节点名称',
|
||||||
dataIndex: 'parentName',
|
dataIndex: 'parentName',
|
||||||
key: 'parentName',
|
key: 'parentName',
|
||||||
align: "center",
|
align: "left",
|
||||||
width: '200px',
|
width: '200px',
|
||||||
customRender: ({text,record})=>{
|
customRender: ({text,record})=>{
|
||||||
return (
|
return (
|
||||||
@@ -440,7 +443,7 @@ export default{
|
|||||||
dataIndex: 'leaderName',
|
dataIndex: 'leaderName',
|
||||||
key: 'leaderName',
|
key: 'leaderName',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "left",
|
||||||
width: '200px',
|
width: '200px',
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -581,6 +584,24 @@ const getTableDate = (obj) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
const isEnablePost = (record,status) => {
|
||||||
|
dialog({
|
||||||
|
content: `是否确认${!status?'启用':'停用'}该培训发生组织?`,
|
||||||
|
ok: () => {
|
||||||
|
lecturer.isEnable({id:record.id,status}).then(res=>{
|
||||||
|
if(typeof (res.data.data) != 'object'){
|
||||||
|
message.error(res.data.data)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
message.success(`${!status?'启用':'停用'}成功`)
|
||||||
|
searchSubmit();
|
||||||
|
}).catch(err=>{
|
||||||
|
message.destroy()
|
||||||
|
message.error(err.data.msg)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
//确认删除
|
//确认删除
|
||||||
const closeDeleteTeacher = () => {
|
const closeDeleteTeacher = () => {
|
||||||
//调用删除接口
|
//调用删除接口
|
||||||
@@ -689,7 +710,7 @@ const getTableDate = (obj) => {
|
|||||||
...item
|
...item
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
state.formParam.leveTwoValue = state.formParam.leveTwoArray.map(item => item.label).join(',');
|
state.formParam.leveTwoValue = state.formParam.leveTwoArray.map(item => item.label).join(',')||null;
|
||||||
state.formParam.leveThreeArray = leveThreeArray.map(item => {
|
state.formParam.leveThreeArray = leveThreeArray.map(item => {
|
||||||
return {
|
return {
|
||||||
label: item.userName + item.userNo,
|
label: item.userName + item.userNo,
|
||||||
@@ -698,7 +719,7 @@ const getTableDate = (obj) => {
|
|||||||
...item
|
...item
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
state.formParam.leveThreeValue = state.formParam.leveThreeArray.map(item => item.label).join(',');
|
state.formParam.leveThreeValue = state.formParam.leveThreeArray.map(item => item.label).join(',')||null;
|
||||||
state.formParam.orglistName = state.formParam.affiliationOrgList?.map(item=>item.id).join(',')
|
state.formParam.orglistName = state.formParam.affiliationOrgList?.map(item=>item.id).join(',')
|
||||||
state.formParam.selectOrgList?.map(item=>{
|
state.formParam.selectOrgList?.map(item=>{
|
||||||
state.formParam.affiliationOrgList.some(item2=>{
|
state.formParam.affiliationOrgList.some(item2=>{
|
||||||
@@ -739,6 +760,7 @@ const getTableDate = (obj) => {
|
|||||||
code: null,
|
code: null,
|
||||||
isContains: '0',
|
isContains: '0',
|
||||||
affiliationOrgList: [],
|
affiliationOrgList: [],
|
||||||
|
locking: 1,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async function validateField(name) {
|
async function validateField(name) {
|
||||||
@@ -786,6 +808,9 @@ const getTableDate = (obj) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(!state.formParam.leveTwoValue&&state.formParam.leveThreeValue&&state.formParam.isParent){
|
||||||
|
return message.error('请选择二级审批人')
|
||||||
|
}
|
||||||
state.formParam.remark = state.formParam?.remark?.trim()
|
state.formParam.remark = state.formParam?.remark?.trim()
|
||||||
state.formParam.submitStatus = val
|
state.formParam.submitStatus = val
|
||||||
dialog({
|
dialog({
|
||||||
@@ -859,6 +884,7 @@ const getTableDate = (obj) => {
|
|||||||
searchReset,
|
searchReset,
|
||||||
searchList,
|
searchList,
|
||||||
deleteModal,
|
deleteModal,
|
||||||
|
isEnablePost,
|
||||||
updateModal,
|
updateModal,
|
||||||
cancelTeacherDialog,
|
cancelTeacherDialog,
|
||||||
addTeacher,
|
addTeacher,
|
||||||
|
|||||||
Reference in New Issue
Block a user