feat:合并

This commit is contained in:
songwc
2022-10-25 15:33:41 +08:00
24 changed files with 2427 additions and 930 deletions

55
src/api/index1.js Normal file
View File

@@ -0,0 +1,55 @@
import http from "./config";
// import qs from 'qs';
/**
* 接口传参数方式get
* axios.get('/user', {
* params: {
* id: 12345
* name: user
* }
* }).then(res => console.log(res))
*
* 接口传参三种方式post/put/patch
*
* 1.'Content-Type'= 'multipart/form-data',传参格式为 formData。
* (全局请求头:'Content-Type'= 'application/x-www-form-urlencoded'
* request的Header:'Content-Type'= 'multipart/form-data'
* var formData=new FormData();
* formData.append('user',123456);formData.append('pass',12345678);
* axios.post("/notice",formData).then()
*
* 2.'Content-Type'= 'application/x-www-form-urlencoded',传参格式为 query 形式,使用$qs.stringify。
* (全局请求头:'Content-Type'= 'application/x-www-form-urlencoded'
* request的Header:'Content-Type'= 'application/x-www-form-urlencoded'
* let data = {"code":"1234","name":"yyyy"};
* axios.post(`${this.$url}/test/testRequest`,qs.stringify({data})).then()
*
* 3.'Content-Type'= 'application/json传参格式为 raw (JSON格式)。
* (全局请求头:'Content-Type'= 'application/x-www-form-urlencoded'
* request的Header:'Content-Type'= 'application/json;charset=UTF-8'
* let data = {"code":"1234","name":"yyyy"}
* axios.post(`${this.$url}/test/testRequest`,data).then()
*
*/
// 接口-请求
// 获取学习路径图列表
export const getLearnPath = (obj) => http.post('/admin/router/list', obj);
//获取关卡
export const getChapter = (obj) => http.post('/admin/router/detail', { params: obj });
//新建或编辑关卡
export const editChapter = (obj) => http.post('/admin/router/editChapter', obj);
// 测试方法
// import * as api from '../../api/index'
// api.getLearnPath({}).then(res => {
// console.log(res)
// }).catch(err => {
// console.log(err)
// })

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

View File

@@ -45,31 +45,94 @@ body {
/*对水平流动条有效*/
}
::-moz-scrollbar {
width: 6px;
/*对垂直流动条有效*/
height: 6px;
/*对水平流动条有效*/
}
::-o-scrollbar {
width: 6px;
/*对垂直流动条有效*/
height: 6px;
/*对水平流动条有效*/
}
.scrollbar {
width: 6px;
/*对垂直流动条有效*/
height: 6px;
/*对水平流动条有效*/
}
/*定义滚动条的轨道颜色、内阴影及圆角*/
::-webkit-scrollbar-track {
background-color: rgba(239, 244, 252, 1);
border-radius: 6px;
}
::-moz-scrollbar-track {
background-color: rgba(239, 244, 252, 1);
border-radius: 6px;
}
::-o-scrollbar-track {
background-color: rgba(239, 244, 252, 1);
border-radius: 6px;
}
.scrollbar-track {
background-color: rgba(239, 244, 252, 1);
border-radius: 6px;
}
/*定义滑块颜色、内阴影及圆角*/
::-webkit-scrollbar-thumb {
border-radius: 3px;
background-color: rgba(78, 166, 255, 1);
}
::-moz-scrollbar-thumb {
border-radius: 3px;
background-color: rgba(78, 166, 255, 1);
}
::-o-scrollbar-thumb {
border-radius: 3px;
background-color: rgba(78, 166, 255, 1);
}
.scrollbar-thumb {
border-radius: 3px;
background-color: rgba(78, 166, 255, 1);
}
/*定义两端按钮的样式*/
::-webkit-scrollbar-button {
background-color: cyan;
display: none;
}
::-moz-scrollbar-button {
background-color: cyan;
display: none;
}
::-o-scrollbar-button {
background-color: cyan;
display: none;
}
.scrollbar-button {
background-color: cyan;
display: none;
}
/*定义右下角汇合处的样式*/
::-webkit-scrollbar-corner {
background: rgba(239, 244, 252, 1);
;
}
::-moz-scrollbar-corner {
background: rgba(239, 244, 252, 1);
;
}
::-o-scrollbar-corner {
background: rgba(239, 244, 252, 1);
;
}
.scrollbar-corner {
background: rgba(239, 244, 252, 1);
;
}
//隐藏滚动条----------------------------------------------------------------
//禁止选中----------------------------------------------------------

View File

