初始化转改

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" <!-- <a-input v-model:value="searchParam.userNo" style="width: 276px; height: 40px; border-radius: 8px"
placeholder="请输入工号/讲师姓名进行检索" allowClear showSearch> placeholder="请输入工号/讲师姓名进行检索" allowClear showSearch>
</a-input> --> </a-input> -->
<a-input style="width: 235px; height: 40px; border-radius: 8px" placeholder="请输入姓名进行检索" showSearch allowClear <a-input style="width: 235px; height: 40px; border-radius: 8px" placeholder="请输入姓名/手机号进行检索" showSearch
v-model:value="searchParam.name" v-on:keydown.enter="enterPressHadlerSearch"></a-input> allowClear v-model:value="searchParam.name"
v-on:keydown.enter="enterPressHadlerSearch"></a-input>
</a-form-item> </a-form-item>
<a-form-item class="select"> <a-form-item class="select">
<a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.supplier" placeholder="请输入供应商" <a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.supplier" placeholder="请输入供应商" :options="supperList" allowClear
:options="supperList" allowClear v-on:keydown.enter="enterPressHadlerSearch" showSearch> v-on:keydown.enter="enterPressHadlerSearch" showSearch >
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item class="select"> <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; height: 40px; border-radius: 8px"
placeholder="请输入课程名称进行搜索" allowClear showSearch v-on:keydown.enter="enterPressHadlerSearch"> placeholder="请输入课程名称进行搜索" allowClear showSearch
v-on:keydown.enter="enterPressHadlerSearch">
</a-input> </a-input>
</a-form-item> </a-form-item>
<a-form-item class="select "> <a-form-item class="select ">
<!-- <div class="select addTimeBox"> <!-- <div class="select addTimeBox">
<div class="addTime">授课日期</div> --> <div class="addTime">授课日期</div> -->
<a-range-picker v-model:value="searchdate" style="width: 340px !important;" format="YYYY-MM-DD" <a-range-picker v-model:value="searchdate" style="width: 340px !important;" format="YYYY-MM-DD" valueFormat="YYYY-MM-DD"
valueFormat="YYYY-MM-DD" separator="至" :placeholder="['授课日期开始时间', '授课日期结束时间'] separator="至" :placeholder="['授课日期开始时间', '授课日期结束时间']
" v-on:keydown.enter="enterPressHadlerSearch" /> "
v-on:keydown.enter="enterPressHadlerSearch" />
<!-- </div> --> <!-- </div> -->
</a-form-item> </a-form-item>
<a-form-item class="select"> <a-form-item class="select">
<a-select style="width: 200px ;margin-bottom:20px" v-model:value="searchParam.createFrom" placeholder="录入类型" <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-select>
</a-form-item> </a-form-item>
<a-form-item class="select"> <a-form-item class="select">
@@ -43,12 +47,14 @@
}" allow-clear :getPopupContainer="triggerNode => triggerNode.parentNode || document.body" }" allow-clear :getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
v-model:value="searchParam.courseTypeId" show-search v-model:value="searchParam.courseTypeId" show-search
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择内容分类" tree-default-expand-all :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-tree-select>
</a-form-item> </a-form-item>
<a-form-item class="select"> <a-form-item class="select">
<a-select style="width: 200px" v-model:value="searchParam.courseStatus" placeholder="开课状态" <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-select>
</a-form-item> </a-form-item>
<div style="display: flex; margin-bottom: 20px"> <div style="display: flex; margin-bottom: 20px">
@@ -99,10 +105,8 @@
<template v-if="column.key === 'operation'"> <template v-if="column.key === 'operation'">
<a-space> <a-space>
<a-button type="link" @click="() => handleLook(record, String(record.courseform))">查看</a-button> <a-button type="link" @click="() => handleLook(record, String(record.courseform))">查看</a-button>
<a-button type="link" @click="() => handleModify(record, String(record.courseform))" <a-button type="link" @click="() => handleModify(record, String(record.courseform))" v-if="record.createFrom == 1&&checkMenu('lecturerRecordsEdit')">编辑</a-button>
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 v-if="record.isSuperPermission === 'true' && checkMenu('lecturerRecordsDel')" type="link"
@click="() => deleteModal(record, String(record.courseform))">删除</a-button>
</a-space> </a-space>
</template> </template>
</template> </template>
@@ -112,57 +116,63 @@
</div> </div>
<div class="tableBox "> <div class="tableBox ">
<div class="pa"> <div class="pa">
<a-pagination v-if="tableDataTotal > 10" :showSizeChanger="true" :showQuickJumper="false" <a-pagination
:hideOnSinglePage="false" :pageSize="searchParam.pageSize" :current="searchParam.pageNo" v-if="tableDataTotal > 10"
:total="tableDataTotal" class="pagination" @change="changePagination" /> :showSizeChanger="true"
<!-- :show-total="total => `共 ${total} 条数据`" --> :showQuickJumper="false"
:hideOnSinglePage="false"
:pageSize="searchParam.pageSize"
:current="searchParam.pageNo"
:total="tableDataTotal"
class="pagination"
@change="changePagination"
/>
<!-- :show-total="total => `共 ${total} 条数据`" -->
</div> </div>
</div> </div>
<!-- 弹窗组件 --> <!-- 弹窗组件 -->
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :maskClosable="false" <a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :maskClosable="false" :closable="false"
:closable="false" width="60%" :title="false"> width="60%" :title="false">
<div style="padding:24px;"> <div style="padding:24px;">
<div class="headers" style="margin-top:-24px;"> <div class="headers" style="margin-top:-24px;">
<div class="headerTitle">{{ teacherdialogtitle }}</div> <div class="headerTitle">{{ teacherdialogtitle }}</div>
<img style="width: 29px; height: 29px; cursor: pointer" src="@/assets/images/basicinfo/close.png" <img
@click="cancelTeacherDialog" /> style="width: 29px; height: 29px; cursor: pointer"
src="@/assets/images/basicinfo/close.png"
@click="cancelTeacherDialog"
/>
</div> </div>
<a-form :model="formParam" layout="vertical" ref="formRef"> <a-form :model="formParam" layout="vertical" ref="formRef">
<!--讲师名称 teacherName 内容分类 coursetypeid --> <!--讲师名称 teacherName 内容分类 coursetypeid -->
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :span="12"> <a-col :span="12">
<a-form-item name="teacherName"> <a-form-item name="teacherName">
<template v-slot:label> <template v-slot:label>
<img style="margin-right:4px;width: 7px;height: 7px" <img
src="@/assets/images/coursewareManage/asterisk.png" alt="" /> style="margin-right:4px;width: 7px;height: 7px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
讲师名称 讲师名称
</template> </template>
<!-- TODO GX01 --> <ProjectManagerOutTeacher v-model:value="formParam.name"
<ProjectManagerOutTeacher v-model:value="formParam.name" v-model:name="formParam.teacherName" v-model:name="formParam.teacherName"
v-model:supplier="formParam.supplier" placeholder="请输入工号/讲师姓名进行检索"
placeholder="请输入工号/讲师姓名进行检索" @onChange="managerChange"></ProjectManagerOutTeacher> @onChange="managerChange"></ProjectManagerOutTeacher>
<!-- <a-input v-model:value="formParam.teacherName" allowClear showSearch class="draitem"
placeholder="请输入讲师姓名"></a-input> -->
</a-form-item> </a-form-item>
</a-col> </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-col :span="12">
<a-form-item name="courseTypeId"> <a-form-item name="courseTypeId">
<template v-slot:label> <template v-slot:label>
<img style="margin-right:4px;width: 7px;height: 7px" <img
src="@/assets/images/coursewareManage/asterisk.png" alt="" /> style="margin-right:4px;width: 7px;height: 7px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
内容分类 内容分类
</template> </template>
<a-tree-select :fieldNames="{ <a-tree-select :fieldNames="{
@@ -171,20 +181,26 @@
value: 'code', value: 'code',
}" allow-clear :getPopupContainer="triggerNode => triggerNode.parentNode || document.body" }" allow-clear :getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
v-model:value="formParam.courseTypeId" show-search v-model:value="formParam.courseTypeId" show-search
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择内容分类" :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择内容分类" tree-default-expand-all
tree-default-expand-all :tree-data="sysTypeOptions" @change="treetype"> :tree-data="sysTypeOptions"
@change="treetype">
</a-tree-select> </a-tree-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row>
<!-- 课程名称name 开课状态 courseStatus-->
<a-row :gutter="16">
<a-col :span="12"> <a-col :span="12">
<a-form-item name="courseName"> <a-form-item name="courseName">
<template v-slot:label> <template v-slot:label>
<img style="margin-right:4px;width: 7px;height: 7px" <img
src="@/assets/images/coursewareManage/asterisk.png" alt="" /> style="margin-right:4px;width: 7px;height: 7px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
课程名称 课程名称
</template> </template>
<a-input class="draitem" v-model:value="formParam.courseName" :maxlength="20" showCount <a-input class="draitem" v-model:value="formParam.courseName" :maxlength="20" showCount placeholder="请输入课程名称" @blur="sendName" allowClear showSearch>
placeholder="请输入课程名称" @blur="sendName" allowClear showSearch>
</a-input> </a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -196,62 +212,76 @@
</a-radio-group> </a-radio-group>
</a-form-item> </a-form-item>
</a-col> --> </a-col> -->
</a-row>
<!-- 授课日期 teachingDate 授课时长defaultTeachingTime-->
<a-row :gutter="16">
<a-col :span="12"> <a-col :span="12">
<a-form-item name="teachingDate"> <a-form-item name="teachingDate">
<template v-slot:label> <template v-slot:label>
<img style="margin-right:4px;width: 7px;height: 7px" <img
src="@/assets/images/coursewareManage/asterisk.png" alt="" /> style="margin-right:4px;width: 7px;height: 7px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
授课/课程日期 : 授课/课程日期 :
</template> </template>
<a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" format="YYYY-MM-DD HH:mm" <a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" format="YYYY-MM-DD HH:mm" :show-time="{ format: 'HH:mm' }"
:show-time="{ format: 'HH:mm' }" placeholder="请选择课程日期" /> placeholder="请选择课程日期" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row>
<!-- 授课日期 teachingDate 授课时长defaultTeachingTime-->
<a-row :gutter="16">
<a-col :span="12"> <a-col :span="12">
<a-form-item name="teaching"> <a-form-item name="teaching">
<template v-slot:label> <template v-slot:label>
<img style="margin-right:4px;width: 7px;height: 7px" <img
src="@/assets/images/coursewareManage/asterisk.png" alt="" /> style="margin-right:4px;width: 7px;height: 7px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
授课时长 授课时长
</template> </template>
<a-input v-model:value="formParam.teaching" style="width:100%; height: 40px; border-radius: 8px; " <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> </a-input>
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching != null">{{ (formParam.teaching / 60 <!-- <span style="margin-left: 5px ;" v-if="formParam.teaching != null">{{ (formParam.teaching / 60
).toFixed(2) }}小时</span> ).toFixed(2) }}小时</span>
<span style="margin-left: 5px ;" v-if="formParam.teaching == null">0.00小时</span> --> <span style="margin-left: 5px ;" v-if="formParam.teaching == null">0.00小时</span> -->
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row>
<!-- 参训人数 studys评分 score-->
<a-row :gutter="16">
<a-col :span="12"> <a-col :span="12">
<a-form-item name="studys"> <a-form-item name="studys">
<template v-slot:label> <template v-slot:label>
<img style="margin-right:4px;width: 7px;height: 7px" <img
src="@/assets/images/coursewareManage/asterisk.png" alt="" /> style="margin-right:4px;width: 7px;height: 7px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
参训人数 参训人数
</template> </template>
<a-input v-model:value="formParam.studys" class="draitem" placeholder="请输入参训人数" allowClear showSearch <a-input v-model:value="formParam.studys" class="draitem" placeholder="请输入参训人数" allowClear showSearch :maxLength="8"
:maxLength="8" @blur="clearstudysNumber"> @blur="clearstudysNumber">
</a-input> </a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row>
<!-- 参训人数 studys评分 score-->
<a-row :gutter="16">
<a-col :span="12"> <a-col :span="12">
<a-form-item name="score"> <a-form-item name="score">
<template v-slot:label> <template v-slot:label>
<img style="margin-right:4px;width: 7px;height: 7px" <img
src="@/assets/images/coursewareManage/asterisk.png" alt="" /> style="margin-right:4px;width: 7px;height: 7px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
评分 评分
</template> </template>
<!-- <a-input class="draitem" v-model:value="formParam.score" @blur="clearscoreNumber" placeholder="" allowClear showSearch> <!-- <a-input class="draitem" v-model:value="formParam.score" @blur="clearscoreNumber" placeholder="" allowClear showSearch>
</a-input> --> </a-input> -->
<a-input-number @blur="blurScore" @focus="focusScore" v-model:value="formParam.score" :precision="2" <a-input-number @blur="blurScore" @focus="focusScore" v-model:value="formParam.score" :precision="2" :min="1" :max="100"
:min="1" :max="100" style="width:100%; height: 40px; border-radius: 8px ; " placeholder="请输入评分" /> style="width:100%; height: 40px; border-radius: 8px ; " placeholder="请输入评分" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
@@ -259,7 +289,8 @@
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :span="24"> <a-col :span="24">
<a-form-item label="备注"> <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="请输入" /> style="width: 100%; height: 100px; border-radius: 8px" placeholder="请输入" />
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -283,36 +314,36 @@
</div> </div>
</a-drawer> </a-drawer>
<!-- 查看授课记录 --> <!-- 查看授课记录 -->
<a-drawer class="largeDrawerInside" v-model:visible="teachingdialog" placement="right" :maskClosable="true" <a-drawer class="largeDrawerInside" v-model:visible="teachingdialog" placement="right" :maskClosable="true" :closable="false"
:closable="false" width="60%" :title="false"> width="60%" :title="false">
<div style="padding:24px;"> <div style="padding:24px;">
<div class="headers" style="margin-top:-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" <img
@click="cancelTeachingDialog" /> style="width: 29px; height: 29px; cursor: pointer"
src="@/assets/images/basicinfo/close.png"
@click="cancelTeachingDialog"
/>
</div> </div>
<a-descriptions bordered :column="2" :contentStyle="rowCenter" :labelStyle="{ 'width': '160px' }"> <a-descriptions bordered :column="2" :contentStyle="rowCenter" :labelStyle="{'width':'160px'}">
<a-descriptions-item label="讲师名称">{{ formParam.teacherName || '-' }}</a-descriptions-item> <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.mobile || '-' }}</a-descriptions-item> <a-descriptions-item label="课程类型">{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : formParam.type == 2 ? '手动录入' : '-'
<a-descriptions-item label="课程类型"> }}</a-descriptions-item>
{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : formParam.type == 2 ? '训练班' : formParam.type == 5 ? '手动录入' : '-'}} <a-descriptions-item label="课程名称">{{ formParam.courseName ||'-'}}</a-descriptions-item>
</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 label="开课状态">{{ formParam.courseStatus == 0 ? '未开课' : formParam.courseStatus == 1
? '已开课' : '-' }}</a-descriptions-item> ? '已开课' : '-' }}</a-descriptions-item>
<a-descriptions-item label="内容分类 ">{{ formParam.courseTypeName || '-' }}</a-descriptions-item> <a-descriptions-item label="内容分类 ">{{ formParam.courseTypeName ||'-'}}</a-descriptions-item>
<a-descriptions-item label="授课/课程日期 ">{{ formParam.teachingDate || '-' }} <a-descriptions-item label="授课/课程日期 ">{{ formParam.teachingDate ||'-' }}
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="授课时长 "> <span> {{ formParam.teaching }} 分钟</span> <a-descriptions-item label="授课时长 "> <span > {{ formParam.teaching }} 分钟</span>
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60 <span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
).toFixed(2) }}小时)</span> ).toFixed(2) }}小时)</span>
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="评分 ">{{ <a-descriptions-item label="评分 ">{{ formParam.score?Number(formParam.score).toFixed(0)==0?'-':Number(formParam.score).toFixed(2)+'分':'-'}}</a-descriptions-item>
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="参训人数 ">{{ formParam.studys ? formParam.studys + '人' : '-' }}</a-descriptions-item> <a-descriptions-item label="备注 " :span="2">{{ formParam.remark ||'-' }}</a-descriptions-item>
<a-descriptions-item label="备注 " :span="2">{{ formParam.remark || '-' }}</a-descriptions-item>
</a-descriptions> </a-descriptions>
<!-- <div :style="{ <!-- <div :style="{
position: 'absolute', position: 'absolute',
@@ -358,13 +389,13 @@
</a-modal> </a-modal>
</div> </div>
<!-- <div> <ImageUpload/> </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> :url="'/admin/export/importOutTeacherRecord'" :title="title"></ImportWork>
</div> </div>
</template> </template>
<script lang="jsx"> <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 { useRouter ,useRoute} from "vue-router";
import { useStore } from "vuex"; import { useStore } from "vuex";
import { import {
RightOutlined, RightOutlined,
@@ -378,7 +409,7 @@ import { message } from "ant-design-vue";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
import ProjectManagerOutTeacher from "@/components/project/ProjectManagerOutTeacher"; import ProjectManagerOutTeacher from "@/components/project/ProjectManagerOutTeacher";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { getTeacherCourseList, updateInTeacherCourse, getNewInTeacherCourseList, deleteInTeacherCourse, insertInTeacherCourse, selectSupplier } from "../../api/Teaching"; import { getTeacherCourseList, updateInTeacherCourse, getNewInTeacherCourseList, deleteInTeacherCourse, insertInTeacherCourse,selectSupplier } from "../../api/Teaching";
// import {getProjSt} from "../../api/indexProjStu"; // import {getProjSt} from "../../api/indexProjStu";
import { checkMenu } from '@/utils/utils' import { checkMenu } from '@/utils/utils'
// import AddTeacher from "../../components/drawers/project/AddTeacher" // import AddTeacher from "../../components/drawers/project/AddTeacher"
@@ -397,7 +428,7 @@ export default {
setup() { setup() {
onMounted(() => { onMounted(() => {
const search = sessionStorage.getItem('searchExter') const search = sessionStorage.getItem('searchExter')
if (route.query.activeKey == 2 && search) { if(route.query.activeKey == 2&&search){
state.searchParam = JSON.parse(search) state.searchParam = JSON.parse(search)
} }
searchSubmit() searchSubmit()
@@ -426,14 +457,12 @@ export default {
teachingDate: undefined, //选择时间 teachingDate: undefined, //选择时间
tableDataTotal: -1,//table列表总条数 tableDataTotal: -1,//table列表总条数
formParam: { formParam: {
name: null,
supplier: null,
courseStatus: '1', courseStatus: '1',
createFrom: 1, createFrom: 1,
teaching: null, teaching: null,
teachingDate: null, teachingDate: null,
teacherId: null, teacherId:null,
mobile: null, mobile:null,
score: null score: null
}, },
searchdate: undefined, //选择时间 searchdate: undefined, //选择时间
@@ -475,17 +504,8 @@ export default {
//获取内容分类 //获取内容分类
const sysTypeOptions = computed(() => store.state.content_type); const sysTypeOptions = computed(() => store.state.content_type);
const treetype =(val,lab)=>{
watch(() => state.formParam.name, (val) => { state.formParam.courseTypeName =lab.toString()
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()
} }
const OnTheJobStatusList = ref([ const OnTheJobStatusList = ref([
{ value: 1, label: "项目开课" }, { value: 1, label: "项目开课" },
@@ -493,13 +513,13 @@ export default {
{ value: 3, label: "面授开课" }, { value: 3, label: "面授开课" },
]) ])
const supperList = ref([]) const supperList = ref([])
const getSupplier = () => { const getSupplier = ()=>{
selectSupplier().then(res => { selectSupplier().then(res=>{
if (res.data.code == 200) { if(res.data.code == 200){
supperList.value = res.data.data.map(item => { supperList.value = res.data.data.map(item=>{
return { return {
value: item, value:item,
label: item label:item
} }
}) })
supperList.value.unshift({ supperList.value.unshift({
@@ -510,12 +530,12 @@ export default {
}) })
} }
const AuthenticationStatusList = ref([ const AuthenticationStatusList = ref([
{ value: '', label: "全部" }, { value: '', label: "全部" },
{ value: '0', label: "未开课" }, { value: '0', label: "未开课" },
{ value: '1', label: "已开课" }, { value: '1', label: "已开课" },
]) ])
const entryTypeList = ref([ const entryTypeList = ref([
{ value: '', label: "全部" }, { value: '', label: "全部" },
{ value: '0', label: "系统生成" }, { value: '0', label: "系统生成" },
{ value: '1', label: "手动录入" }, { value: '1', label: "手动录入" },
]) ])
@@ -541,7 +561,7 @@ export default {
key: 'supplier', key: 'supplier',
ellipsis: true, align: "center", ellipsis: true, align: "center",
width: 150, width: 150,
customRender: ({ text }) => text || '-' customRender: ({text})=> text||'-'
}, },
{ {
title: '课程名称 ', title: '课程名称 ',
@@ -566,17 +586,16 @@ export default {
width: 120, width: 120,
customRender: (value) => { customRender: (value) => {
return ( return (
<div> <div>
{ String(value.record.type) {String(value.record.type)
? { ? {
"0": "在线课", "0": "在线课",
"1": "面授课", "1": "面授课",
"2": "训练班", "2": "手动录入",
"5": "手动录入", }[value.record.type + ""]
}[value.record.type + ""] : "-"}
: "-" } </div>
</div> )
)
} }
}, },
{ {
@@ -588,7 +607,7 @@ export default {
customRender: (value) => { customRender: (value) => {
return ( return (
<div> <div>
{ value.record?.teachingDate ? dayjs(value.record?.teachingDate).format("YYYY-MM-DD HH:mm") : '-' } {value.record?.teachingDate?dayjs(value.record?.teachingDate).format("YYYY-MM-DD HH:mm"):'-'}
</div> </div>
); );
}, },
@@ -609,12 +628,12 @@ export default {
customRender: (value) => { customRender: (value) => {
return ( return (
<div> <div>
{ value.record.courseStatus == 0 || value.record.courseStatus == 1 {value.record.courseStatus == 0 || value.record.courseStatus == 1
? { ? {
"0": "未开课", "0": "未开课",
"1": "已开课", "1": "已开课",
}[value.record.courseStatus + ""] || "" }[value.record.courseStatus + ""] || ""
: "-" } : "-"}
</div> </div>
) )
} }
@@ -648,7 +667,7 @@ export default {
customRender: (value) => { customRender: (value) => {
return ( return (
<div> <div>
{ value.record?.teaching ? value.record.teaching + '分钟' : '-' } {value.record?.teaching ? value.record.teaching + '分钟' : '-'}
</div> </div>
); );
}, },
@@ -659,8 +678,8 @@ export default {
key: 'studys', key: 'studys',
ellipsis: true, align: "center", ellipsis: true, align: "center",
width: 120, width: 120,
customRender: ({ text }) => { customRender: ({text})=>{
return text ? text + '人' : '-' return text ? text+'人' : '-'
} }
}, },
{ {
@@ -672,7 +691,7 @@ export default {
customRender: (value) => { customRender: (value) => {
return ( return (
<div> <div>
{ value.record.score ? Number(value.record.score).toFixed(0) == 0 ? '-' : Number(value.record.score).toFixed(2) + '分' : '-' } {value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(2)+'分' : '-'}
</div> </div>
) )
} }
@@ -686,12 +705,12 @@ export default {
customRender: (value) => { customRender: (value) => {
return ( return (
<div> <div>
{ value.record.createFrom == "0" || value.record.createFrom == "1" {value.record.createFrom == "0" || value.record.createFrom == "1"
? { ? {
"0": "系统生成", "0": "系统生成",
"1": "手动录入", "1": "手动录入",
}[value.record.createFrom + ""] || "" }[value.record.createFrom + ""] || ""
: "-" } : "-"}
</div> </div>
) )
} }
@@ -767,9 +786,9 @@ export default {
state.tableLoading = false state.tableLoading = false
}) })
.catch(err => { .catch(err => {
state.tableLoading = false state.tableLoading = false
message.error(err.data.msg) message.error(err.data.msg)
}) })
}; };
getTableDate() getTableDate()
@@ -784,7 +803,7 @@ export default {
cancel() cancel()
state.teacherdialog = true; state.teacherdialog = true;
state.teacherdialogtitle = '添加授课记录' state.teacherdialogtitle = '添加授课记录'
state.formParam.createFrom = '1' state.formParam.createFrom='1'
state.vf = true state.vf = true
} }
@@ -811,12 +830,12 @@ export default {
//保存 //保存
const createTeacherDialog = async () => { const createTeacherDialog = async () => {
state.formParam.teachingDate = state.teachingDate ? dayjs(state.teachingDate).format("YYYY-MM-DD HH:mm").toString() : "" state.formParam.teachingDate = state.teachingDate ? dayjs(state.teachingDate).format("YYYY-MM-DD HH:mm").toString() : ""
if (state.formParam.studys == 0) { if(state.formParam.studys==0){
state.formParam.studys = null state.formParam.studys = null
} }
if (state.formParam.score || state.formParam.score == 0) { if(state.formParam.score||state.formParam.score==0){
state.formParam.score = String(state.formParam.score) state.formParam.score = String(state.formParam.score)
} else { }else{
state.formParam.score = null state.formParam.score = null
} }
state.formParam.courseStatus = String(state.formParam.courseStatus) state.formParam.courseStatus = String(state.formParam.courseStatus)
@@ -897,7 +916,7 @@ export default {
score: null, score: null,
remark: null, remark: null,
teachingDate: null, teachingDate: null,
teacherId: null teacherId:null
} }
state.teachingDate = null state.teachingDate = null
} }
@@ -928,20 +947,18 @@ export default {
const TeacherSystem = () => { const TeacherSystem = () => {
getTeacherCourseList({ id: state.lookTeacherId }).then((res) => { getTeacherCourseList({ id: state.lookTeacherId }).then((res) => {
state.formParam = res.data.data state.formParam = res.data.data
state.teachingDate = res.data.data.teachingDate ? dayjs(res.data.data.teachingDate, 'YYYY-MM-DD HH:mm') : '', state.teachingDate = res.data.data.teachingDate ? dayjs(res.data.data.teachingDate, 'YYYY-MM-DD HH:mm'):'',
state.formParam.name = state.formParam.teacherName state.formParam.name=state.formParam.teacherName
state.formParam.teachingDate = state.teachingDate ? dayjs(state.teachingDate).format("YYYY-MM-DD HH:mm").toString() : "" state.formParam.teachingDate = state.teachingDate ? dayjs(state.teachingDate).format("YYYY-MM-DD HH:mm").toString() : ""
state.formParam.courseStatus = String(state.formParam.courseStatus) state.formParam.courseStatus = String(state.formParam.courseStatus)
}) })
.catch((err) => { .catch((err) => {
}); });
} }
function managerChange(e, l, d, t, orgName) { 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'); // console.log(e, l, d, t, orgName,'e, l, d, t, orgName');
state.formParam.mobile = e ? l.mobile : ''; state.formParam.mobile=e?l.mobile:''
state.formParam.teacherId = e ? l.id : ''; state.formParam.teacherId=e?l.id:''
state.formParam.supplier = e ? l.supplier : '';
// state.searchParam.userNo = d; // state.searchParam.userNo = d;
// state.searchParam.name = t; // state.searchParam.name = t;
// state.searchParam.trainorgName=orgName // state.searchParam.trainorgName=orgName
@@ -956,7 +973,7 @@ export default {
//导出功能 //导出功能
const handleExport = () => { const handleExport = () => {
window.open( window.open(
`${process.env.VUE_APP_BASE_API}/admin/export/exportOutTeacherRecord?recordType=2&name=${state.searchParam.name || ""}&courseName=${state.searchParam.courseName || ""}&createFrom=${state.searchParam.createFrom || ""}&beginTime=${state.searchParam.beginTime || ""}&endTime=${state.searchParam.endTime || ""}&courseTypeId=${state.searchParam.courseTypeId || ""}&courseStatus=${state.searchParam.courseStatus || ""}&supplier=${state.searchParam.supplier || ""}` `${process.env.VUE_APP_BASE_API}/admin/export/exportOutTeacherRecord?recordType=2&name=${state.searchParam.name || ""}&courseName=${state.searchParam.courseName || ""}&createFrom=${state.searchParam.createFrom || ""}&beginTime=${state.searchParam.beginTime|| ""}&endTime=${state.searchParam.endTime || ""}&courseTypeId=${state.searchParam.courseTypeId || ""}&courseStatus=${state.searchParam.courseStatus || ""}&supplier=${state.searchParam.supplier || ""}`
); );
} }
const clearstudysNumber = () => { const clearstudysNumber = () => {
@@ -965,14 +982,14 @@ export default {
const clearscoreNumber = () => { const clearscoreNumber = () => {
state.formParam.score = state.formParam.score.replace(/\D/g, ''); state.formParam.score = state.formParam.score.replace(/\D/g, '');
} }
//回车 //回车
const enterPressHadlerSearch = e => { const enterPressHadlerSearch = e => {
if (e.keyCode === 13) {     if (e.keyCode === 13) {
searchSubmit()       searchSubmit()
}     }
}; };
const sendName = () => { const sendName=()=>{
state.formParam.courseName = state.formParam.courseName.replace(/\s/g, ''); state.formParam.courseName = state.formParam.courseName.replace(/\s/g, '');
} }
const blurScore = () => { const blurScore = () => {
@@ -981,7 +998,7 @@ export default {
const focusScore = () => { const focusScore = () => {
// state.formParam.score == 0 && (state.formParam.score = null) // state.formParam.score == 0 && (state.formParam.score = null)
} }
const sendRemark = () => { const sendRemark=()=>{
state.formParam.remark = state.formParam.remark.replace(/\s/g, ''); state.formParam.remark = state.formParam.remark.replace(/\s/g, '');
} }
return { return {
@@ -1034,11 +1051,10 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped >
.select .ant-picker { .select .ant-picker {
width: 410px !important; width: 410px !important;
} }
.headers { .headers {
height: 73px; height: 73px;
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
@@ -1057,7 +1073,6 @@ export default {
// margin-left: 24px; // margin-left: 24px;
} }
} }
.addTimeBox { .addTimeBox {
position: relative; position: relative;
display: flex; display: flex;
@@ -1329,7 +1344,6 @@ export default {
margin-right: 14px; margin-right: 14px;
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
.search { .search {
width: 15px; width: 15px;
height: 16px; height: 16px;