Files
fe-manage/src/components/drawers/ProjectScore.vue
2022-10-24 16:18:41 +08:00

585 lines
15 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--发布公告-->
<template>
<div class="contentscore">
<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 class="ant-input"
v-model:value="value"
placeholder="请输入姓名"
/>
</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">
<img v-if=stuValue src="../../assets/images/taskpage/stu0.png"/>
<img v-else src="../../assets/images/taskpage/stu.png"/>
<div :class="stuValue ? '' : 'btn1'">学员积分榜</div>
</div>
<div class="sbutton" @click="stuValue = !stuValue">
<img v-if=stuValue src="../../assets/images/taskpage/group.png"/>
<img v-else src="../../assets/images/taskpage/group0.png"/>
<div :class="stuValue ? 'btn1' : ''">小组积分榜</div>
</div>
</div>
<div class="group" style="justify-content: center">
<div class="groupleft">
<div class="groupname">姓名</div>
<a-input class="ant-input"
v-model:value="value"
placeholder="请输入姓名"
/>
</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="btns">
<div class="edit_btn1">
<div class="btnText">取消</div>
</div>
<div class="edit_btn2">
<div class="btnText">确定</div>
</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>
<stu-score-detail v-model:Svisible="Svisible" />
</template>
<script>
import StuScoreDetail from "../../components/drawers/StuScoreDetail";
import { reactive, toRefs } from "vue";
export default {
name: "ProjectScore",
components:{
StuScoreDetail,
},
setup() {
const state = reactive({
tabledataStu: [
{
key: 1,
name: "小李",
bum: "产研部",
gangw: "产品经理",
group: "好好学习",
diploma: "0",
operation: "查看",
},
{
key: 2,
name: "小刘",
bum: "产研部",
gangw: "产品经理",
group: "天天向上",
diploma: "0",
operation: "查看",
},
{
key: 3,
name: "小王",
bum: "产研部",
gangw: "后端",
group: "好好学习",
diploma: "0",
operation: "查看",
},
{
key: 4,
name: "小赵",
bum: "产研部",
gangw: "前端",
group: "天天向上",
diploma: "0",
operation: "查看",
},
],
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,
Svisible:false,
});
const getTableData = () => {
let datas = state.tabledataStu;
datas.map((value) => {
{
//单层项目
value.operation = (
<div class="operation">
<div
class="jc"
onClick={() => {
state.Svisible = true;
}}
>
查看
</div>
</div>
);
}
});
state.tabledataStu = datas;
};
getTableData();
return {
...toRefs(state),
};
},
};
</script>
<style lang="scss">
.contentscore {
margin-top: 20px;
margin-bottom: 100px;
.ant-tabs-tab-btn {
font-size: 18px;
font-weight: 700;
}
.ant-input {
border-radius: 5px;
width: 130px;
height: 40px;
}
.group {
display: flex;
justify-content: space-between;
.groupleft {
display: flex;
align-items: center;
margin-left: 32px;
.groupname {
height: 22px;
width: 42px;
color: #000000;
font-size: 14px;
}
}
.groupright {
display: flex;
.btn1 {
width: 100px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 16px;
border: 1px solid #409eff;
border-radius: 8px;
background: #409eff;
cursor: pointer;
.btn1text {
color: #ffffff;
margin-left: 5px;
font-size: 14px;
}
}
.btn2 {
width: 100px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 32px;
border: 1px solid #409eff;
border-radius: 8px;
cursor: pointer;
background: #ffffff;
.btn2text {
color: #409eff;
margin-left: 5px;
font-size: 14px;
}
}
}
}
.ant-table-tbody{
.operation{
color: #409eff;
}
}
.scorelist {
padding-left: 20%;
padding-right: 20%;
padding-bottom: 100px;
padding-top: 50px;
.grouprightscore {
display: flex;
justify-content: center;
margin-bottom: 30px;
text-align: center;
.sbutton {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-left: 10%;
margin-right: 10%;
}
.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;
.btns {
display: flex;
.edit_btn1 {
width: 100px;
// padding: 0px 26px 0px 26px;
height: 38px;
margin-left: 15px;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
cursor: pointer;
background-color: rgb(255, 255, 255);
.btnText {
font-size: 14px;
font-weight: 400;
color: rgb(64, 158, 255);
line-height: 36px;
margin-left: 5px;
}
}
.edit_btn2 {
width: 100px;
// padding: 0px 26px 0px 26px;
height: 38px;
margin-left: 15px;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
cursor: pointer;
background-color: rgb(64, 158, 255);
.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>