@@ -79,11 +79,11 @@
const columns1 = [
{
title: "案例标题",
width: "35%",
width: "40%",
dataIndex: "title",
key: "num",
align: "center",
ellipsis: true,
ellipsis: true,
},
{
title: "作者",
@@ -94,7 +94,7 @@
},
{
title: "导入时间",
width: "40%",
width: "35%",
dataIndex: "time",
key: "time",
align: "center",

View File

@@ -3,7 +3,7 @@
:visible="AddImpStuvisible"
class="drawerStyle AddLevelImpStu"
placement="right"
width="40%"
width="800px"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
@@ -142,9 +142,8 @@ export default {
<style lang="scss" >
.AddLevelImpStu {
.drawerMain {
min-width: 500px;
min-width: 450px;
margin: 0px 32px 0px 32px;
overflow-x: scroll;
display: flex;
flex-direction: column;
.header {
@@ -153,6 +152,7 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
flex-shrink: 0;
// background-color: red;
margin-bottom: 20px;
.headerTitle {
@@ -164,6 +164,7 @@ export default {
}
}
.main {
overflow: scroll;
.minatitl {
display: flex;
.up1 {
@@ -185,6 +186,7 @@ export default {
font-size: 14px;
font-weight: 400;
color: #333333;
white-space: nowrap;
}
.right {
margin-left: 6px;

View File

@@ -16,15 +16,15 @@
/>
</div>
<div class="main">
<div class="onerow">将此学员移动到</div>
<div class="secondrow">
<a-select
v-model:value="value"
style="width: 264px;border-radius: 8px"
placeholder="好好学习"
:options="stugroupList"
/>
</div>
<div class="onerow">将此学员移动到</div>
<div class="secondrow">
<a-select
v-model:value="value"
style="width: 264px; border-radius: 8px"
placeholder="好好学习"
:options="stugroupList"
/>
</div>
</div>
<div class="btnn">
<button class="btn1">取消</button>
@@ -32,7 +32,6 @@
</div>
</div>
</a-drawer>
</template>
<script>
@@ -47,23 +46,23 @@ export default {
},
setup(props, ctx) {
const state = reactive({
stugroupList: [
{
id: "1",
value: "好好学习",
label: "好好学习",
},
{
id: "2",
value: "天天向上",
label: "天天向上",
},
{
id: "3",
value: "好好学习",
label: "好好学习",
},
],
stugroupList: [
{
id: "1",
value: "好好学习",
label: "好好学习",
},
{
id: "2",
value: "天天向上",
label: "天天向上",
},
{
id: "3",
value: "好好学习",
label: "好好学习",
},
],
});
const closeDrawer = () => {
ctx.emit("update:Changevisible", false);
@@ -83,9 +82,8 @@ export default {
};
</script>
<style lang="scss" >
<style lang="scss">
.changegroup {
.drawerMain {
min-width: 600px;
margin: 0px 32px 0px 32px;
@@ -109,25 +107,24 @@ export default {
}
}
.main {
.onerow {
margin: 32px 0 32px 24px;
color: rgba(51, 51, 51, 1);
font-size: 16px;
.onerow {
margin: 32px 0 32px 24px;
color: rgba(51, 51, 51, 1);
font-size: 16px;
}
.secondrow {
margin-left: 24px;
.ant-select {
height: 40px;
}
.secondrow {
margin-left: 24px;
.ant-select {
height: 40px;
}
.ant-select-selector {
height: 100%;
border-radius: 8px;
}
.ant-select-selection-search-input {
height: 40px;
}
.ant-select-selector {
height: 100%;
border-radius: 8px;
}
.ant-select-selection-search-input {
height: 40px;
}
}
}
.btnn {
height: 72px;
@@ -161,4 +158,4 @@ export default {
}
}
}
</style>
</style>

View File

@@ -145,6 +145,7 @@ export default {
align-items: center;
// background-color: red;
margin-bottom: 20px;
flex-shrink: 0;
.headerTitle {
font-size: 18px;
font-weight: 600;

View File

@@ -71,7 +71,7 @@
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 900, y: 560 }"
:scroll="{ x: 900 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
@@ -324,7 +324,7 @@ export default {
height: 100%;
// background-color: #bfa;
// overflow-y: auto;
overflow-y: auto;
.endtime {
font-size: 16px;
font-weight: 500;

View File

@@ -1,11 +1,12 @@
<!--发布公告-->
<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>
<div class="split"></div>
<div class="noticeTitle">
<div class="notitle"><span class="titlespan">公告</span></div>
<div class="switch"><a-switch v-model:checked="noticeChecked" size="small"/><span style="margin-left: 16px;">开启</span></div>
<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;"/>
<p>公告内容</p>
<a-textarea v-model:value="noticeContent" :maxlength="150" placeholder="公告信息最多输入150个字" style="margin-top: -10px;height: 120px;"/>
<div class="publish"><div class="iconPub"></div><div class="btnText">发布</div></div>
</template>
@@ -29,9 +30,26 @@ export default {
</script>
<style lang="scss">
.noticeTitle {
margin-left: 38px;
margin-right: 38px;
margin-left: 32px;
margin-right: 32px;
padding-top: 20px;
.notitle{
height: 55px;
border-bottom:1px solid #ededed;
position: relative;
.titlespan{
font-size: 18px;
position: absolute;
left: 0;
bottom: 0px;
}
}
.switch{
display: flex;
align-items: center;
height: 90px;
}
.publish {
width: 100px;
height:38px;
@@ -43,7 +61,7 @@ export default {
justify-content: center;
flex-shrink: 0;
float: right;
margin-top: 60px;
margin-top: 24px;
margin-bottom: 60px;
margin-right: 20px;
cursor: pointer;

View File

@@ -48,7 +48,7 @@
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:scroll="{ x: 900, y: 400 }"
:scroll="{ x: 900}"
:pagination="false"
:row-selection="{
columnWidth: 30,
@@ -92,7 +92,7 @@
v-model:visible="cancelModal"
:footer="null"
:closable="closeCancel"
wrapClassName="CopyModal"
wrapClassName="copyModal"
centered="true"
>
<div class="delete">
@@ -104,7 +104,7 @@
<div class="close_exit" @click="closeCancelModal"></div>
</div>
<div class="body">
<span>是否取消当前用户对此数据的权限</span>
<span>您确定要取消该用户的授权吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
@@ -332,7 +332,117 @@ export default {
padding: 0px;
}
}
.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/notice.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;
}
}
}
}
}
}
}
}
.powerList {
// width: 80%;
.ant-drawer-content-wrapper {
@@ -371,13 +481,13 @@ export default {
width: 100%;
// height: 100%;
// background-color: #bfa;
// overflow-y: auto;
overflow-y: auto;
.search {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 10px;
justify-content: space-between;
//justify-content: space-between;
.leftchoose {
display: flex;
margin-right: 20px;
@@ -428,15 +538,15 @@ export default {
}
.btn1 {
background: #388be1;
background: #409EFF;
color: #ffffff;
}
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #409EFF;
border: 1px solid #409EFF;
}
}
}
@@ -489,6 +599,12 @@ export default {
// position: absolute;
// bottom: 20px;
// margin-bottom: 20px;
.ant-pagination-prev, .ant-pagination-next,.ant-pagination-options {
margin-bottom: 10px;
}
.ant-pagination-item {
margin-bottom: 10px;
}
}
// .tab {
// .ant-table-thead > tr > th {

View File

@@ -1,5 +1,6 @@
<!--发布公告-->
<template>
<div class="split"></div>
<div class="contentscore">
<a-tabs v-model:activeKey="activeKeyScore">
<a-tab-pane key="1" tab="学员获取">
@@ -22,8 +23,8 @@
</div>
</div>
</div>
<div class="tab" style="margin: 20px 32px 30px 32px">
<a-table
<div class="tableBox" style="margin: 20px 32px 30px 32px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tablecolumnStu"
:data-source="tabledataStu"
@@ -63,7 +64,7 @@
<div class="group" style="justify-content: center">
<div class="groupleft">
<div class="groupname">姓名</div>
<a-input class="ant-input"
<a-input class="ant-input" style="width:152px"
v-model:value="value"
placeholder="请输入姓名"
/>
@@ -90,37 +91,38 @@
<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 class="listdiv"> <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 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 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 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 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="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 class="itemcenter">{{ item.name }}</div>
<div class="itemright">{{ item.score }}</div>
</div>
</template>
</a-list>
</div>
</div>
</div>
</a-tab-pane>
@@ -366,8 +368,8 @@ export default {
font-weight: 700;
}
.ant-input {
border-radius: 5px;
width: 130px;
border-radius: 8px;
width: 264px;
height: 40px;
}
.group {
@@ -424,16 +426,60 @@ export default {
}
}
.tableBox {
.ant-table-selection-column {
padding: 0px !important;
// padding-left: 45px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1) !important;
color: rgba(0, 0, 0, 0.8500);
}
.ant-table-cell {
color: rgba(0, 0, 0, 0.6500);
}
.ant-table-selection-column {
padding: 0 !important;
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.ant-table-tbody > tr > td {
border-bottom: 1px solid rgba(240, 244, 254, 1);
padding: 16px 16px;
.operation {
color: rgba(56, 125, 247, 1);
cursor: pointer;
}
}
.ant-table-tbody{
.pa {
margin-top: 15px;
// height: 20px;
// background-color: red;
display: flex;
justify-content: center;
// bottom: 20px;
}
}
.ant-table-tbody{
.operation{
color: #409eff;
}
}
.scorelist {
padding-left: 20%;
padding-right: 20%;
padding-bottom: 100px;
padding-top: 50px;
.grouprightscore {
@@ -446,8 +492,8 @@ export default {
flex-direction: column;
align-items: center;
justify-content: center;
margin-left: 10%;
margin-right: 10%;
margin-left: 90px;
margin-right: 90px;
}
.btn1 {
@@ -455,21 +501,28 @@ export default {
}
}
.radiobutton {
margin-top: 23px;
margin-bottom: 23px;
justify-content: center;
display: flex;
text-align: center;
.today {
width: 105px;
width: 120px;
height: 32px;
}
}
.slist {
.listdiv{
display: flex;
justify-content: space-evenly;
text-align: center;
.slist {
width: 736px;
background-color: #f5f8fc;
padding-left: 20px;
padding-right: 20px;
padding-left: 28px;
padding-right: 28px;
padding-bottom: 20px;
padding-top: 10px;
padding-top: 16px;
font-size: 18px;
.item {
@@ -477,7 +530,7 @@ export default {
justify-content: space-evenly;
text-align: center;
border-bottom: none;
height: 60px;
height: 56px;
align-items: center;
background-color: white;
border-radius: 21px;
@@ -488,7 +541,7 @@ export default {
align-items: center;
width: 150px;
.itemid {
font-size: 46px;
font-size: 40px;
font-family: math;
font-style: italic;
font-weight: 700;
@@ -510,6 +563,7 @@ export default {
}
}
}
}
}
.projectscore {
.pjc_body {
@@ -582,4 +636,4 @@ export default {
}
</style>
</style>

View File

@@ -69,7 +69,7 @@
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 500, y: 560 }"
:scroll="{ x: 500}"
@expand="expandTable"
:pagination="false"
:row-selection="{
@@ -148,7 +148,7 @@
:data-source="tabledata1"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 500, y: 560 }"
:scroll="{ x: 500 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
@@ -229,7 +229,7 @@
:data-source="tabledata2"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 500, y: 560 }"
:scroll="{ x: 500 }"
@expand="expandTable"
:pagination="false"
:row-selection="{

View File

@@ -17,109 +17,219 @@
</div>
<div class="main">
<div class="stuinfor">
<div class="portrait"><img src="../../assets/images/studentimg/character.png"/></div>
<div class="stumation">
<div class="stuname">王明</div>
<div class="stugangw">产研部门 - 产品经理</div>
<div class="portrait">
<img src="../../assets/images/studentimg/character.png" />
</div>
<div class="stumation">
<div class="stuname">王明</div>
<div class="stugangw">产研部门 - 产品经理</div>
</div>
<div class="sortbox">
<div class="sortname">进度排名</div>
<div class="sortnub">
<span class="nub1">2</span>
<span class="total">/10</span>
</div>
<div class="sortbox">
<div class="sortname">进度排名</div>
<div class="sortnub">
<span class="nub1">2</span>
<span class="total">/10</span>
</div>
</div>
<a-divider
type="vertical"
style="
height: 49px;
margin-left: 34px;
background-color: rgba(170, 166, 166, 0.3);
"
/>
<div class="sortbox" style="margin-left: 34px">
<div class="sortname">完成必修</div>
<div class="sortnub">
<span class="nub1">3</span>
<span class="total">/10</span>
</div>
<a-divider type="vertical" style="height: 49px;margin-left: 34px; background-color: rgba(170, 166, 166, 0.3)" />
<div class="sortbox" style="margin-left: 34px">
<div class="sortname">完成必修</div>
<div class="sortnub">
<span class="nub1">3</span>
<span class="total">/10</span>
</div>
</div>
<a-divider type="vertical" style="height: 49px;margin-left: 34px; background-color: rgba(170, 166, 166, 0.3)" />
<div class="sortbox" style="margin-left: 34px">
<div class="sortname">已修证书</div>
<div class="sortnub">
<span class="nub1">1</span>
</div>
</div>
<a-divider
type="vertical"
style="
height: 49px;
margin-left: 34px;
background-color: rgba(170, 166, 166, 0.3);
"
/>
<div class="sortbox" style="margin-left: 34px">
<div class="sortname">已修证书</div>
<div class="sortnub">
<span class="nub1">1</span>
</div>
</div>
</div>
<div class="secondrow">
<div class="rowleft">产品经理管理 - 腾飞班1</div>
<div class="rowbox" @click="showProMess">
<div class="shuom">说明</div>
<div><img src="../../assets/images/studentimg/chak.png"/></div>
</div>
<div class="rowleft">产品经理管理 - 腾飞班1</div>
<div class="rowbox" @click="showProMess">
<div class="shuom">说明</div>
<div><img src="../../assets/images/studentimg/chak.png" /></div>
</div>
</div>
<div class="mainbox">
<div class="rowtitle">
<div class="titleimg"><img src="../../assets/images/studentimg/open.png"/></div>
<div class="titletext">阶段1 腾飞班阶段1</div>
<div class="rowtitle" @click="changeDown">
<div class="titleimg">
<img
:src="
showDown
? require('../../assets/images/studentimg/open.png')
: require('../../assets/images/studentimg/close.png')
"
/>
</div>
<div class="titletext">阶段1 腾飞班阶段1</div>
</div>
<div :style="{ display: showDown ? 'block' : 'none' }">
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/zai.png" /></div>
<div class="text1">在线</div>
<div class="text2">如何成为一个产品经理</div>
</div>
<div class="alreadyclass">
<div class="alimg">
<img src="../../assets/images/studentimg/complete.png" />
</div>
<div class="altext">已完成</div>
</div>
</div>
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/zai.png"/></div>
<div class="text1">在线</div>
<div class="text2">如何成为一个产品经理</div>
</div>
<div class="alreadyclass">
<div class="alimg"><img src="../../assets/images/studentimg/complete.png"/></div>
<div class="altext">已完成</div>
<div class="leftclass">
<div><img src="../../assets/images/leveladd/zhi.png" /></div>
<div class="text1">直播</div>
<div class="text2">管理者播课</div>
</div>
<div class="alreadyclass">
<div class="alimg">
<img src="../../assets/images/studentimg/complete.png" />
</div>
<div class="altext">已完成</div>
</div>
</div>
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/zhi.png"/></div>
<div class="text1">直播</div>
<div class="text2">管理者播</div>
</div>
<div class="alreadyclass">
<div class="alimg"><img src="../../assets/images/studentimg/complete.png"/></div>
<div class="altext">已完成</div>
<div class="leftclass">
<div><img src="../../assets/images/leveladd/mian.png" /></div>
<div class="text1">面授</div>
<div class="text2">管理面授</div>
</div>
<div class="alreadyclass">
<div class="alimg">
<img src="../../assets/images/studentimg/notice.png" />
</div>
<div class="altext">未完成</div>
</div>
</div>
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/mian.png"/></div>
<div class="text1">面授</div>
<div class="text2">管理面授课</div>
</div>
<div class="alreadyclass">
<div class="alimg"><img src="../../assets/images/studentimg/notice.png"/></div>
<div class="altext">未完成</div>
<div class="leftclass">
<div><img src="../../assets/images/leveladd/huo.png" /></div>
<div class="text1">活动</div>
<div class="text2">管理者活动</div>
</div>
<div class="alreadyclass">
<div class="alimg">
<img src="../../assets/images/studentimg/notice.png" />
</div>
<div class="altext">未完成</div>
</div>
</div>
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/huo.png"/></div>
<div class="text1">活动</div>
<div class="text2">管理者活动</div>
</div>
<div class="alreadyclass">
<div class="alimg"><img src="../../assets/images/studentimg/notice.png"/></div>
<div class="altext">未完成</div>
</div>
</div>
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/zuo.png"/></div>
<div class="text1">作业</div>
<div class="text2">管理者作业</div>
</div>
<div class="alreadyclass">
<div class="alimg"><img src="../../assets/images/studentimg/notice.png"/></div>
<div class="altext">未完成</div>
<div class="leftclass">
<div><img src="../../assets/images/leveladd/zuo.png" /></div>
<div class="text1">作业</div>
<div class="text2">管理者作业</div>
</div>
<div class="alreadyclass">
<div class="alimg">
<img src="../../assets/images/studentimg/notice.png" />
</div>
<div class="altext">未完成</div>
</div>
</div>
</div>
</div>
<div class="mainbox" style="margin-top: 15px; height: 56px">
<div class="rowtitle">
<div class="titleimg"><img src="../../assets/images/studentimg/close.png"/></div>
<div class="titletext">阶段2 腾飞班阶段2</div>
<div class="mainbox">
<div class="rowtitle" @click="changeDown1">
<div class="titleimg">
<img
:src="
showDown1
? require('../../assets/images/studentimg/open.png')
: require('../../assets/images/studentimg/close.png')
"
/>
</div>
<div class="titletext">阶段2 腾飞班阶段2</div>
</div>
<div :style="{ display: showDown1 ? 'block' : 'none' }">
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/zai.png" /></div>
<div class="text1">在线</div>
<div class="text2">如何成为一个产品经理</div>
</div>
<div class="alreadyclass">
<div class="alimg">
<img src="../../assets/images/studentimg/complete.png" />
</div>
<div class="altext">已完成</div>
</div>
</div>
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/zhi.png" /></div>
<div class="text1">直播</div>
<div class="text2">管理者播课</div>
</div>
<div class="alreadyclass">
<div class="alimg">
<img src="../../assets/images/studentimg/complete.png" />
</div>
<div class="altext">已完成</div>
</div>
</div>
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/mian.png" /></div>
<div class="text1">面授</div>
<div class="text2">管理面授课</div>
</div>
<div class="alreadyclass">
<div class="alimg">
<img src="../../assets/images/studentimg/notice.png" />
</div>
<div class="altext">未完成</div>
</div>
</div>
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/huo.png" /></div>
<div class="text1">活动</div>
<div class="text2">管理者活动</div>
</div>
<div class="alreadyclass">
<div class="alimg">
<img src="../../assets/images/studentimg/notice.png" />
</div>
<div class="altext">未完成</div>
</div>
</div>
<div class="rowclass">
<div class="leftclass">
<div><img src="../../assets/images/leveladd/zuo.png" /></div>
<div class="text1">作业</div>
<div class="text2">管理者作业</div>
</div>
<div class="alreadyclass">
<div class="alimg">
<img src="../../assets/images/studentimg/notice.png" />
</div>
<div class="altext">未完成</div>
</div>
</div>
</div>
</div>
</div>
<div class="btnn">
<button class="btn2">关闭</button>
@@ -144,6 +254,8 @@ export default {
setup(props, ctx) {
const state = reactive({
Provisible: false,
showDown: true,
showDown1: false,
});
const closeDrawer = () => {
ctx.emit("update:Seevisible", false);
@@ -155,12 +267,19 @@ export default {
const afterVisibleChange = (bool) => {
console.log("state", bool);
};
const changeDown = () => {
state.showDown = !state.showDown;
};
const changeDown1 = () => {
state.showDown1 = !state.showDown1;
};
return {
...toRefs(state),
afterVisibleChange,
closeDrawer,
showProMess,
changeDown,
changeDown1,
// change,
};
},
@@ -192,6 +311,7 @@ export default {
align-items: center;
// background-color: red;
margin-bottom: 20px;
flex-shrink: 0;
.headerTitle {
font-size: 18px;
font-weight: 600;
@@ -201,144 +321,147 @@ export default {
}
}
.main {
display: flex;
flex-direction: column;
.stuinfor {
display: flex;
align-items: center;
height: 133px;
margin-top: 20px;
margin-right: 37px;
background-image: url("../../assets/images/studentimg/bgimg.png");
background-repeat: no-repeat;
background-position: right;
.stumation {
margin-left: 24px;
.stuname {
color: #333333;
font-size: 18px;
}
.stugangw {
color: #999999;
font-size: 16px;
margin-top: 7px;
}
display: flex;
flex-direction: column;
overflow-y: auto;
padding-bottom: 80px;
.stuinfor {
display: flex;
align-items: center;
height: 133px;
margin-top: 20px;
margin-right: 37px;
background-image: url("../../assets/images/studentimg/bgimg.png");
background-repeat: no-repeat;
background-position: right;
.stumation {
margin-left: 24px;
.stuname {
color: #333333;
font-size: 18px;
}
.sortbox {
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 114px;
.sortname {
color: #666660;
font-size: 14px;
}
.sortnub {
display: flex;
justify-content: center;
margin-top: 7px;
.nub1 {
color: #0060FF;
font-size: 22px;
}
.total {
color: #999999;
font-size: 22px;
}
}
}
}
.secondrow {
margin-top: 32px;
display: flex;
.rowleft {
color: rgba(51, 51, 51, 1);
.stugangw {
color: #999999;
font-size: 16px;
}
.rowbox {
width: 64px;
height: 24px;
margin-top: 7px;
}
}
.sortbox {
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 114px;
.sortname {
color: #666660;
font-size: 14px;
}
.sortnub {
display: flex;
justify-content: center;
align-items: center;
margin-left: 24px;
border: 1px solid rgba(64, 158, 255, 1);
background: rgba(64, 158, 255, 0.1);
cursor: pointer;
.shuom {
color: rgba(64, 158, 255, 1);
font-size: 14px;
line-height: 20px;
margin-right: 5px;
margin-top: 7px;
.nub1 {
color: #0060ff;
font-size: 22px;
}
}
}
.mainbox {
height: 463px;
.total {
color: #999999;
font-size: 22px;
}
}
}
}
.secondrow {
margin-top: 32px;
display: flex;
.rowleft {
color: rgba(51, 51, 51, 1);
font-size: 16px;
}
.rowbox {
width: 64px;
height: 24px;
display: flex;
justify-content: center;
align-items: center;
margin-left: 24px;
border: 1px solid rgba(64, 158, 255, 1);
background: rgba(64, 158, 255, 0.1);
cursor: pointer;
.shuom {
color: rgba(64, 158, 255, 1);
font-size: 14px;
line-height: 20px;
margin-right: 5px;
}
}
}
.mainbox {
// height: 463px;
margin-right: 37px;
margin-top: 32px;
border: 1px solid rgba(221, 238, 255, 1);
border-radius: 6px;
.rowtitle {
height: 56px;
background: rgba(240, 246, 252, 1);
display: flex;
align-items: center;
.titleimg {
width: 20px;
height: 20px;
margin-left: 23px;
}
.titletext {
color: rgba(51, 51, 51, 1);
font-size: 16px;
font-weight: 500;
margin-left: 16px;
}
height: 56px;
background: rgba(240, 246, 252, 1);
display: flex;
align-items: center;
.titleimg {
width: 20px;
height: 20px;
margin-left: 23px;
}
.titletext {
color: rgba(51, 51, 51, 1);
font-size: 16px;
font-weight: 500;
margin-left: 16px;
}
}
.rowclass {
height: 81px;
border-bottom: 1px solid rgba(221, 238, 255, 1);
height: 81px;
border-bottom: 1px solid rgba(221, 238, 255, 1);
display: flex;
justify-content: space-between;
align-items: center;
.leftclass {
display: flex;
justify-content: space-between;
margin-left: 25px;
align-items: center;
.leftclass {
display: flex;
margin-left: 25px;
align-items: center;
.text1 {
color: #000000;
font-size: 14px;
font-weight: 500;
margin-left: 25px;
}
.text2 {
color: rgba(51, 51, 51, 0.8);
font-size: 14px;
margin-left: 65px;
}
.text1 {
color: #000000;
font-size: 14px;
font-weight: 500;
margin-left: 25px;
}
.alreadyclass {
display: flex;
margin-right: 57px;
.alimg {
height: 16px;
width: 16px;
}
.altext {
color: rgba(56, 125, 247, 1);
font-size: 14px;
margin-left: 16px;
}
.text2 {
color: rgba(51, 51, 51, 0.8);
font-size: 14px;
margin-left: 65px;
}
}
.alreadyclass {
display: flex;
margin-right: 57px;
.alimg {
height: 16px;
width: 16px;
}
.altext {
color: rgba(56, 125, 247, 1);
font-size: 14px;
margin-left: 16px;
}
}
}
}
}
}
.btnn {
height: 72px;
width: 100%;
position: absolute;
bottom: 0;
background-color: #fff;
left: 0;
display: flex;
align-items: center;

View File

@@ -72,7 +72,7 @@
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 500, y: 560 }"
:scroll="{ x: 500 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
@@ -156,7 +156,7 @@
:data-source="tabledata1"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 500, y: 560 }"
:scroll="{ x: 500}"
@expand="expandTable"
:pagination="false"
:row-selection="{
@@ -246,7 +246,7 @@
:data-source="tabledata2"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 500, y: 560 }"
:scroll="{ x: 500 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
@@ -1073,7 +1073,7 @@ export default {
}
.main {
display: flex;
// height: 80%;
//height: 80%;
margin-bottom: 72px;
overflow-y: auto;
.left {
@@ -1274,7 +1274,8 @@ export default {
// bottom: 20px;
.ant-pagination-item,
.ant-pagination-prev,
.ant-pagination-next {
.ant-pagination-next,
.ant-pagination-options {
margin-bottom: 10px;
}
}

View File

@@ -23,8 +23,6 @@
:columns="tablecolumns"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 900, y: 560 }"
@expand="expandTable"
:pagination="false"
@@ -218,16 +216,14 @@
overflow-x: scroll;
display: flex;
flex-direction: column;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
// background-color: red;
margin-bottom: 20px;
flex-shrink: 0;
.headerTitle {
font-size: 18px;
font-weight: 600;
@@ -252,6 +248,7 @@
.tableBox {
padding-bottom: 100px;
.ant-table-selection-column {
padding: 0px !important;
// padding-left: 45px !important;
@@ -290,15 +287,11 @@
}
}
.pa {
// left: 0;
margin-top: 15px;
margin-top: 20px;
width: 100%;
// height: 20px;
// background-color: red;
flex:1;
display: flex;
justify-content: center;
// position: absolute;
// bottom: 20px;
}
}
}
@@ -313,7 +306,7 @@
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
background-color: #ffffff;
.btn1 {
width: 100px;
height: 40px;

View File

@@ -6,7 +6,7 @@ const routes = [
{
path: '/',
name: '首页',
redirect: routesConfig[0].path
redirect: '/learningpath'
},
...routesConfig
]

View File

@@ -40,17 +40,19 @@
:placeholder="[' 开始时间', ' 结束时间']"
/>
</div>
<div class="btn btn1">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btnn btn2">
<div class="search"></div>
<div class="btnText">重置</div>
<div style="display: flex;margin-bottom: 20px">
<div class="btn btn1">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btnn btn2">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
</div>
</div>
<div class="btns">
<!-- <router-link to="/projectadd">
<div class="btn btn3">
<div class="search"></div>
@@ -64,6 +66,17 @@
</div>
</div>
<!-- 搜索框及按钮 -->
<!-- 无数据 -->
<div class="datanull" style="display: none">
<div class="nodata_box">
<div class="left"><img src="../../assets/images/taskpage/left1.png"/></div>
<div class="center"><img src="../../assets/images/leveladd/picture.png"/></div>
<div class="text1">无数据</div>
<div class="text2">请添加路径</div>
<div class="right"><img src="../../assets/images/leveladd/right.png"/></div>
</div>
</div>
<!-- 无数据 -->
<!-- 表格 -->
<div class="tableBox" style="padding-bottom: 160px; position: relative">
<a-table
@@ -194,7 +207,6 @@
</div>
</div></a-modal
>
<!-- 编辑路径弹窗 -->
<a-modal
@@ -537,6 +549,7 @@ import OwnerShip from "../../components/drawers/Ownership";
import PowerList from "../../components/drawers/PowerList";
import QueryRight from "../../components/drawers/QueryRight";
import ManageRight from "../../components/drawers/ManageRight";
import * as api from "../../api/index1";
export default {
name: "learningPath",
components: { OwnerShip, PowerList, QueryRight, ManageRight },
@@ -787,8 +800,53 @@ export default {
];
return columns;
};
//获取学习路径列表
const getLearnPath = () => {
let obj = {
beginTime: 0,
endTime: 0,
name: "",
pageNo: 0,
pageSize: 0,
status: 0,
};
api
.getLearnPath(obj)
.then((res) => {
console.log("获取路径列表数据", res);
})
.catch((err) => {
console.log("获取学习路径失败", err);
});
let getChapterObj = {
routerId: 0,
};
api
.getChapter(getChapterObj)
.then((res) => {
console.log("获取关卡数据", res);
})
.catch((err) => {
console.log("获取关卡数据失败", err);
});
// let editChapterObj = {
// name: "测试关卡",
// remark: "这是测试关卡说明",
// routerId: 0,
// };
// api
// .editChapter(editChapterObj)
// .then((res) => {
// console.log("添加测试关卡数据", res);
// })
// .catch((err) => {
// console.log("添加测试关卡数据失败", err);
// });
};
onMounted(() => {
// console.log("执行");
getLearnPath();
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
@@ -874,18 +932,28 @@ export default {
>
发布
</div>
<div class="jc" onClick={() => {
<div
class="jc"
onClick={() => {
state.out1 = true;
}}>编辑</div>
}}
>
编辑
</div>
</div>
) : (
<div></div>
)}
{value.state === "已发布" ? (
<div class="fb">
<div class="jc" onClick={() => {
<div
class="jc"
onClick={() => {
state.out1 = true;
}}>编辑</div>
}}
>
编辑
</div>
</div>
) : (
<div></div>
@@ -1475,7 +1543,7 @@ export default {
.del_header {
position: absolute;
width: calc(100%);
height: 40px;
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
@@ -1494,7 +1562,7 @@ export default {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/QR.png);
background-image: url(@/assets/images/taskpage/gan.png);
background-size: 100% 100%;
}
.close_exit {
@@ -1568,6 +1636,56 @@ export default {
flex-direction: column;
position: relative;
// position: relative;
.datanull {
display: flex;
flex: 1;
width: 100%;
//background: red;
justify-content: center;
align-items: center;
.nodata_box {
width: 412px;
height: 212px;
position: relative;
background: linear-gradient(
180deg,
#FEF3DD,
#FFFAF0
);
border-radius: 10px;
.left {
position: absolute;
top: 18px;
left: 0;
}
.center {
position: absolute;
top: 32px;
left: 170px;
}
.text1 {
position: absolute;
top: 128px;
left: 178px;
font-size: 20px;
color: #FFB64E;
font-weight: 500;
}
.text2 {
position: absolute;
bottom: 32px;
left: 174px;
font-size: 14px;
color: #878B92;
font-weight: 500;
}
.right {
position: absolute;
bottom: 18px;
right: 0;
}
}
}
.filter {
margin-left: 38px;
margin-right: 38px;
@@ -1585,7 +1703,7 @@ export default {
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
background: #409EFF;
background: #409eff;
border-radius: 8px;
//border: 1px solid rgba(64, 158, 255, 1);
display: flex;
@@ -1600,7 +1718,7 @@ export default {
.btnText {
font-size: 14px;
font-weight: 400;
color: #FFFFFF;
color: #ffffff;
line-height: 36px;
margin-left: 5px;
}
@@ -1608,7 +1726,7 @@ export default {
.btnn {
padding: 0px 26px 0px 26px;
height: 38px;
background: #FFFFFF;
background: #ffffff;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
@@ -1623,7 +1741,7 @@ export default {
.btnText {
font-size: 14px;
font-weight: 400;
color: #409EFF;
color: #409eff;
line-height: 36px;
margin-left: 5px;
}
@@ -1652,7 +1770,7 @@ export default {
}
}
.btn1:active {
background: #0982FF;
background: #0982ff;
}
.btn2:hover {
background: rgba(64, 158, 255, 0.1);
@@ -1667,7 +1785,7 @@ export default {
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
background: #409EFF;
background: #409eff;
border-radius: 8px;
//border: 1px solid rgba(64, 158, 255, 1);
display: flex;
@@ -1682,7 +1800,7 @@ export default {
.btnText {
font-size: 14px;
font-weight: 400;
color: #FFFFFF;
color: #ffffff;
line-height: 36px;
margin-left: 5px;
}
@@ -1705,7 +1823,7 @@ export default {
}
}
.btn3:active {
background: #0982FF;
background: #0982ff;
}
}
}

View File

@@ -541,8 +541,8 @@
</div>
</div>
</div>
<div class="pad"></div></div
></a-tab-pane>
<div class="pad"></div></div>
</a-tab-pane>
<a-tab-pane key="4" tab="设置">
<div class="split"></div>
<div class="sametab">
@@ -552,7 +552,11 @@
<div class="headone">
<div class="box"></div>
<div class="onetitle">关卡内容可见可学设置</div>
<div class="oneedi">编辑</div>
<div class="oneedi" @click="showbtn" v-show="twobtn">编辑</div>
<div v-show="twobtnn" class="twobtn">
<div class="btnone" @click="closebtn">取消</div>
<div class="btntwo" @click="closebtn">确定</div>
</div>
</div>
<div class="onemain clearfix">
<div class="checkcon">
@@ -564,9 +568,17 @@
/>
<span class="yulan">预览其他关卡</span><br />
<div style="width: 10px; height: 4px"></div>
<span class="yulan2">学员可预览第</span
><span style="color: #4ea6ff">1</span><span>-</span
><span style="color: #4ea6ff">4</span><span>关内容</span>
<div style="display: flex;align-items: center;">
<span class="yulan2">学员可预览</span
>
<span style="color: #4ea6ff" v-show="number">1</span>
<a-input-number v-model:value="nubvalue" v-show="inputbox" :controls="false" :autofocus="true" :min="1" />
<span>-</span
><span style="color: #4ea6ff" v-show="number">4</span>
<a-input-number v-model:value="nubvalue1" v-show="inputbox" :controls="false" :autofocus="true" :min="1"/>
<span>关内容</span>
</div>
</div>
<div class="checkcon" style="margin-top: 20px">
<input
@@ -577,9 +589,16 @@
/>
<span class="yulan">学习其他关卡</span><br />
<div style="width: 10px; height: 4px"></div>
<span class="yulan2">学员可预览第</span
><span style="color: #4ea6ff">1</span><span>-</span
><span style="color: #4ea6ff">4</span><span>关内容</span>
<div style="display: flex;align-items: center;">
<span class="yulan2">学员可预览</span
>
<span style="color: #4ea6ff" v-show="number">1</span>
<a-input-number v-model:value="nubvalue2" v-show="inputbox" :controls="false" :autofocus="true" :min="1"/>
<span>-</span
><span style="color: #4ea6ff" v-show="number">4</span>
<a-input-number v-model:value="nubvalue3" v-show="inputbox" :controls="false" :autofocus="true" :min="1"/>
<span>关内容</span>
</div>
</div>
<br />
</div>
@@ -814,6 +833,10 @@ export default {
AddSvisible: false, //添加学员抽屉
AddImpStuvisible: false, //导入学员抽屉
CheckStuvisible: false, //学员管理的查看抽屉
twobtn: true,
number: true,
twobtnn: false,
inputbox: false,
Wvisible: false, //作业管理
projectNameListt: [
{
@@ -993,6 +1016,10 @@ export default {
],
activeKey: ref("1"),
value: ref(" "),
nubvalue: ref("1"),
nubvalue2: ref("1"),
nubvalue3: ref("4"),
nubvalue1: ref("4"),
checked2: false,
currentPage: 1,
tableDataTotal: 100,
@@ -1261,6 +1288,18 @@ export default {
const showCheckStu = () => {
state.CheckStuvisible = true;
};
const showbtn = () => {
state.twobtn = false;
state.twobtnn = true;
state.number = false;
state.inputbox = true;
}
const closebtn = () => {
state.twobtnn = false;
state.twobtn = true;
state.number = true;
state.inputbox = false;
}
const showCopyModal = () => {
state.copyModal = true;
};
@@ -1312,6 +1351,8 @@ export default {
showAddStu,
showImpStu,
showCheckStu,
showbtn, //设置-编辑
closebtn,
showFS,
showAA,
showCopyModal,
@@ -2762,6 +2803,28 @@ export default {
color: #4ea6ff;
cursor: pointer;
}
.twobtn {
display: flex;
.btnone {
width: 42px;
height: 24px;
border: 1px solid rgba(64, 158, 255, 1);
border-radius: 4px;
color: rgba(64, 158, 255, 1);
margin-left: 20px;
cursor: pointer;
}
.btntwo {
width: 42px;
height: 24px;
border: 1px solid rgba(64, 158, 255, 1);
border-radius: 4px;
color: #FFFFFF;
margin-left: 20px;
background: #409EFF;
cursor: pointer;
}
}
}
.onemain {
margin-top: 20px;
@@ -2784,6 +2847,21 @@ export default {
.yulan2 {
margin-left: 22px;
}
.ant-input-number {
height: 24px;
width: 24px;
margin: 10px;
border-radius: 4px;
border: 1px solid #6D7584;
.ant-input-number-input {
width: 100%;
height: 100%;
font-size: 14px;
padding: 0;
color: #409EFF;
text-align: center;
}
}
}
}
.twomain {

File diff suppressed because it is too large Load Diff

View File

@@ -80,13 +80,6 @@
total: tableDataTotal,
onChange: (page, pageSize) => {
currentPage = page;
// console.log('page', page)
// 加翻页查找代码
// this.setState({
// currentPage: page,
// }, () => {
// this.getMilitaryDeployment()
// })
},
}"
>
@@ -110,24 +103,24 @@
<!-- 无项目 -->
<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>
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>
@@ -589,7 +582,9 @@
</div>
<div class="body">
<span>是否结束项目</span>
<div class="back">项目结束后学员将无法继续学习此操作不可逆</div>
<div class="back">
项目结束后学员将无法继续学习此操作不可逆
</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
@@ -1070,7 +1065,6 @@ export default {
data.map((value) => {
if (value.children) {
//多层项目
console.log("11");
value.operation =
value.state === "草稿" ? (
<div class="operation">
@@ -1129,9 +1123,13 @@ export default {
<router-link to="/taskpage">基础信息</router-link>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
</a-select>
</div>
@@ -1173,9 +1171,14 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span
class="operation3"
onClick={() => {
showCopyModal();
}}
>
复制
</span>
<span class="more"></span>
</div>
) : value.state === "已结束" ? (
@@ -1215,12 +1218,22 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span class="more" onClick={() => {
showDeleteModal();
}}>删除</span>
<span
class="operation3"
onClick={() => {
showCopyModal();
}}
>
复制
</span>
<span
class="more"
onClick={() => {
showDeleteModal();
}}
>
删除
</span>
</div>
) : (
<div></div>
@@ -1278,14 +1291,22 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div onClick={() => {
showCopyModal();
}}>复制</div>
<div
onClick={() => {
showCopyModal();
}}
>
复制
</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div onClick={() => {
showDeleteModal();
}}>删除</div>
<div
onClick={() => {
showDeleteModal();
}}
>
删除
</div>
</a-select-option>
</a-select>
</div>
@@ -1331,9 +1352,14 @@ export default {
<router-link to="/classadd" class="operation3">
创建班级
</router-link>
<span class="more" onClick={() => {
<span
class="more"
onClick={() => {
showCopyModal();
}}>复制</span>
}}
>
复制
</span>
</div>
) : item.state === "已结束" ? (
<div class="operation">
@@ -1372,12 +1398,22 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3" onClick={() => {
<span
class="operation3"
onClick={() => {
showCopyModal();
}}>复制</span>
<span class="more" onClick={() => {
showDeleteModal();
}}>删除</span>
}}
>
复制
</span>
<span
class="more"
onClick={() => {
showDeleteModal();
}}
>
删除
</span>
</div>
) : (
<div></div>
@@ -1432,19 +1468,31 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div onClick={() => {
showCopyModal();
}}>复制</div>
<div
onClick={() => {
showCopyModal();
}}
>
复制
</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div onClick={() => {
showDeleteModal();
}}>删除</div>
<div
onClick={() => {
showDeleteModal();
}}
>
删除
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1489,9 +1537,14 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span
class="operation3"
onClick={() => {
showCopyModal();
}}
>
复制
</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1500,19 +1553,31 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="撤回" label="撤回">
<div onClick={() => {
showBackModal();
}}>撤回</div>
<div
onClick={() => {
showBackModal();
}}
>
撤回
</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div onClick={() => {
showStopModal();
}}>结束</div>
<div
onClick={() => {
showStopModal();
}}
>
结束
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1557,12 +1622,22 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span
class="operation3"
onClick={() => {
showCopyModal();
}}
>
复制
</span>
<span
class="operation3"
onClick={() => {
showCopyModal();
}}
>
复制
</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1571,14 +1646,22 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="删除" label="删除">
<div onClick={() => {
showDeleteModal();
}}>删除</div>
<div
onClick={() => {
showDeleteModal();
}}
>
删除
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1623,9 +1706,14 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span
class="operation3"
onClick={() => {
showCopyModal();
}}
>
复制
</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1634,19 +1722,31 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="结束" label="结束">
<div onClick={() => {
showStopModal();
}}>结束</div>
<div
onClick={() => {
showStopModal();
}}
>
结束
</div>
</a-select-option>
<a-select-option value="撤回" label="撤回">
<div onClick={() => {
showBackModal();
}}>撤回</div>
<div
onClick={() => {
showBackModal();
}}
>
撤回
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1707,19 +1807,31 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div onClick={() => {
showCopyModal();
}}>复制</div>
<div
onClick={() => {
showCopyModal();
}}
>
复制
</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div onClick={() => {
showDeleteModal();
}}>删除</div>
<div
onClick={() => {
showDeleteModal();
}}
>
删除
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1764,9 +1876,14 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3" onClick={() => {
<span
class="operation3"
onClick={() => {
showCopyModal();
}}>复制</span>
}}
>
复制
</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1775,19 +1892,31 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="撤回" label="撤回">
<div onClick={() => {
showBackModal();
}}>撤回</div>
<div
onClick={() => {
showBackModal();
}}
>
撤回
</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div onClick={() => {
showStopModal();
}}>结束</div>
<div
onClick={() => {
showStopModal();
}}
>
结束
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1832,9 +1961,14 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3" onClick={() => {
<span
class="operation3"
onClick={() => {
showCopyModal();
}}>复制</span>
}}
>
复制
</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1843,19 +1977,31 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="删除" label="删除">
<div onClick={() => {
showDeleteModal();
}}>删除</div>
<div
onClick={() => {
showDeleteModal();
}}
>
删除
</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div onClick={() => {
showStopModal();
}}>结束</div>
<div
onClick={() => {
showStopModal();
}}
>
结束
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1900,9 +2046,14 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3" onClick={() => {
<span
class="operation3"
onClick={() => {
showCopyModal();
}}>复制</span>
}}
>
复制
</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1911,19 +2062,31 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="撤回" label="撤回">
<div onClick={() => {
showBackModal();
}}>撤回</div>
<div
onClick={() => {
showBackModal();
}}
>
撤回
</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div onClick={() => {
showStopModal();
}}>结束</div>
<div
onClick={() => {
showStopModal();
}}
>
结束
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1983,9 +2146,14 @@ export default {
{value.state === "草稿" ? (
<span class="operation3">发布</span>
) : (
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span
class="operation3"
onClick={() => {
showCopyModal();
}}
>
复制
</span>
)}
<div class="tableSelect">
{value.state === "草稿" ? (
@@ -1996,23 +2164,31 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div onClick={() => {
showCopyModal();
}}>复制</div>
<div
onClick={() => {
showCopyModal();
}}
>
复制
</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div
onClick={() => {
showDeleteModal();
}}
showDeleteModal();
}}
>
删除
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -2026,23 +2202,31 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div
onClick={() => {
showStopModal();
}}
showStopModal();
}}
>
结束
</div>
</a-select-option>
<a-select-option value="撤回" label="撤回">
<div onClick={() => {
showBackModal();
}}>撤回</div>
<div
onClick={() => {
showBackModal();
}}
>
撤回
</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -2056,15 +2240,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="存为模板" label="存为模板">
<div onClick={() => {
showStartModal();
}}>存为模板</div>
<div
onClick={() => {
showStartModal();
}}
>
存为模板
</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div
onClick={() => {
showDeleteModal();
}}
showDeleteModal();
}}
>
删除
</div>
@@ -2082,6 +2270,7 @@ export default {
}
});
state.tableData = data;
console.log("tableData", state.tableData);
};
getTableDate();

View File

@@ -542,7 +542,7 @@
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 1400, y: 350 }"
:scroll="{ x: 1400 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
@@ -794,7 +794,6 @@
<a-tab-pane key="5" tab="项目积分">
<ProjectScore></ProjectScore>
</a-tab-pane>
<a-tab-pane key="6" tab="排行榜">
<div class="content6">
<div class="title">排行榜</div>
@@ -2359,7 +2358,7 @@ export default {
title: "姓名",
dataIndex: "name",
key: "name",
width: 50,
width: 30,
align: "left",
className: "h",
// scopedSlots: { customRender: "action" }, //引入的插槽
@@ -2396,7 +2395,7 @@ export default {
title: "部门",
dataIndex: "bum",
key: "bum",
width: 40,
width: 50,
align: "center",
className: "h",
},
@@ -2404,7 +2403,7 @@ export default {
title: "岗位",
dataIndex: "gangw",
key: "gangw",
width: 40,
width: 50,
align: "center",
className: "h",
},
@@ -2412,7 +2411,7 @@ export default {
title: "所属小组",
dataIndex: "group",
key: "group",
width: 40,
width: 50,
align: "center",
className: "h",
},

View File

@@ -1,68 +1,65 @@
<template>
<div class="templatelibrary">
<div class="tmpl">
<div class="tmpl_header">
<div class="tmplh_inp">
<div class="inpbox">
<div class="inpbox1">
<span>模版名称</span>
<a-input
v-model:value="value1"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 14px;
"
placeholder="请输入项目名称"
/>
</div>
<div class="inpbox1">
<span>创建时间</span>
<a-date-picker
v-model="selectTime"
type="date"
placeholder="创建时间"
style="width: 270px; margin-right: 14px"
/>
</div>
</div>
<div class="tmpl_header">
<div class="tmplh_inp">
<div class="inpbox">
<div class="inpbox1">
<span>模版名称</span>
<a-input
v-model:value="value1"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 14px;
"
placeholder="请输入项目名称"
/>
</div>
<div class="tmplh_btn">
<div class="btn btn1">
<div class="search"></div>
<div class="btnText btnText1">搜索</div>
</div>
<div class="btn btn2">
<div class="search"></div>
<div class="btnText btnText2">重置</div>
</div>
<div class="inpbox1">
<span>创建时间</span>
<a-date-picker
v-model="selectTime"
type="date"
placeholder="创建时间"
style="width: 270px; margin-right: 14px"
/>
</div>
</div>
</div>
<div class="tmpl_body">
<div class="tmpl_tabbox">
<a-table
:columns="columns1"
:data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
/>
</div>
<div class="tmplh_btn">
<div class="btn btn1">
<div class="search"></div>
<div class="btnText btnText1">搜索</div>
</div>
<div class="btn btn2">
<div class="search"></div>
<div class="btnText btnText2">重置</div>
</div>
</div>
</div>
<div class="tmpl_body">
<div class="tmpl_tabbox">
<a-table
:columns="columns1"
:data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
/>
</div>
</div>
</div>
</div>
</template>
<script>
import { reactive, defineComponent, toRefs } from "vue";
const columns1 = [
{
title: "模版名称",
width: '20%',
width: "20%",
dataIndex: "name",
key: "name",
ellipsis: true,
@@ -70,247 +67,251 @@ const columns1 = [
},
{
title: "状态",
width: '15%',
width: "15%",
dataIndex: "status",
key: "status",
align: "center",
},
{
title: "创建人",
width: '18%',
width: "18%",
dataIndex: "creator",
key: "creator",
align: "center",
},
{
title: "最近学习时间",
width: '25%',
width: "25%",
dataIndex: "stutime",
key: "stutime",
align: "center",
},
{
title: "操作",
width: '22%',
width: "22%",
className: "h",
dataIndex: "operation",
key: "operation",
align: "center",
},
];
export default defineComponent({
name: "TemplateLibrary",
setup() {
const state = reactive({
tableData1: [
{
key: "1",
name: "管理者进阶-腾飞班Z1",
status: "已发布",
creator: "李部长",
stutime: "2022-10-31 23:12:00",
operation: "operation",
},
{
key: "2",
name: "管理者进阶-腾飞班Z2",
status: "已发布",
creator: "毛继禹",
stutime: "2022-10-31 23:12:00",
operation: "operation",
},
{
key: "3",
name: "管理者进阶-腾飞班Z3",
status: "已发布",
creator: "毛继禹",
stutime: "2022-10-31 23:12:00",
operation: "operation",
},
{
key: "4",
name: "管理者进阶-腾飞班Z4",
status: "未发布",
creator: "毛继禹",
stutime: "2022-10-31 23:12:00",
operation: "operation",
},
],
});
const getTableDate1 = () => {
let data = state.tableData1;
data.map((value) => {
{
//单层项目
value.operation = (
<div class="operation" style="justify-content: flex-end;">
<div class="nSelect">
{value.status === "已发布" ? (
<div class="nselect">
<div class="ops2">
<router-link to="/libraryadd">
<div class="jc">查看</div>
</router-link>
name: "TemplateLibrary",
setup() {
const state = reactive({
tableData1: [
{
key: "1",
name: "管理者进阶-腾飞班Z1",
status: "已发布",
creator: "李部长",
stutime: "2022-10-31 23:12:00",
operation: "operation",
},
{
key: "2",
name: "管理者进阶-腾飞班Z2",
status: "已发布",
creator: "毛继禹",
stutime: "2022-10-31 23:12:00",
operation: "operation",
},
{
key: "3",
name: "管理者进阶-腾飞班Z3",
status: "已发布",
creator: "毛继禹",
stutime: "2022-10-31 23:12:00",
operation: "operation",
},
{
key: "4",
name: "管理者进阶-腾飞班Z4",
status: "未发布",
creator: "毛继禹",
stutime: "2022-10-31 23:12:00",
operation: "operation",
},
],
});
const getTableDate1 = () => {
let data = state.tableData1;
data.map((value) => {
{
//单层项目
value.operation = (
<div class="operation" style="justify-content: flex-end;">
<div class="nSelect">
{value.status === "已发布" ? (
<div class="nselect">
<div class="ops2">
<router-link to="/libraryadd">
<div class="jc">
查看{" "}
<span style="color:#E9E9E9;margin-left:8px;">|</span>
</div>
<div class="ops3">
<div class="jc">撤回</div>
</div>
</div>
) : (
<div></div>
)}
{value.status === "未发布" ? (
<div class="nselect">
<div class="ops1">
<div class="jc">发布 |</div>
</div>
<div class="ops2">
<router-link to="/libraryadd">
<div class="jc">查看</div>
</router-link>
</div>
<div class="ops3">
<div class="jc">删除</div>
</div>
</div>
) : (
<div></div>
)}
</router-link>
</div>
<div class="ops3">
<div class="jc">撤回</div>
</div>
);
}
});
state.tableData = data;
};
getTableDate1();
return {
...toRefs(state),
columns1,
}
}
})
</script>
<style lang="scss">
.templatelibrary{
width: 100%;
.tmpl{
width:100%;
.tmpl_header{
display:flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 32px;
margin-left: 32px;
margin-right: 32px;
.tmplh_inp{
.inpbox{
display: flex;
margin-top: 32px;
.inpbox1{
display:flex;
justify-content: center;
align-items: center;
margin-right: 24px;
span{
white-space: nowrap;
}
}
}
}
.tmplh_btn{
display: flex;
margin-left: 38px;
margin-top: 32px;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
margin-left: 14px;
flex-shrink: 0;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 36px;
margin-left: 5px;
}
.btnText1{
color: rgb(255, 255, 255);
}
.btnText2{
color: rgba(64, 158, 255, 1);
}
}
.btn1 {
background: #409EFF;
.search {
width: 15px;
height: 17px;
background-image: url("../../assets/images/courseManage/search0.png");
}
}
.btn2 {
background: #FFFFFF;
border: 1px solid #388BE1;
.search {
width: 16px;
height: 18px;
background-image: url("../../assets/images/courseManage/reset1.png");
}
}
.btn1:hover {
background: rgb(255, 255, 255);
border: 1px solid #388BE1;
.search {
background-image: url("../../assets/images/courseManage/search1.png");
}
.btnText {
color: rgba(64, 158, 255, 1);
}
}
.btn2:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("../../assets/images/courseManage/reset0.png");
}
.btnText {
color: #ffffff;
}
}
}
}
.tmpl_body{
.tmpl_tabbox{
.operation {
display: flex;
justify-content: center;
align-items: center;
color: #4ea6ff;
.nselect {
justify-content: center;
align-items: center;
display: flex;
.jc {
margin-left: 20px;
white-space: nowrap;
cursor: pointer;
}
}
}
}
}
</div>
) : (
<div></div>
)}
{value.status === "未发布" ? (
<div class="nselect">
<div class="ops1">
<div class="jc">
发布
<span style="color:#E9E9E9;margin-left:8px;">|</span>
</div>
</div>
<div class="ops2">
<router-link to="/libraryadd">
<div class="jc">
查看
<span style="color:#E9E9E9;margin-left:8px;">|</span>
</div>
</router-link>
</div>
<div class="ops3">
<div class="jc">删除</div>
</div>
</div>
) : (
<div></div>
)}
</div>
</div>
);
}
});
state.tableData = data;
};
getTableDate1();
return {
...toRefs(state),
columns1,
};
},
});
</script>
<style lang="scss">
.templatelibrary {
width: 100%;
.tmpl {
width: 100%;
.tmpl_header {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 32px;
margin-left: 32px;
margin-right: 32px;
.tmplh_inp {
.inpbox {
display: flex;
margin-top: 32px;
.inpbox1 {
display: flex;
justify-content: center;
align-items: center;
margin-right: 24px;
span {
white-space: nowrap;
}
}
}
}
.tmplh_btn {
display: flex;
margin-left: 38px;
margin-top: 32px;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
margin-left: 14px;
flex-shrink: 0;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 36px;
margin-left: 5px;
}
.btnText1 {
color: rgb(255, 255, 255);
}
.btnText2 {
color: rgba(64, 158, 255, 1);
}
}
.btn1 {
background: #409eff;
.search {
width: 15px;
height: 17px;
background-image: url("../../assets/images/courseManage/search0.png");
}
}
.btn2 {
background: #ffffff;
border: 1px solid #388be1;
.search {
width: 16px;
height: 18px;
background-image: url("../../assets/images/courseManage/reset1.png");
}
}
.btn1:hover {
background: rgb(255, 255, 255);
border: 1px solid #388be1;
.search {
background-image: url("../../assets/images/courseManage/search1.png");
}
.btnText {
color: rgba(64, 158, 255, 1);
}
}
.btn2:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("../../assets/images/courseManage/reset0.png");
}
.btnText {
color: #ffffff;
}
}
}
}
</style>
.tmpl_body {
.tmpl_tabbox {
.operation {
display: flex;
justify-content: center;
align-items: center;
color: #4ea6ff;
.nselect {
justify-content: center;
align-items: center;
display: flex;
.jc {
margin-left: 20px;
white-space: nowrap;
cursor: pointer;
}
}
}
}
}
}
}
</style>

View File

@@ -7,7 +7,7 @@ module.exports = defineConfig({
target: "http://111.231.196.214:30001/",
changeOrigin: true,
secure: false,
ws: true,
ws: false,
pathRewrite: {
"^/api": "",
},