Prechádzať zdrojové kódy

添加变更记录功能2020.6.16

qinzhipeng_v 5 rokov pred
rodič
commit
fa1b3c6209

+ 8 - 0
src/api/defectManage.js

@@ -174,3 +174,11 @@ export function deleteFilter(id) {
     method: 'get'
   })
 }
+
+// 变更记录
+export function operationLogBug(id) {
+  return request({
+    url: TeamManagement + '/operationLog/bug?bugId=' + id,
+    method: 'get'
+  })
+}

+ 2 - 1
src/styles/PublicStyle/index.scss

@@ -144,7 +144,8 @@
 
   .public_themeName { // 迭代,项目,任务,需求 主题
     font-size: 22px;
-    font-weight: 450;
+    font-weight: 600;
+    color: rgb(51, 59, 74);
     padding-left: 15px;
   }
 

+ 2 - 2
src/views/projectManage/bugList/bugindex.vue

@@ -567,8 +567,8 @@
         </el-form-item>
       </el-form>
       <template v-slot:footer>
-        <el-button @click="getBugList(),statusDialogVisible = false">取 消</el-button>
-        <el-button type="primary" @click="statusDialogConfirm">确 定</el-button>
+        <el-button size="small" @click="getBugList(),statusDialogVisible = false">取 消</el-button>
+        <el-button size="small" type="primary" @click="statusDialogConfirm">确 定</el-button>
       </template>
     </el-dialog>
     <normal-dialog

+ 114 - 38
src/views/projectManage/bugList/details/index.vue

@@ -170,12 +170,11 @@
                   <el-form-item label="修复结果">
                     <div
                       v-if="map.repairResultEnumList && bug"
-                      style="padding-left: 15px"
                       class="bug_manage_div"
                     >{{ map.repairResultEnumList[bug.repairResult]?map.repairResultEnumList[bug.repairResult]:'未修复' }}</div>
                   </el-form-item>
                   <el-form-item label="Hold次数">
-                    <div style="padding-left: 15px" class="bug_manage_div">{{ bug.holdCount }}</div>
+                    <div class="bug_manage_div">{{ bug.holdCount }}</div>
                   </el-form-item>
 
                 </el-form>
@@ -216,17 +215,17 @@
                     </el-select>
                   </el-form-item>
                   <el-form-item label="缺陷原因">
-                    <div v-if="map.bugReasonEnumList && bug" style="padding-left: 15px" class="bug_manage_div">{{ map.bugReasonEnumList[bug.bugReason]?map.bugReasonEnumList[bug.bugReason]:'尚未知' }}</div>
+                    <div v-if="map.bugReasonEnumList && bug" class="bug_manage_div">{{ map.bugReasonEnumList[bug.bugReason]?map.bugReasonEnumList[bug.bugReason]:'尚未知' }}</div>
                   </el-form-item>
                   <el-form-item label="Reopen次数">
-                    <div style="padding-left: 15px" class="bug_manage_div">{{ bug.reopenTimes }}</div>
+                    <div class="bug_manage_div">{{ bug.reopenTimes }}</div>
                   </el-form-item>
 
                 </el-form>
               </el-aside>
             </el-container>
           </el-main>
-          <el-main v-loading="loading.appInfo" :style="type=='page'?{'padding': '20px 30px','margin-top': '10px'}:{'padding-left':'30px','padding-right':'30px'}" class="layout_main bug_manage bug_manage_app_info">
+          <el-main v-loading="loading.appInfo" :style="type=='page'?{'padding': '20px 30px 100px 30px','margin-top': '10px'}:{'padding-left':'30px','padding-right':'30px'}" class="layout_main bug_manage bug_manage_app_info">
             <div class="module_title">
               <div class="module_title__sign" />
               <div class="module_title__caption">客户端信息</div>
