Browse Source

界面优化

master
陈裕财 5 years ago
parent
commit
39c2c0f8e1
  1. 4
      src/views/xm/core/xmMenu/XmMenuMng.vue
  2. 45
      src/views/xm/core/xmProduct/XmProductMng.vue
  3. 2
      src/views/xm/core/xmProduct/XmProductSelect.vue
  4. 14
      src/views/xm/core/xmProject/XmProjectInfo.vue
  5. 28
      src/views/xm/core/xmProject/XmProjectMng.vue
  6. 26
      src/views/xm/core/xmProjectPhase/XmProjectPhaseBatch.vue
  7. 73
      src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue
  8. 2
      src/views/xm/core/xmProjectPhase/XmProjectPhaseSelect.vue
  9. 18
      src/views/xm/core/xmQuestion/XmQuestionMng.vue
  10. 27
      src/views/xm/core/xmTask/XmTaskMng.vue

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

@ -2,10 +2,10 @@
<section> <section>
<el-row> <el-row>
<el-row > <el-row >
<el-col v-show="!batchEditVisible" :span="filters.product?6:24" class="app-container">
<el-col v-show="!batchEditVisible&& !filters.product" :span="24" class="app-container">
<xm-product-mng :sel-project="selProject" @row-click="onProductSelected" ref="xmProductMng" :simple="true"></xm-product-mng> <xm-product-mng :sel-project="selProject" @row-click="onProductSelected" ref="xmProductMng" :simple="true"></xm-product-mng>
</el-col> </el-col>
<el-col v-show="filters.product" :span="!batchEditVisible? 18:24" >
<el-col v-show="filters.product" :span="24" >
<el-row class="app-container"> <el-row class="app-container">
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"> <el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询">
<template slot="append"> <template slot="append">

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

@ -1,13 +1,13 @@
<template> <template>
<section> <section>
<el-row class="app-container"> <el-row class="app-container">
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询">
<el-input v-model="filters.key" style="width: 40%;" placeholder="模糊查询">
<template slot="append"> <template slot="append">
<el-button v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProducts" icon="el-icon-search"></el-button> <el-button v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProducts" icon="el-icon-search"></el-button>
</template> </template>
</el-input> </el-input>
<el-button type="primary" @click="showAdd" icon="el-icon-plus"></el-button>
<el-button type="primary" @click="showAdd" icon="el-icon-plus">产品</el-button>
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true" icon="el-icon-delete"></el-button> <el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true" icon="el-icon-delete"></el-button>
</el-row> </el-row>
@ -27,15 +27,40 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="pmUsername" label="产品经理" width="100" ></el-table-column> <el-table-column prop="pmUsername" label="产品经理" width="100" ></el-table-column>
<el-table-column prop="planWorkload" label="预计工作量.人时" width="120" ></el-table-column>
<el-table-column prop="actWorkload" label="实际工作量.人时" width="120" ></el-table-column>
<el-table-column label="操作" width="540" fixed="right">
<el-table-column prop="planWorkload" label="预计工作量.人时" width="150" ></el-table-column>
<el-table-column prop="actWorkload" label="实际工作量.人时" width="150" ></el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="warning" @click="loadTasksToXmProductState(scope.row)" icon="el-icon-s-data">刷新</el-button>
<el-button type="warning" @click="showProductState(scope.row)" icon="el-icon-s-data">报告</el-button>
<el-button type="success" @click="toIterationList(scope.row)" icon="el-icon-document">迭代</el-button>
<el-button type="success" @click="toProjectList(scope.row)" icon="el-icon-document">项目</el-button>
<el-button type="success" @click="toTaskList(scope.row)" icon="el-icon-tickets">任务</el-button>
<el-button type="primary" @click="toIterationList(scope.row)" icon="el-icon-document">迭代计划</el-button>
<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" class="hidden-lg-and-up" style="padding-top:12px;">
<el-button type="success" @click="toProjectList(scope.row)" icon="el-icon-document">关联项目查询</el-button>
</el-col>
<el-col :span="24" class="hidden-lg-and-up" style="padding-top:12px;">
<el-button type="success" @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="toTaskList(scope.row)" icon="el-icon-tickets">关联任务查询</el-button>
</el-col>
</el-row>
<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>

