Browse Source

优化

master
陈裕财 4 years ago
parent
commit
4085f7cc04
  1. 2
      src/views/xm/core/components/xm-gantt.vue
  2. 12
      src/views/xm/core/xmBranchState/XmBranchStateAdd.vue
  3. 12
      src/views/xm/core/xmBranchState/XmBranchStateEdit.vue
  4. 4
      src/views/xm/core/xmBranchState/XmBranchStateMng.vue
  5. 14
      src/views/xm/core/xmIteration/XmIterationInfo.vue
  6. 2
      src/views/xm/core/xmIteration/XmIterationOverviewComplex.vue
  7. 14
      src/views/xm/core/xmProduct/XmProductInfo.vue
  8. 2
      src/views/xm/core/xmProduct/XmProductOverviewComplex.vue
  9. 2
      src/views/xm/core/xmProject/XmProjectAdd.vue
  10. 2
      src/views/xm/core/xmProject/XmProjectEdit.vue
  11. 14
      src/views/xm/core/xmProject/XmProjectInfo.vue
  12. 2
      src/views/xm/core/xmProject/XmProjectOverviewComplex.vue
  13. 24
      src/views/xm/core/xmProjectBaseline/XmProjectBaselineAdd.vue
  14. 24
      src/views/xm/core/xmProjectBaseline/XmProjectBaselineEdit.vue
  15. 12
      src/views/xm/core/xmProjectBaseline/XmProjectBaselineMng.vue
  16. 6
      src/views/xm/core/xmProjectGroupFormwork/XmProjectGroupFormwork.vue
  17. 8
      src/views/xm/core/xmProjectMCostNouser/XmProjectMCostNouserEdit.vue
  18. 8
      src/views/xm/core/xmProjectMCostUser/XmProjectMCostUserEdit.vue
  19. 8
      src/views/xm/core/xmProjectPhase/XmProjectPhaseAdd.vue
  20. 22
      src/views/xm/core/xmProjectPhase/XmProjectPhaseBatch.vue
  21. 12
      src/views/xm/core/xmProjectPhase/XmProjectPhaseEdit.vue
  22. 147
      src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue
  23. 8
      src/views/xm/core/xmProjectPhase/XmProjectPhaseOverview.vue
  24. 6
      src/views/xm/core/xmProjectPhase/XmProjectPhaseSelect.vue
  25. 12
      src/views/xm/core/xmProjectPhaseBaseline/XmProjectPhaseBaselineAdd.vue
  26. 12
      src/views/xm/core/xmProjectPhaseBaseline/XmProjectPhaseBaselineEdit.vue
  27. 6
      src/views/xm/core/xmProjectPhaseBaseline/XmProjectPhaseBaselineMng.vue
  28. 8
      src/views/xm/core/xmProjectPhaseTemplate/XmProjectPhaseTemplateAdd.vue
  29. 8
      src/views/xm/core/xmProjectPhaseTemplate/XmProjectPhaseTemplateEdit.vue
  30. 12
      src/views/xm/core/xmProjectPhaseTemplate/XmProjectPhaseTemplateMng.vue
  31. 4
      src/views/xm/core/xmProjectState/XmCockpit.vue
  32. 12
      src/views/xm/core/xmProjectState/XmProjectStateAdd.vue
  33. 12
      src/views/xm/core/xmProjectState/XmProjectStateEdit.vue
  34. 4
      src/views/xm/core/xmProjectStateHis/XmProjectStateHisAdd.vue
  35. 4
      src/views/xm/core/xmProjectStateHis/XmProjectStateHisEdit.vue
  36. 4
      src/views/xm/core/xmProjectStateHis/XmProjectStateHisMng.vue
  37. 4
      src/views/xm/core/xmProjectTemplate/XmProjectTemplateInfo.vue
  38. 2
      src/views/xm/core/xmRecord/XmRecord.vue
  39. 8
      src/views/xm/core/xmTask/XmTaskMng.vue
  40. 6
      src/views/xm/core/xmTask/XmTaskMngBatch.vue
  41. 2
      src/views/xm/core/xmTaskTemplate/XmTaskTemplateAdd.vue
  42. 2
      src/views/xm/core/xmTaskTemplate/XmTaskTemplateMng.vue

2
src/views/xm/core/components/xm-gantt.vue

@ -9,7 +9,7 @@
:treeProps="{children: 'children', hasChildren: 'hasChildren',pid:'parentPhaseId', pre: 'finishTaskCnt'}"
:props="columns"
row-key="id">
<!-- <el-table-column prop="phaseName" label="阶段名称" min-width="160" >
<!-- <el-table-column prop="phaseName" label="计划名称" min-width="160" >
<template slot-scope="scope">
<span>{{scope.row.phaseName}}</span>
</template>

12
src/views/xm/core/xmBranchState/XmBranchStateAdd.vue

@ -42,10 +42,10 @@
<el-form-item label="已完成任务总数-来自任务表" prop="totalCompleteTaskCnt">
<el-input-number v-model="addForm.totalCompleteTaskCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划数" prop="totalPhaseCnt">
<el-form-item label="项目计划数" prop="totalPhaseCnt">
<el-input-number v-model="addForm.totalPhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划已完成数" prop="totalCompletePhaseCnt">
<el-form-item label="项目计划已完成数" prop="totalCompletePhaseCnt">
<el-input-number v-model="addForm.totalCompletePhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="待付款总金额" prop="totalNeedPayAmount">
@ -132,11 +132,11 @@
<el-form-item label="待付款总人数" prop="totalNeedPayUserCnt">
<el-input v-model="addForm.totalNeedPayUserCnt" placeholder="待付款总人数"></el-input>
</el-form-item>
<el-form-item label="内部人力总工作量-应该大于或等于阶段计划内部人力总成本" prop="totalPlanInnerUserWorkload">
<el-input v-model="addForm.totalPlanInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于阶段计划内部人力总成本"></el-input>
<el-form-item label="内部人力总工作量-应该大于或等于计划内部人力总成本" prop="totalPlanInnerUserWorkload">
<el-input v-model="addForm.totalPlanInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于计划内部人力总成本"></el-input>
</el-form-item>
<el-form-item label="外购人力总工作量-应该大于或等于阶段计划外购人力总成本" prop="totalPlanOutUserWorkload">
<el-input v-model="addForm.totalPlanOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于阶段计划外购人力总成本"></el-input>
<el-form-item label="外购人力总工作量-应该大于或等于计划外购人力总成本" prop="totalPlanOutUserWorkload">
<el-input v-model="addForm.totalPlanOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于计划外购人力总成本"></el-input>
</el-form-item>
<el-form-item label="测试案例总数" prop="testCases">
<el-input-number v-model="addForm.testCases" :min="0" :max="200"></el-input-number>

12
src/views/xm/core/xmBranchState/XmBranchStateEdit.vue

@ -42,10 +42,10 @@
<el-form-item label="已完成任务总数-来自任务表" prop="totalCompleteTaskCnt">
<el-input-number v-model="editForm.totalCompleteTaskCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划数" prop="totalPhaseCnt">
<el-form-item label="项目计划数" prop="totalPhaseCnt">
<el-input-number v-model="editForm.totalPhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划已完成数" prop="totalCompletePhaseCnt">
<el-form-item label="项目计划已完成数" prop="totalCompletePhaseCnt">
<el-input-number v-model="editForm.totalCompletePhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="待付款总金额" prop="totalNeedPayAmount">
@ -132,11 +132,11 @@
<el-form-item label="待付款总人数" prop="totalNeedPayUserCnt">
<el-input v-model="editForm.totalNeedPayUserCnt" placeholder="待付款总人数"></el-input>
</el-form-item>
<el-form-item label="内部人力总工作量-应该大于或等于阶段计划内部人力总成本" prop="totalPlanInnerUserWorkload">
<el-input v-model="editForm.totalPlanInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于阶段计划内部人力总成本"></el-input>
<el-form-item label="内部人力总工作量-应该大于或等于计划内部人力总成本" prop="totalPlanInnerUserWorkload">
<el-input v-model="editForm.totalPlanInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于计划内部人力总成本"></el-input>
</el-form-item>
<el-form-item label="外购人力总工作量-应该大于或等于阶段计划外购人力总成本" prop="totalPlanOutUserWorkload">
<el-input v-model="editForm.totalPlanOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于阶段计划外购人力总成本"></el-input>
<el-form-item label="外购人力总工作量-应该大于或等于计划外购人力总成本" prop="totalPlanOutUserWorkload">
<el-input v-model="editForm.totalPlanOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于计划外购人力总成本"></el-input>
</el-form-item>
<el-form-item label="测试案例总数" prop="testCases">
<el-input-number v-model="editForm.testCases" :min="0" :max="200"></el-input-number>

4
src/views/xm/core/xmBranchState/XmBranchStateMng.vue

@ -64,8 +64,8 @@
<el-table-column prop="totalPlanOutUserWorkload" label="外购人力总工作量" min-width="80" ></el-table-column>
<el-table-column prop="designCases" label="设计中案例总数" min-width="80" ></el-table-column>
<el-table-column prop="finishCases" label="完成案例总数" min-width="80" ></el-table-column>
<el-table-column prop="totalPhaseCnt" label="项目阶段计划数" min-width="80" ></el-table-column>
<el-table-column prop="totalCompletePhaseCnt" label="项目阶段计划已完成数" min-width="80" ></el-table-column>
<el-table-column prop="totalPhaseCnt" label="项目计划数" min-width="80" ></el-table-column>
<el-table-column prop="totalCompletePhaseCnt" label="项目计划已完成数" min-width="80" ></el-table-column>
<el-table-column label="操作" width="160" fixed="right">
<template scope="scope">
<el-button @click="showXmBranchDatav( scope.row,scope.$index)">大屏展示</el-button>

14
src/views/xm/core/xmIteration/XmIterationInfo.vue

