Browse Source

优化故事表格界面

master
陈裕财 4 years ago
parent
commit
5ab70dfee1
  1. 105
      src/views/xm/core/xmMenu/XmMenuMng.vue

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

@ -67,40 +67,41 @@
责任人: 责任人:
</font> </font>
<el-tag v-if="filters.mmUser" closable @close="clearFiltersMmUser()">{{filters.mmUser.username}}</el-tag> <el-tag v-if="filters.mmUser" closable @close="clearFiltersMmUser()">{{filters.mmUser.username}}</el-tag>
<el-button size="mini" v-else @click="selectFiltersMmUser()">选责任人</el-button>
<el-button size="mini" @click="setFiltersMmUserAsMySelf()">我的</el-button>
<el-button v-else @click="selectFiltersMmUser()">选责任人</el-button>
<el-button @click="setFiltersMmUserAsMySelf()">我的</el-button>
</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 class="more-label-font">
故事名称: 故事名称:
</font> </font>
<el-input size="mini" v-model="filters.key" style="width:100%;" placeholder="输入故事名字关键字" clearable>
<el-input v-model="filters.key" style="width:100%;" placeholder="输入故事名字关键字" clearable>
</el-input> </el-input>
</el-col> </el-col>
<el-col :span="24" style="padding-top:5px;"> <el-col :span="24" style="padding-top:5px;">
<el-button type="primary" size="mini" @click="searchXmMenus" icon="el-icon-search">查询</el-button>
<el-button size="mini" v-if=" batchEditVisible==false " @click="handleExport" icon="el-icon-download">导出</el-button>
<el-button size="mini" v-if=" batchEditVisible==true " type="success" @click="showImportFromMenuTemplate" icon="el-icon-upload2">由模板快速导入</el-button>
<el-button type="primary" @click="searchXmMenus" icon="el-icon-search">查询</el-button>
<el-button v-if=" batchEditVisible==false " @click="handleExport" icon="el-icon-download">导出</el-button>
<el-button v-if=" batchEditVisible==true " type="success" @click="showImportFromMenuTemplate" icon="el-icon-upload2">由模板快速导入</el-button>
<el-button size="mini" v-if=" batchEditVisible==false " @click="loadTasksToXmMenuState" icon="el-icon-s-marketing">由任务汇总统计数据</el-button>
<el-button v-if=" batchEditVisible==false " @click="loadTasksToXmMenuState" icon="el-icon-s-marketing">由任务汇总统计数据</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 v-if="filters.parentMenuList && filters.parentMenuList.length>0" class="padding-top padding-left">
上级故事:
<span v-for="(item ,index) in filters.parentMenuList" :key="index">
<el-tag @close="clearParentMenu(item,index)" closable @click="clearParentMenu(item,index)">{{item.menuName}}</el-tag>/
</span>
</el-row>
<el-row class="padding-top"> <el-row class="padding-top">
<el-table size="mini" stripe fit border ref="table" :height="tableHeight" :data="xmMenusTreeData" default-expand-all row-key="menuId" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick">
<el-table stripe fit border ref="table" :max-height="tableHeight" :data="xmMenusTreeData" row-key="menuId" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" @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="160" show-overflow-tooltip> <el-table-column prop="menuName" label="故事名称" min-width="160" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.seqNo}}&nbsp;&nbsp;<el-link type="primary" @click="showEdit(scope.row)">{{scope.row.menuName}}</el-link></span> <span>{{scope.row.seqNo}}&nbsp;&nbsp;<el-link type="primary" @click="showEdit(scope.row)">{{scope.row.menuName}}</el-link></span>
<font class="align-right"> <font class="align-right">
<span><el-tag :type="scope.row.finishRate>=100?'success':'warning'">{{scope.row.finishRate}}%</el-tag></span>
&nbsp;&nbsp;
<el-tooltip content="需求负责人"><span>{{scope.row.mmUsername}} </span> </el-tooltip>
<el-tooltip content="任务负责人"><span>{{scope.row.chargeUsername}} </span> </el-tooltip>
<el-popover
<el-popover
placement="top-start" placement="top-start"
title="故事备注" title="故事备注"
width="400" width="400"
@ -108,36 +109,55 @@
<div v-html="scope.row.remark"> <div v-html="scope.row.remark">
</div> </div>
<el-tag slot="reference" icon="el-icon-chat-line-square">描述</el-tag> <el-tag slot="reference" icon="el-icon-chat-line-square">描述</el-tag>
</el-popover>
<el-button v-if="!selProject&&!xmIteration" size="mini" type="primary" @click="showSubAdd( scope.row,scope.$index)" icon="el-icon-plus" circle></el-button>
</el-popover>
</font>
</template>
</el-table-column>
<el-table-column prop="finishRate" label="进度" width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span v-if="scope.row.finishRate"><el-tag :type="scope.row.finishRate>=100?'success':'warning'">{{scope.row.finishRate}}%</el-tag></span>
</template>
</el-table-column>
<el-table-column prop="menuName" label="负责人" width="100" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{scope.row.mmUsername}} </span>
</template>
</el-table-column>
<el-table-column label="操作" width="160" show-overflow-tooltip>
<template slot-scope="scope">
<el-tooltip v-if="!selProject&&!xmIteration" content="添加子故事">
<el-button type="primary" @click="showSubAdd( scope.row,scope.$index)" icon="el-icon-plus" circle></el-button>
</el-tooltip>
<el-tooltip content="查看子故事">
<el-button @click="searchSubMenus( scope.row,scope.$index)" icon="el-icon-right" circle></el-button>
</el-tooltip>
<el-popover style="padding-left:10px;" <el-popover style="padding-left:10px;"
v-if="isPmUser" v-if="isPmUser"
placement="top-start" placement="top-start"
width="200"
width="250"
trigger="click" > trigger="click" >
<el-row> <el-row>
<el-col :span="24" style="padding-top:5px;"> <el-col :span="24" style="padding-top:5px;">
<el-button type="success" @click="showImportFromMenuTemplate(scope.row)" icon="el-icon-upload2">由模板快速导入</el-button>
<el-button type="success" @click="showImportFromMenuTemplate(scope.row)" icon="el-icon-upload2">由模板快速导入子故事</el-button>
</el-col> </el-col>
<el-col :span="24" style="padding-top:5px;"> <el-col :span="24" style="padding-top:5px;">
<el-button type="danger" @click="handleDel(scope.row)" icon="el-icon-delete" circle></el-button>
<el-button v-if="!selProject" type="primary" @click="showTaskListForMenu(scope.row,scope.$index)" icon="el-icon-s-operation">查看关联的任务</el-button>
<el-button v-if="selProject" type="primary" @click="showTasks(scope.row,scope.$index)" icon="el-icon-s-operation">查看关联的任务</el-button>
</el-col> </el-col>
<el-col :span="24" style="padding-top:5px;"> <el-col :span="24" style="padding-top:5px;">
<el-button v-if="!selProject" type="primary" @click="showTaskListForMenu(scope.row,scope.$index)" icon="el-icon-s-operation">查看任务</el-button>
<el-button v-if="selProject" type="primary" @click="showTasks(scope.row,scope.$index)" icon="el-icon-s-operation">查看任务</el-button>
</el-col>
<el-button type="primary" @click="toIterationList(scope.row,scope.$index)" icon="el-icon-document-copy">查看关联的迭代计划</el-button>
</el-col>
<el-col :span="24" style="padding-top:5px;"> <el-col :span="24" style="padding-top:5px;">
<el-button type="primary" @click="toIterationList(scope.row,scope.$index)" icon="el-icon-document-copy">查看迭代计划</el-button>
<el-button type="danger" @click="handleDel(scope.row)" icon="el-icon-delete">删除该故事</el-button>
</el-col> </el-col>
</el-row> </el-row>
<el-button size="mini" slot="reference" icon="el-icon-more" circle></el-button>
</el-popover>
</font>
<el-button slot="reference" icon="el-icon-more" circle></el-button>
</el-popover>
</template> </template>
</el-table-column> </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>
@ -278,6 +298,9 @@
mmUser:null, mmUser:null,
iterationFilterType:'',//joinnot-join'' iterationFilterType:'',//joinnot-join''
taskFilterType:'',//joinnot-join'' taskFilterType:'',//joinnot-join''
parentMenu:null,
parentMenuList:[],
}, },
xmMenus: [],// xmMenus: [],//
pageInfo:{// pageInfo:{//
@ -403,6 +426,10 @@
if(this.selProject){ if(this.selProject){
params.projectId=this.selProject.id params.projectId=this.selProject.id
} }
if(this.filters.parentMenu){
params.pmenuId=this.filters.parentMenu.menuId
}
params.ctimeStart=this.dateRanger[0]+" 00:00:00" params.ctimeStart=this.dateRanger[0]+" 00:00:00"
params.ctimeEnd=this.dateRanger[1]+" 23:59:59" params.ctimeEnd=this.dateRanger[1]+" 23:59:59"
let callback= (res)=>{ let callback= (res)=>{
@ -471,6 +498,8 @@
}, },
onProductSelected:function(product){ onProductSelected:function(product){
this.filters.product=product this.filters.product=product
this.filters.parentMenu=null;
this.filters.parentMenuList=[];
this.productVisible=false; this.productVisible=false;
this.getXmMenus() this.getXmMenus()
}, },
@ -798,6 +827,24 @@
}, },
toSelectProduct(){ toSelectProduct(){
this.productVisible=true; this.productVisible=true;
},
searchSubMenus(row,index){
this.filters.parentMenu=row
this.filters.parentMenuList.push(row);
this.pageInfo.count=true;
this.searchXmMenus();
},
clearParentMenu(menu,index){
if(index==1){
this.filters.parentMenu=null;
}else{
this.filters.parentMenu=this.filters.parentMenuList[index-1];
}
this.filters.parentMenuList.splice(index,this.filters.parentMenuList.length-index)
this.pageInfo.count=true
this.searchXmMenus();
} }
},//end methods },//end methods
components: { components: {

Loading…
Cancel
Save