mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-15 22:06:45 +08:00
Merge branch 'zcwy-teacher-manage' into master_1202
This commit is contained in:
@@ -182,7 +182,7 @@
|
||||
|
||||
function remove(i) {
|
||||
rowSelectKeys.value.splice(i, 1);
|
||||
selectsData.value.splice(i, 1);
|
||||
selectsData.value = selectsData.value.filter((_, index) => index !== i);
|
||||
emit("update:selectedRowKeys", rowSelectKeys.value);
|
||||
emit("update:selectedRows", selectsData.value);
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ const props = defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
});
|
||||
onMounted(()=>{
|
||||
// onlineLearningList()
|
||||
@@ -237,7 +237,6 @@ function onLoadData(treeNode) {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
const openDrawer = () => {
|
||||
visiable.value = true;
|
||||
stuSelectRows.value = props.arrayList
|
||||
@@ -264,6 +263,13 @@ const deleteDepSelect = () => {
|
||||
|
||||
//确定添加授权
|
||||
const submitAuth = () => {
|
||||
teaunm.value.map(item=>{
|
||||
props.arrayList.map(i=>{
|
||||
if(item.id === i.userId){
|
||||
item.affiliationUserId = i.affiliationUserId
|
||||
}
|
||||
})
|
||||
})
|
||||
emit('update:arrayList',teaunm.value)
|
||||
emit('valueChange',teaunm.value,props.type)
|
||||
visiable.value = false;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<a-drawer
|
||||
:visible="visible"
|
||||
:closable="false"
|
||||
class="RouterFaceStus"
|
||||
class="largeDrawerStyle"
|
||||
placement="right"
|
||||
width="70%"
|
||||
>
|
||||
@@ -18,10 +18,22 @@
|
||||
<div class="content">
|
||||
<div class="box">
|
||||
<div style="margin-bottom: 20px;font-size: 18px;font-weight: 700;">选择讲师费汇总:<span style="color:red;margin-left:20px;">{{payableExpense.toFixed(2)||0}}元</span></div>
|
||||
<div class="top">
|
||||
<div class="item">
|
||||
<a-input @pressEnter="searchData(true)" style="border-radius: 8px;width:240px;height: 40px;" v-model:value="nameUserNo" placeholder="请输入工号/讲师名称进行搜索" allowClear />
|
||||
</div>
|
||||
<div class="item">
|
||||
<a-range-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD" style="border-radius: 8px;width:360px;height: 40px;" v-model:value="dateValue" />
|
||||
</div>
|
||||
<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="resetData()" style="border-radius:8px;width: 100px;height: 40px;">重置</a-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table" style="padding-bottom:72px;">
|
||||
<a-table
|
||||
:columns="columns"
|
||||
:data-source="tableData"
|
||||
:data-source="searchTrue?searchList:tableData"
|
||||
:pagination="false"
|
||||
:scroll="{ x: 'max-content' }"
|
||||
row-key="id"
|
||||
@@ -78,6 +90,38 @@ watch(()=>props.visible,(val)=>{
|
||||
selectsData.value = []
|
||||
}
|
||||
})
|
||||
const nameUserNo = ref(null)
|
||||
const dateValue = ref(null)
|
||||
const searchTrue = ref(false)
|
||||
const searchList = ref([])
|
||||
const resetData = () => {
|
||||
nameUserNo.value = null
|
||||
dateValue.value = null
|
||||
searchData(false)
|
||||
}
|
||||
const searchData = (val) => {
|
||||
searchTrue.value = val
|
||||
if(!nameUserNo.value&&!dateValue.value){
|
||||
searchList.value = tableData.value;
|
||||
return
|
||||
}
|
||||
//搜索 数组expenseList.value 参数名字或者工号:nameUserNo.value 日期:dateValue.value
|
||||
const filteredList = tableData.value.filter(item => {
|
||||
const isNameMatch = (item.name + item.userNo).includes(nameUserNo.value);
|
||||
const teachingDateTimestamp = new Date(item.teachingDate).getTime();
|
||||
if(dateValue.value==null){
|
||||
return isNameMatch
|
||||
}
|
||||
const startDateTimestamp = new Date(dateValue.value[0]).getTime();
|
||||
const endDateTimestamp = new Date(dateValue.value[1]).getTime();
|
||||
const isDateInRange = teachingDateTimestamp >= startDateTimestamp && teachingDateTimestamp <= endDateTimestamp;
|
||||
if(nameUserNo.value&&startDateTimestamp&&endDateTimestamp){
|
||||
return isNameMatch && isDateInRange;
|
||||
}
|
||||
return isNameMatch || isDateInRange;
|
||||
});
|
||||
searchList.value = filteredList;
|
||||
}
|
||||
const loading = ref(false)
|
||||
const selectedRowKeys = ref([])
|
||||
const selectsData = ref([]);
|
||||
@@ -224,12 +268,12 @@ const columns = [
|
||||
key: 'expense',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '应发费用',
|
||||
dataIndex: 'payableExpense',
|
||||
key: 'payableExpense',
|
||||
align: 'center',
|
||||
},
|
||||
// {
|
||||
// title: '应发费用',
|
||||
// dataIndex: 'payableExpense',
|
||||
// key: 'payableExpense',
|
||||
// align: 'center',
|
||||
// },
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
@@ -257,14 +301,14 @@ const queryDrawer = () => {
|
||||
<style lang="scss" scoped>
|
||||
|
||||
|
||||
.RouterFaceStus {
|
||||
.largeDrawerStyle {
|
||||
.drawerMains {
|
||||
min-width: 600px;
|
||||
// margin: 0px 32px 0px 32px;
|
||||
overflow-x: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
padding:24px;
|
||||
.headers {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<a-drawer
|
||||
:visible="visible"
|
||||
:closable="false"
|
||||
class="RouterFaceStus"
|
||||
class="largeDrawerStyle"
|
||||
placement="right"
|
||||
width="64%"
|
||||
:zIndex="1001"
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="top">
|
||||
<!-- <div class="top">
|
||||
<div class="item">
|
||||
<a-input @pressEnter="searchData(true)" style="border-radius: 8px;width:240px;height: 40px;" v-model:value="nameUserNo" placeholder="请输入工号/讲师名称进行搜索" allowClear />
|
||||
</div>
|
||||
@@ -41,7 +41,7 @@
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="table">
|
||||
<a-table
|
||||
:columns="columns"
|
||||
@@ -61,7 +61,7 @@
|
||||
</div>
|
||||
<div class="btnn">
|
||||
<button class="btn1" @click="config">确认提交审批</button>
|
||||
<button class="btn1" @click="qureyDrawer">确定</button>
|
||||
<button class="btn1" @click="qureyDrawer">确认至审批中心</button>
|
||||
<button class="btn2" @click="closeDrawer">取消</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -87,7 +87,7 @@
|
||||
<span>操作确认</span>
|
||||
<div class="close_exit" @click="close"></div>
|
||||
</div>
|
||||
<div class="title">本月可提交审批次数: <span style="color:#4ea6ff"> {{ numTime }} / 10 </span></div>
|
||||
<!-- <div class="title">本月可提交审批次数: <span style="color:#4ea6ff"> {{ numTime }} / 10 </span></div> -->
|
||||
<div class="body">
|
||||
<div>
|
||||
<span>请仔细核对讲师费信息,确认无误后,将自动进入(BPM系统)审批流程。</span>
|
||||
@@ -132,12 +132,12 @@ const close = () => {
|
||||
modalVisible.value = false;
|
||||
}
|
||||
const handleConfirm = () => {
|
||||
if(numTime.value >= 10){
|
||||
message.error('提交审批次数已达上限')
|
||||
return
|
||||
}
|
||||
numTime.value+=1
|
||||
localStorage.setItem('numTime',numTime.value)
|
||||
// if(numTime.value >= 10){
|
||||
// message.error('提交审批次数已达上限')
|
||||
// return
|
||||
// }
|
||||
// numTime.value+=1
|
||||
// localStorage.setItem('numTime',numTime.value)
|
||||
const ids = forData.value.flatMap(item => item.expenseList.map(item => item.id));
|
||||
if(!ids.length){
|
||||
return message.error('暂无可提交的数据')
|
||||
@@ -177,7 +177,7 @@ const clickItem = (item,i) => {
|
||||
watch(()=>props.visible,(val)=>{
|
||||
if(val){
|
||||
loadingData.value = true
|
||||
numTime.value = Number(localStorage.getItem('numTime')||0)
|
||||
// numTime.value = Number(localStorage.getItem('numTime')||0)
|
||||
api.getListByAffiliation(
|
||||
{
|
||||
name: '',
|
||||
@@ -374,12 +374,12 @@ const columns = [
|
||||
key: 'expense',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '应发费用',
|
||||
dataIndex: 'payableExpense',
|
||||
key: 'payableExpense',
|
||||
align: 'center',
|
||||
},
|
||||
// {
|
||||
// title: '应发费用',
|
||||
// dataIndex: 'payableExpense',
|
||||
// key: 'payableExpense',
|
||||
// align: 'center',
|
||||
// },
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
@@ -486,9 +486,9 @@ const config = () => {
|
||||
|
||||
.body {
|
||||
width: 100%;
|
||||
padding: 0 30px;
|
||||
padding: 0 50px;
|
||||
margin: 34px auto 56px auto;
|
||||
margin-top: 10px;
|
||||
margin-top: 40px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
@@ -533,14 +533,14 @@ const config = () => {
|
||||
}
|
||||
}
|
||||
|
||||
.RouterFaceStus {
|
||||
.largeDrawerStyle {
|
||||
.drawerMains {
|
||||
min-width: 600px;
|
||||
// margin: 0px 32px 0px 32px;
|
||||
overflow-x: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
padding:24px;
|
||||
.headers {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
@@ -646,7 +646,7 @@ const config = () => {
|
||||
|
||||
.btn1 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
width: 120px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
<template>
|
||||
<a-drawer :visible="visible" placement="right" :closable="false" :maskClosable="false"
|
||||
<a-drawer :visible="visible" class="largeDrawerStyle" placement="right" :closable="false" :maskClosable="false"
|
||||
width="80%" :title="false">
|
||||
<!-- 外部讲师查看详情 -->
|
||||
<div class="LookExternalLecturer">
|
||||
@@ -22,7 +22,7 @@
|
||||
<a-descriptions title="基本信息" style="padding:0 20px;" bordered :column="3" :contentStyle="rowCenters" :labelStyle="rowCenter">
|
||||
<!-- 一层 -->
|
||||
<a-descriptions-item label="讲师头像"> <a-image
|
||||
:width="55" style="border-radius: 50%;"
|
||||
:width="55" style="border-radius: 50%;width:55px;height:55px;"
|
||||
:src=formParam.photo
|
||||
/></a-descriptions-item>
|
||||
<a-descriptions-item label="讲师姓名">{{formParam.name||'-'}}</a-descriptions-item>
|
||||
@@ -173,7 +173,7 @@ export default{
|
||||
customRender: (value) => {
|
||||
return (
|
||||
<div>
|
||||
{dayjs(value.record?.teachingDate).format("YYYY-MM-DD HH:mm")}
|
||||
{value.record?.teachingDate?dayjs(value.record?.teachingDate).format("YYYY-MM-DD HH:mm"):'-'}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
@@ -332,6 +332,7 @@ export default{
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding:24px;
|
||||
.header {
|
||||
padding: 0px 32px;
|
||||
height: 73px;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<a-drawer :visible="visible" placement="right" :closable="false" :maskClosable="false"
|
||||
<a-drawer class="largeDrawerStyle" :visible="visible" placement="right" :closable="false" :maskClosable="false"
|
||||
width="80%" :title="false">
|
||||
<!-- 内部讲师查看详情 -->
|
||||
<div class="LookInsideLecturer">
|
||||
@@ -20,7 +20,7 @@
|
||||
<a-descriptions title="基本信息" bordered :column="4" :contentStyle="rowCenter" :labelStyle="rowCenters">
|
||||
<!-- 一层 -->
|
||||
<a-descriptions-item label="讲师头像">
|
||||
<a-image :width="55" style="border-radius: 50%;" :src=formParam.photo />
|
||||
<a-image :width="55" style="border-radius: 50%;width:55px;height:55px;" :src=formParam.photo />
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="讲师姓名">{{formParam.name}}/{{formParam.userNo}}</a-descriptions-item>
|
||||
<a-descriptions-item label="讲师体系">{{formParam.tsystemName || '-'}}</a-descriptions-item>
|
||||
@@ -165,6 +165,8 @@ export default{
|
||||
if(val){
|
||||
const id = props.id
|
||||
TeacherSystem(id)
|
||||
}else{
|
||||
state.formParam = {}
|
||||
}
|
||||
})
|
||||
const isOrgNames = (val) => {
|
||||
@@ -233,7 +235,7 @@ export default{
|
||||
customRender: (value) => {
|
||||
return (
|
||||
<div>
|
||||
{dayjs(value.record?.teachingDate).format("YYYY-MM-DD HH:mm")}
|
||||
{value.record?.teachingDate?dayjs(value.record?.teachingDate).format("YYYY-MM-DD HH:mm"):'-'}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
@@ -460,6 +462,7 @@ const handleup = ()=>{
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.LookInsideLecturer {
|
||||
padding:24px;
|
||||
.header {
|
||||
padding: 0px 32px;
|
||||
height: 73px;
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
<template>
|
||||
<div>
|
||||
<a-popover :getPopupContainer="
|
||||
<!-- <a-popover :getPopupContainer="
|
||||
(triggerNode) => {
|
||||
return triggerNode.parentNode || document.body;
|
||||
}
|
||||
" v-model:visible="visible" placement="bottom" trigger="click">
|
||||
<template #content v-if="!disabled">
|
||||
" v-model:visible="visible" placement="bottom" trigger="click"> -->
|
||||
<!-- <template #content v-if="!disabled"> -->
|
||||
<div class="pover">
|
||||
<div class="search">
|
||||
<a-select
|
||||
v-model:value="selectName"
|
||||
:disabled="disabled"
|
||||
v-model:value="selectData"
|
||||
style="width: 100%"
|
||||
placeholder="请查询姓名或工号"
|
||||
:options="isOpen?options:selectOptions"
|
||||
:filter-option="false"
|
||||
allowClear
|
||||
showSearch
|
||||
:open="isOpen"
|
||||
:defaultOpen="false"
|
||||
@@ -28,7 +28,7 @@
|
||||
</template>
|
||||
</a-select>
|
||||
</div>
|
||||
<div class="tree">
|
||||
<!-- <div class="tree">
|
||||
<a-tree show-icon allow-clear tree-default-expand-all :tree-data="treeData" :loading="orgLoading"
|
||||
:load-data="onLoadData" @expand="onExpand" v-model:selectedKeys="stuTreeSelectKeys"
|
||||
v-model:expandedKeys="stuTreeExpandedKeys" :fieldNames="{
|
||||
@@ -44,12 +44,11 @@
|
||||
</div>
|
||||
<div class="btn">
|
||||
<div class="btn0 btn1" @click="notChange">取消</div>
|
||||
<!-- <div class="btn0 btn2" @click="changeOut">确定</div> -->
|
||||
<a-button :loading="loadingChange" @click="changeOut" class="btn0 btn2" type="primary">确定</a-button>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</template>
|
||||
<a-select
|
||||
<!-- </template> -->
|
||||
<!-- <a-select
|
||||
v-model:value="selectData"
|
||||
style="width: 100%"
|
||||
placeholder="请选择讲师"
|
||||
@@ -62,8 +61,8 @@
|
||||
<template v-if="loading" #notFoundContent>
|
||||
<a-spin size="small"/>
|
||||
</template>
|
||||
</a-select>
|
||||
</a-popover>
|
||||
</a-select> -->
|
||||
<!-- </a-popover> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -130,6 +129,9 @@ watch(()=>props.value,(val)=>{
|
||||
selectData.value = null
|
||||
}
|
||||
},{immediate:true})
|
||||
onMounted(()=>{
|
||||
console.log('hahhahahahahhaha')
|
||||
})
|
||||
const teacherName = ref('')
|
||||
const selectName = ref(null)
|
||||
const options = ref([]);
|
||||
@@ -164,7 +166,18 @@ const handleChange = (e,l) => {
|
||||
neworgName.value= neworgName.value[ neworgName.value.length-1]
|
||||
}
|
||||
changeValue.value = l
|
||||
// emit('tlevel',l)
|
||||
emit('tlevel',l)
|
||||
emit('tlevel',changeValue.value)
|
||||
// selectData.value = teacherName.value
|
||||
emit('update:value',selectData.value)
|
||||
emit('update:lable',orgName.value)
|
||||
emit('update:orgId',orgId.value)
|
||||
// emit('update:system',systemName.value)
|
||||
emit('update:level',levelName.value)
|
||||
// emit('update:newlable',neworgName.value)
|
||||
emit('update:id',teacherId.value)
|
||||
emit('update:payrollPlaceCode',payrollPlaceCode.value)
|
||||
emit('update:payrollPlaceName',payrollPlaceName.value)
|
||||
};
|
||||
function debounce(func, wait) {
|
||||
let timeout;
|
||||
@@ -211,12 +224,14 @@ const searchMember = (keyword) => {
|
||||
avatar: item.avatar,
|
||||
gender: item.gender
|
||||
}
|
||||
})
|
||||
}) || []
|
||||
}else{
|
||||
options.value = []
|
||||
loading.value = false
|
||||
}
|
||||
}).catch(()=>{
|
||||
loading.value = false
|
||||
options.value = []
|
||||
})
|
||||
const params = {
|
||||
pageNo: 1,
|
||||
@@ -381,6 +396,7 @@ watch(()=>teacherId.value,(val)=>{
|
||||
)
|
||||
})
|
||||
}
|
||||
emit('update:system',systemName.value)
|
||||
}
|
||||
loadingChange.value = false
|
||||
// emit('update:system',systemName.value)
|
||||
@@ -426,12 +442,12 @@ const changeOut = () => {
|
||||
}
|
||||
.pover{
|
||||
::v-deep .ant-select-selector{
|
||||
height: 30px !important;
|
||||
border-radius: 4px !important;
|
||||
line-height: 30px !important;
|
||||
height: 40px !important;
|
||||
border-radius: 8px !important;
|
||||
line-height: 40px !important;
|
||||
}
|
||||
.search{
|
||||
margin-top: 10px;
|
||||
// margin-top: 10px;
|
||||
}
|
||||
.tree{
|
||||
margin-top: 5px;
|
||||
|
||||
@@ -67,9 +67,9 @@
|
||||
</template>
|
||||
</a-table>
|
||||
</div>
|
||||
<div style="margin-bottom: 100px">
|
||||
<!-- <div style="margin-bottom: 100px">
|
||||
<a-table v-if="threeList" :columns="columnsThree" :loading="formData?.loadingThree" :data-source="formData?.tableDataThree" :pagination="false"/>
|
||||
</div>
|
||||
</div> -->
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</div>
|
||||
@@ -80,6 +80,11 @@
|
||||
<button class="btn2" @click="confirm">撤销编辑内容</button>
|
||||
</div>
|
||||
</div>
|
||||
<a-modal :footer="null" width="800px" v-model:visible="visibleModal" title="审批记录详情">
|
||||
<div style="margin: 20px;padding-bottom: 20px;">
|
||||
<a-table :columns="columnsThree" :loading="formData?.loadingThree" :data-source="formData?.tableDataThree" :pagination="false"/>
|
||||
</div>
|
||||
</a-modal>
|
||||
</a-drawer>
|
||||
</template>
|
||||
|
||||
@@ -99,6 +104,7 @@ const props = defineProps({
|
||||
}
|
||||
});
|
||||
const emit = defineEmits({});
|
||||
const visibleModal = ref(false)
|
||||
const columns = [
|
||||
{
|
||||
title: '组织的名称',
|
||||
@@ -250,9 +256,11 @@ const approvalData = ref(null)
|
||||
const threeList = ref(false)
|
||||
const lookList = (record) => {
|
||||
console.log(record,'resssssss')
|
||||
if(!threeList.value||record.approvalId!=approvalData.value){
|
||||
threeList.value = true
|
||||
approvalData.value = record.approvalId
|
||||
// if(!threeList.value||record.approvalId!=approvalData.value){
|
||||
// threeList.value = true
|
||||
// approvalData.value = record.approvalId
|
||||
formData.value.tableDataThree = []
|
||||
visibleModal.value = true
|
||||
formData.value.loadingThree = true
|
||||
api.getApprovalResultByApprovalIdList(record.approvalId).then(res=>{
|
||||
if(res.data.code == 200){
|
||||
@@ -264,10 +272,10 @@ const lookList = (record) => {
|
||||
formData.value.loadingThree = false
|
||||
message.error(err.data.msg)
|
||||
})
|
||||
}else{
|
||||
threeList.value = false
|
||||
approvalData.value = null
|
||||
}
|
||||
// }else{
|
||||
// threeList.value = false
|
||||
// approvalData.value = null
|
||||
// }
|
||||
}
|
||||
const visible = ref(false);
|
||||
watch(visible, (val)=>{
|
||||
|
||||
@@ -4075,13 +4075,18 @@ function onFocusEnd(){
|
||||
// }
|
||||
state.addLoading = true;
|
||||
editPlan(postData)
|
||||
.then(() => {
|
||||
getTableDate3();
|
||||
handleCancelStu();
|
||||
rest();
|
||||
.then((res) => {
|
||||
if(res.data.code == 200){
|
||||
getTableDate3();
|
||||
handleCancelStu();
|
||||
rest();
|
||||
}else{
|
||||
message.error(res.data.msg)
|
||||
}
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(err.data.msg)
|
||||
state.loading = false;
|
||||
console.log(err);
|
||||
});
|
||||
@@ -4576,8 +4581,13 @@ function onFocusEnd(){
|
||||
if (res.data.code === 200) {
|
||||
getTableDate3();
|
||||
delete_exit1();
|
||||
}else{
|
||||
message.error(res.data.msg)
|
||||
}
|
||||
});
|
||||
}).catch(err=>{
|
||||
message.destroy()
|
||||
message.error(err.data.msg)
|
||||
})
|
||||
} else if (state.offcourseId) {
|
||||
handle({
|
||||
offcourseId: state.offcourseId,
|
||||
|
||||
@@ -63,140 +63,158 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 弹窗组件 -->
|
||||
<a-drawer v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false"
|
||||
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false"
|
||||
width="700px" :title="false">
|
||||
<div class="headers" style="margin-top:-24px;width: 110%;margin-left: -24px;">
|
||||
<div class="headerTitle">{{ teacherdialogtitle }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer;margin-right: 24px;"
|
||||
src="@/assets/images/basicinfo/close.png"
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<a-form style="padding-left:12px;padding-right: 46px;" :model="formParam" :rules="rules" layout="vertical" ref="formRef" >
|
||||
<!-- 基本信息 -->
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<span class="line"></span><span style="font-weight: 600;">基本信息</span>
|
||||
</a-col>
|
||||
<!-- 头像 -->
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<div class="item_inp" style="background-color: #fff;">
|
||||
<a-upload name="avatar" list-type="picture-card" class="avatar-uploader" :show-upload-list="false"
|
||||
:headers="headers" :before-upload="beforeUpload">
|
||||
<img class="i_upload_img" v-if="formParam.photo" :src="formParam.photo" alt="avatar" title="更换头像" />
|
||||
<img class="i_upload_img" v-else src="../../assets/Avatarman.png" alt="avatar" title="更换头像" />
|
||||
<!-- <div class="i_upload" v-else>
|
||||
<div class="addimg">
|
||||
<div class="heng"></div>
|
||||
<div class="shu"></div>
|
||||
</div>
|
||||
</div> -->
|
||||
</a-upload>
|
||||
<div class="i_bottom">
|
||||
<div class="tip" style="margin-bottom: 10px;">
|
||||
<span style="color: #999999; margin-left: 8px">支持图片格式为jpg/jpeg/png </span>
|
||||
<div style="padding:24px">
|
||||
<div class="headers" style="margin-top:-24px;width: 110%;margin-left: -24px;">
|
||||
<div class="headerTitle">{{ teacherdialogtitle }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer;margin-right: 24px;"
|
||||
src="@/assets/images/basicinfo/close.png"
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<a-form style="padding-left:12px;padding-right: 46px;" :model="formParam" layout="vertical" ref="formRef" >
|
||||
<!-- 基本信息 -->
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<span class="line"></span><span style="font-weight: 600;">基本信息</span>
|
||||
</a-col>
|
||||
<!-- 头像 -->
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<div class="item_inp" style="background-color: #fff;">
|
||||
<a-upload name="avatar" list-type="picture-card" class="avatar-uploader" :show-upload-list="false"
|
||||
:headers="headers" :before-upload="beforeUpload">
|
||||
<img class="i_upload_img" v-if="formParam.photo" :src="formParam.photo" alt="avatar" title="更换头像" />
|
||||
<img class="i_upload_img" v-else src="../../assets/Avatarman.png" alt="avatar" title="更换头像" />
|
||||
<!-- <div class="i_upload" v-else>
|
||||
<div class="addimg">
|
||||
<div class="heng"></div>
|
||||
<div class="shu"></div>
|
||||
</div>
|
||||
</div> -->
|
||||
</a-upload>
|
||||
<div class="i_bottom">
|
||||
<div class="tip" style="margin-bottom: 10px;">
|
||||
<span style="color: #999999; margin-left: 8px">支持图片格式为jpg/jpeg/png </span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 讲师名称 ,手机号码-->
|
||||
<a-row :gutter="16">
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 讲师名称 ,手机号码-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item name="name">
|
||||
<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.name" class="draitem" :maxlength="20" showCount
|
||||
@blur="sendName"
|
||||
placeholder="请输入讲师姓名" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item name="supplier">
|
||||
<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.supplier" class="draitem" :maxlength="30" showCount
|
||||
placeholder="请输入供应商" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 供应商 ,邮箱-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="手机号码" name="mobile" prop="mobile">
|
||||
<a-input v-model:value.trim="formParam.mobile" class="draitem"
|
||||
placeholder="请输入手机号码" allowClear showSearch :maxLength="11" @blur="sendPhone">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="讲师邮箱" name="email" prop="email">
|
||||
<a-input v-model:value="formParam.email" type="email" class="draitem"
|
||||
placeholder="请输入讲师邮箱" allowClear showSearch @blur="sendEmail">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="讲师姓名" name="name">
|
||||
<a-input v-model:value="formParam.name" class="draitem" :maxlength="20" showCount
|
||||
@blur="sendName"
|
||||
placeholder="请输入讲师姓名" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="供应商" name="supplier">
|
||||
<a-input v-model:value="formParam.supplier" class="draitem" :maxlength="30" showCount
|
||||
placeholder="请输入供应商" allowClear showSearch>
|
||||
<a-form-item label="初始授课时长" name="teaching">
|
||||
<a-input v-model:value="formParam.teaching" style="width:100%; height: 40px; border-radius: 8px ; "
|
||||
placeholder="0" allowClear showSearch suffix="分钟" @blur="clearNonNumber" @focus="focusTeaching">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching !== null">{{ (formParam.teaching / 60
|
||||
).toFixed(2) }}小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teaching === null">0.00小时</span> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 其他信息 -->
|
||||
<a-row>
|
||||
<a-col :span="24" style="margin-bottom: 24px;margin-top: 12px;">
|
||||
<span class="line"></span><span style="font-weight: 600;">其他信息</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 供应商 ,邮箱-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="手机号码" name="mobile" prop="mobile">
|
||||
<a-input v-model:value.trim="formParam.mobile" class="draitem"
|
||||
placeholder="请输入手机号码" allowClear showSearch :maxLength="11" @blur="sendPhone">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="讲师邮箱" name="email" prop="email">
|
||||
<a-input v-model:value="formParam.email" type="email" class="draitem"
|
||||
placeholder="请输入讲师邮箱" allowClear showSearch @blur="sendEmail">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="初始授课时长" name="teaching">
|
||||
<a-input v-model:value="formParam.teaching" style="width:100%; height: 40px; border-radius: 8px ; "
|
||||
placeholder="0" allowClear showSearch suffix="分钟" @blur="clearNonNumber">
|
||||
</a-input>
|
||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching !== null">{{ (formParam.teaching / 60
|
||||
).toFixed(2) }}小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teaching === null">0.00小时</span> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 其他信息 -->
|
||||
<a-row>
|
||||
<a-col :span="24" style="margin-bottom: 24px;margin-top: 12px;">
|
||||
<span class="line"></span><span style="font-weight: 600;">其他信息</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 讲师介绍 -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="讲师介绍">
|
||||
<Editor v-model:value="formParam.description "/>
|
||||
<!-- <a-textarea placeholder="富文本"/> -->
|
||||
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 备注 -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="备注" style="margin-bottom: 80px;">
|
||||
<a-textarea
|
||||
v-model:value="formParam.remark"
|
||||
showCount
|
||||
:maxlength="200"
|
||||
@blur="sendRemark"
|
||||
style="width: 100%; height: 100px; border-radius: 8px"
|
||||
placeholder="请输入"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<!-- 交互按钮 -->
|
||||
<div
|
||||
:style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
} "
|
||||
>
|
||||
<a-button class="drabtn" @click="cancelTeacherDialog" >取消</a-button>
|
||||
<a-button style="margin-right: 20px;" class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||
</a-button>
|
||||
</div>
|
||||
</a-row>
|
||||
<!-- 讲师介绍 -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="讲师介绍">
|
||||
<Editor v-model:value="formParam.description "/>
|
||||
<!-- <a-textarea placeholder="富文本"/> -->
|
||||
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 备注 -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="备注" style="margin-bottom: 80px;">
|
||||
<a-textarea
|
||||
v-model:value="formParam.remark"
|
||||
showCount
|
||||
:maxlength="200"
|
||||
@blur="sendRemark"
|
||||
style="width: 100%; height: 100px; border-radius: 8px"
|
||||
placeholder="请输入"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<!-- 交互按钮 -->
|
||||
<div
|
||||
:style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
} "
|
||||
>
|
||||
<a-button class="drabtn" @click="cancelTeacherDialog" >取消</a-button>
|
||||
<a-button style="margin-right: 20px;" class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
|
||||
<!-- 删除功能弹窗 -->
|
||||
@@ -330,7 +348,7 @@ export default {
|
||||
teacherType:'2',
|
||||
photo:null,
|
||||
status:1,
|
||||
teaching:'',
|
||||
teaching:0,
|
||||
},
|
||||
vf:true,
|
||||
searchParam: {
|
||||
@@ -542,8 +560,9 @@ export default {
|
||||
state.formParam.supplier = state.formParam?.supplier?.trim()
|
||||
const formItemNames = Object.keys(rules);
|
||||
for(let i=0;i<formItemNames.length;i++){
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
// const result = await validateField(formItemNames[i]);
|
||||
const result = state.formParam[formItemNames[i]]
|
||||
if (!result) {
|
||||
return message.error(rules[formItemNames[i]][0].log)
|
||||
}
|
||||
}
|
||||
@@ -650,7 +669,7 @@ export default {
|
||||
status:1,
|
||||
teacherType:2,
|
||||
photo:null,
|
||||
teaching:null,
|
||||
teaching:0,
|
||||
name: null,
|
||||
mobile: null,
|
||||
email: null,
|
||||
@@ -665,20 +684,20 @@ export default {
|
||||
const rules = {
|
||||
name: [{ required: true, message: '',log: '讲师不能为空' }],
|
||||
supplier:[{ required: true, message: '',log:'供应商不能为空' }],
|
||||
email:[
|
||||
{
|
||||
type: "email",
|
||||
message: '',log: '请输入正确的邮箱地址',
|
||||
trigger: "blur"
|
||||
}
|
||||
],
|
||||
mobile: [
|
||||
{
|
||||
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
||||
message: '',log: "请输入正确的手机号码",
|
||||
trigger: "blur"
|
||||
}
|
||||
]
|
||||
// email:[
|
||||
// {
|
||||
// type: "email",
|
||||
// message: '',log: '请输入正确的邮箱地址',
|
||||
// trigger: "blur"
|
||||
// }
|
||||
// ],
|
||||
// mobile: [
|
||||
// {
|
||||
// pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
||||
// message: '',log: "请输入正确的手机号码",
|
||||
// trigger: "blur"
|
||||
// }
|
||||
// ]
|
||||
}
|
||||
const rule =()=>{
|
||||
if (state.formParam.name==null){
|
||||
@@ -708,7 +727,7 @@ export default {
|
||||
console.log("外部讲师详情", res.data);
|
||||
state.formParam = res.data.data
|
||||
state.formParam.description = state.formParam.description == null ? '<p><br></p>' : state.formParam.description
|
||||
// state.formParam.photo = state.formParam.photo === null ? userInfo.value?.avatar : state.formParam.photo
|
||||
state.formParam.photo = state.formParam.photo == null ? null : state.formParam.photo.includes('upload') ? res.data.data.photo : '/upload'+res.data.data.photo
|
||||
})
|
||||
.catch((err) => {
|
||||
message.destroy()
|
||||
@@ -738,6 +757,9 @@ export default {
|
||||
}
|
||||
const sendEmail=()=>{
|
||||
const reg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.\w{2,}$/;
|
||||
if(!state.formParam.email){
|
||||
return
|
||||
}
|
||||
if (!reg.test(state.formParam.email)) {
|
||||
message.warning( '邮箱格式不正确')
|
||||
state.formParam.email=''
|
||||
@@ -745,11 +767,15 @@ export default {
|
||||
}
|
||||
}
|
||||
const clearNonNumber = () => {
|
||||
state.formParam.teaching = state.formParam.teaching.replace(/\D/g, '');
|
||||
state.formParam.teaching = state.formParam.teaching.slice(0,8)
|
||||
state.formParam.teaching = state.formParam.teaching?.replace(/\D/g, '');
|
||||
state.formParam.teaching = state.formParam.teaching?.slice(0,8)
|
||||
!state.formParam.teaching && (state.formParam.teaching = 0)
|
||||
}
|
||||
const focusTeaching = () => {
|
||||
state.formParam.teaching == 0 && (state.formParam.teaching = null)
|
||||
}
|
||||
const sendRemark=()=>{
|
||||
state.formParam.remark = state.formParam.remark.replace(/\s/g, '');
|
||||
state.formParam.remark = state.formParam.remark?.replace(/\s/g, '');
|
||||
}
|
||||
const repl = (val) => {
|
||||
if(val){
|
||||
@@ -787,6 +813,7 @@ export default {
|
||||
...toRefs(state),
|
||||
lecturerAdmin,
|
||||
clearNonNumber,
|
||||
focusTeaching,
|
||||
enterPressHadlerSearch,
|
||||
validateField,
|
||||
rules,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div>
|
||||
<!-- 搜索框及按钮 -->
|
||||
<div class="filter">
|
||||
<a-form layout="inline" style="min-width: 1380px;">
|
||||
<a-form layout="inline" style="min-width: 1056px;">
|
||||
<a-form-item class="select">
|
||||
<!-- v-model:value="searchParam.name" -->
|
||||
<!-- <a-input v-model:value="searchParam.userNo" style="width: 276px; height: 40px; border-radius: 8px"
|
||||
@@ -131,174 +131,234 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 弹窗组件 -->
|
||||
<a-drawer v-model:visible="teacherdialog" placement="right" :maskClosable="false" :closable="false"
|
||||
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" placement="right" :maskClosable="false" :closable="false"
|
||||
width="60%" :title="false">
|
||||
<div class="headers" style="margin-top:-24px;">
|
||||
<div class="headerTitle">{{ teacherdialogtitle }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="@/assets/images/basicinfo/close.png"
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<a-form :model="formParam" :rules="rules" layout="vertical" ref="formRef">
|
||||
<!--讲师名称 teacherName 内容分类 coursetypeid -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
|
||||
<a-form-item label="讲师名称" name="teacherName">
|
||||
<ProjectManagerOutTeacher v-model:value="formParam.name"
|
||||
v-model:name="formParam.teacherName"
|
||||
placeholder="请输入工号/讲师姓名进行检索"
|
||||
@onChange="managerChange"></ProjectManagerOutTeacher>
|
||||
|
||||
<!-- <a-input v-model:value="formParam.teacherName" allowClear showSearch class="draitem"
|
||||
placeholder="请输入讲师姓名"></a-input> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<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"
|
||||
@change="treetype">
|
||||
</a-tree-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 课程名称:name 开课状态 courseStatus-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="课程名称" name="courseName">
|
||||
<a-input class="draitem" v-model:value="formParam.courseName" :maxlength="20" showCount placeholder="请输入课程名称" @blur="sendName" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="开课状态">
|
||||
<a-radio-group v-model:value="formParam.courseStatus" class="draitem">
|
||||
<a-radio :value="0">未开课</a-radio>
|
||||
<a-radio :value="1">已开课</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 授课日期 teachingDate 授课时长defaultTeachingTime-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="授课/课程日期 :" name="teachingDate">
|
||||
<a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" format="YYYY-MM-DD HH:mm" :show-time="{ format: 'HH:mm' }"
|
||||
placeholder="请选择课程日期" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="授课时长" name="teaching">
|
||||
<a-input v-model:value="formParam.teaching" style="width:100%; height: 40px; border-radius: 8px; "
|
||||
placeholder="0" allowClear showSearch suffix="分钟"
|
||||
:maxLength="8" @change="clearNonNumber">
|
||||
</a-input>
|
||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching != null">{{ (formParam.teaching / 60
|
||||
).toFixed(2) }}小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teaching == null">0.00小时</span> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 参训人数 studys评分 score-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="参训人数" name="studys">
|
||||
<a-input v-model:value="formParam.studys" class="draitem" placeholder="0 " allowClear showSearch :maxLength="8"
|
||||
@blur="clearstudysNumber">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="评分" name="score">
|
||||
<!-- <a-input class="draitem" v-model:value="formParam.score" @blur="clearscoreNumber" placeholder="" allowClear showSearch>
|
||||
</a-input> -->
|
||||
<a-input-number v-model:value="formParam.score" :precision="2" :min="0" :max="100"
|
||||
style="width:100%; height: 40px; border-radius: 8px ; " />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 备注 remark -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="备注">
|
||||
<a-textarea v-model:value="formParam.remark" showCount :maxlength="200"
|
||||
@blur="sendRemark"
|
||||
style="width: 100%; height: 100px; border-radius: 8px" placeholder="请输入" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<div :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeacherDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||
</a-button>
|
||||
<div style="padding:24px;">
|
||||
<div class="headers" style="margin-top:-24px;">
|
||||
<div class="headerTitle">{{ teacherdialogtitle }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="@/assets/images/basicinfo/close.png"
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<a-form :model="formParam" layout="vertical" ref="formRef">
|
||||
<!--讲师名称 teacherName 内容分类 coursetypeid -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
|
||||
<a-form-item name="teacherName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师名称
|
||||
</template>
|
||||
<ProjectManagerOutTeacher v-model:value="formParam.name"
|
||||
v-model:name="formParam.teacherName"
|
||||
placeholder="请输入工号/讲师姓名进行检索"
|
||||
@onChange="managerChange"></ProjectManagerOutTeacher>
|
||||
|
||||
<!-- <a-input v-model:value="formParam.teacherName" allowClear showSearch class="draitem"
|
||||
placeholder="请输入讲师姓名"></a-input> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="courseTypeId">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
内容分类
|
||||
</template>
|
||||
<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"
|
||||
@change="treetype">
|
||||
</a-tree-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 课程名称:name 开课状态 courseStatus-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="courseName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
课程名称
|
||||
</template>
|
||||
<a-input class="draitem" v-model:value="formParam.courseName" :maxlength="20" showCount placeholder="请输入课程名称" @blur="sendName" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="开课状态">
|
||||
<a-radio-group v-model:value="formParam.courseStatus" class="draitem">
|
||||
<a-radio :value="'0'">未开课</a-radio>
|
||||
<a-radio :value="'1'">已开课</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 授课日期 teachingDate 授课时长defaultTeachingTime-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="teachingDate">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
授课/课程日期 :
|
||||
</template>
|
||||
<a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" format="YYYY-MM-DD HH:mm" :show-time="{ format: 'HH:mm' }"
|
||||
placeholder="请选择课程日期" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="teaching">
|
||||
<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.teaching" style="width:100%; height: 40px; border-radius: 8px; "
|
||||
placeholder="请输入授课时长" allowClear showSearch suffix="分钟"
|
||||
:maxLength="8" @change="clearNonNumber">
|
||||
</a-input>
|
||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching != null">{{ (formParam.teaching / 60
|
||||
).toFixed(2) }}小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teaching == null">0.00小时</span> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 参训人数 studys评分 score-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="studys">
|
||||
<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.studys" class="draitem" placeholder="请输入参训人数" allowClear showSearch :maxLength="8"
|
||||
@blur="clearstudysNumber">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="score">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
评分
|
||||
</template>
|
||||
<!-- <a-input class="draitem" v-model:value="formParam.score" @blur="clearscoreNumber" placeholder="" allowClear showSearch>
|
||||
</a-input> -->
|
||||
<a-input-number @blur="blurScore" @focus="focusScore" v-model:value="formParam.score" :precision="0" :min="1" :max="100"
|
||||
style="width:100%; height: 40px; border-radius: 8px ; " placeholder="请输入评分" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 备注 remark -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="备注">
|
||||
<a-textarea v-model:value="formParam.remark" showCount :maxlength="200"
|
||||
@blur="sendRemark"
|
||||
style="width: 100%; height: 100px; border-radius: 8px" placeholder="请输入" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<div :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeacherDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
<!-- 查看授课记录 -->
|
||||
<a-drawer v-model:visible="teachingdialog" placement="right" :maskClosable="false" :closable="false"
|
||||
<a-drawer class="largeDrawerStyle" v-model:visible="teachingdialog" placement="right" :maskClosable="false" :closable="false"
|
||||
width="60%" :title="false">
|
||||
<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 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-descriptions bordered :column="2" :contentStyle="rowCenter" :labelStyle="{'width':'160px'}">
|
||||
<a-descriptions-item label="讲师名称">{{ formParam.teacherName ||'-'}}</a-descriptions-item>
|
||||
<a-descriptions-item label="手机号码">{{ formParam.mobile ||'-'}}</a-descriptions-item>
|
||||
<a-descriptions-item label="课程类型">{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : '-'
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="课程名称">{{ formParam.courseName ||'-'}}</a-descriptions-item>
|
||||
<a-descriptions-item label="开课状态">{{ formParam.courseStatus == 0 ? '未开课' : formParam.courseStatus == 1
|
||||
? '已开课' : '-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="内容分类 ">{{ formParam.courseTypeName ||'-'}}</a-descriptions-item>
|
||||
<a-descriptions-item label="授课/课程日期 ">{{ formParam.teachingDate ||'-' }}
|
||||
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="授课时长 "> <span > {{ formParam.teaching }} 分钟</span>
|
||||
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
|
||||
).toFixed(2) }}小时)</span>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="评分 ">{{ formParam.score ||'-'}}</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>
|
||||
<!-- <div :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeachingDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="cancelTeachingDialog" :loading="buttonLoading">返回
|
||||
</a-button>
|
||||
</div> -->
|
||||
</div>
|
||||
<a-descriptions bordered :column="2" :contentStyle="rowCenter" :labelStyle="{'width':'160px'}">
|
||||
<a-descriptions-item label="讲师名称">{{ formParam.teacherName ||'-'}}</a-descriptions-item>
|
||||
<a-descriptions-item label="手机号码">{{ formParam.mobile ||'-'}}</a-descriptions-item>
|
||||
<a-descriptions-item label="课程类型">{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : '-'
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="课程名称">{{ formParam.courseName ||'-'}}</a-descriptions-item>
|
||||
<a-descriptions-item label="开课状态">{{ formParam.courseStatus == 0 ? '未开课' : formParam.courseStatus == 1
|
||||
? '已开课' : '-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="内容分类 ">{{ formParam.courseTypeName ||'-'}}</a-descriptions-item>
|
||||
<a-descriptions-item label="授课/课程日期 ">{{ formParam.teachingDate ||'-' }}
|
||||
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="授课时长 "> <span > {{ formParam.teaching }} 分钟</span>
|
||||
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
|
||||
).toFixed(2) }}小时)</span>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="评分 ">{{ formParam.score ||'-'}}</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>
|
||||
<!-- <div :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeachingDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="cancelTeachingDialog" :loading="buttonLoading">返回
|
||||
</a-button>
|
||||
</div> -->
|
||||
</a-drawer>
|
||||
<!-- 删除功能弹窗 -->
|
||||
<div>
|
||||
@@ -393,13 +453,13 @@ export default {
|
||||
teachingDate: undefined, //选择时间
|
||||
tableDataTotal: -1,//table列表总条数
|
||||
formParam: {
|
||||
courseStatus: 1,
|
||||
courseStatus: '1',
|
||||
createFrom: 1,
|
||||
teaching: null,
|
||||
teachingDate: null,
|
||||
teacherId:null,
|
||||
mobile:null,
|
||||
score: 0
|
||||
score: null
|
||||
},
|
||||
searchdate: undefined, //选择时间
|
||||
searchParam: {
|
||||
@@ -430,9 +490,9 @@ export default {
|
||||
teacherName: [{ required: true, message: '', log: '讲师不能为空' }],
|
||||
courseTypeId: [{ required: true, message: '', log: '内容分类不能为空' }],
|
||||
courseName: [{ required: true, message: '', log: '课程名称不能为空' }],
|
||||
courseStatus: [{ required: true, message: '', log: '课程状态不能为空' }],
|
||||
teaching: [{ required: true, message: '', log: '授课时长不能为空' }],
|
||||
courseStatus: [{ required: true, message: '', log: '开课状态不能为空' }],
|
||||
teachingDate: [{ required: true, message: '', log: '授课日期不能为空' }],
|
||||
teaching: [{ required: true, message: '', log: '授课时长不能为空' }],
|
||||
studys: [{ required: true, message: '', log: '参训人数不能为空' }],
|
||||
score: [{ required: true, message: '', log: '评分不能为空' }],
|
||||
}
|
||||
@@ -764,10 +824,12 @@ export default {
|
||||
}else{
|
||||
state.formParam.score = null
|
||||
}
|
||||
state.formParam.courseStatus = String(state.formParam.courseStatus)
|
||||
const formItemNames = Object.keys(rules);
|
||||
for (let i = 0; i < formItemNames.length; i++) {
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
// const result = await validateField(formItemNames[i]);
|
||||
const result = state.formParam[formItemNames[i]]
|
||||
if (!result) {
|
||||
return message.error(rules[formItemNames[i]][0].log)
|
||||
}
|
||||
}
|
||||
@@ -831,13 +893,13 @@ export default {
|
||||
//清空数据
|
||||
const cancel = () => {
|
||||
state.formParam = {
|
||||
courseStatus: 1,
|
||||
courseStatus: '1',
|
||||
recordType: 2,
|
||||
mobile: null,
|
||||
name: null,
|
||||
type: null,
|
||||
teaching: null,
|
||||
score: 0,
|
||||
score: null,
|
||||
remark: null,
|
||||
teachingDate: null,
|
||||
teacherId:null
|
||||
@@ -874,7 +936,8 @@ export default {
|
||||
state.teachingDate = res.data.data.teachingDate ? dayjs(res.data.data.teachingDate, 'YYYY-MM-DD HH:mm'):'',
|
||||
state.formParam.name=state.formParam.teacherName
|
||||
state.formParam.teachingDate = state.teachingDate ? dayjs(state.teachingDate).format("YYYY-MM-DD HH:mm").toString() : ""
|
||||
console.log(state.formParam.teachingDate)
|
||||
state.formParam.courseStatus = String(state.formParam.courseStatus)
|
||||
console.log(state.formParam.teachingDate)
|
||||
})
|
||||
.catch((err) => {
|
||||
});
|
||||
@@ -918,6 +981,12 @@ const enterPressHadlerSearch = e => {
|
||||
const sendName=()=>{
|
||||
state.formParam.courseName = state.formParam.courseName.replace(/\s/g, '');
|
||||
}
|
||||
const blurScore = () => {
|
||||
// !state.formParam.score && (state.formParam.score = '0')
|
||||
}
|
||||
const focusScore = () => {
|
||||
// state.formParam.score == 0 && (state.formParam.score = null)
|
||||
}
|
||||
const sendRemark=()=>{
|
||||
state.formParam.remark = state.formParam.remark.replace(/\s/g, '');
|
||||
}
|
||||
@@ -926,6 +995,8 @@ const sendName=()=>{
|
||||
rules,
|
||||
sendName,
|
||||
sendRemark,
|
||||
blurScore,
|
||||
focusScore,
|
||||
enterPressHadlerSearch,
|
||||
treetype,
|
||||
clearscoreNumber,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 搜索框及按钮 -->
|
||||
<div class="filter" style="min-width: 1270px;">
|
||||
<div class="filter" style="min-width: 1056px;">
|
||||
<a-form layout="inline">
|
||||
<a-form-item class="select">
|
||||
<!-- v-model:value="searchParam.name" -->
|
||||
@@ -113,216 +113,250 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 弹窗组件 -->
|
||||
<a-drawer v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false"
|
||||
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false"
|
||||
width="700" :title="false">
|
||||
<div class="headers" style="margin-top:-24px;margin-left: -25px;width: 110%;">
|
||||
<div class="headerTitle" style="margin-left: 14px;">{{ teacherdialogtitle }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer;margin-right: 24px;"
|
||||
src="@/assets/images/basicinfo/close.png"
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<div ref="drawerContent" style="padding-left: 15px;padding-right: 46px;">
|
||||
<a-form :model="formParam" :rules="rules" layout="vertical" ref="formRef">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<span class="line"></span><span style="color:#333333;font-weight: 600;font-size:16px;">基本信息</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<div class="item_inp" style="background-color: #fff;">
|
||||
<div style="width:120px;margin:0 auto;" @click="avatarChange">
|
||||
<a-upload :disabled="!formParam.name" name="avatar" list-type="picture-card" class="avatar-uploader" :show-upload-list="false"
|
||||
:headers="headers" :before-upload="beforeUpload">
|
||||
<img class="i_upload_img" v-if="formParam.photo" :src="formParam.photo" alt="avatar" title="更换头像" />
|
||||
<img class="i_upload_img" v-else-if="formParam.gender==1" src="../../assets/Avatarman.png" alt="avatar" title="更换头像" />
|
||||
<img class="i_upload_img" v-else-if="formParam.gender==2" src="../../assets/Avatarwoman.png" alt="avatar" title="更换头像" />
|
||||
<img class="i_upload_img" v-else src="../../assets/Avatarman.png" alt="avatar" title="更换头像" />
|
||||
<!-- <div class="i_upload" v-else>
|
||||
<div class="addimg">
|
||||
<div class="heng"></div>
|
||||
<div class="shu"></div>
|
||||
</div>
|
||||
</div> -->
|
||||
</a-upload>
|
||||
</div>
|
||||
<div class="i_bottom">
|
||||
<div class="tip" style="margin-bottom: 10px;">
|
||||
<span style="color: #999999; margin-left: 8px">支持图片格式为jpg/jpeg/png </span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="讲师姓名" name="name">
|
||||
<SearchTeacher @tlevel="teacherTlevel" :lecturer="true" :disabled="!!id" v-model:value="formParam.name" v-model:lable="formParam.orgNames" v-model:orgId="formParam.orgId" v-model:id="formParam.id"
|
||||
v-model:system="tSystemNames" v-model:level="formParam.tlevelId"></SearchTeacher>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="讲师组织" name="orgName">
|
||||
<!-- <a-popover>
|
||||
<template #content>
|
||||
{{ formParam.orgNames }}
|
||||
</template> -->
|
||||
<a-input :title="formParam.orgNames" disabled v-model:value="formParam.orgName" class="draitem"
|
||||
placeholder="自动带出讲师的组织,展示主要部分,鼠标浮上去展示所有" allowClear showSearch>
|
||||
</a-input>
|
||||
<!-- </a-popover> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-col :span="24">
|
||||
<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-col :span="24">
|
||||
<!-- <div @click="handleformlevel"> -->
|
||||
<a-form-item label="讲师级别" name="tlevelId">
|
||||
<a-select class="draitem" v-model:value="formParam.tlevelId" placeholder="请选择讲师级别" allowClear disableda
|
||||
:options="tSystemNames.levelVoList" @change="handleformlevel">
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<!-- </div> -->
|
||||
</a-col>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="初始授课时长" name="defaultTeachingTime">
|
||||
<a-input v-model:value="formParam.defaultTeachingTime" style="width:100%; height: 40px; border-radius: 8px; "
|
||||
:maxLength="8"
|
||||
@change="clearNonNumber" placeholder="请输入初始授课时长" allowClear suffix="分钟">
|
||||
</a-input>
|
||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.defaultTeachingTime === null">0.00小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.defaultTeachingTime != null">{{
|
||||
(formParam.defaultTeachingTime / 60).toFixed(2) }}小时</span> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="认证状态" name="certStatus" style="display:flex;">
|
||||
<a-radio-group v-model:value="formParam.certStatus" class="draitem">
|
||||
<a-radio :value="0">未认证</a-radio>
|
||||
<a-radio :value="1">已认证</a-radio>
|
||||
<span>
|
||||
<a-button type="text" class="moreidbtn" v-if="formParam.certStatus == 1"
|
||||
@click="handleupdialog">{{formParam.certificationName?formParam.certificationName:'上传凭证'}}</a-button>
|
||||
</span>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<span class="line" style="margin-bottom:24px;"></span><span style="color:#333333;font-weight: 600;font-size:16px;">其他信息</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="讲师介绍">
|
||||
<Editor v-model:value="formParam.description" :isupload="isupload" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="工作经历">
|
||||
<Editor v-model:value="formParam.workExperience" :isupload="isupload" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="擅长课程">
|
||||
<Editor v-model:value="formParam.courses" :isupload="isupload"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<div style="margin-bottom: 6px;">教师专长</div>
|
||||
<a-row :gutter="50" style="margin-bottom: 50px;">
|
||||
<!-- <a-col :span="4">
|
||||
<a-tag color="blue" style="line-height: 40px; ">管理业务</a-tag>
|
||||
</a-col> -->
|
||||
<a-col :span="20">
|
||||
<!-- <div class="add_content" @click="addContentData">
|
||||
<div class="text">+</div>
|
||||
</div> -->
|
||||
<div class="add_list">
|
||||
<div :title="item.name" class="add_item" v-for="(item,index) in formParam.orgLists">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="add_content" @click="addContentData">
|
||||
<div class="text">+</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<div>
|
||||
<a-modal
|
||||
v-model:visible="updialog"
|
||||
:footer="null"
|
||||
closable="false"
|
||||
style="margin-top: 400px"
|
||||
@cancel="cancelupdialog"
|
||||
:maskClosable="false"
|
||||
:destroyOnClose="true"
|
||||
>
|
||||
<div class="selectonlineface" style="width: 660px;" :style="{ display: updialog ? 'block' : 'none' }">
|
||||
<div class="bg_headers"></div>
|
||||
<div class="bg_main">
|
||||
<div class="bg_main_header">
|
||||
<div class="bg_main_header_close" @click="cancelupdialog"></div>
|
||||
</div>
|
||||
<div class="bg_body">
|
||||
<div>导入</div>
|
||||
<a-form style="margin-top:30px ;">
|
||||
<a-form-item style="color: #999999;">注意 :文件支持PDF、PNG、JPG ,文件大小不可超过5MB</a-form-item>
|
||||
<a-form-item label="上传文件">
|
||||
<UploadDragger :size="5000000" ref="uploadRef" style="width:86%;height:148px;" @change="changeUpload" :accept="accept"
|
||||
@removeList="removeList" :uploadUrl="uploadUrl" :params="folderId" :loadTrue="formParam.certificationName" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<div class="bg_footer" style="margin-left: 160px;margin-top: 30px">
|
||||
<div class="btn btn6" @click="cancelupdialog">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<a-button
|
||||
class="btn btn6"
|
||||
@click="createupdialog"
|
||||
>
|
||||
确定
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
<div style="padding:24px">
|
||||
<div class="headers" style="margin-top:-24px;margin-left: -25px;width: 110%;">
|
||||
<div class="headerTitle" style="margin-left: 14px;">{{ teacherdialogtitle }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer;margin-right: 24px;"
|
||||
src="@/assets/images/basicinfo/close.png"
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<div :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
display: 'flex',
|
||||
justifyContent: 'end',
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeacherDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||
</a-button>
|
||||
<div ref="drawerContent" style="padding-left: 15px;padding-right: 46px;">
|
||||
<a-form :model="formParam" layout="vertical" ref="formRef">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<span class="line"></span><span style="color:#333333;font-weight: 600;font-size:16px;">基本信息</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<div class="item_inp" style="background-color: #fff;">
|
||||
<div style="width:120px;margin:0 auto;" @click="avatarChange">
|
||||
<a-upload :disabled="!formParam.name" name="avatar" list-type="picture-card" class="avatar-uploader" :show-upload-list="false"
|
||||
:headers="headers" :before-upload="beforeUpload">
|
||||
<img class="i_upload_img" v-if="formParam.photo" :src="formParam.photo" alt="avatar" title="更换头像" />
|
||||
<img class="i_upload_img" v-else-if="formParam.gender==1" src="../../assets/Avatarman.png" alt="avatar" title="更换头像" />
|
||||
<img class="i_upload_img" v-else-if="formParam.gender==2" src="../../assets/Avatarwoman.png" alt="avatar" title="更换头像" />
|
||||
<img class="i_upload_img" v-else src="../../assets/Avatarman.png" alt="avatar" title="更换头像" />
|
||||
<!-- <div class="i_upload" v-else>
|
||||
<div class="addimg">
|
||||
<div class="heng"></div>
|
||||
<div class="shu"></div>
|
||||
</div>
|
||||
</div> -->
|
||||
</a-upload>
|
||||
</div>
|
||||
<div class="i_bottom">
|
||||
<div class="tip" style="margin-bottom: 10px;">
|
||||
<span style="color: #999999; margin-left: 8px">支持图片格式为jpg/jpeg/png </span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item name="name">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师姓名
|
||||
</template>
|
||||
<SearchTeacher @tlevel="teacherTlevel" :lecturer="true" :disabled="!!id" v-model:value="formParam.name" v-model:lable="formParam.orgNames" v-model:orgId="formParam.orgId" v-model:id="formParam.id"
|
||||
v-model:system="tSystemNames" v-model:level="formParam.tlevelId"></SearchTeacher>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="讲师组织" name="orgName">
|
||||
<!-- <a-popover>
|
||||
<template #content>
|
||||
{{ formParam.orgNames }}
|
||||
</template> -->
|
||||
<a-input :title="formParam.orgNames" disabled v-model:value="formParam.orgName" class="draitem"
|
||||
placeholder="自动带出讲师的组织,展示主要部分,鼠标浮上去展示所有" allowClear showSearch>
|
||||
</a-input>
|
||||
<!-- </a-popover> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-col :span="24">
|
||||
<a-form-item name="tsystemName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师体系
|
||||
</template>
|
||||
<!-- <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-col :span="24">
|
||||
<!-- <div @click="handleformlevel"> -->
|
||||
<a-form-item name="tlevelId">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师级别
|
||||
</template>
|
||||
<a-select class="draitem" v-model:value="formParam.tlevelId" placeholder="请选择讲师级别" allowClear disableda
|
||||
:options="tSystemNames.levelVoList" @change="handleformlevel">
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<!-- </div> -->
|
||||
</a-col>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item name="defaultTeachingTime">
|
||||
<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; "
|
||||
:maxLength="8"
|
||||
@change="clearNonNumber" @blur="blurNumber" @focus="focusNumber" placeholder="请输入初始授课时长" allowClear suffix="分钟">
|
||||
</a-input>
|
||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.defaultTeachingTime === null">0.00小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.defaultTeachingTime != null">{{
|
||||
(formParam.defaultTeachingTime / 60).toFixed(2) }}小时</span> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="认证状态" name="certStatus" style="display:flex;">
|
||||
<a-radio-group v-model:value="formParam.certStatus" class="draitem">
|
||||
<a-radio :value="0">未认证</a-radio>
|
||||
<a-radio :value="1">已认证</a-radio>
|
||||
<span>
|
||||
<a-button type="text" class="moreidbtn" v-if="formParam.certStatus == 1"
|
||||
@click="handleupdialog">{{formParam.certificationName?formParam.certificationName:'上传凭证'}}</a-button>
|
||||
</span>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<span class="line" style="margin-bottom:24px;"></span><span style="color:#333333;font-weight: 600;font-size:16px;">其他信息</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="讲师介绍">
|
||||
<Editor v-model:value="formParam.description" :isupload="isupload" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="工作经历">
|
||||
<Editor v-model:value="formParam.workExperience" :isupload="isupload" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="擅长课程">
|
||||
<Editor v-model:value="formParam.courses" :isupload="isupload"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<div style="margin-bottom: 6px;">教师专长</div>
|
||||
<a-row :gutter="50" style="margin-bottom: 50px;">
|
||||
<!-- <a-col :span="4">
|
||||
<a-tag color="blue" style="line-height: 40px; ">管理业务</a-tag>
|
||||
</a-col> -->
|
||||
<a-col :span="20">
|
||||
<!-- <div class="add_content" @click="addContentData">
|
||||
<div class="text">+</div>
|
||||
</div> -->
|
||||
<div class="add_list">
|
||||
<div :title="item.name" class="add_item" v-for="(item,index) in formParam.orgLists">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="add_content" @click="addContentData">
|
||||
<div class="text">+</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<div>
|
||||
<a-modal
|
||||
v-model:visible="updialog"
|
||||
:footer="null"
|
||||
closable="false"
|
||||
style="margin-top: 400px"
|
||||
@cancel="cancelupdialog"
|
||||
:maskClosable="false"
|
||||
:destroyOnClose="true"
|
||||
>
|
||||
<div class="selectonlineface" style="width: 660px;" :style="{ display: updialog ? 'block' : 'none' }">
|
||||
<div class="bg_headers"></div>
|
||||
<div class="bg_main">
|
||||
<div class="bg_main_header">
|
||||
<div class="bg_main_header_close" @click="cancelupdialog"></div>
|
||||
</div>
|
||||
<div class="bg_body">
|
||||
<div>导入</div>
|
||||
<a-form style="margin-top:30px ;">
|
||||
<a-form-item style="color: #999999;">注意 :文件支持PDF、PNG、JPG ,文件大小不可超过5MB</a-form-item>
|
||||
<a-form-item label="上传文件">
|
||||
<UploadDragger :size="5000000" ref="uploadRef" style="width:86%;height:148px;" @change="changeUpload" :accept="accept"
|
||||
@removeList="removeList" :uploadUrl="uploadUrl" :params="folderId" :loadTrue="formParam.certificationName" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<div class="bg_footer" style="margin-left: 160px;margin-top: 30px">
|
||||
<div class="btn btn6" @click="cancelupdialog">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<a-button
|
||||
class="btn btn6"
|
||||
@click="createupdialog"
|
||||
>
|
||||
确定
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</div>
|
||||
<div :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
display: 'flex',
|
||||
justifyContent: 'end',
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeacherDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
@@ -989,14 +1023,19 @@ export default {
|
||||
}
|
||||
const formItemNames = Object.keys(rules);
|
||||
for(let i=0;i<formItemNames.length;i++){
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
// const result = await validateField(formItemNames[i]);
|
||||
const result = state.formParam[formItemNames[i]]
|
||||
if (!result) {
|
||||
return message.error(rules[formItemNames[i]][0].log)
|
||||
}
|
||||
}
|
||||
if(state.formParam.certStatus&&!state.formParam.certificationName){
|
||||
return message.error('请上传认证凭证')
|
||||
}
|
||||
if(!state.formParam.certStatus){
|
||||
state.formParam.certification = null
|
||||
state.formParam.certificationName = null
|
||||
}
|
||||
if(state.formParam.name){
|
||||
const nameNo = state.formParam?.name?.split('/')
|
||||
state.formParam.name = nameNo[0]
|
||||
@@ -1141,8 +1180,8 @@ export default {
|
||||
};
|
||||
watch(() => state.formParam.certStatus,(val)=>{
|
||||
if(!val){
|
||||
state.formParam.certification = null
|
||||
state.formParam.certificationName = null
|
||||
// state.formParam.certification = null
|
||||
// state.formParam.certificationName = null
|
||||
}
|
||||
})
|
||||
//清空数据
|
||||
@@ -1177,6 +1216,12 @@ export default {
|
||||
state.formParam.defaultTeachingTime = state.formParam.defaultTeachingTime.replace(/\D/g, '');
|
||||
state.formParam.defaultTeachingTime = state.formParam.defaultTeachingTime.slice(0,8)
|
||||
}
|
||||
const blurNumber = () => {
|
||||
!state.formParam.defaultTeachingTime && (state.formParam.defaultTeachingTime = '0')
|
||||
}
|
||||
const focusNumber = () => {
|
||||
state.formParam.defaultTeachingTime==0 && (state.formParam.defaultTeachingTime = null)
|
||||
}
|
||||
const rules = {
|
||||
name: [{ required: true, message: '',log:'讲师不能为空' }],
|
||||
// newdepartId: [{ required: true, message: '组织不能为空' }],
|
||||
@@ -1241,7 +1286,7 @@ export default {
|
||||
state.formParam.description = state.formParam.description == null ? '<p><br></p>' : state.formParam.description
|
||||
state.formParam.workExperience = state.formParam.workExperience == null ? '<p><br></p>' : state.formParam.workExperience
|
||||
state.formParam.courses = state.formParam.courses == null ? '<p><br></p>' : state.formParam.courses
|
||||
// state.formParam.photo = state.formParam.photo === null ? avatar : state.formParam.photo
|
||||
state.formParam.photo = state.formParam.photo == null ? null : state.formParam.photo.includes('upload') ? res.data.data.photo : '/upload'+res.data.data.photo
|
||||
state.tSystemNames.systemName = res.data.data.tsystemName
|
||||
state.tSystemNames.systemId = res.data.data.tsystemId
|
||||
state.tSystemNames.systemCode = res.data.data.systemCode
|
||||
@@ -1320,6 +1365,8 @@ export default {
|
||||
handleformlevel,
|
||||
// customPreview,
|
||||
clearNonNumber,
|
||||
blurNumber,
|
||||
focusNumber,
|
||||
// managerChange,
|
||||
headers,
|
||||
beforeUpload,
|
||||
@@ -1378,6 +1425,21 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
// ::v-deep .ant-form-item-with-help .ant-form-item-explain{
|
||||
// min-height: 0 !important;
|
||||
// }
|
||||
// ::v-deep .ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{
|
||||
// border-color: #40a9ff !important;
|
||||
// }
|
||||
// ::v-deep .ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector {
|
||||
// border-color: #40a9ff !important;
|
||||
// }
|
||||
// ::v-deep .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{
|
||||
// border-color: #40a9ff !important;
|
||||
// }
|
||||
// ::v-deep .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{
|
||||
// border-color: #40a9ff !important;
|
||||
// }
|
||||
.ant-form-item{
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
<div>
|
||||
<!-- 搜索框及按钮 -->
|
||||
<div class="filter">
|
||||
<a-form layout="inline" style="min-width: 1380px;">
|
||||
<a-form layout="inline" style="min-width: 1056px;">
|
||||
<a-form-item class="select">
|
||||
<a-input v-model:value="searchParam.name" style="width: 235px; height: 40px; border-radius: 8px"
|
||||
<a-input v-model:value="searchParam.name" style="width: 235px; margin-bottom:20px;height: 40px; border-radius: 8px"
|
||||
placeholder="请输入工号/讲师姓名进行检索" allowClear showSearch v-on:keydown.enter="enterPressHadlerSearch">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item class="select">
|
||||
<a-input v-model:value="searchParam.courseName" style="width: 235px; height: 40px; border-radius: 8px"
|
||||
<a-input v-model:value="searchParam.courseName" style="width: 235px; margin-bottom:20px;height: 40px; border-radius: 8px"
|
||||
placeholder="请输入课程名称进行搜索" allowClear showSearch v-on:keydown.enter="enterPressHadlerSearch">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
@@ -33,12 +33,12 @@
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item class="select">
|
||||
<a-select style="width: 200px" v-model:value="searchParam.courseStatus" placeholder="开课状态"
|
||||
<a-select style="width: 200px;margin-bottom:20px" v-model:value="searchParam.courseStatus" placeholder="开课状态"
|
||||
:options="AuthenticationStatusList" a llowClear showSearch v-on:keydown.enter="enterPressHadlerSearch">
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-select style="width: 235px" placeholder="请选择讲师体系" v-model:value="searchParam.tSystemId"
|
||||
<a-select style="width: 235px;margin-bottom:20px" placeholder="请选择讲师体系" v-model:value="searchParam.tSystemId"
|
||||
:options="LecturerSystemList" allowClear showSearch @change="changetlevel"
|
||||
v-on:keydown.enter="enterPressHadlerSearch">
|
||||
</a-select>
|
||||
@@ -52,7 +52,7 @@
|
||||
></OrgClass>
|
||||
</a-form-item>
|
||||
<a-form-item class="select" v-if="moreid == 2">
|
||||
<a-tree-select style="width: 235px" :fieldNames="{
|
||||
<a-tree-select style="width: 235px;margin-bottom:20px" :fieldNames="{
|
||||
children: 'children',
|
||||
label: 'name',
|
||||
value: 'code',
|
||||
@@ -114,7 +114,7 @@
|
||||
<template #bodyCell="{ record, column }">
|
||||
<template v-if="column.key === 'teaching'">
|
||||
<a-space style="display:flex ;justify-content: space-around; ">
|
||||
<span>{{ (record?.teaching / 60).toFixed(2) +'小时'|| '-' }}</span>
|
||||
<span>{{ record?.teaching ?record?.teaching+'分钟': '-' }}</span>
|
||||
</a-space>
|
||||
</template>
|
||||
<template v-if="column.key === 'operation'">
|
||||
@@ -140,229 +140,325 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 弹窗组件 -->
|
||||
<a-drawer v-model:visible="teacherdialog" :closable="false" placement="right" :maskClosable="false"
|
||||
<a-drawer class="largeDrawerStyle" v-model:visible="teacherdialog" :closable="false" placement="right" :maskClosable="false"
|
||||
width="60%" :title="false">
|
||||
<div class="headers" style="margin-top:-24px;">
|
||||
<div class="headerTitle">{{ teacherdialogtitle }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="@/assets/images/basicinfo/close.png"
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<a-form :model="formParam" :rules="rules" layout="vertical" ref="formRef">
|
||||
<!-- 讲师姓名 teacher 组织 orgName-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师名称" name="name">
|
||||
<SearchTeacher @tlevel="tlevelChange" v-model:value="formParam.name" v-model:lable="formParam.orgNames"
|
||||
v-model:id="formParam.teacherId" 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>
|
||||
<!-- <template #content>
|
||||
{{ formParam.orgNames }}
|
||||
</template> -->
|
||||
<div style="padding:24px;">
|
||||
<div class="headers" style="margin-top:-24px;">
|
||||
<div class="headerTitle">{{ teacherdialogtitle }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="@/assets/images/basicinfo/close.png"
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<a-form :model="formParam" layout="vertical" ref="formRef">
|
||||
<!-- 讲师姓名 teacher 组织 orgName-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="name">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师名称
|
||||
</template>
|
||||
<SearchTeacher @tlevel="tlevelChange" v-model:value="formParam.name" v-model:lable="formParam.orgNames"
|
||||
v-model:id="formParam.teacherId" v-model:system="tSystemNames" v-model:level="formParam.tlevelId">
|
||||
</SearchTeacher>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="orgName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师组织
|
||||
</template>
|
||||
<a-popover>
|
||||
<!-- <template #content>
|
||||
{{ formParam.orgNames }}
|
||||
</template> -->
|
||||
|
||||
<a-input :title="formParam.orgNames" disabled v-model:value="formParam.orgName" class="draitem"
|
||||
placeholder="自动带出讲师的组织,展示主要部分,鼠标浮上去展示所有" allowClear showSearch>
|
||||
<a-input :title="formParam.orgNames" disabled v-model:value="formParam.orgName" class="draitem"
|
||||
placeholder="自动带出讲师的组织,展示主要部分,鼠标浮上去展示所有" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-popover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 讲师体系 tsystemName 级别 tlevelId -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="tsystemName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师体系
|
||||
</template>
|
||||
<a-input disabled v-model:value="tSystemNames.systemName" class="draitem" placeholder="自动带出讲师的体系" allowClear
|
||||
showSearch>
|
||||
</a-input>
|
||||
</a-popover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 讲师体系 tsystemName 级别 tlevelId -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师体系" name="tsystemName">
|
||||
<a-input disabled v-model:value="tSystemNames.systemName" class="draitem" placeholder="自动带出讲师的体系" allowClear
|
||||
showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师级别" name="tlevelName">
|
||||
<a-input disabled v-model:value="formParam.tlevelName" class="draitem" placeholder="自动带出讲师级别" allowClear
|
||||
showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 内容分类 courseTypeId 课程名称 name -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<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" @change="treetype">
|
||||
</a-tree-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="课程名称:" name="courseName">
|
||||
<a-input class="draitem" v-model:value="formParam.courseName" placeholder="请输入课程名称" allowClear showSearch
|
||||
:maxlength="20" showCount @blur="sendName">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 授课日期 teachingDate 开课状态 courseStatus -->
|
||||
<a-row :gutter="16">
|
||||
<!-- <a-col :span="12">
|
||||
<a-form-item label="课程归属组织" name="sourceBelongId">
|
||||
<OrgClass v-model:value="formParam.sourceBelongId" v-model:name="formParam.sourceBelongFullName"></OrgClass>
|
||||
</a-form-item>
|
||||
</a-col> -->
|
||||
<a-col :span="12">
|
||||
<a-form-item label="授课/课程日期 :" name="teachingDate">
|
||||
<a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" format="YYYY-MM-DD HH:mm"
|
||||
:show-time="{ format: 'HH:mm' }" type="datetime" placeholder="请选择课程日期" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="开课状态">
|
||||
<a-radio-group v-model:value="formParam.courseStatus" class="draitem">
|
||||
<a-radio :value="0">未开课</a-radio>
|
||||
<a-radio :value="1">已开课</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 授课时长 teaching 评分 score-->
|
||||
<a-row :gutter="16">
|
||||
|
||||
<a-col :span="12">
|
||||
<a-form-item label="授课时长" name="teaching">
|
||||
<a-input v-model:value="formParam.teaching" style="width:100%; height: 40px; border-radius: 8px ; "
|
||||
placeholder="请输入授课时长" allowClear showSearch suffix="分钟" :maxLength="8" @blur="clearNonNumber">
|
||||
</a-input>
|
||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching != null">{{ (formParam.teaching / 60
|
||||
).toFixed(2) }}小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teaching == null">0.00小时</span> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="评分" name="score">
|
||||
<!-- <a-input class="draitem" v-model:value="formParam.score" @blur="clearscoreNumber" placeholder="" allowClear showSearch>
|
||||
</a-input> -->
|
||||
<a-input-number v-model:value="formParam.score" :precision="2" :min="0" :max="100"
|
||||
style="width:100%; height: 40px; border-radius: 8px ; " placeholder="请输入评分" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 参训人数 studys-->
|
||||
<a-row :gutter="16">
|
||||
|
||||
<a-col :span="12">
|
||||
<a-form-item label="参训人数" name="studys">
|
||||
<a-input v-model:value="formParam.studys" class="draitem" placeholder="请输入参训人数" :maxLength="8"
|
||||
@blur="clearstudysNumber" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 备注 remark -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="备注">
|
||||
<a-textarea v-model:value="formParam.remark" showCount :maxlength="200" @blur="sendRemark"
|
||||
style="width: 100%; height: 100px; border-radius: 8px;margin-bottom:62px;" placeholder="请输入" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<div :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeacherDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="tlevelName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师级别
|
||||
</template>
|
||||
<a-input disabled v-model:value="formParam.tlevelName" class="draitem" placeholder="自动带出讲师级别" allowClear
|
||||
showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 内容分类 courseTypeId 课程名称 name -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="courseTypeId">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
内容分类
|
||||
</template>
|
||||
<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" @change="treetype">
|
||||
</a-tree-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="courseName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
课程名称:
|
||||
</template>
|
||||
<a-input class="draitem" v-model:value="formParam.courseName" placeholder="请输入课程名称" allowClear showSearch
|
||||
:maxlength="20" showCount @blur="sendName">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 授课日期 teachingDate 开课状态 courseStatus -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="trainOrgId">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
培训发生组织
|
||||
</template>
|
||||
<a-select v-model:value="formParam.trainOrgId" placeholder="请选择培训发生组织" allowClear
|
||||
:options="orgList" @change="changeOrg">
|
||||
</a-select>
|
||||
<!-- <OrgClass v-model:value="formParam.sourceBelongId" v-model:name="formParam.sourceBelongFullName"></OrgClass> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="teachingDate">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
授课/课程日期 :
|
||||
</template>
|
||||
<a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" format="YYYY-MM-DD HH:mm"
|
||||
:show-time="{ format: 'HH:mm' }" type="datetime" placeholder="请选择课程日期" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
</a-row>
|
||||
<!-- 授课时长 teaching 评分 score-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="开课状态">
|
||||
<a-radio-group v-model:value="formParam.courseStatus" class="draitem">
|
||||
<a-radio :value="'0'">未开课</a-radio>
|
||||
<a-radio :value="'1'">已开课</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="teaching">
|
||||
<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.teaching" style="width:100%; height: 40px; border-radius: 8px ; "
|
||||
placeholder="请输入授课时长" allowClear showSearch suffix="分钟" :maxLength="8" @blur="clearNonNumber">
|
||||
</a-input>
|
||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching != null">{{ (formParam.teaching / 60
|
||||
).toFixed(2) }}小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teaching == null">0.00小时</span> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
</a-row>
|
||||
<!-- 参训人数 studys-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="score">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
评分
|
||||
</template>
|
||||
<!-- <a-input class="draitem" v-model:value="formParam.score" @blur="clearscoreNumber" placeholder="" allowClear showSearch>
|
||||
</a-input> -->
|
||||
<a-input-number @blur="blurScore" @focus="focusScore" v-model:value="formParam.score" :precision="0" :min="1" :max="100"
|
||||
style="width:100%; height: 40px; border-radius: 8px ; " placeholder="请输入评分" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="studys">
|
||||
<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.studys" class="draitem" placeholder="请输入参训人数" :maxLength="8"
|
||||
@blur="clearstudysNumber" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 备注 remark -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="备注">
|
||||
<a-textarea v-model:value="formParam.remark" showCount :maxlength="200" @blur="sendRemark"
|
||||
style="width: 100%; height: 100px; border-radius: 8px;margin-bottom:62px;" placeholder="请输入" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<div :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeacherDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
<!--查看授课详情 -->
|
||||
<a-drawer v-model:visible="teachingdialog" :closable="false" placement="right" :maskClosable="false"
|
||||
<a-drawer class="largeDrawerStyle" v-model:visible="teachingdialog" :closable="false" placement="right" :maskClosable="false"
|
||||
width="60%" :title="false">
|
||||
<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>
|
||||
<span class="line"></span>
|
||||
<span style="font-weight:600;">讲师信息</span>
|
||||
<a-descriptions style="margin-top:15px;" bordered :column="2" :contentStyle="rowCenter" :labelStyle="{'width':'160px'}">
|
||||
<a-descriptions-item label="讲师名称">{{ formParam.teacherName ||'-'}}</a-descriptions-item>
|
||||
<a-descriptions-item label="讲师工号">{{ formParam.userNo||'-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="讲师组织" :span="2">{{ formParam.orgName||'-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="讲师体系">{{ formParam.tsystemName||'-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="讲师级别">{{ formParam.tlevelName||'-'
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="录入方式">
|
||||
{{ formParam.createFrom == 0 ? '系统生成' : formParam.createFrom == 1 ? '手动录入' : '-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="课程类型">{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : '-'
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="课程名称">{{ formParam.courseName||'-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="开课状态">{{ formParam.courseStatus == 0 ? '未开课' : formParam.courseStatus == 1
|
||||
? '已开课' : '-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="授课时长 ">
|
||||
<span> {{ formParam.teaching }} 分钟</span>
|
||||
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
|
||||
).toFixed(2) }}小时)</span> </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>
|
||||
<a-descriptions-item label="内容分类">{{ formParam.courseTypeName||'-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="备注 ">{{ formParam.remark||'-' }}</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
<div v-if="formParam.createFrom == '0'">
|
||||
<div style="margin-top:20px ;line-height: 24px;margin-bottom: 15px;">
|
||||
<span class="line"></span>
|
||||
<span style="font-weight:600;">讲师费发放情况</span>
|
||||
<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-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe;margin-bottom: 60px;" :columns="column"
|
||||
:data-source="tableDatas" :pagination="false">
|
||||
<template #bodyCell="{ record, column }">
|
||||
<template v-if="column.key === 'operation'">
|
||||
<a-space>
|
||||
<!-- <a-button type="link" @click="() => handleLooka(record, String(record.courseform))">查看</a-button> -->
|
||||
</a-space>
|
||||
<span class="line"></span>
|
||||
<span style="font-weight:600;">讲师信息</span>
|
||||
<a-descriptions style="margin-top:15px;" bordered :column="2" :contentStyle="{'maxWidth':'300px'}" :labelStyle="{'width':'160px'}">
|
||||
<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.tsystemName||'-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="讲师级别">{{ formParam.tlevelName||'-'
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="录入方式">
|
||||
{{ formParam.createFrom == 0 ? '系统生成' : formParam.createFrom == 1 ? '手动录入' : '-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="课程类型">{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : '-'
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="课程名称">{{ formParam.courseName||'-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="开课状态">{{ formParam.courseStatus == 0 ? '未开课' : formParam.courseStatus == 1
|
||||
? '已开课' : '-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="授课时长 ">
|
||||
<span> {{ formParam.teaching }} 分钟</span>
|
||||
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
|
||||
).toFixed(2) }}小时)</span> </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>
|
||||
<a-descriptions-item label="内容分类">{{ formParam.courseTypeName||'-' }}</a-descriptions-item>
|
||||
<a-descriptions-item label="备注 ">{{ formParam.remark||'-' }}</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
<div v-if="formParam.createFrom == '0'">
|
||||
<div style="margin-top:20px ;line-height: 24px;margin-bottom: 15px;">
|
||||
<span class="line"></span>
|
||||
<span style="font-weight:600;">讲师费发放情况</span>
|
||||
</div>
|
||||
<a-table :header-cell-style="{ 'text-align': 'center' }" style="border: 1px solid #f2f6fe;margin-bottom: 60px;" :columns="column"
|
||||
:data-source="tableDatas" :pagination="false">
|
||||
<template #bodyCell="{ record, column }">
|
||||
<template v-if="column.key === 'operation'">
|
||||
<a-space>
|
||||
<!-- <a-button type="link" @click="() => handleLooka(record, String(record.courseform))">查看</a-button> -->
|
||||
</a-space>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-table>
|
||||
</div>
|
||||
<!-- <div :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeachingDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="cancelTeachingDialog" :loading="buttonLoading">返回
|
||||
</a-button>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- <div :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeachingDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="cancelTeachingDialog" :loading="buttonLoading">返回
|
||||
</a-button>
|
||||
</div> -->
|
||||
</a-drawer>
|
||||
<!-- 删除功能弹窗 -->
|
||||
<div>
|
||||
@@ -418,6 +514,7 @@ import { fileUp } from "../../api/Lecturer";
|
||||
import SearchTeacher from "@/components/project/SearchTeacher";
|
||||
import { useStore } from "vuex";
|
||||
import OrgClass from "@/components/project/OrgClass";
|
||||
import { queryTrainOrgPor,} from "../../api/organization";
|
||||
export default {
|
||||
name: "InsideTeaching",
|
||||
components: {
|
||||
@@ -444,6 +541,7 @@ export default {
|
||||
state.searchParam = JSON.parse(search)
|
||||
}
|
||||
searchSubmit()
|
||||
orgListDatas()
|
||||
})
|
||||
const route = useRoute()
|
||||
const formRef = ref();
|
||||
@@ -479,16 +577,17 @@ export default {
|
||||
},
|
||||
score: undefined,
|
||||
formParam: {
|
||||
courseStatus: 1,
|
||||
courseStatus: '1',
|
||||
createFrom: 1,
|
||||
teaching: null,
|
||||
name: null,
|
||||
teacherName: null,
|
||||
teachingDate: null,
|
||||
// sourceBelongId: null,
|
||||
trainOrgId: null,
|
||||
sourceBelongFullName: null,
|
||||
score: 0,
|
||||
},
|
||||
orgList: [],
|
||||
startTime: null,
|
||||
searchParam:
|
||||
{
|
||||
@@ -656,18 +755,18 @@ export default {
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '所属组织 ',
|
||||
dataIndex: 'orgName',
|
||||
key: 'orgName',
|
||||
title: '培训发生组织 ',
|
||||
dataIndex: 'trainOrg',
|
||||
key: 'trainOrg',
|
||||
ellipsis: true, align: "center",
|
||||
width: 200,
|
||||
// customRender: (value, record) => {
|
||||
// return (
|
||||
// <div>
|
||||
// {value.record.orgName}
|
||||
// </div>
|
||||
// )
|
||||
// }
|
||||
customRender: (value, record) => {
|
||||
return (
|
||||
<div>
|
||||
{value.record.trainOrg||'-'}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '数据来源',
|
||||
@@ -758,7 +857,7 @@ export default {
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '授课时长(H) ',
|
||||
title: '授课时长(分钟) ',
|
||||
dataIndex: 'teaching',
|
||||
key: 'teaching',
|
||||
ellipsis: true, align: "center",
|
||||
@@ -790,8 +889,8 @@ export default {
|
||||
<div>
|
||||
{value.record.createdFee == 0 || value.record.createdFee == 1
|
||||
? {
|
||||
"0": "未提交",
|
||||
"1": "已提交",
|
||||
"0": "否",
|
||||
"1": "是",
|
||||
}[value.record.createdFee + ""] || ""
|
||||
: "-"}
|
||||
</div>
|
||||
@@ -812,6 +911,25 @@ export default {
|
||||
const tableData = ref([
|
||||
|
||||
])
|
||||
const orgListDatas = () => {
|
||||
const obj = {
|
||||
pageNo:1,
|
||||
pageSize:50
|
||||
}
|
||||
queryTrainOrgPor(obj).then((res) => {
|
||||
console.log(res,'rssssss')
|
||||
state.orgList = res.data.data?.map(item=>{
|
||||
return{
|
||||
label: item.affiliationName,
|
||||
value: item.id
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
const changeOrg = (e,l) => {
|
||||
console.log(e,'eeeee',l)
|
||||
state.formParam.trainOrgName = l?.label
|
||||
}
|
||||
const rules = {
|
||||
name: [{ required: true, message: '', log: '讲师不能为空' }],
|
||||
orgName: [{ required: true, message: '', log: '讲师组织不能为空' }],
|
||||
@@ -819,7 +937,7 @@ export default {
|
||||
tsystemName: [{ required: true, message: '', log: '讲师体系不能为空' }],
|
||||
courseTypeId: [{ required: true, message: '', log: '内容分类不能为空' }],
|
||||
courseName: [{ required: true, message: '', log: '课程名称不能为空' }],
|
||||
// sourceBelongId: [{ required: true, message: '', log: '课程归属组织不能为空' }],
|
||||
trainOrgId: [{ required: true, message: '', log: '培训发生组织不能为空' }],
|
||||
teachingDate: [{ required: true, message: '', log: '授课日期不能为空' }],
|
||||
teaching: [{ required: true, message: '', log: '授课时长不能为空' }],
|
||||
courseStatus: [{ required: true, message: '', log: '开课状态不能为空' }],
|
||||
@@ -973,10 +1091,12 @@ export default {
|
||||
if(state.formParam.studys==0){
|
||||
state.formParam.studys = null
|
||||
}
|
||||
state.formParam.courseStatus = String(state.formParam.courseStatus)
|
||||
const formItemNames = Object.keys(rules);
|
||||
for (let i = 0; i < formItemNames.length; i++) {
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
// const result = await validateField(formItemNames[i]);
|
||||
const result = state.formParam[formItemNames[i]]
|
||||
if (!result) {
|
||||
return message.error(rules[formItemNames[i]][0].log)
|
||||
}
|
||||
}
|
||||
@@ -1042,7 +1162,7 @@ export default {
|
||||
const cancel = () => {
|
||||
state.formParam = {
|
||||
recordType: 1,
|
||||
courseStatus: 1,
|
||||
courseStatus: '1',
|
||||
teacher: null,
|
||||
orgName: null,
|
||||
tsystemName: null,
|
||||
@@ -1050,10 +1170,10 @@ export default {
|
||||
courseName: null,
|
||||
teaching: null,
|
||||
studys: null,
|
||||
score: 0,
|
||||
score: null,
|
||||
type: null,
|
||||
remark: null,
|
||||
// sourceBelongId: null,
|
||||
trainOrgId: null,
|
||||
sourceBelongFullName: null,
|
||||
offcourseId: null,
|
||||
createFrom: null,
|
||||
@@ -1135,6 +1255,7 @@ export default {
|
||||
state.teachingDate = dayjs(res.data.data.teachingDate, 'YYYY-MM-DD HH:mm'),
|
||||
state.formParam.orgNames = state.formParam.orgName
|
||||
state.formParam.teachingDate = res.data.data.teachingDate ? dayjs(res.data.data.teachingDate).format("YYYY-MM-DD HH:mm").toString() : "-"
|
||||
state.formParam.courseStatus = String(state.formParam.courseStatus)
|
||||
console.log(state.formParam);
|
||||
})
|
||||
.catch((err) => {
|
||||
@@ -1276,6 +1397,12 @@ export default {
|
||||
const clearscoreNumber = () => {
|
||||
state.formParam.score = state.formParam.score.replace(/\D/g, '');
|
||||
}
|
||||
const blurScore = () => {
|
||||
// !state.formParam.score && (state.formParam.score = '0')
|
||||
}
|
||||
const focusScore = () => {
|
||||
// state.formParam.score == 0 && (state.formParam.score = null)
|
||||
}
|
||||
const clearstudysNumber = () => {
|
||||
state.formParam.studys = state.formParam.studys.replace(/\D/g, '');
|
||||
}
|
||||
@@ -1305,8 +1432,12 @@ export default {
|
||||
clearNonNumber,
|
||||
clearscoreNumber,
|
||||
clearstudysNumber,
|
||||
blurScore,
|
||||
focusScore,
|
||||
beforeUpload2,
|
||||
rules,
|
||||
orgListDatas,
|
||||
changeOrg,
|
||||
formRef,
|
||||
column,
|
||||
tableDatas,
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<a-drawer :visible="visible" placement="right" :closable="false" :maskClosable="false"
|
||||
<a-drawer class="largeDrawerStyle" :visible="visible" placement="right" :closable="false" :maskClosable="false"
|
||||
width="60%" :title="false">
|
||||
<div class="appedit">
|
||||
<div class="header" style="margin-top: -24px;">
|
||||
<div class="headerTitle">编辑讲师费审批</div>
|
||||
<div class="headerTitle">汇总讲师费</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@@ -28,7 +28,7 @@
|
||||
</div>
|
||||
<div class="title">
|
||||
<div class="line"></div>
|
||||
<div class="text">基本信息</div>
|
||||
<div class="text">讲师费列表</div>
|
||||
</div>
|
||||
<div class="desc">
|
||||
<div class="input_box">
|
||||
@@ -74,8 +74,9 @@
|
||||
<button class="btn2" @click="paramsDrawer">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
<a-drawer v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false" dropdown-style="drawaer"
|
||||
<a-drawer class="largeDrawerStyle" 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;">
|
||||
<div class="headerTitle">编辑讲师费</div>
|
||||
<img
|
||||
@@ -84,18 +85,34 @@
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<a-form :model="formParam" :rules="rules" layout="vertical" ref="formRef" >
|
||||
<a-form :model="formParam" layout="vertical" ref="formRef" >
|
||||
<!-- 讲师姓名 name 讲师工号 userNo-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师名称" name="name">
|
||||
<a-form-item name="name">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师名称
|
||||
</template>
|
||||
<SearchTeacher :disabled="true" @tlevel="tlevelChange" v-model:id="formParam.teacherId" v-model:value="formParam.name" v-model:orgId="formParam.orgId" v-model:lable="formParam.orgNames" v-model:user="formParam.userNo"
|
||||
v-model:system="tSystemNames" v-model:payrollPlaceCode="formParam.payrollPlaceId"
|
||||
v-model:payrollPlaceName="formParam.payrollPlace" ></SearchTeacher>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师工号" name="userNo">
|
||||
<a-form-item name="userNo">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师工号
|
||||
</template>
|
||||
<a-input class="draitem" v-model:value="formParam.userNo" disabled
|
||||
placeholder="请输入讲师工号" allowClear showSearch>
|
||||
</a-input>
|
||||
@@ -105,7 +122,15 @@
|
||||
<!-- 讲师组织 departId 讲师体系 systemId -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师组织" name="orgName">
|
||||
<a-form-item name="orgName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师组织
|
||||
</template>
|
||||
<!-- <a-popover>
|
||||
<template #content>
|
||||
{{ formParam.orgNames }}
|
||||
@@ -118,7 +143,15 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师体系" name="tsystemName">
|
||||
<a-form-item name="tsystemName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师体系
|
||||
</template>
|
||||
<!-- <a-select class="draitem" v-model:value="formParam.tsystemName" placeholder="请选择讲师体系" allowClear
|
||||
@change="changetlevel" .:options="LecturerSystemList">
|
||||
</a-select> -->
|
||||
@@ -131,14 +164,30 @@
|
||||
<!-- 讲师级别 levelId 讲师发薪地 payrollPlaceName-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师级别" name="tlevelName">
|
||||
<a-form-item name="tlevelName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师级别
|
||||
</template>
|
||||
<a-input disabled v-model:value="formParam.tlevelName" class="draitem"
|
||||
placeholder="自动带出讲师级别" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师发薪地" name="payrollPlace">
|
||||
<a-form-item name="payrollPlace">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师发薪地
|
||||
</template>
|
||||
<a-input disabled v-model:value="formParam.payrollPlace" class="draitem"
|
||||
placeholder="自动带出讲师发薪地" allowClear showSearch >
|
||||
</a-input>
|
||||
@@ -148,14 +197,30 @@
|
||||
<!-- 费用类型 课程名称 courseName-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="费用类型" name="courseType">
|
||||
<a-form-item name="courseType">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
费用类型
|
||||
</template>
|
||||
<a-select class="draitem" v-model:value="formParam.courseType" placeholder="请选择费用类型"
|
||||
:options="courseTypeList">
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="课程名称" name="courseName">
|
||||
<a-form-item name="courseName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
课程名称
|
||||
</template>
|
||||
<!-- <a-radio-group v-model:value="formParam.courseName">
|
||||
<a-radio :value="0">面授课</a-radio>
|
||||
<a-radio :value="1">在线课</a-radio>
|
||||
@@ -171,7 +236,15 @@
|
||||
<!-- 授课日期 teachingDate 授课时长 teachingTime -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="培训发生组织" name="trainOrgId">
|
||||
<a-form-item name="trainOrgId">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
培训发生组织
|
||||
</template>
|
||||
<!-- <OrgClass
|
||||
v-model:value="formParam.sourceBelongId"
|
||||
v-model:name="formParam.sourceBelongFullName"
|
||||
@@ -182,7 +255,15 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="授课/课程日期 :" name="teachingDate">
|
||||
<a-form-item name="teachingDate">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
授课/课程日期 :
|
||||
</template>
|
||||
<a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" :show-time="{ format: 'HH:mm' }" format="YYYY-MM-DD HH:mm" valueFormat="YYYY-MM-DD HH:mm"
|
||||
placeholder="请选择课程日期" />
|
||||
</a-form-item>
|
||||
@@ -191,17 +272,33 @@
|
||||
<!-- 参训人数 studys 评分 score -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="授课时长" name="teachingTime">
|
||||
<a-input v-model:value="formParam.teachingTime" style="width:80%; height: 40px; border-radius: 8px; "
|
||||
<a-form-item name="teachingTime">
|
||||
<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.teachingTime" style="width:100%; height: 40px; border-radius: 8px; "
|
||||
@change="clearNonNumber" placeholder="请输入授课分钟数" allowClear showSearch suffix="分钟">
|
||||
</a-input>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teachingTime != null">{{
|
||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.teachingTime != null">{{
|
||||
(formParam.teachingTime / 60).toFixed(2) }}小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teachingTime == null">0.00小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teachingTime == null">0.00小时</span> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="参训人数" name="studys">
|
||||
<a-form-item name="studys">
|
||||
<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.studys" class="draitem" @change="clearstudysNumber"
|
||||
placeholder="请输入参训人数" allowClear showSearch >
|
||||
</a-input>
|
||||
@@ -211,14 +308,30 @@
|
||||
<!-- 课酬基准 计划费用 expense-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="评分" name="score">
|
||||
<a-input-number class="draitem" v-model:value="formParam.score" :defaultValue="null" :max="10" :controls="false" :min="0" :precision="2" placeholder="请输入评分"
|
||||
<a-form-item name="score">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
评分
|
||||
</template>
|
||||
<a-input-number class="draitem" v-model:value="formParam.score" :defaultValue="null" :max="100" :controls="false" :min="1" :precision="0" placeholder="请输入评分"
|
||||
allowClear >
|
||||
</a-input-number>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="课酬基准" name="levelPay">
|
||||
<a-form-item name="levelPay">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
课酬基准
|
||||
</template>
|
||||
<a-input-number v-model:value="formParam.levelPay" placeholder="自动键入系统基准(可手动更改)" :max="99999999" :controls="false" :min="0" :precision="2"
|
||||
@change="clearlevelPayNumber"
|
||||
allowClear showSearch class="draitem">
|
||||
@@ -229,19 +342,27 @@
|
||||
<!-- 应发费用 -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="计划费用" name="expense">
|
||||
<a-form-item name="expense">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
计划费用
|
||||
</template>
|
||||
<a-input class="draitem" v-model:value="formParam.expense" placeholder="自动计算( 授课时长(或课程时长)*课酬基准 )" allowClear disabled
|
||||
showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<!-- <a-col :span="12">
|
||||
<a-form-item label="应发费用" name="payableExpense">
|
||||
<a-input-number :max="99999999" :controls="false" :min="0" :precision="2" v-model:value="formParam.payableExpense" class="draitem"
|
||||
placeholder="请输入应发费用" @change="clearPayableExpense" allowClear>
|
||||
</a-input-number>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-col> -->
|
||||
</a-row>
|
||||
<!-- 备注 remark -->
|
||||
<a-row :gutter="16">
|
||||
@@ -268,6 +389,7 @@
|
||||
<a-button class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
<a-modal
|
||||
:visible="modalVisible"
|
||||
@@ -496,11 +618,8 @@ export default {
|
||||
state.formParam.teachingTime&&state.formParam.levelPay && (state.formParam.payableExpense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2))
|
||||
}
|
||||
const courseTypeList = ref([
|
||||
{ value: '0', label: "在线" },
|
||||
{ value: '1', label: "面授 " },
|
||||
{ value: '2', label: "授课 " },
|
||||
{ value: '3', label: "课程开发" },
|
||||
{ value: '4', label: "作业员如模培训" },
|
||||
{ value: '2', label: "课程开发" },
|
||||
{ value: '3', label: "作业员入模培训" },
|
||||
])
|
||||
const formRef = ref();
|
||||
const tlevelChange = (e) => {
|
||||
@@ -566,8 +685,9 @@ export default {
|
||||
}
|
||||
const formItemNames = Object.keys(rules);
|
||||
for(let i=0;i<formItemNames.length;i++){
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
// const result = await validateField(formItemNames[i]);
|
||||
const result = state.formParam[formItemNames[i]]
|
||||
if (!result) {
|
||||
return message.error(rules[formItemNames[i]][0].log)
|
||||
}
|
||||
}
|
||||
@@ -632,7 +752,7 @@ export default {
|
||||
score: [{ required: true, message:'',log: ' 评分不能为空' }],
|
||||
levelPay: [{ required: true, message:'',log: '课酬基准 不能为空' }],
|
||||
expense: [{ required: true, message: '',log:'计划费用不能为空' }],
|
||||
payableExpense: [{ required: true, message: '',log:'应发费用不能为空' }],
|
||||
// payableExpense: [{ required: true, message: '',log:'应发费用不能为空' }],
|
||||
}
|
||||
const closeDrawer = () => {
|
||||
state.params.userNoName = null
|
||||
@@ -655,6 +775,7 @@ export default {
|
||||
}).then(res=>{
|
||||
if(res.data.code == 200){
|
||||
message.success('提交成功')
|
||||
emits.emit('successParams',true)
|
||||
closeDrawer();
|
||||
}
|
||||
}).catch(err=>{
|
||||
@@ -858,14 +979,14 @@ export default {
|
||||
align: "center",
|
||||
width: 160,
|
||||
},
|
||||
{
|
||||
title: '应发费用 ',
|
||||
dataIndex: 'payableExpense',
|
||||
key: 'payableExpense',
|
||||
ellipsis: true,
|
||||
align: "center",
|
||||
width: 160,
|
||||
},
|
||||
// {
|
||||
// title: '应发费用 ',
|
||||
// dataIndex: 'payableExpense',
|
||||
// key: 'payableExpense',
|
||||
// ellipsis: true,
|
||||
// align: "center",
|
||||
// width: 160,
|
||||
// },
|
||||
{
|
||||
title: '操作 ',
|
||||
dataIndex: 'operation',
|
||||
@@ -1075,7 +1196,7 @@ export default {
|
||||
overflow-x: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
padding:24px;
|
||||
.header {
|
||||
padding: 0px 15px;
|
||||
height: 68px;
|
||||
|
||||
@@ -90,11 +90,11 @@
|
||||
<template #bodyCell="{ record, column }">
|
||||
<template v-if="column.key === 'operation'">
|
||||
<a-space >
|
||||
<a-button type="link" v-if="record.status != 2&&record.status!=3" @click="goDdit(record)">编辑</a-button>
|
||||
<a-button type="link" @click="() => handleLook(record, String(record.courseform))">查看</a-button>
|
||||
<a-button type="link" v-if="record.status != 2&&record.status!=3" @click="goDdit(record)">提交</a-button>
|
||||
<a-button type="link" v-if="record.status != 1&&record.status!=5" @click="() => handleLook(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 v-if="record.status == 1||record.status == 4||record.status == 5" 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-space>
|
||||
</template>
|
||||
@@ -120,10 +120,11 @@
|
||||
</div>
|
||||
<!-- 弹窗组件 -->
|
||||
<!--查看讲师费详情 -->
|
||||
<a-drawer :closable="false" v-model:visible="teachingdialog" placement="right"
|
||||
<a-drawer class="largeDrawerStyle" :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;">
|
||||
<div class="headerTitle">查看讲师费用</div>
|
||||
<div class="headerTitle">汇总讲师费详情</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@@ -131,7 +132,7 @@
|
||||
/>
|
||||
</div>
|
||||
<span class="line"></span>
|
||||
<span style="font-weight:600;">讲师费用详情</span>
|
||||
<span style="font-weight:600;">基本信息</span>
|
||||
<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?.trainOrgName||'-'}}</a-descriptions-item>
|
||||
@@ -141,7 +142,7 @@
|
||||
<a-descriptions-item label="状态">{{{0:'待确认' ,1:'待提交' ,2:'审核中', 3:'已完成', 4:'审核拒绝',5:'待提交'}[formParam?.status]}}</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
<!-- <span>审批详情</span> -->
|
||||
<span class="line" style="margin-top:15px;"></span>
|
||||
<!-- <span class="line" style="margin-top:15px;"></span> -->
|
||||
<a-tabs v-model:activeKey="activeKey" @change="tabsChange">
|
||||
<a-tab-pane key="1" tab="讲师费列表">
|
||||
<div style="padding: 10px 0;">
|
||||
@@ -172,7 +173,7 @@
|
||||
</div>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
<div :style="{
|
||||
<div v-if="formParam?.status==1||formParam?.status==5" :style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
@@ -184,10 +185,11 @@
|
||||
zIndex: 1,
|
||||
}">
|
||||
<a-button class="drabtn" @click="cancelTeachingDialog">取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="cancelTeachingDialog" :loading="buttonLoading">确定
|
||||
<a-button class="drabtn" type="primary" @click="cancelTeachingDialog(1)" :loading="buttonLoading">提交
|
||||
</a-button>
|
||||
<!-- <a-button class="drabtn" @click="cancelTeachingDialog" type="primary" danger>拒绝</a-button> -->
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
<!-- 修改状态功能弹窗 -->
|
||||
<div>
|
||||
@@ -225,7 +227,7 @@
|
||||
</a-modal>
|
||||
</div>
|
||||
<!-- <div> <Upload/> </div> -->
|
||||
<LecturerAppEdit v-model:visible="editTeacherDialog" :id="editId" ></LecturerAppEdit>
|
||||
<LecturerAppEdit @successParams="successParams" v-model:visible="editTeacherDialog" :id="editId" ></LecturerAppEdit>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="jsx">
|
||||
@@ -481,7 +483,7 @@
|
||||
ellipsis: true,
|
||||
align: "center",
|
||||
width: 120,
|
||||
customCell: (record) => {return{style:{color:['#67C23A','#F56C6C'][record.status]}}},
|
||||
// customCell: (record) => {return{style:{color:['#67C23A','#F56C6C'][record.status]}}},
|
||||
customRender: (value) => {
|
||||
switch (value.record.status) {
|
||||
case 0:
|
||||
@@ -598,9 +600,14 @@
|
||||
})
|
||||
}
|
||||
//取消按钮 清空输入的数据
|
||||
const cancelTeachingDialog = () => {
|
||||
const cancelTeachingDialog = (val) => {
|
||||
if(state.teachingdialog = true )
|
||||
{
|
||||
console.log(val,'valllllll')
|
||||
if(val == 1){
|
||||
submit(state.formParam)
|
||||
return
|
||||
}
|
||||
state.teachingdialog = false
|
||||
cancel()
|
||||
}
|
||||
@@ -705,15 +712,21 @@
|
||||
if(res.data.code == 200){
|
||||
message.success('提交成功')
|
||||
getTableDate();
|
||||
|
||||
cancel()
|
||||
state.teachingdialog = false
|
||||
}
|
||||
}).catch(err=>{
|
||||
message.destroy()
|
||||
cancel()
|
||||
state.teachingdialog = false
|
||||
message.error(err.data.msg)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
const successParams = () => {
|
||||
getTableDate();
|
||||
}
|
||||
const withdraw = (record) => {
|
||||
console.log(record,'record')
|
||||
dialog({
|
||||
@@ -1057,6 +1070,7 @@
|
||||
getListData,
|
||||
tabsChange,
|
||||
withdraw,
|
||||
successParams,
|
||||
goDdit,
|
||||
cancel,
|
||||
handleOperate,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div >
|
||||
<!-- 搜索框及按钮 -->
|
||||
<div class="filter" >
|
||||
<a-form layout="inline" style="min-width: 1380px;">
|
||||
<a-form layout="inline" style="min-width: 1056px;">
|
||||
<a-form-item class="select">
|
||||
<!-- v-model:value="searchParam.name" -->
|
||||
<!-- <a-input v-model:value="searchParam.name" style="width: 276px; height: 40px; border-radius: 8px"
|
||||
@@ -156,8 +156,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 弹窗组件 -->
|
||||
<a-drawer v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false" dropdown-style="drawaer"
|
||||
<a-drawer class="largeDrawerStyle" 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;">
|
||||
<div class="headerTitle">{{ teacherdialogtitle }}</div>
|
||||
<img
|
||||
@@ -166,18 +167,34 @@
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<a-form :model="formParam" :rules="rules" layout="vertical" ref="formRef" >
|
||||
<a-form :model="formParam" layout="vertical" ref="formRef" >
|
||||
<!-- 讲师姓名 name 讲师工号 userNo-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师名称" name="name">
|
||||
<a-form-item name="name">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师名称
|
||||
</template>
|
||||
<SearchTeacher :disabled="!!id" @tlevel="tlevelChange" v-model:id="formParam.teacherId" v-model:value="formParam.name" v-model:orgId="formParam.orgId" v-model:lable="formParam.orgNames" v-model:user="formParam.userNo"
|
||||
v-model:system="tSystemNames" v-model:payrollPlaceCode="formParam.payrollPlaceId"
|
||||
v-model:payrollPlaceName="formParam.payrollPlace" ></SearchTeacher>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师工号" name="userNo">
|
||||
<a-form-item name="userNo">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师工号
|
||||
</template>
|
||||
<a-input class="draitem" v-model:value="formParam.userNo" disabled
|
||||
placeholder="请输入讲师工号" allowClear showSearch>
|
||||
</a-input>
|
||||
@@ -187,7 +204,15 @@
|
||||
<!-- 讲师组织 departId 讲师体系 systemId -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师组织" name="orgName">
|
||||
<a-form-item name="orgName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师组织
|
||||
</template>
|
||||
<!-- <a-popover>
|
||||
<template #content>
|
||||
{{ formParam.orgNames }}
|
||||
@@ -200,7 +225,15 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师体系" name="tsystemName">
|
||||
<a-form-item name="tsystemName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师体系
|
||||
</template>
|
||||
<!-- <a-select class="draitem" v-model:value="formParam.tsystemName" placeholder="请选择讲师体系" allowClear
|
||||
@change="changetlevel" .:options="LecturerSystemList">
|
||||
</a-select> -->
|
||||
@@ -213,14 +246,30 @@
|
||||
<!-- 讲师级别 levelId 讲师发薪地 payrollPlaceName-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师级别" name="tlevelName">
|
||||
<a-form-item name="tlevelName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师级别
|
||||
</template>
|
||||
<a-input disabled v-model:value="formParam.tlevelName" class="draitem"
|
||||
placeholder="自动带出讲师级别" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师发薪地" name="payrollPlace">
|
||||
<a-form-item name="payrollPlace">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
讲师发薪地
|
||||
</template>
|
||||
<a-input disabled v-model:value="formParam.payrollPlace" class="draitem"
|
||||
placeholder="自动带出讲师发薪地" allowClear showSearch >
|
||||
</a-input>
|
||||
@@ -230,14 +279,30 @@
|
||||
<!-- 费用类型 课程名称 courseName-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="费用类型" name="courseType">
|
||||
<a-form-item name="courseType">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
费用类型
|
||||
</template>
|
||||
<a-select class="draitem" v-model:value="formParam.courseType" placeholder="请选择费用类型"
|
||||
:options="courseTypeList">
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="课程名称" name="courseName">
|
||||
<a-form-item name="courseName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
课程名称
|
||||
</template>
|
||||
<!-- <a-radio-group v-model:value="formParam.courseName">
|
||||
<a-radio :value="0">面授课</a-radio>
|
||||
<a-radio :value="1">在线课</a-radio>
|
||||
@@ -253,7 +318,15 @@
|
||||
<!-- 授课日期 teachingDate 授课时长 teachingTime -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="培训发生组织" name="trainOrgId">
|
||||
<a-form-item name="trainOrgId">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
培训发生组织
|
||||
</template>
|
||||
<!-- <OrgClass
|
||||
v-model:value="formParam.sourceBelongId"
|
||||
v-model:name="formParam.sourceBelongFullName"
|
||||
@@ -264,7 +337,15 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="授课/课程日期 :" name="teachingDate">
|
||||
<a-form-item name="teachingDate">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
授课/课程日期 :
|
||||
</template>
|
||||
<a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" :show-time="{ format: 'HH:mm' }" format="YYYY-MM-DD HH:mm" valueFormat="YYYY-MM-DD HH:mm"
|
||||
placeholder="请选择课程日期" @select="handleSelect" />
|
||||
</a-form-item>
|
||||
@@ -273,17 +354,33 @@
|
||||
<!-- 参训人数 studys 评分 score -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="授课时长" name="teachingTime">
|
||||
<a-input v-model:value="formParam.teachingTime" style="width:80%; height: 40px; border-radius: 8px; "
|
||||
<a-form-item name="teachingTime">
|
||||
<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.teachingTime" style="width:100%; height: 40px; border-radius: 8px; "
|
||||
@change="clearNonNumber" placeholder="请输入授课分钟数" allowClear showSearch suffix="分钟">
|
||||
</a-input>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teachingTime != null">{{
|
||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.teachingTime != null">{{
|
||||
(formParam.teachingTime / 60).toFixed(2) }}小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teachingTime == null">0.00小时</span>
|
||||
<span style="margin-left: 5px ;" v-if="formParam.teachingTime == null">0.00小时</span> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="参训人数" name="studys">
|
||||
<a-form-item name="studys">
|
||||
<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.studys" class="draitem" @change="clearstudysNumber"
|
||||
placeholder="请输入参训人数" allowClear showSearch >
|
||||
</a-input>
|
||||
@@ -293,14 +390,30 @@
|
||||
<!-- 课酬基准 计划费用 expense-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="评分" name="score">
|
||||
<a-input-number class="draitem" v-model:value="formParam.score" :defaultValue="null" :max="10" :controls="false" :min="0" :precision="2" placeholder="请输入评分"
|
||||
<a-form-item name="score">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
评分
|
||||
</template>
|
||||
<a-input-number class="draitem" v-model:value="formParam.score" :defaultValue="null" :max="100" :controls="false" :min="1" :precision="0" placeholder="请输入评分"
|
||||
allowClear @change="scoreNumber">
|
||||
</a-input-number>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="课酬基准" name="levelPay">
|
||||
<a-form-item name="levelPay">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
课酬基准
|
||||
</template>
|
||||
<a-input-number v-model:value="formParam.levelPay" placeholder="自动键入系统基准(可手动更改)" :max="99999999" :controls="false" :min="0" :precision="2"
|
||||
@change="clearlevelPayNumber"
|
||||
allowClear showSearch class="draitem">
|
||||
@@ -311,19 +424,27 @@
|
||||
<!-- 应发费用 -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="计划费用" name="expense">
|
||||
<a-form-item name="expense">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
计划费用
|
||||
</template>
|
||||
<a-input class="draitem" v-model:value="formParam.expense" placeholder="自动计算( 授课时长(或课程时长)*课酬基准 )" allowClear disabled
|
||||
showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<!-- <a-col :span="12">
|
||||
<a-form-item label="应发费用" name="payableExpense">
|
||||
<a-input-number :max="99999999" :controls="false" :min="0" :precision="2" v-model:value="formParam.payableExpense" class="draitem"
|
||||
placeholder="请输入应发费用" @change="clearPayableExpense" allowClear>
|
||||
</a-input-number>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-col> -->
|
||||
</a-row>
|
||||
<!-- 备注 remark -->
|
||||
<a-row :gutter="16">
|
||||
@@ -350,6 +471,7 @@
|
||||
<a-button class="drabtn" type="primary" @click="createTeacherDialog" :loading="buttonLoading">保存
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
<!-- 修改状态功能弹窗 -->
|
||||
<div>
|
||||
@@ -379,8 +501,9 @@
|
||||
</a-modal>
|
||||
</div>
|
||||
<!-- <div> <Upload/> </div> -->
|
||||
<a-drawer v-model:visible="teachingdialog" placement="right"
|
||||
<a-drawer class="largeDrawerStyle" v-model:visible="teachingdialog" placement="right"
|
||||
:closable="false" width="60%" :title="false">
|
||||
<div style="padding:24px;">
|
||||
<div class="headers" style="margin-top:-24px;">
|
||||
<div class="headerTitle">查看讲师费用</div>
|
||||
<img
|
||||
@@ -408,7 +531,7 @@
|
||||
<a-descriptions-item label="评分 ">{{formParam.score || '-'}}</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.payableExpense || '-'}}</a-descriptions-item>
|
||||
<!-- <a-descriptions-item label="应发费用 ">{{formParam.payableExpense || '-'}}</a-descriptions-item> -->
|
||||
<!-- <a-descriptions-item label="费用发放时间">{{formParam.payableExpenseTime || '-'}}</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>
|
||||
@@ -436,6 +559,7 @@
|
||||
<a-button class="drabtn" @click="cancelTeachingDialog(false)" :loading="buttonLoading">取消
|
||||
</a-button>
|
||||
</div> -->
|
||||
</div>
|
||||
</a-drawer>
|
||||
<ImportWork v-model:showWork="showWork" :template="'讲师费导入模板'" :url="'/admin/export/importTeacherExpense'" :fileName="uploadFile" :title="title"></ImportWork>
|
||||
</div>
|
||||
@@ -584,7 +708,7 @@
|
||||
// { value: '2', label: "授课 " },
|
||||
{ value: '2', label: "课程开发" },
|
||||
{ value: '3', label: "作业员入模培训" },
|
||||
{ value: '4', label: "其他" },
|
||||
// { value: '4', label: "其他" },
|
||||
])
|
||||
//课程类型
|
||||
const OnTheJobStatusList = ref([
|
||||
@@ -1075,8 +1199,9 @@ getAllLevelList().then((res) => {
|
||||
}
|
||||
const formItemNames = Object.keys(rules);
|
||||
for(let i=0;i<formItemNames.length;i++){
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
// const result = await validateField(formItemNames[i]);
|
||||
const result = state.formParam[formItemNames[i]]
|
||||
if (!result) {
|
||||
return message.error(rules[formItemNames[i]][0].log)
|
||||
}
|
||||
}
|
||||
@@ -1333,7 +1458,7 @@ getAllLevelList().then((res) => {
|
||||
const clearscoreNumber= () => {
|
||||
state.formParam.score = state.formParam.score?.replace(/\D/g, '');
|
||||
state.formParam.score == 0 && (state.formParam.score = null);
|
||||
state.formParam.score > 10 && (state.formParam.score = '10');
|
||||
// state.formParam.score > 10 && (state.formParam.score = '10');
|
||||
}
|
||||
const payExpense = () => {
|
||||
state.formParam.payableExpense = state.formParam.payableExpense?.replace(/\D/g, '');
|
||||
@@ -1375,7 +1500,7 @@ getAllLevelList().then((res) => {
|
||||
score: [{ required: true, message:'',log: ' 评分不能为空' }],
|
||||
levelPay: [{ required: true, message:'',log: '课酬基准不能为空' }],
|
||||
expense: [{ required: true, message: '',log:'计划费用不能为空' }],
|
||||
payableExpense: [{ required: true, message: '',log:'应发费用不能为空' }],
|
||||
// payableExpense: [{ required: true, message: '',log:'应发费用不能为空' }],
|
||||
}
|
||||
|
||||
const handleImport = () => {
|
||||
|
||||
@@ -99,8 +99,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 抽屉 -->
|
||||
<a-drawer v-model:visible="opendrawer" placement="right"
|
||||
<a-drawer class="largeDrawerStyle" v-model:visible="opendrawer" placement="right"
|
||||
@closa="cancelTeachingDialog" :maskClosable="true" width="60%" title="查看详情">
|
||||
<div style="padding:24px;">
|
||||
<a-form layout="inline">
|
||||
<a-form-item class="select">
|
||||
<a-input v-model:value="drawer.name" style="width: 260px; height: 40px; border-radius: 8px"
|
||||
@@ -137,6 +138,7 @@
|
||||
<a-button class="drabtn" type="primary" @click="cancelTeachingDialog" :loading="buttonLoading">返回
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -88,140 +88,204 @@
|
||||
</a-modal>
|
||||
</div>
|
||||
<!-- 抽屉 -->
|
||||
<a-drawer v-model:visible="teacherdialog" :closable="false" :title="false" placement="right" width="60%" :maskClosable="false" >
|
||||
<div class="headers" style="margin-top: -24px">
|
||||
<div class="headerTitle">{{ teacherdialogtitle }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="@/assets/images/basicinfo/close.png"
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<a-form :model="formParam" :rules="rules" layout="vertical" ref="formRef">
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<!-- <span class="line"></span><span>讲师体系基本信息</span> -->
|
||||
<a-drawer class="largeDrawerStyle" 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>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="@/assets/images/basicinfo/close.png"
|
||||
@click="cancelTeacherDialog"
|
||||
/>
|
||||
</div>
|
||||
<a-form :model="formParam" layout="vertical" ref="formRef">
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<!-- <span class="line"></span><span>讲师体系基本信息</span> -->
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="affiliationCode">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
培训发生组织编号:
|
||||
</template>
|
||||
<a-input disabled v-model:value="formParam.affiliationCode" class="draitem"
|
||||
placeholder="请输入讲师体系编号" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="affiliationName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
培训发生组织名称:
|
||||
</template>
|
||||
<a-input :maxlength="30" show-count v-model:value="formParam.affiliationName" class="draitem"
|
||||
placeholder="请输入培训发生组织名称" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="code">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
是否为根节点:
|
||||
</template>
|
||||
<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 :value="1">否</a-radio>
|
||||
<a-radio :value="0">是</a-radio>
|
||||
</a-radio-group>
|
||||
<a-select v-model:value="formParam.code" :placeholder="!formParam.isParent?'请选择审批层级':'请选择根节点'"
|
||||
:options="!formParam.isParent?PlaceOfPayList:PlaceOfPayListTwo" allowClear showSearch/>
|
||||
</div>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item name="actValue">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
组织担当:
|
||||
</template>
|
||||
<!-- <a-select v-model:value="formParam.zzfzr" placeholder="请选择组织负责人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/> -->
|
||||
<!-- <ProjectManager :type="0" v-model:value="formParam.actValue" :placeholder="'请选择担当'" v-model:arrayList="formParam.actArray" ></ProjectManager> -->
|
||||
<AddApprover :title="'组织担当'" v-model:arrayList="formParam.actArray" @valueChange="valueChange" :type="0">
|
||||
<a-select style="width:100%" v-model:value="formParam.actValue" :open="false" :placeholder="'请选择担当'"></a-select>
|
||||
</AddApprover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16" v-if="formParam.isParent">
|
||||
<a-col :span="12">
|
||||
<a-form-item name="leveOneValue">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
一级审批人
|
||||
</template>
|
||||
<!-- <a-select v-model:value="formParam.yjspr" placeholder="请选择一级审批人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/> -->
|
||||
<!-- <ProjectManager :type="1" v-model:value="formParam.leveOneValue" :placeholder="'请选择一级审批人'" v-model:arrayList="formParam.leveOneArray" ></ProjectManager> -->
|
||||
<AddApprover :title="'一级审批人'" v-model:arrayList="formParam.leveOneArray" @valueChange="valueChange" :type="1">
|
||||
<a-select style="width:100%" v-model:value="formParam.leveOneValue" :open="false" :placeholder="'请选择一级审批人'"></a-select>
|
||||
</AddApprover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="二级审批人">
|
||||
<!-- <a-select v-model:value="formParam.zzfzr" placeholder="请选择二级审批人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/> -->
|
||||
<!-- <ProjectManager :type="1" :placeholder="'请选择二级审批人'" v-model:arrayList="formParam.leveTwoArray" ></ProjectManager> -->
|
||||
<AddApprover :title="'二级审批人'" v-model:arrayList="formParam.leveTwoArray" @valueChange="valueChange" :type="2">
|
||||
<a-select style="width:100%" v-model:value="formParam.leveTwoValue" :open="false" :placeholder="'请选择二级审批人'"></a-select>
|
||||
</AddApprover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12" v-if="formParam.isParent">
|
||||
<a-form-item label="三级审批人" >
|
||||
<!-- <a-select v-model:value="formParam.sjspr" placeholder="请选择三级审批人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/> -->
|
||||
<!-- <ProjectManager :type="1" :placeholder="'请选择三级审批人'" v-model:arrayList="formParam.leveThreeArray" ></ProjectManager> -->
|
||||
<AddApprover :title="'三级审批人'" v-model:arrayList="formParam.leveThreeArray" @valueChange="valueChange" :type="3">
|
||||
<a-select style="width:100%" v-model:value="formParam.leveThreeValue" :open="false" :placeholder="'请选择三级审批人'"></a-select>
|
||||
</AddApprover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12" v-if="formParam.isParent==0">
|
||||
<a-form-item name="isContains">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
审批流程是否加该担当
|
||||
</template>
|
||||
<a-select v-model:value="formParam.isContains" placeholder="请选择审批流程是否加担当"
|
||||
:options="isConSelect" allowClear showSearch/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="备注" >
|
||||
<a-input v-model:value="formParam.remark" showCount :maxlength="200"
|
||||
style="width: 100%; height: 40px; border-radius: 8px" placeholder="请输入" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item name="orglistName">
|
||||
<template v-slot:label>
|
||||
<img
|
||||
style="margin-right:4px;width: 7px;height: 7px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
选择管理组织
|
||||
</template>
|
||||
<a-row :gutter="50" style="margin-bottom: 10px;">
|
||||
<a-col :span="2">
|
||||
<!-- <a-tag color="blue" style="line-height: 40px; ">管理业务</a-tag> -->
|
||||
<a-button type="primary" @click="addContentData" style="width: 100px; height: 40px;border-radius: 8px">添加组织</a-button>
|
||||
</a-col>
|
||||
<!-- <a-col :span="20">
|
||||
<div class="add_content" @click="addContentData" >+</div>
|
||||
</a-col> -->
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="培训发生组织编号:" name="affiliationCode">
|
||||
<a-input disabled v-model:value="formParam.affiliationCode" class="draitem"
|
||||
placeholder="请输入讲师体系编号" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="培训发生组织名称:" name="affiliationName">
|
||||
<a-input :maxlength="30" show-count v-model:value="formParam.affiliationName" class="draitem"
|
||||
placeholder="请输入培训发生组织名称" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="是否为根节点:" name="code">
|
||||
<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 :value="1">否</a-radio>
|
||||
<a-radio :value="0">是</a-radio>
|
||||
</a-radio-group>
|
||||
<a-select v-model:value="formParam.code" :placeholder="!formParam.isParent?'请选择审批层级':'请选择根节点'"
|
||||
:options="!formParam.isParent?PlaceOfPayList:PlaceOfPayListTwo" allowClear showSearch/>
|
||||
</div>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="组织担当:" name="actValue">
|
||||
<!-- <a-select v-model:value="formParam.zzfzr" placeholder="请选择组织负责人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/> -->
|
||||
<!-- <ProjectManager :type="0" v-model:value="formParam.actValue" :placeholder="'请选择担当'" v-model:arrayList="formParam.actArray" ></ProjectManager> -->
|
||||
<AddApprover :title="'组织担当'" v-model:arrayList="formParam.actArray" @valueChange="valueChange" :type="0">
|
||||
<a-select style="width:100%" v-model:value="formParam.actValue" :open="false" :placeholder="'请选择担当'"></a-select>
|
||||
</AddApprover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16" v-if="formParam.isParent">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="一级审批人" name="leveOneValue">
|
||||
<!-- <a-select v-model:value="formParam.yjspr" placeholder="请选择一级审批人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/> -->
|
||||
<!-- <ProjectManager :type="1" v-model:value="formParam.leveOneValue" :placeholder="'请选择一级审批人'" v-model:arrayList="formParam.leveOneArray" ></ProjectManager> -->
|
||||
<AddApprover :title="'一级审批人'" v-model:arrayList="formParam.leveOneArray" @valueChange="valueChange" :type="1">
|
||||
<a-select style="width:100%" v-model:value="formParam.leveOneValue" :open="false" :placeholder="'请选择一级审批人'"></a-select>
|
||||
</AddApprover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="二级审批人">
|
||||
<!-- <a-select v-model:value="formParam.zzfzr" placeholder="请选择二级审批人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/> -->
|
||||
<!-- <ProjectManager :type="1" :placeholder="'请选择二级审批人'" v-model:arrayList="formParam.leveTwoArray" ></ProjectManager> -->
|
||||
<AddApprover :title="'二级审批人'" v-model:arrayList="formParam.leveTwoArray" @valueChange="valueChange" :type="2">
|
||||
<a-select style="width:100%" v-model:value="formParam.leveTwoValue" :open="false" :placeholder="'请选择二级审批人'"></a-select>
|
||||
</AddApprover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12" v-if="formParam.isParent">
|
||||
<a-form-item label="三级审批人" >
|
||||
<!-- <a-select v-model:value="formParam.sjspr" placeholder="请选择三级审批人"
|
||||
:options="PlaceOfPayList" allowClear showSearch/> -->
|
||||
<!-- <ProjectManager :type="1" :placeholder="'请选择三级审批人'" v-model:arrayList="formParam.leveThreeArray" ></ProjectManager> -->
|
||||
<AddApprover :title="'三级审批人'" v-model:arrayList="formParam.leveThreeArray" @valueChange="valueChange" :type="3">
|
||||
<a-select style="width:100%" v-model:value="formParam.leveThreeValue" :open="false" :placeholder="'请选择三级审批人'"></a-select>
|
||||
</AddApprover>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="备注" >
|
||||
<a-input v-model:value="formParam.remark" showCount :maxlength="200"
|
||||
style="width: 100%; height: 40px; border-radius: 8px" placeholder="请输入" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item label="选择管理组织" name="orglistName">
|
||||
<a-row :gutter="50" style="margin-bottom: 10px;">
|
||||
<a-col :span="2">
|
||||
<!-- <a-tag color="blue" style="line-height: 40px; ">管理业务</a-tag> -->
|
||||
<a-button type="primary" @click="addContentData" style="width: 100px; height: 40px;border-radius: 8px">添加组织</a-button>
|
||||
</a-col>
|
||||
<!-- <a-col :span="20">
|
||||
<div class="add_content" @click="addContentData" >+</div>
|
||||
</a-col> -->
|
||||
</a-row>
|
||||
</a-form-item>
|
||||
<!-- 备注 remark -->
|
||||
<a-row :gutter="16" style="padding-bottom: 60px;">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="">
|
||||
<!-- <a-textarea v-model:value="formParam.remark" showCount :maxlength="200"
|
||||
style="width: 100%; height: 100px; border-radius: 8px" placeholder="请输入" /> -->
|
||||
<a-table :dataSource="formParam?.affiliationOrgList" :scroll="{ x: '600' }" :columns="orgColumns"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<!-- 交互按钮 -->
|
||||
<div
|
||||
:style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
} "
|
||||
>
|
||||
<a-button class="drabtn" @click="cancelTeacherDialog" >取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="createTeacherDialog(0)" :loading="buttonLoading">保存</a-button>
|
||||
<a-button v-if="editParams||editIndex>1" class="drabtn" type="primary" @click="createTeacherDialog(1)" :loading="buttonLoading">提交</a-button>
|
||||
<!-- 备注 remark -->
|
||||
<a-row :gutter="16" style="padding-bottom: 60px;">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="">
|
||||
<!-- <a-textarea v-model:value="formParam.remark" showCount :maxlength="200"
|
||||
style="width: 100%; height: 100px; border-radius: 8px" placeholder="请输入" /> -->
|
||||
<a-table :dataSource="formParam?.affiliationOrgList" :scroll="{ x: '600' }" :columns="orgColumns"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<!-- 交互按钮 -->
|
||||
<div
|
||||
:style="{
|
||||
position: 'absolute',
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: '100%',
|
||||
borderTop: '1px solid #e9e9e9',
|
||||
padding: '10px 16px',
|
||||
background: '#fff',
|
||||
textAlign: 'right',
|
||||
zIndex: 1,
|
||||
} "
|
||||
>
|
||||
<a-button class="drabtn" @click="cancelTeacherDialog" >取消</a-button>
|
||||
<a-button class="drabtn" type="primary" @click="createTeacherDialog(0)" :loading="buttonLoading">保存</a-button>
|
||||
<a-button v-if="editParams||editIndex>1" class="drabtn" type="primary" @click="createTeacherDialog(1)" :loading="buttonLoading">提交</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
<AddOrgContent :Addtitle="'选择组织'" v-model:showContent="showContent" v-model:AddContentList="formParam.affiliationOrgList" />
|
||||
@@ -282,6 +346,7 @@ export default{
|
||||
leveTwoArray: [],
|
||||
leveThreeArray: [],
|
||||
code: null,
|
||||
isContains: '0',
|
||||
affiliationOrgList: [],
|
||||
},
|
||||
})
|
||||
@@ -290,6 +355,10 @@ export default{
|
||||
{ value: '2', label: "二级审批" },
|
||||
{ value: '3', label: "三级审批" },
|
||||
])
|
||||
const isConSelect = ref([
|
||||
{ value: '1', label: "是" },
|
||||
{ value: '0', label: "否" },
|
||||
])
|
||||
const placeData = () => {
|
||||
lecturer.parentList().then(res=>{
|
||||
if(res.data.code == 200){
|
||||
@@ -329,14 +398,14 @@ export default{
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '根节点名称',
|
||||
title: '是否为根节点名称',
|
||||
dataIndex: 'parentName',
|
||||
key: 'parentName',
|
||||
ellipsis: true, align: "center",
|
||||
align: "center",
|
||||
width: 200,
|
||||
customRender: ({text})=>{
|
||||
customRender: ({text,record})=>{
|
||||
return (
|
||||
text || '-'
|
||||
text ? <div>否({text})</div> : <div>是({{1:'一',2:'二',3:'三'}[record.code]}级审批)</div>
|
||||
)
|
||||
},
|
||||
},
|
||||
@@ -563,12 +632,32 @@ const getTableDate = (obj) => {
|
||||
const handleModify = (record) => {
|
||||
lecturer.getAffiliationById(record.id).then(res=>{
|
||||
console.log(res,'resssss')
|
||||
state.editParams = false
|
||||
res.data.data.status==3 && (state.editParams = false)
|
||||
state.formParam = res.data.data
|
||||
const actArray = res.data.data.affiliationUserList.filter(item=>item.type == 0)
|
||||
const leveOneArray = res.data.data.affiliationUserList.filter(item=>item.type == 1)
|
||||
const leveTwoArray = res.data.data.affiliationUserList.filter(item=>item.type == 2)
|
||||
const leveThreeArray = res.data.data.affiliationUserList.filter(item=>item.type == 3)
|
||||
const actArray = res.data.data.affiliationUserList.filter(item=>item.type == 0).reduce((accumulator, current) => {
|
||||
if (!accumulator.some(item => item.userId === current.userId)) {
|
||||
accumulator.push(current);
|
||||
}
|
||||
return accumulator;
|
||||
}, []);
|
||||
const leveOneArray = res.data.data.affiliationUserList.filter(item=>item.type == 1).reduce((accumulator, current) => {
|
||||
if (!accumulator.some(item => item.userId === current.userId)) {
|
||||
accumulator.push(current);
|
||||
}
|
||||
return accumulator;
|
||||
}, []);
|
||||
const leveTwoArray = res.data.data.affiliationUserList.filter(item=>item.type == 2).reduce((accumulator, current) => {
|
||||
if (!accumulator.some(item => item.userId === current.userId)) {
|
||||
accumulator.push(current);
|
||||
}
|
||||
return accumulator;
|
||||
}, []);
|
||||
const leveThreeArray = res.data.data.affiliationUserList.filter(item=>item.type == 3).reduce((accumulator, current) => {
|
||||
if (!accumulator.some(item => item.userId === current.userId)) {
|
||||
accumulator.push(current);
|
||||
}
|
||||
return accumulator;
|
||||
}, []);
|
||||
state.formParam.actArray = actArray.map(item => {
|
||||
return {
|
||||
label: item.userName + item.userNo,
|
||||
@@ -615,6 +704,7 @@ const getTableDate = (obj) => {
|
||||
}
|
||||
})
|
||||
})
|
||||
state.formParam.isContains = String(state.formParam.isContains)
|
||||
console.log(state.formParam.affiliationOrgList,'state.formParam.affiliationOrgList')
|
||||
state.teacherdialog = true;
|
||||
state.teacherdialogtitle = '编辑培训发生组织'
|
||||
@@ -643,6 +733,7 @@ const getTableDate = (obj) => {
|
||||
leveTwoArray: [],
|
||||
leveThreeArray: [],
|
||||
code: null,
|
||||
isContains: '0',
|
||||
affiliationOrgList: [],
|
||||
}
|
||||
}
|
||||
@@ -674,10 +765,16 @@ const getTableDate = (obj) => {
|
||||
state.formParam.affiliationName = state.formParam.affiliationName?.trim()
|
||||
state.formParam.affiliationUserList = [...state.formParam?.actArray,...state.formParam?.leveOneArray,...state.formParam?.leveTwoArray,...state.formParam?.leveThreeArray]
|
||||
state.formParam.orglistName = state.formParam.affiliationOrgList?.map(item=>item.id).join(',')
|
||||
const formItemNames = Object.keys(rules);
|
||||
let formItemNames = Object.keys(rules);
|
||||
if(state.formParam.isParent == 0){
|
||||
formItemNames = formItemNames.filter(item=>item!='leveOneValue')
|
||||
}else{
|
||||
formItemNames = formItemNames.filter(item=>item!='isContains')
|
||||
}
|
||||
for(let i=0;i<formItemNames.length;i++){
|
||||
const result = await validateField(formItemNames[i]);
|
||||
if (result) {
|
||||
// const result = await validateField(formItemNames[i]);
|
||||
const result = state.formParam[formItemNames[i]]
|
||||
if (!result) {
|
||||
if(formItemNames[i]=='code' && !state.formParam.isParent){
|
||||
return message.error(rules[formItemNames[i]][0].log2)
|
||||
}else{
|
||||
@@ -728,6 +825,7 @@ const getTableDate = (obj) => {
|
||||
code: [{ required: true, message: '',log:'请选择根节点',log2:'请选择审批层级' }],
|
||||
actValue: [{ required: true, message: '',log:'请选择组织担当' }],
|
||||
leveOneValue: [{ required: true, message: '',log:'请选择一级审批人' }],
|
||||
isContains: [{ required: true, message: '',log:'请选择审批流程是否加担当' }],
|
||||
orglistName: [{ required: true, message: '',log:'请选择管理组织' }],
|
||||
|
||||
}
|
||||
@@ -751,6 +849,7 @@ const getTableDate = (obj) => {
|
||||
searchSubmit,
|
||||
selectRadio,
|
||||
PlaceOfPayList,
|
||||
isConSelect,
|
||||
PlaceOfPayListTwo,
|
||||
placeData,
|
||||
searchReset,
|
||||
|
||||
Reference in New Issue
Block a user