mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-10 03:16:44 +08:00
8060 lines
224 KiB
Vue
8060 lines
224 KiB
Vue
<!-- 课件管理页面 -->
|
||
<template>
|
||
<div class="courseManage">
|
||
<div class="headerf">
|
||
<!-- 搜索框及按钮 -->
|
||
<div class="filter">
|
||
<div class="filterItems">
|
||
<div class="pathnameInp">
|
||
<a-input
|
||
v-model:value="createName"
|
||
style="width: 200px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入创建人"
|
||
@pressEnter="handleSearch1"
|
||
/>
|
||
</div>
|
||
<div class="pathnameInp">
|
||
<a-input
|
||
v-model:value="name"
|
||
style="width: 200px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入名称"
|
||
@pressEnter="handleSearch1"
|
||
/>
|
||
</div>
|
||
<div class="pathnameInp">
|
||
<a-input
|
||
v-model:value="projectName"
|
||
style="width: 200px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入所属项目"
|
||
@pressEnter="handleSearch1"
|
||
/>
|
||
</div>
|
||
<div class="select">
|
||
<a-select
|
||
v-model:value="auditStatus"
|
||
dropdownClassName="dropdown-style"
|
||
style="width: 200px"
|
||
placeholder="请选择状态"
|
||
:options="options1"
|
||
allowClear
|
||
>
|
||
</a-select>
|
||
</div>
|
||
<div class="select">
|
||
<a-tree-select
|
||
:getPopupContainer="
|
||
(triggerNode) => triggerNode.parentNode || document.body
|
||
"
|
||
v-model:value="sysTypeId"
|
||
show-search
|
||
style="width: 200px"
|
||
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||
placeholder="请选择内容分类"
|
||
allow-clear
|
||
tree-default-expand-all
|
||
:fieldNames="{
|
||
children: 'children',
|
||
label: 'name',
|
||
value: 'code',
|
||
}"
|
||
:tree-data="sysTypeOptions"
|
||
>
|
||
</a-tree-select>
|
||
</div>
|
||
<div class="select">
|
||
<div class="select addTimeBox">
|
||
<div class="addTime">创建时间:</div>
|
||
<a-range-picker
|
||
v-model:value="projectTime"
|
||
style="width: 420px"
|
||
format="YYYY-MM-DD"
|
||
separator="至"
|
||
:placeholder="[' 开始时间', ' 结束时间']"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div style="display: flex; margin-bottom: 20px" class="courseBtn">
|
||
<div class="btn btn1" @click="handleSearch1">
|
||
<div class="search"></div>
|
||
<div class="btnText">搜索</div>
|
||
</div>
|
||
<div class="btnn btn2" @click="handleRest1" style="width: 110px">
|
||
<div class="search"></div>
|
||
<div class="btnText">重置</div>
|
||
</div>
|
||
</div>
|
||
<div class="btns">
|
||
<!-- 2022-11-30注释 后面放开 -->
|
||
<div
|
||
class="btnn btn2"
|
||
@click="openMessage"
|
||
style="margin-right: 14px"
|
||
>
|
||
<div class="daochu"></div>
|
||
<div class="btnText">导出</div>
|
||
</div>
|
||
<div class="btn btn3" @click="of_hShow">
|
||
<div class="search"></div>
|
||
<div class="btnText">新建课程</div>
|
||
</div>
|
||
</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="in b_input">
|
||
<NameInput
|
||
placeholder="请输入课程名称"
|
||
v-model:value="xzinputV1"
|
||
v-model:validated="validated"
|
||
:id="offcourseId"
|
||
:maxlength="50"
|
||
show-count
|
||
:type="2"
|
||
></NameInput>
|
||
<!-- <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">
|
||
<!-- 2022-12-21 隐藏 后面放开 lixiaoge -->
|
||
<!-- <div class="bc_boxl">
|
||
<div class="ol_checkbox" @click="expectOnline">
|
||
<a-radio
|
||
v-model:checked="checked"
|
||
:value="1"
|
||
disabled="true"
|
||
@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 btn6" @click="of_exit1">
|
||
<div class="btnText">取消</div>
|
||
</div>
|
||
<a-button
|
||
class="btn btn6"
|
||
@click="createft"
|
||
:loading="validated === 1"
|
||
>
|
||
确定
|
||
</a-button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!-- 选择线上还是面授课弹窗 -->
|
||
<!-- 确定新建面授课弹窗 -->
|
||
<CourseModal
|
||
ref="CourseModalRef"
|
||
v-model:xzinputV1="xzinputV1"
|
||
@visibleClose="closeOnlineCoursevisible"
|
||
/>
|
||
|
||
<!-- 查看面授课弹框 end -->
|
||
<!-- 确定新建面授课弹窗 -->
|
||
<!-- 表格 -->
|
||
<div style="padding: 10px 35px">
|
||
<a-table
|
||
:header-cell-style="{ 'text-align': 'center' }"
|
||
style="border: 1px solid #f2f6fe"
|
||
:columns="columns1"
|
||
:data-source="tableData1"
|
||
:loading="tableLoading"
|
||
:pagination="false"
|
||
:scroll="{ x: 'max-content' }"
|
||
>
|
||
<template #action="{ text, record, index }">
|
||
<a-space :key="record.id">
|
||
<a-button
|
||
v-if="(record.auditStatus === 2 || record.auditStatus === 3) && !record.publishStatus && checkPer(record.permissions,createId)"
|
||
@click="() => handlePush(text, index)"
|
||
type="link"
|
||
>发布
|
||
</a-button>
|
||
<a-button
|
||
v-if="record.auditStatus === 0 && checkPer(record.permissions,createId)"
|
||
@click="() => handleSubmit(text, index)"
|
||
type="link"
|
||
>提交审核
|
||
</a-button>
|
||
<a-button
|
||
v-if="(record.auditStatus === -1 || record.auditStatus === 2 || record.auditStatus === 3) && !record.publishStatus && checkPer(record.permissions,createId)"
|
||
@click="() => handleEdit(record, String(record.courseform))"
|
||
type="link"
|
||
>编辑
|
||
</a-button>
|
||
<!-- <a-button
|
||
@click="() => handleEdit(record, String(record.courseform))"
|
||
type="link"
|
||
>编辑
|
||
</a-button> -->
|
||
<a-button
|
||
v-if="
|
||
(record.publishStatus === 1)
|
||
"
|
||
@click="() => handleStart(record, String(record.courseform))"
|
||
type="link"
|
||
>开课
|
||
</a-button>
|
||
<a-button
|
||
@click="() => handleLook(record, String(record.courseform))"
|
||
type="link"
|
||
>查看
|
||
</a-button>
|
||
<a-button
|
||
v-if="
|
||
(record.auditStatus === 2 || record.publishStatus)
|
||
"
|
||
@click="() => handleGuan22(record, String(record.courseform))"
|
||
type="link"
|
||
>管理
|
||
</a-button>
|
||
<DropDown
|
||
v-if="checkOwner(record.permissions)"
|
||
value="授权"
|
||
>
|
||
<OwnerTableModelStudent :types="[10, 11, 12]" :id="record.id" :type="12"
|
||
>权限名单</OwnerTableModelStudent
|
||
>
|
||
<CommonStudent :type="10" :id="record.id" title="查看权"
|
||
>查看权</CommonStudent
|
||
>
|
||
<CommonStudent :type="11" :id="record.id" title="管理权"
|
||
>管理权</CommonStudent
|
||
>
|
||
</DropDown>
|
||
<DropDown v-if="checkPer(record.permissions,createId)" value="更多">
|
||
<a-button @click="() => handleCopy(text)" type="link" block>复制</a-button>
|
||
<a-button
|
||
v-if="
|
||
(record.auditStatus === 1 || record.auditStatus === 2 || record.publishStatus) &&
|
||
record.status &&
|
||
checkPer(record.permissions,createId)
|
||
"
|
||
@click="() => handleRejectExit(text, index, record)"
|
||
type="link"
|
||
block
|
||
>撤回</a-button
|
||
>
|
||
<a-button
|
||
v-if="
|
||
record.publishStatus&&
|
||
record.status &&
|
||
checkPer(record.permissions,createId)
|
||
"
|
||
@click="() => handleStop(record)"
|
||
type="link"
|
||
block
|
||
>停用</a-button
|
||
>
|
||
<a-button
|
||
v-if="
|
||
record.publishStatus&&
|
||
!record.status &&
|
||
checkPer(record.permissions,createId)
|
||
"
|
||
@click="() => handleOpen(record)"
|
||
type="link"
|
||
block
|
||
>启用</a-button
|
||
>
|
||
<a-button
|
||
v-if="record.publishStatus!==1 || !record.status"
|
||
@click="() => handleDelete(text, index, record)"
|
||
type="link"
|
||
block
|
||
danger
|
||
>删除
|
||
</a-button>
|
||
</DropDown>
|
||
</a-space>
|
||
</template>
|
||
</a-table>
|
||
</div>
|
||
<div class="pa">
|
||
<a-pagination
|
||
v-if="tableDataTotal1 > 10"
|
||
:showSizeChanger="false"
|
||
: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%"
|
||
@cancel="om_exit"
|
||
>
|
||
<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_sub">
|
||
<div class="b_title">课程:{{ newCourseName }}</div>
|
||
<div class="bs_type" style="margin-left: 20px">类型:</div>
|
||
<div class="bs_right">{{ faceType }}</div>
|
||
<div class="bs_left">内容分类:</div>
|
||
<div class="bs_right">{{ faceClassification }}</div>
|
||
<div class="bs_left">状态:</div>
|
||
<div class="bs_right">
|
||
{{ faceStatus == 1 ? "已启用" : "已停用" }}
|
||
</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="false"
|
||
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="options11"
|
||
allowClear
|
||
@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 class="btn btn2" @click="reseatSearchTable3">
|
||
<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="manageStuLoading"
|
||
: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="false"
|
||
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-drawer
|
||
v-model:visible="stm_hs"
|
||
@ok="stm_exit"
|
||
: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_inputV0"
|
||
style="
|
||
width: 270px;
|
||
height: 40px;
|
||
border-radius: 8px;
|
||
margin-right: 14px;
|
||
"
|
||
placeholder="请输入开课名称"
|
||
@pressEnter="handleSearchTable"
|
||
/>
|
||
<a-input
|
||
v-model:value="kk_inputV2"
|
||
style="
|
||
width: 270px;
|
||
height: 40px;
|
||
border-radius: 8px;
|
||
margin-right: 14px;
|
||
"
|
||
placeholder="请输入授课教师姓名/工号"
|
||
@pressEnter="handleSearchTable"
|
||
/>
|
||
<a-input
|
||
v-model:value="kk_inputV1"
|
||
style="
|
||
width: 270px;
|
||
height: 40px;
|
||
border-radius: 8px;
|
||
margin-right: 14px;
|
||
"
|
||
placeholder="请输入创建人姓名/工号"
|
||
@pressEnter="handleSearchTable"
|
||
/>
|
||
<div class="select">
|
||
<!-- <a-date-picker
|
||
v-model:value="selectTime"
|
||
type="date"
|
||
placeholder="创建时间"
|
||
style="width: 270px; margin-right: 14px"
|
||
/> -->
|
||
<a-range-picker
|
||
v-model:value="selectTime"
|
||
type="date"
|
||
style="width: 300px; margin-right: 14px"
|
||
:placeholder="[' 面授开始时间', ' 面授结束时间']"
|
||
format="YYYY/MM/DD"
|
||
/>
|
||
</div>
|
||
<div class="btn btn1" @click="handleSearchTable">
|
||
<div class="search"></div>
|
||
<div class="btnText">搜索</div>
|
||
</div>
|
||
<div
|
||
class="btnn btn2"
|
||
@click="handleRestTable"
|
||
style="width: 110px"
|
||
>
|
||
<div class="search"></div>
|
||
<div class="btnText">重置</div>
|
||
</div>
|
||
</div>
|
||
<div class="stm_inputbtn">
|
||
<div class="btns" v-if="checkPer(permissions,createId)">
|
||
<div class="btn btn3" @click="createkk">
|
||
<div class="search"></div>
|
||
<div class="btnText">
|
||
<span style="color: #ffffff">新建开课</span>
|
||
</div>
|
||
</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="tableBox" v-else style="margin-left: 58px;">
|
||
<a-table
|
||
:columns="columns6"
|
||
:data-source="tableData6"
|
||
:loading="tableCoursePlanLoading"
|
||
:scroll="{ x: 'max-content' }"
|
||
expandRowByClick="true"
|
||
@expand="expandTable"
|
||
:pagination="false"
|
||
>
|
||
<template #action="{ record, column }">
|
||
<div class="operation">
|
||
<div class="fb">
|
||
<div class="jc" @click="qrcodeVisible(record, 3)" v-if="checkPer(permissions,createId)&&record.evalFlag">
|
||
评估码
|
||
</div>
|
||
<!--新加 签到 -->
|
||
<div class="jc" @click="qrcodeVisible(record, 2)" v-if="checkPer(permissions,createId)">
|
||
签到码
|
||
</div>
|
||
|
||
<div
|
||
class="jc"
|
||
v-if="checkPer(permissions,createId)"
|
||
@click="
|
||
() => {
|
||
handelEditStu(record);
|
||
}
|
||
"
|
||
>
|
||
编辑
|
||
</div>
|
||
<div
|
||
class="jc"
|
||
@click="
|
||
() => {
|
||
handelGuan(record);
|
||
}
|
||
"
|
||
>
|
||
管理
|
||
</div>
|
||
</div>
|
||
<a-dropdown v-if="checkPer(permissions,createId)">
|
||
<template #overlay>
|
||
<a-menu style="margin-left: 20px">
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
handleCopyP(record);
|
||
}
|
||
"
|
||
>
|
||
复制
|
||
</a-menu-item>
|
||
<a-menu-item
|
||
@click="
|
||
() => {
|
||
handleDeleteKaike(record);
|
||
}
|
||
"
|
||
>
|
||
删除
|
||
</a-menu-item>
|
||
<!-- 新加 二维码 -->
|
||
<a-menu-item @click="qrcodeVisible(record, 1)">
|
||
二维码
|
||
</a-menu-item>
|
||
</a-menu>
|
||
</template>
|
||
<div class="fb" style="margin-left: -20px">
|
||
<div class="jc">
|
||
更多
|
||
<DownOutlined style="color: #000"/>
|
||
</div>
|
||
</div>
|
||
</a-dropdown>
|
||
</div>
|
||
</template>
|
||
<template #teacherName="{record}">
|
||
<div :title="moreLine(record.offteachers)">
|
||
{{record.offteachers.map(item=>item.teacherName).length > 3 ? record.offteachers.map(item=>item.teacherName).slice(0,3).join(',')+'...':record.offteachers.map(item=>item.teacherName).join(',') }}
|
||
</div>
|
||
</template>
|
||
</a-table>
|
||
<div class="tableBox" style="margin-top: 50px">
|
||
<div class="pa">
|
||
<a-pagination
|
||
:showSizeChanger="false"
|
||
showQuickJumper="true"
|
||
hideOnSinglePage="true"
|
||
:pageSize="pageSize2"
|
||
:current="currentPage2"
|
||
:total="tableDataTotal2"
|
||
class="pagination"
|
||
@change="handelChangePage2"
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 有数据表格 -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-drawer>
|
||
<!--开课页面 -->
|
||
<!--新建开课页面 -->
|
||
<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" style="align-items: flex-start;">
|
||
<div class="signbox" style="position: relative;top: 11px;">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 3px">开课名称</span>
|
||
</div>
|
||
<div class="b_input">
|
||
<NameInputNew
|
||
maxlength="30"
|
||
v-model:value="xjkkinputV1"
|
||
v-model:validated="validated"
|
||
show-count
|
||
:id="offcoursePlanId"
|
||
:onceName="onceName"
|
||
:type="5"
|
||
style="width: 440px; height: 40px; border-radius: 8px"
|
||
placeholder="请输入开课名称"
|
||
:disabled="editBeginClass"
|
||
:changeName="changeName"
|
||
></NameInputNew>
|
||
</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" style="width: 84%">
|
||
<!-- <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"
|
||
@change="timeChange"
|
||
separator="至"
|
||
:placeholder="[' 开始时间', ' 结束时间']"
|
||
:disabled="editBeginClass"
|
||
/> -->
|
||
<a-date-picker
|
||
style="width: 45%; height: 40px; border-radius: 8px"
|
||
:show-time="{ format: 'HH:mm' }"
|
||
:format="['YYYY-MM-DD HH:mm','YYYY/MM/DD HH:mm']"
|
||
valueFormat="YYYY-MM-DD HH:mm"
|
||
v-model:value="xjkkinputV3[0]"
|
||
@change="timeChange"
|
||
:placeholder="' 开始时间'"
|
||
:disabled="editBeginClass"
|
||
@blur="onBlurStart"
|
||
@focus="onFocusStart"
|
||
@select="onDateSelect"
|
||
:open="openStart"
|
||
@ok="onOkStart"
|
||
/>
|
||
<span style="margin: 0 10px;">至</span>
|
||
<a-date-picker
|
||
style="width: 45%; height: 40px; border-radius: 8px"
|
||
:show-time="{ format: 'HH:mm' }"
|
||
:format="['YYYY-MM-DD HH:mm','YYYY/MM/DD HH:mm']"
|
||
valueFormat="YYYY-MM-DD HH:mm"
|
||
v-model:value="xjkkinputV3[1]"
|
||
@change="timeChangeEnd"
|
||
:placeholder="' 结束时间'"
|
||
:disabled="editBeginClass"
|
||
@focus="onFocusEnd"
|
||
@blur="onBlurEnd"
|
||
@select="onDateEnd"
|
||
:open="openEnd"
|
||
@ok="onOkEnd"
|
||
:disabled-date="disabledDate"
|
||
:disabled-time="disabledDateTime"
|
||
/>
|
||
</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-number
|
||
:min="0"
|
||
:max="999999"
|
||
:precision="0"
|
||
:placeholder="durationText"
|
||
style="
|
||
width: 88%;
|
||
height: 32px;
|
||
border-radius: 8px;
|
||
overflow: hidden;"
|
||
v-model:value="duration"
|
||
></a-input-number>
|
||
<div class="inp_num">
|
||
<span style="color: #c7cbd2">分钟</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items" style="align-items: flex-start;">
|
||
<div class="signbox" style="position: relative;top: 11px">
|
||
<div class="sign">
|
||
<img
|
||
src="@/assets/images/coursewareManage/asterisk.png"
|
||
alt=""
|
||
/>
|
||
</div>
|
||
<span style="margin-right: 3px">授课教师</span>
|
||
</div>
|
||
<div class="select teacher_input" style="display: flex; flex-wrap: wrap;width: 74.5%">
|
||
<!-- <ProjectManager
|
||
v-model:value="member.value"
|
||
v-model:name="member.name"
|
||
:disabled="editBeginClass"
|
||
></ProjectManager> -->
|
||
<div v-for="(item, index) in offteachers"
|
||
:key="index" style="display: flex;margin-bottom: 10px;width: 100%;">
|
||
<ProjectManager
|
||
v-model:value="item.teacherId"
|
||
v-model:name="item.teacherName"
|
||
:disabled="editBeginClass"
|
||
></ProjectManager>
|
||
<a-input-number :min="0" @change="inputWeightChange(index)" v-model:value="item.weight" placeholder="%"/>
|
||
<span style="margin-top: 10px;width: 34px;">权重</span>
|
||
<div style="display: flex;">
|
||
<!-- <a-button v-if="index===0" shape="circle" class="btn-circle btn-add" @click="inputAdd">+</a-button> -->
|
||
<a-button shape="circle" class="btn-circle" @click="inputRemove(index)" :disabled="offteachers.length == 1"><delete-outlined class="custom-icon"/></a-button>
|
||
</div>
|
||
</div>
|
||
<a-button shape="circle" class="btn-circle btn-add" @click="inputAdd">+</a-button>
|
||
</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" style="right: 164px">
|
||
<span style="color: #c7cbd2">{{ xjkkinputV2.length }}/50</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items">
|
||
<div class="signbox">
|
||
<span style="margin-right: 3px">签到时间</span>
|
||
</div>
|
||
<div style="display: flex; align-items: center">
|
||
<div
|
||
style="display: flex; align-items: center; margin-right: 20px"
|
||
>
|
||
<span style="color: #6d7584;margin-right:8px;">开始前</span>
|
||
<a-input-number
|
||
:min="0"
|
||
:max="999999"
|
||
:precision="0"
|
||
style="
|
||
width: 100px;
|
||
height: 32px;
|
||
border-radius: 8px;
|
||
overflow: hidden;
|
||
"
|
||
v-model:value="beforeValue"
|
||
></a-input-number>
|
||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||
</div>
|
||
<div style="display: flex; align-items: center">
|
||
<span style="color: #6d7584;margin-right:8px;">开始后</span>
|
||
<a-input-number
|
||
:min="0"
|
||
:max="999999"
|
||
:precision="0"
|
||
style="
|
||
width: 100px;
|
||
height: 32px;
|
||
border-radius: 8px;
|
||
overflow: hidden;
|
||
"
|
||
v-model:value="afterStartValue"
|
||
></a-input-number>
|
||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||
</div>
|
||
</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="xjkkradioV1" :disabled = "itemType!=3">
|
||
<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="checked1" :disabled = "itemType!=3">
|
||
<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="xjkkradioVEnd" :disabled = "itemType!=3">
|
||
<span style="color: #6d7584;margin-right:16px;">是否允许自动结业</span>
|
||
</a-checkbox>
|
||
<span style="color: #6d7584" v-if="xjkkradioVEnd">面授时间结束后</span>
|
||
<a-input-number v-if="xjkkradioVEnd" :precision="0" :min="0" v-model:value="xjkkradioVEndTime" style="
|
||
width: 60px;
|
||
height: 32px;
|
||
border-radius: 8px;
|
||
margin: 0 10px;"
|
||
/>
|
||
<span v-if="xjkkradioVEnd" style="color: #6d7584">天</span>
|
||
</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" :disabled="editBeginClass">
|
||
<span style="color: #6d7584">是否需要评估</span>
|
||
</a-checkbox>
|
||
</div>
|
||
</div>
|
||
<div v-if="checked4" class="cstm_items main_item">
|
||
<div class="signbox"></div>
|
||
<div class="btnbox">
|
||
<AssessmentList
|
||
v-model:assessmentName="assessmentName"
|
||
v-model:assessmentId="assessmentId"
|
||
:disabled="editBeginClass"
|
||
>
|
||
<button
|
||
class="xkbtn"
|
||
@click="showAssessment"
|
||
style="margin-bottom: 0; margin-top: 0"
|
||
>
|
||
选择评估
|
||
</button>
|
||
</AssessmentList>
|
||
<div v-if="assessmentId > 0">
|
||
<a-tag :closable="!editBeginClass" @close="removePG" color="processing">
|
||
<span style="font-size: 14px; line-height: 33px">
|
||
{{ assessmentName }}
|
||
</span>
|
||
</a-tag>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="cstm_items main_item">
|
||
<div class="signbox"></div>
|
||
<div class="btnbox">
|
||
<add-homework v-model:info="workInfo">
|
||
<button class="xkbtn" style="margin-bottom: 0; margin-top: 0">
|
||
配置作业
|
||
</button>
|
||
</add-homework>
|
||
<div v-if="workInfo.workName">
|
||
<a-tag closable @close="logW" color="processing">
|
||
<span style="font-size: 14px; line-height: 33px">
|
||
{{ workInfo.workName }}
|
||
</span>
|
||
</a-tag>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="cstm_items main_item" style="margin-bottom: 0px">
|
||
<div class="signbox"></div>
|
||
<div class="btnbox">
|
||
<add-test v-model:info="examInfo">
|
||
<button class="xkbtn" style="margin-bottom: 0; margin-top: 0">
|
||
配置考试
|
||
</button>
|
||
</add-test>
|
||
<div v-if="examInfo.examinationName">
|
||
<a-tag closable @close="logT" color="processing">
|
||
<span style="font-size: 14px; line-height: 33px">
|
||
{{ examInfo.examinationName }}
|
||
</span>
|
||
</a-tag>
|
||
</div>
|
||
</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">
|
||
<FJUpload v-model:value="attach" @changevalue="changevalue" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="items_btn">
|
||
<div class="cstm_btn btn6" @click="handleCancelStu">
|
||
<div class="btnText">取消</div>
|
||
</div>
|
||
<a-button
|
||
class="cstm_btn btn6"
|
||
@click="handleSureStu"
|
||
:loading="validated === 1"
|
||
>
|
||
确定
|
||
</a-button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!--新建开课页面 -->
|
||
<!--开课学员管理页面 -->
|
||
<a-modal
|
||
v-model:visible="sm_hs"
|
||
title="Title"
|
||
@ok="closeModal"
|
||
:footer="null"
|
||
:closable="false"
|
||
wrapClassName="modalStyle stusmanageModal"
|
||
width="90%"
|
||
@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期
|
||
</span>
|
||
<span style="color: #ffb751"
|
||
>已开课
|
||
{{
|
||
(currentPlanItem?.score !== 0&& currentPlanItem?.score!==-1)
|
||
? currentPlanItem.score?.toFixed(2)
|
||
: "-"
|
||
}}</span>
|
||
</div>
|
||
<div class="stmm_i2">
|
||
<span style="color: #999ba3">时间:</span>
|
||
<span>{{currentPlanItem.beginTime}} ~ {{ 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.offteachers.map(item=>item.teacherName).join(',') }}</span>
|
||
</div>
|
||
<div class="stmm_i5">
|
||
<TableStudent
|
||
:type="3"
|
||
:id="offcoursePlanId"
|
||
:params="{status:1}"
|
||
:columns="stuColumns"
|
||
:visable="sm_hs"
|
||
:permissions="permissions"
|
||
:isgetStudent="isgetStudent"
|
||
ref="tableStudentChange"
|
||
>
|
||
<!-- <template #extension="{ data: { record } }">
|
||
<a-button
|
||
v-if="record.source === 4 && record.status === 1 && checkPer(permissions,createId)"
|
||
@click="
|
||
() => {
|
||
record.status = 0;
|
||
auditStudent(record);
|
||
}
|
||
"
|
||
type="link"
|
||
>审核通过
|
||
</a-button>
|
||
<a-button
|
||
v-if="record.source === 4 && record.status === 1 && checkPer(permissions,createId)"
|
||
@click="
|
||
() => {
|
||
record.status = 2;
|
||
auditStudent(record);
|
||
}
|
||
"
|
||
type="link"
|
||
>拒绝
|
||
</a-button>
|
||
<a-button
|
||
v-if="
|
||
record.source === 4 &&
|
||
(record.status === 0 || record.status === 2)
|
||
&& checkPer(permissions,createId)
|
||
"
|
||
@click="
|
||
() => {
|
||
record.status = 1;
|
||
auditStudent(record);
|
||
}
|
||
"
|
||
type="link"
|
||
>撤回
|
||
</a-button>
|
||
</template> -->
|
||
</TableStudent>
|
||
</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" @click="rg_exit">
|
||
<div class="btnText">取消</div>
|
||
</div>
|
||
<div
|
||
class="qrm_btn btn2"
|
||
style="background-color: #4ea6ff; color: #ffffff"
|
||
@click="handleJoin"
|
||
>
|
||
<div class="btnText">确定</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
|
||
:value="1"
|
||
>结业
|
||
</a-radio>
|
||
</div>
|
||
<div class="ol_checkbox">
|
||
<a-radio
|
||
:value="2"
|
||
>不结业
|
||
</a-radio>
|
||
</div>
|
||
</div>
|
||
</a-radio-group>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="qrm_btnbox">
|
||
<div class="qrm_btn btn1" @click="graduate_exit">
|
||
<div class="btnText">取消</div>
|
||
</div>
|
||
<div class="qrm_btn btn2" @click="handleJie">
|
||
<div class="btnText">确定</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 ||
|
||
back_hs ||
|
||
submit_hs ||
|
||
useCourse ||
|
||
push_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 && !del_hs_stu ? 'block' : 'none' }">
|
||
<span>您确定要删除此课程吗</span>
|
||
</div>
|
||
<div :style="{ display: del_hs && del_hs_stu ? '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 :style="{ display: submit_hs ? 'block' : 'none' }">
|
||
<span>您确定要提交审核吗</span>
|
||
</div>
|
||
<div :style="{ display: back_hs ? 'block' : 'none' }">
|
||
<span>您确定要撤回吗</span>
|
||
</div>
|
||
<div :style="{ display: useCourse ? 'block' : 'none' }">
|
||
<span>您确定要启用吗</span>
|
||
</div>
|
||
<div :style="{ display: push_hs ? 'block' : 'none' }">
|
||
<span>您确定要发布吗</span>
|
||
</div>
|
||
</div>
|
||
<div class="del_btnbox">
|
||
<div class="del_btn btn2" @click="delete_exit1">
|
||
<div class="btnText">取消</div>
|
||
</div>
|
||
<div class="del_btn btn2" @click="handleDeleteExit">
|
||
<div class="btnText">确定</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a-modal>
|
||
<!-- 预览弹窗 -->
|
||
<SeeModal
|
||
:visible="lookCourseModal"
|
||
:detail="faceDetailObj"
|
||
@cancel="ft_exit_see"
|
||
/>
|
||
<!--删除 复制 停用弹窗 -->
|
||
<!-- 学员管理课程库-归属权抽屉 -->
|
||
<!-- <own-power v-model:ownpowervisible="ownpowervisible" /> -->
|
||
<!-- 学员管理课程库-归属权抽屉 -->
|
||
<!-- 添加授权侧弹窗 -->
|
||
<!-- <corpowerlist v-model:corpowerlistVisible="corpowerlistvisible" /> -->
|
||
<!-- 添加授权侧弹窗 -->
|
||
<!-- 学员管理-添加学员抽屉 -->
|
||
<!-- <StuAdd v-model:Stuvisible="Stuvisible" @sure="handlePostSure" /> -->
|
||
<!-- 添加学员抽屉 -->
|
||
<!-- <proj-check-ship
|
||
v-model:ProjCheckvisible="viewpowervisible"
|
||
:selectProjectId="offcourseId"
|
||
v-model:addStudentList="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"
|
||
:type="shipType"
|
||
/>
|
||
</div>
|
||
|
||
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
|
||
<a-spin :spinning="addLoading" tip="" />
|
||
</div>
|
||
|
||
<!-- 二维码弹窗 -->
|
||
<two-dimensional-code
|
||
v-model:codevisible="codevisible"
|
||
:codeInfo="codeInfo"
|
||
:index="codeIndex"
|
||
:type="codeType == 1 ? '课程二维码' : codeType == 2 ? '签到二维码' : '评估二维码'"
|
||
/>
|
||
<!-- 二维码弹窗 -->
|
||
</template>
|
||
<script lang="jsx">
|
||
import {
|
||
reactive,
|
||
toRefs,
|
||
defineComponent,
|
||
ref,
|
||
shallowRef,
|
||
onMounted,
|
||
onBeforeUnmount,
|
||
watch,
|
||
computed,
|
||
} from "vue";
|
||
|
||
import * as apis from "../../api/indexTaskManage";
|
||
import { message } from "ant-design-vue";
|
||
import { useRouter, useRoute } from "vue-router";
|
||
import CommonStudent from "@/components/student/CommonStudent";
|
||
import OwnerTableModelStudent from "@/components/student/OwnerTableModelStudent";
|
||
import addOnlineCourse from "../../components/Modals/addOnlineCourse.vue";
|
||
|
||
import ProjOwnerShip from "../../components/drawers/ProjectOwn";
|
||
import NameInput from "../../components/project/NameInput";
|
||
import NameInputNew from "../../components/project/NameInputNew";
|
||
import ProjPowerList from "../../components/drawers/ProjPowerList";
|
||
import ProjCheckShip from "../../components/drawers/ProjCheckPower";
|
||
import AssessmentList from "../../components/drawers/AssessmentList.vue";
|
||
import dialog from "@/utils/dialog";
|
||
// import { queryAssessmentDetailList } from "@/api/indexResearch";
|
||
import {
|
||
list,
|
||
detail,
|
||
handle,
|
||
deletePlan,
|
||
planList,
|
||
editPlan,
|
||
studentList,
|
||
addStudent,
|
||
studentExport,
|
||
handleStudent,
|
||
getMemberInfoApi,
|
||
copyCoursePlan,
|
||
copyCourse,
|
||
} from "@/api/indexCourse";
|
||
import {
|
||
traverseArr,
|
||
getdateToTime,
|
||
newFile,
|
||
getdateToDate,
|
||
} from "../../utils/utils";
|
||
import { validateName } from "@/api/index1";
|
||
import { fileUp } from "../../api/indexEval";
|
||
import * as api1 from "../../api/index1";
|
||
|
||
import "@wangeditor/editor/dist/css/style.css";
|
||
import ProjectManager from "@/components/project/ProjectManagerNewTeacher";
|
||
|
||
import SeeModal from "./components/seeModal.vue";
|
||
import CourseModal from "./courseModal.vue";
|
||
import * as moment from "moment";
|
||
import TwoDimensionalCode from "../../components/TwoDimensionalCodeNew.vue";
|
||
import { codeUrl, toDate } from "@/api/method";
|
||
import { queryWorkDetailById } from "@/api/indexWork";
|
||
import { queryExaminationDetailById } from "@/api/indexExam";
|
||
import AddHomework from "../../components/drawers/CommonHomework.vue";
|
||
import AddTest from "../../components/drawers/CommonTest.vue";
|
||
import TableStudent from "@/components/student/TableStudent";
|
||
import FJUpload from "@/components/common/FJUpload";
|
||
import {auditStudentStatus} from "@/api/indexProjStu";
|
||
import { useStore } from "vuex";
|
||
import DropDown from "@/components/common/DropDown";
|
||
import { checkPer, checkOwner } from "@/utils/utils";
|
||
import dayjs from "dayjs";
|
||
import {duration} from "moment";
|
||
import { DeleteOutlined,DownOutlined } from '@ant-design/icons-vue';
|
||
|
||
//列表表格
|
||
const moreLine = (item) => {
|
||
item.map(val => {
|
||
return (val.line = val.teacherName + " 权重 " + val.weight + '%')
|
||
})
|
||
return item.map(i => i.line).join('\n')
|
||
}
|
||
//列表操作在线面授管理
|
||
const columns2 = [
|
||
{
|
||
title: "姓名",
|
||
dataIndex: "studentName",
|
||
key: "studentName",
|
||
width: "6%",
|
||
align: "center",
|
||
customRender: ({ record: { studentName } }) => studentName || "-",
|
||
},
|
||
{
|
||
title: "工号",
|
||
dataIndex: "studentUserNo",
|
||
key: "studentUserNo",
|
||
width: "12%",
|
||
ellipsis: true,
|
||
align: "center",
|
||
customRender: ({ record: { studentUserNo } }) => studentUserNo || "-",
|
||
},
|
||
{
|
||
title: "开课名称",
|
||
dataIndex: "name",
|
||
key: "name",
|
||
width: "12%",
|
||
ellipsis: true,
|
||
align: "center",
|
||
customRender: ({ record: { name } }) => name || "-",
|
||
},
|
||
{
|
||
title: "地点",
|
||
dataIndex: "address",
|
||
key: "address",
|
||
width: "12%",
|
||
ellipsis: true,
|
||
align: "center",
|
||
customRender: ({ record: { address } }) => address || "-",
|
||
},
|
||
{
|
||
title: "数据来源",
|
||
dataIndex: "courseSource",
|
||
key: "courseSource",
|
||
ellipsis: true,
|
||
width: "12%",
|
||
align: "center",
|
||
customRender: ({ record: { courseName, routerName } }) =>
|
||
courseName || routerName || "开课",
|
||
},
|
||
{
|
||
title: "是否开课学员",
|
||
dataIndex: "infoType",
|
||
key: "infoType",
|
||
ellipsis: true,
|
||
width: "10%",
|
||
align: "center",
|
||
customRender: ({ record: { infoType } }) => infoType ===1 ? '是':'否'
|
||
},
|
||
{
|
||
title: "学习时间",
|
||
dataIndex: "lastStudyTime",
|
||
key: "lastStudyTime",
|
||
width: "10%",
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ({ record: { lastStudyTime } }) => lastStudyTime || "-",
|
||
},
|
||
{
|
||
title: "签到时间",
|
||
dataIndex: "signTime",
|
||
key: "signTime",
|
||
width: "10%",
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ({ record: { signTime } }) => signTime || "-",
|
||
},
|
||
{
|
||
title: "状态",
|
||
dataIndex: "status",
|
||
key: "status",
|
||
width: "12%",
|
||
align: "center",
|
||
customRender: (text) => {
|
||
return (
|
||
<div class="racona">
|
||
<span>
|
||
{" "}
|
||
{text.record.finishStatus == 0 || text.record.finishStatus == null
|
||
? "未开始" :text.record.finishStatus == 1?"已完成"
|
||
: '进行中'}
|
||
</span>
|
||
</div>
|
||
);
|
||
},
|
||
},
|
||
// {
|
||
// title: "操作",
|
||
// dataIndex: "opacation",
|
||
// key: "opacation",
|
||
// width: "14%",
|
||
// 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",
|
||
// ellipsis: true,
|
||
// customRender: ({ index, record }) => {
|
||
// const pageNum =
|
||
// Number(record.pageNo) - 1 > 0 ? (Number(record.pageNo) - 1) * 10 : 0;
|
||
// return index + 1 + pageNum;
|
||
// },
|
||
// },
|
||
{
|
||
title: "开课名称",
|
||
dataIndex: "organization",
|
||
key: "organization",
|
||
width: "15%",
|
||
align: "center",
|
||
customCell:() => {return {style: {maxWidth: '200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer',padding:'0px 10px'}}},
|
||
customRender: ({ text }) => {
|
||
return <a-tooltip color="white" placement="bottomLeft" title = {text} >{text ? text : "-"}</a-tooltip>
|
||
},
|
||
},
|
||
{
|
||
title: "授课教师",
|
||
dataIndex: "teacher",
|
||
key: "teacher",
|
||
width: "30%",
|
||
align: "center",
|
||
ellipsis: true,
|
||
slots: { customRender: "teacherName" },
|
||
},
|
||
{
|
||
title: "面授时间",
|
||
dataIndex: "starttime",
|
||
key: "starttime",
|
||
width: "40%",
|
||
ellipsis: true,
|
||
align: "center",
|
||
customRender: ( text ) => {
|
||
return text.record.beginTime + ' ~ ' + text.record.endTime
|
||
},
|
||
},
|
||
{
|
||
title: "学员数",
|
||
dataIndex: "studentCnt",
|
||
key: "studentCnt",
|
||
width: 100,
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ( text ) => {
|
||
return(
|
||
<div style="display:flex;justify-content:center;align-items:center;">
|
||
<span>{text.record.studentCnt || '0'}</span>
|
||
<div class="daochu" onClick={()=>downStudent(text.record)} title="导出学员信息"></div>
|
||
</div>
|
||
)
|
||
},
|
||
},
|
||
{
|
||
title: "评分",
|
||
dataIndex: "studentCnt",
|
||
key: "studentCnt",
|
||
width: 100,
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ( text ) => {
|
||
return(
|
||
text.record && text.record?.score != 0 && text.record?.score != -1 ?
|
||
<div style="display:flex;justify-content:center;align-items:center;">
|
||
<span>{(text.record.score?.toFixed(2) || '0.00')}</span>
|
||
<div class="daochu" onClick={()=>downPin(text.record)} title="导出评估信息"></div>
|
||
</div>
|
||
: '-'
|
||
)
|
||
},
|
||
},
|
||
{
|
||
title: "时长",
|
||
dataIndex: "duration",
|
||
key: "duration",
|
||
width: "12%",
|
||
ellipsis: true,
|
||
align: "center",
|
||
customRender: ({ text }) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "创建人",
|
||
dataIndex: "createName",
|
||
key: "createName",
|
||
width: "10%",
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ( text ) => {
|
||
return <a-tooltip color="white" placement="bottom" title = {text.record.createName+text.record.createUserNo} >{text.record.createName}</a-tooltip>
|
||
},
|
||
},
|
||
{
|
||
title: "地点",
|
||
dataIndex: "address",
|
||
key: "saddress",
|
||
width: "30%",
|
||
align: "center",
|
||
customCell:() => {return {style: {maxWidth: '200px',minWidth: '100px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer',padding:'0px 10px'}}},
|
||
customRender: ( {text} ) => {
|
||
return <a-tooltip color="white" placement="bottomLeft" title = {text} >{text ? text : "-"}</a-tooltip>
|
||
},
|
||
},
|
||
{
|
||
title: "操作",
|
||
width: 300,
|
||
dataIndex: "operation",
|
||
key: "operation",
|
||
align: "center",
|
||
fixed: "right",
|
||
slots: { customRender: "action" },
|
||
},
|
||
];
|
||
const downStudent = (val) => {
|
||
if (val.id != undefined) {
|
||
window.open(
|
||
`${
|
||
process.env.VUE_APP_BASE_API
|
||
}/admin/student/exportTaskStudent?type=${3}&pid=${val.id}&thirdType=2`
|
||
);
|
||
}
|
||
}
|
||
const downPin = (val) => {
|
||
if (val.id != undefined) {
|
||
window.open(
|
||
`${
|
||
process.env.VUE_APP_BASE_API
|
||
}/admin/assessment/manage/exportCoursePlanAssessmentMessage?type=3&pid=${val.id}&courseId=${val.assessmentId}&taskId=${val.id}&taskType=11`
|
||
);
|
||
}
|
||
}
|
||
//开课学员管理
|
||
const columns7 = [
|
||
//// {
|
||
// title: "序号",
|
||
// width: 200,
|
||
// dataIndex: "num",
|
||
// key: "num",
|
||
// align: "center",
|
||
// customRender: ({ index, record }) => {
|
||
// const pageNum =
|
||
// Number(record.pageNo) - 1 > 0 ? (Number(record.pageNo) - 1) * 10 : 0;
|
||
// return index + 1 + pageNum;
|
||
// },
|
||
// },
|
||
{
|
||
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.status)) {
|
||
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.signStatus)) {
|
||
// case "0":
|
||
// return "未签到";
|
||
// case "1":
|
||
// return "已签到";
|
||
// case "2":
|
||
// return "请假";
|
||
// }
|
||
// },
|
||
// },
|
||
// {
|
||
// title: "评估状态",
|
||
// width: 200,
|
||
// dataIndex: "evastatus",
|
||
// key: "8",
|
||
// align: "center",
|
||
// customRender: ({ record }) => {
|
||
// switch (String(record.evalStatus)) {
|
||
// 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,
|
||
CommonStudent,
|
||
DropDown,
|
||
OwnerTableModelStudent,
|
||
SeeModal,
|
||
CourseModal,
|
||
FJUpload,
|
||
// StuAdd,
|
||
ProjectManager,
|
||
ProjOwnerShip,
|
||
ProjPowerList,
|
||
ProjCheckShip,
|
||
AssessmentList,
|
||
AddHomework,
|
||
AddTest,
|
||
NameInput,
|
||
NameInputNew,
|
||
TableStudent,
|
||
// VNodes: (_, {attrs}) => {
|
||
// return attrs.vnodes;
|
||
// },
|
||
addOnlineCourse,
|
||
TwoDimensionalCode,
|
||
DeleteOutlined,
|
||
DownOutlined
|
||
},
|
||
setup() {
|
||
const CourseModalRef = ref(null);
|
||
const store = useStore();
|
||
const sysTypeOptions = computed(() => store.state.content_type);
|
||
const durationText = computed(() => state.xjkkinputV3?.length==2?dayjs(state.xjkkinputV3[1]).diff(dayjs(state.xjkkinputV3[0]),'minute')|| '请输入持续时间':'请输入持续时间');
|
||
|
||
const state = reactive({
|
||
tableStudentChange: null,
|
||
isAssessmentId: null,
|
||
isHomeWorkId: null,
|
||
tableCoursePlanLoading: false,
|
||
permissions:null,
|
||
createId:null,
|
||
workInfo: {},
|
||
examInfo: {},
|
||
tableLoading: false,
|
||
itemType: null,
|
||
columns1: [
|
||
{
|
||
title: "课程编号",
|
||
width: 130,
|
||
dataIndex: "offcourseNumber",
|
||
key: "offcourseNumber",
|
||
align: "center",
|
||
},
|
||
{
|
||
title: "名称",
|
||
width: 400,
|
||
dataIndex: "name",
|
||
key: "name",
|
||
ellipsis: true,
|
||
align: "left",
|
||
customRender: ({ text }) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "关键字",
|
||
dataIndex: "tips",
|
||
key: "tips",
|
||
align: "left",
|
||
customCell :() => {return {style: {maxWidth: '200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis',cursor:'pointer'}}},
|
||
customRender: ({ text }) => {
|
||
return <a-tooltip color="white" placement="topLeft" title = {text} >{text ? text : "-"}</a-tooltip>
|
||
},
|
||
},
|
||
{
|
||
title: "内容分类",
|
||
width: 130,
|
||
dataIndex: "contentTxt",
|
||
ellipsis: true,
|
||
key: "contentTxt",
|
||
align: "center",
|
||
customRender: ({ record }) =>
|
||
findClassFullName(sysTypeOptions.value, record.sysTypeId) || "-",
|
||
},
|
||
{
|
||
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: "projectName",
|
||
key: "3",
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ({ text }) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: " 所属路径",
|
||
width: 250,
|
||
dataIndex: "routerName",
|
||
key: "3",
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ({ text }) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: " 资源归属",
|
||
width: 250,
|
||
dataIndex: "sourceBelongFullName",
|
||
key: "3",
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ({ text }) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
|
||
{
|
||
title: " 目标人群",
|
||
width: 250,
|
||
dataIndex: "targetUser",
|
||
key: "3",
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ({ text }) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "学习人数",
|
||
width: 130,
|
||
dataIndex: "studentCnt",
|
||
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: "auditStatus",
|
||
key: "6",
|
||
align: "center",
|
||
customRender: ({ record }) => {
|
||
switch (String(record.auditStatus)) {
|
||
case "0":
|
||
return "未提交";
|
||
case "1":
|
||
return "待审核";
|
||
case "2":
|
||
return "已审核";
|
||
case "3":
|
||
return "已审核";
|
||
case "-1":
|
||
return "审核未通过";
|
||
}
|
||
},
|
||
},
|
||
{
|
||
title: "是否发布",
|
||
width: 100,
|
||
dataIndex: "publishStatus",
|
||
key: "7",
|
||
align: "center",
|
||
customRender: ({ record }) =>
|
||
record.publishStatus? "已发布" : "未发布",
|
||
},
|
||
{
|
||
title: "创建人",
|
||
width: 100,
|
||
dataIndex: "createName",
|
||
key: "8",
|
||
ellipsis: true,
|
||
align: "center",
|
||
customRender: ({ text }) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "创建时间",
|
||
width: 100,
|
||
dataIndex: "createTime",
|
||
key: "9",
|
||
ellipsis: true,
|
||
align: "center",
|
||
customRender: ({ text }) => {
|
||
return text ? text : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "发布时间",
|
||
width: 100,
|
||
ellipsis: true,
|
||
dataIndex: "publishTime",
|
||
key: "10",
|
||
align: "center",
|
||
customRender: ({ text, publishStatus }) => {
|
||
return publishStatus? text || "-" : "-";
|
||
},
|
||
},
|
||
{
|
||
title: "是否停用",
|
||
width: 100,
|
||
key: "status",
|
||
dataIndex: "status",
|
||
align: "center",
|
||
customRender: ({ record }) =>
|
||
record.publishStatus? (record.status ? "启用" : "停用") : "-",
|
||
},
|
||
{
|
||
title: "操作",
|
||
width: 250,
|
||
dataIndex: "id",
|
||
key: "id",
|
||
fixed: "right",
|
||
align: "right",
|
||
slots: { customRender: "action" },
|
||
},
|
||
],
|
||
|
||
shipType: 1,
|
||
addLoading: false,
|
||
currentPlanItem: {},
|
||
teacherId: null,
|
||
// teacher: null,
|
||
selectedRowKeys7: [],
|
||
auditDescription: "",
|
||
isEdit: 0,
|
||
member: { name: "", value: "" },
|
||
offteachers:[{
|
||
teacherId: "",
|
||
teacherName: "",
|
||
weight: '',
|
||
}],
|
||
//列表表格
|
||
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: "-",
|
||
// },
|
||
],
|
||
stuColumns: [],
|
||
currentPage1: 1,
|
||
tableDataTotal1: -1,
|
||
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: false,
|
||
ft_hs: false,
|
||
lookMs: 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,
|
||
submit_hs: false,
|
||
push_hs: false,
|
||
back_hs: false,
|
||
del_hs: false,
|
||
del_hs_stu: 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,
|
||
|
||
lookCourseModal: false,
|
||
faceDetailObj: {},
|
||
|
||
offcourseId: null,
|
||
temp: null,
|
||
useCourse: false,
|
||
stopCourse: false,
|
||
projectName: "",
|
||
name: "",
|
||
createName: "",
|
||
auditStatus: null,
|
||
categoryId: undefined,
|
||
sysTypeId: undefined,
|
||
projectTime: "",
|
||
|
||
//列表
|
||
value1: "",
|
||
value2: "",
|
||
value3: "",
|
||
value4: "",
|
||
//选择线上还是面授
|
||
xzinputV1: "",
|
||
valueE1: "",
|
||
valueE2: "",
|
||
//确定面授
|
||
ft_eidt: false,
|
||
statusJuJue: 0,
|
||
statusTingQi: 1,
|
||
qdms_inputV1: "",
|
||
qdms_inputV2: "",
|
||
qdms_inputV3: "",
|
||
qdms_inputV4: [],
|
||
tagsOptions: [],
|
||
qdms_inputV5: null,
|
||
fen_lei: null,
|
||
feng_mian_1: null,
|
||
feng_mian_2: null,
|
||
chang_jin: null,
|
||
tags_val_single: "",
|
||
tags_val: [],
|
||
qdms_inputV6: "",
|
||
//在线面授管理
|
||
gl_selectV1: undefined,
|
||
gl_selectV2: undefined,
|
||
gl_inputV1: "",
|
||
gl_inputV2: "",
|
||
manageStuLoading: true,
|
||
currentFaceId: "",
|
||
//开课
|
||
kk_eidt: false,
|
||
kkinputV1: "",
|
||
kkinputV2: "",
|
||
//新建开课
|
||
xjkkradioV1: false,
|
||
xjkkradioVEnd: false,
|
||
xjkkradioVEndTime: null,
|
||
completeType: "",
|
||
xjkkinputV1: "",
|
||
onceName: "",
|
||
scoreParams:'',
|
||
changeName:false,
|
||
xjkkinputV2: "",
|
||
duration: "",
|
||
xjkkinputV3: [],
|
||
xjkkinputV4: null,
|
||
beforeValue: null, //考勤 开始前
|
||
afterStartValue: null, //考勤 开始后
|
||
//开课学员管理
|
||
xygl_inputV1: "",
|
||
//录入成绩
|
||
lrcj_inputV1: "",
|
||
scoreId: null, //录入成绩id
|
||
isgetStudent: false, //是否重新获取学员
|
||
//结业
|
||
jyradioV1: 1,
|
||
|
||
imageUrl: "",
|
||
imgList: [],
|
||
validated: 0,
|
||
attach: "",
|
||
pageSize2: 10,
|
||
currentPage2: 1,
|
||
tableDataTotal2: 0,
|
||
pageSize22: 10,
|
||
currentPage22: 1,
|
||
tableDataTotal22: 0,
|
||
pageSize222: 10,
|
||
currentPage222: 1,
|
||
tableDataTotal222: 0,
|
||
kk_inputV0: '',
|
||
kk_inputV1: "",
|
||
kk_inputV2: "",
|
||
selectTime: "",
|
||
|
||
pageSize3: 10,
|
||
currentPage3: 1,
|
||
tableDataTotal3: 0,
|
||
|
||
checked1: false,
|
||
checked4: false,
|
||
offcoursePlanId: 0,
|
||
filesList: [],
|
||
signCom: false,
|
||
regisCom: false,
|
||
comLeave: false,
|
||
studentId: 0,
|
||
homeWorkId: null,
|
||
studentItem: {},
|
||
addOnlineCoursevisible: false, //新建面授弹窗
|
||
|
||
selectCourseId: null, //授权选择的id
|
||
|
||
viewpowervisible: false, //查看权抽屉
|
||
authClassify: null, //1:查看权 2:管理权 3:学员
|
||
addAuthList: null,
|
||
|
||
addStudentList: null, //选中列表
|
||
|
||
newCourseName: null, //新建开课名称
|
||
EditWorkId: null,
|
||
assessment: {},
|
||
assessmentId: null,
|
||
workName: null,
|
||
EditTestId: null,
|
||
testName: null,
|
||
assessmentName: "",
|
||
assessmentVisible: false,
|
||
addhomeworkvisible: false,
|
||
addtestvisible: false,
|
||
codevisible: false, //二维码弹窗
|
||
codeIndex: null,
|
||
codeInfo: null, //二维码内容
|
||
codeUrl: codeUrl,
|
||
|
||
// 课程三级分类
|
||
options2222: [
|
||
{
|
||
title: "领导力",
|
||
value: "100",
|
||
children: [
|
||
{
|
||
title: "管理业务",
|
||
value: "1001",
|
||
},
|
||
{
|
||
title: "管理团队",
|
||
value: "1002",
|
||
},
|
||
{
|
||
title: "管理自我",
|
||
value: "1003",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "专业力",
|
||
value: "200",
|
||
children: [
|
||
{
|
||
title: "研发",
|
||
value: "2001",
|
||
},
|
||
{
|
||
title: "系统和解决方案",
|
||
value: "2002",
|
||
},
|
||
{
|
||
title: "生产技术与制造",
|
||
value: "2003",
|
||
},
|
||
{
|
||
title: "供应链",
|
||
value: "2004",
|
||
},
|
||
{
|
||
title: "营销",
|
||
value: "2005",
|
||
},
|
||
{
|
||
title: "品质",
|
||
value: "2006",
|
||
},
|
||
{
|
||
title: "专业职能",
|
||
value: "2007",
|
||
children: [
|
||
{
|
||
title: "战略与企划",
|
||
value: "200701",
|
||
},
|
||
{
|
||
title: "流程管理",
|
||
value: "200702",
|
||
},
|
||
{
|
||
title: "业绩管理",
|
||
value: "200703",
|
||
},
|
||
{
|
||
title: "项目管理",
|
||
value: "200704",
|
||
},
|
||
{
|
||
title: "信息技术",
|
||
value: "200705",
|
||
},
|
||
{
|
||
title: "环境与安全",
|
||
value: "200706",
|
||
},
|
||
{
|
||
title: "人力资源",
|
||
value: "200707",
|
||
},
|
||
{
|
||
title: "企业文化",
|
||
value: "200708",
|
||
},
|
||
{
|
||
title: "品牌",
|
||
value: "200709",
|
||
},
|
||
{
|
||
title: "财务",
|
||
value: "200710",
|
||
},
|
||
{
|
||
title: "法务",
|
||
value: "200711",
|
||
},
|
||
{
|
||
title: "风险控制",
|
||
value: "200712",
|
||
},
|
||
{
|
||
title: "行政",
|
||
value: "200713",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "医工",
|
||
value: "2008",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "通用力",
|
||
value: "300",
|
||
children: [
|
||
{
|
||
title: "职业操守与道德",
|
||
value: "3001",
|
||
},
|
||
{
|
||
title: "职业素养与技能",
|
||
value: "3002",
|
||
},
|
||
{
|
||
title: "规章制度",
|
||
value: "3003",
|
||
},
|
||
],
|
||
},
|
||
],
|
||
|
||
// 点击开课管理 -- 显示得信息
|
||
faceType: "面授课", // 面授课类型
|
||
faceClassification: "", // 课程内容分类
|
||
faceStatus: "", // 课程状态
|
||
|
||
codeType: null, //二维码类型
|
||
});
|
||
const nums = ref(0)
|
||
watch(durationText,(val)=>{
|
||
nums.value++
|
||
if(nums.value>1){
|
||
if(val == '请输入持续时间'){
|
||
state.duration = null;
|
||
return
|
||
}
|
||
state.duration = val;
|
||
}
|
||
})
|
||
// function timeChange(time, timeStr) {
|
||
// // state.duration || (state.duration = dayjs(timeStr[1]).diff(dayjs(timeStr[0]),'minute'))
|
||
// }
|
||
// function timeChange(timeStr) {
|
||
// console.log(timeStr,'timeStr')
|
||
// formData.value.beginTime = timeStr;
|
||
// }
|
||
function onDateSelect(date) {
|
||
const month = String(date.$M+1).padStart(2, '0')
|
||
const day = String(date.$D).padStart(2, '0')
|
||
const hour = String(date.$H).padStart(2, '0')
|
||
const minute = String(date.$m).padStart(2, '0')
|
||
state.xjkkinputV3[0]=date.$y+'-'+month+'-'+day+' '+hour+':'+minute
|
||
}
|
||
const openStart = ref(false)
|
||
const onOkStart = ()=>{
|
||
openStart.value = false
|
||
}
|
||
function onBlurStart(e){
|
||
state.xjkkinputV3[0]=e.target.value
|
||
openStart.value = false
|
||
}
|
||
function onFocusStart(){
|
||
openStart.value = true
|
||
// if(!state.xjkkinputV3[0]){
|
||
// let now=new Date()
|
||
// let start=new Date(now.setFullYear(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0))
|
||
// state.xjkkinputV3 = [
|
||
// moment(start).format('YYYY-MM-DD HH:mm'),
|
||
// state.xjkkinputV3[1]
|
||
// ];
|
||
// }
|
||
}
|
||
// function timeChangeEnd(timeStr){
|
||
// formData.value.endTime = timeStr;
|
||
// }
|
||
function onDateEnd(date) {
|
||
const month = String(date.$M+1).padStart(2, '0')
|
||
const day = String(date.$D).padStart(2, '0')
|
||
const hour = String(date.$H).padStart(2, '0')
|
||
const minute = String(date.$m).padStart(2, '0')
|
||
state.xjkkinputV3[1]=date.$y+'-'+month+'-'+day+' '+hour+':'+minute
|
||
if(state.xjkkinputV3[0]==state.xjkkinputV3[1]){
|
||
const minute = String(date.$m+1).padStart(2, '0')
|
||
state.xjkkinputV3[1]=date.$y+'-'+month+'-'+day+' '+hour+':'+minute
|
||
}
|
||
}
|
||
const openEnd = ref(false)
|
||
const onOkEnd = ()=>{
|
||
openEnd.value = false
|
||
}
|
||
function onBlurEnd(e){
|
||
state.xjkkinputV3[1]=e.target.value
|
||
openEnd.value = false
|
||
}
|
||
function onFocusEnd(){
|
||
openEnd.value = true
|
||
// if(!state.xjkkinputV3[1]){
|
||
// let now=new Date()
|
||
// let start=new Date()
|
||
// let end=new Date(now.setFullYear(now.getFullYear()))
|
||
// state.xjkkinputV3 = [
|
||
// state.xjkkinputV3[0],
|
||
// moment(end).format('YYYY-MM-DD HH:mm')
|
||
// ];
|
||
// }
|
||
}
|
||
const totalWeightSum = ref(0)
|
||
function inputWeightChange(index) {
|
||
let totalWeight = 0
|
||
state.offteachers.forEach(item => {
|
||
totalWeight += Number(item.weight);
|
||
});
|
||
if (totalWeight > 100) {
|
||
message.info("权重值最大为100%");
|
||
state.offteachers[index].weight -= totalWeight - 100;
|
||
totalWeight = 100;
|
||
}
|
||
totalWeightSum.value = totalWeight
|
||
}
|
||
function inputAdd() {
|
||
state.offteachers.push({
|
||
teacherId: "",
|
||
teacherName: "",
|
||
weight: '',
|
||
});
|
||
}
|
||
function inputRemove(index) {
|
||
dialog({
|
||
content: "确定删除此授课教师吗?",
|
||
ok: async () => {
|
||
state.offteachers.splice(index, 1);
|
||
message.success("删除成功");
|
||
},
|
||
});
|
||
}
|
||
|
||
function findClassFullName(list, classify, name = "") {
|
||
return (
|
||
(list &&
|
||
list.length > 0 &&
|
||
list
|
||
.map((e) =>
|
||
classify == e.code
|
||
? name
|
||
? name + "-" + e.name
|
||
: e.name
|
||
: findClassFullName(
|
||
e.children,
|
||
classify,
|
||
name ? name + "-" + e.name : e.name
|
||
)
|
||
)
|
||
.filter((name) => name)
|
||
.join("")) ||
|
||
""
|
||
);
|
||
}
|
||
|
||
const showStuAdd = (record) => {
|
||
state.selectCourseId = record.offcoursePlanId;
|
||
state.shipType = 2;
|
||
state.authClassify = 3;
|
||
state.viewpowervisible = true;
|
||
};
|
||
|
||
// 富文本 sssssssssssssss
|
||
// 编辑器实例,必须用 shallowRef
|
||
const editorRef = shallowRef();
|
||
// 内容 HTML
|
||
const valueHtml = ref("");
|
||
// // 模拟 ajax 异步获取内容
|
||
onMounted(() => {});
|
||
|
||
const toolbarConfig = {
|
||
excludeKeys: ["insertVideo", "insertImage"],
|
||
};
|
||
const editorConfig = { placeholder: "请输入内容...", MENU_CONF: {} };
|
||
editorConfig.MENU_CONF["uploadImage"] = {
|
||
// 自定义上传
|
||
async customUpload(file, insertFn) {
|
||
const formData = new FormData();
|
||
formData.append("file", file);
|
||
fileUp(formData).then((res) => {
|
||
if (res.data.code === 200) {
|
||
// 最后插入图片
|
||
insertFn(res.data.data, file.name, res.data.data);
|
||
}
|
||
});
|
||
},
|
||
};
|
||
const handleCreated = (editor) => {
|
||
console.log("toolbar2222222222333333322222");
|
||
console.log(editorRef.value);
|
||
editorRef.value = editor; // 记录 editor 实例,重要!
|
||
};
|
||
// 组件销毁时,也及时销毁编辑器
|
||
onBeforeUnmount(() => {
|
||
const editor = editorRef.value;
|
||
if (editor == null) return;
|
||
editor.destroy();
|
||
});
|
||
// 富文本 eeeeeeeeeeeeee
|
||
|
||
const route = useRoute();
|
||
console.log(route);
|
||
const router = useRouter();
|
||
console.log(router);
|
||
|
||
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.filesList.splice(index, 1);
|
||
};
|
||
|
||
// 渲染列表1操作
|
||
const getTableDate = async () => {
|
||
state.tableLoading = true;
|
||
console.log("我是点击搜索的数据", state.sysTypeId);
|
||
let startTime = "";
|
||
let endTime = "";
|
||
if (state.projectTime) {
|
||
startTime = toDate(
|
||
new Date(state.projectTime[0].$d).getTime() / 1000,
|
||
"Y-M-D"
|
||
);
|
||
endTime = toDate(
|
||
new Date(state.projectTime[1].$d).getTime() / 1000,
|
||
"Y-M-D"
|
||
);
|
||
}
|
||
await list({
|
||
pageNo: state.currentPage1,
|
||
pageSize: state.pageSize1,
|
||
auditStatus: state.auditStatus,
|
||
// categoryId: state.categoryId,
|
||
sysTypeId: state.sysTypeId,
|
||
projectName: state.projectName,
|
||
name: state.name,
|
||
createName: state.createName,
|
||
endTime: endTime,
|
||
beginTime: startTime,
|
||
}).then(res=>{
|
||
const { rows, total } = res.data.data;
|
||
state.tableData1 = rows;
|
||
state.tableDataTotal1 = total;
|
||
state.tableLoading = false;
|
||
}).catch(err=>{
|
||
state.tableData1 = [];
|
||
state.tableLoading = false;
|
||
state.tableDataTotal1 = 0;
|
||
message.error(err.message=='timeout of 15000ms exceeded'?'系统超时,请稍后再试':err.data.msg)
|
||
})
|
||
// itm.pageNo = pageNo;
|
||
// itm.contentTxt = findClassFullName(sysTypeOptions.value, itm.sysTypeId) || "-";
|
||
console.log("state.tableData1", state.tableData1);
|
||
};
|
||
|
||
getTableDate();
|
||
const handelChangePage1 = (page, pageSize) => {
|
||
state.currentPage1 = page;
|
||
state.pageSize1 = pageSize;
|
||
getTableDate();
|
||
};
|
||
const handleSearch1 = () => {
|
||
state.currentPage1 = 1;
|
||
getTableDate();
|
||
};
|
||
const handleRest1 = () => {
|
||
state.projectName = "";
|
||
state.name = "";
|
||
state.createName = "";
|
||
state.auditStatus = null;
|
||
state.sysTypeId = null;
|
||
state.projectTime = "";
|
||
state.currentPage1 = 1;
|
||
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;
|
||
state.del_hs_stu = true;
|
||
};
|
||
const handlJoinStu = (itm) => {
|
||
console.log(itm);
|
||
state.studentId = itm.studentId;
|
||
state.studentItem = itm;
|
||
|
||
state.rg_hs = true;
|
||
state.scoreId = itm.id;
|
||
};
|
||
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 showAssessment = () => {
|
||
state.assessmentVisible = true;
|
||
};
|
||
const showDrawerAddHomework = () => {
|
||
state.addhomeworkvisible = true;
|
||
};
|
||
const showDrawerAddTest = () => {
|
||
state.addtestvisible = true;
|
||
};
|
||
const logW = () => {
|
||
state.workInfo = {};
|
||
};
|
||
const logT = () => {
|
||
state.examInfo = {};
|
||
};
|
||
const removePG = () => {
|
||
console.log("11111");
|
||
state.changeName = false
|
||
state.assessmentId = null;
|
||
state.assessmentName = "";
|
||
// state.isEvaluate = "0";
|
||
};
|
||
const getCheckedAss = (ass) => {
|
||
console.log("ass");
|
||
console.log(ass);
|
||
state.assessmentId = ass.assessmentId;
|
||
state.assessmentName = ass.name;
|
||
state.assessment = ass;
|
||
// state.assessment1 = null;
|
||
};
|
||
|
||
const rest = () => {
|
||
options4CurName.value = "";
|
||
options4CurId.value = "";
|
||
// state.teacher = null;
|
||
state.teacherId = null;
|
||
};
|
||
const handleChangeTea1 = (val) => {
|
||
console.log(787877);
|
||
console.log(val);
|
||
|
||
rest();
|
||
};
|
||
const handelChangePageTea1 = (page, pageSize) => {
|
||
state.currentPageTea1 = page;
|
||
state.pageSizeTea1 = pageSize;
|
||
rest();
|
||
};
|
||
const handleChangeTea2 = (val) => {
|
||
console.log(787877);
|
||
console.log(val);
|
||
options4CurName.value = val;
|
||
rest();
|
||
};
|
||
const handelChangePageTea2 = (page, pageSize) => {
|
||
state.currentPageTea2 = page;
|
||
state.pageSizeTea2 = pageSize;
|
||
rest();
|
||
};
|
||
|
||
//获取分类、场景、封面图、-----------字典配置-------------------------------
|
||
const optionsUrl = ref([]);
|
||
//获取分类、场景、封面图、----------------字典配置---------------------------
|
||
|
||
//渲染学员管理操作
|
||
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, pageNo } = res.data.data;
|
||
state.tableDataTotal3 = total;
|
||
|
||
for (let i = 0; i < rows.length; i++) {
|
||
rows[i].num = i + 1 + (state.currentPage3 - 1) * 10;
|
||
}
|
||
rows.forEach((item, index) => {
|
||
rows[index] = {
|
||
...item,
|
||
...item.userInfoBo,
|
||
};
|
||
});
|
||
const data2 = traverseArr(
|
||
rows,
|
||
{
|
||
key: "studentId",
|
||
num: "num",
|
||
name: "name",
|
||
number: "studentId",
|
||
department: "deptName",
|
||
postion: "jobName",
|
||
band: "bandDesc",
|
||
status: "applyStatus",
|
||
join: "source",
|
||
signstatus: "signStatus",
|
||
evastatus: "evalStatus",
|
||
overstatus: "status",
|
||
},
|
||
true
|
||
);
|
||
data2.forEach((itm) => {
|
||
itm.pageNo = pageNo;
|
||
});
|
||
state.tableData7 = data2;
|
||
};
|
||
getTableDate2();
|
||
// 渲染开课操作
|
||
|
||
const handleSearchTable2 = () => {
|
||
console.log(7878);
|
||
// getTableDate33();
|
||
};
|
||
const handleSearchTable3 = () => {
|
||
state.manageStuLoading = true;
|
||
state.currentPage222 = 1
|
||
getCourseStudentList();
|
||
};
|
||
|
||
const reseatSearchTable3 = () => {
|
||
state.currentPage222 = 1;
|
||
state.gl_inputV2 = "";
|
||
state.gl_selectV2 = undefined;
|
||
state.manageStuLoading = true;
|
||
getCourseStudentList();
|
||
};
|
||
// 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 (type) => {
|
||
state.tableData6 = []
|
||
state.tableLoading = true;
|
||
state.tableCoursePlanLoading = true
|
||
// let datas = state.tableData6;
|
||
let beginTime = "";
|
||
let endTime = "";
|
||
if (state.selectTime) {
|
||
// beginTime = parseInt(new Date(state.selectTime[0].$d).getTime() / 1000);
|
||
// endTime = parseInt(new Date(state.selectTime[1].$d).getTime() / 1000);
|
||
beginTime = dayjs(state.selectTime[0]).format("YYYY-MM-DD HH:mm:ss");
|
||
// toDate(
|
||
// new Date(state.selectTime[0].$d).getTime() / 1000,
|
||
// "Y-M-D h:m:s"
|
||
// );
|
||
endTime = dayjs(state.selectTime[1]).format("YYYY-MM-DD HH:mm:ss");
|
||
// toDate(
|
||
// new Date(state.selectTime[1].$d).getTime() / 1000,
|
||
// "Y-M-D h:m:s"
|
||
// );
|
||
}
|
||
let obj = {
|
||
pageNo: type?state.currentPage2:state.currentPage222,
|
||
pageSize: state.pageSize222,
|
||
createName: state.kk_inputV1,
|
||
teacher: state.kk_inputV2,
|
||
name: state.kk_inputV0,
|
||
beginTime: beginTime,
|
||
endTime: endTime,
|
||
offcourseId: state.offcourseId,
|
||
};
|
||
console.log("获取开obj", obj, state.selectTime);
|
||
let res = null
|
||
await planList(obj).then(rs=>{
|
||
res = rs
|
||
}).catch(err=>{
|
||
message.error(err.message=='timeout of 15000ms exceeded'?'系统超时,请稍后再试':err.data.msg)
|
||
state.tableCoursePlanLoading = false
|
||
res ={
|
||
data:{data:{
|
||
"pageNo": "1",
|
||
"pageSize": "10",
|
||
"total": "0",
|
||
"pages": "0",
|
||
"rows": []
|
||
}}}
|
||
})
|
||
state.tableLoading = false;
|
||
console.log("开课res", res);
|
||
const { rows, total, pageNo } = res.data.data;
|
||
state.tableDataTotal222 = total;
|
||
state.tableDataTotal2 = total;
|
||
|
||
for (let i = 0; i < rows.length; i++) {
|
||
rows[i].num = i + 1 + (state.currentPage222 - 1) * 10;
|
||
}
|
||
const datas = traverseArr(
|
||
rows,
|
||
{
|
||
key: "offcoursePlanId",
|
||
num: "num",
|
||
organization: "name",
|
||
address: "address",
|
||
starttime: "beginTime",
|
||
createtime: "createTime",
|
||
createName: "createName",
|
||
},
|
||
true
|
||
);
|
||
datas.forEach((itm) => {
|
||
itm.pageNo = pageNo;
|
||
});
|
||
state.tableData6 = datas;
|
||
state.tableCoursePlanLoading = false
|
||
console.log("state.tableData6", state.tableData6);
|
||
};
|
||
|
||
const options1 = ref([
|
||
{
|
||
value: 0,
|
||
label: "未提交",
|
||
},
|
||
{
|
||
value: 1,
|
||
label: "待审核",
|
||
},
|
||
{
|
||
value: 2,
|
||
label: "已审核",
|
||
},
|
||
{
|
||
value: -1,
|
||
label: "审核未通过",
|
||
},
|
||
]);
|
||
const options11 = ref([
|
||
{
|
||
value: 0,
|
||
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 changevalue = (e) => {
|
||
let arr = state.attach.split(",");
|
||
let newarr = [];
|
||
for (let i = 0; i < arr.length; i++) {
|
||
if (i !== e) {
|
||
newarr.push(arr[i]);
|
||
}
|
||
}
|
||
if (newarr.length == 0) {
|
||
state.attach = "";
|
||
} else {
|
||
state.attach = newarr.toString();
|
||
}
|
||
console.log("changevalue", e, newarr, state.attach);
|
||
};
|
||
const options4CurId = ref("");
|
||
const options4CurName = ref("张");
|
||
const of_hShow = () => {
|
||
state.offcourseId = "";
|
||
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.xzinputV1 = "";
|
||
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 expectOnline = () => {
|
||
message.destroy();
|
||
message.success("功能正在开发中,敬请期待。");
|
||
};
|
||
//新建面授课
|
||
const createft = () => {
|
||
if (!state.xzinputV1) {
|
||
message.destroy();
|
||
return message.warning("请输入课程名称");
|
||
}
|
||
|
||
if (state.validated !== 2) {
|
||
message.destroy();
|
||
return message.warning("该课程名称已存在");
|
||
}
|
||
console.log(
|
||
"state.bs_hs && state.valueE1 == 2",
|
||
state.bs_hs,
|
||
state.valueE1 == 2
|
||
);
|
||
if (!state.valueE1 && !state.valueE2) {
|
||
message.destroy();
|
||
return message.warning("请选择课程形式");
|
||
}
|
||
|
||
if (state.valueE1 === 2) {
|
||
state.of_hs = false;
|
||
// state.ft_hs = true;
|
||
CourseModalRef.value.visibleOpen(null, state.xzinputV1);
|
||
|
||
state.valueE1 = "";
|
||
state.teacher = "";
|
||
state.teacherName = "";
|
||
|
||
state.qdms_inputV1 = state.xzinputV1;
|
||
state.xzinputV1 = "";
|
||
}
|
||
if (state.bs_hs && state.valueE1 == 1) {
|
||
state.addOnlineCoursevisible = true;
|
||
}
|
||
};
|
||
const checkVal = (checkList) => {
|
||
let count = 0;
|
||
for (const keyName of checkList) {
|
||
if (!keyName) {
|
||
count++;
|
||
}
|
||
}
|
||
return count ? false : true;
|
||
};
|
||
const ft_exit_0 = () => {
|
||
// state.ft_hs = false;
|
||
CourseModalRef.value.visibleClose();
|
||
};
|
||
const ft_exit_1 = () => {
|
||
// state.ft_hs = false;
|
||
CourseModalRef.value.visibleClose();
|
||
// router.go(0);
|
||
};
|
||
const ft_exit = () => {
|
||
state.ft_eidt = false;
|
||
state.hideshow = true;
|
||
|
||
state.offcourseId = null;
|
||
state.statusJuJue = 1;
|
||
state.statusTingQi = 1;
|
||
state.qdms_inputV1 = "";
|
||
state.imageUrl = "";
|
||
state.qdms_inputV2 = "";
|
||
state.qdms_inputV3 = "";
|
||
state.fen_lei = null;
|
||
state.feng_mian_1 = null;
|
||
state.feng_mian_2 = null;
|
||
state.chang_jin = null;
|
||
state.tags_val = [];
|
||
state.qdms_inputV5 = null;
|
||
state.qdms_inputV6 = "";
|
||
state.imgList = [];
|
||
valueHtml.value = "";
|
||
state.fileList = [];
|
||
};
|
||
// 关闭查看
|
||
const handlelookMs = () => {
|
||
state.lookMs = false;
|
||
};
|
||
|
||
const om_exit = () => {
|
||
state.gl_selectV2 = undefined;
|
||
state.gl_inputV2 = "";
|
||
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;
|
||
handleCancelStu();
|
||
// handleRestTable();
|
||
};
|
||
const createkk = () => {
|
||
//todo 创建开课
|
||
state.xjkkinputV1 = state.newCourseName
|
||
state.offcoursePlanId = null;
|
||
state.itemType = 3;
|
||
state.member = {};
|
||
state.offteachers = [{
|
||
teacherId: "",
|
||
teacherName: "",
|
||
weight: '',
|
||
}]
|
||
state.changeName = true
|
||
state.xjkkinputV3 = [moment().format('YYYY-MM-DD HH:mm'),'']
|
||
|
||
state.examInfo = {};
|
||
//清除缓存
|
||
state.cstm_hs = true;
|
||
};
|
||
const handleCancelStu = () => {
|
||
editBeginClass.value = false
|
||
state.cstm_hs = false;
|
||
state.attach = "";
|
||
|
||
state.kk_eidt = false;
|
||
state.xjkkradioV1 = false;
|
||
state.xjkkradioVEnd = false;
|
||
state.xjkkradioVEndTime = null;
|
||
state.completeType = "";
|
||
// state.xjkkinputV1 = "";
|
||
state.onceName = "";
|
||
state.scoreParams = '';
|
||
state.xjkkinputV2 = "";
|
||
state.duration = "";
|
||
// state.xjkkinputV3 = [];
|
||
state.xjkkinputV4 = null;
|
||
state.checked1 = false;
|
||
state.checked4 = false;
|
||
state.EditTestId = null;
|
||
state.assessmentId = null;
|
||
state.assessmentName = "";
|
||
state.workInfo = {};
|
||
state.examInfo = {};
|
||
state.EditWorkId = null;
|
||
state.beforeValue = null; //考勤 开始前
|
||
state.afterStartValue = null; //考勤 开始后
|
||
|
||
removePG();
|
||
};
|
||
//保存开课
|
||
|
||
const handleSureStu = async () => {
|
||
console.log("编辑的状况 state.kk_eidt",state.kk_eidt)
|
||
console.log("编辑的状况 state.examInfo",state.examInfo)
|
||
if(editBeginClass.value){
|
||
message.info('讲师费已进入审批阶段,无法编辑')
|
||
return
|
||
}
|
||
let startTime,
|
||
endTime = 0;
|
||
if (state.xjkkinputV3.length!=0) {
|
||
startTime = dayjs(state.xjkkinputV3[0]).format("YYYY-MM-DD HH:mm"); //parseInt(state.xjkkinputV3[0].$d.getTime() / 1000);
|
||
endTime = dayjs(state.xjkkinputV3[1]).format("YYYY-MM-DD HH:mm"); //parseInt(state.xjkkinputV3[1].$d.getTime() / 1000);
|
||
}
|
||
const offName = await validateName({
|
||
name: state.xjkkinputV1,
|
||
type: 5,
|
||
id: state.offcoursePlanId,
|
||
}).then((res) => {
|
||
console.log(res, res.data.data);
|
||
return res.data.data === 1;
|
||
});
|
||
console.log("校验重复", offName);
|
||
if (offName) {
|
||
message.destroy();
|
||
return message.warning("开课名称重复,请重新填写");
|
||
}
|
||
let t = state.signCom ? "1," : "0,";
|
||
let p = state.comLeave ? "1" : "0";
|
||
let type = t.concat(p);
|
||
let postData = {
|
||
offcourseId: state.offcourseId,
|
||
id: state.offcoursePlanId, //开课ID,不传代表新增
|
||
address: state.xjkkinputV2,
|
||
// duration: state.duration,
|
||
duration:state.duration ? state.duration : durationText.value,
|
||
applyFlag: state.checked1 ? 1 : 0,
|
||
attach: state.attach,
|
||
beginTime: startTime,
|
||
completeType: type,
|
||
endTime: endTime,
|
||
evalFlag: Number(state.assessmentId) > 0 && state.checked4 ? 1 : 0,
|
||
assessmentId: state.checked4==1?Number(state.assessmentId):0,
|
||
testId: state.examInfo.examinationName ? state.EditTestId : null,
|
||
homeWorkId: state.EditWorkId,
|
||
name: state.xjkkinputV1,
|
||
signFlag: state.xjkkradioV1 ? 1 : 0, //是否允许未报名的签到:1是0否
|
||
autoGraduateEnabled: state.xjkkradioVEnd ? 1 : 0,
|
||
autoGraduateDays: state.xjkkradioVEndTime,
|
||
// signWordFlag: state.xjkkradioV1 === 1 ? 1 : 0, //签到是否需要口令:1是0否
|
||
// teacherId: state.member.value,
|
||
// teacher: state.member.name,
|
||
offteachers: state.offteachers,
|
||
workInfo: state.workInfo, //提交的作业信息
|
||
//提交的考试信息
|
||
beforeStart: state.beforeValue, //考勤 开始前
|
||
afterStart: state.afterStartValue, //考勤 开始后
|
||
score: state.scoreParams,
|
||
};
|
||
if(state.kk_eidt){
|
||
//编辑
|
||
postData.examInfo = state.examInfo;
|
||
}else{
|
||
//新建
|
||
postData.examInfo = state.examInfo;
|
||
postData.examInfo.examinationTestId = null;
|
||
}
|
||
|
||
|
||
console.log("postData gxdata data" ,postData);
|
||
if(!postData.name){
|
||
return message.error("请输入开课名称");
|
||
}
|
||
if(!state.xjkkinputV3[0]){
|
||
return message.error("开始时间未填写");
|
||
}
|
||
if(!state.xjkkinputV3[1]){
|
||
return message.error("结束时间未填写");
|
||
}
|
||
if(durationText.value<0){
|
||
return message.error("结束时间不能小于开始时间,请重新填写");
|
||
}
|
||
if(state.offteachers.some(item => !item.teacherName)){
|
||
return message.error("请填写教师名称和设置权重");
|
||
}
|
||
inputWeightChange()
|
||
if(state.offteachers.length==1&& totalWeightSum.value!=100){
|
||
message.error('单名教师您设置的权重应该是100%')
|
||
return
|
||
}else if(state.offteachers.length>1&& totalWeightSum.value!=100){
|
||
message.error('多名教师权重合计值为100%')
|
||
return
|
||
}
|
||
const teacherNames = new Set(state.offteachers.map(item => item.teacherName));
|
||
if (teacherNames.size !== state.offteachers.length) {
|
||
message.error('教师重复,请检查');
|
||
return;
|
||
}
|
||
if(state.offteachers.some(item => item.weight==0)){
|
||
message.error('权重值不能为0%')
|
||
return
|
||
}
|
||
if(state.xjkkradioVEnd && (state.xjkkradioVEndTime==null||state.xjkkradioVEndTime==''||state.xjkkradioVEndTime<=0)){
|
||
message.error('请填写结业时间')
|
||
return
|
||
}
|
||
if(state.checked4 && (!state.assessmentId || state.assessmentId == '0' || state.assessmentId == 'null')){
|
||
return message.error('请选择评估');
|
||
}
|
||
if(!state.xjkkradioVEnd){
|
||
state.xjkkradioVEndTime = null
|
||
}
|
||
console.log(postData,'传输的数据')
|
||
// if(!postData.duration){
|
||
// return message.error("请输入持续时间");
|
||
// }
|
||
state.addLoading = true;
|
||
editPlan(postData)
|
||
.then((res) => {
|
||
if(res.data.code == 200){
|
||
handleSearchTable();
|
||
handleCancelStu();
|
||
rest();
|
||
}else{
|
||
message.error(res.data.msg)
|
||
}
|
||
state.addLoading = false;
|
||
})
|
||
.catch((err) => {
|
||
handleSearchTable();
|
||
message.destroy()
|
||
message.error(err.data.msg)
|
||
state.addLoading = false;
|
||
console.log(err);
|
||
});
|
||
state.cstm_hs = false;
|
||
};
|
||
|
||
let editBeginClass = ref(false)
|
||
//编辑开课
|
||
const handelEditStu = async (item) => {
|
||
console.log("gx handelEditStu item",item)
|
||
nums.value = 0
|
||
editBeginClass.value = false
|
||
if (item.expenseStatus && item.expenseStatus !== 'A10' && item.expenseStatus !== 'S00') {
|
||
editBeginClass.value = true
|
||
console.log(editBeginClass.value);
|
||
}
|
||
state.offcourseId = item.offcourseId;
|
||
state.itemType = item.type;
|
||
state.offcoursePlanId = item.id;
|
||
|
||
if (item.homeWorkId) {
|
||
queryWorkDetailById({ workId: item.homeWorkId }).then(
|
||
(res) => (state.workInfo = res.data.data)
|
||
);
|
||
}
|
||
if (item.testId) {
|
||
queryExaminationDetailById({ examinationId: item.testId }).then(
|
||
(res) => (state.examInfo = res.data.data)
|
||
|
||
);
|
||
}
|
||
// if(item.evalFlag){
|
||
// queryAssessmentDetailList({assessmentId:item.assessmentId }).then(
|
||
// (res) => (state.examInfo = res.data.data)
|
||
// );
|
||
// }
|
||
console.log("获取面授课开课详情", item);
|
||
state.xjkkinputV2 = item.address;
|
||
state.duration = item.duration;
|
||
state.checked1 = item.applyFlag === 1 ? true : false;
|
||
state.attach = item.attach;
|
||
|
||
state.xjkkinputV3 = [
|
||
dayjs(item.beginTime, "YYYY-MM-DD HH:mm"),
|
||
dayjs(item.endTime, "YYYY-MM-DD HH:mm"),
|
||
];
|
||
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.assessmentName = item.assessmentName;
|
||
state.assessmentId = String(item.assessmentId);
|
||
state.EditTestId = Number(item.testId);
|
||
state.EditWorkId = String(item.homeWorkId);
|
||
state.xjkkinputV1 = item.name;
|
||
state.onceName = item.name;
|
||
state.scoreParams = item.score;
|
||
state.beforeValue = item.beforeStart; //考勤 开始前
|
||
state.afterStartValue = item.afterStart; //考勤 开始后
|
||
state.xjkkradioVEndTime = item.autoGraduateDays;
|
||
if (item.signFlag === 1) {
|
||
//是否允许未报名的签到:1是0否
|
||
state.xjkkradioV1 = true;
|
||
}
|
||
if(item.autoGraduateEnabled === 1){
|
||
state.xjkkradioVEnd = true;
|
||
}
|
||
// state.member = { value: item.teacherId, name: item.teacher };
|
||
state.offteachers = [...item.offteachers]
|
||
state.cstm_hs = true;
|
||
state.kk_eidt = true;
|
||
};
|
||
const columnFun = (itm) => {
|
||
console.log("itm", itm);
|
||
//新加
|
||
state.stuColumns = [
|
||
// {
|
||
// title: "岗位",
|
||
// width: "100px",
|
||
// dataIndex: "studentJobName",
|
||
// key: "7",
|
||
// align: "center",
|
||
// customRender: (text) => {
|
||
// return (
|
||
// <div class="racona">
|
||
// <span>
|
||
// {text && text.record.studentJobName
|
||
// ? text.record.studentJobName
|
||
// : "-"}
|
||
// </span>
|
||
// </div>
|
||
// );
|
||
// },
|
||
// },
|
||
// {
|
||
// title: "Band",
|
||
// width: "80px",
|
||
// dataIndex: "studentBandDesc",
|
||
// key: "7",
|
||
// align: "center",
|
||
// ellipsis: true,
|
||
// customRender: (text) => {
|
||
// return (
|
||
// <div class="racona">
|
||
// <span>
|
||
// {text.record.studentBandDesc ? text.record.studentBandDesc : "-"}
|
||
// </span>
|
||
// </div>
|
||
// );
|
||
// },
|
||
// },
|
||
{
|
||
title: "报名状态",
|
||
width: "60px",
|
||
dataIndex: "status",
|
||
key: "5",
|
||
align: "center",
|
||
customRender: ({ record }) => {
|
||
switch (String(record.status)) {
|
||
case "0":
|
||
return "审核通过";
|
||
case "1":
|
||
return "待审核";
|
||
case "2":
|
||
return "审核拒绝";
|
||
}
|
||
},
|
||
},
|
||
|
||
{
|
||
title: "签到状态",
|
||
width: "60px",
|
||
dataIndex: "signstatus",
|
||
key: "7",
|
||
align: "center",
|
||
customRender: ({ record }) =>
|
||
record.signStatus ? "已签到" : "未签到",
|
||
},
|
||
{
|
||
title: "评估状态",
|
||
width: "60px",
|
||
dataIndex: "evastatus",
|
||
key: "8",
|
||
align: "center",
|
||
customRender: ({ record }) =>
|
||
state.isAssessmentId&&state.isAssessmentId!='0' ? record.assessmentStatus?"已评估" : "未评估":'-',
|
||
},
|
||
{
|
||
title: "评分",
|
||
width: "60px",
|
||
dataIndex: "studentScore",
|
||
key: "8",
|
||
align: "center",
|
||
ellipsis: true,
|
||
customRender: ({ record }) => {
|
||
return (
|
||
<div class="racona">
|
||
{record.assessmentScore && record.assessmentScore!=0 && record.assessmentScore!=-1 ? record.assessmentScore?.toFixed(2) : "-"}
|
||
</div>
|
||
);
|
||
// switch (String(record.status)) {
|
||
// case "0":
|
||
// return (
|
||
// <span
|
||
// style={{ color: "#4EA6FF", cursor: "pointer" }}
|
||
// onClick={() => {
|
||
// handlJoinStu(record);
|
||
// }}
|
||
// >
|
||
// 成绩录入
|
||
// </span>
|
||
// );
|
||
// case "1":
|
||
// return "-";
|
||
// case "2":
|
||
// return "-";
|
||
// }
|
||
},
|
||
},
|
||
// {
|
||
// title: "作业成绩",
|
||
// width: "8%",
|
||
// dataIndex: "workScore",
|
||
// key: "7",
|
||
// align: "center",
|
||
// customRender: ({ record }) => {
|
||
// return (
|
||
// <div class="racona">
|
||
// {record.workStatus? record.workScore?<span>{record.workScore || '-'}</span>:
|
||
// <span style={{ color: "#4EA6FF", cursor: "pointer" }} onClick={() => handlJoinStu(record)}>
|
||
// 成绩录入
|
||
// </span>
|
||
// : <span>-</span>
|
||
// }
|
||
// </div>
|
||
// );
|
||
// // switch (String(record.status)) {
|
||
// // case "0":
|
||
// // return (
|
||
// // <span
|
||
// // style={{ color: "#4EA6FF", cursor: "pointer" }}
|
||
// // onClick={() => {
|
||
// // handlJoinStu(record);
|
||
// // }}
|
||
// // >
|
||
// // 成绩录入
|
||
// // </span>
|
||
// // );
|
||
// // case "1":
|
||
// // return "-";
|
||
// // case "2":
|
||
// // return "-";
|
||
// // }
|
||
// },
|
||
// },
|
||
{
|
||
title: "作业状态",
|
||
width: "60px",
|
||
dataIndex: "workStatus",
|
||
key: "5",
|
||
align: "center",
|
||
customRender: ({ record }) => {
|
||
// switch (String(record.workStatus)) {
|
||
// case "null":
|
||
// return "未提交";
|
||
// case "0":
|
||
// return "未提交";
|
||
// case "1":
|
||
// return "已提交";
|
||
// case "2":
|
||
// return "未提交";
|
||
// }
|
||
const status = String(record.workStatus);
|
||
if (state.isHomeWorkId) {
|
||
return ["null", "0", "2"].includes(status) ? "未提交" : "已提交";
|
||
} else {
|
||
return '-';
|
||
}
|
||
},
|
||
},
|
||
{
|
||
title: "考试成绩",
|
||
width: "60px",
|
||
dataIndex: "examinationScore",
|
||
key: "8",
|
||
align: "center",
|
||
customRender: ({ record }) =>
|
||
record.examinationScore ? record.examinationScore : "-",
|
||
|
||
},
|
||
{
|
||
title: "结业状态",
|
||
width: "60px",
|
||
dataIndex: "completionStatus",
|
||
key: "8",
|
||
align: "center",
|
||
customRender: ({ record }) => {
|
||
return (
|
||
<div>
|
||
{
|
||
record.signStatus == 1 && record.completionStatus != 1 && record.completionStatus != 2 ? (
|
||
<div
|
||
style={{ color: "#4EA6FF", cursor: "pointer" }}
|
||
onClick={() => {
|
||
handleOverStu(record);
|
||
}}
|
||
>
|
||
结业
|
||
</div>
|
||
) : record.completionStatus == 1 ? (
|
||
<div>已结业</div>
|
||
) : record.completionStatus == 2 ?(
|
||
<div>不结业</div>
|
||
) : (
|
||
<div>-</div>
|
||
)}
|
||
</div>
|
||
);
|
||
},
|
||
},
|
||
];
|
||
// if (itm.courseScore !== -1) {
|
||
// let obj = {
|
||
// title: "评分",
|
||
// width: "8%",
|
||
// dataIndex: "studentScore",
|
||
// key: "8",
|
||
// align: "center",
|
||
// };
|
||
|
||
// state.stuColumns.splice(6, 0, obj);
|
||
// }
|
||
};
|
||
const handelGuan = (itm) => {
|
||
console.log("开课信息", itm);
|
||
state.offcourseId = itm.offcourseId;
|
||
state.offcoursePlanId = itm.id;
|
||
state.studentId = itm.studentId;
|
||
state.studentItem = itm;
|
||
|
||
state.currentPlanItem = itm;
|
||
state.newCourseName = itm.name;
|
||
state.isAssessmentId = itm.assessmentId;
|
||
state.isHomeWorkId = itm.homeWorkId;
|
||
console.log(89877766666);
|
||
console.log(state.currentPlanItem);
|
||
|
||
state.sm_hs = true;
|
||
// getTableDate2();
|
||
state.homeWorkId = itm.homeWorkId;
|
||
columnFun(itm);
|
||
};
|
||
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 = false;
|
||
}
|
||
};
|
||
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;
|
||
state.jyradioV1 = 1;
|
||
};
|
||
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.del_hs_stu = false;
|
||
state.submit_hs = false;
|
||
state.back_hs = false;
|
||
state.push_hs = false;
|
||
state.copy_hs = false;
|
||
state.nouse_hs = false;
|
||
state.rg_hs = false;
|
||
state.graduate_hs = false;
|
||
state.addLoading = false;
|
||
state.jyradioV1 = 1;
|
||
};
|
||
const handleRejectExit = (id, index, record) => {
|
||
dialog({
|
||
content: "确定撤回吗?",
|
||
ok: () => {
|
||
handle({ offcourseId: id, type: 0 }).then(res=>{
|
||
message.success("撤回成功");
|
||
record.publishStatus ? (state.tableData1[index].publishStatus = 0) : (state.tableData1[index].auditStatus = 0);
|
||
}).catch(err=>{
|
||
message.destroy();
|
||
message.error(err.data.msg);
|
||
})
|
||
},
|
||
});
|
||
};
|
||
|
||
const handleJoin = async () => {
|
||
state.lrcj_inputV1 || message.error("请输入成绩");
|
||
if (state.rg_hs) {
|
||
if (state.piliang) {
|
||
api1.updateStudent({
|
||
workScore: state.lrcj_inputV1,
|
||
workId: state.homeWorkId,
|
||
studentId: state.studentId,
|
||
});
|
||
getTableDate2();
|
||
delete_exit1();
|
||
} else {
|
||
api1
|
||
.updateStudent({
|
||
workScore: state.lrcj_inputV1,
|
||
workId: state.homeWorkId,
|
||
studentId: state.studentId,
|
||
})
|
||
.then((res) => {
|
||
console.log("成绩录入", res);
|
||
if (res.data.code === 200) {
|
||
// getTableDate2();
|
||
state.isgetStudent = true;
|
||
delete_exit1();
|
||
state.lrcj_inputV1 = "";
|
||
state.scoreId = null;
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
console.log("录入失败", err);
|
||
});
|
||
}
|
||
}
|
||
};
|
||
const handleJie = async () => {
|
||
if (state.graduate_hs) {
|
||
// state.studentItem.id
|
||
// console.log("state.studentItem.id", state.studentItem.id);
|
||
api1
|
||
.batchUpdateStatus({
|
||
completionStatus: state.jyradioV1,
|
||
ids: [state.studentItem?.id],
|
||
// status: 1,
|
||
})
|
||
.then((res) => {
|
||
if (res.data.code === 200) {
|
||
// getTableDate2();
|
||
state.tableStudentChange.getStuList()
|
||
delete_exit1();
|
||
}
|
||
});
|
||
}
|
||
};
|
||
//确认复制
|
||
const handleAgreeTrue = async () => {
|
||
if (state.agreestudy_hs) {
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: "",
|
||
studentIds: [state.studentId],
|
||
type: 3,
|
||
}).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate2();
|
||
delete_exit1();
|
||
state.addLoading = false;
|
||
}
|
||
});
|
||
}
|
||
if (state.rejectstudy_hs) {
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: "",
|
||
studentIds: [state.studentId],
|
||
type: 4,
|
||
}).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate2();
|
||
delete_exit1();
|
||
}
|
||
});
|
||
}
|
||
};
|
||
//确认复制课程 操作
|
||
const handleDeleteExit = async () => {
|
||
if (state.del_hs) {
|
||
if (state.offcourseId && state.offcoursePlanId && state.studentId) {
|
||
handleStudent({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
score: "",
|
||
studentIds: [state.studentId],
|
||
type: 5,
|
||
}).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate2();
|
||
delete_exit1();
|
||
}
|
||
});
|
||
} else if (state.offcourseId && state.offcoursePlanId) {
|
||
deletePlan({
|
||
offcoursePlanId: state.offcoursePlanId,
|
||
}).then((res) => {
|
||
if (res.data.code === 200) {
|
||
getTableDate3();
|
||
delete_exit1();
|
||
}else{
|
||
message.error(res.data.msg)
|
||
}
|
||
}).catch(err=>{
|
||
message.destroy()
|
||
message.error(err.data.msg)
|
||
})
|
||
} else if (state.offcourseId) {
|
||
handle({
|
||
offcourseId: state.offcourseId,
|
||
type: -1,
|
||
}).then((res) => {
|
||
if (res.data.code === 200) {
|
||
message.destroy();
|
||
message.success("删除成功");
|
||
getTableDate();
|
||
delete_exit1();
|
||
}
|
||
});
|
||
}
|
||
}
|
||
if (state.copy_hs) {
|
||
state.tableLoading = true;
|
||
if (state.offcourseId && state.offcoursePlanId) {
|
||
await copyCoursePlan({ offcoursePlanId: state.offcoursePlanId });
|
||
getTableDate3();
|
||
} else if (state.offcourseId) {
|
||
await copyCourse({ courseId: state.offcourseId });
|
||
getTableDate();
|
||
}
|
||
message.success("复制成功");
|
||
rest();
|
||
}
|
||
if (state.nouse_hs) {
|
||
state.temp.auditStatus = 0;
|
||
message.success("停用成功");
|
||
handle({ offcourseId: state.offcourseId, type: -2 });
|
||
}
|
||
if (state.submit_hs) {
|
||
state.tableLoading = true;
|
||
message.success("提交审核成功");
|
||
handle({ offcourseId: state.offcourseId, type: 1 }).then(() =>
|
||
getTableDate()
|
||
);
|
||
}
|
||
if (state.back_hs) {
|
||
state.tableLoading = true;
|
||
message.success("撤回成功");
|
||
handle({ offcourseId: state.offcourseId, type: 0 }).then(() =>
|
||
getTableDate()
|
||
);
|
||
}
|
||
if (state.useCourse) {
|
||
state.tableLoading = true;
|
||
message.success("启用成功");
|
||
handle({ offcourseId: state.offcourseId, type: 2 }).then(() =>
|
||
getTableDate()
|
||
);
|
||
}
|
||
if (state.push_hs) {
|
||
state.tableLoading = true;
|
||
message.success("发布成功");
|
||
handle({ offcourseId: state.offcourseId, type: 3 }).then(() =>
|
||
getTableDate()
|
||
);
|
||
}
|
||
delete_exit1();
|
||
};
|
||
const handleDeleteKaike = (value) => {
|
||
if (value.expenseStatus && value.expenseStatus !== 'A10' && value.expenseStatus !== 'S00') {
|
||
return message.warning("该开课已在审批流程中,不可进行删除!");
|
||
}
|
||
state.offcoursePlanId = value.id;
|
||
|
||
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 = () => {
|
||
console.log(122222);
|
||
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);
|
||
}
|
||
console.log(startTime, endTime);
|
||
|
||
// list({
|
||
// pageNo: 1,
|
||
// pageSize: 100000,
|
||
// auditStatus: state.auditStatus,
|
||
// // categoryId: state.categoryId,
|
||
// sysTypeId: state.sysTypeId,
|
||
// projectName: state.projectName,
|
||
// name: state.name,
|
||
// createName: state.createName,
|
||
// endTime: endTime,
|
||
// beginTime: startTime,
|
||
// }).then(res=>{
|
||
// let list = res.data.data.rows.map(s=>{
|
||
// s.contentTxt = findClassFullName(sysTypeOptions.value, s.sysTypeId) || "-";
|
||
// s.typeName = '面授'
|
||
// s.publishStatusText = s.publishStatus === 0?'未发布':'已发布'
|
||
// s.statusText = s.status === 0?'否':'是'
|
||
// s.auditStatusText = s.auditStatus === 0?'未提交': s.auditStatus === 1?'待审核':s.auditStatus === 2?'已审核':s.auditStatus === -1?"审核未通过":''
|
||
// return s
|
||
// })
|
||
// console.log(list)
|
||
// let heads = [
|
||
// { header: '名称', key: 'name', width: 18 },
|
||
// { header: '类型', key: 'typeName', width: 10 },
|
||
// { header: '归属路径图', key: 'routerName', width: 13 },
|
||
// { header: '归属项目', key: 'projectName', width: 13 },
|
||
// { header: '内容分类', key: 'contentTxt', width: 20 },
|
||
// // { header: '一级分类', key: 'firstLevelCategory', width: 10 },
|
||
// // { header: '二级分类', key: 'secondLevelCategory', width: 10 },
|
||
// // { header: '三级分类', key: 'thirdLevelCategory', width: 10 },
|
||
// { header: '开课次数', key: 'planCnt', width: 10 },
|
||
// { header: '学习人数', key: 'studentCnt', width: 10 },
|
||
// { header: '评分', key: 'score', width: 10 },
|
||
// { header: '状态', key: 'auditStatusText', width: 20 },
|
||
// { header: '是否发布', key: 'publishStatusText', width: 10 },
|
||
// { header: '创建人', key: 'createName', width: 10 },
|
||
// { header: '创建时间', key: 'createTime', width: 22 },
|
||
// { header: '上线时间', key: 'publishTime', width: 22 },
|
||
// { header: '是否停用', key: 'statusText', width: 10 },
|
||
// ]
|
||
// commonExport(heads,list,"课程导出")
|
||
// })
|
||
window.open(
|
||
`${process.env.VUE_APP_BASE_API}/admin/offcourse/export?pageNo=${
|
||
state.currentPage1
|
||
}&pageSize=${state.pageSize1}&auditStatus=${
|
||
state.auditStatus ? state.auditStatus : ""
|
||
}&sysTypeId=${state.sysTypeId ? state.sysTypeId : ""}&projectName=${
|
||
state.projectName ? state.projectName : ""
|
||
}&name=${state.name ? state.name : ""}&createName=${
|
||
state.createName ? state.createName : ""
|
||
}&endTime=${endTime ? dayjs(new Date(state.projectTime[1].$d)).format('YYYY-MM-DD') : ""}&beginTime=${
|
||
startTime ? dayjs(new Date(state.projectTime[0].$d)).format('YYYY-MM-DD') : ""
|
||
}&type=3`
|
||
);
|
||
|
||
// {
|
||
// /* 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 handleEdit = async (itm, type) => {
|
||
if (type === "1") {
|
||
return;
|
||
}
|
||
// console.log(itm)
|
||
state.offcourseId = itm.id;
|
||
|
||
const item = await detail({
|
||
offcourseId: Number(state.offcourseId),
|
||
}).then((res) => {
|
||
if (res.data.code === 200) return res.data.data;
|
||
});
|
||
|
||
state.statusJuJue = Number(item.auditStatus) === -1 ? 1 : 0;
|
||
|
||
if (Number(item.auditStatus) === 2 && Number(item.status) === 1) {
|
||
state.statusTingQi = 1;
|
||
}
|
||
if (Number(item.auditStatus) === 2 && Number(item.status) === 0) {
|
||
state.statusTingQi = 0;
|
||
}
|
||
|
||
state.qdms_inputV1 = item.name;
|
||
// state.imageUrl = item.picUrl;
|
||
state.feng_mian_1 = 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 };
|
||
// state.offteachers = [...item.offteachers]
|
||
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;
|
||
CourseModalRef.value.visibleOpen(state.offcourseId, null);
|
||
state.ft_eidt = true;
|
||
};
|
||
|
||
// handleTagChange
|
||
const handleTagChange = () => {
|
||
if (state.tags_val_single) {
|
||
state.tags_val.push(state.tags_val_single);
|
||
}
|
||
state.tags_val_single = "";
|
||
};
|
||
const handleTagClose = (index) => {
|
||
state.tags_val.splice(index, 1);
|
||
};
|
||
|
||
// 预览弹框 开启和关闭
|
||
const ft_exit_see = () => {
|
||
state.lookCourseModal = false;
|
||
};
|
||
const handleLook = async (itm, type) => {
|
||
if (type === "1") {
|
||
return;
|
||
}
|
||
state.offcourseId = itm.id;
|
||
|
||
const item = await detail({
|
||
offcourseId: Number(state.offcourseId),
|
||
}).then((res) => {
|
||
if (res.data.code === 200) return res.data.data;
|
||
});
|
||
state.lookCourseModal = true;
|
||
item.attach = item.attach == "" ? [] : item.attach.split(",");
|
||
state.faceDetailObj = item;
|
||
console.log("获取查看信息", item);
|
||
};
|
||
// 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 = (id) => {
|
||
dialog({
|
||
content: "确定删除该课程吗?",
|
||
ok: async () => {
|
||
await handle({ offcourseId: id, type: -1 }).then(res=>{
|
||
message.success("删除成功");
|
||
state.tableLoading = true;
|
||
getTableDate();
|
||
}).catch(err=>{
|
||
message.destroy()
|
||
message.error(err.data.msg)
|
||
})
|
||
},
|
||
});
|
||
};
|
||
const handleCopy = async (id) => {
|
||
console.log("复制Id", id);
|
||
dialog({
|
||
content: "确定复制该课程吗?",
|
||
ok: async () => {
|
||
message.success("复制成功");
|
||
state.tableLoading = true;
|
||
await copyCourse({ courseId: id });
|
||
getTableDate();
|
||
},
|
||
});
|
||
};
|
||
const handleSubmit = (id, index) => {
|
||
dialog({
|
||
content: "确定提交审核吗?",
|
||
ok: () => {
|
||
message.success("提交成功");
|
||
state.tableData1[index].auditStatus = 1;
|
||
handle({ offcourseId: id, type: 1 });
|
||
},
|
||
});
|
||
};
|
||
const handlePush = (id, index) => {
|
||
dialog({
|
||
content: "确定发布该课程吗?",
|
||
ok: () => {
|
||
message.success("发布成功");
|
||
state.tableData1[index].publishStatus = 1;
|
||
handle({ offcourseId: id, type: 3 });
|
||
},
|
||
});
|
||
};
|
||
|
||
const handleCopyP = async (itm) => {
|
||
console.log(itm);
|
||
state.offcourseId = itm.offcourseId;
|
||
state.offcoursePlanId = itm.id;
|
||
|
||
state.delete_hs = true;
|
||
state.copy_hs = true;
|
||
};
|
||
const handleStop = (record) => {
|
||
dialog({
|
||
content: "确定停用该课程吗?",
|
||
ok: () => {
|
||
handle({ offcourseId: record.id, type: -2 }).then(res=>{
|
||
console.log(res,'handleStop')
|
||
message.success("停用成功");
|
||
record.status = 0;
|
||
}).catch(err=>{
|
||
message.destroy()
|
||
message.error(err.data.msg)
|
||
})
|
||
},
|
||
});
|
||
};
|
||
const handleOpen = (record) => {
|
||
dialog({
|
||
content: "确定启用该课程吗?",
|
||
ok: () => {
|
||
message.success("启用成功");
|
||
record.status = 1;
|
||
handle({ offcourseId: record.id, type: 2 });
|
||
},
|
||
});
|
||
};
|
||
const handleStart = (item, type) => {
|
||
console.log(item);
|
||
if (type === "1") {
|
||
return;
|
||
}
|
||
state.offcourseId = item.id;
|
||
state.newCourseName = item.name;
|
||
state.permissions = item.permissions;
|
||
// getTableDate3(1);
|
||
handleRestTable()
|
||
state.stm_hs = true;
|
||
};
|
||
|
||
const handelChangePage222 = (page, pageSize) => {
|
||
state.currentPage222 = page;
|
||
state.pageSize222 = pageSize;
|
||
getCourseStudentList();
|
||
};
|
||
const handelChangePage22 = (page, pageSize) => {
|
||
state.currentPage22 = page;
|
||
state.pageSize22 = pageSize;
|
||
// getTableDate33();
|
||
};
|
||
const handelChangePage2 = (page, pageSize) => {
|
||
state.currentPage2 = page;
|
||
state.pageSize2 = pageSize;
|
||
getTableDate3(1);
|
||
};
|
||
const handleSearchTable = () => {
|
||
console.log("handleSearchTable");
|
||
console.log(state.kk_inputV1);
|
||
console.log(state.kk_inputV2);
|
||
console.log(state.selectTime);
|
||
// state.pageSize222 = 10
|
||
// state.currentPage1 = 1
|
||
// getTableDate();
|
||
state.currentPage2 = 1;
|
||
getTableDate3();
|
||
};
|
||
const handleRestTable = () => {
|
||
state.kk_inputV0 = '';
|
||
state.kk_inputV1 = "";
|
||
state.kk_inputV2 = "";
|
||
state.selectTime = "";
|
||
state.currentPage2 = 1;
|
||
state.tableDataTotal2 = [];
|
||
// state.pageSize222 = 10
|
||
// state.currentPage1 = 1
|
||
// getTableDate();
|
||
getTableDate3();
|
||
};
|
||
|
||
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);
|
||
console.log(res.data.data);
|
||
state.filesList.push([res.data.data]);
|
||
|
||
// state.hasImgName = res.data.data;
|
||
}
|
||
});
|
||
return false;
|
||
};
|
||
|
||
// 管理开课
|
||
const handleGuan22 = (item) => {
|
||
console.log("点击面授课管理", item);
|
||
// if (String(item.courseform) === "1") {
|
||
// return;
|
||
// }
|
||
// if (String(item.courseform) === ("1" || "线上")) {
|
||
// state.om_1 = true;
|
||
// state.ft_1 = false;
|
||
// } else if (String(item.courseform) === ("2" || "面授")) {
|
||
// state.om_1 = true;
|
||
// state.ft_1 = true;
|
||
// }
|
||
state.om_1 = true;
|
||
state.ft_1 = true;
|
||
state.manageStuLoading = true;
|
||
state.permissions = item.permissions;
|
||
state.createId = item.createId;
|
||
console.log(787666, item);
|
||
state.faceClassification = item.contentTxt;
|
||
state.faceStatus = item.status;
|
||
state.currentFaceId = item.id;
|
||
getCourseStudentList();
|
||
state.newCourseName = item.name;
|
||
};
|
||
|
||
// 获取开课管理里的学员
|
||
function getCourseStudentList() {
|
||
console.log("开课管理学员搜索参数", {
|
||
pageNo: state.currentPage222,
|
||
pageSize: 10,
|
||
status: state.gl_selectV2,
|
||
studentName: state.gl_inputV2,
|
||
id: state.currentFaceId,
|
||
});
|
||
apis
|
||
.GetCourseStudent({
|
||
pageNo: state.currentPage222,
|
||
pageSize: 10,
|
||
status: state.gl_selectV2,
|
||
studentName: state.gl_inputV2,
|
||
id: state.currentFaceId,
|
||
})
|
||
.then((res) => {
|
||
console.log("获取开课管理学员信息", res);
|
||
// tableData3 tableDataTotal222 currentPage222 handelChangePage222
|
||
state.tableData3 = res.data.data.records;
|
||
state.tableDataTotal222 = res.data.data.total;
|
||
state.manageStuLoading = false;
|
||
})
|
||
.catch((err) => {
|
||
console.log(err);
|
||
state.manageStuLoading = false;
|
||
});
|
||
}
|
||
|
||
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.viewpowervisible = 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);
|
||
// handlePush("review");
|
||
/*
|
||
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_0();
|
||
rest();
|
||
getTableDate();
|
||
state.addLoading = false;
|
||
}
|
||
});
|
||
};
|
||
|
||
//授权
|
||
//权限名单
|
||
const showPrower = (record) => {
|
||
console.log("权限名单", record);
|
||
state.selectCourseId = record.offcourseId;
|
||
state.corpowerlistvisible = true;
|
||
};
|
||
//归属权
|
||
const showOwnPrower = (record) => {
|
||
console.log("归属权", record);
|
||
state.selectCourseId = record.offcourseId;
|
||
state.ownpowervisible = true;
|
||
};
|
||
//查看权
|
||
const showViewPrower = (record) => {
|
||
console.log("查看权", record);
|
||
state.selectCourseId = record.offcourseId;
|
||
state.authClassify = 1;
|
||
state.viewpowervisible = true;
|
||
};
|
||
//管理权
|
||
const showManagePrower = (record) => {
|
||
console.log("管理权", record);
|
||
state.selectCourseId = record.offcourseId;
|
||
state.shipType = 1;
|
||
state.authClassify = 2;
|
||
state.viewpowervisible = true;
|
||
};
|
||
//添加权限
|
||
watch(
|
||
() => state.addAuthList,
|
||
(res) => {
|
||
console.log("res", res, state.addAuthList);
|
||
if (state.authClassify === 1 || state.authClassify === 2) {
|
||
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.addAuthList,
|
||
(res) => {
|
||
console.log("res", res, state.addStudentList);
|
||
if (state.authClassify === 3) {
|
||
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 range = (start, end) => {
|
||
const result = [];
|
||
|
||
for (let i = start; i < end; i++) {
|
||
result.push(i);
|
||
}
|
||
|
||
return result;
|
||
};
|
||
const closeOnlineCoursevisible = () => {
|
||
console.log("执行");
|
||
getTableDate();
|
||
};
|
||
const disabledDate = (current) => {
|
||
// current && current < dayjs(state.xjkkinputV3[0])
|
||
};
|
||
|
||
const disabledDateTime = () => {
|
||
// const dateOnlyStart = new Date(state.xjkkinputV3[0].split(' ')[0]);
|
||
// const dateOnlyEnd = new Date(state.xjkkinputV3[1].split(' ')[0]);
|
||
// if(dateOnlyStart.getTime()==dateOnlyEnd.getTime()){
|
||
// const currentMinute = dayjs(state.xjkkinputV3[0]).minute();
|
||
// return {
|
||
// disabledHours: () => range(0, dayjs(state.xjkkinputV3[0]).hour()).splice(0, dayjs(state.xjkkinputV3[0]).hour()),
|
||
// disabledMinutes: () => range(0, currentMinute+1).splice(0, currentMinute+1),
|
||
// };
|
||
// }
|
||
};
|
||
|
||
function auditStudent(record) {
|
||
auditStudentStatus(record);
|
||
}
|
||
|
||
//二维码
|
||
const qrcodeVisible = (record, type) => {
|
||
// `${location.protocol}//${location.host}${import.meta.env.VUE_APP_BASE_API}/stu/project/redirectDetail?courseId=${record.id}`
|
||
state.codevisible = true;
|
||
let teacherNames = record.offteachers?.filter(teacher => teacher.teacherName !== null).map(teacher => teacher.teacherName);
|
||
state.codeInfo = {
|
||
title: type == 1 ? "【课程】二维码" : type == 2 ? "【签到】二维码" : "【评估】二维码",
|
||
name: record.name,
|
||
teacherName: teacherNames.length > 3 ? teacherNames.slice(0,3).join(',')+'...' : teacherNames.join(','),
|
||
url:
|
||
type == 1
|
||
? process.env.VUE_APP_BASE_API +
|
||
`/stu/project/redirectDetail?courseId=${record.id}`
|
||
: type == 2 ? process.env.VUE_APP_BASE_API +
|
||
`/admin/student/studentSign?taskId=${
|
||
record.id
|
||
}&taskType=${2}&type=${3}&openCourseId=${
|
||
record.id
|
||
}` : `${location.protocol}//${location.host}/student-h5/investigatpage?id=${record.id}&type=3&infoId=${record.id}&courseId=${record.assessmentId}&chapterOrStageId=0&level=${record.name}`,
|
||
titleTeacherName: moreLine(record.offteachers),
|
||
};
|
||
console.log("codeInfo", state.codeInfo, record);
|
||
state.codeIndex = 0;
|
||
state.codeType = type;
|
||
};
|
||
return {
|
||
...toRefs(state),
|
||
sysTypeOptions,
|
||
findClassFullName,
|
||
CourseModalRef,
|
||
auditStudent,
|
||
getdateToDateFn,
|
||
moment,
|
||
disabledDate,
|
||
disabledDateTime,
|
||
getdateToTimeFn,
|
||
handlePostSure,
|
||
handleDeleteKaike,
|
||
handleDel2,
|
||
handelEditStu,
|
||
handelGuan,
|
||
beforeUpload3,
|
||
handleSearchStu,
|
||
handleRestStu,
|
||
handelChangePage2,
|
||
handelChangePage22,
|
||
handelChangePage222,
|
||
handelChangePage3,
|
||
handleSearchTable,
|
||
handleRestTable,
|
||
handleSearchTable2,
|
||
handleSearchTable3,
|
||
reseatSearchTable3,
|
||
handleGuan22,
|
||
handleStart,
|
||
handleCopyP,
|
||
handleCopy,
|
||
handleSubmit,
|
||
handlePush,
|
||
handleStop,
|
||
handleOpen,
|
||
handleEdit,
|
||
handleDelete,
|
||
changevalue,
|
||
moreLine,
|
||
columns2,
|
||
columns4,
|
||
columns6,
|
||
columns7,
|
||
options1,
|
||
options11,
|
||
options2,
|
||
options3,
|
||
options4,
|
||
optionsUrl,
|
||
of_hShow,
|
||
of_exit1,
|
||
of_exit,
|
||
hideShow,
|
||
bs_hShow,
|
||
expectOnline,
|
||
createft,
|
||
ft_exit,
|
||
ft_exit_1,
|
||
ft_exit_0,
|
||
om_exit,
|
||
ckxq_hs,
|
||
durationText,
|
||
nums,
|
||
ftsr_exit,
|
||
stm_exit,
|
||
ft_exit_see,
|
||
handleTagChange,
|
||
handleTagClose,
|
||
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,
|
||
showDrawerAddTest,
|
||
showDrawerAddHomework,
|
||
editorRef,
|
||
valueHtml,
|
||
mode: "simple", // 或 'simple'
|
||
toolbarConfig,
|
||
editorConfig,
|
||
handleCreated,
|
||
handelChangePage1,
|
||
handleSearch1,
|
||
handleRest1,
|
||
showAssessment,
|
||
removePG,
|
||
getCheckedAss,
|
||
beforeUpload,
|
||
beforeUpload2,
|
||
handleDel,
|
||
checkPer,
|
||
checkOwner,
|
||
handleSucessStu,
|
||
handleRejectStu,
|
||
handleDeleteStu,
|
||
handlJoinStu,
|
||
handleOverStu,
|
||
onSelectChange7,
|
||
handleAllJion,
|
||
handleAllover,
|
||
handleAllSuc,
|
||
handleAllReject,
|
||
handleExportStu,
|
||
handleChangeTea1,
|
||
handelChangePageTea1,
|
||
handleChangeTea2,
|
||
handelChangePageTea2,
|
||
submitReview,
|
||
reviewClick,
|
||
showPrower,
|
||
showOwnPrower,
|
||
showViewPrower,
|
||
showManagePrower,
|
||
closeOnlineCoursevisible,
|
||
handlelookMs,
|
||
handleLook,
|
||
logW,
|
||
logT,
|
||
qrcodeVisible,
|
||
// timeChange,
|
||
editBeginClass,
|
||
|
||
onDateSelect,
|
||
onOkStart,
|
||
openStart,
|
||
onBlurStart,
|
||
onFocusStart,
|
||
// timeChangeEnd,
|
||
onDateEnd,
|
||
onOkEnd,
|
||
onFocusEnd,
|
||
openEnd,
|
||
onBlurEnd,
|
||
inputWeightChange,
|
||
totalWeightSum,
|
||
inputAdd,
|
||
inputRemove,
|
||
downStudent,
|
||
downPin
|
||
};
|
||
},
|
||
});
|
||
</script>
|
||
<style lang="scss">
|
||
.ant-tooltip-inner{
|
||
color: #000 !important;
|
||
}
|
||
.daochu {
|
||
width: 14px;
|
||
height: 14px;
|
||
background: url("../../assets/images/coursewareManage/export.png") no-repeat;
|
||
background-size: 100%;
|
||
margin-left: 8px;
|
||
cursor: pointer;
|
||
}
|
||
.ant-drawer-body{
|
||
padding: 0;
|
||
}
|
||
.ant-table-cell-fix-right {
|
||
width: 250px !important;
|
||
}
|
||
|
||
.addTimeBox {
|
||
position: relative;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.addTime {
|
||
position: absolute;
|
||
z-index: 10;
|
||
margin-left: 10px;
|
||
color: rgba(0, 0, 0, 0.4);
|
||
}
|
||
|
||
.ant-picker {
|
||
padding-left: 85px;
|
||
}
|
||
|
||
.ant-picker-range .ant-picker-active-bar {
|
||
margin-left: 85px;
|
||
}
|
||
}
|
||
|
||
.aeLoading {
|
||
z-index: 100000;
|
||
}
|
||
|
||
.courseManage {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: flex;
|
||
flex-direction: column;
|
||
position: relative;
|
||
|
||
.filter {
|
||
margin-left: 35px;
|
||
margin-right: 35px;
|
||
margin-top: 30px;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
flex-wrap: wrap;
|
||
|
||
.filterItems {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
|
||
.pathnameInp {
|
||
margin-right: 20px;
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
.select {
|
||
margin-right: 20px;
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
.addTimeBox {
|
||
position: relative;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
.addTime {
|
||
position: absolute;
|
||
z-index: 10;
|
||
margin-left: 10px;
|
||
color: rgba(0, 0, 0, 0.4);
|
||
}
|
||
|
||
.ant-picker {
|
||
padding-left: 85px;
|
||
}
|
||
|
||
.ant-picker-range .ant-picker-active-bar {
|
||
margin-left: 85px;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
padding: 0px 26px 0px 26px;
|
||
height: 38px;
|
||
background: #4ea6ff;
|
||
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: #ffffff;
|
||
line-height: 36px;
|
||
margin-left: 5px;
|
||
}
|
||
}
|
||
|
||
.btnn {
|
||
padding: 0px 26px 0px 26px;
|
||
height: 38px;
|
||
background: #4ea6ff;
|
||
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: #fff;
|
||
line-height: 36px;
|
||
margin-left: 5px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
.search {
|
||
width: 15px;
|
||
height: 17px;
|
||
background-image: url("../../assets/images/courseManage/search0.png");
|
||
}
|
||
}
|
||
.btn1:active {
|
||
background: #0982ff;
|
||
}
|
||
.btn2:active {
|
||
background: #0982ff;
|
||
}
|
||
.btn2 {
|
||
.search {
|
||
width: 16px;
|
||
height: 18px;
|
||
background-image: url("../../assets/images/courseManage/reset0.png");
|
||
}
|
||
|
||
.daochu {
|
||
width: 16px;
|
||
height: 18px;
|
||
background-image: url("../../assets/images/coursewareManage/export1.png");
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
.search {
|
||
background-image: url("../../assets/images/courseManage/search0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
/**
|
||
.btn1:active {
|
||
background: #0982ff;
|
||
}
|
||
|
||
.btn2 {
|
||
background: rgba(64, 158, 255, 0.1);
|
||
}
|
||
|
||
.btn2:active {
|
||
background: rgba(64, 158, 255, 0.2);
|
||
}*/
|
||
}
|
||
|
||
.btns {
|
||
display: flex;
|
||
|
||
// flex-wrap: wrap;
|
||
.btn {
|
||
padding: 0px 26px 0px 26px;
|
||
height: 38px;
|
||
background: #4ea6ff;
|
||
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: #ffffff;
|
||
line-height: 36px;
|
||
margin-left: 5px;
|
||
}
|
||
}
|
||
.btn3:active {
|
||
background: #0982ff;
|
||
}
|
||
.btn3 {
|
||
.search {
|
||
width: 17px;
|
||
height: 18px;
|
||
background-image: url("../../assets/images/courseManage/add0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.tableBox {
|
||
margin: 20px 38px 30px;
|
||
|
||
th {
|
||
background-color: #eff4fc !important;
|
||
text-align: center !important;
|
||
}
|
||
|
||
.ant-table-tbody
|
||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||
> td {
|
||
background: #f6f9fd;
|
||
}
|
||
|
||
.operation {
|
||
display: flex;
|
||
justify-content: right;
|
||
|
||
.fb {
|
||
display: flex;
|
||
margin-right: 20px;
|
||
|
||
.jc {
|
||
color: #4ea6ff;
|
||
font-size: 14px;
|
||
margin-left: 20px;
|
||
white-space: nowrap;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
}
|
||
|
||
.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: 879px;
|
||
height: 740px;
|
||
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%;
|
||
max-height: 700px;
|
||
overflow-y: auto;
|
||
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;
|
||
.teacher_input{
|
||
.ant-input-number{
|
||
width: 15%;
|
||
height: 40px !important;
|
||
border-radius: 8px !important;
|
||
border: 1px solid #C7CBD2 !important;
|
||
margin: 0 10px 0 10px;
|
||
padding-top: 3px;
|
||
}
|
||
.btn-add{
|
||
margin: 0 10px 0 10px;
|
||
}
|
||
.btn-circle{
|
||
text-align: center;
|
||
line-height: 100%;
|
||
margin-top: 5px;
|
||
.custom-icon{
|
||
font-size: 20px;
|
||
svg{
|
||
margin: auto;
|
||
}
|
||
}
|
||
span{
|
||
width: 100%;
|
||
height: 100%;
|
||
font-size: 33px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.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;
|
||
}
|
||
}
|
||
}
|
||
|
||
.items_fj {
|
||
margin-bottom: 1px;
|
||
|
||
.fujian {
|
||
display: none;
|
||
}
|
||
|
||
.mbl_items12 {
|
||
width: 440px;
|
||
margin-right: 56px;
|
||
|
||
.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: #4ea6ff;
|
||
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: #4ea6ff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.file_operation {
|
||
display: flex;
|
||
|
||
.fobox {
|
||
margin-right: 5px;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.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: #ffffff;
|
||
color: #4ea6ff;
|
||
}
|
||
|
||
.btn3 {
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
color: #4ea6ff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.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, 1);
|
||
border-radius: 8px;
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
color: #fff;
|
||
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: #fff;
|
||
line-height: 36px;
|
||
margin-left: 5px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
.search {
|
||
width: 15px;
|
||
height: 17px;
|
||
background-image: url("@/assets/images/coursewareManage/search1.png");
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
background: rgba(64, 158, 255, 1);
|
||
|
||
.search {
|
||
background-image: url("@/assets/images/coursewareManage/search0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
.btn2 {
|
||
.search {
|
||
width: 16px;
|
||
height: 18px;
|
||
margin-right: 6px;
|
||
background-image: url("../../assets/images/courseManage/reset0.png");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.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 {
|
||
margin-top: 10px;
|
||
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;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.m_footer {
|
||
display: flex;
|
||
margin: 20px 0;
|
||
|
||
.fotnam {
|
||
width: 100px;
|
||
display: flex;
|
||
justify-content: end;
|
||
padding-right: 15px;
|
||
}
|
||
|
||
.fotarea {
|
||
width: calc(100% - 150px);
|
||
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 {
|
||
background: #4ea6ff;
|
||
|
||
.search {
|
||
background-image: url("@/assets/images/coursewareManage/search0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
.btn2 {
|
||
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 {
|
||
.modalHeader {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding-top: 10px;
|
||
background: linear-gradient(180deg, rgba(103, 64, 255, 0.2) 0%, rgba(166, 168, 255, 0) 100%) !important;
|
||
.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%;
|
||
|
||
.tableBox {
|
||
margin: 20px 38px 30px;
|
||
|
||
th {
|
||
background-color: #eff4fc !important;
|
||
text-align: center !important;
|
||
}
|
||
|
||
.ant-table-tbody
|
||
> tr:hover:not(.ant-table-expanded-row):not(
|
||
.ant-table-row-selected
|
||
)
|
||
> td {
|
||
background: #f6f9fd;
|
||
}
|
||
|
||
.operation {
|
||
display: flex;
|
||
justify-content: right;
|
||
|
||
.fb {
|
||
display: flex;
|
||
margin-right: 20px;
|
||
|
||
.jc {
|
||
color: #4ea6ff;
|
||
font-size: 14px;
|
||
margin-left: 20px;
|
||
white-space: nowrap;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
}
|
||
|
||
.ynuse {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
|
||
.use {
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
}
|
||
|
||
.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;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
padding: 0px 26px 0px 26px;
|
||
height: 38px;
|
||
background: #4ea6ff;
|
||
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: #ffffff;
|
||
line-height: 36px;
|
||
margin-left: 5px;
|
||
}
|
||
}
|
||
|
||
.btnn {
|
||
padding: 0px 26px 0px 26px;
|
||
height: 38px;
|
||
background: #4ea6ff;
|
||
border-radius: 8px;
|
||
border: 1px solid rgba(64, 158, 255, 1);
|
||
color: #fff;
|
||
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: #fff;
|
||
line-height: 36px;
|
||
margin-left: 5px;
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
.search {
|
||
width: 15px;
|
||
height: 17px;
|
||
background-image: url("../../assets/images/courseManage/search0.png");
|
||
}
|
||
}
|
||
|
||
.btn2 {
|
||
.search {
|
||
width: 16px;
|
||
height: 18px;
|
||
background-image: url("../../assets/images/courseManage/reset0.png");
|
||
}
|
||
}
|
||
|
||
.btn1 {
|
||
.search {
|
||
background-image: url("../../assets/images/courseManage/search0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
|
||
.btns {
|
||
display: flex;
|
||
|
||
// flex-wrap: wrap;
|
||
.btn {
|
||
padding: 0px 21px 0px 21px;
|
||
height: 38px;
|
||
background: #4ea6ff;
|
||
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: #ffffff;
|
||
line-height: 36px;
|
||
margin-left: 5px;
|
||
}
|
||
|
||
.btn2 {
|
||
margin-right: 0px;
|
||
|
||
.img2 {
|
||
width: 17px;
|
||
height: 18px;
|
||
background-image: url(../../assets/images/coursewareManage/export1.png);
|
||
}
|
||
}
|
||
}
|
||
|
||
.btn3 {
|
||
.search {
|
||
width: 17px;
|
||
height: 18px;
|
||
background-image: url("../../assets/images/courseManage/add0.png");
|
||
}
|
||
|
||
.btnText {
|
||
color: #ffffff;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
.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;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.tableBox {
|
||
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: #eff4fc !important;
|
||
}
|
||
|
||
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: right;
|
||
|
||
.fb {
|
||
display: flex;
|
||
margin-right: 20px;
|
||
|
||
.jc {
|
||
color: #4ea6ff;
|
||
font-size: 14px;
|
||
margin-left: 20px;
|
||
white-space: nowrap;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
}
|
||
|
||
.tableBox {
|
||
.pa {
|
||
left: 0;
|
||
width: 100%;
|
||
// height: 20px;
|
||
// background-color: red;
|
||
display: flex;
|
||
justify-content: center;
|
||
position: absolute;
|
||
bottom: 20px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.stusmanageModal {
|
||
.ant-modal {
|
||
max-width: 1800px;
|
||
|
||
.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 40px;
|
||
|
||
.stmm_i1,
|
||
.stmm_i2,
|
||
.stmm_i3,
|
||
.stmm_i4 {
|
||
margin: 19px 0;
|
||
}
|
||
|
||
.stmm_i5 {
|
||
// display: flex;
|
||
// justify-content: space-between;
|
||
// margin-right: 6px;
|
||
}
|
||
|
||
.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 {
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
color: #999ba3;
|
||
line-height: 36px;
|
||
padding: 5px 16px;
|
||
background-color: #eff4fc !important;
|
||
}
|
||
|
||
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;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.tableShow2 {
|
||
display: inline-block;
|
||
}
|
||
.tableHiddle2 {
|
||
display: none;
|
||
}
|
||
}
|
||
|
||
.tag-content {
|
||
.ant-tag {
|
||
margin-top: 10px;
|
||
}
|
||
}
|
||
|
||
.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;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// 选择评估
|
||
.main_item {
|
||
display: flex;
|
||
align-items: center;
|
||
margin-top: 32px;
|
||
margin-bottom: 32px;
|
||
|
||
.signbox {
|
||
width: 120px;
|
||
display: flex;
|
||
justify-content: end;
|
||
align-items: center;
|
||
|
||
.sign {
|
||
margin-right: 5px;
|
||
}
|
||
}
|
||
|
||
.btnbox {
|
||
display: flex;
|
||
flex: 1;
|
||
align-items: center;
|
||
|
||
.xkbtn {
|
||
cursor: pointer;
|
||
width: 130px;
|
||
height: 40px;
|
||
background: #4ea6ff;
|
||
border-radius: 8px;
|
||
border: 0;
|
||
margin-right: 8px;
|
||
color: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.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;
|
||
}
|
||
|
||
// statusJuJue
|
||
.statusJuJue {
|
||
margin-bottom: 20px;
|
||
}
|
||
|
||
.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;
|
||
}
|
||
}
|
||
}
|
||
|
||
// ::v-deep .w-e-toolbar {
|
||
// .w-e-bar-item {
|
||
// &:nth-child(23) {
|
||
// display: none !important;
|
||
// }
|
||
// }
|
||
// }
|
||
</style>
|