mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-12 12:26:47 +08:00
585 lines
15 KiB
Vue
585 lines
15 KiB
Vue
<!--发布公告-->
|
||
<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> |