mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-12 04:16:47 +08:00
feat:增加删除关卡及关卡说明
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-04 22:45:31
|
* @Date: 2022-11-04 22:45:31
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2022-11-09 09:32:52
|
* @LastEditTime: 2022-11-10 11:41:52
|
||||||
* @FilePath: /fe-manage/src/api/index1.js
|
* @FilePath: /fe-manage/src/api/index1.js
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
@@ -59,6 +59,7 @@ export const getChapter = (obj) => http.post('/admin/router/detail', { params: o
|
|||||||
|
|
||||||
//新建或编辑关卡
|
//新建或编辑关卡
|
||||||
export const editChapter = (obj) => http.post('/admin/router/editChapter', obj);
|
export const editChapter = (obj) => http.post('/admin/router/editChapter', obj);
|
||||||
|
|
||||||
//获取学员列表
|
//获取学员列表
|
||||||
export const getStudent = (obj) => http.post('/admin/router/studentList', obj);
|
export const getStudent = (obj) => http.post('/admin/router/studentList', obj);
|
||||||
//获取路径图详情-包含关卡及任务列表
|
//获取路径图详情-包含关卡及任务列表
|
||||||
|
|||||||
@@ -1,10 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
|
* @Date: 2022-11-09 09:26:26
|
||||||
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
|
* @LastEditTime: 2022-11-10 11:50:08
|
||||||
|
* @FilePath: /fe-manage/src/api/indexLevel.js
|
||||||
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
|
*/
|
||||||
import http from "./config";
|
import http from "./config";
|
||||||
|
|
||||||
//新建关卡
|
//新建关卡
|
||||||
export const editChapter = (obj) => http.post('/admin/router/editChapter', obj);
|
export const editChapter = (obj) => http.post('/admin/router/editChapter', obj);
|
||||||
//编辑关卡
|
//编辑关卡
|
||||||
export const updateChapter = (obj) => http.post('/admin/router/editChapter', obj);
|
export const updateChapter = (obj) => http.post('/admin/router/editChapter', obj);
|
||||||
|
//删除关卡
|
||||||
|
export const deleteChapter=(obj)=>http.delete('/admin/router/deleteChapter',{params:obj})
|
||||||
//删除任务
|
//删除任务
|
||||||
export const deleteTask = (obj) => http.delete('/admin/router/deleteTask',{params: obj});
|
export const deleteTask = (obj) => http.delete('/admin/router/deleteTask',{params: obj});
|
||||||
|
|
||||||
|
|||||||
BIN
src/assets/images/leveladd/delete.png
Normal file
BIN
src/assets/images/leveladd/delete.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 302 B |
@@ -147,6 +147,7 @@
|
|||||||
v-model:value="pathName"
|
v-model:value="pathName"
|
||||||
maxlength="20"
|
maxlength="20"
|
||||||
style="border-radius: 4px"
|
style="border-radius: 4px"
|
||||||
|
placeholder="请输入学习路径名称"
|
||||||
/>
|
/>
|
||||||
<div class="showcount">{{ pathName.length }}/20</div>
|
<div class="showcount">{{ pathName.length }}/20</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -187,7 +188,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="inname">路径图背景</div>
|
<div class="inname">路径图背景</div>
|
||||||
<div class="in">
|
<div class="in learnBg">
|
||||||
<!-- <img class="im" src="../../assets/px.jpg" />
|
<!-- <img class="im" src="../../assets/px.jpg" />
|
||||||
<img class="im" src="../../assets/px.jpg" />
|
<img class="im" src="../../assets/px.jpg" />
|
||||||
<img class="im" src="../../assets/px.jpg" /> -->
|
<img class="im" src="../../assets/px.jpg" /> -->
|
||||||
@@ -195,18 +196,12 @@
|
|||||||
@click="chooseImg(item)"
|
@click="chooseImg(item)"
|
||||||
v-for="item in imgData"
|
v-for="item in imgData"
|
||||||
:key="item.key"
|
:key="item.key"
|
||||||
style="
|
class="learnBgItem"
|
||||||
border-radius: 8px;
|
|
||||||
width: 136px;
|
|
||||||
height: 106px;
|
|
||||||
background-size: 100%;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
"
|
|
||||||
:style="{
|
:style="{
|
||||||
border:
|
border:
|
||||||
learnPathBg === item.id
|
learnPathBg === item.id
|
||||||
? '2px solid rgba(78, 166, 255, 1)'
|
? '2px solid rgba(78, 166, 255, 1)'
|
||||||
: '2px solid rgba(78, 166, 255, 0)',
|
: '1px solid #ccc',
|
||||||
'background-image': 'url(' + item.source + ')',
|
'background-image': 'url(' + item.source + ')',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
@@ -268,6 +263,7 @@
|
|||||||
v-model:value="pathName"
|
v-model:value="pathName"
|
||||||
maxlength="20"
|
maxlength="20"
|
||||||
style="border-radius: 4px"
|
style="border-radius: 4px"
|
||||||
|
placeholder="请输入学习路径名称"
|
||||||
/>
|
/>
|
||||||
<div class="showcount">{{ pathName.length }}/20</div>
|
<div class="showcount">{{ pathName.length }}/20</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -308,26 +304,20 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="inname">路径图背景</div>
|
<div class="inname">路径图背景</div>
|
||||||
<div class="in">
|
<div class="in learnBg">
|
||||||
<!-- <img class="im" src="../../assets/px.jpg" />
|
<!-- <img class="im" src="../../assets/px.jpg" />
|
||||||
<img class="im" src="../../assets/px.jpg" />
|
<img class="im" src="../../assets/px.jpg" />
|
||||||
<img class="im" src="../../assets/px.jpg" /> -->
|
<img class="im" src="../../assets/px.jpg" /> -->
|
||||||
<div
|
<div
|
||||||
@click="chooseImg(item)"
|
@click="chooseImg2(item)"
|
||||||
v-for="item in imgData"
|
v-for="item in imgData"
|
||||||
:key="item.key"
|
:key="item.key"
|
||||||
style="
|
class="learnBgItem"
|
||||||
border-radius: 8px;
|
|
||||||
width: 136px;
|
|
||||||
height: 106px;
|
|
||||||
background-size: 100%;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
"
|
|
||||||
:style="{
|
:style="{
|
||||||
border:
|
border:
|
||||||
learnPathBg2 === item.id
|
learnPathBg2 === item.id
|
||||||
? '2px solid rgba(78, 166, 255, 1)'
|
? '2px solid rgba(78, 166, 255, 1)'
|
||||||
: '2px solid rgba(78, 166, 255, 0)',
|
: '1px solid #ccc',
|
||||||
'background-image': 'url(' + item.source + ')',
|
'background-image': 'url(' + item.source + ')',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
@@ -440,17 +430,17 @@
|
|||||||
<span>您确定要复制此路径吗</span>
|
<span>您确定要复制此路径吗</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="delete_exit">
|
||||||
<div class="btnText" @click="delete_exit">取消</div>
|
<div class="btnText" >取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="delete_exit">
|
||||||
<div class="btnText" @click="delete_exit">确定</div>
|
<div class="btnText" >确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
<!-- 停用路径弹窗 -->
|
<!-- 结束路径弹窗 -->
|
||||||
<a-modal
|
<a-modal
|
||||||
v-model:visible="stopModal"
|
v-model:visible="stopModal"
|
||||||
:footer="null"
|
:footer="null"
|
||||||
@@ -467,20 +457,24 @@
|
|||||||
<div class="close_exit" @click="closeStopModal"></div>
|
<div class="close_exit" @click="closeStopModal"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<span>您确定要停用此路径吗</span>
|
<!-- <span>您确定要停用此路径吗</span> -->
|
||||||
|
<span>是否结束项目</span>
|
||||||
|
<div class="back">
|
||||||
|
(项目结束后学员将无法继续学习,此操作不可逆)
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="closeStopModal">
|
||||||
<div class="btnText" @click="closeStopModal">取消</div>
|
<div class="btnText" >取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="stopLearnPath">
|
||||||
<div class="btnText" @click="stopLearnPath">确定</div>
|
<div class="btnText" >确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
<!-- 删除路径弹窗 -->
|
<!-- 结束路径弹窗 -->
|
||||||
<a-modal
|
<a-modal
|
||||||
v-model:visible="deleteModal"
|
v-model:visible="deleteModal"
|
||||||
:footer="null"
|
:footer="null"
|
||||||
@@ -500,11 +494,11 @@
|
|||||||
<span>您确定要删除此路径吗</span>
|
<span>您确定要删除此路径吗</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="closeDeleteModal">
|
||||||
<div class="btnText" @click="closeDeleteModal">取消</div>
|
<div class="btnText" >取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="deleteLearnPath">
|
||||||
<div class="btnText" @click="deleteLearnPath">确定</div>
|
<div class="btnText" >确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -530,11 +524,11 @@
|
|||||||
<span>您确定要启用此路径吗</span>
|
<span>您确定要启用此路径吗</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="delete_exit">
|
||||||
<div class="btnText" @click="delete_exit">取消</div>
|
<div class="btnText" >取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="delete_exit">
|
||||||
<div class="btnText" @click="delete_exit">确定</div>
|
<div class="btnText" >确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -561,11 +555,11 @@
|
|||||||
<div class="back">(路径撤回后学员进度保留,发布后可继续学习)</div>
|
<div class="back">(路径撤回后学员进度保留,发布后可继续学习)</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="closeBackModal">
|
||||||
<div class="btnText" @click="closeBackModal">取消</div>
|
<div class="btnText" >取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="recallPath">
|
||||||
<div class="btnText" @click="recallPath">确定</div>
|
<div class="btnText" >确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -634,6 +628,14 @@ export default {
|
|||||||
id: 3,
|
id: 3,
|
||||||
source: require("../../assets/images/leveladd/3.png"),
|
source: require("../../assets/images/leveladd/3.png"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
source: require("../../assets/images/leveladd/2.png"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
source: require("../../assets/images/leveladd/3.png"),
|
||||||
|
},
|
||||||
],
|
],
|
||||||
learnPathBg: null, //创建路径选择的路径图背景
|
learnPathBg: null, //创建路径选择的路径图背景
|
||||||
learnPathBg2: null, //编辑路径选择的路径图背景
|
learnPathBg2: null, //编辑路径选择的路径图背景
|
||||||
@@ -752,12 +754,12 @@ export default {
|
|||||||
state.editPathId = null;
|
state.editPathId = null;
|
||||||
};
|
};
|
||||||
const chooseImg = (item) => {
|
const chooseImg = (item) => {
|
||||||
console.log(item);
|
// console.log(item);
|
||||||
state.learnPathBg = item.id;
|
state.learnPathBg = item.id;
|
||||||
};
|
};
|
||||||
const chooseImg2 = (id) => {
|
const chooseImg2 = (item) => {
|
||||||
console.log(id);
|
// console.log(item);
|
||||||
state.learnPathBg2 = id;
|
state.learnPathBg2 = item.id;
|
||||||
};
|
};
|
||||||
//发布弹窗
|
//发布弹窗
|
||||||
const showPub = (routerId) => {
|
const showPub = (routerId) => {
|
||||||
@@ -820,15 +822,15 @@ export default {
|
|||||||
const closeCopyModal = () => {
|
const closeCopyModal = () => {
|
||||||
state.copyModal = false;
|
state.copyModal = false;
|
||||||
};
|
};
|
||||||
//显示停用窗口
|
//显示结束窗口
|
||||||
const showStopModal = () => {
|
const showStopModal = () => {
|
||||||
state.stopModal = true;
|
state.stopModal = true;
|
||||||
};
|
};
|
||||||
//关闭停用窗口
|
//关闭结束窗口
|
||||||
const closeStopModal = () => {
|
const closeStopModal = () => {
|
||||||
state.stopModal = false;
|
state.stopModal = false;
|
||||||
};
|
};
|
||||||
//确认停用
|
//确认结束
|
||||||
const stopLearnPath = () => {
|
const stopLearnPath = () => {
|
||||||
let obj = {
|
let obj = {
|
||||||
routerId: state.stopPathId,
|
routerId: state.stopPathId,
|
||||||
@@ -916,7 +918,7 @@ export default {
|
|||||||
: value.status === 1
|
: value.status === 1
|
||||||
? "已发布"
|
? "已发布"
|
||||||
: value.status === -1
|
: value.status === -1
|
||||||
? "已停用"
|
? "已结束"
|
||||||
: "-",
|
: "-",
|
||||||
creater: value.createName ? value.createName : "-",
|
creater: value.createName ? value.createName : "-",
|
||||||
pubtime: value.publishTime
|
pubtime: value.publishTime
|
||||||
@@ -1141,20 +1143,7 @@ export default {
|
|||||||
复制
|
复制
|
||||||
</div>
|
</div>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
<a-select-option
|
|
||||||
value="停用"
|
|
||||||
label="停用"
|
|
||||||
style="padding-left:35px"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
onClick={() => {
|
|
||||||
state.stopPathId = text.record.id;
|
|
||||||
showStopModal();
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
停用
|
|
||||||
</div>
|
|
||||||
</a-select-option>
|
|
||||||
<a-select-option
|
<a-select-option
|
||||||
value="删除"
|
value="删除"
|
||||||
label="删除"
|
label="删除"
|
||||||
@@ -1207,13 +1196,27 @@ export default {
|
|||||||
>
|
>
|
||||||
撤回
|
撤回
|
||||||
</div>
|
</div>
|
||||||
|
</a-select-option>
|
||||||
|
<a-select-option
|
||||||
|
value="结束"
|
||||||
|
label="结束"
|
||||||
|
style="padding-left:35px"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
onClick={() => {
|
||||||
|
state.stopPathId = text.record.id;
|
||||||
|
showStopModal();
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
结束
|
||||||
|
</div>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div></div>
|
<div></div>
|
||||||
)}
|
)}
|
||||||
{text.record.state === "已停用" ? (
|
{text.record.state === "已结束" ? (
|
||||||
<div>
|
<div>
|
||||||
<a-select
|
<a-select
|
||||||
style="width: 50px;margin-top:2px;margin-right:20px;"
|
style="width: 50px;margin-top:2px;margin-right:20px;"
|
||||||
@@ -1233,6 +1236,7 @@ export default {
|
|||||||
复制
|
复制
|
||||||
</div>
|
</div>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
|
{/**
|
||||||
<a-select-option
|
<a-select-option
|
||||||
value="启用"
|
value="启用"
|
||||||
label="启用"
|
label="启用"
|
||||||
@@ -1246,6 +1250,7 @@ export default {
|
|||||||
启用
|
启用
|
||||||
</div>
|
</div>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
|
*/}
|
||||||
|
|
||||||
<a-select-option
|
<a-select-option
|
||||||
value="删除"
|
value="删除"
|
||||||
@@ -1629,10 +1634,10 @@ export default {
|
|||||||
.in {
|
.in {
|
||||||
margin-left: 14px;
|
margin-left: 14px;
|
||||||
width: 81%;
|
width: 81%;
|
||||||
height: 110px;
|
// height: 110px;
|
||||||
// background-color: red;
|
// background-color: red;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
// justify-content: space-between;
|
||||||
.im {
|
.im {
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
width: 140px;
|
width: 140px;
|
||||||
@@ -1640,6 +1645,21 @@ export default {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.learnBg{
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
min-height: 110px;
|
||||||
|
.learnBgItem{
|
||||||
|
border-radius: 8px;
|
||||||
|
width: 136px;
|
||||||
|
height: 106px;
|
||||||
|
background-size: 100%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.info {
|
.info {
|
||||||
width: 78%;
|
width: 78%;
|
||||||
|
|||||||
@@ -32,17 +32,48 @@
|
|||||||
>
|
>
|
||||||
<div class="items1">
|
<div class="items1">
|
||||||
<div class="boxs_left">
|
<div class="boxs_left">
|
||||||
<div class="script">
|
<a-popover placement="topLeft" trigger="click">
|
||||||
<span style="font-size: 12px; color: #ffffff">说明</span>
|
<template #content>
|
||||||
|
<div style="width: 130px">
|
||||||
|
{{ element.remark ? element.remark : "暂无说明" }}
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #title>
|
||||||
|
<span>关卡说明</span>
|
||||||
|
</template>
|
||||||
|
<div class="script">
|
||||||
|
<span style="font-size: 12px; color: #ffffff"
|
||||||
|
>说明</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</a-popover>
|
||||||
|
|
||||||
<div class="imgIcon"></div>
|
<div class="imgIcon"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="boxs_right">
|
<div class="boxs_right">
|
||||||
<div class="imgIcon"></div>
|
<div class="imgIcon" @click="deleteChapter(element.chapterId)"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="items2">
|
<div class="items2">
|
||||||
<div class="nname">{{ element.name }}</div>
|
<a-popover
|
||||||
|
placement="topLeft"
|
||||||
|
v-if="element.name.length > 10"
|
||||||
|
>
|
||||||
|
<template #content>
|
||||||
|
<div style="width: 130px">
|
||||||
|
{{ element.name }}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<!-- <template #title>
|
||||||
|
<span>关卡说明</span>
|
||||||
|
</template> -->
|
||||||
|
<div class="nname">
|
||||||
|
{{ element.name }}
|
||||||
|
</div>
|
||||||
|
</a-popover>
|
||||||
|
<div class="nname" v-if="element.name.length <= 10">
|
||||||
|
{{ element.name }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="itemle">
|
<!-- <div class="itemle">
|
||||||
<div class="tit">{{ item.remark }}</div>
|
<div class="tit">{{ item.remark }}</div>
|
||||||
@@ -1215,6 +1246,7 @@ export default {
|
|||||||
const getDetail = () => {
|
const getDetail = () => {
|
||||||
GetRouterDetail(state.routerId)
|
GetRouterDetail(state.routerId)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
console.log("res.data.data.chapterList", res.data.data.chapterList);
|
||||||
state.level = res.data.data.chapterList;
|
state.level = res.data.data.chapterList;
|
||||||
if (state.level.length > 0) {
|
if (state.level.length > 0) {
|
||||||
dataAssignment(state.level[0].chapterId);
|
dataAssignment(state.level[0].chapterId);
|
||||||
@@ -1743,6 +1775,17 @@ export default {
|
|||||||
showDrawerAddTest(id, eleId);
|
showDrawerAddTest(id, eleId);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
//删除关卡
|
||||||
|
const deleteChapter=(chapterId)=>{
|
||||||
|
let obj={
|
||||||
|
chapterId:chapterId
|
||||||
|
}
|
||||||
|
api.deleteChapter(obj).then(res=>{
|
||||||
|
console.log('删除关卡成功',res)
|
||||||
|
}).catch(err=>{
|
||||||
|
console.log('删除关卡失败',err)
|
||||||
|
})
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
// tableDataFunc,
|
// tableDataFunc,
|
||||||
@@ -1785,6 +1828,7 @@ export default {
|
|||||||
showEditLiveDrawer,
|
showEditLiveDrawer,
|
||||||
decideType,
|
decideType,
|
||||||
updateTableData,
|
updateTableData,
|
||||||
|
deleteChapter,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -2180,9 +2224,7 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.chosen {
|
|
||||||
// background-color: pink;
|
|
||||||
}
|
|
||||||
.ghost {
|
.ghost {
|
||||||
// background-color: red;
|
// background-color: red;
|
||||||
opacity: 0 !important;
|
opacity: 0 !important;
|
||||||
@@ -2219,28 +2261,34 @@ export default {
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
.imgIcon {
|
.imgIcon {
|
||||||
width: 14px;
|
width: 16px;
|
||||||
height: 14px;
|
height: 16px;
|
||||||
background-image: url(@/assets/images/leveladd/edit.png);
|
background-image: url(@/assets/images/leveladd/edit.png);
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.boxs_right {
|
.boxs_right {
|
||||||
.imgIcon {
|
.imgIcon {
|
||||||
width: 14px;
|
width: 16px;
|
||||||
height: 14px;
|
height: 16px;
|
||||||
background-image: url(@/assets/images/leveladd/z1.png);
|
background-image: url(@/assets/images/leveladd/delete.png);
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.items2 {
|
.items2 {
|
||||||
.nname {
|
.nname {
|
||||||
width: 100px;
|
width: 140px;
|
||||||
|
// overflow: hidden;
|
||||||
|
// text-overflow: ellipsis;
|
||||||
|
// white-space: nowrap;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
-webkit-line-clamp: 2;
|
||||||
font-weight: bold;
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -816,11 +816,11 @@
|
|||||||
<span>您确定要复制此路径吗</span>
|
<span>您确定要复制此路径吗</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="delete_exit">
|
||||||
<div class="btnText" @click="delete_exit">取消</div>
|
<div class="btnText">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="delete_exit">
|
||||||
<div class="btnText" @click="delete_exit">确定</div>
|
<div class="btnText">确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -909,11 +909,11 @@
|
|||||||
<span>您确定要存为模版吗</span>
|
<span>您确定要存为模版吗</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="closeStartModal">
|
||||||
<div class="btnText" @click="closeStartModal">取消</div>
|
<div class="btnText">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="templateProject">
|
||||||
<div class="btnText" @click="templateProject">确定</div>
|
<div class="btnText">确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -960,11 +960,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modalMain">
|
<div class="modalMain">
|
||||||
<div class="projectname">产品经理上升路径</div>
|
<div class="projectname">{{ releaseProjectName }}</div>
|
||||||
<!-- <div class="projecttime">
|
<div class="projecttime" v-if="releaseProjectTime">
|
||||||
<span class="timeti">路径时间:</span
|
<span class="timeti">项目时间:</span
|
||||||
><span class="timeme">2022/08/01-2022/08/30</span>
|
><span class="timeme">{{ releaseProjectTime }}</span>
|
||||||
</div> -->
|
</div>
|
||||||
<div class="projectbox">
|
<div class="projectbox">
|
||||||
<div class="promessage">
|
<div class="promessage">
|
||||||
<div class="messageme">项目信息</div>
|
<div class="messageme">项目信息</div>
|
||||||
@@ -1087,6 +1087,8 @@ export default {
|
|||||||
|
|
||||||
projectStudentsNum: 0, //发布弹窗-学员人数
|
projectStudentsNum: 0, //发布弹窗-学员人数
|
||||||
releaseProjectId: null, //发布的项目id
|
releaseProjectId: null, //发布的项目id
|
||||||
|
releaseProjectName: null, //发布的项目名称
|
||||||
|
releaseProjectTime: null, //发布的项目时间
|
||||||
recallProjectId: null, //撤回的项目id
|
recallProjectId: null, //撤回的项目id
|
||||||
finishProjectId: null, //结束的项目id
|
finishProjectId: null, //结束的项目id
|
||||||
deleteProjectId: null, //删除的项目id
|
deleteProjectId: null, //删除的项目id
|
||||||
@@ -1155,13 +1157,14 @@ export default {
|
|||||||
endTime = "";
|
endTime = "";
|
||||||
status = null;
|
status = null;
|
||||||
managerid = "";
|
managerid = "";
|
||||||
state.currentPage=1
|
state.currentPage = 1;
|
||||||
getTableDate();
|
getTableDate();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const searchSubmit = () => {
|
const searchSubmit = () => {
|
||||||
console.log('点击了搜索')
|
console.log("点击了搜索");
|
||||||
state.currentPage=1
|
state.currentPage = 1;
|
||||||
const obj = {
|
const obj = {
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
@@ -1366,7 +1369,7 @@ export default {
|
|||||||
state.doublepro = false;
|
state.doublepro = false;
|
||||||
message.destroy();
|
message.destroy();
|
||||||
message.success("创建成功");
|
message.success("创建成功");
|
||||||
state.currentPage=1
|
state.currentPage = 1;
|
||||||
getTableDate();
|
getTableDate();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1611,7 +1614,7 @@ export default {
|
|||||||
state.doublesonpro = false;
|
state.doublesonpro = false;
|
||||||
message.destroy();
|
message.destroy();
|
||||||
message.success("创建成功");
|
message.success("创建成功");
|
||||||
state.currentPage=1
|
state.currentPage = 1;
|
||||||
getTableDate();
|
getTableDate();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1622,9 +1625,6 @@ export default {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 编辑多层子项目
|
// 编辑多层子项目
|
||||||
const edvalue6 = ref("");
|
const edvalue6 = ref("");
|
||||||
const edvalue7 = ref([]);
|
const edvalue7 = ref([]);
|
||||||
@@ -1760,31 +1760,37 @@ export default {
|
|||||||
state.eddoublesonpro = false;
|
state.eddoublesonpro = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//打开发布弹窗
|
//打开发布弹窗
|
||||||
const showProjectPub = (projectId) => {
|
const showProjectPub = (object) => {
|
||||||
state.projectPub = true;
|
state.projectPub = true;
|
||||||
state.releaseProjectId = projectId;
|
state.releaseProjectId = object.projectId;
|
||||||
console.log('projectId',projectId)
|
state.releaseProjectName = object.name;
|
||||||
|
state.releaseProjectTime = object.time;
|
||||||
|
console.log("object", object);
|
||||||
//获取学员总数
|
//获取学员总数
|
||||||
let obj = {
|
let obj = {
|
||||||
pageNo: 0,
|
pageNo: 0,
|
||||||
pageSize: 0,
|
pageSize: 0,
|
||||||
projectId: projectId,
|
projectId: object.projectId,
|
||||||
};
|
};
|
||||||
api.projectStudent(obj).then(res=>{
|
api
|
||||||
|
.projectStudent(obj)
|
||||||
|
.then((res) => {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
console.log("res", res.data);
|
// console.log("res", res.data);
|
||||||
state.projectStudentsNum = res.data.data.total;
|
state.projectStudentsNum = res.data.data.total
|
||||||
|
? res.data.data.total
|
||||||
|
: 0;
|
||||||
}
|
}
|
||||||
}).catch(err=>{
|
|
||||||
console.log('获取学员人数失败',err)
|
|
||||||
})
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取学员人数失败", err);
|
||||||
|
});
|
||||||
//获取阶段及任务总数
|
//获取阶段及任务总数
|
||||||
};
|
};
|
||||||
//确认发布项目
|
//确认发布项目
|
||||||
const releaseProject = () => {
|
const releaseProject = () => {
|
||||||
console.log('点击发布')
|
console.log("点击发布");
|
||||||
let obj = {
|
let obj = {
|
||||||
projectId: state.releaseProjectId,
|
projectId: state.releaseProjectId,
|
||||||
};
|
};
|
||||||
@@ -1794,8 +1800,8 @@ console.log('获取学员人数失败',err)
|
|||||||
console.log("发布成功", res);
|
console.log("发布成功", res);
|
||||||
message.destroy();
|
message.destroy();
|
||||||
message.success("发布成功");
|
message.success("发布成功");
|
||||||
state.projectPub = false
|
state.projectPub = false;
|
||||||
getTableDate()
|
getTableDate();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("发布失败", err);
|
console.log("发布失败", err);
|
||||||
@@ -1836,7 +1842,7 @@ state.recallProjectId = projectId;
|
|||||||
//打开结束弹窗
|
//打开结束弹窗
|
||||||
const showStopModal = (projectId) => {
|
const showStopModal = (projectId) => {
|
||||||
state.stopModal = true;
|
state.stopModal = true;
|
||||||
state.finishProjectId=projectId
|
state.finishProjectId = projectId;
|
||||||
};
|
};
|
||||||
//确认结束
|
//确认结束
|
||||||
const finishProject = () => {
|
const finishProject = () => {
|
||||||
@@ -1856,7 +1862,7 @@ let obj = {
|
|||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("结束失败", err);
|
console.log("结束失败", err);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
//关闭结束弹窗
|
//关闭结束弹窗
|
||||||
const closeStopModal = () => {
|
const closeStopModal = () => {
|
||||||
state.stopModal = false;
|
state.stopModal = false;
|
||||||
@@ -1864,7 +1870,7 @@ let obj = {
|
|||||||
//打开删除弹窗
|
//打开删除弹窗
|
||||||
const showDeleteModal = (projectId) => {
|
const showDeleteModal = (projectId) => {
|
||||||
state.deleteModal = true;
|
state.deleteModal = true;
|
||||||
state.deleteProjectId=projectId
|
state.deleteProjectId = projectId;
|
||||||
};
|
};
|
||||||
//确认删除
|
//确认删除
|
||||||
const deleteProject = () => {
|
const deleteProject = () => {
|
||||||
@@ -1884,7 +1890,7 @@ let obj = {
|
|||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("删除失败", err);
|
console.log("删除失败", err);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
//关闭删除弹窗
|
//关闭删除弹窗
|
||||||
const closeDeleteModal = () => {
|
const closeDeleteModal = () => {
|
||||||
state.deleteModal = false;
|
state.deleteModal = false;
|
||||||
@@ -1892,7 +1898,7 @@ let obj = {
|
|||||||
//打开存为模版弹窗
|
//打开存为模版弹窗
|
||||||
const showStartModal = (projectId) => {
|
const showStartModal = (projectId) => {
|
||||||
state.startModal = true;
|
state.startModal = true;
|
||||||
state.templateProjectId=projectId
|
state.templateProjectId = projectId;
|
||||||
};
|
};
|
||||||
//确认存为模版
|
//确认存为模版
|
||||||
const templateProject = () => {
|
const templateProject = () => {
|
||||||
@@ -1912,13 +1918,12 @@ let obj = {
|
|||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("模版保存失败", err);
|
console.log("模版保存失败", err);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
//关闭存为模版弹窗
|
//关闭存为模版弹窗
|
||||||
const closeStartModal = () => {
|
const closeStartModal = () => {
|
||||||
state.startModal = false;
|
state.startModal = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// 数据接入 - end -
|
// 数据接入 - end -
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
@@ -1935,7 +1940,6 @@ let obj = {
|
|||||||
// 获取项目列表信息
|
// 获取项目列表信息
|
||||||
let tableData = ref([]);
|
let tableData = ref([]);
|
||||||
|
|
||||||
|
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
{
|
{
|
||||||
title: "项目名称",
|
title: "项目名称",
|
||||||
@@ -1971,17 +1975,17 @@ let obj = {
|
|||||||
? "草稿"
|
? "草稿"
|
||||||
: value.record.status == 1 &&
|
: value.record.status == 1 &&
|
||||||
Number(value.record.beginTime) <
|
Number(value.record.beginTime) <
|
||||||
Math.ceil(new Date().getTime / 1000)
|
Math.ceil(new Date().getTime() / 1000)
|
||||||
? "进行中"
|
? "进行中"
|
||||||
: value.record.status == 1 &&
|
: value.record.status == 1 &&
|
||||||
Number(value.record.beginTime) >
|
Number(value.record.beginTime) >
|
||||||
Math.ceil(new Date().getTime / 1000) &&
|
Math.ceil(new Date().getTime() / 1000) &&
|
||||||
value.record.type !== 1 &&
|
value.record.type !== 1 &&
|
||||||
value.record.type !== 2
|
value.record.type !== 2
|
||||||
? "未开始"
|
? "未开始"
|
||||||
: value.record.status == 2
|
: value.record.status == -1
|
||||||
? "未开始"
|
? "已结束"
|
||||||
: "已结束"}
|
: "-"}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -2689,7 +2693,21 @@ let obj = {
|
|||||||
{value.record.status === 0 ? (
|
{value.record.status === 0 ? (
|
||||||
<span
|
<span
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showProjectPub(value.record.projectId);
|
console.log("value.record", value.record);
|
||||||
|
let beginTime = value.record.beginTime
|
||||||
|
? toDate(value.record.beginTime, "Y/M/D")
|
||||||
|
: "";
|
||||||
|
let endTime = value.record.beginTime
|
||||||
|
? toDate(value.record.endTime, "Y/M/D")
|
||||||
|
: "";
|
||||||
|
let time =
|
||||||
|
beginTime && endTime ? beginTime + "-" + endTime : "";
|
||||||
|
let obj = {
|
||||||
|
projectId: value.record.projectId,
|
||||||
|
name: value.record.name,
|
||||||
|
time: time,
|
||||||
|
};
|
||||||
|
showProjectPub(obj);
|
||||||
}}
|
}}
|
||||||
style="cursor:pointer"
|
style="cursor:pointer"
|
||||||
class="operation3"
|
class="operation3"
|
||||||
@@ -2750,7 +2768,7 @@ let obj = {
|
|||||||
) : value.record.status === 1 ||
|
) : value.record.status === 1 ||
|
||||||
(value.record.status == 1 &&
|
(value.record.status == 1 &&
|
||||||
Number(value.record.beginTime) >
|
Number(value.record.beginTime) >
|
||||||
Math.ceil(new Date().getTime / 1000)) ? (
|
Math.ceil(new Date().getTime() / 1000)) ? (
|
||||||
<a-select
|
<a-select
|
||||||
style="width: 50px"
|
style="width: 50px"
|
||||||
value="更多"
|
value="更多"
|
||||||
@@ -2889,7 +2907,7 @@ let obj = {
|
|||||||
}
|
}
|
||||||
console.log("1266", data);
|
console.log("1266", data);
|
||||||
data.map((value) => {
|
data.map((value) => {
|
||||||
console.log("value %o", value);
|
// console.log("value %o", value);
|
||||||
if (value.type == 1) {
|
if (value.type == 1) {
|
||||||
value.children = value.subList;
|
value.children = value.subList;
|
||||||
value.key = value.projectId;
|
value.key = value.projectId;
|
||||||
@@ -2904,14 +2922,14 @@ let obj = {
|
|||||||
data2.paraentName = value.name + "/" + data.name;
|
data2.paraentName = value.name + "/" + data.name;
|
||||||
data2.isbj = "class";
|
data2.isbj = "class";
|
||||||
});
|
});
|
||||||
console.log("lalallalaa", data);
|
// console.log("lalallalaa", data);
|
||||||
} else {
|
} else {
|
||||||
data.paraentName = value.name;
|
data.paraentName = value.name;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("map-value", value.subList, value.children);
|
// console.log("map-value", value.subList, value.children);
|
||||||
});
|
});
|
||||||
tableData.value = data;
|
tableData.value = data;
|
||||||
console.log("tableData", tableData);
|
console.log("tableData", tableData);
|
||||||
@@ -2965,8 +2983,6 @@ let obj = {
|
|||||||
state.copyModal = false;
|
state.copyModal = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const showProjOwner = () => {
|
const showProjOwner = () => {
|
||||||
state.ProjOwnervisible = true;
|
state.ProjOwnervisible = true;
|
||||||
};
|
};
|
||||||
@@ -3841,8 +3857,9 @@ let obj = {
|
|||||||
color: rgba(79, 81, 86, 1);
|
color: rgba(79, 81, 86, 1);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 36px;
|
line-height: 36px;
|
||||||
margin-left: 62px;
|
// margin-left: 62px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
.projecttime {
|
.projecttime {
|
||||||
margin-left: 221px;
|
margin-left: 221px;
|
||||||
|
|||||||
Reference in New Issue
Block a user