--fix bug

This commit is contained in:
yuping
2023-05-11 21:45:25 +08:00
parent f04da8c5e9
commit 9416ae7158
8 changed files with 207 additions and 190 deletions

View File

@@ -37,19 +37,19 @@
:placeholder="[' 开始时间', ' 结束时间']" />
</div>
</div>
<!-- <div class="main_item">
<div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<span style="margin-right: 3px">活动时长</span>
<span style="margin-right: 3px">持续时间</span>
</div>
<div class="btnbox">
<a-input-number :min="0" :max="999999" :precision="0" style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="formData.activityDuration" />
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
</div> -->
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">

View File

@@ -52,19 +52,19 @@
valueFormat="YYYY-MM-DD HH:mm" @change="timeChange" :placeholder="[' 开始时间', ' 结束时间']" />
</div>
</div>
<!-- <div class="main_item">
<div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<span style="margin-right: 3px">直播时长</span>
<span style="margin-right: 3px">持续时间</span>
</div>
<div class="btnbox">
<a-input-number :min="0" :max="999999" :precision="0" style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="formData.liveDuration"></a-input-number>
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
</div> -->
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">

View File

@@ -74,7 +74,7 @@ const columns = ref([
key: "type",
width: "100px",
align: "center",
customRender: ({ record: { type } }) => ({ 10: "微课", 21: "直播", 20: "录播", 30: "面授", 90: "混合" }[type]),
customRender: () => <span>在线课</span>,
},
{
title: "创建人",
@@ -83,13 +83,13 @@ const columns = ref([
width: "100px",
align: "center",
},
{
title: "时长",
dataIndex: "studyTime",
key: "studyTime",
width: "80px",
align: "center",
},
// {
// title: "时长",
// dataIndex: "studyTime",
// key: "studyTime",
// width: "80px",
// align: "center",
// },
{
title: "发布时间",
dataIndex: "publishTime",

View File

@@ -113,24 +113,6 @@
></NameInput>
</div>
</div>
<div class="cstm_items">
<div class="signbox">
<div class="sign">
</div>
<span style="margin-right: 3px">地点</span>
</div>
<div class="b_input">
<a-input
v-model:value="formData.address"
maxlength="50"
style="width: 88%; height: 40px; border-radius: 8px"
placeholder="请输入详细地点"
/>
<div class="inp_num" style="right: 90px">
<span style="color: #c7cbd2">{{ formData.address.length || 0 }}/50</span>
</div>
</div>
</div>
<div class="cstm_items">
<div class="signbox">
<div class="sign">
@@ -173,6 +155,48 @@
></ProjectManager>
</div>
</div>
<div class="cstm_items">
<div class="signbox">
<div class="sign">
</div>
<span style="margin-right: 3px">地点</span>
</div>
<div class="b_input">
<a-input
v-model:value="formData.address"
maxlength="50"
style="width: 88%; height: 40px; border-radius: 8px"
placeholder="请输入详细地点"
/>
<div class="inp_num" style="right: 90px">
<span style="color: #c7cbd2">{{ formData.address.length || 0 }}/50</span>
</div>
</div>
</div>
<div class="cstm_items">
<div class="signbox">
<div class="sign">
</div>
<span style="margin-right: 3px">持续时间</span>
</div>
<div class="b_input">
<a-input-number
:min="0"
:max="999999"
:precision="0"
placeholder="请输入持续时间"
style="
width: 88%;
height: 32px;
border-radius: 8px;
overflow: hidden;"
v-model:value="formData.duration"
></a-input-number>
<div class="inp_num" style="right: 96px;line-height: 12px">
<span style="color: #c7cbd2">分钟</span>
</div>
</div>
</div>
<div class="cstm_items">
<div class="signbox">
<span style="margin-right: 3px">考勤设置</span>

View File

@@ -307,7 +307,7 @@ export default {
state.CWvisible = true
}}
>
查看作业2
查看作业
</a-button>}
{value.examStatus===1 && <a-button
type="link"
@@ -317,7 +317,7 @@ export default {
state.CQvisible = true
}}
>
查看答卷3
查看答卷
</a-button>}
</div>)
);

View File

