Merge branch 'master' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage

This commit is contained in:
songwc
2022-10-22 14:21:30 +08:00
4 changed files with 1107 additions and 125 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,161 @@
<template>
<!--删除弹窗 -->
<a-modal
v-model:visible="delete_hs"
:footer="null"
:closable="closableQR"
wrapClassName="DelModal"
style="margin-top: 400px"
>
<div class="delete" :style="{ display: delete_hs ? 'block' : 'none' }">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="del-icon"></div>
<span>提示</span>
<div class="close_exit" @click="delete_exit"></div>
</div>
<div class="body">
<span>您确定要删除此课程吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!--删除弹窗 -->
</template>
<script>
import { toRefs, reactive, defineComponent } from "vue";
export default defineComponent({
name: "DelWins",
props: {
delete_hs: {
type: Boolean,
default: false,
},
},
setup() {
const state = reactive({
delete_hs: false,
closableQR: false,
})
const delete_exit = () => {
state.delete_hs = false;
}
return {
...toRefs(state),
delete_exit,
};
},
})
</script>
<style lang="scss" scope>
.DelModal {
.ant-modal {
.ant-modal-content {
width: 424px !important;
.ant-modal-body {
.delete {
z-index: 999;
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-icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/notice.png);
background-size: 100% 100%;
}
.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%;
}
}
.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;
}
}
}
}
}
}
}
}
</style>

View File

