Merge branch 'develop' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage into develop

This commit is contained in:
zhangyc
2022-12-04 20:05:52 +08:00
6 changed files with 871 additions and 731 deletions

View File

@@ -230,13 +230,13 @@
> >
<template #suffixIcon></template> <template #suffixIcon></template>
</a-tree> </a-tree>
<div <!-- <div-->
class="boeTreeTitle" <!-- class="boeTreeTitle"-->
style="margin-top: 8px; cursor: pointer" <!-- style="margin-top: 8px; cursor: pointer"-->
@click="addOrgModal" <!-- @click="addOrgModal"-->
> <!-- >-->
确认添加 <!-- 确认添加-->
</div> <!-- </div>-->
</div> </div>
</div> </div>
</a-tab-pane> </a-tab-pane>
@@ -353,8 +353,8 @@
<div style="height: 160px" class="selectedsBox" id="selectedsBox"> <div style="height: 160px" class="selectedsBox" id="selectedsBox">
<div class="selecteds" id="selecteds"> <div class="selecteds" id="selecteds">
<!-- 遍历生成 --> <!-- 遍历生成 -->
<div class="chose" v-for="item in choosepeople" :key="item.key"> <div class="chose" v-for="(item,index) in choosepeople" :key="index">
<div>{{ item.name || item.realName }}</div> <div>{{ item?.name || item?.realName }}</div>
<div class="ch" @click="deleteChoosePeople(item)"></div> <div class="ch" @click="deleteChoosePeople(item)"></div>
</div> </div>
</div> </div>
@@ -572,17 +572,18 @@
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
import { reactive, toRefs, onMounted, onUnmounted, computed } from "vue"; import {reactive, toRefs, onMounted, onUnmounted, computed} from "vue";
import elementResizeDetectorMaker from "element-resize-detector"; import elementResizeDetectorMaker from "element-resize-detector";
import { message } from "ant-design-vue"; import {message} from "ant-design-vue";
// import { toDate } from "../../api/method"; // import { toDate } from "../../api/method";
import { useStore } from "vuex"; import {useStore} from "vuex";
import { import {
traverseArr, traverseArr,
// deepClone, // deepClone,
// batchLoadList, // batchLoadList,
} from "../../utils/utils"; } from "../../utils/utils";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
export default { export default {
name: "ProjCheckShip", name: "ProjCheckShip",
props: { props: {
@@ -710,7 +711,7 @@ export default {
compare: (a, b) => new Date(a.createTime) - new Date(b.createTime), compare: (a, b) => new Date(a.createTime) - new Date(b.createTime),
multiple: 3, multiple: 3,
}, },
scopedSlots: { customRender: "action" }, //引入的插槽 scopedSlots: {customRender: "action"}, //引入的插槽
customRender: (text) => { customRender: (text) => {
// console.log(text.record.checked1); // console.log(text.record.checked1);
return ( return (
@@ -894,8 +895,14 @@ export default {
//快速选人 选中的数组 //快速选人 选中的数组
const onSelectChange = (selectedRowKeys, item) => { const onSelectChange = (selectedRowKeys, item) => {
console.log("selectedRowKeys changed: ", selectedRowKeys, item); console.log("selectedRowKeys changed: ", selectedRowKeys, item);
console.log("choosepeople : ", state.choosepeople);
state.selectedRowKeys = selectedRowKeys; state.selectedRowKeys = selectedRowKeys;
state.choosepeople = item.reverse(); const se = state.studentList.map(e => e.id).join(',') || ''
const addItem = item.filter(e => (e && !se.includes(e.id + ',')))
addItem.forEach(e => {
e.name = e.realName
})
state.choosepeople = [...addItem.reverse(), ...state.studentList];
selectedsHeight(); selectedsHeight();
// if (selectedRowKeys.length > 0 && item.length > 0) { // if (selectedRowKeys.length > 0 && item.length > 0) {
// state.selectedRowKeys.push(selectedRowKeys[selectedRowKeys.length - 1]); // state.selectedRowKeys.push(selectedRowKeys[selectedRowKeys.length - 1]);
@@ -911,14 +918,15 @@ export default {
const deleteChoosePeople = (item) => { const deleteChoosePeople = (item) => {
let arr = state.choosepeople; let arr = state.choosepeople;
for (let i = 0; i < arr.length; i++) { for (let i = 0; i < arr.length; i++) {
if (arr[i].key === item.key) { if (arr[i].id == item.id) {
arr.splice(i, 1); arr.splice(i, 1);
} }
} }
state.choosepeople = arr; state.choosepeople = arr;
state.studentList = state.studentList.filter(e => e.id != item.id)
let array = state.selectedRowKeys; let array = state.selectedRowKeys;
for (let i = 0; i < array.length; i++) { for (let i = 0; i < array.length; i++) {
if (array[i] === item.key) { if (array[i] === item.id) {
array.splice(i, 1); array.splice(i, 1);
} }
} }
@@ -1298,7 +1306,7 @@ export default {
state.choosepeople.map((value) => { state.choosepeople.map((value) => {
let obj = { let obj = {
id: value.id, id: value.id,
name: value.realName, name: value.name,
}; };
choosepeople.push(obj); choosepeople.push(obj);
}); });
@@ -1351,15 +1359,10 @@ export default {
// console.log("获取权限名单成功", res); // console.log("获取权限名单成功", res);
if (res.data.code === 200) { if (res.data.code === 200) {
let studentArr = res.data.data.studentList; let studentArr = res.data.data.studentList;
let selectedRowKeys = []; state.studentList = res.data.data.studentList;
let choosepeople = []; state.choosepeople = res.data.data.studentList;
for (let i = 0; i < studentArr.length; i++) {
selectedRowKeys.push(studentArr[i].id);
choosepeople.push(studentArr[i]);
}
//快速选人 //快速选人
state.selectedRowKeys = selectedRowKeys; state.selectedRowKeys = studentArr.map(e => e.id);
state.choosepeople = choosepeople;
let deptArr = res.data.data.deptList; let deptArr = res.data.data.deptList;
let selectedKeys1 = []; let selectedKeys1 = [];
let chooseorganization = []; let chooseorganization = [];
@@ -1433,6 +1436,7 @@ export default {
.ant-drawer-content-wrapper { .ant-drawer-content-wrapper {
max-width: 1300px !important; max-width: 1300px !important;
} }
.drawerMain { .drawerMain {
min-width: 600px; min-width: 600px;
margin: 0px 32px 0px 32px; margin: 0px 32px 0px 32px;
@@ -1440,6 +1444,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow-x: auto; overflow-x: auto;
.header { .header {
height: 73px; height: 73px;
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
@@ -1449,6 +1454,7 @@ export default {
align-items: center; align-items: center;
// background-color: red; // background-color: red;
margin-bottom: 20px; margin-bottom: 20px;
.headerTitle { .headerTitle {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
@@ -1457,6 +1463,7 @@ export default {
// margin-left: 24px; // margin-left: 24px;
} }
} }
.main { .main {
display: flex; display: flex;
// min-width: 1200px; // min-width: 1200px;
@@ -1470,31 +1477,38 @@ export default {
flex-shrink: 0; flex-shrink: 0;
// height: 100%; // height: 100%;
border-right: 1px solid rgba(233, 233, 233, 1); border-right: 1px solid rgba(233, 233, 233, 1);
.tabs { .tabs {
margin-right: 33px; margin-right: 33px;
.tab1 { .tab1 {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
// justify-content: space-between; // justify-content: space-between;
align-items: center; align-items: center;
.t1 { .t1 {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 5px; margin-bottom: 5px;
} }
.nameinp { .nameinp {
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 10px; margin-top: 10px;
.namee { .namee {
color: rgba(0, 0, 0, 0.85); color: rgba(0, 0, 0, 0.85);
font-size: 14px; font-size: 14px;
} }
} }
.btns { .btns {
display: flex; display: flex;
margin-top: 10px; margin-top: 10px;
margin-left: 34px; margin-left: 34px;
.btn1 { .btn1 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -1508,10 +1522,12 @@ export default {
border-radius: 8px; border-radius: 8px;
border: 1px solid #409eff; border: 1px solid #409eff;
cursor: pointer; cursor: pointer;
.wz { .wz {
margin-left: 10px; margin-left: 10px;
} }
} }
.btn2 { .btn2 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -1524,15 +1540,18 @@ export default {
border-radius: 8px; border-radius: 8px;
cursor: pointer; cursor: pointer;
border: 1px solid #409eff; border: 1px solid #409eff;
.wz { .wz {
margin-left: 10px; margin-left: 10px;
} }
} }
} }
} }
.btns { .btns {
display: flex; display: flex;
margin-top: 10px; margin-top: 10px;
.btn1 { .btn1 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -1546,10 +1565,12 @@ export default {
border-radius: 8px; border-radius: 8px;
border: 1px solid #409eff; border: 1px solid #409eff;
cursor: pointer; cursor: pointer;
.wz { .wz {
margin-left: 10px; margin-left: 10px;
} }
} }
.btn2 { .btn2 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -1562,11 +1583,13 @@ export default {
border-radius: 8px; border-radius: 8px;
cursor: pointer; cursor: pointer;
border: 1px solid #409eff; border: 1px solid #409eff;
.wz { .wz {
margin-left: 10px; margin-left: 10px;
} }
} }
} }
.line { .line {
width: 100%; width: 100%;
height: 40px; height: 40px;
@@ -1576,6 +1599,7 @@ export default {
align-items: center; align-items: center;
margin-top: 20px; margin-top: 20px;
border: 1px solid #c3e6fc; border: 1px solid #c3e6fc;
.inline { .inline {
width: 95%; width: 95%;
height: 100%; height: 100%;
@@ -1586,25 +1610,30 @@ export default {
height: 100%; height: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
.img { .img {
width: 14px; width: 14px;
height: 15px; height: 15px;
background-image: url(../../assets/images/leveladd/gan.png); background-image: url(../../assets/images/leveladd/gan.png);
background-size: 100% 100%; background-size: 100% 100%;
} }
.text { .text {
color: #999ba3; color: #999ba3;
} }
.text2 { .text2 {
color: #4ea6ff; color: #4ea6ff;
margin-left: 5px; margin-left: 5px;
margin-right: 5px; margin-right: 5px;
} }
.text3 { .text3 {
color: #999ba3; color: #999ba3;
margin-left: 20px; margin-left: 20px;
} }
} }
.right1 { .right1 {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
@@ -1616,9 +1645,11 @@ export default {
} }
} }
} }
.chooseLeft { .chooseLeft {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.boeTree { .boeTree {
margin-right: 20px; margin-right: 20px;
// margin-top: 20px; // margin-top: 20px;
@@ -1651,6 +1682,7 @@ export default {
margin-bottom: 8px; margin-bottom: 8px;
margin-top: 20px; margin-top: 20px;
} }
.treeMain { .treeMain {
width: 280px; width: 280px;
border-radius: 4px; border-radius: 4px;
@@ -1660,45 +1692,56 @@ export default {
padding-top: 10px; padding-top: 10px;
padding-left: 5px; padding-left: 5px;
} }
.ant-tree .ant-tree-node-content-wrapper { .ant-tree .ant-tree-node-content-wrapper {
flex-shrink: 0; flex-shrink: 0;
} }
.ant-tree-indent-unit { .ant-tree-indent-unit {
width: 5px; width: 5px;
} }
.ant-tree .ant-tree
.ant-tree-node-content-wrapper-normal.ant-tree-node-selected { .ant-tree-node-content-wrapper-normal.ant-tree-node-selected {
background-color: rgba(255, 255, 255, 0); background-color: rgba(255, 255, 255, 0);
color: #409eff; color: #409eff;
} }
.ant-tree .ant-tree-node-selected { .ant-tree .ant-tree-node-selected {
background-color: rgba(255, 255, 255, 0); background-color: rgba(255, 255, 255, 0);
// color:#409EFF; // color:#409EFF;
} }
// .ant-tree .ant-tree-title{ // .ant-tree .ant-tree-title{
// background-color: pink; // background-color: pink;
// } // }
} }
.tabb { .tabb {
.ant-table-thead > tr > th { .ant-table-thead > tr > th {
background-color: rgba(240, 246, 252, 1); background-color: rgba(240, 246, 252, 1);
color: rgba(0, 0, 0, 0.85); color: rgba(0, 0, 0, 0.85);
} }
.ant-table-tbody > tr > td { .ant-table-tbody > tr > td {
border-bottom: 1px solid #f0f6fc; border-bottom: 1px solid #f0f6fc;
color: rgba(0, 0, 0, 0.65); color: rgba(0, 0, 0, 0.65);
} }
th.h { th.h {
background-color: #eff4fc !important; background-color: #eff4fc !important;
} }
.ant-table-tbody .ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td { > td {
background: rgba(250, 250, 250, 1); background: rgba(250, 250, 250, 1);
} }
.ant-table-selection-column { .ant-table-selection-column {
padding: 0 !important; padding: 0 !important;
} }
// table tr td.ant-table-selection-column { // table tr td.ant-table-selection-column {
// text-align: right; // text-align: right;
// } // }
@@ -1725,26 +1768,31 @@ export default {
} }
} }
} }
.tab2 { .tab2 {
display: flex; display: flex;
align-items: center; align-items: center;
// margin-top: 10px; // margin-top: 10px;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
.nameinp { .nameinp {
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 10px; margin-top: 10px;
.namee { .namee {
color: rgba(0, 0, 0, 0.85); color: rgba(0, 0, 0, 0.85);
font-size: 14px; font-size: 14px;
} }
} }
.t1 { .t1 {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 5px; margin-bottom: 5px;
} }
.btns { .btns {
display: flex; display: flex;
// margin-top: -10px; // margin-top: -10px;
@@ -1761,10 +1809,12 @@ export default {
border-radius: 8px; border-radius: 8px;
border: 1px solid #409eff; border: 1px solid #409eff;
cursor: pointer; cursor: pointer;
.wz { .wz {
margin-left: 10px; margin-left: 10px;
} }
} }
.btn2 { .btn2 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -1777,35 +1827,43 @@ export default {
border-radius: 8px; border-radius: 8px;
cursor: pointer; cursor: pointer;
border: 1px solid #409eff; border: 1px solid #409eff;
.wz { .wz {
margin-left: 10px; margin-left: 10px;
} }
} }
} }
.organize { .organize {
color: rgba(0, 0, 0, 0.85); color: rgba(0, 0, 0, 0.85);
font-size: 14px; font-size: 14px;
white-space: nowrap; white-space: nowrap;
} }
.ant-select-dropdown { .ant-select-dropdown {
min-width: 800px !important; min-width: 800px !important;
} }
.ant-select { .ant-select {
border-radius: 8px !important; border-radius: 8px !important;
// background-color: red; // background-color: red;
} }
.ant-cascader { .ant-cascader {
width: 264px; width: 264px;
height: 40px; height: 40px;
border-radius: 8px !important; border-radius: 8px !important;
.ant-select-selector { .ant-select-selector {
height: 100%; height: 100%;
} }
.ant-select-selection-search-input { .ant-select-selection-search-input {
height: 40px; height: 40px;
} }
} }
} }
.boeTree { .boeTree {
.boeTreeTitle { .boeTreeTitle {
width: 280px; width: 280px;
@@ -1822,6 +1880,7 @@ export default {
margin-bottom: 8px; margin-bottom: 8px;
margin-top: 20px; margin-top: 20px;
} }
.treeMain { .treeMain {
width: 280px; width: 280px;
border-radius: 4px; border-radius: 4px;
@@ -1831,21 +1890,26 @@ export default {
padding-top: 10px; padding-top: 10px;
padding-left: 5px; padding-left: 5px;
} }
.ant-tree .ant-tree-node-content-wrapper { .ant-tree .ant-tree-node-content-wrapper {
flex-shrink: 0; flex-shrink: 0;
} }
.ant-tree-indent-unit { .ant-tree-indent-unit {
width: 5px; width: 5px;
} }
.ant-tree .ant-tree
.ant-tree-node-content-wrapper-normal.ant-tree-node-selected { .ant-tree-node-content-wrapper-normal.ant-tree-node-selected {
background-color: rgba(255, 255, 255, 0); background-color: rgba(255, 255, 255, 0);
color: #409eff; color: #409eff;
} }
.ant-tree .ant-tree-node-selected { .ant-tree .ant-tree-node-selected {
background-color: rgba(255, 255, 255, 0); background-color: rgba(255, 255, 255, 0);
// color:#409EFF; // color:#409EFF;
} }
// .ant-tree-switcher_open+ .ant-tree-checkbox{ // .ant-tree-switcher_open+ .ant-tree-checkbox{
// display: none !important; // display: none !important;
// } // }
@@ -1858,19 +1922,23 @@ export default {
} }
} }
} }
.right { .right {
width: 320px; width: 320px;
flex-shrink: 0; flex-shrink: 0;
overflow-y: auto; overflow-y: auto;
.onerow { .onerow {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-right: 40px; margin-right: 40px;
flex-wrap: wrap; flex-wrap: wrap;
.onleft { .onleft {
display: flex; display: flex;
text-align: center; text-align: center;
.already { .already {
color: rgba(51, 51, 51, 1); color: rgba(51, 51, 51, 1);
font-size: 16px; font-size: 16px;
@@ -1879,17 +1947,20 @@ export default {
white-space: nowrap; white-space: nowrap;
// margin-bottom: 20px; // margin-bottom: 20px;
} }
.count { .count {
color: #388be1; color: #388be1;
font-size: 16px; font-size: 16px;
margin: 0 6px; margin: 0 6px;
} }
.peo { .peo {
color: rgba(51, 51, 51, 1); color: rgba(51, 51, 51, 1);
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
} }
} }
.clbox { .clbox {
margin-left: 30px; margin-left: 30px;
display: flex; display: flex;
@@ -1900,6 +1971,7 @@ export default {
height: 32px; height: 32px;
border-radius: 4px; border-radius: 4px;
background: #409eff; background: #409eff;
.colose { .colose {
width: 16px; width: 16px;
height: 16px; height: 16px;
@@ -1910,12 +1982,14 @@ export default {
background-size: 100%; background-size: 100%;
margin-right: 4px; margin-right: 4px;
} }
.allclear { .allclear {
color: rgba(255, 255, 255, 1); color: rgba(255, 255, 255, 1);
font-size: 14px; font-size: 14px;
} }
} }
} }
.line { .line {
width: 90%; width: 90%;
height: 1px; height: 1px;
@@ -1923,17 +1997,20 @@ export default {
margin-left: 12px; margin-left: 12px;
margin-top: 20px; margin-top: 20px;
} }
.tit { .tit {
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;
margin-top: 12px; margin-top: 12px;
margin-left: 32px; margin-left: 32px;
} }
.selectedsBox { .selectedsBox {
position: relative; position: relative;
// height: 160px; // height: 160px;
overflow: hidden; overflow: hidden;
} }
.selecteds { .selecteds {
display: flex; display: flex;
// flex-wrap:wrap; // flex-wrap:wrap;
@@ -1945,6 +2022,7 @@ export default {
// height: 170px; // height: 170px;
// overflow: hidden; // overflow: hidden;
flex-shrink: 0; flex-shrink: 0;
.chose { .chose {
// width: 64px; // width: 64px;
padding-left: 10px; padding-left: 10px;
@@ -1961,6 +2039,7 @@ export default {
font-size: 12px; font-size: 12px;
position: relative; position: relative;
flex-shrink: 0; flex-shrink: 0;
.ch { .ch {
position: absolute; position: absolute;
width: 18px; width: 18px;
@@ -1973,6 +2052,7 @@ export default {
} }
} }
} }
.btnn { .btnn {
height: 72px; height: 72px;
width: 100%; width: 100%;
@@ -1984,6 +2064,7 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 { .btn1 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -1993,6 +2074,7 @@ export default {
background-color: #fff; background-color: #fff;
cursor: pointer; cursor: pointer;
} }
.btn2 { .btn2 {
cursor: pointer; cursor: pointer;
width: 100px; width: 100px;
@@ -2006,43 +2088,55 @@ export default {
} }
} }
} }
.changetreedropdown { .changetreedropdown {
width: 500px !important; width: 500px !important;
.ant-select-tree-list-scrollbar { .ant-select-tree-list-scrollbar {
width: 5px !important; width: 5px !important;
.ant-select-tree-list-scrollbar-thumb { .ant-select-tree-list-scrollbar-thumb {
background-color: #4ea6ff !important; background-color: #4ea6ff !important;
} }
} }
.ant-select-tree-indent-unit { .ant-select-tree-indent-unit {
width: 7px !important; width: 7px !important;
} }
} }
.changetreedropdownboe { .changetreedropdownboe {
width: 240px !important; width: 240px !important;
border-radius: 5px; border-radius: 5px;
min-height: 600px !important; min-height: 600px !important;
.ant-select-tree-list-scrollbar { .ant-select-tree-list-scrollbar {
width: 5px !important; width: 5px !important;
.ant-select-tree-list-scrollbar-thumb { .ant-select-tree-list-scrollbar-thumb {
background-color: #4ea6ff !important; background-color: #4ea6ff !important;
} }
} }
.ant-select-tree-indent-unit { .ant-select-tree-indent-unit {
width: 7px !important; width: 7px !important;
} }
} }
.confirmAddOrg { .confirmAddOrg {
.ant-modal { .ant-modal {
width: 424px !important; width: 424px !important;
height: 258px !important; height: 258px !important;
.ant-modal-content { .ant-modal-content {
width: 424px !important; width: 424px !important;
height: 258px !important; height: 258px !important;
.ant-modal-body { .ant-modal-body {
width: 424px !important; width: 424px !important;
height: 258px !important; height: 258px !important;
padding: 0 !important; padding: 0 !important;
.delete { .delete {
z-index: 999; z-index: 999;
width: 424px; width: 424px;
@@ -2063,15 +2157,18 @@ export default {
rgba(78, 166, 255, 0) 100% rgba(78, 166, 255, 0) 100%
); );
} }
.del_main { .del_main {
width: 100%; width: 100%;
position: relative; position: relative;
.header { .header {
display: flex; display: flex;
align-items: center; align-items: center;
padding-top: 20px; padding-top: 20px;
padding-left: 26px; padding-left: 26px;
font-size: 16px; font-size: 16px;
.icon { .icon {
width: 16px; width: 16px;
height: 16px; height: 16px;
@@ -2079,6 +2176,7 @@ export default {
background-image: url(@/assets/images/taskpage/gan.png); background-image: url(@/assets/images/taskpage/gan.png);
background-size: 100% 100%; background-size: 100% 100%;
} }
.close_exit { .close_exit {
position: absolute; position: absolute;
right: 42px; right: 42px;
@@ -2089,6 +2187,7 @@ export default {
background-size: 100% 100%; background-size: 100% 100%;
} }
} }
.body { .body {
width: 100%; width: 100%;
margin: 34px auto 56px auto; margin: 34px auto 56px auto;
@@ -2098,6 +2197,7 @@ export default {
flex-direction: column; flex-direction: column;
// background-color: red; // background-color: red;
position: relative; position: relative;
.back { .back {
position: absolute; position: absolute;
top: 30px; top: 30px;
@@ -2106,10 +2206,12 @@ export default {
color: #666666; color: #666666;
} }
} }
.del_btnbox { .del_btnbox {
display: flex; display: flex;
margin: 30px auto; margin: 30px auto;
justify-content: center; justify-content: center;
.del_btn { .del_btn {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -2120,17 +2222,20 @@ export default {
justify-content: center; justify-content: center;
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
.btnText { .btnText {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
line-height: 40px; line-height: 40px;
} }
} }
.btn1 { .btn1 {
border: 1px solid rgba(64, 158, 255, 1); border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff; color: #4ea6ff;
margin-right: 14px; margin-right: 14px;
} }
.btn2 { .btn2 {
background-color: #4ea6ff; background-color: #4ea6ff;
color: #ffffff; color: #ffffff;
@@ -2140,6 +2245,7 @@ export default {
} }
} }
} }
.ant-modal-close-x { .ant-modal-close-x {
display: none; display: none;
} }

View File

@@ -460,11 +460,15 @@
</div> </div>
<div class="time"> <div class="time">
<div class="timetext">开始时间</div> <div class="timetext">开始时间</div>
<div class="timetext">{{ item.startTime!==null?item.startTime:''}}</div> <div class="timetext">
{{ item.startTime !== null ? item.startTime : "" }}
</div>
</div> </div>
<div class="progress"> <div class="progress">
<div class="progresstext"> <div class="progresstext">
{{ item.complete?item.complete:0 }}/{{ item.total?item.total:0 }} {{ item.complete ? item.complete : 0 }}/{{
item.total ? item.total : 0
}}
</div> </div>
<div style="display: flex"> <div style="display: flex">
<a-progress <a-progress
@@ -474,7 +478,7 @@
trailColor="rgba(253, 209, 98, 0.2)" trailColor="rgba(253, 209, 98, 0.2)"
/> />
<span class="progresstext" style="margin-left: 10px" <span class="progresstext" style="margin-left: 10px"
>{{ item.percent?item.percent:0 }}%</span >{{ item.percent ? item.percent : 0 }}%</span
> >
</div> </div>
</div> </div>
@@ -768,7 +772,10 @@
<div class="box"></div> <div class="box"></div>
<div class="onetitle">上传共享文档</div> <div class="onetitle">上传共享文档</div>
<div class="oneedi"> <div class="oneedi">
<a-switch v-model:checked="docChecked" @change="checkedClose"></a-switch> <a-switch
v-model:checked="docChecked"
@change="checkedClose"
></a-switch>
</div> </div>
</div> </div>
<div class="btnbox" style="margin: 20px"> <div class="btnbox" style="margin: 20px">
@@ -1217,6 +1224,15 @@
</div> </div>
</div> </div>
</a-modal> </a-modal>
<!-- 二维码弹窗 -->
<two-dimensional-code
v-model:codevisible="codevisible"
:codeInfo="codeInfo"
index="0"
type="课程二维码"
/>
<!-- 二维码弹窗 -->
</div> </div>
</template> </template>
<script> <script>
@@ -1243,6 +1259,7 @@ import { GetRouterDetail } from "@/api/indexTask";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
import { toDate } from "../../api/method"; import { toDate } from "../../api/method";
import { editRoutered } from "../../api/indexLearningPath"; import { editRoutered } from "../../api/indexLearningPath";
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
export default { export default {
name: "LevelAdd", name: "LevelAdd",
components: { components: {
@@ -1257,6 +1274,7 @@ export default {
FaceManage, FaceManage,
WorkManage, WorkManage,
SeeStu, SeeStu,
TwoDimensionalCode,
}, },
setup() { setup() {
// const routers = useRoute(); // const routers = useRoute();
@@ -1888,7 +1906,7 @@ export default {
const getOverview = () => { const getOverview = () => {
getRouterOverview(state.routerId) getRouterOverview(state.routerId)
.then((res) => { .then((res) => {
console.log(res) console.log(res);
Object.keys(res.data.data.routerInfoOverview).forEach((item) => { Object.keys(res.data.data.routerInfoOverview).forEach((item) => {
levelList.routerInfoOverview[item] = levelList.routerInfoOverview[item] =
res.data.data.routerInfoOverview[item] || 0; res.data.data.routerInfoOverview[item] || 0;
@@ -1911,23 +1929,23 @@ export default {
}; };
// 设置上传图片开关 // 设置上传图片开关
const checkedClose = (data,a) => { const checkedClose = (data, a) => {
console.log(data,a) console.log(data, a);
state.docChecked = data state.docChecked = data;
console.log({ console.log({
routerId: state.routerId, routerId: state.routerId,
status: state.action, status: state.action,
attachSwitch: data ? 1: -1 attachSwitch: data ? 1 : -1,
}) });
// 更新开关状态 // 更新开关状态
editRoutered({ editRoutered({
attach:JSON.stringify(state.fileList), attach: JSON.stringify(state.fileList),
name: state.styTitle, name: state.styTitle,
picUrl: state.picUrl, picUrl: state.picUrl,
remark: state.remark, remark: state.remark,
routerId: state.routerId, routerId: state.routerId,
status: state.action, status: state.action,
attachSwitch: data ? 1: -1 attachSwitch: data ? 1 : -1,
}) })
.then((res) => { .then((res) => {
console.log(res); console.log(res);
@@ -1935,16 +1953,16 @@ export default {
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
}); });
};
}
// 获取路径列表 // 获取路径列表
const myGetRouterDetail = () => { const myGetRouterDetail = () => {
GetRouterDetail(state.routerId) GetRouterDetail(state.routerId)
.then((res) => { .then((res) => {
console.log('router-list',res) console.log("router-list", res);
state.fileList = JSON.parse(res.data.data.routerInfo.attach) state.fileList = JSON.parse(res.data.data.routerInfo.attach);
state.docChecked = res.data.data.routerInfo.attachSwitch == 1?true:false state.docChecked =
res.data.data.routerInfo.attachSwitch == 1 ? true : false;
if (res.data.data.routerInfo.status == 1) { if (res.data.data.routerInfo.status == 1) {
state.nodata = false; state.nodata = false;
} }
@@ -1990,7 +2008,7 @@ export default {
remark: state.remark, remark: state.remark,
routerId: state.routerId, routerId: state.routerId,
status: state.action, status: state.action,
attachSwitch: state.docChecked?1:-1 attachSwitch: state.docChecked ? 1 : -1,
}) })
.then((res) => { .then((res) => {
console.log(res); console.log(res);
@@ -2213,7 +2231,7 @@ export default {
deleteStu, deleteStu,
totask, totask,
tostudent, tostudent,
checkedClose checkedClose,
}; };
}, },
}; };

View File

@@ -928,34 +928,32 @@ export default defineComponent({
api api
.templateDetail(localStorage.getItem("projectTemplateId")) .templateDetail(localStorage.getItem("projectTemplateId"))
.then((res) => { .then((res) => {
console.log('get model list ----->',res, res.data.data.stageList)
state.taskSyllabus = []; state.taskSyllabus = [];
console.log(res); console.log(res);
state.projectInfo.name = res.data.data.projectTemplateInfo.name; state.projectInfo.name = res.data.data.projectTemplateInfo.name;
state.projectInfo.beginTime = state.projectInfo.beginTime = res.data.data.projectTemplateInfo.beginTime;
res.data.data.projectTemplateInfo.beginTime;
state.projectInfo.endTime = res.data.data.projectTemplateInfo.endTime; state.projectInfo.endTime = res.data.data.projectTemplateInfo.endTime;
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager; state.projectInfo.manager = res.data.data.projectTemplateInfo.manager;
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice; state.projectInfo.notice = res.data.data.projectTemplateInfo.notice;
state.projectInfo.sourceBelongId = state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId;
res.data.data.projectTemplateInfo.sourceBelongId; state.projectInfo.managerId = res.data.data.projectTemplateInfo.managerId;
state.projectInfo.managerId = state.projectInfo.remark = res.data.data.projectTemplateInfo.remark;
res.data.data.projectTemplateInfo.managerId; state.projectInfo.courseSyncFlag = res.data.data.projectTemplateInfo.courseSyncFlag;
state.projectInfo.remark = res.data.data.stageList.remark;
state.projectInfo.courseSyncFlag =
res.data.data.projectTemplateInfo.courseSyncFlag;
state.projectInfo.level = res.data.data.projectTemplateInfo.level; state.projectInfo.level = res.data.data.projectTemplateInfo.level;
state.projectInfo.systemId = state.projectInfo.systemId = res.data.data.projectTemplateInfo.systemId;
res.data.data.projectTemplateInfo.systemId;
state.projectInfo.boeFlag = res.data.data.projectTemplateInfo.boeFlag; state.projectInfo.boeFlag = res.data.data.projectTemplateInfo.boeFlag;
state.projectInfo.noticeFlag = state.projectInfo.noticeFlag = res.data.data.projectTemplateInfo.noticeFlag;
res.data.data.projectTemplateInfo.noticeFlag;
state.projectInfo.remark = res.data.data.projectTemplateInfo.remark; state.projectInfo.remark = res.data.data.projectTemplateInfo.remark;
state.projectInfo.status = res.data.data.projectTemplateInfo.status; state.projectInfo.status = res.data.data.projectTemplateInfo.status;
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl; state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl;
state.projectInfo.attach =res.res.data.data.projectTemplateInfo.attach; state.projectInfo.attach = res.data.data.projectTemplateInfo.attach;
let data = res.data.data.stageList; let data = res.data.data.stageList;
console.log("data=====", data); console.log("data=====", data);
for (let i in data) { for (let i in data) {
console.log('what ------ > ', i,data)
state.taskSyllabus.push({ text: data[i].name, children: [] }); state.taskSyllabus.push({ text: data[i].name, children: [] });
for (let j in data[i].taskList) { for (let j in data[i].taskList) {
state.taskSyllabus[i].children.push({ state.taskSyllabus[i].children.push({

View File

@@ -44,7 +44,6 @@
placeholder="请选择状态" placeholder="请选择状态"
:options="sProjectStateList" :options="sProjectStateList"
allowClear allowClear
showSearch
></a-select> ></a-select>
</div> </div>
<div class="select"> <div class="select">
@@ -1526,6 +1525,7 @@ export default {
onClick={() => { onClick={() => {
router.push({ router.push({
path: "/taskpage", path: "/taskpage",
query: {projectId: value.record.projectId}
}); });
storage.set("projectId", value.record.projectId); storage.set("projectId", value.record.projectId);
}} }}

View File

@@ -872,11 +872,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="closeCancel">
<div class="btnText" @click="delete_exit">取消</div> <div class="btnText" >取消</div>
</div> </div>
<div class="del_btn btn2"> <div class="del_btn btn2" @click="showModal">
<div class="btnText" @click="showModal">确定</div> <div class="btnText" >确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -902,11 +902,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="closeDelete">
<div class="btnText" @click="delete_exit">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2"> <div class="del_btn btn2" @click="showModal1">
<div class="btnText" @click="showModal1">确定</div> <div class="btnText" >确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -931,11 +931,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="closeDeAll">
<div class="btnText" @click="closeDeAll">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2"> <div class="del_btn btn2" @click="deleteTaskAll">
<div class="btnText" @click="deleteTaskAll">确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -1027,7 +1027,7 @@
</template> </template>
<script> <script>
import {reactive, toRefs, onMounted, onUnmounted, onUpdated} from "vue"; import {reactive, toRefs, onMounted, onUnmounted, onUpdated, watch} from "vue";
import AddOnline from "../../components/drawers/AddOnline.vue"; import AddOnline from "../../components/drawers/AddOnline.vue";
import AddFaceteach from "../../components/drawers/AddFaceteach.vue"; import AddFaceteach from "../../components/drawers/AddFaceteach.vue";
import AddCase from "../../components/drawers/AddCase.vue"; import AddCase from "../../components/drawers/AddCase.vue";
@@ -1048,7 +1048,7 @@ import draggable from "vuedraggable";
import {storage} from "../../api/storage"; import {storage} from "../../api/storage";
// import UnlockMode from "../../components/drawers/UnlockMode.vue"; // import UnlockMode from "../../components/drawers/UnlockMode.vue";
// import * as api1 from "../../api/index1"; // import * as api1 from "../../api/index1";
import {useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
export default { export default {
name: "TaskAdd", name: "TaskAdd",
@@ -1070,10 +1070,9 @@ export default {
}, },
setup() { setup() {
const router = useRouter(); const router = useRouter();
const route = useRoute();
const state = reactive({ const state = reactive({
projectId: storage.get("projectId") projectId: route.query.projectId,
? JSON.parse(storage.get("projectId"))
: null,
chooseStageId: null, chooseStageId: null,
removeStageId: null, removeStageId: null,
edit: false, edit: false,
@@ -1160,6 +1159,10 @@ export default {
console.log("visible", bool); console.log("visible", bool);
}; };
watch(route, () => {
console.log(route)
})
// 把数据放到state里 // 把数据放到state里
const getTableData = (tableData) => { const getTableData = (tableData) => {
let data = tableData; let data = tableData;
@@ -1360,90 +1363,86 @@ export default {
//获取任务列表 //获取任务列表
const getTask = async () => { const getTask = async () => {
// console.log("state.projectId", state.projectId);
let obj = { let obj = {
projectId: state.projectId, projectId: state.projectId,
// projectId: 28,
}; };
await api await api
.getTask(obj) .getTask(obj)
.then((res) => { .then((res) => {
if (res.status == 200) {
console.log("22222", res.data.data.stageList); console.log("22222", res.data.data.stageList);
// console.log("22222", res.data.data.stageList);
state.projectTitle = res.data.data.projectInfo.name; state.projectTitle = res.data.data.projectInfo.name;
state.picUrl = res.data.data.projectInfo.picUrl; state.picUrl = res.data.data.projectInfo.picUrl;
state.stageList = res.data.data.stageList; state.stageList = res.data.data.stageList;
let leng = res.data.data.stageList.length;
if (leng > 0) {
let stage = localStorage.getItem("stageId") ? localStorage.getItem("stageId") : null;
// console.log("stage",Object.prototype.toString.call(stage))
getStageData(res.data.data.stageList); getStageData(res.data.data.stageList);
if (stage != null) { updateStageChoosd()
console.log(stage); // let leng = res.data.data.stageList.length;
let stageList = res.data.data.stageList; //阶段数组 // if (leng > 0) {
let result = stageList.find((item) => item.stageId == stage); // let stage = localStorage.getItem("stageId") ? localStorage.getItem("stageId") : null;
console.log("又找到了", result); //
if (result != null) { // // console.log("stage",Object.prototype.toString.call(stage))
getTableData(result.taskList); // if (stage != null) {
} else { // console.log(stage);
//没有选中的阶段时,获取全部的任务 // let stageList = res.data.data.stageList; //阶段数组
console.log(stage); //
let stageList = res.data.data.stageList; //阶段数组 //
if (stageList != null) { //
let taskListAll; // let result = stageList.find((item) => item.stageId == stage);
stageList.forEach((item) => { // console.log("又找到了", result);
taskListAll = [...item.taskList]; // if (result != null) {
}); // getTableData(result.taskList);
console.log("taskListAll", taskListAll); // } else {
getTableData(taskListAll); // //没有选中的阶段时,获取全部的任务
} // console.log(stage);
} // let stageList = res.data.data.stageList; //阶段数组
} else { // if (stageList != null) {
console.log(stage); // let taskListAll;
let stageList = res.data.data.stageList; //阶段数组 // stageList.forEach((item) => {
if (stageList != null) { // taskListAll = [...item.taskList];
let taskListAll;
stageList.forEach((item) => {
taskListAll = [...item.taskList];
});
console.log("taskListAll", taskListAll);
getTableData(taskListAll);
}
}
// 每次都获取了第一条taskList
// let arr = res.data.data.stageList[0].taskList;
// console.log("任务列表", stage, arr);
// getTableData(arr);
}
// //获取阶段列表
let stagearr = res.data.data.stageList;
// let arrlist = state.curLevel;
console.log(stagearr, 111111);
if (stagearr.length > 0) {
getStageData(stagearr);
// stagearr.map((value) => {
// console.log(value);
// // arrlist.push(value);
// }); // });
} // console.log("taskListAll", taskListAll);
//给阶段id赋初始值 // getTableData(taskListAll);
let stageid = localStorage.getItem("stageId") // }
? localStorage.getItem("stageId") // }
: null; // } else {
if (stageid !== "null") { // console.log(stage);
state.chooseStageId = stageid; // let stageList = res.data.data.stageList; //阶段数组
} else { // if (stageList != null) {
state.chooseStageId = leng > 0 ? stagearr[0].stageId : null; // let taskListAll;
} // stageList.forEach((item) => {
let final = state.level.find((item) => item.id == state.chooseStageId); // taskListAll = [...item.taskList];
getTableData(final.taskList); // });
} // console.log("taskListAll", taskListAll);
// getTableData(taskListAll);
// }
// }
// // 每次都获取了第一条taskList
// // let arr = res.data.data.stageList[0].taskList;
// // console.log("任务列表", stage, arr);
// // getTableData(arr);
// }
// // //获取阶段列表
// let stagearr = res.data.data.stageList;
// // let arrlist = state.curLevel;
// console.log(stagearr, 111111);
// if (stagearr.length > 0) {
// getStageData(stagearr);
// // stagearr.map((value) => {
// // console.log(value);
// // // arrlist.push(value);
// // });
// }
// //给阶段id赋初始值
// let stageid = localStorage.getItem("stageId")
// ? localStorage.getItem("stageId")
// : null;
// if (stageid !== "null") {
// state.chooseStageId = stageid;
// } else {
// state.chooseStageId = leng > 0 ? stagearr[0].stageId : null;
// }
// let final = state.level.find((item) => item.id == state.chooseStageId);
// getTableData(final.taskList);
}) })
.catch((err) => {
console.log("获取任务列表失败", err);
});
}; };
//获取修改、删除id投票) //获取修改、删除id投票)
@@ -1459,18 +1458,28 @@ export default {
}; };
//删除任务 //删除任务
const deleteTask = () => { const deleteTask = async () => {
let obj = {projectTaskIds: state.deleteID}; await api.deleteTask({projectTaskIds: state.deleteID})
api //删除后更新索引
.deleteTask(obj)
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
});
}; };
function updateStageChoosd() {
console.log('updateStageChoosd')
console.log(state.chooseStageId)
if (state.chooseStageId && state.stageList.find(e => e.stageId == state.chooseStageId)) {
getTableData(state.stageList.find(e => e.stageId == state.chooseStageId)?.taskList);
return
}
state.chooseStageId = ''
const arr = state.stageList.filter(e => e.name);
arr && arr.length && (state.chooseStageId = arr[0].stageId);
if (!state.chooseStageId) {
getTableData(state.stageList[0].taskList)
return
}
getTableData(state.stageList.find(e => e.stageId == state.chooseStageId)?.taskList);
}
const showChangeModal = () => { const showChangeModal = () => {
if (state.selectRow.length == 0) { if (state.selectRow.length == 0) {
message.destroy(); message.destroy();
@@ -1771,7 +1780,7 @@ export default {
state.selectAll = 0; //0未选择1全选2部分选择 state.selectAll = 0; //0未选择1全选2部分选择
console.log("state.level", id, state.level); console.log("state.level", id, state.level);
state.chooseStageId = id; state.chooseStageId = id;
let final = state.level.find((item) => item.id === id); let final = state.level.find((item) => item.id == id);
getTableData(final.taskList); getTableData(final.taskList);
}; };

View File

@@ -323,8 +323,10 @@
<!-- <button class="btn" @click="showFaceIn" v-if="morFaceT"> <!-- <button class="btn" @click="showFaceIn" v-if="morFaceT">
批量面授报名 批量面授报名
</button> --> </button> -->
<router-link to="/taskadd"> <router-link
<button to="/taskadd" class="edit"> :to="{ path: `/taskadd`, query: { projectId: projectId } }"
>
<button class="edit">
<img <img
class="editimg" class="editimg"
src="../../assets/images/projectadd/edit.png" src="../../assets/images/projectadd/edit.png"
@@ -367,9 +369,10 @@
/> />
<div></div> <div></div>
</template> </template>
<template v-for="(value, index) in taskSyllabus">
<a-collapse-panel <a-collapse-panel
v-for="(value, index) in taskSyllabus"
:key="index" :key="index"
v-if="value.name"
:header="value.name" :header="value.name"
> >
<div <div
@@ -437,9 +440,7 @@
<div class="time"> <div class="time">
<div class="timetext">开始时间</div> <div class="timetext">开始时间</div>
<div class="timetext"> <div class="timetext">
{{ {{ item.startTime !== null ? item.startTime : "" }}
item.startTime !== null ? item.startTime: ''
}}
</div> </div>
</div> </div>
<div class="progress"> <div class="progress">
@@ -532,10 +533,11 @@
</div> </div>
</div> </div>
</a-collapse-panel> </a-collapse-panel>
</template>
</a-collapse> </a-collapse>
<!-- 无数据创建任务 v-if="taskSyllabus.length == 0"--> <!-- 无数据创建任务 v-if="taskSyllabus.length == 0"-->
<router-link <router-link
to="/taskadd" :to="{ path: `/taskadd`, query: { projectId: projectId } }"
class="taskbox" class="taskbox"
style=" style="
background: linear-gradient(180deg, #ddeaff, #f0f8fe); background: linear-gradient(180deg, #ddeaff, #f0f8fe);
@@ -564,7 +566,10 @@
class="taskbox" class="taskbox"
@click=" @click="
() => { () => {
routered.push({ path: '/taskadd' }); routered.push({
path: `/taskadd`,
query: { projectId: projectId },
});
} }
" "
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)" style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
@@ -776,10 +781,11 @@
<img src="../../assets/images/courseManage/add0.png" /> <img src="../../assets/images/courseManage/add0.png" />
<span class="btn1text">创建小组</span> <span class="btn1text">创建小组</span>
</div> </div>
<div class="btn2" @click="showSubset"> <!-- 2022-12-2注释 后面放开 -->
<!-- <div class="btn2" @click="showSubset">
<img src="../../assets/images/courseManage/reset2.png" /> <img src="../../assets/images/courseManage/reset2.png" />
<span class="btn2text">随机分组</span> <span class="btn2text">随机分组</span>
</div> </div> -->
</div> </div>
<!-- 小组列表 --> <!-- 小组列表 -->
<div class="groupmain"> <div class="groupmain">
@@ -1795,11 +1801,10 @@ export default {
}, },
setup() { setup() {
const store = useStore(); const store = useStore();
const route = useRoute();
const state = reactive({ const state = reactive({
loading: false, loading: false,
projectId: storage.get("projectId") projectId: route.query.projectId,
? JSON.parse(storage.get("projectId"))
: null,
isbj: storage.get("isbj") ? JSON.parse(storage.get("isbj")) : null, isbj: storage.get("isbj") ? JSON.parse(storage.get("isbj")) : null,
// pN: storage.get("pN") ? JSON.parse(storage.get("pN")) : null, // pN: storage.get("pN") ? JSON.parse(storage.get("pN")) : null,
pN: storage.get("pN"), pN: storage.get("pN"),
@@ -2457,7 +2462,7 @@ export default {
//任务大纲渲染 //任务大纲渲染
const getTaskList = () => { const getTaskList = () => {
let objtl = { let objtl = {
projectId: storage.get("projectId"), projectId: state.projectId,
}; };
apitl apitl
.getProjectDetail(objtl) .getProjectDetail(objtl)
@@ -3210,6 +3215,7 @@ export default {
}; };
//把小组列表信息放到state里 //把小组列表信息放到state里
const setGroupList = (tableData) => { const setGroupList = (tableData) => {
console.log("tableDatatableDatatableData", tableData);
let data = tableData; let data = tableData;
let array = []; let array = [];
data.map((value) => { data.map((value) => {
@@ -3222,7 +3228,7 @@ export default {
source: value.source == 1 ? "指定添加" : "随机分组", source: value.source == 1 ? "指定添加" : "随机分组",
completeTaskCnt: value.completeTaskCnt, //完成任务数 completeTaskCnt: value.completeTaskCnt, //完成任务数
totalTaskCnt: value.totalTaskCnt, //累计任务数 totalTaskCnt: value.totalTaskCnt, //累计任务数
completeRatio: value.completeRatio, //完成比例 completeRatio: value.completeRatio ? value.completeRatio : 0, //完成比例
}; };
array.push(obj); array.push(obj);
}); });
@@ -3321,6 +3327,7 @@ export default {
projectId: state.projectId, projectId: state.projectId,
}).then((res) => { }).then((res) => {
console.log("get task", res.data.data); console.log("get task", res.data.data);
if (res.data.code === 200) {
let info = res.data.data.projectInfo; let info = res.data.data.projectInfo;
// let start = toDate(info.beginTime / 1000, "Y-M-D h:m"); // let start = toDate(info.beginTime / 1000, "Y-M-D h:m");
let start = info.beginTime; let start = info.beginTime;
@@ -3371,6 +3378,7 @@ export default {
state.fileList = JSON.parse(luj); state.fileList = JSON.parse(luj);
// state.fileList = luj // state.fileList = luj
} }
}
}); });
}; };
//获取小组列表 //获取小组列表
@@ -3559,6 +3567,7 @@ export default {
} }
}; };
const reget = () => { const reget = () => {
console.log("state.projectId", state.projectId);
getTask({ getTask({
projectId: state.projectId, projectId: state.projectId,
}).then((res) => { }).then((res) => {