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

View File

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

View File

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

View File

@@ -113,24 +113,6 @@
></NameInput> ></NameInput>
</div> </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
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="cstm_items">
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
@@ -173,6 +155,48 @@
></ProjectManager> ></ProjectManager>
</div> </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
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="cstm_items">
<div class="signbox"> <div class="signbox">
<span style="margin-right: 3px">考勤设置</span> <span style="margin-right: 3px">考勤设置</span>

View File

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

View File

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

View File

@@ -43,7 +43,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="search"> <div class="search" v-if="data?.length">
<div class="leftchoose"> <div class="leftchoose">
<div class="namecon" style="margin-right: 30px"> <div class="namecon" style="margin-right: 30px">
<div class="name">姓名</div> <div class="name">姓名</div>
@@ -81,7 +81,7 @@
</div> </div>
</div> </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 <div
class="btn btn1" class="btn btn1"
style="margin-right: 20px" style="margin-right: 20px"
@@ -89,6 +89,14 @@
> >
<div class="wz">签到二维码</div> <div class="wz">签到二维码</div>
</div> </div>
<div
class="btn btn1"
style="margin-right: 20px"
v-if="data[coursePlanIndex]?.assessmentId"
@click="qrcodeAssement()"
>
<div class="wz">评估二维码</div>
</div>
<div <div
class="btn btn1" class="btn btn1"
style="margin-right: 20px" style="margin-right: 20px"
@@ -119,9 +127,13 @@
<div class="btn btn1" @click="batchSign" style="margin-right: 20px"> <div class="btn btn1" @click="batchSign" style="margin-right: 20px">
<div class="wz">批量签到</div> <div class="wz">批量签到</div>
</div> </div>
<div class="btn btn1" @click="exportTaskStu"> <div class="btn btn1" @click="exportTaskStu" style="margin-right: 20px">
<div class="img2"></div> <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> </div>
<div class="tableBox" style="margin-top: 30px"> <div class="tableBox" style="margin-top: 30px">
@@ -151,6 +163,7 @@ import {useRequest} from "@/api/request";
import CommonImport from "@/components/common/CommonImport"; import CommonImport from "@/components/common/CommonImport";
import CommonStudent from "@/components/student/CommonStudent"; import CommonStudent from "@/components/student/CommonStudent";
import dayjs from "dayjs"; import dayjs from "dayjs";
import {delStudentList} from "@/api/index1";
const coursePlanIndex = ref(0); const coursePlanIndex = ref(0);
const tableRef = ref(); const tableRef = ref();
@@ -291,6 +304,19 @@ const columns = ref([
<a-radio checked={text.record.leaveStatus} onClick={() => stuSign(text)}>请假</a-radio> <a-radio checked={text.record.leaveStatus} onClick={() => stuSign(text)}>请假</a-radio>
</div> </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); const { data = [], loading, fetchData } = useRequest(COURSE_PLAN_LIST, planParams, false);
@@ -309,6 +335,11 @@ const ChoiceCourse = (n) => {
tableRef.value.fetch(); tableRef.value.fetch();
}; };
const removeStu=(id)=> dialog({
content: "确定删除该学员吗?",
ok: () => delStudentList({ ids: [id] }).then(() => fetchData())
})
const closeDrawer = () => emit("update:FSvisible", false); const closeDrawer = () => emit("update:FSvisible", false);
//批量签到 //批量签到
const batchSign = () => { 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`); 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) { function afterVisibleChange(bool) {
bool && fetchData() 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) => { const change = (e) => {
console.log(e) console.log(e)
if(e==="end"){ if(e==="end"){

View File

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