@@ -43,7 +43,7 @@
</div>
</div>
</div>
<div class="search">
<div class="search" v-if="data?.length">
<div class="leftchoose">
<div class="namecon" style="margin-right: 30px">
<div class="name">姓名</div>
@@ -81,7 +81,7 @@
</div>
</div>
</div>
<div class="btnss" style="margin-top: 20px" v-if="checkPer(permissions,createId)">
<div class="btnss" style="margin-top: 20px" v-if="checkPer(permissions,createId) && data?.length">
<div
class="btn btn1"
style="margin-right: 20px"
@@ -299,8 +299,8 @@ const columns = ref([
align: "center",
customRender: ({record:{workStatus,answerId,examinationScore,studentId}}) =>
<div style="display:flex;justify-content:center;">
<a class="opa" style={{color:examinationScore?'':'#666',marginRight:'12px'}} onClick={() =>examinationScore && showExamAnswer(answerId)}>查看答卷</a>
<a class="opa" style={{color:workStatus?'':'#666'}} onClick={() => workStatus && showCWvisible(studentId)}>查看作业</a>
{examinationScore?<a className="opa" style={{color: examinationScore ? '' : '#666', marginRight: '12px'}} onClick={() => examinationScore && showExamAnswer(answerId)}>查看答卷</a>:''}
{workStatus ? <a class="opa" style={{color:workStatus?'':'#666'}} onClick={() => workStatus && showCWvisible(studentId)}>查看作业</a>:''}
</div>
},
]);

View File

