Browse Source

优化

master
陈裕财 4 years ago
parent
commit
620675bd85
  1. 97
      src/views/xm/core/xmProduct/XmProductMng.vue
  2. 10
      src/views/xm/core/xmTask/XmTaskMng.vue

97
src/views/xm/core/xmProduct/XmProductMng.vue

@ -8,26 +8,9 @@
</el-select> </el-select>
<el-input v-if="filters.queryScope=='productId'" style="width:20%;" v-model="filters.id" placeholder="输入产品编号" @keyup.enter.native="searchXmProducts"> <el-input v-if="filters.queryScope=='productId'" style="width:20%;" v-model="filters.id" placeholder="输入产品编号" @keyup.enter.native="searchXmProducts">
</el-input> </el-input>
<el-date-picker v-show="!selProject&&filters.queryScope!='productId'"
v-model="dateRanger"
type="daterange"
align="right"
class="hidden-md-and-down"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="完成日期"
value-format="yyyy-MM-dd"
:default-time="['00:00:00','23:59:59']"
:picker-options="pickerOptions"
></el-date-picker>
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询">
<template slot="append">
<el-button v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProducts" icon="el-icon-search"></el-button>
</template>
<el-input v-model="filters.key" style="width: 20%;" placeholder="名称查询" clearable>
</el-input> </el-input>
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProducts" icon="el-icon-search">查询</el-button>
<el-button type="primary" @click="showAdd" icon="el-icon-plus" v-if="!xmIteration">产品</el-button> <el-button type="primary" @click="showAdd" icon="el-icon-plus" v-if="!xmIteration">产品</el-button>
<el-popover <el-popover
placement="top-start" placement="top-start"
@ -61,7 +44,7 @@
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="完成日期" end-placeholder="完成日期"
value-format="yyyy-MM-dd"
value-format="yyyy-MM-dd HH:mm:ss"
: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>
@ -138,49 +121,38 @@
<el-row class="padding-top" v-show="!showType"> <el-row class="padding-top" v-show="!showType">
<!--列表 XmProduct 产品表--> <!--列表 XmProduct 产品表-->
<el-table ref="table" :height="tableHeight" :data="xmProducts" @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="xmProducts" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column prop="productName" label="产品名称" min-width="300">
<el-table-column prop="productName" label="产品名称" min-width="200" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<span><el-link type="primary" @click="intoInfo(scope.row)">{{scope.row.productName}}</el-link></span>
<el-link type="primary" @click="intoInfo(scope.row)">{{scope.row.productName}}</el-link>
</template>
</el-table-column>
<el-table-column prop="finishRate" label="进度" width="120" sortable>
<template slot-scope="scope">
<font class="align-right"><el-tag :type="scope.row.finishRate>=100?'success':'warning'">{{scope.row.finishRate}}%</el-tag> <font class="align-right"><el-tag :type="scope.row.finishRate>=100?'success':'warning'">{{scope.row.finishRate}}%</el-tag>
<el-tooltip content="产品经理"><el-tag v-if="scope.row.pmUsername">{{scope.row.pmUsername}}</el-tag></el-tooltip>
<el-tooltip content="点击统计进度,由任务汇总"><el-button icon="el-icon-video-play" @click.stop="loadTasksToXmProductState( scope.row)"></el-button></el-tooltip>
<el-tooltip content="点击统计进度,由任务汇总"><el-button type="text" icon="el-icon-video-play" @click.stop="loadTasksToXmProductState( scope.row)"></el-button></el-tooltip>
</font> </font>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="planWorkload" label="预计工作量.人时" width="150" show-overflow-tooltip></el-table-column>
<el-table-column prop="actWorkload" label="实际工作量.人时" width="150" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<el-table-column prop="pmUsername" label="产品经理" min-width="120" sortable>
<template slot-scope="scope">
<el-tag v-if="scope.row.pmUsername">{{scope.row.pmUsername}}</el-tag>
</template>
</el-table-column>
<el-table-column label="工作量(人时)" width="200">
<el-table-column prop="planWorkload" label="预计" width="100" show-overflow-tooltip sortable></el-table-column>
<el-table-column prop="actWorkload" label="实际" width="100" show-overflow-tooltip sortable></el-table-column>
</el-table-column>
<el-table-column label="操作" width="300" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover
placement="top-start"
title=""
width="200"
trigger="click" >
<el-row>
<el-col :span="24" style="padding-top:12px;">
<el-button type="warning" @click="loadTasksToXmProductState(scope.row)" icon="el-icon-s-data">从任务汇总统计进度</el-button>
</el-col>
<el-col :span="24" style="padding-top:12px;">
<el-button type="warning" @click="showProductState(scope.row)" icon="el-icon-s-data">产品报告</el-button>
</el-col>
<el-col :span="24" style="padding-top:12px;">
<el-button type="primary" @click="toIterationList(scope.row)" icon="el-icon-document">关联迭代计划查询</el-button>
</el-col>
<el-col :span="24" style="padding-top:12px;">
<el-button type="success" @click="toProjectList(scope.row)" icon="el-icon-document">关联项目查询</el-button>
</el-col>
<el-col :span="24" style="padding-top:12px;">
<el-button type="success" @click="toTaskList(scope.row)" icon="el-icon-tickets">关联任务查询</el-button>
</el-col>
<el-col :span="24" style="padding-top:12px;">
<el-button type="danger" v-loading="load.del" @click="handleDel(scope.row)" :disabled="load.del==true" icon="el-icon-delete">删除</el-button>
</el-col>
</el-row>
<el-button slot="reference" icon="el-icon-more"></el-button>
</el-popover>
<el-button type="text" @click="showProductState(scope.row)" icon="el-icon-s-data">报告</el-button>
<el-button type="text" @click="toIterationList(scope.row)" icon="el-icon-document">迭代</el-button>
<el-button type="text" @click="toProjectList(scope.row)" icon="el-icon-document">项目</el-button>
<el-button type="text" @click="toTaskList(scope.row)" icon="el-icon-tickets">任务</el-button>
<el-button type="text" v-loading="load.del" @click="handleDel(scope.row)" :disabled="load.del==true" icon="el-icon-delete">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -296,9 +268,7 @@ import XmProductSelect from './XmProductSelect.vue';
productStateVisible:false, productStateVisible:false,
selectFiltersPmUserVisible:false, selectFiltersPmUserVisible:false,
tableHeight:300, tableHeight:300,
dateRanger: [
util.formatDate.format(beginDate, "yyyy-MM-dd"),
util.formatDate.format(endDate, "yyyy-MM-dd")
dateRanger: [
], ],
pickerOptions: util.pickerOptions('datarange'), pickerOptions: util.pickerOptions('datarange'),
projectVisible:false, projectVisible:false,
@ -381,13 +351,10 @@ import XmProductSelect from './XmProductSelect.vue';
if(this.filters.queryScope=="branchId"){ if(this.filters.queryScope=="branchId"){
params.branchId=this.userInfo.branchId params.branchId=this.userInfo.branchId
} }
if(!this.selProject && !this.xmIteration && this.filters.queryScope!='productId' && this.filters.queryScope!='compete'){
if(!this.dateRanger || this.dateRanger.length==0){
this.$message({showClose: true, message: "创建日期范围不能为空", type: 'error' });
return;
}
params.ctimeStart=this.dateRanger[0]+" 00:00:00"
params.ctimeEnd=this.dateRanger[1]+" 23:59:59"
if(this.dateRanger && this.dateRanger.length==2){
params.ctimeStart=this.dateRanger[0]
params.ctimeEnd=this.dateRanger[1]
} }
if(this.xmIteration){ if(this.xmIteration){
params.iterationId=this.xmIteration.id params.iterationId=this.xmIteration.id

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

@ -673,8 +673,6 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
tableHeight:300, tableHeight:300,
productSelectVisible:false, productSelectVisible:false,
dateRanger: [ dateRanger: [
util.formatDate.format(beginDate, "yyyy-MM-dd"),
util.formatDate.format(endDate, "yyyy-MM-dd")
], ],
pickerOptions: util.pickerOptions('datarange'), pickerOptions: util.pickerOptions('datarange'),
@ -759,9 +757,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
} }
params.orderBy= orderBys.join(",") params.orderBy= orderBys.join(",")
} }
if(!this.dateRanger || this.dateRanger.length==0){
this.$message({showClose: true, message: "创建日期范围不能为空", type: 'error' });
return;
if(this.dateRanger && this.dateRanger.length==2){
params.createTimeStart=this.dateRanger[0]+" 00:00:00"
params.createTimeEnd=this.dateRanger[1]+" 23:59:59"
} }
if(this.filters.taskType!="all" && this.filters.taskType!="" && this.filters.taskType!=null){ if(this.filters.taskType!="all" && this.filters.taskType!="" && this.filters.taskType!=null){
params.taskType=this.filters.taskType params.taskType=this.filters.taskType
@ -822,8 +820,6 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
if(this.xmIteration){ if(this.xmIteration){
params.iterationId=this.xmIteration.id params.iterationId=this.xmIteration.id
} }
params.createTimeStart=this.dateRanger[0]+" 00:00:00"
params.createTimeEnd=this.dateRanger[1]+" 23:59:59"
getTask(params).then((res) => { getTask(params).then((res) => {
var tips=res.data.tips; var tips=res.data.tips;
if(tips.isOk){ if(tips.isOk){

Loading…
Cancel
Save