Browse Source

线上修复

panxiandiao_i 5 years ago
parent
commit
62ea60ddfa

+ 45 - 2
src/views/Platform/bugManage/bugQuery.vue

@@ -53,6 +53,7 @@
         </div>
         <div class="display-messege-end">
           <div class="divide-threeparts">reopen次数 :&nbsp;&nbsp;&nbsp;{{ form.reopenTimes }}</div>
+          <div class="divide-threeparts">reopen原因 :&nbsp;&nbsp;&nbsp;{{ form.reopenReason }}</div>
         </div>
       </div>
       <div class="block-end">
@@ -152,6 +153,17 @@
         <el-button type="primary" @click="queryFormDataRepair">确 定</el-button>
       </div>
     </el-dialog>
+    <el-dialog :visible.sync="dialogInReopen" width="40%">
+      <el-form ref="refeshReopenDialog" :model="pauseData" :rules="serviceDataRules">
+        <el-form-item label="reopen原因" prop="pauseReopenReason" label-width="30%">
+          <el-input v-model="pauseData.pauseReopenReason" type="textarea" autocomplete="off" rows="3" style="width:76%;" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogInReopen = false">取 消</el-button>
+        <el-button type="primary" @click="queryFormDataReopen">确 定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -166,6 +178,7 @@ export default {
       form: {
         id: ''
       },
+      dialogInReopen: false,
       uptataKey: [],
       formUpdateValue: {},
       pauseData: {
@@ -173,13 +186,15 @@ export default {
         bugTypePause: '',
         pauseCurrentHandler: '',
         pauseRepairResult: '',
-        pauseReasonsAndSolutionForTheProblem: ''
+        pauseReasonsAndSolutionForTheProblem: '',
+        pauseReopenReason: ''
       },
       serviceDataRules: {
         pauseCurrentHandler: [{ required: true, message: '处理人不能为空', trigger: 'blur' }],
         reasonPause: [{ required: true, message: '问题原因不能为空', trigger: 'change' }],
         bugTypePause: [{ required: true, message: 'bug类型不能为空', trigger: 'change' }],
-        pauseRepairResult: [{ required: true, message: '修复结果不能为空', trigger: 'change' }]
+        pauseRepairResult: [{ required: true, message: '修复结果不能为空', trigger: 'change' }],
+        pauseReopenReason: [{ required: true, message: 'reopen原因不能为空', trigger: 'change' }]
         // pauseReasonsAndSolutionForTheProblem: [{ required: true, message: '修复方式不能为空', trigger: 'change' }]
       },
       bizId: '',
@@ -281,6 +296,32 @@ export default {
     cancelInput() {
       this.pauseData.pauseCurrentHandler = ''
     },
+    // reopen弹窗
+    queryFormDataReopen() {
+      this.$refs.refeshReopenDialog.validate((valid) => {
+        if (valid) {
+          this.formUpdateValue.currentHandler = this.form.currentHandler
+          this.formUpdateValue.id = this.form.id
+          this.formUpdateValue.status = this.form.status
+          this.formUpdateValue.reopenReason = this.pauseData.pauseReopenReason
+          this.userData = { id: '', ename: this.userInformation, name: this.userNames }
+          this.objData = { bugBaseInfo: this.formUpdateValue, user: this.userData }
+          bugUpdate(this.objData).then(res => {
+            if (res.code === 200) {
+              this.successFun()
+              this._initBegin()
+              if (this.$refs.refeshReopenDialog !== undefined) {
+                this.$refs.refeshReopenDialog.resetFields()
+              }
+            } else {
+              this.errorFun()
+            }
+          })
+          this.dialogInReopen = false
+          this.formUpdateValue = {}
+        }
+      })
+    },
     statusChange(e) {
       if (e === 1) {
         this.dialogInDevelopment = true
@@ -293,6 +334,8 @@ export default {
         this.pauseData.bugTypePause = this.form.bugType
       } else if (e === 3) {
         this.dialogInRepairResult = true
+      } else if (e === 4) {
+        this.dialogInReopen = true
       } else {
         this.formUpdateValue.currentHandler = this.form.currentHandler
         this.formUpdateValue.id = this.form.id

+ 40 - 3
src/views/Platform/defectManagement.vue

@@ -89,7 +89,7 @@
                     <el-dropdown-item icon="el-icon-coin" @click.native="getMember(), dialogInDevelopment = true, formStatus = scope.row, pauseData.pauseCurrentHandler = scope.row.assigner.split(',')">开发中</el-dropdown-item>
                     <el-dropdown-item icon="el-icon-coin" @click.native="getMember(), dialogWaitTest = true, formStatus = scope.row, pauseData.pauseCurrentHandler = scope.row.creator.split(','), pauseData.bugTypePause = scope.row.bugType">待测试</el-dropdown-item>
                     <el-dropdown-item icon="el-icon-coin" @click.native="dialogInRepairResult = true, formStatus = scope.row">已完成</el-dropdown-item>
-                    <el-dropdown-item icon="el-icon-coin" @click.native="reopenAndWait(scope.row, 4)">reopen</el-dropdown-item>
+                    <el-dropdown-item icon="el-icon-coin" @click.native="dialogInReopen = true, formStatus = scope.row">reopen</el-dropdown-item>
                   </el-dropdown-menu>
                 </el-dropdown>
               </template>
@@ -275,6 +275,17 @@
           <el-button type="primary" @click="queryFormDataRepair">确 定</el-button>
         </div>
       </el-dialog>
+      <el-dialog :visible.sync="dialogInReopen" width="40%">
+        <el-form ref="refeshReopenDialog" :model="pauseData" :rules="serviceDataRulesStatus">
+          <el-form-item label="reopen原因" prop="pauseReopenReason" label-width="30%">
+            <el-input v-model="pauseData.pauseReopenReason" type="textarea" autocomplete="off" rows="3" style="width:76%;" />
+          </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="dialogInReopen = false">取 消</el-button>
+          <el-button type="primary" @click="queryFormDataReopen">确 定</el-button>
+        </div>
+      </el-dialog>
       <el-dialog class="adjustHeight" :title="titName" :visible.sync="dialogFormVisible" width="70%">
         <el-form ref="form" :model="form" :rules="serviceDataRules">
           <div class="set-background">
@@ -467,6 +478,7 @@ export default {
     return {
       isPlatformShow: false,
       isBusinessShow: false,
+      dialogInReopen: false,
       groupShow: false,
       bugTypeStr: [],
       groupTypeStr: [],
@@ -516,13 +528,15 @@ export default {
         bugTypePause: '',
         pauseCurrentHandler: '',
         pauseRepairResult: '',
-        pauseReasonsAndSolutionForTheProblem: ''
+        pauseReasonsAndSolutionForTheProblem: '',
+        pauseReopenReason: ''
       },
       serviceDataRulesStatus: {
         pauseCurrentHandler: [{ required: true, message: '处理人不能为空', trigger: 'blur' }],
         reasonPause: [{ required: true, message: '问题原因不能为空', trigger: 'change' }],
         bugTypePause: [{ required: true, message: 'bug类型不能为空', trigger: 'change' }],
-        pauseRepairResult: [{ required: true, message: '修复结果不能为空', trigger: 'change' }]
+        pauseRepairResult: [{ required: true, message: '修复结果不能为空', trigger: 'change' }],
+        pauseReopenReason: [{ required: true, message: 'reopen原因不能为空', trigger: 'change' }]
         // pauseReasonsAndSolutionForTheProblem: [{ required: true, message: '修复方式不能为空', trigger: 'change' }]
       },
       dialogInDevelopment: false,
@@ -638,6 +652,29 @@ export default {
         }
       }
     },
+    // reopen弹窗
+    queryFormDataReopen() {
+      this.$refs.refeshReopenDialog.validate((valid) => {
+        if (valid) {
+          this.formUpdateValue.currentHandler = this.formStatus.currentHandler
+          this.formUpdateValue.id = this.formStatus.id
+          this.formUpdateValue.status = 4
+          this.formUpdateValue.reopenReason = this.pauseData.pauseReopenReason
+          this.userData = { id: '', ename: this.userInformation, name: this.userNames }
+          this.objData = { bugBaseInfo: this.formUpdateValue, user: this.userData }
+          bugUpdate(this.objData).then(res => {
+            if (res.code === 200) {
+              this.successFun('UpDate')
+              this.getList()
+            } else {
+              this.errorFun(res.msg)
+            }
+          })
+          this.dialogInReopen = false
+          this.formUpdateValue = {}
+        }
+      })
+    },
     dataQuery(e) {
       this.bizJson = localStorage.getItem('key')
       this.indexPage = e

+ 51 - 1
src/views/projectManage/projectList/projectPreview.vue

@@ -48,6 +48,38 @@
           <div class="divide-fullparts"><span style="font-weight:bold;">备注 :</span>&nbsp;&nbsp;&nbsp;{{ form.remarks }}</div>
         </div>
       </div>
+      <div class="block-gantta">
+        <v-gantt-chart
+          :title-height="titleHeight"
+          :title-width="titleWidth"
+          :cell-width="cellWidth"
+          :cell-height="cellHeight"
+          :start-time="startTime"
+          :end-time="endTime"
+          :time-lines="timeLines"
+          :datas="datas"
+          :scale="scale"
+        >
+          <template v-slot:block="{data,item}">
+            <gantta-right
+              :data-right="data"
+              :item="item"
+              :update-time-lines="updateTimeLines"
+              :cell-height="cellHeight"
+            />
+          </template>
+          <template v-slot:left="{data}">
+            <gantta-left :data-left="data" />
+          </template>
+          <template v-slot:title>
+            <div class="head">
+              <span>角色</span>
+              <span>人员</span>
+              <span>工作量</span>
+            </div>
+          </template>
+        </v-gantt-chart>
+      </div>
       <div class="block-end">
         <el-tabs v-model="activeName">
           <el-tab-pane label="任务列表" name="first">
@@ -384,7 +416,6 @@ export default {
 </script>
 
 <style lang="stylus" scoped>
-
   .set-background
     background-color #F2F3F6
     display flex
@@ -397,6 +428,25 @@ export default {
       width 100%
       margin 20px 0
       padding 10px 30px
+    .block-gantta
+      background-color rgba(255,255,255,1)
+      box-shadow 0px 0px 11px 0px rgba(238,240,245,1)
+      border-radius 7px
+      width 100%
+      margin 20px 0
+      padding 20px 30px
+      .head
+        width 100%
+        height 100%
+        display flex
+        // border-top 1px solid #fff
+        // border-left 1px solid #fff
+        justify-content space-around
+        background-color white
+        span
+          font-size 14px
+          font-family MicrosoftYaHei
+          color rgba(111,124,147,1)
     .block-end
       background-color rgba(255,255,255,1)
       box-shadow 0px 0px 11px 0px rgba(238,240,245,1)