Merge branch 'zcwy-teacher-manage' into master_1202

This commit is contained in:
joshen
2024-12-17 17:25:32 +08:00
19 changed files with 126 additions and 59 deletions

View File

@@ -630,7 +630,27 @@ textarea {
}
//大型抽屉
.largeDrawerInside {
.ant-drawer-content-wrapper {
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
}
}
.drawerMain {
min-width: 700px;
margin: 0px 32px 0px 32px;
overflow-x: auto;
display: flex;
flex-direction: column;
}
}
//弹窗--------------------------------------------------------
.modalStyle {

View File

@@ -82,12 +82,13 @@
const postParam = computed(() => ({ ...params.value, ...props.params }));
const { data, loading, total, fetch: onFetch } = props.request(props.url, postParam);
watch(()=>data.value,(val)=>{
if(val&&props.selectedRowKeys){
rowSelectKeys.value = props.selectedRowKeys
selectsData.value = props.selectedRows
}
})
// watch(()=>data.value,(val)=>{
// // if(val&&props.selectedRowKeys){
// // rowSelectKeys.value = props.selectedRowKeys
// // selectsData.value = props.selectedRows
// // }
// emit('dataLists',data.value)
// })
const rowSelection = computed(() => (props.type ? {
type: props.type,
columnWidth: 20,
@@ -117,7 +118,11 @@
}
});
onMounted(() => props.init && nextTick(onFetch));
onMounted(() => {
props.init && nextTick(onFetch)
rowSelectKeys.value = props.selectedRowKeys
selectsData.value = props.selectedRows
});
function onSelectChange(e, l) {
rowSelectKeys.value = e;

View File

@@ -51,7 +51,8 @@
">
<BaseTable ref="stuTableRef" :columns="stuColumns" :url="USER_LIST_PAGE" pageKey="pageNo"
v-model:params="nameSearch" :request="useNewRowsPageNoInit"
v-model:selectedRows="stuSelectRows" v-model:selectedRowKeys="stuSelectRowKeys" type="checkbox"></BaseTable>
v-model:selectedRows="stuSelectRows" v-model:selectedRowKeys="stuSelectRowKeys"
type="checkbox"></BaseTable>
</div>
</div>
</div>
@@ -142,8 +143,8 @@ const onlineLearningList = () =>{
courseList.value = res.data.filter(item=>item.status == 0).map(item => item.courseId)
})
}
const dataList = ref(false)
const stuSelectRows = ref([]);
const stuSelectRowKeys = ref([]);
const stuTableRef = ref();
const teaunm = ref([])
@@ -292,6 +293,7 @@ watch(visiable, () => {
if (!visiable.value) {
stuTableRef.value && stuTableRef.value.clear();
stuTableRef.value && stuTableRef.value.reset({ keyword: "", departId: '' });
dataList.value = false
}
});
</script>

View File

