Browse Source

优化

master
陈裕财 3 years ago
parent
commit
abfa776631
  1. 56
      src/views/xm/core/xmIteration/XmIterationMng.vue
  2. 28
      src/views/xm/core/xmMenu/XmMenuMng.vue
  3. 114
      src/views/xm/core/xmQuestion/XmQuestionMng.vue
  4. 20
      src/views/xm/core/xmTask/XmPhase.vue
  5. 22
      src/views/xm/core/xmTask/XmTaskMng.vue

56
src/views/xm/core/xmIteration/XmIterationMng.vue

@ -42,25 +42,38 @@
v-on:click="searchXmIterations" v-on:click="searchXmIterations"
icon="el-icon-search" icon="el-icon-search"
></el-button> ></el-button>
<el-popover placement="top-start" title="" width="500" trigger="click">
<el-divider content-position="left"
><strong>查询条件</strong></el-divider
>
<el-row>
<el-col :span="24" style="padding-top: 5px">
<el-popover placement="top-start" title="更多条件、操作" width="500" trigger="manual" v-model="moreVisible">
<el-row style="float:right;margin-top:-40px">
<el-button
icon="el-icon-close"
@click="moreVisible=false"
type="text"
>关闭</el-button
>
</el-row>
<el-divider></el-divider>
<el-row>
<font class="more-label-font">迭代名称:</font
><el-input
v-model="filters.key"
style="width: 200px;"
placeholder="模糊查询"
></el-input>
</el-row>
<el-row>
<el-input <el-input
v-if="filters.queryScope == 'iterationId'" v-if="filters.queryScope == 'iterationId'"
v-model="filters.id" v-model="filters.id"
style="width: 100%"
style="width: 200px;"
placeholder="输入产品编号" placeholder="输入产品编号"
@keyup.enter.native="searchXmProducts" @keyup.enter.native="searchXmProducts"
> >
</el-input> </el-input>
</el-col>
<el-col
</el-row>
<el-row
v-if="filters.queryScope != 'iterationId'" v-if="filters.queryScope != 'iterationId'"
:span="24"
style="padding-top: 5px"
> >
<font class="more-label-font">上线时间:</font> <font class="more-label-font">上线时间:</font>
<el-date-picker <el-date-picker
@ -75,25 +88,17 @@
: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-date-picker>
</el-col>
<el-col :span="24" style="padding-top: 5px">
<font class="more-label-font">迭代名称:</font
><el-input
v-model="filters.key"
style="width: 60%"
placeholder="模糊查询"
></el-input>
</el-col>
<el-col :span="24" style="padding-top: 10px">
</el-row>
<el-row>
<el-button <el-button
style="float:right;"
type="primary" type="primary"
icon="el-icon-search" icon="el-icon-search"
@click="getXmIterations" @click="getXmIterations"
>查询</el-button >查询</el-button
> >
</el-col>
</el-row>
<el-button slot="reference" icon="el-icon-more"></el-button>
</el-row>
<el-button slot="reference" icon="el-icon-more" @click="moreVisible=true"></el-button>
</el-popover> </el-popover>
<span style="float: right"> <span style="float: right">
<el-button type="primary" @click="showAdd" icon="el-icon-plus" round <el-button type="primary" @click="showAdd" icon="el-icon-plus" round
@ -343,7 +348,7 @@ export default {
key: "", key: "",
queryScope: "", // iterationId\branchId\compete\'' queryScope: "", // iterationId\branchId\compete\''
id: "", // id: "", //
xmProduct:null,
xmProduct:null,
}, },
pickerOptions: util.getPickerOptions("datarange"), pickerOptions: util.getPickerOptions("datarange"),
dateRanger: [], // dateRanger: [], //
@ -446,6 +451,7 @@ export default {
iterationSelectVisible: false, iterationSelectVisible: false,
gstcVisible: false, gstcVisible: false,
maxTableHeight: 300, maxTableHeight: 300,
moreVisible:false,
ganrrColumns: { ganrrColumns: {
children: "children", children: "children",
name: "iterationName", name: "iterationName",

28
src/views/xm/core/xmMenu/XmMenuMng.vue

@ -30,19 +30,12 @@
>关闭</el-button >关闭</el-button
> >
</el-row> </el-row>
<el-divider></el-divider>
<el-row> <el-row>
<el-button @click="handleExport" icon="el-icon-download">导出</el-button> <el-button @click="handleExport" icon="el-icon-download">导出</el-button>
<el-button v-if=" disabledMng!==false " @click="loadTasksToXmMenuState" icon="el-icon-s-marketing">汇总进度</el-button> <el-button v-if=" disabledMng!==false " @click="loadTasksToXmMenuState" icon="el-icon-s-marketing">汇总进度</el-button>
</el-row> </el-row>
<el-divider></el-divider>
<el-row>
<el-row>
<font class="more-label-font">标签条件:</font>
<el-button v-if="!filters.tags||filters.tags.length==0" @click.native="$refs.tagDialog.open()">标签</el-button>
<el-tag v-else @click="$refs.tagDialog.open()" closable @close="clearFiltersTag(filters.tags[0])">{{filters.tags[0].tagName.substr(0,5)}}({{filters.tags.length}})</el-tag>
</el-row>
<el-divider></el-divider>
<el-row> <el-row>
<font class="more-label-font"> <font class="more-label-font">
责任人: 责任人:
@ -78,6 +71,12 @@
<el-option value="not-join-curr-project" :label="'未分配任务到项目【'+selProject.name+'】'" v-if="selProject && selProject.id"></el-option> <el-option value="not-join-curr-project" :label="'未分配任务到项目【'+selProject.name+'】'" v-if="selProject && selProject.id"></el-option>
<el-option value="join-curr-project" :label="'已分配任务到项目【'+selProject.name+'】'" v-if="selProject && selProject.id"></el-option> <el-option value="join-curr-project" :label="'已分配任务到项目【'+selProject.name+'】'" v-if="selProject && selProject.id"></el-option>
</el-select> </el-select>
</el-row>
<el-row>
<font class="more-label-font">标签条件:</font>
<el-button v-if="!filters.tags||filters.tags.length==0" @click.native="$refs.tagDialog.open()">标签</el-button>
<el-tag v-else @click="$refs.tagDialog.open()" closable @close="clearFiltersTag(filters.tags[0])">{{filters.tags[0].tagName.substr(0,5)}}({{filters.tags.length}})</el-tag>
</el-row> </el-row>
<el-row> <el-row>
<font class="more-label-font"> <font class="more-label-font">
@ -161,8 +160,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-button type="primary" style="float:right;" @click="searchXmMenus" icon="el-icon-search">查询</el-button> <el-button type="primary" style="float:right;" @click="searchXmMenus" icon="el-icon-search">查询</el-button>
</el-row>
</el-row>
</el-row>
<el-button slot="reference" icon="el-icon-more" @click="moreVisible=!moreVisible"></el-button> <el-button slot="reference" icon="el-icon-more" @click="moreVisible=!moreVisible"></el-button>
</el-popover> </el-popover>
<span style="float:right;"> <span style="float:right;">
@ -816,14 +814,10 @@
this.getXmMenus() this.getXmMenus()
}, },
onIterationSelected:function(iteration){ onIterationSelected:function(iteration){
this.filters.iteration=iteration
this.xmMenus=[]
this.getXmMenus()
this.filters.iteration=iteration
}, },
onIterationClearSelect:function(){ onIterationClearSelect:function(){
this.filters.iteration=null
this.xmMenus=[]
this.getXmMenus()
this.filters.iteration=null
}, },
//xmMenu //xmMenu
handleDel: function (row,index) { handleDel: function (row,index) {

114
src/views/xm/core/xmQuestion/XmQuestionMng.vue

@ -32,40 +32,18 @@
trigger="manual" > trigger="manual" >
<el-button @click="moreVisible=false" type="text" style="float:right;margin-top:-40px;" icon="el-icon-close">关闭</el-button> <el-button @click="moreVisible=false" type="text" style="float:right;margin-top:-40px;" icon="el-icon-close">关闭</el-button>
<el-divider></el-divider>
<el-row> <el-row>
<el-button @click="handleExport" icon="el-icon-download">导出</el-button> <el-button @click="handleExport" icon="el-icon-download">导出</el-button>
</el-row> </el-row>
<el-divider></el-divider>
<el-row>
<font class="more-label-font">变更历史:</font>
曾经由<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-button v-if="!filters.hisHandler||filters.hisHandler.userid!=userInfo.userid" @click="setFiltersHisHandlerAsMySelf"></el-button>
变更状态为
<el-select v-model="filters.hisHandleStatus" placeholder="请选择状态" style="width:150px;" clearable @change="changeHisHandleStatus">
<el-option v-for="(b,index) in dicts['bugStatus']" :value="b.id" :key="index" :label="b.name">{{b.name}}
</el-option>
</el-select>
</el-row>
<el-divider></el-divider>
<el-row>
<el-row>
<font class="more-label-font">需求:</font>
<el-button v-if=" !filters.menus || filters.menus.length==0" @click="showMenu"> 需求</el-button>
<el-tag v-else @click="showMenu" closable @close="clearFiltersMenu(filters.menus[0])">{{filters.menus[0].menuName.substr(0,5)}}({{filters.menus.length}})</el-tag>
</el-row>
<el-divider></el-divider>
<el-row> <el-row>
<font class="more-label-font">创建者:</font> <font class="more-label-font">创建者:</font>
<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-button v-if="!filters.createUser||filters.createUser.userid!=userInfo.userid" @click="setFiltersCreateUserAsMySelf">我的</el-button>
<mdp-select-user-xm label="选择创建者" v-model="filters.createUser" :clearable="true"></mdp-select-user-xm>
</el-row> </el-row>
<el-row> <el-row>
<font class="more-label-font">指派给:</font> <font class="more-label-font">指派给:</font>
<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-button v-if="filters.handlerUserid!=userInfo.userid" @click="setFiltersHandlerAsMySelf">我的</el-button>
<mdp-select-user-xm label="选择创建者" v-model="filters.handlerUser" :clearable="true"></mdp-select-user-xm>
</el-row> </el-row>
<el-row> <el-row>
<font class="more-label-font">需求:</font> <font class="more-label-font">需求:</font>
@ -76,18 +54,18 @@
</el-row> </el-row>
<el-row> <el-row>
<font class="more-label-font">缺陷编号:</font> <font class="more-label-font">缺陷编号:</font>
<el-input v-model="filters.id" style="width:200px;"></el-input>
<el-input v-model="filters.id" style="width:200px;" clearable></el-input>
</el-row> </el-row>
<el-row> <el-row>
<font class="more-label-font">优先级:</font> <font class="more-label-font">优先级:</font>
<el-select v-model="filters.priority" placeholder="请选择优先级" clearable @change="changePriority">
<el-select v-model="filters.priority" placeholder="请选择优先级" clearable>
<el-option v-for="(b,index) in dicts['priority']" :value="b.id" :key="index" :label="b.name">{{b.name}} <el-option v-for="(b,index) in dicts['priority']" :value="b.id" :key="index" :label="b.name">{{b.name}}
</el-option> </el-option>
</el-select> </el-select>
</el-row> </el-row>
<el-row> <el-row>
<font class="more-label-font">解决方案:</font> <font class="more-label-font">解决方案:</font>
<el-select v-model="filters.solution" placeholder="请选择解决方案" clearable @change="changeSolution">
<el-select v-model="filters.solution" placeholder="请选择解决方案" clearable>
<el-option v-for="(b,index) in dicts['bugSolution']" :value="b.id" :key="index" :label="b.name">{{b.name}} <el-option v-for="(b,index) in dicts['bugSolution']" :value="b.id" :key="index" :label="b.name">{{b.name}}
</el-option> </el-option>
</el-select> </el-select>
@ -124,8 +102,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-button type="primary" style="float:right;" icon="el-icon-search" @click="searchXmQuestions">查询</el-button> <el-button type="primary" style="float:right;" icon="el-icon-search" @click="searchXmQuestions">查询</el-button>
</el-row>
</el-row>
</el-row>
<el-button slot="reference" icon="el-icon-more" @click="moreVisible=!moreVisible"></el-button> <el-button slot="reference" icon="el-icon-more" @click="moreVisible=!moreVisible"></el-button>
</el-popover> </el-popover>
<span style="float:right;"> <span style="float:right;">
@ -239,7 +216,7 @@
</el-dialog> </el-dialog>
<xm-group-dialog ref="xmGroupDialog" :sel-project=" filters.selProject " :is-select-single-user="1" @user-confirm="onUserConfirm"></xm-group-dialog> <xm-group-dialog ref="xmGroupDialog" :sel-project=" filters.selProject " :is-select-single-user="1" @user-confirm="onUserConfirm"></xm-group-dialog>
<el-drawer append-to-body title="需求选择" :visible.sync="menuVisible" size="60%" :close-on-click-modal="false"> <el-drawer append-to-body title="需求选择" :visible.sync="menuVisible" size="60%" :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" :xm-product="filters.product" @menus-selected="onSelectedMenus" ></xm-menu-select>
</el-drawer> </el-drawer>
<tag-dialog ref="tagDialog" :tagIds="filters.tags?filters.tags.map(i=>i.tagId):[]" :jump="true" @select-confirm="onTagSelected"></tag-dialog> <tag-dialog ref="tagDialog" :tagIds="filters.tags?filters.tags.map(i=>i.tagId):[]" :jump="true" @select-confirm="onTagSelected"></tag-dialog>
@ -260,6 +237,7 @@
import xmMenuSelect from '../xmMenu/XmMenuSelect'; import xmMenuSelect from '../xmMenu/XmMenuSelect';
import XmGroupDialog from '../xmGroup/XmGroupDialog'; import XmGroupDialog from '../xmGroup/XmGroupDialog';
import XmProjectSelect from '@/views/xm/core/components/XmProjectSelect'; import XmProjectSelect from '@/views/xm/core/components/XmProjectSelect';
import MdpSelectUserXm from "@/views/xm/core/components/MdpSelectUserXm/index";
import XmProductSelect from '@/views/xm/core/components/XmProductSelect';// import XmProductSelect from '@/views/xm/core/components/XmProductSelect';//
import TagDialog from '@/views/mdp/arc/tag/TagDialog.vue'; import TagDialog from '@/views/mdp/arc/tag/TagDialog.vue';
@ -297,14 +275,13 @@
bugStatus:'', bugStatus:'',
priority:'', priority:'',
solution:'', solution:'',
bugSeverity:'',
handlerUserid:'',
handlerUsername:'',
bugSeverity:'',
handlerUser:{},
selProject:null, selProject:null,
menus:[], menus:[],
product:null, product:null,
createUser:null,
hisHandler:null,
createUser:{},
hisHandler:{},
hisHandleStatus:null, hisHandleStatus:null,
tags:[], tags:[],
id:'', id:'',
@ -458,8 +435,8 @@
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!=""){
params.handlerUserid=this.filters.handlerUserid
if( this.filters.handlerUser!=null && this.filters.handlerUser.userid){
params.handlerUserid=this.filters.handlerUser.userid
} }
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
@ -473,7 +450,7 @@
if(this.filters.createUser){ if(this.filters.createUser){
params.createUserid=this.filters.createUser.userid; params.createUserid=this.filters.createUser.userid;
} }
if(this.filters.hisHandler){
if(this.filters.hisHandler && this.filters.hisHandler.userid){
if(this.filters.hisHandleStatus){ if(this.filters.hisHandleStatus){
params.hisHandlerUserid=this.filters.hisHandler.userid; params.hisHandlerUserid=this.filters.hisHandler.userid;
}else{ }else{
@ -486,7 +463,7 @@
params.id=this.filters.id params.id=this.filters.id
} }
if(this.filters.hisHandleStatus){ if(this.filters.hisHandleStatus){
if(this.filters.hisHandler){
if(this.filters.hisHandler&& this.filters.hisHandler.userid){
params.hisHandleStatus=this.filters.hisHandleStatus params.hisHandleStatus=this.filters.hisHandleStatus
}else{ }else{
this.$notify({position:'bottom-left',showClose:true,message: "请选择曾经的执行人", type: 'error' }); this.$notify({position:'bottom-left',showClose:true,message: "请选择曾经的执行人", type: 'error' });
@ -572,8 +549,7 @@
}, },
clearFiltersMenu(menu){ clearFiltersMenu(menu){
var index=this.filters.menus.findIndex(i=>i.menuId==menu.menuId) var index=this.filters.menus.findIndex(i=>i.menuId==menu.menuId)
this.filters.menus.splice(index,1);
this.searchXmQuestions();
this.filters.menus.splice(index,1);
}, },
clearFiltersTag(tag){ clearFiltersTag(tag){
var index=this.filters.tags.findIndex(i=>i.tagId==tag.tagId) var index=this.filters.tags.findIndex(i=>i.tagId==tag.tagId)
@ -860,19 +836,8 @@
}else if(option.action=='editHandlerUserid'){ }else if(option.action=='editHandlerUserid'){
this.editXmQuestionSomeFields(option.data,"handlerUserid",groupUsers) this.editXmQuestionSomeFields(option.data,"handlerUserid",groupUsers)
return; return;
}else{
if(groupUsers==null || groupUsers.length==0){
this.filters.handlerUserid=''
this.filters.handlerUsername='';
}else{
var user=groupUsers[0]
this.filters.handlerUserid=user.userid
this.filters.handlerUsername=user.username
}
}
this.selectUserVisible=false
this.searchXmQuestions();
}
this.selectUserVisible=false
}, },
onProjectConfirm:function(project){ onProjectConfirm:function(project){
@ -959,43 +924,12 @@
this.filters.selProject=null this.filters.selProject=null
this.nextAction="" this.nextAction=""
this.searchXmQuestions() this.searchXmQuestions()
},
clearCreateUser(){
this.filters.createUser=null;
this.searchXmQuestions();
this.nextAction=""
},
clearHandler(){
this.filters.handlerUserid=''
this.filters.handlerUsername='';
this.searchXmQuestions();
this.nextAction=""
},
clearHisHandler(){
this.filters.hisHandler=null
this.searchXmQuestions();
this.nextAction=""
},
},
handleCommand(command) { handleCommand(command) {
if(command.type=='sendToProcessApprova'){ if(command.type=='sendToProcessApprova'){
this.sendToProcessApprova(command.data,command.bizKey); this.sendToProcessApprova(command.data,command.bizKey);
} }
},
setFiltersHandlerAsMySelf(){
this.filters.handlerUserid=this.userInfo.userid;
this.filters.handlerUsername=this.userInfo.username;
this.searchXmQuestions();
},
setFiltersCreateUserAsMySelf(){
this.filters.createUser=this.userInfo
this.searchXmQuestions();
},
setFiltersHisHandlerAsMySelf(){
this.filters.hisHandler=this.userInfo
this.searchXmQuestions();
},
},
getBadge(row){ getBadge(row){
var msg=""; var msg="";
if(row.bugStatus=='closed'){ if(row.bugStatus=='closed'){
@ -1115,7 +1049,7 @@
components: { components: {
'xm-question-add':XmQuestionAdd, 'xm-question-add':XmQuestionAdd,
'xm-question-edit':XmQuestionEdit, 'xm-question-edit':XmQuestionEdit,
XmGroupDialog,XmProjectSelect,xmMenuSelect,XmProductSelect, TagDialog
XmGroupDialog,XmProjectSelect,xmMenuSelect,XmProductSelect, TagDialog,MdpSelectUserXm,
// //
}, },
mounted() { mounted() {

20
src/views/xm/core/xmTask/XmPhase.vue

@ -57,27 +57,11 @@
icon="el-icon-plus" icon="el-icon-plus"
title="新建计划" title="新建计划"
></el-button> ></el-button>
</el-popover>
<el-button
class="hidden-lg-and-down"
@click="showParentTaskList"
title="更换任务的上级,实现任务搬家功能"
icon="el-icon-upload2"
v-loading="load.edit"
> </el-button>
<el-button type="danger"
class="hidden-lg-and-down"
@click="batchDel"
v-loading="load.del"
icon="el-icon-delete"
title="批量删除"
></el-button
>
</el-popover>
<el-popover <el-popover
placement="top-start" placement="top-start"
title="更多条件、操作" title="更多条件、操作"
width="500"
width="400"
trigger="manual" trigger="manual"
v-model="moreVisible" v-model="moreVisible"
> >

22
src/views/xm/core/xmTask/XmTaskMng.vue

@ -85,8 +85,7 @@
>关闭</el-button >关闭</el-button
> >
</el-row> </el-row>
<el-row>
<el-divider></el-divider>
<el-row> <el-row>
<font class="more-label-font">显示方式:</font <font class="more-label-font">显示方式:</font
> <el-row> > <el-row>
@ -95,7 +94,15 @@
<el-radio v-model="displayType" label="table">表格</el-radio> <el-radio v-model="displayType" label="table">表格</el-radio>
</el-row> </el-row>
</el-row> </el-row>
<el-divider></el-divider>
<el-row>
<font class="more-label-font">责任人:</font>
<mdp-select-user-xm label="选择责任人" v-model="filters.createUser" :clearable="true"></mdp-select-user-xm>
</el-row>
<el-row>
<font class="more-label-font">执行人:</font>
<mdp-select-user-xm label="选择执行人" v-model="filters.executor" :clearable="true"></mdp-select-user-xm>
</el-row>
<el-row> <el-row>
<font class="more-label-font">产品:</font <font class="more-label-font">产品:</font
> <xm-product-select :auto-select="false" :link-project-id="filters.selProject && filters.selProject.id?filters.selProject.id:null" @row-click="onProductSelected" @clear="onProductClearSelect"></xm-product-select> > <xm-product-select :auto-select="false" :link-project-id="filters.selProject && filters.selProject.id?filters.selProject.id:null" @row-click="onProductSelected" @clear="onProductClearSelect"></xm-product-select>
@ -115,14 +122,6 @@
>选需求</el-button >选需求</el-button
> >
</el-row> </el-row>
<el-row>
<font class="more-label-font">责任人:</font>
<mdp-select-user-xm label="选择责任人" v-model="filters.createUser" :clearable="true"></mdp-select-user-xm>
</el-row>
<el-row>
<font class="more-label-font">执行人:</font>
<mdp-select-user-xm label="选择执行人" v-model="filters.executor" :clearable="true"></mdp-select-user-xm>
</el-row>
<el-row> <el-row>
<font class="more-label-font">技能:</font> <font class="more-label-font">技能:</font>
<el-button <el-button
@ -244,7 +243,6 @@
>查询</el-button >查询</el-button
> >
</el-row> </el-row>
</el-row>
<el-button slot="reference" @click="moreVisible=!moreVisible">更多</el-button> <el-button slot="reference" @click="moreVisible=!moreVisible">更多</el-button>
</el-popover> </el-popover>
<span style="float:right;"> <span style="float:right;">

Loading…
Cancel
Save