2
src/views/xm/core/xmProduct/XmProductSelect.vue

@ -15,7 +15,7 @@
</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 class="hidden-md-and-down" 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-row> </el-row>
</section> </section>
</template> </template>

14
src/views/xm/core/xmProject/XmProjectInfo.vue

@ -7,7 +7,7 @@
<el-radio-button label="任务"></el-radio-button> <el-radio-button label="任务"></el-radio-button>
<el-radio-button label="阶段计划"></el-radio-button> <el-radio-button label="阶段计划"></el-radio-button>
<el-radio-button label="团队"></el-radio-button> <el-radio-button label="团队"></el-radio-button>
<el-radio-button label="风险"></el-radio-button>
<el-radio-button class="hidden-sm-and-down" label="风险"></el-radio-button>
<el-radio-button label="问题"></el-radio-button> <el-radio-button label="问题"></el-radio-button>
<el-radio-button label="测试计划"></el-radio-button> <el-radio-button label="测试计划"></el-radio-button>
<el-radio-button label="文档"></el-radio-button> <el-radio-button label="文档"></el-radio-button>
@ -15,12 +15,12 @@
<el-radio-button label="故事监控"></el-radio-button> <el-radio-button label="故事监控"></el-radio-button>
<el-radio-button label="项目监控"></el-radio-button> <el-radio-button label="项目监控"></el-radio-button>
<el-radio-button label="详情"></el-radio-button> <el-radio-button label="详情"></el-radio-button>
<el-radio-button label="考核"></el-radio-button>
<el-radio-button label="日志"></el-radio-button>
<el-radio-button label="费用"></el-radio-button>
<el-radio-button label="预算"></el-radio-button>
<el-radio-button label="合同管理"></el-radio-button>
<el-radio-button label="环境清单"></el-radio-button>
<el-radio-button class="hidden-sm-and-down" label="考核"></el-radio-button>
<el-radio-button class="hidden-md-and-down" label="日志"></el-radio-button>
<el-radio-button class="hidden-md-and-down" label="费用"></el-radio-button>
<el-radio-button class="hidden-md-and-down" label="预算"></el-radio-button>
<el-radio-button class="hidden-lg-and-down" label="合同管理"></el-radio-button>
<el-radio-button class="hidden-lg-and-down" label="环境清单"></el-radio-button>
</el-radio-group> </el-radio-group>
<el-popover <el-popover
placement="top-start" placement="top-start"

28
src/views/xm/core/xmProject/XmProjectMng.vue

