|
@@ -4,10 +4,9 @@
|
|
|
<el-row class="headerBg" style="padding-bottom: 0;">
|
|
|
<el-col :span="24" class="Layout">
|
|
|
<div class="titFont Layout">
|
|
|
- <div class="titIcon" />
|
|
|
- <span style="margin-left: 10%; width: 100px;">缺陷</span>
|
|
|
+ <span style="margin-left: 10%; width: 100px; font-size: 28px; font-family:PingFangSC-Medium,PingFang SC;">缺陷</span>
|
|
|
</div>
|
|
|
- <el-button type="primary" plain size="mini" @click="createdDefect">新建缺陷</el-button>
|
|
|
+ <el-button type="primary" size="mini" @click="createdDefect">新建缺陷</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
<el-divider style="color: #EEF0F5;" />
|
|
@@ -15,18 +14,18 @@
|
|
|
<el-col :span="24" class="Layout" style="margin-left: 1.5%;">
|
|
|
<el-form :inline="true" label-position="left" :model="formInline" label-width="80px">
|
|
|
<el-form-item label="业务线">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="业务线">
|
|
|
- <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ <el-select v-model="formInline.bizId" size="small" clearable filterable placeholder="全部">
|
|
|
+ <el-option v-for="item in bizIdEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="状态">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="状态">
|
|
|
- <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ <el-select v-model="formInline.status" size="small" clearable filterable placeholder="全部">
|
|
|
+ <el-option v-for="item in bugEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="优先级">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="优先级">
|
|
|
- <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ <el-select v-model="formInline.priority" size="small" clearable filterable placeholder="全部">
|
|
|
+ <el-option v-for="item in priorityEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -39,64 +38,81 @@
|
|
|
<el-col :span="24" class="DetailedScreening">
|
|
|
<div style="margin: 1.5% 0 0 1.5%;">
|
|
|
<el-form-item label="缺陷等级">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="业务线">
|
|
|
+ <el-select v-model="formInline.name" size="small" clearable filterable placeholder="全部">
|
|
|
<el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="缺陷ID">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="状态">
|
|
|
+ <el-select v-model="formInline.name" size="small" clearable filterable placeholder="全部">
|
|
|
<el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="所属任务">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="优先级">
|
|
|
+ <el-select v-model="formInline.name" size="small" clearable filterable placeholder="全部">
|
|
|
<el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
</div>
|
|
|
<div style="margin-left: 1.5%;">
|
|
|
<el-form-item label="提报人">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="优先级">
|
|
|
- <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ <el-select v-model="formInline.rdOwner" filterable clearable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="small" placeholder="全部">
|
|
|
+ <el-option v-for="item in options" :key="item.idap" :label="item.name" :value="test2(item, 0)">
|
|
|
+ <div style="display: flex;justify-content: start;">
|
|
|
+ <div style="min-width:100px;color: #8492a6; font-size: 13px; overflow:hidden">{{ item.deptName }}</div>
|
|
|
+ <div style="min-width:80px">{{ item.name }}</div>
|
|
|
+ <div style="min-width:100px;color: #8492a6; font-size: 13px; overflow:hidden">{{ item.idap }}</div>
|
|
|
+ </div>
|
|
|
+ </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="责任人">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="优先级">
|
|
|
- <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ <el-select v-model="formInline.rdOwner" filterable clearable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="small" placeholder="全部">
|
|
|
+ <el-option v-for="item in options" :key="item.idap" :label="item.name" :value="test2(item, 0)">
|
|
|
+ <div style="display: flex;justify-content: start;">
|
|
|
+ <div style="min-width:100px;color: #8492a6; font-size: 13px; overflow:hidden">{{ item.deptName }}</div>
|
|
|
+ <div style="min-width:80px">{{ item.name }}</div>
|
|
|
+ <div style="min-width:100px;color: #8492a6; font-size: 13px; overflow:hidden">{{ item.idap }}</div>
|
|
|
+ </div>
|
|
|
+ </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="修复人">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="优先级">
|
|
|
- <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ <el-select v-model="formInline.rdOwner" filterable clearable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="small" placeholder="全部">
|
|
|
+ <el-option v-for="item in options" :key="item.idap" :label="item.name" :value="test2(item, 0)">
|
|
|
+ <div style="display: flex;justify-content: start;">
|
|
|
+ <div style="min-width:100px;color: #8492a6; font-size: 13px; overflow:hidden">{{ item.deptName }}</div>
|
|
|
+ <div style="min-width:80px">{{ item.name }}</div>
|
|
|
+ <div style="min-width:100px;color: #8492a6; font-size: 13px; overflow:hidden">{{ item.idap }}</div>
|
|
|
+ </div>
|
|
|
+ </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div style="margin-left: 1.5%;">
|
|
|
<el-form-item label="发现方式">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="优先级">
|
|
|
- <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ <el-select v-model="formInline.name" size="small" clearable filterable placeholder="全部">
|
|
|
+ <el-option v-for="item in discoveryMethodEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="发现阶段">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="优先级">
|
|
|
- <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ <el-select v-model="formInline.name" size="small" clearable filterable placeholder="全部">
|
|
|
+ <el-option v-for="item in bugStageEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="客户端">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="优先级">
|
|
|
+ <el-select v-model="formInline.name" size="small" clearable filterable placeholder="全部">
|
|
|
<el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div style="margin-left: 1.5%;">
|
|
|
<el-form-item label="版本">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="优先级">
|
|
|
+ <el-select v-model="formInline.name" size="small" clearable filterable placeholder="全部">
|
|
|
<el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="修复结果">
|
|
|
- <el-select v-model="formInline.name" size="small" clearable filterable placeholder="优先级">
|
|
|
+ <el-select v-model="formInline.name" size="small" clearable filterable placeholder="全部">
|
|
|
<el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -108,110 +124,370 @@
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
-
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
</el-header>
|
|
|
<el-main>
|
|
|
<el-row class="headerBg">
|
|
|
+ <el-col :span="24" style="min-height: 47vh;">
|
|
|
+ <el-table size="small" :data="tableData" style="width: 100%; font-size: 14px; color:rgba(102,102,102,1);" show-overflow-tooltip="true">
|
|
|
+ <el-table-column label="优先级" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div class="div_priority" :style="{background: priorityColors[scope.row.priority % priorityColors.length]}">{{ scope.row.priorityLevel }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="bugName" label="缺陷标题" min-width="180" align="center" show-overflow-tooltip>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div style="text-align: left;">
|
|
|
+ <span style=" color: #A7AEBC; font-size; 12px;">{{ 'BUG-' + scope.row.id }}</span><br>
|
|
|
+ <span class="bugNameSty" @click="click_bugName(scope.row.id)">{{ scope.row.bugName }}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="bizName" label="业务线" align="center" />
|
|
|
+ <el-table-column prop="priorityName" label="缺陷等级" align="center" />
|
|
|
+ <el-table-column prop="bugStatusName" label="状态" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div :style="{color: statusColors[scope.row.status % statusColors.length]}">{{ scope.row.bugStatusName }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="creatorList" label="提报人" align="center" />
|
|
|
+ <el-table-column prop="assignerList" label="责任人" align="center" />
|
|
|
+ <el-table-column prop="currentHandlerList" label="修复人" align="center" />
|
|
|
+ <el-table-column prop="gmtCreate" label="创建日期" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.gmtCreate | naspOut }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-table
|
|
|
- size="small"
|
|
|
- :data="tableData"
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-table-column
|
|
|
- prop="date"
|
|
|
- label="优先级"
|
|
|
- width="180"
|
|
|
- align="center"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- prop="name"
|
|
|
- label="缺陷标题"
|
|
|
- width="180"
|
|
|
- align="center"
|
|
|
+ <div align="right">
|
|
|
+ <el-pagination
|
|
|
+ :current-page="currentPage4"
|
|
|
+ :page-sizes="[15, 20, 30]"
|
|
|
+ :page-size="15"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="total"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
/>
|
|
|
- <el-table-column
|
|
|
- prop="address"
|
|
|
- label="业务线"
|
|
|
- align="center"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- prop="address"
|
|
|
- label="缺陷等级"
|
|
|
- align="center"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- prop="address"
|
|
|
- label="状态"
|
|
|
- align="center"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- prop="address"
|
|
|
- label="提报人"
|
|
|
- align="center"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- prop="address"
|
|
|
- label="责任人"
|
|
|
- align="center"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- prop="address"
|
|
|
- label="修复人"
|
|
|
- align="center"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- prop="address"
|
|
|
- label="创建日期"
|
|
|
- align="center"
|
|
|
- />
|
|
|
- </el-table>
|
|
|
+ </div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-main>
|
|
|
<createdBug v-if="modalShow" ref="createdBug" />
|
|
|
+ <el-drawer
|
|
|
+ style="margin-top: 80px;margin-left: 45%; width: 55%;box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)"
|
|
|
+ :title="'BUG-' + bugQuery.id"
|
|
|
+ size="100%"
|
|
|
+ :visible.sync="drawer"
|
|
|
+ :modal="false"
|
|
|
+ :with-header="false"
|
|
|
+ :before-close="handleClose"
|
|
|
+ :show-close="true"
|
|
|
+ :wrapper-closable="false"
|
|
|
+ >
|
|
|
+ <div style="margin: 3%;">
|
|
|
+ <div class="Layout">
|
|
|
+ <span>
|
|
|
+ <span style="font-weight: 600; font-size: 22px; vertical-align: middle;">{{ 'BUG-' + bugQuery.id }}</span>
|
|
|
+ <el-dropdown placement="bottom" style="margin-left: 10px;">
|
|
|
+ <el-button size="mini" plain>
|
|
|
+ 未开始<i class="el-icon-arrow-down el-icon--right" />
|
|
|
+ </el-button>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item @click.native="createDialogVisible = true">新建需求</el-dropdown-item>
|
|
|
+ <el-dropdown-item>新建任务</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ </span>
|
|
|
+ <span class="Layout" style="width: 100px;">
|
|
|
+ <el-dropdown placement="bottom">
|
|
|
+ <el-button size="mini" plain> ··· </el-button>
|
|
|
+ <el-dropdown-menu slot="dropdown" style="text-align: center;">
|
|
|
+ <el-dropdown-item @click.native="createDialogVisible = true">查看详情</el-dropdown-item>
|
|
|
+ <el-dropdown-item>删除</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <i class="el-icon-close" style="cursor: pointer;" @click="handleClose" />
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div style="margin: 3% 0%; font-weight: 600; font-size: 30px;">{{ bugQuery.bugName }}</div>
|
|
|
+ <div style="height: 570px; overflow:scroll;">
|
|
|
+ <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />详情</div>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-divider style="color: #EEF0F5;" />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form label-position="left" label-width="100px" :model="bugQuery" style="display:flex;" class="forms">
|
|
|
+ <span style="flex:1;">
|
|
|
+ <el-form-item label="所属任务:">{{ bugQuery.taskName }}</el-form-item>
|
|
|
+ <el-form-item label="优先级:">{{ bugQuery.priorityName }}</el-form-item>
|
|
|
+ <el-form-item label="所属模块:">{{ bugQuery.clientName }}</el-form-item>
|
|
|
+ <el-form-item label="发现方式:">{{ bugQuery.discoveryMethodName }}</el-form-item>
|
|
|
+ <el-form-item label="缺陷原因:">{{ bugQuery.reasomName }}</el-form-item>
|
|
|
+ <el-form-item label="Reopen次数:">{{ bugQuery.reopenTimes }}</el-form-item>
|
|
|
+ </span>
|
|
|
+ <span style="flex:1;">
|
|
|
+ <el-form-item label="端类型:">{{ bugQuery.platformTypeName }}</el-form-item>
|
|
|
+ <el-form-item label="缺陷等级:">{{ bugQuery.priority }}</el-form-item>
|
|
|
+ <el-form-item label="发现阶段:">{{ bugQuery.stageName }}</el-form-item>
|
|
|
+ <el-form-item label="缺陷类型:">{{ bugQuery.bugTypeName }}</el-form-item>
|
|
|
+ <el-form-item label="修复结果:">{{ bugQuery.repairResult }}</el-form-item>
|
|
|
+ </span>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />客户端信息</div>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-divider style="color: #EEF0F5;" />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form label-position="left" label-width="100px" :model="bugQuery" class="Layout forms">
|
|
|
+ <span style="width:50%; margin-right: 3%;">
|
|
|
+ <el-form-item label="客户端:">{{ bugQuery.appId }}</el-form-item>
|
|
|
+ <el-form-item label="机型:">{{ bugQuery.osType }}</el-form-item>
|
|
|
+ <el-form-item label="网络:">{{ bugQuery.networkType }}</el-form-item>
|
|
|
+ </span>
|
|
|
+ <span style="width:50%; margin-left: 3%;">
|
|
|
+ <el-form-item label="影响版本:">{{ bugQuery.discoveryMethodName }}</el-form-item>
|
|
|
+ <el-form-item label="系统版本:">{{ bugQuery.sdkVerison }}</el-form-item>
|
|
|
+ <el-form-item label="网络:">{{ bugQuery.networkType }}</el-form-item>
|
|
|
+ </span>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />用户信息</div>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-divider style="color: #EEF0F5;" />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form label-position="left" label-width="100px" :model="bugQuery" class="forms">
|
|
|
+ <el-form-item label="提报人:">{{ bugQuery.creator }}</el-form-item>
|
|
|
+ <el-form-item label="责任人">{{ bugQuery.assigner }}</el-form-item>
|
|
|
+ <el-form-item label="修复人">{{ bugQuery.currentHandler }}</el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />时间</div>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-divider style="color: #EEF0F5;" />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form label-position="left" label-width="100px" :model="bugQuery" class="forms">
|
|
|
+ <el-form-item label="修复时长:">{{ bugQuery.osType }}</el-form-item>
|
|
|
+ <el-form-item label="修复时长:">{{ bugQuery.osType }}</el-form-item>
|
|
|
+ <el-form-item label="修复时长:">{{ bugQuery.osType }}</el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />描述</div>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-divider style="color: #EEF0F5;" />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ {{ `If I knew it was the last time, I believe I wonldn't Say goodbye with smile. Although all of world is snowing,Although all migratory birds have followed to north. I am waiting for you here all the time until I am dead one day. I really don't know How many days that I can't sleep,only because of you. Come back,Come back to me!Please!` }}
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />附件</div>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-divider style="color: #EEF0F5;" />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col>
|
|
|
+ <el-upload
|
|
|
+ class="upload-demo"
|
|
|
+ action="http://star.xiaojukeji.com/upload/img.node"
|
|
|
+ :on-preview="handlePictureCardPreview"
|
|
|
+ :on-progress="progress"
|
|
|
+ :on-success="handleChange"
|
|
|
+ :file-list="fileList"
|
|
|
+ list-type="picture-card"
|
|
|
+ >
|
|
|
+ <el-button size="small" type="primary">上传附件</el-button>
|
|
|
+ </el-upload>
|
|
|
+ <el-dialog :visible.sync="dialogVisible">
|
|
|
+ <img width="100%" :src="dialogImageUrl" alt="">
|
|
|
+ </el-dialog>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />评论</div>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-divider style="color: #EEF0F5;" />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <p v-show="commentShow" style="color:#9B9B9B">还没有评论,快来评论吧!</p>
|
|
|
+ <div v-for="(item, value) of commentTxt" :key="value" class="animated bounceInRight">
|
|
|
+ <span style="color: #333B4A; font-size:14px;margin-left:1%;">{{ item.commentInfo.name }}</span>
|
|
|
+ <span style="color: #9B9B9B; font-size:12px;margin-left:1%;">{{ item.commentInfo.gmtCreater }}</span>
|
|
|
+ <p style="color: #333B4A; font-size:14px;margin-left:2%;">{{ item.commentInfo.content }}</p>
|
|
|
+ </div>
|
|
|
+ <el-input
|
|
|
+ v-model="content"
|
|
|
+ rows="6"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入评论内容..."
|
|
|
+ show-word-limit
|
|
|
+ />
|
|
|
+ <p style="text-align: right;">
|
|
|
+ <el-button size="mini" type="primary" @click="comment(content)">发表评论</el-button>
|
|
|
+ </p>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-drawer>
|
|
|
+
|
|
|
</el-container>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import createdBug from '@/views/Platform/bugManage/file/createdBug'
|
|
|
+import { bugList, bugGetEnum } from '@/api/defectManage'
|
|
|
+import { memberQueryMemberInfoByIDAPorName } from '@/api/projectIndex'
|
|
|
export default {
|
|
|
components: {
|
|
|
createdBug
|
|
|
},
|
|
|
+ filters: {
|
|
|
+ naspOut(value) {
|
|
|
+ if (!value) return ''
|
|
|
+ var da = value.split(/\s+/)
|
|
|
+ return da[0]
|
|
|
+ }
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
+ priorityColors: ['#F56C6C', '#FF8952', '#7ED321'],
|
|
|
+ statusColors: ['#7ED321', '#FFBD39', '#F56C6C', '#409EFF', '#409EFF'],
|
|
|
DetailedScreening: false, // 高级筛选
|
|
|
+ bugEnumList: [], // bug状态
|
|
|
+ bizIdEnumList: [], // bug业务线
|
|
|
+ priorityEnumList: [], // bug优先级
|
|
|
+ bugTypeEnumList: [], // bug类型
|
|
|
+ discoveryMethodEnumList: [], // 发现方式
|
|
|
+ bugStageEnumList: [], // 发现阶段
|
|
|
+ platformTypeEnumList: [], // 端类型
|
|
|
+ drawer: false, // 抽屉
|
|
|
+ bugQuery: '', // bug详情
|
|
|
+ commentShow: true, // 评论为空默认显示
|
|
|
+ content: '', // 评论
|
|
|
+ comment_content: '', // 评论内容
|
|
|
+ fileList: [], // 储存附件
|
|
|
+ dis: false,
|
|
|
+ commentTxt: [],
|
|
|
+ pageSize: 15,
|
|
|
+ curIndex: 1,
|
|
|
+ total: 0,
|
|
|
goodName: '更多筛选',
|
|
|
+ currentPage4: 1,
|
|
|
modalShow: false,
|
|
|
taskIdStr: [],
|
|
|
formInline: {
|
|
|
user: '',
|
|
|
region: ''
|
|
|
},
|
|
|
- tableData: [{
|
|
|
- date: '2016-05-02',
|
|
|
- name: '王小虎',
|
|
|
- address: '上海市普陀区金沙江路 1518 弄'
|
|
|
- }, {
|
|
|
- date: '2016-05-04',
|
|
|
- name: '王小虎',
|
|
|
- address: '上海市普陀区金沙江路 1517 弄'
|
|
|
- }, {
|
|
|
- date: '2016-05-01',
|
|
|
- name: '王小虎',
|
|
|
- address: '上海市普陀区金沙江路 1519 弄'
|
|
|
- }, {
|
|
|
- date: '2016-05-03',
|
|
|
- name: '王小虎',
|
|
|
- address: '上海市普陀区金沙江路 1516 弄'
|
|
|
- }]
|
|
|
+ tableData: [],
|
|
|
+ dialogVisible: false,
|
|
|
+ accessory: [],
|
|
|
+ loading: false,
|
|
|
+ options: [],
|
|
|
+ test: [], // 人员查询
|
|
|
+ dialogImageUrl: ''
|
|
|
}
|
|
|
},
|
|
|
+ created() {
|
|
|
+ this.getBugList()
|
|
|
+ this.bugListSelect()
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ getBugList() {
|
|
|
+ this.indexPage = {
|
|
|
+ // bizId: this.bizJson,
|
|
|
+ pageSize: this.pageSize,
|
|
|
+ curIndex: this.curIndex
|
|
|
+ }
|
|
|
+ bugList(this.indexPage).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ // this.statistics = res.query
|
|
|
+ this.tableData = res.data
|
|
|
+ this.total = res.total
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ test2(item, e) {
|
|
|
+ // 获取团队人员信息
|
|
|
+ if (typeof this.test[item.idap] === 'undefined') {
|
|
|
+ item.role = e
|
|
|
+ this.test[item.idap] = item
|
|
|
+ }
|
|
|
+ return item.idap
|
|
|
+ },
|
|
|
+ remoteMethod(query) {
|
|
|
+ // 人员查询
|
|
|
+ if (query !== '') {
|
|
|
+ this.loading = true
|
|
|
+ setTimeout(() => {
|
|
|
+ this.loading = false
|
|
|
+ memberQueryMemberInfoByIDAPorName({ memberIDAP: query }).then(res => {
|
|
|
+ const obj = {}
|
|
|
+ this.options = res.data.reduce((cur, next) => {
|
|
|
+ obj[next.idap] ? '' : obj[next.idap] = true && cur.push(next)
|
|
|
+ return cur
|
|
|
+ }, [])
|
|
|
+ })
|
|
|
+ }, 200)
|
|
|
+ } else {
|
|
|
+ this.options = []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handlePictureCardPreview(file) {
|
|
|
+ this.dialogImageUrl = file.url
|
|
|
+ this.dialogVisible = true
|
|
|
+ },
|
|
|
+
|
|
|
+ // 文件上传时的钩子
|
|
|
+ progress(event, file, fileList) {
|
|
|
+ this.dis = true
|
|
|
+ },
|
|
|
+
|
|
|
+ // 上传成功回调
|
|
|
+ handleChange(response, file, fileList) {
|
|
|
+ this.fileDbList.push({ 'name': file.name, 'url': 'http:' + file.response.url })
|
|
|
+ this.accessory = JSON.stringify(this.fileDbList)
|
|
|
+ this.dis = false
|
|
|
+ this.$message({ showClose: true, message: '文件上传成功', type: 'success' })
|
|
|
+ },
|
|
|
+ click_bugName(e) {
|
|
|
+ this.drawer = true
|
|
|
+ this.bugQuery = this.tableData.filter(value => value.id === e)[0]
|
|
|
+ console.log(this.bugQuery, 'ddd')
|
|
|
+ },
|
|
|
+ handleClose(done) {
|
|
|
+ this.drawer = false
|
|
|
+ },
|
|
|
onSubmit() {
|
|
|
console.log('submit!')
|
|
|
},
|
|
@@ -224,6 +500,30 @@ export default {
|
|
|
showSelect() {
|
|
|
this.DetailedScreening === false ? this.DetailedScreening = true : this.DetailedScreening = false
|
|
|
this.goodName === '更多筛选' ? this.goodName = '收起筛选' : this.goodName = '更多筛选'
|
|
|
+ },
|
|
|
+ handleSizeChange(val) {
|
|
|
+ this.pageSize = val
|
|
|
+ this.getBugList()
|
|
|
+ },
|
|
|
+ handleCurrentChange(val) {
|
|
|
+ this.curIndex = val
|
|
|
+ this.getBugList()
|
|
|
+ },
|
|
|
+ bugListSelect() {
|
|
|
+ bugGetEnum().then(res => {
|
|
|
+ this.bugEnumList = res.data.bugEnumList // status
|
|
|
+ this.bizIdEnumList = res.data.bizIdEnumList // bizId
|
|
|
+ this.priorityEnumList = res.data.priorityEnumList // priority
|
|
|
+ this.bugTypeEnumList = res.data.bugTypeEnumList // bug类型
|
|
|
+ // this.bugStatusPriority = res.data.priorityEnumList
|
|
|
+ this.bugStageEnumList = res.data.bugStageEnumList // 发现阶段
|
|
|
+ // this.reasonStr = res.data.reasonEnumList
|
|
|
+ this.platformTypeEnumList = res.data.platformTypeEnumList // 端类型
|
|
|
+ this.discoveryMethodEnumList = res.data.discoveryMethodEnumList // 发现方式
|
|
|
+ // this.repairResultStr = res.data.repairResultEnumList
|
|
|
+ // this.clientTypeEnumList = res.data.clientTypeEnumList
|
|
|
+ // this.serviceTypeEnumList = res.data.serviceTypeEnumList
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -239,6 +539,7 @@ export default {
|
|
|
padding: 2%;
|
|
|
height: auto;
|
|
|
border-radius: 8px;
|
|
|
+ overflow-x: hidden;
|
|
|
}
|
|
|
.Layout {
|
|
|
display:flex;
|
|
@@ -263,10 +564,8 @@ export default {
|
|
|
.screen {
|
|
|
font-size: 14px;
|
|
|
margin-right: 1.5%;
|
|
|
- color: #00A0FF
|
|
|
-}
|
|
|
-.screen:hover{
|
|
|
-cursor: pointer;
|
|
|
+ color: #00A0FF;
|
|
|
+ cursor: pointer;
|
|
|
}
|
|
|
.DetailedScreening {
|
|
|
border: 1px solid rgba(238,238,238,1);
|
|
@@ -276,4 +575,29 @@ cursor: pointer;
|
|
|
.el-tooltip__popper {
|
|
|
max-width: 20%!important;
|
|
|
}
|
|
|
+ .div_priority {
|
|
|
+ color: #ffffff;
|
|
|
+ width:fit-content;
|
|
|
+ padding: 0 12px;
|
|
|
+ border-radius: 4px;
|
|
|
+ margin: auto;
|
|
|
+}
|
|
|
+.bugNameSty:hover {
|
|
|
+ cursor: pointer;
|
|
|
+ color: #409EFF !important;
|
|
|
+}
|
|
|
+.forms .el-form-item {
|
|
|
+ margin-bottom: 0px;
|
|
|
+}
|
|
|
+.bgColor .el-divider--horizontal {
|
|
|
+ display: block;
|
|
|
+ height: 1px;
|
|
|
+ width: 100%;
|
|
|
+ margin: 15px 0;
|
|
|
+}
|
|
|
+.dividers {
|
|
|
+ margin-top: 4%;
|
|
|
+ font-weight: 600;
|
|
|
+ font-size: 18px;
|
|
|
+}
|
|
|
</style>
|