@@ -43,7 +43,7 @@
</div>
</div>
</div>
<div class="search">
<div class="search" v-if="data?.length">
<div class="leftchoose">
<div class="namecon" style="margin-right: 30px">
<div class="name">姓名</div>
@@ -81,7 +81,7 @@
</div>
</div>
</div>
<div class="btnss" style="margin-top: 20px" v-if="checkPer(permissions,createId)">
<div class="btnss" style="margin-top: 20px" v-if="checkPer(permissions,createId) && data?.length">
<div
class="btn btn1"
style="margin-right: 20px"
@@ -89,6 +89,14 @@
>
<div class="wz">签到二维码</div>
</div>
<div
class="btn btn1"
style="margin-right: 20px"
v-if="data[coursePlanIndex]?.assessmentId"
@click="qrcodeAssement()"
>
<div class="wz">评估二维码</div>
</div>
<div
class="btn btn1"
style="margin-right: 20px"
@@ -119,9 +127,13 @@
<div class="btn btn1" @click="batchSign" style="margin-right: 20px">
<div class="wz">批量签到</div>
</div>
<div class="btn btn1" @click="exportTaskStu">
<div class="btn btn1" @click="exportTaskStu" style="margin-right: 20px">
<div class="img2"></div>
<div class="wz">导出数据</div>
<div class="wz">导出签到数据</div>
</div>
<div class="btn btn1" @click="exportAssessment" v-if="data[coursePlanIndex]?.assessmentId">
<div class="img2"></div>
<div class="wz">导出评估数据</div>
</div>
</div>
<div class="tableBox" style="margin-top: 30px">
@@ -151,6 +163,7 @@ import {useRequest} from "@/api/request";
import CommonImport from "@/components/common/CommonImport";
import CommonStudent from "@/components/student/CommonStudent";
import dayjs from "dayjs";
import {delStudentList} from "@/api/index1";
const coursePlanIndex = ref(0);
const tableRef = ref();
@@ -291,6 +304,19 @@ const columns = ref([
<a-radio checked={text.record.leaveStatus} onClick={() => stuSign(text)}>请假</a-radio>
</div>
},
{
title: "操作",
ellipsis: true,
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 130,
align: "center",
customRender: (text) =>
<div class="opa">
<a className="opa" style={{color: '#666'}} onClick={()=>removeStu(text.record.id)}>删除</a>
</div>
},
]);
const { data = [], loading, fetchData } = useRequest(COURSE_PLAN_LIST, planParams, false);
@@ -309,6 +335,11 @@ const ChoiceCourse = (n) => {
tableRef.value.fetch();
};
const removeStu=(id)=> dialog({
content: "确定删除该学员吗?",
ok: () => delStudentList({ ids: [id] }).then(() => fetchData())
})
const closeDrawer = () => emit("update:FSvisible", false);
//批量签到
const batchSign = () => {
@@ -369,6 +400,8 @@ function exportTaskStu() {
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?type=3&pid=${offcoursePlanId.value}&thirdType=2`);
}
const exportAssessment = () =>window.open(`${process.env.VUE_APP_BASE_API}/admin/assessment/manage/exportAssessmentMessage?chapterId=${props.type === 1 ? props.datasource.stageId : props.datasource.chapterId}&type=${props.type}&pid=${props.type === 1 ? props.datasource.projectId : props.datasource.routerId}&courseId=${data.value[coursePlanIndex.value].assessmentId}&taskId=${props.datasource.id}&taskType=${props.datasource.type}`);
function afterVisibleChange(bool) {
bool && fetchData()
}
@@ -396,6 +429,14 @@ const qrcodeVisibleSign = () => {
});
};
const qrcodeAssement = () =>{
qrCode({
title: "【评估】二维码",
name: data.value[coursePlanIndex.value]?.assessmentName,
url: `${location.protocol}//${location.host}${process.env.VUE_APP_BASE_API}/student-h5/investigatpage?id=${data.value[coursePlanIndex.value]?.id}&type=3&infoId=${data.value[coursePlanIndex.value]?.id}&courseId=${data.value[coursePlanIndex.value].assessmentId}&chapterOrStageId=0`,
});
}
const change = (e) => {
console.log(e)
if(e==="end"){

View File

@@ -12,12 +12,8 @@
>
<div class="modalHeader">
<div class="headerLeft">
<img
style="width: 17px; height: 18px; margin-right: 8px"
src="@/assets/images/basicinfo/add.png"
/>
<span v-if="ft_eidt" class="headerLeftText">编辑面授课</span>
<span v-else class="headerLeftText"></span>
<span v-else class="headerLeftText">新建面授课</span>
</div>
<div style="margin-right: 57px; cursor: pointer">
<img
@@ -35,7 +31,6 @@
</div>
<div class="faceteach" :style="{ display: ft_hs ? 'block' : 'none' }">
<div class="ft_main">
<div class="m_title">课程信息</div>
<div class="m_body">
<div class="mb_left">
<div class="mbl_items">
@@ -133,21 +128,16 @@
align-items: center;
"
>
<img
v-for="(item, index) in optionsUrl"
:key="index"
class="choiceoptionurl"
:style="{
border:
pathBgId === item.id
? '3px solid rgba(78, 166, 255, 1)'
: '1px solid #ccc',
display: index >= 3 ? 'none' : 'flex',
}"
:src="item.value"
:alt="item.name"
@click="chooseImg(item)"
/>
<div v-for="(item, index) in optionsUrl"
:key="index"
class="choiceoptionurl"
:style="{
border:pathBgId === item.id? '3px solid rgba(78, 166, 255, 1)': '1px solid #ccc',
display: index >= 3 ? 'none' : 'flex',
background: `url(${item.value}) center center / 100% no-repeat`,
}"
@click="chooseImg(item)"
/>
<div
@click="showLearnBgMore"
class="learnBgItem learnBgMore"
@@ -306,137 +296,104 @@
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam" style="margin-bottom: 110px">
<span style="margin-right: 14px">课程价值</span>
</div>
<div class="item_inp">
<div class="i1_input">
<a-textarea
v-model:value="qdms_inputV3"
maxlength="200"
style="width: 440px; height: 140px; border-radius: 8px"
placeholder="请输入课程价值"
/>
<div class="inp_num" style="top: 110px">
<span style="color: #c7cbd2">
{{ qdms_inputV3.length }}/200
</span>
<div class="mbl_items">
<div class="item_nam" style="margin-top: 8px">
<div class="asterisk_icon">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt="asterisk"
/>
</div>
<span style="margin-right: 14px">课程简介</span>
</div>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">场景</span>
</div>
<div class="item_inp">
<div class="i1_input">
<a-input
v-model:value="chang_jin"
maxlength="50"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入场景"
/>
<div class="inp_num">
<span style="color: #c7cbd2">
{{ chang_jin.length }}/50
</span>
<div class="item_inp">
<div class="i10_textarea">
<a-textarea
v-model:value="qdms_inputV6"
:maxlength="200"
style="width: 440px; height: 100px; border-radius: 8px"
placeholder="请输入"/>
<div class="inp_num">
<span style="color: #c7cbd2">
{{ qdms_inputV6.length }}/200
</span>
</div>
</div>
</div>
</div>
</div>
<!-- <div class="item_inp">
<div class="select i7_input">
<a-select :getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
" v-model:value="chang_jin" dropdownClassName="dropdown-style" style="width: 440px" placeholder="请选择"
:options="options3" allowClear showSearch />
</div>
</div> -->
</div>
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">内容标签</span>
</div>
<div class="item_inp">
<div
style="cursor: pointer"
@click="handleTagChange"
>
<a-input
v-model:value="tags_val_single"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入内容标签按回车键添加内容标签,可添加多个内容标签。"
@pressEnter="handleTagChange"
/>
<img
style="width: 20px; height: 20px;margin-left: 20px; "
src="../../assets/images/courseManage/add1.png"
/>
</div>
<div class="tag-content">
<a-tag
v-for="(item, index) in tags_val"
:key="index"
closable
@close="handleTagClose(item)"
>
{{ item }}
</a-tag>
</div>
</div>
</div>
</div>
<div class="mb_right">
<!--
<div class="mbl_items">
<div class="item_nam" style="margin-top:5px;">
<div class="asterisk_icon">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="asterisk" />
</div>
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">内容标签</span>
</div>
<div class="item_inp">
<span style="margin-right: 14px">授课教师</span>
</div>
<div class="item_inp">
<div class="select" style="width:88%;">
<ProjectManager v-model:value="member.value" v-model:name="member.name" />
</div>
</div>
</div>
-->
<div class="mbl_items2">
<div class="item_nam" style="margin-top: 8px">
<div class="asterisk_icon">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt="asterisk"
/>
</div>
<span style="margin-right: 14px">课程简介</span>
<div
style="cursor: pointer"
@click="handleTagChange"
>
<a-input
v-model:value="tags_val_single"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入内容标签按回车键添加内容标签,可添加多个内容标签。"
@pressEnter="handleTagChange"
/>
<img
style="width: 20px; height: 20px;margin-left: 20px; "
src="../../assets/images/courseManage/add1.png"
/>
</div>
<div class="tag-content">
<a-tag
v-for="(item, index) in tags_val"
:key="index"
closable
@close="handleTagClose(item)"
>
{{ item }}
</a-tag>
</div>
</div>
</div>
<div class="item_inp">
<div class="i10_textarea">
<a-textarea
v-model:value="qdms_inputV6"
maxlength="150"
style="width: 440px; height: 100px; border-radius: 8px"
placeholder="请输入"
/>
<div class="inp_num">
<span style="color: #c7cbd2">
{{ qdms_inputV6.length }}/150
</span>
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">场景</span>
</div>
<div class="item_inp">
<div class="i1_input">
<a-textarea
v-model:value="chang_jin"
:maxlength="200"
style="width: 440px; height: 80px; border-radius: 8px"
placeholder="请输入场景"/>
<div class="inp_num">
<span style="color: #c7cbd2"> {{ chang_jin.length }}/200 </span>
</div>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam" style="margin-bottom: 110px">
<span style="margin-right: 14px">课程价值</span>
</div>
<div class="item_inp">
<div class="i1_input">
<a-textarea
v-model:value="qdms_inputV3"
:maxlength="200"
style="width: 440px; height: 140px; border-radius: 8px"
placeholder="请输入课程价值"/>
<div class="inp_num" style="top: 110px">
<span style="color: #c7cbd2">{{ qdms_inputV3.length }}/200</span>
</div>
</div>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam" style="margin-top: 8px">
<span style="margin-right: 10px">附件</span>
@@ -515,11 +472,8 @@
:key="item.id"
class="learnBgItem"
:style="{
border:
pathBgId === item.id
? '3px solid rgba(78, 166, 255, 1)'
: '1px solid #ccc',
'background-image': 'url(' + item.value + ')',
border: pathBgId === item.id? '3px solid rgba(78, 166, 255, 1)' : '1px solid #ccc',
'background': `url(${item.value}) center center / 100% no-repeat`,
}"
>
<!-- <img class="im" :src="item.source" /> -->
@@ -1568,8 +1522,6 @@ export default defineComponent({
width: 100px;
height: 100px;
background-size: 100%;
background-repeat: no-repeat;
// margin-bottom: 20px;
margin-right: 6px;
}