feat:合并

This commit is contained in:
lixg
2022-12-20 15:59:59 +08:00
11 changed files with 2908 additions and 2877 deletions

View File

@@ -317,6 +317,7 @@ export default {
textV2: "", textV2: "",
radioV1: "", radioV1: "",
time: "", time: "",
isClick: false
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addactiveVisible", false); ctx.emit("update:addactiveVisible", false);
@@ -464,6 +465,13 @@ export default {
return message.warning("请输入活动地址"); return message.warning("请输入活动地址");
} }
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
let obj = { let obj = {
activityAddress: state.inputV3, //活动地址 activityAddress: state.inputV3, //活动地址
activityDuration: state.inputV2, //活动时长 activityDuration: state.inputV2, //活动时长
@@ -489,10 +497,12 @@ export default {
ctx.emit("changeData", false); ctx.emit("changeData", false);
message.destroy(); message.destroy();
message.success("更新成功"); message.success("更新成功");
state.isClick = false;
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error("更新失败"); message.error("更新失败");
state.isClick = false;
}); });
} else { } else {
//新建活动信息 //新建活动信息
@@ -504,10 +514,12 @@ export default {
closeDrawer(); closeDrawer();
await updateTask(res); await updateTask(res);
ctx.emit("changeData", false); ctx.emit("changeData", false);
state.isClick = false;
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error("创建失败"); message.error("创建失败");
state.isClick = false;
}); });
} }
}; };

View File

