diff --git a/src/api/xm/core/xmPhaseMenu.js b/src/api/xm/core/xmPhaseMenu.js new file mode 100644 index 00000000..e33f0177 --- /dev/null +++ b/src/api/xm/core/xmPhaseMenu.js @@ -0,0 +1,12 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getCoreBasePath(); + + +export const batchAddXmPhaseMenu = params => { return axios.post(`${base}/xm/core/xmPhaseMenu/batchAdd`, params); }; + +export const batchDelXmPhaseMenu = params => { return axios.post(`${base}/xm/core/xmPhaseMenu/batchDel`, params); }; + + diff --git a/src/api/xm/core/xmProductPhase.js b/src/api/xm/core/xmProductPhase.js new file mode 100644 index 00000000..51ef89f9 --- /dev/null +++ b/src/api/xm/core/xmProductPhase.js @@ -0,0 +1,53 @@ +import axios from '@/utils/request' + +import config from '@/common/config' + +let base = config.getCoreBasePath(); + + +/** + * xm_project_phase + *1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, + *2 查询、新增、修改的参数格式 params={id:'阶段主键 主键',phaseName:'阶段名称',remark:'备注',parentPhaseId:'上级阶段编号',branchId:'机构编号',projectId:'当前项目编号',beginDate:'开始时间',endDate:'结束时间',planWorkingHours:'工时',planWorkingStaffNu:'投入人员数',ctime:'创建时间',totalBudgetNouser:'非人力成本总预算',totalBudgetInnerUser:'内部人力成本总预算',totalBudgetOutUser:'外购人力成本总预算',projectBaselineId:'项目级基线',bizProcInstId:'当前流程实例编号',bizFlowState:'当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除'} + **/ + +//普通查询 条件之间and关系 +export const listXmProductPhase = params => { return axios.get(`${base}/xm/core/xmProductPhase/list`, { params: params }); }; + +//模糊查询xm_project_phase 条件之间or关系 +//export const listXmProductPhaseKey = params => { return axios.get(`${base}/xm/core/xmProductPhase/listKey`, { params: params }); }; + +//删除一条xm_project_phase params={id:'阶段主键 主键'} +export const delXmProductPhase = params => { return axios.post(`${base}/xm/core/xmProductPhase/del`,params); }; + +//批量删除xm_project_phase params=[{id:'阶段主键 主键'}] +export const batchDelXmProductPhase = params => { return axios.post(`${base}/xm/core/xmProductPhase/batchDel`, params); }; + +//修改一条xm_project_phase记录 +export const editXmProductPhase = params => { return axios.post(`${base}/xm/core/xmProductPhase/edit`, params); }; + +//新增一条xm_project_phase +export const addXmProductPhase = params => { return axios.post(`${base}/xm/core/xmProductPhase/add`, params); }; + +//批量从模板导入到项目 params=[{id:'阶段主键 主键'}] +export const batchImportFromTemplate = params => { return axios.post(`${base}/xm/core/xmProductPhase/batchImportFromTemplate`, params); }; + + + +//批量从模板导入到项目 params=[{id:'阶段主键 主键'}] +export const batchSaveBudget = params => { return axios.post(`${base}/xm/core/xmProductPhase/batchSaveBudget`, params); }; + +//批量从模板导入到项目 params=[{id:'阶段主键 主键'}] +export const calcSomePhaseActDataFromTasks = params => { return axios.post(`${base}/xm/core/xmProductPhase/calcSomePhaseActDataFromTasks`, params); }; + +export const loaMenusToXmProductPhase = params => { return axios.post(`${base}/xm/core/xmProductPhase/loaMenusToXmProductPhase`, params); }; + +//修改负责人 +export const setPhaseMngUser = params => { return axios.post(`${base}/xm/core/xmProductPhase/setPhaseMngUser`, params); }; + + +export const calcKeyPaths = params => { return axios.post(`${base}/xm/core/xmProductPhase/calcKeyPaths`, params); }; + + +export const selectTotalProductAndPhaseBudgetCost = params => { return axios.post(`${base}/xm/core/xmProductPhase/selectTotalProductAndPhaseBudgetCost`, params); }; + diff --git a/src/views/xm/core/xmIteration/XmIterationInfo.vue b/src/views/xm/core/xmIteration/XmIterationInfo.vue index 30405f28..41a13446 100644 --- a/src/views/xm/core/xmIteration/XmIterationInfo.vue +++ b/src/views/xm/core/xmIteration/XmIterationInfo.vue @@ -26,121 +26,11 @@ 需求 - 任务 - - + 任务 - 缺陷 - - - - - 团队 - - - 规划 - - 计划及里程碑 - - - 测试计划 - - - - 财务 - - 合同管理 - - - 预算 - - - 费用 - - - - 监控 - - 考核 - - - 项目监控 - - - 需求监控 - - - 风险 - - - - 知识 - - 文档 - - - 环境清单 - - - 日志 - - - - 更多 - - 需求监控 - - - 项目监控 - - - - 合同管理 - - - 预算 - - - - - 费用 - - - - - 考核 - - - - - 日志 - - - - - 合同管理 - - - - - 环境清单 - - - - 风险 - - - 论坛 - - - 即聊 - - - 客服 - - - + 缺陷 + @@ -150,19 +40,7 @@ - - - - - - - - - - - - - + diff --git a/src/views/xm/core/xmMenu/XmMenuMng.vue b/src/views/xm/core/xmMenu/XmMenuMng.vue index 8d2dc8af..1bdfbfa1 100644 --- a/src/views/xm/core/xmMenu/XmMenuMng.vue +++ b/src/views/xm/core/xmMenu/XmMenuMng.vue @@ -119,12 +119,29 @@ + + + + 任务数 + + + {{scope.row.finishTaskCnt}}/{{scope.row.taskCnt}} + + {{scope.row.finishRate}}% - - + + + + + 缺陷 + + + {{scope.row.closedBugs}}/{{scope.row.bugCnt}} + + diff --git a/src/views/xm/core/xmProduct/XmProductInfo.vue b/src/views/xm/core/xmProduct/XmProductInfo.vue index 12439bbe..91cf57b7 100644 --- a/src/views/xm/core/xmProduct/XmProductInfo.vue +++ b/src/views/xm/core/xmProduct/XmProductInfo.vue @@ -146,7 +146,7 @@ - + @@ -188,7 +188,7 @@ import xmBudget from '../xmProject/XmProjectBudgetCost'; import xmContract from '../xmProjectContract/XmProjectContractMng'; import xmEnvList from '../xmProjectEnvList/XmProjectEnvListMng'; - import xmProjectPhaseMng from '../xmProjectPhase/XmProjectPhaseMng'; + import xmProjectPhaseForProduct from '../xmProjectPhase/xmProjectPhaseForProduct'; import xmMenuMng from '../xmMenu/XmMenuMng'; import xmMenuWithPlan from '../xmMenu/XmMenuWithPlan'; import xmProjectStateMng from '../xmProjectState/XmProjectStateMng'; @@ -403,7 +403,7 @@ import XmProjectForLink from '../xmProject/XmProjectForLink.vue'; },//end methods components: { xmTaskMng, - xmProjectPhaseMng, + xmProjectPhaseForProduct, xmGroupMng, xmExchange, xmQuestion, diff --git a/src/views/xm/core/xmProduct/XmProductSelect.vue b/src/views/xm/core/xmProduct/XmProductSelect.vue index 785d5803..f178761f 100644 --- a/src/views/xm/core/xmProduct/XmProductSelect.vue +++ b/src/views/xm/core/xmProduct/XmProductSelect.vue @@ -5,8 +5,8 @@ - - + + 产品名称 查询 - 更多条件 + 更多条件 diff --git a/src/views/xm/core/xmProjectPhase/XmProjectPhaseAdd.vue b/src/views/xm/core/xmProjectPhase/XmProjectPhaseAdd.vue index a4445efc..696395de 100644 --- a/src/views/xm/core/xmProjectPhase/XmProjectPhaseAdd.vue +++ b/src/views/xm/core/xmProjectPhase/XmProjectPhaseAdd.vue @@ -8,9 +8,12 @@ 计划集 计划 - + 计划集只负责汇总数据,类似文件夹功能。计划集下可建立子计划集、子计划,但不能关联任务;计划下不能建立子计划集,也不能建立子计划,但可以关联任务 + + 计划集只负责汇总数据,类似文件夹功能。计划集下可建立子计划集、子计划,但不能关联需求;计划下不能建立子计划集,也不能建立子计划,但可以关联需求 + @@ -112,6 +115,7 @@ import util from '@/common/js/util';//全局公共库 import { listOption } from '@/api/mdp/meta/itemOption';//下拉框数据查询 import { addXmProjectPhase } from '@/api/xm/core/xmProjectPhase'; + import { addXmProductPhase } from '@/api/xm/core/xmProductPhase'; import { mapGetters } from 'vuex' export default { @@ -305,7 +309,11 @@ }else{ params.parentPhaseId=this.parentProjectPhase.id } - addXmProjectPhase(params).then((res) => { + var func=addXmProjectPhase; + if(addForm.phaseClass=='1'){ + func=addXmProductPhase + } + func(params).then((res) => { this.load.add=false var tips=res.data.tips; if(tips.isOk){ diff --git a/src/views/xm/core/xmProjectPhase/XmProjectPhaseEdit.vue b/src/views/xm/core/xmProjectPhase/XmProjectPhaseEdit.vue index 7ba198ac..0044ee6a 100644 --- a/src/views/xm/core/xmProjectPhase/XmProjectPhaseEdit.vue +++ b/src/views/xm/core/xmProjectPhase/XmProjectPhaseEdit.vue @@ -126,6 +126,7 @@ import util from '@/common/js/util';//全局公共库 import { listOption } from '@/api/mdp/meta/itemOption';//下拉框数据查询 import { editXmProjectPhase } from '@/api/xm/core/xmProjectPhase'; + import { editXmProductPhase } from '@/api/xm/core/xmProductPhase'; import { mapGetters } from 'vuex' import XmProjectPhaseOverview from './XmProjectPhaseOverview';//新增界面 @@ -319,7 +320,11 @@ params.phaseBudgetStaffNu= this.parseFloat2(params.phaseBudgetOutUserCnt) + this.parseFloat2(params.phaseBudgetInnerUserCnt) } - editXmProjectPhase(params).then((res) => { + var func=editXmProjectPhase + if(this.editForm.phaseClass=="1"){ + func=editXmProductPhase + } + func(params).then((res) => { this.load.edit=false var tips=res.data.tips; if(tips.isOk){ diff --git a/src/views/xm/core/xmProjectPhase/XmProjectPhaseForProduct.vue b/src/views/xm/core/xmProjectPhase/XmProjectPhaseForProduct.vue new file mode 100644 index 00000000..68afb51f --- /dev/null +++ b/src/views/xm/core/xmProjectPhase/XmProjectPhaseForProduct.vue @@ -0,0 +1,1304 @@ + + + + + 甘特图 + 里程碑 + 关键路径 + + + + + + 查询 + 计算关键路径 + + 由需求汇总进度数据 + 批量修改 + 删除 + + + + + 直接新建 + + + 由模板导入计划 + + + + + + + + + + + + + 计算关键路径 + + + 由需求汇总进度数据 + + + + + + + + + + + + + + + + + + + + + + {{scope.row.seqNo}} + + {{scope.row.phaseName}} + {{item.remark}} + + + + + + 去设置 + {{scope.row.mngUsername}} + + + + + {{formatDate(scope.row.beginDate)}} ~ {{formatDate(scope.row.endDate)}} + + + + + {{ (scope.row.actRate!=null?scope.row.actRate:0)+'%'}} + + + + + + + + + + + + + + + + + + + {{options.xmPhaseStatus.find(i=>i.id==scope.row.phaseStatus).name}} + + + + + + 未发审 + 审核中 + 已通过 + 未通过 + 已取消 + + + + + + + + + 直接创建子计划 + + + 从模板批量导入子计划 + + + 子计划 + + + 编辑 + 删除 + + + + + + + 批量关联需求 + 日志 + 从需求中汇总进度 + 变更发审(审核通过后起效) + 删除发审(审核通过后删除) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/xm/core/xmProjectTemplate/XmProjectTemplateList.vue b/src/views/xm/core/xmProjectTemplate/XmProjectTemplateList.vue index f18179a1..2166c3c7 100644 --- a/src/views/xm/core/xmProjectTemplate/XmProjectTemplateList.vue +++ b/src/views/xm/core/xmProjectTemplate/XmProjectTemplateList.vue @@ -94,7 +94,7 @@ id:'',code:'',name:'',xmType:'',startTime:'',endTime:'',urgent:'',priority:'',description:'',createUserid:'',createUsername:'',createTime:'',assess:'',assessRemarks:'',status:'',branchId:'',planTotalCost:'',bizProcInstId:'',bizFlowState:'',planNouserAt:'',planInnerUserAt:'',planOutUserAt:'',locked:'',baseTime:'',baseRemark:'',baselineId:'',planWorkload:'',totalReceivables:'',budgetMarginRate:'',contractAmt:'',planInnerUserPrice:'',planOutUserPrice:'',planOutUserCnt:'',planInnerUserCnt:'',planWorkingHours:'',taxRate:'',planInnerUserWorkload:'',planOutUserWorkload:'',productId:'',productName:'',templateId:'',tcuserid:'',tcusername:'',tremark:'',tctime:'',tcbranchId:'',shareScope:'' }, projectTemplateInfoVisible:false, - maxTableHeight:false, + maxTableHeight:300, /**begin 自定义属性请在下面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/