@ -1,7 +1,7 @@
<template> <template>
<section> <section>
<el-row> <el-row>
<el-menu active-text-color="#00abfc" :default-active="menukey" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-menu active-text-color="#00abfc" :default-active="menukey" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-menu-item index="all">全部</el-menu-item> <el-menu-item index="all">全部</el-menu-item>
<el-menu-item index="compete">我参与</el-menu-item> <el-menu-item index="compete">我参与</el-menu-item>
<el-menu-item index="leader">我管理</el-menu-item> <el-menu-item index="leader">我管理</el-menu-item>
@ -12,11 +12,11 @@
<el-menu-item index="myExecuserStatus0">我排队</el-menu-item> <el-menu-item index="myExecuserStatus0">我排队</el-menu-item>
<el-menu-item index="myExecuserStatus1">我执行</el-menu-item> <el-menu-item index="myExecuserStatus1">我执行</el-menu-item>
<el-menu-item index="myExecuserStatus2">我提交验收</el-menu-item> <el-menu-item index="myExecuserStatus2">我提交验收</el-menu-item>
<el-menu-item index="myExecuserStatus3">我验收成功</el-menu-item>
<el-menu-item index="myExecuserStatus4">我验收失败</el-menu-item>
<el-menu-item index="myExecuserStatus5">我付款中</el-menu-item>
<el-menu-item index="myExecuserStatus6">我付款成功</el-menu-item>
<el-menu-item index="myExecuserStatus7">我放弃</el-menu-item>
<el-menu-item class="hidden-md-and-down" index="myExecuserStatus3">我验收成功</el-menu-item>
<el-menu-item class="hidden-md-and-down" index="myExecuserStatus4">我验收失败</el-menu-item>
<el-menu-item class="hidden-md-and-down" index="myExecuserStatus5">我付款中</el-menu-item>
<el-menu-item class="hidden-lg-and-down" index="myExecuserStatus6">我付款成功</el-menu-item>
<el-menu-item class="hidden-lg-and-down" index="myExecuserStatus7">我放弃</el-menu-item>
<!-- <el-submenu index="7"> <!-- <el-submenu index="7">
<template slot="title">更多筛选</template> <template slot="title">更多筛选</template>
<el-menu-item index="7-1">选项1</el-menu-item> <el-menu-item index="7-1">选项1</el-menu-item>
@ -39,16 +39,24 @@
<el-button :loading="load.list" v-if="!showType" :class="{'changebtn-active':showType}" plain type="text" @click="showType=true" icon="el-icon-menu"></el-button> <el-button :loading="load.list" v-if="!showType" :class="{'changebtn-active':showType}" plain type="text" @click="showType=true" icon="el-icon-menu"></el-button>
<el-button :loading="load.list" v-else :class="{'changebtn-active':!showType}" plain type="text" @click="showType=false" icon="el-icon-more"></el-button> <el-button :loading="load.list" v-else :class="{'changebtn-active':!showType}" plain type="text" @click="showType=false" icon="el-icon-more"></el-button>
</el-col> </el-col>
<el-col :span="24" style="padding-top:5px; ">
<el-button class="hidden-lg-and-up hidden-btn" style="margin-left:10px;" @click="handleSelect('myExecuserStatus3')">我验收成功</el-button>
<el-button class="hidden-lg-and-up hidden-btn" @click="handleSelect('myExecuserStatus4')">我验收失败</el-button>
<el-button class="hidden-lg-and-up hidden-btn" @click="handleSelect('myExecuserStatus5')">我付款中</el-button>
<el-button class="hidden-xl-and-up hidden-btn" @click="handleSelect('myExecuserStatus6')">我付款成功</el-button>
<el-button class="hidden-xl-and-up hidden-btn" @click="handleSelect('myExecuserStatus7')">我放弃</el-button>
</el-col>
</el-row> </el-row>
<el-button type="text" slot="reference" icon="el-icon-more"></el-button> <el-button type="text" slot="reference" icon="el-icon-more"></el-button>
</el-popover> </el-popover>
</el-menu> </el-menu>
</el-row> </el-row>
<el-row class="app-container">
<el-row class="app-container">
<!--列表 XmProject xm_project--> <!--列表 XmProject xm_project-->
<el-row v-show="showType" v-loading="load.list"> <el-row v-show="showType" v-loading="load.list">
<el-col v-cloak v-for="(p,i) in ScreenData" :key="i" :xl="4" :lg="6" :md="8" :sm="12">
<el-col v-cloak v-for="(p,i) in ScreenData" :key="i" :xl="4" :lg="6" :md="8" :sm="12">
<el-card @click.native="intoInfo(p,i)" class="project-card" shadow="always"> <el-card @click.native="intoInfo(p,i)" class="project-card" shadow="always">
<div class="project-name" title="这是项目名称">{{p.name}}</div> <div class="project-name" title="这是项目名称">{{p.name}}</div>
<div class="project-id eui-text-truncate">{{p.code}}</div> <div class="project-id eui-text-truncate">{{p.code}}</div>
@ -767,4 +775,8 @@
[v-cloak]{ [v-cloak]{
display: none; display: none;
} }
.hidden-btn{
margin-top: 5px;
margin-bottom: 5px;
}
</style> </style>

