Răsfoiți Sursa

优化1、 任务添加复制功能, 名称改为。复制从 xxx
2、 需求下 需求计划。 任务 加任务id 和任务列表一致
3、统计分析中缺陷 样式
4、任务查询条件中,希望增加一个是否免测的查询条件,方便统计开发自测的任务

qinzhipeng_v@didiglobal.com 4 ani în urmă
părinte
comite
cd1b0524cf

+ 1 - 1
src/views/projectManage/components/demand.vue

@@ -38,7 +38,7 @@
               <div v-else ref="Simulation" style="visibility: hidden;">{{ '你好' }}</div>
             </div>
 
-            <div class="templatTaskName cursorPo" @click="clickTemplatTaskName(scope.row)">{{ scope.row.name }}</div>
+            <div class="templatTaskName cursorPo" @click="clickTemplatTaskName(scope.row)">{{ scope.row.taskIdSting + scope.row.name }}</div>
 
             <div class="templatCreator">
               <el-tooltip class="item" effect="dark" content="点击修改" placement="top">

+ 6 - 1
src/views/projectManage/dialog_vue.vue

@@ -214,7 +214,11 @@ export default {
           })
           break
         case 3: // 编辑任务(任务详情)
-          this.tit_Name = '编辑任务'
+          if (id[0].type === 'copy') {
+            this.tit_Name = '新建任务'
+          } else {
+            this.tit_Name = '编辑任务'
+          }
           taskGet(id[1]).then(res => {
             this.requirementIdList = { 'name': '需求', 'data': res.data.requireId, taskId: res.data.id }
             this.dialogFormVisible = true
@@ -230,6 +234,7 @@ export default {
               that.task_form.followVersion === 1 ? that.show_Client = true : that.show_Client = false
               that.task_form.cliType = [res.data.bizId, res.data.type, res.data.clientType]
               that.task_form.involveApp = Number(res.data.involveApp)
+              if (id[0].type === 'copy') { that.$set(that.task_form, 'name', `复制从 ${id[0].name} `) }
               const arr_object = []
               arr_object.push(res.data.rdObject)
               arr_object.push(res.data.qaObject)

+ 15 - 4
src/views/projectManage/taskList/taskIndex.vue

@@ -51,7 +51,7 @@
         </div>
         <div v-show="DetailedScreening" class="stylus-more">
           <div>
-            <div class="Layout">
+            <div class="Layout" style="margin: 15px 0;">
               <el-form :model="form_task" class="flex_start">
                 <div class="Layout item">
                   <div class="queryName">所属项目</div>
@@ -114,7 +114,7 @@
             <div class="Layout" style="margin: 15px 0;">
               <el-form :model="form_task" class="flex_start">
                 <div class="Layout item">
-                  <div class="queryName" style="width:86px;">创建人</div>
+                  <div class="queryName">创建人</div>
                   <el-select
                     v-model="form_task.creater"
                     class="input"
@@ -136,6 +136,16 @@
                     </el-option>
                   </el-select>
                 </div>
+                <div class="Layout item">
+                  <div class="queryName">是否免测</div>
+                   <el-select v-model="form_task.notest" size="small" class="input" clearable filterable placeholder="请选择">
+                    <el-option v-for="item in isNoTest" :key="item.value" :label="item.label" :value="item.value" />
+                  </el-select>
+                </div>
+              </el-form>
+            </div>
+            <div class="Layout" style="margin: 15px 0;">
+              <el-form :model="form_task" class="flex_start">
                 <div class="Layout item">
                   <div class="queryName">创建日期</div>
                   <el-date-picker
@@ -148,7 +158,7 @@
                     end-placeholder="结束日期"
                     size="small"
                     class="input"
-                    style="min-width: 476px"
+                    style="min-width: 458px"
                     value-format="yyyy-MM-dd HH:mm:ss"
                     :default-time="['00:00:00','23:59:59']"
                     :picker-options="pickerOptions"
@@ -385,6 +395,7 @@ export default {
         multiple: true
       },
       isFromDpmList: [{ value: true, label: '是' }, { value: false, label: '否' }],
+      isNoTest: [{ value: 1, label: '是' }, { value: 0, label: '否' }],
       priorityColors: ['#F56C6C', '#FF8952', '#F5E300', '#7ED321', '#61D3B8', '#69B3FF', '#BDBDBD'],
       arr_priority: [{ value: 0, label: 'P0' }, { value: 1, label: 'P1' }, { value: 2, label: 'P2' }, { value: 3, label: 'P3' }],
       dialog_open: false,
@@ -881,7 +892,7 @@ export default {
 }
 .search_box {
   .item {
-    width: 270px;
+    // width: 270px;
     margin-right: 15px;
     .queryName {
       min-width: 80px;

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

@@ -85,7 +85,13 @@
           <div class="line" />
           <span style="vertical-align: bottom; cursor: pointer; color: #6F7C93;" @click.stop="setChild(), display = true"><img style="width: 20px; display: inline-block;" :src="image_url">&nbsp; {{ num }} &nbsp;</span>
           <div class="line" />
-          <i class="el-icon-setting icon-delete" @click="open_created" />
+           <el-dropdown placement="bottom">
+            <i class="el-icon-setting icon-delete" />
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item @click.native="open_created('update')">编辑任务</el-dropdown-item>
+              <el-dropdown-item @click.native="open_created('copy')">复制任务</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
           <div class="line" />
           <i class="el-icon-delete icon-delete" @click="deleteVisible = true" />
         </div>
@@ -850,12 +856,17 @@ export default {
     setChild() { // 设置成员
       this.$refs.drawer.getRoleList()
     },
-    open_created() { // 编辑任务
-      // 打开弹窗
+    open_created(type) { // 编辑任务
       this.updateVisible = true
-      this.$nextTick(() => {
-        this.$refs.task_createdUpdata.init(3, [null, this.taskId])
-      })
+      if (type === 'update') {
+        this.$nextTick(() => {
+          this.$refs.task_createdUpdata.init(3, [{ type: 'update' }, this.taskId])
+        })
+      } else if (type === 'copy') {
+        this.$nextTick(() => {
+          this.$refs.task_createdUpdata.init(3, [{ type: 'copy', name: this.form_query.name }, this.taskId])
+        })
+      }
     },
     async taskDelete() { // 删除任务
       const user = { name: this.userNames, ename: this.userInformation, id: '' }

+ 19 - 22
src/views/quality/defectStatistics.vue

@@ -206,35 +206,35 @@
             <el-table-column prop="name" label="模块" />
             <el-table-column v-if="activeTab=== 1" prop="newData" label="新增" sortable="custom" show-overflow-tooltip>
               <template slot-scope="scope">
-                <span @click.stop><span class="table-repair-item1 repair-span" style="cursor: pointer;" @click="getModuleData(scope.row)">{{ scope.row.newData.total }}</span></span>
+                <span @click.stop><span class="table-repair-item1 repair-span" style="cursor: pointer;" @click="getModuleData(scope.row)">{{ scope.row.newData.total }}</span> / </span>
                 <span class="repair-span">{{ scope.row.newData.detail[0].label }}:{{ scope.row.newData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.newData.detail[1].label }}:{{ scope.row.newData.detail[1].total }}</span>
               </template>
             </el-table-column>
             <el-table-column prop="newAndReopenData" label="待修复/Reopen" sortable="custom">
               <template slot-scope="scope">
-                <span class="table-repair-item2 repair-span2">{{ scope.row.newAndReopenData.total }}</span>
+                <span class="table-repair-item1 repair-span2">{{ scope.row.newAndReopenData.total }}</span> /
                 <span class="repair-span">{{ scope.row.newAndReopenData.detail[0].label }}:{{ scope.row.newAndReopenData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.newAndReopenData.detail[1].label }}:{{ scope.row.newAndReopenData.detail[1].total }}</span>
               </template>
             </el-table-column>
             <el-table-column prop="waitTestData" label="待测试" sortable="custom">
               <template slot-scope="scope">
-                <span class="table-repair-item2 repair-span2">{{ scope.row.waitTestData.total }}</span>
+                <span class="table-repair-item1 repair-span2">{{ scope.row.waitTestData.total }}</span> /
                 <span class="repair-span">{{ scope.row.waitTestData.detail[0].label }}:{{ scope.row.waitTestData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.waitTestData.detail[1].label }}:{{ scope.row.waitTestData.detail[1].total }}</span>
               </template>
             </el-table-column>
             <el-table-column prop="repairData" label="已完成" sortable="custom">
               <template slot-scope="scope">
-                <span class="table-repair-item2 repair-span2">{{ scope.row.repairData.total }}</span>
+                <span class="table-repair-item1 repair-span2">{{ scope.row.repairData.total }}</span> /
                 <span class="repair-span">{{ scope.row.repairData.detail[0].label }}:{{ scope.row.repairData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.repairData.detail[1].label }}:{{ scope.row.repairData.detail[1].total }}</span>
               </template>
             </el-table-column>
             <el-table-column prop="holdData" label="Hold" sortable="custom">
               <template slot-scope="scope">
-                <span class="table-repair-item2 repair-span2">{{ scope.row.holdData.total }}</span>
+                <span class="table-repair-item1 repair-span2">{{ scope.row.holdData.total }}</span> /
                 <span class="repair-span">{{ scope.row.holdData.detail[0].label }}:{{ scope.row.holdData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.holdData.detail[1].label }}:{{ scope.row.holdData.detail[1].total }}</span>
               </template>
@@ -248,7 +248,7 @@
             </el-table-column>
             <el-table-column prop="repairTimeAvgPurgeNhData" label="平均修复时长(去除节假日)" min-width="120">
               <template slot-scope="scope">
-                <span class="table-repair-item4 repair-span">{{ scope.row.repairTimeAvgPurgeNhData.total }}</span>
+                <span class="table-repair-item3 repair-span">{{ scope.row.repairTimeAvgPurgeNhData.total }}</span>
                 <span class="repair-span">{{ scope.row.repairTimeAvgPurgeNhData.detail[0].label }}:{{ scope.row.repairTimeAvgPurgeNhData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.repairTimeAvgPurgeNhData.detail[1].label }}:{{ scope.row.repairTimeAvgPurgeNhData.detail[1].total }}</span>
               </template>
@@ -273,43 +273,43 @@
               <template slot-scope="scope">
                 <span class="table-repair-item1 repair-span" @click.stop>
                   <span style="cursor: pointer;" @click="getBugmembers(scope.row, 'newData')">{{ scope.row.newData.total }}</span>
-                </span>
+                </span> /
                 <span class="repair-span">{{ scope.row.newData.detail[0].label }}:{{ scope.row.newData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.newData.detail[1].label }}:{{ scope.row.newData.detail[1].total }}</span>
               </template>
             </el-table-column>
             <el-table-column prop="newAndReopenData" label="待修复/Reopen" sortable="custom">
               <template slot-scope="scope">
-                <span class="table-repair-item2 repair-span2" @click.stop>
+                <span class="table-repair-item1 repair-span2" @click.stop>
                   <span style="cursor: pointer;" @click="getBugmembers(scope.row, 'newAndReopenData')">{{ scope.row.newAndReopenData.total }}</span>
-                </span>
+                </span> /
                 <span class="repair-span">{{ scope.row.newAndReopenData.detail[0].label }}:{{ scope.row.newAndReopenData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.newAndReopenData.detail[1].label }}:{{ scope.row.newAndReopenData.detail[1].total }}</span>
               </template>
             </el-table-column>
             <el-table-column prop="waitTestData" label="待测试" sortable="custom">
               <template slot-scope="scope">
-                <span class="table-repair-item2 repair-span2" @click.stop>
+                <span class="table-repair-item1 repair-span2" @click.stop>
                   <span style="cursor: pointer;" @click="getBugmembers(scope.row, 'waitTestData')">{{ scope.row.waitTestData.total }}</span>
-                </span>
+                </span> /
                 <span class="repair-span">{{ scope.row.waitTestData.detail[0].label }}:{{ scope.row.waitTestData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.waitTestData.detail[1].label }}:{{ scope.row.waitTestData.detail[1].total }}</span>
               </template>
             </el-table-column>
             <el-table-column prop="repairData" label="已完成" sortable="custom">
               <template slot-scope="scope">
-                <span class="table-repair-item2 repair-span2" @click.stop>
+                <span class="table-repair-item1 repair-span2" @click.stop>
                   <span style="cursor: pointer;" @click="getBugmembers(scope.row, 'repairData')">{{ scope.row.repairData.total }}</span>
-                </span>
+                </span> /
                 <span class="repair-span">{{ scope.row.repairData.detail[0].label }}:{{ scope.row.repairData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.repairData.detail[1].label }}:{{ scope.row.repairData.detail[1].total }}</span>
               </template>
             </el-table-column>
             <el-table-column prop="holdData" label="Hold" sortable="custom">
               <template slot-scope="scope">
-                <span class="table-repair-item2 repair-span2" @click.stop>
+                <span class="table-repair-item1 repair-span2" @click.stop>
                   <span style="cursor: pointer;" @click="getBugmembers(scope.row, 'holdData')">{{ scope.row.holdData.total }}</span>
-                </span>
+                </span> /
                 <span class="repair-span">{{ scope.row.holdData.detail[0].label }}:{{ scope.row.holdData.detail[0].total }}</span>
                 <span class="repair-span">{{ scope.row.holdData.detail[1].label }}:{{ scope.row.holdData.detail[1].total }}</span>
               </template>
@@ -325,7 +325,7 @@
             </el-table-column>
             <el-table-column prop="repairTimeAvgPurgeNhData" label="平均修复时长(去除节假日)" min-width="120">
               <template slot-scope="scope">
-                <span class="table-repair-item4 repair-span" @click.stop>
+                <span class="table-repair-item3 repair-span" @click.stop>
                   <span style="cursor: pointer;" @click="getBugmembers(scope.row, 'repairTimeAvgPurgeNhData')">{{ scope.row.repairTimeAvgPurgeNhData.total }}</span>
                 </span>
                 <span class="repair-span">{{ scope.row.repairTimeAvgPurgeNhData.detail[0].label }}:{{ scope.row.repairTimeAvgPurgeNhData.detail[0].total }}</span>
@@ -1085,20 +1085,17 @@ export default {
       .repair-span {
         padding-right: 5px;
       }
-      .table-repair-item1,.table-repair-item4 {
+      .table-repair-item1 {
         color:#4089FF;
         margin-right: 5px;
         font-size: 16px;
-      }
-      .table-repair-item2 {
-        color:#47D4D5;
-        margin-right: 5px;
-        font-size: 16px;
+        font-weight: 600;
       }
       .table-repair-item3 {
         color:#FD978A;
         margin-right: 5px;
         font-size: 16px;
+        font-weight: 600;
       }
     }
     .chart-contain {