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

This commit is contained in:
songwc
2022-10-12 09:59:56 +08:00
29 changed files with 3657 additions and 1156 deletions

View File

@@ -44,6 +44,8 @@ LevelAddDetail.vue:创建关卡页面
``` ```
ProjectManage.vue:项目页面 ProjectManage.vue:项目页面
ProjectAdd.vue:创建项目页面 ProjectAdd.vue:创建项目页面
TaskPage.vue:任务页面
TaskAdd.vue:创建任务页面
TemplateLibrary.vue:模板页面 TemplateLibrary.vue:模板页面
``` ```
@@ -68,6 +70,7 @@ ExaminationCenter.vue:考试中心页面
``` ```
ResearchManage.vue:调研管理页面 ResearchManage.vue:调研管理页面
ResearchAdd.vue:创建调研页面 ResearchAdd.vue:创建调研页面
ManagePage:调研管理-管理页面
``` ```

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

View File

@@ -210,7 +210,11 @@ display: none;
overflow-x: scroll; overflow-x: scroll;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%;
.contentMain {
flex: 1;
overflow-y: scroll;
}
}} }}
//抽屉-------------------------------------------------------- //抽屉--------------------------------------------------------

File diff suppressed because it is too large Load Diff

View File

@@ -137,8 +137,22 @@
@click="chooseImg(item.id)" @click="chooseImg(item.id)"
v-for="item in imgData" v-for="item in imgData"
:key="item.key" :key="item.key"
style="
border-radius: 8px;
width: 136px;
height: 106px;
background-size: 100%;
background-repeat: no-repeat;
"
:style="{
border:
learnPathBg === item.id
? '2px solid rgba(78, 166, 255, 1)'
: '2px solid rgba(78, 166, 255, 0)',
'background-image': 'url(' + item.source + ')',
}"
> >
<img class="im" :src="item.source" /> <!-- <img class="im" :src="item.source" /> -->
</div> </div>
</div> </div>
</div> </div>
@@ -245,6 +259,7 @@ export default {
source: require("../../assets/images/leveladd/3.png"), source: require("../../assets/images/leveladd/3.png"),
}, },
], ],
learnPathBg: null, //选择的路径图背景
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: 100,
pageSize: 10, pageSize: 10,
@@ -371,6 +386,7 @@ export default {
}; };
const chooseImg = (id) => { const chooseImg = (id) => {
console.log(id); console.log(id);
state.learnPathBg = id;
}; };
const getTableDate = () => { const getTableDate = () => {
let data = state.tableData; let data = state.tableData;

View File

@@ -48,7 +48,7 @@
<div class="sametab"> <div class="sametab">
<div class="Lhead"> <div class="Lhead">
<a-input <a-input
v-model:value="value" v-model:value="gatename"
style="width: 270px; height: 40px; border-radius: 8px" style="width: 270px; height: 40px; border-radius: 8px"
placeholder="关卡名称" placeholder="关卡名称"
/> />
@@ -268,6 +268,7 @@ export default {
methods: {}, methods: {},
setup() { setup() {
const state = reactive({ const state = reactive({
gatename: null, //关卡名称
projectNameList: [ projectNameList: [
{ {
id: 1, id: 1,
@@ -354,7 +355,7 @@ export default {
}, },
}; };
</script> </script>
<style scoped lang="scss"> <style lang="scss">
.clearfix:before, .clearfix:before,
.clearfix:after { .clearfix:after {
content: " "; content: " ";
@@ -513,6 +514,11 @@ export default {
margin-top: 10px; margin-top: 10px;
// margin-left: 10px; // margin-left: 10px;
} }
.ant-tabs > .ant-tabs-nav,
.ant-tabs > div > .ant-tabs-nav {
margin-left: 0px !important;
padding-left: 32px !important;
}
.cont { .cont {
display: flex; display: flex;
.pad { .pad {

View File

@@ -247,6 +247,11 @@
:scroll="{ x: 1500, y: 300 }" :scroll="{ x: 1500, y: 300 }"
@expand="expandTable" @expand="expandTable"
:pagination="false" :pagination="false"
:row-selection="{
columnWidth: '40px',
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/> />
<!-- :pagination= showSizeChanger: true, showQuickJumper: true, <!-- :pagination= showSizeChanger: true, showQuickJumper: true,
hideOnSinglePage: true, pageSizeOptions: [], pageSize: pageSize, current: hideOnSinglePage: true, pageSizeOptions: [], pageSize: pageSize, current:
@@ -374,16 +379,11 @@ export default {
projectNameList2: [ projectNameList2: [
{ {
id: 1, id: 1,
value: "批量操作",
label: "批量操作",
},
{
id: 2,
value: "删除任务", value: "删除任务",
label: "删除任务", label: "删除任务",
}, },
{ {
id: 3, id: 2,
value: "移动任务到关卡", value: "移动任务到关卡",
label: "移动任务到关卡", label: "移动任务到关卡",
}, },
@@ -556,6 +556,7 @@ export default {
tableDataTotal: 100, tableDataTotal: 100,
pageSize: 10, pageSize: 10,
visible: false, visible: false,
selectedRowKeys: [],
}); });
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
@@ -576,18 +577,29 @@ export default {
dataIndex: "state", dataIndex: "state",
// width: "30%", // width: "30%",
key: "state", key: "state",
width: 90, width: 40,
align: "center", align: "left",
className: "h", className: "classify",
scopedSlots: { customRender: "action" }, //引入的插槽 scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => { customRender: (text) => {
console.log(text.record.checked1); // console.log(text.record.checked1);
return ( return (
<div class="racona"> <div class="racona">
<div class="img"></div> <div
<a-checkbox class="ch" v-model:checked={text.record.checkedd}> class="img"
style={{ cursor: "pointer" }}
onClick={() => {
console.log("点击了");
}}
></div>
<span> {text.record.lei}</span>
{/**
<div class="img"></div>
<a-checkbox class="ch" checked={text.record.checkedd}>
{text.record.lei} {text.record.lei}
</a-checkbox> </a-checkbox>
*/}
</div> </div>
); );
}, },
@@ -610,15 +622,19 @@ export default {
className: "h", className: "h",
scopedSlots: { customRender: "action" }, //引入的插槽 scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => { customRender: (text) => {
console.log(text.record.checked1); // console.log(text.record.checked1);
return ( return (
<div class="opat"> <div class="opat">
<div class="opacationt clearfix"> <div class="opacationt clearfix">
<a-switch <a-switch
style="margin-left:-50px;margin-top:3px" style="margin-left:-50px;margin-top:3px"
v-model:checked={text.record.checked1} checked={text.record.checked1}
size="small" size="small"
active-color="red" active-color="red"
onClick={() => {
console.log("点击了");
text.record.checked1 = !text.record.checked1;
}}
/> />
<div class="showt clearfix"> <div class="showt clearfix">
<div <div
@@ -669,6 +685,11 @@ export default {
return columns; return columns;
}; };
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
};
return { return {
...toRefs(state), ...toRefs(state),
selectProjectName, selectProjectName,
@@ -677,12 +698,13 @@ export default {
showDrawer, showDrawer,
afterVisibleChange, afterVisibleChange,
drawercolumns, drawercolumns,
onSelectChange,
}; };
}, },
}; };
</script> </script>
<style lang="scss" > <style lang="scss">
.clearfix:after, .clearfix:after,
.clearfix:before { .clearfix:before {
content: " "; content: " ";
@@ -1103,6 +1125,21 @@ export default {
} }
} }
.tableBox { .tableBox {
.classify {
margin-left: 10px !important;
padding-left: 9px !important;
}
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 68px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
// margin: 20px 38px 30px; // margin: 20px 38px 30px;
th.h { th.h {
background-color: #eff4fc !important; background-color: #eff4fc !important;
@@ -1186,18 +1223,20 @@ export default {
// background-color: #bfa; // background-color: #bfa;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; // justify-content: center;
height: 100%; height: 100%;
.img { .img {
margin-left: -40px; // margin-left: -40px;
margin-top: -2px; // margin-top: -2px;
width: 17px; width: 17px;
height: 14px; height: 14px;
background-image: url("../../assets/images/leveladd/z1.png"); background-image: url("../../assets/images/leveladd/z1.png");
position: absolute;
left: -47px;
} }
.ch { .ch {
margin-left: 10px; margin-left: 10px;
} }
} }
} }
</style> </style>

File diff suppressed because it is too large Load Diff

View File

@@ -5,29 +5,488 @@
<div class="box"> <div class="box">
<img src="../../assets/images/projectadd/picture.png"/> <img src="../../assets/images/projectadd/picture.png"/>
</div> </div>
<div class="imgfor">
<div class="forz">管理者进阶-腾飞班</div>
<div class="fort">项目经理黄华/刘俊</div>
<div class="fort">起止时间2022-07-21 00:00至2020-10-21 00:00</div>
</div>
<div class="right">
<div class="end">
<div style="margin-top: 20px;margin-left: 10px">
<img class="endimg" src="../../assets/images/projectadd/ending.png"/>
<span class="endtext">结束项目</span>
</div>
</div>
<div class="end">
<div style="margin-top: 20px;margin-left: 10px">
<img class="endimg" src="../../assets/images/leveladd/more.png"/>
<div class="tableSelect" style="margin-left: 10px;margin-right: 20px">
<a-select
style="width: 50px; color: #7096E3"
value="更多"
dropdownClassName="tabledropdown"
>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
</a-select-option>
<a-select-option value="复制" label="复制">
<div>复制</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
</a-select-option>
</a-select>
</div>
</div>
</div>
<div class="end">
<div style="margin-top: 20px;margin-left: 10px;margin-right:30px">
<img class="ending" src="../../assets/images/leveladd/back.png" />
<span class="endtext" style="color:#4EA6FF">返回</span>
</div>
</div>
</div>
</div> </div>
<div class="split"></div> <div class="split"></div>
<div>2</div> <div class="content">
<a-tabs class="tab"
v-model:activeKey="activeKey"
size="large"
:tabBarStyle="{ marginLeft: '10px' }">
<a-tab-pane key="1" tab="概览">Content of Tab Pane 1</a-tab-pane>
<a-tab-pane key="2" tab="任务" force-render>
<div class="onerow">
<div class="taskmain">任务大纲</div>
<button class="btn">批量面授报名</button>
<div class="edit">
<img class="editimg" src="../../assets/images/projectadd/edit.png"/>
<span class="editext">编辑</span>
</div>
</div>
<div class="stage">
<span class="stageimg"><img src="../../assets/images/projectadd/close.png"/></span>
<span class="stagename">阶段1腾飞班阶级1</span>
</div>
<div class="course">
<div class="first">
<div class="icon"><img src="../../assets/images/leveladd/zai.png"/></div>
<div>
<div class="iconame">在线</div>
<div class="icontext">时间管理</div>
</div>
</div>
<div class="type">
<div class="typename">选修</div>
</div>
<div class="time">
<div class="timetext">开始时间</div>
<div class="timetext">2022-09-16 14:03</div>
</div>
<div class="progress">
<div class="progresstext">25/50</div>
<div style="display: flex">
<a-progress :showInfo="false" :percent="50" strokeColor="#FFC067" trailColor="rgba(253, 209, 98, 0.2)"/>
<span class="progresstext" style="margin-left: 10px">50%</span>
</div>
</div>
<div class="operations">
<div class="operation">管理</div>
</div>
</div>
<div class="course">
<div class="first">
<div class="icon"><img src="../../assets/images/leveladd/zhi.png"/></div>
<div>
<div class="iconame">直播</div>
<div class="icontext">管理直播间</div>
</div>
</div>
<div class="type">
<div class="typename1">必修</div>
</div>
<div class="time">
<div class="timetext">开始时间</div>
<div class="timetext">2022-09-16 14:03</div>
</div>
<div class="progress">
<div class="progresstext">0/50</div>
<div style="display: flex">
<a-progress :showInfo="false" :percent="0" strokeColor="#FFC067" trailColor="rgba(253, 209, 98, 0.2)"/>
<span class="progresstext" style="margin-left: 10px">0%</span>
</div>
</div>
<div class="operations">
<div class="operation">考勤</div>
<div class="operation">管理</div>
<div class="operation">二维码</div>
</div>
</div>
<div class="course">
<div class="first">
<div class="icon"><img src="../../assets/images/leveladd/mian.png"/></div>
<div>
<div class="iconame">面授</div>
<div class="icontext">管理面授课</div>
</div>
</div>
<div class="type">
<div class="typename">选修</div>
</div>
<div class="time">
<div class="timetext">开始时间</div>
<div class="timetext">2022-09-16 14:03</div>
</div>
<div class="progress">
<div class="progresstext">0/50</div>
<div style="display: flex">
<a-progress :showInfo="false" :percent="0" strokeColor="#FFC067" trailColor="rgba(253, 209, 98, 0.2)"/>
<span class="progresstext" style="margin-left: 10px">0%</span>
</div>
</div>
<div class="operations">
<div class="operation">学员</div>
<div class="operation">管理</div>
<div class="operation">二维码</div>
</div>
</div>
<div class="course">
<div class="first">
<div class="icon"><img src="../../assets/images/leveladd/huo.png"/></div>
<div>
<div class="iconame">活动</div>
<div class="icontext">管理活动</div>
</div>
</div>
<div class="type">
<div class="typename1">必修</div>
</div>
<div class="time">
<div class="timetext">开始时间</div>
<div class="timetext">2022-09-16 14:03</div>
</div>
<div class="progress">
<div class="progresstext">0/50</div>
<div style="display: flex">
<a-progress :showInfo="false" :percent="0" strokeColor="#FFC067" trailColor="rgba(253, 209, 98, 0.2)"/>
<span class="progresstext" style="margin-left: 10px">0%</span>
</div>
</div>
<div class="operations">
<div class="operation">考勤</div>
<div class="operation">管理</div>
<div class="operation">二维码</div>
</div>
</div>
<div class="course">
<div class="first">
<div class="icon"><img src="../../assets/images/leveladd/zuo.png"/></div>
<div>
<div class="iconame">作业</div>
<div class="icontext">管理者作业</div>
</div>
</div>
<div class="type">
<div class="typename">选修</div>
</div>
<div class="time">
<div class="timetext">开始时间</div>
<div class="timetext">2022-09-16 14:03</div>
</div>
<div class="progress">
<div class="progresstext">0/50</div>
<div style="display: flex">
<a-progress :showInfo="false" :percent="0" strokeColor="#FFC067" trailColor="rgba(253, 209, 98, 0.2)"/>
<span class="progresstext" style="margin-left: 10px">0%</span>
</div>
</div>
<div class="operations">
<div class="operation">管理</div>
</div>
</div>
<div class="course">
<div class="first">
<div class="icon"><img src="../../assets/images/leveladd/kao.png"/></div>
<div>
<div class="iconame">考试</div>
<div class="icontext">管理者考试</div>
</div>
</div>
<div class="type">
<div class="typename">选修</div>
</div>
<div class="time">
<div class="timetext">开始时间</div>
<div class="timetext">2022-09-16 14:03</div>
</div>
<div class="progress">
<div class="progresstext">0/50</div>
<div style="display: flex">
<a-progress :showInfo="false" :percent="0" strokeColor="#FFC067" trailColor="rgba(253, 209, 98, 0.2)"/>
<span class="progresstext" style="margin-left: 10px">0%</span>
</div>
</div>
<div class="operations">
<div class="operation">管理</div>
</div>
</div>
<div class="stage" style="margin-top: 0">
<span class="stageimg"><img src="../../assets/images/projectadd/close.png"/></span>
<span class="stagename">阶段2 腾飞班阶级2</span>
</div>
<div style="display: flex; height: 20px"></div>
</a-tab-pane>
<a-tab-pane key="3" tab="学员">Content of Tab Pane 3</a-tab-pane>
<a-tab-pane key="4" tab="公告">Content of Tab Pane 3</a-tab-pane>
<a-tab-pane key="5" tab="项目积分">Content of Tab Pane 3</a-tab-pane>
<a-tab-pane key="6" tab="排行榜">Content of Tab Pane 3</a-tab-pane>
<a-tab-pane key="7" tab="设置">Content of Tab Pane 3</a-tab-pane>
</a-tabs>
</div>
</div> </div>
</template> </template>
<script lang="ts">
</script>
<style lang="scss"> <style lang="scss">
.taskpage { .taskpage {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
//position: relative;
.header { .header {
width: 100%; width: 100%;
display: flex; display: flex;
flex-wrap: wrap;
.box { .box {
border: 12px solid #E7F2FF; border: 12px solid #E7F2FF;
margin: 16px 0 16px 19px; margin: 16px 0 16px 19px;
border-radius: 8px; border-radius: 8px;
//float: left;
}
.imgfor {
display: flex;
flex: 1;
flex-direction: column;
margin-top: 38px;
margin-left: 15px;
//float: left;
//position: absolute;
//left: 210px;
.forz {
font-size: 16px;
color: #363636;
font-weight: 500;
}
.fort {
font-size: 14px;
color: #878B92;
}
}
.right {
display: flex;
//position: absolute;
//right: 10px;
//top: 5px;
//float: right;
.end {
border-left: 1px solid #E8EFFA;
height: 82px;
margin-top:30px;
//width: 113px;
.endimg {
width: 42px;
height: 42px;
}
.endtext {
font-size: 14px;
color: #57C887;
padding: 7px;
}
}
}
}
.tableBox {
margin: 20px 38px 30px;
.ant-table-thead > tr > th {
font-size: 14px;
font-weight: 400;
color: #999ba3;
line-height: 36px;
padding: 5px 16px;
background-color: #eff4fc;
}
}
.split {
width: 100%;
height: 20px;
background-color: #edf0f5;
}
.content {
//display: flex;
margin: 0 37px;
.onerow {
width: 100%;
display: flex;
height: 40px;
position: relative;
//margin-top: 5xp;
.taskmain {
font-size: 18px;
color: #000000;
}
.btn {
position: absolute;
top: 0;
right: 110px;
background-color: #409EFF;
width: 130px;
height: 40px;
border-radius: 8px;
border: 1px solid #409EFF;
color: #FFFFFF;
cursor: pointer;
}
.edit {
position: absolute;
right: 0;
top: 0;
color: #409EFF;
width: 100px;
height: 40px;
border: 1px solid #409EFF;
border-radius: 8px;
.editimg {
width: 15px;
height: 15px;
margin-top: -2px;
margin-left: 25px;
margin-right: 5px;
}
.editext {
line-height: 40px;
}
}
.edit:hover {
color: #FFFFFF;
background-color: #409EFF;
cursor: pointer;
.editimg {
background-image: url("../../assets/images/projectadd/edit1.png");
}
}
}
.stage {
display: flex;
height: 49px;
background-color: #EFF4FC;
align-items: center;
margin-top: 20px;
.stageimg {
margin-left: 31px;
}
.stagename {
color: #409EFF;
font-size: 16px;
padding-left: 9px;
line-height: 36px;
}
}
.course {
width: 100%;
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 10px;
//margin: 0 12px;
border: 1px solid #F2F6FC;
.first {
//position: relative;
display: flex;
flex-grow: 1;
align-items: center;
//height: 71px;
margin-left: 12px;
margin-right: 50px;
.icon {
//position: absolute;
}
.iconame {
//position: absolute;
color: #4F5156;
font-size: 16px;
}
.icontext {
//positipn: absolute;
color: #999BA3;
font-size: 14px;
margin-left: 8px;
width: 83px;
}
}
.type {
//height: 71px;
display: flex;
flex-grow: 1;
align-items: center;
margin-right: 50px;
.typename {
width: 63px;
height: 23px;
color: #5DC988;
font-size: 14px;
background-color: #F2F6FC;
border-radius: 4px;
text-align: center;
}
.typename1 {
width: 63px;
height: 23px;
color: #F0F4FE;
font-size: 14px;
background-color: #5DC988;
border-radius: 4px;
text-align: center;
}
}
.time {
//height: 71px;
flex-grow: 1;
margin-right: 50px;
.timetext {
font-size: 14px;
color: #999BA3;
}
}
.progress {
width: 168px;
margin-right: 50px;
flex-grow: 1;
.progresstext {
color: #FFC067;
font-size: 14px;
}
}
.operations {
display: flex;
width: 200px;
//flex-grow: 1;
.operation {
color: #4EA6FF;
font-size: 14px;
padding: 10px;
margin-left: auto;
}
}
} }
} }
.split {
width: 100%;
height: 20px;
background-color: #edf0f5;
}
} }
</style> </style>

View File

@@ -278,6 +278,7 @@
margin-bottom: 14px; margin-bottom: 14px;
.btn { .btn {
display: flex; display: flex;
margin-bottom: 20px;
justify-content: center; justify-content: center;
cursor: pointer; cursor: pointer;
} }