讲师管理bug

This commit is contained in:
zhangsir
2024-12-09 11:35:59 +08:00
parent 5044213ec2
commit e84fc4b3af
5 changed files with 53 additions and 17 deletions

View File

@@ -30,6 +30,7 @@
:disabled="disabled" :disabled="disabled"
@change="change" @change="change"
dropdownClassName="treeDropdown" dropdownClassName="treeDropdown"
@keydown.enter="keydownEnter"
> >
</a-tree-select> </a-tree-select>
</template> </template>
@@ -57,7 +58,11 @@ const { data: options, loading: orgLoading } = useArrayRequest(
ORG_LIST, ORG_LIST,
{ keyword: "" }, { keyword: "" },
); );
const keydownEnter = (e) => {
if(e.keyCode == 13){
emit('enter',true)
}
}
watch(props, () => { watch(props, () => {
stuTreeExpandedKeys.value = []; stuTreeExpandedKeys.value = [];
if (labelValue.value.value !== props.value) { if (labelValue.value.value !== props.value) {

View File

@@ -115,10 +115,10 @@
<!-- 弹窗组件 --> <!-- 弹窗组件 -->
<a-drawer v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false" <a-drawer v-model:visible="teacherdialog" placement="right" :closable="false" :maskClosable="false"
width="700" :title="false"> width="700" :title="false">
<div class="headers" style="margin-top:-24px;"> <div class="headers" style="margin-top:-24px;margin-left: -25px;width: 110%;">
<div class="headerTitle" style="margin-left: 14px;">{{ teacherdialogtitle }}</div> <div class="headerTitle" style="margin-left: 14px;">{{ teacherdialogtitle }}</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer;margin-right: 24px;"
src="@/assets/images/basicinfo/close.png" src="@/assets/images/basicinfo/close.png"
@click="cancelTeacherDialog" @click="cancelTeacherDialog"
/> />
@@ -127,7 +127,7 @@
<a-form :model="formParam" :rules="rules" layout="vertical" ref="formRef"> <a-form :model="formParam" :rules="rules" layout="vertical" ref="formRef">
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<span class="line"></span><span style="color:#333333;font-weight: 600;">基本信息</span> <span class="line"></span><span style="color:#333333;font-weight: 600;font-size:16px;">基本信息</span>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="16"> <a-row :gutter="16">
@@ -222,7 +222,7 @@
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<span class="line" style="margin-bottom:10px;"></span><span style="color:#333333;font-weight: 600;">其他信息</span> <span class="line" style="margin-bottom:24px;"></span><span style="color:#333333;font-weight: 600;font-size:16px;">其他信息</span>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="16"> <a-row :gutter="16">
@@ -475,7 +475,7 @@ export default {
formParam: { formParam: {
name: null, name: null,
certStatus: 0,//认证状态 certStatus: 0,//认证状态
defaultTeachingTime: null, defaultTeachingTime: 0,
teacherType:1, teacherType:1,
photo: null, photo: null,
gender: 0, gender: 0,
@@ -1156,7 +1156,7 @@ export default {
name: null, name: null,
newdepartId: null, newdepartId: null,
tlevelId: null, tlevelId: null,
defaultTeachingTime:null, defaultTeachingTime:0,
tsystemName: null, tsystemName: null,
certStatus: 0, certStatus: 0,
description: '', description: '',
@@ -1378,6 +1378,9 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.ant-form-item{
margin-bottom: 12px;
}
.headers { .headers {
height: 56px; height: 56px;
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
@@ -2033,10 +2036,10 @@ export default {
.line { .line {
float: left; float: left;
width: 3px; width: 3px;
height: 17px; height: 16px;
background: #4ea6ff; background: #4ea6ff;
margin-left: -14px; margin-left: -10px;
margin-top: 3px; margin-top: 5px;
} }
//抽屉功能 //抽屉功能

View File

@@ -27,7 +27,7 @@
</div> </div>
</a-form-item> </a-form-item>
<!-- <div style="width:100%"></div> --> <!-- <div style="width:100%"></div> -->
<a-form-item class="select" v-if="moreid == 2"> <a-form-item class="select">
<a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.createFrom" placeholder="录入类型" <a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.createFrom" placeholder="录入类型"
:options="entryTypeList" allowClear v-on:keydown.enter="enterPressHadlerSearch"> :options="entryTypeList" allowClear v-on:keydown.enter="enterPressHadlerSearch">
</a-select> </a-select>
@@ -47,7 +47,7 @@
<!-- <a-select style="width: 235px" placeholder="请选择所属组织" v-model:value="searchParam.sourceBelongId" <!-- <a-select style="width: 235px" placeholder="请选择所属组织" v-model:value="searchParam.sourceBelongId"
:options="getOrganizationList" allowClear showSearch v-on:keydown.enter="enterPressHadlerSearch"> :options="getOrganizationList" allowClear showSearch v-on:keydown.enter="enterPressHadlerSearch">
</a-select> --> </a-select> -->
<OrgClass v-model:value="searchParam.orgId" :placeholder="'请选择讲师组织'" <OrgClass @enter="searchSubmit()" v-model:value="searchParam.orgId" :placeholder="'请选择讲师组织'"
style="width: 235px" style="width: 235px"
></OrgClass> ></OrgClass>
</a-form-item> </a-form-item>

View File

@@ -236,7 +236,7 @@
<a-col :span="12"> <a-col :span="12">
<a-form-item label="应发费用" name="payableExpense"> <a-form-item label="应发费用" name="payableExpense">
<a-input-number :max="99999999" :controls="false" :min="0" :precision="2" v-model:value="formParam.payableExpense" class="draitem" <a-input-number :max="99999999" :controls="false" :min="0" :precision="2" v-model:value="formParam.payableExpense" class="draitem"
placeholder="请输入应发费用" allowClear> placeholder="请输入应发费用" @change="clearPayableExpense" allowClear>
</a-input-number> </a-input-number>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -451,11 +451,17 @@ export default {
message.error('复制失败,请重新尝试') message.error('复制失败,请重新尝试')
}); });
} }
const clearPayableExpense = () => {
state.formParam.payableExpense == 0 && (state.formParam.payableExpense = null);
state.formParam.payableExpense && (state.formParam.payableExpense = String(state.formParam.payableExpense))
}
const clearlevelPayNumber = () => { const clearlevelPayNumber = () => {
// state.formParam.levelPay = state.formParam?.levelPay.replace(/\D/g, ''); // state.formParam.levelPay = state.formParam?.levelPay.replace(/\D/g, '');
// state.formParam.expense = state.formParam?.levelPay*state.formParam?.teachingTime // state.formParam.expense = state.formParam?.levelPay*state.formParam?.teachingTime
state.formParam.levelPay == 0 && (state.formParam.levelPay = null); 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)) state.formParam.levelPay&&state.formParam.teachingTime && (state.formParam.expense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2))
state.formParam.levelPay&&state.formParam.teachingTime && (state.formParam.payableExpense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2))
state.formParam.levelPay&&(state.formParam.levelPay=String(state.formParam.levelPay))
} }
const clearscoreNumber= () => { const clearscoreNumber= () => {
state.formParam.score = state.formParam?.score?.replace(/\D/g, ''); state.formParam.score = state.formParam?.score?.replace(/\D/g, '');
@@ -469,6 +475,7 @@ export default {
state.formParam.teachingTime = state.formParam.teachingTime?.slice(0,8); state.formParam.teachingTime = state.formParam.teachingTime?.slice(0,8);
state.formParam.teachingTime == 0 && (state.formParam.teachingTime = null); 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)); state.formParam.teachingTime && state.formParam.levelPay && (state.formParam.expense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2));
state.formParam.teachingTime&&state.formParam.levelPay && (state.formParam.payableExpense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2))
} }
const courseTypeList = ref([ const courseTypeList = ref([
{ value: '0', label: "在线" }, { value: '0', label: "在线" },
@@ -536,6 +543,9 @@ export default {
if(state.formParam.levelPay){ if(state.formParam.levelPay){
state.formParam.levelPay = String(state.formParam.levelPay) state.formParam.levelPay = String(state.formParam.levelPay)
} }
if(state.formParam.payableExpense){
state.formParam.payableExpense = String(state.formParam.payableExpense)
}
const formItemNames = Object.keys(rules); const formItemNames = Object.keys(rules);
for(let i=0;i<formItemNames.length;i++){ for(let i=0;i<formItemNames.length;i++){
const result = await validateField(formItemNames[i]); const result = await validateField(formItemNames[i]);
@@ -604,6 +614,7 @@ export default {
score: [{ required: true, message:'',log: ' 评分不能为空' }], score: [{ required: true, message:'',log: ' 评分不能为空' }],
levelPay: [{ required: true, message:'',log: '课酬基准 不能为空' }], levelPay: [{ required: true, message:'',log: '课酬基准 不能为空' }],
expense: [{ required: true, message: '',log:'计划费用不能为空' }], expense: [{ required: true, message: '',log:'计划费用不能为空' }],
payableExpense: [{ required: true, message: '',log:'应发费用不能为空' }],
} }
const closeDrawer = () => { const closeDrawer = () => {
reset() reset()
@@ -863,6 +874,7 @@ export default {
formRef, formRef,
courseTypeList, courseTypeList,
clearlevelPayNumber, clearlevelPayNumber,
clearPayableExpense,
clearscoreNumber, clearscoreNumber,
clearstudysNumber, clearstudysNumber,
clearNonNumber, clearNonNumber,

View File

@@ -266,7 +266,7 @@
<a-col :span="12"> <a-col :span="12">
<a-form-item label="授课/课程日期 :" name="teachingDate"> <a-form-item label="授课/课程日期 :" name="teachingDate">
<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" <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="请选择课程日期" /> placeholder="请选择课程日期" @select="handleSelect" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
@@ -295,7 +295,7 @@
<a-col :span="12"> <a-col :span="12">
<a-form-item label="评分" name="score"> <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-input-number class="draitem" v-model:value="formParam.score" :defaultValue="null" :max="10" :controls="false" :min="0" :precision="2" placeholder="请输入评分"
allowClear > allowClear @change="scoreNumber">
</a-input-number> </a-input-number>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -320,7 +320,7 @@
<a-col :span="12"> <a-col :span="12">
<a-form-item label="应发费用" name="payableExpense"> <a-form-item label="应发费用" name="payableExpense">
<a-input-number :max="99999999" :controls="false" :min="0" :precision="2" v-model:value="formParam.payableExpense" class="draitem" <a-input-number :max="99999999" :controls="false" :min="0" :precision="2" v-model:value="formParam.payableExpense" class="draitem"
placeholder="请输入应发费用" allowClear> placeholder="请输入应发费用" @change="clearPayableExpense" allowClear>
</a-input-number> </a-input-number>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -1068,6 +1068,9 @@ getAllLevelList().then((res) => {
if(state.formParam.levelPay){ if(state.formParam.levelPay){
state.formParam.levelPay = String(state.formParam.levelPay) state.formParam.levelPay = String(state.formParam.levelPay)
} }
if(state.formParam.payableExpense){
state.formParam.payableExpense = String(state.formParam.payableExpense)
}
const formItemNames = Object.keys(rules); const formItemNames = Object.keys(rules);
for(let i=0;i<formItemNames.length;i++){ for(let i=0;i<formItemNames.length;i++){
const result = await validateField(formItemNames[i]); const result = await validateField(formItemNames[i]);
@@ -1319,6 +1322,7 @@ getAllLevelList().then((res) => {
state.formParam.teachingTime = state.formParam.teachingTime?.slice(0,8); state.formParam.teachingTime = state.formParam.teachingTime?.slice(0,8);
state.formParam.teachingTime == 0 && (state.formParam.teachingTime = null); 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)); state.formParam.teachingTime && state.formParam.levelPay && (state.formParam.expense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2));
state.formParam.teachingTime && state.formParam.levelPay && (state.formParam.payableExpense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2));
} }
const clearstudysNumber = () => { const clearstudysNumber = () => {
state.formParam.studys = state.formParam.studys.replace(/\D/g, ''); state.formParam.studys = state.formParam.studys.replace(/\D/g, '');
@@ -1334,14 +1338,24 @@ getAllLevelList().then((res) => {
state.formParam.payableExpense = state.formParam.payableExpense?.slice(0,8); state.formParam.payableExpense = state.formParam.payableExpense?.slice(0,8);
state.formParam.payableExpense == 0 && (state.formParam.payableExpense = null); state.formParam.payableExpense == 0 && (state.formParam.payableExpense = null);
} }
const scoreNumber = () => {
state.formParam.score&&(state.formParam.score=String(state.formParam.score))
}
const clearlevelPayNumber = () => { const clearlevelPayNumber = () => {
// state.formParam.levelPay = state.formParam.levelPay?.replace(/\D/g, ''); // state.formParam.levelPay = state.formParam.levelPay?.replace(/\D/g, '');
// state.formParam.levelPay = state.formParam.levelPay?.slice(0,8); // state.formParam.levelPay = state.formParam.levelPay?.slice(0,8);
state.formParam.levelPay == 0 && (state.formParam.levelPay = null); 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)) state.formParam.levelPay&&state.formParam.teachingTime && (state.formParam.expense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2))
state.formParam.levelPay&&state.formParam.teachingTime && (state.formParam.payableExpense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2))
state.formParam.levelPay&&(state.formParam.levelPay=String(state.formParam.levelPay))
}
const clearPayableExpense = () => {
state.formParam.payableExpense == 0 && (state.formParam.payableExpense = null);
state.formParam.payableExpense && (state.formParam.payableExpense = String(state.formParam.payableExpense))
} }
watch(()=>state.formParam.levelPay,(val)=>{ watch(()=>state.formParam.levelPay,(val)=>{
state.formParam.levelPay&&state.formParam.teachingTime && (state.formParam.expense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2)) state.formParam.levelPay&&state.formParam.teachingTime && (state.formParam.expense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2))
state.formParam.levelPay&&state.formParam.teachingTime && (state.formParam.payableExpense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2))
}) })
const rules = { const rules = {
name: [{ required: true, message:'',log: '讲师不能为空' }], name: [{ required: true, message:'',log: '讲师不能为空' }],
@@ -1359,7 +1373,7 @@ getAllLevelList().then((res) => {
score: [{ required: true, message:'',log: ' 评分不能为空' }], score: [{ required: true, message:'',log: ' 评分不能为空' }],
levelPay: [{ required: true, message:'',log: '课酬基准不能为空' }], levelPay: [{ required: true, message:'',log: '课酬基准不能为空' }],
expense: [{ required: true, message: '',log:'计划费用不能为空' }], expense: [{ required: true, message: '',log:'计划费用不能为空' }],
payableExpense: [{ required: true, message: '',log:'应发费用不能为空' }],
} }
const handleImport = () => { const handleImport = () => {
@@ -1680,6 +1694,8 @@ const column = ref([
clearstudysNumber, clearstudysNumber,
clearscoreNumber, clearscoreNumber,
clearlevelPayNumber, clearlevelPayNumber,
scoreNumber,
clearPayableExpense,
payExpense, payExpense,
} }
}, },