Explorar o código

mergeonline-problem

wenbobowen %!s(int64=4) %!d(string=hai) anos
pai
achega
c9c2b8684b

+ 1 - 1
src/api/configure.js

@@ -211,7 +211,7 @@ export function getBizNoticeSettingList(data) {
   })
 }
 
-// 新增需求或任务定时通知
+// 新增需求或任务、缺陷定时通知
 export function addBizNoticeSetting(data) {
   return request({
     url: TeamManagement + `/setting/addBizNoticeSetting`,

BIN=BIN
src/assets/detailPage/缺陷@2x.png


+ 118 - 17
src/views/ToConfigure/components/modifyNotice.vue

@@ -11,6 +11,7 @@
     <article>
       <h2 v-show="type==='require'" class="form-title">需求范围</h2>
       <h2 v-show="type==='task'" class="form-title">任务范围</h2>
+      <h2 v-show="type==='bug'" class="form-title">缺陷范围</h2>
       <el-form ref="form" :model="formData" label-width="100px" label-position="left">
         <el-form-item v-if="type === 'require'" label="需求方向">
           <el-cascader
@@ -25,7 +26,7 @@
             class="input-width"
           />
         </el-form-item>
-        <el-form-item v-if="type === 'task'" label="技术模块">
+        <el-form-item v-if="type === 'task' || type === 'bug'" label="技术模块">
           <el-cascader
             v-model="formData.techModuleIdList"
             size="small"
@@ -40,12 +41,17 @@
         </el-form-item>
       </el-form>
       <el-form ref="form" :model="formData" label-width="100px" label-position="left" :inline="true">
-        <el-form-item label="跟版客户端">
+        <el-form-item v-if="type === 'bug'" label="端类型">
+          <el-select v-model="formData.sysType" size="small" style="width: 209px;" :disabled="disabled" clearable filterable placeholder="请选择">
+            <el-option v-for="item in sysTypeEnumList" :key="item.code" :label="item.name" :value="item.code" />
+          </el-select>
+        </el-form-item>
+        <el-form-item v-if="type === 'require' || type === 'task'" label="跟版客户端">
           <el-select v-model="formData.clientId" placeholder="请选择" size="small" :disabled="disabled" clearable>
             <el-option v-for="item in appClientList" :key="'app'+item.code" :label="item.msg" :value="item.code" />
           </el-select>
         </el-form-item>
-        <el-form-item>
+        <el-form-item v-if="type === 'require' || type === 'task'">
           <el-select v-model="formData.clientVersionId" placeholder="请选择" size="small" :disabled="disabled" clearable>
             <el-option v-for="item in clientList" :key="'client'+item.code" :label="item.msg" :value="item.code" />
           </el-select>
@@ -57,21 +63,33 @@
           <el-select v-model="item.type" placeholder="请选择类型" size="small" class="condition-select" :disabled="disabled" @change="changeNoticeItem(item)">
             <el-option v-for="key in typeList" :key="key.label" :label="key.label" :value="key.value" />
           </el-select>
-          <el-select v-show="item.type === 1 || item.type === 3" v-model="item.status" placeholder="请选择状态" size="small" class="condition-select" :disabled="disabled">
+          <el-select v-show="item.type === 1 || item.type === 3 || item.type === 5" v-model="item.status" placeholder="请选择状态" size="small" class="condition-select" :disabled="disabled">
             <el-option v-for="key in statusList" :key="'status'+key.code" :label="key.msg" :value="key.code" />
           </el-select>
-          <el-select v-show="item.type === 1 || item.type === 3" v-model="item.triggerEvent" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
+          <el-select v-show="item.type === 103 || item.type === 203" v-model="item.status" placeholder="请选择状态" size="small" class="condition-select" :disabled="disabled">
+            <el-option v-for="key in noticeConditionScheduleTypeList" :key="'statu'+key.code" :label="key.name" :value="key.code" />
+          </el-select>
+          <el-select v-show="item.type === 1 || item.type === 3 || item.type === 5" v-model="item.triggerEvent" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
             <el-option v-for="key in triggerList" :key="'trigger'+key.code" :label="key.name" :value="key.code" />
           </el-select>
+          <el-select v-show="item.type === 103 || item.type === 203" v-model="item.triggerEvent" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
+            <el-option v-for="key in noticeScheduleOpList" :key="'trigge'+key.code" :label="key.name" :value="key.code" />
+          </el-select>
           <el-select v-show="item.type === 2 || item.type === 4" v-model="item.triggerEvent" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
             <el-option v-for="key in noticeEventList" :key="'event'+key.code" :label="key.name" :value="key.code" />
           </el-select>
           <el-select v-show="item.type === 1 || item.type === 3" v-model="item.greaterTime" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
             <el-option v-for="key in rangDaysList" :key="'greaterTime'+key.value" :label="key.label" :value="key.value" />
           </el-select>
+          <el-select v-show="item.type === 5" v-model="item.greaterTime" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
+            <el-option v-for="key in sDaysList" :key="'s'+key.value" :label="key.label" :value="key.value" />
+          </el-select>
           <el-select v-show="item.type === 2 || item.type === 4" v-model="item.lessTime" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
             <el-option v-for="key in aheadDaysList" :key="'lessTime'+key.value" :label="key.label" :value="key.value" />
           </el-select>
+          <el-select v-show="item.type === 103 || item.type === 203" v-model="item.greaterTime" placeholder="请选择" size="small" class="condition-select" :disabled="disabled">
+            <el-option v-for="key in DaysList" :key="'daily'+key.value" :label="key.label" :value="key.value" />
+          </el-select>
           <i v-show="!disabled" class="el-icon-remove-outline" @click="removeItem(index)" />
         </el-form-item>
         <div v-show="!disabled" class="add-condition" @click="addCondition()"><i class="el-icon-circle-plus-outline" /> 添加条件</div>
@@ -144,8 +162,9 @@
         </div>
       </el-form>
       <h2 class="form-title">通知时刻</h2>
-      <div class="notice-time">
+      <!-- <div class="notice-time">
         <el-time-select
+          v-if="type === 'task' || type === 'require'"
           v-model="formData.noticeTime"
           placeholder="任意时间点"
           size="small"
@@ -157,7 +176,19 @@
           }"
           :disabled="disabled"
         />
-      </div>
+      </div> -->
+      <el-form :model="formData" label-width="100px" label-position="left" :inline="true">
+        <el-form-item label="时间">
+          <el-select v-model="formData.noticeTimeList" multiple placeholder="任意时间点" size="small" style="width: 209px;" :disabled="disabled" clearable>
+            <el-option v-for="(key, index) in timeDateEnum" :key="'continuity'+index" :label="key" :value="key" />
+          </el-select>
+        </el-form-item><br>
+        <el-form-item label="频次">
+          <el-select v-model="formData.noticeFrequency" placeholder="请选择" size="small" style="width: 209px;" :disabled="disabled" clearable>
+            <el-option v-for="key in continuityDaysList" :key="'continuity'+key.value" :label="key.label" :value="key.value" />
+          </el-select>
+        </el-form-item>
+      </el-form>
     </article>
   </normal-dialog>
 </template>
@@ -173,7 +204,7 @@ import {
 } from '@/api/configure'
 import { teamQueryTeamListBelowBiz } from '@/api/toConfigure.js'
 import { settingQueryBizRqmtOrntList } from '@/api/requirement.js'
-import { settingQueryBizModuleList } from '@/api/defectManage'
+import { settingQueryBizModuleList, bugGetEnum } from '@/api/defectManage'
 // import { queryTeamInfoList } from '@/api/workSchedule'
 import { showAppClientEnum } from '@/api/version.js'
 import normalDialog from '@/components/dialog/normalDialog'
@@ -225,7 +256,7 @@ export default {
       directionList: [], // 需求方面列表
       modulesList: [], // 任务模块列表
       formData: {
-        type: this.type === 'require' ? 0 : 1,
+        type: this.type === 'bug' ? 2 : this.type === 'require' ? 0 : 1,
         bizId: this.bizId,
         requireOrientIdList: [], // 需求方向
         techModuleIdList: [], // 技术模块
@@ -249,6 +280,7 @@ export default {
         DChart: false, // DChart系统通知
         Group: false // DChart群通知
       },
+      timeDateEnum: [], // 时间list
       noticeGroupList: [], // 通知人群类型选择列表
       teamList: [], // 团队选择列表
       show: this.visible, // 显示弹框
@@ -256,6 +288,7 @@ export default {
       typeList: [], // 条件类型选择列表
       statusList: [], // 状态选择列表
       noticeEventList: [], // 事件列表
+      sysTypeEnumList: [], // 端类型
       triggerList: [], // 触发事件: 0 停留 1 交付 2 提测
       aheadDaysList: [
         { label: '3天前开始提醒', value: 3 },
@@ -263,7 +296,12 @@ export default {
         { label: '1天前开始提醒', value: 1 },
         { label: '过期提醒', value: 0 }
       ], // 提前几天提醒
-      rangDaysList: [] // 条件中大于天数列表
+      noticeScheduleOpList: [],
+      noticeConditionScheduleTypeList: [], // 全周期
+      rangDaysList: [], // 条件中大于天数列表
+      sDaysList: [],
+      DaysList: [], // 排期天数
+      continuityDaysList: [] // 通知时刻频次列表
     }
   },
   computed: {
@@ -358,22 +396,31 @@ export default {
     this.getRequireDirection()
     this.settingQueryBizModuleList()
     this.showAppClientEnum()
+    this.showBugListEnum()
     this.queryTeamInfoList()
     this.init()
+    this.gettimeDate(15)
   },
   methods: {
     initData(data) {
+      if (this.type === 'bug') {
+        data.noticeConditionList.map(item => {
+          item.timeUnit === 'DAY' ? item.greaterTime = item.greaterTime + 'D' : item.greaterTime = item.greaterTime + 'H'
+        })
+      }
       this.formData = {
         type: data.type,
         id: data.id,
         bizId: data.bizId,
+        sysType: data.sysType,
         requireOrientIdList: data.requireOrientIdList, // 需求方向
         techModuleIdList: data.techModuleIdList, // 技术模块
         clientId: data.clientId || null, // 客户端
         clientVersionId: data.clientVersionId, // 版本
         noticeConditionList: data.noticeConditionList || [], // 条件列表
         noticeSetting: {}, // 通知方式
-        noticeTime: data.noticeTime // 通知时刻
+        noticeTimeList: data.noticeTimeList, // 通知时刻
+        noticeFrequency: data.noticeFrequency // 频次
       }
       if (data.noticeSetting.email && data.noticeSetting.email.length > 0) {
         this.EmailList = Array(data.noticeSetting.email.length).fill({ type: 0, member: true, teams: [], customStaffs: [] })
@@ -397,6 +444,8 @@ export default {
     async getBizNoticeSettingEnum() { // 任务需求事件列表
       const res = await getBizNoticeSettingEnum(this.bizId)
       if (res.code === 200) {
+        this.noticeConditionScheduleTypeList = res.data.noticeConditionScheduleTypeList
+        this.noticeScheduleOpList = res.data.noticeScheduleOpList
         this.triggerList = res.data.noticeConditionOpList
         this.type === 'require'
           ? this.noticeEventList = res.data.noticeEventRequireOpList
@@ -415,6 +464,20 @@ export default {
         this.modulesList = this.getTaskData(res.data)
       }
     },
+    gettimeDate(minute) {
+      const seconds = minute * 60
+      const len = (60 * 24 * 60) / seconds // 数组长度
+      for (var i = 0, total = 0, newArr = []; i < len; i++) {
+        const h = parseInt(total / 3600)
+        const min = parseInt(total % 3600 / 60)
+        newArr.push(this.s(h) + ':' + this.s(min))
+        total = total + seconds
+      }
+      this.timeDateEnum = newArr
+    },
+    s(n) {
+      return n < 10 ? '0' + n : n
+    },
     getRequireData(data) {
       for (let i = 0; i < data.length; i++) {
         data[i].childRqmtOrnts.length < 1 ? delete data[i].childRqmtOrnts : this.getRequireData(data[i].childRqmtOrnts)
@@ -433,6 +496,16 @@ export default {
         this.appClientList = res.data.appClient
       }
     },
+    async showBugListEnum() {
+      const res = await bugGetEnum()
+      if (res.code === 200) {
+        this.statusList = res.data.bugEnumList.filter(item => {
+          item.msg = item.name
+          return item.name !== '已完成' && item.name !== 'Hold'
+        }) // status
+        this.sysTypeEnumList = res.data.sysTypeEnumList // 端类型
+      }
+    },
     async showRequireStatusEnum() { // 获取需求状态列表
       const res = await showRequireStatusEnum(this.bizId)
       if (res.code === 200) {
@@ -459,34 +532,51 @@ export default {
     init() {
       if (this.type === 'require') {
         this.data && !this.copy ? this.title = '编辑需求定时通知' : this.title = '新建需求定时通知'
-        this.typeList = [{ label: '需求状态', value: 1 }, { label: '需求事件', value: 2 }]
+        this.typeList = [{ label: '需求状态', value: 1 }, { label: '需求事件', value: 2 }, { label: '需求排期', value: 103 }]
         this.noticeGroupList = [{ label: '需求成员', value: 0 }, { label: '团队', value: 1 }, { label: '自定义人员', value: 2 }]
         this.showRequireStatusEnum()
-      } else {
+      } else if (this.type === 'task') {
         this.data && !this.copy ? this.title = '编辑任务定时通知' : this.title = '新建任务定时通知'
-        this.typeList = [{ label: '任务状态', value: 3 }, { label: '任务事件', value: 4 }]
+        this.typeList = [{ label: '任务状态', value: 3 }, { label: '任务事件', value: 4 }, { label: '任务排期', value: 203 }]
         this.noticeGroupList = [{ label: '任务成员', value: 0 }, { label: '团队', value: 1 }, { label: '自定义人员', value: 2 }]
         this.showTaskStatusEnum()
+      } else if (this.type === 'bug') {
+        this.data && !this.copy ? this.title = '编辑缺陷定时通知' : this.title = '新建缺陷定时通知'
+        this.typeList = [{ label: '缺陷状态', value: 5 }]
+        this.noticeGroupList = [{ label: '缺陷成员', value: 0 }, { label: '自定义人员', value: 2 }]
+        this.showBugListEnum()
       }
       let i = 1
+      let number = 1
+      while (number <= 24) {
+        number >= 6 ? this.sDaysList.push({ label: `大于${number}小时`, value: `${number}H` }) : ''
+        number++
+      }
       while (i <= 100) {
         this.rangDaysList.push({ label: `大于${i}天`, value: i })
+        this.sDaysList.push({ label: `大于${i}天`, value: `${i}D` })
+        this.DaysList.push({ label: `${i}天`, value: i })
+        this.continuityDaysList.push({ label: `连续${i}天`, value: i })
         i++
       }
+      this.continuityDaysList.unshift({ label: `每天`, value: -1 })
     },
     changeNoticeItem(item) { // 修改条件
       if (item.type === 1 || item.type === 3) {
         item.triggerEvent = this.triggerList[0].code
       } else if (item.type === 2 || item.type === 4) {
         item.triggerEvent = this.noticeEventList[0].code
+      } else if (item.type === 103 || item.type === 203) {
+        item.triggerEvent = this.noticeScheduleOpList[0].code
+        item.greaterTime = 1
       }
     },
-    addCondition() { // 添加条件
+    addCondition(val) { // 添加条件
       this.formData.noticeConditionList.push({
         type: this.typeList[0].value, // 1 需求状态 2 需求事件 3 任务状态 4 任务事件
         status: 0,
         triggerEvent: this.triggerList[0].code, // 触发事件
-        greaterTime: 1, // 大于的时间
+        greaterTime: this.type === 'bug' ? 1 + 'D' : 1, // 大于的时间
         lessTime: 3 // 提前提醒的时间
       })
     },
@@ -540,7 +630,7 @@ export default {
         this.$message({ message: '请选择一种通知方式', type: 'error', duration: 1000, offset: 150 })
         return false
       }
-      if (!this.formData.noticeTime) {
+      if (!this.formData.noticeTimeList) {
         this.$message({ message: '请选择通知时刻', type: 'error', duration: 1000, offset: 150 })
         return false
       }
@@ -549,6 +639,16 @@ export default {
         dChat: this.noticeList.DChart ? this.DChartList : [],
         dChatGroup: this.noticeList.Group ? this.GroupList : []
       }
+      if (this.type === 'bug') {
+        this.formData.noticeConditionList.map(item => {
+          const numDay = item.greaterTime
+          const str = numDay.split('')
+          const targetStr = str[str.length - 1]
+          item.timeUnit = targetStr === 'D' ? 'DAY' : 'HOUR'
+          const num = numDay.slice(0, numDay.length - 1)
+          item.greaterTime = num
+        })
+      }
       this.data && !this.copy ? this.updateBizNoticeSetting() : this.addBizNoticeSetting()
     },
     async addBizNoticeSetting() { // 新增通知
@@ -610,6 +710,7 @@ article{
   }
   .condition-select {
     width: 22%;
+    margin-right: 10px;
   }
   .add-condition,.add-notice {
     cursor: pointer;

+ 18 - 3
src/views/ToConfigure/components/noticeConfig.vue

@@ -15,6 +15,7 @@
         <ul class="add-require-task">
           <li @click="addNotice('require')">需求定时通知</li>
           <li @click="addNotice('task')">任务定时通知</li>
+          <li @click="addNotice('bug')">缺陷定时通知</li>
         </ul>
         <el-button slot="reference" type="primary" size="medium" class="control-add">
           <i class="el-icon-plus" />新建<i class="el-icon-arrow-down" />
@@ -30,19 +31,24 @@
           <div v-show="item.type === 1" class="task-img">
             <img :src="taskImg">
           </div>
+          <div v-show="item.type === 2" class="bug-img">
+            <img :src="bugImg">
+          </div>
           <div v-show="item.type === 0" class="item-title">需求定时通知</div>
           <div v-show="item.type === 1" class="item-title">任务定时通知</div>
+          <div v-show="item.type === 2" class="item-title">缺陷定时通知</div>
           <div class="item-span">
             <label v-show="item.type === 0">需求范围:</label>
             <label v-show="item.type === 1">任务范围:</label>
+            <label v-show="item.type === 2">缺陷范围:</label>
             <el-tooltip
               effect="dark"
-              :content="item.copywriter.requirementArea || item.copywriter.taskArea"
+              :content="item.copywriter.requirementArea || item.copywriter.taskArea || item.copywriter.bugArea"
               placement="bottom"
               popper-class="item-span-tooltip"
             >
               <div class="detail-contain">
-                {{ item.copywriter.requirementArea || item.copywriter.taskArea }}
+                {{ item.copywriter.requirementArea || item.copywriter.taskArea || item.copywriter.bugArea }}
               </div>
             </el-tooltip>
           </div>
@@ -136,6 +142,7 @@ import { mapGetters } from 'vuex'
 import modifyNotice from './modifyNotice'
 import requireImg from '@/assets/detailPage/需求@2x.png'
 import taskImg from '@/assets/detailPage/任务@2x.png'
+import bugImg from '@/assets/detailPage/缺陷@2x.png'
 import normalDialog from '@/components/dialog/normalDialog'
 export default {
   components: { modifyNotice, normalDialog },
@@ -144,6 +151,7 @@ export default {
       activeTab: 1,
       requireImg: requireImg,
       taskImg: taskImg,
+      bugImg: bugImg,
       disabled: false,
       copy: false,
       visibleModify: false, // 添加修改弹框
@@ -201,6 +209,8 @@ export default {
         this.modifyType = 'require'
       } else if (item.type === 1) {
         this.modifyType = 'task'
+      } else if (item.type === 2) {
+        this.modifyType = 'bug'
       }
       this.modifyData = item
       this.disabled = true
@@ -211,6 +221,8 @@ export default {
         this.modifyType = 'require'
       } else if (item.type === 1) {
         this.modifyType = 'task'
+      } else if (item.type === 2) {
+        this.modifyType = 'bug'
       }
       this.modifyData = item
       this.copy = copy
@@ -350,7 +362,7 @@ ul,li{
     height: 226px;
     padding: 24px 31px 0 121px;
     position: relative;
-    .require-img,.task-img {
+    .require-img,.task-img,.bug-img {
       position: absolute;
       left: 31px;
       top: 27px;
@@ -371,6 +383,9 @@ ul,li{
     .task-img {
       background:rgba(126,211,33,0.14);
     }
+    .bug-img {
+      background:rgba(255,137,82,0.14);
+    }
     .item-title {
       color:#333333;
       font-size: 16px;

+ 2 - 1
src/views/projectManage/bugList/details/bugTableDialog.vue

@@ -63,7 +63,7 @@
           <el-button class="bug-botton" @click="bugFormQuery = {}">重置</el-button>
           <el-button class="bug-botton" style="margin-left: 20px;" type="primary" @click="bugGetTableList(bugFormQuery, false, 2)">筛选</el-button>
         </div>
-        <div slot="reference" class="bug-Status" style="cursor: pointer;" @click="bugClickIcon"><svg-icon v-if="bugIcon" icon-class="筛选" /><svg-icon v-if="!bugIcon" icon-class="筛选1" /></div>
+        <div slot="reference" class="bug-Status" :class="{'bug-color': !bugIcon, 'bug-bgColor': bugIcon}" @click="bugClickIcon"><svg-icon v-if="bugIcon" icon-class="筛选" /><svg-icon v-if="!bugIcon" icon-class="筛选1" /> 筛选项 </div>
       </el-popover>
     </div>
     <el-table
@@ -400,6 +400,7 @@ export default {
   .bug-Status {
     line-height: 60px;
     padding: 0 30px;
+    cursor: pointer;
   }
   .bug-bgColor {
     color: #606266;

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

@@ -636,7 +636,7 @@ export default {
         /.*(zip|xlsx|text|csv|xls|mov|mp4|m4a|avi|amr|mp3|wav|3gpp|gif|jpeg|png|jpg)/i
       )
       const isUpload = file.type.match(reg)
-      if (!isUpload) {
+      if (isUpload === false) {
         this.$message({
           message: '不支持上传此文件格式',
           type: 'warning'

+ 2 - 1
src/views/projectManage/taskList/taskIndex.vue

@@ -90,7 +90,7 @@
               </div>
               <div class="Layout marginLeft">
                 <div class="queryName">状态</div>
-                <el-select v-model="form_task.status" size="small" clearable filterable placeholder="请选择">
+                <el-select v-model="form_task.statusList" size="small" multiple clearable filterable placeholder="请选择">
                   <el-option v-for="item in daStatus" :key="item.code" :label="item.msg" :value="item.code" />
                 </el-select>
               </div>
@@ -346,6 +346,7 @@ export default {
   created() {
     this.get_taskList()
     this.get_taskSelect()
+    this.bugDataGet()
     this.$store.state.data.status = true
   },
   mounted() {

+ 7 - 2
src/views/quality/components/requireDrawer.vue

@@ -1,8 +1,8 @@
 <template>
-  <el-drawer :title="Statistics.label" :visible.sync="drawer_" :direction="direction" :modal="false" size="100%" :before-close="handleClose">
+  <el-drawer :title="Statistics.label" :visible.sync="drawer_" :direction="direction" :modal="false" :class="{'drawer-box': showClass}" size="100%" :before-close="handleClose">
     <div class="_font">{{ Statistics.total }}</div>
     <div style="height: calc(100vh - 200px); overflow: scroll; overflow-x: hidden;">
-      <el-table :data="tableData" style="width: 100%;" class="integration-num">
+      <el-table :data="tableData" style="width: 100%;" :header-cell-style="{ 'color':'rgba(74,74,74,1)','font-size':'14px','font-weight':'500' }" class="integration-num">
         <el-table-column label="优先级" min-width="100">
           <template slot-scope="scope">
             <div class="div_priority" :style="{background: priorityColors[scope.row.priority % priorityColors.length]}">{{ 'P'+scope.row.priority }}</div>
@@ -68,6 +68,7 @@ export default {
       priorityColors: ['#F56C6C', '#FF8952', '#F5E300', '#7ED321', '#61D3B8', '#69B3FF', '#BDBDBD'],
       Statistics: {}, // title
       direction: 'rtl',
+      showClass: false,
       bugList: [],
       currentPage: 1,
       total: 0,
@@ -148,6 +149,7 @@ export default {
       const res = await bugGetEnum()
       if (res.code === 200) {
         this.bugList = res.data.bugEnumList
+        this.showClass = true
       }
     },
     handleSizeChange(val) {
@@ -198,6 +200,9 @@ export default {
     font-weight: 500;
     margin-bottom: 0px;
     padding: 20px 30px 0;
+}
+.drawer-box {
+  box-shadow: 0 8px 10px -5px rgba(0,0,0,.2), 0 16px 24px 2px rgba(0,0,0,.14), 0 6px 30px 5px rgba(0,0,0,.12);
 }
  .el-drawer__wrapper {
     width: 100%;

+ 1 - 1
src/views/quality/defectStatistics.vue

@@ -303,7 +303,7 @@
         </div>
       </el-main>
       <div @click.stop>
-        <require-drawer :drawer="drawer" :data="requireList" @clone="clone" />
+        <require-drawer v-if="drawer" :drawer="drawer" :data="requireList" @clone="clone" />
       </div>
     </el-container>
   </div>

+ 1 - 1
src/views/quality/requireStatistics.vue

@@ -183,7 +183,7 @@
         </div>
       </el-main>
       <div @click.stop>
-        <require-drawer :drawer="drawer" :data="requireList" @clone="clone" />
+        <require-drawer v-if="drawer" :drawer="drawer" :data="requireList" @clone="clone" />
       </div>
     </el-container>
   </div>

+ 1 - 1
src/views/quality/taskStatistics.vue

@@ -185,7 +185,7 @@
         </div>
       </el-main>
       <div @click.stop>
-        <require-drawer :drawer="drawer" :data="requireList" @clone="clone" />
+        <require-drawer v-if="drawer" :drawer="drawer" :data="requireList" @clone="clone" />
       </div>
     </el-container>
   </div>