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

This commit is contained in:
岳佳鑫
2022-10-22 17:57:12 +08:00
11 changed files with 558 additions and 111 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,67 @@
<!--发布公告-->
<template>
<div class="noticeTitle"><span style="font-size: 18px;">公告</span>
<a-divider style="margin-top: 0px;margin-bottom:30px;"></a-divider>
<a-switch v-model:checked="noticeChecked" size="small"/><span style="margin-left: 16px;">开启</span>
<template v-if="noticeChecked">
<p style="margin-top: 35px;">公告内容</p>
<a-textarea v-model:value="noticeContent" show-count :maxlength="150" style="margin-top: -10px;margin-bottom:30px;height: 110px;"/>
<div class="publish"><div class="iconPub"></div><div class="btnText">发布</div></div>
</template>
</div>
</template>s
<script>
import { reactive,toRefs} from "vue";
export default {
name: "NoticePub",
setup(){
const state = reactive({
noticeChecked: true,
});
return{
...toRefs(state),
}
}
}
</script>
<style lang="scss">
.noticeTitle {
margin-left: 38px;
margin-right: 38px;
padding-top: 20px;
.publish {
width: 100px;
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;
float: right;
margin-top: 60px;
margin-bottom: 60px;
margin-right: 20px;
cursor: pointer;
.iconPub {
width: 15px;
height: 15px;
background-image: url(@/assets/images/taskpage/pub0.png);
background-size: 100% 100%;
color: rgb(255, 255, 255);
}
.btnText {
font-size: 14px;
font-weight: 400;
color: rgb(255, 255, 255);
line-height: 36px;
margin-left: 5px;
}
}
}
</style>

View File

