Bläddra i källkod

个人工作台嵌入筛选

qinzhipeng_v@didiglobal.com 4 år sedan
förälder
incheckning
7a48a5f070
2 ändrade filer med 64 tillägg och 17 borttagningar
  1. 49 15
      src/views/workbench/components/searchSection.vue
  2. 15 2
      src/views/workbench/person/index.vue

+ 49 - 15
src/views/workbench/components/searchSection.vue

@@ -1,8 +1,8 @@
 <template>
   <div>
-    <div class="member-list">
+    <div v-if="filtrate.checkedMembers" class="member-list">
       <div class="teamMember">团队成员:</div>
-      <el-checkbox v-model="checkAllMember" :indeterminate="isIndeterminate" style="margin: 0 20px 0 0" @change="checkAllChange">全选</el-checkbox>
+      <el-checkbox v-model="checkAllMember" :indeterminate="isIndeterminate" class="fromName" @change="checkAllChange">全选</el-checkbox>
       <el-checkbox-group v-model="filtrate.checkedMembers" @change="membersChange">
         <el-checkbox v-for="item in memberList" :key="item.idap" :label="item.idap">
           <div class="check-point">
@@ -16,14 +16,14 @@
     <div class="member-list">
       <div class="teamMember">类型:</div>
       <el-checkbox-group v-model="checkList" @change="getCheckList">
-        <el-checkbox label="0">排期任务</el-checkbox>
-        <el-checkbox label="1">日程</el-checkbox>
+        <el-checkbox label="0" style="font-weight: 400;">排期任务</el-checkbox>
+        <el-checkbox label="1" style="font-weight: 400;">日程</el-checkbox>
       </el-checkbox-group>
     </div>
 
     <div v-if="ScheduleAndSchedule[0] === '0' || ScheduleAndSchedule[1] === '0'" class="member-list">
       <div class="teamMember">排期类型:</div>
-      <el-checkbox v-model="checkAllMember_1" :indeterminate="isIndeterminate_1" style="margin: 0 20px 0 0" @change="checkAllScheduling">全选 </el-checkbox>
+      <el-checkbox v-model="checkAllMember_1" :indeterminate="isIndeterminate_1" class="fromName" @change="checkAllScheduling">全选 </el-checkbox>
       <el-checkbox-group v-model="scheduling" @change="membersChange_1">
         <el-checkbox v-for="item in taskScheduleEvent" :key="item.code" :label="item.code">
           <div class="check-point">
@@ -35,7 +35,7 @@
 
     <div v-if="ScheduleAndSchedule[0] === '1' || ScheduleAndSchedule[1] === '1'" class="member-list">
       <div class="teamMember">日程类型:</div>
-      <el-checkbox v-model="checkAllMember_2" :indeterminate="isIndeterminate_2" style="margin: 0 20px 0 0" @change="checkAllSchedule">全选 </el-checkbox>
+      <el-checkbox v-model="checkAllMember_2" :indeterminate="isIndeterminate_2" class="fromName" @change="checkAllSchedule">全选 </el-checkbox>
       <el-checkbox-group v-model="schedule" @change="membersChange_2">
         <el-checkbox v-for="(item, index) in selfScheduleType" :key="index" :label="item.code">
           <div class="check-point">{{ item.msg }}</div>
