|
@@ -52,17 +52,13 @@
|
|
|
<el-tab-pane label="甘特图" name="2" />
|
|
|
</el-tabs>
|
|
|
<div class="detail-info">
|
|
|
- <div v-show="activeSchedule === '1'" class="member-list">
|
|
|
- <el-checkbox v-model="checkAllMember" :indeterminate="isIndeterminate" style="margin: 0 20px 0 5px" @change="checkAllChange">全选</el-checkbox>
|
|
|
- <el-checkbox-group v-model="checkedMembers" @change="membersChange">
|
|
|
- <el-checkbox v-for="item in memberList" :key="item.idap" :label="item.idap">
|
|
|
- <div class="check-point">
|
|
|
- {{ item.name }}
|
|
|
- <div class="point" :style="{'background-color': mapMemberColor.get(item.idap).bgColor}" />
|
|
|
- </div>
|
|
|
- </el-checkbox>
|
|
|
- </el-checkbox-group>
|
|
|
- </div>
|
|
|
+ <search-section
|
|
|
+ v-show="activeSchedule === '1'"
|
|
|
+ :value.sync="filtrate"
|
|
|
+ :search-form="searchForm"
|
|
|
+ :member-color.sync="mapMemberColor"
|
|
|
+ @change="queryTeamWorkListByTime(calendarView)"
|
|
|
+ />
|
|
|
<MyFullCalendar
|
|
|
v-show="activeSchedule === '1'"
|
|
|
:events="calendarEvents"
|
|
@@ -192,7 +188,6 @@ import {
|
|
|
queryTeamInfoList,
|
|
|
queryTeamWorkListByTime,
|
|
|
deleteSelfSchedule,
|
|
|
- queryTeamMember,
|
|
|
getTeamRequireSummary,
|
|
|
getTeamRequireDisData,
|
|
|
getTeamTaskSummary,
|
|
@@ -212,6 +207,7 @@ import needsList from '@/views/workbench/team/components/needsList'
|
|
|
import taskList from '@/views/workbench/team/components/taskList'
|
|
|
import bugTableList from '@/views/workbench/bugTableList.vue'
|
|
|
import statisticsSection from '@/views/workbench/components/statisticsSection'
|
|
|
+import searchSection from '@/views/workbench/components/searchSection'
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
@@ -224,7 +220,8 @@ export default {
|
|
|
projectList,
|
|
|
needsList,
|
|
|
taskList,
|
|
|
- statisticsSection
|
|
|
+ statisticsSection,
|
|
|
+ searchSection
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -240,10 +237,10 @@ export default {
|
|
|
},
|
|
|
teamName: '团队', // 团队名字
|
|
|
bizName: '业务线', // 业务线名字
|
|
|
- memberList: [], // 团队成员列表
|
|
|
- checkAllMember: false, // 选择全部成员
|
|
|
- checkedMembers: [], // 被选中的成员列表
|
|
|
- isIndeterminate: false,
|
|
|
+ filtrate: {// 筛选区域
|
|
|
+ checkedMembers: [] // 被选中的成员列表
|
|
|
+ },
|
|
|
+ mapMemberColor: new Map(), // 人员对应颜色表
|
|
|
calendarEvents: [// 日程图标数据
|
|
|
{
|
|
|
title: 'Event Now',
|
|
@@ -267,13 +264,6 @@ export default {
|
|
|
DialogTitle: '新建排期', // 排期弹框标题
|
|
|
isDelete: false, // 删除排期操作
|
|
|
visibleSchedule: false, // 排期任务弹框
|
|
|
- colorList: [
|
|
|
- 'rgba(64,127,232,1)', 'rgba(11,160,188,1)', 'rgba(28,188,126,1)', 'rgba(235,172,0,1)', 'rgba(132,100,247,1)',
|
|
|
- 'rgba(73,92,197,1)', 'rgba(193,67,96,1)', 'rgba(211,87,35,1)', 'rgba(40,28,149,1)', 'rgba(85,138,43,1)',
|
|
|
- 'rgba(67,17,59,1)', 'rgba(221,57,222,1)', 'rgba(149,114,109,1)', 'rgba(202,50,31,1)', 'rgba(226,119,141,1)',
|
|
|
- 'rgba(240,164,126,1)', 'rgba(59,64,72,1)', 'rgba(115,159,158,1)', 'rgba(122,209,67,1)', 'rgba(152,40,49,1)'
|
|
|
- ],
|
|
|
- mapMemberColor: new Map(), // 人员对应颜色表
|
|
|
tabTips: { // 顶部tab红点提示
|
|
|
require: false,
|
|
|
task: false,
|
|
@@ -314,7 +304,6 @@ export default {
|
|
|
mounted() {
|
|
|
this.settingGetBizList()
|
|
|
this.queryTeamInfoList()
|
|
|
- this.queryTeamMember()
|
|
|
this.teamReminding()
|
|
|
},
|
|
|
methods: {
|
|
@@ -348,46 +337,6 @@ export default {
|
|
|
this.searchEnum.teams.unshift({ teamId: null, teamName: '全部' })
|
|
|
}
|
|
|
},
|
|
|
- async queryTeamMember() { // 获取团队人员
|
|
|
- const params = this.searchForm.teamId ? { teamId: this.searchForm.teamId } : {}
|
|
|
- const res = await queryTeamMember(params)
|
|
|
- if (res.code === 200) {
|
|
|
- this.memberList = this.handleMember(res.data)
|
|
|
- this.checkedMembers = this.memberList.map(item => item.idap)
|
|
|
- this.checkAllMember = true
|
|
|
- this.queryTeamWorkListByTime(this.calendarView)
|
|
|
- this.colorHandler(this.memberList)
|
|
|
- }
|
|
|
- },
|
|
|
- colorHandler(arr) { // 成员对应颜色处理
|
|
|
- this.mapMemberColor.clear()
|
|
|
- arr.map((item, index) => {
|
|
|
- this.mapMemberColor.set(item.idap, {
|
|
|
- color: '#FFFFFF',
|
|
|
- bgColor: this.colorList[index % 20]
|
|
|
- })
|
|
|
- })
|
|
|
- },
|
|
|
- handleMember(arr) {
|
|
|
- const newMap = new Map()
|
|
|
- return arr.filter(item => {
|
|
|
- if (!newMap.has(item.idap)) {
|
|
|
- newMap.set(item.idap, item)
|
|
|
- return item
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- checkAllChange(val) { // 成员全部选择
|
|
|
- this.checkedMembers = val ? this.memberList.map(item => item.idap) : []
|
|
|
- this.isIndeterminate = false
|
|
|
- this.queryTeamWorkListByTime(this.calendarView)
|
|
|
- },
|
|
|
- membersChange(value) { // 成员变动
|
|
|
- const checkedCount = value.length
|
|
|
- this.checkAllMember = checkedCount === this.memberList.length
|
|
|
- this.isIndeterminate = checkedCount > 0 && checkedCount < this.memberList.length
|
|
|
- this.queryTeamWorkListByTime(this.calendarView)
|
|
|
- },
|
|
|
handleTeams(e) { // 团队变动
|
|
|
this.searchForm.teamId = e
|
|
|
const res = this.searchEnum.teams.find(item => item.teamId === e)
|
|
@@ -494,7 +443,7 @@ export default {
|
|
|
teamSearchInfo: this.searchForm,
|
|
|
searchScheduleInfo: { origin: this.origin }
|
|
|
}
|
|
|
- params.peoples = this.checkedMembers
|
|
|
+ params.peoples = this.filtrate.checkedMembers
|
|
|
const res = await queryTeamWorkListByTime(params)
|
|
|
if (res.code === 200) {
|
|
|
this.calendarEvents = res.data.map((item, index) => {
|
|
@@ -608,9 +557,6 @@ export default {
|
|
|
.detail-info {
|
|
|
padding: 0 30px 20px 30px;
|
|
|
}
|
|
|
- .member-list {
|
|
|
- display: flex;
|
|
|
- }
|
|
|
.tabs-change {
|
|
|
margin: 10px 35px 0 35px;
|
|
|
}
|
|
@@ -619,16 +565,6 @@ export default {
|
|
|
color: #333B4A;
|
|
|
font-weight: 600;
|
|
|
}
|
|
|
-.check-point {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- .point {
|
|
|
- margin-left: 5px;
|
|
|
- height: 6px;
|
|
|
- width: 6px;
|
|
|
- border-radius: 50%;
|
|
|
- }
|
|
|
-}
|
|
|
>>>.el-dropdown-menu__item {
|
|
|
max-width: 20vw;
|
|
|
overflow: scroll;
|