@@ -0,0 +1,481 @@
<!--发布公告-->
<template>
<div class="content3">
<a-tabs v-model:activeKey="activeKeyScore">
<a-tab-pane key="1" tab="学员获取">
<div class="group">
<div class="groupleft">
<div class="groupname" style="width: 42px">姓名</div>
<a-input v-model:value="value" placeholder="请输入姓名" style="width: 131px"/>
</div>
<div class="groupright">
<div class="btn1">
<img src="../../assets/images/courseManage/search0.png" />
<span class="btn1text">搜索</span>
</div>
<div class="btn2">
<img src="../../assets/images/courseManage/reset1.png" />
<span class="btn2text">重置</span>
</div>
</div>
</div>
<div class="tab" style="margin: 20px 32px 30px 32px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tablecolumnStu"
:data-source="tabledataStu"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
/>
</div>
</div>
</a-tab-pane>
<a-tab-pane key="2" tab="榜单" force-render>
<div class="scorelist">
<div class="grouprightscore">
<div class="sbutton" @click="stuValue=!stuValue">
<div class="wh" :class="stuValue?'sImage0':'sImage'"></div>
<div :class="stuValue?'':'btn1'">学员积分榜</div>
</div>
<div class="sbutton" @click="stuValue=!stuValue">
<div class="wh" :class="stuValue?'group':'group0'" ></div>
<div :class="stuValue?'btn1':''">小组积分榜</div>
</div>
</div>
<div class="group" style="justify-content: center;">
<div class="groupleft">
<div class="groupname" style="width:42px">姓名</div>
<a-input
v-model:value="value"
placeholder="请输入姓名"
style="width:130px;"/>
</div>
<div class="groupright">
<div class="btn1" style="margin-left: 16px;;">
<img src="../../assets/images/courseManage/search0.png" />
<span class="btn1text">搜索</span>
</div>
<div class="btn2">
<img src="../../assets/images/courseManage/reset1.png" />
<span class="btn2text">重置</span>
</div>
</div>
</div>
<div class="radiobutton">
<a-radio-group v-model:value="todayvalue" button-style="solid" @change="changeday">
<a-radio-button class="today" value="1">今天</a-radio-button>
<a-radio-button class="today" value="2">七天</a-radio-button>
<a-radio-button class="today" value="3">近一个月</a-radio-button>
</a-radio-group>
</div>
<div class="slist">
<a-list :data-source="stuValue?datascoreg:datascore">
<template #renderItem="{ item }">
<div class="item">
<div v-if="item.id==1" class="itemleft" ><div class="itemimage" ><img src="../../assets/images/taskpage/gold.png"/></div><div class="itemid">{{ item.id}}</div></div>
<div v-else-if="item.id==2" class="itemleft"><div class="itemimage" ><img src="../../assets/images/taskpage/siler.png"/></div><div class="itemid">{{ item.id}}</div></div>
<div v-else-if="item.id==3" class="itemleft"><div class="itemimage" ><img src="../../assets/images/taskpage/copper.png"/></div><div class="itemid">{{ item.id}}</div></div>
<div v-else class="itemleft"><div class="elseid">{{ item.id}}</div></div>
<div class="itemcenter"> {{ item.name }}</div>
<div class="itemright">{{ item.score }}</div>
</div>
</template>
</a-list>
</div>
</div>
</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>当前设计下学员可以获得 10 积分</span></div>
<div class="content content2"><span>完成必修/选修获得 5 积分</span></div>
<div class="content content3"><span>优秀学员可获得 5 积分</span></div>
</div>
</div>
</div></a-tab-pane>
</a-tabs>
</div>
</template>
<script>
import { reactive,toRefs} from "vue";
export default {
name: "ProjectScore",
setup(){
const state = reactive({
tabledataStu: [
{
key: 1,
name: "小李",
bum: "产研部",
gangw: "产品经理",
group: "好好学习",
diploma: "0",
operation:"查看",
putin: "手动加入",
},
{
key: 2,
name: "小刘",
bum: "产研部",
gangw: "产品经理",
group: "天天向上",
diploma: "0",
operation:"查看",
putin: "手动加入",
},
{
key: 3,
name: "小王",
bum: "产研部",
gangw: "后端",
group: "好好学习",
diploma: "0",
operation:"查看",
putin: "手动加入",
},
{
key: 4,
name: "小赵",
bum: "产研部",
gangw: "前端",
group: "天天向上",
diploma: "0",
operation:"查看",
putin: "手动加入",
},
],
tablecolumnStu: [
{
title: "姓名",
dataIndex: "name",
key: "name",
width: 30,
align: "left",
className: "h",
},
{
title: "部门",
dataIndex: "bum",
key: "bum",
width: 40,
align: "center",
className: "h",
},
{
title: "岗位",
dataIndex: "gangw",
key: "gangw",
width: 40,
align: "center",
className: "h",
},
{
title: "所属小组",
dataIndex: "group",
key: "group",
width: 40,
align: "center",
className: "h",
},
{
title: "证书",
dataIndex: "diploma",
key: "diploma",
width: 40,
align: "center",
className: "h",
},
{
title: "操作",
dataIndex: "operation",
key: "operation",
width: 60,
align: "center",
className: "operation",
},
],
datascore:[
{
id:1,
name:"张三的名字很长很长很长",
score:"10分",
},
{
id:2,
name:"李四",
score:"10分",
},
{
id:3,
name:"王五的名字一定要比张三的还长",
score:"10分",
},
{
id:4,
name:"赵六",
score:"10分",
},
{
id:5,
name:"冯七",
score:"10分",
},
],
datascoreg:[
{
id:1,
name:"第一组的同学们",
score:"10分",
},
{
id:2,
name:"第2组的同学们",
score:"9分",
},
{
id:3,
name:"第3组的同学们",
score:"8分",
},
{
id:4,
name:"第4组的同学们",
score:"7分",
},
{
id:5,
name:"第五组的同学们",
score:"6分",
},
],
valueName: "", //排行榜输入姓名
valueDate: "", //排行榜输入日期
noticeChecked: true,
noticeContent: "请输入要发布的公告",
activeKeyScore:"1",
stuName:"请输入姓名",
todayvalue:"1",
tableDataTotal:30,
stuValue:false,
});
return{
...toRefs(state),
}
},
}
</script>
<style lang="scss">
.content3 {
margin-top: 20px;
.group {
display: flex;
justify-content: space-between;
.groupleft {
display: flex;
flex-wrap: wrap;
align-items: center;
margin-left: 32px;
.groupname {
height: 22px;
width: 70px;
color: #000000;
font-size: 14px;
}
}
}
.scorelist{
padding-left: 382px;
padding-right: 382px;
padding-bottom: 100px;
padding-top: 50px;
.grouprightscore{
display: flex;
justify-content: space-evenly;
margin-bottom: 30px;
text-align: center;
.sbutton{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.wh{
width: 40px;
height: 40px;
}
.sImage0{
background-image: url(@/assets/images/taskpage/stu0.png);
}
.sImage{
background-image: url(@/assets/images/taskpage/stu.png);
}
.group0{
background-image: url(@/assets/images/taskpage/group0.png);
}
.group{
background-image: url(@/assets/images/taskpage/group.png);
}
.btn1{
color: #409EFF;
}
}
.radiobutton{
margin-top: 23px;
margin-bottom: 23px;
justify-content: center;
display: flex;
text-align: center;
.today{
width: 105px;
}
}
.slist{
background-color: #f5f8fc;
padding-left: 20px;
padding-right: 20px;
padding-bottom: 20px;
padding-top: 10px;
font-size: 18px;
.item{
display: flex;
justify-content: space-evenly;
text-align: center;
border-bottom: none;
height: 60px;
align-items: center;
background-color: white;
border-radius: 21px;
margin-top: 10px;
.itemleft{
justify-content: center;
display: flex;
align-items: center;
width: 150px;
.itemid{
font-size: 46px;
font-family: math;
font-style: italic;
font-weight: 700;
color: #409EFF;
margin-left: 5px;
}
.elseid{
font-size: 26px;
font-family: math;
font-weight: 500;
margin-left: 40px;
}
}
.itemcenter{
width: 300px;
}
.itemright{
width:150px;
}
}
}
}
}
.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 #409EFF;
padding: 32px;
.pjcb_content :last-child{
margin-bottom:0px;
}
.content{
margin-bottom:24px;
}
margin-bottom:130px;
}
}
}
</style>