@ -39,8 +39,8 @@
</el-menu-item>
<el-submenu index="规划与里程碑">
<template slot="title">规划与里程碑 </template>
<el-menu-item index="阶段计划及里程碑">
<span slot="title"><i class="el-icon-odometer"></i>阶段计划及里程碑</span>
<el-menu-item index="计划及里程碑">
<span slot="title"><i class="el-icon-odometer"></i>计划及里程碑</span>
</el-menu-item>
<el-menu-item index="测试计划">
<span slot="title"><i class="el-icon-odometer"></i>测试计划</span>
@ -145,7 +145,7 @@
<xm-question v-if="infotype=='缺陷'" :qtype="'bug'" :xm-iteration='xmIteration' ref="xmQuestion"></xm-question>
<xm-group-mng v-if="infotype=='团队'" :xm-iteration="xmIteration"></xm-group-mng>
<xm-file-mng v-if="infotype=='文档'" :xm-iteration="xmIteration"></xm-file-mng>
<xm-project-phase-mng v-if="infotype=='阶段计划及里程碑'" ref="xmProjectPhaseMng" :xm-iteration="xmIteration" ></xm-project-phase-mng>
<xm-project-phase-mng v-if="infotype=='计划及里程碑'" ref="xmProjectPhaseMng" :xm-iteration="xmIteration" ></xm-project-phase-mng>
<xm-test-case-exec-mng v-if="infotype=='测试计划'" :visible="infotype=='测试计划'" :xm-iteration='xmIteration' ref="xmQuestion"></xm-test-case-exec-mng>
<xm-menu-with-plan v-if="infotype=='需求监控'" ref="xmMenuWithPlan" :xm-iteration="xmIteration"></xm-menu-with-plan>
<xm-project-state-mng v-if="infotype=='项目监控'" :xm-iteration="xmIteration"></xm-project-state-mng>
@ -221,7 +221,7 @@
infotype:"迭代概览",
load:{list:false,edit:false},
groupUserVisible:false,
exportArr: ['任务', '阶段计划', '需求监控']
exportArr: ['任务', '计划', '需求监控']
/**end 自定义属性请在上面加 请加备注**/
}
},//end data
@ -292,8 +292,8 @@
keyList = ['sortLevel', 'name', 'menuName', 'budgetCost', 'budgetWorkload', 'exeUsernames', 'rate', 'startTime', 'endTime', 'taskSkillNames'];
list = this.$refs.xmTaskMng.tasksTreeData;
pageNum = this.$refs.xmTaskMng.pageInfo.pageNum;
} else if (this.infotype === '阶段计划') {
header = ['序号', '阶段名称', '开始时间', '结束时间', '进度(%)', '状态', '计划人数', '实际人数', '计划工期', '实际工期', '计划工作量(人时)', '实际工作量(人时)', '计划非人力成本(元)', '实际非人力成本(元)', '计划内购人力成本(元)', '实际内购人力成本(元)', '计划外购人力成本(元)', '实际外购人力成本(元)', '计划成本合计(元)', '实际成本合计(元)', '审批状态', '备注'];
} else if (this.infotype === '计划') {
header = ['序号', '计划名称', '开始时间', '结束时间', '进度(%)', '状态', '计划人数', '实际人数', '计划工期', '实际工期', '计划工作量(人时)', '实际工作量(人时)', '计划非人力成本(元)', '实际非人力成本(元)', '计划内购人力成本(元)', '实际内购人力成本(元)', '计划外购人力成本(元)', '实际外购人力成本(元)', '计划成本合计(元)', '实际成本合计(元)', '审批状态', '备注'];
keyList = ['seqNo', 'phaseName', 'beginDate', 'endDate', 'actRate', 'phaseStatus', 'phaseBudgetOutUserCnt', 'actStaffNu', 'phaseBudgetHours', 'actHours', 'phaseBudgetWorkload', 'phaseActWorkload', 'phaseBudgetNouserAt', 'actNouserAt', 'phaseBudgetInnerUserAt', 'actInnerUserAt', 'phaseBudgetOutUserAt', 'actOutUserAt', 'phaseBudgetCostAt', 'actCostAt', 'bizFlowState', 'remark'];
list = this.$refs.xmProjectPhaseMng.projectPhaseTreeData;
pageNum = this.$refs.xmProjectPhaseMng.pageInfo.pageNum;
@ -331,7 +331,7 @@
}
})
return dataList;
} else if (this.infotype == '阶段计划') {
} else if (this.infotype == '计划') {
const bizFlowStateDict = {
0: '未发审',
1: '审核中',

2
src/views/xm/core/xmIteration/XmIterationOverviewComplex.vue

@ -77,7 +77,7 @@
<el-submenu index="phase-change">
<template slot="title">
<span slot="title">阶段计划变更</span>
<span slot="title">计划变更</span>
</template>
<el-menu-item index="phase-change-review">
<span slot="title">计划评审</span>

14
src/views/xm/core/xmProduct/XmProductInfo.vue

@ -37,8 +37,8 @@
</el-menu-item>
<el-submenu index="规划与里程碑">
<template slot="title">规划与里程碑 </template>
<el-menu-item index="阶段计划及里程碑">
<span slot="title"><i class="el-icon-odometer" ></i>阶段计划及里程碑</span>
<el-menu-item index="计划及里程碑">
<span slot="title"><i class="el-icon-odometer" ></i>计划及里程碑</span>
</el-menu-item>
<el-menu-item index="测试计划">
<span slot="title"><i class="el-icon-odometer" ></i>测试计划</span>
@ -143,7 +143,7 @@
<xm-question v-if="infotype=='缺陷'" :qtype="'bug'" :xm-product='xmProduct' ref="xmQuestion"></xm-question>
<xm-group-mng v-if="infotype=='团队'" :xm-product="xmProduct"></xm-group-mng>
<xm-file-mng v-if="infotype=='文档'" :xm-product="xmProduct"></xm-file-mng>
<xm-project-phase-mng v-if="infotype=='阶段计划及里程碑'" ref="xmProjectPhaseMng" :xm-product="xmProduct" ></xm-project-phase-mng>
<xm-project-phase-mng v-if="infotype=='计划及里程碑'" ref="xmProjectPhaseMng" :xm-product="xmProduct" ></xm-project-phase-mng>
<xm-test-case-exec-mng v-if="infotype=='测试计划'" :visible="infotype=='测试计划'" :xm-product='xmProduct' ref="xmQuestion"></xm-test-case-exec-mng>
<xm-menu-with-plan v-if="infotype=='需求监控'" ref="xmMenuWithPlan" :xm-product="xmProduct"></xm-menu-with-plan>
<xm-project-state-mng v-if="infotype=='项目监控'" :xm-product="xmProduct"></xm-project-state-mng>
@ -222,7 +222,7 @@ import XmProjectForLink from '../xmProject/XmProjectForLink.vue';
infotype:"产品概览",
load:{list:false,edit:false},
groupUserVisible:false,
exportArr: ['任务', '阶段计划', '需求监控']
exportArr: ['任务', '计划', '需求监控']
/**end 自定义属性请在上面加 请加备注**/
}
},//end data
@ -292,8 +292,8 @@ import XmProjectForLink from '../xmProject/XmProjectForLink.vue';
keyList = ['sortLevel', 'name', 'menuName', 'budgetCost', 'budgetWorkload', 'exeUsernames', 'rate', 'startTime', 'endTime', 'taskSkillNames'];
list = this.$refs.xmTaskMng.tasksTreeData;
pageNum = this.$refs.xmTaskMng.pageInfo.pageNum;
} else if (this.infotype === '阶段计划') {
header = ['序号', '阶段名称', '开始时间', '结束时间', '进度(%)', '状态', '计划人数', '实际人数', '计划工期', '实际工期', '计划工作量(人时)', '实际工作量(人时)', '计划非人力成本(元)', '实际非人力成本(元)', '计划内购人力成本(元)', '实际内购人力成本(元)', '计划外购人力成本(元)', '实际外购人力成本(元)', '计划成本合计(元)', '实际成本合计(元)', '审批状态', '备注'];
} else if (this.infotype === '计划') {
header = ['序号', '计划名称', '开始时间', '结束时间', '进度(%)', '状态', '计划人数', '实际人数', '计划工期', '实际工期', '计划工作量(人时)', '实际工作量(人时)', '计划非人力成本(元)', '实际非人力成本(元)', '计划内购人力成本(元)', '实际内购人力成本(元)', '计划外购人力成本(元)', '实际外购人力成本(元)', '计划成本合计(元)', '实际成本合计(元)', '审批状态', '备注'];
keyList = ['seqNo', 'phaseName', 'beginDate', 'endDate', 'actRate', 'phaseStatus', 'phaseBudgetOutUserCnt', 'actStaffNu', 'phaseBudgetHours', 'actHours', 'phaseBudgetWorkload', 'phaseActWorkload', 'phaseBudgetNouserAt', 'actNouserAt', 'phaseBudgetInnerUserAt', 'actInnerUserAt', 'phaseBudgetOutUserAt', 'actOutUserAt', 'phaseBudgetCostAt', 'actCostAt', 'bizFlowState', 'remark'];
list = this.$refs.xmProjectPhaseMng.projectPhaseTreeData;
pageNum = this.$refs.xmProjectPhaseMng.pageInfo.pageNum;
@ -331,7 +331,7 @@ import XmProjectForLink from '../xmProject/XmProjectForLink.vue';
}
})
return dataList;
} else if (this.infotype == '阶段计划') {
} else if (this.infotype == '计划') {
const bizFlowStateDict = {
0: '未发审',
1: '审核中',

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

@ -39,7 +39,7 @@
<el-submenu index="phase-change">
<template slot="title">
<span slot="title">阶段计划变更</span>
<span slot="title">计划变更</span>
</template>
<el-menu-item index="phase-change-review">
<span slot="title">计划评审</span>

2
src/views/xm/core/xmProject/XmProjectAdd.vue

@ -25,7 +25,7 @@
</el-radio-group>
</el-form-item>
<el-form-item label="预算控制" prop="priority">
<el-checkbox v-model="addForm.budgetCtrl" true-label="1" false-label="0" >严格控制预算</el-checkbox> ->->
<el-checkbox v-model="addForm.budgetCtrl" true-label="1" false-label="0" >严格控制预算</el-checkbox> ->->
</el-form-item>
<el-form-item label="项目预估" >
<el-tabs>

2
src/views/xm/core/xmProject/XmProjectEdit.vue

@ -28,7 +28,7 @@
</el-select>
</el-form-item>
<el-form-item label="预算控制" prop="priority">
<el-checkbox v-model="editForm.budgetCtrl" true-label="1" false-label="0" >严格控制预算</el-checkbox> ->->
<el-checkbox v-model="editForm.budgetCtrl" true-label="1" false-label="0" >严格控制预算</el-checkbox> ->->
</el-form-item>
<el-form-item label="工期及成本预估" >
<el-row>

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

@ -44,8 +44,8 @@
</el-menu-item>
<el-submenu index="规划与里程碑">
<template slot="title">规划与里程碑 </template>
<el-menu-item index="阶段计划及里程碑">
<span slot="title"><i class="el-icon-odometer"></i>阶段计划及里程碑</span>
<el-menu-item index="计划及里程碑">
<span slot="title"><i class="el-icon-odometer"></i>计划及里程碑</span>
</el-menu-item>
<el-menu-item index="测试计划">
<span slot="title"><i class="el-icon-odometer"></i>测试计划</span>
@ -150,7 +150,7 @@
<xm-question v-if="infotype=='缺陷'" :qtype="'bug'" :sel-project='selProject' ref="xmQuestion"></xm-question>
<xm-group-mng v-if="infotype=='团队'" :sel-project="selProject"></xm-group-mng>
<xm-file-mng v-if="infotype=='文档'" :sel-project="selProject"></xm-file-mng>
<xm-project-phase-mng v-if="infotype=='阶段计划及里程碑'" ref="xmProjectPhaseMng" :sel-project="selProject" ></xm-project-phase-mng>
<xm-project-phase-mng v-if="infotype=='计划及里程碑'" ref="xmProjectPhaseMng" :sel-project="selProject" ></xm-project-phase-mng>
<xm-test-case-exec-mng v-if="infotype=='测试计划'" :visible="infotype=='测试计划'" :sel-project='selProject' ref="xmQuestion"></xm-test-case-exec-mng>
<xm-menu-with-plan v-if="infotype=='需求监控'" ref="xmMenuWithPlan" :sel-project="selProject"></xm-menu-with-plan>
<xm-project-state-mng v-if="infotype=='项目监控'" :sel-project="selProject"></xm-project-state-mng>
@ -225,7 +225,7 @@
infotype:"项目概览",
load:{list:false,edit:false},
groupUserVisible:false,
exportArr: ['任务', '阶段计划', '需求监控']
exportArr: ['任务', '计划', '需求监控']
/**end 自定义属性请在上面加 请加备注**/
}
},//end data
@ -296,8 +296,8 @@
keyList = ['sortLevel', 'name', 'menuName', 'budgetCost', 'budgetWorkload', 'exeUsernames', 'rate', 'startTime', 'endTime', 'taskSkillNames'];
list = this.$refs.xmTaskMng.tasksTreeData;
pageNum = this.$refs.xmTaskMng.pageInfo.pageNum;
} else if (this.infotype === '阶段计划') {
header = ['序号', '阶段名称', '开始时间', '结束时间', '进度(%)', '状态', '计划人数', '实际人数', '计划工期', '实际工期', '计划工作量(人时)', '实际工作量(人时)', '计划非人力成本(元)', '实际非人力成本(元)', '计划内购人力成本(元)', '实际内购人力成本(元)', '计划外购人力成本(元)', '实际外购人力成本(元)', '计划成本合计(元)', '实际成本合计(元)', '审批状态', '备注'];
} else if (this.infotype === '计划') {
header = ['序号', '计划名称', '开始时间', '结束时间', '进度(%)', '状态', '计划人数', '实际人数', '计划工期', '实际工期', '计划工作量(人时)', '实际工作量(人时)', '计划非人力成本(元)', '实际非人力成本(元)', '计划内购人力成本(元)', '实际内购人力成本(元)', '计划外购人力成本(元)', '实际外购人力成本(元)', '计划成本合计(元)', '实际成本合计(元)', '审批状态', '备注'];
keyList = ['seqNo', 'phaseName', 'beginDate', 'endDate', 'actRate', 'phaseStatus', 'phaseBudgetOutUserCnt', 'actStaffNu', 'phaseBudgetHours', 'actHours', 'phaseBudgetWorkload', 'phaseActWorkload', 'phaseBudgetNouserAt', 'actNouserAt', 'phaseBudgetInnerUserAt', 'actInnerUserAt', 'phaseBudgetOutUserAt', 'actOutUserAt', 'phaseBudgetCostAt', 'actCostAt', 'bizFlowState', 'remark'];
list = this.$refs.xmProjectPhaseMng.projectPhaseTreeData;
pageNum = this.$refs.xmProjectPhaseMng.pageInfo.pageNum;
@ -335,7 +335,7 @@
}
})
return dataList;
} else if (this.infotype == '阶段计划') {
} else if (this.infotype == '计划') {
const bizFlowStateDict = {
0: '未发审',
1: '审核中',

2
src/views/xm/core/xmProject/XmProjectOverviewComplex.vue

@ -74,7 +74,7 @@
<el-submenu index="phase-change">
<template slot="title">
<span slot="title">阶段计划变更</span>
<span slot="title">计划变更</span>
</template>
<el-menu-item index="phase-change-review">
<span slot="title">计划评审</span>

24
src/views/xm/core/xmProjectBaseline/XmProjectBaselineAdd.vue

@ -60,14 +60,14 @@
<el-form-item label="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除" prop="bizFlowState">
<el-input v-model="addForm.bizFlowState" placeholder="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除" ></el-input>
</el-form-item>
<el-form-item label="非人力成本总预算-应该大于或等于阶段计划非人力总成本" prop="planNouserAt">
<el-input v-model="addForm.planNouserAt" placeholder="非人力成本总预算-应该大于或等于阶段计划非人力总成本"></el-input>
<el-form-item label="非人力成本总预算-应该大于或等于计划非人力总成本" prop="planNouserAt">
<el-input v-model="addForm.planNouserAt" placeholder="非人力成本总预算-应该大于或等于计划非人力总成本"></el-input>
</el-form-item>
<el-form-item label="内部人力成本总预算-应该大于或等于阶段计划内部人力总成本" prop="planInnerUserAt">
<el-input v-model="addForm.planInnerUserAt" placeholder="内部人力成本总预算-应该大于或等于阶段计划内部人力总成本"></el-input>
<el-form-item label="内部人力成本总预算-应该大于或等于计划内部人力总成本" prop="planInnerUserAt">
<el-input v-model="addForm.planInnerUserAt" placeholder="内部人力成本总预算-应该大于或等于计划内部人力总成本"></el-input>
</el-form-item>
<el-form-item label="外购人力成本总预算-应该大于或等于阶段计划外购人力总成本" prop="planOutUserAt">
<el-input v-model="addForm.planOutUserAt" placeholder="外购人力成本总预算-应该大于或等于阶段计划外购人力总成本"></el-input>
<el-form-item label="外购人力成本总预算-应该大于或等于计划外购人力总成本" prop="planOutUserAt">
<el-input v-model="addForm.planOutUserAt" placeholder="外购人力成本总预算-应该大于或等于计划外购人力总成本"></el-input>
</el-form-item>
<el-form-item label="是否锁定整个项目不允许变化0否1是" prop="locked">
<el-input v-model="addForm.locked" placeholder="是否锁定整个项目不允许变化0否1是" ></el-input>
@ -81,8 +81,8 @@
<el-form-item label="基线主键" prop="baselineId">
<el-input v-model="addForm.baselineId" placeholder="基线主键" ></el-input>
</el-form-item>
<el-form-item label="总预算工作量-应该大于或等于阶段计划总工作量" prop="planWorkload">
<el-input v-model="addForm.planWorkload" placeholder="总预算工作量-应该大于或等于阶段计划总工作量"></el-input>
<el-form-item label="总预算工作量-应该大于或等于计划总工作量" prop="planWorkload">
<el-input v-model="addForm.planWorkload" placeholder="总预算工作量-应该大于或等于计划总工作量"></el-input>
</el-form-item>
<el-form-item label="总预计收款金额" prop="totalReceivables">
<el-input v-model="addForm.totalReceivables" placeholder="总预计收款金额"></el-input>
@ -111,11 +111,11 @@
<el-form-item label="税率" prop="taxRate">
<el-input v-model="addForm.taxRate" placeholder="税率"></el-input>
</el-form-item>
<el-form-item label="内部人力总工作量-应该大于或等于阶段计划内部人力总成本" prop="planInnerUserWorkload">
<el-input v-model="addForm.planInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于阶段计划内部人力总成本"></el-input>
<el-form-item label="内部人力总工作量-应该大于或等于计划内部人力总成本" prop="planInnerUserWorkload">
<el-input v-model="addForm.planInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于计划内部人力总成本"></el-input>
</el-form-item>
<el-form-item label="外购人力总工作量-应该大于或等于阶段计划外购人力总成本" prop="planOutUserWorkload">
<el-input v-model="addForm.planOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于阶段计划外购人力总成本"></el-input>
<el-form-item label="外购人力总工作量-应该大于或等于计划外购人力总成本" prop="planOutUserWorkload">
<el-input v-model="addForm.planOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于计划外购人力总成本"></el-input>
</el-form-item>
<el-form-item label="项目编号" prop="projectId">
<el-input v-model="addForm.projectId" placeholder="项目编号" ></el-input>

24
src/views/xm/core/xmProjectBaseline/XmProjectBaselineEdit.vue

@ -60,14 +60,14 @@
<el-form-item label="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除" prop="bizFlowState">
<el-input v-model="editForm.bizFlowState" placeholder="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除"></el-input>
</el-form-item>
<el-form-item label="非人力成本总预算-应该大于或等于阶段计划非人力总成本" prop="planNouserAt">
<el-input v-model="editForm.planNouserAt" placeholder="非人力成本总预算-应该大于或等于阶段计划非人力总成本"></el-input>
<el-form-item label="非人力成本总预算-应该大于或等于计划非人力总成本" prop="planNouserAt">
<el-input v-model="editForm.planNouserAt" placeholder="非人力成本总预算-应该大于或等于计划非人力总成本"></el-input>
</el-form-item>
<el-form-item label="内部人力成本总预算-应该大于或等于阶段计划内部人力总成本" prop="planInnerUserAt">
<el-input v-model="editForm.planInnerUserAt" placeholder="内部人力成本总预算-应该大于或等于阶段计划内部人力总成本"></el-input>
<el-form-item label="内部人力成本总预算-应该大于或等于计划内部人力总成本" prop="planInnerUserAt">
<el-input v-model="editForm.planInnerUserAt" placeholder="内部人力成本总预算-应该大于或等于计划内部人力总成本"></el-input>
</el-form-item>
<el-form-item label="外购人力成本总预算-应该大于或等于阶段计划外购人力总成本" prop="planOutUserAt">
<el-input v-model="editForm.planOutUserAt" placeholder="外购人力成本总预算-应该大于或等于阶段计划外购人力总成本"></el-input>
<el-form-item label="外购人力成本总预算-应该大于或等于计划外购人力总成本" prop="planOutUserAt">
<el-input v-model="editForm.planOutUserAt" placeholder="外购人力成本总预算-应该大于或等于计划外购人力总成本"></el-input>
</el-form-item>
<el-form-item label="是否锁定整个项目不允许变化0否1是" prop="locked">
<el-input v-model="editForm.locked" placeholder="是否锁定整个项目不允许变化0否1是"></el-input>
@ -81,8 +81,8 @@
<el-form-item label="基线主键" prop="baselineId">
<el-input v-model="editForm.baselineId" placeholder="基线主键"></el-input>
</el-form-item>
<el-form-item label="总预算工作量-应该大于或等于阶段计划总工作量" prop="planWorkload">
<el-input v-model="editForm.planWorkload" placeholder="总预算工作量-应该大于或等于阶段计划总工作量"></el-input>
<el-form-item label="总预算工作量-应该大于或等于计划总工作量" prop="planWorkload">
<el-input v-model="editForm.planWorkload" placeholder="总预算工作量-应该大于或等于计划总工作量"></el-input>
</el-form-item>
<el-form-item label="总预计收款金额" prop="totalReceivables">
<el-input v-model="editForm.totalReceivables" placeholder="总预计收款金额"></el-input>
@ -111,11 +111,11 @@
<el-form-item label="税率" prop="taxRate">
<el-input v-model="editForm.taxRate" placeholder="税率"></el-input>
</el-form-item>
<el-form-item label="内部人力总工作量-应该大于或等于阶段计划内部人力总成本" prop="planInnerUserWorkload">
<el-input v-model="editForm.planInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于阶段计划内部人力总成本"></el-input>
<el-form-item label="内部人力总工作量-应该大于或等于计划内部人力总成本" prop="planInnerUserWorkload">
<el-input v-model="editForm.planInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于计划内部人力总成本"></el-input>
</el-form-item>
<el-form-item label="外购人力总工作量-应该大于或等于阶段计划外购人力总成本" prop="planOutUserWorkload">
<el-input v-model="editForm.planOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于阶段计划外购人力总成本"></el-input>
<el-form-item label="外购人力总工作量-应该大于或等于计划外购人力总成本" prop="planOutUserWorkload">
<el-input v-model="editForm.planOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于计划外购人力总成本"></el-input>
</el-form-item>
<el-form-item label="项目编号" prop="projectId">
<el-input v-model="editForm.projectId" placeholder="项目编号"></el-input>

12
src/views/xm/core/xmProjectBaseline/XmProjectBaselineMng.vue

@ -30,14 +30,14 @@
<el-table-column prop="planTotalCost" label="总预算" min-width="80" ></el-table-column>
<el-table-column prop="bizProcInstId" label="当前流程实例编号" min-width="80" ></el-table-column>
<el-table-column prop="bizFlowState" label="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除" min-width="80" ></el-table-column>
<el-table-column prop="planNouserAt" label="非人力成本总预算-应该大于或等于阶段计划非人力总成本" min-width="80" ></el-table-column>
<el-table-column prop="planInnerUserAt" label="内部人力成本总预算-应该大于或等于阶段计划内部人力总成本" min-width="80" ></el-table-column>
<el-table-column prop="planOutUserAt" label="外购人力成本总预算-应该大于或等于阶段计划外购人力总成本" min-width="80" ></el-table-column>
<el-table-column prop="planNouserAt" label="非人力成本总预算-应该大于或等于计划非人力总成本" min-width="80" ></el-table-column>
<el-table-column prop="planInnerUserAt" label="内部人力成本总预算-应该大于或等于计划内部人力总成本" min-width="80" ></el-table-column>
<el-table-column prop="planOutUserAt" label="外购人力成本总预算-应该大于或等于计划外购人力总成本" min-width="80" ></el-table-column>
<el-table-column prop="locked" label="是否锁定整个项目不允许变化0否1是" min-width="80" ></el-table-column>
<el-table-column prop="baseTime" label="基线时间" min-width="80" ></el-table-column>
<el-table-column prop="baseRemark" label="基线备注" min-width="80" ></el-table-column>
<el-table-column prop="baselineId" label="基线主键" min-width="80" ></el-table-column>
<el-table-column prop="planWorkload" label="总预算工作量-应该大于或等于阶段计划总工作量" min-width="80" ></el-table-column>
<el-table-column prop="planWorkload" label="总预算工作量-应该大于或等于计划总工作量" min-width="80" ></el-table-column>
<el-table-column prop="totalReceivables" label="总预计收款金额" min-width="80" ></el-table-column>
<el-table-column prop="budgetMarginRate" label="预估毛利率" min-width="80" ></el-table-column>
<el-table-column prop="contractAmt" label="合同总金额" min-width="80" ></el-table-column>
@ -47,8 +47,8 @@
<el-table-column prop="planInnerUserCnt" label="内部人数" min-width="80" ></el-table-column>
<el-table-column prop="planWorkingHours" label="预计工作小时数目" min-width="80" ></el-table-column>
<el-table-column prop="taxRate" label="税率" min-width="80" ></el-table-column>
<el-table-column prop="planInnerUserWorkload" label="内部人力总工作量-应该大于或等于阶段计划内部人力总成本" min-width="80" ></el-table-column>
<el-table-column prop="planOutUserWorkload" label="外购人力总工作量-应该大于或等于阶段计划外购人力总成本" min-width="80" ></el-table-column>
<el-table-column prop="planInnerUserWorkload" label="内部人力总工作量-应该大于或等于计划内部人力总成本" min-width="80" ></el-table-column>
<el-table-column prop="planOutUserWorkload" label="外购人力总工作量-应该大于或等于计划外购人力总成本" min-width="80" ></el-table-column>
<el-table-column prop="projectId" label="项目编号" min-width="80" ></el-table-column>
<el-table-column prop="ctime" label="创建时间" min-width="80" ></el-table-column>
<el-table-column label="操作" width="160" fixed="right" >

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

@ -91,7 +91,7 @@
<el-collapse-item title="项目经理:项目整体、团队、进度、质量、计划、风险、沟通管理等" name="3">
<div>项目立项项目预算项目进度项目成本项目合同项目延期项目预算变更等</div>
<div>团队建立项目管理组建立业务组指定组长组员管理加人减人指派组长</div>
<div>计划建立阶段计划阶段计划预算管理基于阶段计划细化任务迭代计划制定与执行等</div>
<div>计划建立计划计划预算管理基于计划细化任务迭代计划制定与执行等</div>
<div>任务建立任务删除任务指派责任人任务预算变更任务提交测试测试结果反馈任务结算</div>
<div>质量审核测试方案定时查看质量报告</div>
<div>风险风险预测风险应对措施管理等</div>
@ -99,7 +99,7 @@
</el-collapse-item>
<el-collapse-item title="项目管理者: 项目经理、技术经理、项目副经理、技术副经理等具有全项目范围管理权限的管理人员。由项目经理指派。" name="4">
<div>团队建立项目管理组建立业务组指定组长组员管理加人减人指派组长</div>
<div>进度计划建立阶段计划细化阶段计划阶段计划管理阶段预算管理等 </div>
<div>进度计划建立计划细化计划计划管理计划预算管理等 </div>
<div>任务建立任务删除任务指派责任人任务预算变更任务提交测试测试结果反馈任务结算</div>
<div>质量审核测试方案定时查看质量报告等</div>
<div>风险风险预测风险应对措施管理等</div>
@ -107,7 +107,7 @@
</el-collapse-item>
<el-collapse-item title="组长:每个小组的组长,由项目管理者指定" name="5">
<div>团队组员管理加人减人</div>
<div>进度计划建立阶段计划细化阶段计划阶段计划管理阶段预算管理定期查看小组的工作进度情况各成员的进度情况跟踪</div>
<div>进度计划建立计划细化计划计划管理计划预算管理定期查看小组的工作进度情况各成员的进度情况跟踪</div>
<div>任务建立任务删除任务指派责任人任务预算变更任务提交测试测试结果反馈任务结算</div>
<div>质量审核测试方案定时查看质量报告等</div>
<div>风险风险预测风险应对措施管理等</div>

8
src/views/xm/core/xmProjectMCostNouser/XmProjectMCostNouserEdit.vue

@ -48,8 +48,8 @@
<el-form-item label="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除" prop="bizFlowState">
<el-input v-model="editForm.bizFlowState" placeholder="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除"></el-input>
</el-form-item>
<el-form-item label="项目计划阶段编号" prop="projectPhaseId">
<el-input v-model="editForm.projectPhaseId" placeholder="项目计划阶段编号"></el-input>
<el-form-item label="项目计划计划编号" prop="projectPhaseId">
<el-input v-model="editForm.projectPhaseId" placeholder="项目计划计划编号"></el-input>
</el-form-item>
<el-form-item label="实际成本金额" prop="actCostAmount">
<el-input v-model="editForm.actCostAmount" placeholder="实际成本金额"></el-input>
@ -66,8 +66,8 @@
<el-form-item label="科目名称" prop="subjectName">
<el-input v-model="editForm.subjectName" placeholder="科目名称"></el-input>
</el-form-item>
<el-form-item label="阶段名称" prop="projectPhaseName">
<el-input v-model="editForm.projectPhaseName" placeholder="阶段名称"></el-input>
<el-form-item label="计划名称" prop="projectPhaseName">
<el-input v-model="editForm.projectPhaseName" placeholder="计划名称"></el-input>
</el-form-item>
<el-form-item>
<el-col :span="24" :offset="8">

8
src/views/xm/core/xmProjectMCostUser/XmProjectMCostUserEdit.vue

@ -51,8 +51,8 @@
<el-form-item label="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除" prop="bizFlowState">
<el-input v-model="editForm.bizFlowState" placeholder="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除"></el-input>
</el-form-item>
<el-form-item label="项目计划阶段编号" prop="projectPhaseId">
<el-input v-model="editForm.projectPhaseId" placeholder="项目计划阶段编号"></el-input>
<el-form-item label="项目计划计划编号" prop="projectPhaseId">
<el-input v-model="editForm.projectPhaseId" placeholder="项目计划计划编号"></el-input>
</el-form-item>
<el-form-item label="金额" prop="actCostAmount">
<el-input v-model="editForm.actCostAmount" placeholder="金额"></el-input>
@ -69,8 +69,8 @@
<el-form-item label="科目名称" prop="subjectName">
<el-input v-model="editForm.subjectName" placeholder="科目名称"></el-input>
</el-form-item>
<el-form-item label="阶段名称" prop="projectPhaseName">
<el-input v-model="editForm.projectPhaseName" placeholder="阶段名称"></el-input>
<el-form-item label="计划名称" prop="projectPhaseName">
<el-input v-model="editForm.projectPhaseName" placeholder="计划名称"></el-input>
</el-form-item>
<el-form-item>
<el-col :span="24" :offset="8">

8
src/views/xm/core/xmProjectPhase/XmProjectPhaseAdd.vue

@ -4,8 +4,8 @@
<!--新增界面 XmProjectPhase xm_project_phase-->
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">
<el-row class="border padding">
<el-form-item label="阶段名称" prop="phaseName">
<el-input v-model="addForm.phaseName" placeholder="阶段名称" ></el-input>
<el-form-item label="计划名称" prop="phaseName">
<el-input v-model="addForm.phaseName" placeholder="计划名称" ></el-input>
</el-form-item>
<el-form-item label="序号" prop="seqNo">
<el-input v-model="addForm.seqNo" style="width:50%;" placeholder="排序序号,值越小越靠前,如1.0,2.0等"></el-input>
@ -198,10 +198,10 @@
load:{ list: false, edit: false, del: false, add: false },//...
addFormRules: {
id: [
//{ required: true, message: '', trigger: 'blur' }
//{ required: true, message: '', trigger: 'blur' }
],
phaseName: [
{ required: true, message: '阶段名称不能为空', trigger: 'blur' }
{ required: true, message: '计划名称不能为空', trigger: 'blur' }
],
planType: [
{ required: true, message: '请选择计划类型', trigger: 'blur' }

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

@ -45,7 +45,7 @@
</div>
</template>
</el-table-column>
<el-table-column prop="phaseName" label="阶段名称" width="200" >
<el-table-column prop="phaseName" label="计划名称" width="200" >
<template slot-scope="scope">
<el-input v-model="scope.row.phaseName" @change="fieldChange(scope.row,'phaseName')"></el-input>
</template>
@ -279,7 +279,7 @@
xmRecordVisible:false,
valueChangeRows:[],
batchEditVisible:false,
menuVisible:false,//
menuVisible:false,//
tableHeight:300,
pickerOptions: util.pickerOptions('date'),
gstcVisible:false,
@ -364,7 +364,7 @@
showEdit: function ( row,index ) {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
this.editForm = Object.assign({}, row);
@ -374,7 +374,7 @@
showAdd: function () {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
this.parentProjectPhase=null;
@ -386,7 +386,7 @@
showSubAdd: function (parentProjectPhase) {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
var myrow=JSON.parse(JSON.stringify(parentProjectPhase))
@ -498,7 +498,7 @@
handleDel: function (row,index) {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
if(!!row.bizFlowState ){
@ -530,7 +530,7 @@
batchDel: function () {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
var phases=this.sels.filter(i=>{
@ -562,7 +562,7 @@
showPhaseTemplate: function(parentPhase){
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
this.parentProjectPhase=parentPhase
@ -767,7 +767,7 @@
saveBatchEdit:function(){
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
if(this.valueChangeRows.length==0){
@ -1104,7 +1104,7 @@
showMenu:function(parentPhase){
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
this.parentProjectPhase=parentPhase
@ -1130,7 +1130,7 @@
handlePopover:function(row,opType){
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
if('add'==opType){

12
src/views/xm/core/xmProjectPhase/XmProjectPhaseEdit.vue

@ -4,7 +4,7 @@
<el-row class="page-main page-height-90">
<el-tabs>
<el-tab-pane label="阶段计划详情">
<el-tab-pane label="计划详情">
<!--新增界面 XmProjectPhase xm_project_phase-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm">
<el-row class="border padding">
@ -19,8 +19,8 @@
</el-steps>
</el-row>
<el-row class="border padding">
<el-form-item label="阶段名称" prop="phaseName">
<el-input v-model="editForm.phaseName" placeholder="阶段名称" ></el-input>
<el-form-item label="计划名称" prop="phaseName">
<el-input v-model="editForm.phaseName" placeholder="计划名称" ></el-input>
</el-form-item>
<el-form-item label="序号" prop="seqNo">
<el-input v-model="editForm.seqNo" style="width:50%;" placeholder="排序序号,值越小越靠前,如1.0,2.0等"></el-input>
@ -108,7 +108,7 @@
</el-tabs>
</el-form>
</el-tab-pane>
<el-tab-pane label="阶段计划概览" lazy>
<el-tab-pane label="计划概览" lazy>
<xm-project-phase-overview :xm-project-phase="xmProjectPhase"></xm-project-phase-overview>
</el-tab-pane>
</el-tabs>
@ -212,10 +212,10 @@
load:{ list: false, add: false, del: false, edit: false },//...
editFormRules: {
id: [
//{ required: true, message: '', trigger: 'blur' }
//{ required: true, message: '', trigger: 'blur' }
],
phaseName: [
{ required: true, message: '阶段名称不能为空', trigger: 'blur' }
{ required: true, message: '计划名称不能为空', trigger: 'blur' }
],
planType: [
{ required: true, message: '请选择计划类型', trigger: 'blur' }

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

@ -69,51 +69,16 @@
<el-row class="padding-top" v-show="batchEditVisible==false">
<!--列表 XmProjectPhase xm_project_phase-->
<el-table ref="table" :height="tableHeight" v-show="!gstcVisible " default-expand-all :data="projectPhaseTreeData" :summary-method="getSummariesForNoBatchEdit" :show-summary="true" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column prop="phaseName" label="阶段名称" min-width="150" show-overflow-tooltip>
<el-table-column prop="phaseName" label="计划名称" min-width="150" show-overflow-tooltip>
<template slot-scope="scope">
<span>
{{scope.row.seqNo}} &nbsp;&nbsp;
<span v-show="scope.row.milestone=='1'">
<i class="el-icon-star-on"></i>
</span>
<span>
<el-dropdown @command="handleCommand" :hide-on-click="false">
<span class="el-dropdown-link">
<i class="el-icon-setting"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="{type:'showSubAdd',data:scope.row}">+子阶段</el-dropdown-item>
<el-dropdown-item :command="{type:'showPhaseTemplate',data:scope.row}">+从模板批量导入子阶段</el-dropdown-item>
<el-dropdown-item :command="{type:'showMenu',data:scope.row}">+由需求创建子阶段</el-dropdown-item>
<el-dropdown-item :command="{type:'showEdit',data:scope.row}">编辑</el-dropdown-item>
<el-dropdown-item :command="{type:'loadTasksToXmProjectPhase',data:scope.row}" >从任务汇总实际数据</el-dropdown-item>
<el-dropdown-item :command="{type:'showLog',data:scope.row}">日志</el-dropdown-item>
<el-dropdown-item :command="{type:'handleDel',data:scope.row}" >删除</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_start_approva'}">变更发审(审核通过后起效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_delete_approva'}">删除发审(审核通过后删除)</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</span>
<span>
<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>
</span>
<span>
<el-tag :type="scope.row.actRate>=100?'success':'primary'"> {{ (scope.row.actRate!=null?scope.row.actRate:0)+'%'}} </el-tag>
</span>
<el-link type="primary" @click="showEdit(scope.row)"> {{scope.row.phaseName}}</el-link>
<el-link type="primary" @click="showEdit(scope.row)">{{scope.row.seqNo}} &nbsp;&nbsp; {{scope.row.phaseName}}
</el-link>
<font 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></font>
</span>
<font style="float:right;">
<span>
<font class="hidden-md-and-down" >{{formatDate(scope.row.beginDate)}}{{formatDate(scope.row.endDate)}} </font>
<font 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></font>
</span>
</font>
</template>
</el-table-column>
<!--
<el-table-column prop="mngUsername" label="责任人" width="80" show-overflow-tooltip>
<template slot-scope="scope">
<el-button type="text" v-if="!scope.row.mngUserid" v-model="scope.row.mngUsername" @click="groupUserSelectVisible=true" icon="el-icon-setting">去设置</el-button>
@ -122,28 +87,28 @@
</el-table-column>
<el-table-column prop="beginDate" label="起止时间" min-width="120" show-overflow-tooltip>
<template slot-scope="scope">
<font class="hidden-md-and-down" >{{formatDate(scope.row.beginDate)}}<br>{{formatDate(scope.row.endDate)}} </font>
<font 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></font>
<font class="hidden-md-and-down" >{{formatDate(scope.row.beginDate)}}<br>{{formatDate(scope.row.endDate)}} </font>
</template>
</el-table-column>
<el-table-column prop="actRate" label="进度.状态" width="100">
<el-table-column prop="actRate" label="进度" width="100">
<template slot-scope="scope">
<el-tag :type="scope.row.actRate>=100?'success':'primary'"> {{ (scope.row.actRate!=null?scope.row.actRate:0)+'%'}} </el-tag>
</template>
</el-table-column>
-->
<el-table-column prop="phaseBudgetHours" label="工时(计划>实际).人时" width="150" >
<template slot-scope="scope">
{{scope.row.phaseBudgetWorkload}} <i class="el-icon-d-arrow-right"></i>
{{scope.row.phaseActWorkload}}
</template>
</el-table-column>
<el-table-column prop="phaseBudgetCostAt" label="成本(计划>实际).元" width="150" >
<template slot-scope="scope">
{{scope.row.phaseBudgetCostAt}} <i class="el-icon-d-arrow-right"></i>
{{scope.row.actCostAt}}
</template>
</el-table-column>
<el-table-column label="工作量(人时)" width="100">
<el-table-column prop="phaseBudgetWorkload" label="预计" width="100" >
</el-table-column>
<el-table-column prop="phaseActWorkload" label="实际" width="100" >
</el-table-column>
</el-table-column>
<el-table-column label="成本(元)" width="100">
<el-table-column prop="phaseBudgetCostAt" label="预计" width="100" >
</el-table-column>
<el-table-column prop="actCostAt" label="实际" width="100" >
</el-table-column>
</el-table-column>
<el-table-column prop="bizFlowState" label="审批状态" width="100" >
<template slot-scope="scope">
<el-tooltip :content="showApprovaInfo(scope.row)" placement="bottom" effect="light">
@ -155,6 +120,48 @@
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="操作" width="200" >
<template slot-scope="scope">
<el-popover style="padding-left:10px;"
placement="top-start"
width="250"
trigger="click" >
<el-row>
<el-col :span="24" style="padding-top:5px;">
<el-button @click="showSubAdd( scope.row,scope.$index)" icon="el-icon-plus">子计划</el-button>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<el-button @click="showPhaseTemplate(scope.row)" icon="el-icon-upload2">从模板批量导入子计划</el-button>
</el-col>
<el-col :span="24" style="padding-top:5px;">
<el-button @click="showMenu(scope.row)" icon="el-icon-upload2">由需求创建子计划</el-button>
</el-col>
</el-row>
<el-button type="text" slot="reference" icon="el-icon-plus">添加</el-button>
</el-popover>
<el-button type="text" @click="showMenu(scope.row)" icon="el-icon-edit">编辑</el-button>
<el-button type="text" @click="handleDel(scope.row)" icon="el-icon-delete">删除</el-button>
<el-button type="text" @click="showLog(scope.row)" icon="el-icon-file">日志</el-button>
<el-button type="text" @click="loadTasksToXmProjectPhase(scope.row)" icon="el-icon-upload2">汇总进度</el-button>
<span v-show="scope.row.milestone=='1'">
<i class="el-icon-star-on"></i>
</span>
<span>
<el-dropdown @command="handleCommand" :hide-on-click="false">
<span class="el-dropdown-link">
<i class="el-icon-more"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_start_approva'}">变更发审(审核通过后起效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_delete_approva'}">删除发审(审核通过后删除)</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</span>
</template>
</el-table-column>
</el-table>
<xm-gantt v-if="gstcVisible && batchEditVisible==false" :tree-data="projectPhaseTreeData" :project-phase="selProject" :columns="ganrrColumns" :useRealTime="false"></xm-gantt>
@ -172,8 +179,8 @@
<el-drawer title="新增计划" :visible.sync="addFormVisible" :with-header="false" :size="800" :close-on-click-modal="false" append-to-body>
<xm-project-phase-add :parent-project-phase="parentProjectPhase" :xm-project-phase="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit" ></xm-project-phase-add>
</el-drawer>
<!--阶段模板-->
<el-drawer title="阶段模板" :visible.sync="phaseTemplateVisible" size="80%" :close-on-click-modal="false" append-to-body>
<!--计划模板-->
<el-drawer title="计划模板" :visible.sync="phaseTemplateVisible" size="80%" :close-on-click-modal="false" append-to-body>
<xm-project-phase-template-mng :is-select="true" :visible="phaseTemplateVisible" @cancel="phaseTemplateVisible=false" @selected-confirm="afterPhaseTemplateSelected" ></xm-project-phase-template-mng>
</el-drawer>
<el-drawer :title="editForm==null?'操作日志':editForm.phaseName+'操作日志'" center :visible.sync="xmRecordVisible" size="50%" :close-on-click-modal="false" append-to-body>
@ -361,7 +368,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
xmRecordVisible:false,
valueChangeRows:[],
batchEditVisible:false,
menuVisible:false,//
menuVisible:false,//
tableHeight:200,
pickerOptions: util.pickerOptions('date'),
gstcVisible:false,
@ -457,7 +464,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
showEdit: function ( row,index ) {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
this.editForm = Object.assign({}, row);
@ -467,7 +474,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
showAdd: function () {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
this.parentProjectPhase=null;
@ -479,7 +486,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
showSubAdd: function (parentProjectPhase) {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
var myrow=JSON.parse(JSON.stringify(parentProjectPhase))
@ -591,7 +598,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
handleDel: function (row,index) {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
if(!!row.bizFlowState ){
@ -623,7 +630,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
batchDel: function () {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
var phases=this.sels.filter(i=>{
@ -655,7 +662,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
showPhaseTemplate: function(parentPhase){
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
this.parentProjectPhase=parentPhase
@ -759,7 +766,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
sendToProcessApprova:function(row,bizKey){
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
if(row.bizFlowState=='1'){
@ -846,7 +853,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
handleCommand(command) {
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
if(command.type=='sendToProcessApprova'){
@ -1011,7 +1018,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
saveBatchEdit:function(){
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
if(this.valueChangeRows.length==0){
@ -1207,7 +1214,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
showMenu:function(parentPhase){
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
this.parentProjectPhase=parentPhase
@ -1233,7 +1240,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
handlePopover:function(row,opType){
if( !this.roles.some(i=>i.roleid=='projectAdmin') && !this.roles.some(i=>i.roleid=='teamAdmin') ){
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作阶段计划", type: 'error' });
this.$message({showClose: true, message: "只有项目经理、小组组长可以操作计划", type: 'error' });
return;
}
if('add'==opType){

8
src/views/xm/core/xmProjectPhase/XmProjectPhaseOverview.vue

@ -22,14 +22,14 @@
<el-col :span="12" >
<el-card class="box-card" style="padding:0px ;height:425px">
<div slot="header" class="clearfix">
<span>阶段信息</span>
<span>计划信息</span>
</div>
<el-row style="margin-bottom:18px">
<el-row>
<span v-text="this.xmProjectPhase.mngUsername"></span>
</el-row>
<el-row>
<span>阶段管理员</span>
<span>计划管理员</span>
</el-row>
</el-row>
<el-row style="margin-bottom:18px">
@ -77,7 +77,7 @@
<div class="info">
<div v-text="phaseBeginDate+'~'+phaseEndDate">
</div>
<div class="title">阶段计划周期</div>
<div class="title">计划周期</div>
</div>
</div>
</el-row>
@ -119,7 +119,7 @@
<el-col :span="12" >
<el-card class="box-card" style="padding:0px ;height:425px">
<div slot="header" class="clearfix">
<span>阶段工时</span>
<span>计划工时</span>
</div>
<div>
<el-row style="padding:25px;">

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

@ -2,9 +2,9 @@
<section>
<el-row>
<el-table :height="tableHeight" ref="selectPhaseTable" :data="projectPhaseTreeData" :show-summary="false" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column prop="phaseName" label="阶段名称" min-width="160" show-overflow-tooltip>
<el-table-column prop="phaseName" label="计划名称" min-width="160" show-overflow-tooltip>
<template slot="header" slot-scope="scope">
<div>阶段 <el-tag v-if="editForm.id" closable @close="clearSelectPhase()"> {{editForm.phaseName}}</el-tag></div>
<div>计划 <el-tag v-if="editForm.id" closable @close="clearSelectPhase()"> {{editForm.phaseName}}</el-tag></div>
</template>
<template slot-scope="scope">
{{scope.row.seqNo}} &nbsp;&nbsp;<el-tooltip v-if="scope.row.milestone=='1'" content="里程碑"><i class="el-icon-star-on"></i></el-tooltip>{{scope.row.phaseName}}
@ -108,7 +108,7 @@
xmRecordVisible:false,
valueChangeRows:[],
batchEditVisible:false,
menuVisible:false,//
menuVisible:false,//
pickerOptions: util.pickerOptions('date'),
gstcVisible:false,
tableHeight:300,

12
src/views/xm/core/xmProjectPhaseBaseline/XmProjectPhaseBaselineAdd.vue

@ -6,17 +6,17 @@
<el-form-item label="基线建立时间" prop="baseCtime">
<el-date-picker type="date" placeholder="选择日期" v-model="addForm.baseCtime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="阶段主键" prop="projectPhaseId">
<el-input v-model="addForm.projectPhaseId" placeholder="阶段主键" ></el-input>
<el-form-item label="计划主键" prop="projectPhaseId">
<el-input v-model="addForm.projectPhaseId" placeholder="计划主键" ></el-input>
</el-form-item>
<el-form-item label="阶段名称" prop="phaseName">
<el-input v-model="addForm.phaseName" placeholder="阶段名称" ></el-input>
<el-form-item label="计划名称" prop="phaseName">
<el-input v-model="addForm.phaseName" placeholder="计划名称" ></el-input>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="addForm.remark" placeholder="备注" ></el-input>
</el-form-item>
<el-form-item label="上级阶段编号" prop="parentPhaseId">
<el-input v-model="addForm.parentPhaseId" placeholder="上级阶段编号" ></el-input>
<el-form-item label="上级计划编号" prop="parentPhaseId">
<el-input v-model="addForm.parentPhaseId" placeholder="上级计划编号" ></el-input>
</el-form-item>
<el-form-item label="机构编号" prop="branchId">
<el-input v-model="addForm.branchId" placeholder="机构编号" ></el-input>

12
src/views/xm/core/xmProjectPhaseBaseline/XmProjectPhaseBaselineEdit.vue

@ -6,17 +6,17 @@
<el-form-item label="基线建立时间" prop="baseCtime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.baseCtime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="阶段主键" prop="projectPhaseId">
<el-input v-model="editForm.projectPhaseId" placeholder="阶段主键"></el-input>
<el-form-item label="计划主键" prop="projectPhaseId">
<el-input v-model="editForm.projectPhaseId" placeholder="计划主键"></el-input>
</el-form-item>
<el-form-item label="阶段名称" prop="phaseName">
<el-input v-model="editForm.phaseName" placeholder="阶段名称"></el-input>
<el-form-item label="计划名称" prop="phaseName">
<el-input v-model="editForm.phaseName" placeholder="计划名称"></el-input>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="editForm.remark" placeholder="备注"></el-input>
</el-form-item>
<el-form-item label="上级阶段编号" prop="parentPhaseId">
<el-input v-model="editForm.parentPhaseId" placeholder="上级阶段编号"></el-input>
<el-form-item label="上级计划编号" prop="parentPhaseId">
<el-input v-model="editForm.parentPhaseId" placeholder="上级计划编号"></el-input>
</el-form-item>
<el-form-item label="机构编号" prop="branchId">
<el-input v-model="editForm.branchId" placeholder="机构编号"></el-input>

6
src/views/xm/core/xmProjectPhaseBaseline/XmProjectPhaseBaselineMng.vue

@ -12,10 +12,10 @@
<el-table-column sortable type="selection" width="40"></el-table-column>
<el-table-column sortable type="index" width="40"></el-table-column>
<el-table-column prop="baseCtime" label="基线建立时间" min-width="80" ></el-table-column>
<el-table-column prop="projectPhaseId" label="阶段主键" min-width="80" ></el-table-column>
<el-table-column prop="phaseName" label="阶段名称" min-width="80" ></el-table-column>
<el-table-column prop="projectPhaseId" label="计划主键" min-width="80" ></el-table-column>
<el-table-column prop="phaseName" label="计划名称" min-width="80" ></el-table-column>
<el-table-column prop="remark" label="备注" min-width="80" ></el-table-column>
<el-table-column prop="parentPhaseId" label="上级阶段编号" min-width="80" ></el-table-column>
<el-table-column prop="parentPhaseId" label="上级计划编号" min-width="80" ></el-table-column>
<el-table-column prop="branchId" label="机构编号" min-width="80" ></el-table-column>
<el-table-column prop="projectId" label="当前项目编号" min-width="80" ></el-table-column>
<el-table-column prop="beginDate" label="开始时间" min-width="80" ></el-table-column>

8
src/views/xm/core/xmProjectPhaseTemplate/XmProjectPhaseTemplateAdd.vue

@ -3,8 +3,8 @@
<el-row>
<!--新增界面 XmProjectPhaseTemplate xm_phase_template-->
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">
<el-form-item label="阶段名称" prop="phaseName">
<el-input v-model="addForm.phaseName" placeholder="阶段名称" ></el-input>
<el-form-item label="计划名称" prop="phaseName">
<el-input v-model="addForm.phaseName" placeholder="计划名称" ></el-input>
</el-form-item>
<el-form-item label="序号" prop="seqNo">
<el-input v-model="addForm.seqNo" placeholder="排序序号,值越小越靠前,如1.0,1.1,1.1.1等"></el-input>
@ -109,10 +109,10 @@
load:{ list: false, edit: false, del: false, add: false },//...
addFormRules: {
id: [
//{ required: true, message: '', trigger: 'blur' }
//{ required: true, message: '', trigger: 'blur' }
],
phaseName: [
{ required: true, message: '阶段名称不能为空', trigger: 'blur' }
{ required: true, message: '计划名称不能为空', trigger: 'blur' }
],
planType: [
//{ required: true, message: '', trigger: 'blur' }

8
src/views/xm/core/xmProjectPhaseTemplate/XmProjectPhaseTemplateEdit.vue

@ -3,8 +3,8 @@
<el-row>
<!--新增界面 XmProjectPhaseTemplate xm_phase_template-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm">
<el-form-item label="阶段名称" prop="phaseName">
<el-input v-model="editForm.phaseName" placeholder="阶段名称" ></el-input>
<el-form-item label="计划名称" prop="phaseName">
<el-input v-model="editForm.phaseName" placeholder="计划名称" ></el-input>
</el-form-item>
<el-form-item label="序号" prop="seqNo">
<el-input v-model="editForm.seqNo" placeholder="排序序号,值越小越靠前,如1.0,2.0等"></el-input>
@ -105,10 +105,10 @@
load:{ list: false, add: false, del: false, edit: false },//...
editFormRules: {
id: [
//{ required: true, message: '', trigger: 'blur' }
//{ required: true, message: '', trigger: 'blur' }
],
phaseName: [
{ required: true, message: '阶段名称不能为空', trigger: 'blur' }
{ required: true, message: '计划名称不能为空', trigger: 'blur' }
],
planType: [
//{ required: true, message: '', trigger: 'blur' }

12
src/views/xm/core/xmProjectPhaseTemplate/XmProjectPhaseTemplateMng.vue

@ -4,7 +4,7 @@
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input>
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProjectPhaseTemplates">查询</el-button>
<el-button v-if="!selProjectTemplate" type="primary" @click="showProjectTemplate">选择项目模板</el-button>
<el-button v-if="!isSelect" type="primary" @click="showAdd">+项目阶段</el-button>
<el-button v-if="!isSelect" type="primary" @click="showAdd">+项目计划</el-button>
<el-button v-if="isSelect" type="primary" @click="selectedConfirm">确认选择</el-button>
</el-row>
@ -12,7 +12,7 @@
<!--列表 XmProjectPhaseTemplate xm_phase_template-->
<el-table default-expand-all :data="xmProjectPhaseTemplateTreeData" @sort-change="sortChange" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" 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="phaseName" label="阶段名称" min-width="260" >
<el-table-column prop="phaseName" label="计划名称" min-width="260" >
<template slot-scope="scope">
{{scope.row.seqNo}} &nbsp;&nbsp;{{scope.row.phaseName}}
@ -30,7 +30,7 @@
<template slot-scope="scope">
<el-button @click="showEdit( scope.row,scope.$index)"></el-button>
<el-button type="danger" @click="handleDel(scope.row,scope.$index)"></el-button>
<el-button @click="showSubAdd( scope.row,scope.$index)">+阶段</el-button>
<el-button @click="showSubAdd( scope.row,scope.$index)">+计划</el-button>
</template>
</el-table-column>
</el-table>
@ -41,7 +41,7 @@
<el-row v-if="simple">
<!--列表 XmProjectPhaseTemplate xm_phase_template-->
<el-table default-expand-all :data="xmProjectPhaseTemplateTreeData" @sort-change="sortChange" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column prop="phaseName" label="阶段名称" min-width="180" >
<el-table-column prop="phaseName" label="计划名称" min-width="180" >
<template slot-scope="scope">
{{scope.row.seqNo}} &nbsp;&nbsp;{{scope.row.phaseName}}
</template>
@ -52,12 +52,12 @@
</el-row>
<!--编辑 XmProjectPhaseTemplate xm_phase_template界面-->
<el-drawer title="编辑阶段" :visible.sync="editFormVisible" size="50%" append-to-body :close-on-click-modal="false">
<el-drawer title="编辑计划" :visible.sync="editFormVisible" size="50%" append-to-body :close-on-click-modal="false">
<xm-project-phase-template-edit :xm-project-phase-template="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-project-phase-template-edit>
</el-drawer>
<!--新增 XmProjectPhaseTemplate xm_phase_template界面-->
<el-drawer title="新增阶段" :visible.sync="addFormVisible" size="50%" append-to-body :close-on-click-modal="false">
<el-drawer title="新增计划" :visible.sync="addFormVisible" size="50%" append-to-body :close-on-click-modal="false">
<xm-project-phase-template-add :sel-project-template="filters.projectTemplate" :xm-parent-phase-template="parentPhaseTemplate" :xm-project-phase-template="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-project-phase-template-add>
</el-drawer>
<el-drawer title="项目模板" :visible.sync="projectTemplateVisible" size="50%" append-to-body :close-on-click-modal="false">

4
src/views/xm/core/xmProjectState/XmCockpit.vue

@ -26,8 +26,8 @@
<el-table-column prop="totalClosedBugCnt" label="已关闭bug总数" min-width="80" ></el-table-column>
<el-table-column prop="totalResolvedBugCnt" label="已解决bug总数" min-width="80" ></el-table-column>
<el-table-column prop="totalCompleteTaskCnt" label="已完成任务总数-来自任务表" min-width="80" ></el-table-column>
<el-table-column prop="totalPhaseCnt" label="项目阶段计划数" min-width="80" ></el-table-column>
<el-table-column prop="totalCompletePhaseCnt" label="项目阶段计划已完成数" min-width="80" ></el-table-column>
<el-table-column prop="totalPhaseCnt" label="项目计划数" min-width="80" ></el-table-column>
<el-table-column prop="totalCompletePhaseCnt" label="项目计划已完成数" min-width="80" ></el-table-column>
<el-table-column prop="totalNeedPayAmount" label="待付款总金额" min-width="80" ></el-table-column>
<el-table-column prop="totalFinishPayAmount" label="已付款总金额" min-width="80" ></el-table-column>
<el-table-column prop="totalNeedColAmount" label="待收款总金额" min-width="80" ></el-table-column>

12
src/views/xm/core/xmProjectState/XmProjectStateAdd.vue

@ -48,10 +48,10 @@
<el-form-item label="已完成任务总数-来自任务表" prop="totalCompleteTaskCnt">
<el-input-number v-model="addForm.totalCompleteTaskCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划数" prop="totalPhaseCnt">
<el-form-item label="项目计划数" prop="totalPhaseCnt">
<el-input-number v-model="addForm.totalPhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划已完成数" prop="totalCompletePhaseCnt">
<el-form-item label="项目计划已完成数" prop="totalCompletePhaseCnt">
<el-input-number v-model="addForm.totalCompletePhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="待付款总金额" prop="totalNeedPayAmount">
@ -138,11 +138,11 @@
<el-form-item label="待付款总人数" prop="totalNeedPayUserCnt">
<el-input v-model="addForm.totalNeedPayUserCnt" placeholder="待付款总人数"></el-input>
</el-form-item>
<el-form-item label="内部人力总工作量-应该大于或等于阶段计划内部人力总成本" prop="totalPlanInnerUserWorkload">
<el-input v-model="addForm.totalPlanInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于阶段计划内部人力总成本"></el-input>
<el-form-item label="内部人力总工作量-应该大于或等于计划内部人力总成本" prop="totalPlanInnerUserWorkload">
<el-input v-model="addForm.totalPlanInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于计划内部人力总成本"></el-input>
</el-form-item>
<el-form-item label="外购人力总工作量-应该大于或等于阶段计划外购人力总成本" prop="totalPlanOutUserWorkload">
<el-input v-model="addForm.totalPlanOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于阶段计划外购人力总成本"></el-input>
<el-form-item label="外购人力总工作量-应该大于或等于计划外购人力总成本" prop="totalPlanOutUserWorkload">
<el-input v-model="addForm.totalPlanOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于计划外购人力总成本"></el-input>
</el-form-item>
<el-form-item label="测试用例总数" prop="testCases">
<el-input-number v-model="addForm.testCases" :min="0" :max="200"></el-input-number>

12
src/views/xm/core/xmProjectState/XmProjectStateEdit.vue

@ -48,10 +48,10 @@
<el-form-item label="已完成任务总数-来自任务表" prop="totalCompleteTaskCnt">
<el-input-number v-model="editForm.totalCompleteTaskCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划数" prop="totalPhaseCnt">
<el-form-item label="项目计划数" prop="totalPhaseCnt">
<el-input-number v-model="editForm.totalPhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划已完成数" prop="totalCompletePhaseCnt">
<el-form-item label="项目计划已完成数" prop="totalCompletePhaseCnt">
<el-input-number v-model="editForm.totalCompletePhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="待付款总金额" prop="totalNeedPayAmount">
@ -138,11 +138,11 @@
<el-form-item label="待付款总人数" prop="totalNeedPayUserCnt">
<el-input v-model="editForm.totalNeedPayUserCnt" placeholder="待付款总人数"></el-input>
</el-form-item>
<el-form-item label="内部人力总工作量-应该大于或等于阶段计划内部人力总成本" prop="totalPlanInnerUserWorkload">
<el-input v-model="editForm.totalPlanInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于阶段计划内部人力总成本"></el-input>
<el-form-item label="内部人力总工作量-应该大于或等于计划内部人力总成本" prop="totalPlanInnerUserWorkload">
<el-input v-model="editForm.totalPlanInnerUserWorkload" placeholder="内部人力总工作量-应该大于或等于计划内部人力总成本"></el-input>
</el-form-item>
<el-form-item label="外购人力总工作量-应该大于或等于阶段计划外购人力总成本" prop="totalPlanOutUserWorkload">
<el-input v-model="editForm.totalPlanOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于阶段计划外购人力总成本"></el-input>
<el-form-item label="外购人力总工作量-应该大于或等于计划外购人力总成本" prop="totalPlanOutUserWorkload">
<el-input v-model="editForm.totalPlanOutUserWorkload" placeholder="外购人力总工作量-应该大于或等于计划外购人力总成本"></el-input>
</el-form-item>
<el-form-item label="测试用例总数" prop="testCases">
<el-input-number v-model="editForm.testCases" :min="0" :max="200"></el-input-number>

4
src/views/xm/core/xmProjectStateHis/XmProjectStateHisAdd.vue

@ -48,10 +48,10 @@
<el-form-item label="已完成任务总数-来自任务表" prop="totalCompleteTaskCnt">
<el-input-number v-model="addForm.totalCompleteTaskCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划数" prop="totalPhaseCnt">
<el-form-item label="项目计划数" prop="totalPhaseCnt">
<el-input-number v-model="addForm.totalPhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划已完成数" prop="totalCompletePhaseCnt">
<el-form-item label="项目计划已完成数" prop="totalCompletePhaseCnt">
<el-input-number v-model="addForm.totalCompletePhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="待付款总金额" prop="totalNeedPayAmount">

4
src/views/xm/core/xmProjectStateHis/XmProjectStateHisEdit.vue

@ -48,10 +48,10 @@
<el-form-item label="已完成任务总数-来自任务表" prop="totalCompleteTaskCnt">
<el-input-number v-model="editForm.totalCompleteTaskCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划数" prop="totalPhaseCnt">
<el-form-item label="项目计划数" prop="totalPhaseCnt">
<el-input-number v-model="editForm.totalPhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目阶段计划已完成数" prop="totalCompletePhaseCnt">
<el-form-item label="项目计划已完成数" prop="totalCompletePhaseCnt">
<el-input-number v-model="editForm.totalCompletePhaseCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="待付款总金额" prop="totalNeedPayAmount">

4
src/views/xm/core/xmProjectStateHis/XmProjectStateHisMng.vue

@ -26,8 +26,8 @@
<el-table-column prop="totalCloseBugCnt" label="已关闭bug总数" min-width="80" ></el-table-column>
<el-table-column prop="totalResolveBugCnt" label="已解决bug总数" min-width="80" ></el-table-column>
<el-table-column prop="totalCompleteTaskCnt" label="已完成任务总数-来自任务表" min-width="80" ></el-table-column>
<el-table-column prop="totalPhaseCnt" label="项目阶段计划数" min-width="80" ></el-table-column>
<el-table-column prop="totalCompletePhaseCnt" label="项目阶段计划已完成数" min-width="80" ></el-table-column>
<el-table-column prop="totalPhaseCnt" label="项目计划数" min-width="80" ></el-table-column>
<el-table-column prop="totalCompletePhaseCnt" label="项目计划已完成数" min-width="80" ></el-table-column>
<el-table-column prop="totalNeedPayAmount" label="待付款总金额" min-width="80" ></el-table-column>
<el-table-column prop="totalFinishPayAmount" label="已付款总金额" min-width="80" ></el-table-column>
<el-table-column prop="totalNeedColAmount" label="待收款总金额" min-width="80" ></el-table-column>

4
src/views/xm/core/xmProjectTemplate/XmProjectTemplateInfo.vue

@ -5,12 +5,12 @@
<div class="info-type">
<el-radio-group v-model="infotype" size="medium">
<el-radio-button label="任务"></el-radio-button>
<el-radio-button label="阶段计划"></el-radio-button>
<el-radio-button label="计划"></el-radio-button>
</el-radio-group>
</div>
<div class="info-detail">
<xm-task-template-mng v-if="infotype=='任务'" :sel-project-template="selProjectTemplate" ></xm-task-template-mng>
<xm-project-phase-template-mng v-if="infotype=='阶段计划'" :sel-project-template="selProjectTemplate" ></xm-project-phase-template-mng>
<xm-project-phase-template-mng v-if="infotype=='计划'" :sel-project-template="selProjectTemplate" ></xm-project-phase-template-mng>
</div>
</div>
</el-row>

2
src/views/xm/core/xmRecord/XmRecord.vue

@ -100,7 +100,7 @@
},
tableHeight:300,
/**begin 自定义属性请在下面加 请加备注**/
objTypeOptions: [{key:"all",name:"全部"},{key:"task",name:"任务"},{"key":"project" ,name:"项目"},{key:"budget",name:"预算"},{key:"cost",name:"成本"},{key:"phase",name:"阶段计划"},{"key":"group",name:"团队"}]
objTypeOptions: [{key:"all",name:"全部"},{key:"task",name:"任务"},{"key":"project" ,name:"项目"},{key:"budget",name:"预算"},{key:"cost",name:"成本"},{key:"phase",name:"计划"},{"key":"group",name:"团队"}]
/**end 自定义属性请在上面加 请加备注**/
}
},//end data

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

@ -1637,7 +1637,7 @@ export default {
if (this.currentProjectPhase == null) {
this.$message({
showClose: true,
message: "请先选择项目阶段计划",
message: "请先选择项目计划",
type: "error",
});
return false;
@ -1668,7 +1668,7 @@ export default {
if (!this.currentProjectPhase) {
this.$message({
showClose: true,
message: "请先选择项目阶段计划",
message: "请先选择项目计划",
type: "error",
});
return;
@ -1804,7 +1804,7 @@ export default {
},
showMenu: function (parentTask) {
if (this.projectPhase == null) {
this.$message.error("请先选中阶段计划");
this.$message.error("请先选中计划");
return;
}
@ -2182,7 +2182,7 @@ export default {
if (this.projectPhase == null) {
this.$message({
showClose: true,
message: "请选择阶段计划再编辑",
message: "请选择计划再编辑",
type: "error",
});
return;

6
src/views/xm/core/xmTask/XmTaskMngBatch.vue

@ -7,7 +7,7 @@
<el-button type="primary" @click="searchXmTasks" v-loading="load.list" icon="el-icon-search"></el-button>
<el-button @click="noBatchEdit" v-loading="load.edit" icon="el-icon-back">返回</el-button>
<el-button type="danger" @click="batchDel" v-loading="load.edit" icon="el-icon-delete"></el-button>
<span class="hidden-lg-and-down" style="margin-left:10px;font-size:14px;">阶段总预算</span><el-tag class="hidden-lg-and-down" type='success'> {{((projectPhase.phaseBudgetNouserAt+projectPhase.phaseBudgetInnerUserAt+projectPhase.phaseBudgetOutUserAt)/10000).toFixed(2)}}{{(taskBudgetData.surplusPhaseBudgetCostAt/10000).toFixed(2)}}</el-tag>
<span class="hidden-lg-and-down" style="margin-left:10px;font-size:14px;">计划总预算</span><el-tag class="hidden-lg-and-down" type='success'> {{((projectPhase.phaseBudgetNouserAt+projectPhase.phaseBudgetInnerUserAt+projectPhase.phaseBudgetOutUserAt)/10000).toFixed(2)}}{{(taskBudgetData.surplusPhaseBudgetCostAt/10000).toFixed(2)}}</el-tag>
<span class="hidden-lg-and-down" style="margin-left:10px;font-size:14px;">非人力总预算</span><el-tag class="hidden-lg-and-down" :type="taskBudgetData.surplusPhaseBudgetNouserAt>0?'warning':'danger'">{{(projectPhase.phaseBudgetNouserAt/10000).toFixed(2)}}{{(taskBudgetData.surplusPhaseBudgetNouserAt/10000).toFixed(2)}}</el-tag>
<span style="margin-left:10px;font-size:14px;">内部人力总预算</span><el-tag :type="taskBudgetData.surplusPhaseBudgetInnerUserAt>0?'warning':'danger'">{{(projectPhase.phaseBudgetInnerUserAt/10000).toFixed(2)}}{{(taskBudgetData.surplusPhaseBudgetInnerUserAt/10000).toFixed(2)}}</el-tag>
<span style="margin-left:10px;font-size:14px;">外购人力总预算</span><el-tag :type="taskBudgetData.surplusPhaseBudgetOutUserAt>0?'warning':'danger'">{{(projectPhase.phaseBudgetOutUserAt/10000).toFixed(2)}}{{(taskBudgetData.surplusPhaseBudgetOutUserAt/10000).toFixed(2)}}</el-tag>
@ -422,7 +422,7 @@
return;
}
if(this.currentProjectPhase==null){
this.$message({showClose: true, message: "请先选择项目阶段计划", type: 'error' });
this.$message({showClose: true, message: "请先选择项目计划", type: 'error' });
return false;
}
this.taskTemplateVisible=true;
@ -445,7 +445,7 @@
return;
}
if(!this.currentProjectPhase){
this.$message({showClose: true, message: "请先选择项目阶段计划", type: 'error' });
this.$message({showClose: true, message: "请先选择项目计划", type: 'error' });
return;
}
this.addFormVisible = true;

2
src/views/xm/core/xmTaskTemplate/XmTaskTemplateAdd.vue

@ -229,7 +229,7 @@
params.projectName=this.xmProjectPhaseTemplate.projectName
params.projectId=this.xmProjectPhaseTemplate.projectId
}else{
this.$message.error("任务归属的项目阶段不能为空");
this.$message.error("任务归属的项目计划不能为空");
return;
}
}

2
src/views/xm/core/xmTaskTemplate/XmTaskTemplateMng.vue

@ -214,7 +214,7 @@
}
if(!this.projectPhaseTemplate){
this.$message.error("请选择阶段")
this.$message.error("请选择计划")
return;
}
this.addFormVisible = true;

Loading…
Cancel
Save