feat:合并

This commit is contained in:
李晓鸽
2022-10-14 09:18:39 +08:00
12 changed files with 3216 additions and 1845 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 B

View File

@@ -103,6 +103,23 @@ export default {
}, },
]; ];
} }
if (n === "/taskadd" || n === "/TaskAdd") {
state.list = [
{
name: "项目",
href: "",
},
{
name: "基础信息",
},
{
name: "任务",
},
{
name: "添加任务",
}
];
}
if (n === "/templatelibrary" || n === "/TemplateLibrary") { if (n === "/templatelibrary" || n === "/TemplateLibrary") {
state.list = [ state.list = [
{ {

File diff suppressed because it is too large Load Diff

View File

@@ -90,7 +90,12 @@
<!-- 表格 --> <!-- 表格 -->
<a-modal v-model:visible="out" footer="null" style="margin-top: 400px"> <a-modal
:closable="sh"
v-model:visible="out"
:footer="null"
style="margin-top: 400px"
>
<div class="out"> <div class="out">
<div class="top"> <div class="top">
<img class="topimg" src="../../assets/images/courseManage/add1.png" /> <img class="topimg" src="../../assets/images/courseManage/add1.png" />
@@ -203,6 +208,7 @@ export default {
out: false, out: false,
number: null, number: null,
selectTime: null, selectTime: null,
sh: false,
tableData: [ tableData: [
{ {
key: 1, key: 1,

View File

@@ -20,7 +20,7 @@
src="../../assets/images/leveladd/more.png" src="../../assets/images/leveladd/more.png"
/> />
<div class="more"> <div class="more">
<span style="color: #7096e3">更多</span> <span style="color: #7096e3; cursor: pointer">更多</span>
<div class="moreArrow"></div> <div class="moreArrow"></div>
<div class="moreItems"> <div class="moreItems">
<div class="sammo">撤回</div> <div class="sammo">撤回</div>
@@ -137,9 +137,88 @@
<div class="pad"></div> <div class="pad"></div>
</div> </div>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="2" tab="学员管理" force-render <a-tab-pane key="2" tab="学员管理" force-render>
><div class="sametab"></div <div class="xwid">
<div class="pad"></div>
<div class="xin" style="overflow-x: auto">
<div class="xhead">
<a-input
v-model:value="gatenamee"
style="width: 270px; height: 40px; border-radius: 8px"
placeholder="关卡名称"
/>
<div class="btns">
<div class="btn btn1">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btn btn2">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
</div>
</div>
<div class="xheadb">
<button class="addx">添加学员</button>
<button class="addd">导入学员</button>
<div class="select">
<a-select
v-model:value="projectName"
style="width: 130px"
placeholder="更多操作"
:options="projectNameListt"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
</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="tableDataFunc()"
:scroll="{ x: 1600, y: 235 }"
:data-source="tableData"
: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>
</div>
<div class="pad"></div></div
></a-tab-pane> ></a-tab-pane>
<a-tab-pane key="3" tab="设置"> <a-tab-pane key="3" tab="设置">
<div class="sametab"> <div class="sametab">
<div class="Gcon"> <div class="Gcon">
@@ -259,6 +338,43 @@
</div></a-tab-pane </div></a-tab-pane
> >
</a-tabs> </a-tabs>
<a-modal
style="padding: 0"
:closable="sh"
v-model:visible="visible"
:footer="null"
centered="true"
>
<div class="con">
<div class="header">
<div class="inhe">
<div class="mod"></div>
<div class="tz">调整关卡</div>
<div class="mg"></div>
</div>
</div>
<div class="mid">
<div class="inher">
<div class="cur">当前关卡</div>
<div class="select">
<a-select
v-model:value="projectName"
style="width: 100%"
placeholder="请选择关卡"
:options="projectNameList4"
@change="selectProjectName4"
allowClear
showSearch
></a-select>
</div>
<div class="btn">
<button class="sameb btn1">取消</button>
<button class="sameb btn2">确定</button>
</div>
</div>
</div>
</div></a-modal
>
</div> </div>
</div> </div>
</template> </template>
@@ -271,6 +387,29 @@ export default {
setup() { setup() {
const state = reactive({ const state = reactive({
gatename: null, //关卡名称 gatename: null, //关卡名称
gatenamee: null, //学员管理关卡名称
projectNameListt: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
projectNameList: [ projectNameList: [
{ {
id: 1, id: 1,
@@ -315,9 +454,31 @@ export default {
label: "项目四", label: "项目四",
}, },
], ],
projectNameList4: [
{
id: 1,
value: "请选择关卡",
label: "请选择关卡",
},
{
id: 2,
value: "关卡1",
label: "关卡1",
},
{
id: 3,
value: "关卡2",
label: "关卡2",
},
],
activeKey: ref("1"), activeKey: ref("1"),
value: ref(" "), value: ref(" "),
checked2: false, checked2: false,
currentPage: 1,
tableDataTotal: 100,
pageSize: 10,
visible: false,
sh: false,
level: [ level: [
{ {
id: 1, id: 1,
@@ -342,6 +503,80 @@ export default {
test: 1, test: 1,
}, },
], ],
tableData: [
{
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",
},
],
}); });
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
@@ -349,10 +584,129 @@ export default {
const selectProjectName2 = (value, index) => { const selectProjectName2 = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
}; };
const selectProjectName3 = (value, index) => {
console.log("value", value, index);
};
const selectProjectName4 = (value, index) => {
console.log("value", value, index);
};
const tableDataFunc = () => {
const columns = [
{
title: "姓名",
dataIndex: "name",
// width: "30%",
key: "name",
width: 100,
align: "left",
className: "classify",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
// console.log(text.record.checked1);
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: 110,
align: "center",
className: "h",
},
{
title: "操作",
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 110,
align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => {
return (
<div class="opa">
<div class="opacation">
<span style="color:#4EA6FF;margin-right:25px;cursor:pointer">
查看
</span>
<span
onClick={() => {
state.visible = true;
}}
style="color:#4EA6FF;margin-right:25px;cursor:pointer"
>
调整
</span>
<span style="color:#4EA6FF;cursor:pointer">删除</span>
</div>
</div>
);
},
},
];
return columns;
};
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
};
const showModal = () => {
state.visible = true;
};
return { return {
...toRefs(state), ...toRefs(state),
selectProjectName, selectProjectName,
selectProjectName2, selectProjectName2,
selectProjectName3,
selectProjectName4,
tableDataFunc,
onSelectChange,
showModal,
}; };
}, },
}; };
@@ -364,6 +718,102 @@ export default {
display: block; display: block;
clear: both; clear: both;
} }
.ant-modal {
.ant-modal-content {
width: 549px !important;
.ant-modal-body {
padding: 0 !important;
width: 549px !important;
height: 245px !important;
.con {
// background-color: #bfa;
width: 100%;
height: 100%;
.header {
width: 100%;
display: flex;
height: 68px;
position: relative;
justify-content: center;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
.inhe {
width: 80%;
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.mod {
left: 30px;
top: 27px;
position: absolute;
width: 18px;
height: 17px;
background-image: url(../../assets/images/leveladd/mod.png);
}
.tz {
color: #000000;
font-weight: 400;
font-size: 16px;
}
.mg {
width: 20px;
height: 20px;
background-image: url(../../assets/images/basicinfo/close22.png);
background-size: 100% 100%;
}
}
}
.mid {
width: 100%;
display: flex;
height: 100%;
justify-content: center;
.inher {
width: 80%;
height: 100%;
.cur {
color: #6f6f6f;
font-size: 14px;
}
.select {
margin-top: 10px;
}
.btn {
width: 100%;
display: flex;
justify-content: center;
margin-top: 30px;
.sameb {
width: 100px;
height: 40px;
font-size: 14px;
border-radius: 8px;
}
.btn1 {
color: #4ea6ff;
background: #ffffff;
border: 1px solid #4ea6ff;
}
.btn2 {
margin-left: 16px;
border: 0;
color: #ffffff;
background: #4ea6ff;
}
}
}
}
}
}
}
}
.addwrapper { .addwrapper {
width: 100%; width: 100%;
height: 100%; height: 100%;
@@ -432,6 +882,7 @@ export default {
font-size: 14px; font-size: 14px;
margin-top: 5px; margin-top: 5px;
margin-right: 30px; margin-right: 30px;
cursor: pointer;
} }
.return { .return {
color: #4ea6ff; color: #4ea6ff;
@@ -466,9 +917,11 @@ export default {
left: -48px; left: -48px;
top: 30px; top: 30px;
z-index: 100; z-index: 100;
cursor: pointer;
.sammo { .sammo {
text-align: center; text-align: center;
margin-top: 12px; margin-top: 12px;
cursor: pointer;
} }
.sammo:hover { .sammo:hover {
color: #4ea6ff; color: #4ea6ff;
@@ -523,6 +976,7 @@ export default {
} }
.cont { .cont {
display: flex; display: flex;
.pad { .pad {
height: 100%; height: 100%;
width: 40px; width: 40px;
@@ -690,6 +1144,7 @@ export default {
.te { .te {
color: #4ea6ff; color: #4ea6ff;
font-size: 14px; font-size: 14px;
cursor: pointer;
} }
.more { .more {
position: relative; position: relative;
@@ -724,6 +1179,7 @@ export default {
line-height: 36px; line-height: 36px;
display: flex; display: flex;
justify-content: center; justify-content: center;
cursor: pointer;
} }
.roleItem:hover { .roleItem:hover {
color: #4ea6ff; color: #4ea6ff;
@@ -742,6 +1198,200 @@ export default {
} }
} }
} }
.xwid {
// width: 100%;
// height: 100%;
// background-color: #bfa;
position: relative;
margin-top: 30px;
display: flex;
margin-bottom: 20px;
// overflow-x: auto;
.pad {
height: 100%;
width: 40px;
flex-shrink: 0;
}
.xin {
width: 100%;
.xhead {
display: flex;
.btns {
display: flex;
margin-left: 20px;
// flex-wrap: wrap;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
background: rgba(64, 158, 255, 0);
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: rgba(64, 158, 255, 1);
line-height: 36px;
margin-left: 5px;
}
}
.btn1 {
.search {
width: 15px;
height: 17px;
background-image: url("../../assets/images/courseManage/search1.png");
}
}
.btn2 {
.search {
width: 16px;
height: 18px;
background-image: url("../../assets/images/courseManage/reset1.png");
}
}
.btn3 {
margin-right: 0px;
.search {
width: 17px;
height: 18px;
background-image: url("../../assets/images/courseManage/add1.png");
}
}
.btn1:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("../../assets/images/courseManage/search0.png");
}
.btnText {
color: #ffffff;
}
}
.btn2:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("../../assets/images/courseManage/reset0.png");
}
.btnText {
color: #ffffff;
}
}
.btn3:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("../../assets/images/courseManage/add0.png");
}
.btnText {
color: #ffffff;
}
}
}
}
.xheadb {
display: flex;
margin-top: 30px;
.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;
}
}
.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: 45px !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 { .Gcon {
display: flex; display: flex;
.pad { .pad {
@@ -769,6 +1419,7 @@ export default {
.oneedi { .oneedi {
margin-left: 15px; margin-left: 15px;
color: #4ea6ff; color: #4ea6ff;
cursor: pointer;
} }
} }
.onemain { .onemain {

View File

@@ -66,7 +66,7 @@
</div> </div>
</div> --> </div> -->
<div class="role"> <div class="role">
<div>更多</div> <div style="white-space: nowrap">更多</div>
<div class="roleArrow"></div> <div class="roleArrow"></div>
<div class="roleItems"> <div class="roleItems">
<div class="roleItem">复制</div> <div class="roleItem">复制</div>
@@ -1028,13 +1028,24 @@ export default {
color: #ffb64e; color: #ffb64e;
font-size: 14px; font-size: 14px;
margin-top: 5px; margin-top: 5px;
margin-right: 18px; margin-right: 30px;
cursor: pointer;
white-space: nowrap;
}
@media screen and (max-width: 1050px) {
.pub {
margin-right: 10px;
}
.line {
margin-right: 10px;
}
} }
.return { .return {
color: #4ea6ff; color: #4ea6ff;
font-size: 14px; font-size: 14px;
margin-top: 13px; margin-top: 13px;
margin-right: 20px; margin-right: 20px;
white-space: nowrap;
} }
.role { .role {
@@ -1118,6 +1129,7 @@ export default {
font-size: 16px; font-size: 16px;
color: #363636; color: #363636;
margin-top: 5px; margin-top: 5px;
white-space: nowrap;
} }
} }
.lin { .lin {

View File

@@ -3,11 +3,11 @@
<div class="left clearfix"> <div class="left clearfix">
<div class="leftmain"> <div class="leftmain">
<div class="tit">阶段<img src="../../assets/images/projectadd/right.png" style="margin-left: 10px"/></div> <div class="tit">阶段<img src="../../assets/images/projectadd/right.png" style="margin-left: 10px"/></div>
<div class="btn btn3"> <div class="btn btn3" @click="showModal" 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>
@@ -32,14 +32,14 @@
<img class="img" src="../../assets/images/projectadd/picture.png" /> <img class="img" src="../../assets/images/projectadd/picture.png" />
</div> </div>
<div class="imgfor"> <div class="imgfor">
<div class="forz" style="font-weight: 500">管理者进阶-腾飞班</div> <div class="forz" style="font-weight: 700">管理者进阶-腾飞班</div>
</div> </div>
</div> </div>
<div class="rightt"> <div class="rightt">
<div class="select"> <div class="select">
<a-select <a-select
v-model:value="projectName" v-model:value="projectName"
style="width: 270px" style="width: 200px"
placeholder="自由学习模式" placeholder="自由学习模式"
:options="projectNameList" :options="projectNameList"
@change="selectProjectName" @change="selectProjectName"
@@ -51,23 +51,16 @@
<img class="img2" src="../../assets/images/projectadd/keep.png" /> <img class="img2" src="../../assets/images/projectadd/keep.png" />
<div class="pub">保存</div> <div class="pub">保存</div>
<div class="line"></div> <div class="line"></div>
<img class="img2" src="../../assets/images/leveladd/back.png" />
<router-link to="/taskpage"> <router-link to="/taskpage">
<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>
<div class="mid"> <div class="mid">
<!-- <div class="item" v-for="(item, index) in mid" :key="item.id">
<div class="itcon">
<div class="img">
<img :src="item.img" />
</div>
<div class="text">{{ item.title }}</div>
</div>
<div :class="[index === mid.length - 1 ? 'no' : 'lin']"></div>
</div> -->
<div class="item"> <div class="item">
<div class="itcon"> <div class="itcon">
<div class="img"> <div class="img">
@@ -194,7 +187,7 @@
<span class="th">3</span> <span class="th">3</span>
<div style="width: 5px; display: inline-block"></div> <div style="width: 5px; display: inline-block"></div>
<span class="yi"></span> <span class="yi"></span>
<span class="zon">人物总数</span> <span class="zon">任务总数</span>
<span class="yi">5</span> <span class="yi">5</span>
<span class="yi"></span> <span class="yi"></span>
</div> </div>
@@ -206,13 +199,15 @@
:data-source="tableData" :data-source="tableData"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true" expandRowByClick="true"
:scroll="{ x: 1500, y: 300 }"
@expand="expandTable" @expand="expandTable"
:pagination="false" :pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/> />
<!-- :pagination= showSizeChanger: true, showQuickJumper: true,
hideOnSinglePage: true, pageSizeOptions: [], pageSize: pageSize, current:
currentPage, total: tableDataTotal, -->
<div class="pa"> <div class="pa">
<a-pagination <a-pagination
showSizeChanger="true" showSizeChanger="true"
@@ -233,7 +228,7 @@
class="drawerStyle" class="drawerStyle"
title="关联项目" title="关联项目"
placement="right" placement="right"
width="50%" width="80%"
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
> >
<div class="drawerMain"> <div class="drawerMain">
@@ -264,11 +259,65 @@
</a-drawer> </a-drawer>
</div> </div>
</div> </div>
<div>
<a-modal
v-model:visible="stage"
:title="null"
@ok="closeModal"
:footer="null"
:closable="false"
wrapClassName="addstage"
width="624px"
height="388px"
>
<div class="modalHeader"
style="width: 100%;height: 68px;display: flex;align-items: center;justify-content: space-between;background:linear-gradient(0deg,rgba(78, 166, 255, 0) 0%,rgba(78, 166, 255, 0.2000) 100%)"
>
<div class="headerLeft" style="margin-left: 32px">
<span class="headerLeftText" style="font-size: 16px">添加阶段</span>
</div>
<div style="cursor: pointer;margin-right:32px" @click="closeModal">
<img
style="width: 22px; height: 22px"
src="../../assets/images/basicinfo/close22.png"
/>
</div>
</div>
<div class="modalMain"
style="width: 100%;"
>
<div class="name">
<div class="namebox">
<div class="inname">阶段名称</div>
</div>
<div class="in">
<a-input v-model:value="valueE" show-count :maxlength="20" placeholder="请输入阶段名称" />
</div>
</div>
<div class="name" style="display: flex; align-items: flex-start">
<div class="namebox">
<div class="inname">阶段说明</div>
</div>
<div class="in">
<a-textarea v-model:value="value" style="height: 88px" show-count :maxlength="100" placeholder="请输入阶段说明" />
</div>
</div>
<div style="display: flex;width: 100%;justify-content: center;margin-top: 40px">
<button @click="closeModal"
style=" cursor: pointer;height: 40px;width: 100px;border: 1px solid #387DF7;border-radius: 4px;color: #387DF7;background-color: #FFFFFF"
>取消</button>
<button @click="closeModal"
style=" cursor: pointer;margin-left: 16px;margin-bottom: 40px;height: 40px;width: 100px;border: 1px solid #388BE1;border-radius: 4px;color: #FFFFFF;background-color: #388BE1"
>确定</button>
</div>
</div>
</a-modal>
</div>
</div> </div>
</template> </template>
<script> <script>
import { reactive, toRefs } from "vue"; import { reactive, toRefs, onMounted, onUnmounted } from "vue";
const drawercolumns = [ const drawercolumns = [
{ {
title: "项目名称", title: "项目名称",
@@ -336,16 +385,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: "移动任务到关卡",
}, },
@@ -359,7 +403,22 @@ export default {
{ {
id: "2", id: "2",
tit: "阶段2", tit: "阶段2",
name: "腾飞班1基础", name: "腾飞班基础",
},
{
id: "2",
tit: "阶段2",
name: "中级产品经理",
},
{
id: "2",
tit: "阶段2",
name: "中级产品经理",
},
{
id: "2",
tit: "阶段2",
name: "中级产品经理",
}, },
], ],
tableData: [ tableData: [
@@ -385,6 +444,17 @@ export default {
checked1: false, checked1: false,
checkedd: false, checkedd: false,
}, },
{
key: 1,
lei: "在线",
// state: "已发布",
creater: "管理者课程",
// pubtime: "2022-07-20 14:00:03",
cretime: "60分钟",
haspub: false,
checked1: false,
checkedd: false,
},
{ {
key: 3, key: 3,
lei: "作业", lei: "作业",
@@ -413,7 +483,29 @@ export default {
// state: "草稿", // state: "草稿",
creater: "腾飞班1案例", creater: "腾飞班1案例",
// pubtime: "2022-07-20 14:00:03", // pubtime: "2022-07-20 14:00:03",
cretime: "-", cretime: "20分钟",
haspub: true,
checked1: true,
checkedd: false,
},
{
key: 4,
lei: "考试",
// state: "草稿",
creater: "管理者考试",
// pubtime: "2022-07-20 14:00:03",
cretime: "20分钟",
haspub: true,
checked1: false,
checkedd: false,
},
{
key: 5,
lei: "案例",
// state: "草稿",
creater: "腾飞班1案例",
// pubtime: "2022-07-20 14:00:03",
cretime: "20分钟",
haspub: true, haspub: true,
checked1: true, checked1: true,
checkedd: false, checkedd: false,
@@ -518,6 +610,8 @@ export default {
tableDataTotal: 100, tableDataTotal: 100,
pageSize: 10, pageSize: 10,
visible: false, visible: false,
stage: false,
selectedRowKeys: [],
}); });
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
@@ -538,18 +632,29 @@ export default {
dataIndex: "state", dataIndex: "state",
// width: "30%", // width: "30%",
key: "state", key: "state",
width: 90, width: 60,
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"
style={{ cursor: "pointer" }}
onClick={() => {
console.log("点击了");
}}
></div>
<span> {text.record.lei}</span>
{/**
<div class="img"></div> <div class="img"></div>
<a-checkbox class="ch" v-model:checked={text.record.checkedd}> <a-checkbox class="ch" checked={text.record.checkedd}>
{text.record.lei} {text.record.lei}
</a-checkbox> </a-checkbox>
*/}
</div> </div>
); );
}, },
@@ -567,20 +672,24 @@ export default {
title: "必修/选修", title: "必修/选修",
dataIndex: "pubtime", dataIndex: "pubtime",
key: "pubtime", key: "pubtime",
width: 200, // width: 100,
align: "center", align: "center",
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
@@ -602,7 +711,7 @@ export default {
title: "时长", title: "时长",
dataIndex: "cretime", dataIndex: "cretime",
key: "cretime", key: "cretime",
width: 100, // width: 100,
align: "center", align: "center",
className: "h", className: "h",
}, },
@@ -611,7 +720,7 @@ export default {
className: "h", className: "h",
dataIndex: "opacation", dataIndex: "opacation",
key: "opacation", key: "opacation",
width: 100, // width: 100,
align: "center", align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽 scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => { customRender: () => {
@@ -631,30 +740,177 @@ export default {
return columns; return columns;
}; };
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
};
// const getClientHeight = () => {
// state.rightheight =
// document.getElementsByClassName("addhead")[0].offsetHeight +
// document.getElementsByClassName("mid")[0].offsetHeight +
// document.getElementsByClassName("boom")[0].offsetHeight +
// 40 +
// "px";
// };
const showModal = () => {
state.stage = true;
};
const closeModal = () => {
state.stage = false;
};
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,
selectProjectName2, selectProjectName2,
tableDataFunc, tableDataFunc,
showModal,
closeModal,
showDrawer, showDrawer,
afterVisibleChange, afterVisibleChange,
drawercolumns, drawercolumns,
onSelectChange,
}; };
}, },
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
.clearfix:after,
.clearfix:before {
content: " ";
display: block;
clear: both;
}
.ant-input {
border-radius: 8px;
// height: 120%;
width: 384px;
height: 40px;
}
.addstage {
.ant-modal {
.ant-modal-body {
padding: 0 !important;
.modalMain {
.ant-input-textarea-show-count {
position: relative;
height: 88px;
}
.ant-input-textarea-show-count::after {
position: absolute;
right: 10px;
bottom: 10px;
}
}
}
}
}
.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;
}
}
}
.name {
width: 78%;
// background-color: lightcoral;
display: flex;
margin-top: 20px;
align-items: center;
//height: 40px;
// border: 1px solid black;
.namebox {
width: 120px;
display: flex;
align-items: center;
justify-content: flex-end;
flex-shrink: 0;
.nameimg {
width: 10px;
height: 10px;
}
}
.d {
margin-top: 8px;
font-size: 25px;
color: #ff4e4e;
}
.box {
position: relative;
margin-left: 14px;
.box1 {
position: absolute;
left: 50%;
top: 50%;
width: 50px;
margin-left: -25px;
margin-top: -5px;
border-top: 2px solid rgba(78, 166, 255, 1);
}
.box2 {
position: absolute;
left: 50%;
top: 50%;
height: 50px;
//margin-left: -5px;
margin-top: -25px;
border-left: 2px solid rgba(78, 166, 255, 1);
}
}
.inname {
color: #000000;
font-size: 14px;
margin-left: 7px;
}
.in {
margin-left: 14px;
flex: 1;
.ant-radio-wrapper {
}
.ant-input-affix-wrapper {
width: 384px;
border-radius: 8px;
}
.ant-input {
border-radius: 8px;
// height: 120%;
//width: 384px;
height: 30px;
}
}
}
.drawerStyle { .drawerStyle {
.ant-drawer-content-wrapper { .ant-drawer-content-wrapper {
max-width: 1000px; // max-width: 1000px;
.ant-drawer-header { .ant-drawer-header {
display: none !important; display: none !important;
} }
@@ -730,22 +986,28 @@ export default {
} }
.allCon { .allCon {
width: 100%; width: 100%;
height: 100%;
background-color: #f1f4f8;
display: flex; display: flex;
min-width: 933px;
// min-width: 1200px;
// overflow-x: hidden;
// min-width: 1400px;
// overflow: scroll;
background-color: rgba(245, 247, 250, 1);
.left { .left {
margin-right: 20px; margin-right: 20px;
width: 208px; width: 208px;
flex-shrink: 0; // height: 100%;
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;
justify-content: center; justify-content: center;
.leftmain { .leftmain {
width: 86%; // width: 86%;
margin-top: 20px; margin-top: 20px;
.tit { .tit {
margin-left: 20px;
font-size: 18px; font-size: 18px;
color: #363636; color: #363636;
} }
@@ -777,6 +1039,7 @@ export default {
} }
.btn3 { .btn3 {
width: 171px;
margin-right: 0px; margin-right: 0px;
.search { .search {
width: 17px; width: 17px;
@@ -787,10 +1050,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);
@@ -834,8 +1099,6 @@ export default {
} }
.right { .right {
flex: 1; flex: 1;
height: 100%;
width: 100%;
// background-color: #fff; // background-color: #fff;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -843,7 +1106,7 @@ export default {
width: 100%; width: 100%;
// min-width: 500px; // min-width: 500px;
// height: 130px; // height: 130px;
// 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);
display: flex; display: flex;
@@ -901,24 +1164,35 @@ export default {
height: 60px; height: 60px;
width: 1px; width: 1px;
background-color: #e8effa; background-color: #e8effa;
margin-right: 28px; margin-right: 18px;
} }
.img2 { .img2 {
width: 42px; width: 42px;
height: 42px; height: 42px;
margin-right: 22px; margin-right: 18px;
} }
.pub { .pub {
color: #57C887; color: #57C887;
font-size: 14px; font-size: 14px;
margin-top: 5px; margin-top: 5px;
margin-right: 30px; margin-right: 30px;
cursor: pointer;
white-space: nowrap;
}
@media screen and (max-width: 1050px) {
.pub {
margin-right: 10px;
}
.line {
margin-right: 10px;
}
} }
.return { .return {
color: #4ea6ff; color: #4ea6ff;
font-size: 14px; font-size: 14px;
margin-top: 5px; margin-top: 13px;
margin-right: 20px; margin-right: 20px;
white-space: nowrap;
} }
.role { .role {
@@ -973,16 +1247,17 @@ export default {
.mid { .mid {
width: 100%; width: 100%;
height: 130px; // height: 130px;
margin-top: 20px; margin-top: 20px;
margin-bottom: 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;
align-items: center; align-items: center;
flex-wrap: wrap;
.item { .item {
height: 100%; height: 115px;
width: 7.7%; // width: 7.7%;
display: flex; display: flex;
align-items: center; align-items: center;
.itcon { .itcon {
@@ -992,6 +1267,8 @@ export default {
justify-content: center; justify-content: center;
height: 100%; height: 100%;
width: 100%; width: 100%;
margin-left: 38px;
margin-right: 38px;
.img { .img {
cursor: pointer; cursor: pointer;
} }
@@ -999,6 +1276,7 @@ export default {
font-size: 16px; font-size: 16px;
color: #363636; color: #363636;
margin-top: 5px; margin-top: 5px;
white-space: nowrap;
} }
} }
.lin { .lin {
@@ -1021,7 +1299,7 @@ export default {
justify-content: center; justify-content: center;
.boomcen { .boomcen {
width: 95%; width: 95%;
height: 100%; // height: 100%;
// background-color: #bfa; // background-color: #bfa;
.onerow { .onerow {
width: 100%; width: 100%;
@@ -1032,6 +1310,7 @@ export default {
.taskmain { .taskmain {
font-size: 18px; font-size: 18px;
color: #000000; color: #000000;
margin-top: 10px;
} }
.btn { .btn {
position: absolute; position: absolute;
@@ -1108,7 +1387,22 @@ export default {
} }
} }
.tableBox { .tableBox {
// margin: 20px 38px 30px; margin-bottom: 80px;
.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: 60px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h { th.h {
background-color: #eff4fc !important; background-color: #eff4fc !important;
} }
@@ -1143,10 +1437,6 @@ export default {
// background: #f6f9fd; // background: #f6f9fd;
// } // }
// } // }
.draw {
.drawerbox {
}
}
} }
.opat { .opat {
@@ -1191,14 +1481,16 @@ 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: -40px;
} }
.ch { .ch {
margin-left: 10px; margin-left: 10px;

View File

@@ -59,10 +59,10 @@
<div class="onerow"> <div class="onerow">
<div class="taskmain">任务大纲</div> <div class="taskmain">任务大纲</div>
<button class="btn">批量面授报名</button> <button class="btn">批量面授报名</button>
<div class="edit"> <router-link to="/taskadd" class="edit">
<img class="editimg" src="../../assets/images/projectadd/edit.png"/> <img class="editimg" src="../../assets/images/projectadd/edit.png"/>
<span class="editext">编辑</span> <span class="editext">编辑</span>
</div> </router-link>
</div> </div>
<div class="stage"> <div class="stage">
<span class="stageimg"><img src="../../assets/images/projectadd/open.png"/></span> <span class="stageimg"><img src="../../assets/images/projectadd/open.png"/></span>