From b6741f9eca9d68e7b7f6f9898b61aec4e1f8fdc6 Mon Sep 17 00:00:00 2001 From: lixg Date: Thu, 10 Nov 2022 16:29:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=85=B3=E5=8D=A1=E5=8F=8A=E5=85=B3=E5=8D=A1=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/index1.js | 3 +- src/api/indexLevel.js | 11 +- src/assets/images/leveladd/delete.png | Bin 0 -> 302 bytes src/views/learningpath/LearningPath.vue | 154 +++++++++------- src/views/learningpath/LevelAddDetail.vue | 80 +++++++-- src/views/projectcenter/ProjectManage.vue | 209 ++++++++++++---------- 6 files changed, 276 insertions(+), 181 deletions(-) create mode 100644 src/assets/images/leveladd/delete.png diff --git a/src/api/index1.js b/src/api/index1.js index 0024073f..e21c301b 100644 --- a/src/api/index1.js +++ b/src/api/index1.js @@ -2,7 +2,7 @@ * @Author: lixg lixg@dongwu-inc.com * @Date: 2022-11-04 22:45:31 * @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 * @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 getStudent = (obj) => http.post('/admin/router/studentList', obj); //获取路径图详情-包含关卡及任务列表 diff --git a/src/api/indexLevel.js b/src/api/indexLevel.js index 4cfe5d58..303fe7ea 100644 --- a/src/api/indexLevel.js +++ b/src/api/indexLevel.js @@ -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"; //新建关卡 export const editChapter = (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}); diff --git a/src/assets/images/leveladd/delete.png b/src/assets/images/leveladd/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..bdfeacc1aff7e9918b33363ad1b5c6f20ea17759 GIT binary patch literal 302 zcmV+}0nz@6P)Px#=t)FDR5(xVlD`fCK@i5ji6`&`3WZ)YqS0EpyJrxMO2i9@7Z6ct#53GpZZ!&x zT;mZa^b$`XBexg#XD!z%Y&SDsemnEc5G;?Cy8%!)N*5AxXv)b}o(RHoZtY_ye?2=>h$MiJp_J(GQX}X7RT*MgUp>jwM&w z0dOKA+xnB2m_tzmDkBi-!pFxP0gpBH)iu^U0nrx6p!K&V5&!@I07*qoM6N<$g3elW A%K!iX literal 0 HcmV?d00001 diff --git a/src/views/learningpath/LearningPath.vue b/src/views/learningpath/LearningPath.vue index 8b02c597..6ca6b5d4 100644 --- a/src/views/learningpath/LearningPath.vue +++ b/src/views/learningpath/LearningPath.vue @@ -147,6 +147,7 @@ v-model:value="pathName" maxlength="20" style="border-radius: 4px" + placeholder="请输入学习路径名称" />
{{ pathName.length }}/20
@@ -187,7 +188,7 @@ />
路径图背景
-
+
@@ -195,18 +196,12 @@ @click="chooseImg(item)" v-for="item in imgData" :key="item.key" - style=" - border-radius: 8px; - width: 136px; - height: 106px; - background-size: 100%; - background-repeat: no-repeat; - " + class="learnBgItem" :style="{ border: learnPathBg === item.id ? '2px solid rgba(78, 166, 255, 1)' - : '2px solid rgba(78, 166, 255, 0)', + : '1px solid #ccc', 'background-image': 'url(' + item.source + ')', }" > @@ -268,6 +263,7 @@ v-model:value="pathName" maxlength="20" style="border-radius: 4px" + placeholder="请输入学习路径名称" />
{{ pathName.length }}/20
@@ -308,26 +304,20 @@ />
路径图背景
-
+
@@ -440,17 +430,17 @@ 您确定要复制此路径吗
-
-
取消
+
+
取消
-
-
确定
+
+
确定
- +
- 您确定要停用此路径吗 + + 是否结束项目 +
+ (项目结束后学员将无法继续学习,此操作不可逆) +
-
-
取消
+
+
取消
-
-
确定
+
+
确定
- + 您确定要删除此路径吗
-
-
取消
+
+
取消
-
-
确定
+
+
确定
@@ -530,11 +524,11 @@ 您确定要启用此路径吗
-
-
取消
+
+
取消
-
-
确定
+
+
确定
@@ -561,11 +555,11 @@
(路径撤回后学员进度保留,发布后可继续学习)
-
-
取消
+
+
取消
-
-
确定
+
+
确定
@@ -634,6 +628,14 @@ export default { id: 3, 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, //创建路径选择的路径图背景 learnPathBg2: null, //编辑路径选择的路径图背景 @@ -752,12 +754,12 @@ export default { state.editPathId = null; }; const chooseImg = (item) => { - console.log(item); + // console.log(item); state.learnPathBg = item.id; }; - const chooseImg2 = (id) => { - console.log(id); - state.learnPathBg2 = id; + const chooseImg2 = (item) => { + // console.log(item); + state.learnPathBg2 = item.id; }; //发布弹窗 const showPub = (routerId) => { @@ -820,15 +822,15 @@ export default { const closeCopyModal = () => { state.copyModal = false; }; - //显示停用窗口 + //显示结束窗口 const showStopModal = () => { state.stopModal = true; }; - //关闭停用窗口 + //关闭结束窗口 const closeStopModal = () => { state.stopModal = false; }; - //确认停用 + //确认结束 const stopLearnPath = () => { let obj = { routerId: state.stopPathId, @@ -916,7 +918,7 @@ export default { : value.status === 1 ? "已发布" : value.status === -1 - ? "已停用" + ? "已结束" : "-", creater: value.createName ? value.createName : "-", pubtime: value.publishTime @@ -1141,20 +1143,7 @@ export default { 复制
- -
{ - state.stopPathId = text.record.id; - showStopModal(); - }} - > - 停用 -
-
+ + +
{ + state.stopPathId = text.record.id; + showStopModal(); + }} + > + 结束 +
+
) : (
)} - {text.record.state === "已停用" ? ( + {text.record.state === "已结束" ? (
+ {/** + */}
-
- 说明 -
+ + + +
+ 说明 +
+
+
-
+
-
{{ element.name }}
+ + + +
+ {{ element.name }} +
+
+
+ {{ element.name }} +
+
{{ releaseProjectName }}
+
+ 项目时间:{{ releaseProjectTime }} +
项目信息
@@ -1015,10 +1015,10 @@
-
取消
+
取消
-
确定
+
确定
@@ -1081,16 +1081,18 @@ export default { currentEditChildrensProjectId: "", dcProjectID: "", - currentPage: 1, //当前页 + currentPage: 1, //当前页 tableDataTotal: -1, //学习路径列表总数 pageSize: 10, //每页10条数据 - projectStudentsNum:0,//发布弹窗-学员人数 + projectStudentsNum: 0, //发布弹窗-学员人数 releaseProjectId: null, //发布的项目id - recallProjectId:null,//撤回的项目id - finishProjectId:null,//结束的项目id - deleteProjectId:null,//删除的项目id - templateProjectId:null,//存为模版的项目id + releaseProjectName: null, //发布的项目名称 + releaseProjectTime: null, //发布的项目时间 + recallProjectId: null, //撤回的项目id + finishProjectId: null, //结束的项目id + deleteProjectId: null, //删除的项目id + templateProjectId: null, //存为模版的项目id }); // 数据接入 - start - const router = useRouter(); @@ -1155,13 +1157,14 @@ export default { endTime = ""; status = null; managerid = ""; - state.currentPage=1 + state.currentPage = 1; getTableDate(); }; + const searchSubmit = () => { - console.log('点击了搜索') - state.currentPage=1 + console.log("点击了搜索"); + state.currentPage = 1; const obj = { pageNo: state.currentPage, pageSize: state.pageSize, @@ -1366,7 +1369,7 @@ export default { state.doublepro = false; message.destroy(); message.success("创建成功"); - state.currentPage=1 + state.currentPage = 1; getTableDate(); } }) @@ -1611,7 +1614,7 @@ export default { state.doublesonpro = false; message.destroy(); message.success("创建成功"); - state.currentPage=1 + state.currentPage = 1; getTableDate(); } }) @@ -1622,9 +1625,6 @@ export default { }); }; - - - // 编辑多层子项目 const edvalue6 = ref(""); const edvalue7 = ref([]); @@ -1760,31 +1760,37 @@ export default { state.eddoublesonpro = false; }; - //打开发布弹窗 - const showProjectPub = (projectId) => { + const showProjectPub = (object) => { state.projectPub = true; - state.releaseProjectId = projectId; - console.log('projectId',projectId) - //获取学员总数 + state.releaseProjectId = object.projectId; + state.releaseProjectName = object.name; + state.releaseProjectTime = object.time; + console.log("object", object); + //获取学员总数 let obj = { pageNo: 0, pageSize: 0, - projectId: projectId, + projectId: object.projectId, }; - api.projectStudent(obj).then(res=>{ - if (res.status === 200) { - console.log("res", res.data); - state.projectStudentsNum = res.data.data.total; + api + .projectStudent(obj) + .then((res) => { + if (res.status === 200) { + // console.log("res", res.data); + state.projectStudentsNum = res.data.data.total + ? res.data.data.total + : 0; } - }).catch(err=>{ -console.log('获取学员人数失败',err) - }) - //获取阶段及任务总数 + }) + .catch((err) => { + console.log("获取学员人数失败", err); + }); + //获取阶段及任务总数 }; - //确认发布项目 + //确认发布项目 const releaseProject = () => { - console.log('点击发布') + console.log("点击发布"); let obj = { projectId: state.releaseProjectId, }; @@ -1792,26 +1798,26 @@ console.log('获取学员人数失败',err) .releaseProject(obj) .then((res) => { console.log("发布成功", res); - message.destroy(); + message.destroy(); message.success("发布成功"); - state.projectPub = false - getTableDate() + state.projectPub = false; + getTableDate(); }) .catch((err) => { console.log("发布失败", err); }); }; //关闭发布弹窗 - const closeProjectPub = () => { + const closeProjectPub = () => { state.projectPub = false; }; - //打开撤回弹窗 - const showBackModal = (projectId) => { + //打开撤回弹窗 + const showBackModal = (projectId) => { state.backModal = true; -state.recallProjectId = projectId; + state.recallProjectId = projectId; }; //确认撤回发布 - const recallProject = () => { + const recallProject = () => { let obj = { projectId: state.recallProjectId, type: 0, @@ -1829,18 +1835,18 @@ state.recallProjectId = projectId; console.log("撤回失败", err); }); }; - //关闭撤回弹窗 + //关闭撤回弹窗 const closeBackModal = () => { state.backModal = false; }; -//打开结束弹窗 -const showStopModal = (projectId) => { + //打开结束弹窗 + const showStopModal = (projectId) => { state.stopModal = true; - state.finishProjectId=projectId + state.finishProjectId = projectId; }; -//确认结束 -const finishProject=()=>{ -let obj = { + //确认结束 + const finishProject = () => { + let obj = { projectId: state.finishProjectId, type: -1, }; @@ -1856,19 +1862,19 @@ let obj = { .catch((err) => { console.log("结束失败", err); }); -} + }; //关闭结束弹窗 const closeStopModal = () => { state.stopModal = false; }; //打开删除弹窗 -const showDeleteModal = (projectId) => { + const showDeleteModal = (projectId) => { state.deleteModal = true; - state.deleteProjectId=projectId + state.deleteProjectId = projectId; }; //确认删除 -const deleteProject=()=>{ -let obj = { + const deleteProject = () => { + let obj = { projectId: state.deleteProjectId, type: -2, }; @@ -1884,19 +1890,19 @@ let obj = { .catch((err) => { console.log("删除失败", err); }); -} + }; //关闭删除弹窗 const closeDeleteModal = () => { state.deleteModal = false; }; -//打开存为模版弹窗 - const showStartModal = (projectId) => { + //打开存为模版弹窗 + const showStartModal = (projectId) => { state.startModal = true; - state.templateProjectId=projectId + state.templateProjectId = projectId; }; //确认存为模版 -const templateProject=()=>{ -let obj = { + const templateProject = () => { + let obj = { projectId: state.templateProjectId, type: 1, }; @@ -1912,12 +1918,11 @@ let obj = { .catch((err) => { console.log("模版保存失败", err); }); -} + }; //关闭存为模版弹窗 const closeStartModal = () => { state.startModal = false; }; - // 数据接入 - end - @@ -1934,7 +1939,6 @@ let obj = { // 获取项目列表信息 let tableData = ref([]); - const columns = ref([ { @@ -1971,17 +1975,17 @@ let obj = { ? "草稿" : value.record.status == 1 && Number(value.record.beginTime) < - Math.ceil(new Date().getTime / 1000) + Math.ceil(new Date().getTime() / 1000) ? "进行中" : value.record.status == 1 && Number(value.record.beginTime) > - Math.ceil(new Date().getTime / 1000) && + Math.ceil(new Date().getTime() / 1000) && value.record.type !== 1 && value.record.type !== 2 ? "未开始" - : value.record.status == 2 - ? "未开始" - : "已结束"} + : value.record.status == -1 + ? "已结束" + : "-"}
); }, @@ -2689,7 +2693,21 @@ let obj = { {value.record.status === 0 ? ( { - 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" class="operation3" @@ -2750,7 +2768,7 @@ let obj = { ) : value.record.status === 1 || (value.record.status == 1 && Number(value.record.beginTime) > - Math.ceil(new Date().getTime / 1000)) ? ( + Math.ceil(new Date().getTime() / 1000)) ? ( 0 && state.currentPage > 1 @@ -2889,7 +2907,7 @@ let obj = { } console.log("1266", data); data.map((value) => { - console.log("value %o", value); + // console.log("value %o", value); if (value.type == 1) { value.children = value.subList; value.key = value.projectId; @@ -2904,14 +2922,14 @@ let obj = { data2.paraentName = value.name + "/" + data.name; data2.isbj = "class"; }); - console.log("lalallalaa", data); + // console.log("lalallalaa", data); } else { data.paraentName = value.name; } }); } - console.log("map-value", value.subList, value.children); + // console.log("map-value", value.subList, value.children); }); tableData.value = data; console.log("tableData", tableData); @@ -2964,9 +2982,7 @@ let obj = { const closeCopyModal = () => { state.copyModal = false; }; - - - + const showProjOwner = () => { state.ProjOwnervisible = true; }; @@ -2979,7 +2995,7 @@ let obj = { const showProjManage = () => { state.ProjManagevisible = true; }; - + return { ...toRefs(state), selectProjectName, @@ -3841,8 +3857,9 @@ let obj = { color: rgba(79, 81, 86, 1); font-size: 14px; line-height: 36px; - margin-left: 62px; + // margin-left: 62px; font-weight: 500; + text-align: center; } .projecttime { margin-left: 221px;