View File

@@ -785,84 +785,13 @@
</div>
</a-tab-pane>
<a-tab-pane key="4" tab="公告">
<div class="noticeTitle">
<h3>公告</h3>
<a-divider style="margin-top: -5px"></a-divider>
<a-switch
v-model:checked="noticeChecked"
style="size: small"
/><span style="margin-left: 13px">开启</span>
<p style="margin-top: 35px">公告内容</p>
<a-textarea
v-model:value="noticeContent"
placeholder="请输入要发布的公告"
show-count
:maxlength="150"
style="margin-top: -10px; height: 110px"
/>
<div class="publish">
<div class="iconPub"></div>
<div class="btnText">发布</div>
</div>
</div>
<NoticePub></NoticePub>
</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>
<ProjectScore></ProjectScore>
</a-tab-pane>
<a-tab-pane key="6" tab="排行榜">
<div class="content6">
<div class="title">排行榜</div>
@@ -1584,6 +1513,8 @@ import StuAdd from "../../components/drawers/StuAdd";
import ImportStu from "../../components/drawers/ImportStu";
import SeeStu from "../../components/drawers/SeeStu";
import ChangeGroup from "../../components/drawers/ChangeGroup";
import NoticePub from "../../components/drawers/NoticePub";
import ProjectScore from "../../components/drawers/ProjectScore";
import TaskImpStu from "../../components/drawers/TaskFaceIn";
export default {
name: "taskPage",
@@ -1601,7 +1532,10 @@ export default {
ImportStu,
SeeStu,
ChangeGroup,
NoticePub,
ProjectScore,
TaskImpStu,
},
setup() {
const state = reactive({
@@ -3619,42 +3553,7 @@ export default {
}
}
}
.noticeTitle {
margin-left: 38px;
margin-right: 38px;
padding-top: 20px;
.publish {
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;
float: right;
margin-top: 60px;
margin-bottom: 60px;
margin-right: 20px;
cursor: pointer;
.iconPub {
width: 15px;
height: 15px;
background-image: url(@/assets/images/taskpage/pub.png);
background-size: 100% 100%;
color: rgb(255, 255, 255);
}
.btnText {
font-size: 14px;
font-weight: 400;
color: rgb(255, 255, 255);
line-height: 36px;
margin-left: 5px;
}
}
}
}
.content3 {
margin-top: 20px;