Browse Source

优化排期锁定

qinzhipeng_v 5 years ago
parent
commit
86d0baf975

+ 6 - 6
src/styles/PublicStyle/index.scss

@@ -314,13 +314,9 @@
 }
 
 // 排期锁定
-.public_image {
-  width: 12.31px;
-  padding-bottom: 2px;
-}
 .SchedulingAside { // 排期变更
   width:270px !important;
-  max-height: 375px;
+  max-height: 276px;
   .SchedulingDiv {
     display: flex;
     position: relative;
@@ -340,7 +336,7 @@
     background-color: #ffffff;
     .image {
       display: inline-block;
-      width: 8px;
+      width: 12px;
       margin: 0 auto;
       align-self: center;
     }
@@ -366,10 +362,14 @@
   }
 }
  .modifyTime {
+   cursor: pointer;
     color:rgba(153,153,153,1);
   }
   .timeline:hover {
       color:#409EFF !important;
+      .SchedulingTow {
+        border:1px solid #409EFF !important;
+      }
       .modifyTime{
         color:#409EFF !important;
       }

+ 1 - 5
src/views/projectManage/iteration/components/modifySchedule.vue

@@ -51,7 +51,7 @@
             >
               <div class="Layout_space_between">
                 <span>{{ item.name }}</span>
-                <img :src="item.isScheduleLocked === 1 ? lock : Unlock" style="width: 13px;">
+                <div v-if="item.isScheduleLocked === 1 ? 'el-icon-lock': 'el-icon-unlock'" />
               </div>
             </el-option>
           </el-select>
@@ -101,8 +101,6 @@ import { taskList } from '@/api/projectIndex'
 import { taskList as allTaskList, configShowTaskEnum } from '@/api/taskIndex'
 import { getSeprateDayInfo, scheduleCreate, scheduleGet, scheduleUpdate, scheduleDelete } from '@/api/projectViewDetails'
 import danger from '@/assets/感叹@2x.png'
-import lock from '@/assets/lock.png' // 排期锁定图标
-import Unlock from '@/assets/Unlock.png' // 排期锁定图标
 import '@/styles/PublicStyle/index.scss'
 export default {
   components: {
@@ -139,8 +137,6 @@ export default {
   },
   data() {
     return {
-      Unlock: Unlock, // 解锁排期
-      lock: lock, // 锁定排期
       dangerImg: danger,
       form_rules: {
         type: [{ required: true, message: '事件类型不能为空', trigger: 'blur' }],

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

@@ -51,7 +51,7 @@
             >
               <div class="Layout_space_between">
                 <span>{{ item.name }}</span>
-                <img :src="item.isScheduleLocked === 1 ? lock : Unlock" style="width: 13px;">
+                <div v-if="item.isScheduleLocked === 1 ? 'el-icon-lock': 'el-icon-unlock'" />
               </div>
             </el-option>
           </el-select>
@@ -102,8 +102,6 @@ import { taskList } from '@/api/projectIndex'
 import { taskList as allTaskList, configShowTaskEnum } from '@/api/taskIndex'
 import { getSeprateDayInfo, scheduleCreate, scheduleGet, scheduleUpdate, scheduleDelete } from '@/api/projectViewDetails'
 import danger from '@/assets/感叹@2x.png'
-import lock from '@/assets/lock.png' // 排期锁定图标
-import Unlock from '@/assets/Unlock.png' // 排期锁定图标
 export default {
   components: {
     searchPeople,
@@ -144,8 +142,6 @@ export default {
   },
   data() {
     return {
-      Unlock: Unlock, // 解锁排期
-      lock: lock, // 锁定排期
       dangerImg: danger,
       form_rules: {
         type: [{ required: true, message: '事件类型不能为空', trigger: 'blur' }],

+ 1 - 5
src/views/projectManage/requirement/components/modifySchedule.vue

@@ -51,7 +51,7 @@
             >
               <div class="Layout_space_between">
                 <span>{{ item.name }}</span>
-                <img :src="item.isScheduleLocked === 1 ? lock : Unlock" style="width: 13px;">
+                <div v-if="item.isScheduleLocked === 1 ? 'el-icon-lock': 'el-icon-unlock'" />
               </div>
             </el-option>
           </el-select>
@@ -101,8 +101,6 @@ import { taskList } from '@/api/projectIndex'
 import { taskList as allTaskList, configShowTaskEnum } from '@/api/taskIndex'
 import { getSeprateDayInfo, scheduleCreate, scheduleGet, scheduleUpdate, scheduleDelete } from '@/api/projectViewDetails'
 import danger from '@/assets/感叹@2x.png'
-import lock from '@/assets/lock.png' // 排期锁定图标
-import Unlock from '@/assets/Unlock.png' // 排期锁定图标
 import '@/styles/PublicStyle/index.scss'
 export default {
   components: {
@@ -144,8 +142,6 @@ export default {
   },
   data() {
     return {
-      Unlock: Unlock, // 解锁排期
-      lock: lock, // 锁定排期
       dangerImg: danger,
       form_rules: {
         type: [{ required: true, message: '事件类型不能为空', trigger: 'blur' }],

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

@@ -20,7 +20,8 @@
       </el-table-column>
       <el-table-column prop="type" label="类型" min-width="100" align="center">
         <template slot-scope="scope">
-          {{ getType(scope.row.type) }} <img class="public_image" :src="scope.row.isScheduleLocked === 0 ? Unlock : lock">
+          {{ scope.row.name }}
+          <div :class="scope.row.isScheduleLocked === 1 ? 'el-icon-lock' : 'el-icon-unlock'" />
         </template>
       </el-table-column>
       <el-table-column prop="desc" label="描述" min-width="150" align="left" show-overflow-tooltip />
@@ -63,8 +64,6 @@ import { listByRequire } from '@/api/requirement.js'
 import { listByTask, sortForTask } from '@/api/projectViewDetails'
 import modifySchedule from './modifySchedule'
 import move from '@/assets/麻将@2x.png'
-import lock from '@/assets/lock.png' // 排期锁定图标
-import Unlock from '@/assets/Unlock.png' // 排期锁定图标
 import '@/styles/PublicStyle/index.scss' // 通用css
 export default {
   components: {
@@ -110,8 +109,6 @@ export default {
   data() {
     return {
       move: move,
-      Unlock: Unlock, // 解锁排期
-      lock: lock, // 锁定排期
       scheduleList: [],
       scheduleDetail: {},
       visibleSchedule: false,

+ 8 - 17
src/views/projectManage/requirement/requirementDetail.vue

@@ -116,7 +116,7 @@
             <div class="title-left-name">
               <div>需求计划
                 <el-tooltip class="item" effect="dark" :content="isScheduleLocked === 1? '点击解锁排期' : '点击锁定排期'" placement="top">
-                  <span class="titleStatus" @click="changeSchedule"><img :src="isScheduleLocked === 1 ? lock : Unlock" style="width: 12.31px;display: inline-block; vertical-align: inherit;"> {{ isScheduleLocked === 1 ? '已锁定' : '未锁定' }}</span>
+                  <span class="titleStatus" :class="isScheduleLocked === 1 ? 'el-icon-lock' : 'el-icon-unlock'" @click="changeSchedule"> {{ isScheduleLocked === 1 ? '已锁定' : '未锁定' }}</span>
                 </el-tooltip>
               </div>
             </div><br>
@@ -124,8 +124,10 @@
           <section class="main-section">
             <div class="allTips">
               <div class="tips"><i class="el-icon-warning-outline" />每个任务仅支持一次提测和一次准出,请合理拆解后任务再排期</div><br>
-              <div v-if="BackToTheLatest" class="Scheduling" @click="GetRequireScheduleHistory"><i class="el-icon-refresh" /> 回到最新</div>
-              <div align="left" class="Scheduling" @click="scheduleHiHide"><img :src="scheduling"> 排期变更记录</div>
+              <div class="allTips">
+                <div v-if="BackToTheLatest" class="Scheduling" @click="GetRequireScheduleHistory"><i class="el-icon-refresh" /> 回到最新</div>
+                <div align="left" class="Scheduling" @click="scheduleHiHide"><img :src="scheduling"> 排期变更记录</div>
+              </div>
             </div>
           </section>
 
@@ -135,15 +137,11 @@
             </el-main>
             <el-aside v-if="lockHide" class="SchedulingAside">
               <div v-for="(item, index) in SchedulingContent" :key="index" class="SchedulingDiv" @click="clickScheduling(item)">
-                <div class="SchedulingTow">
-                  <img v-if="item.type === 1" :src="lock" class="image">
-                  <img v-if="item.type === 2" :src="Unlock" class="image">
-                </div>
                 <i v-show="index < SchedulingContent.length - 1" />
                 <div class="timeline">
                   <div class="SchedulingTow" :class="{'vss' : item.id === ScheduId}">
-                    <img v-if="item.operationType === 0" :src="item.id === ScheduId ? Unlockblur : Unlock" class="image">
-                    <img v-if="item.operationType === 1" :src="item.id === ScheduId ? lockblur : lock " class="image">
+                    <div v-if="item.operationType === 0" class="el-icon-unlock image" />
+                    <div v-if="item.operationType === 1" class="el-icon-lock image" />
                   </div>
                   <div class="modifyTime">{{ item.modifyTime }}</div>
                   <div>{{ item.operatorObject.name !== null ? item.operatorObject.name : '' }} <span class="btn">{{ item.operation }}</span></div>
@@ -281,10 +279,6 @@ import dataStatistics from './components/dataStatistics'
 import scheduleList from './components/scheduleList'
 import bugTableDialog from '@/views/projectManage/bugList/details/bugTableDialog' // 缺陷表格
 import scheduling from '@/assets/scheduling.png'
-import lock from '@/assets/lock.png' // 排期锁定图标
-import Unlock from '@/assets/Unlock.png' // 排期锁定图标
-import lockblur from '@/assets/锁蓝1.png' // 排期锁定图标
-import Unlockblur from '@/assets/锁蓝色.png' // 排期锁定图标
 import schedule from '@/views/projectManage/schedule' // 排期锁定弹窗
 export default {
   components: {
@@ -314,10 +308,6 @@ export default {
       ScheduId: '', // 排期ID
       BackToTheLatest: false, // 回到最新
       LockState: {}, // 锁定状态
-      Unlock: Unlock, // 解锁排期
-      lock: lock, // 锁定排期
-      Unlockblur: Unlockblur, // 解锁排期
-      lockblur: lockblur, // 锁定排期
       scheduleVisble: false, // 排期锁定
       scheduling: scheduling, // 排期变更记录图标
       activeName: '1', // 顶部tab切换
@@ -632,6 +622,7 @@ export default {
   font-size: 14px;
 }
 .vss {
+  color: #409EFF !important;
    border:1px solid #409EFF !important;
 }
 </style>

+ 1 - 5
src/views/projectManage/taskList/components/modifySchedule.vue

@@ -51,7 +51,7 @@
             >
               <div class="Layout_space_between">
                 <span>{{ item.name }}</span>
-                <img :src="item.isScheduleLocked === 1 ? lock : Unlock" style="width: 13px;">
+                <div v-if="item.isScheduleLocked === 1 ? 'el-icon-lock': 'el-icon-unlock'" />
               </div>
             </el-option>
           </el-select>
@@ -100,8 +100,6 @@ import selDatePicker from '@/components/picker/SelDatePicker'
 import { taskList as allTaskList, configShowTaskEnum, taskGet } from '@/api/taskIndex'
 import { getSeprateDayInfo, scheduleCreate, scheduleGet, scheduleUpdate, scheduleDelete } from '@/api/projectViewDetails'
 import danger from '@/assets/感叹@2x.png'
-import lock from '@/assets/lock.png' // 排期锁定图标
-import Unlock from '@/assets/Unlock.png' // 排期锁定图标
 import '@/styles/PublicStyle/index.scss'
 export default {
   components: {
@@ -138,8 +136,6 @@ export default {
   },
   data() {
     return {
-      Unlock: Unlock, // 解锁排期
-      lock: lock, // 锁定排期
       dangerImg: danger,
       form_rules: {
         type: [{ required: true, message: '事件类型不能为空', trigger: 'blur' }],

+ 10 - 8
src/views/projectManage/taskList/components/scheduleList.vue

@@ -1,6 +1,5 @@
 <template>
   <div class="schedule-list" :class="className">
-    <!-- <el-col align="right" class="add-schedule"><span @click="addSchedule()"><i class="el-icon-circle-plus-outline" />添加排期</span></el-col> -->
     <el-table
       :id="'schedule-'+id"
       :data="scheduleList"
@@ -30,7 +29,7 @@
       >
         <template slot-scope="scope">
           {{ scope.row.name }}
-          <img class="public_image" :src="scope.row.isScheduleLocked === 0 ? Unlock : lock">
+          <div v-show="showunlock" :class="scope.row.isScheduleLocked === 0 ? 'el-icon-unlock' : 'el-icon-lock'" />
         </template>
       </el-table-column>
       <el-table-column
@@ -66,8 +65,10 @@
         show-overflow-tooltip
       >
         <template slot-scope="scope">
-          <el-button v-if="scope.row.isScheduleLocked === 0" type="text" size="small" @click="editSchedule(scope.row)">编辑</el-button>
-          <el-button v-if="scope.row.isScheduleLocked === 0" type="text" size="small" @click="deleteSchedule(scope.row)">删除</el-button>
+          <div v-if="showunlock">
+            <el-button v-if="scope.row.isScheduleLocked === 0" type="text" size="small" @click="editSchedule(scope.row)">编辑</el-button>
+            <el-button v-if="scope.row.isScheduleLocked === 0" type="text" size="small" @click="deleteSchedule(scope.row)">删除</el-button>
+          </div>
         </template>
       </el-table-column>
 
@@ -99,8 +100,6 @@ import 'moment/locale/zh-cn'
 import { listByTask, sortForTask } from '@/api/projectViewDetails'
 import modifySchedule from './modifySchedule'
 import move from '@/assets/麻将@2x.png'
-import lock from '@/assets/lock.png' // 排期锁定图标
-import Unlock from '@/assets/Unlock.png' // 排期锁定图标
 export default {
   components: {
     modifySchedule
@@ -125,12 +124,15 @@ export default {
       type: String,
       default: '',
       required: false
+    },
+    showunlock: {
+      type: Boolean,
+      default: false,
+      required: false
     }
   },
   data() {
     return {
-      Unlock: Unlock, // 解锁排期
-      lock: lock, // 锁定排期
       move: move,
       scheduleList: [],
       scheduleDetail: {},

+ 13 - 17
src/views/projectManage/taskList/taskViewDetail.vue

@@ -116,7 +116,7 @@
             <div class="title-left-name">
               <div>任务计划
                 <el-tooltip class="item" effect="dark" :content="isScheduleLocked === 1? '点击解锁排期' : '点击锁定排期'" placement="top">
-                  <span class="titleStatus" @click="changeSchedule"><img :src="isScheduleLocked === 1 ? lock: Unlock" style="width: 13px;display: inline-block; vertical-align: inherit"> {{ isScheduleLocked === 1 ? '已锁定' : '未锁定' }}</span>
+                  <span class="titleStatus" :class="isScheduleLocked === 1 ? 'el-icon-lock' : 'el-icon-unlock'" @click="changeSchedule"> {{ isScheduleLocked === 1 ? '已锁定' : '未锁定' }}</span>
                 </el-tooltip>
               </div>
             </div>
@@ -129,23 +129,23 @@
                 <span v-if="tips" style="color:#e88792;">当前任务归属的需求计划排期呈锁定状态,当前任务的排期无法同步到需求计划中去,请将归属需求的排期解锁!</span>
               </div>
               <div class="Layout_space_between">
-                <div v-show="BackToTheLatest === false" class="Scheduling" style="margin-right: 160px;" @click="clickBackToTheLatest"><i class="el-icon-refresh" /> 回到最新</div>
-                <div v-show="BackToTheLatest === true" class="Scheduling" style="margin-right: 160px;" @click="clickAddScheduling()"><i class="el-icon-circle-plus-outline" />添加排期</div>
-                <div align="left" class="Scheduling" @click="scheduleHiHide"><img :src="scheduling"> 排期变更记录</div>
+                <div v-show="BackToTheLatest === false" class="Scheduling" style="margin-right: 20px;" @click="clickBackToTheLatest"><i class="el-icon-refresh" /> 回到最新</div>
+                <div v-show="BackToTheLatest === true" class="Scheduling" style="margin-right: 20px;" @click="clickAddScheduling()"><i class="el-icon-circle-plus-outline" />添加排期</div>
+                <div align="left" class="Scheduling" @click="scheduleHiHide"><div class="el-icon-document" /> 排期变更记录</div>
               </div>
             </div>
           </section>
           <el-container>
             <el-main style="padding: 0;">
-              <schedule-list :id="taskId" ref="taskSchedule" :type-list="taskScheduleEvent" class-name="white" />
+              <schedule-list :id="taskId" ref="taskSchedule" :showunlock="showunlock" :type-list="taskScheduleEvent" class-name="white" />
             </el-main>
             <el-aside v-if="lockHide" class="SchedulingAside">
               <div v-for="(item, index) in SchedulingContent" :key="index" class="SchedulingDiv" @click="clickScheduling(item)">
                 <i v-show="index < SchedulingContent.length - 1" />
                 <div class="timeline">
                   <div class="SchedulingTow" :class="{'vss' : item.id === ScheduId}">
-                    <img v-if="item.operationType === 0" :src="item.id === ScheduId ? Unlockblur : Unlock" class="image">
-                    <img v-if="item.operationType === 1" :src="item.id === ScheduId ? lockblur : lock " class="image">
+                    <div v-if="item.operationType === 0" class="el-icon-unlock image" />
+                    <div v-if="item.operationType === 1" class="el-icon-lock image" />
                   </div>
                   <div class="modifyTime">{{ item.modifyTime }}</div>
                   <div>{{ item.operatorObject.name !== null ? item.operatorObject.name : '' }} <span class="btn">{{ item.operation }}</span></div>
@@ -284,11 +284,6 @@ 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' // 缺陷表格
-import scheduling from '@/assets/scheduling.png'
-import lock from '@/assets/lock.png' // 排期锁定图标
-import Unlock from '@/assets/Unlock.png' // 排期锁定图标
-import lockblur from '@/assets/锁蓝1.png' // 排期锁定图标
-import Unlockblur from '@/assets/锁蓝色.png' // 排期锁定图标
 import '@/styles/PublicStyle/index.scss'
 import schedule from '@/views/projectManage/schedule' // 排期锁定弹窗
 export default {
@@ -320,17 +315,13 @@ export default {
   },
   data() {
     return {
+      showunlock: true,
       ScheduId: '', // 排期ID
       LockState: {}, // 锁定状态
-      Unlock: Unlock, // 解锁排期
-      lock: lock, // 锁定排期
-      Unlockblur: Unlockblur, // 解锁排期
-      lockblur: lockblur, // 锁定排期
       tips: '', // 后加入需求的任务排期提示
       scheduleVisble: false, // 排期锁定
       isParentRequireScheduleLocked: '',
       BackToTheLatest: true, // 显示添加排期按钮
-      scheduling: scheduling, // 排期变更记录图标
       lockHide: false, // 隐藏排期变更记录
       SchedulingContent: [], // 排期历史变更记录
       stageImg: stage,
@@ -393,14 +384,17 @@ export default {
       this.isScheduleLocked = res1.data.isScheduleLocked
       this.tips = res1.data.tips
       this.isParentRequireScheduleLocked = res1.data.isParentRequireScheduleLocked
+      this.$refs.taskSchedule.listByTask(this.taskId)
     },
     async clickScheduling(ele) {
+      this.showunlock = false
       this.ScheduId = ele.id
       const res = await scheduleGetHistoryScheduleById(ele.id)
       this.taskScheduleEvent = res.data.schedulDetailResponses
       this.BackToTheLatest = false
     },
     clickBackToTheLatest() {
+      this.showunlock = true
       this.BackToTheLatest = true
       this.lockHide = false
       this.$refs.taskSchedule.listByTask(this.taskId)
@@ -514,6 +508,7 @@ export default {
     scheduleHiHide() { // 排期变更显示隐藏
       this.lockHide = !this.lockHide
       this.BackToTheLatest = true
+      this.showunlock = true
       this.ScheduId = ''
     },
     childVal(val) {
@@ -710,5 +705,6 @@ export default {
 }
 .vss {
    border:1px solid #409EFF !important;
+   color:#409EFF !important;
 }
 </style>

+ 1 - 5
src/views/workbench/person/components/calenderDetail.vue

@@ -1,7 +1,7 @@
 <template>
   <article v-show="showDetail" ref="show-schedule-detail" class="show-schedule-detail">
     <template v-if="nowDetailData && nowDetailData.origin === 0">
-      <div class="detail-title"><img :src="nowDetailData.isScheduleLocked === 1 ? lock: Unlock" style="width: 13px;padding-bottom: 1px;">【任务排期】{{ nowDetailData.bizName }}. {{ nowDetailData.name }}:{{ nowDetailData.desc }}</div>
+      <div class="detail-title"> <div :class="nowDetailData.isScheduleLocked === 1 ? 'el-icon-lock': 'el-icon-unlock'" />【任务排期】{{ nowDetailData.bizName }}. {{ nowDetailData.name }}:{{ nowDetailData.desc }}</div>
       <div class="detail-time item">
         <div class="label">排期:</div>
         <div>{{ nowDetailData.seperateDaysNoHoliday }}(用时<span>{{ nowDetailData.needDays }}</span>天)</div>
@@ -35,8 +35,6 @@
   </article>
 </template>
 <script>
-import lock from '@/assets/lock.png' // 排期锁定图标
-import Unlock from '@/assets/Unlock.png' // 排期锁定图标
 export default {
   filters: {
     arrToString(val) {
@@ -62,8 +60,6 @@ export default {
   },
   data() {
     return {
-      Unlock: Unlock, // 解锁排期
-      lock: lock, // 锁定排期
       showDetail: this.show,
       nowDetailData: this.data
     }

+ 1 - 6
src/views/workbench/person/components/calenderList.vue

@@ -43,8 +43,7 @@
       <el-table-column label="日程名称" prop="name" width="250" align="center" show-overflow-tooltip>
         <template slot-scope="scope">
           {{ scope.row.name }}
-          <img v-if="scope.row.isScheduleLocked === 1" :src="lock" style="width: 11px;margin-left: 10px;padding-bottom: 1px;">
-          <img v-if="scope.row.isScheduleLocked === 0" :src="Unlock" style="width: 13px;margin-left: 10px;padding-bottom: 1px;">
+          <div :class="scope.row.isScheduleLocked === 1 ? 'el-icon-lock': 'el-icon-unlock'" />
         </template>
       </el-table-column>
       <el-table-column label="日期" min-width="250" align="center" show-overflow-tooltip>
@@ -105,8 +104,6 @@
 <script>
 import moment from 'moment'
 import { queryWorkList, queryIdleList } from '@/api/workSchedule.js'
-import lock from '@/assets/lock.png' // 排期锁定图标
-import Unlock from '@/assets/Unlock.png' // 排期锁定图标
 export default {
   filters: {
     peopleListHandler(val) {
@@ -127,8 +124,6 @@ export default {
   },
   data() {
     return {
-      Unlock: Unlock, // 解锁排期
-      lock: lock, // 锁定排期
       total: 0,
       pages: {
         curIndex: 1,