Browse Source

优化查询条件

master
陈裕财 5 years ago
parent
commit
73abc7e54b
  1. 12
      src/views/xm/core/xmFile/XmFileMng.vue
  2. 2
      src/views/xm/core/xmMenu/XmMenuSelect.vue
  3. 6
      src/views/xm/core/xmProjectGroupFormwork/XmProjectGroupFormwork.vue
  4. 2
      src/views/xm/core/xmProjectMCostUser/XmProjectMCostUserMng.vue
  5. 10
      src/views/xm/core/xmProjectState/XmProjectStateMng.vue
  6. 37
      src/views/xm/core/xmQuestion/XmQuestionMng.vue
  7. 109
      src/views/xm/core/xmTask/XmTaskMng.vue
  8. 4
      src/views/xm/core/xmTestCase/XmTestCaseMng.vue
  9. 2
      src/views/xm/core/xmTestCaseExec/XmTestCaseExecMng.vue

12
src/views/xm/core/xmFile/XmFileMng.vue

@ -13,7 +13,7 @@
</div>
</el-menu>
<!--列表 XmFile xm_file-->
<el-table :data="Files" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table ref="table" :max-height="tableHeight" :data="xmFiles" @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="selection" width="40"></el-table-column>
<el-table-column prop="name" label="文档标题" ></el-table-column>
<el-table-column prop="createUsername" label="创建人" ></el-table-column>
@ -87,11 +87,7 @@
...mapGetters([
'userInfo','roles'
]),
Files() {
if(this.selProject != undefined){
const file = this.selProject.file.filter(i=>i.name.indexOf(this.searchFile) != -1);
return file;
}
Files() {
return [];
},
},
@ -129,6 +125,7 @@
InfoVisible: false,
selFile: {},
searchFile: '',
tableHeight:300,
/**end 自定义属性请在上面加 请加备注**/
}
},//end data
@ -275,6 +272,9 @@
},
mounted() {
this.$nextTick(() => {
var clientRect=this.$refs.table.$el.getBoundingClientRect();
var subHeight=100/1000 * window.innerHeight;
this.tableHeight = window.innerHeight -clientRect.y - this.$refs.table.$el.offsetTop-subHeight;
this.getXmFiles();
});
}

2
src/views/xm/core/xmMenu/XmMenuSelect.vue

@ -268,7 +268,7 @@
this.$nextTick(() => {
this.getXmMenus();
var clientRect=this.$refs.table.$el.getBoundingClientRect();
var subHeight=65/1000 * window.innerHeight;
var subHeight=80/1000 * window.innerHeight;
this.tableHeight = window.innerHeight -clientRect.y - this.$refs.table.$el.offsetTop-subHeight;
});
}

6
src/views/xm/core/xmProjectGroupFormwork/XmProjectGroupFormwork.vue

