|
|
@ -1,6 +1,6 @@ |
|
|
<template> |
|
|
<template> |
|
|
<section> |
|
|
|
|
|
<el-row class="app-container"> |
|
|
|
|
|
|
|
|
<section> |
|
|
|
|
|
<el-row class="app-container"> |
|
|
<el-select v-model="filters.bugStatus" placeholder="请选择状态" style="width:15%;" clearable @change="changeBugStatus"> |
|
|
<el-select v-model="filters.bugStatus" placeholder="请选择状态" style="width:15%;" clearable @change="changeBugStatus"> |
|
|
<el-option v-for="(b,index) in options['bugStatus']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} |
|
|
<el-option v-for="(b,index) in options['bugStatus']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} |
|
|
</el-option> |
|
|
</el-option> |
|
|
@ -12,7 +12,7 @@ |
|
|
<el-select class="hidden-md-and-down" v-model="filters.bugSeverity" placeholder="请选择严重程度" clearable @change="changeBugSeverity"> |
|
|
<el-select class="hidden-md-and-down" v-model="filters.bugSeverity" placeholder="请选择严重程度" clearable @change="changeBugSeverity"> |
|
|
<el-option v-for="(b,index) in options['bugSeverity']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} |
|
|
<el-option v-for="(b,index) in options['bugSeverity']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
|
|
|
|
|
|
</el-select> |
|
|
<el-tag v-if=" filters.product " closable @close="clearProduct">{{this.filters.product.productName}}</el-tag> |
|
|
<el-tag v-if=" filters.product " closable @close="clearProduct">{{this.filters.product.productName}}</el-tag> |
|
|
<el-button v-else @click="showProductVisible" type="plian">选产品</el-button> |
|
|
<el-button v-else @click="showProductVisible" type="plian">选产品</el-button> |
|
|
<el-button v-if=" !filters.menus || filters.menus.length==0" @click="showMenu"> 选择故事</el-button> |
|
|
<el-button v-if=" !filters.menus || filters.menus.length==0" @click="showMenu"> 选择故事</el-button> |
|
|
@ -21,7 +21,7 @@ |
|
|
<template slot="append"> |
|
|
<template slot="append"> |
|
|
<el-button @click="searchXmQuestions" type="primary" icon="el-icon-search"></el-button> |
|
|
<el-button @click="searchXmQuestions" type="primary" icon="el-icon-search"></el-button> |
|
|
</template> |
|
|
</template> |
|
|
</el-input> |
|
|
|
|
|
|
|
|
</el-input> |
|
|
<el-button type="primary" icon="el-icon-plus" @click="showAdd"> |
|
|
<el-button type="primary" icon="el-icon-plus" @click="showAdd"> |
|
|
</el-button> |
|
|
</el-button> |
|
|
<el-popover |
|
|
<el-popover |
|
|
@ -33,59 +33,59 @@ |
|
|
<el-col :span="24" style="padding-top:5px;"> |
|
|
<el-col :span="24" style="padding-top:5px;"> |
|
|
<font class="more-label-font">产品:</font><el-tag v-if=" filters.product " closable @close="clearProduct">{{this.filters.product.productName}}</el-tag> |
|
|
<font class="more-label-font">产品:</font><el-tag v-if=" filters.product " closable @close="clearProduct">{{this.filters.product.productName}}</el-tag> |
|
|
<el-button v-else @click="showProductVisible" type="plian">选产品</el-button> |
|
|
<el-button v-else @click="showProductVisible" type="plian">选产品</el-button> |
|
|
</el-col> |
|
|
|
|
|
|
|
|
</el-col> |
|
|
<el-col :span="24" style="padding-top:12px;" v-if="!selProject"> |
|
|
<el-col :span="24" style="padding-top:12px;" v-if="!selProject"> |
|
|
<font class="more-label-font">项目:</font> |
|
|
<font class="more-label-font">项目:</font> |
|
|
<el-tag v-if="filters.selProject && !selProject" closable @close="clearProject" @click="showProjectList(true)">{{ filters.selProject.name }}</el-tag> |
|
|
<el-tag v-if="filters.selProject && !selProject" closable @close="clearProject" @click="showProjectList(true)">{{ filters.selProject.name }}</el-tag> |
|
|
<el-button v-else @click="showProjectList(true)" >选择项目</el-button> |
|
|
<el-button v-else @click="showProjectList(true)" >选择项目</el-button> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="24" style="padding-top:12px;"> |
|
|
<el-col :span="24" style="padding-top:12px;"> |
|
|
<font class="more-label-font">创建者:</font> |
|
|
<font class="more-label-font">创建者:</font> |
|
|
<el-button v-if="!filters.createUser" @click="showGroupUsers('createUser')">选择创建人</el-button> |
|
|
|
|
|
|
|
|
<el-button v-if="!filters.createUser" @click="showGroupUsers('createUser')">选择创建人</el-button> |
|
|
<el-tag v-else closable @close="clearCreateUser" @click="showGroupUsers('createUser')">{{filters.createUser.username}}</el-tag> |
|
|
<el-tag v-else closable @close="clearCreateUser" @click="showGroupUsers('createUser')">{{filters.createUser.username}}</el-tag> |
|
|
<el-button v-if="!filters.createUser||filters.createUser.userid!=userInfo.userid" @click="setFiltersCreateUserAsMySelf">我的</el-button> |
|
|
|
|
|
|
|
|
<el-button v-if="!filters.createUser||filters.createUser.userid!=userInfo.userid" @click="setFiltersCreateUserAsMySelf">我的</el-button> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="24" style="padding-top:12px;"> |
|
|
<el-col :span="24" style="padding-top:12px;"> |
|
|
<font class="more-label-font">指派给:</font> |
|
|
<font class="more-label-font">指派给:</font> |
|
|
<el-button v-if="!filters.handlerUsername" @click="showGroupUsers('handlerUser')">选择被指派人</el-button> |
|
|
|
|
|
|
|
|
<el-button v-if="!filters.handlerUsername" @click="showGroupUsers('handlerUser')">选择被指派人</el-button> |
|
|
<el-tag v-else closable @close="clearHandler" @click="showGroupUsers('handlerUser')">{{filters.handlerUsername}}</el-tag> |
|
|
<el-tag v-else closable @close="clearHandler" @click="showGroupUsers('handlerUser')">{{filters.handlerUsername}}</el-tag> |
|
|
<el-button v-if="filters.handlerUserid!=userInfo.userid" @click="setFiltersHandlerAsMySelf">我的</el-button> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="24" style="padding-top:12px;"> |
|
|
|
|
|
曾经由<el-button v-if="!filters.hisHandler||!filters.hisHandler.userid" @click="showGroupUsers('hisHandler')">执行人</el-button> |
|
|
|
|
|
|
|
|
<el-button v-if="filters.handlerUserid!=userInfo.userid" @click="setFiltersHandlerAsMySelf">我的</el-button> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="24" style="padding-top:12px;"> |
|
|
|
|
|
曾经由<el-button v-if="!filters.hisHandler||!filters.hisHandler.userid" @click="showGroupUsers('hisHandler')">执行人</el-button> |
|
|
<el-tag v-else closable @close="clearHisHandler" @click="showGroupUsers('hisHandler')">{{filters.hisHandler.username}}</el-tag> |
|
|
<el-tag v-else closable @close="clearHisHandler" @click="showGroupUsers('hisHandler')">{{filters.hisHandler.username}}</el-tag> |
|
|
<el-button v-if="!filters.hisHandler||filters.hisHandler.userid!=userInfo.userid" @click="setFiltersHisHandlerAsMySelf">我的</el-button> |
|
|
|
|
|
|
|
|
<el-button v-if="!filters.hisHandler||filters.hisHandler.userid!=userInfo.userid" @click="setFiltersHisHandlerAsMySelf">我的</el-button> |
|
|
变更状态为 |
|
|
变更状态为 |
|
|
<el-select v-model="filters.hisHandleStatus" placeholder="请选择状态" clearable @change="changeHisHandleStatus"> |
|
|
<el-select v-model="filters.hisHandleStatus" placeholder="请选择状态" clearable @change="changeHisHandleStatus"> |
|
|
<el-option v-for="(b,index) in options['bugStatus']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} |
|
|
<el-option v-for="(b,index) in options['bugStatus']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select>的缺陷 |
|
|
</el-select>的缺陷 |
|
|
</el-col> |
|
|
|
|
|
|
|
|
</el-col> |
|
|
<el-col :span="24" style="padding-top:5px;"> |
|
|
<el-col :span="24" style="padding-top:5px;"> |
|
|
<font class="more-label-font">故事:</font> |
|
|
<font class="more-label-font">故事:</font> |
|
|
<font v-if=" filters.menus && filters.menus.length>0"> |
|
|
<font v-if=" filters.menus && filters.menus.length>0"> |
|
|
<el-tag v-for="(item,index) in filters.menus" :key="index" closable @close="clearFiltersMenu(item)">{{item.menuName.substr(0,10)}}</el-tag> |
|
|
<el-tag v-for="(item,index) in filters.menus" :key="index" closable @close="clearFiltersMenu(item)">{{item.menuName.substr(0,10)}}</el-tag> |
|
|
</font> |
|
|
</font> |
|
|
<el-button v-else @click="showMenu" type="plian">选故事</el-button> |
|
|
<el-button v-else @click="showMenu" type="plian">选故事</el-button> |
|
|
</el-col> |
|
|
|
|
|
<el-col :span="24" class="hidden-lg-and-up" style="padding-top:12px;"> |
|
|
|
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="24" class="hidden-lg-and-up" style="padding-top:12px;"> |
|
|
<el-select v-model="filters.priority" placeholder="请选择紧急程度" clearable @change="changePriority"> |
|
|
<el-select v-model="filters.priority" placeholder="请选择紧急程度" clearable @change="changePriority"> |
|
|
<el-option v-for="(b,index) in options['urgencyLevel']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} |
|
|
<el-option v-for="(b,index) in options['urgencyLevel']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-col> |
|
|
|
|
|
<el-col :span="24" style="padding-top:12px;"> |
|
|
|
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="24" style="padding-top:12px;"> |
|
|
<el-select v-model="filters.solution" placeholder="请选择解决方案" clearable @change="changeSolution"> |
|
|
<el-select v-model="filters.solution" placeholder="请选择解决方案" clearable @change="changeSolution"> |
|
|
<el-option v-for="(b,index) in options['bugSolution']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} |
|
|
<el-option v-for="(b,index) in options['bugSolution']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-col> |
|
|
|
|
|
|
|
|
</el-col> |
|
|
<el-col :span="24" style="padding-top:5px;"> |
|
|
<el-col :span="24" style="padding-top:5px;"> |
|
|
<font class="more-label-font">创建时间:</font> |
|
|
|
|
|
|
|
|
<font class="more-label-font">创建时间:</font> |
|
|
<el-date-picker |
|
|
<el-date-picker |
|
|
v-model="dateRanger" |
|
|
|
|
|
|
|
|
v-model="dateRanger" |
|
|
type="daterange" |
|
|
type="daterange" |
|
|
align="right" |
|
|
align="right" |
|
|
unlink-panels |
|
|
unlink-panels |
|
|
@ -95,12 +95,12 @@ |
|
|
value-format="yyyy-MM-dd" |
|
|
value-format="yyyy-MM-dd" |
|
|
:default-time="['00:00:00','23:59:59']" |
|
|
:default-time="['00:00:00','23:59:59']" |
|
|
:picker-options="pickerOptions" |
|
|
:picker-options="pickerOptions" |
|
|
></el-date-picker> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
></el-date-picker> |
|
|
|
|
|
</el-col> |
|
|
<el-col :span="24" style="padding-top:5px;"> |
|
|
<el-col :span="24" style="padding-top:5px;"> |
|
|
<font class="more-label-font">最后更新时间:</font> |
|
|
|
|
|
|
|
|
<font class="more-label-font">最后更新时间:</font> |
|
|
<el-date-picker |
|
|
<el-date-picker |
|
|
v-model="ltimeRanger" |
|
|
|
|
|
|
|
|
v-model="ltimeRanger" |
|
|
type="daterange" |
|
|
type="daterange" |
|
|
align="right" |
|
|
align="right" |
|
|
unlink-panels |
|
|
unlink-panels |
|
|
@ -110,96 +110,83 @@ |
|
|
value-format="yyyy-MM-dd" |
|
|
value-format="yyyy-MM-dd" |
|
|
:default-time="['00:00:00','23:59:59']" |
|
|
:default-time="['00:00:00','23:59:59']" |
|
|
:picker-options="pickerOptions" |
|
|
:picker-options="pickerOptions" |
|
|
></el-date-picker> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
></el-date-picker> |
|
|
|
|
|
</el-col> |
|
|
<el-col :span="24" style="padding-top:5px;"> |
|
|
<el-col :span="24" style="padding-top:5px;"> |
|
|
<el-button type="primary" icon="el-icon-search" @click="searchXmQuestions">查询</el-button> |
|
|
<el-button type="primary" icon="el-icon-search" @click="searchXmQuestions">查询</el-button> |
|
|
<el-button @click="handleExport" icon="el-icon-download">导出</el-button> |
|
|
<el-button @click="handleExport" icon="el-icon-download">导出</el-button> |
|
|
</el-col> |
|
|
|
|
|
|
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-button slot="reference" icon="el-icon-more" circle></el-button> |
|
|
<el-button slot="reference" icon="el-icon-more" circle></el-button> |
|
|
</el-popover> |
|
|
|
|
|
|
|
|
</el-popover> |
|
|
|
|
|
|
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-row class="app-container"> |
|
|
<el-row class="app-container"> |
|
|
<!--列表 XmQuestion xm_question--> |
|
|
<!--列表 XmQuestion xm_question--> |
|
|
<el-table ref="table" :height="tableHeight" :data="xmQuestions" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> |
|
|
<el-table ref="table" :height="tableHeight" :data="xmQuestions" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> |
|
|
<el-table-column sortable type="index" width="45"></el-table-column> |
|
|
|
|
|
<el-table-column prop="name" label="缺陷名称" min-width="200" show-overflow-tooltip> |
|
|
|
|
|
|
|
|
<el-table-column type="index" width="45"></el-table-column> |
|
|
|
|
|
<el-table-column prop="name" label="缺陷名称" min-width="200" show-overflow-tooltip> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<el-tag type="info" v-if="scope.row.bugStatus=='create' ">创建</el-tag> |
|
|
|
|
|
<el-tag type="primary" v-else-if="scope.row.bugStatus=='active'">激活</el-tag> |
|
|
|
|
|
<el-tag type="warning" v-else-if="scope.row.bugStatus=='confirm'">确认</el-tag> |
|
|
|
|
|
<el-tag type="warning" v-else-if="scope.row.bugStatus=='confirmed'">已确认</el-tag> |
|
|
|
|
|
<el-tag type="success" v-else-if="scope.row.bugStatus=='solve'">解决</el-tag> |
|
|
|
|
|
<el-tag type="success" v-else-if="scope.row.bugStatus=='resolved'">已解决</el-tag> |
|
|
|
|
|
<el-tag type="success" v-else-if="scope.row.bugStatus=='close'">关闭</el-tag> |
|
|
|
|
|
<el-tag type="success" v-else-if="scope.row.bugStatus=='closed'">已关闭</el-tag> |
|
|
|
|
|
<el-tag v-else>{{scope.row.bugStatus}}</el-tag> |
|
|
|
|
|
<el-link type="primary" @click="showEdit(scope.row)">{{scope.row.name}}</el-link> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
|
|
|
|
<el-table-column prop="menuName" label="故事" width="100" show-overflow-tooltip></el-table-column> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column prop="bugSeverity" label="严重程度" width="100" :formatter="formatterOption"></el-table-column> |
|
|
|
|
|
<el-table-column prop="createUsername" label="创建人" width="100" show-overflow-tooltip></el-table-column> |
|
|
|
|
|
<el-table-column prop="handlerUsername" width="100" label="指派给" show-overflow-tooltip> |
|
|
|
|
|
<template slot="header"> |
|
|
|
|
|
指派给<el-button @click="showGroupUsers('handlerUser')" icon="el-icon-search" circle size="mini"></el-button> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column sortable prop="ltime" label="更新时间" width="120" show-overflow-tooltip></el-table-column> |
|
|
|
|
|
<el-table-column prop="lremark" label="更新说明" width="100" show-overflow-tooltip></el-table-column> |
|
|
|
|
|
<el-table-column prop="createTime" label="创建时间" width="120" :formatter="formatterDate" show-overflow-tooltip></el-table-column> |
|
|
|
|
|
<el-table-column prop="bizFlowState" label="升级处理" width="120" > |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
|
|
|
|
|
|
<el-tooltip v-if="scope.row.flowState!='' && scope.row.flowState!=null" :content="showApprovaInfo(scope.row)" placement="bottom" effect="light"> |
|
|
|
|
|
<el-tag v-if="scope.row.flowState=='0' || scope.row.flowState==null ">未发审</el-tag> |
|
|
|
|
|
<el-tag v-else-if="scope.row.flowState=='1'">审核中</el-tag> |
|
|
|
|
|
<el-tag v-else-if="scope.row.flowState=='2'">已通过</el-tag> |
|
|
|
|
|
<el-tag v-else-if="scope.row.flowState=='3'">未通过</el-tag> |
|
|
|
|
|
<el-tag v-else-if="scope.row.flowState=='4'">已取消</el-tag> |
|
|
|
|
|
</el-tooltip> |
|
|
|
|
|
<el-button icon="el-icon-star-on" v-if="!scope.row.flowState" @click="handleCommand({type:'sendToProcessApprova',data:scope.row,bizKey:'xm_question_up_approva'})">{{qtype=='risk'?'升级':'升级'}}</el-button> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column style="text-align:center;" class="el-icon-s-operation" align="center" width="100" fixed="right" > |
|
|
|
|
|
<!-- <template slot="header" slot-scope="scope"><div class="el-icon-s-operation"></div></template> --> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<!-- <el-popover style="min-width:0 !important;" popper-class="autowidth" placement="left" trigger="hover"> --> |
|
|
|
|
|
<el-button-group> |
|
|
|
|
|
<el-button size="small" type="primary" @click.stop="showEdit(scope.row)">{{showSolveName(scope.row)}}</el-button> |
|
|
|
|
|
</el-button-group> |
|
|
|
|
|
<!-- <el-button slot="reference" class="see-more" type="text" icon="el-icon-more"></el-button> |
|
|
|
|
|
</el-popover> --> |
|
|
|
|
|
|
|
|
<div> |
|
|
|
|
|
<span> |
|
|
|
|
|
<el-tag type="info" v-if="scope.row.bugStatus=='create' ">创建</el-tag> |
|
|
|
|
|
<el-tag type="primary" v-else-if="scope.row.bugStatus=='active'">已激活</el-tag> |
|
|
|
|
|
<el-tag type="warning" v-else-if="scope.row.bugStatus=='confirm'">确认</el-tag> |
|
|
|
|
|
<el-tag type="warning" v-else-if="scope.row.bugStatus=='confirmed'">已确认</el-tag> |
|
|
|
|
|
<el-tag type="success" v-else-if="scope.row.bugStatus=='solve'">解决</el-tag> |
|
|
|
|
|
<el-tag type="success" v-else-if="scope.row.bugStatus=='resolved'">已解决</el-tag> |
|
|
|
|
|
<el-tag type="success" v-else-if="scope.row.bugStatus=='close'">关闭</el-tag> |
|
|
|
|
|
<el-tag type="success" v-else-if="scope.row.bugStatus=='closed'">已关闭</el-tag> |
|
|
|
|
|
<el-tag v-else>{{scope.row.bugStatus}}</el-tag> |
|
|
|
|
|
<el-tag type="info" v-if="scope.row.bugSeverity=='4' ">{{formatterOption(scope.row,{property:'bugSeverity'},scope.row.bugSeverity)}}</el-tag> |
|
|
|
|
|
<el-tag type="primary" v-else-if="scope.row.bugSeverity=='3'">{{formatterOption(scope.row,{property:'bugSeverity'},scope.row.bugSeverity)}}</el-tag> |
|
|
|
|
|
<el-tag type="warning" v-else-if="scope.row.bugSeverity=='2'">{{formatterOption(scope.row,{property:'bugSeverity'},scope.row.bugSeverity)}}</el-tag> |
|
|
|
|
|
<el-tag type="danger" v-else-if="scope.row.bugSeverity=='1'">{{formatterOption(scope.row,{property:'bugSeverity'},scope.row.bugSeverity)}}</el-tag> |
|
|
|
|
|
<el-tag v-else>{{formatterOption(scope.row,{property:'bugSeverity'},scope.row.bugSeverity)}}</el-tag> |
|
|
|
|
|
<el-tooltip :content="scope.row.createUsername+'创建于'+scope.row.createTime+', 于'+scope.row.ltime+'指派给'+scope.row.handlerUsername"><el-tag type="info">{{scope.row.handlerUsername}}</el-tag></el-tooltip> |
|
|
|
|
|
|
|
|
|
|
|
<span> |
|
|
|
|
|
<el-tooltip v-if="scope.row.flowState!='' && scope.row.flowState!=null" :content="showApprovaInfo(scope.row)" placement="bottom" effect="light"> |
|
|
|
|
|
<el-tag v-if="scope.row.flowState=='0' || scope.row.flowState==null ">未发审</el-tag> |
|
|
|
|
|
<el-tag v-else-if="scope.row.flowState=='1'">审核中</el-tag> |
|
|
|
|
|
<el-tag v-else-if="scope.row.flowState=='2'">已通过</el-tag> |
|
|
|
|
|
<el-tag v-else-if="scope.row.flowState=='3'">未通过</el-tag> |
|
|
|
|
|
<el-tag v-else-if="scope.row.flowState=='4'">已取消</el-tag> |
|
|
|
|
|
</el-tooltip> |
|
|
|
|
|
<el-button icon="el-icon-upload2" v-if="!scope.row.flowState" @click="handleCommand({type:'sendToProcessApprova',data:scope.row,bizKey:'xm_question_up_approva'})">{{qtype=='risk'?'升级':'升级'}}</el-button> |
|
|
|
|
|
</span> |
|
|
|
|
|
<el-badge :value="getBadge(scope.row)"> |
|
|
|
|
|
<el-link type="primary" @click="showEdit(scope.row)">{{scope.row.name}}</el-link> |
|
|
|
|
|
</el-badge> |
|
|
|
|
|
|
|
|
|
|
|
</span> |
|
|
|
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column prop="menuName" label="故事" width="100" show-overflow-tooltip></el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination> |
|
|
|
|
|
|
|
|
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<!--编辑 XmQuestion xm_question界面--> |
|
|
<!--编辑 XmQuestion xm_question界面--> |
|
|
<el-dialog title="编辑缺陷" :visible.sync="editFormVisible" fullscreen width="100%" append-to-body :close-on-click-modal="false"> |
|
|
|
|
|
|
|
|
<el-drawer title="编辑缺陷" :visible.sync="editFormVisible" :with-header="false" :size="750" :close-on-click-modal="false"> |
|
|
<xm-question-edit :sel-project=" {id:editForm.projectId,name:editForm.projectName} " :xm-question="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-question-edit> |
|
|
<xm-question-edit :sel-project=" {id:editForm.projectId,name:editForm.projectName} " :xm-question="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-question-edit> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</el-drawer> |
|
|
|
|
|
|
|
|
<!--新增 XmQuestion xm_question界面--> |
|
|
<!--新增 XmQuestion xm_question界面--> |
|
|
<el-dialog title="新增缺陷" :visible.sync="addFormVisible" fullscreen width="100%" append-to-body :close-on-click-modal="false"> |
|
|
|
|
|
|
|
|
<el-dialog title="新增缺陷" :visible.sync="addFormVisible" width="100%" append-to-body :close-on-click-modal="false"> |
|
|
<xm-question-add :xm-test-case-exec="xmTestCaseExec" :xm-test-case="xmTestCase" :qtype="qtype" :sel-project=" filters.selProject " :xm-question="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-question-add> |
|
|
<xm-question-add :xm-test-case-exec="xmTestCaseExec" :xm-test-case="xmTestCase" :qtype="qtype" :sel-project=" filters.selProject " :xm-question="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-question-add> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
</el-dialog> |
|
|
<el-dialog title="选中用户" v-if=" filters.selProject " :visible.sync="selectUserVisible" width="80%" append-to-body :close-on-click-modal="false"> |
|
|
<el-dialog title="选中用户" v-if=" filters.selProject " :visible.sync="selectUserVisible" width="80%" append-to-body :close-on-click-modal="false"> |
|
|
<xm-group-mng :sel-project=" filters.selProject " :is-select-single-user="1" @user-confirm="onUserConfirm"></xm-group-mng> |
|
|
<xm-group-mng :sel-project=" filters.selProject " :is-select-single-user="1" @user-confirm="onUserConfirm"></xm-group-mng> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
</el-dialog> |
|
|
<el-dialog title="选中项目" :visible.sync="selectProjectVisible" width="80%" append-to-body :close-on-click-modal="false"> |
|
|
<el-dialog title="选中项目" :visible.sync="selectProjectVisible" width="80%" append-to-body :close-on-click-modal="false"> |
|
|
<xm-project-list @project-confirm="onPorjectConfirm"></xm-project-list> |
|
|
<xm-project-list @project-confirm="onPorjectConfirm"></xm-project-list> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<el-dialog append-to-body title="故事选择" :visible.sync="menuVisible" width="80%" :close-on-click-modal="false"> |
|
|
<el-dialog append-to-body title="故事选择" :visible.sync="menuVisible" width="80%" :close-on-click-modal="false"> |
|
|
<xm-menu-select :visible="menuVisible" :is-select-menu="true" :multi="true" @menus-selected="onSelectedMenus" ></xm-menu-select> |
|
|
<xm-menu-select :visible="menuVisible" :is-select-menu="true" :multi="true" @menus-selected="onSelectedMenus" ></xm-menu-select> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-dialog title="选择产品" :visible.sync="productSelectVisible" width="80%" append-to-body :close-on-click-modal="false"> |
|
|
<el-dialog title="选择产品" :visible.sync="productSelectVisible" width="80%" append-to-body :close-on-click-modal="false"> |
|
|
<xm-product-select :isSelectProduct="true" :selProject="filters.selProject" :visible="productSelectVisible" @cancel="productSelectVisible=false" @selected="onProductSelected"></xm-product-select> |
|
|
<xm-product-select :isSelectProduct="true" :selProject="filters.selProject" :visible="productSelectVisible" @cancel="productSelectVisible=false" @selected="onProductSelected"></xm-product-select> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
@ -208,7 +195,7 @@ |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import util from '@/common/js/util';//全局公共库 |
|
|
import util from '@/common/js/util';//全局公共库 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import config from '@/common/config';//全局公共库 |
|
|
import config from '@/common/config';//全局公共库 |
|
|
//import Sticky from '@/components/Sticky' // 粘性header组件 |
|
|
//import Sticky from '@/components/Sticky' // 粘性header组件 |
|
|
import { listOption } from '@/api/mdp/meta/itemOption';//下拉框数据查询 |
|
|
import { listOption } from '@/api/mdp/meta/itemOption';//下拉框数据查询 |
|
|
@ -216,18 +203,18 @@ |
|
|
import XmQuestionAdd from './XmQuestionAdd';//新增界面 |
|
|
import XmQuestionAdd from './XmQuestionAdd';//新增界面 |
|
|
import XmQuestionEdit from './XmQuestionEdit';//修改界面 |
|
|
import XmQuestionEdit from './XmQuestionEdit';//修改界面 |
|
|
import { mapGetters } from 'vuex' |
|
|
import { mapGetters } from 'vuex' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import xmMenuSelect from '../xmMenu/XmMenuSelect'; |
|
|
import xmMenuSelect from '../xmMenu/XmMenuSelect'; |
|
|
import XmGroupMng from '../xmProjectGroup/XmProjectGroupMng'; |
|
|
import XmGroupMng from '../xmProjectGroup/XmProjectGroupMng'; |
|
|
import XmProjectList from '../xmProject/XmProjectList'; |
|
|
import XmProjectList from '../xmProject/XmProjectList'; |
|
|
|
|
|
|
|
|
import XmProductSelect from '../xmProduct/XmProductSelect';//修改界面 |
|
|
import XmProductSelect from '../xmProduct/XmProductSelect';//修改界面 |
|
|
|
|
|
|
|
|
export default { |
|
|
|
|
|
|
|
|
export default { |
|
|
computed: { |
|
|
computed: { |
|
|
...mapGetters([ |
|
|
...mapGetters([ |
|
|
'userInfo','roles' |
|
|
'userInfo','roles' |
|
|
]), |
|
|
|
|
|
|
|
|
]), |
|
|
}, |
|
|
}, |
|
|
props: ["selProject",'qtype','xmTestCaseExec','xmTestCase','visible'], |
|
|
props: ["selProject",'qtype','xmTestCaseExec','xmTestCase','visible'], |
|
|
watch:{ |
|
|
watch:{ |
|
|
@ -282,24 +269,24 @@ |
|
|
bugSolution:[], |
|
|
bugSolution:[], |
|
|
bugStatus:[], |
|
|
bugStatus:[], |
|
|
bugType:[], |
|
|
bugType:[], |
|
|
},//下拉选择框的所有静态数据 params=[{categoryId:'0001',itemCode:'sex'}] 返回结果 {'sex':[{optionValue:'1',optionName:'男',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'女',seqOrder:'2',fp:'',isDefault:'0'}]} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},//下拉选择框的所有静态数据 params=[{categoryId:'0001',itemCode:'sex'}] 返回结果 {'sex':[{optionValue:'1',optionName:'男',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'女',seqOrder:'2',fp:'',isDefault:'0'}]} |
|
|
|
|
|
|
|
|
addFormVisible: false,//新增xmQuestion界面是否显示 |
|
|
addFormVisible: false,//新增xmQuestion界面是否显示 |
|
|
//新增xmQuestion界面初始化数据 |
|
|
//新增xmQuestion界面初始化数据 |
|
|
addForm: { |
|
|
addForm: { |
|
|
id:'',name:'',projectId:'',projectName:'',taskId:'',taskName:'',endTime:'',askUserid:'',askUsername:'',handlerUserid:'',handlerUsername:'',priority:'3',solution:'',processTime:'',receiptMessage:'',receiptTime:'',description:'',createUserid:'',createUsername:'',createTime:'',bugStatus:'',bugSeverity:'3', |
|
|
id:'',name:'',projectId:'',projectName:'',taskId:'',taskName:'',endTime:'',askUserid:'',askUsername:'',handlerUserid:'',handlerUsername:'',priority:'3',solution:'',processTime:'',receiptMessage:'',receiptTime:'',description:'',createUserid:'',createUsername:'',createTime:'',bugStatus:'',bugSeverity:'3', |
|
|
attachment: [], |
|
|
attachment: [], |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
editFormVisible: false,//编辑界面是否显示 |
|
|
editFormVisible: false,//编辑界面是否显示 |
|
|
//编辑xmQuestion界面初始化数据 |
|
|
//编辑xmQuestion界面初始化数据 |
|
|
editForm: { |
|
|
editForm: { |
|
|
id:'',name:'',projectId:'',projectName:'',taskId:'',taskName:'',endTime:'',askUserid:'',askUsername:'',handlerUserid:'',handlerUsername:'',priority:'',solution:'',processTime:'',receiptMessage:'',receiptTime:'',description:'',createUserid:'',createUsername:'',createTime:'',bugStatus:'',bugSeverity:'3', |
|
|
id:'',name:'',projectId:'',projectName:'',taskId:'',taskName:'',endTime:'',askUserid:'',askUsername:'',handlerUserid:'',handlerUsername:'',priority:'',solution:'',processTime:'',receiptMessage:'',receiptTime:'',description:'',createUserid:'',createUsername:'',createTime:'',bugStatus:'',bugSeverity:'3', |
|
|
attachment: [], |
|
|
attachment: [], |
|
|
}, |
|
|
|
|
|
/**begin 自定义属性请在下面加 请加备注**/ |
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
/**begin 自定义属性请在下面加 请加备注**/ |
|
|
selectUserVisible:false, |
|
|
selectUserVisible:false, |
|
|
selectProjectVisible:false, |
|
|
|
|
|
|
|
|
selectProjectVisible:false, |
|
|
productSelectVisible:false, |
|
|
productSelectVisible:false, |
|
|
nextAction:'', |
|
|
nextAction:'', |
|
|
tableHeight:300, |
|
|
tableHeight:300, |
|
|
@ -344,19 +331,19 @@ |
|
|
dateRanger: [ |
|
|
dateRanger: [ |
|
|
util.formatDate.format(beginDate, "yyyy-MM-dd"), |
|
|
util.formatDate.format(beginDate, "yyyy-MM-dd"), |
|
|
util.formatDate.format(endDate, "yyyy-MM-dd") |
|
|
util.formatDate.format(endDate, "yyyy-MM-dd") |
|
|
], |
|
|
|
|
|
ltimeRanger:[ |
|
|
|
|
|
|
|
|
], |
|
|
|
|
|
ltimeRanger:[ |
|
|
], |
|
|
], |
|
|
pickerOptions: util.pickerOptions('datarange'), |
|
|
pickerOptions: util.pickerOptions('datarange'), |
|
|
userType:'',//createUser、handlerUser |
|
|
userType:'',//createUser、handlerUser |
|
|
/**end 自定义属性请在上面加 请加备注**/ |
|
|
/**end 自定义属性请在上面加 请加备注**/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
},//end data |
|
|
},//end data |
|
|
methods: { |
|
|
|
|
|
handleSizeChange(pageSize) { |
|
|
|
|
|
this.pageInfo.pageSize=pageSize; |
|
|
|
|
|
|
|
|
methods: { |
|
|
|
|
|
handleSizeChange(pageSize) { |
|
|
|
|
|
this.pageInfo.pageSize=pageSize; |
|
|
this.getXmQuestions(); |
|
|
this.getXmQuestions(); |
|
|
}, |
|
|
}, |
|
|
handleCurrentChange(pageNum) { |
|
|
handleCurrentChange(pageNum) { |
|
|
@ -378,7 +365,7 @@ |
|
|
this.getXmQuestions(); |
|
|
this.getXmQuestions(); |
|
|
}, |
|
|
}, |
|
|
searchXmQuestions(){ |
|
|
searchXmQuestions(){ |
|
|
this.pageInfo.count=true; |
|
|
|
|
|
|
|
|
this.pageInfo.count=true; |
|
|
this.getXmQuestions(); |
|
|
this.getXmQuestions(); |
|
|
}, |
|
|
}, |
|
|
//获取列表 XmQuestion xm_question |
|
|
//获取列表 XmQuestion xm_question |
|
|
@ -391,38 +378,38 @@ |
|
|
}; |
|
|
}; |
|
|
if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){ |
|
|
if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){ |
|
|
let orderBys=[]; |
|
|
let orderBys=[]; |
|
|
for(var i=0;i<this.pageInfo.orderFields.length;i++){ |
|
|
|
|
|
|
|
|
for(var i=0;i<this.pageInfo.orderFields.length;i++){ |
|
|
orderBys.push(this.pageInfo.orderFields[i]+" "+this.pageInfo.orderDirs[i]) |
|
|
orderBys.push(this.pageInfo.orderFields[i]+" "+this.pageInfo.orderDirs[i]) |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
params.orderBy= orderBys.join(",") |
|
|
params.orderBy= orderBys.join(",") |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(!this.dateRanger || this.dateRanger.length==0){ |
|
|
if(!this.dateRanger || this.dateRanger.length==0){ |
|
|
this.$message({ message: "创建日期范围不能为空", type: 'error' }); |
|
|
this.$message({ message: "创建日期范围不能为空", type: 'error' }); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
if( this.filters.bugStatus!=null && this.filters.bugStatus!="" ){ |
|
|
if( this.filters.bugStatus!=null && this.filters.bugStatus!="" ){ |
|
|
params.bugStatus=this.filters.bugStatus |
|
|
params.bugStatus=this.filters.bugStatus |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
if( this.filters.solution!=null && this.filters.solution!=""){ |
|
|
if( this.filters.solution!=null && this.filters.solution!=""){ |
|
|
params.solution=this.filters.solution |
|
|
params.solution=this.filters.solution |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
if( this.filters.priority!=null && this.filters.priority!=""){ |
|
|
if( this.filters.priority!=null && this.filters.priority!=""){ |
|
|
params.priority=this.filters.priority |
|
|
params.priority=this.filters.priority |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
if( this.filters.bugSeverity!=null && this.filters.bugSeverity!=""){ |
|
|
if( this.filters.bugSeverity!=null && this.filters.bugSeverity!=""){ |
|
|
params.bugSeverity=this.filters.bugSeverity |
|
|
params.bugSeverity=this.filters.bugSeverity |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
if( this.filters.handlerUserid!=null && this.filters.handlerUserid!=""){ |
|
|
if( this.filters.handlerUserid!=null && this.filters.handlerUserid!=""){ |
|
|
params.handlerUserid=this.filters.handlerUserid |
|
|
params.handlerUserid=this.filters.handlerUserid |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
if(this.filters.menus && this.filters.menus.length==1){ |
|
|
if(this.filters.menus && this.filters.menus.length==1){ |
|
|
params.menuId=this.filters.menus[0].menuId |
|
|
params.menuId=this.filters.menus[0].menuId |
|
|
}else if(this.filters.menus && this.filters.menus.length>1){ |
|
|
}else if(this.filters.menus && this.filters.menus.length>1){ |
|
|
params.menuIds=this.filters.menus.map(i=>i.menuId) |
|
|
params.menuIds=this.filters.menus.map(i=>i.menuId) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(this.filters.product){ |
|
|
if(this.filters.product){ |
|
|
params.productId=this.filters.product.id |
|
|
params.productId=this.filters.product.id |
|
|
} |
|
|
} |
|
|
@ -436,7 +423,7 @@ |
|
|
this.$message({ message: "请选择曾经的缺陷状态", type: 'error' }); |
|
|
this.$message({ message: "请选择曾经的缺陷状态", type: 'error' }); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
if(this.filters.hisHandleStatus){ |
|
|
if(this.filters.hisHandleStatus){ |
|
|
if(this.filters.hisHandler){ |
|
|
if(this.filters.hisHandler){ |
|
|
@ -445,7 +432,7 @@ |
|
|
this.$message({ message: "请选择曾经的执行人", type: 'error' }); |
|
|
this.$message({ message: "请选择曾经的执行人", type: 'error' }); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
params.createTimeStart=this.dateRanger[0]+" 00:00:00" |
|
|
params.createTimeStart=this.dateRanger[0]+" 00:00:00" |
|
|
params.createTimeEnd=this.dateRanger[1]+" 23:59:59" |
|
|
params.createTimeEnd=this.dateRanger[1]+" 23:59:59" |
|
|
@ -456,8 +443,8 @@ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.load.list = true; |
|
|
this.load.list = true; |
|
|
if(this.filters.selProject){ |
|
|
|
|
|
params.projectId = this.filters.selProject.id; |
|
|
|
|
|
|
|
|
if(this.filters.selProject){ |
|
|
|
|
|
params.projectId = this.filters.selProject.id; |
|
|
} |
|
|
} |
|
|
if(this.xmTestCaseExec){ |
|
|
if(this.xmTestCaseExec){ |
|
|
params.caseExecId=this.xmTestCaseExec.id |
|
|
params.caseExecId=this.xmTestCaseExec.id |
|
|
@ -465,29 +452,29 @@ |
|
|
if(this.xmTestCase){ |
|
|
if(this.xmTestCase){ |
|
|
params.caseId=this.xmTestCase.id |
|
|
params.caseId=this.xmTestCase.id |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(this.filters.key){ |
|
|
if(this.filters.key){ |
|
|
params.key='%'+this.filters.key+'%' |
|
|
params.key='%'+this.filters.key+'%' |
|
|
} |
|
|
} |
|
|
params.qtype=this.qtype |
|
|
params.qtype=this.qtype |
|
|
listXmQuestion(params).then((res) => { |
|
|
listXmQuestion(params).then((res) => { |
|
|
var tips=res.data.tips; |
|
|
var tips=res.data.tips; |
|
|
if(tips.isOk){ |
|
|
|
|
|
|
|
|
if(tips.isOk){ |
|
|
this.pageInfo.total = res.data.total; |
|
|
this.pageInfo.total = res.data.total; |
|
|
this.pageInfo.count=false; |
|
|
this.pageInfo.count=false; |
|
|
this.xmQuestions = res.data.data; |
|
|
this.xmQuestions = res.data.data; |
|
|
}else{ |
|
|
}else{ |
|
|
this.$message({ message: tips.msg, type: 'error' }); |
|
|
this.$message({ message: tips.msg, type: 'error' }); |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
this.load.list = false; |
|
|
this.load.list = false; |
|
|
}).catch( err => this.load.list = false ); |
|
|
}).catch( err => this.load.list = false ); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
clearProduct(){ |
|
|
clearProduct(){ |
|
|
this.filters.product=null; |
|
|
this.filters.product=null; |
|
|
this.searchXmQuestions(); |
|
|
this.searchXmQuestions(); |
|
|
}, |
|
|
}, |
|
|
showProductVisible(){ |
|
|
|
|
|
|
|
|
showProductVisible(){ |
|
|
this.productSelectVisible=true; |
|
|
this.productSelectVisible=true; |
|
|
}, |
|
|
}, |
|
|
onProductSelected(product){ |
|
|
onProductSelected(product){ |
|
|
@ -498,7 +485,7 @@ |
|
|
showMenu(){ |
|
|
showMenu(){ |
|
|
this.menuVisible=true; |
|
|
this.menuVisible=true; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
onSelectedMenus(menus){ |
|
|
onSelectedMenus(menus){ |
|
|
if(!menus || menus.length==0){ |
|
|
if(!menus || menus.length==0){ |
|
|
this.menuVisible=false |
|
|
this.menuVisible=false |
|
|
@ -516,14 +503,14 @@ |
|
|
}, |
|
|
}, |
|
|
//显示编辑界面 XmQuestion xm_question |
|
|
//显示编辑界面 XmQuestion xm_question |
|
|
showEdit: function ( row,index ) { |
|
|
showEdit: function ( row,index ) { |
|
|
this.editFormVisible = true; |
|
|
|
|
|
|
|
|
this.editFormVisible = true; |
|
|
this.editForm = Object.assign({}, row); |
|
|
this.editForm = Object.assign({}, row); |
|
|
}, |
|
|
}, |
|
|
//显示新增界面 XmQuestion xm_question |
|
|
//显示新增界面 XmQuestion xm_question |
|
|
showAdd: function () { |
|
|
showAdd: function () { |
|
|
if(this.filters.selProject==null){ |
|
|
if(this.filters.selProject==null){ |
|
|
|
|
|
|
|
|
this.$message({ message: "请先选中项目", type: 'success' }); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.$message({ message: "请先选中项目", type: 'success' }); |
|
|
this.nextAction="showAdd" |
|
|
this.nextAction="showAdd" |
|
|
this.showProjectList(); |
|
|
this.showProjectList(); |
|
|
return; |
|
|
return; |
|
|
@ -542,22 +529,22 @@ |
|
|
//选择行xmQuestion |
|
|
//选择行xmQuestion |
|
|
selsChange: function (sels) { |
|
|
selsChange: function (sels) { |
|
|
this.sels = sels; |
|
|
this.sels = sels; |
|
|
}, |
|
|
|
|
|
|
|
|
}, |
|
|
//删除xmQuestion |
|
|
//删除xmQuestion |
|
|
handleDel: function (row,index) { |
|
|
|
|
|
|
|
|
handleDel: function (row,index) { |
|
|
this.$confirm('确认删除该记录吗?', '提示', { |
|
|
this.$confirm('确认删除该记录吗?', '提示', { |
|
|
type: 'warning' |
|
|
type: 'warning' |
|
|
}).then(() => { |
|
|
|
|
|
|
|
|
}).then(() => { |
|
|
this.load.del=true; |
|
|
this.load.del=true; |
|
|
let params = { id: row.id }; |
|
|
let params = { id: row.id }; |
|
|
delXmQuestion(params).then((res) => { |
|
|
delXmQuestion(params).then((res) => { |
|
|
this.load.del=false; |
|
|
this.load.del=false; |
|
|
var tips=res.data.tips; |
|
|
var tips=res.data.tips; |
|
|
if(tips.isOk){ |
|
|
|
|
|
|
|
|
if(tips.isOk){ |
|
|
this.pageInfo.count=true; |
|
|
this.pageInfo.count=true; |
|
|
this.getXmQuestions(); |
|
|
this.getXmQuestions(); |
|
|
} |
|
|
} |
|
|
this.$message({ message: tips.msg, type: tips.isOk?'success':'error' }); |
|
|
|
|
|
|
|
|
this.$message({ message: tips.msg, type: tips.isOk?'success':'error' }); |
|
|
}).catch( err => this.load.del=false ); |
|
|
}).catch( err => this.load.del=false ); |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
@ -565,24 +552,24 @@ |
|
|
batchDel: function () { |
|
|
batchDel: function () { |
|
|
this.$confirm('确认删除选中记录吗?', '提示', { |
|
|
this.$confirm('确认删除选中记录吗?', '提示', { |
|
|
type: 'warning' |
|
|
type: 'warning' |
|
|
}).then(() => { |
|
|
|
|
|
|
|
|
}).then(() => { |
|
|
this.load.del=true; |
|
|
this.load.del=true; |
|
|
batchDelXmQuestion(this.sels).then((res) => { |
|
|
batchDelXmQuestion(this.sels).then((res) => { |
|
|
this.load.del=false; |
|
|
this.load.del=false; |
|
|
var tips=res.data.tips; |
|
|
var tips=res.data.tips; |
|
|
if( tips.isOk ){ |
|
|
|
|
|
|
|
|
if( tips.isOk ){ |
|
|
this.pageInfo.count=true; |
|
|
this.pageInfo.count=true; |
|
|
this.getXmQuestions(); |
|
|
|
|
|
|
|
|
this.getXmQuestions(); |
|
|
} |
|
|
} |
|
|
this.$message({ message: tips.msg, type: tips.isOk?'success':'error'}); |
|
|
this.$message({ message: tips.msg, type: tips.isOk?'success':'error'}); |
|
|
}).catch( err => this.load.del=false ); |
|
|
}).catch( err => this.load.del=false ); |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
rowClick: function(row, event, column){ |
|
|
|
|
|
|
|
|
rowClick: function(row, event, column){ |
|
|
this.editForm=row; |
|
|
this.editForm=row; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isEmpty(str) { |
|
|
isEmpty(str) { |
|
|
return str == null || str == ""; |
|
|
return str == null || str == ""; |
|
|
@ -597,34 +584,34 @@ |
|
|
return date.getFullYear()+"-"+(m < 10 ? "0"+m : m)+"-"+ (d < 10 ? "0"+d : d) + " " + h+":"+min+":"+s; |
|
|
return date.getFullYear()+"-"+(m < 10 ? "0"+m : m)+"-"+ (d < 10 ? "0"+d : d) + " " + h+":"+min+":"+s; |
|
|
}, |
|
|
}, |
|
|
changeBugStatus(val){ |
|
|
changeBugStatus(val){ |
|
|
this.filters.bugStatus= val; |
|
|
|
|
|
|
|
|
this.filters.bugStatus= val; |
|
|
this.getXmQuestions(); |
|
|
this.getXmQuestions(); |
|
|
}, |
|
|
}, |
|
|
changeHisHandleStatus(val){ |
|
|
changeHisHandleStatus(val){ |
|
|
this.filters.hisHandleStatus= val; |
|
|
|
|
|
|
|
|
this.filters.hisHandleStatus= val; |
|
|
this.getXmQuestions(); |
|
|
this.getXmQuestions(); |
|
|
}, |
|
|
}, |
|
|
changeBugSeverity(val){ |
|
|
changeBugSeverity(val){ |
|
|
this.filters.bugSeverity= val; |
|
|
|
|
|
|
|
|
this.filters.bugSeverity= val; |
|
|
this.getXmQuestions(); |
|
|
this.getXmQuestions(); |
|
|
}, |
|
|
}, |
|
|
changeSolution(val){ |
|
|
changeSolution(val){ |
|
|
this.filters.solution= val; |
|
|
|
|
|
|
|
|
this.filters.solution= val; |
|
|
this.getXmQuestions(); |
|
|
this.getXmQuestions(); |
|
|
}, |
|
|
}, |
|
|
changePriority(val){ |
|
|
changePriority(val){ |
|
|
this.filters.priority= val; |
|
|
|
|
|
|
|
|
this.filters.priority= val; |
|
|
this.getXmQuestions(); |
|
|
this.getXmQuestions(); |
|
|
}, |
|
|
}, |
|
|
formatterDate: function(row,column,cellValue, index){ |
|
|
|
|
|
|
|
|
formatterDate: function(row,column,cellValue, index){ |
|
|
if(cellValue){ |
|
|
if(cellValue){ |
|
|
return cellValue.substr(0,10); |
|
|
return cellValue.substr(0,10); |
|
|
}else{ |
|
|
}else{ |
|
|
return "" |
|
|
return "" |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
formatterOption: function(row,column,cellValue, index){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
formatterOption: function(row,column,cellValue, index){ |
|
|
var columnName=column.property; |
|
|
var columnName=column.property; |
|
|
var key=""; |
|
|
var key=""; |
|
|
if(columnName=='bugStatus'){ |
|
|
if(columnName=='bugStatus'){ |
|
|
@ -661,11 +648,11 @@ |
|
|
}else if(row.bugStatus=='closed'){ |
|
|
}else if(row.bugStatus=='closed'){ |
|
|
return "激活" |
|
|
return "激活" |
|
|
} |
|
|
} |
|
|
}, |
|
|
|
|
|
showGroupUsers:function(userType){ |
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
showGroupUsers:function(userType){ |
|
|
this.userType=userType; |
|
|
this.userType=userType; |
|
|
if(this.filters.selProject==null || this.filters.selProject.id==''){ |
|
|
if(this.filters.selProject==null || this.filters.selProject.id==''){ |
|
|
this.$message({ message: "请先选中项目", type: 'success' }); |
|
|
|
|
|
|
|
|
this.$message({ message: "请先选中项目", type: 'success' }); |
|
|
this.nextAction="showGroupUsers" |
|
|
this.nextAction="showGroupUsers" |
|
|
this.showProjectList(); |
|
|
this.showProjectList(); |
|
|
return; |
|
|
return; |
|
|
@ -696,7 +683,7 @@ |
|
|
}, |
|
|
}, |
|
|
formatJson(filterVal, jsonData) { |
|
|
formatJson(filterVal, jsonData) { |
|
|
console.log('this.options==', this.options); |
|
|
console.log('this.options==', this.options); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return jsonData.map(v => filterVal.map(j => { |
|
|
return jsonData.map(v => filterVal.map(j => { |
|
|
let key = ''; |
|
|
let key = ''; |
|
|
if (j === 'timestamp') { |
|
|
if (j === 'timestamp') { |
|
|
@ -726,38 +713,38 @@ |
|
|
})) |
|
|
})) |
|
|
}, |
|
|
}, |
|
|
/**end 自定义函数请在上面加**/ |
|
|
/**end 自定义函数请在上面加**/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
onUserConfirm:function(groupUsers){ |
|
|
onUserConfirm:function(groupUsers){ |
|
|
if(this.userType=='createUser'){ |
|
|
if(this.userType=='createUser'){ |
|
|
if(groupUsers==null || groupUsers.length==0){ |
|
|
|
|
|
this.filters.createUser=null |
|
|
|
|
|
|
|
|
if(groupUsers==null || groupUsers.length==0){ |
|
|
|
|
|
this.filters.createUser=null |
|
|
}else{ |
|
|
}else{ |
|
|
var user=groupUsers[0] |
|
|
|
|
|
this.filters.createUser=user |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
var user=groupUsers[0] |
|
|
|
|
|
this.filters.createUser=user |
|
|
|
|
|
} |
|
|
}else if(this.userType=='hisHandler'){ |
|
|
}else if(this.userType=='hisHandler'){ |
|
|
if(groupUsers==null || groupUsers.length==0){ |
|
|
|
|
|
this.filters.hisHandler=null |
|
|
|
|
|
|
|
|
if(groupUsers==null || groupUsers.length==0){ |
|
|
|
|
|
this.filters.hisHandler=null |
|
|
}else{ |
|
|
}else{ |
|
|
var user=groupUsers[0] |
|
|
|
|
|
this.filters.hisHandler=user |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
var user=groupUsers[0] |
|
|
|
|
|
this.filters.hisHandler=user |
|
|
|
|
|
} |
|
|
}else{ |
|
|
}else{ |
|
|
if(groupUsers==null || groupUsers.length==0){ |
|
|
|
|
|
|
|
|
if(groupUsers==null || groupUsers.length==0){ |
|
|
this.filters.handlerUserid='' |
|
|
this.filters.handlerUserid='' |
|
|
this.filters.handlerUsername=''; |
|
|
|
|
|
|
|
|
this.filters.handlerUsername=''; |
|
|
}else{ |
|
|
}else{ |
|
|
var user=groupUsers[0] |
|
|
|
|
|
|
|
|
var user=groupUsers[0] |
|
|
this.filters.handlerUserid=user.userid |
|
|
this.filters.handlerUserid=user.userid |
|
|
this.filters.handlerUsername=user.username |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
this.filters.handlerUsername=user.username |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.selectUserVisible=false |
|
|
this.selectUserVisible=false |
|
|
this.searchXmQuestions(); |
|
|
|
|
|
|
|
|
this.searchXmQuestions(); |
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
showProjectList:function(clear){ |
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
showProjectList:function(clear){ |
|
|
if(clear){ |
|
|
if(clear){ |
|
|
this.nextAction=""; |
|
|
this.nextAction=""; |
|
|
} |
|
|
} |
|
|
@ -766,7 +753,7 @@ |
|
|
onPorjectConfirm:function(project){ |
|
|
onPorjectConfirm:function(project){ |
|
|
this.filters.selProject=project |
|
|
this.filters.selProject=project |
|
|
this.selectProjectVisible=false; |
|
|
this.selectProjectVisible=false; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(this.nextAction=='showAdd'){ |
|
|
if(this.nextAction=='showAdd'){ |
|
|
this.showAdd() |
|
|
this.showAdd() |
|
|
}else if(this.nextAction=='showGroupUsers'){ |
|
|
}else if(this.nextAction=='showGroupUsers'){ |
|
|
@ -780,33 +767,33 @@ |
|
|
if(row.mainTitle!=null && row.mainTitle!=""){ |
|
|
if(row.mainTitle!=null && row.mainTitle!=""){ |
|
|
msgFields.push("流程【"+row.mainTitle+"】"); |
|
|
msgFields.push("流程【"+row.mainTitle+"】"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(row.taskName!=null && row.taskName!=""){ |
|
|
if(row.taskName!=null && row.taskName!=""){ |
|
|
msgFields.push("当前环节【"+row.taskName+"】"); |
|
|
msgFields.push("当前环节【"+row.taskName+"】"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(row.assigneeName!=null && row.assigneeName!=""){ |
|
|
if(row.assigneeName!=null && row.assigneeName!=""){ |
|
|
msgFields.push("执行人【"+row.assigneeName+"】"); |
|
|
msgFields.push("执行人【"+row.assigneeName+"】"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(row.commentMsg!=null && row.commentMsg!=""){ |
|
|
if(row.commentMsg!=null && row.commentMsg!=""){ |
|
|
msgFields.push("审批意见【"+row.commentMsg+"】"); |
|
|
msgFields.push("审批意见【"+row.commentMsg+"】"); |
|
|
} |
|
|
} |
|
|
var msg=msgFields.join(","); |
|
|
var msg=msgFields.join(","); |
|
|
return msg; |
|
|
return msg; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
sendToProcessApprova:function(row,bizKey){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sendToProcessApprova:function(row,bizKey){ |
|
|
// 传过来的参数格式 |
|
|
// 传过来的参数格式 |
|
|
if(row.flowState=='1'){ |
|
|
if(row.flowState=='1'){ |
|
|
this.$message.error("已经发起,不允许重复发起"); |
|
|
this.$message.error("已经发起,不允许重复发起"); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
let extVars={projectId:row.projectId,branchId:this.userInfo.branchId,questionId:row.id} |
|
|
let extVars={projectId:row.projectId,branchId:this.userInfo.branchId,questionId:row.id} |
|
|
let jsonExtVars=JSON.stringify(extVars); |
|
|
|
|
|
|
|
|
let jsonExtVars=JSON.stringify(extVars); |
|
|
|
|
|
|
|
|
var currDomain=window.location.protocol+"//"+window.location.host; |
|
|
var currDomain=window.location.protocol+"//"+window.location.host; |
|
|
var fullPath=this.$route.fullPath; |
|
|
|
|
|
|
|
|
var fullPath=this.$route.fullPath; |
|
|
var bizUrl=currDomain+'/#'+fullPath+'?extVars='+jsonExtVars |
|
|
var bizUrl=currDomain+'/#'+fullPath+'?extVars='+jsonExtVars |
|
|
|
|
|
|
|
|
let params={ |
|
|
let params={ |
|
|
@ -818,24 +805,24 @@ |
|
|
mainContext:'', |
|
|
mainContext:'', |
|
|
extVars:extVars, |
|
|
extVars:extVars, |
|
|
flowVars:{ |
|
|
flowVars:{ |
|
|
subscribeTaskEvent:'TASK_COMPLETED', |
|
|
|
|
|
|
|
|
subscribeTaskEvent:'TASK_COMPLETED', |
|
|
data:{ |
|
|
data:{ |
|
|
id:row.id, |
|
|
id:row.id, |
|
|
branchId:this.userInfo.branchId, |
|
|
branchId:this.userInfo.branchId, |
|
|
projectId:row.projectId, |
|
|
|
|
|
|
|
|
projectId:row.projectId, |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
}, |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
} |
|
|
if(bizKey=="xm_question_up_approva"){ |
|
|
if(bizKey=="xm_question_up_approva"){ |
|
|
//预算变更审核 |
|
|
//预算变更审核 |
|
|
params.mainTitle='关于缺陷【'+row.name+"】升级的申请"; |
|
|
params.mainTitle='关于缺陷【'+row.name+"】升级的申请"; |
|
|
params.mainContext='项目编号:'+row.projectId+','+'项目名称:'+row.projectName+',任务名称:'+row.taskName |
|
|
params.mainContext='项目编号:'+row.projectId+','+'项目名称:'+row.projectName+',任务名称:'+row.taskName |
|
|
+'<br>'+row.askUsername+'于'+row.createTime+'提出缺陷('+row.id+'):'+row.name |
|
|
+'<br>'+row.askUsername+'于'+row.createTime+'提出缺陷('+row.id+'):'+row.name |
|
|
+'<br>缺陷描述:'+row.description; |
|
|
+'<br>缺陷描述:'+row.description; |
|
|
params.restUrl=config.getXmBasePath()+"/xm/core/xmQuestion/processApprova"; |
|
|
|
|
|
this.$router.push({name:'ProcdefListForBizStart',params:params}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
params.restUrl=config.getXmBasePath()+"/xm/core/xmQuestion/processApprova"; |
|
|
|
|
|
this.$router.push({name:'ProcdefListForBizStart',params:params}); |
|
|
|
|
|
|
|
|
}else { |
|
|
}else { |
|
|
this.$message.error("不支持的审批事项"); |
|
|
this.$message.error("不支持的审批事项"); |
|
|
return; |
|
|
return; |
|
|
@ -848,50 +835,66 @@ |
|
|
this.searchXmQuestions() |
|
|
this.searchXmQuestions() |
|
|
}, |
|
|
}, |
|
|
clearCreateUser(){ |
|
|
clearCreateUser(){ |
|
|
this.filters.createUser=null; |
|
|
|
|
|
|
|
|
this.filters.createUser=null; |
|
|
this.searchXmQuestions(); |
|
|
this.searchXmQuestions(); |
|
|
this.nextAction="" |
|
|
this.nextAction="" |
|
|
}, |
|
|
}, |
|
|
clearHandler(){ |
|
|
clearHandler(){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.filters.handlerUserid='' |
|
|
this.filters.handlerUserid='' |
|
|
this.filters.handlerUsername=''; |
|
|
|
|
|
|
|
|
this.filters.handlerUsername=''; |
|
|
this.searchXmQuestions(); |
|
|
this.searchXmQuestions(); |
|
|
this.nextAction="" |
|
|
this.nextAction="" |
|
|
}, |
|
|
}, |
|
|
clearHisHandler(){ |
|
|
clearHisHandler(){ |
|
|
|
|
|
|
|
|
this.filters.hisHandler=null |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.filters.hisHandler=null |
|
|
this.searchXmQuestions(); |
|
|
this.searchXmQuestions(); |
|
|
this.nextAction="" |
|
|
this.nextAction="" |
|
|
}, |
|
|
}, |
|
|
handleCommand(command) { |
|
|
|
|
|
if(command.type=='sendToProcessApprova'){ |
|
|
|
|
|
|
|
|
handleCommand(command) { |
|
|
|
|
|
if(command.type=='sendToProcessApprova'){ |
|
|
this.sendToProcessApprova(command.data,command.bizKey); |
|
|
this.sendToProcessApprova(command.data,command.bizKey); |
|
|
} |
|
|
} |
|
|
}, |
|
|
|
|
|
|
|
|
}, |
|
|
setFiltersHandlerAsMySelf(){ |
|
|
setFiltersHandlerAsMySelf(){ |
|
|
this.filters.handlerUserid=this.userInfo.userid; |
|
|
this.filters.handlerUserid=this.userInfo.userid; |
|
|
this.filters.handlerUsername=this.userInfo.username; |
|
|
this.filters.handlerUsername=this.userInfo.username; |
|
|
this.searchXmQuestions(); |
|
|
this.searchXmQuestions(); |
|
|
}, |
|
|
|
|
|
|
|
|
}, |
|
|
setFiltersCreateUserAsMySelf(){ |
|
|
setFiltersCreateUserAsMySelf(){ |
|
|
this.filters.createUser=this.userInfo |
|
|
this.filters.createUser=this.userInfo |
|
|
this.searchXmQuestions(); |
|
|
this.searchXmQuestions(); |
|
|
}, |
|
|
|
|
|
|
|
|
}, |
|
|
setFiltersHisHandlerAsMySelf(){ |
|
|
setFiltersHisHandlerAsMySelf(){ |
|
|
this.filters.hisHandler=this.userInfo |
|
|
this.filters.hisHandler=this.userInfo |
|
|
this.searchXmQuestions(); |
|
|
this.searchXmQuestions(); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
getBadge(row){ |
|
|
|
|
|
var msg=""; |
|
|
|
|
|
if(row.bugStatus=='closed'){ |
|
|
|
|
|
return "" |
|
|
|
|
|
} |
|
|
|
|
|
if(row.handlerUsername){ |
|
|
|
|
|
if(row.lremark){ |
|
|
|
|
|
msg='已指派给'+row.handlerUsername+','+row.lremark |
|
|
|
|
|
}else{ |
|
|
|
|
|
msg='已指派给'+row.handlerUsername; |
|
|
|
|
|
} |
|
|
|
|
|
}else{ |
|
|
|
|
|
msg=row.createUsername+'创建的缺陷' |
|
|
|
|
|
} |
|
|
|
|
|
return msg; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
},//end methods |
|
|
},//end methods |
|
|
components: { |
|
|
|
|
|
|
|
|
components: { |
|
|
'xm-question-add':XmQuestionAdd, |
|
|
'xm-question-add':XmQuestionAdd, |
|
|
'xm-question-edit':XmQuestionEdit, |
|
|
'xm-question-edit':XmQuestionEdit, |
|
|
XmGroupMng,XmProjectList,xmMenuSelect,XmProductSelect |
|
|
XmGroupMng,XmProjectList,xmMenuSelect,XmProductSelect |
|
|
//在下面添加其它组件 |
|
|
//在下面添加其它组件 |
|
|
}, |
|
|
}, |
|
|
mounted() { |
|
|
|
|
|
|
|
|
mounted() { |
|
|
if(this.selProject){ |
|
|
if(this.selProject){ |
|
|
this.filters.selProject=this.selProject |
|
|
this.filters.selProject=this.selProject |
|
|
} |
|
|
} |
|
|
@ -899,12 +902,12 @@ |
|
|
this.filters.handlerUsername=this.userInfo.username; |
|
|
this.filters.handlerUsername=this.userInfo.username; |
|
|
this.$nextTick(() => { |
|
|
this.$nextTick(() => { |
|
|
var clientRect=this.$refs.table.$el.getBoundingClientRect(); |
|
|
var clientRect=this.$refs.table.$el.getBoundingClientRect(); |
|
|
var subHeight=50/1000 * window.innerHeight; |
|
|
|
|
|
this.tableHeight = window.innerHeight -clientRect.y - this.$refs.table.$el.offsetTop-subHeight; |
|
|
|
|
|
|
|
|
var subHeight=50/1000 * window.innerHeight; |
|
|
|
|
|
this.tableHeight = window.innerHeight -clientRect.y - this.$refs.table.$el.offsetTop-subHeight; |
|
|
this.getXmQuestions(); |
|
|
this.getXmQuestions(); |
|
|
}); |
|
|
|
|
|
|
|
|
}); |
|
|
listOption([{categoryId:'all',itemCode:'bugSeverity'},{categoryId:'all',itemCode:'bugSolution'},{categoryId:'all',itemCode:'bugStatus'},{categoryId:'all',itemCode:'bugType'},{categoryId:'all',itemCode:'urgencyLevel'}] ).then(res=>{ |
|
|
listOption([{categoryId:'all',itemCode:'bugSeverity'},{categoryId:'all',itemCode:'bugSolution'},{categoryId:'all',itemCode:'bugStatus'},{categoryId:'all',itemCode:'bugType'},{categoryId:'all',itemCode:'urgencyLevel'}] ).then(res=>{ |
|
|
if(res.data.tips.isOk){ |
|
|
|
|
|
|
|
|
if(res.data.tips.isOk){ |
|
|
this.options['bugSeverity']=res.data.data.bugSeverity |
|
|
this.options['bugSeverity']=res.data.data.bugSeverity |
|
|
this.options['bugSolution']=res.data.data.bugSolution |
|
|
this.options['bugSolution']=res.data.data.bugSolution |
|
|
this.options['bugStatus']=res.data.data.bugStatus |
|
|
this.options['bugStatus']=res.data.data.bugStatus |
|
|
@ -917,56 +920,19 @@ |
|
|
|
|
|
|
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<style scoped> |
|
|
|
|
|
.xm-question{ |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
} |
|
|
|
|
|
.xm-question>.el-menu-demo{ |
|
|
|
|
|
height: 50px; |
|
|
|
|
|
padding-left: 10px; |
|
|
|
|
|
background: #fafbfc; |
|
|
|
|
|
} |
|
|
|
|
|
.xm-question>.el-menu-demo>li{ |
|
|
|
|
|
height: 100%; |
|
|
|
|
|
line-height: 50px; |
|
|
|
|
|
color: #303133; |
|
|
|
|
|
} |
|
|
|
|
|
.xm-question>.el-menu-demo>li:hover{ |
|
|
|
|
|
background: transparent; |
|
|
|
|
|
} |
|
|
|
|
|
.xm-question>.el-menu-demo>.is-active{ |
|
|
|
|
|
background: transparent; |
|
|
|
|
|
} |
|
|
|
|
|
.el-dialog__wrapper >>> .el-dialog__body { |
|
|
|
|
|
padding: 0 20px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.xm-file>.el-menu-demo,.title-bar{ |
|
|
|
|
|
height: 50px; |
|
|
|
|
|
background: #fafbfc; |
|
|
|
|
|
line-height: 50px; |
|
|
|
|
|
} |
|
|
|
|
|
.title-bar{ |
|
|
|
|
|
padding:0 10px; |
|
|
|
|
|
} |
|
|
|
|
|
.title-bar>button{ |
|
|
|
|
|
float:right; |
|
|
|
|
|
margin:7px 10px; |
|
|
|
|
|
} |
|
|
|
|
|
.question-form{ |
|
|
|
|
|
padding: 10px 20px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.question-form .el-form-item{ |
|
|
|
|
|
margin-bottom: 15px; |
|
|
|
|
|
} |
|
|
|
|
|
* >>> .autowidth{ |
|
|
|
|
|
min-width: 0px !important; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
|
|
|
|
|
.more-label-font{ |
|
|
.more-label-font{ |
|
|
text-align:center; |
|
|
text-align:center; |
|
|
float:left; |
|
|
float:left; |
|
|
padding-top:5px; |
|
|
padding-top:5px; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align-right{ |
|
|
|
|
|
float: right; |
|
|
|
|
|
} |
|
|
|
|
|
.badge { |
|
|
|
|
|
margin-top: 7px; |
|
|
|
|
|
padding-bottom: 10px; |
|
|
|
|
|
} |
|
|
|
|
|
</style> |