@@ -301,7 +300,7 @@
             <el-aside :width="type=='page'?'100%':'100%'">
               <el-form :rules="rules" :label-width="type=='page'?'30%':'16%'" label-position="left" label-suffix=":" :hide-required-asterisk="true">
                 <el-form-item label="提报人">
-                  <div style="padding-left: 15px" class="bug_manage_div">{{ bug.creatorList }}</div>
+                  <div class="bug_manage_div">{{ bug.creatorList }}</div>
                 </el-form-item>
                 <el-form-item label="责任人" prop="assigner" :style="formHeight1 == 'type' ? { 'height': '60px' } : { 'height': 'auto' }">
                   <el-select
@@ -366,16 +365,16 @@
               </el-form>
             </el-aside>
           </el-main>
-          <el-main class="layout_main bug_manage_time_length" :style="type=='page'?{'padding': '20px 30px','margin-top': '10px'}:{'padding-left':'30px'}">
+          <el-main class="layout_main bug_manage_time_length" :style="type=='page'?{'padding': '20px 5px 20px 30px','margin-top': '10px'}:{'padding-left':'30px'}">
             <div class="module_title">
               <div class="module_title__sign" />
               <div class="module_title__caption">时间</div>
             </div>
             <el-divider v-if="type !== 'page'" />
-            <el-aside :width="type=='page'?'100%':'49%'">
-              <el-form label-position="left" label-width="32%">
+            <el-aside :width="type=='page'?'100%':'59%'">
+              <el-form label-position="left" label-width="28%">
                 <el-form-item label="提报时间">
-                  <div style="padding-left: 15px" class="bug_manage_div"> :{{ bug.gmtCreate }}</div>
+                  <div class="bug_manage_div"> :{{ bug.gmtCreate }} <span v-if="bug.gmtCreateIsHoliday === 1" class="bug_date">{{ '节假日提报' }}</span></div>
                 </el-form-item>
                 <el-form-item label="待测试时间">
                   <div class="tips">
@@ -383,7 +382,7 @@
                       <i class="el-icon-warning" />
                     </el-tooltip>
                   </div>
-                  <div style="padding-left: 15px" class="bug_manage_div"> :{{ bug.waitTestTime }}</div>
+                  <div class="bug_manage_div"> :{{ bug.waitTestTime }}</div>
                 </el-form-item>
                 <el-form-item label="已完成时间">
                   <div class="tips">
@@ -391,7 +390,7 @@
                       <i class="el-icon-warning" />
                     </el-tooltip>
                   </div>
-                  <div style="padding-left: 15px" class="bug_manage_div"> :{{ bug.finishTime }}</div>
+                  <div class="bug_manage_div"> :{{ bug.finishTime }} <span v-if="bug.finishTimeIsHoliday === 1" class="bug_date">{{ '节假日关闭' }}</span></div>
                 </el-form-item>
                 <el-form-item label="开发修复时长">
                   <div class="tips">
@@ -399,7 +398,7 @@
                       <i class="el-icon-warning" />
                     </el-tooltip>
                   </div>
-                  <div style="padding-left: 15px" class="bug_manage_div"> :{{ bug.devFixTime }}</div>
+                  <div class="bug_manage_div"> :{{ bug.devFixTime }} <br> :{{ bug.devFixTimePurgeNH }} <span v-if="bug.devFixTimePurgeNH !== null" class="bug_removeDate">{{ '去除节假日' }}</span></div>
                 </el-form-item>
                 <el-form-item label="测试验收时长">
                   <div class="tips">
@@ -407,7 +406,7 @@
                       <i class="el-icon-warning" />
                     </el-tooltip>
                   </div>
-                  <div style="padding-left: 15px" class="bug_manage_div"> :{{ bug.testCheckTime }}</div>
+                  <div class="bug_manage_div"> :{{ bug.testCheckTime }} <br> :{{ bug.testCheckTimePurgeNH }} <span v-if="bug.testCheckTimePurgeNH !== null" class="bug_removeDate">{{ '去除节假日' }}</span></div>
                 </el-form-item>
                 <el-form-item label="总修复时长">
                   <div class="tips">
