feat:增加删除修改关卡及阶段并自动刷新列表

This commit is contained in:
lixg
2022-11-17 21:25:09 +08:00
parent 8d0cb128a1
commit 97a8e6f4c6
17 changed files with 1977 additions and 1948 deletions

View File

@@ -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-10 11:41:52
* @LastEditTime: 2022-11-17 15:41:45
* @FilePath: /fe-manage/src/api/index1.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/

View File

@@ -1,4 +1,14 @@
/*
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-09 09:26:26
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-17 21:20:05
* @FilePath: /fe-manage/src/api/indexStage.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import http from "./config";
//添加阶段
export const editStage = (obj) => http.post('/admin/project/editStage', obj);
// 删除阶段
export const deleteStage = (obj) => http.delete('/admin/project/deleteStage',{params:obj});

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

View File

@@ -437,6 +437,17 @@ textarea {
}
}
.ant-modal{
.modalHeader{
background: linear-gradient(180deg, rgba(103,64,255,0.2) 0%, rgba(166,168,255,0) 100%) !important;
}
.top{
background: linear-gradient(180deg, rgba(103,64,255,0.2) 0%, rgba(166,168,255,0) 100%) !important;
}
.del_header{
background: linear-gradient(180deg, rgba(103,64,255,0.2) 0%, rgba(166,168,255,0) 100%) !important;
}
}
//弹窗--------------------------------------------------------
//loading--------------------------------------------------------

View File

@@ -273,6 +273,58 @@ export default {
},
];
}
if (
n.indexOf("/coursereviewed") !== -1 ||
n.indexOf("/CourseReiewed") !== -1
) {
state.list = [
{
name: "审核管理",
},
{
name: "已审核课程",
},
];
}
if (
n.indexOf("/coursereviewedn") !== -1 ||
n.indexOf("/CourseReiewedN") !== -1
) {
state.list = [
{
name: "审核管理",
},
{
name: "待审核课程",
},
];
}
if (
n.indexOf("/projectreviewed") !== -1 ||
n.indexOf("/ProjectReviewed") !== -1
) {
state.list = [
{
name: "审核管理",
},
{
name: "已审核项目",
},
];
}
if (
n.indexOf("/projectreviewedn") !== -1 ||
n.indexOf("/ProjectReviewedN") !== -1
) {
state.list = [
{
name: "审核管理",
},
{
name: "待审核项目",
},
];
}
}
);

View File

@@ -180,7 +180,7 @@
alt=""
/>
</div>
<span style="margin-right: 3px">培训体系</span>
<span style="margin-right: 3px">培训分类</span>
</div>
<div class="btnbox">
<a-input

View File

@@ -62,7 +62,7 @@
circle: selectedKeys[0] === 'sub10-3' ? false : true,
}"
></span>
<router-link to="/projecreviewedn">待审核项目</router-link>
<router-link to="/projectreviewedn">待审核项目</router-link>
</a-menu-item>
<a-menu-item key="sub10-4">
<span
@@ -71,7 +71,7 @@
circle: selectedKeys[0] === 'sub10-4' ? false : true,
}"
></span>
<router-link to="/projecreviewed">已审核项目</router-link>
<router-link to="/projectreviewed">已审核项目</router-link>
</a-menu-item>
</a-sub-menu>
@@ -307,13 +307,13 @@ export default {
pagename: "已审核课程",
},
{
href: "/projectviewedn",
href: "/projectreviewedn",
openKeys: "sub10",
selectedKeys: "sub10-3",
pagename: "待审核项目",
},
{
href: "/projectviewed",
href: "/projectrrviewed",
openKeys: "sub10",
selectedKeys: "sub10-4",
pagename: "已审核项目",

View File

@@ -1,458 +1,40 @@
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-09 09:26:26
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-17 16:27:22
* @FilePath: /fe-manage/src/views/courselibrary/CourseManage.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!-- 课件管理页面 -->
<template>
<div class="courseManage">
<!-- 搜索框及按钮 -->
<div class="filter">
<div class="filterItems">
<div class="select">
<a-select
v-model:value="projectName"
style="width: 270px"
placeholder="请输入项目名称"
:options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
<div class="select">
<a-select
v-model:value="projectName"
style="width: 270px"
placeholder="请输入项目经理"
:options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
<div class="select">
<a-select
v-model:value="projectName"
style="width: 270px"
placeholder="请选择状态"
:options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
<div class="select">
<a-date-picker
v-model="selectTime"
type="date"
placeholder="创建时间"
style="width: 270px"
/>
</div>
</div>
<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 class="btn btn3">
<div class="search"></div>
<div class="btnText">创建项目</div>
</div>
</div>
</div>
<!-- 搜索框及按钮 -->
<!-- 表格 -->
<div class="tableBox">
<a-table
:columns="columns"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 700, y: 800 }"
expandRowByClick="true"
@expand="expandTable"
:pagination="{
showSizeChanger: true,
showQuickJumper: true,
hideOnSinglePage: true,
pageSizeOptions: [],
pageSize: pageSize,
current: currentPage,
total: tableDataTotal,
onChange: (page, pageSize) => {
currentPage = page;
// console.log('page', page)
// 加翻页查找代码
// this.setState({
// currentPage: page,
// }, () => {
// this.getMilitaryDeployment()
// })
},
}"
/>
</div>
<!-- 表格 -->
<iframe
id="iframe"
style="width:100%l;height:100%"
src="https://u-pre.boe.com/pc/iframe/course/coursewares"
name="myframe"
></iframe>
</div>
</template>
<script>
import { reactive, toRefs, onMounted, ref } from "vue";
const columns = [
{
title: "项目名称",
dataIndex: "projectName",
key: "projectName",
width: 280,
// align: "center",
ellipsis: true,
// scopedSlots: { customRender: "action" }, //引入的插槽
// customRender: (text, record) => {
// console.log(text, record);
// return <span>{text.text}</span>;
// },
},
{
title: "项目经理",
dataIndex: "manager",
key: "manager",
width: 100,
align: "center",
},
{
title: "状态",
dataIndex: "state",
// width: "30%",
key: "state",
width: 100,
align: "center",
},
{
title: "创建人",
dataIndex: "creater",
// width: "30%",
key: "creater",
width: 100,
align: "center",
},
{
title: "创建时间",
dataIndex: "time",
key: "time",
width: 180,
align: "center",
},
{
title: "操作",
dataIndex: "opacation",
key: "opacation",
width: 300,
align: "center",
},
];
const rowSelection = ref({
checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => {
console.log(
`selectedRowKeys: ${selectedRowKeys}`,
"selectedRows: ",
selectedRows
);
},
onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows);
},
onSelectAll: (selected, selectedRows, changeRows) => {
console.log(selected, selectedRows, changeRows);
},
});
import { reactive, toRefs, onMounted } from "vue";
export default {
name: "CourseManage",
setup() {
const state = reactive({
projectNameList: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
projectName: null,
selectTime: null,
tableData: [
{
key: 1,
projectName:
"管理者进阶1管理者进阶1管理者进阶1管理者进阶1管理者进阶1管理者进阶1管理者进阶1",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
children: [
{
key: 5,
projectName: "管理者进阶5",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
children: [
{
key: 7,
projectName:
"管理者进阶7管理者进阶7管理者进阶7管理者进阶7管理者进阶7管理者进阶7管理者进阶7",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 8,
projectName: "管理者进阶8",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
],
},
{
key: 6,
projectName: "管理者进阶6",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
],
},
{
key: 2,
projectName: "管理者进阶2",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 3,
projectName: "管理者进阶3",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
hasChildren: true,
children: [
{
key: 35,
projectName: "管理者进阶35",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
children: [
{
key: 37,
projectName: "管理者进阶37",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 38,
projectName: "管理者进阶38",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
],
},
{
key: 36,
projectName: "管理者进阶36",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
],
},
{
key: 4,
projectName: "管理者进阶4",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶5",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
key: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
],
currentPage: 1,
tableDataTotal: 20,
pageSize: 10,
});
onMounted(() => {
// console.log("执行");
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const expandTable = (e, a) => {
console.log("惦记了");
console.log("e", e, a);
};
return {
...toRefs(state),
columns,
rowSelection,
selectProjectName,
expandTable,
};
},
};
@@ -463,99 +45,6 @@ export default {
height: 100%;
display: flex;
flex-direction: column;
.filter {
margin-left: 38px;
margin-right: 38px;
margin-top: 30px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.filterItems {
display: flex;
flex-wrap: wrap;
.select {
margin-right: 20px;
margin-bottom: 20px;
}
}
.btns {
display: flex;
// 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;
.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;
}
}
}
}
.tableBox {
margin: 20px 38px 30px;
}
}
</style>

View File

@@ -458,7 +458,7 @@
alt=""
/>
</div>
<span style="margin-right: 14px">内容分类</span>
<span style="margin-right: 14px">课程分类</span>
</div>
<div class="item_inp">
<div class="select i6_input">
@@ -1738,7 +1738,7 @@ const columns1 = [
},
},
{
title: "内容分类",
title: "课程分类",
width: 130,
dataIndex: "content",
key: "1",
@@ -3438,10 +3438,6 @@ courseownervisible:false,
},
]);
const options2 = ref([
{
value: "value2",
label: "请选择内容分类",
},
{
value: "leadership",
label: "领导力",

View File

@@ -1,11 +1,12 @@
<template>
<div class="leveladddetail">
<div style="display: flex">
<div class="left clearfix">
<div class="leftmain">
<div class="tit" style="margin-left: 18px">关卡</div>
<div class="btn btn3" style="margin-left: 19px">
<div class="search"></div>
<div class="btnText" @click="showModal">添加关卡</div>
<div class="btnText" @click="showModal()">添加关卡</div>
</div>
<div class="maincon" style="background-color: #fff">
<!-- <div
@@ -48,12 +49,12 @@
</div>
</a-popover>
<div class="imgIcon"></div>
<div class="imgIcon" @click="showModal(element)"></div>
</div>
<div class="boxs_right">
<div
class="imgIcon"
@click="deleteChapter(element.chapterId)"
@click="showDeleteChapter(element.chapterId)"
></div>
</div>
</div>
@@ -117,10 +118,11 @@
:footer="null"
:closable="clos"
wrapClassName="AddLevell"
@cancel="closeModal"
>
<div class="header">
<div class="headmain">
<div class="add">添加关卡</div>
<div class="add">编辑/添加关卡</div>
<div class="img" style="cursor: pointer" @click="closeModal"></div>
</div>
</div>
@@ -190,13 +192,18 @@
<span>学习模式</span>
<div class="inputbox">
<input type="text" placeholder="按学习时间解锁" />
<div class="bottonbox"><div class="btnText">切换模式</div></div>
<div class="bottonbox">
<div class="btnText">切换模式</div>
</div>
</div>
</div>
<div class="line"></div>
<router-link to="/leveladd">
<div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" />
<img
class="img2"
src="../../assets/images/leveladd/back.png"
/>
<div class="return">返回</div>
</div>
</router-link>
@@ -213,9 +220,15 @@
</div>
<!-- 添加在线侧弹窗 -->
<div>
<add-online v-model:addonlineVisible="addonlinevisible" @changeData="updateTableData" v-model:edit="edit"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditOnlineId="EditOnlineId" />
<add-online
v-model:addonlineVisible="addonlinevisible"
@changeData="updateTableData"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:EditOnlineId="EditOnlineId"
/>
</div>
<!-- 添加在线侧弹窗 -->
<div class="lin"></div>
@@ -238,9 +251,15 @@
</div>
<!-- 添加案例侧弹窗 -->
<div>
<add-case v-model:addcaseVisible="addcasevisible" @changeData="updateTableData" v-model:edit="edit"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditCaseId="EditCaseId" />
<add-case
v-model:addcaseVisible="addcasevisible"
@changeData="updateTableData"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:EditCaseId="EditCaseId"
/>
</div>
<!-- 添加案例侧弹窗 -->
<div class="lin"></div>
@@ -474,7 +493,9 @@
</div>
<div class="btn btn2">
<div class="imgIcon"></div>
<div class="btnText" @click="showDeleteALLModal">批量删除</div>
<div class="btnText" @click="showDeleteALLModal">
批量删除
</div>
</div>
</div>
</div>
@@ -527,7 +548,9 @@
<div style="width: 120px; text-align: center">任务名称</div>
<div style="width: 120px; text-align: center">必修/选修</div>
<div style="width: 87px; text-align: center">时长</div>
<div style="width: 120px; text-align: center; margin-right: 20px">
<div
style="width: 120px; text-align: center; margin-right: 20px"
>
操作
</div>
</div>
@@ -617,7 +640,11 @@
{{ element.cretime }}分钟
</div>
<div
style="width: 120px; text-align: center; margin-right: 20px"
style="
width: 120px;
text-align: center;
margin-right: 20px;
"
>
<div class="opa">
<div class="opacation">
@@ -651,7 +678,10 @@
</draggable>
</div>
<!-- 无数据样式 -->
<div class="notable" :style="{ display: stm_hs ? 'block' : 'none' }">
<div
class="notable"
:style="{ display: stm_hs ? 'block' : 'none' }"
>
<div class="notablebox">
<div class="boxbody">
<div class="boximg"></div>
@@ -669,19 +699,7 @@
<!-- 无数据样式 -->
</div>
</div>
<div class="footbtn">
<div class="btnbox">
<div class="btn btn2">
<div class="btnText">暂存</div>
</div>
<div class="btn btn2">
<div class="btnText">确定</div>
</div>
<div class="btn btn1" @click="gqxy_hShow">
<div class="btnText">下一步</div>
</div>
</div>
</div>
<div class="draw" style="position: relative">
<a-drawer
v-model:visible="visible"
@@ -719,6 +737,22 @@
</a-drawer>
</div>
</div>
</div>
<div class="footbtn">
<div class="btnbox">
<div class="btn btn2">
<div class="btnText">暂存</div>
</div>
<div class="btn btn2">
<div class="btnText">确定</div>
</div>
<div class="btn btn1">
<div class="btnText">取消</div>
</div>
</div>
</div>
<div class="right" :style="{ display: gqxy_hs ? 'none' : 'block' }">
<div class="addhead">
<div class="filt">
@@ -959,6 +993,39 @@
</div>
</div></a-modal
>
<!-- 是否删除关卡弹窗 -->
<a-modal
v-model:visible="deleteChapterModal"
:footer="null"
:closable="cC"
wrapClassName="ConfirmModal"
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="closeDeleteChapter"></div>
</div>
<div class="body">
<span>您确定要删除此关卡</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeDeleteChapter">
<div class="btnText" >取消</div>
</div>
<div class="del_btn btn2" @click="deleteChapter">
<div class="btnText" >确定</div>
</div>
</div>
</div>
</div>
</a-modal>
</div>
</template>
@@ -966,8 +1033,8 @@
import { reactive, toRefs, onMounted, onUnmounted } from "vue";
import AddStu from "../../components/drawers/AddLevelAddStu";
import ImpStu from "../../components/drawers/AddLevelImportStu";
import AddOnline from "../../components/drawers/AddOnline.vue"
import AddCase from "../../components/drawers/AddCase.vue"
import AddOnline from "../../components/drawers/AddOnline.vue";
import AddCase from "../../components/drawers/AddCase.vue";
import AddHomework from "../../components/drawers/AddHomework.vue";
import AddTest from "../../components/drawers/AddTest.vue";
import AddDiscuss from "../../components/drawers/AddDiscuss.vue";
@@ -1221,8 +1288,8 @@ export default {
deleteModal: false, // 删除弹窗
deleteID: "", // 要删除的任务的id
editID: "", // 要编辑的任务id
EditOnlineId:"", // 要编辑的 workid
EditCaseId:"",
EditOnlineId: "", // 要编辑的 workid
EditCaseId: "",
EditWorkId: "",
EditTestId: "",
EditRefId: "",
@@ -1249,8 +1316,8 @@ export default {
adddiscussvisible: false, //讨论抽屉
isStudiscuss: false,
addactivevisible: false, //活动抽屉
addonlinevisible:false,
addcasevisible:false,
addonlinevisible: false,
addcasevisible: false,
addhomeworkvisible: false,
addtestvisible: false,
addevalvisible: false,
@@ -1272,11 +1339,50 @@ export default {
projectId: null,
projectTaskId: null,
chooseStageId: null,
updateChapterID: null, //编辑关卡id
deleteChapterModal:false,//删除关卡弹窗
deleteChapterId:null,//删除关卡id
});
const showModal = (element) => {
state.modal = true;
console.log("element", element);
if (element) {
console.log("element", element);
state.value1 = element.name;
state.value2 = element.remark;
state.updateChapterID = element.chapterId;
}
};
const closeModal = () => {
state.modal = false;
state.value1 = "";
state.value2 = "";
state.updateChapterID = null;
};
//新建关卡
const editChapter = () => {
if (!state.value1) return message.warning("请输入关卡名称");
if (state.updateChapterID) {
let obj = {
name: state.value1,
remark: state.value2,
routerId: state.routerId,
chapterId:state.updateChapterID
};
api
.updateChapter(obj)
.then((res) => {
console.log("修改成功", res);
message.success("修改成功");
getDetail();
closeModal();
})
.catch((err) => {
console.log("修改失败", err);
});
} else {
let obj = {
name: state.value1,
remark: state.value2,
@@ -1285,8 +1391,11 @@ export default {
api
.editChapter(obj)
.then((res) => {
setTimeout(() => {
console.log("创建成功", res);
// setTimeout(() => {
// console.log("创建成功", res);
// }, 1000);
message.success("创建成功");
state.value1 = "";
state.value2 = "";
@@ -1294,51 +1403,65 @@ export default {
// state.createLoading = false;
//state.currentPage = 1;
// getLearnPath();
}, 1000);
getDetail();
closeModal();
})
.catch((err) => {
console.log("创建失败", err);
});
}
};
//编辑关卡
// const updateChapter = () => {
// let obj = {
// chapterId: state.updateChapterID,
// name: "",
// remark:"",
// routerId: 0,
// };
// api
// .updateChapter(obj)
// .then((res) => {
// console.log("修改成功",res);
// message.success("修改成功");
// })
// .catch((err) => {
// console.log("修改失败",err);
// })
// };
const showDrawer = () => {
state.visible = true;
};
//打开删除关卡弹窗
const showDeleteChapter=(id)=>{
state.deleteChapterId=id
state.deleteChapterModal=true
}
//关闭删除关卡弹窗
const closeDeleteChapter=()=>{
state.deleteChapterId=null
state.deleteChapterModal=false
}
//删除关卡
const deleteChapter = () => {
console.log("chapterId", state.deleteChapterId);
let obj = {
chapterId: state.deleteChapterId,
};
api
.deleteChapter(obj)
.then((res) => {
console.log("删除关卡成功", res);
message.success('删除关卡成功')
closeDeleteChapter()
getDetail();
})
.catch((err) => {
console.log("删除关卡失败", err);
});
};
//关闭项目抽屉
const leaveProjDrawer = () => {
state.addprojvisible = false;
state.isLevel = false;
};
//在线抽屉
const showDrawerAddOnline = (id,eleId)=>{
const showDrawerAddOnline = (id, eleId) => {
state.addonlinevisible = true;
state.EditWorkId = id;
state.routerTaskId = eleId;
}
};
//案例抽屉
const showDrawerAddCase = (id,eleId)=>{
const showDrawerAddCase = (id, eleId) => {
state.addcasevisible = true;
state.EditWorkId = id;
state.routerTaskId = eleId;
}
};
// 作业和考试的抽屉
const showDrawerAddHomework = (id, eleId) => {
console.log("homework==============", id, state.isactive);
@@ -1460,14 +1583,7 @@ export default {
const closeDrawer = () => {
state.visible = false;
};
const showModal = () => {
state.modal = true;
};
const closeModal = () => {
state.modal = false;
state.value1 = "";
state.value2 = "";
};
const afterVisibleChange = (bool) => {
console.log("visible", bool);
};
@@ -1849,21 +1965,6 @@ export default {
showDrawerAddCase(id, eleId);
}
};
//删除关卡
const deleteChapter = (chapterId) => {
console.log("chapterId", chapterId);
let obj = {
chapterId: chapterId,
};
api
.deleteChapter(obj)
.then((res) => {
console.log("删除关卡成功", res);
})
.catch((err) => {
console.log("删除关卡失败", err);
});
};
const changeCourseType = (ele) => {
console.log("任务id", ele.id);
@@ -1910,7 +2011,13 @@ export default {
const rowSelection = {
onSelect: (selectedRows, selected, selectedRowKeys) => {
console.log(
"selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected);
"selectedRowKeys",
selectedRowKeys,
"selectedRows",
selectedRows,
"selected",
selected
);
console.log(selectedRows.assessmentId);
state.assessmentId = selectedRows.assessmentId;
state.assessmentName = selectedRows.name;
@@ -1944,12 +2051,12 @@ export default {
let arr = res.data.data.rows;
if (res.status === 200) {
getTableDate(arr);
console.log('---------------项目信息---------------------------');
console.log("---------------项目信息---------------------------");
}
})
.catch((err) => {
console.log("获取全部项目信息接口失败", err);
console.log('+++++++++++++++++++++++++++++++++++++++++++++++');
console.log("+++++++++++++++++++++++++++++++++++++++++++++++");
// state.createLoading = false;
});
};
@@ -1964,7 +2071,7 @@ export default {
})
.then((res) => {
console.log(res, 11111);
message.success(`${state.editproj ? '编辑' : '新增'}关卡任务成功`)
message.success(`${state.editproj ? "编辑" : "新增"}关卡任务成功`);
// ctx.emit("changeData", false);
closeDrawer();
state.addLoading = false;
@@ -1972,7 +2079,7 @@ export default {
.catch((err) => {
console.log(err, 1111);
});
}
};
onMounted(() => {
// createCase();
getAllProjText();
@@ -2021,7 +2128,6 @@ export default {
showDeleteModal,
decideType,
updateTableData,
deleteChapter,
changeCourseType,
showChangeModal,
closeChangeModal,
@@ -2030,6 +2136,10 @@ export default {
getTableDate,
getAllProjText,
updateTask,
showDeleteChapter,
closeDeleteChapter,
deleteChapter,
};
},
};
@@ -2472,6 +2582,7 @@ export default {
.leveladddetail {
width: 100%;
display: flex;
flex-direction: column;
min-width: 933px;
background-color: rgba(245, 247, 250, 1);
.left {
@@ -2565,7 +2676,7 @@ export default {
.imgIcon {
width: 16px;
height: 16px;
background-image: url(@/assets/images/leveladd/edit.png);
background-image: url(@/assets/images/leveladd/edit1.png);
background-size: 100% 100%;
}
}
@@ -3184,49 +3295,6 @@ export default {
}
}
}
.footbtn {
width: 100%;
flex: 1;
background-color: #fff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
display: flex;
justify-content: end;
.btnbox {
display: flex;
margin-right: 36px;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
margin: 21px 0px 19px 14px;
cursor: pointer;
white-space: nowrap;
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 36px;
margin-left: 5px;
}
}
.btn1 {
background-color: #409eff;
.btnText {
color: #ffffff;
}
}
.btn2 {
background-color: #ffffff;
.btnText {
color: #409eff;
}
}
}
}
}
.opat {
@@ -3287,6 +3355,52 @@ export default {
margin-left: 10px;
}
}
.footbtn {
width: 100%;
height: 80px;
margin-top: 16px;
// flex: 1;
background-color: #fff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
display: flex;
justify-content: end;
.btnbox {
display: flex;
margin-right: 36px;
height: 80px;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
margin: 21px 0px 19px 14px;
cursor: pointer;
white-space: nowrap;
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 36px;
margin-left: 5px;
}
}
.btn1 {
background-color: #409eff;
.btnText {
color: #ffffff;
}
}
.btn2 {
background-color: #ffffff;
.btnText {
color: #409eff;
}
}
}
}
}
.CopyModal {
.ant-modal {

View File

@@ -261,7 +261,7 @@
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">培训体系</div>
<div class="inname">培训分类</div>
</div>
<div class="in select">
<a-select
@@ -675,7 +675,7 @@ export default {
levels = key;
};
// 培训体系
// 培训分类
const classifyList4 = ref([
{ value: 1, label: "集团级" },
{ value: 2, label: "组织级" },
@@ -748,7 +748,7 @@ export default {
managerId: "请选择项目经理",
sourceBelongId: "请选择资源归属",
level: "请填写项目级别",
systemId: "请填写项目培训体系",
systemId: "请填写项目培训分类",
boeFlag: "请选择是否BOE实施",
};

View File

@@ -478,11 +478,11 @@
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>培训体系</span></div>
<div class="setc_name"><span>培训分类</span></div>
<div class="setc_main">
<a-select
v-model:value="formData.systemId"
placeholder="请选择培训体系"
placeholder="请选择培训分类"
:size="large" :bordered="isEdit" :disabled="!isEdit"
style="width: 200px;color: #999999;" :options="systemOptions"
></a-select>

View File

@@ -247,7 +247,7 @@
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">培训体系</div>
<div class="inname">培训分类</div>
</div>
<div class="in select">
<a-select
@@ -359,7 +359,7 @@
</div>
</template>
<script>
import { reactive, toRefs, ref } from "vue";
import { reactive, toRefs, ref, onUnmounted } from "vue";
import { message } from "ant-design-vue";
import { useRouter, useRoute } from "vue-router";
import dayjs from "dayjs";
@@ -716,7 +716,7 @@ export default {
levels = key;
};
// 培训体系
// 培训分类
const classifyList4 = ref([
{ value: 1, label: "集团级" },
{ value: 2, label: "组织级" },
@@ -1021,6 +1021,9 @@ export default {
}
};
onUnmounted(() => {
storage.remove("projectAddId");
});
return {
...toRefs(state),
projectName,

View File

@@ -1024,6 +1024,35 @@
</div>
</div>
</a-modal>
<!-- 创建项目提示框 -->
<a-modal
v-model:visible="reminderModal"
: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="closeReminderModal"></div>
</div>
<div class="body">
<div style="margin-left:60px;margin-right:60px">请您根据自身需求选择对应项目类别多层项目与单层项目操作不同层级不同</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn2" @click="okReminderModal">
<div class="btnText">好的</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 归属权抽屉 -->
<proj-owner-ship v-model:ProjOwnervisible="ProjOwnervisible" />
<!-- 授权名单抽屉 -->
@@ -1032,6 +1061,9 @@
<proj-check-ship v-model:ProjCheckvisible="ProjCheckvisible" />
<!-- 管理权抽屉 -->
<proj-manage-ship v-model:ProjManagevisible="ProjManagevisible" />
</div>
</template>
<script>
@@ -1069,6 +1101,7 @@ export default {
projectPub: false, //发布弹窗
backModal: false, //撤回弹窗
closeBack: false, //撤回弹窗关闭图标
reminderModal:false,//温馨提示弹窗
ProjOwnervisible: false,
ProjPvisible: false,
ProjCheckvisible: false,
@@ -3038,7 +3071,8 @@ export default {
};
const showModal1 = () => {
state.estabish = true;
state.reminderModal=true
};
const closeModal1 = () => {
state.estabish = false;
@@ -3067,6 +3101,14 @@ export default {
state.ProjManagevisible = true;
};
const closeReminderModal=()=>{
state.reminderModal=false
}
const okReminderModal=()=>{
state.reminderModal=false
state.estabish = true;
}
return {
...toRefs(state),
selectProjectName,
@@ -3168,6 +3210,8 @@ export default {
deleteProject,
templateProject,
copyProject,
closeReminderModal,
okReminderModal,
};
},
};

View File

@@ -154,7 +154,7 @@
<div class="name">
<div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" />
<div class="inname">培训体系</div>
<div class="inname">培训分类</div>
</div>
<div class="in select">
<a-select :getPopupContainer="
@@ -529,7 +529,7 @@ export default {
levels = key;
};
// 培训体系
// 培训分类
const classifyList4 = ref([
{ value: 1, label: "集团级" },
{ value: 2, label: "组织级" },
@@ -602,7 +602,7 @@ export default {
managerId: "请选择项目经理",
sourceBelongId: "请选择资源归属",
level: "请填写项目级别",
systemId: "请填写项目培训体系",
systemId: "请填写项目培训分类",
boeFlag: "请选择是否BOE实施"
};

View File

@@ -1,5 +1,6 @@
<template>
<div class="taskadd">
<div style="display: flex">
<div class="left clearfix">
<div class="leftmain">
<div class="tit">
@@ -10,11 +11,19 @@
/>
</div>
<!-- @click="showModal" -->
<div class="btn btn3" @click="showConfirm" style="margin-left: 19px">
<div class="btn btn3" @click="showModal()" style="margin-left: 19px">
<div class="search"></div>
<div class="btnText">添加阶段</div>
</div>
<div class="maincon" style="background-color: #fff">
<!-- <div
class="items"
:class="{ active: isActive == true }"
@click="changebgc"
v-for="item in level"
:key="item.id"
> -->
<draggable
v-model="level"
chosenClass="chosen"
@@ -22,29 +31,91 @@
forceFallback="true"
group="stage"
animation="500"
@start="onStart"
@end="onEnd"
>
<template #item="{ element }">
<div
class="item"
:class="chooseStageId == element.id ? 'bgcactive' : ''"
class="items"
:class="chooseStageId == element.id ? 'active' : ''"
@click="changebgc(element.id)"
>
<div class="itemle">
<div class="tit">{{ element.tit }}</div>
<div class="name">{{ element.name }}</div>
<div class="items1">
<div class="boxs_left">
<a-popover placement="topLeft" trigger="click">
<template #content>
<div style="width: 130px">
{{ element.name ? element.name : "暂无说明" }}
</div>
<div class="itemri">
<img src="../../assets/images/leveladd/z1.png" />
<img
style="margin-top: 40px"
src="../../assets/images/leveladd/z2.png"
/>
</template>
<template #title>
<span>阶段说明</span>
</template>
<div class="script">
<span style="font-size: 12px; color: #ffffff"
>说明</span
>
</div>
</a-popover>
<div class="imgIcon" @click="showModal(element)"></div>
</div>
<div class="boxs_right">
<div
class="imgIcon"
@click="showDeleteStage(element.id)"
></div>
</div>
</div>
<div class="items2">
<a-popover
placement="topLeft"
v-if="element.tit.length > 10"
>
<template #content>
<div style="width: 130px">
{{ element.tit }}
</div>
</template>
<!-- <template #title>
<span>关卡说明</span>
</template> -->
<div class="nname">
{{ element.tit }}
</div>
</a-popover>
<div class="nname" v-if="element.tit.length <= 10">
{{ element.tit }}
</div>
</div>
<!-- <div class="itemle">
<div class="tit">{{ item.remark }}</div>
<div class="name">{{ item.name }}</div>
</div> -->
</div>
</template>
</draggable>
<!-- <div
class="items"
:class="isactive == index ? 'active' : ''"
@click="changebgc(index)"
v-for="(item, index) in level"
:key="item.chapterId"
>
<div class="items1">
<div class="boxs_left">
<div class="script">
<span style="font-size: 12px; color: #ffffff">说明</span>
</div>
<div class="imgIcon"></div>
</div>
<div class="boxs_right">
<div class="imgIcon"></div>
</div>
</div>
<div class="items2">
<div class="nname">{{ item.name }}</div>
</div>
</div> -->
</div>
</div>
</div>
@@ -63,23 +134,24 @@
</div>
<div class="rightt">
<div class="select">
<a-select
v-model:value="projectName"
style="width: 200px"
placeholder="自由学习模式"
:options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
<span>学习模式</span>
<div class="inputbox">
<input type="text" placeholder="按学习时间解锁" />
<div class="bottonbox">
<div class="btnText">切换模式</div>
</div>
</div>
</div>
<div class="line"></div>
<img class="img2" src="../../assets/images/projectadd/keep.png" />
<!-- <img class="img2" src="../../assets/images/projectadd/keep.png" />
<div class="pub">保存</div>
<div class="line"></div>
<div class="line"></div> -->
<router-link to="/taskpage">
<div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" />
<img
class="img2"
src="../../assets/images/leveladd/back.png"
/>
<div class="return">返回</div>
</div>
</router-link>
@@ -364,7 +436,9 @@
<div class="boomcen">
<div class="onerow">
<div class="taskmain">任务列表</div>
<button class="btn" @click="showChangeModal">移动任务到阶段</button>
<button class="btn" @click="showChangeModal">
移动任务到阶段
</button>
<div class="edit" @click="showdeAll">
<img
class="editimg"
@@ -617,6 +691,23 @@
</div>
</div>
</div>
</div>
<div class="footbtn">
<div class="btnbox">
<div class="btn btn2">
<div class="btnText">暂存</div>
</div>
<div class="btn btn2">
<div class="btnText">确定</div>
</div>
<div class="btn btn1">
<div class="btnText">取消</div>
</div>
</div>
</div>
<!-- 添加阶段弹窗 -->
<div>
<a-modal
v-model:visible="stage"
@@ -628,6 +719,7 @@
width="624px"
height="388px"
centered="true"
@cancel="closeModal"
>
<div
class="modalHeader"
@@ -640,7 +732,9 @@
"
>
<div class="headerLeft" style="margin-left: 32px">
<span class="headerLeftText" style="font-size: 16px">添加阶段</span>
<span class="headerLeftText" style="font-size: 16px"
>编辑/添加阶段</span
>
</div>
<div style="cursor: pointer; margin-right: 32px" @click="closeModal">
<img
@@ -745,11 +839,11 @@
<span>您确定要添加阶段吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
<div class="del_btn btn1" @click="closeConfirm">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="showModal">确定</div>
<div class="del_btn btn2" @click="showModal">
<div class="btnText">确定</div>
</div>
</div>
</div>
@@ -894,6 +988,38 @@
</div>
</div></a-modal
>
<!-- 是否删除阶段弹窗 -->
<a-modal
v-model:visible="deleteStageModal"
:footer="null"
:closable="cC"
wrapClassName="ConfirmModal"
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="closeDeleteStage"></div>
</div>
<div class="body">
<span>您确定要删除此阶段</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeDeleteStage">
<div class="btnText" >取消</div>
</div>
<div class="del_btn btn2" @click="deleteStage">
<div class="btnText" >确定</div>
</div>
</div>
</div>
</div>
</a-modal>
</div>
</template>
@@ -1161,6 +1287,10 @@ export default {
selectRow: [], //选择行
curLevel: [], //阶段名称
selectAll: 0, //0未选择1全选2部分选择
updateStageID: null, //编辑阶段id
deleteStageId:null,//删除阶段的id
deleteStageModal:false,//删除阶段弹窗
});
console.log("projectId", state.projectId);
const selectProjectName = (value, index) => {
@@ -1172,31 +1302,7 @@ export default {
const afterVisibleChange = (bool) => {
console.log("visible", bool);
};
//添加阶段
const editStage = () => {
if (!state.valuesname) {
message.destroy();
return message.warning("请输入阶段名称");
}
let obj = {
name: state.valuesname,
projectId: state.projectId,
remark: state.valuesnotice,
};
apistage
.editStage(obj)
.then((res) => {
console.log("添加阶段成功", res);
(state.valuesname = ""),
(state.valuesnotice = ""),
(state.stage = false);
message.default();
message.success("添加阶段成功");
})
.catch((err) => {
console.log("添加阶段失败", err);
});
};
// 把数据放到state里
const getTableData = (tableData) => {
let data = tableData;
@@ -1447,11 +1553,10 @@ export default {
let stage = localStorage.getItem("stageId")
? localStorage.getItem("stageId")
: null;
if (stage !== null) {
if (stage !== "null") {
state.chooseStageId = stage;
} else {
state.chooseStageId = leng > 0 ? stagearr[0].stageId : null;
console.log(state.chooseStageId, 1111);
}
}
})
@@ -1565,12 +1670,7 @@ export default {
// 40 +
// "px";
// };
//添加阶段详情
const showModal = () => {
state.stage = true;
//关闭确认框
closeConfirm();
};
const showModal1 = () => {
//关闭确认框
state.deleteModal = false;
@@ -1578,8 +1678,105 @@ export default {
message.success("删除成功");
getTask();
};
//关闭添加阶段弹窗
const closeModal = () => {
state.stage = false;
state.valuesname = "";
state.valuesnotice = "";
state.updateStageID = null;
};
//显示添加阶段弹窗
const showModal = (element) => {
state.stage = true;
//关闭确认框
closeConfirm();
if (element) {
state.valuesname = element.tit;
state.valuesnotice = element.name;
state.updateStageID = element.id;
}
};
//添加阶段
const editStage = () => {
if (!state.valuesname) {
message.destroy();
return message.warning("请输入阶段名称");
}
if (state.updateStageID) {
let obj = {
name: state.valuesname,
projectId: state.projectId,
remark: state.valuesnotice,
stageId: state.updateStageID,
};
apistage
.editStage(obj)
.then((res) => {
console.log("修改阶段成功", res);
state.valuesname = "";
state.valuesnotice = "";
closeModal()
state.updateStageID = null;
message.destroy();
message.success("修改阶段成功");
getTask();
})
.catch((err) => {
console.log("添加阶段失败", err);
});
} else {
let obj = {
name: state.valuesname,
projectId: state.projectId,
remark: state.valuesnotice,
};
apistage
.editStage(obj)
.then((res) => {
console.log("添加阶段成功", res);
state.valuesname = ""
state.valuesnotice = ""
closeModal()
message.destroy();
message.success("添加阶段成功");
getTask();
})
.catch((err) => {
console.log("添加阶段失败", err);
});
}
};
//打开删除阶段弹窗
const showDeleteStage=(id)=>{
state.deleteStageId=id
state.deleteStageModal=true
}
//关闭删除阶段弹窗
const closeDeleteStage=()=>{
state.deleteStageId=null
state.deleteStageModal=false
}
//删除阶段
const deleteStage = () => {
console.log("chapterId", state.deleteStageId);
let obj = {
stageId: state.deleteStageId,
};
apistage
.deleteStage(obj)
.then((res) => {
console.log("删除阶段成功", res);
message.success('删除阶段成功')
closeDeleteStage()
getTask();
})
.catch((err) => {
console.log("删除阶段失败", err);
});
};
onMounted(() => {
document.getElementsByTagName("main")[0].style.background =
@@ -1871,6 +2068,10 @@ export default {
showdeAll,
closeDeAll,
handleChangeStage,
showDeleteStage,
closeDeleteStage,
deleteStage,
};
},
};
@@ -2297,6 +2498,7 @@ export default {
.taskadd {
width: 100%;
display: flex;
flex-direction: column;
min-width: 933px;
// min-width: 1200px;
// overflow-x: hidden;
@@ -2363,53 +2565,76 @@ export default {
width: 208px;
display: flex;
flex-direction: column;
align-items: center; // background-color: #bfa;
align-items: center;
.ghost {
// background-color: red;
opacity: 0 !important;
}
.item {
.items {
width: 171px;
height: 83px;
display: flex;
// height: 83px;
background: rgba(255, 182, 78, 0.1);
border: 1px solid #ffb64e;
opacity: 0.45;
border-radius: 8px;
margin-bottom: 17px;
margin-bottom: 16px;
align-items: center;
position: relative;
.itemle {
margin-left: 17px;
.tit {
color: black;
// color: red;
font-size: 14px;
margin-bottom: 8px;
font-weight: bold;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
width: 100px;
}
.name {
font-size: 14px;
color: #878b92;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
width: 100px;
}
}
.itemri {
padding: 16px;
opacity: 0.5;
cursor: pointer;
.items1 {
margin-bottom: 12px;
display: flex;
flex-direction: column;
position: absolute;
right: 16px;
justify-content: space-between;
align-items: center;
.boxs_left {
display: flex;
align-items: center;
.script {
display: flex;
justify-content: center;
align-items: center;
width: 56px;
height: 24px;
background: #ffb64e;
border-radius: 6px;
margin-right: 12px;
white-space: nowrap;
}
.imgIcon {
width: 16px;
height: 16px;
background-image: url(@/assets/images/leveladd/edit1.png);
background-size: 100% 100%;
}
}
.bgcactive {
.boxs_right {
.imgIcon {
width: 16px;
height: 16px;
background-image: url(@/assets/images/leveladd/delete.png);
background-size: 100% 100%;
}
}
}
.items2 {
.nname {
width: 140px;
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
display: -webkit-box;
-webkit-box-orient: vertical;
}
}
}
.active {
opacity: 1;
// transition: all 0.5s;
}
@@ -2476,8 +2701,40 @@ export default {
display: flex;
align-items: center;
.select {
margin-right: 50px;
// margin-bottom: 20px;
display: flex;
align-items: center;
white-space: nowrap;
margin-right: 56px;
.inputbox {
display: flex;
align-items: center;
border: 1px solid #c7cbd2;
width: 238px;
height: 40px;
border-radius: 8px;
input {
border: none;
outline: none;
}
.bottonbox {
width: 100px;
height: 40px;
background: #409eff;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
flex-shrink: 0;
.btnText {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 36px;
margin-left: 5px;
}
}
}
}
.line {
height: 60px;
@@ -2877,5 +3134,51 @@ export default {
margin-left: 10px;
}
}
.footbtn {
width: 100%;
height: 80px;
margin-top: 16px;
// flex: 1;
background-color: #fff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
display: flex;
justify-content: end;
.btnbox {
display: flex;
margin-right: 36px;
height: 80px;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
margin: 21px 0px 19px 14px;
cursor: pointer;
white-space: nowrap;
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 36px;
margin-left: 5px;
}
}
.btn1 {
background-color: #409eff;
.btnText {
color: #ffffff;
}
}
.btn2 {
background-color: #ffffff;
.btnText {
color: #409eff;
}
}
}
}
}
</style>

View File

@@ -2034,7 +2034,7 @@ export default {
sourceBelong: null, //资源归属
remark: null, //项目说明
level: null, //项目级别
systemId: null, //培训体系
systemId: null, //培训分类
picUrl: null,
parentId: null,
});
@@ -2413,79 +2413,17 @@ export default {
};
//学员管理列表操作
const studentData = () => {
let arr = state.tabledata;
console.log(arr, "学员管理");
arr.map((value) => {
value.operation = (
<div
style={{
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<div
class="studentopea1"
onClick={() => {
if (value.excellent === false) {
state.canclestu = true;
console.log("youxiu", value.studentId);
state.changeGoods.push(value.studentId);
} else if (value.excellent === true) {
state.canclestu1 = true;
console.log("youxiu", value.studentId);
state.changeGoods.push(value.studentId);
}
}}
>
{value.excellent ? "取消优秀" : "优秀学员"}
</div>
// const studentData = () => {
// let arr = state.tabledata;
// console.log(arr, "学员管理");
// arr.map((value) => {
// value.operation = (
<div
class="studentopea2"
onClick={() => {
state.Seevisible = true;
console.log(value.studentId, "点击了查看");
state.checkStuId = value.studentId;
}}
>
查看
</div>
<div class="studentSelect">
<a-select
style="width: 50px"
value="更多"
// options={state.projectNameList}
dropdownClassName="tabledropdown"
>
<a-select-option value="换组" label="换组">
<div
onClick={() => {
state.Changevisible = true;
}}
>
换组
</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div
onClick={() => {
console.log("点击了111", value.studentId);
showDeleteOne(value.studentId);
}}
>
删除
</div>
</a-select-option>
</a-select>
</div>
</div>
);
});
state.tabledata = arr;
};
studentData();
// );
// });
// state.tabledata = arr;
// };
// studentData();
const studentColumns = () => {
const tablecolumns = [
{
@@ -2592,6 +2530,75 @@ export default {
// width: 60,
align: "center",
className: "h",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
// console.log(text);
return (
<div
style={{
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<div
class="studentopea1"
onClick={() => {
if (text.record.excellent === false) {
state.canclestu = true;
console.log("youxiu", text.record.studentId);
state.changeGoods.push(text.record.studentId);
} else if (text.record.excellent === true) {
state.canclestu1 = true;
console.log("youxiu", text.record.studentId);
state.changeGoods.push(text.record.studentId);
}
}}
>
{text.record.excellent ? "取消优秀" : "优秀学员"}
</div>
<div
class="studentopea2"
onClick={() => {
state.Seevisible = true;
console.log(text.record.studentId, "点击了查看");
state.checkStuId = text.record.studentId;
}}
>
查看
</div>
<div class="studentSelect">
<a-select
style="width: 50px"
value="更多"
// options={state.projectNameList}
dropdownClassName="tabledropdown"
>
<a-select-option value="换组" label="换组">
<div
onClick={() => {
state.Changevisible = true;
}}
>
换组
</div>
</a-select-option>
<a-select-option value="删除" label="删除">
<div
onClick={() => {
// console.log("点击了111", text);
showDeleteOne(text.record.studentId);
}}
>
删除
</div>
</a-select-option>
</a-select>
</div>
</div>
)}
},
];
return tablecolumns;
@@ -2860,7 +2867,7 @@ export default {
if (leng > 0) {
let arr = res.data.data.rows;
getTableDataList(arr);
studentData();
// studentData();
}
});
};
@@ -3136,7 +3143,7 @@ export default {
createG,
resetGroupName,
searchGroup,
studentData,
// studentData,
cancelyou,
cancelcanyou,
changePaginationStu,