mirror of
https://gitee.com/maimengcloud/xm-ui-web.git
synced 2025-12-30 10:12:26 +00:00
项目界面优化
This commit is contained in:
@@ -69,226 +69,210 @@
|
||||
@click="searchTableDatas" icon="search">查询</el-button>
|
||||
|
||||
</el-space>
|
||||
</ContentWrap>
|
||||
<el-scrollbar v-if="showType == 'card' && tableDatas.length > 0" v-adaptive v-loading="load.list">
|
||||
<el-row class="padding-top" :gutter="10">
|
||||
<el-col v-for="(p, i) in tableDatas" :key="i" :xl="6" :lg="8" :md="8" :sm="12" :xs="24" class="project-card">
|
||||
|
||||
<el-card @click="intoInfo(p, i)" shadow="always" id="prj-view-box">
|
||||
<template #header>
|
||||
<div style="display:flex;justify-content: space-between;">
|
||||
<div class="project-name">
|
||||
<MdpSelect v-model="p.status" itemCode="projectStatus" :disabled="true" showStyle="tag" />
|
||||
{{ p.name }}
|
||||
</div>
|
||||
<el-popover :show-after="200" placement="top-start" width="400" trigger="hover">
|
||||
<el-space wrap>
|
||||
|
||||
<el-button icon="Pointer" v-if="filters.queryScope == 'myFocus'" type="primary" @click.stop="focusOrUnfocus(p)">取消关注</el-button>
|
||||
<el-button icon="Pointer" v-else type="primary" @click.stop="focusOrUnfocus(p)">关注</el-button>
|
||||
<el-button icon="CopyDocument" id="prj-copy-btn" type="warning" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(p)"
|
||||
v-loading="load.add">复制 </el-button>
|
||||
<el-button type="success" icon="video-play" title="统计项目的工作量、进度、需求、bugs等数据"
|
||||
@click.stop="loadTasksToXmProjectState(scope.row)">统计进度</el-button>
|
||||
<el-button icon="Delete" type="danger" title="删除项目" @click.stop="handleDel(p)" v-loading="load.del">删除</el-button>
|
||||
</el-space>
|
||||
|
||||
<template #reference><el-button icon="setting" circle plain /></template>
|
||||
</el-popover>
|
||||
</div>
|
||||
</template>
|
||||
<div class="project-info">
|
||||
|
||||
<div class="info-task" title="已完成需求数 / 总需求数 ">
|
||||
<span>
|
||||
<span class="item-total finish-task">{{ menuFinishCntCalc(p) }}</span>
|
||||
<span style="margin: 0.2rem 0.25rem !important;">/</span>
|
||||
<span class="item-total total-task">{{ p.menuCnt == null ? 0 : p.menuCnt }}</span>
|
||||
</span>
|
||||
<span class="item-type">需求</span>
|
||||
</div>
|
||||
<!--
|
||||
<div class="info-task" title="已完成 / 预算工作量 ,单位人天 ">
|
||||
<span>
|
||||
<span class="item-total finish-task">{{p.actWorkload==null?0:parseInt(p.actWorkload/8)}}</span>
|
||||
<span style="margin: 0 .25rem !important;">/</span>
|
||||
<span class="item-type total-task">{{p.initWorkload==null?0:parseInt(p.initWorkload/8)}}</span>
|
||||
</span>
|
||||
<span class="item-type">工作量</span>
|
||||
</div>
|
||||
-->
|
||||
<div class="info-task" title="已完成 / 总任务数 ">
|
||||
<span>
|
||||
<span
|
||||
class="item-total finish-task">{{ ((p.taskFinishCnt || 0) + (p.taskSetCnt || 0) + (p.taskCloseCnt || 0)) }}</span>
|
||||
<span style="margin: 0.2rem 0.25rem !important;">/</span>
|
||||
<span class="item-total total-task">{{ p.taskCnt == null ? 0 : p.taskCnt }}</span>
|
||||
</span>
|
||||
<span class="item-type">任务</span>
|
||||
</div>
|
||||
<div class="info-task" title="已关闭 / 总缺陷数 ">
|
||||
<span>
|
||||
<span class="item-total finish-task">{{ p.closedBugs == null ? 0 : p.closedBugs }}</span>
|
||||
<span style="margin: 0.2rem 0.25rem !important;">/</span>
|
||||
<span class="item-total total-task">{{ p.bugCnt == null ? 0 : p.bugCnt }}</span>
|
||||
</span>
|
||||
<span class="item-type">缺陷</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="project-rate">
|
||||
<el-progress :percentage="(p.initRate == null ? 0 : p.initRate)" />
|
||||
|
||||
<el-tag v-if="getPlanRealProgress(p) > 0" type="warning" effect="dark">超前{{ getPlanRealProgress(p) }}%</el-tag>
|
||||
<el-tag v-else-if="getPlanRealProgress(p) < 0" type="danger" effect="dark">落后{{ 0 - getPlanRealProgress(p)
|
||||
}}%</el-tag>
|
||||
<el-tag v-else-if="getProgress(p) > 0" effect="dark" type="success" class="check">正常</el-tag>
|
||||
<el-tag v-else-if="getProgress(p) == 0" effect="dark" type="info">未开始 </el-tag>
|
||||
</div>
|
||||
<div class="project-footer">
|
||||
<div class="project-type" title="项目经理">
|
||||
<mdp-select-user show-style="tag" v-if="p.pmUserid" v-model="p.pmUserid" :init-name="p.pmUsername"
|
||||
:disabled="true" />
|
||||
<mdp-select-user show-style="tag" v-else-if="p.createUserid" v-model="p.createUserid"
|
||||
:init-name="p.createUsername" :disabled="true" />
|
||||
|
||||
</div>
|
||||
<div class="project-period">{{ p.startTime ? p.startTime.substr(0, 10) : '' }}
|
||||
~{{ p.endTime ? p.endTime.substr(0, 10) : '' }}</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-result v-if="showType == 'card' && tableDatas.length <= 0" icon="info" title="信息提示"
|
||||
subTitle="没有查到相关项目,有可能是您暂时还没有项目,有可能是您无权限查询项目。">
|
||||
<template #extra>
|
||||
<div class="padding">
|
||||
您可以通过 <el-button @click="showAdd" icon="plus" type="primary" plain>项目</el-button> 创建一个新项目
|
||||
</div>
|
||||
<div class="padding">
|
||||
通过 <el-button @click="templateVisible = true" type="primary" plain
|
||||
style="margin-bottom:5px;">公共模板</el-button> 体验项目的过程。<br />
|
||||
</div>
|
||||
<div class="padding">
|
||||
通过 <el-button @click="templateVisible = true" type="primary" plain
|
||||
style="margin-bottom:5px;">拷贝模板</el-button> 快速创建新项目。<br />
|
||||
</div>
|
||||
</template>
|
||||
</el-result>
|
||||
|
||||
</el-scrollbar>
|
||||
|
||||
<el-table ref="table" v-adaptive="{ bottom: 64 }" v-cloak v-show="showType == 'table'" fit stripe :data="tableDatas"
|
||||
@sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange"
|
||||
@row-click="rowClick" style="width: 100%;" :border="true">
|
||||
<el-table-column prop="name" label="项目名称" sortable min-width="250">
|
||||
<template #default="scope">
|
||||
<el-popover placement="right-start" :show-after="200"
|
||||
>
|
||||
<template #reference>
|
||||
<el-link @click.stop="intoInfo(scope.row)">{{ scope.$index + 1 }} {{ scope.row.name }}</el-link>
|
||||
</template>
|
||||
<template #default>
|
||||
<el-space wrap>
|
||||
<el-button icon="Pointer" v-if="filters.queryScope == 'myFocus'" type="primary" @click.stop="focusOrUnfocus(scope.row)">取消关注</el-button>
|
||||
<el-button icon="Pointer" v-else type="primary" @click.stop="focusOrUnfocus(scope.row)">关注</el-button>
|
||||
<el-button icon="CopyDocument" type="warning" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(scope.row)"
|
||||
v-loading="load.add">复制</el-button>
|
||||
|
||||
<el-button type="success" icon="video-play" title="统计项目的工作量、进度、需求、bugs等数据"
|
||||
@click.stop="loadTasksToXmProjectState(scope.row)">统计进度</el-button>
|
||||
<el-button icon="Delete" type="danger" title="删除项目" @click.stop="handleDel(scope.row)" v-loading="load.del">删除</el-button>
|
||||
</el-space>
|
||||
</ContentWrap>
|
||||
|
||||
<el-table ref="table" v-adaptive v-if="showType == 'table'" fit stripe :data="tableDatas"
|
||||
@sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange"
|
||||
@row-click="rowClick" style="width: 100%;" :border="true">
|
||||
<el-table-column prop="name" label="项目名称" sortable min-width="250">
|
||||
<template #default="scope">
|
||||
<el-popover placement="right-start" :show-after="200"
|
||||
>
|
||||
<template #reference>
|
||||
<el-link @click.stop="intoInfo(scope.row)">{{ scope.$index + 1 }} {{ scope.row.name }}</el-link>
|
||||
</template>
|
||||
<template #default>
|
||||
<el-space wrap>
|
||||
<el-button icon="Pointer" v-if="filters.queryScope == 'myFocus'" type="primary" @click.stop="focusOrUnfocus(scope.row)">取消关注</el-button>
|
||||
<el-button icon="Pointer" v-else type="primary" @click.stop="focusOrUnfocus(scope.row)">关注</el-button>
|
||||
<el-button icon="CopyDocument" type="warning" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(scope.row)"
|
||||
v-loading="load.add">复制</el-button>
|
||||
|
||||
<el-button type="success" icon="video-play" title="统计项目的工作量、进度、需求、bugs等数据"
|
||||
@click.stop="loadTasksToXmProjectState(scope.row)">统计进度</el-button>
|
||||
<el-button icon="Delete" type="danger" title="删除项目" @click.stop="handleDel(scope.row)" v-loading="load.del">删除</el-button>
|
||||
</el-space>
|
||||
</template>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="xmType" label="项目类型" width="150" sortable itemCode="projectType">
|
||||
<template #default="scope">
|
||||
<mdp-select show-style="tag" itemCode="projectType" :disabled="true" v-model="scope.row.xmType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="currPhase" label="当前阶段" width="120" sortable>
|
||||
<template #default="scope">
|
||||
<mdp-select show-style="tag" :itemCode="'projectPhasePlans' + scope.row.xmType" :disabled="true"
|
||||
v-model="scope.row.currPhase" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="pmUsername" label="项目经理" sortable min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="status" label="状态" width="120" sortable itemCode="projectStatus">
|
||||
<template #default="scope">
|
||||
<mdp-select show-style="tag" itemCode="projectStatus" :disabled="true" v-model="scope.row.status" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="bizFlowState" label="审批状态" min-width="120" itemCode="bizFlowState">
|
||||
<template #default="scope">
|
||||
<mdp-select show-style="tag" itemCode="bizFlowState" :disabled="true" v-model="scope.row.bizFlowState" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="tagIds" label="标签" width="120" sortable>
|
||||
<template #default="scope">
|
||||
<MdpSelectTag show-style="tag" split="," v-model="scope.row.tagIds" placeholder="标签" multiple
|
||||
@change="editSomeFields(scope.row, 'tagIds', $event)" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="initRate" label="进度" width="200" sortable>
|
||||
<template #default="scope">
|
||||
</el-table-column>
|
||||
<el-table-column prop="xmType" label="项目类型" width="150" sortable itemCode="projectType">
|
||||
<template #default="scope">
|
||||
<mdp-select show-style="tag" itemCode="projectType" :disabled="true" v-model="scope.row.xmType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="currPhase" label="当前阶段" width="120" sortable>
|
||||
<template #default="scope">
|
||||
<mdp-select show-style="tag" :itemCode="'projectPhasePlans' + scope.row.xmType" :disabled="true"
|
||||
v-model="scope.row.currPhase" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="pmUsername" label="项目经理" sortable min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="status" label="状态" width="120" sortable itemCode="projectStatus">
|
||||
<template #default="scope">
|
||||
<mdp-select show-style="tag" itemCode="projectStatus" :disabled="true" v-model="scope.row.status" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="bizFlowState" label="审批状态" min-width="120" itemCode="bizFlowState">
|
||||
<template #default="scope">
|
||||
<mdp-select show-style="tag" itemCode="bizFlowState" :disabled="true" v-model="scope.row.bizFlowState" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="tagIds" label="标签" width="120" sortable>
|
||||
<template #default="scope">
|
||||
<MdpSelectTag show-style="tag" split="," v-model="scope.row.tagIds" placeholder="标签" multiple
|
||||
@change="editSomeFields(scope.row, 'tagIds', $event)" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="initRate" label="进度" width="200" sortable>
|
||||
<template #default="scope">
|
||||
|
||||
<div style="display:flex;">
|
||||
<div style="width:3em;">
|
||||
{{ getProgress(scope.row) }} %
|
||||
</div>
|
||||
<div style="display:flex;">
|
||||
<div style="width:3em;">
|
||||
{{ getProgress(scope.row) }} %
|
||||
</div>
|
||||
|
||||
<el-tag v-if="getPlanRealProgress(scope.row) > 0" type="warning" effect="dark">超前{{ getPlanRealProgress(scope.row)
|
||||
}}%</el-tag>
|
||||
<el-tag v-else-if="getPlanRealProgress(scope.row) < 0" type="danger" effect="dark">落后{{
|
||||
0 - getPlanRealProgress(scope.row) }}%</el-tag>
|
||||
<el-tag v-else-if="getProgress(scope.row) > 0" effect="dark" type="success" class="check">正常</el-tag>
|
||||
<el-tag v-else-if="getProgress(scope.row) == 0" effect="dark" type="info">未开始 </el-tag>
|
||||
</div>
|
||||
<el-tag v-if="getPlanRealProgress(scope.row) > 0" type="warning" effect="dark">超前{{ getPlanRealProgress(scope.row)
|
||||
}}%</el-tag>
|
||||
<el-tag v-else-if="getPlanRealProgress(scope.row) < 0" type="danger" effect="dark">落后{{
|
||||
0 - getPlanRealProgress(scope.row) }}%</el-tag>
|
||||
<el-tag v-else-if="getProgress(scope.row) > 0" effect="dark" type="success" class="check">正常</el-tag>
|
||||
<el-tag v-else-if="getProgress(scope.row) == 0" effect="dark" type="info">未开始 </el-tag>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="iterationCnt" label="迭代数" sortable min-width="120" />
|
||||
<el-table-column prop="menuCnt" label="需求数" sortable min-width="120">
|
||||
<template #default="scope">
|
||||
<span
|
||||
title="完成的需求数 / 需求总数 ">{{ scope.row.menuCnt > 0 ? scope.row.menuFinishCnt + ' / ' + scope.row.menuCnt : '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="taskCnt" label="任务数" sortable min-width="120">
|
||||
<template #default="scope">
|
||||
<span title="完成的任务数 / 任务总数 ">{{
|
||||
((scope.row.taskFinishCnt || 0) + (scope.row.taskSetCnt || 0) + (scope.row.taskCloseCnt || 0)) + ' / ' + (scope.row.taskCnt || 0) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="bugCnt" label="缺陷数" sortable min-width="120">
|
||||
<template #default="scope">
|
||||
<span
|
||||
title="关闭的缺陷数 / 缺陷总数 ">{{ scope.row.bugCnt > 0 ? scope.row.closedBugs + ' / ' + scope.row.bugCnt : '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="id" label="项目编码" sortable min-width="180" show-overflow-tooltip kbName="name" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="iterationCnt" label="迭代数" sortable min-width="120" />
|
||||
<el-table-column prop="menuCnt" label="需求数" sortable min-width="120">
|
||||
<template #default="scope">
|
||||
<span
|
||||
title="完成的需求数 / 需求总数 ">{{ scope.row.menuCnt > 0 ? scope.row.menuFinishCnt + ' / ' + scope.row.menuCnt : '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="taskCnt" label="任务数" sortable min-width="120">
|
||||
<template #default="scope">
|
||||
<span title="完成的任务数 / 任务总数 ">{{
|
||||
((scope.row.taskFinishCnt || 0) + (scope.row.taskSetCnt || 0) + (scope.row.taskCloseCnt || 0)) + ' / ' + (scope.row.taskCnt || 0) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="bugCnt" label="缺陷数" sortable min-width="120">
|
||||
<template #default="scope">
|
||||
<span
|
||||
title="关闭的缺陷数 / 缺陷总数 ">{{ scope.row.bugCnt > 0 ? scope.row.closedBugs + ' / ' + scope.row.bugCnt : '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="id" label="项目编码" sortable min-width="180" show-overflow-tooltip kbName="name" />
|
||||
|
||||
<el-table-column prop="pmUserid" label="项目经理号" sortable min-width="180" show-overflow-tooltip kbName="pmUsername" />
|
||||
<el-table-column prop="admUserid" label="总控号" sortable min-width="180" show-overflow-tooltip kbName="pmUsername" />
|
||||
<el-table-column prop="admUsername" label="总控" sortable min-width="180" show-overflow-tooltip kbName="pmUsername" />
|
||||
<el-table-column prop="assUserid" label="副经理号" sortable min-width="180" show-overflow-tooltip kbName="pmUsername" />
|
||||
<el-table-column prop="assUsername" label="副经理" sortable min-width="180" show-overflow-tooltip kbName="pmUsername" />
|
||||
<el-table-column prop="id" label="项目编号" sortable min-width="180" show-overflow-tooltip kbName="name" />
|
||||
<el-table-column prop="code" label="项目代号" sortable min-width="180" show-overflow-tooltip kbName="name" />
|
||||
<el-table-column prop="startTime" label="开始时间" sortable min-width="120" show-overflow-tooltip colType="date" />
|
||||
<el-table-column prop="endTime" label="结束时间" sortable min-width="120" show-overflow-tooltip colType="date" />
|
||||
<el-table-column prop="ctime" label="创建时间" sortable min-width="120" show-overflow-tooltip colType="date" />
|
||||
<el-table-column prop="initWorkload" label="预估工时" width="120" show-overflow-tooltip sortable />
|
||||
<el-table-column prop="estimateWorkload" label="应完成工时" width="150" show-overflow-tooltip sortable />
|
||||
<el-table-column prop="sumActWorkload" label="已完成总工时" width="150" show-overflow-tooltip sortable />
|
||||
<el-table-column prop="pmUserid" label="项目经理号" sortable min-width="180" show-overflow-tooltip kbName="pmUsername" />
|
||||
<el-table-column prop="admUserid" label="总控号" sortable min-width="180" show-overflow-tooltip kbName="pmUsername" />
|
||||
<el-table-column prop="admUsername" label="总控" sortable min-width="180" show-overflow-tooltip kbName="pmUsername" />
|
||||
<el-table-column prop="assUserid" label="副经理号" sortable min-width="180" show-overflow-tooltip kbName="pmUsername" />
|
||||
<el-table-column prop="assUsername" label="副经理" sortable min-width="180" show-overflow-tooltip kbName="pmUsername" />
|
||||
<el-table-column prop="id" label="项目编号" sortable min-width="180" show-overflow-tooltip kbName="name" />
|
||||
<el-table-column prop="code" label="项目代号" sortable min-width="180" show-overflow-tooltip kbName="name" />
|
||||
<el-table-column prop="startTime" label="开始时间" sortable min-width="120" show-overflow-tooltip colType="date" />
|
||||
<el-table-column prop="endTime" label="结束时间" sortable min-width="120" show-overflow-tooltip colType="date" />
|
||||
<el-table-column prop="ctime" label="创建时间" sortable min-width="120" show-overflow-tooltip colType="date" />
|
||||
<el-table-column prop="initWorkload" label="预估工时" width="120" show-overflow-tooltip sortable />
|
||||
<el-table-column prop="estimateWorkload" label="应完成工时" width="150" show-overflow-tooltip sortable />
|
||||
<el-table-column prop="sumActWorkload" label="已完成总工时" width="150" show-overflow-tooltip sortable />
|
||||
|
||||
<el-table-column prop="budgetWorkload" label="任务预估工时" width="150" show-overflow-tooltip sortable />
|
||||
<el-table-column prop="actWorkload" label="任务完成工时" width="150" show-overflow-tooltip sortable />
|
||||
<el-table-column prop="budgetWorkload" label="任务预估工时" width="150" show-overflow-tooltip sortable />
|
||||
<el-table-column prop="actWorkload" label="任务完成工时" width="150" show-overflow-tooltip sortable />
|
||||
|
||||
<el-table-column prop="mactWorkload" label="非报工工时" width="150" show-overflow-tooltip sortable />
|
||||
|
||||
</el-table>
|
||||
<el-scrollbar v-if="showType == 'card'" v-adaptive v-loading="load.list">
|
||||
<el-row class="padding-top" :gutter="10">
|
||||
<el-col v-for="(p, i) in tableDatas" :key="i" :xl="6" :lg="8" :md="8" :sm="12" :xs="24" class="project-card">
|
||||
|
||||
<el-card @click="intoInfo(p, i)" shadow="always" id="prj-view-box">
|
||||
<template #header>
|
||||
<div style="display:flex;justify-content: space-between;">
|
||||
<div class="project-name">
|
||||
<MdpSelect v-model="p.status" itemCode="projectStatus" :disabled="true" showStyle="tag" />
|
||||
{{ p.name }}
|
||||
</div>
|
||||
<el-popover :show-after="200" placement="top-start" width="400" trigger="hover">
|
||||
<el-space wrap>
|
||||
|
||||
<el-button icon="Pointer" v-if="filters.queryScope == 'myFocus'" type="primary" @click.stop="focusOrUnfocus(p)">取消关注</el-button>
|
||||
<el-button icon="Pointer" v-else type="primary" @click.stop="focusOrUnfocus(p)">关注</el-button>
|
||||
<el-button icon="CopyDocument" id="prj-copy-btn" type="warning" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(p)"
|
||||
v-loading="load.add">复制 </el-button>
|
||||
<el-button type="success" icon="video-play" title="统计项目的工作量、进度、需求、bugs等数据"
|
||||
@click.stop="loadTasksToXmProjectState(scope.row)">统计进度</el-button>
|
||||
<el-button icon="Delete" type="danger" title="删除项目" @click.stop="handleDel(p)" v-loading="load.del">删除</el-button>
|
||||
</el-space>
|
||||
|
||||
<template #reference><el-button icon="setting" circle plain /></template>
|
||||
</el-popover>
|
||||
</div>
|
||||
</template>
|
||||
<div class="project-info">
|
||||
|
||||
<div class="info-task" title="已完成需求数 / 总需求数 ">
|
||||
<span>
|
||||
<span class="item-total finish-task">{{ menuFinishCntCalc(p) }}</span>
|
||||
<span style="margin: 0.2rem 0.25rem !important;">/</span>
|
||||
<span class="item-total total-task">{{ p.menuCnt == null ? 0 : p.menuCnt }}</span>
|
||||
</span>
|
||||
<span class="item-type">需求</span>
|
||||
</div>
|
||||
<!--
|
||||
<div class="info-task" title="已完成 / 预算工作量 ,单位人天 ">
|
||||
<span>
|
||||
<span class="item-total finish-task">{{p.actWorkload==null?0:parseInt(p.actWorkload/8)}}</span>
|
||||
<span style="margin: 0 .25rem !important;">/</span>
|
||||
<span class="item-type total-task">{{p.initWorkload==null?0:parseInt(p.initWorkload/8)}}</span>
|
||||
</span>
|
||||
<span class="item-type">工作量</span>
|
||||
</div>
|
||||
-->
|
||||
<div class="info-task" title="已完成 / 总任务数 ">
|
||||
<span>
|
||||
<span
|
||||
class="item-total finish-task">{{ ((p.taskFinishCnt || 0) + (p.taskSetCnt || 0) + (p.taskCloseCnt || 0)) }}</span>
|
||||
<span style="margin: 0.2rem 0.25rem !important;">/</span>
|
||||
<span class="item-total total-task">{{ p.taskCnt == null ? 0 : p.taskCnt }}</span>
|
||||
</span>
|
||||
<span class="item-type">任务</span>
|
||||
</div>
|
||||
<div class="info-task" title="已关闭 / 总缺陷数 ">
|
||||
<span>
|
||||
<span class="item-total finish-task">{{ p.closedBugs == null ? 0 : p.closedBugs }}</span>
|
||||
<span style="margin: 0.2rem 0.25rem !important;">/</span>
|
||||
<span class="item-total total-task">{{ p.bugCnt == null ? 0 : p.bugCnt }}</span>
|
||||
</span>
|
||||
<span class="item-type">缺陷</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="project-rate">
|
||||
<el-progress :percentage="(p.initRate == null ? 0 : p.initRate)" />
|
||||
|
||||
<el-tag v-if="getPlanRealProgress(p) > 0" type="warning" effect="dark">超前{{ getPlanRealProgress(p) }}%</el-tag>
|
||||
<el-tag v-else-if="getPlanRealProgress(p) < 0" type="danger" effect="dark">落后{{ 0 - getPlanRealProgress(p)
|
||||
}}%</el-tag>
|
||||
<el-tag v-else-if="getProgress(p) > 0" effect="dark" type="success" class="check">正常</el-tag>
|
||||
<el-tag v-else-if="getProgress(p) == 0" effect="dark" type="info">未开始 </el-tag>
|
||||
</div>
|
||||
<div class="project-footer">
|
||||
<div class="project-type" title="项目经理">
|
||||
<mdp-select-user show-style="tag" v-if="p.pmUserid" v-model="p.pmUserid" :init-name="p.pmUsername"
|
||||
:disabled="true" />
|
||||
<mdp-select-user show-style="tag" v-else-if="p.createUserid" v-model="p.createUserid"
|
||||
:init-name="p.createUsername" :disabled="true" />
|
||||
|
||||
</div>
|
||||
<div class="project-period">{{ p.startTime ? p.startTime.substr(0, 10) : '' }}
|
||||
~{{ p.endTime ? p.endTime.substr(0, 10) : '' }}</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-scrollbar>
|
||||
|
||||
<el-table-column prop="mactWorkload" label="非报工工时" width="150" show-overflow-tooltip sortable />
|
||||
|
||||
</el-table>
|
||||
|
||||
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange" :page-sizes="[12, 20, 50, 100, 500]" :current-page="pageInfo.pageNum"
|
||||
@@ -409,7 +393,7 @@ export default {
|
||||
'userInfo', 'roles'
|
||||
]),
|
||||
},
|
||||
watch: {
|
||||
watch: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -447,7 +431,7 @@ export default {
|
||||
id: '', code: '', name: '', xmType: '', startTime: '', endTime: '', urgent: '', priority: '', description: '', createUserid: '', createUsername: '', createTime: '', assess: '', assessRemarks: '', status: '', branchId: '', planTotalCost: '', bizProcInstId: '', bizFlowState: '', planNouserAt: '', planIuserAt: '', planOuserAt: '', locked: '', baseTime: '', baseRemark: '', baselineId: '', planWorkload: '0', totalReceivables: '0', budgetMarginRate: 13, contractAmt: 0, planIuserPrice: 85, planOuserPrice: 100, planOuserCnt: 0, planIuserCnt: 0, planWorkingHours: 0, taxRate: 3, planIuserWorkload: 0, planOuserWorkload: 0, fromTplId: '', budgetCtrl: '0', deptid: '', showOut: '0', isTpl: '0', pmUserid: '', pmUsername: '', assUserid: '', assUsername: '', admUserid: '', admUsername: '', budgetEarly: '', phaseActCtrl: '', del: '0', ltime: '', ostatus: '0', workType: '', wtype: '', earlyAmt: 0, maxTaskAmt: 0, menuLink: '0', phaseLink: '0', tplType: '', qxCode: ''
|
||||
},
|
||||
/**begin 自定义属性请在下面加 请加备注**/
|
||||
showType: 'card',
|
||||
showType: 'table',
|
||||
showInfo: false,
|
||||
selectProject: null,
|
||||
finishFlag: false,
|
||||
@@ -777,6 +761,7 @@ export default {
|
||||
if (this.dataScope) {
|
||||
this.filters.queryScope = this.dataScope
|
||||
}
|
||||
this.$nextTick(()=>this.showType='card')
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user