Prechádzať zdrojové kódy

Merge branch 'http_test' into pern

qinzhipeng_v 5 rokov pred
rodič
commit
c89d998a08
28 zmenil súbory, kde vykonal 212 pridanie a 142 odobranie
  1. BIN
      src/assets/detailPage/已完成@2x.png
  2. BIN
      src/assets/detailPage/延期状态.png
  3. BIN
      src/assets/detailPage/正常@2x.png
  4. BIN
      src/assets/detailPage/正常状态.png
  5. BIN
      src/assets/detailPage/风险状态.png
  6. 12 0
      src/components/input/textArea.vue
  7. 5 5
      src/components/picker/SelDatePicker.vue
  8. 6 1
      src/components/select/searchPeople.vue
  9. 2 1
      src/styles/detail-pages.scss
  10. 4 2
      src/views/projectManage/bugList/details/index.vue
  11. 1 1
      src/views/projectManage/bugList/details/statusChange.vue
  12. 5 1
      src/views/projectManage/bugList/file/createdBug.vue
  13. 2 2
      src/views/projectManage/iteration/components/PlanningIteration.vue
  14. 5 6
      src/views/projectManage/iteration/components/create.vue
  15. 32 27
      src/views/projectManage/iteration/components/iterationTable.vue
  16. 31 33
      src/views/projectManage/iteration/components/requiredTable.vue
  17. 0 1
      src/views/projectManage/projectList/components/modifySchedule.vue
  18. 4 2
      src/views/projectManage/projectList/components/scheduleList.vue
  19. 3 3
      src/views/projectManage/projectList/projectViewDetails.vue
  20. 4 2
      src/views/projectManage/requirement/components/scheduleList.vue
  21. 2 2
      src/views/projectManage/requirement/requirementDetail.vue
  22. 4 2
      src/views/projectManage/taskList/components/scheduleList.vue
  23. 19 29
      src/views/projectManage/taskList/taskViewDetail.vue
  24. 5 1
      src/views/workbench/bugTableList.vue
  25. 3 3
      src/views/workbench/person/components/calenderDetail.vue
  26. 9 4
      src/views/workbench/person/components/calenderList.vue
  27. 12 4
      src/views/workbench/person/index.vue
  28. 42 10
      src/views/workbench/team/index.vue

BIN
src/assets/detailPage/已完成@2x.png


BIN
src/assets/detailPage/延期状态.png


BIN
src/assets/detailPage/正常@2x.png


BIN
src/assets/detailPage/正常状态.png


BIN
src/assets/detailPage/风险状态.png


+ 12 - 0
src/components/input/textArea.vue

@@ -14,6 +14,10 @@
         <pre class="text-pre" @click="ImmediateAddition" v-html="value" />
       </div>
       <div :id="'inputUpload_'+id" style="display: none" @click.stop="blur_textarea" />
+      <div v-show="edit" class="control">
+        <el-button size="small" @click="edit=false">取消</el-button>
+        <el-button type="primary" size="small" @click.stop="blur_textarea">确定</el-button>
+      </div>
     </article>
   </div>
 </template>
@@ -121,6 +125,9 @@ export default {
 }
 </script>
 <style scoped lang="scss">