@@ -415,7 +414,7 @@
                       <i class="el-icon-warning" />
                     </el-tooltip>
                   </div>
-                  <div style="padding-left: 15px" class="bug_manage_div"> :{{ bug.fixTime }}</div>
+                  <div class="bug_manage_div"> :{{ bug.fixTime }} <br> :{{ bug.fixTimePurgeNH }} <span v-if="bug.fixTimePurgeNH !== null" class="bug_removeDate">{{ '去除节假日' }}</span></div>
                 </el-form-item>
               </el-form>
             </el-aside>
@@ -532,27 +531,41 @@
         <el-main :style="type=='page'?{'padding': '20px 30px','margin-top': '10px'}:{'padding-left':'30px'}" class="layout_main">
           <div class="module_title">
             <div class="module_title__sign" />
-            <div class="module_title__caption">评论</div>
-          </div>
-          <el-divider v-if="type !== 'page'" /><br>
-          <div>
-            <div v-for="(item,index) in comments" :key="index" class="animated bounceInRight">
-              <div style="font-size:14px;color:#333B4A;display: inline-block;">{{ item.commentInfo.name }}</div>
-              <div style="margin-left:20px;display: inline-block;color: #9B9B9B;font-size:12px">{{ item.commentInfo.gmtCreater }}</div>
-              <p style="font-size:14px;color:#333B4A;margin-top: 10px;white-space: pre-line;">{{ item.commentInfo.content }}</p>
-              <br>
-            </div>
-            <el-input
-              v-model="commentContent"
-              type="textarea"
-              placeholder="请输入评论内容"
-              maxlength="1000"
-              show-word-limit
-              :autosize="{ minRows: 3, maxRows: 5}"
-              style="margin-bottom: 2%"
-            />
-            <el-button type="primary" size="small" style="float: right" @click="addComment">发表评论</el-button>
+            <div class="module_title__caption">动态</div>
           </div>
+          <el-divider v-if="type !== 'page'" />
+          <el-tabs v-model="activeName" @tab-click="handleClick">
+            <el-tab-pane label="评论" name="first">
+              <div>
+                <div v-for="(item,index) in comments" :key="index" class="animated bounceInRight">
+                  <div style="font-size:14px;color:#333B4A;display: inline-block;">{{ item.commentInfo.name }}</div>
+                  <div style="margin-left:20px;display: inline-block;color: #9B9B9B;font-size:12px">{{ item.commentInfo.gmtCreater }}</div>
+                  <p style="font-size:14px;color:#333B4A;margin-top: 10px;white-space: pre-line;">{{ item.commentInfo.content }}</p>
+                  <br>
+                </div>
+                <el-input
+                  v-model="commentContent"
+                  type="textarea"
+                  placeholder="请输入评论内容"
+                  maxlength="1000"
+                  show-word-limit
+                  :autosize="{ minRows: 3, maxRows: 5}"
+                  style="margin-bottom: 2%"
+                />
+                <el-button type="primary" size="small" style="float: right" @click="addComment">发表评论</el-button>
+              </div>
+            </el-tab-pane>
+            <el-tab-pane label="变更记录" name="second">
+              <div>
+                <div v-for="(item,index) in changeRecord" :key="index" style="margin: 20px 0" class="animated bounceInRight Layout_space_between">
+                  <span class="operatorName">{{ item.operator }}</span>
+                  <span class="remark">{{ item.remark.length > 25 ? item.remark.substring(0, 30) + '...' : '' }}</span>
+                  <span class="createTime">{{ item.createTime }}</span>
+                </div>
+              </div>
+            </el-tab-pane>
+          </el-tabs>
+
         </el-main>
       </el-container>
       <!-- 弹窗 -->
