mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-09 10:56:46 +08:00
7523 lines
212 KiB
Vue
7523 lines
212 KiB
Vue
<!-- 课件管理页面 -->
|
||
<template>
|
||
<div class="courseManage">
|
||
<div class="headerf">
|
||
<!-- 搜索框及按钮 -->
|
||
<div class="filter">
|
||
<div class="filterItems">
|
||
<div class="fi_input fitems">
|
||
<a-input
|
||
v-model:value="createName"
|
||
style="width: 270px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入创建人"
|
||
/>
|
||
</div>
|
||
<div class="fi_input fitems">
|
||
<a-input
|
||
v-model:value="name"
|
||
style="width: 270px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入名称"
|
||
/>
|
||
</div>
|
||
<div class="fi_input fitems">
|
||
<a-input
|
||
v-model:value="projectName"
|
||
style="width: 270px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入所属项目"
|
||
/>
|
||
</div>
|
||
<div class="select fitems">
|
||
<a-select
|
||
v-model:value="auditStatus"
|
||
dropdownClassName="dropdown-style"
|
||
style="width: 200px"
|
||
placeholder="请选择状态"
|
||
:options="options1"
|
||
allowClear
|
||
showSearch
|
||
>
|
||
</a-select>
|
||
</div>
|
||
<div class="select fitems">
|
||
<a-select
|
||
v-model:value="categoryId"
|
||
dropdownClassName="dropdown-style"
|
||
style="width: 200px"
|
||
placeholder="请选择内容分类"
|
||
:options="options2"
|
||
allowClear
|
||
showSearch
|
||
></a-select>
|
||
</div>
|
||
<div class="select fitems">
|
||
<a-range-picker
|
||
v-model:value="projectTime"
|
||
separator="至"
|
||
:placeholder="[' 开始时间', ' 结束时间']"
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="btns">
|
||
<div class="btn btn1" @click="handleSearch1">
|
||
<div class="search"></div>
|
||
<div class="btnText">搜索</div>
|
||
</div>
|
||
<div class="btn btn2" @click="handleRest1">
|
||
<div class="search"></div>
|
||
<div class="btnText">重置</div>
|
||
</div>
|
||
<!-- 2022-11-30注释 后面放开 -->
|
||
<!-- <div class="btn btn3" @click="openMessage">
|
||
<div class="search"></div>
|
||
<div class="btnText">导出</div>
|
||
</div> -->
|
||
<div class="btn btn4" @click="of_hShow">
|
||
<div class="search"></div>
|
||
<div class="btnText">新建课程</div>
|
||
</div>
|
||
</div>
|
||
<!-- 搜索框及按钮 -->
|
||
</div>
|
||
<!-- 选择线上还是面授课弹窗 -->
|
||
<a-modal
|
||
v-model:visible="of_hs"
|
||
:closable="closableQR"
|
||
wrapClassName="sofModal"
|
||
:footer="null"
|
||
style="margin-top: 400px"
|
||
@cancel="of_exit"
|
||
>
|
||
<div
|
||
class="selectonlineface"
|
||
:style="{ display: of_hs ? 'block' : 'none' }"
|
||
>
|
||
<div class="of_header"></div>
|
||
<div class="of_main">
|
||
<div class="ofm_header">
|
||
<div class="add_icon"></div>
|
||
<span>请选择课程类型</span>
|
||
<div class="close_exit" @click="of_exit"></div>
|
||
</div>
|
||
<div class="ofm_body">
|
||
<div class="ofmb_items">
|
||
<div class="signbox">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 3px">课程名称:</span>
|
||
</div>
|
||
<div class="b_input">
|
||
<a-input
|
||
v-model:value="xzinputV1"
|
||
maxlength="20"
|
||
style="width: 440px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入课程名称"
|
||
/>
|
||
<div class="inp_num">
|
||
<span style="color: #c7cbd2">{{ xzinputV1.length }}/20</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="b_sub">
|
||
<div class="bs_header">
|
||
<div class="b_left">
|
||
<span style="color: #999ba3">课程命名规则</span>
|
||
</div>
|
||
<div class="b_right" @click="hideShow" style="cursor: pointer">
|
||
<div
|
||
class="b_zk"
|
||
:style="{ display: hideshow ? 'block' : 'none' }"
|
||
>
|
||
<div class="zksqbox" style="display: flex">
|
||
<span style="color: #4ea6ff; margin-right: 5px">
|
||
收起
|
||
</span>
|
||
<div class="b_icon">
|
||
<img
|
||
src="@/assets/images/coursewareManage/up.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div
|
||
class="b_sq"
|
||
:style="{ display: hideshow ? 'none' : 'block' }"
|
||
>
|
||
<div class="zksqbox" style="display: flex">
|
||
<span style="color: #4ea6ff; margin-right: 5px">
|
||
展开
|
||
</span>
|
||
<div class="b_icon">
|
||
<img
|
||
src="@/assets/images/coursewareManage/down.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div
|
||
class="bl_detail"
|
||
:style="{ display: hideshow ? 'block' : 'none' }"
|
||
>
|
||
<span style="color: #999ba3">
|
||
1、课程名称统一不加书名号。<br/>
|
||
2、项目名称、属地等信息如需体现在课程名称中,请放在课程名称信息
|
||
之后,如“时间管理(GROW180项目)”或“时间管理(B*)”确保首先
|
||
看到的是课程内容主题。<br/>
|
||
3、同一课程如先后有多个版本,原则上仅开放最新版本,旧版本应停用
|
||
版本如必须以年份标明,请以“沟通技巧(2022年)”的方式呈现。
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class="ofmb_items">
|
||
<div class="signbox">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span>授课形式</span>
|
||
</div>
|
||
<a-radio-group v-model:value="valueE1">
|
||
<div class="bc_box">
|
||
<div class="bc_boxl">
|
||
<div class="ol_checkbox">
|
||
<a-radio
|
||
v-model:checked="checked"
|
||
:value="1"
|
||
@click="bs_hShow"
|
||
>
|
||
线上
|
||
</a-radio>
|
||
</div>
|
||
</div>
|
||
<div class="bc_boxr">
|
||
<div class="ol_checkbox">
|
||
<a-radio
|
||
v-model:checked="checked"
|
||
:value="2"
|
||
@click="clear_valueE1"
|
||
>
|
||
面授
|
||
</a-radio>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-radio-group>
|
||
</div>
|
||
<div class="b_sup" :style="{ display: bs_hs ? 'block' : 'none' }">
|
||
<div class="ofmb_items">
|
||
<div class="signbox">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span>是否设置目录</span>
|
||
</div>
|
||
<a-radio-group v-model:value="valueE2">
|
||
<div class="bc_box">
|
||
<div class="ol_checkbox">
|
||
<a-radio
|
||
v-model:checked="checked"
|
||
:value="3"
|
||
@click="clear_valueE2"
|
||
>
|
||
是
|
||
</a-radio>
|
||
</div>
|
||
<div class="ol_checkbox">
|
||
<a-radio
|
||
v-model:checked="checked"
|
||
:value="4"
|
||
@click="clear_valueE2"
|
||
>
|
||
否
|
||
</a-radio>
|
||
</div>
|
||
</div>
|
||
</a-radio-group>
|
||
</div>
|
||
</div>
|
||
<div class="b_footer">
|
||
<div class="btn btn5" @click="of_exit1">
|
||
<div class="btnText">取消</div>
|
||
</div>
|
||
<div class="btn btn6" @click="createft">
|
||
<div class="btnText">确定</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!-- 选择线上还是面授课弹窗 -->
|
||
<!-- 确定新建面授课弹窗 -->
|
||
<a-modal
|
||
v-model:visible="ft_hs"
|
||
title="Title"
|
||
@ok="handlePush"
|
||
:footer="null"
|
||
:closable="false"
|
||
wrapClassName="modalStyle facteachModal"
|
||
width="80%"
|
||
@cancel="ft_exit"
|
||
>
|
||
<div class="modalHeader">
|
||
<div class="headerLeft">
|
||
<img
|
||
style="width: 17px; height: 18px; margin-right: 8px"
|
||
src="../../assets/images/basicinfo/add.png"
|
||
/>
|
||
<span v-if="ft_eidt" class="headerLeftText">编辑面授课</span>
|
||
<span v-else class="headerLeftText">新建面授课</span>
|
||
</div>
|
||
<div style="margin-right: 57px; cursor: pointer">
|
||
<img
|
||
@click="ft_exit"
|
||
style="width: 22px; height: 22px"
|
||
src="../../assets/images/basicinfo/close22.png"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="modalMain">
|
||
<div class="faceteach" :style="{ display: ft_hs ? 'block' : 'none' }">
|
||
<div class="ft_main">
|
||
<div class="m_title">课程信息</div>
|
||
<div class="m_body">
|
||
<div class="mb_left">
|
||
<div class="mbl_items">
|
||
<div class="item_nam">
|
||
<div class="asterisk_icon">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 14px">课程名称</span>
|
||
</div>
|
||
<div class="item_inp">
|
||
<div class="i1_input">
|
||
<a-input
|
||
v-model:value="qdms_inputV1"
|
||
maxlength="90"
|
||
style="width: 440px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入课程名称"
|
||
/>
|
||
<div class="inp_num">
|
||
<span style="color: #c7cbd2">
|
||
{{ qdms_inputV1.length }}/90
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="i2_cz">
|
||
<div class="i2_top">
|
||
<div class="i2_left">
|
||
<span style="color: #999ba3">课程命名规则</span>
|
||
</div>
|
||
<div
|
||
class="i2_right"
|
||
@click="hideShow"
|
||
style="cursor: pointer"
|
||
>
|
||
<div
|
||
class="b_zk"
|
||
:style="{ display: hideshow ? 'block' : 'none' }"
|
||
>
|
||
<span style="color: #4ea6ff">收起</span>
|
||
</div>
|
||
<div
|
||
class="b_sq"
|
||
:style="{ display: hideshow ? 'none' : 'block' }"
|
||
>
|
||
<span style="color: #4ea6ff">展开</span>
|
||
</div>
|
||
<div class="b_icon"></div>
|
||
</div>
|
||
</div>
|
||
<div
|
||
class="i2_detail"
|
||
:style="{ display: hideshow ? 'block' : 'none' }"
|
||
>
|
||
<span style="color: #999ba3">
|
||
1、课程名称统一不加书名号。<br/>
|
||
2、项目名称、属地等信息如需体现在课程名称中,请放在课程名称信息
|
||
之后,如“时间管理(GROW180项目)”或“时间管理(B*)”确保首先
|
||
看到的是课程内容主题。<br/>
|
||
3、同一课程如先后有多个版本,原则上仅开放最新版本,旧版本应停用
|
||
版本如必须以年份标明,请以“沟通技巧(2022年)”的方式呈现。
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class="mbl_items2">
|
||
<div class="item_nam">
|
||
<div class="asterisk_icon">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 14px">封面图</span>
|
||
</div>
|
||
<div class="item_inp">
|
||
<a-upload
|
||
name="avatar"
|
||
list-type="picture-card"
|
||
class="avatar-uploader"
|
||
:show-upload-list="false"
|
||
:before-upload="beforeUpload"
|
||
disabled
|
||
>
|
||
<img
|
||
class="i_upload_img"
|
||
v-if="imageUrl"
|
||
:src="imageUrl"
|
||
alt="avatar"
|
||
/>
|
||
<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">
|
||
<span style="color: #999ba3">
|
||
高宽比为16:9 (如:800*450) png或jpg图片
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="mbl_items">
|
||
<div class="item_nam">
|
||
<div class="asterisk_icon">
|
||
<img
|
||
style="width: 10px; height: 10px"
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 14px">目标人群</span>
|
||
</div>
|
||
<div class="item_inp">
|
||
<div class="i1_input">
|
||
<a-input
|
||
v-model:value="qdms_inputV2"
|
||
maxlength="50"
|
||
style="width: 440px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入目标人群"
|
||
/>
|
||
<div class="inp_num">
|
||
<span style="color: #c7cbd2">
|
||
{{ qdms_inputV2.length }}/50
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="mbl_items">
|
||
<div class="item_nam">
|
||
<span style="margin-right: 14px">课程价值</span>
|
||
</div>
|
||
<div class="item_inp">
|
||
<div class="i1_input">
|
||
<a-input
|
||
v-model:value="qdms_inputV3"
|
||
maxlength="200"
|
||
style="width: 440px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入课程价值"
|
||
/>
|
||
<div class="inp_num">
|
||
<span style="color: #c7cbd2">
|
||
{{ qdms_inputV3.length }}/200
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="mbl_items">
|
||
<div class="item_nam">
|
||
<div class="asterisk_icon">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 14px">内容分类</span>
|
||
</div>
|
||
<div class="item_inp">
|
||
<div class="select i6_input">
|
||
<a-select
|
||
:getPopupContainer="
|
||
(triggerNode) => {
|
||
return triggerNode.parentNode || document.body;
|
||
}
|
||
"
|
||
v-model:value="fen_lei"
|
||
dropdownClassName="dropdown-style"
|
||
style="width: 440px"
|
||
placeholder="请选择"
|
||
:options="options2"
|
||
allowClear
|
||
showSearch
|
||
></a-select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="mbl_items">
|
||
<div class="item_nam">
|
||
<span style="margin-right: 14px">场景</span>
|
||
</div>
|
||
<div class="item_inp">
|
||
<div class="select i7_input">
|
||
<a-select
|
||
:getPopupContainer="
|
||
(triggerNode) => {
|
||
return triggerNode.parentNode || document.body;
|
||
}
|
||
"
|
||
v-model:value="chang_jin"
|
||
dropdownClassName="dropdown-style"
|
||
style="width: 440px"
|
||
placeholder="请选择"
|
||
:options="options3"
|
||
allowClear
|
||
showSearch
|
||
></a-select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="mbl_items">
|
||
<div class="item_nam">
|
||
<span style="margin-right: 14px">内容标签</span>
|
||
</div>
|
||
<div class="item_inp">
|
||
<a-select
|
||
:getPopupContainer="
|
||
(triggerNode) => {
|
||
return triggerNode.parentNode || document.body;
|
||
}
|
||
"
|
||
v-model:value="tags_val"
|
||
mode="tags"
|
||
style="width: 440px; height: 40px"
|
||
placeholder="请输入按回车键创建成功"
|
||
:options="tagsOptions"
|
||
></a-select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="mb_right">
|
||
<div class="mbl_items">
|
||
<div class="item_nam">
|
||
<div class="asterisk_icon">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt="asterisk"
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 14px">授课教师</span>
|
||
</div>
|
||
<div class="item_inp">
|
||
<div class="i1_input">
|
||
|
||
<ProjectManager v-model:value="member.value"
|
||
v-model:name="member.name"></ProjectManager>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="mbl_items2">
|
||
<div class="item_nam">
|
||
<span style="margin-right: 14px">课程简介</span>
|
||
</div>
|
||
<div class="item_inp">
|
||
<div class="i10_textarea">
|
||
<a-textarea
|
||
v-model:value="qdms_inputV6"
|
||
maxlength="150"
|
||
style="width: 440px; height: 100px; border-radius: 8px"
|
||
placeholder="请输入"
|
||
/>
|
||
<div class="inp_num">
|
||
<span style="color: #c7cbd2">
|
||
{{ qdms_inputV6.length }}/150
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="mbl_items">
|
||
<div class="item_nam">
|
||
<span style="margin-right: 10px">附件</span>
|
||
</div>
|
||
<div class="item_inp">
|
||
<a-upload
|
||
multiple
|
||
:show-upload-list="false"
|
||
:before-upload="beforeUpload2"
|
||
>
|
||
<div class="accessory" style="cursor: pointer">
|
||
<div class="accessory_icon">
|
||
<img
|
||
src="@/assets/images/coursewareManage/enclosure.png"
|
||
alt="enclosure"
|
||
/>
|
||
</div>
|
||
<span style="color: #4ea6ff">添加附件</span>
|
||
</div>
|
||
</a-upload>
|
||
<span>
|
||
支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class="mbl_items12">
|
||
<div
|
||
class="i12_box1"
|
||
v-for="(item, index) in imgList"
|
||
:key="index"
|
||
>
|
||
<div class="file_img"></div>
|
||
<div class="file_detail">
|
||
<!-- <div class="file_name">
|
||
<span style="color: #6f6f6f">{{ item.name }}</span>
|
||
</div> -->
|
||
<!-- 条件渲染 s -->
|
||
<!-- <div class="file_size">
|
||
<span style="color: #999ba3">{{ item.size }}</span>
|
||
</div> -->
|
||
<div class="file_updata">
|
||
<div class="updatabox">
|
||
<div class="updatacolor"></div>
|
||
<div class="updataxq">上传完成</div>
|
||
<!-- <div class="updatacolor2"></div>
|
||
<div class="updataxq2">上传失败</div> -->
|
||
<!-- <div class="updatacolor3"></div>
|
||
<div class="updataxq3">正在上传</div> -->
|
||
</div>
|
||
<div class="upjd">
|
||
<span style="margin: auto 5px">100%</span>
|
||
</div>
|
||
</div>
|
||
<!-- 条件渲染 e -->
|
||
</div>
|
||
<div class="file_operation">
|
||
<div class="fobox">
|
||
<span style="color: #4ea6ff" @click="handleDel(index)">
|
||
删除
|
||
</span>
|
||
</div>
|
||
<!-- <div class="fobox">
|
||
<span style="color: #4ea6ff">重传</span>
|
||
</div>
|
||
<div class="fobox">
|
||
<span style="color: #4ea6ff">取消</span>
|
||
</div> -->
|
||
<!-- <div class="fobox">
|
||
<span style="color: #4ea6ff; margin-right: 5px">
|
||
暂停
|
||
</span>
|
||
</div>
|
||
<div class="fobox">
|
||
<span style="color: #4ea6ff">取消</span>
|
||
</div> -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="m_footer">
|
||
<div class="fotnam">
|
||
<span>课程大纲</span>
|
||
</div>
|
||
<div class="fotarea">
|
||
<div style="border: 1px solid #ccc">
|
||
<Toolbar
|
||
style="border-bottom: 1px solid #ccc"
|
||
:editor="editorRef"
|
||
:defaultConfig="toolbarConfig"
|
||
:mode="mode"
|
||
/>
|
||
<Editor
|
||
style="height: 500px; overflow-y: hidden"
|
||
v-model="valueHtml"
|
||
:defaultConfig="editorConfig"
|
||
:mode="mode"
|
||
@onCreated="handleCreated"
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="m_btn">
|
||
<div class="btn btn5" @click="ft_exit">
|
||
<div class="btnText">取消</div>
|
||
</div>
|
||
<div class="btn btn6" v-if="isEdit == 0" @click="handlePush">
|
||
<div class="btnText">
|
||
确定
|
||
</div>
|
||
</div>
|
||
<div class="btn btn6" v-if="isEdit == 1">
|
||
<div class="btnText">已保存</div>
|
||
</div>
|
||
<div class="btn btn6" @click="reviewClick">
|
||
<div class="btnText">提交审核</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!-- 确定新建面授课弹窗 -->
|
||
<!-- 表格 -->
|
||
<div class="tableBox">
|
||
<a-table
|
||
:columns="columns1"
|
||
:data-source="tableData1"
|
||
:loading="tableDataTotal1 === -1 ? true : false"
|
||
:scroll="{ x: 600 }"
|
||
expandRowByClick="true"
|
||
@expand="expandTable"
|
||
:pagination="false"
|
||
>
|
||
<template #bodyCell="{ record, column }">
|
||
<template
|
||
v-if="
|
||
(String(record.status) === '0' || record.status === '未提交') &&
|
||
column.key === 'operation'
|
||
"
|
||
>
|
||
<span
|
||
:class="[
|
||
String(record.courseform) === '1'
|
||
? 'disabled table-operation'
|
||
: 'table-operation',
|
||
]"
|
||
>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleEdit(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
编辑
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleCopy(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
复制
|
||
</a>
|
||
<a-dropdown>
|
||
<template #overlay>
|
||
<a-menu>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showPrower(record);
|
||
}
|
||
"
|
||
>
|
||
权限名单
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showOwnPrower(record);
|
||
}
|
||
"
|
||
>
|
||
归属权
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showViewPrower(record);
|
||
}
|
||
"
|
||
>查看权</a-menu-item
|
||
>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showManagePrower(record);
|
||
}
|
||
"
|
||
>管理权</a-menu-item
|
||
>
|
||
</a-menu>
|
||
</template>
|
||
<a>
|
||
授权
|
||
<down-outlined/>
|
||
</a>
|
||
</a-dropdown>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleDelete(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
删除
|
||
</a>
|
||
</span>
|
||
</template>
|
||
<template
|
||
v-if="
|
||
(String(record.status) === '1' || record.status === '待审核') &&
|
||
column.key === 'operation'
|
||
"
|
||
>
|
||
<span
|
||
:class="[
|
||
String(record.courseform) === '1'
|
||
? 'disabled table-operation'
|
||
: 'table-operation',
|
||
]"
|
||
>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleRejectExit(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
撤回
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleCopy(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
复制
|
||
</a>
|
||
<a-dropdown>
|
||
<template #overlay>
|
||
<a-menu>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showPrower(record);
|
||
}
|
||
"
|
||
>
|
||
权限名单
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showOwnPrower(record);
|
||
}
|
||
"
|
||
>
|
||
归属权
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showViewPrower(record);
|
||
}
|
||
"
|
||
>查看权</a-menu-item
|
||
>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showManagePrower(record);
|
||
}
|
||
"
|
||
>管理权</a-menu-item
|
||
>
|
||
</a-menu>
|
||
</template>
|
||
<a>
|
||
授权
|
||
<down-outlined/>
|
||
</a>
|
||
</a-dropdown>
|
||
</span>
|
||
</template>
|
||
<template
|
||
v-if="
|
||
(String(record.status) === '2' || record.status === '已审核') &&
|
||
String(record.kkty) === '1' &&
|
||
column.key === 'operation'
|
||
"
|
||
>
|
||
<span
|
||
:class="[
|
||
String(record.courseform) === '1'
|
||
? 'disabled table-operation'
|
||
: 'table-operation',
|
||
]"
|
||
>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleStart(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
开课
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleEdit(record, String(record.courseform));
|
||
}
|
||
"
|
||
>查看</a
|
||
>
|
||
<a
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
if (String(record.courseform) === ('1' || '线上')) {
|
||
om_1 = true;
|
||
ft_1 = false;
|
||
} else if (String(record.courseform) === ('2' || '面授')) {
|
||
om_1 = true;
|
||
ft_1 = true;
|
||
}
|
||
handleGuan22(record);
|
||
}
|
||
"
|
||
>
|
||
管理
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleCopy(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
复制
|
||
</a>
|
||
<a-dropdown>
|
||
<template #overlay>
|
||
<a-menu>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showPrower(record);
|
||
}
|
||
"
|
||
>
|
||
权限名单
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showOwnPrower(record);
|
||
}
|
||
"
|
||
>
|
||
归属权
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showViewPrower(record);
|
||
}
|
||
"
|
||
>查看权</a-menu-item
|
||
>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showManagePrower(record);
|
||
}
|
||
"
|
||
>管理权</a-menu-item
|
||
>
|
||
</a-menu>
|
||
</template>
|
||
<a>
|
||
授权
|
||
<down-outlined/>
|
||
</a>
|
||
</a-dropdown>
|
||
<span>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleStop(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
停用
|
||
</a>
|
||
</span>
|
||
</span>
|
||
</template>
|
||
<template
|
||
v-if="
|
||
(String(record.status) === '2' || record.status === '已审核') &&
|
||
String(record.kkty) === '0' &&
|
||
column.key === 'operation'
|
||
"
|
||
>
|
||
<span
|
||
:class="[
|
||
String(record.courseform) === '1'
|
||
? 'disabled table-operation'
|
||
: 'table-operation',
|
||
]"
|
||
>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleStart(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
开课
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleEdit(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
编辑
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
if (String(record.courseform) === ('1' || '线上')) {
|
||
om_1 = true;
|
||
ft_1 = false;
|
||
} else if (String(record.courseform) === ('2' || '面授')) {
|
||
om_1 = true;
|
||
ft_1 = true;
|
||
}
|
||
handleGuan22(record);
|
||
}
|
||
"
|
||
>
|
||
管理
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleCopy(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
复制
|
||
</a>
|
||
<a-dropdown>
|
||
<template #overlay>
|
||
<a-menu>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showPrower(record);
|
||
}
|
||
"
|
||
>
|
||
权限名单
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showOwnPrower(record);
|
||
}
|
||
"
|
||
>
|
||
归属权
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showViewPrower(record);
|
||
}
|
||
"
|
||
>查看权</a-menu-item
|
||
>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showManagePrower(record);
|
||
}
|
||
"
|
||
>管理权</a-menu-item
|
||
>
|
||
</a-menu>
|
||
</template>
|
||
<a>
|
||
授权
|
||
<down-outlined/>
|
||
</a>
|
||
</a-dropdown>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleOpen(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
启用
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleDelete(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
删除
|
||
</a>
|
||
</span>
|
||
</template>
|
||
<template
|
||
v-if="
|
||
(String(record.status) === '-1' ||
|
||
record.status === '审核未通过') &&
|
||
column.key === 'operation'
|
||
"
|
||
>
|
||
<span
|
||
:class="[
|
||
String(record.courseform) === '1'
|
||
? 'disabled table-operation'
|
||
: 'table-operation',
|
||
]"
|
||
>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleEdit(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
编辑
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleCopy(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
复制
|
||
</a>
|
||
<a-dropdown>
|
||
<template #overlay>
|
||
<a-menu>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showPrower(record);
|
||
}
|
||
"
|
||
>
|
||
权限名单
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showOwnPrower(record);
|
||
}
|
||
"
|
||
>
|
||
归属权
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showViewPrower(record);
|
||
}
|
||
"
|
||
>查看权</a-menu-item
|
||
>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
if (String(record.courseform) === '1') {
|
||
return;
|
||
}
|
||
showManagePrower(record);
|
||
}
|
||
"
|
||
>管理权</a-menu-item
|
||
>
|
||
</a-menu>
|
||
</template>
|
||
<a>
|
||
授权
|
||
<down-outlined/>
|
||
</a>
|
||
</a-dropdown>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleDelete(record, String(record.courseform));
|
||
}
|
||
"
|
||
>
|
||
删除
|
||
</a>
|
||
</span>
|
||
</template>
|
||
</template>
|
||
</a-table>
|
||
</div>
|
||
<div class="pa">
|
||
<a-pagination
|
||
showSizeChanger="true"
|
||
showQuickJumper="true"
|
||
hideOnSinglePage="true"
|
||
:pageSize="pageSize1"
|
||
:current="currentPage1"
|
||
:total="tableDataTotal1"
|
||
class="pagination"
|
||
@change="handelChangePage1"
|
||
/>
|
||
</div>
|
||
<!-- 表格 -->
|
||
<!-- 操作 在线面授课程管理 页面 -->
|
||
<a-modal
|
||
v-model:visible="om_1"
|
||
title="Title"
|
||
@ok="closeModal"
|
||
:footer="null"
|
||
:closable="false"
|
||
wrapClassName="modalStyle onlmanageModal"
|
||
width="80%"
|
||
>
|
||
<div class="modalHeader">
|
||
<div class="headerLeft">
|
||
<img
|
||
style="width: 17px; height: 18px; margin-right: 8px"
|
||
src="@/assets/images/coursewareManage/pc.png"
|
||
/>
|
||
<div :style="{ display: ft_1 ? 'none' : 'block' }">
|
||
<span class="headerLeftText">在线课程管理</span>
|
||
</div>
|
||
<div :style="{ display: ft_1 ? 'block' : 'none' }">
|
||
<span class="headerLeftText">面授课程管理</span>
|
||
</div>
|
||
</div>
|
||
<div style="margin-right: 57px; cursor: pointer">
|
||
<img
|
||
@click="om_exit"
|
||
style="width: 22px; height: 22px"
|
||
src="../../assets/images/basicinfo/close22.png"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="modalMain">
|
||
<div class="onlinemanage" :style="{ display: om_1 ? 'block' : 'none' }">
|
||
<div class="om_main">
|
||
<div class="om_body">
|
||
<div class="b_title">课程:{{ newCourseName }}</div>
|
||
<div class="b_sub">
|
||
<div class="bs_type">类型:</div>
|
||
<div class="bs_right">录播课</div>
|
||
<div class="bs_left">内容分类:</div>
|
||
<div class="bs_right">领导力</div>
|
||
<div class="bs_left">状态:</div>
|
||
<div class="bs_right">已审核</div>
|
||
</div>
|
||
<a-tabs
|
||
class="b_menu"
|
||
v-model:activeKey="faceManageTab"
|
||
size="large"
|
||
:tabBarStyle="{ marginLeft: '10px' }"
|
||
@change="faceManageChange"
|
||
>
|
||
<!-- <a-tab-pane key="1" tab="报名管理">
|
||
<div class="b_menunav">
|
||
<div class="bm_select">
|
||
<a-select
|
||
class="select"
|
||
ref="select"
|
||
placeholder="请选择状态"
|
||
v-model:value="gl_selectV1"
|
||
style="width: 200px"
|
||
:options="options1"
|
||
allowClear
|
||
showSearch
|
||
@focus="focus"
|
||
@change="handleChange"
|
||
>
|
||
|
||
</a-select>
|
||
</div>
|
||
<div class="bm_input">
|
||
<a-input
|
||
v-model:value="gl_inputv1"
|
||
style="width: 200px; height: 40px; border-radius: 8px"
|
||
placeholder="姓名"
|
||
/>
|
||
</div>
|
||
<div class="bm_btn">
|
||
<div class="btn btn1" @click="handleSearchTable2">
|
||
<div class="search"></div>
|
||
<div class="btnText">搜索</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="bm_table" style="margin-bottom: 20px">
|
||
<a-table
|
||
:columns="columns2"
|
||
:data-source="tableData2"
|
||
:loading="tableDataTotal22 === -1 ? true : false"
|
||
:pagination="false"
|
||
/>
|
||
<div class="tableBox" style="margin-top: 50px">
|
||
<div class="pa">
|
||
<a-pagination
|
||
showSizeChanger="true"
|
||
showQuickJumper="true"
|
||
hideOnSinglePage="true"
|
||
:pageSize="pageSize22"
|
||
:current="currentPage22"
|
||
:total="tableDataTotal22"
|
||
class="pagination"
|
||
@change="handelChangePage22"
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-tab-pane> -->
|
||
<a-tab-pane key="1" tab="学习记录">
|
||
<div class="b_menunav">
|
||
<div class="bm_select">
|
||
<a-select
|
||
class="select"
|
||
ref="select"
|
||
placeholder="请选择状态"
|
||
v-model:value="gl_selectV2"
|
||
style="width: 200px"
|
||
:options="options1"
|
||
allowClear
|
||
showSearch
|
||
@focus="focus"
|
||
@change="handleChange"
|
||
>
|
||
<!-- <a-select-option value="status">状态</a-select-option>
|
||
<a-select-option value="passed">已通过</a-select-option>
|
||
<a-select-option value="weishenhe">
|
||
未审核
|
||
</a-select-option>
|
||
<a-select-option value="reject">
|
||
管理员拒绝
|
||
</a-select-option> -->
|
||
</a-select>
|
||
</div>
|
||
<div class="bm_input">
|
||
<a-input
|
||
v-model:value="gl_inputV2"
|
||
style="width: 200px; height: 40px; border-radius: 8px"
|
||
placeholder="姓名"
|
||
/>
|
||
</div>
|
||
<div class="bm_btn">
|
||
<div class="btn btn1" @click="handleSearchTable3">
|
||
<div class="search"></div>
|
||
<div class="btnText">搜索</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="bm_table" style="margin-bottom: 20px">
|
||
<a-table
|
||
:columns="columns2"
|
||
:data-source="tableData3"
|
||
:loading="tableDataTotal222 === -1 ? true : false"
|
||
:pagination="false"
|
||
>
|
||
<template #bodyCell="{ column }">
|
||
<template v-if="column.key === 'opacation'">
|
||
<a @click="ckxq_hs">查看详情</a>
|
||
</template>
|
||
</template>
|
||
</a-table>
|
||
<div class="tableBox" style="margin-top: 50px">
|
||
<div class="pa">
|
||
<a-pagination
|
||
showSizeChanger="true"
|
||
showQuickJumper="true"
|
||
hideOnSinglePage="true"
|
||
:pageSize="pageSize222"
|
||
:current="currentPage222"
|
||
:total="tableDataTotal222"
|
||
class="pagination"
|
||
@change="handelChangePage222"
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-tab-pane>
|
||
</a-tabs>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!-- 操作 在线面授课程管理 页面 -->
|
||
<!-- 面授课程管理查看详情 页面 -->
|
||
<a-modal
|
||
v-model:visible="om_ckxq"
|
||
title="Title"
|
||
@ok="closeModal"
|
||
:footer="null"
|
||
:closable="false"
|
||
wrapClassName="modalStyle coursewareDetail"
|
||
width="80%"
|
||
>
|
||
<div class="modalHeader">
|
||
<div class="headerLeft">
|
||
<img
|
||
style="width: 17px; height: 18px; margin-right: 8px"
|
||
src="@/assets/images/coursewareManage/detail.png"
|
||
/>
|
||
<span class="headerLeftText">查看详情</span>
|
||
</div>
|
||
<div style="margin-right: 57px; cursor: pointer">
|
||
<img
|
||
@click="ftsr_exit"
|
||
style="width: 22px; height: 22px"
|
||
src="../../assets/images/basicinfo/close22.png"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="modalMain">
|
||
<div
|
||
class="ftsturecord"
|
||
:style="{ display: om_ckxq ? 'block' : 'none' }"
|
||
>
|
||
<div class="ftsr_main">
|
||
<div class="ftsr_table">
|
||
<a-table
|
||
:columns="columns4"
|
||
:data-source="tableData4"
|
||
:loading="tableDataTotal === -1 ? true : false"
|
||
:pagination="false"
|
||
>
|
||
</a-table>
|
||
</div>
|
||
<div class="ftsr_btn" @click="ftsr_exit">
|
||
<div class="btnText">取消</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!-- 面授 课程管理查看详情 页面 -->
|
||
<!--开课页面 -->
|
||
<a-modal
|
||
v-model:visible="stm_hs"
|
||
title="Title"
|
||
@ok="closeModal"
|
||
:footer="null"
|
||
:closable="false"
|
||
wrapClassName="modalStyle schtimeModal"
|
||
width="80%"
|
||
@cancel="stm_exit"
|
||
>
|
||
<div class="modalHeader">
|
||
<div class="headerLeft">
|
||
<img
|
||
style="width: 17px; height: 18px; margin-right: 8px"
|
||
src="@/assets/images/coursewareManage/scht.png"
|
||
/>
|
||
<span class="headerLeftText">开课</span>
|
||
</div>
|
||
<div style="margin-right: 57px; cursor: pointer">
|
||
<img
|
||
@click="stm_exit"
|
||
style="width: 22px; height: 22px"
|
||
src="../../assets/images/basicinfo/close22.png"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="modalMain">
|
||
<div class="schooltime" :style="{ display: stm_hs ? 'block' : 'none' }">
|
||
<div class="st_main">
|
||
<div class="stm_inputbtn">
|
||
<a-input
|
||
v-model:value="kk_inputV1"
|
||
style="
|
||
width: 270px;
|
||
height: 40px;
|
||
border-radius: 8px;
|
||
margin-right: 14px;
|
||
"
|
||
placeholder="请输入创建人"
|
||
/>
|
||
<a-input
|
||
v-model:value="kk_inputV2"
|
||
style="
|
||
width: 270px;
|
||
height: 40px;
|
||
border-radius: 8px;
|
||
margin-right: 14px;
|
||
"
|
||
placeholder="请输入教师名称"
|
||
/>
|
||
<div class="select">
|
||
<a-date-picker
|
||
v-model:value="selectTime"
|
||
type="date"
|
||
placeholder="创建时间"
|
||
style="width: 270px; margin-right: 14px"
|
||
/>
|
||
</div>
|
||
<div class="stm_btn btn1" @click="handleSearchTable">
|
||
<div class="search"></div>
|
||
<div class="btnText">搜索</div>
|
||
</div>
|
||
<div class="stm_btn btn2" @click="handleRestTable">
|
||
<div class="reset"></div>
|
||
<div class="btnText">重置</div>
|
||
</div>
|
||
<div class="stm_btn3 btn3" @click="createkk">
|
||
<div class="add"></div>
|
||
<div class="btnText">
|
||
<span style="color: #ffffff">新建开课</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 无数据样式 -->
|
||
<div class="notable" v-if="tableData6.length === 0">
|
||
<div class="notablebox">
|
||
<div class="boxbody">
|
||
<div class="boximg"></div>
|
||
<div class="boxtitle">
|
||
<span style="color: #ffb64e; font-size: 20px">无课程</span>
|
||
</div>
|
||
<div class="boxtitle2">
|
||
<span style="color: #878b92">请点击新建开课,创建课程</span>
|
||
</div>
|
||
</div>
|
||
<div class="smallleft"></div>
|
||
<div class="smallright"></div>
|
||
</div>
|
||
</div>
|
||
<!-- 无数据样式 -->
|
||
<!-- 有数据表格 -->
|
||
<div class="stm_table" v-else>
|
||
<a-table
|
||
:columns="columns6"
|
||
:data-source="tableData6"
|
||
:loading="tableDataTotal2 === -1 ? true : false"
|
||
:scroll="{ x: 700, y: 800 }"
|
||
expandRowByClick="true"
|
||
@expand="expandTable"
|
||
:pagination="false"
|
||
>
|
||
<template #bodyCell="{ record, column }">
|
||
<template v-if="column.key === 'operation'">
|
||
<span class="table-operation">
|
||
<a
|
||
@click="
|
||
() => {
|
||
QR_hs = true;
|
||
ftsQR_hs = true;
|
||
}
|
||
"
|
||
>
|
||
签到
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handelEditStu(record);
|
||
}
|
||
"
|
||
>
|
||
编辑
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handelGuan(record);
|
||
}
|
||
"
|
||
>
|
||
管理
|
||
</a>
|
||
<a-dropdown>
|
||
<template #overlay>
|
||
<a-menu>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
handleCopyP(record);
|
||
}
|
||
"
|
||
>
|
||
复制
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
handleDeleteKaike(record);
|
||
}
|
||
"
|
||
>
|
||
删除
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
QR_hs = true;
|
||
vipftQR_hs = true;
|
||
}
|
||
"
|
||
>
|
||
二维码
|
||
</a-menu-item>
|
||
</a-menu>
|
||
</template>
|
||
<a>
|
||
更多
|
||
<down-outlined/>
|
||
</a>
|
||
</a-dropdown>
|
||
</span>
|
||
</template>
|
||
</template>
|
||
</a-table>
|
||
<div class="tableBox" style="margin-top: 50px">
|
||
<div class="pa">
|
||
<a-pagination
|
||
showSizeChanger="true"
|
||
showQuickJumper="true"
|
||
hideOnSinglePage="true"
|
||
:pageSize="pageSize2"
|
||
:current="currentPage2"
|
||
:total="tableDataTotal2"
|
||
class="pagination"
|
||
@change="handelChangePage2"
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 有数据表格 -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!--开课页面 -->
|
||
<!--新建开课页面 -->
|
||
<a-modal
|
||
v-model:visible="cstm_hs"
|
||
style="margin-top: 400px"
|
||
@cancel="handleCancelStu"
|
||
>
|
||
<div
|
||
class="createschooltime"
|
||
:style="{ display: cstm_hs ? 'block' : 'none' }"
|
||
>
|
||
<div class="cst_header"></div>
|
||
<div class="cst_main">
|
||
<div class="cstm_header">
|
||
<div class="add_icon"></div>
|
||
<span v-if="kk_eidt">编辑开课</span>
|
||
<span v-else>新建开课</span>
|
||
<div class="close_exit" @click="handleCancelStu"></div>
|
||
</div>
|
||
<div class="cstm_title">
|
||
<span>面授名称:{{ newCourseName }}</span>
|
||
</div>
|
||
<div class="cstm_items">
|
||
<div class="signbox">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 3px">开课名称</span>
|
||
</div>
|
||
<div class="b_input">
|
||
<a-input
|
||
v-model:value="xjkkinputV1"
|
||
style="width: 440px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入开课名称"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items">
|
||
<div class="signbox">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 3px">地点</span>
|
||
</div>
|
||
<div class="b_input">
|
||
<a-input
|
||
v-model:value="xjkkinputV2"
|
||
maxlength="50"
|
||
style="width: 440px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入详细地点"
|
||
/>
|
||
<div class="inp_num">
|
||
<span style="color: #c7cbd2">{{ xjkkinputV2.length }}/50</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items">
|
||
<div class="signbox">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 3px">面授时间</span>
|
||
</div>
|
||
<div class="select fitems">
|
||
<a-range-picker
|
||
style="width: 440px; height: 40px; border-radius: 8px"
|
||
:show-time="{ format: 'HH:mm' }"
|
||
format="YYYY-MM-DD HH:mm"
|
||
v-model:value="xjkkinputV3"
|
||
separator="至"
|
||
:placeholder="[' 开始时间', ' 结束时间']"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items">
|
||
<div class="signbox">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 3px">授课教师</span>
|
||
</div>
|
||
<div class="b_input">
|
||
<ProjectManager v-model:value="member.value"
|
||
v-model:name="member.name"></ProjectManager>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items">
|
||
<div class="signbox">
|
||
<span style="margin-right: 3px">报名设置</span>
|
||
</div>
|
||
<div class="b_input">
|
||
<a-checkbox v-model:checked="checked1">
|
||
<span style="color: #6d7584">是否允许公开报名</span>
|
||
</a-checkbox>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items">
|
||
<div class="signbox">
|
||
<span style="margin-right: 3px">签到设置</span>
|
||
</div>
|
||
<div class="b_input">
|
||
<a-radio-group v-model:value="xjkkradioV1">
|
||
<a-radio :value="0" @click="clear_xjkkradioV1">
|
||
<span style="color: #6d7584; margin-right: 30px">
|
||
是否允许未报名的学员签到
|
||
</span>
|
||
</a-radio>
|
||
<a-radio :value="1" @click="clear_xjkkradioV1">
|
||
<span style="color: #6d7584">签到是否需要口令</span>
|
||
</a-radio>
|
||
</a-radio-group>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items">
|
||
<div class="signbox">
|
||
<span style="margin-right: 3px">评估设置</span>
|
||
</div>
|
||
<div class="b_input">
|
||
<a-checkbox v-model:checked="checked4">
|
||
<span style="color: #6d7584">是否需要评估</span>
|
||
</a-checkbox>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items">
|
||
<div class="signbox">
|
||
<span style="margin-right: 3px">完成规则</span>
|
||
</div>
|
||
<div class="b_input">
|
||
<!--
|
||
<a-checkbox
|
||
v-model:checked="regisCom"
|
||
@click="regisCom = !regisCom"
|
||
>
|
||
<span style="color: #6d7584">报名即完成</span>
|
||
</a-checkbox> -->
|
||
<a-checkbox v-model:checked="signCom" @click="signCom = !signCom">
|
||
<span style="color: #6d7584">签到即完成</span>
|
||
</a-checkbox>
|
||
<a-checkbox
|
||
v-model:checked="comLeave"
|
||
@click="comLeave = !comLeave"
|
||
>
|
||
<span style="color: #6d7584">请假算完成</span>
|
||
</a-checkbox>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items items_fj">
|
||
<div class="signbox">
|
||
<span style="margin-right: 3px">附件</span>
|
||
</div>
|
||
<div class="b_input">
|
||
<a-upload
|
||
name="file"
|
||
:show-upload-list="false"
|
||
:before-upload="beforeUpload3"
|
||
>
|
||
<div class="upload_box">
|
||
<div class="upload_icon">
|
||
<img
|
||
src="@/assets/images/coursewareManage/enclosure.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="color: #4ea6ff">上传附件</span>
|
||
</div>
|
||
<!-- <template #itemRender="{ file }">
|
||
<a-space>
|
||
<span :style="file.status === 'error' ? 'color: red' : ''">
|
||
{{ file.name }}
|
||
</span>
|
||
</a-space>
|
||
</template> -->
|
||
</a-upload>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items">
|
||
<div class="signbox">
|
||
<span style="margin-right: 3px"> </span>
|
||
</div>
|
||
<div class="b_input">
|
||
<span style="color: #999ba3">
|
||
支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class="mbl_items12">
|
||
<div
|
||
class="i12_box1"
|
||
v-for="(item, index) in filesList"
|
||
:key="index"
|
||
>
|
||
<div class="file_img"></div>
|
||
<div class="file_detail">
|
||
<!-- <div class="file_name">
|
||
<span style="color: #6f6f6f">{{ item.name }}</span>
|
||
</div> -->
|
||
<!-- 条件渲染 s -->
|
||
<!-- <div class="file_size">
|
||
<span style="color: #999ba3">{{ item.size }}</span>
|
||
</div> -->
|
||
<div class="file_updata">
|
||
<div class="updatabox">
|
||
<div class="updatacolor"></div>
|
||
<div class="updataxq">上传完成</div>
|
||
<!-- <div class="updatacolor2"></div>
|
||
<div class="updataxq2">上传失败</div> -->
|
||
<!-- <div class="updatacolor3"></div>
|
||
<div class="updataxq3">正在上传</div> -->
|
||
</div>
|
||
<div class="upjd">
|
||
<span style="margin: auto 5px">100%</span>
|
||
</div>
|
||
</div>
|
||
<!-- 条件渲染 e -->
|
||
</div>
|
||
<div class="file_operation">
|
||
<div class="fobox">
|
||
<span style="color: #4ea6ff" @click="handleDel2(index)">
|
||
删除
|
||
</span>
|
||
</div>
|
||
<!-- <div class="fobox">
|
||
<span style="color: #4ea6ff">重传</span>
|
||
</div>
|
||
<div class="fobox">
|
||
<span style="color: #4ea6ff">取消</span>
|
||
</div> -->
|
||
<!-- <div class="fobox">
|
||
<span style="color: #4ea6ff; margin-right: 5px">
|
||
暂停
|
||
</span>
|
||
</div>
|
||
<div class="fobox">
|
||
<span style="color: #4ea6ff">取消</span>
|
||
</div> -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="items_btn">
|
||
<div class="cstm_btn btn5" @click="handleCancelStu">
|
||
<div class="btnText">取消</div>
|
||
</div>
|
||
<div class="cstm_btn btn6" @click="handleSureStu">
|
||
<div v-if="addLoading" class="btnText">保存中</div>
|
||
<div v-else class="btnText">确定</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!--新建开课页面 -->
|
||
<!--开课学员管理页面 -->
|
||
<a-modal
|
||
v-model:visible="sm_hs"
|
||
title="Title"
|
||
@ok="closeModal"
|
||
:footer="null"
|
||
:closable="false"
|
||
wrapClassName="modalStyle stusmanageModal"
|
||
width="80%"
|
||
@cancel="sm_exit"
|
||
>
|
||
<div class="modalHeader">
|
||
<div class="headerLeft">
|
||
<img
|
||
style="width: 17px; height: 18px; margin-right: 8px"
|
||
src="@/assets/images/coursewareManage/stum.png"
|
||
/>
|
||
<span class="headerLeftText">学员管理</span>
|
||
</div>
|
||
<div style="margin-right: 57px; cursor: pointer">
|
||
<img
|
||
@click="sm_exit"
|
||
style="width: 22px; height: 22px"
|
||
src="../../assets/images/basicinfo/close22.png"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="modalMain">
|
||
<div
|
||
class="studentsmanage"
|
||
:style="{ display: sm_hs ? 'block' : 'none' }"
|
||
>
|
||
<div class="stm_main">
|
||
<div class="stmmitems">
|
||
<div class="stmm_i1">
|
||
<span style="margin-right: 52px">
|
||
{{ currentPlanItem.name }}课程-第1期-
|
||
{{ getdateToDateFn(currentPlanItem.createTime) }}
|
||
</span>
|
||
<span style="color: #ffb751">已开课 4.5</span>
|
||
</div>
|
||
<div class="stmm_i2">
|
||
<span style="color: #999ba3">时间:</span>
|
||
<span>{{ getdateToTimeFn(currentPlanItem.endTime) }}</span>
|
||
</div>
|
||
<div class="stmm_i3">
|
||
<span style="color: #999ba3">地点:</span>
|
||
<span>{{ currentPlanItem.address }}</span>
|
||
</div>
|
||
<div class="stmm_i4">
|
||
<span style="color: #999ba3">授课教师:</span>
|
||
<span>{{ currentPlanItem.teacher }}</span>
|
||
</div>
|
||
<div class="stmm_i5">
|
||
<div class="i5_left">
|
||
<!-- <a-input
|
||
v-model:value="xygl_inputV1"
|
||
style="
|
||
width: 270px;
|
||
height: 40px;
|
||
border-radius: 8px;
|
||
margin-right: 14px;
|
||
"
|
||
placeholder="请输入姓名"
|
||
/> -->
|
||
<a-input
|
||
v-model:value="xygl_inputV1"
|
||
placeholder="请输入姓名"
|
||
/>
|
||
<div class="stmm_btn btn1" @click="handleSearchStu">
|
||
<div class="search"></div>
|
||
<div class="btnText">搜索</div>
|
||
</div>
|
||
<div class="stmm_btn btn2" @click="handleRestStu">
|
||
<div class="reset"></div>
|
||
<div class="btnText">重置</div>
|
||
</div>
|
||
</div>
|
||
<div class="i5_right">
|
||
<div class="stmm_btn btn3">
|
||
<span style="color: #ffffff" @click="showStuAdd">
|
||
添加学员
|
||
</span>
|
||
</div>
|
||
<!-- 2022-11-30注释 后面放开 -->
|
||
<!-- <div class="stmm_btn btn4" @click="hideShow">
|
||
<div class="btn4_sub">
|
||
<span style="color: #4ea6ff; margin-right: 4px">
|
||
批量操作
|
||
</span>
|
||
<div
|
||
class="b_zk"
|
||
:style="{ display: hideshow ? 'block' : 'none' }"
|
||
></div>
|
||
<div
|
||
class="b_sq"
|
||
:style="{ display: hideshow ? 'none' : 'block' }"
|
||
></div>
|
||
</div>
|
||
<div
|
||
class="btn4_sup"
|
||
:style="{ display: hideshow ? 'none' : 'block' }"
|
||
>
|
||
<div class="btnsbox">
|
||
<div class="btn4_tit" @click="handleAllJion">
|
||
<span style="color: #4ea6ff">批量录入成绩</span>
|
||
</div>
|
||
<div class="btn4_op1" @click="handleAllover">
|
||
<span>批量结业</span>
|
||
</div>
|
||
<div class="btn4_op2" @click="handleAllSuc">
|
||
<span>批量通过</span>
|
||
</div>
|
||
<div class="btn4_op3" @click="handleAllReject">
|
||
<span>批量拒绝</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="stmm_btn btn5" @click="handleExportStu">
|
||
<div class="export"></div>
|
||
<div class="btnText">导出</div>
|
||
</div> -->
|
||
</div>
|
||
</div>
|
||
<div class="stmm_i6">
|
||
<a-table
|
||
:columns="columns7"
|
||
:data-source="tableData7"
|
||
:loading="tableDataTotal3 === -1 ? true : false"
|
||
:scroll="{ x: 800 }"
|
||
expandRowByClick="true"
|
||
@expand="expandTable"
|
||
:pagination="false"
|
||
:row-selection="{
|
||
columnWidth: 20,
|
||
selectedRowKeys: selectedRowKeys7,
|
||
onChange: onSelectChange7,
|
||
}"
|
||
>
|
||
<template #bodyCell="{ record, column }">
|
||
<!-- 操作1 -->
|
||
<template
|
||
v-if="
|
||
(String(record.applyStatus) === '0' ||
|
||
record.status === '待审核') &&
|
||
column.key === 'overstatus'
|
||
"
|
||
>
|
||
<span class="table-operation">-</span>
|
||
</template>
|
||
<template
|
||
v-if="
|
||
(String(record.applyStatus) === '-1' ||
|
||
record.status === '已拒绝') &&
|
||
column.key === 'overstatus'
|
||
"
|
||
>
|
||
<span class="table-operation">-</span>
|
||
</template>
|
||
<template
|
||
v-if="
|
||
(String(record.applyStatus) === '1' ||
|
||
record.status === '已通过') &&
|
||
column.key === 'overstatus'
|
||
"
|
||
>
|
||
<span class="table-operation">
|
||
<a
|
||
@click="
|
||
() => {
|
||
handlJoinStu(record);
|
||
}
|
||
"
|
||
>
|
||
成绩录入
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleOverStu(record);
|
||
}
|
||
"
|
||
>
|
||
结业
|
||
</a>
|
||
</span>
|
||
</template>
|
||
<!-- 操作2 -->
|
||
<template
|
||
v-if="
|
||
(String(record.applyStatus) === '0' ||
|
||
record.status === '待审核') &&
|
||
column.key === 'operation'
|
||
"
|
||
>
|
||
<span class="table-operation">
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleSucessStu(record);
|
||
}
|
||
"
|
||
>
|
||
通过
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleRejectStu(record);
|
||
}
|
||
"
|
||
>
|
||
拒绝
|
||
</a>
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleDeleteStu(record);
|
||
}
|
||
"
|
||
>
|
||
删除
|
||
</a>
|
||
</span>
|
||
</template>
|
||
<template
|
||
v-if="
|
||
(String(record.applyStatus) === '1' ||
|
||
record.status === '已通过') &&
|
||
column.key === 'operation'
|
||
"
|
||
>
|
||
<span class="table-operation">
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleDeleteStu(record);
|
||
}
|
||
"
|
||
>
|
||
删除
|
||
</a>
|
||
</span>
|
||
</template>
|
||
<template
|
||
v-if="
|
||
(String(record.applyStatus) === '-1' ||
|
||
record.status === '已拒绝') &&
|
||
column.key === 'operation'
|
||
"
|
||
>
|
||
<span class="table-operation">
|
||
<a
|
||
@click="
|
||
() => {
|
||
handleDeleteStu(record);
|
||
}
|
||
"
|
||
>
|
||
删除
|
||
</a>
|
||
</span>
|
||
</template>
|
||
</template>
|
||
</a-table>
|
||
<div class="tableBox" style="margin-top: 50px">
|
||
<div class="pa">
|
||
<a-pagination
|
||
showSizeChanger="true"
|
||
showQuickJumper="true"
|
||
hideOnSinglePage="true"
|
||
:pageSize="pageSize3"
|
||
:current="currentPage3"
|
||
:total="tableDataTotal3"
|
||
class="pagination"
|
||
@change="handelChangePage3"
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!--开课学员管理页面 -->
|
||
<!--二维码页面 -->
|
||
<a-modal
|
||
v-model:visible="QR_hs"
|
||
:footer="null"
|
||
:closable="closableQR"
|
||
wrapClassName="QRModal"
|
||
style="margin-top: 400px"
|
||
:zIndex="9999"
|
||
@cancel="qr_exit"
|
||
>
|
||
<div class="QR" :style="{ display: QR_hs ? 'block' : 'none' }">
|
||
<div class="qr_header"></div>
|
||
<div class="qr_main">
|
||
<div class="qrm_header">
|
||
<div class="qr_icon"></div>
|
||
<div :style="{ display: qrQR_hs ? 'block' : 'none' }">
|
||
<span>二维码</span>
|
||
</div>
|
||
<div :style="{ display: olQR_hs ? 'block' : 'none' }">
|
||
<span>在线课</span>
|
||
</div>
|
||
<div :style="{ display: ftQR_hs ? 'block' : 'none' }">
|
||
<span>面授课</span>
|
||
</div>
|
||
<div :style="{ display: ftsQR_hs ? 'block' : 'none' }">
|
||
<span>面授课签到</span>
|
||
</div>
|
||
<div :style="{ display: vipftQR_hs ? 'block' : 'none' }">
|
||
<span>管理者面授课</span>
|
||
</div>
|
||
<div class="close_exit" @click="qr_exit"></div>
|
||
</div>
|
||
<div class="qrm_body">
|
||
<div class="QR_img"></div>
|
||
</div>
|
||
<div class="qrm_footer">
|
||
<span style="margin-left: 52px">下载二维码</span>
|
||
<div class="qrmbtn">
|
||
<div class="btntext">200*200</div>
|
||
</div>
|
||
<div class="qrmbtn">
|
||
<div class="btntext">400*400</div>
|
||
</div>
|
||
<div class="qrmbtn">
|
||
<div class="btntext">800*800</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!--二维码页面 -->
|
||
<!--录入成绩页面 -->
|
||
<a-modal
|
||
v-model:visible="rg_hs"
|
||
:footer="null"
|
||
:closable="closableQR"
|
||
wrapClassName="recgradeModal"
|
||
style="margin-top: 400px"
|
||
:zIndex="9999"
|
||
@cancel="rg_exit"
|
||
>
|
||
<div class="recordgrade" :style="{ display: rg_hs ? 'block' : 'none' }">
|
||
<div class="rg_header"></div>
|
||
<div class="rg_main">
|
||
<div class="rgm_header">
|
||
<div class="rg_icon"></div>
|
||
<span>录入成绩</span>
|
||
<div class="close_exit" @click="rg_exit"></div>
|
||
</div>
|
||
<div class="rgm_body">
|
||
<div class="rgmb_items">
|
||
<div class="items_left">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span>得分</span>
|
||
</div>
|
||
<div class="rgmb_input">
|
||
<a-input
|
||
v-model:value="lrcj_inputV1"
|
||
maxlength="20"
|
||
style="width: 440px; height: 40px; border-radius: 8px"
|
||
placeholder=""
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="qrm_btnbox">
|
||
<div class="qrm_btn btn1">
|
||
<div class="btnText" @click="rg_exit">取消</div>
|
||
</div>
|
||
<div class="qrm_btn btn2">
|
||
<div class="btnText" @click="handleJoin">确定</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!--录入成绩页面 -->
|
||
<!--结业页面 -->
|
||
<a-modal
|
||
v-model:visible="graduate_hs"
|
||
:footer="null"
|
||
:closable="closableQR"
|
||
wrapClassName="graModal"
|
||
style="margin-top: 400px"
|
||
:zIndex="9999"
|
||
@cancel="graduate_exit"
|
||
>
|
||
<div
|
||
class="graduate"
|
||
:style="{ display: graduate_hs ? 'block' : 'none' }"
|
||
>
|
||
<div class="gra_header"></div>
|
||
<div class="gra_main">
|
||
<div class="gram_header">
|
||
<div class="gra_icon"></div>
|
||
<span>结业</span>
|
||
<div class="close_exit" @click="graduate_exit"></div>
|
||
</div>
|
||
<div class="gram_body">
|
||
<div class="gramb_items">
|
||
<div class="items_left">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span>结业</span>
|
||
</div>
|
||
<div class="gramb_input">
|
||
<a-radio-group v-model:value="jyradioV1">
|
||
<div class="bc_box">
|
||
<div class="ol_checkbox">
|
||
<a-radio
|
||
v-model:checked="checked"
|
||
:value="1"
|
||
@click="clear_jyradioV1"
|
||
>结业
|
||
</a-radio
|
||
>
|
||
</div>
|
||
<div class="ol_checkbox">
|
||
<a-radio
|
||
v-model:checked="checked"
|
||
:value="2"
|
||
@click="clear_jyradioV1"
|
||
>不结业
|
||
</a-radio
|
||
>
|
||
</div>
|
||
</div>
|
||
</a-radio-group>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="qrm_btnbox">
|
||
<div class="qrm_btn btn1">
|
||
<div class="btnText" @click="graduate_exit">取消</div>
|
||
</div>
|
||
<div class="qrm_btn btn2">
|
||
<div class="btnText" @click="handleJie">确定</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!--结业页面 -->
|
||
<!--请确定是否同意拒绝此学员学习此课程弹窗 -->
|
||
<a-modal
|
||
v-model:visible="agreereject_hs"
|
||
:footer="null"
|
||
:closable="closableQR"
|
||
wrapClassName="agrstudyModal"
|
||
centered="true"
|
||
@cancel="agreereject_exit"
|
||
>
|
||
<div
|
||
class="agreestudy"
|
||
:style="{ display: agreereject_hs ? 'block' : 'none' }"
|
||
>
|
||
<div class="agree_header"></div>
|
||
<div class="agree_main">
|
||
<div class="agreem_header">
|
||
<div class="agreem_icon"></div>
|
||
<span>提示</span>
|
||
<div class="close_exit" @click="agreereject_exit"></div>
|
||
</div>
|
||
<div class="agreem_body">
|
||
<div
|
||
class="body_box"
|
||
:style="{ display: agreestudy_hs ? 'block' : 'none' }"
|
||
>
|
||
<div>请确定是否同意此学员学习此课程</div>
|
||
</div>
|
||
<div
|
||
class="body_box"
|
||
:style="{ display: rejectstudy_hs ? 'block' : 'none' }"
|
||
>
|
||
<div>请确定是否拒绝此学员学习此课程</div>
|
||
</div>
|
||
</div>
|
||
<div class="qrm_btnbox">
|
||
<div class="qrm_btn btn1">
|
||
<div class="btnText" @click="agreereject_exit">取消</div>
|
||
</div>
|
||
<div class="qrm_btn btn2">
|
||
<div class="btnText" @click="handleAgreeTrue">确定</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!--请确定是否同意拒绝此学员学习此课程弹窗 -->
|
||
<!--删除 复制 停用弹窗 -->
|
||
<a-modal
|
||
v-model:visible="delete_hs"
|
||
:footer="null"
|
||
:closable="closableQR"
|
||
wrapClassName="DelModal"
|
||
style="margin-top: 400px"
|
||
:zIndex="9999"
|
||
@cancel="delete_exit1"
|
||
>
|
||
<div
|
||
class="delete"
|
||
:style="{
|
||
display: del_hs || copy_hs || nouse_hs ? 'block' : 'none',
|
||
}"
|
||
>
|
||
<div class="del_header"></div>
|
||
<div class="del_main">
|
||
<div class="header">
|
||
<div
|
||
class="del-icons"
|
||
:style="{ display: del_hs ? 'block' : 'none' }"
|
||
>
|
||
<img src="@/assets/images/coursewareManage/notice.png" alt=""/>
|
||
</div>
|
||
<div
|
||
class="del-icons"
|
||
:style="{ display: copy_hs || nouse_hs ? 'block' : 'none' }"
|
||
>
|
||
<img src="@/assets/images/coursewareManage/QR.png" alt=""/>
|
||
</div>
|
||
<span>提示</span>
|
||
<div class="close_exit" @click="delete_exit1"></div>
|
||
</div>
|
||
<div class="body">
|
||
<div :style="{ display: del_hs ? 'block' : 'none' }">
|
||
<span>您确定要删除此学员吗</span>
|
||
</div>
|
||
<div :style="{ display: copy_hs ? 'block' : 'none' }">
|
||
<span>您确定要复制此课程吗</span>
|
||
</div>
|
||
<div :style="{ display: nouse_hs ? 'block' : 'none' }">
|
||
<span>您确定要停用此课程吗</span>
|
||
</div>
|
||
</div>
|
||
<div class="del_btnbox">
|
||
<div class="del_btn btn1">
|
||
<div class="btnText" @click="delete_exit1">取消</div>
|
||
</div>
|
||
<div class="del_btn btn2">
|
||
<div v-if="addLoading" class="btnText">保存中...</div>
|
||
<div v-else class="btnText" @click="handleDeleteExit">确定</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!--删除 复制 停用弹窗 -->
|
||
<!-- 学员管理课程库-归属权抽屉 -->
|
||
<!-- <own-power v-model:ownpowervisible="ownpowervisible" /> -->
|
||
<!-- 学员管理课程库-归属权抽屉 -->
|
||
<!-- 添加授权侧弹窗 -->
|
||
<!-- <corpowerlist v-model:corpowerlistVisible="corpowerlistvisible" /> -->
|
||
<!-- 添加授权侧弹窗 -->
|
||
<!-- 学员管理-添加学员抽屉 -->
|
||
<!-- <StuAdd v-model:Stuvisible="Stuvisible" @sure="handlePostSure" /> -->
|
||
<!-- 添加学员抽屉 -->
|
||
<proj-check-ship
|
||
v-model:ProjCheckvisible="Stuvisible"
|
||
:selectProjectId="offcourseId"
|
||
v-model:addAuthList="addStudentList"
|
||
:authClassify="authClassify"
|
||
classify="addstudent"
|
||
/>
|
||
<!-- 新建在线课弹窗 -->
|
||
<addOnlineCourse
|
||
v-model:addOnlineCoursevisible="addOnlineCoursevisible"
|
||
:closeOnlineModal="closeOnlineCoursevisible"
|
||
/>
|
||
<!-- 新建在线课弹窗 -->
|
||
|
||
<!-- 授权名单抽屉 -->
|
||
<proj-power-list
|
||
v-model:ProjPvisible="corpowerlistvisible"
|
||
:selectProjectId="selectCourseId"
|
||
classify="course"
|
||
/>
|
||
<!-- 归属权抽屉 -->
|
||
<proj-owner-ship
|
||
v-model:ProjOwnervisible="ownpowervisible"
|
||
:selectProjectId="selectCourseId"
|
||
classify="course"
|
||
/>
|
||
<!-- 查看权抽屉 -->
|
||
<proj-check-ship
|
||
v-model:ProjCheckvisible="viewpowervisible"
|
||
:selectProjectId="selectCourseId"
|
||
v-model:addAuthList="addAuthList"
|
||
:authClassify="authClassify"
|
||
classify="course"
|
||
/>
|
||
<!-- 管理权抽屉 -->
|
||
<proj-check-ship
|
||
v-model:ProjCheckvisible="viewpowervisible"
|
||
:selectProjectId="selectCourseId"
|
||
v-model:addAuthList="addAuthList"
|
||
:authClassify="authClassify"
|
||
classify="course"
|
||
/>
|
||
</div>
|
||
|
||
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
|
||
<a-spin :spinning="addLoading" tip="保存中..."/>
|
||
</div>
|
||
</template>
|
||
<script>
|
||
import {
|
||
reactive,
|
||
toRefs,
|
||
defineComponent,
|
||
ref,
|
||
shallowRef,
|
||
onMounted,
|
||
onBeforeUnmount,
|
||
watch,
|
||
} from "vue";
|
||
import {message} from "ant-design-vue";
|
||
// import StuAdd from "../../components/drawers/StuAdd";
|
||
// import OwnPower from "../../components/drawers/OwnPower.vue";
|
||
// import Corpowerlist from "../../components/drawers/CorPowerlist.vue";
|
||
import addOnlineCourse from "../../components/Modals/addOnlineCourse.vue";
|
||
|
||
import ProjOwnerShip from "../../components/drawers/ProjectOwn";
|
||
import ProjPowerList from "../../components/drawers/ProjPowerList";
|
||
import ProjCheckShip from "../../components/drawers/ProjCheckPower";
|
||
import {
|
||
list,
|
||
edit,
|
||
detail,
|
||
detailPlan,
|
||
handle,
|
||
exportP,
|
||
deletePlan,
|
||
planList,
|
||
editPlan,
|
||
studentList,
|
||
addStudent,
|
||
studentExport,
|
||
handleStudent,
|
||
getMemberInfoApi,
|
||
// listReview,
|
||
// studyRecordList,
|
||
} from "@/api/indexCourse";
|
||
import {
|
||
traverseArr,
|
||
getdateToTime,
|
||
newFile,
|
||
getdateToDate,
|
||
} from "../../utils/utils";
|
||
// import { toDate } from "../../api/method.js";
|
||
import {fileUp} from "../../api/indexEval";
|
||
import dayjs from "dayjs";
|
||
import * as api1 from "../../api/index1";
|
||
|
||
import "@wangeditor/editor/dist/css/style.css";
|
||
import {Editor, Toolbar} from "@wangeditor/editor-for-vue";
|
||
import ProjectManager from "@/components/project/ProjectManager";
|
||
|
||
//列表表格
|
||
const columns1 = [
|
||
{
|
||
title: "序号",
|
||
width: 100,
|
||
dataIndex: "num",
|
||
key: "num",
|
||
align: "center",
|
||
customRender: ({index}) => {
|
||
return index + 1;
|
||
},
|
||
},
|
||
{
|
||
title: "名称",
|
||
width: 200,
|
||
dataIndex: "name",
|
||
key: "name",
|
||
ellipsis: true,
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "内容分类",
|
||
width: 130,
|
||
dataIndex: "contentTxt",
|
||
key: "1",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "课程形式",
|
||
width: 130,
|
||
dataIndex: "courseform",
|
||
key: "2",
|
||
align: "center",
|
||
customRender: ({record}) => {
|
||
switch (String(record.courseform)) {
|
||
case "1":
|
||
return "线上";
|
||
case "2":
|
||
return "面授";
|
||
}
|
||
},
|
||
},
|
||
{
|
||
title: " 所属项目",
|
||
width: 250,
|
||
dataIndex: "project",
|
||
key: "3",
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "学习人数",
|
||
width: 130,
|
||
dataIndex: "stunum",
|
||
key: "4",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "0";
|
||
},
|
||
},
|
||
{
|
||
title: "评分",
|
||
width: 130,
|
||
dataIndex: "grade",
|
||
key: "5",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "0";
|
||
},
|
||
},
|
||
{
|
||
title: "状态",
|
||
width: 130,
|
||
dataIndex: "status",
|
||
key: "6",
|
||
align: "center",
|
||
customRender: ({record}) => {
|
||
switch (String(record.status)) {
|
||
case "0":
|
||
return "未提交";
|
||
case "1":
|
||
return "待审核";
|
||
case "2":
|
||
return "已审核";
|
||
case "-1":
|
||
return "审核未通过";
|
||
}
|
||
},
|
||
},
|
||
{
|
||
title: "是否发布",
|
||
width: 100,
|
||
dataIndex: "ynpub",
|
||
key: "7",
|
||
align: "center",
|
||
customRender: ({record}) => {
|
||
switch (String(record.ynpub)) {
|
||
case "0":
|
||
return "未发布";
|
||
case "1":
|
||
return "已发布";
|
||
}
|
||
},
|
||
},
|
||
{
|
||
title: "创建人",
|
||
width: 100,
|
||
dataIndex: "creator",
|
||
key: "8",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "创建时间",
|
||
width: 160,
|
||
dataIndex: "createtime",
|
||
key: "9",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? getdateToTime(text * 1000) : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "上线时间",
|
||
width: 160,
|
||
dataIndex: "pubtime",
|
||
key: "10",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? getdateToTime(text * 1000) : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "是否停用",
|
||
width: 100,
|
||
key: "either",
|
||
dataIndex: "kkty",
|
||
align: "center",
|
||
customRender: ({record}) => {
|
||
switch (String(record.kkty)) {
|
||
case "0":
|
||
return "停用";
|
||
case "1":
|
||
return "启用";
|
||
}
|
||
},
|
||
},
|
||
{
|
||
title: "操作",
|
||
width: 300,
|
||
className: "h",
|
||
dataIndex: "operation",
|
||
key: "operation",
|
||
fixed: "right",
|
||
align: "center",
|
||
},
|
||
];
|
||
//列表操作在线面授管理
|
||
const columns2 = [
|
||
{
|
||
title: "姓名",
|
||
dataIndex: "projectName",
|
||
key: "projectName",
|
||
width: "16%",
|
||
align: "center",
|
||
},
|
||
{
|
||
title: "工号",
|
||
dataIndex: "numb",
|
||
key: "numb",
|
||
width: "16%",
|
||
align: "center",
|
||
},
|
||
{
|
||
title: "报名时间",
|
||
dataIndex: "applytime",
|
||
key: "applytime",
|
||
width: "16%",
|
||
align: "center",
|
||
},
|
||
{
|
||
title: "签到时间",
|
||
dataIndex: "signtime",
|
||
key: "signtime",
|
||
width: "16%",
|
||
align: "center",
|
||
},
|
||
{
|
||
title: "状态",
|
||
dataIndex: "status",
|
||
key: "status",
|
||
width: "16%",
|
||
align: "center",
|
||
},
|
||
{
|
||
title: "操作",
|
||
dataIndex: "opacation",
|
||
key: "opacation",
|
||
width: "16%",
|
||
align: "center",
|
||
},
|
||
];
|
||
//管理查看详情
|
||
const columns4 = [
|
||
{
|
||
title: "开课名称",
|
||
dataIndex: "projectName",
|
||
key: "projectName",
|
||
width: "30%",
|
||
align: "center",
|
||
},
|
||
{
|
||
title: "地点",
|
||
dataIndex: "address",
|
||
key: "address",
|
||
width: "30%",
|
||
align: "center",
|
||
},
|
||
{
|
||
title: "状态",
|
||
dataIndex: "status",
|
||
key: "status",
|
||
width: "40%",
|
||
align: "center",
|
||
},
|
||
];
|
||
//开课表格
|
||
const columns6 = [
|
||
{
|
||
title: "序号",
|
||
dataIndex: "num",
|
||
key: "num",
|
||
width: "8%",
|
||
align: "center",
|
||
customRender: ({index}) => {
|
||
//{ text, record, index, column }
|
||
return index + 1;
|
||
},
|
||
},
|
||
{
|
||
title: "课程名称",
|
||
dataIndex: "organization",
|
||
key: "organization",
|
||
width: "10%",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "场地",
|
||
dataIndex: "address",
|
||
key: "saddress",
|
||
width: "10%",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "开始时间",
|
||
dataIndex: "starttime",
|
||
key: "starttime",
|
||
width: "18%",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? getdateToTime(text * 1000) : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "创建时间",
|
||
dataIndex: "createtime",
|
||
key: "createtime",
|
||
width: "18%",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? getdateToTime(text * 1000) : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "操作",
|
||
width: "30%",
|
||
dataIndex: "operation",
|
||
key: "operation",
|
||
align: "center",
|
||
},
|
||
];
|
||
//开课学员管理
|
||
const columns7 = [
|
||
{
|
||
title: "序号",
|
||
width: 200,
|
||
dataIndex: "num",
|
||
key: "num",
|
||
align: "center",
|
||
customRender: ({index}) => {
|
||
//{ text, record, index, column }
|
||
return index + 1;
|
||
},
|
||
},
|
||
{
|
||
title: "姓名",
|
||
width: 200,
|
||
dataIndex: "name",
|
||
key: "name",
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "工号",
|
||
width: 200,
|
||
dataIndex: "number",
|
||
key: "1",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "部门",
|
||
width: 200,
|
||
dataIndex: "department",
|
||
key: "2",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "岗位",
|
||
width: 300,
|
||
dataIndex: "postion",
|
||
key: "3",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "Band",
|
||
width: 200,
|
||
dataIndex: "band",
|
||
key: "4",
|
||
align: "center",
|
||
customRender: ({text}) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "报名状态",
|
||
width: 200,
|
||
dataIndex: "status",
|
||
key: "5",
|
||
align: "center",
|
||
customRender: ({record}) => {
|
||
switch (String(record.source)) {
|
||
case "0":
|
||
return "待审核";
|
||
case "1":
|
||
return "审核通过";
|
||
case "2":
|
||
return "审核拒绝";
|
||
}
|
||
},
|
||
},
|
||
{
|
||
title: "加入方式",
|
||
width: 200,
|
||
dataIndex: "join",
|
||
key: "6",
|
||
align: "center",
|
||
customRender: ({record}) => {
|
||
switch (String(record.source)) {
|
||
case "1":
|
||
return "手动加入";
|
||
case "2":
|
||
return "报名加入";
|
||
}
|
||
},
|
||
},
|
||
{
|
||
title: "签到状态",
|
||
width: 200,
|
||
dataIndex: "signstatus",
|
||
key: "7",
|
||
align: "center",
|
||
customRender: ({record}) => {
|
||
switch (String(record.source)) {
|
||
case "0":
|
||
return "未签到";
|
||
case "1":
|
||
return "已签到";
|
||
case "2":
|
||
return "请假";
|
||
}
|
||
},
|
||
},
|
||
{
|
||
title: "评估状态",
|
||
width: 200,
|
||
dataIndex: "evastatus",
|
||
key: "8",
|
||
align: "center",
|
||
customRender: ({record}) => {
|
||
switch (String(record.source)) {
|
||
case "0":
|
||
return "未评估";
|
||
case "1":
|
||
return "已评估";
|
||
}
|
||
},
|
||
},
|
||
// {
|
||
// title: "结业状态",
|
||
// width: 100,
|
||
// className: "h",
|
||
// dataIndex: "overstatus",
|
||
// key: "overstatus",
|
||
// fixed: "right",
|
||
// align: "center",
|
||
// // key: "9",
|
||
// // align: "center",
|
||
// // customRender: ({ record }) => {
|
||
// // switch (String(record.source)) {
|
||
// // case "0":
|
||
// // return "未结业";
|
||
// // case "1":
|
||
// // return "已结业";
|
||
// // }
|
||
// // },
|
||
// },
|
||
{
|
||
title: "操作",
|
||
width: 100,
|
||
className: "h",
|
||
dataIndex: "operation",
|
||
key: "operation",
|
||
fixed: "right",
|
||
align: "center",
|
||
},
|
||
];
|
||
export default defineComponent({
|
||
components: {
|
||
// OwnPower,
|
||
// Corpowerlist,
|
||
Editor,
|
||
Toolbar,
|
||
// StuAdd,
|
||
ProjectManager,
|
||
ProjOwnerShip,
|
||
ProjPowerList,
|
||
ProjCheckShip,
|
||
// VNodes: (_, {attrs}) => {
|
||
// return attrs.vnodes;
|
||
// },
|
||
addOnlineCourse,
|
||
},
|
||
setup() {
|
||
const state = reactive({
|
||
addLoading: false,
|
||
currentPlanItem: {},
|
||
teacherId: null,
|
||
teacher: null,
|
||
selectedRowKeys7: [],
|
||
isEdit: 0,
|
||
member: {name: '', value: ''},
|
||
//列表表格
|
||
tableData1: [
|
||
// {
|
||
// key: "1",
|
||
// num: 1,
|
||
// name: "时间管理",
|
||
// content: "领导力",
|
||
// courseform: "线上",
|
||
// project: "管理者进阶-腾飞班1",
|
||
// stunum: "50",
|
||
// grade: "5",
|
||
// status: "未提交",
|
||
// ynpub: "未发布",
|
||
// creator: "管理员",
|
||
// createtime: "2022-07-20 9:30",
|
||
// pubtime: "2022-07-20 9:30",
|
||
// kkty: false,
|
||
// },
|
||
],
|
||
//在线面授管理报名管理
|
||
tableData2: [
|
||
// {
|
||
// key: 1,
|
||
// projectName: "刘莉",
|
||
// numb: "10064511",
|
||
// applytime: "2022-07-20 14:00:00",
|
||
// signtime: "-",
|
||
// status: "已通过",
|
||
// },
|
||
],
|
||
//在线面授管理学习记录
|
||
tableData3: [
|
||
{
|
||
key: 1,
|
||
projectName: "刘莉",
|
||
numb: "10064511",
|
||
applytime: "2022-07-20 14:00:00",
|
||
signtime: "-",
|
||
status: "已通过",
|
||
},
|
||
],
|
||
//管理查看详情
|
||
tableData4: [
|
||
{
|
||
key: 1,
|
||
projectName: "刘莉",
|
||
address: "10064511",
|
||
status: "已通过",
|
||
},
|
||
],
|
||
//列表表格
|
||
tableData5: [
|
||
// {
|
||
// key: "1",
|
||
// num: 1,
|
||
// name: "时间管理",
|
||
// content: "领导力",
|
||
// courseform: "线上",
|
||
// project: "管理者进阶-腾飞班1",
|
||
// stunum: "50",
|
||
// grade: "5",
|
||
// status: "未提交",
|
||
// ynpub: "未发布",
|
||
// creator: "管理员",
|
||
// createtime: "2022-07-20 9:30",
|
||
// pubtime: "2022-07-20 9:30",
|
||
// kkty: false,
|
||
// },
|
||
],
|
||
//开课
|
||
tableData6: [
|
||
// {
|
||
// key: 1,
|
||
// num: 1,
|
||
// organization: "管理者面授课1",
|
||
// address: "核心能力大楼培训",
|
||
// starttime: "2022-07-20 14:00:00",
|
||
// createtime: "2022-07-14 14:00:00",
|
||
// },
|
||
],
|
||
//开课学员管理
|
||
tableData7: [
|
||
// {
|
||
// key: "1",
|
||
// num: 1,
|
||
// name: "李梦",
|
||
// number: "1000",
|
||
// department: "显示事业",
|
||
// postion: "产品经理",
|
||
// band: "Band9",
|
||
// status: "待审核",
|
||
// join: "手动加入",
|
||
// signstatus: "-",
|
||
// evastatus: "-",
|
||
// overstatus: "-",
|
||
// },
|
||
],
|
||
currentPage1: 1,
|
||
tableDataTotal1: 100,
|
||
pageSize1: 10,
|
||
|
||
currentPageTea1: 1,
|
||
tableDataTotalTea1: 0,
|
||
pageSizeTea1: 10,
|
||
currentPageTea2: 1,
|
||
tableDataTotalTea2: 0,
|
||
pageSizeTea2: 10,
|
||
|
||
Stuvisible: false, //添加学员
|
||
|
||
currentPage: 1,
|
||
tableDataTotal: 100,
|
||
pageSize: 10,
|
||
selectedRowKeys: [],
|
||
faceManageTab: "1",
|
||
of_hs: false,
|
||
hideshow: true,
|
||
bs_hs: true,
|
||
ft_hs: false,
|
||
om_1: false,
|
||
ft_1: false,
|
||
om_ckxq: false,
|
||
stm_hs: false,
|
||
cstm_hs: false,
|
||
sm_hs: false,
|
||
QR_hs: false,
|
||
closableQR: false,
|
||
rg_hs: false,
|
||
piliang: false,
|
||
graduate_hs: false,
|
||
agreereject_hs: false,
|
||
agreestudy_hs: false,
|
||
rejectstudy_hs: false,
|
||
delete_hs: false,
|
||
del_hs: false,
|
||
copy_hs: false,
|
||
nouse_hs: false,
|
||
// 二维码标题状态
|
||
qrQR_hs: false,
|
||
olQR_hs: false,
|
||
ftQR_hs: false,
|
||
ftsQR_hs: false,
|
||
vipftQR_hs: false,
|
||
//抽屉状态
|
||
ownpowervisible: false,
|
||
corpowerlistvisible: false,
|
||
|
||
offcourseId: null,
|
||
projectName: "",
|
||
name: "",
|
||
createName: "",
|
||
auditStatus: null,
|
||
categoryId: null,
|
||
projectTime: "",
|
||
|
||
//列表
|
||
value1: "",
|
||
value2: "",
|
||
value3: "",
|
||
value4: "",
|
||
//选择线上还是面授
|
||
xzinputV1: "",
|
||
valueE1: "",
|
||
valueE2: "",
|
||
//确定面授
|
||
ft_eidt: false,
|
||
qdms_inputV1: "",
|
||
qdms_inputV2: "",
|
||
qdms_inputV3: "",
|
||
qdms_inputV4: [],
|
||
tagsOptions: [],
|
||
qdms_inputV5: null,
|
||
fen_lei: null,
|
||
chang_jin: null,
|
||
tags_val: [],
|
||
qdms_inputV6: "",
|
||
//在线面授管理
|
||
gl_selectV1: undefined,
|
||
gl_selectV2: undefined,
|
||
gl_inputV1: "",
|
||
gl_inputV2: "",
|
||
//开课
|
||
kk_eidt: false,
|
||
kkinputV1: "",
|
||
kkinputV2: "",
|
||
//新建开课
|
||
xjkkradioV1: "",
|
||
completeType: "",
|
||
xjkkinputV1: "",
|
||
xjkkinputV2: "",
|
||
xjkkinputV3: "",
|
||
xjkkinputV4: null,
|
||
//开课学员管理
|
||
xygl_inputV1: "",
|
||
//录入成绩
|
||
lrcj_inputV1: "",
|
||
//结业
|
||
jyradioV1: "",
|
||
|
||
imageUrl: "",
|
||
imgList: [],
|
||
|
||
pageSize2: 10,
|
||
currentPage2: 0,
|
||
tableDataTotal2: 0,
|
||
pageSize22: 10,
|
||
currentPage22: 1,
|
||
tableDataTotal22: 0,
|
||
pageSize222: 10,
|
||
currentPage222: 1,
|
||
tableDataTotal222: 0,
|
||
kk_inputV1: "",
|
||
kk_inputV2: "",
|
||
selectTime: "",
|
||
|
||
pageSize3: 10,
|
||
currentPage3: 0,
|
||
tableDataTotal3: 0,
|
||
|
||
checked1: false,
|
||
checked4: false,
|
||
offcoursePlanId: 0,
|
||
filesList: [],
|
||
signCom: false,
|
||
regisCom: false,
|
||
comLeave: false,
|
||
studentId: 0,
|
||
studentItem: {},
|
||
addOnlineCoursevisible: false, //新建面授弹窗
|
||
|
||
selectCourseId: null, //授权选择的id
|
||
|
||
viewpowervisible: false, //查看权抽屉
|
||
authClassify: null, //1:查看权 2:管理权
|
||
addAuthList: null,
|
||
|
||
addStudentList: null, //选中列表
|
||
|
||
newCourseName: null, //新建开课名称
|
||
});
|
||
|
||
const showStuAdd = () => {
|
||
state.Stuvisible = true;
|
||
};
|
||
|
||
// 富文本 sssssssssssssss
|
||
// 编辑器实例,必须用 shallowRef
|
||
const editorRef = shallowRef();
|
||
// 内容 HTML
|
||
const valueHtml = ref("");
|
||
// // 模拟 ajax 异步获取内容
|
||
onMounted(() => {
|
||
// setTimeout(() => {
|
||
// valueHtml.value = "<p>模拟 Ajax 异步设置内容</p>";
|
||
// }, 1500);
|
||
});
|
||
const toolbarConfig = {};
|
||
const editorConfig = {placeholder: "请输入内容..."};
|
||
// 组件销毁时,也及时销毁编辑器
|
||
onBeforeUnmount(() => {
|
||
const editor = editorRef.value;
|
||
if (editor == null) return;
|
||
editor.destroy();
|
||
});
|
||
const handleCreated = (editor) => {
|
||
editorRef.value = editor; // 记录 editor 实例,重要!
|
||
};
|
||
// 富文本 eeeeeeeeeeeeee
|
||
|
||
const beforeUpload = (file) => {
|
||
return new Promise((resolve, reject) => {
|
||
const isJpgOrPng =
|
||
file.type === "image/jpg" ||
|
||
file.type === "image/jpeg" ||
|
||
file.type === "image/png" ||
|
||
file.type === "image/svg" ||
|
||
file.type === "image/bmp" ||
|
||
file.type === "image/gif";
|
||
if (!isJpgOrPng) {
|
||
message.error("仅支持jpg、gif、png、jpeg、svg、bmp格式!");
|
||
return reject(false);
|
||
}
|
||
|
||
console.log(file.size);
|
||
let isLt1M = file.size / 10240 / 10240 <= 1;
|
||
if (!isLt1M) {
|
||
this.$message.error("图片大小超过10MB!");
|
||
return reject(false);
|
||
}
|
||
|
||
let w = 0,
|
||
h = 0;
|
||
let reader = new FileReader();
|
||
reader.readAsDataURL(file);
|
||
reader.onload = () => {
|
||
const image = new Image();
|
||
image.src = reader.result;
|
||
image.onload = () => {
|
||
w = image.width;
|
||
h = image.height;
|
||
const ratio = 800 / 450;
|
||
if (w / h == ratio) {
|
||
// 图片比例为800*450横纵比一致
|
||
|
||
const formData = new FormData();
|
||
formData.append("file", file);
|
||
console.log(file);
|
||
fileUp(formData).then((res) => {
|
||
if (res.data.code === 200) {
|
||
state.imageUrl = res.data.data;
|
||
// state.hasImgName = file.name;
|
||
// emit("src", { id: curItem.value.id, src: res.data.data });
|
||
}
|
||
});
|
||
return resolve(true);
|
||
} else {
|
||
message.error(
|
||
"图片尺寸错误,只能上传800*450(高宽比例为16:9)横纵比一致的图片"
|
||
);
|
||
return reject(false);
|
||
}
|
||
};
|
||
};
|
||
|
||
return reject(false);
|
||
});
|
||
};
|
||
const beforeUpload2 = (file) => {
|
||
console.log(6765555);
|
||
console.log(file);
|
||
const fileType = [
|
||
"jpg",
|
||
"jpeg",
|
||
"png",
|
||
"gif",
|
||
"pdf",
|
||
"ppt",
|
||
"pptx",
|
||
"doc",
|
||
"docx",
|
||
"xls",
|
||
"xlsx",
|
||
"zip",
|
||
];
|
||
if (!fileType.includes(file.name.split(".")[1])) {
|
||
message.error(
|
||
"仅支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip格式!"
|
||
);
|
||
return false;
|
||
}
|
||
|
||
// let isLt1M = file.size / 10240 / 10240 <= 1;
|
||
// if (!isLt1M) {
|
||
// this.$message.error("图片大小超过10MB!");
|
||
// return false;
|
||
// }
|
||
|
||
const formData = new FormData();
|
||
formData.append("file", file);
|
||
console.log(file);
|
||
fileUp(formData).then((res) => {
|
||
if (res.data.code === 200) {
|
||
state.imgList.push({
|
||
img: res.data.data,
|
||
name: file.name,
|
||
size: file.size,
|
||
});
|
||
console.log(state.imgList);
|
||
// state.hasImgName = res.data.data;
|
||
}
|
||
});
|
||
return false;
|
||
};
|
||
const handleDel = (index) => {
|
||
state.imgList.splice(index, 1);
|
||
};
|
||
const handleDel2 = (index) => {
|
||
state.fileList.splice(index, 1);
|
||
};
|
||
|
||
// 渲染列表1操作
|
||
const getTableDate = async () => {
|
||
// let datas = state.tableData1;
|
||
let startTime = "";
|
||
let endTime = "";
|
||
if (state.projectTime) {
|
||
startTime = parseInt(
|
||
new Date(state.projectTime[0].$d).getTime() / 1000
|
||
);
|
||
endTime = parseInt(new Date(state.projectTime[1].$d).getTime() / 1000);
|
||
}
|
||
let res = await list({
|
||
pageNo: state.currentPage1,
|
||
pageSize: state.pageSize1,
|
||
auditStatus: state.auditStatus,
|
||
categoryId: state.categoryId,
|
||
projectName: state.projectName,
|
||
name: state.name,
|
||
createName: state.createName,
|
||
endTime: endTime,
|
||
beginTime: startTime,
|
||
});
|
||
const {rows, total} = res.data.data;
|
||
state.tableDataTotal1 = total;
|
||
const datas = traverseArr(
|
||
rows,
|
||
{
|
||
key: "offcourseId",
|
||
num: "offcourseId",
|
||
name: "name",
|
||
content: "categoryId",
|
||
courseform: "type",
|
||
project: "projectName",
|
||
stunum: "studentCnt",
|
||
grade: "score",
|
||
status: "auditStatus",
|
||
ynpub: "publishStatus",
|
||
creator: "createName",
|
||
createtime: "createTime",
|
||
pubtime: "publishTime",
|
||
kkty: "status",
|
||
offcourseId: "offcourseId",
|
||
},
|
||
true
|
||
);
|
||
datas.forEach((itm) => {
|
||
for (let item of options2.value) {
|
||
if (String(item.value) === String(itm.content)) {
|
||
itm.contentTxt = item.label;
|
||
return false;
|
||
}
|
||
}
|
||
});
|
||
state.tableData1 = datas;
|
||
};
|
||
getTableDate();
|
||
const handelChangePage1 = (page, pageSize) => {
|
||
state.currentPage1 = page;
|
||
state.pageSize1 = pageSize;
|
||
getTableDate();
|
||
};
|
||
const handleSearch1 = () => {
|
||
getTableDate();
|
||
};
|
||
const handleRest1 = () => {
|
||
state.projectName = "";
|
||
state.name = "";
|
||
state.createName = "";
|
||
state.auditStatus = null;
|
||
state.categoryId = null;
|
||
state.projectTime = "";
|
||
getTableDate();
|
||
};
|
||
|
||
const handleSucessStu = (itm) => {
|
||
console.log(itm);
|
||
state.studentId = itm.studentId;
|
||
state.studentItem = itm;
|
||
|
||
state.agreereject_hs = true;
|
||
state.agreestudy_hs = true;
|
||
};
|
||
const handleRejectStu = (itm) => {
|
||
console.log(itm);
|
||
state.studentId = itm.studentId;
|
||
state.studentItem = itm;
|
||
|
||
state.agreereject_hs = true;
|
||
state.rejectstudy_hs = true;
|
||
};
|
||
const handleDeleteStu = (itm) => {
|
||
console.log(itm);
|
||
state.studentId = itm.studentId;
|
||
state.studentItem = itm;
|
||
|
||
state.delete_hs = true;
|
||
state.del_hs = true;
|
||
};
|
||
const handlJoinStu = (itm) => {
|
||
console.log(itm);
|
||
state.studentId = itm.studentId;
|
||
state.studentItem = itm;
|
||
|
||
state.rg_hs = true;
|
||
};
|
||
const handleOverStu = (itm) => {
|
||
console.log(itm);
|
||
state.studentId = itm.studentId;
|
||
state.studentItem = itm;
|
||
|
||
state.graduate_hs = true;
|
||
};
|
||
|
||
//快速选人 选中的数组
|
||
const onSelectChange7 = (selectedRowKeys, item) => {
|
||
console.log("selectedRowKeys changed: ", selectedRowKeys, item);
|
||
state.selectedRowKeys7 = selectedRowKeys;
|
||
if (selectedRowKeys.length) {
|
||
state.piliang = true;
|
||
} else {
|
||
state.piliang = false;
|
||
}
|
||
// state.choosepeople = item.reverse();
|
||
// console.log(item, "选中你了!", state.choosepeople);
|
||
// selectedsHeight();
|
||
};
|
||
const handleAllJion = () => {
|
||
console.log(111);
|
||
if (state.piliang) {
|
||
state.rg_hs = true;
|
||
}
|
||
};
|
||
const handleAllover = () => {
|
||
console.log(111);
|
||
|
||
if (state.selectedRowKeys7.length === 0) {
|
||
return;
|
||
}
|
||
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: "",
|
||
studentIds: state.selectedRowKeys7,
|
||
type: 2,
|
||
}).then((res) => {
|
||
console.log(res);
|
||
getTableDate2();
|
||
});
|
||
};
|
||
const handleAllSuc = () => {
|
||
console.log(111);
|
||
|
||
if (state.selectedRowKeys7.length === 0) {
|
||
return;
|
||
}
|
||
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: "",
|
||
studentIds: state.selectedRowKeys7,
|
||
type: 3,
|
||
}).then((res) => {
|
||
console.log(res);
|
||
getTableDate2();
|
||
});
|
||
};
|
||
const handleAllReject = () => {
|
||
console.log(111);
|
||
|
||
if (state.selectedRowKeys7.length === 0) {
|
||
return;
|
||
}
|
||
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: "",
|
||
studentIds: state.selectedRowKeys7,
|
||
type: 4,
|
||
}).then((res) => {
|
||
console.log(res);
|
||
getTableDate2();
|
||
});
|
||
};
|
||
|
||
const handleExportStu = () => {
|
||
console.log(55533);
|
||
console.log(state.offcoursePlanId);
|
||
|
||
studentExport({
|
||
pageNo: state.currentPage3,
|
||
pageSize: state.pageSize3,
|
||
// applyStatus: state.auditStatus,
|
||
// evalStatus: state.categoryId,
|
||
// name: state.projectName,
|
||
// signStatus: state.name,
|
||
// status: state.name,
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
}).then((res) => {
|
||
// 流文件???
|
||
console.log("res33333");
|
||
console.log(res);
|
||
|
||
newFile(res.data.data);
|
||
});
|
||
};
|
||
|
||
const rest = () => {
|
||
options4CurName.value = "";
|
||
options4CurId.value = "";
|
||
state.teacher = null;
|
||
state.teacherId = null;
|
||
};
|
||
const handleChangeTea1 = (val) => {
|
||
console.log(787877);
|
||
console.log(val);
|
||
|
||
rest();
|
||
getTea();
|
||
};
|
||
const handelChangePageTea1 = (page, pageSize) => {
|
||
state.currentPageTea1 = page;
|
||
state.pageSizeTea1 = pageSize;
|
||
rest();
|
||
getTea();
|
||
};
|
||
const handleChangeTea2 = (val) => {
|
||
console.log(787877);
|
||
console.log(val);
|
||
options4CurName.value = val;
|
||
rest();
|
||
getTea();
|
||
};
|
||
const handelChangePageTea2 = (page, pageSize) => {
|
||
state.currentPageTea2 = page;
|
||
state.pageSizeTea2 = pageSize;
|
||
rest();
|
||
getTea();
|
||
};
|
||
|
||
//获取分类、场景、教师、-----------字典配置-------------------------------
|
||
const getDictList = (param) => {
|
||
let obj = {
|
||
pageNo: 1,
|
||
pageSize: 20,
|
||
setCode: param,
|
||
};
|
||
api1
|
||
.getDict(obj)
|
||
.then((res) => {
|
||
console.log("获取字典成功", res);
|
||
if (res.data.code === 200) {
|
||
if (param === "faceclassPic") {
|
||
if (res.data.data.rows.length > 0) {
|
||
state.imageUrl = res.data.data.rows[0].dictValue;
|
||
}
|
||
}
|
||
if (param === "faceclassClass") {
|
||
let arr = res.data.data.rows;
|
||
let newArr = [];
|
||
arr.forEach((item) => {
|
||
newArr.push({
|
||
value: item.dictCode,
|
||
label: item.dictName,
|
||
});
|
||
});
|
||
options2.value = newArr;
|
||
}
|
||
if (param === "faceclassScene") {
|
||
let arr = res.data.data.rows;
|
||
let newArr = [];
|
||
arr.forEach((item) => {
|
||
newArr.push({
|
||
value: item.dictCode,
|
||
label: item.dictName,
|
||
});
|
||
});
|
||
options3.value = newArr;
|
||
}
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
console.log("获取字典失败", err);
|
||
});
|
||
};
|
||
getDictList("faceclassClass");
|
||
getDictList("faceclassScene");
|
||
getDictList("faceclassPic");
|
||
//获取分类、场景、教师、----------------字典配置---------------------------
|
||
|
||
//渲染学员管理操作
|
||
const getTableDate2 = async () => {
|
||
// let data2 = state.tableData7;
|
||
let obj = {
|
||
pageNo: state.currentPage3,
|
||
pageSize: state.pageSize3,
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
name: state.xygl_inputV1,
|
||
};
|
||
// console.log("获取学员信息", obj);
|
||
let res = await studentList(obj);
|
||
// console.log("获取学员列表", res);
|
||
const {rows, total} = res.data.data;
|
||
state.tableDataTotal3 = total;
|
||
rows.forEach((item, index) => {
|
||
rows[index] = {
|
||
...item,
|
||
...item.userInfoBo,
|
||
};
|
||
});
|
||
const data2 = traverseArr(
|
||
rows,
|
||
{
|
||
key: "studentId",
|
||
num: "studentId",
|
||
name: "name",
|
||
number: "studentId",
|
||
department: "deptName",
|
||
postion: "jobName",
|
||
band: "userAutograph",
|
||
status: "applyStatus",
|
||
join: "source",
|
||
signstatus: "signStatus",
|
||
evastatus: "evalStatus",
|
||
overstatus: "status",
|
||
},
|
||
true
|
||
);
|
||
state.tableData7 = data2;
|
||
};
|
||
getTableDate2();
|
||
// 渲染开课操作
|
||
|
||
const handleSearchTable2 = () => {
|
||
console.log(7878);
|
||
getTableDate33();
|
||
};
|
||
const handleSearchTable3 = () => {
|
||
console.log(7878);
|
||
getTableDate333();
|
||
};
|
||
const getTableDate33 = async () => {
|
||
// let datas = state.tableData2;
|
||
// let res = await listReview({
|
||
// pageNo: state.currentPage22,
|
||
// pageSize: state.pageSize22,
|
||
// auditStatus: state.gl_selectV1,
|
||
// name: state.gl_inputv1,
|
||
// });
|
||
// const { rows, total } = res.data.data;
|
||
// state.tableDataTotal22 = total;
|
||
// const datas = traverseArr(
|
||
// rows,
|
||
// {
|
||
// key: "offcourseId",
|
||
// projectName: "projectName",
|
||
// numb: "assessmentName",
|
||
// applytime: "createTime",
|
||
// signtime: "publishTime",
|
||
// status: "auditStatus",
|
||
// },
|
||
// true
|
||
// );
|
||
// state.tableData2 = datas;
|
||
};
|
||
// 渲染开课操作
|
||
const getTableDate333 = async () => {
|
||
// let datas = state.tableData2;
|
||
// let res = await studyRecordList({
|
||
// pageNo: state.currentPage222,
|
||
// pageSize: state.pageSize222,
|
||
// name: state.gl_selectV1,
|
||
// status: state.gl_inputv1,
|
||
// });
|
||
// const { rows, total } = res.data.data;
|
||
// state.tableDataTotal222 = total;
|
||
// const datas = traverseArr(
|
||
// rows,
|
||
// {
|
||
// key: "offcourseId",
|
||
// projectName: "projectName",
|
||
// numb: "assessmentName",
|
||
// applytime: "createTime",
|
||
// signtime: "publishTime",
|
||
// status: "auditStatus",
|
||
// },
|
||
// true
|
||
// );
|
||
// state.tableData2 = datas;
|
||
};
|
||
// 渲染开课操作
|
||
const getTableDate3 = async () => {
|
||
// let datas = state.tableData6;
|
||
let obj = {
|
||
pageNo: state.currentPage222,
|
||
pageSize: state.pageSize222,
|
||
teacher: state.kk_inputV2,
|
||
offcourseId: state.offcourseId,
|
||
};
|
||
console.log("获取开课", obj);
|
||
let res = await planList(obj);
|
||
console.log("开课res", res);
|
||
const {rows, total} = res.data.data;
|
||
state.tableDataTotal222 = total;
|
||
const datas = traverseArr(
|
||
rows,
|
||
{
|
||
key: "offcoursePlanId",
|
||
num: "offcoursePlanId",
|
||
organization: "name",
|
||
address: "address",
|
||
starttime: "beginTime",
|
||
createtime: "createTime",
|
||
},
|
||
true
|
||
);
|
||
state.tableData6 = datas;
|
||
};
|
||
|
||
const options1 = ref([
|
||
{
|
||
value: 0,
|
||
label: "未提交",
|
||
},
|
||
{
|
||
value: 1,
|
||
label: "待审核",
|
||
},
|
||
{
|
||
value: 2,
|
||
label: "已审核",
|
||
},
|
||
{
|
||
value: -1,
|
||
label: "审核未通过",
|
||
},
|
||
]);
|
||
const options2 = ref([
|
||
// {
|
||
// value: "value2",
|
||
// label: "请选择内容分类",
|
||
// },
|
||
// {
|
||
// value: "leadership",
|
||
// label: "领导力",
|
||
// },
|
||
// {
|
||
// value: "ingeneral",
|
||
// label: "通用力",
|
||
// },
|
||
// {
|
||
// value: "profession",
|
||
// label: "专业力",
|
||
// },
|
||
]);
|
||
const options3 = ref([]);
|
||
const options4 = ref([
|
||
// {
|
||
// value: "profession",
|
||
// label: "专业力",
|
||
// },
|
||
]);
|
||
const options4CurId = ref("");
|
||
const options4CurName = ref("张");
|
||
const of_hShow = () => {
|
||
getTea();
|
||
if (state.of_hs == false) {
|
||
state.of_hs = true;
|
||
}
|
||
};
|
||
const of_exit1 = () => {
|
||
state.of_hs = false;
|
||
state.valueE1 = "";
|
||
state.valueE2 = "";
|
||
state.xzinputV1 = "";
|
||
state.hideshow = true;
|
||
rest();
|
||
};
|
||
const of_exit = () => {
|
||
state.of_hs = false;
|
||
state.valueE1 = "";
|
||
state.valueE2 = "";
|
||
state.hideshow = true;
|
||
};
|
||
const hideShow = () => {
|
||
if (state.hideshow == true) {
|
||
state.hideshow = false;
|
||
} else {
|
||
state.hideshow = true;
|
||
}
|
||
};
|
||
const bs_hShow = (value) => {
|
||
state.bs_hs = true;
|
||
if (value != "") {
|
||
state.valueE1 = "";
|
||
}
|
||
};
|
||
const createft = () => {
|
||
if (state.bs_hs == false && state.valueE1 != "") {
|
||
state.of_hs = false;
|
||
state.ft_hs = true;
|
||
state.valueE1 = "";
|
||
state.qdms_inputV1 = state.xzinputV1;
|
||
state.xzinputV1 = "";
|
||
}
|
||
if (state.bs_hs && state.valueE1 != "") {
|
||
state.addOnlineCoursevisible = true;
|
||
}
|
||
};
|
||
const checkVal = (checkList) => {
|
||
let count = 0;
|
||
for (const keyName of checkList) {
|
||
if (!keyName) {
|
||
count++;
|
||
}
|
||
}
|
||
return count ? false : true;
|
||
};
|
||
const ft_exit = () => {
|
||
state.ft_hs = false;
|
||
state.ft_eidt = false;
|
||
state.hideshow = true;
|
||
|
||
state.offcourseId = null;
|
||
state.qdms_inputV1 = "";
|
||
state.imageUrl = "";
|
||
state.qdms_inputV2 = "";
|
||
state.qdms_inputV3 = "";
|
||
state.fen_lei = null;
|
||
state.chang_jin = null;
|
||
state.tags_val = [];
|
||
state.qdms_inputV5 = null;
|
||
state.qdms_inputV6 = "";
|
||
state.imgList = [];
|
||
valueHtml.value = "";
|
||
state.fileList = [];
|
||
};
|
||
//保存面授课
|
||
const handlePush = (param) => {
|
||
//state.isEdit = 1;
|
||
|
||
console.log("========", state.addLoading);
|
||
console.log("state.imgList");
|
||
console.log(state.imgList);
|
||
let files = "";
|
||
if (state.imgList.length) {
|
||
state.imgList.forEach((item) => {
|
||
files += item.img + ",";
|
||
});
|
||
}
|
||
files = files.slice(0, files.length - 1);
|
||
console.log(files);
|
||
const postData = {
|
||
offcourseId: state.offcourseId, //不传代表新增
|
||
name: state.qdms_inputV1,
|
||
picUrl: state.imageUrl,
|
||
targetUser: state.qdms_inputV2,
|
||
meaning: state.qdms_inputV3,
|
||
categoryId: state.fen_lei,
|
||
sceneId: state.chang_jin,
|
||
tips: state.tags_val ? state.tags_val.join(",") : null,
|
||
teacherId: state.member.value,
|
||
teacher: state.member.name,
|
||
intro: state.qdms_inputV6,
|
||
attach: files,
|
||
outline: valueHtml.value,
|
||
//teacherId:state.teacherId ,
|
||
};
|
||
console.log("===", state.teacherId, "hha", state.qdms_inputV5);
|
||
console.log("postData");
|
||
console.log(postData);
|
||
const checkList = [
|
||
postData.name,
|
||
|
||
postData.targetUser,
|
||
postData.categoryId,
|
||
postData.teacherId,
|
||
];
|
||
if (!checkVal(checkList)) {
|
||
message.destroy();
|
||
return message.error("请输入必填项");
|
||
} else {
|
||
state.addLoading = true;
|
||
}
|
||
|
||
edit(postData).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate();
|
||
ft_exit();
|
||
rest();
|
||
state.addLoading = false;
|
||
// console.log("res.data", res.data);
|
||
if (param === "review") {
|
||
//新建时点击审核按钮
|
||
submitReview(res.data.data.offcourseId);
|
||
}
|
||
}
|
||
});
|
||
};
|
||
const om_exit = () => {
|
||
state.om_1 = false;
|
||
state.faceManageTab = "1";
|
||
};
|
||
const ckxq_hs = () => {
|
||
state.om_ckxq = true;
|
||
};
|
||
const ftsr_exit = () => {
|
||
state.om_ckxq = false;
|
||
};
|
||
const stm_exit = () => {
|
||
state.stm_hs = false;
|
||
};
|
||
const createkk = () => {
|
||
state.offcoursePlanId = null;
|
||
state.member = {}
|
||
state.cstm_hs = true;
|
||
};
|
||
const handleCancelStu = () => {
|
||
state.cstm_hs = false;
|
||
state.kk_eidt = false;
|
||
state.xjkkradioV1 = "";
|
||
state.completeType = "";
|
||
state.xjkkinputV1 = "";
|
||
state.xjkkinputV2 = "";
|
||
state.xjkkinputV3 = "";
|
||
state.xjkkinputV4 = null;
|
||
state.checked1 = false;
|
||
state.checked4 = false;
|
||
};
|
||
//保存开课
|
||
const handleSureStu = () => {
|
||
let startTime,
|
||
endTime = 0;
|
||
if (state.xjkkinputV3) {
|
||
startTime = parseInt(state.xjkkinputV3[0].$d.getTime() / 1000);
|
||
endTime = parseInt(state.xjkkinputV3[1].$d.getTime() / 1000);
|
||
}
|
||
let t = state.signCom ? "1," : "0,";
|
||
let p = state.comLeave ? "1" : "0";
|
||
let type = t.concat(p);
|
||
const postData = {
|
||
offcourseId: state.offcourseId,
|
||
offcoursePlanId: state.offcoursePlanId, //开课ID,不传代表新增
|
||
|
||
address: state.xjkkinputV2,
|
||
applyFlag: state.checked1 ? 1 : 0,
|
||
attach: state.filesList.length ? state.filesList.join(",") : "",
|
||
beginTime: startTime,
|
||
completeType: type,
|
||
endTime: endTime,
|
||
evalFlag: state.checked4 ? 1 : 0,
|
||
name: state.xjkkinputV1,
|
||
signFlag: state.xjkkradioV1 === 0 ? 1 : 0, //是否允许未报名的签到:1是0否
|
||
// signWordFlag: state.xjkkradioV1 === 1 ? 1 : 0, //签到是否需要口令:1是0否
|
||
teacherId: state.member.value,
|
||
teacher: state.member.name,
|
||
};
|
||
console.log(postData);
|
||
const checkList = [
|
||
postData.name,
|
||
postData.address,
|
||
postData.beginTime,
|
||
postData.endTime,
|
||
postData.teacherId,
|
||
];
|
||
if (!checkVal(checkList)) {
|
||
message.destroy();
|
||
return message.error("请输入必填项");
|
||
} else {
|
||
state.addLoading = true;
|
||
console.log("state.addLoading ", state.addLoading);
|
||
}
|
||
editPlan(postData).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate3();
|
||
handleCancelStu();
|
||
rest();
|
||
}
|
||
});
|
||
state.addLoading = false;
|
||
};
|
||
//编辑开课
|
||
const handelEditStu = async (itm) => {
|
||
console.log(itm);
|
||
state.offcourseId = itm.offcourseId;
|
||
state.offcoursePlanId = itm.offcoursePlanId;
|
||
|
||
const item = await detailPlan({
|
||
offcoursePlanId: Number(state.offcoursePlanId),
|
||
}).then((res) => {
|
||
if (res.data.code === 200) return res.data.data;
|
||
});
|
||
console.log("res");
|
||
console.log(item);
|
||
|
||
state.xjkkinputV2 = item.address;
|
||
state.checked1 = item.applyFlag === 1 ? true : false;
|
||
state.filesList = item.attach ? item.attach.split(",") : [];
|
||
state.xjkkinputV3 = [
|
||
dayjs(item.beginTime, "YYYY-MM-DD HH:mm:ss"),
|
||
dayjs(item.endTime, "YYYY-MM-DD HH:mm:ss"),
|
||
];
|
||
options4CurId.value = item.teacherId;
|
||
// (state.regisCom = item.completeType.split(",")[0] == "1" ? true : false),
|
||
(state.signCom = item.completeType.split(",")[0] == "1" ? true : false),
|
||
(state.comLeave =
|
||
item.completeType.split(",")[1] == "1" ? true : false),
|
||
(state.checked4 = item.evalFlag === 1 ? true : false);
|
||
state.xjkkinputV1 = item.name;
|
||
if (item.signFlag === 1) {
|
||
//是否允许未报名的签到:1是0否
|
||
state.xjkkradioV1 = 0;
|
||
}
|
||
/*
|
||
if (item.signWordFlag === 1) {
|
||
//签到是否需要口令:1是0否
|
||
state.xjkkradioV1 = 1;
|
||
}
|
||
if (item.signFlag === 0 && item.signWordFlag === 0) {
|
||
state.xjkkradioV1 = "";
|
||
}
|
||
*/
|
||
state.member = {value: item.teacherId, name: item.teacher};
|
||
|
||
state.cstm_hs = true;
|
||
state.kk_eidt = true;
|
||
};
|
||
const handelGuan = (itm) => {
|
||
console.log(676766);
|
||
state.offcourseId = itm.offcourseId;
|
||
state.offcoursePlanId = itm.offcoursePlanId;
|
||
state.studentId = itm.studentId;
|
||
state.studentItem = itm;
|
||
|
||
state.currentPlanItem = itm;
|
||
state.newCourseName = itm.name;
|
||
console.log(89877766666);
|
||
console.log(state.currentPlanItem);
|
||
|
||
state.sm_hs = true;
|
||
getTableDate2();
|
||
};
|
||
const sm_exit = () => {
|
||
state.sm_hs = false;
|
||
state.hideshow = true;
|
||
|
||
state.tableData7 = [];
|
||
};
|
||
const clear_valueE1 = (value) => {
|
||
state.bs_hs = false;
|
||
if (value != "") {
|
||
state.valueE1 = "";
|
||
}
|
||
};
|
||
const clear_valueE2 = () => {
|
||
state.valueE2 = "";
|
||
};
|
||
const clear_xjkkradioV1 = (value) => {
|
||
if (value != "") {
|
||
state.xjkkradioV1 = "";
|
||
}
|
||
};
|
||
const clear_xjkkradioV2 = (value) => {
|
||
if (value != "") {
|
||
state.xjkkradioV2 = "";
|
||
}
|
||
};
|
||
const clear_jyradioV1 = (value) => {
|
||
if (value != "") {
|
||
state.jyradioV1 = "";
|
||
}
|
||
};
|
||
const qr_exit = () => {
|
||
state.QR_hs = false;
|
||
state.qrQR_hs = false;
|
||
state.olQR_hs = false;
|
||
state.ftQR_hs = false;
|
||
state.ftsQR_hs = false;
|
||
state.vipftQR_hs = false;
|
||
state.addLoading = false;
|
||
};
|
||
const rg_exit = () => {
|
||
state.rg_hs = false;
|
||
state.addLoading = false;
|
||
};
|
||
const graduate_exit = () => {
|
||
state.graduate_hs = false;
|
||
state.addLoading = false;
|
||
};
|
||
const agreereject_exit = () => {
|
||
state.agreereject_hs = false;
|
||
state.agreestudy_hs = false;
|
||
state.rejectstudy_hs = false;
|
||
state.addLoading = false;
|
||
};
|
||
const delete_exit1 = () => {
|
||
state.delete_hs = false;
|
||
state.del_hs = false;
|
||
state.copy_hs = false;
|
||
state.nouse_hs = false;
|
||
state.rg_hs = false;
|
||
state.graduate_hs = false;
|
||
state.addLoading = false;
|
||
};
|
||
const handleRejectExit = (itm, type) => {
|
||
if (type === "1") {
|
||
return;
|
||
}
|
||
state.offcourseId = itm.offcourseId;
|
||
|
||
handle({
|
||
offcourseId: state.offcourseId,
|
||
type: 0,
|
||
}).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate();
|
||
}
|
||
});
|
||
};
|
||
|
||
const handleJoin = async () => {
|
||
if (state.rg_hs) {
|
||
if (state.piliang) {
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: state.lrcj_inputV1,
|
||
studentIds: state.selectedRowKeys7,
|
||
type: 1,
|
||
});
|
||
getTableDate2();
|
||
delete_exit1();
|
||
} else {
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: state.lrcj_inputV1,
|
||
studentIds: [state.studentId],
|
||
type: 1,
|
||
});
|
||
getTableDate2();
|
||
delete_exit1();
|
||
}
|
||
}
|
||
};
|
||
const handleJie = async () => {
|
||
if (state.graduate_hs) {
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: "",
|
||
studentIds: [state.studentId],
|
||
type: 2,
|
||
});
|
||
getTableDate2();
|
||
delete_exit1();
|
||
}
|
||
};
|
||
//确认复制
|
||
const handleAgreeTrue = async () => {
|
||
if (state.agreestudy_hs) {
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: "",
|
||
studentIds: [state.studentId],
|
||
type: 3,
|
||
});
|
||
getTableDate2();
|
||
delete_exit1();
|
||
state.addLoading = false;
|
||
}
|
||
if (state.rejectstudy_hs) {
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: "",
|
||
studentIds: [state.studentId],
|
||
type: 4,
|
||
});
|
||
getTableDate2();
|
||
delete_exit1();
|
||
}
|
||
};
|
||
//确认复制课程
|
||
const handleDeleteExit = async () => {
|
||
state.addLoading = true;
|
||
|
||
if (state.del_hs) {
|
||
console.log(11111111);
|
||
if (state.offcourseId && state.offcoursePlanId && state.studentId) {
|
||
console.log(111111);
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: "",
|
||
studentIds: [state.studentId],
|
||
type: 5,
|
||
});
|
||
getTableDate2();
|
||
delete_exit1();
|
||
} else if (state.offcourseId && state.offcoursePlanId) {
|
||
console.log(2222222);
|
||
deletePlan({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
});
|
||
getTableDate3();
|
||
delete_exit1();
|
||
} else if (state.offcourseId) {
|
||
console.log(3333333);
|
||
handle({
|
||
offcourseId: state.offcourseId,
|
||
type: -1,
|
||
}).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate();
|
||
delete_exit1();
|
||
}
|
||
});
|
||
}
|
||
}
|
||
if (state.copy_hs) {
|
||
console.log(2222222);
|
||
if (state.offcourseId && state.offcoursePlanId) {
|
||
console.log(87887);
|
||
// 拿数据
|
||
const item = await detailPlan({
|
||
offcoursePlanId: Number(state.offcoursePlanId),
|
||
}).then((res) => {
|
||
if (res.data.code === 200) return res.data.data;
|
||
});
|
||
const obj = {
|
||
offcourseId: item.offcourseId,
|
||
offcoursePlanId: null, //开课ID,不传代表新增
|
||
|
||
address: item.address,
|
||
applyFlag: item.applyFlag,
|
||
attach: item.attach,
|
||
beginTime: new Date(item.beginTime) / 1000,
|
||
completeType: item.completeType,
|
||
endTime: new Date(item.endTime) / 1000,
|
||
evalFlag: item.evalFlag,
|
||
name: item.name,
|
||
signFlag: item.signFlag, //是否允许未报名的签到:1是0否
|
||
//signWordFlag: item.signWordFlag, //签到是否需要口令:1是0否
|
||
teacherId: item.teacherId,
|
||
teacher: item.teacher,
|
||
};
|
||
console.log(obj);
|
||
editPlan(obj).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate3();
|
||
delete_exit1();
|
||
rest();
|
||
}
|
||
});
|
||
} else if (state.offcourseId) {
|
||
console.log(87887);
|
||
// 拿数据
|
||
const item = await detail({
|
||
offcourseId: Number(state.offcourseId),
|
||
}).then((res) => {
|
||
if (res.data.code === 200) return res.data.data;
|
||
});
|
||
const postData = {
|
||
offcourseId: null, //不传代表新增
|
||
name: item.name,
|
||
picUrl: item.picUrl,
|
||
targetUser: item.targetUser,
|
||
meaning: item.meaning,
|
||
categoryId: item.categoryId,
|
||
sceneId: item.sceneId,
|
||
tips: item.tips,
|
||
teacherId: item.teacherId, //?
|
||
intro: item.intro,
|
||
attach: item.attach,
|
||
outline: item.outline,
|
||
teacher: item.teacher,
|
||
};
|
||
edit(postData).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate();
|
||
delete_exit1();
|
||
rest();
|
||
}
|
||
});
|
||
}
|
||
}
|
||
if (state.nouse_hs) {
|
||
console.log(3333333333);
|
||
if (state.offcourseId) {
|
||
console.log(87887);
|
||
handle({
|
||
offcourseId: state.offcourseId,
|
||
type: -2,
|
||
}).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate();
|
||
delete_exit1();
|
||
}
|
||
});
|
||
}
|
||
}
|
||
};
|
||
const handleDeleteKaike = (value) => {
|
||
state.offcoursePlanId = value.offcoursePlanId;
|
||
|
||
state.delete_hs = true;
|
||
state.del_hs = true;
|
||
};
|
||
const onSelectChange = (selectedRowKeys) => {
|
||
console.log("selectedRowKeys changed: ", selectedRowKeys);
|
||
state.selectedRowKeys = selectedRowKeys;
|
||
};
|
||
|
||
const faceManageChange = (e) => {
|
||
state.faceManageTab = e;
|
||
};
|
||
|
||
const openMessage = () => {
|
||
let startTime = "";
|
||
let endTime = "";
|
||
if (state.projectTime) {
|
||
startTime = parseInt(
|
||
new Date(state.projectTime[0].$d).getTime() / 1000
|
||
);
|
||
endTime = parseInt(new Date(state.projectTime[1].$d).getTime() / 1000);
|
||
}
|
||
exportP({
|
||
pageNo: state.currentPage1,
|
||
pageSize: state.pageSize1,
|
||
auditStatus: state.auditStatus,
|
||
categoryId: state.categoryId,
|
||
projectName: state.projectName,
|
||
name: state.name,
|
||
createName: state.createName,
|
||
endTime: endTime,
|
||
beginTime: startTime,
|
||
}).then((res) => {
|
||
if (res.data.code === 200) {
|
||
message.success("导出成功");
|
||
}
|
||
});
|
||
};
|
||
//获取教师
|
||
const getTea = async () => {
|
||
console.log("获取授课教师信息");
|
||
options4CurName.value = state.teacher;
|
||
options4CurId.value = state.teacherId;
|
||
|
||
const item1 = await getMemberInfoApi({
|
||
pageNo: state.currentPageTea1,
|
||
pageSize: state.pageSizeTea1,
|
||
keyWord: options4CurName.value,
|
||
id: options4CurId.value ? options4CurId.value : null,
|
||
})
|
||
.then((res) => {
|
||
console.log("获取授课教师", res);
|
||
if (res.data.code === 200) return res.data.data;
|
||
})
|
||
.catch((err) => {
|
||
console.log("获取授课教师失败", err);
|
||
});
|
||
const {rows, total} = item1;
|
||
state.tableDataTotalTea1 = total;
|
||
state.tableDataTotalTea2 = total;
|
||
let newArr = [];
|
||
for (let item of rows) {
|
||
if (options4CurId.value === item.id) {
|
||
if (state.offcoursePlanId && state.offcourseId) {
|
||
options4CurName.value = item.realName;
|
||
state.xjkkinputV4 = item.realName;
|
||
state.teacherId = item.id;
|
||
} else if (state.offcourseId) {
|
||
options4CurName.value = item.realName;
|
||
state.qdms_inputV5 = item.realName;
|
||
state.teacher = item.realName;
|
||
state.teacherId = item.id;
|
||
console.log("那个老师", item);
|
||
}
|
||
}
|
||
newArr.push({
|
||
value: item.id,
|
||
label: item.realName,
|
||
});
|
||
}
|
||
options4.value = newArr;
|
||
console.log("options4.value");
|
||
console.log(options4.value);
|
||
};
|
||
//编辑面授课
|
||
const handleEdit = async (itm, type) => {
|
||
state.isEdit = 0;
|
||
console.log(45555);
|
||
console.log(itm);
|
||
if (type === "1") {
|
||
return;
|
||
}
|
||
state.offcourseId = itm.offcourseId;
|
||
|
||
const item = await detail({
|
||
offcourseId: Number(state.offcourseId),
|
||
}).then((res) => {
|
||
if (res.data.code === 200) return res.data.data;
|
||
});
|
||
console.log("res");
|
||
console.log(item);
|
||
console.log(options2.value);
|
||
console.log(options3.value);
|
||
|
||
state.qdms_inputV1 = item.name;
|
||
state.imageUrl = item.picUrl;
|
||
state.qdms_inputV2 = item.targetUser;
|
||
state.qdms_inputV3 = item.meaning;
|
||
state.fen_lei = String(item.categoryId);
|
||
state.chang_jin = String(item.sceneId);
|
||
state.tags_val = item.tips ? item.tips.split(",") : [];
|
||
//state.qdms_inputV5 = item.teacherId;
|
||
state.teacher = item.teacher;
|
||
state.teacherId = item.teacherId;
|
||
state.qdms_inputV6 = item.intro;
|
||
state.member = {value: item.teacherId, name: item.teacher};
|
||
|
||
if (item.attach == "") {
|
||
state.imgList = [];
|
||
} else {
|
||
if (item.attach.indexOf(",")) {
|
||
const arr = item.attach.split(",");
|
||
arr.forEach((item) => {
|
||
state.imgList.push({img: item});
|
||
});
|
||
} else {
|
||
state.imgList = [{img: item.attach}];
|
||
}
|
||
}
|
||
|
||
valueHtml.value = item.outline;
|
||
|
||
state.ft_hs = true;
|
||
state.ft_eidt = true;
|
||
};
|
||
// const handleTea = async () => {
|
||
// console.log("item22224444");
|
||
// // const item = await getMemberInfo({
|
||
// // pageNo: state.pageSizeTea1,
|
||
// // }).then((res) => {
|
||
// // if (res.data.code === 200) return res.data.data;
|
||
// // console.log("item2222222");
|
||
// // console.log(item);
|
||
// // });
|
||
// };
|
||
const handleDelete = (item, type) => {
|
||
console.log(item);
|
||
if (type === "1") {
|
||
return;
|
||
}
|
||
state.offcourseId = item.offcourseId;
|
||
|
||
state.delete_hs = true;
|
||
state.del_hs = true;
|
||
};
|
||
const handleCopy = async (itm, type) => {
|
||
console.log(itm);
|
||
if (type === "1") {
|
||
return;
|
||
}
|
||
state.offcourseId = itm.offcourseId;
|
||
|
||
state.delete_hs = true;
|
||
state.copy_hs = true;
|
||
};
|
||
const handleCopyP = async (itm) => {
|
||
console.log(itm);
|
||
state.offcourseId = itm.offcourseId;
|
||
state.offcoursePlanId = itm.offcoursePlanId;
|
||
|
||
state.delete_hs = true;
|
||
state.copy_hs = true;
|
||
};
|
||
const handleStop = async (itm, type) => {
|
||
console.log(itm);
|
||
if (type === "1") {
|
||
return;
|
||
}
|
||
state.offcourseId = itm.offcourseId;
|
||
|
||
state.delete_hs = true;
|
||
state.nouse_hs = true;
|
||
};
|
||
const handleOpen = async (itm, type) => {
|
||
console.log(itm);
|
||
if (type === "1") {
|
||
return;
|
||
}
|
||
state.offcourseId = itm.offcourseId;
|
||
|
||
handle({
|
||
offcourseId: state.offcourseId,
|
||
type: 2,
|
||
}).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate();
|
||
}
|
||
});
|
||
};
|
||
const handleStart = (item, type) => {
|
||
console.log(item);
|
||
if (type === "1") {
|
||
return;
|
||
}
|
||
state.offcourseId = item.offcourseId;
|
||
state.newCourseName = item.name;
|
||
getTableDate3();
|
||
|
||
state.stm_hs = true;
|
||
};
|
||
|
||
const handelChangePage222 = (page, pageSize) => {
|
||
state.currentPage222 = page;
|
||
state.pageSize222 = pageSize;
|
||
getTableDate333();
|
||
};
|
||
const handelChangePage22 = (page, pageSize) => {
|
||
state.currentPage22 = page;
|
||
state.pageSize22 = pageSize;
|
||
getTableDate33();
|
||
};
|
||
const handelChangePage2 = (page, pageSize) => {
|
||
state.currentPage2 = page;
|
||
state.pageSize2 = pageSize;
|
||
getTableDate3();
|
||
};
|
||
const handleSearchTable = () => {
|
||
console.log(state.kk_inputV1);
|
||
console.log(state.kk_inputV2);
|
||
console.log(state.selectTime);
|
||
getTableDate3();
|
||
handleRestTable();
|
||
};
|
||
const handleRestTable = () => {
|
||
state.kk_inputV1 = "";
|
||
state.kk_inputV2 = "";
|
||
state.selectTime = "";
|
||
};
|
||
|
||
const handelChangePage3 = (page, pageSize) => {
|
||
state.currentPage3 = page;
|
||
state.pageSize3 = pageSize;
|
||
getTableDate2();
|
||
};
|
||
const handleSearchStu = () => {
|
||
console.log(state.xygl_inputV1);
|
||
getTableDate2();
|
||
};
|
||
const handleRestStu = () => {
|
||
state.xygl_inputV1 = "";
|
||
getTableDate2();
|
||
};
|
||
|
||
const beforeUpload3 = (file) => {
|
||
const fileType = [
|
||
"jpg",
|
||
"jpeg",
|
||
"png",
|
||
"gif",
|
||
"pdf",
|
||
"ppt",
|
||
"pptx",
|
||
"doc",
|
||
"docx",
|
||
"xls",
|
||
"xlsx",
|
||
"zip",
|
||
];
|
||
if (!fileType.includes(file.name.split(".")[1])) {
|
||
message.error(
|
||
"仅支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip格式!"
|
||
);
|
||
return false;
|
||
}
|
||
|
||
const formData = new FormData();
|
||
formData.append("file", file);
|
||
console.log(file);
|
||
fileUp(formData).then((res) => {
|
||
if (res.data.code === 200) {
|
||
state.filesList.push({
|
||
img: res.data.data,
|
||
name: file.name,
|
||
size: file.size,
|
||
});
|
||
console.log(state.filesList);
|
||
// state.hasImgName = res.data.data;
|
||
}
|
||
});
|
||
return false;
|
||
};
|
||
|
||
const handleGuan22 = (item) => {
|
||
console.log(787666);
|
||
getTableDate33();
|
||
getTableDate333();
|
||
state.newCourseName = item.name;
|
||
};
|
||
|
||
const handlePostSure = (obj) => {
|
||
console.log("处理后参数,直接解构使用");
|
||
console.log(obj);
|
||
|
||
addStudent({
|
||
offcourseId: Number(state.offcourseId),
|
||
offcoursePlanId: Number(state.offcoursePlanId),
|
||
...obj,
|
||
}).then((res) => {
|
||
console.log(res);
|
||
if (res.data.code === 200) {
|
||
state.Stuvisible = false;
|
||
getTableDate2();
|
||
}
|
||
});
|
||
};
|
||
|
||
const getdateToDateFn = (val) => {
|
||
return getdateToDate(val * 1000);
|
||
};
|
||
const getdateToTimeFn = (val) => {
|
||
return getdateToTime(val * 1000);
|
||
};
|
||
|
||
//提交审核
|
||
const reviewClick = () => {
|
||
console.log("ft_eidt", state.ft_eidt);
|
||
if (state.ft_eidt) {
|
||
//编辑面授课
|
||
submitReview();
|
||
}
|
||
if (!state.ft_eidt) {
|
||
//shouke
|
||
handlePush("review");
|
||
}
|
||
};
|
||
const submitReview = (id) => {
|
||
state.addLoading = true;
|
||
|
||
if (id == "") {
|
||
return message.error("请先完成保存");
|
||
}
|
||
let obj = {
|
||
offcourseId: id ? id : state.offcourseId,
|
||
type: 1,
|
||
};
|
||
console.log("提交审核参数", obj);
|
||
handle(obj).then((res) => {
|
||
console.log("提交审核成功", res.data);
|
||
if (res.data.code === 200) {
|
||
ft_exit();
|
||
rest();
|
||
getTableDate();
|
||
state.addLoading = false;
|
||
}
|
||
});
|
||
};
|
||
|
||
//授权
|
||
//权限名单
|
||
const showPrower = (record) => {
|
||
// console.log("record", record);
|
||
state.corpowerlistvisible = true;
|
||
state.selectCourseId = record.offcourseId;
|
||
};
|
||
//归属权
|
||
const showOwnPrower = (record) => {
|
||
// console.log("record", record);
|
||
state.ownpowervisible = true;
|
||
state.selectCourseId = record.offcourseId;
|
||
};
|
||
//查看权
|
||
const showViewPrower = (record) => {
|
||
// console.log("record", record);
|
||
state.viewpowervisible = true;
|
||
state.selectCourseId = record.offcourseId;
|
||
state.authClassify = 1;
|
||
};
|
||
//管理权
|
||
const showManagePrower = (record) => {
|
||
// console.log("record", record);
|
||
state.viewpowervisible = true;
|
||
state.selectCourseId = record.offcourseId;
|
||
state.authClassify = 2;
|
||
};
|
||
//添加权限
|
||
watch(
|
||
() => state.addAuthList,
|
||
(res) => {
|
||
console.log("res", res, state.addAuthList);
|
||
let obj = {
|
||
type: 3,
|
||
tag:
|
||
state.authClassify === 1 ? 3 : state.authClassify === 2 ? 4 : null,
|
||
opt: 3,
|
||
deptList: res[1],
|
||
groupList: res[2],
|
||
refId: state.selectCourseId,
|
||
pageNo: 20,
|
||
pageSize: 1,
|
||
studentList: res[0],
|
||
keyWord: "",
|
||
};
|
||
console.log("obj", obj);
|
||
api1
|
||
.optionAuthPerm(obj)
|
||
.then((res) => {
|
||
console.log("添加授权成功", res);
|
||
message.success("添加授权成功");
|
||
})
|
||
.catch((err) => {
|
||
console.log("添加授权失败", err);
|
||
});
|
||
}
|
||
);
|
||
|
||
//添加学员
|
||
watch(
|
||
() => state.addStudentList,
|
||
(res) => {
|
||
console.log("res", res, state.addStudentList);
|
||
let obj = {
|
||
deptList: res[1],
|
||
groupList: res[2],
|
||
offcourseId: state.offcourseId,
|
||
offcoursePlanId: state.offcoursePlanId, //开课id
|
||
studentList: res[0],
|
||
};
|
||
console.log("obj", obj);
|
||
api1
|
||
.addStudentCourse(obj)
|
||
.then((res) => {
|
||
console.log("添加学员成功", res);
|
||
message.success("添加学员成功");
|
||
getTableDate2();
|
||
})
|
||
.catch((err) => {
|
||
console.log("添加学员失败", err);
|
||
});
|
||
}
|
||
);
|
||
|
||
const closeOnlineCoursevisible = () => {
|
||
console.log("执行");
|
||
getTableDate();
|
||
};
|
||
return {
|
||
...toRefs(state),
|
||
getdateToDateFn,
|
||
getdateToTimeFn,
|
||
handlePostSure,
|
||
handleDeleteKaike,
|
||
handleDel2,
|
||
handelEditStu,
|
||
handelGuan,
|
||
beforeUpload3,
|
||
handleSearchStu,
|
||
handleRestStu,
|
||
handelChangePage2,
|
||
handelChangePage22,
|
||
handelChangePage222,
|
||
handelChangePage3,
|
||
handleSearchTable,
|
||
handleRestTable,
|
||
handleSearchTable2,
|
||
handleSearchTable3,
|
||
handleGuan22,
|
||
handleStart,
|
||
handleCopyP,
|
||
handleCopy,
|
||
handleStop,
|
||
handleOpen,
|
||
handleEdit,
|
||
handleDelete,
|
||
columns1,
|
||
columns2,
|
||
columns4,
|
||
columns6,
|
||
columns7,
|
||
options1,
|
||
options2,
|
||
options3,
|
||
options4,
|
||
of_hShow,
|
||
of_exit1,
|
||
of_exit,
|
||
hideShow,
|
||
bs_hShow,
|
||
createft,
|
||
ft_exit,
|
||
om_exit,
|
||
ckxq_hs,
|
||
ftsr_exit,
|
||
stm_exit,
|
||
createkk,
|
||
handleCancelStu,
|
||
handleSureStu,
|
||
sm_exit,
|
||
clear_valueE1,
|
||
clear_valueE2,
|
||
clear_xjkkradioV1,
|
||
clear_xjkkradioV2,
|
||
clear_jyradioV1,
|
||
qr_exit,
|
||
rg_exit,
|
||
graduate_exit,
|
||
agreereject_exit,
|
||
delete_exit1,
|
||
handleRejectExit,
|
||
handleAgreeTrue,
|
||
handleJoin,
|
||
handleJie,
|
||
handleDeleteExit,
|
||
onSelectChange,
|
||
faceManageChange,
|
||
openMessage,
|
||
showStuAdd,
|
||
|
||
editorRef,
|
||
valueHtml,
|
||
mode: "simple", // 或 'simple'
|
||
toolbarConfig,
|
||
editorConfig,
|
||
handleCreated,
|
||
handelChangePage1,
|
||
handleSearch1,
|
||
handleRest1,
|
||
beforeUpload,
|
||
beforeUpload2,
|
||
handleDel,
|
||
handlePush,
|
||
handleSucessStu,
|
||
handleRejectStu,
|
||
handleDeleteStu,
|
||
handlJoinStu,
|
||
handleOverStu,
|
||
onSelectChange7,
|
||
handleAllJion,
|
||
handleAllover,
|
||
handleAllSuc,
|
||
handleAllReject,
|
||
handleExportStu,
|
||
handleChangeTea1,
|
||
handelChangePageTea1,
|
||
handleChangeTea2,
|
||
handelChangePageTea2,
|
||
submitReview,
|
||
reviewClick,
|
||
|
||
showPrower,
|
||
showOwnPrower,
|
||
showViewPrower,
|
||
showManagePrower,
|
||
|
||
closeOnlineCoursevisible,
|
||
};
|
||
},
|
||
});
|
||
</script>
|
||
<style lang="scss">
|
||
.aeLoading {
|
||
z-index: 10000;
|
||
}
|
||
|
||
.courseManage {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: flex;
|
||
flex-direction: column;
|
||
position: relative;
|
||
|
||
.headerf {
|
||
.filter {
|
||
margin-left: 38px;
|
||
margin-right: 38px;
|
||
margin-top: 30px;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
flex-wrap: wrap;
|
||
|
||
.filterItems {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
|
||
.fitems {
|
||
margin-right: 20px;
|
||
margin-bottom: 20px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.btns {
|
||
display: flex;
|
||
margin-left: 38px;
|
||
|
||
.btn {
|
||
padding: 0px 26px 0px 26px;
|
||
height: 38px;
|
||
background: rgba(64, 158, 255, 0);
|
||
border-radius: 8px;
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-right: 14px;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.search {
|
||
background-size: 100%;
|
||
}
|
||
|
||
.btnText {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
color: rgba(64, 158, 255, 1);
|
||
line-height: 36px;
|
||
margin-left: 5px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
.search {
|
||
width: 15px;
|
||
height: 17px;
|
||
background-image: url("../../assets/images/courseManage/search1.png");
|
||
}
|
||
}
|
||
|
||
.btn2 {
|
||
.search {
|
||
width: 16px;
|
||
height: 18px;
|
||
background-image: url("../../assets/images/courseManage/reset1.png");
|
||
}
|
||
}
|
||
|
||
.btn3 {
|
||
.search {
|
||
width: 17px;
|
||
height: 18px;
|
||
background-image: url("../../assets/images/coursewareManage/export.png");
|
||
}
|
||
}
|
||
|
||
.btn4 {
|
||
margin-right: 0px;
|
||
|
||
.search {
|
||
width: 17px;
|
||
height: 18px;
|
||
background-image: url("../../assets/images/courseManage/add1.png");
|
||
}
|
||
}
|
||
|
||
.btn1:hover {
|
||
background: rgba(64, 158, 255, 1);
|
||
|
||
.search {
|
||
background-image: url("../../assets/images/courseManage/search0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
.btn2:hover {
|
||
background: rgba(64, 158, 255, 1);
|
||
|
||
.search {
|
||
background-image: url("../../assets/images/courseManage/reset0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
.btn3:hover {
|
||
background: rgba(64, 158, 255, 1);
|
||
|
||
.search {
|
||
background-image: url("../../assets/images/coursewareManage/export1.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
.btn4:hover {
|
||
background: rgba(64, 158, 255, 1);
|
||
|
||
.search {
|
||
background-image: url("../../assets/images/courseManage/add0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.tableBox {
|
||
margin: 20px 38px 30px;
|
||
|
||
.operation {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
color: #4ea6ff;
|
||
|
||
.nselect {
|
||
justify-content: center;
|
||
align-items: center;
|
||
display: flex;
|
||
|
||
.jc {
|
||
margin-left: 20px;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
|
||
.tableSelect {
|
||
// margin-right: 10px;
|
||
margin-left: -5px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: right;
|
||
}
|
||
}
|
||
|
||
.ynuse {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
|
||
.use {
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.selectonlineface {
|
||
z-index: 999;
|
||
width: 679px;
|
||
background: #ffffff;
|
||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||
position: absolute;
|
||
left: 50%;
|
||
top: -100%;
|
||
transform: translate(-50%, -50%);
|
||
|
||
.of_header {
|
||
position: absolute;
|
||
width: 100%;
|
||
height: 40px;
|
||
background: linear-gradient(
|
||
rgba(78, 166, 255, 0.2) 0%,
|
||
rgba(78, 166, 255, 0) 100%
|
||
);
|
||
}
|
||
|
||
.of_main {
|
||
width: 100%;
|
||
position: relative;
|
||
|
||
.ofm_header {
|
||
display: flex;
|
||
align-items: center;
|
||
padding-top: 20px;
|
||
padding-left: 26px;
|
||
font-size: 16px;
|
||
|
||
.add_icon {
|
||
width: 16px;
|
||
height: 16px;
|
||
margin-right: 10px;
|
||
background-image: url(@/assets/images/coursewareManage/add1.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
|
||
.close_exit {
|
||
position: absolute;
|
||
right: 42px;
|
||
cursor: pointer;
|
||
width: 20px;
|
||
height: 20px;
|
||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.ofm_body {
|
||
width: 80%;
|
||
margin: 3px auto;
|
||
|
||
.ofmb_items {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: end;
|
||
margin: 14px auto;
|
||
|
||
.signbox {
|
||
width: 110px;
|
||
display: flex;
|
||
justify-content: end;
|
||
|
||
.sign {
|
||
width: 10px;
|
||
height: 10px;
|
||
margin-top: -3px;
|
||
margin-right: 6px;
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.b_input {
|
||
flex: 1;
|
||
position: relative;
|
||
|
||
.inp_num {
|
||
position: absolute;
|
||
right: 10px;
|
||
top: 10px;
|
||
}
|
||
}
|
||
|
||
.bc_box {
|
||
display: flex;
|
||
width: 440px;
|
||
flex: 1;
|
||
|
||
.bc_boxl,
|
||
.bc_boxr {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
}
|
||
}
|
||
|
||
.ol_checkbox {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-left: 6px;
|
||
}
|
||
|
||
.b_sub {
|
||
width: 440px;
|
||
margin-left: 110px;
|
||
|
||
.bs_header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
|
||
.b_right {
|
||
display: flex;
|
||
}
|
||
}
|
||
}
|
||
|
||
.bl_detail {
|
||
top: 24px;
|
||
}
|
||
|
||
.b_footer {
|
||
width: 100%;
|
||
margin-left: 212px;
|
||
margin-top: 25px;
|
||
margin-bottom: 20px;
|
||
display: flex;
|
||
|
||
.btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
background: rgba(64, 158, 255, 0);
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-right: 14px;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn5 {
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
color: #4ea6ff;
|
||
}
|
||
|
||
.btn6 {
|
||
background-color: #4ea6ff;
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.createschooltime {
|
||
z-index: 999;
|
||
width: 679px;
|
||
background: #ffffff;
|
||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||
position: absolute;
|
||
left: 50%;
|
||
top: -100%;
|
||
transform: translate(-50%, -50%);
|
||
|
||
.cst_header {
|
||
position: absolute;
|
||
width: 100%;
|
||
height: 40px;
|
||
background: linear-gradient(
|
||
rgba(78, 166, 255, 0.2) 0%,
|
||
rgba(78, 166, 255, 0) 100%
|
||
);
|
||
}
|
||
|
||
.cst_main {
|
||
width: 100%;
|
||
position: relative;
|
||
|
||
.cstm_header {
|
||
display: flex;
|
||
align-items: center;
|
||
padding-top: 20px;
|
||
padding-left: 26px;
|
||
font-size: 16px;
|
||
|
||
.add_icon {
|
||
width: 16px;
|
||
height: 16px;
|
||
margin-right: 10px;
|
||
background-image: url(@/assets/images/coursewareManage/add1.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
|
||
.close_exit {
|
||
position: absolute;
|
||
right: 42px;
|
||
cursor: pointer;
|
||
width: 20px;
|
||
height: 20px;
|
||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.cstm_title {
|
||
margin: 10px auto 20px 51px;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.cstm_items {
|
||
display: flex;
|
||
width: 80%;
|
||
margin: auto;
|
||
align-items: center;
|
||
margin-bottom: 23px;
|
||
|
||
.signbox {
|
||
display: flex;
|
||
justify-content: end;
|
||
width: 100px;
|
||
margin-right: 6px;
|
||
|
||
.sign {
|
||
margin-top: -5px;
|
||
margin-right: 4px;
|
||
}
|
||
}
|
||
|
||
.b_input {
|
||
flex: 1;
|
||
position: relative;
|
||
|
||
.upload_box {
|
||
display: flex;
|
||
cursor: pointer;
|
||
|
||
.upload_icon {
|
||
width: 16px;
|
||
height: 16px;
|
||
margin-right: 5px;
|
||
}
|
||
}
|
||
|
||
.inp_num {
|
||
position: absolute;
|
||
top: 9px;
|
||
right: 10px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.mbl_items12 {
|
||
width: 440px;
|
||
margin-left: 100px;
|
||
|
||
.i12_box1 {
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 17px 0px 17px 21px;
|
||
border: 1px solid #eff4fc;
|
||
border-radius: 8px;
|
||
margin-bottom: 10px;
|
||
|
||
.file_img {
|
||
width: 27px;
|
||
height: 32px;
|
||
background-image: url(@/assets/images/coursewareManage/imgs.png);
|
||
margin-right: 22px;
|
||
|
||
img {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
|
||
.file_detail {
|
||
width: 250px;
|
||
margin-right: 21px;
|
||
|
||
.file_updata {
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.updatabox {
|
||
position: relative;
|
||
width: 230px;
|
||
height: 5px;
|
||
background-color: rgba(192, 192, 192, 0.25);
|
||
border-radius: 3px;
|
||
|
||
.updatacolor {
|
||
position: absolute;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 5px;
|
||
background-color: #57c887;
|
||
border-radius: 3px;
|
||
}
|
||
|
||
.updatacolor2 {
|
||
position: absolute;
|
||
left: 0;
|
||
width: 80%;
|
||
height: 5px;
|
||
background-color: #ff7474;
|
||
border-radius: 3px;
|
||
}
|
||
|
||
.updatacolor3 {
|
||
position: absolute;
|
||
left: 0;
|
||
width: 60%;
|
||
height: 5px;
|
||
background-color: #388be1;
|
||
border-radius: 3px;
|
||
}
|
||
|
||
.updataxq {
|
||
position: absolute;
|
||
right: 2px;
|
||
top: -30px;
|
||
color: #57c887;
|
||
}
|
||
|
||
.updataxq2 {
|
||
position: absolute;
|
||
right: 2px;
|
||
top: -30px;
|
||
color: #ff7474;
|
||
}
|
||
|
||
.updataxq3 {
|
||
position: absolute;
|
||
right: 2px;
|
||
top: -30px;
|
||
color: #388be1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.file_operation {
|
||
display: flex;
|
||
|
||
.fobox {
|
||
margin-right: 5px;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.items_fj {
|
||
margin-bottom: 1px;
|
||
}
|
||
|
||
.items_btn {
|
||
display: flex;
|
||
justify-content: center;
|
||
margin-top: 20px;
|
||
margin-bottom: 20px;
|
||
|
||
.cstm_btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
background: rgba(64, 158, 255, 0);
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-right: 14px;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn5 {
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
color: #4ea6ff;
|
||
}
|
||
|
||
.btn6 {
|
||
background-color: #4ea6ff;
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.QRModal {
|
||
.ant-modal {
|
||
.ant-modal-content {
|
||
width: 479px !important;
|
||
|
||
.ant-modal-body {
|
||
.QR {
|
||
z-index: 9999;
|
||
width: 520px;
|
||
background: #ffffff;
|
||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||
position: absolute;
|
||
left: 50%;
|
||
top: 10%;
|
||
transform: translate(-50%, -50%);
|
||
|
||
.qr_header {
|
||
position: absolute;
|
||
width: calc(100%);
|
||
height: 40px;
|
||
background: linear-gradient(
|
||
rgba(78, 166, 255, 0.2) 0%,
|
||
rgba(78, 166, 255, 0) 100%
|
||
);
|
||
}
|
||
|
||
.qr_main {
|
||
width: 100%;
|
||
position: relative;
|
||
|
||
.qrm_header {
|
||
display: flex;
|
||
align-items: center;
|
||
padding-top: 20px;
|
||
padding-left: 26px;
|
||
font-size: 16px;
|
||
|
||
.qr_icon {
|
||
width: 16px;
|
||
height: 16px;
|
||
margin-right: 10px;
|
||
background-image: url(@/assets/images/coursewareManage/QR.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
|
||
.close_exit {
|
||
position: absolute;
|
||
right: 42px;
|
||
cursor: pointer;
|
||
width: 20px;
|
||
height: 20px;
|
||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.qrm_body {
|
||
width: 100%;
|
||
margin-top: 22px;
|
||
margin-bottom: 32px;
|
||
|
||
.QR_img {
|
||
width: 176px;
|
||
height: 176px;
|
||
margin: 1px auto;
|
||
background-image: url(@/assets/images/taskpage/QR.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.qrm_footer {
|
||
display: flex;
|
||
align-items: center;
|
||
margin-bottom: 44px;
|
||
|
||
.qrmbtn {
|
||
width: 80px;
|
||
height: 32px;
|
||
display: flex;
|
||
line-height: 32px;
|
||
justify-content: center;
|
||
border-radius: 4px;
|
||
border: 1px solid #387df7;
|
||
margin-left: 16px;
|
||
cursor: pointer;
|
||
|
||
.btntext {
|
||
color: #387df7;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.recgradeModal {
|
||
.ant-modal {
|
||
.ant-modal-content {
|
||
// width:679px !important;
|
||
.ant-modal-body {
|
||
.recordgrade {
|
||
z-index: 9999;
|
||
width: 679px;
|
||
background: #ffffff;
|
||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||
position: absolute;
|
||
left: 50%;
|
||
top: 10%;
|
||
transform: translate(-50%, -50%);
|
||
|
||
.rg_header {
|
||
position: absolute;
|
||
width: calc(100%);
|
||
height: 40px;
|
||
background: linear-gradient(
|
||
rgba(78, 166, 255, 0.2) 0%,
|
||
rgba(78, 166, 255, 0) 100%
|
||
);
|
||
}
|
||
|
||
.rg_main {
|
||
width: 100%;
|
||
position: relative;
|
||
|
||
.rgm_header {
|
||
display: flex;
|
||
align-items: center;
|
||
padding-top: 20px;
|
||
padding-left: 26px;
|
||
font-size: 16px;
|
||
|
||
.rg_icon {
|
||
width: 16px;
|
||
height: 16px;
|
||
margin-right: 10px;
|
||
background-image: url(@/assets/images/coursewareManage/grade.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
|
||
.close_exit {
|
||
position: absolute;
|
||
right: 42px;
|
||
cursor: pointer;
|
||
width: 20px;
|
||
height: 20px;
|
||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.rgm_body {
|
||
width: 100%;
|
||
|
||
.rgmb_items {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
width: 80%;
|
||
margin: 21px auto 10px auto;
|
||
|
||
.items_left {
|
||
display: flex;
|
||
margin-right: 14px;
|
||
|
||
.sign {
|
||
margin-right: 7px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.qrm_btnbox {
|
||
display: flex;
|
||
margin: 30px auto;
|
||
justify-content: center;
|
||
|
||
.qrm_btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
background: rgba(64, 158, 255, 0);
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-right: 14px;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
color: #4ea6ff;
|
||
}
|
||
|
||
.btn2 {
|
||
background-color: #4ea6ff;
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.graModal {
|
||
.ant-modal {
|
||
.ant-modal-content {
|
||
// width:679px !important;
|
||
.ant-modal-body {
|
||
.graduate {
|
||
z-index: 9999;
|
||
width: 679px;
|
||
background: #ffffff;
|
||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||
position: absolute;
|
||
left: 50%;
|
||
top: 10%;
|
||
transform: translate(-50%, -50%);
|
||
|
||
.gra_header {
|
||
position: absolute;
|
||
width: calc(100%);
|
||
height: 40px;
|
||
background: linear-gradient(
|
||
rgba(78, 166, 255, 0.2) 0%,
|
||
rgba(78, 166, 255, 0) 100%
|
||
);
|
||
}
|
||
|
||
.gra_main {
|
||
width: 100%;
|
||
position: relative;
|
||
|
||
.gram_header {
|
||
display: flex;
|
||
align-items: center;
|
||
padding-top: 20px;
|
||
padding-left: 26px;
|
||
font-size: 16px;
|
||
|
||
.gra_icon {
|
||
width: 16px;
|
||
height: 16px;
|
||
margin-right: 10px;
|
||
background-image: url(@/assets/images/coursewareManage/graduate.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
|
||
.close_exit {
|
||
position: absolute;
|
||
right: 42px;
|
||
cursor: pointer;
|
||
width: 20px;
|
||
height: 20px;
|
||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.gram_body {
|
||
width: 100%;
|
||
|
||
.gramb_items {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
width: 80%;
|
||
margin: 21px auto 10px auto;
|
||
|
||
.items_left {
|
||
display: flex;
|
||
margin-right: 14px;
|
||
|
||
.sign {
|
||
margin-right: 7px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.gramb_input {
|
||
.bc_box {
|
||
display: flex;
|
||
}
|
||
}
|
||
}
|
||
|
||
.qrm_btnbox {
|
||
display: flex;
|
||
margin: 30px auto;
|
||
justify-content: center;
|
||
|
||
.qrm_btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
background: rgba(64, 158, 255, 0);
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-right: 14px;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
color: #4ea6ff;
|
||
}
|
||
|
||
.btn2 {
|
||
background-color: #4ea6ff;
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.agrstudyModal {
|
||
.ant-modal {
|
||
width: 429px !important;
|
||
height: 258px !important;
|
||
|
||
.ant-modal-content {
|
||
width: 429px !important;
|
||
height: 258px !important;
|
||
|
||
.ant-modal-body {
|
||
width: 429px !important;
|
||
height: 258px !important;
|
||
padding: 0px !important;
|
||
|
||
.agreestudy {
|
||
z-index: 9999;
|
||
width: 429px;
|
||
height: 258px;
|
||
background: #ffffff;
|
||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||
|
||
.agree_header {
|
||
position: absolute;
|
||
width: 100%;
|
||
height: 40px;
|
||
background: linear-gradient(
|
||
rgba(78, 166, 255, 0.2) 0%,
|
||
rgba(78, 166, 255, 0) 100%
|
||
);
|
||
}
|
||
|
||
.agree_main {
|
||
width: 100%;
|
||
position: relative;
|
||
|
||
.agreem_header {
|
||
display: flex;
|
||
align-items: center;
|
||
padding-top: 20px;
|
||
padding-left: 26px;
|
||
font-size: 16px;
|
||
|
||
.agreem_icon {
|
||
width: 16px;
|
||
height: 16px;
|
||
margin-right: 10px;
|
||
background-image: url(@/assets/images/coursewareManage/notice.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
|
||
.close_exit {
|
||
position: absolute;
|
||
right: 42px;
|
||
cursor: pointer;
|
||
width: 20px;
|
||
height: 20px;
|
||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.agreem_body {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
width: 100%;
|
||
margin: 45px auto 62px auto;
|
||
}
|
||
|
||
.qrm_btnbox {
|
||
display: flex;
|
||
margin: 30px auto;
|
||
justify-content: center;
|
||
|
||
.qrm_btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
background: rgba(64, 158, 255, 0);
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
color: #4ea6ff;
|
||
margin-right: 14px;
|
||
}
|
||
|
||
.btn2 {
|
||
background-color: #4ea6ff;
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.onlmanageModal {
|
||
.ant-modal {
|
||
.ant-modal-content {
|
||
// width:1358px !important;
|
||
.ant-modal-body {
|
||
.modalHeader {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
|
||
.headerLeft {
|
||
margin-left: 27px;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.headerLeftText {
|
||
font-size: 16px;
|
||
font-weight: 400;
|
||
color: #000000;
|
||
line-height: 36px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.onlinemanage {
|
||
display: none;
|
||
min-width: 1000px;
|
||
background: #ffffff;
|
||
|
||
.om_main {
|
||
width: 100%;
|
||
|
||
.om_body {
|
||
margin-right: 50px;
|
||
|
||
.b_title {
|
||
color: #4f5156;
|
||
font-weight: 500;
|
||
margin-bottom: 19px;
|
||
}
|
||
|
||
.b_sub {
|
||
display: flex;
|
||
margin-bottom: 10px;
|
||
|
||
.bs_type {
|
||
color: #999ba3;
|
||
}
|
||
|
||
.bs_left {
|
||
color: #999ba3;
|
||
margin-left: 35px;
|
||
}
|
||
|
||
.bs_right {
|
||
color: #4f5156;
|
||
}
|
||
}
|
||
|
||
.b_menu {
|
||
width: calc(100%);
|
||
}
|
||
|
||
.b_menunav {
|
||
display: flex;
|
||
margin-top: 20px;
|
||
margin-bottom: 20px;
|
||
|
||
.bm_select {
|
||
margin-right: 20px;
|
||
}
|
||
|
||
.bm_input {
|
||
margin-right: 20px;
|
||
}
|
||
|
||
.bm_btn {
|
||
display: flex;
|
||
cursor: pointer;
|
||
|
||
.btn {
|
||
padding: 0px 26px 0px 26px;
|
||
height: 40px;
|
||
background: rgba(64, 158, 255, 0);
|
||
border-radius: 8px;
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-right: 14px;
|
||
flex-shrink: 0;
|
||
|
||
.search {
|
||
background-size: 100%;
|
||
}
|
||
|
||
.btnText {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
color: rgba(64, 158, 255, 1);
|
||
line-height: 36px;
|
||
margin-left: 5px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
.search {
|
||
width: 15px;
|
||
height: 17px;
|
||
background-image: url("@/assets/images/coursewareManage/search1.png");
|
||
}
|
||
}
|
||
|
||
.btn1:hover {
|
||
background: rgba(64, 158, 255, 1);
|
||
|
||
.search {
|
||
background-image: url("@/assets/images/coursewareManage/search0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.facteachModal {
|
||
.ant-modal {
|
||
.ant-modal-content {
|
||
// width:1358px !important;
|
||
.ant-modal-body {
|
||
.modalHeader {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
|
||
.headerLeft {
|
||
margin-left: 27px;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.headerLeftText {
|
||
font-size: 16px;
|
||
font-weight: 400;
|
||
color: #000000;
|
||
line-height: 36px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.modalMain {
|
||
.m_title {
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
.m_body {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
|
||
.mb_left {
|
||
width: 50%;
|
||
|
||
.mbl_items {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-end;
|
||
margin-bottom: 10px;
|
||
|
||
.item_nam {
|
||
width: 100px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-end;
|
||
white-space: nowrap;
|
||
|
||
.asterisk_icon {
|
||
width: 10px;
|
||
height: 10px;
|
||
margin-right: 5px;
|
||
margin-top: -15px;
|
||
}
|
||
}
|
||
|
||
.item_inp {
|
||
flex: 1;
|
||
position: relative;
|
||
|
||
.inp_num {
|
||
position: absolute;
|
||
left: 398px;
|
||
top: 10px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.mbl_items2 {
|
||
display: flex;
|
||
align-items: start;
|
||
margin-top: 10px;
|
||
margin-bottom: 10px;
|
||
|
||
.item_nam {
|
||
width: 100px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-end;
|
||
white-space: nowrap;
|
||
|
||
.asterisk_icon {
|
||
width: 10px;
|
||
height: 10px;
|
||
margin-right: 5px;
|
||
margin-top: -15px;
|
||
}
|
||
}
|
||
|
||
.item_inp {
|
||
flex: 1;
|
||
|
||
.i_upload_img {
|
||
width: 100px;
|
||
height: 100px;
|
||
border-radius: 8px;
|
||
}
|
||
|
||
.i_upload {
|
||
width: 100px;
|
||
height: 100px;
|
||
border: 1px solid #4ea6ff;
|
||
border-radius: 8px;
|
||
text-align: center;
|
||
align-items: center;
|
||
cursor: pointer;
|
||
|
||
.addimg {
|
||
position: relative;
|
||
|
||
.heng {
|
||
position: absolute;
|
||
top: 50px;
|
||
left: 25px;
|
||
width: 50px;
|
||
border: 1px solid #4ea6ff;
|
||
}
|
||
|
||
.shu {
|
||
position: absolute;
|
||
top: 25px;
|
||
left: 50px;
|
||
height: 50px;
|
||
border: 1px solid #4ea6ff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.i2_cz {
|
||
width: 440px;
|
||
margin-left: 100px;
|
||
|
||
.i2_top {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
}
|
||
}
|
||
|
||
.i8_bottom {
|
||
display: flex;
|
||
width: 440px;
|
||
margin-left: 100px;
|
||
}
|
||
}
|
||
|
||
.mb_right {
|
||
width: 50%;
|
||
|
||
.mbl_items {
|
||
display: flex;
|
||
align-items: flex-start;
|
||
justify-content: flex-end;
|
||
margin-bottom: 10px;
|
||
|
||
.item_nam {
|
||
width: 100px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-end;
|
||
white-space: nowrap;
|
||
|
||
.asterisk_icon {
|
||
width: 10px;
|
||
height: 10px;
|
||
margin-top: -15px;
|
||
margin-right: 5px;
|
||
}
|
||
}
|
||
|
||
.item_inp {
|
||
flex: 1;
|
||
}
|
||
|
||
.accessory {
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.accessory_icon {
|
||
width: 16px;
|
||
height: 16px;
|
||
margin-top: -8px;
|
||
margin-right: 5px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.mbl_items2 {
|
||
display: flex;
|
||
align-items: start;
|
||
margin-bottom: 10px;
|
||
|
||
.item_nam {
|
||
width: 100px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-end;
|
||
white-space: nowrap;
|
||
|
||
.asterisk_icon {
|
||
width: 10px;
|
||
height: 10px;
|
||
margin-right: 5px;
|
||
margin-top: -15px;
|
||
}
|
||
}
|
||
|
||
.item_inp {
|
||
flex: 1;
|
||
position: relative;
|
||
|
||
.inp_num {
|
||
position: absolute;
|
||
left: 395px;
|
||
bottom: 10px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.mbl_items12 {
|
||
width: 440px;
|
||
margin-left: 100px;
|
||
|
||
.i12_box1 {
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 17px 0px 17px 21px;
|
||
border: 1px solid #eff4fc;
|
||
border-radius: 8px;
|
||
margin-bottom: 10px;
|
||
|
||
.file_img {
|
||
width: 27px;
|
||
height: 32px;
|
||
background-image: url(@/assets/images/coursewareManage/imgs.png);
|
||
margin-right: 22px;
|
||
|
||
img {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
|
||
.file_detail {
|
||
width: 250px;
|
||
margin-right: 21px;
|
||
|
||
.file_updata {
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.updatabox {
|
||
position: relative;
|
||
width: 230px;
|
||
height: 5px;
|
||
background-color: rgba(192, 192, 192, 0.25);
|
||
border-radius: 3px;
|
||
|
||
.updatacolor {
|
||
position: absolute;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 5px;
|
||
background-color: #57c887;
|
||
border-radius: 3px;
|
||
}
|
||
|
||
.updatacolor2 {
|
||
position: absolute;
|
||
left: 0;
|
||
width: 80%;
|
||
height: 5px;
|
||
background-color: #ff7474;
|
||
border-radius: 3px;
|
||
}
|
||
|
||
.updatacolor3 {
|
||
position: absolute;
|
||
left: 0;
|
||
width: 60%;
|
||
height: 5px;
|
||
background-color: #388be1;
|
||
border-radius: 3px;
|
||
}
|
||
|
||
.updataxq {
|
||
position: absolute;
|
||
right: 2px;
|
||
top: -30px;
|
||
color: #57c887;
|
||
}
|
||
|
||
.updataxq2 {
|
||
position: absolute;
|
||
right: 2px;
|
||
top: -30px;
|
||
color: #ff7474;
|
||
}
|
||
|
||
.updataxq3 {
|
||
position: absolute;
|
||
right: 2px;
|
||
top: -30px;
|
||
color: #388be1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.file_operation {
|
||
display: flex;
|
||
|
||
.fobox {
|
||
margin-right: 5px;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.m_footer {
|
||
display: flex;
|
||
margin: 20px 0;
|
||
|
||
.fotnam {
|
||
width: 100px;
|
||
display: flex;
|
||
justify-content: end;
|
||
padding-right: 15px;
|
||
}
|
||
|
||
.fotarea {
|
||
position: relative;
|
||
|
||
.fuwenben {
|
||
width: 90%;
|
||
height: 20px;
|
||
background-color: rgb(95, 95, 95);
|
||
position: absolute;
|
||
left: 50%;
|
||
transform: translate(-50%, 0);
|
||
top: 3px;
|
||
z-index: 9999;
|
||
}
|
||
}
|
||
}
|
||
|
||
.m_btn {
|
||
width: 100%;
|
||
margin-top: 25px;
|
||
margin-bottom: 20px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-content: center;
|
||
|
||
.btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
background: rgba(64, 158, 255, 0);
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-right: 14px;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn5 {
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
color: #4ea6ff;
|
||
}
|
||
|
||
.btn6 {
|
||
background-color: #4ea6ff;
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.givpowerModal {
|
||
.ant-modal {
|
||
.ant-modal-content {
|
||
// width:1358px !important;
|
||
.ant-modal-body {
|
||
.modalHeader {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
|
||
.headerLeft {
|
||
margin-left: 27px;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.headerLeftText {
|
||
font-size: 16px;
|
||
font-weight: 400;
|
||
color: #000000;
|
||
line-height: 36px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.givepower {
|
||
min-width: 1000px;
|
||
background: #ffffff;
|
||
|
||
.gp_main {
|
||
width: 100%;
|
||
position: relative;
|
||
|
||
.gpm_inputbtn {
|
||
width: 90%;
|
||
margin: 20px auto;
|
||
display: flex;
|
||
|
||
.gpm_btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
margin-right: 14px;
|
||
background: #ffffff;
|
||
border: 1px solid #4ea6ff;
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
color: #4ea6ff;
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
.search {
|
||
width: 15px;
|
||
height: 17px;
|
||
margin-right: 6px;
|
||
background-image: url("../../assets/images/courseManage/search1.png");
|
||
}
|
||
}
|
||
|
||
.btn2 {
|
||
.reset {
|
||
width: 16px;
|
||
height: 18px;
|
||
margin-right: 6px;
|
||
background-image: url("../../assets/images/courseManage/reset1.png");
|
||
}
|
||
}
|
||
|
||
.btn1:hover {
|
||
background: #4ea6ff;
|
||
|
||
.search {
|
||
background-image: url("@/assets/images/coursewareManage/search0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
.btn2:hover {
|
||
background: #4ea6ff;
|
||
|
||
.reset {
|
||
background-image: url("@/assets/images/coursewareManage/reset0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.gpm_notice {
|
||
display: flex;
|
||
background: rgba(78, 166, 255, 0.25);
|
||
border: 1px solid #4ea6ff;
|
||
width: 90%;
|
||
height: 62px;
|
||
margin: 20px auto;
|
||
align-items: center;
|
||
line-height: 64px;
|
||
|
||
.th_icon {
|
||
width: 16px;
|
||
height: 16px;
|
||
background-image: url(@/assets/images/coursewareManage/gan.png);
|
||
background-size: 100% 100%;
|
||
margin: auto 13px auto 37px;
|
||
}
|
||
|
||
.textarea {
|
||
margin-right: 33px;
|
||
}
|
||
}
|
||
|
||
.gpm_table {
|
||
width: 90%;
|
||
margin: 30px auto;
|
||
border: 1px solid #f0f4fe;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.schtimeModal {
|
||
.ant-modal {
|
||
.ant-modal-content {
|
||
// width:1358px !important;
|
||
.ant-modal-body {
|
||
.modalHeader {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
|
||
.headerLeft {
|
||
margin-left: 27px;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.headerLeftText {
|
||
font-size: 16px;
|
||
font-weight: 400;
|
||
color: #000000;
|
||
line-height: 36px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.schooltime {
|
||
min-width: 1000px;
|
||
background: #ffffff;
|
||
|
||
.st_main {
|
||
width: 100%;
|
||
|
||
.stm_inputbtn {
|
||
display: flex;
|
||
width: 90%;
|
||
margin: 20px auto;
|
||
|
||
.stm_btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
margin-right: 14px;
|
||
background: #ffffff;
|
||
border: 1px solid #4ea6ff;
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
color: #4ea6ff;
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
.search {
|
||
width: 15px;
|
||
height: 17px;
|
||
margin-right: 6px;
|
||
background-image: url("@/assets/images/coursewareManage/search1.png");
|
||
}
|
||
}
|
||
|
||
.btn2 {
|
||
.reset {
|
||
width: 16px;
|
||
height: 18px;
|
||
margin-right: 6px;
|
||
background-image: url("@/assets/images/coursewareManage/reset1.png");
|
||
}
|
||
}
|
||
|
||
.btn1:hover {
|
||
background: #4ea6ff;
|
||
|
||
.search {
|
||
background-image: url("@/assets/images/coursewareManage/search0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
.btn2:hover {
|
||
background: #4ea6ff;
|
||
|
||
.reset {
|
||
background-image: url("@/assets/images/coursewareManage/reset0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.stm_btn3 {
|
||
width: 130px;
|
||
height: 40px;
|
||
border: 1px solid #4ea6ff;
|
||
background-color: #4ea6ff;
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
|
||
.btn3 {
|
||
.add {
|
||
width: 17px;
|
||
height: 18px;
|
||
background-image: url("@/assets/images/coursewareManage/add0.png");
|
||
background-size: 100% 100%;
|
||
margin-right: 6px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.notable {
|
||
width: 100%;
|
||
height: 100%;
|
||
|
||
.notablebox {
|
||
width: 412px;
|
||
height: 212px;
|
||
background: linear-gradient(180deg, #fef3dd 0%, #fffaf0 100%);
|
||
border-radius: 10px;
|
||
display: flex;
|
||
justify-content: center;
|
||
text-align: center;
|
||
margin: 77px auto 109px auto;
|
||
position: relative;
|
||
|
||
.smallleft {
|
||
position: absolute;
|
||
top: 18px;
|
||
left: 0px;
|
||
width: 8px;
|
||
height: 21px;
|
||
border-radius: 0px 4px 4px 0px;
|
||
background-color: #ffb64e;
|
||
}
|
||
|
||
.smallright {
|
||
position: absolute;
|
||
bottom: 18px;
|
||
right: 0px;
|
||
width: 8px;
|
||
height: 21px;
|
||
border-radius: 4px 0px 0px 4px;
|
||
background-color: #ffb64e;
|
||
}
|
||
|
||
.boxbody {
|
||
.boximg {
|
||
width: 72px;
|
||
height: 72px;
|
||
margin: 32px auto 20px auto;
|
||
background-image: url(@/assets/images/coursewareManage/nostate.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
|
||
.boxtitle {
|
||
margin-bottom: 4px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.stm_table {
|
||
position: relative;
|
||
padding-bottom: 80px;
|
||
|
||
.classify {
|
||
margin-left: 10px !important;
|
||
padding-left: 9px !important;
|
||
}
|
||
|
||
.ant-checkbox-wrapper {
|
||
align-items: center;
|
||
margin-top: -2px;
|
||
}
|
||
|
||
.ant-table-selection-column {
|
||
padding: 0px !important;
|
||
padding-left: 60px !important;
|
||
}
|
||
|
||
.ant-table-thead > tr > th {
|
||
background-color: rgba(239, 244, 252, 1);
|
||
}
|
||
|
||
th.h {
|
||
background-color: #eff4fc !important;
|
||
}
|
||
|
||
.ant-table-tbody
|
||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||
> td {
|
||
background: #f6f9fd;
|
||
}
|
||
|
||
.operation {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
color: #4ea6ff;
|
||
|
||
.nselect {
|
||
justify-content: center;
|
||
align-items: center;
|
||
display: flex;
|
||
|
||
.jc {
|
||
margin-left: 20px;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
|
||
.tableSelect {
|
||
// margin-right: 10px;
|
||
margin-left: -5px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: right;
|
||
}
|
||
}
|
||
|
||
.tableBox {
|
||
.pa {
|
||
left: 0;
|
||
width: 100%;
|
||
// height: 20px;
|
||
// background-color: red;
|
||
display: flex;
|
||
justify-content: center;
|
||
position: absolute;
|
||
bottom: 20px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.stusmanageModal {
|
||
.ant-modal {
|
||
.ant-modal-content {
|
||
// width:1358px !important;
|
||
.ant-modal-body {
|
||
.modalHeader {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
|
||
.headerLeft {
|
||
margin-left: 27px;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.headerLeftText {
|
||
font-size: 16px;
|
||
font-weight: 400;
|
||
color: #000000;
|
||
line-height: 36px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.studentsmanage {
|
||
min-width: 1000px;
|
||
background: #ffffff;
|
||
|
||
.stm_main {
|
||
width: 100%;
|
||
|
||
.stmmitems {
|
||
margin: auto 49px;
|
||
|
||
.stmm_i1,
|
||
.stmm_i2,
|
||
.stmm_i3,
|
||
.stmm_i4 {
|
||
margin: 19px 0;
|
||
}
|
||
|
||
.stmm_i5 {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
|
||
.i5_left {
|
||
display: flex;
|
||
|
||
.stmm_btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
margin-right: 14px;
|
||
background: #ffffff;
|
||
border: 1px solid #4ea6ff;
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
color: #4ea6ff;
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
.search {
|
||
width: 15px;
|
||
height: 17px;
|
||
margin-right: 6px;
|
||
background-image: url("../../assets/images/courseManage/search1.png");
|
||
}
|
||
}
|
||
|
||
.btn2 {
|
||
.reset {
|
||
width: 16px;
|
||
height: 18px;
|
||
margin-right: 6px;
|
||
background-image: url("../../assets/images/courseManage/reset1.png");
|
||
}
|
||
}
|
||
|
||
.btn1:hover {
|
||
background: rgba(64, 158, 255, 1);
|
||
|
||
.search {
|
||
background-image: url("../../assets/images/courseManage/search0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
.btn2:hover {
|
||
background: rgba(64, 158, 255, 1);
|
||
|
||
.reset {
|
||
background-image: url("../../assets/images/courseManage/reset0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.i5_right {
|
||
display: flex;
|
||
|
||
.stmm_btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
// <!-- 2022-11-30注释 后面放开 -->
|
||
// margin-right: 14px;
|
||
background: #ffffff;
|
||
border: 1px solid #4ea6ff;
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
color: #4ea6ff;
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn3 {
|
||
background-color: #4ea6ff;
|
||
}
|
||
|
||
.btn4 {
|
||
display: flex;
|
||
width: 130px;
|
||
flex-direction: column;
|
||
position: relative;
|
||
|
||
.btn4_sub {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
|
||
.b_zk {
|
||
width: 10px;
|
||
height: 8px;
|
||
background-image: url("@/assets/images/coursewareManage/down.png");
|
||
background-size: 100% 100%;
|
||
}
|
||
|
||
.b_sq {
|
||
width: 10px;
|
||
height: 8px;
|
||
background-image: url("@/assets/images/coursewareManage/up.png");
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.btn4_sup {
|
||
width: 100%;
|
||
background-color: #ffffff;
|
||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||
position: absolute;
|
||
top: 40px;
|
||
z-index: 999;
|
||
|
||
.btnsbox {
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
|
||
.btn4_tit {
|
||
margin: 10px auto;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.btn4_op1,
|
||
.btn4_op2,
|
||
.btn4_op3 {
|
||
margin-bottom: 10px;
|
||
white-space: nowrap;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.btn5 {
|
||
margin-right: 0px;
|
||
|
||
.export {
|
||
width: 17px;
|
||
height: 18px;
|
||
margin-right: 5px;
|
||
background-image: url("@/assets/images/coursewareManage/export.png");
|
||
}
|
||
}
|
||
|
||
.btn5:hover {
|
||
background: #4ea6ff;
|
||
|
||
.export {
|
||
background-image: url("@/assets/images/coursewareManage/export1.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.stmm_i6 {
|
||
position: relative;
|
||
padding-top: 15px;
|
||
padding-bottom: 80px;
|
||
|
||
.classify {
|
||
margin-left: 10px !important;
|
||
padding-left: 9px !important;
|
||
}
|
||
|
||
.ant-checkbox-wrapper {
|
||
align-items: center;
|
||
margin-top: -2px;
|
||
}
|
||
|
||
.ant-table-selection-column {
|
||
padding: 0px !important;
|
||
padding-left: 60px !important;
|
||
}
|
||
|
||
.ant-table-thead > tr > th {
|
||
background-color: rgba(239, 244, 252, 1);
|
||
}
|
||
|
||
th.h {
|
||
background-color: #eff4fc !important;
|
||
}
|
||
|
||
.ant-table-tbody
|
||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||
> td {
|
||
background: #f6f9fd;
|
||
}
|
||
|
||
.operation,
|
||
.nselect {
|
||
display: flex;
|
||
justify-content: center;
|
||
color: #4ea6ff;
|
||
font-size: 14px;
|
||
|
||
.ops1,
|
||
.ops2 {
|
||
margin-right: 10px;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
|
||
.tableBox {
|
||
.pa {
|
||
left: 0;
|
||
width: 100%;
|
||
// height: 20px;
|
||
// background-color: red;
|
||
display: flex;
|
||
justify-content: center;
|
||
position: absolute;
|
||
bottom: 20px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.coursewareDetail {
|
||
.ant-modal {
|
||
height: 320px;
|
||
margin-top: 100px;
|
||
|
||
.ant-modal-content {
|
||
// width:1358px !important;
|
||
.ant-modal-body {
|
||
.modalHeader {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
|
||
.headerLeft {
|
||
margin-left: 27px;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.headerLeftText {
|
||
font-size: 16px;
|
||
font-weight: 400;
|
||
color: #000000;
|
||
line-height: 36px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.modalMain {
|
||
.ftsturecord {
|
||
min-width: 1000px;
|
||
background: #ffffff;
|
||
|
||
.ftsr_main {
|
||
width: 100%;
|
||
|
||
.ftsr_table {
|
||
width: 90%;
|
||
margin: 30px auto;
|
||
border: 1px solid #f0f4fe;
|
||
}
|
||
|
||
.ftsr_btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
background: #ffffff;
|
||
border: 1px solid #4ea6ff;
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin: 30px auto;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
color: #4ea6ff;
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.DelModal {
|
||
.ant-modal {
|
||
.ant-modal-content {
|
||
width: 424px !important;
|
||
|
||
.ant-modal-body {
|
||
.delete {
|
||
width: 424px;
|
||
background: #ffffff;
|
||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||
border-radius: 4px;
|
||
position: absolute;
|
||
left: 50%;
|
||
top: 10%;
|
||
transform: translate(-50%, -50%);
|
||
|
||
.del_header {
|
||
position: absolute;
|
||
width: calc(100%);
|
||
height: 40px;
|
||
background: linear-gradient(
|
||
rgba(78, 166, 255, 0.2) 0%,
|
||
rgba(78, 166, 255, 0) 100%
|
||
);
|
||
}
|
||
|
||
.del_main {
|
||
width: 100%;
|
||
position: relative;
|
||
|
||
.header {
|
||
display: flex;
|
||
align-items: center;
|
||
padding-top: 20px;
|
||
padding-left: 26px;
|
||
font-size: 16px;
|
||
|
||
.del-icons {
|
||
width: 16px;
|
||
height: 16px;
|
||
position: relative;
|
||
margin-right: 10px;
|
||
|
||
img {
|
||
width: 100%;
|
||
height: 100%;
|
||
position: absolute;
|
||
top: 0px;
|
||
left: 0px;
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.close_exit {
|
||
position: absolute;
|
||
right: 42px;
|
||
cursor: pointer;
|
||
width: 20px;
|
||
height: 20px;
|
||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||
background-size: 100% 100%;
|
||
}
|
||
}
|
||
|
||
.body {
|
||
width: 100%;
|
||
margin: 34px auto 56px auto;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
|
||
.del_btnbox {
|
||
display: flex;
|
||
margin: 30px auto;
|
||
justify-content: center;
|
||
|
||
.del_btn {
|
||
width: 100px;
|
||
height: 40px;
|
||
background: rgba(64, 158, 255, 0);
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-right: 14px;
|
||
flex-shrink: 0;
|
||
cursor: pointer;
|
||
|
||
.btnText {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 40px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
color: #4ea6ff;
|
||
}
|
||
|
||
.btn2 {
|
||
background-color: #4ea6ff;
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.disabled {
|
||
a {
|
||
color: #999ba3;
|
||
cursor: not-allowed;
|
||
}
|
||
}
|
||
|
||
.pa {
|
||
width: 100%;
|
||
display: flex;
|
||
justify-content: center;
|
||
margin-bottom: 20px;
|
||
|
||
.pagination {
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
.ant-pagination-item-link,
|
||
.ant-pagination-item,
|
||
.ant-select-selector,
|
||
.ant-pagination-options-quick-jumper input {
|
||
border-radius: 8px;
|
||
}
|
||
}
|
||
|
||
.ant-select-selector {
|
||
height: 100%;
|
||
border-radius: 8px;
|
||
}
|
||
|
||
.ant-upload.ant-upload-select-picture-card {
|
||
border: none;
|
||
}
|
||
|
||
// .tableSelect {
|
||
// position: relative;
|
||
// .hoverList {
|
||
// display: none;
|
||
// }
|
||
// &:hover {
|
||
// .hoverList {
|
||
// display: block;
|
||
// position: absolute;
|
||
// top: 20px;
|
||
// left: -20px;
|
||
// background: #fff;
|
||
// box-sizing: border-box;
|
||
// // padding: 20px;
|
||
// color: #000000;
|
||
// }
|
||
// }
|
||
// }
|
||
</style>
|