feat:合并

This commit is contained in:
李晓鸽
2022-10-13 10:19:59 +08:00
7 changed files with 854 additions and 646 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

View File

@@ -185,196 +185,325 @@
<!-- 新建选择线上还是面授课弹窗 --> <!-- 新建选择线上还是面授课弹窗 -->
<!-- 确定新建面授课弹窗 --> <!-- 确定新建面授课弹窗 -->
<div class="faceteach" :style="{ display: ft_hs ? 'block' : 'none' }"> <div class="faceteach" :style="{ display: ft_hs ? 'block' : 'none' }">
<div class="ft_header"></div>
<div class="ft_main"> <div class="ft_main">
<div class="m_header"> <div
<div class="add_icon"></div> style="
<span>新建面授课</span> width: 130px;
<div class="close_exit" @click="ft_exit"></div> height: 40px;
background: #388be1;
border-radius: 8px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 20px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
"
@click="showModal"
>
新建面授课
</div> </div>
<div class="m_title">课程信息</div> <a-modal
<div class="m_body"> v-model:visible="ft_hs"
<div class="mb_left"> title="Title"
<div class="mbl_items1"> @ok="closeModal"
<span style="font-weight: 900; color: red; margin-right: 6px" :footer="null"
></span :closable="false"
> wrapClassName="modalStyle"
<span style="margin-right: 14px">课程名称</span> width="80%"
<div class="i1_input"> >
<a-input <div class="modalHeader">
v-model:value="value" <div class="headerLeft">
style="width: 440px; height: 40px; border-radius: 8px" <img
placeholder="请输入课程名称" style="width: 17px; height: 18px; margin-right: 8px"
src="../../assets/images/basicinfo/add.png"
/>
<span class="headerLeftText">新建面授课</span>
</div>
<div style="margin-right: 57px; cursor: pointer">
<img
style="width: 22px; height: 22px"
src="../../assets/images/basicinfo/close22.png"
/> />
</div> </div>
</div> </div>
<div class="mbl_items2"> <div class="modalMain">
<div class="i2_top"> <div class="m_title">课程信息</div>
<div class="i2_left">课程命名规则</div> <div class="m_body">
<div class="i2_right" @click="hideShow"> <div class="mb_left">
<div <div class="mbl_items">
class="b_zk" <div class="item_nam">
:style="{ display: hideshow ? 'block' : 'none' }" <div class="asterisk_icon"><img src="@/assets/images/coursewareManage/asterisk.png" alt=""></div>
> <span style="margin-right: 14px">课程名称</span>
<span style="color: #4ea6ff">收起</span>
</div>
<div
class="b_sq"
:style="{ display: hideshow ? 'none' : 'block' }"
>
<span style="color: #4ea6ff">展开</span>
</div>
<div class="b_icon"></div>
</div>
</div>
<div
class="i2_detail"
:style="{ display: hideshow ? 'block' : 'none' }"
>
<span style="color: #999ba3">
1课程名称统一不加书名号<br />
2项目名称属地等信息如需体现在课程名称中请放在课程名称信息
之后时间管理GROW180项目时间管理B*确保首先
看到的是课程内容主题<br />
3同一课程如先后有多个版本原则上仅开放最新版本旧版本应停用
版本如必须以年份标明请以沟通技巧2022的方式呈现
</span>
</div>
</div>
<div class="mbl_items3">
<div class="i3_top">
<span style="font-weight: 900; color: red; margin-right: 6px"
></span
>
<span style="margin-right: 14px">封面图</span>
<div class="i3_upload">
<a-upload
v-model:file-list="fileList"
name="avatar"
list-type="picture-card"
class="avatar-uploader"
:show-upload-list="false"
action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
:before-upload="beforeUpload"
@change="handleChange"
>
<img v-if="imageUrl" :src="imageUrl" alt="avatar" />
<div v-else>
<loading-outlined v-if="loading"></loading-outlined>
<plus-outlined v-else></plus-outlined>
<div class="ant-upload-text">Upload</div>
</div> </div>
</a-upload> <div class="item_inp">
<div class="i1_input">
<a-input
v-model:value="value"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入课程名称"
/>
</div>
</div>
</div>
<div class="i2_cz">
<div class="i2_top">
<div class="i2_left">课程命名规则</div>
<div class="i2_right" @click="hideShow">
<div
class="b_zk"
:style="{ display: hideshow ? 'block' :'none' }"
>
<span style="color: #4ea6ff">收起</span>
</div>
<div
class="b_sq"
:style="{ display: hideshow ? 'none' : 'block' }"
>
<span style="color: #4ea6ff">展开</span>
</div>
<div class="b_icon"></div>
</div>
</div>
<div
class="i2_detail"
:style="{ display: hideshow ? 'block' : 'none' }"
>
<span style="color: #999ba3">
1课程名称统一不加书名号<br />
2项目名称属地等信息如需体现在课程名称中请放在课程名称信息
之后时间管理GROW180项目时间管理B*确保首先
看到的是课程内容主题<br />
3同一课程如先后有多个版本原则上仅开放最新版本旧版本应停用
版本如必须以年份标明请以沟通技巧2022的方式呈现
</span>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon"><img src="@/assets/images/coursewareManage/asterisk.png" alt=""></div>
<span style="margin-right: 14px">封面图</span>
</div>
<div class="item_inp">
<div class="i3_upload">
<a-upload
v-model:file-list="fileList"
name="avatar"
list-type="picture-card"
class="avatar-uploader"
:show-upload-list="false"
action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
:before-upload="beforeUpload"
@change="handleChange"
>
<img v-if="imageUrl" :src="imageUrl" alt="avatar" />
<div v-else>
<loading-outlined v-if="loading"></loading-outlined>
<plus-outlined v-else></plus-outlined>
<div class="ant-upload-text">Upload</div>
</div>
</a-upload>
</div>
<div class="i3_bottom">
<span style="color: #999ba3"
>高宽比为16:9 (:800*450) png或jpg图片</span
>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon"><img src="@/assets/images/coursewareManage/asterisk.png" alt=""></div>
<span style="margin-right: 14px">目标人群</span>
</div>
<div class="item_inp">
<div class="i1_input">
<a-input
v-model:value="value"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入目标人群"
/>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">课程价值</span>
</div>
<div class="item_inp">
<div class="i1_input">
<a-input
v-model:value="value"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入课程价值"
/>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon"><img src="@/assets/images/coursewareManage/asterisk.png" alt=""></div>
<span style="margin-right: 14px">内容分类</span>
</div>
<div class="item_inp">
<div class="select i6_input">
<a-select
dropdownClassName="dropdown-style"
style="width: 440px"
placeholder="请选择"
:options="options2"
allowClear
showSearch
></a-select>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">场景</span>
</div>
<div class="item_inp">
<div class="select i7_input">
<a-select
dropdownClassName="dropdown-style"
style="width: 440px"
placeholder="请选择"
:options="options2"
allowClear
showSearch
></a-select>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">内容标签</span>
</div>
<div class="item_inp">
<a-input
v-model:value="value"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入按回车键创建成功"
/>
</div>
</div>
<div class="i8_bottom">
<a-tag closable @close="log">Tag 2</a-tag>
<a-tag closable @close.prevent>Prevent Default</a-tag>
</div>
</div>
<div class="mb_right">
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon"><img src="@/assets/images/coursewareManage/asterisk.png" alt=""></div>
<span style="margin-right: 14px">授课教师</span>
</div>
<div class="item_inp">
<div class="i1_input">
<a-input
v-model:value="value"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入"
/>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">课程简介</span>
</div>
<div class="item_inp">
<div class="i10_textarea">
<a-textarea
v-model:value="value"
style="width: 440px; height: 100px; border-radius: 8px"
placeholder="请输入"
/>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 10px">附件</span>
</div>
<div class="item_inp">
<div class="accessory">
<div class="accessory_icon"><img src="@/assets/images/coursewareManage/enclosure.png" alt=""></div>
<span style="color: #4ea6ff">添加附件</span>
</div>
</div>
</div>
<div class="mbl_items12">
<div class="i12_box1">
<div class="file_img"></div>
<div class="file_detail">
<div class="file_name">
<span style="color:#6F6F6F;">图片1.png</span>
</div>
<div class="file_size">
<span style="color:#999BA3">152.77K</span>
</div>
</div>
<div class="file_operation"><span style="color: #4EA6FF;">删除</span></div>
</div>
<div class="i12_box1">
<div class="file_img"></div>
<div class="file_detail">
<div class="file_name">
<span style="color:#6F6F6F;">图片2.png</span>
</div>
<div class="file_updata">
<div class="updatabox">
<div class="updatacolor"></div>
<div class="updataxq">上传完成</div>
</div>
<div class="upjd"><span style="margin:auto 5px">100%</span></div>
</div>
</div>
<div class="file_operation"><span style="color: #4EA6FF;">删除</span></div>
</div>
<div class="i12_box1">
<div class="file_img"></div>
<div class="file_detail">
<div class="file_name">
<span style="color:#6F6F6F;">图片3.png</span>
</div>
<div class="file_updata">
<div class="updatabox">
<div class="updatacolor2"></div>
<div class="updataxq2">上传失败</div>
</div>
<div class="upjd"><span style="margin:auto 5px">80%</span></div>
</div>
</div>
<div class="file_operation"><span style="color: #4EA6FF;margin-right:5px;">重传</span><span style="color: #4EA6FF;">取消</span></div>
</div>
<div class="i12_box1">
<div class="file_img"></div>
<div class="file_detail">
<div class="file_name">
<span style="color:#6F6F6F;">图片4.png</span>
</div>
<div class="file_updata">
<div class="updatabox">
<div class="updatacolor3"></div>
<div class="updataxq3">正在上传</div>
</div>
</div>
</div>
<div class="file_operation"><span style="color: #4EA6FF;margin-right:5px;">暂停</span><span style="color: #4EA6FF;">取消</span></div>
</div>
</div>
</div> </div>
</div> </div>
<div class="i3_bottom">
<span style="color: #999ba3"
>高宽比为16:9 (:800*450) png或jpg图片</span
>
</div>
</div> </div>
<div class="mbl_items4"> </a-modal>
<span style="font-weight: 900; color: red; margin-right: 6px"
></span
>
<span style="margin-right: 14px">目标人群</span>
<div class="i1_input">
<a-input
v-model:value="value"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入目标人群"
/>
</div>
</div>
<div class="mbl_items5">
<span style="margin-right: 14px">课程价值</span>
<div class="i1_input">
<a-input
v-model:value="value"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入课程价值"
/>
</div>
</div>
<div class="mbl_items6">
<span style="font-weight: 900; color: red; margin-right: 6px"
></span
>
<span style="margin-right: 14px">内容分类</span>
<div class="select i6_input">
<a-select
dropdownClassName="dropdown-style"
style="width: 440px"
placeholder="请选择"
:options="options2"
allowClear
showSearch
></a-select>
</div>
</div>
<div class="mbl_items7">
<span style="margin-right: 14px">场景</span>
<div class="select i7_input">
<a-select
dropdownClassName="dropdown-style"
style="width: 440px"
placeholder="请选择"
:options="options2"
allowClear
showSearch
></a-select>
</div>
</div>
<div class="mbl_items8">
<div class="i8_top">
<span style="margin-right: 14px">内容标签</span>
<div class="i1_input">
<a-input
v-model:value="value"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入按回车键创建成功"
/>
</div>
</div>
<div class="i8_bottom">
<a-tag closable @close="log">Tag 2</a-tag>
<a-tag closable @close.prevent>Prevent Default</a-tag>
</div>
</div>
</div>
<div class="mb_right">
<div class="mbl_items9">
<span style="font-weight: 900; color: red; margin-right: 6px"
></span
>
<span style="margin-right: 14px">授课教师</span>
<div class="i1_input">
<a-input
v-model:value="value"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入"
/>
</div>
</div>
<div class="mbl_items10">
<span style="margin-right: 14px">课程简介</span>
<div class="i10_textarea">
<a-textarea
v-model:value="value"
style="width: 440px; height: 100px; border-radius: 8px"
placeholder="请输入"
/>
</div>
</div>
<div class="mbl_items11">
<div class="i11_top">
<span style="margin-right: 10px">附件</span>
<div class="accessory_icon"></div>
<span style="color: #4ea6ff">添加附件</span>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
<!-- 确定新建面授课弹窗 --> <!-- 确定新建面授课弹窗 -->
@@ -1635,7 +1764,7 @@ export default defineComponent({
of_hs: false, of_hs: false,
hideshow: true, hideshow: true,
bs_hs: true, bs_hs: true,
ft_hs: false, ft_hs:false,
om_1: false, om_1: false,
ftm_1: false, ftm_1: false,
om_ckxq: false, om_ckxq: false,
@@ -2318,29 +2447,6 @@ export default defineComponent({
sm_exit, sm_exit,
}; };
}, },
// data() {
// // return {
// // ...toRefs(state),
// // options1,
// // options2,
// // of_hShow,
// // of_exit,
// // hideShow,
// // bs_hShow,
// // bs_unhShow,
// // createft,
// // ft_exit,
// // om_exit,
// // ftm_exit,
// // ckxq_hs,
// // ftsr_exit,
// // gpm_exit,
// // stm_exit,
// // createkk,
// // cstm_exit,
// // sm_exit,
// // };
// },
}); });
</script> </script>
<style lang="scss"> <style lang="scss">
@@ -2611,156 +2717,13 @@ export default defineComponent({
} }
.faceteach { .faceteach {
z-index: 999; z-index: 999;
width: 85%; width: 90%;
min-width: 1000px; min-width: 1000px;
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);
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
.ft_header {
position: absolute;
width: calc(100%);
height: 40px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.ft_main { .ft_main {
width: calc(100%); width: calc(100%);
position: relative; position: relative;
.m_header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.add_icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/add1.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%;
}
}
.m_title {
margin: 7px auto 25px 52px;
}
.m_body {
display: flex;
height: 500px;
overflow: auto;
.mb_left {
.mbl_items1 {
display: flex;
align-items: center;
margin-left: 87px;
margin-bottom: 10px;
}
.mbl_items2 {
margin-left: 164px;
margin-bottom: 30px;
.i2_top {
display: flex;
.i2_right {
margin-left: 320px;
display: flex;
}
}
.i2_detail {
width: 400px;
}
}
.mbl_items3 {
margin-left: 87px;
margin-bottom: 10px;
.i3_top {
display: flex;
align-items: start;
}
.i3_bottom {
margin-left: 60px;
}
}
.mbl_items4 {
display: flex;
align-items: center;
margin-left: 87px;
margin-bottom: 10px;
}
.mbl_items5 {
display: flex;
align-items: center;
margin-left: 93px;
margin-bottom: 10px;
}
.mbl_items6 {
display: flex;
align-items: center;
margin-left: 87px;
margin-bottom: 10px;
}
.mbl_items7 {
display: flex;
align-items: center;
margin-left: 121px;
margin-bottom: 10px;
}
.mbl_items8 {
margin-left: 93px;
margin-bottom: 10px;
.i8_top {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.i8_bottom {
display: flex;
align-items: center;
margin-left: 71px;
}
}
}
.mb_right {
.mbl_items9 {
display: flex;
align-items: center;
margin-left: 100px;
margin-bottom: 10px;
}
.mbl_items10 {
display: flex;
align-items: flex-start;
margin-left: 107px;
margin-bottom: 30px;
}
.mbl_items11 {
margin-left: 105px;
margin-bottom: 10px;
.i11_top {
display: flex;
align-items: center;
.accessory_icon {
width: 15px;
height: 15px;
background-image: url(@/assets/images/coursewareManage/enclosure.png);
margin-right: 6px;
}
}
}
}
}
} }
} }
.tableBox { .tableBox {
@@ -3648,4 +3611,182 @@ export default defineComponent({
} }
} }
} }
.modalStyle {
.ant-modal{
.modalHeader {
display: flex;
align-items: center;
justify-content: space-between;
.headerLeft {
margin-left: 27px;
display: flex;
align-items: center;
.headerLeftText {
font-size: 16px;
font-weight: 400;
color: #000000;
line-height: 36px;
}
}
}
.modalMain{
.m_title {
margin: 7px auto 25px 22px;
}
.m_body {
display: flex;
.mb_left {
width: 50%;
.mbl_items {
display: flex;
align-items: center;
margin-bottom: 10px;
.item_nam{
width: 100px;
display: flex;
align-items: center;
justify-content: flex-end;
.asterisk_icon{
width: 10px;
height: 10px;
margin-right: 5px;
}
}
.item_inp{
flex:1;
}
}
.i2_cz{
width:440px;
margin-left:100px;
.i2_top{
display:flex;
justify-content: space-between;
}
}
.i8_bottom{
display:flex;
width:440px;
margin-left:100px;
}
}
.mb_right {
width: 50%;
.mbl_items {
display: flex;
align-items: center;
margin-bottom: 10px;
.item_nam{
width: 100px;
display: flex;
align-items: center;
justify-content: flex-end;
.asterisk_icon{
width: 10px;
height: 10px;
margin-right: 5px;
}
}
.item_inp{
flex:1;
}
.accessory{
display:flex;
align-items: center;
.accessory_icon{
width:16px;
height:16px;
margin-right:5px;
}
}
}
.mbl_items12{
width:440px;
margin-left:100px;
.i12_box1{
display: flex;
align-items: center;
padding:17px 0px 17px 21px;
border: 1px solid #EFF4FC;
border-radius: 8px;
margin-bottom:10px;
.file_img{
width:27px;
height:32px;
background-color: red;
margin-right:22px;
}
.file_detail{
width:250px;
margin-right:21px;
.file_updata{
display:flex;
align-items: center;
.updatabox{
position: relative;
width: 230px;
height: 5px;
background-color: rgba(192, 192, 192, 0.25);
border-radius: 3px;
.updatacolor{
position: absolute;
left:0;
width: 100%;
height: 5px;
background-color: #57C887;
border-radius: 3px;
}
.updatacolor2{
position: absolute;
left:0;
width: 80%;
height: 5px;
background-color: #FF7474;
border-radius: 3px;
}
.updatacolor3{
position: absolute;
left:0;
width: 60%;
height: 5px;
background-color: #388BE1;
border-radius: 3px;
}
.updataxq{
position: absolute;
right:2px;
top:-30px;
color: #57C887;
}
.updataxq2{
position: absolute;
right:2px;
top:-30px;
color: #FF7474;
}
.updataxq3{
position: absolute;
right:2px;
top:-30px;
color: #388BE1;
}
}
}
.file_operation{
display: flex;
span{
cursor: pointer;
}
}
}
}
}
}
}
}
}
}
</style> </style>