@@ -589,8 +602,8 @@
         </el-form>
         <div v-else style="text-align:center;line-height: 150px">是否要删除当前缺陷?</div>
         <template v-slot:footer>
-          <el-button @click="statusDialogCancel">取 消</el-button>
-          <el-button type="primary" @click="statusDialogConfirm">确 定</el-button>
+          <el-button size="small" @click="statusDialogCancel">取 消</el-button>
+          <el-button size="small" type="primary" @click="statusDialogConfirm">确 定</el-button>
         </template>
       </el-dialog>
       <createdBug v-if="modalShow" ref="createdBug" @father="father" />
@@ -636,7 +649,8 @@ import {
   bugUpdate,
   taskListCreate,
   releaseList,
-  settingQueryBizModuleList
+  settingQueryBizModuleList,
+  operationLogBug
 } from '@/api/defectManage.js'
 import Dropdown from './dropdown.vue'
 import normalDialog from '@/components/dialog/normalDialog'
@@ -683,7 +697,9 @@ export default {
   },
   data() {
     return {
+      changeRecord: [], // 变更记录Data
       modalShow: false,
+      activeName: 'first', // 选项卡默认评论
       iconName: 'float_反馈_icon_close',
       bugNameIsFocus: false,
       props: { multiple: true },
@@ -829,6 +845,12 @@ export default {
     })
   },
   methods: {
+    handleClick(tab, event) {
+      console.log(tab, event)
+      operationLogBug(this.id).then(res => {
+        this.changeRecord = res.data
+      })
+    },
     closeDrawer() {
       this.$emit('close', false)
     },
@@ -1561,6 +1583,7 @@ export default {
   border: transparent;
   color: #666666;
   font-weight: 500;
+  padding-left: 13px
 }
 .bug_manage .el-cascader .el-input__inner:hover {
   border: thin solid #DCDFE6;
@@ -1629,6 +1652,59 @@ border-color: #DCDFE6;
 </style>
 
 <style scoped lang="scss">
+.operatorName {
+  min-width: 100px;
+  font-size:14px;
+  font-family:PingFang SC;
+  font-weight:500;
+  line-height:20px;
+  color:rgba(51,59,74,1);
+  opacity:1;
+}
+
+.createTime {
+  min-width:150px;
+  font-size:14px;
+  font-family:PingFangSC-Regular;
+  line-height:20px;
+  color:rgba(68,68,68,1);
+  opacity:1;
+}
+
+.remark {
+  width:448px;
+  font-size:14px;
+  font-family:PingFangSC-Regular;
+  line-height:20px;
+  color:#444444;
+  opacity:1;
+}
+
+.bug_removeDate {
+ width:46px;
+  height:16px;
+  background:rgba(64,158,255,0.1);
+  border:1px solid #409EFF;
+  opacity:1;
+  border-radius:2px;
+  font-size:8px;
+  font-family:MicrosoftYaHei;
+  line-height:10px;
+  color:#409EFF;
+}
+
+.bug_date {
+  width:46px;
+  height:16px;
+  background:rgba(245,108,108,0.1);
+  border:1px solid rgba(245,108,108,1);
+  opacity:1;
+  border-radius:2px;
+  font-size:8px;
+  font-family:MicrosoftYaHei;
+  line-height:10px;
+  color:rgba(245,108,108,1);
+}
 .newBtn {
   font-size: 14px;
   color: rgb(51, 59, 74);

+ 2 - 2
src/views/projectManage/iteration/details/iterationDetails.vue

@@ -131,8 +131,8 @@ export default {
 
 .partition {
     color: #6F7C93;
-    border-left: 1px solid #c4c3c3;
-    border-right: 1px solid #c4c3c3;
+    border-left: 1px solid #D9D9D9;
+    border-right: 1px solid #D9D9D9;
     width: 35px;
     text-align: center;
     margin: 0 10px;