初始化转改

This commit is contained in:
gengxin
2025-02-21 18:51:15 +08:00
parent f971fc45f3
commit bb60b214db

View File

@@ -9,30 +9,34 @@
<!-- <a-input v-model:value="searchParam.userNo" style="width: 276px; height: 40px; border-radius: 8px"
placeholder="请输入工号/讲师姓名进行检索" allowClear showSearch>
</a-input> -->
<a-input style="width: 235px; height: 40px; border-radius: 8px" placeholder="请输入姓名进行检索" showSearch allowClear
v-model:value="searchParam.name" v-on:keydown.enter="enterPressHadlerSearch"></a-input>
<a-input style="width: 235px; height: 40px; border-radius: 8px" placeholder="请输入姓名/手机号进行检索" showSearch
allowClear v-model:value="searchParam.name"
v-on:keydown.enter="enterPressHadlerSearch"></a-input>
</a-form-item>
<a-form-item class="select">
<a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.supplier" placeholder="请输入供应商"
:options="supperList" allowClear v-on:keydown.enter="enterPressHadlerSearch" showSearch>
<a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.supplier" placeholder="请输入供应商" :options="supperList" allowClear
v-on:keydown.enter="enterPressHadlerSearch" showSearch >
</a-select>
</a-form-item>
<a-form-item class="select">
<a-input v-model:value="searchParam.courseName" style="width: 235px; height: 40px; border-radius: 8px"
placeholder="请输入课程名称进行搜索" allowClear showSearch v-on:keydown.enter="enterPressHadlerSearch">
placeholder="请输入课程名称进行搜索" allowClear showSearch
v-on:keydown.enter="enterPressHadlerSearch">
</a-input>
</a-form-item>
<a-form-item class="select ">
<!-- <div class="select addTimeBox">
<div class="addTime">授课日期</div> -->
<a-range-picker v-model:value="searchdate" style="width: 340px !important;" format="YYYY-MM-DD"
valueFormat="YYYY-MM-DD" separator="至" :placeholder="['授课日期开始时间', '授课日期结束时间']
" v-on:keydown.enter="enterPressHadlerSearch" />
<a-range-picker v-model:value="searchdate" style="width: 340px !important;" format="YYYY-MM-DD" valueFormat="YYYY-MM-DD"
separator="至" :placeholder="['授课日期开始时间', '授课日期结束时间']
"
v-on:keydown.enter="enterPressHadlerSearch" />
<!-- </div> -->
</a-form-item>
<a-form-item class="select">
<a-select style="width: 200px ;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-form-item>
<a-form-item class="select">
@@ -43,12 +47,14 @@
}" allow-clear :getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
v-model:value="searchParam.courseTypeId" show-search
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择内容分类" tree-default-expand-all
:tree-data="sysTypeOptions" v-on:keydown.enter="enterPressHadlerSearch">
:tree-data="sysTypeOptions"
v-on:keydown.enter="enterPressHadlerSearch">
</a-tree-select>
</a-form-item>
<a-form-item class="select">
<a-select style="width: 200px" v-model:value="searchParam.courseStatus" placeholder="开课状态"
:options="AuthenticationStatusList" allowClear v-on:keydown.enter="enterPressHadlerSearch">
:options="AuthenticationStatusList" allowClear
v-on:keydown.enter="enterPressHadlerSearch">
</a-select>
</a-form-item>
<div style="display: flex; margin-bottom: 20px">
@@ -99,10 +105,8 @@
<template v-if="column.key === 'operation'">
<a-space>
<a-button type="link" @click="() => handleLook(record, String(record.courseform))">查看</a-button>
<a-button type="link" @click="() => handleModify(record, String(record.courseform))"
v-if="record.createFrom == 1 && checkMenu('lecturerRecordsEdit')">编辑</a-button>
<a-button v-if="record.isSuperPermission === 'true' && checkMenu('lecturerRecordsDel')" type="link"
@click="() => deleteModal(record, String(record.courseform))">删除</a-button>
<a-button type="link" @click="() => handleModify(record, String(record.courseform))" v-if="record.createFrom == 1&&checkMenu('lecturerRecordsEdit')">编辑</a-button>
<a-button v-if="record.isSuperPermission==='true'&&checkMenu('lecturerRecordsDel')" type="link" @click="() => deleteModal(record, String(record.courseform))">删除</a-button>
</a-space>
</template>
</template>
@@ -112,57 +116,63 @@
</div>
<div class="tableBox ">
<div class="pa">
<a-pagination v-if="tableDataTotal > 10" :showSizeChanger="true" :showQuickJumper="false"
:hideOnSinglePage="false" :pageSize="searchParam.pageSize" :current="searchParam.pageNo"
:total="tableDataTotal" class="pagination" @change="changePagination" />
<a-pagination
v-if="tableDataTotal > 10"
:showSizeChanger="true"
:showQuickJumper="false"
:hideOnSinglePage="false"
:pageSize="searchParam.pageSize"
:current="searchParam.pageNo"
:total="tableDataTotal"
class="pagination"
@change="changePagination"
/>
<!-- :show-total="total => `共 ${total} 条数据`" -->
</div>
</div>
<!-- 弹窗组件 -->
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :maskClosable="false"
:closable="false" width="60%" :title="false">
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :maskClosable="false" :closable="false"
width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">
<div class="headerTitle">{{ teacherdialogtitle }}</div>
<img style="width: 29px; height: 29px; cursor: pointer" src="@/assets/images/basicinfo/close.png"
@click="cancelTeacherDialog" />
<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="" />
<img
style="margin-right:4px;width: 7px;height: 7px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
讲师名称
</template>
<!-- TODO GX01 -->
<ProjectManagerOutTeacher v-model:value="formParam.name" v-model:name="formParam.teacherName"
v-model:supplier="formParam.supplier"
placeholder="请输入工号/讲师姓名进行检索" @onChange="managerChange"></ProjectManagerOutTeacher>
<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="supplier">
<template v-slot:label>
<img style="margin-right:4px;width: 7px;height: 7px"
src="@/assets/images/coursewareManage/asterisk.png" alt="" />
供应商
</template>
<!-- TODO GX01 -->
<a-input class="draitem" v-model:value="formParam.supplier" disabled :maxlength="20" showCount >
</a-input>
</a-form-item>
</a-col>
</a-row>
<!-- 课程名称name 开课状态 courseStatus-->
<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="" />
<img
style="margin-right:4px;width: 7px;height: 7px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
内容分类
</template>
<a-tree-select :fieldNames="{
@@ -171,20 +181,26 @@
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">
: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="" />
<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 class="draitem" v-model:value="formParam.courseName" :maxlength="20" showCount placeholder="请输入课程名称" @blur="sendName" allowClear showSearch>
</a-input>
</a-form-item>
</a-col>
@@ -196,62 +212,76 @@
</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="" />
<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-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-row>
<!-- 授课日期 teachingDate 授课时长defaultTeachingTime-->
<a-row :gutter="16">
<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="" />
<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">
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="" />
<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 v-model:value="formParam.studys" class="draitem" placeholder="请输入参训人数" allowClear showSearch :maxLength="8"
@blur="clearstudysNumber">
</a-input>
</a-form-item>
</a-col>
</a-row>
<!-- 参训人数 studys评分 score-->
<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="" />
<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="2"
:min="1" :max="100" style="width:100%; height: 40px; border-radius: 8px ; " placeholder="请输入评分" />
<a-input-number @blur="blurScore" @focus="focusScore" v-model:value="formParam.score" :precision="2" :min="1" :max="100"
style="width:100%; height: 40px; border-radius: 8px ; " placeholder="请输入评分" />
</a-form-item>
</a-col>
</a-row>
@@ -259,7 +289,8 @@
<a-row :gutter="16">
<a-col :span="24">
<a-form-item label="备注">
<a-textarea v-model:value="formParam.remark" showCount :maxlength="200" @blur="sendRemark"
<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>
@@ -283,21 +314,22 @@
</div>
</a-drawer>
<!-- 查看授课记录 -->
<a-drawer class="largeDrawerInside" v-model:visible="teachingdialog" placement="right" :maskClosable="true"
:closable="false" width="60%" :title="false">
<a-drawer class="largeDrawerInside" v-model:visible="teachingdialog" placement="right" :maskClosable="true" :closable="false"
width="60%" :title="false">
<div style="padding:24px;">
<div class="headers" style="margin-top:-24px;">
<div class="headerTitle">查看讲师授课记录</div>
<img style="width: 29px; height: 29px; cursor: pointer" src="@/assets/images/basicinfo/close.png"
@click="cancelTeachingDialog" />
<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.supplier || '-' }}</a-descriptions-item>
<a-descriptions-item label="手机号码">{{ formParam.mobile ||'-'}}</a-descriptions-item>
<a-descriptions-item label="课程类型">
{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : formParam.type == 2 ? '训练班' : formParam.type == 5 ? '手动录入' : '-'}}
</a-descriptions-item>
<a-descriptions-item label="课程类型">{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : formParam.type == 2 ? '手动录入' : '-'
}}</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>
@@ -309,8 +341,7 @@
<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 ? Number(formParam.score).toFixed(0) == 0 ? '-' : Number(formParam.score).toFixed(2) +'分':'-'}}</a-descriptions-item>
<a-descriptions-item label="评分 ">{{ formParam.score?Number(formParam.score).toFixed(0)==0?'-':Number(formParam.score).toFixed(2)+'分':'-'}}</a-descriptions-item>
<a-descriptions-item label="参训人数 ">{{ formParam.studys ? formParam.studys+'人' :'-'}}</a-descriptions-item>
<a-descriptions-item label="备注 " :span="2">{{ formParam.remark ||'-' }}</a-descriptions-item>
</a-descriptions>
@@ -358,12 +389,12 @@
</a-modal>
</div>
<!-- <div> <ImageUpload/> </div> -->
<ImportWork v-model:showWork="showWork" :template="'外部讲师授课记录导入模版-20250115.xlsx'"
<ImportWork v-model:showWork="showWork" :template="'/admin/export/exportRecordTemplate'"
:url="'/admin/export/importOutTeacherRecord'" :title="title"></ImportWork>
</div>
</template>
<script lang="jsx">
import { reactive, toRefs, ref, computed, onMounted ,watch} from "vue";
import { reactive, toRefs, ref, computed,onMounted } from "vue";
import { useRouter ,useRoute} from "vue-router";
import { useStore } from "vuex";
import {
@@ -426,8 +457,6 @@ export default {
teachingDate: undefined, //选择时间
tableDataTotal: -1,//table列表总条数
formParam: {
name: null,
supplier: null,
courseStatus: '1',
createFrom: 1,
teaching: null,
@@ -475,15 +504,6 @@ export default {
//获取内容分类
const sysTypeOptions = computed(() => store.state.content_type);
watch(() => state.formParam.name, (val) => {
console.log(val, 'name gx data')
})
watch(() => state.formParam.teacherName, (val) => {
console.log(val, 'teacherName gx data')
})
const treetype =(val,lab)=>{
state.formParam.courseTypeName =lab.toString()
}
@@ -571,8 +591,7 @@ export default {
? {
"0": "在线课",
"1": "面授课",
"2": "训练班",
"5": "手动录入",
"2": "手动录入",
}[value.record.type + ""]
: "-"}
</div>
@@ -937,11 +956,9 @@ export default {
});
}
function managerChange(e, l, d, t, orgName) {
console.log("managerChange e l",e,l)
// console.log(e, l, d, t, orgName,'e, l, d, t, orgName');
state.formParam.mobile = e ? l.mobile : '';
state.formParam.teacherId = e ? l.id : '';
state.formParam.supplier = e ? l.supplier : '';
state.formParam.mobile=e?l.mobile:''
state.formParam.teacherId=e?l.id:''
// state.searchParam.userNo = d;
// state.searchParam.name = t;
// state.searchParam.trainorgName=orgName
@@ -967,10 +984,10 @@ export default {
}
//回车
const enterPressHadlerSearch = e => {
if (e.keyCode === 13) {
searchSubmit()
    if (e.keyCode === 13) {
      searchSubmit()
}
    }
};
const sendName=()=>{
state.formParam.courseName = state.formParam.courseName.replace(/\s/g, '');
@@ -1038,7 +1055,6 @@ export default {
.select .ant-picker {
width: 410px !important;
}
.headers {
height: 73px;
border-bottom: 1px solid #e8e8e8;
@@ -1057,7 +1073,6 @@ export default {
// margin-left: 24px;
}
}
.addTimeBox {
position: relative;
display: flex;
@@ -1329,7 +1344,6 @@ export default {
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
width: 15px;
height: 16px;