@ -554,9 +554,9 @@
mounted() {
this.$nextTick(() => {
var clientRect=this.$refs.table.$el.getBoundingClientRect();
var subHeight=80/1000 * window.innerHeight;
this.tableHeight = window.innerHeight -clientRect.y - this.$refs.table.$el.offsetTop-subHeight;
var subHeight=400/1000 * window.innerHeight;
this.tableHeight = window.innerHeight -subHeight;
if(this.selGroups){
this.selGroups.forEach(i=>{
if(i.groupUsers){

2
src/views/xm/core/xmProjectMCostUser/XmProjectMCostUserMng.vue

@ -22,7 +22,7 @@
<el-row class="app-container">
<!--列表 XmProjectMCostUser xm_project_m_budget_cost_user-->
<el-table ref="table" :max-height="tableHeight" :data="xmProjectMCostUsers" show-summary @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="selection" width="40"></el-table-column>
<el-table-column sortable type="selection" width="60"></el-table-column>
<el-table-column sortable type="index" width="40"></el-table-column>
<el-table-column prop="username" label="用户名" min-width="80" >
<template slot-scope="scope">

10
src/views/xm/core/xmProjectState/XmProjectStateMng.vue

@ -13,7 +13,7 @@
</el-row>
<el-row class="app-container">
<!--列表 XmProjectState 项目指标日统计表-->
<el-table :max-height="tableHeight" :data="xmProjectStates" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table ref="table" :max-height="tableHeight" :data="xmProjectStates" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="45"></el-table-column>
<el-table-column sortable type="index" width="45"> </el-table-column>
<el-table-column type="expand" width="45">
@ -173,7 +173,7 @@
},
selectProjectVisible:false,
/**begin 自定义属性请在下面加 请加备注**/
tableHeight:300,
/**end 自定义属性请在上面加 请加备注**/
}
},//end data
@ -424,6 +424,12 @@
if(this.selProject){
this.filters.selProject=this.selProject
}
var clientRect=this.$refs.table.$el.getBoundingClientRect();
var subHeight=65/1000 * window.innerHeight;
if(this.selProject){
subHeight=100/1000 * window.innerHeight;
}
this.tableHeight = window.innerHeight -clientRect.y - this.$refs.table.$el.offsetTop-subHeight;
this.getXmProjectStates();
listOption([{categoryId:'all',itemCode:'projectStatus'}] ).then(res=>{
if(res.data.tips.isOk){

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

@ -14,7 +14,7 @@
</el-option>
</el-select>
<el-button v-if=" !filters.menus || filters.menus.length==0" @click="showMenu"> 选择故事</el-button>
<el-tag v-else closable @close="clearFiltersMneu(filters.menus[0])">{{filters.menus[0].menuName.substr(0,5)}}({{filters.menus.length}})</el-tag>
<el-tag v-else closable @close="clearFiltersMenu(filters.menus[0])">{{filters.menus[0].menuName.substr(0,5)}}({{filters.menus.length}})</el-tag>
<el-input style="width:200px;" v-model="filters.key" placeholder="问题名称">
<template slot="append">
<el-button @click="searchXmQuestions" type="primary" icon="el-icon-search"></el-button>
@ -28,22 +28,31 @@
width="400"
trigger="click" >
<el-row>
<el-col :span="24" style="padding-top:12px;">
<el-col :span="24" style="padding-top:12px;" v-if="!selProject">
<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-button v-if="!filters.selProject" @click="showProjectList(true)" >选择项目</el-button>
<el-button v-else @click="showProjectList(true)" >选择项目</el-button>
</el-col>
<el-col :span="24" style="padding-top:12px;">
<el-button v-if="!filters.handlerUsername" @click="showGroupUsers('handlerUsername')">选择指派人</el-button>
<el-tag v-if="filters.handlerUsername" closable @close="clearHandler" @click="showGroupUsers('handlerUsername')">{{filters.handlerUsername}}</el-tag>
</el-col>
<el-col :span="24" class="hidden-lg-and-up" style="padding-top:12px;">
<font class="more-label-font">指派给:</font>
<el-button v-if="!filters.handlerUsername" @click="showGroupUsers('handlerUsername')">选择被指派人</el-button>
<el-tag v-else closable @close="clearHandler" @click="showGroupUsers('handlerUsername')">{{filters.handlerUsername}}</el-tag>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<font class="more-label-font">故事:</font>
<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>
</font>
<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-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>
</el-select>
</el-col>
<el-col :span="24" style="padding-top:12px;">
<el-col :span="24" style="padding-top:12px;">
<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>
@ -134,8 +143,8 @@
<xm-project-list @project-confirm="onPorjectConfirm"></xm-project-list>
</el-dialog>
<el-dialog append-to-body title="故事选择" :visible.sync="menuVisible" fullscreen :close-on-click-modal="false">
<xm-menu-select :visible="menuVisible" :is-select-menu="true" :multi="true" @menus-selected="onSelectedMenus" ></xm-menu-select>
<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>
</el-dialog>
</section>
</template>
@ -369,7 +378,7 @@
this.filters.menus=menus;
this.searchXmQuestions();
},
clearFiltersMneu(menu){
clearFiltersMenu(menu){
var index=this.filters.menus.findIndex(i=>i.menuId==menu.menuId)
this.filters.menus.splice(index,1);
this.searchXmQuestions();
@ -776,4 +785,10 @@
* >>> .autowidth{
min-width: 0px !important;
}
.more-label-font{
text-align:center;
float:left;
padding-top:10px;
}
</style>

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

@ -27,17 +27,17 @@
</el-select>
<el-checkbox v-model="filters.taskOut" true-label="1" false-label="">众包</el-checkbox>
<el-button class="hidden-md-and-down" v-if=" !filters.skillTags || filters.skillTags.length==0" icon="el-icon-search" @click="showSkillSelect">选择标签</el-button>
<el-tag class="hidden-md-and-down" closable v-for=" (skill,index) in filters.skillTags" :key="index" @click="showSkillSelect" @close="skillTagClear(skill)">{{skill.skillName}}</el-tag>
<div style=" float:right;margin-right:10px;">
<el-checkbox v-model="gstcVisible" class="hidden-md-and-down" >甘特图</el-checkbox>
<el-tag class="hidden-md-and-down" v-if=" !selProject && filters.selProject" :closable="!selProject" @click="showProjectList" @close="clearProject">项目:{{this.filters.selProject.name}}</el-tag>
<el-button class="hidden-md-and-down" v-if=" !selProject && !filters.selProject" @click="showProjectList" type="plian">选项目</el-button>
<el-tag class="hidden-md-and-down" closable v-for=" (skill,index) in filters.skillTags" :key="index" @click="showSkillSelect" @close="skillTagClear(skill)">{{skill.skillName}}</el-tag>
<font v-if="!selProject">
<el-tag class="hidden-md-and-down" v-if=" filters.selProject" closable @click="showProjectList" @close="clearProject">{{this.filters.selProject.name}}</el-tag>
<el-button class="hidden-md-and-down" v-else @click="showProjectList" type="plian">选项目</el-button>
</font>
<el-input style="width:200px;" v-model="filters.key" placeholder="任务名称">
<template slot="append">
<el-button @click="searchXmTasks" type="primary" icon="el-icon-search" v-loading="load.list"></el-button>
</template>
</el-input>
<el-checkbox v-model="gstcVisible" class="hidden-md-and-down" >甘特图</el-checkbox>
<el-button v-if=" isTaskCenter!='1' && isMy!='1'" @click="showAdd" type="primary" icon="el-icon-plus" circle></el-button>
<el-popover
placement="top-start"
@ -56,22 +56,40 @@
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="padding-top:5px;" class="hidden-lg-and-up" >
<el-tag class="hidden-md-and-down" v-if=" !selProject && filters.selProject" :closable="!selProject" @click="showProjectList" @close="clearProject">项目:{{this.filters.selProject.name}}</el-tag>
<el-button v-else class="hidden-md-and-down" @click="showProjectList" type="plian">选项目</el-button>
</el-col>
<el-col :span="24" style="padding-top:5px;" v-if="!selProject" >
<font class="more-label-font">项目:</font><el-tag v-if=" filters.selProject " closable @click="showProjectList" @close="clearProject">{{this.filters.selProject.name}}</el-tag>
<el-button v-else @click="showProjectList" type="plian">选项目</el-button>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<el-checkbox v-model="gstcVisible" class="hidden-lg-and-up" >甘特图</el-checkbox>
</el-col>
<font class="more-label-font">故事:</font>
<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>
</font>
<el-button v-else @click="showMenuStory" type="plian">选故事</el-button>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<font class="more-label-font">责任人:</font>
<el-tag v-if=" filters.createUser " closable @close="clearFiltersCreateUser">{{this.filters.createUser.username}}</el-tag>
<el-button v-else @click="showMenuGroupUser" type="plian">选责任人</el-button>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<font class="more-label-font">执行人:</font>
<el-tag v-if=" filters.executor " closable @close="clearFiltersExecutor">{{this.filters.executor.username}}</el-tag>
<el-button v-else @click="showMenuExecutor" type="plian">选执行人</el-button>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<el-button class="hidden-lg-and-up" v-if=" !filters.skillTags || filters.skillTags.length==0" icon="el-icon-search" @click="showSkillSelect">选择标签</el-button>
<el-tag v-else class="hidden-lg-and-up" closable v-for=" (skill,index) in filters.skillTags" :key="index" @click="showSkillSelect" @close="skillTagClear(skill)">{{skill.skillName}}</el-tag>
<font class="more-label-font">标签:</font>
<el-button v-if=" !filters.skillTags || filters.skillTags.length==0" icon="el-icon-search" @click="showSkillSelect">选择标签</el-button>
<el-tag v-else closable v-for=" (skill,index) in filters.skillTags" :key="index" @click="showSkillSelect" @close="skillTagClear(skill)">{{skill.skillName}}</el-tag>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<el-checkbox v-model="gstcVisible" >甘特图</el-checkbox>
</el-col>
</el-row>
<el-button slot="reference" icon="el-icon-more" circle></el-button>
</el-popover>
</div>
</el-popover>
</el-row>
<el-row style="padding-top:12px;">
<el-table v-if="!gstcVisible"
@ -573,9 +591,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
selProject:null,
skillTags:[],
taskOut:'',//10//
menus:[],
createUserid:'',//
executorUserid:''//
menus:[],
createUser:null,//
executor:null//
},
xmTasks: [],//
pageInfo:{//
@ -639,9 +657,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
menuDetailVisible:false,
pickerOptions: util.pickerOptions(),
gstcVisible:false,
menuStory:false,//
menuGroupUser:false,//
menuExecutor:false,//
menuStory:false,//
menuGroupUser:false,//
menuExecutor:false,//
groupUserSelectVisible:false,//
showSkillSearchVisible:false,//
tableHeight:300,
@ -673,6 +691,18 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
changeShowInfo(){
this.projectInfoVisible=false;
},
clearFiltersCreateUser(){
this.filters.createUser=null
this.searchXmTasks()
},
clearFiltersExecutor(){
this.filters.executor=null
this.searchXmTasks()
},
clearFiltersMenu(menu){
this.filters.menus=this.filters.menus.filter(i=>i.menuId!=menu.menuId)
this.searchXmTasks()
},
// obj.order=ascending/descending, asc/desc ; obj.prop=,
sortChange( obj ){
if(obj.order==null){
@ -751,7 +781,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
if(this.filters.menus && this.filters.menus.length==1){
params.menuId=this.filters.menus[0].menuId
}else if(this.filters.menus && this.filters.menus.length>1){
params.menus=this.filters.menus.map(i=>i.menus)
params.menuIds=this.filters.menus.map(i=>i.menuId)
}
if(this.filters.skillTags && this.filters.skillTags.length>0){
params.skillIds=this.filters.skillTags.map(i=>i.skillId)
@ -762,11 +792,11 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
if(this.filters.taskOut){
params.taskOut=this.filters.taskOut
}
if(this.filters.createUserid){
params.createUserid=this.filters.createUserid
if(this.filters.createUser){
params.createUserid=this.filters.createUser.userid
}
if(this.filters.executorUserid){
params.executorUserid=this.filters.executorUserid
if(this.filters.executor){
params.executorUserid=this.filters.executor.userid
}
getTask(params).then((res) => {
var tips=res.data.tips;
@ -1048,6 +1078,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
},
onSelectedStory(menus){//
debugger;
if(menus==null || menus.length==0){
this.menuStory=false;
return;
@ -1417,6 +1448,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
this.selectProjectVisible=true;
},
onPorjectConfirm:function(project){
this.filters.selProject=project
this.selectProjectVisible=false;
this.getXmTasks();
},
@ -1584,20 +1616,22 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
})
},
//
seleConfirm(groupUser){
if(groupUser&&groupUser.length!==0){
this.filters.createUserid=groupUser[0].userid;
seleConfirm(groupUsers){
debugger;
if(groupUsers&&groupUsers.length>0){
this.filters.createUser=groupUsers[0];
}else{
this.filters.createUserid='';
this.filters.createUser=null;
}
this.searchXmTasks();
this.menuGroupUser=false;
},
seleExecutor(executor){
if(executor&&executor.length!==0){
this.filters.executorUserid=executor[0].userid;
seleExecutor(executors){
if(executors&&executors.length>0){
this.filters.executor=executors[0];
}else{
this.filters.executorUserid='';
this.filters.executor=null;
}
this.searchXmTasks();
this.menuExecutor=false;
@ -1798,6 +1832,11 @@ small{
clear: both;
content: "";
}
.more-label-font{
text-align:center;
float:left;
padding-top:10px;
}
</style>
<style lang="scss" scoped>
.el-table{

4
src/views/xm/core/xmTestCase/XmTestCaseMng.vue

@ -58,8 +58,8 @@
<xm-test-case-add :xm-test-case="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-test-case-add>
</el-dialog>
</el-row>
<el-dialog append-to-body title="故事选择" :visible.sync="menuVisible" fullscreen :close-on-click-modal="false">
<xm-menu-select :visible="menuVisible" :is-select-menu="true" :multi="true" :exclude-iteration-id="iteration?iteration.id:''" @menus-selected="onSelectedMenus" ></xm-menu-select>
<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>
</el-dialog>
</section>
</template>

2
src/views/xm/core/xmTestCaseExec/XmTestCaseExecMng.vue

@ -31,7 +31,7 @@
<el-table-column type="selection" width="45"></el-table-column>
<el-table-column sortable type="index" width="45"></el-table-column>
<el-table-column prop="projectName" label="项目名称" min-width="100" >
<template slot="header">
<template slot="header" v-if="!selProject">
项目<el-button @click="showProjectList" icon="el-icon-search" circle size="mini"></el-button>
</template>
</el-table-column>

Loading…
Cancel
Save