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

This commit is contained in:
岳佳鑫
2022-10-25 12:11:21 +08:00
14 changed files with 1455 additions and 542 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)
// })

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 { ::-webkit-scrollbar-track {
background-color: rgba(239, 244, 252, 1); background-color: rgba(239, 244, 252, 1);
border-radius: 6px; 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 { ::-webkit-scrollbar-thumb {
border-radius: 3px; border-radius: 3px;
background-color: rgba(78, 166, 255, 1); 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 { ::-webkit-scrollbar-button {
background-color: cyan; background-color: cyan;
display: none; 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 { ::-webkit-scrollbar-corner {
background: rgba(239, 244, 252, 1); 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

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

View File

@@ -467,14 +467,11 @@ export default {
.ant-table-tbody{ .ant-table-tbody{
.pa { .pa {
// left: 0;
margin-top: 15px; margin-top: 15px;
width: 100%;
// height: 20px; // height: 20px;
// background-color: red; // background-color: red;
display: flex; display: flex;
justify-content: center; justify-content: center;
// position: absolute;
// bottom: 20px; // bottom: 20px;
} }
} }

View File

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

View File

@@ -70,7 +70,7 @@
:data-source="tabledata" :data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true" expandRowByClick="true"
:scroll="{ x: 900, y: 350 }" :scroll="{ x: 900 }"
@expand="expandTable" @expand="expandTable"
:pagination="false" :pagination="false"
/> />

View File

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

View File

@@ -53,7 +53,6 @@
</div> </div>
<div class="btns"> <div class="btns">
<!-- <router-link to="/projectadd"> <!-- <router-link to="/projectadd">
<div class="btn btn3"> <div class="btn btn3">
<div class="search"></div> <div class="search"></div>
@@ -208,7 +207,6 @@
</div> </div>
</div></a-modal </div></a-modal
> >
<!-- 编辑路径弹窗 --> <!-- 编辑路径弹窗 -->
<a-modal <a-modal
@@ -551,6 +549,7 @@ import OwnerShip from "../../components/drawers/Ownership";
import PowerList from "../../components/drawers/PowerList"; import PowerList from "../../components/drawers/PowerList";
import QueryRight from "../../components/drawers/QueryRight"; import QueryRight from "../../components/drawers/QueryRight";
import ManageRight from "../../components/drawers/ManageRight"; import ManageRight from "../../components/drawers/ManageRight";
import * as api from "../../api/index1";
export default { export default {
name: "learningPath", name: "learningPath",
components: { OwnerShip, PowerList, QueryRight, ManageRight }, components: { OwnerShip, PowerList, QueryRight, ManageRight },
@@ -801,8 +800,53 @@ export default {
]; ];
return columns; 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(() => { onMounted(() => {
// console.log("执行"); // console.log("执行");
getLearnPath();
}); });
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
@@ -888,18 +932,28 @@ export default {
> >
发布 发布
</div> </div>
<div class="jc" onClick={() => { <div
class="jc"
onClick={() => {
state.out1 = true; state.out1 = true;
}}>编辑</div> }}
>
编辑
</div>
</div> </div>
) : ( ) : (
<div></div> <div></div>
)} )}
{value.state === "已发布" ? ( {value.state === "已发布" ? (
<div class="fb"> <div class="fb">
<div class="jc" onClick={() => { <div
class="jc"
onClick={() => {
state.out1 = true; state.out1 = true;
}}>编辑</div> }}
>
编辑
</div>
</div> </div>
) : ( ) : (
<div></div> <div></div>
@@ -1649,7 +1703,7 @@ export default {
.btn { .btn {
padding: 0px 26px 0px 26px; padding: 0px 26px 0px 26px;
height: 38px; height: 38px;
background: #409EFF; background: #409eff;
border-radius: 8px; border-radius: 8px;
//border: 1px solid rgba(64, 158, 255, 1); //border: 1px solid rgba(64, 158, 255, 1);
display: flex; display: flex;
@@ -1664,7 +1718,7 @@ export default {
.btnText { .btnText {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
line-height: 36px; line-height: 36px;
margin-left: 5px; margin-left: 5px;
} }
@@ -1672,7 +1726,7 @@ export default {
.btnn { .btnn {
padding: 0px 26px 0px 26px; padding: 0px 26px 0px 26px;
height: 38px; height: 38px;
background: #FFFFFF; background: #ffffff;
border-radius: 8px; border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1); border: 1px solid rgba(64, 158, 255, 1);
display: flex; display: flex;
@@ -1687,7 +1741,7 @@ export default {
.btnText { .btnText {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #409EFF; color: #409eff;
line-height: 36px; line-height: 36px;
margin-left: 5px; margin-left: 5px;
} }
@@ -1716,7 +1770,7 @@ export default {
} }
} }
.btn1:active { .btn1:active {
background: #0982FF; background: #0982ff;
} }
.btn2:hover { .btn2:hover {
background: rgba(64, 158, 255, 0.1); background: rgba(64, 158, 255, 0.1);
@@ -1731,7 +1785,7 @@ export default {
.btn { .btn {
padding: 0px 26px 0px 26px; padding: 0px 26px 0px 26px;
height: 38px; height: 38px;
background: #409EFF; background: #409eff;
border-radius: 8px; border-radius: 8px;
//border: 1px solid rgba(64, 158, 255, 1); //border: 1px solid rgba(64, 158, 255, 1);
display: flex; display: flex;
@@ -1746,7 +1800,7 @@ export default {
.btnText { .btnText {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
line-height: 36px; line-height: 36px;
margin-left: 5px; margin-left: 5px;
} }
@@ -1769,7 +1823,7 @@ export default {
} }
} }
.btn3:active { .btn3:active {
background: #0982FF; background: #0982ff;
} }
} }
} }

View File

@@ -540,8 +540,8 @@
</div> </div>
</div> </div>
</div> </div>
<div class="pad"></div></div <div class="pad"></div></div>
></a-tab-pane> </a-tab-pane>
<a-tab-pane key="4" tab="设置"> <a-tab-pane key="4" tab="设置">
<div class="split"></div> <div class="split"></div>
<div class="sametab"> <div class="sametab">

View File

@@ -8,10 +8,18 @@
<div class="btnText" @click="showModal">添加关卡</div> <div class="btnText" @click="showModal">添加关卡</div>
</div> </div>
<div class="maincon" style="background-color: #fff"> <div class="maincon" style="background-color: #fff">
<div class="item" v-for="item in level" :key="item.id"> <div
class="item"
:class="{ active: isActive == true }"
@click="changebgc"
v-for="item in level"
:key="item.id"
>
<div class="items1"> <div class="items1">
<div class="box_left"> <div class="box_left">
<div class="script"><span style="font-size: 12px; color: #ffffff;">说明</span></div> <div class="script">
<span style="font-size: 12px; color: #ffffff">说明</span>
</div>
<div class="imgIcon"></div> <div class="imgIcon"></div>
</div> </div>
<div class="box_right"> <div class="box_right">
@@ -76,7 +84,7 @@
</div> </div>
</div> </div>
</a-modal> </a-modal>
<div class="right"> <div class="right" :style="{ display: gqxy_hs ? 'block' : 'none' }">
<div class="addhead"> <div class="addhead">
<div class="filt"> <div class="filt">
<div class="le"> <div class="le">
@@ -286,7 +294,7 @@
<div class="btn btn2"> <div class="btn btn2">
<div class="btnText">确定</div> <div class="btnText">确定</div>
</div> </div>
<div class="btn btn1"> <div class="btn btn1" @click="gqxy_hShow">
<div class="btnText">下一步</div> <div class="btnText">下一步</div>
</div> </div>
</div> </div>
@@ -328,6 +336,125 @@
</a-drawer> </a-drawer>
</div> </div>
</div> </div>
<div class="right" :style="{ display: gqxy_hs ? 'none' : 'block' }">
<div class="addhead">
<div class="filt">
<div class="le">
<div class="leftimg">
<img class="img" src="../../assets/px.jpg" />
</div>
<div class="imgfor">
<div class="forz">产品经理进阶路径</div>
<div class="fort">创建时间2022-07-21 00:00</div>
</div>
</div>
<div class="rightt">
<div class="select">
<span>学习模式</span>
<div class="inputbox">
<input type="text" placeholder="按学习时间解锁" />
<div class="bottonbox"><div class="btnText">切换模式</div></div>
</div>
</div>
<div class="line"></div>
<router-link to="/leveladd">
<div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" />
<div class="return">返回</div>
</div>
</router-link>
</div>
</div>
</div>
<div class="boom">
<div class="boomcen">
<div class="xwid">
<div class="xin">
<div class="xheadb">
<button class="addx">添加学员</button>
<!-- 点击抽屉组件在LevelAdd此处没添加showAddStushowImpStu -->
<button class="addd">导入学员</button>
<button class="addd">批量删除</button>
</div>
<div class="talk">
<img class="im" src="../../assets/images/leveladd/gan.png" />
<div class="xu">
<span class="yi">已选择</span>
<div style="width: 5px; display: inline-block"></div>
<span class="th">3</span>
<div style="width: 5px; display: inline-block"></div>
<span class="yi"></span>
<span class="zon">列表选项总数</span>
<span class="yi">5</span>
<span class="yi"></span>
</div>
</div>
<div class="tableBox" style="margin-top: 30px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc2()"
:scroll="{ y: 235 }"
:data-source="tableData2"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
/>
</div>
<!-- 无数据样式 -->
<div
class="notable"
:style="{ display: stm_hs ? 'block' : 'none' }"
>
<div class="notablebox">
<div class="boxbody">
<div class="boximg"></div>
<div class="boxtitle">
<span style="color: #ffb64e; font-size: 20px"
>无学员</span
>
</div>
<div class="boxtitle2">
<span style="color: #878b92">请添加学员或导入学员</span>
</div>
</div>
<div class="smallleft"></div>
<div class="smallright"></div>
</div>
</div>
<!-- 无数据样式 -->
</div>
</div>
<div class="pad"></div>
</div>
</div>
</div>
<div class="footbtn">
<div class="btnbox">
<div class="btn btn1" @click="gqxy_hShow">
<div class="btnText">上一步</div>
</div>
<div class="btn btn2">
<div class="btnText">保存</div>
</div>
</div>
</div>
</div>
</div> </div>
</template> </template>
@@ -484,6 +611,80 @@ export default {
checkedd: false, checkedd: false,
}, },
], ],
tableData2: [
{
key: 1,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "关卡2",
jin: "2/10",
time: "2022-07-15 14:00",
},
{
key: 2,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "关卡2",
jin: "2/10",
time: "2022-07-15 14:00",
},
{
key: 3,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "关卡2",
jin: "2/10",
time: "2022-07-15 14:00",
},
{
key: 4,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "关卡1",
jin: "2/10",
time: "2022-07-15 14:00",
},
{
key: 5,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "关卡1",
jin: "2/10",
time: "2022-07-15 14:00",
},
{
key: 6,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "关卡2",
jin: "2/10",
time: "2022-07-15 14:00",
},
{
key: 7,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "关卡2",
jin: "2/10",
time: "2022-07-15 14:00",
},
{
key: 8,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "关卡2",
jin: "2/10",
time: "2022-07-15 14:00",
},
],
drawertableData: [ drawertableData: [
{ {
key: 1, key: 1,
@@ -589,6 +790,8 @@ export default {
value1: "", value1: "",
value2: "", value2: "",
selectedRowKeys: [], selectedRowKeys: [],
isActive: false,
gqxy_hs: true,
}); });
const showDrawer = () => { const showDrawer = () => {
state.visible = true; state.visible = true;
@@ -719,6 +922,95 @@ export default {
]; ];
return columns; return columns;
}; };
const tableDataFunc2 = () => {
const columns = [
{
title: "姓名",
dataIndex: "name",
// width: "30%",
key: "name",
width: 60,
align: "left",
className: "classify",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.name}</span>
{/**
<div class="img"></div>
<a-checkbox class="ch" checked={text.record.checkedd}>
{text.record.lei}
</a-checkbox>
*/}
</div>
);
},
},
{
title: "部门",
dataIndex: "com",
// width: "30%",
key: "com",
width: 110,
align: "center",
className: "h",
},
{
title: "岗位",
dataIndex: "gang",
key: "gang",
width: 110,
align: "center",
className: "h",
},
{
title: "当前关卡",
dataIndex: "cur",
key: "cur",
width: 110,
align: "center",
className: "h",
},
{
title: "进度",
dataIndex: "jin",
key: "jin",
width: 110,
align: "center",
className: "h",
},
{
title: "开始时间",
dataIndex: "time",
key: "time",
width: 120,
align: "center",
className: "h",
},
{
title: "操作",
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 140,
align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => {
return (
<div class="opa">
<div class="opacation">
<span style="color:#4EA6FF;cursor:pointer">删除</span>
</div>
</div>
);
},
},
];
return columns;
};
const onSelectChange = (selectedRowKeys) => { const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys); console.log("selectedRowKeys changed: ", selectedRowKeys);
@@ -744,9 +1036,16 @@ export default {
document.getElementsByTagName("main")[0].style.boxShadow = document.getElementsByTagName("main")[0].style.boxShadow =
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)"; "0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
}); });
const changebgc = () => {
state.isActive = !state.isActive;
};
const gqxy_hShow = () => {
state.gqxy_hs = !state.gqxy_hs;
};
return { return {
...toRefs(state), ...toRefs(state),
tableDataFunc, tableDataFunc,
tableDataFunc2,
showDrawer, showDrawer,
closeDrawer, closeDrawer,
showModal, showModal,
@@ -754,6 +1053,8 @@ export default {
afterVisibleChange, afterVisibleChange,
drawercolumns, drawercolumns,
onSelectChange, onSelectChange,
changebgc,
gqxy_hShow,
}; };
}, },
}; };
@@ -927,6 +1228,7 @@ export default {
align-items: center; align-items: center;
// background-color: red; // background-color: red;
margin-bottom: 20px; margin-bottom: 20px;
flex-shrink: 0;
.headerTitle { .headerTitle {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
@@ -957,6 +1259,7 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
background-color: #ffffff;
.btn1 { .btn1 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -983,17 +1286,10 @@ export default {
width: 100%; width: 100%;
display: flex; display: flex;
min-width: 933px; min-width: 933px;
// min-width: 1200px;
// overflow-x: hidden;
// min-width: 1400px;
// overflow: scroll;
background-color: rgba(245, 247, 250, 1); background-color: rgba(245, 247, 250, 1);
.left { .left {
margin-right: 20px; margin-right: 20px;
width: 208px; width: 208px;
// height: 100%;
// flex: 1;
// height: 100%;
background: #ffffff; background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
display: flex; display: flex;
@@ -1005,18 +1301,14 @@ export default {
font-size: 18px; font-size: 18px;
color: #363636; color: #363636;
} }
// flex-wrap: wrap;
.btn { .btn {
margin-top: 20px; margin-top: 20px;
// padding: 0px 26px 0px 26px;
height: 38px; height: 38px;
background: #fff6e8; background: #fff6e8;
border-radius: 8px; border-radius: 8px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
// margin-right: 14px;
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
.search { .search {
@@ -1026,7 +1318,6 @@ export default {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #ffb64e; color: #ffb64e;
// line-height: 38px;
margin-top: 4px; margin-top: 4px;
margin-left: 5px; margin-left: 5px;
} }
@@ -1047,46 +1338,47 @@ export default {
width: 208px; width: 208px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; // background-color: #bfa; align-items: center;
.item { .item {
width: 171px; width: 171px;
height: 83px; height: 83px;
background: rgba(255, 182, 78,.1); background: rgba(255, 182, 78, 0.1);
border: 1px solid #ffb64e; border: 1px solid #ffb64e;
opacity: 0.45; opacity: 0.45;
border-radius: 8px; border-radius: 8px;
margin-bottom: 16px; margin-bottom: 16px;
align-items: center; align-items: center;
padding: 16px; padding: 16px;
opacity: .5; opacity: 0.5;
.items1{ cursor: pointer;
.items1 {
margin-bottom: 12px; margin-bottom: 12px;
display: flex; display: flex;
align-items: center; align-items: center;
.box_left{ .box_left {
width:140px; width: 140px;
display: flex; display: flex;
align-items: center; align-items: center;
.script{ .script {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 56px; width: 56px;
height: 24px; height: 24px;
background: #FFB64E; background: #ffb64e;
border-radius: 6px; border-radius: 6px;
margin-right: 12px; margin-right: 12px;
white-space: nowrap; white-space: nowrap;
} }
.imgIcon{ .imgIcon {
width: 14px; width: 14px;
height: 14px; height: 14px;
background-image: url(@/assets/images/leveladd/edit.png); background-image: url(@/assets/images/leveladd/edit.png);
background-size: 100% 100%; background-size: 100% 100%;
} }
} }
.box_right{ .box_right {
.imgIcon{ .imgIcon {
width: 14px; width: 14px;
height: 14px; height: 14px;
background-image: url(@/assets/images/leveladd/z1.png); background-image: url(@/assets/images/leveladd/z1.png);
@@ -1094,8 +1386,8 @@ export default {
} }
} }
} }
.items2{ .items2 {
.name{ .name {
width: 100px; width: 100px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@@ -1104,6 +1396,9 @@ export default {
} }
} }
} }
.active {
opacity: 1;
}
} }
} }
} }
@@ -1219,7 +1514,6 @@ export default {
width: 100%; width: 100%;
// height: 130px; // height: 130px;
margin-top: 20px; margin-top: 20px;
margin-bottom: 20px;
background-color: #fff; background-color: #fff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
display: flex; display: flex;
@@ -1261,6 +1555,7 @@ export default {
} }
.boom { .boom {
width: 100%; width: 100%;
margin-top: 20px;
flex: 1; flex: 1;
background-color: #fff; background-color: #fff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
@@ -1352,6 +1647,276 @@ export default {
background: #f6f9fd; background: #f6f9fd;
} }
} }
.xwid {
position: relative;
margin-top: 30px;
display: flex;
margin-bottom: 20px;
.xin {
width: 100%;
.xheadb {
display: flex;
.addx {
width: 130px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
color: #fff;
border: 0;
cursor: pointer;
margin-right: 20px;
}
.addd {
width: 130px;
height: 40px;
background: #fff;
border-radius: 8px;
border: 1px solid #4ea6ff;
color: #4ea6ff;
cursor: pointer;
margin-right: 20px;
}
.select {
.ant-select {
//
// border: 0 !important;
border-radius: 11px;
.ant-select-selector {
border: 1px solid #4ea6ff !important;
.ant-select-selection-placeholder {
padding-left: 15px;
color: #4ea6ff;
}
}
}
}
}
.talk {
margin-top: 24px;
margin-bottom: 11px;
width: 100%;
height: 50px;
background: #f5faff;
border: 1px solid #4ea6ff;
// opacity: 0.22;
display: flex;
align-items: center;
.im {
width: 14px;
height: 15px;
margin-left: 27px;
margin-top: -3px;
}
.xu {
height: 100%;
line-height: 50px;
margin-left: 13px;
.yi {
color: #4f5156;
font-size: 14px;
}
.zon {
color: #999ba3;
font-size: 14px;
margin-left: 34px;
}
.th {
color: #4ea6ff;
}
}
}
.tableBox {
margin-bottom: 80px;
.classify {
margin-left: 11px !important;
padding-left: 9px !important;
}
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 38px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
// height: 20px;
// background-color: red;
display: flex;
justify-content: center;
position: absolute;
bottom: 0px;
}
}
}
}
.Gcon {
display: flex;
.pad {
height: 100%;
width: 40px;
}
.Gin {
// background-color: #bfa;
margin-top: 30px;
.headone {
// background-color: red;
display: flex;
text-align: center;
.box {
width: 4px;
height: 20px;
background-color: #4ea6ff;
border-radius: 2px;
}
.onetitle {
margin-left: 15px;
color: #333333;
font-size: 14px;
}
.oneedi {
margin-left: 15px;
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;
margin-left: 55px;
color: #6f6f6f;
font-size: 14px;
.checkcon {
position: relative;
.in {
position: absolute;
// margin-top: 10px;
left: 0;
top: 3px;
}
.yulan {
// color: yellow;
margin-left: 22px;
// display: inline-block;
}
.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 {
margin-left: 20px;
margin-top: 20px;
.ant-switch-checked {
background-color: #5dc988;
}
.info {
margin-left: 10px;
color: #6f6f6f;
font-size: 14px;
// margin-top: 10px;
}
.infor {
margin-left: 38px;
margin-top: 10px;
color: #c7cbd2;
font-size: 14px;
}
.chooseshow {
// background-color: red;
margin-left: 38px;
margin-top: 12px;
.fane {
color: #6f6f6f;
font-size: 14px;
}
}
.choo {
display: none;
}
.btm {
margin-left: 38px;
margin-top: 20px;
.bmo {
color: #6f6f6f;
font-size: 14px;
}
.bmt {
color: #c7cbd2;
font-size: 14px;
margin-top: 3px;
}
.chosecon {
display: flex;
margin-top: 6px;
margin-bottom: 20px;
.chose {
position: relative;
.inl {
position: absolute;
top: 2px;
}
.sh {
margin-left: 23px;
color: #6f6f6f;
}
}
}
}
}
}
}
.notable { .notable {
width: 100%; width: 100%;
height: 100%; height: 100%;

View File

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

View File

@@ -794,7 +794,6 @@
<a-tab-pane key="5" tab="项目积分"> <a-tab-pane key="5" tab="项目积分">
<ProjectScore></ProjectScore> <ProjectScore></ProjectScore>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="6" tab="排行榜"> <a-tab-pane key="6" tab="排行榜">
<div class="content6"> <div class="content6">
<div class="title">排行榜</div> <div class="title">排行榜</div>

View File

@@ -1,68 +1,65 @@
<template> <template>
<div class="templatelibrary"> <div class="templatelibrary">
<div class="tmpl"> <div class="tmpl">
<div class="tmpl_header"> <div class="tmpl_header">
<div class="tmplh_inp"> <div class="tmplh_inp">
<div class="inpbox"> <div class="inpbox">
<div class="inpbox1"> <div class="inpbox1">
<span>模版名称</span> <span>模版名称</span>
<a-input <a-input
v-model:value="value1" v-model:value="value1"
style=" style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" "
placeholder="请输入项目名称" 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> </div>
<div class="tmplh_btn"> <div class="inpbox1">
<div class="btn btn1"> <span>创建时间</span>
<div class="search"></div> <a-date-picker
<div class="btnText btnText1">搜索</div> v-model="selectTime"
</div> type="date"
<div class="btn btn2"> placeholder="创建时间"
<div class="search"></div> style="width: 270px; margin-right: 14px"
<div class="btnText btnText2">重置</div> />
</div>
</div> </div>
</div>
</div> </div>
<div class="tmpl_body"> <div class="tmplh_btn">
<div class="tmpl_tabbox"> <div class="btn btn1">
<a-table <div class="search"></div>
:columns="columns1" <div class="btnText btnText1">搜索</div>
:data-source="tableData1" </div>
:loading="tableDataTotal === -1 ? true : false" <div class="btn btn2">
expandRowByClick="true" <div class="search"></div>
@expand="expandTable" <div class="btnText btnText2">重置</div>
:pagination="false" </div>
/>
</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>
</div> </div>
</template> </template>
<script> <script>
import { reactive, defineComponent, toRefs } from "vue"; import { reactive, defineComponent, toRefs } from "vue";
const columns1 = [ const columns1 = [
{ {
title: "模版名称", title: "模版名称",
width: '20%', width: "20%",
dataIndex: "name", dataIndex: "name",
key: "name", key: "name",
ellipsis: true, ellipsis: true,
@@ -70,247 +67,251 @@ const columns1 = [
}, },
{ {
title: "状态", title: "状态",
width: '15%', width: "15%",
dataIndex: "status", dataIndex: "status",
key: "status", key: "status",
align: "center", align: "center",
}, },
{ {
title: "创建人", title: "创建人",
width: '18%', width: "18%",
dataIndex: "creator", dataIndex: "creator",
key: "creator", key: "creator",
align: "center", align: "center",
}, },
{ {
title: "最近学习时间", title: "最近学习时间",
width: '25%', width: "25%",
dataIndex: "stutime", dataIndex: "stutime",
key: "stutime", key: "stutime",
align: "center", align: "center",
}, },
{ {
title: "操作", title: "操作",
width: '22%', width: "22%",
className: "h", className: "h",
dataIndex: "operation", dataIndex: "operation",
key: "operation", key: "operation",
align: "center", align: "center",
}, },
]; ];
export default defineComponent({ export default defineComponent({
name: "TemplateLibrary", name: "TemplateLibrary",
setup() { setup() {
const state = reactive({ const state = reactive({
tableData1: [ tableData1: [
{ {
key: "1", key: "1",
name: "管理者进阶-腾飞班Z1", name: "管理者进阶-腾飞班Z1",
status: "已发布", status: "已发布",
creator: "李部长", creator: "李部长",
stutime: "2022-10-31 23:12:00", stutime: "2022-10-31 23:12:00",
operation: "operation", operation: "operation",
}, },
{ {
key: "2", key: "2",
name: "管理者进阶-腾飞班Z2", name: "管理者进阶-腾飞班Z2",
status: "已发布", status: "已发布",
creator: "毛继禹", creator: "毛继禹",
stutime: "2022-10-31 23:12:00", stutime: "2022-10-31 23:12:00",
operation: "operation", operation: "operation",
}, },
{ {
key: "3", key: "3",
name: "管理者进阶-腾飞班Z3", name: "管理者进阶-腾飞班Z3",
status: "已发布", status: "已发布",
creator: "毛继禹", creator: "毛继禹",
stutime: "2022-10-31 23:12:00", stutime: "2022-10-31 23:12:00",
operation: "operation", operation: "operation",
}, },
{ {
key: "4", key: "4",
name: "管理者进阶-腾飞班Z4", name: "管理者进阶-腾飞班Z4",
status: "未发布", status: "未发布",
creator: "毛继禹", creator: "毛继禹",
stutime: "2022-10-31 23:12:00", stutime: "2022-10-31 23:12:00",
operation: "operation", operation: "operation",
}, },
], ],
}); });
const getTableDate1 = () => { const getTableDate1 = () => {
let data = state.tableData1; let data = state.tableData1;
data.map((value) => { data.map((value) => {
{ {
//单层项目 //单层项目
value.operation = ( value.operation = (
<div class="operation" style="justify-content: flex-end;"> <div class="operation" style="justify-content: flex-end;">
<div class="nSelect"> <div class="nSelect">
{value.status === "已发布" ? ( {value.status === "已发布" ? (
<div class="nselect"> <div class="nselect">
<div class="ops2"> <div class="ops2">
<router-link to="/libraryadd"> <router-link to="/libraryadd">
<div class="jc">查看 <span style="color:#E9E9E9;margin-left:8px;">|</span></div> <div class="jc">
</router-link> 查看{" "}
<span style="color:#E9E9E9;margin-left:8px;">|</span>
</div> </div>
<div class="ops3"> </router-link>
<div class="jc">撤回</div>
</div>
</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>
<div class="ops3">
<div class="jc">撤回</div>
</div> </div>
); </div>
} ) : (
}); <div></div>
state.tableData = data; )}
}; {value.status === "未发布" ? (
getTableDate1(); <div class="nselect">
return { <div class="ops1">
...toRefs(state), <div class="jc">
columns1, 发布
} <span style="color:#E9E9E9;margin-left:8px;">|</span>
} </div>
}) </div>
<div class="ops2">
<router-link to="/libraryadd">
</script> <div class="jc">
查看
<style lang="scss"> <span style="color:#E9E9E9;margin-left:8px;">|</span>
.templatelibrary{ </div>
width: 100%; </router-link>
.tmpl{ </div>
width:100%; <div class="ops3">
.tmpl_header{ <div class="jc">删除</div>
display:flex; </div>
flex-wrap: wrap; </div>
justify-content: space-between; ) : (
margin-bottom: 32px; <div></div>
)}
margin-left: 32px; </div>
margin-right: 32px; </div>
.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;
}
}
}
}
}
} }
});
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/", target: "http://111.231.196.214:30001/",
changeOrigin: true, changeOrigin: true,
secure: false, secure: false,
ws: true, ws: false,
pathRewrite: { pathRewrite: {
"^/api": "", "^/api": "",
}, },