@@ -171,6 +171,7 @@ export default {
time: undefined, time: undefined,
caseId: null, caseId: null,
caseName: "", caseName: "",
isClick: false
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addcaseVisible", false); ctx.emit("update:addcaseVisible", false);
@@ -279,6 +280,12 @@ export default {
message.destroy(); message.destroy();
return message.warning("请先选中关卡"); return message.warning("请先选中关卡");
} }
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
for (let i = 0; i < state.apiTaskList.length; i++) { for (let i = 0; i < state.apiTaskList.length; i++) {
RouterEditTask({ RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
@@ -293,12 +300,20 @@ export default {
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.addLoading = false; state.addLoading = false;
state.isClick = false;
}) })
.catch(() => { .catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`); message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
state.isClick = false;
}); });
} }
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
for (let i = 0; i < state.apiTaskList.length; i++) { for (let i = 0; i < state.apiTaskList.length; i++) {
apiTask apiTask
.addTask({ .addTask({
@@ -314,13 +329,21 @@ export default {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.isClick = false;
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}任务失败`); message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
state.isClick = false;
}); });
} }
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
for (let i = 0; i < state.apiTaskList.length; i++) { for (let i = 0; i < state.apiTaskList.length; i++) {
apiTask apiTask
.addTaskTemplate({ .addTaskTemplate({
@@ -336,10 +359,12 @@ export default {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.isClick = false;
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}任务失败`); message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
state.isClick = false;
}); });
} }
} }

View File

@@ -495,6 +495,7 @@ export default {
innerPersion: false, innerPersion: false,
outPersion: false, outPersion: false,
assessmentName: null, assessmentName: null,
isClick: false
}); });
const clear = () => { const clear = () => {
state.courseName = ""; state.courseName = "";
@@ -643,6 +644,12 @@ export default {
message.destroy(); message.destroy();
return message.warning("请输入必填字段"); return message.warning("请输入必填字段");
} else { } else {
if(state.isClick){
message.destroy();
message.error("请勿频繁点击")
return
}
state.isClick = true;
let type = state.onlySign ? "1," : "0,"; let type = state.onlySign ? "1," : "0,";
let t = state.completeLeave ? "1" : "0"; let t = state.completeLeave ? "1" : "0";
let p = state.innerPersion ? "1," : "0,"; let p = state.innerPersion ? "1," : "0,";
@@ -681,10 +688,12 @@ export default {
// message.success(`添加成功`); // message.success(`添加成功`);
await updateTask(res); await updateTask(res);
ctx.emit("changeData", false); ctx.emit("changeData", false);
state.isClick = false;
closeDrawer(); closeDrawer();
}) })
.catch((e) => { .catch((e) => {
console.log(e); console.log(e);
state.isClick = false;
message.destroy(); message.destroy();
message.error(`添加失败`); message.error(`添加失败`);
}); });

View File

@@ -194,6 +194,7 @@ export default {
const state = reactive({ const state = reactive({
addLoading: false, addLoading: false,
workEnclosureAddress: "", workEnclosureAddress: "",
isClick: false
}); });
const formRef = ref(); const formRef = ref();
@@ -364,29 +365,47 @@ export default {
workName: formState.workName, workName: formState.workName,
workRequirement: formState.workRequirement, workRequirement: formState.workRequirement,
}; };
if (props.EditWorkId > 0) { if (props.EditWorkId > 0) {
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
updateWorkTaskUsing(obj) updateWorkTaskUsing(obj)
.then(async (res) => { .then(async (res) => {
// console.log("添加成功", res); // console.log("添加成功", res);
await updateTask(res); await updateTask(res);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.isClick = false;
}) })
.catch((err) => { .catch((err) => {
message.destroy(); message.destroy();
message.error(`添加失败${err}`); message.error(`添加失败${err}`);
state.isClick = false;
}); });
} else { } else {
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
createWorkTask(obj) createWorkTask(obj)
.then(async (res) => { .then(async (res) => {
console.log("添加成功", res); console.log("添加成功", res);
await updateTask(res); await updateTask(res);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.isClick = false;
}) })
.catch((err) => { .catch((err) => {
message.destroy(); message.destroy();
message.error(`添加失败${err}`); message.error(`添加失败${err}`);
state.isClick = false;
}); });
} }
}; };

View File

@@ -1,30 +1,18 @@
<template> <template>
<a-drawer <a-drawer :visible="addinvistVisible" class="drawerStyle addinvistDrawer" width="70%" title="添加评估" placement="right"
:visible="addinvistVisible" @after-visible-change="afterVisibleChange">
class="drawerStyle addinvistDrawer"
width="70%"
title="添加评估"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div v-if="edit" class="headerTitle">编辑评估</div> <div v-if="edit" class="headerTitle">编辑评估</div>
<div v-else class="headerTitle">添加评估</div> <div v-else class="headerTitle">添加评估</div>
<img <img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
style="width: 29px; height: 29px; cursor: pointer" @click="closeDrawer" />
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div> </div>
<div class="contentMain"> <div class="contentMain">
<div class="main"> <div class="main">
<div class="main_left"> <div class="main_left">
<AssessmentAll <AssessmentAll v-model:assessmentVisible="assessmentVisible" v-model:assessmentId="assessmentId"
v-model:assessmentVisible="assessmentVisible" v-model:assessmentName="assessmentName" />
v-model:assessmentId="assessmentId"
v-model:assessmentName="assessmentName"
/>
</div> </div>
</div> </div>
</div> </div>
@@ -117,6 +105,7 @@ export default {
assessment1: null, assessment1: null,
assessmentVisible: false, assessmentVisible: false,
titleTag: false, titleTag: false,
isClick: false
}); });
// const getCheckedAss = (ass) => { // const getCheckedAss = (ass) => {
// state.assessmentId = ass.assessmentId; // state.assessmentId = ass.assessmentId;
@@ -165,6 +154,12 @@ export default {
message.destroy(); message.destroy();
return message.warning("请先选中关卡"); return message.warning("请先选中关卡");
} }
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
IsExistence({ IsExistence({
chapterId: Number(props.isactive), chapterId: Number(props.isactive),
courseTaskId: l_data_id, courseTaskId: l_data_id,
@@ -186,6 +181,7 @@ export default {
} }
message.destroy(); message.destroy();
message.warning("评估(" + tipStr + ")重复添加"); message.warning("评估(" + tipStr + ")重复添加");
state.isClick = false;
return; return;
} else { } else {
RouterEditTask({ RouterEditTask({
@@ -204,17 +200,26 @@ export default {
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.addLoading = false; state.addLoading = false;
state.isClick = false;
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`); message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
state.isClick = false;
}); });
} }
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
state.isClick = false;
}); });
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
IsExistenceProject({ IsExistenceProject({
courseTaskId: l_data_id, courseTaskId: l_data_id,
projectId: props.projectId, projectId: props.projectId,
@@ -236,6 +241,7 @@ export default {
} }
message.destroy(); message.destroy();
message.warning("评估(" + tipStr + ")重复添加"); message.warning("评估(" + tipStr + ")重复添加");
state.isClick = false;
return; return;
} else { } else {
apiTask apiTask
@@ -251,20 +257,29 @@ export default {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.isClick = false;
}) })
.catch(() => { .catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}任务失败`); message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
state.isClick = false;
}); });
} }
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
state.isClick = false;
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
IsExistenceProjectTemplate({ IsExistenceProjectTemplate({
courseTaskId: l_data_id, courseTaskId: l_data_id,
projectTemplateId: props.projectTemplateId, projectTemplateId: props.projectTemplateId,
stageId: props.chooseStageId || 0, templateStageId: props.chooseStageId || 0,
type: 11, type: 11,
}).then((res) => { }).then((res) => {
console.log(res); console.log(res);
@@ -281,6 +296,7 @@ export default {
} }
message.destroy(); message.destroy();
message.warning("评估(" + tipStr + ")重复添加"); message.warning("评估(" + tipStr + ")重复添加");
state.isClick = false;
return; return;
} else { } else {
addTempTask({ addTempTask({
@@ -296,10 +312,12 @@ export default {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.isClick = false;
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}任务失败`); message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
state.isClick = false;
}); });
} }
}); });
@@ -320,6 +338,7 @@ export default {
.ant-table-striped :deep(.table-striped) td { .ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important; background-color: #fafafa !important;
} }
.addinvistDrawer { .addinvistDrawer {
.drawerMain { .drawerMain {
.header { .header {
@@ -328,6 +347,7 @@ export default {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.headerTitle { .headerTitle {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
@@ -336,12 +356,15 @@ export default {
margin-left: 24px; margin-left: 24px;
} }
} }
.contentMain { .contentMain {
.main { .main {
width: 100%; width: 100%;
.main_left { .main_left {
padding-right: 30px; padding-right: 30px;
margin-top: 32px; margin-top: 32px;
.main_item { .main_item {
display: flex; display: flex;
align-items: center; align-items: center;
@@ -349,6 +372,7 @@ export default {
.fi_input { .fi_input {
margin-right: 20px; margin-right: 20px;
} }
.btns { .btns {
margin-right: 20px; margin-right: 20px;
padding: 0px 26px 0px 26px; padding: 0px 26px 0px 26px;
@@ -362,12 +386,14 @@ export default {
margin-right: 14px; margin-right: 14px;
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
.search { .search {
width: 15px; width: 15px;
height: 17px; height: 17px;
background-image: url("../../assets/images/courseManage/search0.png"); background-image: url("../../assets/images/courseManage/search0.png");
background-size: 100% 100%; background-size: 100% 100%;
} }
.btnText { .btnText {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
@@ -376,6 +402,7 @@ export default {
margin-left: 5px; margin-left: 5px;
} }
} }
.btnsn { .btnsn {
padding: 0px 26px 0px 26px; padding: 0px 26px 0px 26px;
height: 38px; height: 38px;
@@ -388,12 +415,14 @@ export default {
margin-right: 14px; margin-right: 14px;
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
.search { .search {
width: 16px; width: 16px;
height: 18px; height: 18px;
background-image: url("../../assets/images/courseManage/reset1.png"); background-image: url("../../assets/images/courseManage/reset1.png");
background-size: 100% 100%; background-size: 100% 100%;
} }
.btnText { .btnText {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
@@ -403,6 +432,7 @@ export default {
} }
} }
} }
.main_notice { .main_notice {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -410,16 +440,20 @@ export default {
margin-bottom: 3px; margin-bottom: 3px;
height: 40px; height: 40px;
background-color: #e9f6fe; background-color: #e9f6fe;
.mntc_left { .mntc_left {
display: flex; display: flex;
align-items: center; align-items: center;
.title { .title {
color: rgba(0, 0, 0, 0.65); color: rgba(0, 0, 0, 0.65);
margin-right: 17px; margin-right: 17px;
} }
.data { .data {
color: #4ea6ff; color: #4ea6ff;
} }
.notice_icon { .notice_icon {
width: 14px; width: 14px;
height: 14px; height: 14px;
@@ -429,6 +463,7 @@ export default {
background-size: 100% 100%; background-size: 100% 100%;
} }
} }
.mntc_right { .mntc_right {
cursor: pointer; cursor: pointer;
} }
@@ -447,6 +482,7 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 { .btn1 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -456,6 +492,7 @@ export default {
background-color: #fff; background-color: #fff;
cursor: pointer; cursor: pointer;
} }
.btn2 { .btn2 {
cursor: pointer; cursor: pointer;
width: 100px; width: 100px;

View File

@@ -485,6 +485,7 @@ export default {
switchC2: false, switchC2: false,
assessmentVisible: false, assessmentVisible: false,
assessmentName: "", assessmentName: "",
isClick: false
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addliveVisible", false); ctx.emit("update:addliveVisible", false);
@@ -699,6 +700,13 @@ export default {
message.destroy(); message.destroy();
return message.warning("请输入直播公告"); return message.warning("请输入直播公告");
} }
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
const regular = /^[+]{0,1}(\d+)$/; const regular = /^[+]{0,1}(\d+)$/;
if (!regular.test(state.inputV2)) { if (!regular.test(state.inputV2)) {
message.destroy(); message.destroy();
@@ -749,9 +757,11 @@ export default {
message.success("提交成功"); message.success("提交成功");
closeDrawer(); closeDrawer();
await updateTask(res); await updateTask(res);
state.isClick = false;
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
state.isClick = false;
}); });
} else { } else {
api api
@@ -761,8 +771,11 @@ export default {
message.success("提交成功"); message.success("提交成功");
await updateTask(res); await updateTask(res);
closeDrawer(); closeDrawer();
state.isClick = false;
}) })
.catch(() => {}); .catch(() => {
state.isClick = false;
});
} }
}; };
const beforeUpload = (file) => { const beforeUpload = (file) => {

View File

@@ -1,21 +1,12 @@
<template> <template>
<a-drawer <a-drawer :visible="addonlineVisible" class="drawerStyle addonlineDrawer" width="80%" title="添加在线" placement="right"
:visible="addonlineVisible" @after-visible-change="afterVisibleChange">
class="drawerStyle addonlineDrawer"
width="80%"
title="添加在线"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div v-if="edit" class="headerTitle">编辑在线</div> <div v-if="edit" class="headerTitle">编辑在线</div>
<div v-else class="headerTitle">添加在线</div> <div v-else class="headerTitle">添加在线</div>
<img <img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
style="width: 29px; height: 29px; cursor: pointer" @click="closeDrawer" />
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div> </div>
<div class="contentMain"> <div class="contentMain">
<div class="main_items"> <div class="main_items">
@@ -23,17 +14,12 @@
<div class="mii_ipt"> <div class="mii_ipt">
<div class="ipt_name"></div> <div class="ipt_name"></div>
<div class="fi_input"> <div class="fi_input">
<a-input <a-input v-model:value="inputV1" style="
v-model:value="inputV1"
style="
width: 280px; width: 280px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
padding-right: 49px; padding-right: 49px;
" " placeholder="请输入课程名称" maxlength="20" />
placeholder="请输入课程名称"
maxlength="20"
/>
<div class="inp_num" style="position: absolute; right: 7px"> <div class="inp_num" style="position: absolute; right: 7px">
<span style="color: #c7cbd2"> <span style="color: #c7cbd2">
@@ -93,37 +79,23 @@
<!-- 编辑的表格 --> <!-- 编辑的表格 -->
<div> <div>
<div> <div>
<a-table <a-table class="ant-table-striped" :row-class-name="
class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null) (_record, index) => (index % 2 === 1 ? 'table-striped' : null)
" " :row-selection="{
:row-selection="{
type: 'radio', type: 'radio',
selectedRowKeys: selectedRowKeys, selectedRowKeys: selectedRowKeys,
onChange: onSelectChange, onChange: onSelectChange,
}" }" :columns="tableDataFunc()" :data-source="tableData" :loading="tableDataTotal === -1 ? true : false"
:columns="tableDataFunc()" :pagination="false" />
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
/>
<div class="tableBox" style="margin-top:85px;"> <div class="tableBox" style="margin-top:85px;">
<div class="pa"> <div class="pa">
<a-pagination <a-pagination v-if="tableDataTotal > 10" :showSizeChanger="false" showQuickJumper="true"
v-if="tableDataTotal > 10" hideOnSinglePage="true" :pageSize="pageSize" :current="currentPage" :total="tableDataTotal"
:showSizeChanger="false" class="pagination" @change="handelChangePage" />
showQuickJumper="true" </div>
hideOnSinglePage="true" </div>
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
@change="handelChangePage"
/>
</div> </div>
</div> </div>
</div></div>
<!-- <div v-else> <!-- <div v-else>
<a-table <a-table
class="ant-table-striped" class="ant-table-striped"
@@ -260,6 +232,7 @@ export default {
pageSize: 10, pageSize: 10,
choicecourse: true, choicecourse: true,
ddLoading: false, ddLoading: false,
isClick: false
}); });
const ChoiceCourse = () => { const ChoiceCourse = () => {
state.choicecourse = false; state.choicecourse = false;
@@ -483,6 +456,12 @@ export default {
l_data_id.push(item["courseId"]); l_data_id.push(item["courseId"]);
}); });
console.log("需要查询的在线课ID", l_data_id); console.log("需要查询的在线课ID", l_data_id);
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
IsExistence({ IsExistence({
chapterId: Number(props.isactive), chapterId: Number(props.isactive),
courseTaskId: l_data_id, courseTaskId: l_data_id,
@@ -503,6 +482,7 @@ export default {
} }
message.destroy(); message.destroy();
message.warning("在线课" + tipStr + "重复添加"); message.warning("在线课" + tipStr + "重复添加");
state.isClick = false;
state.addLoading = false; state.addLoading = false;
return; return;
} else { } else {
@@ -526,6 +506,7 @@ export default {
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.addLoading = false; state.addLoading = false;
state.isClick = false;
}) })
.catch(() => { .catch(() => {
state.addLoading = false; state.addLoading = false;
@@ -533,12 +514,14 @@ export default {
message.error( message.error(
`${props.edit ? "编辑" : "新增"}关卡任务失败` `${props.edit ? "编辑" : "新增"}关卡任务失败`
); );
state.isClick = false;
}); });
}); });
} }
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
state.isClick = false;
}); });
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
console.log("我是要便利的数据2", state.addOnlineList); console.log("我是要便利的数据2", state.addOnlineList);
@@ -548,6 +531,12 @@ export default {
p_data_id.push(item["courseId"]); p_data_id.push(item["courseId"]);
}); });
console.log("需要查询的在线课ID", p_data_id); console.log("需要查询的在线课ID", p_data_id);
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
IsExistenceProject({ IsExistenceProject({
courseTaskId: p_data_id, courseTaskId: p_data_id,
projectId: Number(props.projectId), projectId: Number(props.projectId),
@@ -568,6 +557,7 @@ export default {
} }
message.destroy(); message.destroy();
message.warning("在线课" + tipStr + "重复添加"); message.warning("在线课" + tipStr + "重复添加");
state.isClick = false;
return; return;
} else { } else {
state.addOnlineList.map((value) => { state.addOnlineList.map((value) => {
@@ -585,10 +575,12 @@ export default {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.isClick = false;
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}任务失败`); message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
state.isClick = false;
}); });
}); });
} }
@@ -604,10 +596,16 @@ export default {
p_data_id.push(item["courseId"]); p_data_id.push(item["courseId"]);
}); });
console.log("需要查询的在线课ID", p_data_id); console.log("需要查询的在线课ID", p_data_id);
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
IsExistenceProjectTemplate({ IsExistenceProjectTemplate({
courseTaskId: p_data_id, courseTaskId: p_data_id,
projectTemplateId: props.projectTemplateId, projectTemplateId: props.projectTemplateId,
stageId: props.chooseStageId || 0, templateStageId: props.chooseStageId || 0,
type: 1, type: 1,
}).then((res) => { }).then((res) => {
console.log("项目中是否包含此在线课了", res); console.log("项目中是否包含此在线课了", res);
@@ -623,6 +621,7 @@ export default {
} }
message.destroy(); message.destroy();
message.warning("在线课" + tipStr + "重复添加"); message.warning("在线课" + tipStr + "重复添加");
state.isClick = false;
return; return;
} else { } else {
state.addOnlineList.map((value) => { state.addOnlineList.map((value) => {
@@ -642,10 +641,12 @@ export default {
message.success(`${props.edit ? "编辑" : "新增"}模板库任务成功`); message.success(`${props.edit ? "编辑" : "新增"}模板库任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.isClick = false;
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}模板库任务失败`); message.error(`${props.edit ? "编辑" : "新增"}模板库任务失败`);
state.isClick = false;
}); });
}) })
} }
@@ -700,6 +701,7 @@ export default {
.ant-table-striped :deep(.table-striped) td { .ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important; background-color: #fafafa !important;
} }
.addonlineDrawer { .addonlineDrawer {
.drawerMain { .drawerMain {
.header { .header {
@@ -709,6 +711,7 @@ export default {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
flex-shrink: 0; flex-shrink: 0;
.headerTitle { .headerTitle {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
@@ -717,31 +720,38 @@ export default {
margin-left: 24px; margin-left: 24px;
} }
} }
.contentMain { .contentMain {
padding-right: 12px; padding-right: 12px;
.main_items { .main_items {
display: flex; display: flex;
margin-top: 32px; margin-top: 32px;
margin-bottom: 12px; margin-bottom: 12px;
flex-wrap: wrap; flex-wrap: wrap;
.mi_ipts { .mi_ipts {
display: flex; display: flex;
margin-bottom: 20px; margin-bottom: 20px;
.mii_ipt { .mii_ipt {
display: flex; display: flex;
align-items: center; align-items: center;
margin-right: 24px; margin-right: 24px;
.ipt_name { .ipt_name {
white-space: nowrap; white-space: nowrap;
} }
} }
} }
.mi_btns { .mi_btns {
display: flex; display: flex;
margin-left: 38px; margin-left: 38px;
margin-bottom: 20px; margin-bottom: 20px;
cursor: pointer; cursor: pointer;
.btn { .btn {
padding: 0px 26px 0px 26px; padding: 0px 26px 0px 26px;
height: 38px; height: 38px;
@@ -752,9 +762,11 @@ export default {
justify-content: center; justify-content: center;
margin-left: 14px; margin-left: 14px;
flex-shrink: 0; flex-shrink: 0;
.search { .search {
background-size: 100%; background-size: 100%;
} }
.btnText { .btnText {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
@@ -762,48 +774,61 @@ export default {
margin-left: 5px; margin-left: 5px;
} }
} }
.btn1 { .btn1 {
background: rgb(64, 158, 255); background: rgb(64, 158, 255);
.search { .search {
width: 15px; width: 15px;
height: 17px; height: 17px;
background-image: url("@/assets/images/coursewareManage/search0.png"); background-image: url("@/assets/images/coursewareManage/search0.png");
} }
.btnText { .btnText {
color: rgb(255, 255, 255); color: rgb(255, 255, 255);
} }
} }
.btn2 { .btn2 {
background: rgb(255, 255, 255); background: rgb(255, 255, 255);
.search { .search {
width: 15px; width: 15px;
height: 17px; height: 17px;
background-image: url("@/assets/images/coursewareManage/reset1.png"); background-image: url("@/assets/images/coursewareManage/reset1.png");
} }
.btnText { .btnText {
color: rgb(64, 158, 255); color: rgb(64, 158, 255);
} }
} }
.btn1:hover { .btn1:hover {
background: rgb(255, 255, 255); background: rgb(255, 255, 255);
.search { .search {
background-image: url("@/assets/images/courseManage/search1.png"); background-image: url("@/assets/images/courseManage/search1.png");
} }
.btnText { .btnText {
color: #4ea6ff; color: #4ea6ff;
} }
} }
.btn2:hover { .btn2:hover {
background: rgba(64, 158, 255, 1); background: rgba(64, 158, 255, 1);
.search { .search {
background-image: url("@/assets/images/courseManage/reset0.png"); background-image: url("@/assets/images/courseManage/reset0.png");
} }
.btnText { .btnText {
color: #ffffff; color: #ffffff;
} }
} }
} }
} }
.main_notice { .main_notice {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -811,9 +836,11 @@ export default {
margin-bottom: 3px; margin-bottom: 3px;
height: 40px; height: 40px;
background-color: #e9f6fe; background-color: #e9f6fe;
.mntc_left { .mntc_left {
display: flex; display: flex;
align-items: center; align-items: center;
.notice_icon { .notice_icon {
width: 14px; width: 14px;
height: 14px; height: 14px;
@@ -823,32 +850,38 @@ export default {
background-size: 100% 100%; background-size: 100% 100%;
} }
} }
.mntc_right { .mntc_right {
cursor: pointer; cursor: pointer;
} }
} }
.main_table { .main_table {
position: relative; position: relative;
padding-bottom: 80px; padding-bottom: 80px;
.ant-checkbox-wrapper { .ant-checkbox-wrapper {
align-items: center; align-items: center;
margin-top: -2px; margin-top: -2px;
} }
.ant-table-selection-column { .ant-table-selection-column {
padding: 0px !important; padding: 0px !important;
padding-left: 5px !important; padding-left: 5px !important;
} }
.ant-table-thead>tr>th { .ant-table-thead>tr>th {
background-color: rgba(239, 244, 252, 1); background-color: rgba(239, 244, 252, 1);
} }
th.h { th.h {
background-color: #eff4fc !important; background-color: #eff4fc !important;
} }
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) .ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td {
> td {
background: #f6f9fd; background: #f6f9fd;
} }
.pa { .pa {
left: 0; left: 0;
width: 100%; width: 100%;
@@ -859,6 +892,7 @@ export default {
} }
} }
} }
.main_btns { .main_btns {
height: 72px; height: 72px;
width: 100%; width: 100%;
@@ -868,6 +902,7 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 { .btn1 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -877,6 +912,7 @@ export default {
background-color: #fff; background-color: #fff;
cursor: pointer; cursor: pointer;
} }
.btn2 { .btn2 {
cursor: pointer; cursor: pointer;
width: 100px; width: 100px;

View File

@@ -155,6 +155,7 @@ export default {
inputV2: "", inputV2: "",
textV1: "", textV1: "",
title: null, title: null,
isClick: false
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addrefVisible", false); ctx.emit("update:addrefVisible", false);
@@ -253,6 +254,14 @@ export default {
return message.warning("请输入合法的链接地址"); return message.warning("请输入合法的链接地址");
} }
} }
if(state.isClick){
message.destroy();
message.error('请勿频繁点击')
return
}
state.isClick = true;
let obj = { let obj = {
linkAddress: state.inputV2, linkAddress: state.inputV2,
linkDescription: state.textV1, linkDescription: state.textV1,
@@ -266,8 +275,11 @@ export default {
message.success("编辑成功"); message.success("编辑成功");
await updateTask(res); await updateTask(res);
ctx.emit("changeData", false); ctx.emit("changeData", false);
state.isClick = false;
}) })
.catch(() => {}); .catch(() => {
state.isClick = false;
});
} else { } else {
api api
.createExternalChain(obj) .createExternalChain(obj)
@@ -275,8 +287,11 @@ export default {
message.success("提交成功"); message.success("提交成功");
await updateTask(res); await updateTask(res);
ctx.emit("changeData", false); ctx.emit("changeData", false);
state.isClick = false;
}) })
.catch(() => {}); .catch(() => {
state.isClick = false;
});
} }
}; };
// 查询任务 // 查询任务

View File

@@ -1,19 +1,11 @@
<template> <template>
<a-drawer <a-drawer :visible="addtestVisible" class="drawerStyle addtestDrawer" width="80%" placement="right"
:visible="addtestVisible" @after-visible-change="afterVisibleChange">
class="drawerStyle addtestDrawer"
width="80%"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}考试</div> <div class="headerTitle">{{ edit ? "编辑" : "添加" }}考试</div>
<img <img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
style="width: 29px; height: 29px; cursor: pointer" @click="closeDrawer2" />
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer2"
/>
</div> </div>
<!-- 2022-11-30注释 后面放开 修改div的padding-topL:32 --> <!-- 2022-11-30注释 后面放开 修改div的padding-topL:32 -->
<div style="display: flex; flex-direction: row; padding-top: 0px"> <div style="display: flex; flex-direction: row; padding-top: 0px">
@@ -39,30 +31,20 @@
<div class="main_item"> <div class="main_item">
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
<img <img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
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 <a-input v-model:value="test.examinationName" style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="test.examinationName" placeholder="请输入考试名称" :maxlength="20" />
style="width: 400px; height: 40px; border-radius: 8px"
placeholder="请输入考试名称"
:maxlength="20"
/>
</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 <img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div> </div>
<span style="margin-right: 3px">选择试卷</span> <span style="margin-right: 3px">选择试卷</span>
</div> </div>
@@ -80,11 +62,8 @@
</div> </div>
<!-- 选择面授侧弹窗 --> <!-- 选择面授侧弹窗 -->
<div> <div>
<sel-facet <sel-facet v-model:selfacetVisible="selfacetvisible" v-model:chooseCourse="chooseCourse"
v-model:selfacetVisible="selfacetvisible" v-model:chooseCourseName="chooseCourseName" />
v-model:chooseCourse="chooseCourse"
v-model:chooseCourseName="chooseCourseName"
/>
</div> </div>
<!-- 选择面授侧弹窗 --> <!-- 选择面授侧弹窗 -->
</div> </div>
@@ -92,41 +71,25 @@
<div class="main_item"> <div class="main_item">
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
<img <img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
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-range-picker <a-range-picker style="width: 400px; height: 40px; border-radius: 8px" show-time format="YYYY/MM/DD HH:mm"
style="width: 400px; height: 40px; border-radius: 8px" v-model:value="test.chooseTime" :placeholder="[' 开始时间', ' 结束时间']" />
show-time
format="YYYY/MM/DD HH:mm"
v-model:value="test.chooseTime"
: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 <img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
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="select"> <div class="select">
<a-input-number <a-input-number :min="0" :max="300" :precision="0" style="width: 400px; height: 40px; border-radius: 8px"
:min="0" v-model:value="test.examinationDuration"></a-input-number>
:max="300"
:precision="0"
style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="test.examinationDuration"
></a-input-number>
<span style="color: #999999; margin-left: 8px">分钟</span> <span style="color: #999999; margin-left: 8px">分钟</span>
</div> </div>
</div> </div>
@@ -135,14 +98,8 @@
<span style="margin-right: 3px">考试说明</span> <span style="margin-right: 3px">考试说明</span>
</div> </div>
<div class="textarea"> <div class="textarea">
<a-textarea <a-textarea v-model:value="test.examinationExplain" placeholder="请输入考试说明" allow-clear show-count
v-model:value="test.examinationExplain" :maxlength="200" :rows="6" />
placeholder="请输入考试说明"
allow-clear
show-count
:maxlength="200"
:rows="6"
/>
</div> </div>
</div> </div>
<div class="main_item2"> <div class="main_item2">
@@ -153,21 +110,13 @@
<div class="setbox"> <div class="setbox">
<div class="timerbox"> <div class="timerbox">
<span>允许重复考试</span> <span>允许重复考试</span>
<a-input-number <a-input-number :min="-1" :max="300" :precision="0" style="
:min="-1"
:max="300"
:precision="0"
style="
width: 100px; width: 100px;
height: 32px; height: 32px;
border-radius: 8px; border-radius: 8px;
overflow: hidden; overflow: hidden;
" " v-model:value="test.examinationLimit"></a-input-number>
v-model:value="test.examinationLimit" <span style="color: #999999; margin-left: 8px">,-1表示无限制</span>
></a-input-number>
<span style="color: #999999; margin-left: 8px"
>,-1表示无限制</span
>
</div> </div>
</div> </div>
</div> </div>
@@ -178,15 +127,10 @@
<span style="margin-right: 3px">显示答案</span> <span style="margin-right: 3px">显示答案</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-radio-group <a-radio-group style="margin-right: 12px" v-model:value="test.showAnswers">
style="margin-right: 12px" <a-radio v-model:checked="checked" :value="1" @click="cloradio1">允许查看
v-model:value="test.showAnswers"
>
<a-radio v-model:checked="checked" :value="1" @click="cloradio1"
>允许查看
</a-radio> </a-radio>
<a-radio v-model:checked="checked" :value="2" @click="cloradio1" <a-radio v-model:checked="checked" :value="2" @click="cloradio1">不允许查看
>不允许查看
</a-radio> </a-radio>
</a-radio-group> </a-radio-group>
</div> </div>
@@ -196,15 +140,10 @@
<span style="margin-right: 3px">显示解析</span> <span style="margin-right: 3px">显示解析</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-radio-group <a-radio-group style="margin-right: 12px" v-model:value="test.showAnalysis">
style="margin-right: 12px" <a-radio v-model:checked="checked" :value="1" @click="cloradio2">允许查看
v-model:value="test.showAnalysis"
>
<a-radio v-model:checked="checked" :value="1" @click="cloradio2"
>允许查看
</a-radio> </a-radio>
<a-radio v-model:checked="checked" :value="2" @click="cloradio2" <a-radio v-model:checked="checked" :value="2" @click="cloradio2">不允许查看
>不允许查看
</a-radio> </a-radio>
</a-radio-group> </a-radio-group>
</div> </div>
@@ -214,15 +153,10 @@
<span style="margin-right: 3px">评分模式</span> <span style="margin-right: 3px">评分模式</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-radio-group <a-radio-group style="margin-right: 12px" v-model:value="test.scoringModel">
style="margin-right: 12px" <a-radio v-model:checked="checked" :value="1" @click="cloradio3">最高一次
v-model:value="test.scoringModel"
>
<a-radio v-model:checked="checked" :value="1" @click="cloradio3"
>最高一次
</a-radio> </a-radio>
<a-radio v-model:checked="checked" :value="2" @click="cloradio3" <a-radio v-model:checked="checked" :value="2" @click="cloradio3">最后一次
>最后一次
</a-radio> </a-radio>
</a-radio-group> </a-radio-group>
</div> </div>
@@ -232,11 +166,8 @@
<span style="margin-right: 3px">及格线</span> <span style="margin-right: 3px">及格线</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-input <a-input v-model:value="test.passLine" type="number"
v-model:value="test.passLine" style="width: 400px; height: 40px; border-radius: 8px" />
type="number"
style="width: 400px; height: 40px; border-radius: 8px"
/>
<span style="color: #999999; margin-left: 8px"></span> <span style="color: #999999; margin-left: 8px"></span>
</div> </div>
@@ -247,33 +178,14 @@
<span style="margin-right: 3px">试题排列</span> <span style="margin-right: 3px">试题排列</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-radio-group <a-radio-group style="margin-right: 12px" v-model:value="test.questionArrangement">
style="margin-right: 12px" <a-radio v-model:checked="checked" :value="1" @click="cloradio4">试题乱序
v-model:value="test.questionArrangement"
>
<a-radio
v-model:checked="checked"
:value="1"
@click="cloradio4"
>试题乱序
</a-radio> </a-radio>
<a-radio <a-radio v-model:checked="checked" :value="2" @click="cloradio4">选项乱序
v-model:checked="checked"
:value="2"
@click="cloradio4"
>选项乱序
</a-radio> </a-radio>
<a-radio <a-radio v-model:checked="checked" :value="3" @click="cloradio4">全部乱序
v-model:checked="checked"
:value="3"
@click="cloradio4"
>全部乱序
</a-radio> </a-radio>
<a-radio <a-radio v-model:checked="checked" :value="4" @click="cloradio4">不乱序
v-model:checked="checked"
:value="4"
@click="cloradio4"
>不乱序
</a-radio> </a-radio>
</a-radio-group> </a-radio-group>
</div> </div>
@@ -415,6 +327,7 @@ export default {
clearAll(); clearAll();
}; };
const closeDrawer2 = () => { const closeDrawer2 = () => {
state.paperName = "";
state.statechoosedTime = ""; state.statechoosedTime = "";
ctx.emit("update:edit", false); ctx.emit("update:edit", false);
ctx.emit("update:addtestVisible", false); ctx.emit("update:addtestVisible", false);
@@ -522,7 +435,7 @@ export default {
state.EditTestId = res.data.data.examinationId; state.EditTestId = res.data.data.examinationId;
if (props.faceLevel) { if (props.faceLevel) {
state.EditTestId = res.data.data.examinationId; state.EditTestId = res.data.data.examinationId;
state.paperName = "";
closeDrawer(); closeDrawer();
} else { } else {
if (props.isLevel == 1) { if (props.isLevel == 1) {
@@ -544,7 +457,7 @@ export default {
console.log("props.edit", props.edit); console.log("props.edit", props.edit);
message.success(`${props.edit ? "编辑" : "新增"}任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
state.paperName = "";
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
@@ -565,6 +478,7 @@ export default {
.then(() => { .then(() => {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
state.paperName = "";
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
@@ -583,6 +497,7 @@ export default {
.then(() => { .then(() => {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`); message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
state.paperName = "";
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
@@ -826,28 +741,33 @@ export default {
} }
} }
} }
.main_table { .main_table {
position: relative; position: relative;
padding-bottom: 80px; padding-bottom: 80px;
.ant-checkbox-wrapper { .ant-checkbox-wrapper {
align-items: center; align-items: center;
margin-top: -2px; margin-top: -2px;
} }
.ant-table-selection-column { .ant-table-selection-column {
padding: 0px !important; padding: 0px !important;
padding-left: 5px !important; padding-left: 5px !important;
} }
.ant-table-thead>tr>th { .ant-table-thead>tr>th {
background-color: rgba(239, 244, 252, 1); background-color: rgba(239, 244, 252, 1);
} }
th.h { th.h {
background-color: #eff4fc !important; background-color: #eff4fc !important;
} }
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) .ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td {
> td {
background: #f6f9fd; background: #f6f9fd;
} }
.pa { .pa {
left: 0; left: 0;
width: 100%; width: 100%;
@@ -857,6 +777,7 @@ export default {
bottom: 20px; bottom: 20px;
} }
} }
.main_btns { .main_btns {
height: 72px; height: 72px;
width: 100%; width: 100%;

View File

@@ -362,7 +362,7 @@ const {
loading: audiLoading, loading: audiLoading,
total: audiTotal total: audiTotal
} = useBoeApiPage(AUDIENCE_LIST, audienceName.value, { } = useBoeApiPage(AUDIENCE_LIST, audienceName.value, {
init: false, init: true,
result: res => res.result.audienceList.map(e => ({...e, id: e.id + ''})), result: res => res.result.audienceList.map(e => ({...e, id: e.id + ''})),
totalPage: res => res.result.totalPage, totalPage: res => res.result.totalPage,
total: res => res.result.totalElement total: res => res.result.totalElement
@@ -612,6 +612,7 @@ watch(visiable, () => {
stuSelectKeys.value = [] stuSelectKeys.value = []
orgSelectKeys.value = [] orgSelectKeys.value = []
auditSelectKeys.value = [] auditSelectKeys.value = []
stuData.value = []
selectsData.value = { selectsData.value = {
stageId: '', stageId: '',
studentList: [], studentList: [],

View File

@@ -1,30 +1,15 @@
<!-- 课件管理页面 --> <!-- 课件管理页面 -->
<template> <template>
<!-- 预览弹窗 --> <!-- 预览弹窗 -->
<a-modal <a-modal :visible="visible" title="查看" :footer="null" :closable="false" wrapClassName="modalStyle lookCourseModal"
:visible="visible" width="80%" @cancel="handleCancel" @ok="handleCancel">
title="查看"
:footer="null"
:closable="false"
wrapClassName="modalStyle lookCourseModal"
width="80%"
@cancel="handleCancel"
@ok="handleCancel"
>
<div class="modalHeader"> <div class="modalHeader">
<div class="headerLeft"> <div class="headerLeft">
<img <img style="width: 17px; height: 18px; margin-right: 8px" src="@/assets/images/basicinfo/add.png" />
style="width: 17px; height: 18px; margin-right: 8px"
src="@/assets/images/basicinfo/add.png"
/>
<span class="headerLeftText">预览</span> <span class="headerLeftText">预览</span>
</div> </div>
<div style="margin-right: 57px; cursor: pointer"> <div style="margin-right: 57px; cursor: pointer">
<img <img @click="handleCancel" style="width: 22px; height: 22px" src="@/assets/images/basicinfo/close22.png" />
@click="handleCancel"
style="width: 22px; height: 22px"
src="@/assets/images/basicinfo/close22.png"
/>
</div> </div>
</div> </div>
<div class="modalMain"> <div class="modalMain">
@@ -35,10 +20,7 @@
<div class="mbl_items"> <div class="mbl_items">
<div class="item_nam"> <div class="item_nam">
<div class="asterisk_icon"> <div class="asterisk_icon">
<img <img src="@/assets/images/coursewareManage/asterisk.png" alt="img" />
src="@/assets/images/coursewareManage/asterisk.png"
alt="img"
/>
</div> </div>
<span style="margin-right: 14px">课程名称</span> <span style="margin-right: 14px">课程名称</span>
</div> </div>
@@ -51,27 +33,17 @@
<div class="mbl_items2"> <div class="mbl_items2">
<div class="item_nam"> <div class="item_nam">
<div class="asterisk_icon"> <div class="asterisk_icon">
<img <img src="@/assets/images/coursewareManage/asterisk.png" alt="img" />
src="@/assets/images/coursewareManage/asterisk.png"
alt="img"
/>
</div> </div>
<span style="margin-right: 14px">封面图</span> <span style="margin-right: 14px">封面图</span>
</div> </div>
<img <img :src="detail.picUrl" alt="img" style="width: 100px; height: 100px" />
:src="detail.picUrl"
alt="img"
style="width: 100px; height: 100px"
/>
</div> </div>
<div class="mbl_items"> <div class="mbl_items">
<div class="item_nam"> <div class="item_nam">
<div class="asterisk_icon"> <div class="asterisk_icon">
<img <img style="width: 10px; height: 10px" src="@/assets/images/coursewareManage/asterisk.png"
style="width: 10px; height: 10px" alt="img" />
src="@/assets/images/coursewareManage/asterisk.png"
alt="img"
/>
</div> </div>
<span style="margin-right: 14px">目标人群</span> <span style="margin-right: 14px">目标人群</span>
</div> </div>
@@ -94,10 +66,7 @@
<div class="mbl_items"> <div class="mbl_items">
<div class="item_nam"> <div class="item_nam">
<div class="asterisk_icon"> <div class="asterisk_icon">
<img <img src="@/assets/images/coursewareManage/asterisk.png" alt="img" />
src="@/assets/images/coursewareManage/asterisk.png"
alt="img"
/>
</div> </div>
<span style="margin-right: 14px">内容分类</span> <span style="margin-right: 14px">内容分类</span>
</div> </div>
@@ -130,10 +99,7 @@
<div class="mbl_items"> <div class="mbl_items">
<div class="item_nam"> <div class="item_nam">
<div class="asterisk_icon"> <div class="asterisk_icon">
<img <img src="@/assets/images/coursewareManage/asterisk.png" alt="asterisk" />
src="@/assets/images/coursewareManage/asterisk.png"
alt="asterisk"
/>
</div> </div>
<span style="margin-right: 14px">授课教师</span> <span style="margin-right: 14px">授课教师</span>
</div> </div>
@@ -154,50 +120,25 @@
</div> </div>
</div> </div>
<div class="mbl_items12"> <div class="mbl_items12">
<div <div class="i12_box1" style="position: relative" v-for="(item, index) in detail.attach" :key="index">
class="i12_box1"
style="position: relative"
v-for="(item, index) in detail.attach"
:key="index"
>
<div class="file_img"> <div class="file_img">
<img <img v-if="
v-if="
item.indexOf('jpg') !== -1 || item.indexOf('jpg') !== -1 ||
item.indexOf('jpeg') !== -1 || item.indexOf('jpeg') !== -1 ||
item.indexOf('png') !== -1 item.indexOf('png') !== -1
" " src="@/assets/images/coursewareManage/pngpic.png" />
src="@/assets/images/coursewareManage/pngpic.png"
/>
<div v-else> <div v-else>
<img <img v-if="item.indexOf('doc') !== -1" src="@/assets/images/coursewareManage/docpic.png" />
v-if="item.indexOf('doc') !== -1"
src="@/assets/images/coursewareManage/docpic.png"
/>
<div v-else> <div v-else>
<img <img v-if="item.indexOf('xls') !== -1" src="@/assets/images/coursewareManage/xlspic.png" />
v-if="item.indexOf('xls') !== -1"
src="@/assets/images/coursewareManage/xlspic.png"
/>
<div v-else> <div v-else>
<img <img v-if="item.indexOf('ppt') !== -1" src="@/assets/images/coursewareManage/pptpic.png" />
v-if="item.indexOf('ppt') !== -1"
src="@/assets/images/coursewareManage/pptpic.png"
/>
<div v-else> <div v-else>
<img <img v-if="item.indexOf('pdf') !== -1" src="@/assets/images/coursewareManage/pdfpic.png" />
v-if="item.indexOf('pdf') !== -1"
src="@/assets/images/coursewareManage/pdfpic.png"
/>
<div v-else> <div v-else>
<img <img v-if="item.indexOf('zip') !== -1"
v-if="item.indexOf('zip') !== -1" src="@/assets/images/coursewareManage/zippic.png" />
src="@/assets/images/coursewareManage/zippic.png" <img v-else src="@/assets/images/coursewareManage/docpic.png" />
/>
<img
v-else
src="@/assets/images/coursewareManage/docpic.png"
/>
</div> </div>
</div> </div>
</div> </div>
@@ -207,8 +148,7 @@
<div class="file_detail"> <div class="file_detail">
<div class="file_name"> <div class="file_name">
<!-- http://111.231.196.214:12016/7.231.196.214:12016/7-1670486854017.jpg --> <!-- http://111.231.196.214:12016/7.231.196.214:12016/7-1670486854017.jpg -->
<span <span style="
style="
color: #6f6f6f; color: #6f6f6f;
width: 200px; width: 200px;
display: block; display: block;
@@ -218,8 +158,7 @@
position: absolute; position: absolute;
top: 4px; top: 4px;
left: 72px; left: 72px;
" ">
>
{{ {{
item.indexOf("-") !== -1 item.indexOf("-") !== -1
? item.slice( ? item.slice(
@@ -243,7 +182,7 @@
</div> </div>
</div> </div>
</div> </div>
<a :href="item" style="margin-left: 5px">下载</a> <a :href="item.indexOf('http') !== -1 ? item : locationHref + item" style="margin-left: 5px">下载</a>
</div> </div>
</div> </div>
</div> </div>
@@ -412,6 +351,7 @@ export default defineComponent({
], ],
ceshi: "https://u-pre.boe.com/upload/测试下载ppt2-1671002026755.pptx", ceshi: "https://u-pre.boe.com/upload/测试下载ppt2-1671002026755.pptx",
ceshi2: "http://111.231.196.214:12016/测试下载ppt3-1671001683026.pptx", ceshi2: "http://111.231.196.214:12016/测试下载ppt3-1671001683026.pptx",
locationHref: location.href.indexOf('http://') !== -1 ? 'http://111.231.196.214:12016/' : location.href.slice(0, location.href.indexOf('/m')) + '/upload/'
}); });
// item.slice( // item.slice(
@@ -513,6 +453,7 @@ export default defineComponent({
.lookCourseModal { .lookCourseModal {
.ant-modal { .ant-modal {
.ant-modal-content { .ant-modal-content {
// width:1358px !important; // width:1358px !important;
.ant-modal-body { .ant-modal-body {
.modalHeader { .modalHeader {
@@ -848,9 +789,11 @@ export default defineComponent({
.fotarea { .fotarea {
width: calc(100% - 150px); width: calc(100% - 150px);
position: relative; position: relative;
img { img {
max-width: 100%; max-width: 100%;
} }
.fuwenben { .fuwenben {
width: 90%; width: 90%;
height: 20px; height: 20px;