mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-16 22:36:45 +08:00
Merge remote-tracking branch 'zcwy/zcwy-teacher-manage' into zcwy-teacher-manage
This commit is contained in:
@@ -288,6 +288,10 @@ export default {
|
||||
pageSize: 10,
|
||||
tableDataTotal: -1,//table列表总条数
|
||||
teacherrecordstableDataTotal: -1,//授课记录列表总条数
|
||||
tSystemNames:{
|
||||
systemName:null,
|
||||
levelVoList: []
|
||||
},
|
||||
formParam: {
|
||||
description:"",
|
||||
teacherType:'2',
|
||||
@@ -299,6 +303,7 @@ export default {
|
||||
teacherType:2,
|
||||
name: null,//姓名
|
||||
status: null,//状态
|
||||
tSystemName: null,
|
||||
pageNo: "1",
|
||||
pageSize: "10"
|
||||
},
|
||||
@@ -465,11 +470,27 @@ export default {
|
||||
state.vf = false
|
||||
TeacherSystem()
|
||||
}
|
||||
//保存
|
||||
const createTeacherDialog = () => {
|
||||
formRef.value
|
||||
.validate()
|
||||
async function validateField(name) {
|
||||
return new Promise((resolve) => {
|
||||
formRef.value.validateFields([name])
|
||||
.then(() => {
|
||||
resolve(false);
|
||||
})
|
||||
.catch(() => {
|
||||
resolve(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
//保存
|
||||
const createTeacherDialog = async () => {
|
||||
const formItemNames = Object.keys(rules);
|
||||
for(let i=0;i<formItemNames.length;i++){
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
return message.error(rules[formItemNames[i]][0].log)
|
||||
}
|
||||
}
|
||||
state.formParam = {...state.formParam}
|
||||
if (state.vf == false) {
|
||||
updateInTeacher(state.formParam).then(response => {
|
||||
message.success("修改成功");
|
||||
@@ -489,10 +510,6 @@ export default {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
console.log('error', error);
|
||||
});
|
||||
};
|
||||
//删除弹窗
|
||||
const deleteModal = (record) => {
|
||||
@@ -581,19 +598,19 @@ export default {
|
||||
console.log(state.formParam);
|
||||
}
|
||||
const rules = {
|
||||
name: [{ required: true, message: '讲师不能为空' }],
|
||||
supplier:[{ required: true, message: '供应商不能为空' }],
|
||||
name: [{ required: true, message: '',log: '讲师不能为空' }],
|
||||
supplier:[{ required: true, message: '',log:'供应商不能为空' }],
|
||||
email:[
|
||||
{
|
||||
type: "email",
|
||||
message: '请输入正确的邮箱地址',
|
||||
message: '',log: '请输入正确的邮箱地址',
|
||||
trigger: "blur"
|
||||
}
|
||||
],
|
||||
mobile: [
|
||||
{
|
||||
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
message: '',log: "请输入正确的手机号码",
|
||||
trigger: "blur"
|
||||
}
|
||||
]
|
||||
@@ -663,6 +680,7 @@ export default {
|
||||
return {
|
||||
...toRefs(state),
|
||||
lecturerAdmin,
|
||||
validateField,
|
||||
rules,
|
||||
rule,
|
||||
formRef,
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
placeholder="请输入工号/讲师姓名进行检索" allowClear showSearch>
|
||||
</a-input> -->
|
||||
<a-input style="width: 276px; height: 40px; border-radius: 8px" placeholder="请输入工号/讲师姓名进行检索" showSearch
|
||||
allowClear v-model:name="searchParam.name"></a-input>
|
||||
allowClear v-model:courseName="searchParam.courseName"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item class="select">
|
||||
<a-input v-model:value="searchParam.name" style="width: 276px; height: 40px; border-radius: 8px"
|
||||
@@ -23,7 +23,6 @@
|
||||
<a-range-picker
|
||||
v-model:value="searchdate"
|
||||
style="width: 420px"
|
||||
@change="searchTimeChange"
|
||||
format="YYYY-MM-DD"
|
||||
valueFormat="YYYY-MM-DD"
|
||||
separator="至"
|
||||
@@ -56,9 +55,22 @@
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-select style="width: 230px" v-model:value="searchParam.systypeid" placeholder="内容分类"
|
||||
:options="getTeacherExpertiseList" allowClear>
|
||||
</a-select>
|
||||
<a-tree-select
|
||||
style="width: 230px"
|
||||
:fieldNames="{
|
||||
children: 'children',
|
||||
label: 'name',
|
||||
value: 'code',
|
||||
}"
|
||||
allow-clear
|
||||
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
|
||||
v-model:value="searchParam.courseTypeId"
|
||||
show-search
|
||||
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||
placeholder="请选择内容分类"
|
||||
tree-default-expand-all
|
||||
:tree-data="sysTypeOptions">
|
||||
</a-tree-select>
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-select style="width: 230px" v-model:value="searchParam.status" placeholder="开课状态"
|
||||
@@ -111,7 +123,7 @@
|
||||
<a-drawer v-model:visible="teacherdialog" placement="right" @closa="cancelTeacherDialog" :maskClosable="true"
|
||||
dropdown-style="drawaer" width="60%" :title="teacherdialogtitle">
|
||||
<a-form :model="formParam" :rules="rules" layout="vertical" ref="formRef">
|
||||
<!--讲师名称 teacher 内容分类 systypeid -->
|
||||
<!--讲师名称 teacher 内容分类 coursetypeid -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师名称" name="teacher">
|
||||
@@ -121,10 +133,22 @@
|
||||
@onChange="managerChange"></ProjectManagerOutTeacher> </a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="内容分类" name="systypeid">
|
||||
<a-select class="draitem" v-model:value="formParam.systypeid" placeholder="内容分类"
|
||||
:options="getTeacherExpertiseList" allowClear>
|
||||
</a-select>
|
||||
<a-form-item label="内容分类" name="courseTypeId">
|
||||
<a-tree-select
|
||||
:fieldNames="{
|
||||
children: 'children',
|
||||
label: 'name',
|
||||
value: 'code',
|
||||
}"
|
||||
allow-clear
|
||||
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
|
||||
v-model:value="formParam.courseTypeId"
|
||||
show-search
|
||||
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||
placeholder="请选择内容分类"
|
||||
tree-default-expand-all
|
||||
:tree-data="sysTypeOptions">
|
||||
</a-tree-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -217,7 +241,7 @@
|
||||
<a-descriptions-item label="课程名称">{{ formParam.name }}</a-descriptions-item>
|
||||
<a-descriptions-item label="开课状态">{{ formParam.status == 0 ? '未开课' : formParam.status == 1
|
||||
? '已开课' : '' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="内容分类 ">{{ formParam.sysTypeId }}</a-descriptions-item>
|
||||
<a-descriptions-item label="内容分类 ">{{ formParam.courseTypeId }}</a-descriptions-item>
|
||||
<a-descriptions-item label="授课/课程日期 ">{{ formParam.beginTime }}</a-descriptions-item>
|
||||
<a-descriptions-item label="授课时长 ">{{ formParam.duration }}
|
||||
<span style="margin-left: 5px ;" v-if="formParam.duration != null">({{ (formParam.duration / 60
|
||||
@@ -274,7 +298,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script lang="jsx">
|
||||
import { reactive, toRefs, ref } from "vue";
|
||||
import { reactive, toRefs, ref ,computed} from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useStore } from "vuex";
|
||||
import {
|
||||
@@ -324,13 +348,15 @@ export default {
|
||||
teachingdialog: false,//查看抽屉
|
||||
pageSizeOptions: ['10', '20', '30', '50'], //下拉选择每页显示多少条
|
||||
pageSize: 10,
|
||||
beginTime: null, //开始时间
|
||||
endTime: null, //结束时间
|
||||
tableDataTotal: -1,//table列表总条数
|
||||
formParam: {
|
||||
status: 1,
|
||||
entryType:1,
|
||||
duration:null
|
||||
},
|
||||
searchdate: null, //选择时间
|
||||
searchdate: undefined, //选择时间
|
||||
searchParam: {
|
||||
name:null,
|
||||
recordType:2,
|
||||
@@ -340,30 +366,30 @@ export default {
|
||||
name: null,
|
||||
address: null,
|
||||
status: null,
|
||||
startDate: null,
|
||||
endDate: null,
|
||||
beginTime: null,
|
||||
endTime: null,
|
||||
entryType:null,
|
||||
},
|
||||
})
|
||||
function searchTimeChange(time, timeStr) {
|
||||
let startTime = timeStr[0]
|
||||
let endTime = timeStr[1] ;
|
||||
state.startTime = new Date(startTime).getTime();
|
||||
state.endTime = new Date(endTime).getTime();
|
||||
// state.searchParam.startDate = new Date(startDate).getTime() ;
|
||||
// state.searchParam.endDate = new Date(endDate).getTime() ;
|
||||
state.searchParam.startDate = state.startTime ? state.startTime : null,
|
||||
state.searchParam.endDate = state.endTime ? state.endTime : null
|
||||
}
|
||||
// function searchTimeChange(time, timeStr) {
|
||||
// let startTime = timeStr[0]
|
||||
// let endTime = timeStr[1] ;
|
||||
// state.startTime = new Date(startTime).getTime();
|
||||
// state.endTime = new Date(endTime).getTime();
|
||||
// // state.searchParam.beginTime = new Date(beginTime).getTime() ;
|
||||
// // state.searchParam.endTime = new Date(endTime).getTime() ;
|
||||
// state.searchParam.beginTime = state.startTime ? state.startTime : null,
|
||||
// state.searchParam.endTime = state.endTime ? state.endTime : null
|
||||
// }
|
||||
const AddressList = ref([
|
||||
]);
|
||||
const rules = {
|
||||
teacher: [{ required: true, message: '讲师不能为空' }],
|
||||
systypeid: [{ required: true, message: '内容分类不能为空' }],
|
||||
name: [{ required: true, message: '课程名称不能为空' }],
|
||||
status: [{ required: true, message: '讲开课状态不能为空' }],
|
||||
duration: [{ required: true, message: '授课时长不能为空' }],
|
||||
beginTime: [{ required: true, message: '授课日期不能为空' }],
|
||||
teacher: [{ required: true, message: '',log:'讲师不能为空' }],
|
||||
coursetypeid: [{ required: true, message:'',log: '内容分类不能为空' }],
|
||||
name: [{ required: true, message: '',log:'课程名称不能为空' }],
|
||||
status: [{ required: true, message:'',log: '讲开课状态不能为空' }],
|
||||
duration: [{ required: true, message: '',log:'授课时长不能为空' }],
|
||||
beginTime: [{ required: true, message:'',log: '授课日期不能为空' }],
|
||||
|
||||
}
|
||||
//获取开课场地
|
||||
@@ -384,6 +410,8 @@ export default {
|
||||
})
|
||||
}
|
||||
AddressLista()
|
||||
//获取内容分类
|
||||
const sysTypeOptions = computed(() => store.state.content_type);
|
||||
const OnTheJobStatusList = ref([
|
||||
{ value: 1, label: "项目开课" },
|
||||
{ value: 2, label: "路径开课" },
|
||||
@@ -499,18 +527,25 @@ export default {
|
||||
)
|
||||
}
|
||||
},
|
||||
// {
|
||||
// title: "内容分类",
|
||||
// width: 100,
|
||||
// dataIndex: "sysType1",
|
||||
// ellipsis: true,
|
||||
// key: "keywords",
|
||||
// align: "center",
|
||||
// //customRender: ({ record,text }) =>
|
||||
// //`${getSysTypeMap(record.sysType1, record.sysTypeId)?getSysTypeMap//(record.sysType1) : ""}
|
||||
// //${getSysTypeMap(record.sysType2, record.sysTypeId)?'-'+getSysTypeMap//(record.sysType2) : ""}
|
||||
// //${getSysTypeMap(record.sysType3, record.sysTypeId)?'-'+getSysTypeMap//(record.sysType3) : ""}
|
||||
// // `
|
||||
// },
|
||||
{
|
||||
title: "内容分类",
|
||||
width: 100,
|
||||
dataIndex: "sysType1",
|
||||
ellipsis: true,
|
||||
key: "keywords",
|
||||
align: "center",
|
||||
//customRender: ({ record,text }) =>
|
||||
//`${getSysTypeMap(record.sysType1, record.sysTypeId)?getSysTypeMap//(record.sysType1) : ""}
|
||||
//${getSysTypeMap(record.sysType2, record.sysTypeId)?'-'+getSysTypeMap//(record.sysType2) : ""}
|
||||
//${getSysTypeMap(record.sysType3, record.sysTypeId)?'-'+getSysTypeMap//(record.sysType3) : ""}
|
||||
// `
|
||||
title: '内容分类',
|
||||
dataIndex: 'courseTypeId',
|
||||
key: 'courseTypeId',
|
||||
elipsis: true, align: "center",
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '授课时长(H) ',
|
||||
@@ -585,18 +620,19 @@ export default {
|
||||
status: null,
|
||||
entryType:null,
|
||||
systemId:null,
|
||||
endDate:null,
|
||||
startDate:null,
|
||||
endTime:null,
|
||||
beginTime:null,
|
||||
entryType:null
|
||||
};
|
||||
getTableDate();
|
||||
};
|
||||
// List接口数据
|
||||
const getTableDate = (obj) => {
|
||||
state.tableLoading = true
|
||||
state.tableLoading = true
|
||||
let objA = { ...state.searchParam };
|
||||
objA.startDate = state.searchParam.startDate !== null ? dayjs(new Date(state.searchParam.startDate).getTime()).format("YYYY-MM-DD") : "",
|
||||
objA.endDate = state.searchParam.endDate !== null ? dayjs(new Date(state.searchParam.endDate).getTime()).format("YYYY-MM-DD") : "",
|
||||
objA.beginTime = state.searchdate ? dayjs(state.searchdate[0]).format("YYYY-MM-DD") : "",
|
||||
objA.endTime = state.searchdate ? dayjs(state.searchdate[1]).format("YYYY-MM-DD") : "",
|
||||
getNewInTeacherCourseList(objA)
|
||||
.then((res) => {
|
||||
tableData.value = res.data.data.records
|
||||
@@ -627,11 +663,27 @@ export default {
|
||||
state.vf = false
|
||||
TeacherSystem()
|
||||
}
|
||||
//保存
|
||||
const createTeacherDialog = () => {
|
||||
formRef.value
|
||||
.validate()
|
||||
async function validateField(name) {
|
||||
return new Promise((resolve) => {
|
||||
formRef.value.validateFields([name])
|
||||
.then(() => {
|
||||
resolve(false);
|
||||
})
|
||||
.catch(() => {
|
||||
resolve(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
//保存
|
||||
const createTeacherDialog = async () => {
|
||||
const formItemNames = Object.keys(rules);
|
||||
for(let i=0;i<formItemNames.length;i++){
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
return message.error(rules[formItemNames[i]][0].log)
|
||||
}
|
||||
}
|
||||
state.formParam = {...state.formParam}
|
||||
if (state.vf == false) {
|
||||
updateInTeacherCourse(state.formParam).then(response => {
|
||||
message.success("修改成功");
|
||||
@@ -651,10 +703,6 @@ export default {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
console.log('error', error);
|
||||
});
|
||||
};
|
||||
//删除弹窗
|
||||
const deleteModal = (record) => {
|
||||
@@ -778,26 +826,26 @@ const handleImport = () => {
|
||||
window.open(
|
||||
`${process.env.VUE_APP_BASE_API}/admin/export/exportOutTeacherRecord?pageNo=${state.searchParam.pageNo
|
||||
}&pageSize=${state.searchParam.pageSize}
|
||||
&userNo=${state.searchParam.userNo ? state.searchParam.userNo : ""
|
||||
}
|
||||
&teacher=${state.searchParam.teacher ? state.searchParam.teacher : ""
|
||||
}&name=${state.searchParam.name ? state.searchParam.name : ""}
|
||||
&startDate=${state.searchParam.startDate ? state.searchParam.startDate : ""}
|
||||
&endDate=${state.searchParam.endDate ? state.searchParam.endDate : ""}
|
||||
&name=${state.searchParam.name ? state.searchParam.name : ""}
|
||||
&courseName=${state.searchParam.courseName ? state.searchParam.courseName : ""}
|
||||
&entryType=${state.searchParam.entryType ? state.searchParam.entryType : ""}
|
||||
&id=${state.searchParam.id ? state.searchParam.id : ""
|
||||
}&status=${state.searchParam.status ? state.searchParam.status : ""}`
|
||||
&beginTime=${state.searchParam.beginTime ? state.searchParam.beginTime : ""}
|
||||
&endTime=${state.searchParam.endTime ? state.searchParam.endTime : ""}
|
||||
&courseTypeId=${state.searchParam.courseTypeId ? state.searchParam.courseTypeId : ""}
|
||||
&status=${state.searchParam.status ? state.searchParam.status : ""}`
|
||||
);
|
||||
}
|
||||
return {
|
||||
...toRefs(state),
|
||||
rules,
|
||||
validateField,
|
||||
sysTypeOptions,
|
||||
formRef,
|
||||
handleImport,
|
||||
clearNonNumber,
|
||||
managerChange,
|
||||
entryTypeList,
|
||||
searchTimeChange,
|
||||
// searchTimeChange,
|
||||
cancelTeachingDialog,
|
||||
getTeacherExpertiseList,
|
||||
getTeacherExpertiseLista,
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-select style="width: 230px" placeholder="请选择讲师体系" v-model:value="searchParam.tSystemId"
|
||||
:options="LecturerSystemList" allowClear showSearch>
|
||||
:options="LecturerSystemList" allowClear showSearch @change="changetlevel">
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
@@ -74,7 +74,7 @@
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
|
||||
|
||||
<a-tree-select
|
||||
<a-tree-select style="width: 230px"
|
||||
:fieldNames="{
|
||||
children: 'children',
|
||||
label: 'name',
|
||||
@@ -151,18 +151,18 @@
|
||||
<!-- 讲师姓名 teacher 组织 orgName-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师名称" name="teacher">
|
||||
|
||||
<SearchTeacher v-model:value="formParam.teacher" v-model:lable="formParam.orgName"
|
||||
v-model:system="formParam.tSystemName" v-model:level="formParam.sLevelName"></SearchTeacher>
|
||||
<a-form-item label="讲师名称" name="name">
|
||||
<SearchTeacher v-model:value="formParam.name" v-model:lable="formParam.orgName"
|
||||
v-model:system="tSystemNames" v-model:level="formParam.tLevelId"></SearchTeacher>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师组织" name="orgName">
|
||||
<a-popover title="讲师组织">
|
||||
<a-popover>
|
||||
<template #content>
|
||||
{{ formParam.orgName }}
|
||||
{{ formParam.orgName }}.
|
||||
</template>
|
||||
|
||||
<a-input disabled v-model:value="formParam.orgName" class="draitem"
|
||||
placeholder="自动带出讲师的组织,展示主要部分,鼠标浮上去展示所有" allowClear showSearch>
|
||||
</a-input>
|
||||
@@ -174,30 +174,20 @@
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师体系" name="tSystemName">
|
||||
<a-popover title="讲师体系">
|
||||
<template #content>
|
||||
{{ formParam.tSystemName }}
|
||||
</template>
|
||||
<a-input disabled v-model:value="formParam.tSystemName" class="draitem"
|
||||
placeholder="自动带出讲师体系" allowClear showSearch>
|
||||
<a-input disabled v-model:value="tSystemNames.systemName" class="draitem"
|
||||
placeholder="自动带出讲师的体系" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-popover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师级别" name="levelId">
|
||||
<a-popover title="讲师级别">
|
||||
<template #content>
|
||||
{{ formParam.sLevelName }}
|
||||
</template>
|
||||
<a-input v-model:value="formParam.sLevelName" class="draitem"
|
||||
placeholder="自动带出讲师级别" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-popover>
|
||||
<a-form-item label="讲师级别" name="tLevelId">
|
||||
<a-select class="draitem" v-model:value="formParam.tLevelId" placeholder="请选择讲师级别" allowClear
|
||||
:options="tSystemNames.levelVoList" @change="handleformlevel">
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 内容分类 id 课程名称 name -->
|
||||
<!-- 内容分类 courseTypeId 课程名称 name -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="内容分类" name="courseTypeId">
|
||||
@@ -219,8 +209,8 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="课程名称:" name="name">
|
||||
<a-input class="draitem" v-model:value="formParam.name" placeholder="请输入后搜索面授课" allowClear showSearch>
|
||||
<a-form-item label="课程名称:" name="coursename">
|
||||
<a-input class="draitem" v-model:value="formParam.coursename" placeholder="请输入后搜索面授课" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -449,6 +439,10 @@ export default {
|
||||
searchdate: undefined, //选择时间
|
||||
beginTime: null, //开始时间
|
||||
endTime: null, //结束时间
|
||||
tSystemNames:{
|
||||
systemName:null,
|
||||
levelVoList: []
|
||||
},
|
||||
formParam: {
|
||||
courseStatus: 1,
|
||||
createFrom: 1,
|
||||
@@ -795,6 +789,7 @@ export default {
|
||||
pageSize: 10,
|
||||
managerId: null,
|
||||
name: null,
|
||||
courseName:null,
|
||||
createFrom: null,
|
||||
courseStatus:null,
|
||||
orgId: null,
|
||||
@@ -844,13 +839,30 @@ export default {
|
||||
state.teacherdialogtitle = '修改授课记录'
|
||||
state.lookTeacherId = record.teacherId
|
||||
state.vf = false
|
||||
TeacherSystem(record)
|
||||
TeacherSystem1(record)
|
||||
}
|
||||
async function validateField(name) {
|
||||
return new Promise((resolve) => {
|
||||
formRef.value.validateFields([name])
|
||||
.then(() => {
|
||||
resolve(false);
|
||||
})
|
||||
.catch(() => {
|
||||
resolve(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
//保存
|
||||
const createTeacherDialog = () => {
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(() => {
|
||||
const createTeacherDialog = async () => {
|
||||
state.formParam.tSystemName = state.tSystemNames.systemName
|
||||
const formItemNames = Object.keys(rules);
|
||||
for(let i=0;i<formItemNames.length;i++){
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
return message.error(rules[formItemNames[i]][0].log)
|
||||
}
|
||||
}
|
||||
state.formParam = {...state.formParam,...state.tSystemNames}
|
||||
if (state.vf == false) {
|
||||
updateInTeacherCourse(state.formParam).then(response => {
|
||||
message.success("修改成功");
|
||||
@@ -870,11 +882,7 @@ export default {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
console.log('error', error);
|
||||
})
|
||||
}
|
||||
};
|
||||
//删除弹窗
|
||||
const deleteModal = (record) => {
|
||||
state.deleteTeacherdialog = true
|
||||
@@ -927,10 +935,14 @@ export default {
|
||||
type: null,
|
||||
remark: null,
|
||||
offcourseId: null,
|
||||
createFrom: null
|
||||
}
|
||||
createFrom: null,
|
||||
|
||||
}
|
||||
state.tSystemNames = {
|
||||
systemName:null,
|
||||
levelVoList: []
|
||||
}
|
||||
}
|
||||
// //页面内部姓名
|
||||
// const infoteacherList = ref([
|
||||
// ]);
|
||||
@@ -963,32 +975,36 @@ export default {
|
||||
state.teachingdialog = false;
|
||||
}
|
||||
//内部授课详情
|
||||
const TeacherSystem = (record) => {
|
||||
state.formParam = {
|
||||
recordType: 1,
|
||||
name: record.name,
|
||||
userNo: record.userNo,
|
||||
orgName: record.orgName,
|
||||
tSystemName: record.tSystemName,
|
||||
levelId: record.levelId,
|
||||
type: record.type,
|
||||
courseName: record.courseName,
|
||||
courseStatus:record.courseStatus,
|
||||
beginTime: dayjs(record.beginTime, 'YYYY-MM-DD'),
|
||||
// ref< moment.Moment >(moment(record.beginTime,'YYYY-MM-DD')),
|
||||
// record.beginTime,
|
||||
duration: record.duration,
|
||||
score: record.score,
|
||||
studys: record.studys,
|
||||
remark: record.remark,
|
||||
createFrom: record.createFrom
|
||||
}
|
||||
console.log(state.formParam)
|
||||
}
|
||||
// const TeacherSystem = (record) => {
|
||||
// state.formParam = {
|
||||
// recordType: 1,
|
||||
// name: record.name,
|
||||
// userNo: record.userNo,
|
||||
// orgName: record.orgName,
|
||||
// tSystemName: record.tSystemName,
|
||||
// levelId: record.levelId,
|
||||
// type: record.type,
|
||||
// courseName: record.courseName,
|
||||
// courseStatus:record.courseStatus,
|
||||
// beginTime: dayjs(record.beginTime, 'YYYY-MM-DD'),
|
||||
// // ref< moment.Moment >(moment(record.beginTime,'YYYY-MM-DD')),
|
||||
// // record.beginTime,
|
||||
// duration: record.duration,
|
||||
// score: record.score,
|
||||
// studys: record.studys,
|
||||
// remark: record.remark,
|
||||
// createFrom: record.createFrom
|
||||
// }
|
||||
// console.log(state.formParam)
|
||||
// }
|
||||
//内部授课详情
|
||||
const TeacherSystem1 = (record) => {
|
||||
getTeacherCourseList({id:record.id}).then((res) => {
|
||||
state.formParam = res.data.data
|
||||
state.tSystemNames.systemName = res.data.data.tSystemName
|
||||
state.tSystemNames.systemCode = res.data.data.systemCode
|
||||
state.tSystemNames.systemId = res.data.data.systemId
|
||||
state.tSystemNames.levelVoList = res.data.data.levelVoList
|
||||
console.log( state.formParam);
|
||||
})
|
||||
.catch((err) => {
|
||||
@@ -1075,56 +1091,26 @@ export default {
|
||||
}
|
||||
const tableDatas = ref([])
|
||||
const rules = {
|
||||
teacher: [{ required: true, message: '讲师不能为空' }],
|
||||
orgName: [{ required: true, message: '讲师组织不能为空' }],
|
||||
levelId: [{ required: true, message: '讲师级别不能为空' }],
|
||||
tSystemName: [{ required: true, message: '讲师体系不能为空' }],
|
||||
id: [{ required: true, message: '内容分类不能为空' }],
|
||||
courseName: [{ required: true, message: '课程名称不能为空' }],
|
||||
beginTime: [{ required: true, message: '授课/课程日期不能为空' }],
|
||||
duration: [{ required: true, message: '授课时长不能为空' }],
|
||||
courseStatus: [{ required: true, message: '开课状态不能为空' }],
|
||||
}
|
||||
const rule = () => {
|
||||
// if (state.formParam.teacher == null) {
|
||||
// state.log = true
|
||||
// message.warning('讲师不能为空')
|
||||
// }
|
||||
// if (state.formParam.orgName == null) {
|
||||
// state.log = true
|
||||
// message.warning('组织不能为空')
|
||||
// }
|
||||
// if (state.formParam.levelId == null) {
|
||||
// state.log = true
|
||||
// message.warning('讲师级别不能为空')
|
||||
// }
|
||||
// if (state.formParam.tSystemName == null) {
|
||||
// state.log = true
|
||||
// message.warning('讲师体系不能为空')
|
||||
// }
|
||||
// if (state.formParam.name == null) {
|
||||
// state.log = true
|
||||
// message.warning('课程名称不能为空')
|
||||
// }
|
||||
// if (state.formParam.beginTime == null) {
|
||||
// state.log = true
|
||||
// message.warning('授课/课程日期不能为空')
|
||||
// }
|
||||
// if (state.formParam.defaultteachingTime == null) {
|
||||
// state.log = true
|
||||
// message.warning('授课时长不能为空')
|
||||
// }
|
||||
// if (state.formParam.status == null) {
|
||||
// state.log = true
|
||||
// message.warning('开课状态不能为空')
|
||||
// }
|
||||
teacher: [{ required: true, message:'',log: '讲师不能为空' }],
|
||||
orgName: [{ required: true, message: '',log:'讲师组织不能为空' }],
|
||||
levelId: [{ required: true, message: '',log:'讲师级别不能为空' }],
|
||||
tSystemName: [{ required: true, message: '',log:'讲师体系不能为空' }],
|
||||
id: [{ required: true, message: '',log:'内容分类不能为空' }],
|
||||
courseName: [{ required: true, message: '',log:'课程名称不能为空' }],
|
||||
beginTime: [{ required: true, message: '',log:'授课/课程日期不能为空' }],
|
||||
duration: [{ required: true, message:'',log: '授课时长不能为空' }],
|
||||
courseStatus: [{ required: true, message: '',log:'开课状态不能为空' }],
|
||||
}
|
||||
|
||||
// function managerChange(e, l, d, t, orgName) {
|
||||
// console.log(e, l);
|
||||
// state.searchParam.userNo = d;
|
||||
// state.searchParam.name = t;
|
||||
// // state.searchParam.trainorgName=orgName
|
||||
// }
|
||||
const handleformlevel = (val) => {
|
||||
state.formParam.tlevelName = state.tSystemNames.levelVoList.find(item=>item.id===val)?.levelName
|
||||
}
|
||||
//导出功能
|
||||
const handleExport = () => {
|
||||
window.open(
|
||||
@@ -1133,16 +1119,15 @@ export default {
|
||||
&recordType=1
|
||||
&name=${state.searchParam.name ? state.searchParam.name : ""}
|
||||
&courseName=${state.searchParam.courseName ? state.searchParam.courseName : ""}
|
||||
&departId=${state.searchParam.departId ? state.searchParam.departId : ""}
|
||||
&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 : ""}
|
||||
&createFrom=${state.searchParam.createFrom ? state.searchParam.createFrom : ""}
|
||||
&id=${state.searchParam.id ? state.searchParam.id : ""}
|
||||
&type=${state.searchParam.type ? state.searchParam.type : ""}
|
||||
&status=${state.searchParam.status ? state.searchParam.status : ""}
|
||||
&studysranges=${state.searchParam.studysranges ? state.searchParam.studysranges : ""}
|
||||
&orgId=${state.searchParam.orgId ? state.searchParam.orgId : ""}
|
||||
&courseTypeId=${state.searchParam.courseTypeId ? state.searchParam.courseTypeId : ""}
|
||||
&scoreranges=${state.searchParam.scoreranges ? state.searchParam.scoreranges : ""}
|
||||
&studysranges=${state.searchParam.studysranges ? state.searchParam.studysranges : ""}
|
||||
`)
|
||||
console.log(state.searchParam.name,state.searchParam,'参数')
|
||||
}
|
||||
@@ -1192,13 +1177,14 @@ export default {
|
||||
return {
|
||||
...toRefs(state),
|
||||
sysTypeOptions,
|
||||
validateField,
|
||||
handleformlevel,
|
||||
// managerChange,
|
||||
clearNonNumber,
|
||||
clearscoreNumber,
|
||||
clearstudysNumber,
|
||||
beforeUpload2,
|
||||
rules,
|
||||
rule,
|
||||
formRef,
|
||||
column,
|
||||
tableDatas,
|
||||
@@ -1229,7 +1215,7 @@ export default {
|
||||
getTableDate, //list接口数据调用
|
||||
// getStu
|
||||
LecturerSystemLista,
|
||||
TeacherSystem,
|
||||
// TeacherSystem,
|
||||
TeacherSystem1,
|
||||
getOrganizationLista,
|
||||
getOrganizationList,
|
||||
|
||||
@@ -154,14 +154,13 @@
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师名称" name="teacher">
|
||||
<SearchTeacher v-model:value="formParam.teacher" v-model:lable="formParam.orgName"
|
||||
v-model:system="formParam.systemName" v-model:level="formParam.levelName"></SearchTeacher>
|
||||
|
||||
<SearchTeacher v-model:value="formParam.name" v-model:lable="formParam.orgName"
|
||||
v-model:system="tSystemNames" v-model:level="formParam.tLevelId"></SearchTeacher>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师工号" name="teacherNo">
|
||||
<a-input class="draitem" v-model:value="searchParam.teacherNo" disabled
|
||||
<a-form-item label="讲师工号" name="name">
|
||||
<a-input class="draitem" v-model:value="searchParam.name" disabled
|
||||
placeholder="请输入后讲师工号" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
@@ -171,34 +170,37 @@
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师组织" name="departId">
|
||||
<a-popover title="讲师组织">
|
||||
<a-form-item label="讲师组织" name="orgName">
|
||||
<a-popover>
|
||||
<template #content>
|
||||
{{ formParam.departId }}
|
||||
{{ formParam.orgName }}.
|
||||
</template>
|
||||
<a-input disabled v-model:value="formParam.departId" class="draitem"
|
||||
|
||||
<a-input disabled v-model:value="formParam.orgName" class="draitem"
|
||||
placeholder="自动带出讲师的组织,展示主要部分,鼠标浮上去展示所有" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-popover>
|
||||
</a-form-item>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师体系" name="systemId">
|
||||
<a-select disabled class="draitem" v-model:value="formParam.tsystemid" placeholder="请选择讲师体系"
|
||||
:options="lecturerSystemList">
|
||||
</a-select>
|
||||
<a-form-item label="讲师体系" name="tSystemName">
|
||||
<!-- <a-select class="draitem" v-model:value="formParam.tSystemName" placeholder="请选择讲师体系" allowClear
|
||||
@change="changetlevel" .:options="LecturerSystemList">
|
||||
</a-select> -->
|
||||
<a-input disabled v-model:value="tSystemNames.systemName" class="draitem"
|
||||
placeholder="自动带出讲师的体系" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 讲师级别 levelId 讲师发薪地 payrollPlaceName-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师级别" name="levelName">
|
||||
<!-- <a-select disabled class="draitem" v-model:value="formParam.levelId" placeholder="请选择讲师级别"
|
||||
:options="getLevelList">
|
||||
</a-select> -->
|
||||
<a-input disabled v-model:value="formParam.levelName" class="draitem"
|
||||
placeholder="自动带出讲师的级别" allowClear showSearch>
|
||||
</a-input>
|
||||
<a-form-item label="讲师级别" name="tLevelId">
|
||||
<a-select class="draitem" v-model:value="formParam.tLevelId" placeholder="请选择讲师级别" allowClear
|
||||
:options="tSystemNames.levelVoList" @change="handleformlevel">
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -362,7 +364,7 @@
|
||||
<a-descriptions-item label="费用类型">"费用类型(未命名)"</a-descriptions-item>
|
||||
<a-descriptions-item label="课程类型">{{formParam.courseType==1?'项目开课' :formParam.courseType==2 ?'路径开课':formParam.courseType==3 ?'面授开课':''}}</a-descriptions-item>
|
||||
<a-descriptions-item label="课程名称">{{formParam.courseName}}</a-descriptions-item>
|
||||
<a-descriptions-item label="授课时长 ">{{formParam.teachingTime}}</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.score}}</a-descriptions-item>
|
||||
@@ -518,7 +520,11 @@
|
||||
status:null,
|
||||
pageNo: "1",
|
||||
pageSize: "10",
|
||||
}
|
||||
},
|
||||
tSystemNames:{
|
||||
systemName:null,
|
||||
levelVoList: []
|
||||
},
|
||||
})
|
||||
//费用类型
|
||||
const courseTypeList=ref([
|
||||
@@ -557,7 +563,7 @@
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
LecturerSystemList.value = array;
|
||||
lecturerSystemList.value = array;
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -889,12 +895,28 @@ console.log( "讲师体系id" +val);
|
||||
}
|
||||
})
|
||||
}
|
||||
//保存
|
||||
const createTeacherDialog = () => {
|
||||
state.formParam.teachingDate= state.formParam.teachingDate!==null? dayjs(new Date(state.formParam.teachingDate).getTime()).format("YYYY-MM-DD"): "",
|
||||
formRef.value
|
||||
.validate()
|
||||
async function validateField(name) {
|
||||
return new Promise((resolve) => {
|
||||
formRef.value.validateFields([name])
|
||||
.then(() => {
|
||||
resolve(false);
|
||||
})
|
||||
.catch(() => {
|
||||
resolve(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
//保存
|
||||
const createTeacherDialog = async () => {
|
||||
state.formParam.tSystemName = state.tSystemNames.systemName
|
||||
const formItemNames = Object.keys(rules);
|
||||
for(let i=0;i<formItemNames.length;i++){
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
return message.error(rules[formItemNames[i]][0].log)
|
||||
}
|
||||
}
|
||||
state.formParam = {...state.formParam,...state.tSystemNames}
|
||||
if (state.vf == false) {
|
||||
updateTeacherFee(state.formParam).then(response => {
|
||||
message.success("修改成功");
|
||||
@@ -914,10 +936,6 @@ console.log( "讲师体系id" +val);
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
console.log('error', error);
|
||||
});
|
||||
};
|
||||
//删除弹窗
|
||||
// const deleteModal = (record) => {
|
||||
@@ -988,7 +1006,7 @@ console.log( "讲师体系id" +val);
|
||||
tsystemid:null,
|
||||
levelId:null,
|
||||
payrollPlaceName:null,
|
||||
// 费用类型 : null
|
||||
tSystemName: null,
|
||||
teacherpayrollPlace:null,
|
||||
teachingDate:null,
|
||||
defaultTeachingTime:null,
|
||||
@@ -1073,26 +1091,26 @@ console.log( "讲师体系id" +val);
|
||||
state.formParam.defaultTeachingTime = state.formParam.defaultTeachingTime.replace(/\D/g, '');
|
||||
}
|
||||
const rules = {
|
||||
name: [{ required: true, message: '讲师不能为空' }],
|
||||
teacherNo: [{ required: true, message: '讲师工号不能为空' }],
|
||||
departId: [{ required: true, message: '讲师组织不能为空' }],
|
||||
systemId: [{ required: true, message: '讲师体系不能为空' }],
|
||||
levelName: [{ required: true, message: ' 讲师级别 不能为空' }],
|
||||
payrollPlaceName: [{ required: true, message: '讲师发薪地 不能为空' }],
|
||||
courseType: [{ required: true, message: '费用类型不能为空' }],
|
||||
courseName: [{ required: true, message: '课程名称不能为空' }],
|
||||
teachingDate: [{ required: true, message: '授课日期不能为空' }],
|
||||
defaultTeachingTime: [{ required: true, message: ' 授课时长不能为空' }],
|
||||
studys: [{ required: true, message: ' 参训人数不能为空' }],
|
||||
score: [{ required: true, message: ' 评分不能为空' }],
|
||||
score: [{ required: true, message: '课酬基准 不能为空' }],
|
||||
expense: [{ required: true, message: '计划费用不能为空' }],
|
||||
name: [{ required: true, message:'',log: '讲师不能为空' }],
|
||||
teacherNo: [{ required: true, message: '',log:'讲师工号不能为空' }],
|
||||
departId: [{ required: true, message: '',log:'讲师组织不能为空' }],
|
||||
tSystemName: [{ required: true, message:'',log: '讲师体系不能为空' }],
|
||||
tLevelId: [{ required: true, message:'',log: ' 讲师级别 不能为空' }],
|
||||
payrollPlaceName: [{ required: true, message:'',log: '讲师发薪地 不能为空' }],
|
||||
courseType: [{ required: true, message: '',log:'费用类型不能为空' }],
|
||||
courseName: [{ required: true, message:'',log: '课程名称不能为空' }],
|
||||
teachingDate: [{ required: true, message:'',log: '授课日期不能为空' }],
|
||||
defaultTeachingTime: [{ required: true, message:'',log: ' 授课时长不能为空' }],
|
||||
studys: [{ required: true, message: '',log:' 参训人数不能为空' }],
|
||||
score: [{ required: true, message:'',log: ' 评分不能为空' }],
|
||||
score: [{ required: true, message:'',log: '课酬基准 不能为空' }],
|
||||
expense: [{ required: true, message: '',log:'计划费用不能为空' }],
|
||||
|
||||
}
|
||||
function managerChange(e, l, d, t, orgName) {
|
||||
console.log(e, l);
|
||||
state.searchParam.teacherNo = d;
|
||||
state.searchParam.teacherName = t;
|
||||
state.searchParam.teacherNo = t;
|
||||
// state.searchParam.trainorgName=orgName
|
||||
}
|
||||
const handleImport = () => {
|
||||
@@ -1298,12 +1316,15 @@ const column = ref([
|
||||
},
|
||||
|
||||
])
|
||||
const handleformlevel = (val) => {
|
||||
state.formParam.tlevelName = state.tSystemNames.levelVoList.find(item=>item.id===val)?.levelName
|
||||
}
|
||||
//导出功能
|
||||
const handleExport = ()=>{
|
||||
window.open (
|
||||
`${process.env.VUE_APP_BASE_API}/admin/export/exportTeacherExpense?pageNo=${
|
||||
state.searchParam.pageNo
|
||||
}&pageSize=${state.searchParam.pageSizess}&name=${
|
||||
}&pageSize=${state.searchParam.pageSize}&name=${
|
||||
state.searchParam.name ? state.searchParam.name : ""
|
||||
}&tsystemid=${ state.searchParam.tsystemid ? state.searchParam.tsystemid : ""}&levelId=${
|
||||
state.searchParam.levelId ? state.searchParam.levelId : ""
|
||||
@@ -1396,6 +1417,8 @@ const column = ref([
|
||||
searchResetdrawer,
|
||||
column,
|
||||
tableDatas,
|
||||
handleformlevel,
|
||||
validateField,
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@@ -234,7 +234,7 @@ export default {
|
||||
const columns = ref([
|
||||
{
|
||||
title: '编号 ',
|
||||
dataIndex: 'billNo',
|
||||
dataIndex: 'teacherId',
|
||||
key: 'billNo',
|
||||
elipsis: true,
|
||||
align: "center",
|
||||
@@ -330,7 +330,7 @@ export default {
|
||||
obj.beginTime = lastMonthStart.toISOString().split('T')[0];
|
||||
obj.endTime = lastMonthEnd.toISOString().split('T')[0];
|
||||
getTeacherFeeList(obj).then((res)=>{
|
||||
tableData.value = res.data.data
|
||||
tableData.value = res.data.data.records
|
||||
state.tableDataTotal = Number(res.data.data.total);
|
||||
state.tableLoading = false
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user