+article {
+  padding: 20px 30px;
+}
 .text-edit {
   height: 30vh;
   color: #666666;
@@ -141,4 +148,9 @@ export default {
   width: calc(100% - 40px);
   margin: auto;
 }
+.control {
+  display: flex;
+  justify-content: flex-end;
+  margin-top: 10px;
+}
 </style>

+ 5 - 5
src/components/picker/SelDatePicker.vue

@@ -190,11 +190,11 @@ export default {
 .more-select {
   display: none;
 }
-.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date, .ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date{
-  position: relative;
-  background-color: #e6f7ff;
-  color: rgba(0, 0, 0, 0.65);
-}
+// .ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date, .ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date{
+//   position: relative;
+//   background-color: #e6f7ff;
+//   color: rgba(0, 0, 0, 0.65);
+// }
 .ant-calendar-in-range-cell,.ant-calendar-selected-start-date,.ant-calendar-selected-end-date{
   .ant-calendar-date {
     position: relative;

+ 6 - 1
src/components/select/searchPeople.vue

@@ -2,7 +2,7 @@
   <el-select
     v-model="searchValue"
     filterable
-    clearable
+    :clearable="clearable"
     remote
     :multiple="multiple"
     :remote-method="remoteMethod"
@@ -49,6 +49,11 @@ export default {
       type: Boolean,
       default: false,
       required: false
+    },
+    clearable: { // 是否支持清空
+      type: Boolean,
+      default: true,
+      required: false
     }
   },
   data() {

+ 2 - 1
src/styles/detail-pages.scss

@@ -31,6 +31,7 @@
 @mixin main-header { 
   margin: 0 10px 10px 10px;
   height: 60px;
+  padding-left: 30px;
   background-color: #ffffff;
   display: flex;
   z-index: 99;
@@ -49,7 +50,7 @@
     width: 190px;
     .title-id{
       color:rgba(51,59,74,0.5);
-      font-size: 14px;
+      font-size: 12px;
     }
     .title-name {
       white-space: nowrap;

+ 4 - 2
src/views/projectManage/bugList/details/index.vue

@@ -3,7 +3,7 @@
     <div v-if="type!=='page'" style="padding: 15px 5px 5px 30px" class="Layout_space_between bug_manage_container bug_manage_title">
       <div class="Layout_flex_start">
         <span style="font-size:18px;font-weight:500;color:#333b4a; margin-right: 20px;">{{ 'BUG-'+ id }}</span>
-        <statusChange v-if="map.bugEnumList && typeof bug.status !== 'undefined'" :status-code="bug.status" :bug-data="bug" />
+        <statusChange v-if="map.bugEnumList && typeof bug.status !== 'undefined'" :status-code="bug.status" :bug-data="bug" @bugGet="updateBugStatus" />
       </div>
       <div style="display: inline-block;float:right">
         <span class="newBtn" @click="getToDetails()"><i class="el-icon-document" /> 查看详情</span>
@@ -817,7 +817,6 @@ export default {
       this.dialogVisible = true
     },
     handleChange(response, file, fileList) {
-      console.log('response', response)
       const reg = new RegExp(/.*(\.gif|\.jpeg|\.png|\.jpg|\.bmp|\.gif)/i)
       if (!response.success) {
         this.$message({
@@ -1000,6 +999,9 @@ export default {
       const list = this.appClientList.filter(value => value.code === e)
       this.versionList = list[0] ? list[0].childEnumInfos : []
     },
+    updateBugStatus() {
+      this.bugGet(this.bug.id)
+    },
     bugGet(id, isLoading) {
       this.loading.fullscreen = isLoading
       return bugDetails({ id: id }).then(res => {

+ 1 - 1
src/views/projectManage/bugList/details/statusChange.vue

@@ -113,9 +113,9 @@ export default {
               this.statusDialogVisible = false
               this.statusDialogForm = {}
               this.$message({ message: '成功修改状态为' + this.statusDialogTitle, type: 'success', center: true })
+              this.$emit('bugGet')
             } else if (res.code !== 200) {
               this.status = this.statusCode
-              // this.$message({ message: '修改失败' + res.msg, type: 'error', center: true })
             }
           })
         }

+ 5 - 1
src/views/projectManage/bugList/file/createdBug.vue

@@ -247,6 +247,10 @@ export default {
     getBugList: {
       type: Function,
       default: null
+    },
+    required: {
+      type: Number,
+      default: null
     }
   },
   data() {
@@ -470,7 +474,7 @@ export default {
       settingGetBizList({}).then(res => {
         this.bizIdEnumList = res.data // biz
       })
-      taskListCreate({ bizId: Number(localStorage.getItem('bizId')) }).then(res => {
+      taskListCreate({ bizId: Number(localStorage.getItem('bizId')), requireId: this.required ? this.required : '' }).then(res => {
         this.taskEnumList = res.data // 所属任务
       })
       bugGetEnum().then(res => {

+ 2 - 2
src/views/projectManage/iteration/components/PlanningIteration.vue

@@ -127,8 +127,8 @@ export default {
       checkAllLeft: false,
       cities: [],
       citiesLeft: [],
-      isIndeterminate: true,
-      isIndeterminateLeft: true,
+      isIndeterminate: false,
+      isIndeterminateLeft: false,
       checkedCities: [],
       checkedCitiesLeft: [],
       checkedLeft: '',

+ 5 - 6
src/views/projectManage/iteration/components/create.vue

@@ -23,7 +23,6 @@
           format="yyyy.MM.dd"
           value-format="yyyy.MM.dd"
           style="width: 90%;"
-          :picker-options="pickerOptions1"
         />
       </el-form-item>
     </el-form>
@@ -46,11 +45,11 @@ export default {
   },
   data() {
     return {
-      pickerOptions1: {
-        disabledDate: (time) => {
-          return time.getTime() > this.iteration.startTime || time.getTime() < new Date(this.iteration.startTime).getTime()
-        }
-      },
+      // pickerOptions1: { // 截止时间不得小于开始时间
+      //   disabledDate: (time) => {
+      //     return time.getTime() > this.iteration.startTime || time.getTime() < new Date(this.iteration.startTime).getTime()
+      //   }
+      // },
       userInformation: localStorage.getItem('username'),
       userNames: localStorage.getItem('realname'),
       titName: this.title,

+ 32 - 27
src/views/projectManage/iteration/components/iterationTable.vue

@@ -10,7 +10,7 @@
       show-overflow-tooltip="true"
       row-key="id"
     >
-      <el-table-column
+      <!-- <el-table-column
         width="80"
         align="center"
       >
@@ -21,7 +21,7 @@
             </div>
           </el-tooltip>
         </template>
-      </el-table-column>
+      </el-table-column> -->
       <el-table-column
         prop="type"
         label="类型"
@@ -73,7 +73,12 @@
     </el-table>
     <div class="bottom-detail">
       <el-row>排期总汇:{{ scheduleDetail.startTime | handlerDate }} ~ {{ scheduleDetail.endTime | handlerDate }}</el-row>
-      <el-row v-if="scheduleDetail.preOnlineVersion && scheduleDetail.preOnlineVersion.length>0">预计上线版本:{{ scheduleDetail.preOnlineVersion }}</el-row>
+      <el-row v-if="scheduleDetail.preOnlineVersion && scheduleDetail.preOnlineVersion.length>0">
+        <el-col :span="2">预计上线版本:</el-col>
+        <el-col :span="6">
+          <span v-for="item in scheduleDetail.preOnlineVersion" :key="item">{{ item }}</span><br>
+        </el-col>
+      </el-row>
       <el-row v-else>预计上线版本:</el-row>
     </div>
     <modify-schedule
@@ -87,7 +92,7 @@
   </div>
 </template>
 <script>
-import Sortable from 'sortablejs'
+// import Sortable from 'sortablejs'
 import moment from 'moment'
 import 'moment/locale/zh-cn'
 import imgUrl from '@/assets/麻将@2x.png'
@@ -143,20 +148,20 @@ export default {
     }
   },
   mounted() {
-    this.rowDrop()
+    // this.rowDrop()
   },
   methods: {
-    rowDrop() {
-      const tbody = document.querySelector(`#schedule-${this.id} tbody`)
-      const _this = this
-      Sortable.create(tbody, {
-        onEnd({ newIndex, oldIndex }) {
-          const currRow = _this.scheduleList.splice(oldIndex, 1)[0]
-          _this.scheduleList.splice(newIndex, 0, currRow)
-          _this.sortForTask(_this.scheduleList.map(item => item.id))
-        }
-      })
-    },
+    // rowDrop() {
+    //   const tbody = document.querySelector(`#schedule-${this.id} tbody`)
+    //   const _this = this
+    //   Sortable.create(tbody, {
+    //     onEnd({ newIndex, oldIndex }) {
+    //       const currRow = _this.scheduleList.splice(oldIndex, 1)[0]
+    //       _this.scheduleList.splice(newIndex, 0, currRow)
+    //       _this.sortForTask(_this.scheduleList.map(item => item.id))
+    //     }
+    //   })
+    // },
     async sortForTask(arr) {
       const res = await sortForTask(this.id, arr)
       if (res.code === 200) {
@@ -230,17 +235,17 @@ export default {
     margin-bottom: 10px;
   }
 }
-.sortable-tip {
-  height: 26px;
-  width: 15px;
-  border-radius:2px;
-  margin: auto;
-  justify-content: center;
-  align-items: center;
-  img {
-    width: 8px;
-  }
-}
+// .sortable-tip {
+//   height: 26px;
+//   width: 15px;
+//   border-radius:2px;
+//   margin: auto;
+//   justify-content: center;
+//   align-items: center;
+//   img {
+//     width: 8px;
+//   }
+// }
 </style>
 <style>
 .el-tooltip__popper.is-dark {

+ 31 - 33
src/views/projectManage/iteration/components/requiredTable.vue

@@ -67,9 +67,9 @@
       show-overflow-tooltip="true"
       @selection-change="handleSelectionChange"
     >
-      <!-- <el-table-column width="35">
+      <el-table-column width="35">
         <img style="display: inline-block; width: 8px; vertical-align: middle;" :src="image_role">
-      </el-table-column> -->
+      </el-table-column>
       <el-table-column type="selection" min-width="40" align="center" />
       <el-table-column type="expand" width="40">
         <template slot="header">
@@ -155,11 +155,10 @@
 import '@/styles/PublicStyle/index.scss'
 import iterationDelete from '@/views/projectManage/iteration/components/delete.vue'
 import iterationTable from '@/views/projectManage/iteration/components/iterationTable.vue'
-// import Sortable from 'sortablejs'
+import Sortable from 'sortablejs'
 import { configShowTaskEnum } from '@/api/taskIndex'
-// import image_role from '@/assets/麻将@2x.png' // 排期表格移动
-import { iterationList, iterationRequire, iterationUpdateReqStatus, iterationChangeIteration } from '@/api/iteration.js'
-// import { iterationList, iterationRequire, iterationUpdateReqStatus, iterationOrder, iterationChangeIteration } from '@/api/iteration.js'
+import image_role from '@/assets/麻将@2x.png' // 表格移动
+import { iterationList, iterationRequire, iterationUpdateReqStatus, iterationOrder, iterationChangeIteration } from '@/api/iteration.js'
 import { showRequirementEnum, updateRequirementStatus } from '@/api/requirement.js'
 export default {
   components: {
@@ -180,7 +179,7 @@ export default {
       allChange: false, // 是否全展开
       expandArr: [], // 展开行数组
       taskScheduleEvent: [], // 排期类型
-      // image_role: image_role, // 排期表格移动
+      image_role: image_role, // 表格移动
       dialogVisibleDelete: false, // 移除迭代
       requiredArray: [], // 需求状态
       showHeader: true, // 是否显示表头
@@ -202,7 +201,7 @@ export default {
   mounted() {
     this.iteratioFilter()
     this.SearchIteration()
-    // this.rowDrop()
+    this.rowDrop()
   },
   methods: {
     async iteratioFilter() {
@@ -304,32 +303,31 @@ export default {
       val.length === 0 ? this.showHeader = true : this.showHeader = false
       this.selectedData = val
       val.length === this.RequirementSet.length ? this.checkAlls = true : this.checkAlls = false
-    }
-
+    },
     // 行拖拽
-    // rowDrop() {
-    //   const tbody = document.querySelector('.el-table__body-wrapper tbody')
-    //   const _this = this
-    //   Sortable.create(tbody, {
-    //     onEnd({ newIndex, oldIndex }) {
-    //       const currRow = _this.RequirementSet.splice(oldIndex, 1)[0]
-    //       _this.RequirementSet.splice(newIndex, 0, currRow)
-    //       const obj = {
-    //         id: []
-    //       }
-    //       _this.RequirementSet.map(item => {
-    //         obj.id.push(item.id)
-    //       })
-    //       console.log(_this.iterationId, 'cdcscdsc')
-    //       iterationOrder(obj.id, _this.iterationId).then(res => {
-    //         if (res.code === 200) {
-    //           _this.$message.success(res.msg)
-    //           _this.iteratioFilter()
-    //         }
-    //       })
-    //     }
-    //   })
-    // }
+    rowDrop() {
+      const tbody = document.querySelector('.el-table__body-wrapper tbody')
+      const _this = this
+      Sortable.create(tbody, {
+        onEnd({ newIndex, oldIndex }) {
+          const currRow = _this.RequirementSet.splice(oldIndex, 1)[0]
+          _this.RequirementSet.splice(newIndex, 0, currRow)
+          const obj = {
+            id: []
+          }
+          _this.RequirementSet.map(item => {
+            obj.id.push(item.id)
+          })
+          console.log(_this.iterationId, 'cdcscdsc')
+          iterationOrder(obj.id, _this.iterationId).then(res => {
+            if (res.code === 200) {
+              _this.$message.success(res.msg)
+              _this.iteratioFilter()
+            }
+          })
+        }
+      })
+    }
   }
 }
 </script>

+ 0 - 1
src/views/projectManage/projectList/components/modifySchedule.vue

@@ -180,7 +180,6 @@ export default {
     selectTaskList: { // 已选择任务列表
       handler(newV, old) {
         if (newV && newV.length > 0) {
-          console.log(newV)
           this.tasksOptions = newV
           this.tasksDetailList = [...newV]
           this.form.taskList = newV.map(item => item.id)

+ 4 - 2
src/views/projectManage/projectList/components/scheduleList.vue

@@ -74,8 +74,10 @@
     <div class="bottom-detail">
       <el-row>排期总汇:{{ scheduleDetail.startTime | handlerDate }} ~ {{ scheduleDetail.endTime | handlerDate }}</el-row>
       <el-row v-if="scheduleDetail.preOnlineVersion && scheduleDetail.preOnlineVersion.length>0">
-        预计上线版本:
-        <span v-for="item in scheduleDetail.preOnlineVersion" :key="item">{{ item }}</span>
+        <el-col :span="2">预计上线版本:</el-col>
+        <el-col :span="6">
+          <span v-for="item in scheduleDetail.preOnlineVersion" :key="item">{{ item }}</span><br>
+        </el-col>
       </el-row>
       <el-row v-else>预计上线版本:</el-row>
     </div>

+ 3 - 3
src/views/projectManage/projectList/projectViewDetails.vue

@@ -60,7 +60,7 @@
           <div class="detail-info">
             <el-form :inline="true" :model="form_query" class="demo-form-inline" label-position="right" label-width="100px">
               <el-form-item label="项目负责人:">
-                <search-people :value.sync="form_query.projectOwner" @change="changeArea" />
+                <search-people :value.sync="form_query.projectOwner" :clearable="false" @change="changeArea" />
               </el-form-item>
               <el-form-item label="产品负责人:">
                 <search-people :value.sync="form_query.pmOwner" @change="changeArea" />
@@ -74,7 +74,7 @@
                 <search-people :value.sync="form_query.testOwner" @change="changeArea" />
               </el-form-item>
               <el-form-item label="项目类型:">
-                <el-select v-model="form_query.projectTypeStr" size="small" clearable filterable placeholder="请选择" @change="changeArea">
+                <el-select v-model="form_query.projectTypeStr" size="small" filterable placeholder="请选择" @change="changeArea">
                   <el-option v-for="item in arr_prjectType" :key="item.value" :label="item.name" :value="item.value" />
                 </el-select>
               </el-form-item>
@@ -82,7 +82,7 @@
                 {{ form_query.bizStr }}
               </el-form-item>
               <el-form-item label="优先级:">
-                <el-select v-model="form_query.priorityStr" size="small" clearable filterable placeholder="请选择" @change="changeArea">
+                <el-select v-model="form_query.priorityStr" size="small" filterable placeholder="请选择" @change="changeArea">
                   <el-option v-for="item in arr_priority" :key="item.value" :label="item.name" :value="item.value" />
                 </el-select>
               </el-form-item>

+ 4 - 2
src/views/projectManage/requirement/components/scheduleList.vue

@@ -75,8 +75,10 @@
     <div class="bottom-detail">
       <el-row>排期总汇:{{ scheduleDetail.startTime | handlerDate }} ~ {{ scheduleDetail.endTime | handlerDate }}</el-row>
       <el-row v-if="scheduleDetail.preOnlineVersion && scheduleDetail.preOnlineVersion.length>0">
-        预计上线版本:
-        <span v-for="item in scheduleDetail.preOnlineVersion" :key="item">{{ item }}</span>
+        <el-col :span="2">预计上线版本:</el-col>
+        <el-col :span="6">
+          <span v-for="item in scheduleDetail.preOnlineVersion" :key="item">{{ item }}</span><br>
+        </el-col>
       </el-row>
       <el-row v-else>预计上线版本:</el-row>
     </div>

+ 2 - 2
src/views/projectManage/requirement/requirementDetail.vue

@@ -68,7 +68,7 @@
                 </el-select>
               </el-form-item>
               <el-form-item label="PM:">
-                <search-people v-if="form_query.pm" :value.sync="form_query.pm.idap" @change="changeArea" />
+                <search-people v-if="form_query.pm" :value.sync="form_query.pm.idap" :clearable="false" @change="changeArea" />
               </el-form-item>
             </el-form>
             <el-form :inline="true" :model="form_query" class="demo-form-inline" label-position="right" label-width="100px">
@@ -203,7 +203,7 @@
       </el-dialog>
       <!-- 删除 -->
       <openDialog v-if="task_open" ref="task_createdUpdata" />
-      <createdBug v-if="bug_open" ref="createdBug" />
+      <createdBug v-if="bug_open" ref="createdBug" :required="requirementId" />
       <drawer
         ref="drawer"
         title="需求成员"

+ 4 - 2
src/views/projectManage/taskList/components/scheduleList.vue

@@ -74,8 +74,10 @@
     <div class="bottom-detail">
       <el-row>排期总汇:{{ scheduleDetail.startTime | handlerDate }} ~ {{ scheduleDetail.endTime | handlerDate }}</el-row>
       <el-row v-if="scheduleDetail.preOnlineVersion && scheduleDetail.preOnlineVersion.length>0">
-        预计上线版本:
-        <span v-for="item in scheduleDetail.preOnlineVersion" :key="item">{{ item }}</span>
+        <el-col :span="2">预计上线版本:</el-col>
+        <el-col :span="6">
+          <span v-for="item in scheduleDetail.preOnlineVersion" :key="item">{{ item }}</span><br>
+        </el-col>
       </el-row>
       <el-row v-else>预计上线版本:</el-row>
     </div>

+ 19 - 29
src/views/projectManage/taskList/taskViewDetail.vue

@@ -3,14 +3,16 @@
     <el-container>
       <el-header class="main-header">
         <div class="top-page-title">
-          <div v-if="form_query.stage === 2 || form_query.stage === 3" class="task-stage">
+          <div v-if="form_query.stage === 1 || form_query.stage === 2 || form_query.stage === 3" class="task-stage">
             <div class="task-stage-main">
-              <img v-if="form_query.stage === 2 || form_query.stage === 3" :src="stageImg">
               <img v-if="form_query.stage === 1" :src="normalImg">
-              <div class="task-stage-title">
-                <p class="task-stage-h1">{{ form_query.stageString }}</p>
-                <p class="task-stage-h2">{{ form_query.lateMsg }}</p>
-              </div>
+              <img v-if="form_query.stage === 2" :src="stageImg">
+              <img v-if="form_query.stage === 3" :src="warningImg">
+              <el-tooltip class="item" effect="dark" :content="form_query.stageString + ':' + form_query.lateMsg" placement="bottom">
+                <div class="task-stage-title">
+                  {{ form_query.stageString }}
+                </div>
+              </el-tooltip>
             </div>
           </div>
           <div class="header-title">
@@ -236,8 +238,9 @@ import dataStatistics from './components/dataStatistics'
 import TestReport from '@/views/Platform/presentation/Templates/TestReport' // 提测
 import DailyReport from '@/views/Platform/presentation/Templates/DailyReport' // 日报
 import ClientReport from '@/views/Platform/presentation/Templates/ClientReport' // 准出
-import stage from '@/assets/detailPage/已完成@2x.png'
-import stage1 from '@/assets/detailPage/正常@2x.png'
+import stage from '@/assets/detailPage/风险状态.png'
+import stage1 from '@/assets/detailPage/正常状态.png'
+import stage2 from '@/assets/detailPage/延期状态.png'
 import taskDialog from '@/views/projectManage/taskList/dialog/taskDialog' // 任务状态修改(已上线/已提测/已准出)
 import bugTableDialog from '@/views/projectManage/bugList/details/bugTableDialog' // 缺陷表格
 export default {
@@ -270,6 +273,7 @@ export default {
     return {
       stageImg: stage,
       normalImg: stage1,
+      warningImg: stage2,
       activeName: '1', // 顶部tab切换
       userInformation: localStorage.getItem('username'),
       userNames: localStorage.getItem('realname'),
@@ -541,16 +545,16 @@ export default {
 }
 .task-stage {
   position: absolute;
-  left: 20px;
-  top: 10px;
+  left: 5px;
+  top: 0px;
   z-index: 999;
   .task-stage-main {
     position: relative;
-    height: 102px;
-    width: 102px;
+    height: 52px;
+    width: 15.5px;
     img{
-      height: 102px;
-      width: 102px;
+      height: 52px;
+      width: 15.5px;
     }
     .task-stage-title{
       position: absolute;
@@ -558,23 +562,9 @@ export default {
       right: 0;
       top: 0;
       bottom: 0;
-      transform-origin: center center;
-      transform: rotate(-20deg);
-      color: #F56C6C;
-      display: flex;
-      flex-direction: column;
-      justify-content: center;
-      align-items: center;
-    }
-    .task-stage-h1 {
-      font-size: 16px;
-      text-align: center;
-      margin: 0;
-    }
-    .task-stage-h2 {
+      color: #ffffff;
       font-size: 10px;
       text-align: center;
-      margin: 0;
     }
   }
 }

+ 5 - 1
src/views/workbench/bugTableList.vue

@@ -26,7 +26,7 @@
       <el-table-column prop="priorityName" label="缺陷等级" align="center" />
       <el-table-column prop="bugStatusName" label="状态" min-width="110" align="center">
         <template slot-scope="scope">
-          <statusChange :status-code="Number(scope.row.status)" :bug-data="scope.row" />
+          <statusChange :status-code="Number(scope.row.status)" :bug-data="scope.row" @bugGet="bugGetTableList" />
         </template>
       </el-table-column>
       <el-table-column prop="taskName" label="所属任务" align="center" min-width="250" show-overflow-tooltip />
@@ -120,6 +120,7 @@ export default {
     handleClick(vel) {
       this.title = vel.name
       this.statusCode = vel.code
+      this.curIndex = 1
       this.bugGetTableList()
     },
     getBugSelect() { //  获取下拉菜单option
@@ -136,6 +137,9 @@ export default {
     },
     bugGetTableList(name, value) {
       const teamSearchInfo = value || { teamId: this.teamId, bizId: this.bizId }
+      if (value) {
+        this.curIndex = 1
+      }
       const pageInfoDO = {}
       pageInfoDO.pageSize = this.pageSize
       pageInfoDO.curIndex = this.curIndex

+ 3 - 3
src/views/workbench/person/components/calenderDetail.vue

@@ -1,7 +1,7 @@
 <template>
-  <article v-if="showDetail" ref="show-schedule-detail" class="show-schedule-detail">
+  <article v-show="showDetail" ref="show-schedule-detail" class="show-schedule-detail">
     <template v-if="nowDetailData && nowDetailData.origin === 0">
-      <div class="detail-title">【任务排期】{{ nowDetailData.name }}:{{ nowDetailData.desc }}</div>
+      <div class="detail-title">【任务排期】{{ nowDetailData.bizName }}. {{ nowDetailData.name }}:{{ nowDetailData.desc }}</div>
       <div class="detail-time item">
         <div class="label">排期:</div>
         <div>{{ nowDetailData.seperateDaysNoHoliday }}(用时<span>{{ nowDetailData.needDays }}</span>天)</div>
@@ -145,7 +145,7 @@ export default {
     }
   }
   .detail-title {
-    color: #0C77E5;
+    color: #333333;
     font-size: 14px;
     margin-bottom: 20px;
   }

+ 9 - 4
src/views/workbench/person/components/calenderList.vue

@@ -41,10 +41,15 @@
       :header-row-style="{height: '61px'}"
     >
       <el-table-column label="日程名称" prop="name" width="250" align="center" show-overflow-tooltip />
-      <el-table-column label="日期" width="250" align="center" show-overflow-tooltip>
+      <el-table-column label="日期" min-width="250" align="center" show-overflow-tooltip>
         <template slot-scope="scope">
-          {{ scope.row.startTime }}~
-          {{ scope.row.endTime }}
+          <div v-if="busy === 0">
+            {{ scope.row.startTime }}~
+            {{ scope.row.endTime }}
+          </div>
+          <div v-if="busy === 1">
+            {{ scope.row.seperateDaysNoHoliday }}
+          </div>
         </template>
       </el-table-column>
       <el-table-column label="使用/工作日/全部" align="center" width="150" show-overflow-tooltip>
@@ -59,7 +64,7 @@
           {{ scope.row.syncTeam === 1?'是':'否' }}
         </template>
       </el-table-column>
-      <el-table-column align="center" label="操作" min-width="150" show-overflow-tooltip>
+      <el-table-column align="center" label="操作" width="150" show-overflow-tooltip>
         <template slot-scope="scope">
           <el-button
             size="mini"

+ 12 - 4
src/views/workbench/person/index.vue

@@ -223,7 +223,15 @@ export default {
       nowDetailData: {}, // 当前日程详情
       showDetail: false,
       visibleSchedule: false, // 排期任务弹框
-      detailXY: [0, 0] // 详情弹框位置
+      detailXY: [0, 0], // 详情弹框位置
+      colorList: [
+        'rgba(8,172,133,1)', 'rgba(12,119,229,1)', 'rgba(237,82,9,1)', 'rgba(209,194,0,1)', 'rgba(126,211,33,1)',
+        'rgba(245,108,108,1)', 'rgba(88,118,240,1)', 'rgba(235,103,175,1)', 'rgba(255,256,110,1)', 'rgba(186,230,55,1)'
+      ],
+      bgColorList: [
+        'rgba(8,172,133,0.6)', 'rgba(12,119,229,0.6)', 'rgba(237,82,9,0.6)', 'rgba(209,194,0,0.6)', 'rgba(126,211,33,0.6)',
+        'rgba(245,108,108,0.6)', 'rgba(88,118,240,0.6)', 'rgba(235,103,175,0.6)', 'rgba(255,256,110,0.6)', 'rgba(186,230,55,0.6)'
+      ]
     }
   },
   created() {
@@ -323,7 +331,7 @@ export default {
       }
       const res = await queryWorkListByTime(params)
       if (res.code === 200) {
-        this.calendarEvents = res.data.map(item => {
+        this.calendarEvents = res.data.map((item, index) => {
           const title = item.origin ? '日程' : '排期'
           const require = `${item.requireNames && item.requireNames.length > 0 ? item.requireNames.join(',') : '无'}`
           return {
@@ -333,8 +341,8 @@ export default {
             end: moment(item.endTime).add(1, 'day').toDate(),
             detailData: item,
             className: item.origin ? 'schedule1' : 'schedule2',
-            backgroundColor: item.origin ? 'rgba(97,211,184,0.6)' : 'rgba(64,157,254,0.6)',
-            textColor: item.origin ? '#08AC85' : '#0C77E5'
+            backgroundColor: this.bgColorList[index % 10],
+            textColor: this.colorList[index % 10]
           }
         })
       }

+ 42 - 10
src/views/workbench/team/index.vue

@@ -49,7 +49,12 @@
           <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">{{ item.name }}</el-checkbox>
+              <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>
           <MyFullCalendar
@@ -167,7 +172,16 @@ export default {
         visible: false,
         data: null
       },
-      visibleSchedule: false // 排期任务弹框
+      visibleSchedule: false, // 排期任务弹框
+      colorList: [
+        'rgba(8,172,133,1)', 'rgba(12,119,229,1)', 'rgba(237,82,9,1)', 'rgba(209,194,0,1)', 'rgba(126,211,33,1)',
+        'rgba(245,108,108,1)', 'rgba(88,118,240,1)', 'rgba(235,103,175,1)', 'rgba(255,256,110,1)', 'rgba(186,230,55,1)'
+      ],
+      bgColorList: [
+        'rgba(8,172,133,0.6)', 'rgba(12,119,229,0.6)', 'rgba(237,82,9,0.6)', 'rgba(209,194,0,0.6)', 'rgba(126,211,33,0.6)',
+        'rgba(245,108,108,0.6)', 'rgba(88,118,240,0.6)', 'rgba(235,103,175,0.6)', 'rgba(255,256,110,0.6)', 'rgba(186,230,55,0.6)'
+      ],
+      mapMemberColor: new Map()// 人员对应颜色表
     }
   },
   mounted() {
@@ -202,8 +216,19 @@ export default {
         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: this.colorList[index % 10],
+          bgColor: this.bgColorList[index % 10]
+        })
+      })
+    },
     handleMember(arr) {
       const newMap = new Map()
       return arr.filter(item => {
@@ -228,7 +253,6 @@ export default {
       this.searchForm.teamId = e
       const res = this.searchEnum.teams.find(item => item.teamId === e)
       this.teamName = res.teamName
-      this.queryTeamWorkListByTime(this.calendarView)
       this.queryTeamMember()
       this.handleClick()
     },
@@ -236,7 +260,6 @@ export default {
       this.searchForm.bizId = e
       const res = this.searchEnum.businesslines.find(item => item.code === e)
       this.bizName = res.name
-      this.queryTeamWorkListByTime(this.calendarView)
       this.queryTeamMember()
       this.handleClick()
     },
@@ -323,12 +346,11 @@ export default {
         teamSearchInfo: this.searchForm,
         searchScheduleInfo: { origin: this.origin }
       }
-      if (this.checkedMembers.length > 0) {
-        params.peoples = this.checkedMembers
-      }
+      params.peoples = this.checkedMembers
       const res = await queryTeamWorkListByTime(params)
       if (res.code === 200) {
-        this.calendarEvents = res.data.map(item => {
+        this.calendarEvents = res.data.map((item, index) => {
+          const colorObj = this.mapMemberColor.get(item.peopleObject.idap)
           const title = item.origin ? '日程' : '排期'
           const require = `${item.requireNames && item.requireNames.length > 0 ? item.requireNames.join(',') : '无'}`
           return {
@@ -338,8 +360,8 @@ export default {
             end: moment(item.endTime).add(1, 'day').toDate(),
             detailData: item,
             className: item.origin ? 'schedule1' : 'schedule2',
-            backgroundColor: item.origin ? 'rgba(97,211,184,0.6)' : 'rgba(64,157,254,0.6)',
-            textColor: item.origin ? '#08AC85' : '#0C77E5'
+            backgroundColor: colorObj && colorObj.bgColor || null,
+            textColor: colorObj && colorObj.color || null
           }
         })
       }
@@ -395,6 +417,16 @@ 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;