mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-21 00:36:46 +08:00
Merge branch 'zcwy-teacher-manage' of https://codeup.aliyun.com/648097ddb583fece2f059e59/vue/fe-manage into zcwy-teacher-manage
This commit is contained in:
@@ -82,4 +82,4 @@ export const isConfirm = (obj) => http.post('/admin/expenseBill/isConfirm',obj)
|
||||
//培训发生组织根节点列表
|
||||
export const parentList = () => http.get('/admin/affiliation/parentList')
|
||||
//讲师级别获取
|
||||
export const getAllLevelList = () => http.get(' /admin/system/getAllLevelList')
|
||||
export const getAllLevelList = () => http.get('/admin/system/getAllLevelList')
|
||||
|
||||
@@ -228,7 +228,7 @@ const searchMember = (keyword) => {
|
||||
level: item.name+'('+item.userNo+')'+item.sLevelName,
|
||||
key: item.id,
|
||||
orgName: item.orgName,
|
||||
orgId: item.departId,
|
||||
orgId: item.orgId,
|
||||
tSystemName:item.tsystemName,
|
||||
sLevelName:item.sLevelName,
|
||||
payrollPlaceCode: item.salaryId,
|
||||
|
||||
@@ -112,8 +112,16 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 弹窗组件 -->
|
||||
<a-drawer v-model:visible="teacherdialog" placement="right" @closa="cancelTeacherDialog" :maskClosable="true"
|
||||
width="40%" :title="teacherdialogtitle">
|
||||
<a-drawer v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false"
|
||||
width="40%" :title="false">
|
||||
<div class="headers">
|
||||
<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>
|
||||
<a-col :span="24">
|
||||
@@ -127,12 +135,13 @@
|
||||
<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="更换头像" />
|
||||
<div class="i_upload" v-else>
|
||||
<img class="i_upload_img" v-else src="../../assets/avatar.png" alt="avatar" title="更换头像" />
|
||||
<!-- <div class="i_upload" v-else>
|
||||
<div class="addimg">
|
||||
<div class="heng"></div>
|
||||
<div class="shu"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</a-upload>
|
||||
</div>
|
||||
<div class="i_bottom">
|
||||
@@ -450,7 +459,7 @@ export default {
|
||||
certStatus: 0,//认证状态
|
||||
defaultTeachingTime: null,
|
||||
teacherType:1,
|
||||
photo: avatar,
|
||||
photo: null,
|
||||
orgLists: [],
|
||||
certification: null,
|
||||
certificationName: null,
|
||||
@@ -634,7 +643,7 @@ export default {
|
||||
let array = [];
|
||||
arr.map((value) => {
|
||||
let obj = {
|
||||
value: value.levelCode,
|
||||
value: value.levelName,
|
||||
label: value.levelName,
|
||||
};
|
||||
array.push(obj);
|
||||
@@ -904,7 +913,7 @@ export default {
|
||||
cancel()
|
||||
state.teacherdialog = true;
|
||||
state.teacherdialogtitle = '新增讲师'
|
||||
state.formParam.photo = avatar
|
||||
state.formParam.photo = null
|
||||
state.formParam.status = '1'
|
||||
state.vf = true
|
||||
}
|
||||
@@ -1196,7 +1205,7 @@ export default {
|
||||
state.formParam.description = state.formParam.description === null ? '' : state.formParam.description
|
||||
state.formParam.workExp0erience = state.formParam.workExperience === null ? '' : state.formParam.workExperience
|
||||
state.formParam.courses = state.formParam.courses === null ? '' : state.formParam.courses
|
||||
state.formParam.photo = state.formParam.photo === null ? avatar : state.formParam.photo
|
||||
// state.formParam.photo = state.formParam.photo === null ? avatar : state.formParam.photo
|
||||
state.tSystemNames.systemName = res.data.data.tsystemName
|
||||
state.tSystemNames.systemId = res.data.data.tsystemId
|
||||
state.tSystemNames.systemCode = res.data.data.systemCode
|
||||
@@ -1328,6 +1337,24 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.headers {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
// background-color: red;
|
||||
margin-bottom: 20px;
|
||||
flex-shrink: 0;
|
||||
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
// margin-left: 24px;
|
||||
}
|
||||
}
|
||||
.selectonlineface{
|
||||
z-index: 999;
|
||||
width: 679px;
|
||||
|
||||
@@ -155,8 +155,16 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 弹窗组件 -->
|
||||
<a-drawer v-model:visible="teacherdialog" placement="right" @closa="cancelTeacherDialog" :maskClosable="true" dropdown-style="drawaer"
|
||||
width="60%" :title="teacherdialogtitle">
|
||||
<a-drawer v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false" dropdown-style="drawaer"
|
||||
width="60%" :title="false">
|
||||
<div class="headers">
|
||||
<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" >
|
||||
<!-- 讲师姓名 name 讲师工号 userNo-->
|
||||
<a-row :gutter="16">
|
||||
@@ -164,7 +172,7 @@
|
||||
<a-form-item label="讲师名称" name="name">
|
||||
<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" v-model:level="formParam.tlevelId" ></SearchTeacher>
|
||||
v-model:payrollPlaceName="formParam.payrollPlace" ></SearchTeacher>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -179,15 +187,15 @@
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="讲师组织" name="orgName">
|
||||
<a-popover>
|
||||
<!-- <a-popover>
|
||||
<template #content>
|
||||
{{ formParam.orgNames }}
|
||||
</template>
|
||||
</template> -->
|
||||
|
||||
<a-input disabled v-model:value="formParam.orgName" class="draitem"
|
||||
<a-input :title="formParam.orgNames" disabled v-model:value="formParam.orgName" class="draitem"
|
||||
placeholder="自动带出讲师的组织,展示主要部分,鼠标浮上去展示所有" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-popover>
|
||||
<!-- </a-popover> -->
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -244,36 +252,36 @@
|
||||
<!-- 授课日期 teachingDate 授课时长 teachingTime -->
|
||||
<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"
|
||||
placeholder="请选择课程日期" />
|
||||
<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="teachingTime">
|
||||
<a-input v-model:value="formParam.teachingTime" style="width:80%; height: 40px; border-radius: 8px; "
|
||||
@blur="clearNonNumber" placeholder="0" allowClear showSearch suffix="分钟">
|
||||
</a-input>
|
||||
<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>
|
||||
<a-form-item label="授课/课程日期 :" name="teachingDate">
|
||||
<a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" format="YYYY-MM-DD HH:mm"
|
||||
placeholder="请选择课程日期" />
|
||||
</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" @blur="clearstudysNumber"
|
||||
placeholder="0 " allowClear showSearch >
|
||||
<a-form-item label="授课时长" name="teachingTime">
|
||||
<a-input v-model:value="formParam.teachingTime" style="width:80%; height: 40px; border-radius: 8px; "
|
||||
@blur="clearNonNumber" placeholder="请输入授课分钟数" allowClear showSearch suffix="分钟">
|
||||
</a-input>
|
||||
<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>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="评分" name="score">
|
||||
<a-input class="draitem" v-model:value="formParam.score" placeholder="0"
|
||||
@blur="clearscoreNumber" allowClear
|
||||
showSearch >
|
||||
<a-form-item label="参训人数" name="studys">
|
||||
<a-input v-model:value="formParam.studys" class="draitem" @blur="clearstudysNumber"
|
||||
placeholder="请输入参训人数" allowClear showSearch >
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -281,27 +289,35 @@
|
||||
<!-- 课酬基准 计划费用 expense-->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="课酬基准" name="levelPay">
|
||||
<a-input v-model:value="formParam.levelPay" placeholder="自动键入"
|
||||
@blur="clearlevelPayNumber"
|
||||
allowClear showSearch class="draitem">
|
||||
<a-form-item label="评分" name="score">
|
||||
<a-input class="draitem" v-model:value="formParam.score" placeholder="请输入评分"
|
||||
@blur="clearscoreNumber" allowClear
|
||||
showSearch >
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="计划费用" name="expense">
|
||||
<a-input class="draitem" v-model:value="formParam.expense" placeholder="" allowClear disabled
|
||||
showSearch>
|
||||
<a-form-item label="课酬基准" name="levelPay">
|
||||
<a-input v-model:value="formParam.levelPay" placeholder="自动键入系统基准(可手动更改)"
|
||||
@blur="clearlevelPayNumber"
|
||||
allowClear showSearch class="draitem">
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 应发费用 -->
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="计划费用" name="expense">
|
||||
<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-form-item label="应发费用" name="payableExpense">
|
||||
<a-input v-model:value="formParam.payableExpense" class="draitem"
|
||||
placeholder="0 " allowClear showSearch>
|
||||
<a-input @blur="payExpense" v-model:value="formParam.payableExpense" class="draitem"
|
||||
placeholder="请输入应发费用" allowClear showSearch>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -445,7 +461,8 @@
|
||||
import ConfirmLecturer from "@/components/project/ConfirmLecturer"
|
||||
import BatchLecturer from "@/components/project/BatchLecturer"
|
||||
import { queryTrainOrg,} from "../../api/organization";
|
||||
import dialog from '@/utils/dialog'
|
||||
import dialog from '@/utils/dialog';
|
||||
import OrgClass from "@/components/project/OrgClass";
|
||||
export default {
|
||||
name: "LecturerFee",
|
||||
components: {
|
||||
@@ -458,6 +475,7 @@
|
||||
ImportWork,
|
||||
ConfirmLecturer,
|
||||
BatchLecturer,
|
||||
OrgClass,
|
||||
},
|
||||
setup() {
|
||||
const formRef = ref();
|
||||
@@ -501,6 +519,8 @@
|
||||
userNo: null,
|
||||
payrollPlace: null,
|
||||
payrollPlaceId: null,
|
||||
sourceBelongId: null,
|
||||
sourceBelongFullName: null,
|
||||
},
|
||||
searchdate: null, //选择时间
|
||||
allsearchdate: null, //选择时间
|
||||
@@ -607,7 +627,7 @@ getAllLevelList().then((res) => {
|
||||
let array = [];
|
||||
arr.map((value) => {
|
||||
let obj = {
|
||||
value: value.levelCode,
|
||||
value: value.levelName,
|
||||
label: value.levelName,
|
||||
};
|
||||
array.push(obj);
|
||||
@@ -872,6 +892,7 @@ getAllLevelList().then((res) => {
|
||||
])
|
||||
// 搜索
|
||||
const searchSubmit = () => {
|
||||
state.searchParam.pageNo = 1
|
||||
getTableDate();
|
||||
};
|
||||
//重置
|
||||
@@ -915,6 +936,10 @@ getAllLevelList().then((res) => {
|
||||
state.tableDataTotal = Number(res.data.data.total);
|
||||
state.tableLoading=false
|
||||
console.log("获取讲师tableData", tableData);
|
||||
}).catch(err=>{
|
||||
state.tableLoading=false
|
||||
message.destroy()
|
||||
message.error(err.data.msg)
|
||||
})
|
||||
};
|
||||
getTableDate()
|
||||
@@ -989,6 +1014,7 @@ getAllLevelList().then((res) => {
|
||||
getTableDate();
|
||||
}).catch(err=>{
|
||||
message.destroy()
|
||||
state.teacherdialog = false;
|
||||
message.error(err.data.msg)
|
||||
})
|
||||
}
|
||||
@@ -1001,6 +1027,7 @@ getAllLevelList().then((res) => {
|
||||
getTableDate();
|
||||
}).catch(err=>{
|
||||
message.destroy()
|
||||
state.teacherdialog = false;
|
||||
message.error(err.data.msg)
|
||||
})
|
||||
}
|
||||
@@ -1087,6 +1114,8 @@ getAllLevelList().then((res) => {
|
||||
payableExpense:null,
|
||||
expense:null,
|
||||
remark:null,
|
||||
sourceBelongId: null,
|
||||
sourceBelongFullName: null,
|
||||
}
|
||||
state.id = null
|
||||
state.teachingDate=null
|
||||
@@ -1195,18 +1224,29 @@ getAllLevelList().then((res) => {
|
||||
}
|
||||
};
|
||||
const clearNonNumber = () => {
|
||||
state.formParam.teachingTime = state.formParam.teachingTime.replace(/\D/g, '');
|
||||
state.formParam.expense = state.formParam.levelPay*state.formParam.teachingTime
|
||||
state.formParam.teachingTime = state.formParam.teachingTime?.replace(/\D/g, '');
|
||||
state.formParam.teachingTime = state.formParam.teachingTime?.slice(0,8);
|
||||
state.formParam.teachingTime == 0 && (state.formParam.teachingTime = null);
|
||||
state.formParam.teachingTime && state.formParam.levelPay && (state.formParam.expense = state.formParam.levelPay*(state.formParam.teachingTime/60).toFixed(2));
|
||||
}
|
||||
const clearstudysNumber = () => {
|
||||
state.formParam.studys = state.formParam.studys.replace(/\D/g, '');
|
||||
}
|
||||
const clearscoreNumber= () => {
|
||||
state.formParam.score = state.formParam.score.replace(/\D/g, '');
|
||||
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');
|
||||
}
|
||||
const payExpense = () => {
|
||||
state.formParam.payableExpense = state.formParam.payableExpense?.replace(/\D/g, '');
|
||||
state.formParam.payableExpense = state.formParam.payableExpense?.slice(0,8);
|
||||
state.formParam.payableExpense == 0 && (state.formParam.payableExpense = null);
|
||||
}
|
||||
const clearlevelPayNumber = () => {
|
||||
state.formParam.levelPay = state.formParam.levelPay.replace(/\D/g, '');
|
||||
state.formParam.expense = state.formParam.levelPay*state.formParam.teachingTime
|
||||
state.formParam.levelPay = state.formParam.levelPay?.replace(/\D/g, '');
|
||||
state.formParam.levelPay = state.formParam.levelPay?.slice(0,8);
|
||||
state.formParam.levelPay == 0 && (state.formParam.levelPay = null);
|
||||
state.formParam.levelPay&&state.formParam.teachingTime && (state.formParam.expense = state.formParam.levelPay*(state.formParam.teachingTime/60).toFixed(2))
|
||||
}
|
||||
const rules = {
|
||||
name: [{ required: true, message:'',log: '讲师不能为空' }],
|
||||
@@ -1216,12 +1256,13 @@ getAllLevelList().then((res) => {
|
||||
tlevelName: [{ required: true, message:'',log: ' 讲师级别不能为空' }],
|
||||
payrollPlace: [{ required: true, message:'',log: '讲师发薪地不能为空' }],
|
||||
courseType: [{ required: true, message: '',log:'费用类型不能为空' }],
|
||||
courseName: [{ required: true, message:'',log: '课程名称不能为空' }],
|
||||
courseName: [{ required: true, message:'',log: '课程归属组织不能为空' }],
|
||||
sourceBelongId: [{ required: true, message: '',log:'费用来源不能为空' }],
|
||||
teachingDate: [{ required: true, message:'',log: '授课日期不能为空' }],
|
||||
teachingTime: [{ required: true, message:'',log: ' 授课时长不能为空' }],
|
||||
studys: [{ required: true, message: '',log:' 参训人数不能为空' }],
|
||||
score: [{ required: true, message:'',log: ' 评分不能为空' }],
|
||||
levelPay: [{ required: true, message:'',log: '课酬基准 不能为空' }],
|
||||
levelPay: [{ required: true, message:'',log: '课酬基准不能为空' }],
|
||||
expense: [{ required: true, message: '',log:'计划费用不能为空' }],
|
||||
|
||||
}
|
||||
@@ -1412,6 +1453,7 @@ const column = ref([
|
||||
|
||||
])
|
||||
const tlevelChange = (e) => {
|
||||
console.log(e,'eeeee')
|
||||
state.formParam.tlevelName = e?.tlevelName
|
||||
state.formParam.tlevelId = e?.tlevelId
|
||||
// state.formParam.payrollPlace = e?.salaryName
|
||||
@@ -1521,6 +1563,7 @@ const column = ref([
|
||||
clearstudysNumber,
|
||||
clearscoreNumber,
|
||||
clearlevelPayNumber,
|
||||
payExpense,
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user