@@ -56,7 +56,7 @@ export default {
     searchForm: {
       type: Object,
       default: () => {},
-      required: true
+      required: false
     },
     memberColor: {
       type: Map,
@@ -94,6 +94,7 @@ export default {
   watch: {
     value: {
       handler(newV) {
+        console.log(newV, 'kasn')
         this.filtrate = newV
       },
       immediate: true,
@@ -105,13 +106,15 @@ export default {
   },
   methods: {
     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.filtrate.checkedMembers = this.memberList.map(item => item.idap)
-        this.checkAllMember = true
-        this.colorHandler(this.memberList)
+      if (this.filtrate.checkedMembers) {
+        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.filtrate.checkedMembers = this.memberList.map(item => item.idap)
+          this.checkAllMember = true
+          this.colorHandler(this.memberList)
+        }
       }
       const res_1 = await showWorkbenchEnum()
       if (res_1.code === 200) {
@@ -152,7 +155,22 @@ export default {
     },
     getCheckList(val) { // 排期类型与日程的转换
       this.ScheduleAndSchedule = val
-      // this.ScheduleAndSchedule[0] === '0' || this.ScheduleAndSchedule[1] === '0' ?  this.scheduling = this.taskScheduleEvent.map(item => item.code) : []
+      if (this.ScheduleAndSchedule[0] === '0' || this.ScheduleAndSchedule[1] === '0') {
+        this.scheduling = this.taskScheduleEvent.map(item => item.code)
+        this.checkAllMember_1 = true
+        this.filtrate.scheduleTypeList = this.scheduling
+      } else {
+        this.filtrate.scheduleTypeList = []
+      }
+      if (this.ScheduleAndSchedule[0] === '1' || this.ScheduleAndSchedule[1] === '1') {
+        this.schedule = this.selfScheduleType.map(item => item.code)
+        this.checkAllMember_2 = true
+        this.filtrate.selfScheduleTypeList = this.schedule
+      } else {
+        this.filtrate.selfScheduleTypeList = []
+      }
+      this.filtrate.origin = this.ScheduleAndSchedule
+      this.updateParent()
     },
     checkAllChange(val) { // 成员全部选择
       this.filtrate.checkedMembers = val ? this.memberList.map(item => item.idap) : []
@@ -160,6 +178,7 @@ export default {
       this.updateParent()
     },
     checkAllScheduling(val) { // 全部排期选择
+      console.log(val)
       this.scheduling = val ? this.taskScheduleEvent.map(item => item.code) : []
       this.filtrate.scheduleTypeList = this.scheduling
       this.isIndeterminate_1 = false
@@ -202,14 +221,29 @@ export default {
 .member-list {
   display: flex;
   .teamMember {
+    font-size: 14px;
+    font-family: Microsoft Sans Serif;
+    font-weight: 400;
+    line-height: 22px;
+    color: #333333;
+    opacity: 1;
     width: 100px;
     margin: 0 20px 20px 5px;
 }
 }
 
+.fromName {
+  margin: 0 20px 0 0;
+  font-weight: 400;
+}
+
 .check-point {
   display: flex;
   align-items: center;
+  font-size: 14px;
+  font-family: PingFangSC-Regular;
+  line-height: 22px;
+  opacity: 1;
   .point {
     margin-left: 5px;
     height: 6px;

+ 15 - 2
src/views/workbench/person/index.vue

@@ -131,6 +131,12 @@
             <el-tab-pane label="日历视图" name="1" />
             <el-tab-pane label="列表视图" name="2" />
           </el-tabs>
+          <search-section
+            v-show="activeSchedule === '1'"
+            :value.sync="filtrate"
+            style="margin: 0 30px;"
+            @change="queryWorkListByTime(calendarView)"
+          />
           <MyFullCalendar
             v-show="activeSchedule === '1'"
             :events="calendarEvents"
@@ -219,6 +225,7 @@ import taskList from '@/views/workbench/team/components/taskList'
 import bugTableList from '@/views/workbench/bugTableList.vue'
 import statisticsSection from '@/views/workbench/components/statisticsSection'
 import createDialog from '@/views/workbench/components/createDialog'
+import searchSection from '@/views/workbench/components/searchSection'
 import websocket from '@/views/workbench/mixins/websocket'
 import { getAllTime } from '@/utils/global.js'
 
@@ -234,7 +241,8 @@ export default {
     needsList,
     taskList,
     statisticsSection,
-    createDialog
+    createDialog,
+    searchSection
   },
   provide() {
     return {
@@ -296,6 +304,7 @@ export default {
         task: false,
         bug: false
       },
+      filtrate: {},
       idList: {// 所选项的idList
         requireList: [],
         taskList: [],
@@ -449,7 +458,11 @@ export default {
             : moment().endOf('month').format('YYYY.MM.DD')
         },
         teamSearchInfo: { bizId: null },
-        searchScheduleInfo: { origin: [0, 1] }
+        searchScheduleInfo: {
+          origin: this.filtrate.origin,
+          scheduleTypeList: this.filtrate.scheduleTypeList,
+          selfScheduleTypeList: this.filtrate.selfScheduleTypeList
+        }
       }
       const res = await queryWorkListByTime(params)
       if (res.code === 200) {