Browse Source

优化

master
陈裕财 4 years ago
parent
commit
309d11d46d
  1. 6
      src/views/xm/core/components/XmProductSelect.vue
  2. 26
      src/views/xm/core/xmIteration/XmIterationMng.vue
  3. 9
      src/views/xm/core/xmMenu/XmMenuAdd.vue
  4. 47
      src/views/xm/core/xmMenu/XmMenuMng.vue
  5. 1
      src/views/xm/core/xmQuestion/XmQuestionAdd.vue
  6. 23
      src/views/xm/core/xmQuestion/XmQuestionEdit.vue
  7. 2
      src/views/xm/core/xmQuestion/XmQuestionMng.vue

6
src/views/xm/core/components/XmProductSelect.vue

@ -195,10 +195,10 @@
params.key="%"+this.filters.key+"%" params.key="%"+this.filters.key+"%"
} }
if(this.linkProjectId){ if(this.linkProjectId){
params.projectId=this.linkProjectId
params.linkProjectId=this.linkProjectId
} }
if(this.iterationId){
params.iterationId=this.iterationId
if(this.linkIterationId){
params.linkIterationId=this.linkIterationId
} }
if(this.filters.id){ if(this.filters.id){
params.id=this.filters.id params.id=this.filters.id

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

@ -1,14 +1,6 @@
<template> <template>
<section class="page-container padding border"> <section class="page-container padding border">
<el-row> <el-row>
<el-checkbox v-model="gstcVisible" class="hidden-md-and-down">甘特图</el-checkbox>
<el-select v-model="filters.queryScope" placeholder="迭代查询范围">
<el-option :label="userInfo.branchName+'机构下所有的迭代'" value="branchId"></el-option>
<el-option label="我相关的迭代" value="compete"></el-option>
<el-option label="按迭代编号精确查找" value="iterationId"></el-option>
<el-option label="后台智能匹配" value=""></el-option>
</el-select>
<el-input v-if="filters.queryScope=='iterationId'" v-model="filters.id" style="width:20%;" placeholder="输入迭代编号" @keyup.enter.native="searchXmProducts"> </el-input> <el-input v-if="filters.queryScope=='iterationId'" v-model="filters.id" style="width:20%;" placeholder="输入迭代编号" @keyup.enter.native="searchXmProducts"> </el-input>
<el-date-picker v-if="filters.queryScope!='iterationId'" v-model="dateRangerOnline" type="daterange" align="right" unlink-panels range-separator="" <el-date-picker v-if="filters.queryScope!='iterationId'" v-model="dateRangerOnline" type="daterange" align="right" unlink-panels range-separator=""
start-placeholder="上线日期" end-placeholder="上线日期" value-format="yyyy-MM-dd HH:mm:ss" start-placeholder="上线日期" end-placeholder="上线日期" value-format="yyyy-MM-dd HH:mm:ss"
@ -25,18 +17,6 @@
trigger="click" > trigger="click" >
<el-divider content-position="left"><strong>查询条件</strong></el-divider> <el-divider content-position="left"><strong>查询条件</strong></el-divider>
<el-row> <el-row>
<el-col :span="24" style="padding-top:5px;">
<font class="more-label-font">
迭代查询范围
</font>
<el-select v-model="filters.queryScope" style="width:100%;" placeholder="迭代查询范围">
<el-option :label="userInfo.branchName+'机构下所有的迭代'" value="branchId"></el-option>
<el-option label="我相关的迭代" value="compete"></el-option>
<el-option label="按迭代编号精确查找" value="iterationId"></el-option>
<el-option label="后台智能匹配" value=""></el-option>
</el-select>
</el-col>
<el-col :span="24" style="padding-top:5px;"> <el-col :span="24" style="padding-top:5px;">
<el-input v-if="filters.queryScope=='iterationId'" v-model="filters.id" style="width:100%;" placeholder="输入产品编号" @keyup.enter.native="searchXmProducts"> <el-input v-if="filters.queryScope=='iterationId'" v-model="filters.id" style="width:100%;" placeholder="输入产品编号" @keyup.enter.native="searchXmProducts">
</el-input> </el-input>
@ -59,12 +39,8 @@
<el-col :span="24" style="padding-top:5px;"> <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> <font class="more-label-font">迭代名称:</font><el-input v-model="filters.key" style="width: 60%;" placeholder="模糊查询"></el-input>
</el-col> </el-col>
<el-col :span="24" style="padding-top:5px;">
<el-tag>默认只能查询本人创建的迭代本人作为需求责任人参与的迭代</el-tag>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<el-col :span="24" style="padding-top:10px;">
<el-button type="primary" icon="el-icon-search" @click="getXmIterations">查询</el-button> <el-button type="primary" icon="el-icon-search" @click="getXmIterations">查询</el-button>
<el-checkbox v-model="gstcVisible">甘特图</el-checkbox>
</el-col> </el-col>
</el-row> </el-row>
<el-button slot="reference" icon="el-icon-more"></el-button> <el-button slot="reference" icon="el-icon-more"></el-button>

9
src/views/xm/core/xmMenu/XmMenuAdd.vue

@ -224,6 +224,9 @@
}else{ }else{
this.addFOrm.dclass=this.xmMenu.dclass this.addFOrm.dclass=this.xmMenu.dclass
} }
this.addForm.mmUserid=this.userInfo.userid
this.addForm.mmUsername=this.userInfo.username
} }
} }
}, },
@ -267,11 +270,7 @@
if(this.addForm.productId==null){ if(this.addForm.productId==null){
this.$notify({showClose: true, message: '请选择产品/或者上级需求进行新增', type:'error' }); this.$notify({showClose: true, message: '请选择产品/或者上级需求进行新增', type:'error' });
return; return;
}
if(this.parentMenu && this.parentMenu.ntype=="0"){
this.$notify({showClose: true, message: '需求池下不能再建立子需求', type:'error' });
return;
}
}
this.$refs.addForm.validate((valid) => { this.$refs.addForm.validate((valid) => {
if (valid) { if (valid) {

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

@ -5,15 +5,8 @@
<el-row> <el-row>
<xm-product-select ref="xmProductSelect1" style="display:inline;" v-if="!xmProduct && !xmIteration" :auto-select="false" :link-project-id="selProject?selProject.id:null" @row-click="onProductSelected" :iterationId="xmIteration?xmIteration.id:null" @clear-select="onProductClearSelect"></xm-product-select> <xm-product-select ref="xmProductSelect1" style="display:inline;" v-if="!xmProduct && !xmIteration" :auto-select="false" :link-project-id="selProject?selProject.id:null" @row-click="onProductSelected" :iterationId="xmIteration?xmIteration.id:null" @clear-select="onProductClearSelect"></xm-product-select>
<xm-it-select v-if="!xmIteration || !xmIteration.id" style="display:inline;" :auto-select="false" :product-id="filters.product?filters.product.id:null" :link-project-id="selProject?selProject.id:null" placeholder="迭代" @row-click="onIterationSelected" @clear="onIterationClearSelect">
</xm-it-select>
<el-select v-model="filters.taskFilterType" placeholder="已分配任务的需求?" clearable v-if="selProject &&selProject.id">
<el-option value="not-join-any-project" label="未分配过任务的需求"></el-option>
<el-option value="join-any-project" label="已分配过任务的需求"></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-select>
<xm-iteration-select v-if="!xmIteration || !xmIteration.id" style="display:inline;" :auto-select="false" :product-id="filters.product?filters.product.id:null" :link-project-id="selProject?selProject.id:null" placeholder="迭代" @row-click="onIterationSelected" @clear="onIterationClearSelect">
</xm-iteration-select>
<el-select v-if=" !selProject || !selProject.id" v-model="filters.iterationFilterType" placeholder="加入过迭代?" clearable> <el-select v-if=" !selProject || !selProject.id" v-model="filters.iterationFilterType" placeholder="加入过迭代?" clearable>
<el-option value="not-join-any-iteration" label="未加入过迭代"></el-option> <el-option value="not-join-any-iteration" label="未加入过迭代"></el-option>
<el-option value="join-any-iteration" label="已加入过迭代"></el-option> <el-option value="join-any-iteration" label="已加入过迭代"></el-option>
@ -183,7 +176,7 @@
</span> </span>
</el-row> </el-row>
<el-row class="padding-top"> <el-row class="padding-top">
<el-table :cell-style="cellStyleCalc" :header-cell-style="cellStyleCalc" :row-style="{height:'60px'}" lazy :load="loadXmMenusLazy" stripe fit border ref="table" :height="maxTableHeight" :data="xmMenusTreeData" current-row-key="menuId" row-key="menuId" :tree-props="{children: 'children', hasChildren: 'childrenCnt'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick">
<el-table :cell-style="cellStyleCalc" :expand-row-keys="expandRowKeysCpd" :header-cell-style="cellStyleCalc" :row-style="{height:'60px'}" lazy :load="loadXmMenusLazy" stripe fit border ref="table" :height="maxTableHeight" :data="xmMenusTreeData" current-row-key="menuId" row-key="menuId" :tree-props="{children: 'children', hasChildren: 'childrenCnt'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick">
<el-table-column sortable type="selection" width="40"></el-table-column> <el-table-column sortable type="selection" width="40"></el-table-column>
<el-table-column prop="menuName" label="需求名称" min-width="300" fixed="left"> <el-table-column prop="menuName" label="需求名称" min-width="300" fixed="left">
@ -288,7 +281,12 @@
</el-table-column> </el-table-column>
<el-table-column prop="iterationName" label="迭代" width="150" show-overflow-tooltip sortable> <el-table-column prop="iterationName" label="迭代" width="150" show-overflow-tooltip sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<div class="cell-text">
{{scope.row.iterationName}} {{scope.row.iterationName}}
</div>
<span class="cell-bar">
<xm-iteration-select style="display:inline;" :auto-select="false" :product-id="scope.row.productId" placeholder="迭代" @row-click="editXmMenuSomeFields(scope.row,'iterationId',$event)"></xm-iteration-select>
</span>
</template> </template>
</el-table-column> </el-table-column>
@ -429,7 +427,7 @@
import XmTaskList from '../xmTask/XmTaskList'; import XmTaskList from '../xmTask/XmTaskList';
import XmTaskMng from '../xmTask/XmTaskMng'; import XmTaskMng from '../xmTask/XmTaskMng';
import XmTaskListForMenu from '../xmTask/XmTaskListForMenu'; import XmTaskListForMenu from '../xmTask/XmTaskListForMenu';
import XmItSelect from '@/views/xm/core/components/XmIterationSelect.vue';//
import XmIterationSelect from '@/views/xm/core/components/XmIterationSelect.vue';//
import XmMenuWorkload from '@/views/xm/core/components/XmMenuWorkload';// import XmMenuWorkload from '@/views/xm/core/components/XmMenuWorkload';//
import XmTableConfig from '@/views/xm/core/components/XmTableConfig';// import XmTableConfig from '@/views/xm/core/components/XmTableConfig';//
import XmGroupDialog from '@/views/xm/core/xmGroup/XmGroupDialog';// import XmGroupDialog from '@/views/xm/core/xmGroup/XmGroupDialog';//
@ -440,7 +438,7 @@
import {sn} from '@/common/js/sequence' import {sn} from '@/common/js/sequence'
import { mapGetters } from 'vuex'
import { mapGetters } from 'vuex'
export default { export default {
props:['selProject','xmIteration','xmProduct','disabledMng'], props:['selProject','xmIteration','xmProduct','disabledMng'],
@ -466,7 +464,6 @@
this.getXmMenus() this.getXmMenus()
}, },
selProject:function(){ selProject:function(){
this.filters.taskFilterType='join-curr-project'
this.getXmMenus(); this.getXmMenus();
} }
}, },
@ -549,7 +546,7 @@
maps:new Map(), maps:new Map(),
linkIterationPopoverVisible:false, linkIterationPopoverVisible:false,
/**begin 自定义属性请在下面加 请加备注**/ /**begin 自定义属性请在下面加 请加备注**/
expandRowKeysCpd:[],
/**end 自定义属性请在上面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/
} }
},//end data },//end data
@ -739,7 +736,8 @@
}, },
showSubAdd:function(row){ showSubAdd:function(row){
this.editForm=row this.editForm=row
this.parentMenu=row
this.parentMenu=row
this.expandRowKeysCpd.push(row.pmenuId);
this.addForm.productId=row.productId this.addForm.productId=row.productId
if(this.filters.product && row.productId==this.filters.product.id){ if(this.filters.product && row.productId==this.filters.product.id){
this.addForm.productName=this.filters.product.productName this.addForm.productName=this.filters.product.productName
@ -751,16 +749,18 @@
showProdcutAdd:function(){ showProdcutAdd:function(){
this.$refs.xmProductMng.showAdd(); this.$refs.xmProductMng.showAdd();
}, },
afterAddSubmit(row){
afterAddSubmit(row){
this.addFormVisible=false; this.addFormVisible=false;
this.pageInfo.count=true;
this.pageInfo.count=true;
//this.getXmMenus();
treeTool.reloadAllChildren(this.$refs.table,this.maps,[row,{...this.parentMenu}],'pmenuId',this.loadXmMenusLazy)
this.parentMenu=null; this.parentMenu=null;
this.getXmMenus();
treeTool.reloadChildren(this.$refs.table,this.maps,row.pmenuId,'pmenuId',this.loadXmMenusLazy)
}, },
afterEditSubmit(row){ afterEditSubmit(row){
this.editFormVisible=false; this.editFormVisible=false;
this.getXmMenus();
//this.getXmMenus();
treeTool.reloadChildren(this.$refs.table,this.maps,row.pmenuId,'pmenuId',this.loadXmMenusLazy) treeTool.reloadChildren(this.$refs.table,this.maps,row.pmenuId,'pmenuId',this.loadXmMenusLazy)
}, },
//xmMenu //xmMenu
@ -1294,11 +1294,11 @@
UsersSelect, UsersSelect,
XmMenuMngBatch, XmMenuMngBatch,
TagDialog, TagDialog,
XmMenuSelect,
XmItSelect,
XmMenuSelect,
XmMenuWorkload, XmMenuWorkload,
XmTableConfig, XmTableConfig,
XmGroupDialog, XmGroupDialog,
XmIterationSelect,
// //
}, },
mounted() { mounted() {
@ -1309,9 +1309,6 @@
if(this.xmProduct && this.xmProduct.id){ if(this.xmProduct && this.xmProduct.id){
this.productVisible=false; this.productVisible=false;
} }
if(this.selProject && this.selProject.id){
this.filters.taskFilterType='join-curr-project'
}
if(this.xmIteration && this.xmIteration.id){ if(this.xmIteration && this.xmIteration.id){
this.filters.iterationFilterType='join-curr-iteration' this.filters.iterationFilterType='join-curr-iteration'

1
src/views/xm/core/xmQuestion/XmQuestionAdd.vue

@ -253,6 +253,7 @@
attachment: [], attachment: [],
repRate:'', repRate:'',
verNum:'', verNum:'',
bugReason:'',
}, },
/**begin 在下面加自定义属性,记得补上面的一个逗号**/ /**begin 在下面加自定义属性,记得补上面的一个逗号**/
fileVisible: true, fileVisible: true,

23
src/views/xm/core/xmQuestion/XmQuestionEdit.vue

@ -88,12 +88,11 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="缺陷类别" prop="bugType">
<el-select v-model="editForm.bugType" placeholder="请选择缺陷类别">
<el-option v-for="(i,index) in dicts['bugType']" :label="i.name" :value="i.id" :key="index">{{i.name}}</el-option>
<el-form-item label="原因分析" prop="bugReason">
<el-select v-model="editForm.bugReason" placeholder="请选择原因">
<el-option v-for="(i,index) in dicts['bugReason']" :label="i.name" :value="i.id" :key="index">{{i.name}}</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -108,10 +107,11 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="提出时间" prop="createTime">
<el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="editForm.createTime"></el-date-picker>
</el-form-item>
<el-form-item label="缺陷类别" prop="bugType">
<el-select v-model="editForm.bugType" placeholder="请选择缺陷类别">
<el-option v-for="(i,index) in dicts['bugType']" :label="i.name" :value="i.id" :key="index">{{i.name}}</el-option>
</el-select>
</el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -289,7 +289,12 @@
// xm_question // xm_question
editForm: { editForm: {
id:'',name:'',projectId:'',projectName:'',taskId:'',taskName:'',endTime:'',askUserid:'',askUsername:'',handlerUserid:'',handlerUsername:'',priority:'',solution:'',processTime:'',receiptMessage:'',receiptTime:'',description:'',createUserid:'',createUsername:'',createTime:'',bugStatus:'',receiptMessage:'', id:'',name:'',projectId:'',projectName:'',taskId:'',taskName:'',endTime:'',askUserid:'',askUsername:'',handlerUserid:'',handlerUsername:'',priority:'',solution:'',processTime:'',receiptMessage:'',receiptTime:'',description:'',createUserid:'',createUsername:'',createTime:'',bugStatus:'',receiptMessage:'',
attachment: [],iterationId:'',iterationName:'',productId:'',
iterationId:'',iterationName:'',productId:'',
qtype:'',
attachment: [],
repRate:'',
verNum:'',
bugReason:'',
}, },
/**begin 在下面加自定义属性,记得补上面的一个逗号**/ /**begin 在下面加自定义属性,记得补上面的一个逗号**/
fileVisible: true, fileVisible: true,

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

@ -1,7 +1,7 @@
<template> <template>
<section class="padding"> <section class="padding">
<el-row> <el-row>
<xm-product-select v-if="!xmProduct" style="display:inline;" :auto-select="false" :link-project-id="selProject?selProject.id:null" @row-click="onProductSelected" @clear-select="clearProduct"></xm-product-select>
<xm-product-select v-if="!xmProduct&&!xmIteration" style="display:inline;" :auto-select="false" :link-project-id="selProject?selProject.id:null" @row-click="onProductSelected" @clear-select="clearProduct"></xm-product-select>
<xm-project-select v-if="!selProject" style="display:inline;" ref="xmProjectSelect" :auto-select="false" :link-product-id="xmProduct?xmProduct.id:null" @row-click="onProjectConfirm" @clear-select="clearProject"></xm-project-select> <xm-project-select v-if="!selProject" style="display:inline;" ref="xmProjectSelect" :auto-select="false" :link-product-id="xmProduct?xmProduct.id:null" @row-click="onProjectConfirm" @clear-select="clearProject"></xm-project-select>
<el-select v-model="filters.bugStatus" placeholder="状态" style="width:100px;" clearable @change="changeBugStatus"> <el-select v-model="filters.bugStatus" placeholder="状态" style="width:100px;" clearable @change="changeBugStatus">

Loading…
Cancel
Save