Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	src/views/projectcenter/TaskAdd.vue
#	src/views/projectcenter/TaskPage.vue
This commit is contained in:
yuping
2022-12-04 15:09:21 +08:00
6 changed files with 1175 additions and 1289 deletions

View File

@@ -2,10 +2,11 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-21 14:32:52
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-12-04 11:13:37
* @LastEditTime: 2022-12-04 13:27:07
* @FilePath: /fe-manage/src/api/config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { message } from "ant-design-vue";
import axios from "axios";
// import { getCookie } from '../api/method'
// const Qs = require("qs");
@@ -23,6 +24,7 @@ const http = axios.create({
http.interceptors.request.use(
(config) => {
// console.log('config', config)
// const token = localStorage.getItem("token");
// // const token = getCookie('token')
// // console.log('token', token)
@@ -61,6 +63,10 @@ http.interceptors.response.use(
return response;
},
function (error) {
if (error.message == "timeout of 1ms exceeded") {
message.destroy()
message.error("请求超时")
}
console.log("api error %o", error);
return Promise.reject(error);
}

View File

@@ -31,6 +31,7 @@
<div class="btnbox">
<a-form-item has-feedback label="作业名称" name="workName">
<a-input
maxLength="20"
v-model:value="formState.workName"
style="width: 424px; height: 32px; margin-left: 35px"
placeholder="请输入作业名称"
@@ -46,7 +47,7 @@
placeholder="请输入作业要求"
autocomplete="off"
allow-clear
style="margin-left: 35px"
style="margin-left: 35px;width: 426px;height: 200px;"
maxlength="150"
/>
</a-form-item>

View File

@@ -79,7 +79,6 @@
<div class="chooseLeft">
<div class="boeTree">
<div class="boeTreeTitle">BOE组织树</div>
<a-tree
v-model:value="valueSelectboe"
class="treeMain"
@@ -206,7 +205,6 @@
>
<template #suffixIcon></template>
</a-tree>
<a-tree
v-else-if="isSearchOrg"
class="treeMain treeMain2"
@@ -288,7 +286,6 @@
</div>
</div>
</div>
<!-- <div class="line">
<div class="inline">
<div class="left1">
@@ -542,7 +539,6 @@
<button class="btn2" @click="submitAuth">确定</button>
</div>
</div>
<!-- 确认添加部门弹窗 -->
<a-modal
v-model:visible="showOrgModal"
@@ -575,7 +571,6 @@
<!-- 确认添加部门弹窗 -->
</a-drawer>
</template>
<script>
import { reactive, toRefs, onMounted, onUnmounted, computed } from "vue";
import elementResizeDetectorMaker from "element-resize-detector";
@@ -588,7 +583,6 @@ import {
// batchLoadList,
} from "../../utils/utils";
import * as api from "../../api/index1";
export default {
name: "ProjCheckShip",
props: {
@@ -624,22 +618,16 @@ export default {
currentPage2: 1,
tableDataTotal2: 0,
audienceName: "",
pageSize1: 10,
currentPage1: 1,
tableDataTotal1: 0,
selectedRowKeys1: [],
activeKey: "1",
value: [], //级联选择框
choosevalue: null, //受众选择
valueSelect: null, //树形选择
valueSelectboe2: null, //boe树形选择
nameadd: "",
searchOrgName: "", //搜索组织
//组织树
treeData: [],
@@ -691,7 +679,6 @@ export default {
ellipsis: true,
},
],
//受众关联table数据
tabledata2: [
// {
@@ -771,31 +758,24 @@ export default {
selectOrgName: null, //选中的组织名称
//快速选人-------------------------------------
//添加组织-------------------------------------
selectedKeys1: [], //选中部门的key
chooseorganization: [], //添加组织的选择组织
chooseorganization1: [], //显示到右侧的数组
showMore1: false, //是否显示添加组织的查看更多
showHidden1: false, //是否显示添加组织的收回
showOrgModal: false, //确认弹窗
isSearchOrg: false,
treeData2: [],
//添加组织-------------------------------------
//受众关联-------------------------------------
relationpeople: [], //总的数组
showMore2: false, //是否显示快速选人的查看更多
showHidden2: false, //是否显示收回
selectedRowKeys2: [], //表格选中的key
//受众关联-------------------------------------
selectAllArr: null, //所有选中
expandedKeys: [], //展开的节点
});
const closeDrawer = () => {
state.activeKey = "1";
ctx.emit("update:ProjCheckvisible", false);
@@ -807,23 +787,18 @@ export default {
state.currentPage = 1;
state.tableDataTotal = 0;
state.nameSearch = ""; //搜索名称
//受众
state.currentPage2 = 1;
state.tableDataTotal2 = 0;
state.audienceName = "";
state.currentPage1 = 1;
state.tableDataTotal1 = 0;
state.selectedKeys = [];
state.selectOrgId = null; //选中的组织id
state.selectOrgName = null; //选中的组织名称
state.searchOrgName = null;
state.isSearchOrg = false;
state.treeData2 = [];
getAudienceInfo();
};
const afterVisibleChange = (bool) => {
@@ -836,7 +811,6 @@ export default {
state.treeData = computed(() => {
return store.state.orgtreeList ? store.state.orgtreeList : [];
});
const getClientHeight = () => {
state.screenHeight = document.body.clientHeight;
};
@@ -844,16 +818,14 @@ export default {
// const getClientHeightSelecteds = () => {
// state.selectedsHeight = document.getElementById('selecteds').offsetHeight
// console.log('selectedsHeight',state.selectedsHeight)
// };
onMounted(() => {
window.addEventListener("resize", getClientHeight, false);
state.tabledata = store.state.memberInitInfo
state.tabledata = store.state.memberInitInfo;
});
onUnmounted(() => {
window.removeEventListener("resize", getClientHeight, false);
});
// 开始 快速选人------------------------------------------------------------------
//选中部门
const departmentSelect = (e, k) => {
@@ -880,11 +852,10 @@ export default {
org: state.nameSearch ? null : org,
})
.then((res) => {
state.tabledata = res.data.data.rows
state.tabledata = res.data.data.rows;
state.tableDataTotal = res.data.data.total;
})
}
});
};
// state.tabledata = traverseArr(item1, {
// key: "id",
// name: "realName",
@@ -927,7 +898,6 @@ export default {
state.choosepeople = item.reverse();
selectedsHeight();
// if (selectedRowKeys.length > 0 && item.length > 0) {
// state.selectedRowKeys.push(selectedRowKeys[selectedRowKeys.length - 1]);
// state.choosepeople.unshift(item[item.length - 1]);
// // console.log(
@@ -1003,9 +973,7 @@ export default {
.getElementById("ProjCheckship")
.querySelector("#selectedsBox").style.height = "160px";
};
// 结束 快速选人------------------------------------------------------------------
// 开始 添加组织------------------------------------------------------------------
//搜索组织
const searchOrg = (id) => {
@@ -1043,7 +1011,6 @@ export default {
return store.state.orgtreeList ? store.state.orgtreeList : [];
});
};
// //搜索组织
// const searchOrg = () => {
// let treeTitle = document
@@ -1068,7 +1035,6 @@ export default {
// message.warning("请输入组织名称");
// }
// };
//选中部门
const departmentSelect1 = (e, k) => {
console.log("选中的部门", e, k);
@@ -1087,7 +1053,6 @@ export default {
}
}
}
console.log("选中的部门2", state.selectedKeys1, state.chooseorganization);
};
//点击确认添加-判断是否显示确定弹窗
@@ -1110,7 +1075,6 @@ export default {
const closeOrgModal = () => {
state.showOrgModal = false;
};
//单个删除选中的组织
const deleteChoosePeople1 = (item) => {
console.log("item", item, state.chooseorganization);
@@ -1130,7 +1094,6 @@ export default {
state.selectedKeys1 = array;
console.log("state.selectedKeys1", state.selectedKeys1);
};
//根据右侧快速选人高度,判断是否显示更多
const selectedsHeight1 = () => {
let resize = elementResizeDetectorMaker();
@@ -1179,11 +1142,8 @@ export default {
.getElementById("ProjCheckship")
.querySelector("#selectedsBox1").style.height = "160px";
};
// 结束 添加组织------------------------------------------------------------------
// 开始 受众关联------------------------------------------------------------------
//获取受众
const getAudienceInfo = async () => {
const item1 = await api
@@ -1230,7 +1190,6 @@ export default {
state.audienceName = "";
getAudienceInfo();
};
//受众关联 选中的数组
const onSelectChange2 = (selectedRowKeys, item) => {
// console.log("selectedRowKeys changed: ", selectedRowKeys, item);
@@ -1238,7 +1197,6 @@ export default {
state.relationpeople = item.reverse();
// state.selectedRowKeys2.push(selectedRowKeys[selectedRowKeys.length - 1]);
// state.relationpeople.unshift(item[item.length - 1]);
selectedsHeight2();
};
//单个删除选中的人
@@ -1306,9 +1264,7 @@ export default {
.getElementById("ProjCheckship")
.querySelector("#selectedsBox2").style.height = "160px";
};
// 结束 受众关联------------------------------------------------------------------
//全部清除
const deleteAll = () => {
//快速选人-------------------------------------
@@ -1321,26 +1277,21 @@ export default {
state.selectOrgName = null; //选中的组织名称
//快速选人-------------------------------------
//添加组织-------------------------------------
state.selectedKeys1 = []; //选中部门的key
state.chooseorganization = []; //添加组织的选择组织
state.chooseorganization1 = []; //显示到右侧的数组
state.showMore1 = false; //是否显示添加组织的查看更多
state.showHidden1 = false; //是否显示添加组织的收回
state.showOrgModal = false; //确认弹窗
//添加组织-------------------------------------
//受众关联-------------------------------------
state.relationpeople = []; //总的数组
state.showMore2 = false; //是否显示快速选人的查看更多
state.showHidden2 = false; //是否显示收回
state.selectedRowKeys2 = []; //表格选中的key
//受众关联-------------------------------------
state.selectAllArr = null; //所有选中
};
//确定添加授权
const submitAuth = () => {
let choosepeople = [];
@@ -1351,7 +1302,6 @@ export default {
};
choosepeople.push(obj);
});
let chooseorganization1 = [];
state.chooseorganization1.map((value) => {
let obj = {
@@ -1360,7 +1310,6 @@ export default {
};
chooseorganization1.push(obj);
});
let relationpeople = [];
state.relationpeople.map((value) => {
let obj = {
@@ -1411,7 +1360,6 @@ export default {
//快速选人
state.selectedRowKeys = selectedRowKeys;
state.choosepeople = choosepeople;
let deptArr = res.data.data.deptList;
let selectedKeys1 = [];
let chooseorganization = [];
@@ -1423,7 +1371,6 @@ export default {
state.selectedKeys1 = selectedKeys1;
state.chooseorganization = chooseorganization;
state.chooseorganization1 = chooseorganization;
let groupArr = res.data.data.groupList;
let selectedRowKeys2 = [];
let relationpeople = [];
@@ -1441,7 +1388,6 @@ export default {
console.log("获取权限名单失败", err);
});
};
return {
...toRefs(state),
afterVisibleChange,
@@ -1454,7 +1400,6 @@ export default {
selectedsHeight,
morePeopleShow,
morePeopleHidden,
departmentSelect1,
addOrgModal,
addOrg,
@@ -1463,39 +1408,31 @@ export default {
morePeopleShow1,
morePeopleHidden1,
deleteChoosePeople1,
selectedsHeight2,
morePeopleShow2,
morePeopleHidden2,
deleteChoosePeople2,
deleteAll,
searchOrg,
changePagination,
handleSearchStu,
resetStu,
getAudienceInfo,
changePagination1,
searchAudienceInfo,
resetAudienceInfo,
resetOrg,
submitAuth,
optionAuthPerm,
};
},
};
</script>
<style lang="scss">
.ProjCheckship {
.ant-drawer-content-wrapper {
max-width: 1300px !important;
}
.drawerMain {
min-width: 600px;
margin: 0px 32px 0px 32px;
@@ -1503,7 +1440,6 @@ export default {
display: flex;
flex-direction: column;
overflow-x: auto;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
@@ -1513,7 +1449,6 @@ export default {
align-items: center;
// background-color: red;
margin-bottom: 20px;
.headerTitle {
font-size: 18px;
font-weight: 600;
@@ -1522,7 +1457,6 @@ export default {
// margin-left: 24px;
}
}
.main {
display: flex;
// min-width: 1200px;
@@ -1536,38 +1470,31 @@ export default {
flex-shrink: 0;
// height: 100%;
border-right: 1px solid rgba(233, 233, 233, 1);
.tabs {
margin-right: 33px;
.tab1 {
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
align-items: center;
.t1 {
display: flex;
align-items: center;
margin-bottom: 5px;
}
.nameinp {
display: flex;
align-items: center;
margin-top: 10px;
.namee {
color: rgba(0, 0, 0, 0.85);
font-size: 14px;
}
}
.btns {
display: flex;
margin-top: 10px;
margin-left: 34px;
.btn1 {
width: 100px;
height: 40px;
@@ -1581,12 +1508,10 @@ export default {
border-radius: 8px;
border: 1px solid #409eff;
cursor: pointer;
.wz {
margin-left: 10px;
}
}
.btn2 {
width: 100px;
height: 40px;
@@ -1599,18 +1524,15 @@ export default {
border-radius: 8px;
cursor: pointer;
border: 1px solid #409eff;
.wz {
margin-left: 10px;
}
}
}
}
.btns {
display: flex;
margin-top: 10px;
.btn1 {
width: 100px;
height: 40px;
@@ -1624,12 +1546,10 @@ export default {
border-radius: 8px;
border: 1px solid #409eff;
cursor: pointer;
.wz {
margin-left: 10px;
}
}
.btn2 {
width: 100px;
height: 40px;
@@ -1642,13 +1562,11 @@ export default {
border-radius: 8px;
cursor: pointer;
border: 1px solid #409eff;
.wz {
margin-left: 10px;
}
}
}
.line {
width: 100%;
height: 40px;
@@ -1658,42 +1576,35 @@ export default {
align-items: center;
margin-top: 20px;
border: 1px solid #c3e6fc;
.inline {
width: 95%;
height: 100%;
display: flex;
justify-content: space-between;
// background-color: #bfa;
.left1 {
height: 100%;
display: flex;
align-items: center;
.img {
width: 14px;
height: 15px;
background-image: url(../../assets/images/leveladd/gan.png);
background-size: 100% 100%;
}
.text {
color: #999ba3;
}
.text2 {
color: #4ea6ff;
margin-left: 5px;
margin-right: 5px;
}
.text3 {
color: #999ba3;
margin-left: 20px;
}
}
.right1 {
font-size: 14px;
font-weight: 400;
@@ -1705,11 +1616,9 @@ export default {
}
}
}
.chooseLeft {
display: flex;
justify-content: space-between;
.boeTree {
margin-right: 20px;
// margin-top: 20px;
@@ -1742,7 +1651,6 @@ export default {
margin-bottom: 8px;
margin-top: 20px;
}
.treeMain {
width: 280px;
border-radius: 4px;
@@ -1752,56 +1660,45 @@ export default {
padding-top: 10px;
padding-left: 5px;
}
.ant-tree .ant-tree-node-content-wrapper {
flex-shrink: 0;
}
.ant-tree-indent-unit {
width: 5px;
}
.ant-tree
.ant-tree-node-content-wrapper-normal.ant-tree-node-selected {
background-color: rgba(255, 255, 255, 0);
color: #409eff;
}
.ant-tree .ant-tree-node-selected {
background-color: rgba(255, 255, 255, 0);
// color:#409EFF;
}
// .ant-tree .ant-tree-title{
// background-color: pink;
// }
}
.tabb {
.ant-table-thead > tr > th {
background-color: rgba(240, 246, 252, 1);
color: rgba(0, 0, 0, 0.85);
}
.ant-table-tbody > tr > td {
border-bottom: 1px solid #f0f6fc;
color: rgba(0, 0, 0, 0.65);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: rgba(250, 250, 250, 1);
}
.ant-table-selection-column {
padding: 0 !important;
}
// table tr td.ant-table-selection-column {
// text-align: right;
// }
@@ -1828,31 +1725,26 @@ export default {
}
}
}
.tab2 {
display: flex;
align-items: center;
// margin-top: 10px;
flex-wrap: wrap;
justify-content: space-between;
.nameinp {
display: flex;
align-items: center;
margin-top: 10px;
.namee {
color: rgba(0, 0, 0, 0.85);
font-size: 14px;
}
}
.t1 {
display: flex;
align-items: center;
margin-bottom: 5px;
}
.btns {
display: flex;
// margin-top: -10px;
@@ -1869,12 +1761,10 @@ export default {
border-radius: 8px;
border: 1px solid #409eff;
cursor: pointer;
.wz {
margin-left: 10px;
}
}
.btn2 {
width: 100px;
height: 40px;
@@ -1887,43 +1777,35 @@ export default {
border-radius: 8px;
cursor: pointer;
border: 1px solid #409eff;
.wz {
margin-left: 10px;
}
}
}
.organize {
color: rgba(0, 0, 0, 0.85);
font-size: 14px;
white-space: nowrap;
}
.ant-select-dropdown {
min-width: 800px !important;
}
.ant-select {
border-radius: 8px !important;
// background-color: red;
}
.ant-cascader {
width: 264px;
height: 40px;
border-radius: 8px !important;
.ant-select-selector {
height: 100%;
}
.ant-select-selection-search-input {
height: 40px;
}
}
}
.boeTree {
.boeTreeTitle {
width: 280px;
@@ -1940,7 +1822,6 @@ export default {
margin-bottom: 8px;
margin-top: 20px;
}
.treeMain {
width: 280px;
border-radius: 4px;
@@ -1950,26 +1831,21 @@ export default {
padding-top: 10px;
padding-left: 5px;
}
.ant-tree .ant-tree-node-content-wrapper {
flex-shrink: 0;
}
.ant-tree-indent-unit {
width: 5px;
}
.ant-tree
.ant-tree-node-content-wrapper-normal.ant-tree-node-selected {
background-color: rgba(255, 255, 255, 0);
color: #409eff;
}
.ant-tree .ant-tree-node-selected {
background-color: rgba(255, 255, 255, 0);
// color:#409EFF;
}
// .ant-tree-switcher_open+ .ant-tree-checkbox{
// display: none !important;
// }
@@ -1982,23 +1858,19 @@ export default {
}
}
}
.right {
width: 320px;
flex-shrink: 0;
overflow-y: auto;
.onerow {
display: flex;
justify-content: space-between;
align-items: center;
margin-right: 40px;
flex-wrap: wrap;
.onleft {
display: flex;
text-align: center;
.already {
color: rgba(51, 51, 51, 1);
font-size: 16px;
@@ -2007,20 +1879,17 @@ export default {
white-space: nowrap;
// margin-bottom: 20px;
}
.count {
color: #388be1;
font-size: 16px;
margin: 0 6px;
}
.peo {
color: rgba(51, 51, 51, 1);
font-size: 16px;
font-weight: 500;
}
}
.clbox {
margin-left: 30px;
display: flex;
@@ -2031,7 +1900,6 @@ export default {
height: 32px;
border-radius: 4px;
background: #409eff;
.colose {
width: 16px;
height: 16px;
@@ -2042,14 +1910,12 @@ export default {
background-size: 100%;
margin-right: 4px;
}
.allclear {
color: rgba(255, 255, 255, 1);
font-size: 14px;
}
}
}
.line {
width: 90%;
height: 1px;
@@ -2057,20 +1923,17 @@ export default {
margin-left: 12px;
margin-top: 20px;
}
.tit {
font-size: 14px;
font-weight: 500;
margin-top: 12px;
margin-left: 32px;
}
.selectedsBox {
position: relative;
// height: 160px;
overflow: hidden;
}
.selecteds {
display: flex;
// flex-wrap:wrap;
@@ -2082,7 +1945,6 @@ export default {
// height: 170px;
// overflow: hidden;
flex-shrink: 0;
.chose {
// width: 64px;
padding-left: 10px;
@@ -2099,7 +1961,6 @@ export default {
font-size: 12px;
position: relative;
flex-shrink: 0;
.ch {
position: absolute;
width: 18px;
@@ -2112,7 +1973,6 @@ export default {
}
}
}
.btnn {
height: 72px;
width: 100%;
@@ -2124,7 +1984,6 @@ export default {
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
@@ -2134,7 +1993,6 @@ export default {
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
@@ -2148,55 +2006,43 @@ export default {
}
}
}
.changetreedropdown {
width: 500px !important;
.ant-select-tree-list-scrollbar {
width: 5px !important;
.ant-select-tree-list-scrollbar-thumb {
background-color: #4ea6ff !important;
}
}
.ant-select-tree-indent-unit {
width: 7px !important;
}
}
.changetreedropdownboe {
width: 240px !important;
border-radius: 5px;
min-height: 600px !important;
.ant-select-tree-list-scrollbar {
width: 5px !important;
.ant-select-tree-list-scrollbar-thumb {
background-color: #4ea6ff !important;
}
}
.ant-select-tree-indent-unit {
width: 7px !important;
}
}
.confirmAddOrg {
.ant-modal {
width: 424px !important;
height: 258px !important;
.ant-modal-content {
width: 424px !important;
height: 258px !important;
.ant-modal-body {
width: 424px !important;
height: 258px !important;
padding: 0 !important;
.delete {
z-index: 999;
width: 424px;
@@ -2217,18 +2063,15 @@ export default {
rgba(78, 166, 255, 0) 100%
);
}
.del_main {
width: 100%;
position: relative;
.header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.icon {
width: 16px;
height: 16px;
@@ -2236,7 +2079,6 @@ export default {
background-image: url(@/assets/images/taskpage/gan.png);
background-size: 100% 100%;
}
.close_exit {
position: absolute;
right: 42px;
@@ -2247,7 +2089,6 @@ export default {
background-size: 100% 100%;
}
}
.body {
width: 100%;
margin: 34px auto 56px auto;
@@ -2257,7 +2098,6 @@ export default {
flex-direction: column;
// background-color: red;
position: relative;
.back {
position: absolute;
top: 30px;
@@ -2266,12 +2106,10 @@ export default {
color: #666666;
}
}
.del_btnbox {
display: flex;
margin: 30px auto;
justify-content: center;
.del_btn {
width: 100px;
height: 40px;
@@ -2280,23 +2118,19 @@ export default {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
cursor: pointer;
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 40px;
}
}
.btn1 {
border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff;
margin-right: 14px;
}
.btn2 {
background-color: #4ea6ff;
color: #ffffff;
@@ -2306,7 +2140,6 @@ export default {
}
}
}
.ant-modal-close-x {
display: none;
}

View File

@@ -1914,6 +1914,7 @@ export default {
GetRouterDetail(state.routerId)
.then((res) => {
console.log('router-list',res)
state.fileList = JSON.parse(res.data.data.routerInfo.attach)
if (res.data.data.routerInfo.status == 1) {
state.nodata = false;
}

View File

@@ -171,7 +171,19 @@
<div class="inname">同步学习记录</div>
</div>
<div class="in">
<a-switch
<a-checkbox
v-model:checked="courseSyncFlag"
:disabled="viewDetail ? true : false"
><span
style="
width: 100%;
color: rgba(109, 117, 132, 1);
font-size: 14px;
"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-checkbox
>
<!-- <a-switch
v-model:checked="projectInfo.courseSyncFlag"
:checkedValue="1"
:unCheckedValue="0"
@@ -184,7 +196,7 @@
"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-switch
>
> -->
</div>
</div>
<div class="name">
@@ -317,6 +329,7 @@ export default {
keyWord: "",
},
classifyList5: [],
courseSyncFlag: false,
});
onMounted(() => {
@@ -349,6 +362,9 @@ export default {
state.projectInfo.endTime,
];
state.projectInfo.parentName = routers.query.parentName;
state.courseSyncFlag = state.projectInfo.courseSyncFlag
? true
: false;
});
}
@@ -432,6 +448,7 @@ export default {
return;
}
state.projectInfo.type = 3;
state.projectInfo.courseSyncFlag = state.courseSyncFlag ? 1 : 0;
api.createProject(state.projectInfo).then(() => {
message.destroy();
message.success("编辑成功");

View File

@@ -343,8 +343,14 @@
<span class="editext">编辑</span>
</router-link>
</div> -->
<div class="taskSyllabus"
v-if="taskSyllabus && taskSyllabus.length && (taskSyllabus.length>1 || taskSyllabus[0].name)">
<div
class="taskSyllabus"
v-if="
taskSyllabus &&
taskSyllabus.length &&
(taskSyllabus.length > 1 || taskSyllabus[0].name)
"
>
<a-collapse v-model:activeKey="taskSyllabusActive" accordion>
<template #expandIcon="{ isActive }">
<img
@@ -439,8 +445,14 @@
<div class="progress">
<div class="progresstext">
{{
item.finishStuCnt && item.finishStuCnt !== null ? item.finishStuCnt : 0
}}/{{ item.totalStuCnt && item.totalStuCnt !== null ? item.totalStuCnt : 0 }}
item.finishStuCnt && item.finishStuCnt !== null
? item.finishStuCnt
: 0
}}/{{
item.totalStuCnt && item.totalStuCnt !== null
? item.totalStuCnt
: 0
}}人
</div>
<div style="display: flex">
<a-progress
@@ -451,7 +463,12 @@
/>
<span class="progresstext" style="margin-left: 10px"
>{{
(item.finishStuCnt && item.finishStuCnt !== null ? item.finishStuCnt : 0 / item.totalStuCnt && item.totalStuCnt !== null ? item.totalStuCnt : 0) * 100
(item.finishStuCnt && item.finishStuCnt !== null
? item.finishStuCnt
: 0 / item.totalStuCnt &&
item.totalStuCnt !== null
? item.totalStuCnt
: 0) * 100
}}%</span
>
</div>
@@ -545,9 +562,11 @@
<div v-else>
<div
class="taskbox"
@click="()=>{
routered.push({path:'/taskadd'})
}"
@click="
() => {
routered.push({ path: '/taskadd' });
}
"
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
>
<div class="leftt">
@@ -798,7 +817,7 @@
@click="showMemberList(item.projectGroupId)"
>
<div class="ftext">组员名单 ></div>
<div class="peoples">
<!-- <div class="peoples">
<div class="people1">
<img
src="../../assets/images/taskpage/people1.png"
@@ -819,7 +838,7 @@
src="../../assets/images/taskpage/people4.png"
/>
</div>
</div>
</div> -->
</div>
</div>
</div>
@@ -831,15 +850,11 @@
<a-tab-pane key="4" tab="公告">
<div class="split"></div>
<a-tabs v-model:activeKey="activeKeyNotice">
<a-tab-pane key="11" tab="公告"
>
<NoticePub v-model:projectId="projectId"></NoticePub
>
<a-tab-pane key="11" tab="公告">
<NoticePub v-model:projectId="projectId"></NoticePub>
</a-tab-pane>
<a-tab-pane key="12" tab="历史公告" force-render
>
<NoticeHis v-model:projectId="projectId"></NoticeHis
>
<a-tab-pane key="12" tab="历史公告" force-render>
<NoticeHis v-model:projectId="projectId"></NoticeHis>
</a-tab-pane>
</a-tabs>
</a-tab-pane>
@@ -1038,14 +1053,23 @@
<div class="set_content">
<div class="setc_name"><span>项目级别:</span></div>
<div class="setc_main">
<span style="color: #999999"><ProjectLevel v-model:value="level" :disabled="true"></ProjectLevel></span>
<span style="color: #999999"
><ProjectLevel
v-model:value="level"
:disabled="true"
></ProjectLevel
></span>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>培训体系:</span></div>
<div class="setc_main">
<span style="color: #999999"><TrainClass v-model:value="systemId"
:disabled="true"></TrainClass></span>
<span style="color: #999999"
><TrainClass
v-model:value="systemId"
:disabled="true"
></TrainClass
></span>
</div>
</div>
<div class="set_content">
@@ -1073,7 +1097,7 @@
</div>
<div class="btnbox" style="margin: 20px">
<a-upload
v-if="(docChecked==true)"
v-if="docChecked == true"
v-model:file-list="fileList"
name="file"
action="/manageApi/file/upload"
@@ -1090,7 +1114,11 @@
alt=""
/>
</a-upload>
<div v-if="(docChecked==true)" class="btnbox" style="margin: 20px">
<div
v-if="docChecked == true"
class="btnbox"
style="margin: 20px"
>
<span style="color: #999999">
支持pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip
</span>
@@ -3090,7 +3118,7 @@ export default {
//点击确认删除单个学员
const closeDeleteOneConfirm = () => {
state.deleteOneStu = false;
state.loading = true
state.loading = true;
deleteStu({
projectId: state.projectId,
studentIds: state.chooseDeleteOne,
@@ -3121,7 +3149,7 @@ export default {
};
//点击确定的批量删除弹窗
const closeAllDelete = () => {
state.loading = true
state.loading = true;
deleteStu({
projectId: state.projectId,
studentIds: state.selectedRows,
@@ -3281,7 +3309,7 @@ export default {
// studentData();
}
}
state.loading = false
state.loading = false;
})
.catch((err) => {
console.log("获取学员列表失败", err);
@@ -3295,9 +3323,9 @@ export default {
console.log("get task", res.data.data);
let info = res.data.data.projectInfo;
// let start = toDate(info.beginTime / 1000, "Y-M-D h:m");
let start = info.beginTime
let start = info.beginTime;
// let end = toDate(info.endTime / 1000, "Y-M-D h:m");
let end = info.endTime
let end = info.endTime;
state.tstartTime = info.beginTime;
state.tendTime = info.endTime;
state.tsourceBelong = info.sourceBelongName;
@@ -3734,7 +3762,7 @@ export default {
projectGroupId: 0,
};
console.log("obj", obj);
state.loading = true
state.loading = true;
api
.addStudentProject(obj)
.then((res) => {
@@ -3848,7 +3876,7 @@ export default {
changeGrouped,
deFile,
toDate,
routered
routered,
};
},
};