@@ -107,6 +107,28 @@
</a-table>
</div>
<!-- 表格 -->
<!-- 无项目 -->
<div class="tableBox" style="display: none">
<div
class="taskbox"
@click="showModal1"
style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)"
>
<div class="leftt">
<img src="../../assets/images/taskpage/left2.png" />
</div>
<div class="photo">
<img src="../../assets/images/projectadd/nopro.png" />
</div>
<div class="rightt">
<img src="../../assets/images/taskpage/right2.png" />
</div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)">
创建项目
</div>
<div class="centermain">点击创建项目任务</div>
</div>
</div>
<!-- 创建子项目弹窗 -->
<div>
<a-modal
@@ -519,7 +541,158 @@
</a-modal>
</div>
<!-- 创建多层子项目弹窗 -->
<!-- 复制路径弹窗 -->
<a-modal
v-model:visible="copyModal"
:footer="null"
:closable="closeCopy"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeCopyModal"></div>
</div>
<div class="body">
<span>您确定要复制此路径吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 结束项目弹窗 -->
<a-modal
v-model:visible="stopModal"
:footer="null"
:closable="closeStop"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeStopModal"></div>
</div>
<div class="body">
<span>是否结束项目</span>
<div class="back">项目结束后学员将无法继续学习此操作不可逆</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 删除项目弹窗 -->
<a-modal
v-model:visible="deleteModal"
:footer="null"
:closable="closeDelete"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeDeleteModal"></div>
</div>
<div class="body">
<span>您确定要删除此项目吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 存为模板弹窗 -->
<a-modal
v-model:visible="startModal"
:footer="null"
:closable="closeStart"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeStartModal"></div>
</div>
<div class="body">
<span>您确定要存为模板吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 撤回路径弹窗 -->
<a-modal
v-model:visible="backModal"
:footer="null"
:closable="closeBack"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeBackModal"></div>
</div>
<div class="body">
<span>是否撤回项目</span>
<div class="back">项目撤回后学员进度保留发布后可继续学习</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 归属权抽屉 -->
<proj-owner-ship v-model:ProjOwnervisible="ProjOwnervisible" />
<!-- 授权名单抽屉 -->
@@ -867,6 +1040,16 @@ export default {
estabish: false,
doublepro: false,
doublesonpro: false,
copyModal: false, //复制弹窗
closeCopy: false, //复制弹窗关闭图标
stopModal: false, //停用弹窗
closeStop: false, //停用弹窗关闭图标
deleteModal: false, //删除弹窗
closeDelete: false, //删除弹窗关闭图标
startModal: false, //启用弹窗
closeStart: false, //启用弹窗关闭图标
backModal: false, //撤回弹窗
closeBack: false, //撤回弹窗关闭图标
ProjOwnervisible: false,
ProjPvisible: false,
});
@@ -946,7 +1129,9 @@ export default {
<router-link to="/taskpage">基础信息</router-link>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
</a-select>
</div>
@@ -988,7 +1173,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span class="more"></span>
</div>
) : value.state === "已结束" ? (
@@ -1028,8 +1215,12 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="more">删除</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span class="more" onClick={() => {
showDeleteModal();
}}>删除</span>
</div>
) : (
<div></div>
@@ -1087,10 +1278,14 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div>复制</div>
<div onClick={() => {
showCopyModal();
}}>复制</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div>删除</div>
<div onClick={() => {
showDeleteModal();
}}>删除</div>
</a-select-option>
</a-select>
</div>
@@ -1136,7 +1331,9 @@ export default {
<router-link to="/classadd" class="operation3">
创建班级
</router-link>
<span class="more">复制</span>
<span class="more" onClick={() => {
showCopyModal();
}}>复制</span>
</div>
) : item.state === "已结束" ? (
<div class="operation">
@@ -1175,8 +1372,12 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="more">删除</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span class="more" onClick={() => {
showDeleteModal();
}}>删除</span>
</div>
) : (
<div></div>
@@ -1231,13 +1432,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div>复制</div>
<div onClick={() => {
showCopyModal();
}}>复制</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div>删除</div>
<div onClick={() => {
showDeleteModal();
}}>删除</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1282,7 +1489,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1291,13 +1500,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
<div onClick={() => {
showBackModal();
}}>撤回</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div>结束</div>
<div onClick={() => {
showStopModal();
}}>结束</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1342,8 +1557,12 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1352,10 +1571,14 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="删除" label="删除">
<div>删除</div>
<div onClick={() => {
showDeleteModal();
}}>删除</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1400,7 +1623,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1409,13 +1634,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="结束" label="结束">
<div>结束</div>
<div onClick={() => {
showStopModal();
}}>结束</div>
</a-select-option>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
<div onClick={() => {
showBackModal();
}}>撤回</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1476,13 +1707,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div>复制</div>
<div onClick={() => {
showCopyModal();
}}>复制</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div>删除</div>
<div onClick={() => {
showDeleteModal();
}}>删除</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1527,7 +1764,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1536,13 +1775,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
<div onClick={() => {
showBackModal();
}}>撤回</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div>结束</div>
<div onClick={() => {
showStopModal();
}}>结束</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1587,7 +1832,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1596,13 +1843,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="删除" label="删除">
<div>删除</div>
<div onClick={() => {
showDeleteModal();
}}>删除</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div>结束</div>
<div onClick={() => {
showStopModal();
}}>结束</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1647,7 +1900,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1656,13 +1911,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
<div onClick={() => {
showBackModal();
}}>撤回</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div>结束</div>
<div onClick={() => {
showStopModal();
}}>结束</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1722,7 +1983,9 @@ export default {
{value.state === "草稿" ? (
<span class="operation3">发布</span>
) : (
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
)}
<div class="tableSelect">
{value.state === "草稿" ? (
@@ -1733,19 +1996,23 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div>复制</div>
<div onClick={() => {
showCopyModal();
}}>复制</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div
onClick={() => {
console.log("点击了");
}}
showDeleteModal();
}}
>
删除
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1759,19 +2026,23 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div
onClick={() => {
console.log("点击了");
}}
showStopModal();
}}
>
结束
</div>
</a-select-option>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
<div onClick={() => {
showBackModal();
}}>撤回</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1785,13 +2056,15 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div
onClick={() => {
console.log("点击了");
}}
showDeleteModal();
}}
>
删除
</div>
@@ -1841,6 +2114,36 @@ export default {
const closeModal3 = () => {
state.doublesonpro = false;
};
const showCopyModal = () => {
state.copyModal = true;
};
const closeCopyModal = () => {
state.copyModal = false;
};
const showStopModal = () => {
state.stopModal = true;
};
const closeStopModal = () => {
state.stopModal = false;
};
const showDeleteModal = () => {
state.deleteModal = true;
};
const closeDeleteModal = () => {
state.deleteModal = false;
};
const showStartModal = () => {
state.startModal = true;
};
const closeStartModal = () => {
state.startModal = false;
};
const showBackModal = () => {
state.backModal = true;
};
const closeBackModal = () => {
state.backModal = false;
};
const showProjOwner = () => {
state.ProjOwnervisible = true;
};
@@ -1860,6 +2163,16 @@ export default {
closeModal2,
showModal3,
closeModal3,
showCopyModal,
closeCopyModal,
showStopModal,
closeStopModal,
showDeleteModal,
closeDeleteModal,
showStartModal,
closeStartModal,
showBackModal,
closeBackModal,
getTableDate,
showProjOwner,
showProjPrower,
@@ -2315,4 +2628,115 @@ export default {
}
}
}
.CopyModal {
.ant-modal {
width: 424px !important;
height: 258px !important;
.ant-modal-content {
width: 424px !important;
height: 258px !important;
.ant-modal-body {
width: 424px !important;
height: 258px !important;
padding: 0 !important;
.delete {
z-index: 999;
width: 424px;
height: 258px;
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: 68px;
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;
.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%;
}
}
.body {
width: 100%;
margin: 34px auto 56px auto;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
// background-color: red;
position: relative;
.back {
position: absolute;
top: 30px;
font-size: 12px;
font-weight: 400;
color: #666666;
}
}
.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;
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;
}
}
}
}
}
}
}
}
</style>