26
src/views/xm/core/xmProjectPhase/XmProjectPhaseBatch.vue

@ -6,21 +6,21 @@
<el-button type="success" @click="handlePopover(null,'add')" icon="el-icon-plus"></el-button> <el-button type="success" @click="handlePopover(null,'add')" icon="el-icon-plus"></el-button>
<el-button @click="noBatchEdit" v-loading="load.edit" icon="el-icon-back">返回</el-button> <el-button @click="noBatchEdit" v-loading="load.edit" icon="el-icon-back">返回</el-button>
<div style=" float:right;margin-right:10px;" >
<el-input v-model="filters.key" style="width:200px;" placeholder="模糊查询">
<template slot="append">
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProjectPhases" icon="el-icon-search"></el-button>
</template>
</el-input>
</div>
</el-row> </el-row>
<el-row class="app-container" > <el-row class="app-container" >
<span style="margin-left:10px;font-size:14px;">项目总预算</span><el-tag type='success'> {{toFixed(selProject.planTotalCost/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanCostAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">项目总预算</span><el-tag type='success'> {{toFixed(selProject.planTotalCost/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanCostAt/10000,2)}}</el-tag>
<span style="margin-left:10px;font-size:14px;">非人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanNouserAt>0?'warning':'danger'">{{toFixed(selProject.planNouserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanNouserAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">非人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanNouserAt>0?'warning':'danger'">{{toFixed(selProject.planNouserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanNouserAt/10000,2)}}</el-tag>
<span style="margin-left:10px;font-size:14px;">内部人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanInnerUserAt>0?'warning':'danger'">{{toFixed(selProject.planInnerUserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanInnerUserAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">内部人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanInnerUserAt>0?'warning':'danger'">{{toFixed(selProject.planInnerUserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanInnerUserAt/10000,2)}}</el-tag>
<span style="margin-left:10px;font-size:14px;">外购人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanOutUserAt>0?'warning':'danger'">{{toFixed(selProject.planOutUserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanOutUserAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">外购人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanOutUserAt>0?'warning':'danger'">{{toFixed(selProject.planOutUserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanOutUserAt/10000,2)}}</el-tag>
<div style=" float:right;margin-right:10px;" >
<el-input v-model="filters.key" style="width:200px;" placeholder="模糊查询">
<template slot="append">
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProjectPhases" icon="el-icon-search"></el-button>
</template>
</el-input>
</div>
</el-row> </el-row>
<el-row class="app-container" > <el-row class="app-container" >
<!--列表 XmProjectPhase xm_project_phase--> <!--列表 XmProjectPhase xm_project_phase-->
@ -34,8 +34,8 @@
width="400" width="400"
trigger="click"> trigger="click">
<div style="text-align: center; margin: 0"> <div style="text-align: center; margin: 0">
<div :ref="'phase_'+scope.$index" :data-phase-id="scope.row.id"></div>
<el-button type="primary" size="mini" @click="handlePopover(scope.row,'highestPmenuId')">成为顶级节点</el-button>
<div :ref="'phase_'+scope.$index" :data-phase-id="scope.row.id"></div>
<el-button type="primary" size="mini" @click="handlePopover(scope.row,'highestPmenuId')">成为顶级节点</el-button>
<el-button type="danger" size="mini" @click="handlePopover(scope.row,'delete')">删除当前行</el-button> <el-button type="danger" size="mini" @click="handlePopover(scope.row,'delete')">删除当前行</el-button>
<el-button type="success" size="mini" @click="handlePopover(scope.row,'addSub')">增加子行</el-button> <el-button type="success" size="mini" @click="handlePopover(scope.row,'addSub')">增加子行</el-button>
</div> </div>
@ -49,9 +49,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.phaseName" @change="fieldChange(scope.row,'phaseName')"></el-input> <el-input v-model="scope.row.phaseName" @change="fieldChange(scope.row,'phaseName')"></el-input>
</template> </template>
</el-table-column>
<el-table-column prop="mngUsername" label="责任人" min-width="80" >
</el-table-column>
</el-table-column>
<el-table-column prop="beginDate" label="起始时间" width="200" > <el-table-column prop="beginDate" label="起始时间" width="200" >
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>

73
src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue

@ -2,28 +2,51 @@
<section> <section>
<el-row class="app-container" v-show="batchEditVisible==false"> <el-row class="app-container" v-show="batchEditVisible==false">
<el-button type="primary" @click="showAdd" v-loading="load.add" icon="el-icon-plus">添加计划</el-button>
<el-button type="primary" @click="showPhaseTemplate" v-loading="load.add" icon="el-icon-plus">由模板导入计划</el-button>
<el-button type="primary" @click="showMenu" v-loading="load.add" icon="el-icon-plus">由故事批量创建</el-button>
<el-button type="warning" @click="loadTasksToXmProjectPhase(sels)" v-loading="load.edit" icon="el-icon-s-data">由任务汇总实际数据</el-button>
<el-button type="success" @click="batchEditVisible=true" v-loading="load.edit" icon="el-icon-edit">批量修改</el-button>
<el-button type="primary" @click="showAdd" v-loading="load.add" icon="el-icon-plus">添加计划</el-button>
<el-button @click="showMenu" v-loading="load.add" icon="el-icon-plus">由故事批量创建</el-button>
<el-button class="hidden-md-and-down" @click="showPhaseTemplate" v-loading="load.add" icon="el-icon-plus">由模板导入计划</el-button>
<el-button class="hidden-md-and-down" @click="loadTasksToXmProjectPhase(sels)" v-loading="load.edit" icon="el-icon-s-data">由任务汇总实际数据</el-button>
<el-button @click="batchEditVisible=true" v-loading="load.edit" icon="el-icon-edit">批量修改</el-button>
<div v-if="batchEditVisible!=true" style=" float:right;margin-right:10px;" >
<el-checkbox v-model="gstcVisible" >甘特图</el-checkbox>
<el-input v-model="filters.key" style="width:200px;" placeholder="模糊查询">
<template slot="append">
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProjectPhases" icon="el-icon-search"></el-button>
</template>
</el-input>
<el-popover
placement="top-start"
title=""
width="200"
trigger="click" >
<el-row>
<el-col :span="24" style="padding-top:5px;">
<el-button type="primary" @click="showPhaseTemplate" v-loading="load.add" icon="el-icon-plus">由模板导入计划</el-button>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<el-button type="primary" @click="showMenu" v-loading="load.add" icon="el-icon-plus">由故事批量创建</el-button>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<el-button type="warning" @click="loadTasksToXmProjectPhase(sels)" v-loading="load.edit" icon="el-icon-s-data">由任务汇总实际数据</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>
<el-col :span="24" style="padding-top:5px;">
</el-col>
</el-row>
<el-button slot="reference" icon="el-icon-more" circle></el-button>
</el-popover>
</div>
</el-row> </el-row>
<el-row class="app-container" v-show="batchEditVisible==false">
<el-row class="app-container hidden-md-and-down" v-show="batchEditVisible==false">
<span style="margin-left:10px;font-size:14px;">项目总预算</span><el-tag type='success'> {{toFixed(selProject.planTotalCost/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanCostAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">项目总预算</span><el-tag type='success'> {{toFixed(selProject.planTotalCost/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanCostAt/10000,2)}}</el-tag>
<span style="margin-left:10px;font-size:14px;">非人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanNouserAt>0?'warning':'danger'">{{toFixed(selProject.planNouserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanNouserAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">非人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanNouserAt>0?'warning':'danger'">{{toFixed(selProject.planNouserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanNouserAt/10000,2)}}</el-tag>
<span style="margin-left:10px;font-size:14px;">内部人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanInnerUserAt>0?'warning':'danger'">{{toFixed(selProject.planInnerUserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanInnerUserAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">内部人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanInnerUserAt>0?'warning':'danger'">{{toFixed(selProject.planInnerUserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanInnerUserAt/10000,2)}}</el-tag>
<span style="margin-left:10px;font-size:14px;">外购人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanOutUserAt>0?'warning':'danger'">{{toFixed(selProject.planOutUserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanOutUserAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">外购人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanOutUserAt>0?'warning':'danger'">{{toFixed(selProject.planOutUserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanOutUserAt/10000,2)}}</el-tag>
<div v-if="batchEditVisible!=true" style=" float:right;margin-right:10px;" >
<el-checkbox v-model="gstcVisible" >甘特图</el-checkbox>
<el-input v-model="filters.key" style="width:200px;" placeholder="模糊查询">
<template slot="append">
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProjectPhases" icon="el-icon-search"></el-button>
</template>
</el-input>
</div>
</el-row> </el-row>
<el-row class="app-container" v-show="batchEditVisible==false"> <el-row class="app-container" v-show="batchEditVisible==false">
<!--列表 XmProjectPhase xm_project_phase--> <!--列表 XmProjectPhase xm_project_phase-->
@ -36,13 +59,13 @@
</el-table-column> </el-table-column>
<el-table-column prop="mngUsername" label="责任人" min-width="80" > <el-table-column prop="mngUsername" label="责任人" min-width="80" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="!scope.row.mngUserid" v-model="scope.row.mngUsername" @click="groupUserSelectVisible=true" icon="el-icon-setting">去设置</el-button>
<el-link v-else type="primary" icon="el-icon-setting" @click="groupUserSelectVisible=true">{{scope.row.mngUsername}}</el-link>
<el-button type="text" v-if="!scope.row.mngUserid" v-model="scope.row.mngUsername" @click="groupUserSelectVisible=true" icon="el-icon-setting">去设置</el-button>
<el-link v-else type="primary" @click="groupUserSelectVisible=true">{{scope.row.mngUsername}}</el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="beginDate" label="起止时间" min-width="150" > <el-table-column prop="beginDate" label="起止时间" min-width="150" >
<template slot-scope="scope"> <template slot-scope="scope">
{{formatDate(scope.row.beginDate)}}~{{formatDate(scope.row.endDate)}}
<font class="hidden-md-and-down" >{{formatDate(scope.row.beginDate)}}<br>{{formatDate(scope.row.endDate)}} </font>
<div v-for="item in [calcTaskStateByTime(scope.row.beginDate,scope.row.endDate,scope.row.actRate,scope.phaseStatus)]" :key="item.status"><el-tag :type="item.status">{{item.remark}}</el-tag></div> <div v-for="item in [calcTaskStateByTime(scope.row.beginDate,scope.row.endDate,scope.row.actRate,scope.phaseStatus)]" :key="item.status"><el-tag :type="item.status">{{item.remark}}</el-tag></div>
</template> </template>
</el-table-column> </el-table-column>
@ -54,16 +77,10 @@
</el-table-column> </el-table-column>
<el-table-column prop="phaseBudgetHours" label="工时.人时" min-width="200" > <el-table-column prop="phaseBudgetHours" label="工时.人时" min-width="200" >
<template slot-scope="scope"> <template slot-scope="scope">
计划{{getFloatValue(scope.row.phaseBudgetOutUserCnt)+getFloatValue(scope.row.phaseBudgetInnerUserCnt)}},{{scope.row.phaseBudgetHours}}小时,{{scope.row.phaseBudgetWorkload}}人时 <br/>
实际{{scope.row.actStaffNu}},{{scope.row.actHours}}小时,{{scope.row.phaseActWorkload}}人时
计划{{scope.row.phaseBudgetWorkload}} <br/>
实际{{scope.row.phaseActWorkload}}
</template> </template>
</el-table-column>
<el-table-column prop="phaseBudgetNouserAt" label="成本.元" min-width="300" >
<template slot-scope="scope">
计划非人力:{{scope.row.phaseBudgetNouserAt}},内购人力:{{scope.row.phaseBudgetInnerUserAt}},外购人力:{{scope.row.phaseBudgetOutUserAt}} <br/>
实际非人力:{{scope.row.actNouserAt}},内购人力:{{scope.row.actInnerUserAt}},外购人力:{{scope.row.actOutUserAt}}
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="phaseBudgetCostAt" label="成本合计.元" min-width="120" > <el-table-column prop="phaseBudgetCostAt" label="成本合计.元" min-width="120" >
<template slot-scope="scope"> <template slot-scope="scope">
计划{{scope.row.phaseBudgetCostAt}} <br/> 计划{{scope.row.phaseBudgetCostAt}} <br/>

2
src/views/xm/core/xmProjectPhase/XmProjectPhaseSelect.vue

@ -11,7 +11,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination layout="total, 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 class="hidden-md-and-down" layout="total, 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-row> </el-row>
</section> </section>
</template> </template>

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

@ -7,11 +7,11 @@
<el-option v-for="(b,index) in options['bugStatus']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}} <el-option v-for="(b,index) in options['bugStatus']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}}
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="filters.priority" placeholder="请选择紧急程度" clearable @change="changePriority">
<el-select class="hidden-md-and-down" 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 v-for="(b,index) in options['urgencyLevel']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}}
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="filters.solution" placeholder="请选择解决方案" clearable @change="changeSolution">
<el-select class="hidden-md-and-down" 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 v-for="(b,index) in options['bugSolution']" :value="b.optionValue" :key="index" :label="b.optionName">{{b.optionName}}
</el-option> </el-option>
</el-select> </el-select>
@ -30,7 +30,7 @@
placement="top-start" placement="top-start"
title="" title=""
width="400" width="400"
trigger="hover" >
trigger="click" >
<el-row> <el-row>
<el-col :span="24" style="padding-top:12px;"> <el-col :span="24" style="padding-top:12px;">
<el-tag v-if="filters.selProject && !selProject" closable @close="clearProject" @click="showProjectList(true)">{{ filters.selProject.name }}</el-tag> <el-tag v-if="filters.selProject && !selProject" closable @close="clearProject" @click="showProjectList(true)">{{ filters.selProject.name }}</el-tag>
@ -41,6 +41,18 @@
指派给:<el-tag v-if="!filters.handlerUsername" @click="showGroupUsers('handlerUsername')">未选点我</el-tag> 指派给:<el-tag v-if="!filters.handlerUsername" @click="showGroupUsers('handlerUsername')">未选点我</el-tag>
<el-tag v-if="filters.handlerUsername" closable @close="clearHandler" @click="showGroupUsers('handlerUsername')">{{filters.handlerUsername}}</el-tag> <el-tag v-if="filters.handlerUsername" closable @close="clearHandler" @click="showGroupUsers('handlerUsername')">{{filters.handlerUsername}}</el-tag>
</el-col> </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" class="hidden-lg-and-up" 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>
</el-select>
</el-col>
<el-col :span="24" style="padding-top:12px;"> <el-col :span="24" style="padding-top:12px;">
<el-button @click="handleExport" icon="el-icon-download">导出</el-button> <el-button @click="handleExport" icon="el-icon-download">导出</el-button>
</el-col> </el-col>

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

@ -24,14 +24,14 @@
<el-option class="showall" value="all" label="全部类型">全部类型</el-option> <el-option class="showall" value="all" label="全部类型">全部类型</el-option>
<el-option v-for="(i,index) in options.taskType" :value="i.optionValue" :label="i.optionName" :key="index">{{i.optionName}}</el-option> <el-option v-for="(i,index) in options.taskType" :value="i.optionValue" :label="i.optionName" :key="index">{{i.optionName}}</el-option>
</el-select> </el-select>
<el-button v-if=" !filters.skillTags || filters.skillTags.length==0" icon="el-icon-search" @click="showSkillSelect">选择标签</el-button>
<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 closable v-for=" (skill,index) in filters.skillTags" :key="index" @click="showSkillSelect" @close="skillTagClear(skill)">{{skill.skillName}}</el-tag> <el-tag closable v-for=" (skill,index) in filters.skillTags" :key="index" @click="showSkillSelect" @close="skillTagClear(skill)">{{skill.skillName}}</el-tag>
<div style="line-height:50px;float:right;margin-right:10px;">
<el-checkbox v-model="gstcVisible" >甘特图</el-checkbox>
<el-tag v-if=" !selProject && filters.selProject" :closable="!selProject" @click="showProjectList" @close="clearProject">项目:{{this.filters.selProject.name}}</el-tag>
<el-tag v-if=" !selProject && !filters.selProject" @click="showProjectList" type="plian">未选项目点我</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-tag class="hidden-md-and-down" v-if=" !selProject && !filters.selProject" @click="showProjectList" type="plian">未选项目点我</el-tag>
<el-input style="width:200px;" v-model="filters.key" placeholder="任务名称">
<el-input style="width:200px;" v-model="filters.key" placeholder="任务名称">
<template slot="append"> <template slot="append">
<el-button @click="searchXmTasks" type="primary" icon="el-icon-search" v-loading="load.list"></el-button> <el-button @click="searchXmTasks" type="primary" icon="el-icon-search" v-loading="load.list"></el-button>
</template> </template>
@ -41,7 +41,7 @@
placement="top-start" placement="top-start"
title="" title=""
width="200" width="200"
trigger="hover" >
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="primary" v-if=" isTaskCenter!='1' && isMy!='1'" @click="showBatchEdit" v-loading="load.edit" icon="el-icon-edit">批量修改任务</el-button> <el-button type="primary" v-if=" isTaskCenter!='1' && isMy!='1'" @click="showBatchEdit" v-loading="load.edit" icon="el-icon-edit">批量修改任务</el-button>
@ -53,11 +53,20 @@
<el-button v-if=" isTaskCenter!='1' && isMy!='1'" @click="showMenu" type="success" icon="el-icon-plus">由故事快速创建任务</el-button> <el-button v-if=" isTaskCenter!='1' && isMy!='1'" @click="showMenu" type="success" icon="el-icon-plus">由故事快速创建任务</el-button>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="24" style="padding-top:5px;">
<el-checkbox v-model="gstcVisible" class="hidden-lg-and-up" >甘特图</el-checkbox>
</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-col>
</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>
</div> </div>
</el-row> </el-row>
<el-row>
<el-row style="padding-top:12px;">
<el-table v-if="!gstcVisible" <el-table v-if="!gstcVisible"
show-summary show-summary
:data="tasksTreeData" :data="tasksTreeData"
@ -187,7 +196,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination v-if="!gstcVisible" 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 v-if="!gstcVisible" 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>
<xm-gantt v-if="gstcVisible" :tree-data="tasksTreeData" :project-phase="{startTime: currentProjectPhase.beginDate, endTime: currentProjectPhase.endDate}" :useRealTime="true"></xm-gantt> <xm-gantt v-if="gstcVisible" :tree-data="tasksTreeData" :project-phase="{startTime: currentProjectPhase.beginDate, endTime: currentProjectPhase.endDate}" :useRealTime="true"></xm-gantt>
</el-row> </el-row>

Loading…
Cancel
Save