feat:项目(无项目),项目页面的弹窗

This commit is contained in:
岳佳鑫
2022-10-22 11:17:01 +08:00
parent 66a7ddab5f
commit 7c209e3d16
3 changed files with 553 additions and 64 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

View File

@@ -63,7 +63,7 @@
</div>
<!-- 搜索框及按钮 -->
<!-- 表格 -->
<div class="tableBox">
<div class="tableBox" >
<a-table
:columns="columns"
:data-source="tableData"
@@ -107,6 +107,29 @@
</a-table>
</div>
<!-- 表格 -->
<!-- 无项目 -->
<div class="tableBox" style="display: none">
<div
class="taskbox"
@click="showModal1"
style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)"
>
<div class="leftt">
<img src="../../assets/images/taskpage/left2.png" />
</div>
<div class="photo">
<img src="../../assets/images/projectadd/nopro.png" />
</div>
<div class="rightt">
<img src="../../assets/images/taskpage/right2.png" />
</div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)">
创建项目
</div>
<div class="centermain">点击创建项目任务</div>
</div>
</div>
<!-- 无项目 -->
<!-- 创建子项目弹窗 -->
<div>
<a-modal
@@ -213,11 +236,7 @@
display: flex;
align-items: center;
justify-content: space-between;
background: linear-gradient(
0deg,
rgba(78, 166, 255, 0) 0%,
rgba(78, 166, 255, 0.2) 100%
);
background: linear-gradient(0deg,rgba(78, 166, 255, 0) 0%,rgba(78, 166, 255, 0.2) 100%);
"
>
<div class="headerLeft" style="margin-left: 32px">
@@ -422,11 +441,6 @@
display: flex;
align-items: center;
justify-content: space-between;
background: linear-gradient(
0deg,
rgba(78, 166, 255, 0) 0%,
rgba(78, 166, 255, 0.2) 100%
);
"
>
<div class="headerLeft" style="margin-left: 32px">
@@ -519,6 +533,159 @@
</a-modal>
</div>
<!-- 创建多层子项目弹窗 -->
<!-- 复制路径弹窗 -->
<a-modal
v-model:visible="copyModal"
:footer="null"
:closable="closeCopy"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeCopyModal"></div>
</div>
<div class="body">
<span>您确定要复制此路径吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 结束项目弹窗 -->
<a-modal
v-model:visible="stopModal"
:footer="null"
:closable="closeStop"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeStopModal"></div>
</div>
<div class="body">
<span>是否结束项目</span>
<div class="back">项目结束后学员将无法继续学习此操作不可逆</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 删除项目弹窗 -->
<a-modal
v-model:visible="deleteModal"
:footer="null"
:closable="closeDelete"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeDeleteModal"></div>
</div>
<div class="body">
<span>您确定要删除此项目吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 存为模板弹窗 -->
<a-modal
v-model:visible="startModal"
:footer="null"
:closable="closeStart"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeStartModal"></div>
</div>
<div class="body">
<span>您确定要存为模板吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 撤回路径弹窗 -->
<a-modal
v-model:visible="backModal"
:footer="null"
:closable="closeBack"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeBackModal"></div>
</div>
<div class="body">
<span>是否撤回项目</span>
<div class="back">项目撤回后学员进度保留发布后可继续学习</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
</div>
</template>
<script>
@@ -860,6 +1027,16 @@ export default {
estabish: false,
doublepro: false,
doublesonpro: false,
copyModal: false, //弹窗
closeCopy: false, //弹窗关闭图标
stopModal: false, //停用弹窗
closeStop: false, //停用弹窗关闭图标
deleteModal: false, //删除弹窗
closeDelete: false, //删除弹窗关闭图标
startModal: false, //启用弹窗
closeStart: false, //启用弹窗关闭图标
backModal: false, //撤回弹窗
closeBack: false, //撤回弹窗关闭图标
});
onMounted(() => {
@@ -930,7 +1107,9 @@ export default {
<router-link to="/taskpage">基础信息</router-link>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
</a-select>
</div>
@@ -965,7 +1144,11 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3"
onClick={() => {
showCopyModal();
}}
>复制</span>
<span class="more"></span>
</div>
) : value.state === "已结束" ? (
@@ -998,8 +1181,12 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="more">删除</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span class="more" onClick={() => {
showDeleteModal();
}}>删除</span>
</div>
) : (
<div></div>
@@ -1050,10 +1237,14 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div>复制</div>
<div onClick={() => {
showCopyModal();
}}>复制</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div>删除</div>
<div onClick={() => {
showDeleteModal();
}}>删除</div>
</a-select-option>
</a-select>
</div>
@@ -1092,7 +1283,9 @@ export default {
<router-link to="/classadd" class="operation3">
创建班级
</router-link>
<span class="more">复制</span>
<span class="more" onClick={() => {
showCopyModal();
}}>复制</span>
</div>
) : item.state === "已结束" ? (
<div class="operation">
@@ -1124,8 +1317,12 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="more">删除</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span class="more" onClick={() => {
showDeleteModal();
}}>删除</span>
</div>
) : (
<div></div>
@@ -1173,13 +1370,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div>复制</div>
<div onClick={() => {
showCopyModal();
}}>复制</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div>删除</div>
<div onClick={() => {
showDeleteModal();
}}>删除</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1217,7 +1420,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1226,13 +1431,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
<div onClick={() => {
showBackModal();
}}>撤回</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div>结束</div>
<div onClick={() => {
showStopModal();
}}>结束</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1270,8 +1481,12 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1280,10 +1495,14 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="删除" label="删除">
<div>删除</div>
<div onClick={() => {
showDeleteModal();
}}>删除</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1321,7 +1540,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3"onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1330,13 +1551,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="结束" label="结束">
<div>结束</div>
<div onClick={() => {
showStopModal();
}}>结束</div>
</a-select-option>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
<div onClick={() => {
showBackModal();
}}>撤回</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1390,13 +1617,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div>复制</div>
<div onClick={() => {
showCopyModal();
}}>复制</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div>删除</div>
<div onClick={() => {
showDeleteModal();
}}>删除</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1434,7 +1667,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1443,13 +1678,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
<div onClick={() => {
showBackModal();
}}>撤回</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div>结束</div>
<div onClick={() => {
showStopModal();
}}>结束</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1487,7 +1728,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1496,13 +1739,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="删除" label="删除">
<div>删除</div>
<div onClick={() => {
showDeleteModal();
}}>删除</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div>结束</div>
<div onClick={() => {
showStopModal();
}}>结束</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1540,7 +1789,9 @@ export default {
</a-select-option>
</a-select>
</div>
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
<div class="tableSelect">
<a-select
style="width: 50px"
@@ -1549,13 +1800,19 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
<div onClick={() => {
showBackModal();
}}>撤回</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div>结束</div>
<div onClick={() => {
showStopModal();
}}>结束</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1608,7 +1865,9 @@ export default {
{value.state === "草稿" ? (
<span class="operation3">发布</span>
) : (
<span class="operation3">复制</span>
<span class="operation3" onClick={() => {
showCopyModal();
}}>复制</span>
)}
<div class="tableSelect">
{value.state === "草稿" ? (
@@ -1619,19 +1878,23 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="复制" label="复制">
<div>复制</div>
<div onClick={() => {
showCopyModal();
}}>复制</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div
onClick={() => {
console.log("点击了");
}}
showDeleteModal();
}}
>
删除
</div>
</a-select-option>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1645,19 +1908,23 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="结束" label="结束">
<div
onClick={() => {
console.log("点击了");
}}
showStopModal();
}}
>
结束
</div>
</a-select-option>
<a-select-option value="撤回" label="撤回">
<div>撤回</div>
<div onClick={() => {
showBackModal();
}}>撤回</div>
</a-select-option>
<a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link>
@@ -1671,13 +1938,15 @@ export default {
dropdownClassName="tabledropdown"
>
<a-select-option value="存为模板" label="存为模板">
<div>存为模板</div>
<div onClick={() => {
showStartModal();
}}>存为模板</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div
onClick={() => {
console.log("点击了");
}}
showDeleteModal();
}}
>
删除
</div>
@@ -1727,6 +1996,36 @@ export default {
const closeModal3 = () => {
state.doublesonpro = false;
};
const showCopyModal = () => {
state.copyModal = true;
};
const closeCopyModal = () => {
state.copyModal = false;
};
const showStopModal = () => {
state.stopModal = true;
};
const closeStopModal = () => {
state.stopModal = false;
};
const showDeleteModal = () => {
state.deleteModal = true;
};
const closeDeleteModal = () => {
state.deleteModal = false;
};
const showStartModal = () => {
state.startModal = true;
};
const closeStartModal = () => {
state.startModal = false;
};
const showBackModal = () => {
state.backModal = true;
};
const closeBackModal = () => {
state.backModal = false;
};
return {
...toRefs(state),
columns,
@@ -1741,6 +2040,16 @@ export default {
showModal3,
closeModal3,
getTableDate,
showCopyModal,
closeCopyModal,
showStopModal,
closeStopModal,
showDeleteModal,
closeDeleteModal,
showStartModal,
closeStartModal,
showBackModal,
closeBackModal,
};
},
};
@@ -1844,6 +2153,45 @@ export default {
}
.tableBox {
margin: 20px 38px 30px;
.taskbox {
width: 412px;
height: 160px;
border-radius: 10px;
position: relative;
//margin-left: 68px;
margin-bottom: 40px;
cursor: pointer;
.leftt {
position: absolute;
top: 18px;
left: 0;
}
.photo {
position: absolute;
top: 42px;
left: 37px;
}
.rightt {
position: absolute;
top: 69px;
right: 26px;
}
.centerbox {
position: absolute;
top: 52px;
left: 145px;
font-size: 20px;
font-weight: 700;
//line-height: 36px;
}
.centermain {
color: rgba(135, 139, 146, 1);
font-size: 14px;
position: absolute;
left: 144px;
bottom: 49px;
}
}
.ant-table-thead > tr > th {
font-size: 14px;
font-weight: 400;
@@ -1911,6 +2259,9 @@ export default {
.doublesonpro {
.ant-modal {
.ant-modal-body {
.modalHeader {
background: linear-gradient(0deg,rgba(78, 166, 255, 0) 0%,rgba(78, 166, 255, 0.2) 100%);
}
padding: 0;
.modalMain {
display: flex;
@@ -2074,6 +2425,9 @@ export default {
.sonproject {
.ant-modal {
.ant-modal-body {
.modalHeader {
background: linear-gradient(0deg,rgba(78, 166, 255, 0) 0%,rgba(78, 166, 255, 0.2) 100%);
}
padding: 0 !important;
.modalMain {
display: flex;
@@ -2125,6 +2479,9 @@ export default {
.estabish {
.ant-modal {
.ant-modal-body {
.modalHeader {
background: linear-gradient(0deg,rgba(78, 166, 255, 0) 0%,rgba(78, 166, 255, 0.2) 100%);
}
padding: 0 !important;
.modalMain {
display: flex;
@@ -2193,4 +2550,115 @@ export default {
}
}
}
.CopyModal {
.ant-modal {
width: 424px !important;
height: 258px !important;
.ant-modal-content {
width: 424px !important;
height: 258px !important;
.ant-modal-body {
width: 424px !important;
height: 258px !important;
padding: 0 !important;
.delete {
z-index: 999;
width: 424px;
height: 258px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
border-radius: 4px;
// position: absolute;
// left: 50%;
// top: 10%;
// transform: translate(-50%, -50%);
.del_header {
position: absolute;
width: calc(100%);
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.del_main {
width: 100%;
position: relative;
.header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/QR.png);
background-size: 100% 100%;
}
.close_exit {
position: absolute;
right: 42px;
cursor: pointer;
width: 20px;
height: 20px;
background-image: url(@/assets/images/coursewareManage/close.png);
background-size: 100% 100%;
}
}
.body {
width: 100%;
margin: 34px auto 56px auto;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
// background-color: red;
position: relative;
.back {
position: absolute;
top: 30px;
font-size: 12px;
font-weight: 400;
color: #666666;
}
}
.del_btnbox {
display: flex;
margin: 30px auto;
justify-content: center;
.del_btn {
width: 100px;
height: 40px;
background: rgba(64, 158, 255, 0);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
cursor: pointer;
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 40px;
}
}
.btn1 {
border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff;
margin-right: 14px;
}
.btn2 {
background-color: #4ea6ff;
color: #ffffff;
}
}
}
}
}
}
}
}
</style>

View File

@@ -21,8 +21,8 @@
v-model:value="projectName"
style="width: 270px"
placeholder="请选择状态"
:options="projectNameList"
@change="selectProjectName"
:options="projectStateList"
@change="selectProjectState"
allowClear
showSearch
></a-select>
@@ -149,6 +149,23 @@ export default {
label: "项目四",
},
],
projectStateList: [
{
id: 1,
value: "已发布",
label: "已发布",
},
{
id: 2,
value: "待发布",
label: "待发布",
},
{
id: 3,
value: "已结束",
label: "已结束",
},
],
out: false,
number: null,
selectTime: null,
@@ -327,6 +344,9 @@ export default {
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const selectProjectState = (value, index) => {
console.log("value", value, index);
};
const expandTable = (e, a) => {
// console.log("惦记了");
console.log("e", e, a);
@@ -340,6 +360,7 @@ export default {
return {
...toRefs(state),
selectProjectName,
selectProjectState,
expandTable,
handleOut,
tableDataFunc,