View File

@@ -64,7 +64,7 @@
</div> </div>
<!-- 搜索框及按钮 --> <!-- 搜索框及按钮 -->
<!-- 表格 --> <!-- 表格 -->
<div class="tableBox"> <div class="tableBox" style="padding-bottom: 160px; position: relative">
<a-table <a-table
style="border: 1px solid #f2f6fe" style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()" :columns="tableDataFunc()"
@@ -75,7 +75,6 @@
@expand="expandTable" @expand="expandTable"
:pagination="false" :pagination="false"
/> />
<div class="pa"> <div class="pa">
<a-pagination <a-pagination
showSizeChanger="true" showSizeChanger="true"
@@ -90,83 +89,86 @@
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div :class="out ? 'out' : 'unout'">
<div class="top"> <a-modal v-model:visible="out" footer="null" style="margin-top: 400px">
<img class="topimg" src="../../assets/images/courseManage/add1.png" /> <div class="out">
<div class="topc">创建路径</div> <div class="top">
<div @click="handleOut" style="margin-left: 500px; cursor: pointer"> <img class="topimg" src="../../assets/images/courseManage/add1.png" />
<img <div class="topc">创建路径</div>
style="width: 20px; height: 20px" <div @click="handleOut" style="margin-left: 500px; cursor: pointer">
src="../../assets/images/basicinfo/close.png"
/>
</div>
</div>
<div class="mid clearfix">
<div class="name">
<div class="d" style="margin-top: -4px">
<img <img
style="width: 10px; height: 10px" style="width: 20px; height: 20px"
src="../../assets/images/basicinfo/asterisk.png" src="../../assets/images/basicinfo/close.png"
/> />
</div> </div>
<div class="inname">路径图名称</div>
<div class="in">
<a-input
v-model:value="valueE"
maxlength="20"
style="border-radius: 4px"
/>
<div class="showcount">{{ valuei.length }}/20</div>
</div>
</div> </div>
<div class="bac"> <div class="mid clearfix">
<div class="d" style="margin-top: 12px"> <div class="name">
<img <div class="d" style="margin-top: -4px">
style="width: 10px; height: 10px" <img
src="../../assets/images/basicinfo/asterisk.png" style="width: 10px; height: 10px"
/> src="../../assets/images/basicinfo/asterisk.png"
</div> />
<div class="inname">路径图背景</div> </div>
<div class="in"> <div class="inname">路径图名称</div>
<!-- <img class="im" src="../../assets/px.jpg" /> <div class="in">
<img class="im" src="../../assets/px.jpg" /> <a-input
<img class="im" src="../../assets/px.jpg" /> --> v-model:value="valueE"
<div maxlength="20"
@click="chooseImg(item.id)" style="border-radius: 4px"
v-for="item in imgData" />
:key="item.key" <div class="showcount">{{ valueE.length }}/20</div>
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" /> -->
</div> </div>
</div> </div>
</div> <div class="bac">
<div class="info"> <div class="d" style="margin-top: 12px">
<div class="inname">路径说明</div> <img
<div class="in"> style="width: 10px; height: 10px"
<a-textarea v-model:value="valuei" maxlength="150" /> src="../../assets/images/basicinfo/asterisk.png"
<div class="showcount">{{ valuei.length }}/150</div> />
</div>
<div class="inname">路径图背景</div>
<div class="in">
<!-- <img class="im" src="../../assets/px.jpg" />
<img class="im" src="../../assets/px.jpg" />
<img class="im" src="../../assets/px.jpg" /> -->
<div
@click="chooseImg(item.id)"
v-for="item in imgData"
: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" /> -->
</div>
</div>
</div>
<div class="info">
<div class="inname">路径说明</div>
<div class="in">
<a-textarea v-model:value="valuei" maxlength="150" />
<div class="showcount">{{ valuei.length }}/150</div>
</div>
</div>
<div class="btn">
<button class="samtn btn1" @click="handleOut">取消</button>
<button class="samtn btn2" @click="handleOut">确定</button>
</div> </div>
</div> </div>
<div class="btn"> </div></a-modal
<button class="samtn btn1" @click="handleOut">取消</button> >
<button class="samtn btn2" @click="handleOut">确定</button>
</div>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
@@ -564,6 +566,174 @@ export default {
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
.out {
display: block;
position: absolute;
top: 90px;
width: 680px;
// height: 525px;
background-color: #fff;
box-shadow: 0 0 10px rgba(118, 136, 166, 0.21);
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
.top {
width: 100%;
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
display: flex;
align-items: center;
.topimg {
width: 18px;
height: 18px;
margin-left: 27px;
margin-top: -2px;
}
.topc {
color: #000000;
font-size: 16px;
margin-left: 8px;
}
}
.mid {
width: 100%;
height: 100%;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
.d {
// margin-top: 8px;
// color: #ff4e4e;
margin-left: -5px;
}
.name {
width: 78%;
// background-color: lightcoral;
display: flex;
margin-top: 20px;
align-items: center;
height: 40px;
// border: 1px solid black;
.inname {
color: #6f6f6f;
font-size: 14px;
margin-left: 7px;
}
.in {
margin-left: 14px;
width: 81%;
position: relative;
.ant-input {
border-radius: 5px;
// height: 120%;
width: 100%;
height: 40px;
}
.showcount {
position: absolute;
right: 10px;
color: #c7cbd2;
bottom: 5px;
}
}
}
.bac {
width: 78%;
// background-color: lightcoral;
display: flex;
margin-top: 30px;
// border: 1px solid black;
.d {
margin-top: 18px;
color: #ff4e4e;
}
.inname {
color: #6f6f6f;
font-size: 14px;
margin-left: 7px;
margin-top: 15px;
}
.in {
margin-left: 14px;
width: 81%;
height: 110px;
// background-color: red;
display: flex;
justify-content: space-between;
.im {
border-radius: 8px;
width: 140px;
height: 110px;
cursor: pointer;
}
}
}
.info {
width: 78%;
// background-color: lightcoral;
display: flex;
margin-top: 30px;
// align-items: center;
// height: 40px;
// border: 1px solid black;
.inname {
color: #6f6f6f;
font-size: 14px;
margin-left: 26px;
margin-top: 15px;
}
.in {
margin-left: 14px;
width: 81%;
position: relative;
.ant-input {
border-radius: 5px;
// height: 120%;
width: 100%;
height: 130px;
resize: none;
}
.showcount {
position: absolute;
right: 10px;
color: #c7cbd2;
bottom: 5px;
}
}
}
.btn {
width: 33%;
margin-top: 30px;
display: flex;
justify-content: space-between;
margin-bottom: 30px;
.samtn {
width: 100px;
height: 40px;
font-size: 14px;
border: 1px solid #4ea6ff;
border-radius: 8px;
cursor: pointer;
}
.btn1 {
background-color: #fff;
color: #4ea6ff;
}
.btn2 {
background-color: #4ea6ff;
color: #fff;
}
}
}
}
.clearfix:before, .clearfix:before,
.clearfix:after { .clearfix:after {
content: " "; content: " ";
@@ -671,6 +841,7 @@ export default {
} }
.tableBox { .tableBox {
margin: 20px 38px 30px; margin: 20px 38px 30px;
th.h { th.h {
background-color: #eff4fc !important; background-color: #eff4fc !important;
} }
@@ -770,174 +941,6 @@ export default {
// } // }
// } // }
.out {
display: block;
position: absolute;
top: 90px;
width: 680px;
// height: 525px;
background-color: #fff;
box-shadow: 0 0 10px rgba(118, 136, 166, 0.21);
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
.top {
width: 100%;
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
display: flex;
align-items: center;
.topimg {
width: 18px;
height: 18px;
margin-left: 27px;
margin-top: -2px;
}
.topc {
color: #000000;
font-size: 16px;
margin-left: 8px;
}
}
.mid {
width: 100%;
height: 100%;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
.d {
// margin-top: 8px;
// color: #ff4e4e;
margin-left: -5px;
}
.name {
width: 78%;
// background-color: lightcoral;
display: flex;
margin-top: 20px;
align-items: center;
height: 40px;
// border: 1px solid black;
.inname {
color: #6f6f6f;
font-size: 14px;
margin-left: 7px;
}
.in {
margin-left: 14px;
width: 81%;
position: relative;
.ant-input {
border-radius: 5px;
// height: 120%;
width: 100%;
height: 40px;
}
.showcount {
position: absolute;
right: 10px;
color: #c7cbd2;
bottom: 5px;
}
}
}
.bac {
width: 78%;
// background-color: lightcoral;
display: flex;
margin-top: 30px;
// border: 1px solid black;
.d {
margin-top: 18px;
color: #ff4e4e;
}
.inname {
color: #6f6f6f;
font-size: 14px;
margin-left: 7px;
margin-top: 15px;
}
.in {
margin-left: 14px;
width: 81%;
height: 110px;
// background-color: red;
display: flex;
justify-content: space-between;
.im {
border-radius: 8px;
width: 140px;
height: 110px;
cursor: pointer;
}
}
}
.info {
width: 78%;
// background-color: lightcoral;
display: flex;
margin-top: 30px;
// align-items: center;
// height: 40px;
// border: 1px solid black;
.inname {
color: #6f6f6f;
font-size: 14px;
margin-left: 26px;
margin-top: 15px;
}
.in {
margin-left: 14px;
width: 81%;
position: relative;
.ant-input {
border-radius: 5px;
// height: 120%;
width: 100%;
height: 130px;
resize: none;
}
.showcount {
position: absolute;
right: 10px;
color: #c7cbd2;
bottom: 5px;
}
}
}
.btn {
width: 33%;
margin-top: 30px;
display: flex;
justify-content: space-between;
margin-bottom: 30px;
.samtn {
width: 100px;
height: 40px;
font-size: 14px;
border: 1px solid #4ea6ff;
border-radius: 8px;
cursor: pointer;
}
.btn1 {
background-color: #fff;
color: #4ea6ff;
}
.btn2 {
background-color: #4ea6ff;
color: #fff;
}
}
}
}
.unout { .unout {
display: none; display: none;
} }

View File

@@ -28,9 +28,11 @@
</div> </div>
</div> </div>
<div class="line"></div> <div class="line"></div>
<img class="img2" src="../../assets/images/leveladd/back.png" /> <router-link to="/learningpath"
<router-link to="/learningpath"> ><div style="display: flex">
<div class="return">返回</div></router-link <img class="img2" src="../../assets/images/leveladd/back.png" />
<div class="return">返回</div>
</div></router-link
> >
</div> </div>
</div> </div>
@@ -434,7 +436,7 @@ export default {
.return { .return {
color: #4ea6ff; color: #4ea6ff;
font-size: 14px; font-size: 14px;
margin-top: 5px; margin-top: 10px;
margin-right: 60px; margin-right: 60px;
} }
.more { .more {

View File

@@ -1,13 +1,13 @@
<template> <template>
<div class="allCon" :style="{ height: rightheight }"> <div class="allCon">
<div class="left clearfix" :style="{ height: rightheight }"> <div class="left clearfix">
<div class="leftmain"> <div class="leftmain">
<div class="tit">关卡</div> <div class="tit" style="margin-left: 18px">关卡</div>
<div class="btn btn3"> <div class="btn btn3" style="margin-left: 19px">
<div class="search"></div> <div class="search"></div>
<div class="btnText">添加关卡</div> <div class="btnText">添加关卡</div>
</div> </div>
<div class="maincon"> <div class="maincon" style="background-color: #fff">
<div class="item" v-for="item in level" :key="item.id"> <div class="item" v-for="item in level" :key="item.id">
<div class="itemle"> <div class="itemle">
<div class="tit">{{ item.tit }}</div> <div class="tit">{{ item.tit }}</div>
@@ -74,10 +74,13 @@
</div> </div>
</div> </div>
<div class="line"></div> <div class="line"></div>
<img class="img2" src="../../assets/images/leveladd/back.png" />
<router-link to="/leveladd"> <router-link to="/leveladd">
<div class="return">返回</div></router-link <div style="display: flex">
> <img class="img2" src="../../assets/images/leveladd/back.png" />
<div class="return">返回</div>
</div>
</router-link>
</div> </div>
</div> </div>
</div> </div>
@@ -299,7 +302,7 @@
</template> </template>
<script> <script>
import { reactive, toRefs, onMounted } from "vue"; import { reactive, toRefs, onMounted, onUnmounted } from "vue";
const drawercolumns = [ const drawercolumns = [
{ {
title: "项目名称", title: "项目名称",
@@ -342,7 +345,6 @@ export default {
name: "LevelAddDetail", name: "LevelAddDetail",
setup() { setup() {
const state = reactive({ const state = reactive({
rightheight: null,
projectNameList: [ projectNameList: [
{ {
id: 1, id: 1,
@@ -388,6 +390,46 @@ export default {
tit: "关卡2", tit: "关卡2",
name: "中级产品经理", name: "中级产品经理",
}, },
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
], ],
tableData: [ tableData: [
{ {
@@ -679,21 +721,25 @@ export default {
state.selectedRowKeys = selectedRowKeys; state.selectedRowKeys = selectedRowKeys;
}; };
onMounted(() => { // const getClientHeight = () => {
state.rightheight = // state.rightheight =
document.getElementsByClassName("addhead")[0].offsetHeight + // document.getElementsByClassName("addhead")[0].offsetHeight +
document.getElementsByClassName("mid")[0].offsetHeight + // document.getElementsByClassName("mid")[0].offsetHeight +
document.getElementsByClassName("boom")[0].offsetHeight + // document.getElementsByClassName("boom")[0].offsetHeight +
40 + // 40 +
"px"; // "px";
console.log( // };
"获取元素",
state.rightheight,
document.getElementsByClassName("right")[0].offsetHeight,
document.getElementsByClassName("right")[0]
);
});
onMounted(() => {
document.getElementsByTagName("main")[0].style.background =
"rgb(245, 247, 250,1)";
document.getElementsByTagName("main")[0].style.boxShadow = "none";
});
onUnmounted(() => {
document.getElementsByTagName("main")[0].style.background = "#ffffff";
document.getElementsByTagName("main")[0].style.boxShadow =
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
});
return { return {
...toRefs(state), ...toRefs(state),
selectProjectName, selectProjectName,
@@ -794,7 +840,6 @@ export default {
} }
.allCon { .allCon {
width: 100%; width: 100%;
// height: 100%;
display: flex; display: flex;
min-width: 933px; min-width: 933px;
// min-width: 1200px; // min-width: 1200px;
@@ -806,7 +851,6 @@ export default {
margin-right: 20px; margin-right: 20px;
width: 208px; width: 208px;
// height: 100%; // height: 100%;
flex-shrink: 0;
// flex: 1; // flex: 1;
// height: 100%; // height: 100%;
background: #ffffff; background: #ffffff;
@@ -814,7 +858,7 @@ export default {
display: flex; display: flex;
justify-content: center; justify-content: center;
.leftmain { .leftmain {
width: 86%; // width: 86%;
margin-top: 20px; margin-top: 20px;
.tit { .tit {
font-size: 18px; font-size: 18px;
@@ -848,6 +892,7 @@ export default {
} }
.btn3 { .btn3 {
width: 171px;
margin-right: 0px; margin-right: 0px;
.search { .search {
width: 17px; width: 17px;
@@ -858,10 +903,12 @@ export default {
} }
.maincon { .maincon {
margin-top: 17px; margin-top: 17px;
width: 100%; width: 208px;
// background-color: #bfa; display: flex;
flex-direction: column;
align-items: center; // background-color: #bfa;
.item { .item {
width: 100%; width: 171px;
height: 83px; height: 83px;
display: flex; display: flex;
background: rgba(255, 182, 78, 0.1); background: rgba(255, 182, 78, 0.1);
@@ -906,7 +953,6 @@ export default {
.right { .right {
flex: 1; flex: 1;
// background-color: #fff; // background-color: #fff;
flex-shrink: 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.addhead { .addhead {
@@ -987,7 +1033,7 @@ export default {
.return { .return {
color: #4ea6ff; color: #4ea6ff;
font-size: 14px; font-size: 14px;
margin-top: 5px; margin-top: 13px;
margin-right: 20px; margin-right: 20px;
} }

View File

@@ -11,7 +11,7 @@
<div class="fort">起止时间2022-07-21 00:00至2020-10-21 00:00</div> <div class="fort">起止时间2022-07-21 00:00至2020-10-21 00:00</div>
</div> </div>
<div class="right"> <div class="right">
<div class="end"> <div class="end" style="margin-right: 5px">
<div style="margin-top: 20px;margin-left: 10px"> <div style="margin-top: 20px;margin-left: 10px">
<img class="endimg" src="../../assets/images/projectadd/ending.png"/> <img class="endimg" src="../../assets/images/projectadd/ending.png"/>
<span class="endtext">结束项目</span> <span class="endtext">结束项目</span>
@@ -39,23 +39,23 @@
</div> </div>
</div> </div>
</div> </div>
<div class="end"> <router-link to="/projectmanage" class="end">
<div style="margin-top: 20px;margin-left: 10px;margin-right:30px"> <div style="margin-top: 20px;margin-left: 10px;margin-right:30px">
<img class="ending" src="../../assets/images/leveladd/back.png" /> <img class="ending" src="../../assets/images/leveladd/back.png" />
<span class="endtext" style="color:#4EA6FF">返回</span> <span class="endtext" style="color:#4EA6FF">返回</span>
</div> </div>
</div> </router-link>
</div> </div>
</div> </div>
<div class="split"></div> <div class="split" style="flex-shrink: 0;"></div>
<div class="content"> <div class="content">
<a-tabs class="tab" <a-tabs class="tab"
v-model:activeKey="activeKey" v-model:activeKey="activeKey"
size="large" size="large"
:tabBarStyle="{ marginLeft: '10px' }"> :tabBarStyle="{ marginLeft: '10px',marginTop: '5px' }">
<a-tab-pane key="2" tab="概览">Content of Tab Pane 1</a-tab-pane> <a-tab-pane key="1" tab="概览"><div class="split"></div></a-tab-pane>
<a-tab-pane key="1" tab="任务" force-render> <a-tab-pane key="2" tab="任务" force-render>
<div class="split"></div>
<div class="onerow"> <div class="onerow">
<div class="taskmain">任务大纲</div> <div class="taskmain">任务大纲</div>
<button class="btn">批量面授报名</button> <button class="btn">批量面授报名</button>
@@ -65,7 +65,7 @@
</div> </div>
</div> </div>
<div class="stage"> <div class="stage">
<span class="stageimg"><img src="../../assets/images/projectadd/close.png"/></span> <span class="stageimg"><img src="../../assets/images/projectadd/open.png"/></span>
<span class="stagename">阶段1腾飞班阶级1</span> <span class="stagename">阶段1腾飞班阶级1</span>
</div> </div>
<div class="course"> <div class="course">
@@ -333,21 +333,27 @@
} }
.content { .content {
//display: flex; //display: flex;
margin: 0 37px; //margin: 0 37px;
.ant-tabs-nav-wrap {
margin-left: 30px;
}
.onerow { .onerow {
width: 100%; //width: 100%;
display: flex; display: flex;
height: 40px; height: 40px;
position: relative; position: relative;
//margin-top: 5xp; margin-top: 15px;
margin-left: 38px;
//margin-right: 38px;
.taskmain { .taskmain {
font-size: 18px; font-size: 18px;
padding-top: 7px;
color: #000000; color: #000000;
} }
.btn { .btn {
position: absolute; position: absolute;
top: 0; top: 0;
right: 110px; right: 168px;
background-color: #409EFF; background-color: #409EFF;
width: 130px; width: 130px;
height: 40px; height: 40px;
@@ -358,7 +364,7 @@
} }
.edit { .edit {
position: absolute; position: absolute;
right: 0; right: 48px;
top: 0; top: 0;
color: #409EFF; color: #409EFF;
width: 100px; width: 100px;
@@ -391,6 +397,8 @@
background-color: #EFF4FC; background-color: #EFF4FC;
align-items: center; align-items: center;
margin-top: 20px; margin-top: 20px;
margin-left: 38px;
margin-right: 38px;
.stageimg { .stageimg {
margin-left: 31px; margin-left: 31px;
} }
@@ -402,11 +410,13 @@
} }
} }
.course { .course {
width: 100%; //width: 100%;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
align-items: center; align-items: center;
padding: 10px; padding: 10px;
margin-left: 38px;
margin-right: 38px;
//margin: 0 12px; //margin: 0 12px;
border: 1px solid #F2F6FC; border: 1px solid #F2F6FC;
.first { .first {

View File

@@ -69,7 +69,9 @@
@expand="expandTable" @expand="expandTable"
:pagination="false" :pagination="false"
/> />
<div class="pa">
</div>
<div class="pa">
<a-pagination <a-pagination
showSizeChanger="true" showSizeChanger="true"
showQuickJumper="true" showQuickJumper="true"
@@ -79,7 +81,6 @@
:total="tableDataTotal" :total="tableDataTotal"
class="pagination" class="pagination"
/> />
</div>
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div :class="out ? 'out' : 'unout'"> <div :class="out ? 'out' : 'unout'">
@@ -354,6 +355,7 @@ export default {
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
//align-items: center;
position: relative; position: relative;
// position: relative; // position: relative;
.filter { .filter {
@@ -451,6 +453,7 @@ export default {
.tableBox { .tableBox {
margin: 20px 38px 30px ; margin: 20px 38px 30px ;
display: flex; display: flex;
flex: 1;
//position: relative; //position: relative;
flex-direction: column; flex-direction: column;
@@ -463,17 +466,20 @@ export default {
> td { > td {
background: #f6f9fd; background: #f6f9fd;
} }
.pa {
left: 0; }
.pa {
width: 100%; width: 100%;
// height: 20px; // height: 20px;
// background-color: red; // background-color: red;
display: flex; display: flex;
justify-content: center; justify-content: center;
//position: absolute; //position: absolute;
//bottom: 20px; margin-bottom: 20px;
.pagination {
margin-bottom: 20px;
}
} }
}
.out { .out {
display: block; display: block;
position: absolute; position: absolute;
@@ -540,7 +546,7 @@ export default {
border-radius: 5px; border-radius: 5px;
// height: 120%; // height: 120%;
width: 100%; width: 100%;
height: 40px; height: 30px;
} }
} }
} }