@@ -2,7 +2,7 @@
<a-drawer
:visible="visible"
:closable="false"
class="largeDrawerStyle"
class="largeDrawerInside"
placement="right"
width="70%"
>
@@ -301,7 +301,7 @@ const queryDrawer = () => {
<style lang="scss" scoped>
.largeDrawerStyle {
.largeDrawerInside {
.drawerMains {
min-width: 600px;
// margin: 0px 32px 0px 32px;

View File

@@ -2,7 +2,7 @@
<a-drawer
:visible="visible"
:closable="false"
class="largeDrawerStyle"
class="largeDrawerInside"
placement="right"
width="64%"
:zIndex="1001"
@@ -219,6 +219,10 @@ const removeId = (e,i) =>{
expenseList.value = expenseList.value.filter(item=>item.id !== e.id)
}
forData.value[indexList.value].summaryTotal = forData.value[indexList.value]?.summaryTotal - e.payableExpense
if(!forData.value[indexList.value].expenseList.length){
forData.value.splice(indexList.value,1)
forData.value.length > 0 && clickItem(forData.value[0],0)
}
}
})
}
@@ -533,7 +537,7 @@ const config = () => {
}
}
.largeDrawerStyle {
.largeDrawerInside {
.drawerMains {
min-width: 600px;
// margin: 0px 32px 0px 32px;

View File

@@ -1,6 +1,6 @@
<template>
<a-drawer :visible="visible" class="largeDrawerStyle" placement="right" :closable="false" :maskClosable="false"
<a-drawer :visible="visible" class="largeDrawerInside" placement="right" :closable="false" :maskClosable="false"
width="80%" :title="false">
<!-- 外部讲师查看详情 -->
<div class="LookExternalLecturer">

View File

@@ -1,5 +1,5 @@
<template>
<a-drawer class="largeDrawerStyle" :visible="visible" placement="right" :closable="false" :maskClosable="false"
<a-drawer class="largeDrawerInside" :visible="visible" placement="right" :closable="false" :maskClosable="false"
width="80%" :title="false">
<!-- 内部讲师查看详情 -->
<div class="LookInsideLecturer">

View File

@@ -18,6 +18,7 @@
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
:placeholder="placeholder"
:labelInValue="true"
allow-clear
v-model:treeExpandedKeys="stuTreeExpandedKeys"
:loading="orgLoading"
:load-data="onLoadData"
@@ -65,10 +66,10 @@ const keydownEnter = (e) => {
}
watch(props, () => {
stuTreeExpandedKeys.value = [];
if (labelValue.value.value !== props.value) {
if (labelValue.value?.value !== props.value) {
labelValue.value = { value: props.value, label: props.name };
}
if (labelValue.value.label !== props.name) {
if (labelValue.value?.label !== props.name) {
labelValue.value = { value: props.value, label: props.name };
}
});
@@ -83,16 +84,17 @@ function onLoadData(treeNode) {
}
function change(
{ label, value },
values,
obj,
{
triggerNode: {
props: { namePath },
},
}
// {
// triggerNode: {
// props: { namePath },
// },
// }
node
) {
emit("update:name", label);
emit("update:fullName", namePath);
emit("update:value", value);
emit("update:name", values?.label);
emit("update:fullName", node?.triggerNode?.props?.namePath);
emit("update:value", values?.value);
}
</script>

View File

@@ -26,7 +26,10 @@
<a-descriptions :column="2" bordered>
<a-descriptions-item :labelStyle="{ width: '165px' }" label="培训发生组织编号">{{formData?.affiliationCode||'-'}}</a-descriptions-item>
<a-descriptions-item :labelStyle="{ width: '165px' }" label="培训发生组名称">{{formData?.affiliationName||'-'}}</a-descriptions-item>
<a-descriptions-item label="是否为根节点">{{formData?.isParent==1?'否':'是'}}</a-descriptions-item>
<a-descriptions-item label="是否为根节点">
<span v-if="formData?.parentName">({{ formData?.parentName }})</span>
<span v-else>({{ {1:'',2:'',3:''}[formData?.code] }}级审批)</span>
</a-descriptions-item>
<a-descriptions-item label="组织担当">{{formData?.act||'-'}}</a-descriptions-item>
<a-descriptions-item v-if="formData?.isParent==1" label="一级审批人">{{formData?.one||'-'}}</a-descriptions-item>
<a-descriptions-item v-if="formData?.isParent==1" label="二级审批人">{{formData?.two||'-'}}</a-descriptions-item>
@@ -101,7 +104,8 @@ const props = defineProps({
title: {
type: String,
default: ""
}
},
parentName: String,
});
const emit = defineEmits({});
const visibleModal = ref(false)
@@ -285,6 +289,7 @@ watch(visible, (val)=>{
api.getAffiliationById(props.id).then(res=>{
if(res.data.code == 200){
formData.value = res.data.data
formData.value.parentName = props.parentName
formData.value.act = filterList(formData.value.affiliationUserList,0)
formData.value.one = filterList(formData.value.affiliationUserList,1)
formData.value.two = filterList(formData.value.affiliationUserList,2)

View File

@@ -4089,8 +4089,9 @@ function onFocusEnd(){
state.addLoading = false;
})
.catch((err) => {
message.destroy()
message.error(err.data.msg)
state.loading = false;
state.addLoading = false;
console.log(err);
});
state.cstm_hs = false;

View File

@@ -63,7 +63,7 @@
</div>
</div>
<!-- 弹窗组件 -->
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false"
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false"
width="700px" :title="false">
<div style="padding:24px">
<div class="headers" style="margin-top:-24px;width: 110%;margin-left: -24px;">

View File

@@ -131,7 +131,7 @@
</div>
</div>
<!-- 弹窗组件 -->
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" placement="right" :maskClosable="false" :closable="false"
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :maskClosable="false" :closable="false"
width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">
@@ -312,7 +312,7 @@
</div>
</a-drawer>
<!-- 查看授课记录 -->
<a-drawer class="largeDrawerStyle" v-model:visible="teachingdialog" placement="right" :maskClosable="false" :closable="false"
<a-drawer class="largeDrawerInside" v-model:visible="teachingdialog" placement="right" :maskClosable="false" :closable="false"
width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">

View File

@@ -113,7 +113,7 @@
</div>
</div>
<!-- 弹窗组件 -->
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false"
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false"
width="700" :title="false">
<div style="padding:24px">
<div class="headers" style="margin-top:-24px;margin-left: -25px;width: 110%;">

View File

@@ -140,7 +140,7 @@
</div>
</div>
<!-- 弹窗组件 -->
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" :closable="false" placement="right" :maskClosable="false"
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" :closable="false" placement="right" :maskClosable="false"
width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">
@@ -389,7 +389,7 @@
</div>
</a-drawer>
<!--查看授课详情 -->
<a-drawer class="largeDrawerStyle" v-model:visible="teachingdialog" :closable="false" placement="right" :maskClosable="false"
<a-drawer class="largeDrawerInside" v-model:visible="teachingdialog" :closable="false" placement="right" :maskClosable="false"
width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">
@@ -406,7 +406,7 @@
<a-descriptions-item label="讲师名称">{{ formParam.teacherName ||'-'}}</a-descriptions-item>
<a-descriptions-item label="讲师工号">{{ formParam.userNo||'-' }}</a-descriptions-item>
<a-descriptions-item label="讲师组织">{{ formParam.orgName||'-' }}</a-descriptions-item>
<a-descriptions-item label="培训发生组织">{{ formParam.trainOrg||'-' }}</a-descriptions-item>
<a-descriptions-item label="培训发生组织">{{ formParam.trainOrgName||'-' }}</a-descriptions-item>
<a-descriptions-item label="讲师体系">{{ formParam.tsystemName||'-' }}</a-descriptions-item>
<a-descriptions-item label="讲师级别">{{ formParam.tlevelName||'-'
}}</a-descriptions-item>
@@ -760,14 +760,14 @@ export default {
},
{
title: '培训发生组织 ',
dataIndex: 'trainOrg',
key: 'trainOrg',
dataIndex: 'trainOrgName',
key: 'trainOrgName',
ellipsis: true, align: "center",
width: 200,
customRender: (value, record) => {
return (
<div>
{value.record.trainOrg||'-'}
{value.record.trainOrgName||'-'}
</div>
)
}

View File

@@ -1,5 +1,5 @@
<template>
<a-drawer class="largeDrawerStyle" :visible="visible" placement="right" :closable="false" :maskClosable="false"
<a-drawer class="largeDrawerInside" :visible="visible" placement="right" :closable="false" :maskClosable="false"
width="60%" :title="false">
<div class="appedit">
<div class="header" style="margin-top: -24px;">
@@ -74,7 +74,7 @@
<button class="btn2" @click="paramsDrawer">提交</button>
</div>
</div>
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false" dropdown-style="drawaer"
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false" dropdown-style="drawaer"
width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">

View File

@@ -120,7 +120,7 @@
</div>
<!-- 弹窗组件 -->
<!--查看讲师费详情 -->
<a-drawer class="largeDrawerStyle" :closable="false" v-model:visible="teachingdialog" placement="right"
<a-drawer class="largeDrawerInside" :closable="false" v-model:visible="teachingdialog" placement="right"
@closa="cancelTeachingDialog" width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">

View File

@@ -156,7 +156,7 @@
</div>
</div>
<!-- 弹窗组件 -->
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false" dropdown-style="drawaer"
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false" dropdown-style="drawaer"
width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">
@@ -501,7 +501,7 @@
</a-modal>
</div>
<!-- <div> <Upload/> </div> -->
<a-drawer class="largeDrawerStyle" v-model:visible="teachingdialog" placement="right"
<a-drawer class="largeDrawerInside" v-model:visible="teachingdialog" placement="right"
:closable="false" width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">

View File

@@ -99,12 +99,20 @@
</div>
</div>
<!-- 抽屉 -->
<a-drawer class="largeDrawerStyle" v-model:visible="opendrawer" placement="right"
@closa="cancelTeachingDialog" :maskClosable="true" width="60%" title="查看详情">
<a-drawer class="largeDrawerInside" v-model:visible="opendrawer" placement="right"
@closa="cancelTeachingDialog" :maskClosable="true" width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">
<div class="headerTitle">查看详情</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="@/assets/images/basicinfo/close.png"
@click="cancelTeachingDialog"
/>
</div>
<a-form layout="inline">
<a-form-item class="select">
<a-input v-model:value="drawer.name" style="width: 260px; height: 40px; border-radius: 8px"
<a-input @pressEnter="searchSubmitdrawer" v-model:value="drawer.name" style="width: 260px; height: 40px; border-radius: 8px"
placeholder="请输入课程名称进行搜索" allowClear showSearch>
</a-input>
</a-form-item>
@@ -221,7 +229,7 @@ export default {
key: 'name',
ellipsis: true,
align: "center",
width: 200,
width: 160,
},
{
title: '讲师工号',
@@ -229,7 +237,7 @@ export default {
key: 'userNo',
align: "center",
ellipsis: true,
width: 200,
width: 160,
},
{
title: '所属组织 ',
@@ -248,7 +256,7 @@ export default {
key: 'payrollPlace',
ellipsis: true,
align: "center",
width: 200,
width: 160,
},
{
title: '授课时长(系统 ) ',
@@ -256,7 +264,7 @@ export default {
key: 'teachingSystem',
ellipsis: true,
align: "center",
width: 200,
width: 160,
},
{
title: '授课时长(录入) ',
@@ -264,7 +272,7 @@ export default {
key: 'teachingEnter',
ellipsis: true,
align: "center",
width: 200,
width: 160,
},
{
title: '开发课程时长 ',
@@ -272,7 +280,7 @@ export default {
key: 'expense',
ellipsis: true,
align: "center",
width: 200,
width: 160,
},
{
title: '计划费用 ',
@@ -280,7 +288,7 @@ export default {
key: 'expense',
ellipsis: true,
align: "center",
width: 200,
width: 160,
},
{
title: '应发费用 ',
@@ -288,16 +296,16 @@ export default {
key: 'payableExpense',
ellipsis: true,
align: "center",
width: 200,
width: 160,
},
{
title: '操作 ',
dataIndex: 'operation',
key: 'operation',
ellipsis: true,
align: "right",
align: "center",
fixed: "right",
width: 120,
width: 160,
scopedSlots: { customRender: "action" },
},
])
@@ -652,7 +660,24 @@ export default {
.select .ant-picker {
width: 410px !important;
}
.headers {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
// background-color: red;
margin-bottom: 20px;
flex-shrink: 0;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
// margin-left: 24px;
}
}
.addTimeBox {
position: relative;
display: flex;

View File

@@ -35,7 +35,7 @@
<template #bodyCell="{ record, column }">
<template v-if="column.key === 'operation'">
<a-space >
<lockLecturer :id="record.id" :title="'培训发生组织详情'" @searchList="searchList">
<lockLecturer :parentName="record.parentName" :id="record.id" :title="'培训发生组织详情'" @searchList="searchList">
<div style="color: #1890ff;cursor: pointer;">查看</div>
</lockLecturer>
<a-button v-if="record.status!=2" type="link" @click="() => handleModify(record, String(record.courseform))">编辑</a-button>
@@ -88,7 +88,7 @@
</a-modal>
</div>
<!-- 抽屉 -->
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" :closable="false" :title="false" placement="right" width="60%" :maskClosable="false" >
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" :closable="false" :title="false" placement="right" width="60%" :maskClosable="false" >
<div style="padding:24px;">
<div class="headers" style="margin-top: -24px">
<div class="headerTitle">{{ teacherdialogtitle }}</div>
@@ -378,6 +378,9 @@ export default{
state.formParam.leveOneArray = []
state.formParam.leveTwoArray = []
state.formParam.leveThreeArray = []
state.formParam.leveOneValue = null
state.formParam.leveTwoValue = null
state.formParam.leveThreeValue = null
}
state.formParam.code = null
}