View File

@@ -212,10 +212,7 @@
<div style="flex: 1">
<div class="split"></div>
<!-- 无数据样式 -->
<div
class="notable"
style="display:none"
>
<div class="notable" style="display: none">
<div class="notablebox">
<div class="boxbody">
<div class="boximg"></div>
@@ -422,6 +419,29 @@
</div>
</a-collapse-panel>
</a-collapse>
<!-- 无数据创建任务 -->
<div
class="taskbox"
style="
background: linear-gradient(180deg, #ddeaff, #f0f8fe);
display:none;
"
>
<div class="leftt">
<img src="../../assets/images/taskpage/left2.png" />
</div>
<div class="photo">
<img src="../../assets/images/taskpage/picture8.png" />
</div>
<div class="rightt">
<img src="../../assets/images/taskpage/right2.png" />
</div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)">
创建任务
</div>
<div class="centermain">点击创建项目任务</div>
</div>
<!-- 无数据创建任务 -->
</div>
<div style="display: flex; height: 20px"></div>
</div>
@@ -800,7 +820,57 @@
</div>
</div>
</a-tab-pane>
<a-tab-pane key="5" tab="项目积分">Content of Tab Pane 3</a-tab-pane>
<a-tab-pane key="5" tab="项目积分">
<div class="split"></div>
<div class="content3">
<a-tabs v-model:activeKey="activeKey2">
<a-tab-pane key="1" tab="学员获取">
</a-tab-pane>
<a-tab-pane key="2" tab="榜单">
</a-tab-pane>
<a-tab-pane key="3" tab="获取规则">
<div class="projectscore">
<div class="pjc_body">
<div class="pjcb_header">
<span>规则</span>
<div class="edit_btn">
<div class="edit"></div>
<div class="btnText">编辑</div>
</div>
</div>
<div class="pjcb_content">
<div class="content content1">
<span>当前设计下学员可以获得
<a-input
v-model:value="inputValue"
:maxlength="3"
style="width: 50px"
/>
积分</span>
</div>
<div class="content content2">
<span>完成必修/选修获得
<a-input
v-model:value="inputValue2"
:maxlength="3"
style="width: 50px"
/>
积分</span></div>
<div class="content content3">
<span>优秀学员可获得
<a-input
v-model:value="inputValue3"
:maxlength="3"
style="width: 50px"
/>
积分</span></div>
</div>
</div>
</div>
</a-tab-pane>
</a-tabs>
</div>
</a-tab-pane>
<a-tab-pane key="6" tab="排行榜">
<div class="content6">
<div class="title">排行榜</div>
@@ -936,7 +1006,7 @@
<div class="set_body">
<div class="edit" @click="edit_hShow">
<div class="img"></div>
<div class="ed">编辑11</div>
<div class="ed">编辑</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目名称</span></div>
@@ -1250,7 +1320,7 @@
>编辑</span
>
</div>
<div style="cursor: pointer; margin-right: 32px" @click="closeModal">
<div style="cursor: pointer; margin-right: 32px" @click="edit_exit">
<img
style="width: 22px; height: 22px"
src="../../assets/images/basicinfo/close.png"
@@ -1283,24 +1353,11 @@
<div class="signbox">
<span style="margin-right: 3px">直播封面</span>
</div>
<div class="textarea">
<a-upload
v-model:file-list="fileList"
name="avatar"
list-type="picture-card"
class="avatar-uploader"
:show-upload-list="false"
action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
:before-upload="beforeUpload"
@change="handleChange"
>
<img v-if="imageUrl" :src="imageUrl" alt="avatar" />
<div v-else>
<loading-outlined v-if="loading"></loading-outlined>
<plus-outlined v-else></plus-outlined>
<div class="ant-upload-text">Upload</div>
</div>
</a-upload>
<div class="lodalimg">
<div class="lodalcenter">
<span style="color: #448ef7; margin-right: 10px">+</span>
<span style="color: #448ef7">添加图片</span>
</div>
</div>
</div>
<div class="main_item">
@@ -1457,6 +1514,39 @@
</a-modal>
</div>
<!-- 编辑弹窗 -->
<!-- 删除弹窗 -->
<div>
<a-modal
v-model:visible="delete_hs"
:footer="null"
:closable="closableQR"
wrapClassName="DelModal"
style="margin-top: 400px"
>
<div class="delete" :style="{ display: delete_hs ? 'block' : 'none' }">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="del-icon"></div>
<span>提示</span>
<div class="close_exit" @click="delete_exit"></div>
</div>
<div class="body">
<span>您确定要删除此课程吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
</div>
<!-- 删除弹窗 -->
</div>
</template>
<script>
@@ -1661,6 +1751,7 @@ export default {
Seevisible: false, //查看学员
Changevisible: false, //学员换组
edit_hs: false, //编辑弹窗
delete_hs:false, //删除弹窗
pubproject: false,
stugroup: false,
canclestu: false,
@@ -1673,6 +1764,10 @@ export default {
radioV2: "",
activeKey: "2",
activeKey1: "8",
activeKey2: "3",
inputValue:5,
inputValue2:5,
inputValue3:5,
valueName: "", //排行榜输入姓名
valueDate: "", //排行榜输入日期
noticeChecked: true,
@@ -2128,6 +2223,75 @@ export default {
//考试、测评页面传递参数
showTestText: "",
});
//学员学员管理渲染
const getTableDate = () => {
let datas = state.tabledata;
datas.map((value) => {
{
//单层项目
value.operations = (
<div class="operation">
<div class="nSelect">
<div class="nselect">
<div
class="jc"
onClick={() => {
// state.QR_hs = true;
// state.ftsQR_hs = true;
}}
>
优秀学员
</div>
<div class="jc"
onClick={() => {
state.Seevisible = true;
}}>查看</div>
<div class="tableSelect">
<a-select
style="width: 50px;margin-top:2px;margin-left:25px"
value="更多"
// options={state.projectNameList}
dropdownClassName="tabledropdown"
>
<a-select-option
value="换组"
label="换组"
style="padding-left:35px"
>
<div
onClick={() => {
// state.copy_hs = true;
}}
>
复制
</div>
</a-select-option>
<a-select-option
value="删除"
label="删除"
style="padding-left:35px"
>
<div
onClick={() => {
state.delete_hs = true;
}}
>
删除
</div>
</a-select-option>
</a-select>
</div>
</div>
</div>
</div>
);
}
});
state.tableData = datas;
};
getTableDate()
const showModal = () => {
state.pubproject = true;
};
@@ -2211,6 +2375,8 @@ export default {
};
const edit_exit = () => {
state.edit_hs = false;
state.radioV1 = "";
state.radioV2 = "";
};
const cloradio1 = (value) => {
if (value != "") {
@@ -2222,6 +2388,9 @@ export default {
state.radioV2 = "";
}
};
const delete_exit = () => {
state.delete_hs = false;
};
return {
...toRefs(state),
showModal,
@@ -2249,6 +2418,7 @@ export default {
edit_exit,
cloradio1,
cloradio2,
delete_exit,
};
},
};
@@ -2814,54 +2984,54 @@ export default {
margin-top: 10px;
}
.notable {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
.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-top: 77px;
margin-bottom: 109px;
cursor: pointer;
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;
}
}
}
}
width: 100%;
height: 100%;
display: flex;
justify-content: center;
.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-top: 77px;
margin-bottom: 109px;
cursor: pointer;
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;
}
}
}
}
.onerow {
//width: 100%;
display: flex;
@@ -3120,6 +3290,46 @@ export default {
border-top: 0px;
}
}
.taskbox {
width: 412px;
height: 160px;
border-radius: 10px;
position: relative;
margin-left: 68px;
margin-bottom: 40px;
margin-top: 32px;
cursor: pointer;
.leftt {
position: absolute;
top: 18px;
left: 0;
}
.photo {
position: absolute;
top: 42px;
left: 37px;
}
.rightt {
position: absolute;
top: 69px;
right: 26px;
}
.centerbox {
position: absolute;
top: 52px;
left: 145px;
font-size: 20px;
font-weight: 700;
//line-height: 36px;
}
.centermain {
color: rgba(135, 139, 146, 1);
font-size: 14px;
position: absolute;
left: 144px;
bottom: 49px;
}
}
.stage {
display: flex;
height: 49px;
@@ -3448,7 +3658,32 @@ export default {
justify-content: right;
// position: absolute;
// bottom: 20px;
}
.operation {
display: flex;
justify-content: center;
align-items: center;
color: #4ea6ff;
.nselect {
justify-content: center;
align-items: center;
display: flex;
.jc {
margin-left: 20px;
cursor: pointer;
white-space: nowrap;
}
}
.tableSelect {
margin-right: 10px;
margin-left: -5px;
display: flex;
align-items: center;
justify-content: right;
white-space: nowrap;
}
}
}
.groupmain {
display: flex;
@@ -3583,6 +3818,55 @@ export default {
}
}
}
.projectscore{
.pjc_body{
margin-left:34px;
margin-right:34px;
.pjcb_header{
display: flex;
justify-content: space-between;
align-items: center;
margin:24px auto;
.edit_btn{
width: 100px;
// padding: 0px 26px 0px 26px;
height: 38px;
background: rgb(64, 158, 255);
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
cursor: pointer;
.edit {
width: 15px;
height: 15px;
background-image: url(@/assets/images/coursewareManage/export1.png);
background-size: 100% 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: rgb(255, 255, 255);
line-height: 36px;
margin-left: 5px;
}
}
}
.pjcb_content{
border: 1px solid #388BE1;
padding: 32px;
.pjcb_content :last-child{
margin-bottom:0px;
}
.content{
margin-bottom:24px;
}
}
}
}
}
.content6 {
width: 100%;
@@ -3867,6 +4151,19 @@ export default {
margin-right: 5px;
}
}
.lodalimg {
width: 120px;
height: 120px;
border: 1px dashed #387df7;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
.lodalimg {
display: flex;
white-space: nowrap;
}
}
.kqszbox {
.qdqtbox {
margin-left: 5px;
@@ -3957,4 +4254,104 @@ export default {
}
}
}
.DelModal {
.ant-modal {
.ant-modal-content {
width: 424px !important;
.ant-modal-body {
.delete {
z-index: 999;
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-icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/notice.png);
background-size: 100% 100%;
}
.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%;
}
}
.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;
}
}
}
}
}
}
}
}
</style>