24 changed files with 3027 additions and 1078 deletions
-
10src/api/xm/core/xmBranchState.js
-
30src/api/xm/core/xmBranchStateHis.js
-
11src/api/xm/core/xmIterationState.js
-
30src/api/xm/core/xmIterationStateHis.js
-
12src/api/xm/core/xmProductState.js
-
30src/api/xm/core/xmProductStateHis.js
-
9src/api/xm/core/xmProjectState.js
-
14src/api/xm/core/xmProjectStateHis.js
-
169src/views/xm/core/xmBranchState/XmBranchStateEdit.vue
-
290src/views/xm/core/xmBranchState/XmBranchStateMng.vue
-
309src/views/xm/core/xmBranchStateHis/XmBranchStateHisEdit.vue
-
305src/views/xm/core/xmBranchStateHis/XmBranchStateHisMng.vue
-
162src/views/xm/core/xmIterationState/XmIterationStateEdit.vue
-
212src/views/xm/core/xmIterationState/XmIterationStateMng.vue
-
213src/views/xm/core/xmIterationStateHis/XmIterationStateHisEdit.vue
-
273src/views/xm/core/xmIterationStateHis/XmIterationStateHisMng.vue
-
151src/views/xm/core/xmProductState/XmProductStateEdit.vue
-
220src/views/xm/core/xmProductState/XmProductStateMng.vue
-
249src/views/xm/core/xmProductStateHis/XmProductStateHisEdit.vue
-
285src/views/xm/core/xmProductStateHis/XmProductStateHisMng.vue
-
185src/views/xm/core/xmProjectState/XmProjectStateEdit.vue
-
428src/views/xm/core/xmProjectState/XmProjectStateMng.vue
-
246src/views/xm/core/xmProjectStateHis/XmProjectStateHisEdit.vue
-
262src/views/xm/core/xmProjectStateHis/XmProjectStateHisMng.vue
@ -0,0 +1,30 @@ |
|||||
|
import axios from '@/utils/request' |
||||
|
|
||||
|
import config from '@/common/config' |
||||
|
|
||||
|
let base = config.getCoreBasePath(); |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 机构内所有项目指标汇总 |
||||
|
*1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, |
||||
|
*2 查询、新增、修改的参数格式 params={bizDate:'统计日期yyyy-mm-dd类型 主键',branchId:'机构编号 主键',totalFileCnt:'文件数据',totalBugCnt:'bug数目',totalTaskCnt:'任务数',totalBudgetNouserAmount:'项目总非人力预算-来自项目表',totalStaffCnt:'总参与人数',calcTime:'统计执行日期',calcStatus:'0-暂时的1稳定的,暂时的可以被覆盖,稳定的不允许覆盖',totalCostNouserAmount:'项目总非人力成本',totalClosedBugCnt:'已关闭bug总数',totalResolvedBugCnt:'已解决bug总数',totalCompleteTaskCnt:'已完成任务总数-来自任务表',totalPhaseCnt:'项目阶段计划数',totalCompletePhaseCnt:'项目阶段计划已完成数',totalNeedPayAmount:'待付款总金额',totalFinishPayAmount:'已付款总金额',totalNeedColAmount:'待收款总金额',totalFinishColAmount:'已收款总金额',totalCostUserAmount:'项目总人力成本',totalBudgetIuserAmount:'项目总内部人力预算-来自项目表',totalPlanWorkload:'项目总预算工作量-来自项目表',totalRiskCnt:'项目风险总数',totalCompleteRiskCnt:'已完成风险总数',branchName:'机构名称',totalBudgetOuserAmount:'项目总外购人力预算-来自项目表',totalCompleteWorkload:'已完成工作量-来自计划中实际完成工作量',totalCostIuserAmount:'项目总内部人力成本金额',totalCostOuserAmount:'项目总外购人力成本金额',totalProgress:'项目进度0~100之间,来自任务表',totalActiveBugCnt:'激活的bug总数',totalConfirmedBugCnt:'已解决bug总数',projectStatus:'项目状态,0-初始,1-立项中,2-执行中,3-已结项,4-暂停',totalActWorkload:'实际总工作量,来自任务表',totalActOutWorkload:'实际外购总工作量,来自任务表',totalActInnerWorkload:'实际内部总工作量,来自任务表',totalTaskBudgetCostAt:'已经分配到任务的总预算',totalTaskOutCnt:'外购任务数,来自任务表',totalNeedPayCnt:'待付款笔数',totalFinishPayCnt:'完成付款总比数',totalFinishPayUserCnt:'已付款总人数',totalNeedPayUserCnt:'待付款总人数',totalPlanIuserWorkload:'内部人力总工作量-应该大于或等于阶段计划内部人力总成本',totalPlanOuserWorkload:'外购人力总工作量-应该大于或等于阶段计划外购人力总成本',testCases:'测试案例总数',execCases:'测试中案例总数',designCases:'设计中案例总数',finishCases:'完成案例总数',iterationCnt:'迭代数',productCnt:'产品数',menuCnt:'故事数',projectCnt:'项目数量',productBudgetWorkload:'产品总工时',productActWorkload:'产品实际完成总工作量',estimateWorkload:'预估完成工作量',execTaskCnt:'执行中任务数=任务表开始日期小于当前日期,进度<100的任务',toStartTaskCnt:'待开始的任务数=任务表中开始日期大于当前日期的任务数',execMenuCnt:'执行中需求=需求表中开始日期小于小于当前日期,进度<100的需求',toStartMenuCnt:'待开始需求数=需求表中开始日期大于当前日期的需求数',minStartTime:'最早开始日期',maxEndTime:'最晚结束时间'} |
||||
|
**/ |
||||
|
|
||||
|
//普通查询 条件之间and关系
|
||||
|
export const listXmBranchStateHis = params => { return axios.get(`${base}/xm/core/xmBranchStateHis/list`, { params: params }); }; |
||||
|
|
||||
|
//模糊查询机构内所有项目指标汇总 条件之间or关系
|
||||
|
//export const listXmBranchStateHisKey = params => { return axios.get(`${base}/xm/core/xmBranchStateHis/listKey`, { params: params }); };
|
||||
|
|
||||
|
//删除一条机构内所有项目指标汇总 params={bizDate:'统计日期yyyy-mm-dd类型 主键',branchId:'机构编号 主键'}
|
||||
|
export const delXmBranchStateHis = params => { return axios.post(`${base}/xm/core/xmBranchStateHis/del`,params); }; |
||||
|
|
||||
|
//批量删除机构内所有项目指标汇总 params=[{bizDate:'统计日期yyyy-mm-dd类型 主键',branchId:'机构编号 主键'}]
|
||||
|
export const batchDelXmBranchStateHis = params => { return axios.post(`${base}/xm/core/xmBranchStateHis/batchDel`, params); }; |
||||
|
|
||||
|
//修改一条机构内所有项目指标汇总记录
|
||||
|
export const editXmBranchStateHis = params => { return axios.post(`${base}/xm/core/xmBranchStateHis/edit`, params); }; |
||||
|
|
||||
|
//新增一条机构内所有项目指标汇总
|
||||
|
export const addXmBranchStateHis = params => { return axios.post(`${base}/xm/core/xmBranchStateHis/add`, params); }; |
||||
@ -0,0 +1,30 @@ |
|||||
|
import axios from '@/utils/request' |
||||
|
|
||||
|
import config from '@/common/config' |
||||
|
|
||||
|
let base = config.getCoreBasePath(); |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 迭代定义 |
||||
|
*1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, |
||||
|
*2 查询、新增、修改的参数格式 params={iterationId:'迭代编号 主键',bizDate:'业务日期yyyy-MM-dd字符串 主键',distBudgetCost:'已分配到任务的预算从任务表汇总而来',distBudgetWorkload:'已分配到任务的预算工作量从任务表汇总而来',actCost:'实际成本从任务表汇总而来',actWorkload:'实际工作量从任务表汇总而来',actStaffNum:'实际投入人员数',finishRate:'进度',testCases:'测试案例总数',execCases:'测试中案例总数',designCases:'设计中案例总数',finishCases:'完成案例总数',projectCnt:'关联项目数',productCnt:'关联产品数',menuCnt:'关联故事数',taskCnt:'关联任务数',finishTaskCnt:'已完成的任务数',calcTime:'计算日期',iterationName:'迭代名称',budgetCost:'预算成本',budgetWorkload:'预算工作量',closedBugCnt:'已关闭bug总数',resolvedBugCnt:'已解决bug总数',activeBugCnt:'激活的bug总数',confirmedBugCnt:'已解决bug总数',bugCnt:'bug总数',estimateWorkload:'预估工时=计划结束时间在计算当日前完成的任务的预算工时总和',minStartTime:'最早开始日期',maxEndTime:'最晚结束时间'} |
||||
|
**/ |
||||
|
|
||||
|
//普通查询 条件之间and关系
|
||||
|
export const listXmIterationStateHis = params => { return axios.get(`${base}/xm/core/xmIterationStateHis/list`, { params: params }); }; |
||||
|
|
||||
|
//模糊查询迭代定义 条件之间or关系
|
||||
|
//export const listXmIterationStateHisKey = params => { return axios.get(`${base}/xm/core/xmIterationStateHis/listKey`, { params: params }); };
|
||||
|
|
||||
|
//删除一条迭代定义 params={iterationId:'迭代编号 主键',bizDate:'业务日期yyyy-MM-dd字符串 主键'}
|
||||
|
export const delXmIterationStateHis = params => { return axios.post(`${base}/xm/core/xmIterationStateHis/del`,params); }; |
||||
|
|
||||
|
//批量删除迭代定义 params=[{iterationId:'迭代编号 主键',bizDate:'业务日期yyyy-MM-dd字符串 主键'}]
|
||||
|
export const batchDelXmIterationStateHis = params => { return axios.post(`${base}/xm/core/xmIterationStateHis/batchDel`, params); }; |
||||
|
|
||||
|
//修改一条迭代定义记录
|
||||
|
export const editXmIterationStateHis = params => { return axios.post(`${base}/xm/core/xmIterationStateHis/edit`, params); }; |
||||
|
|
||||
|
//新增一条迭代定义
|
||||
|
export const addXmIterationStateHis = params => { return axios.post(`${base}/xm/core/xmIterationStateHis/add`, params); }; |
||||
@ -0,0 +1,30 @@ |
|||||
|
import axios from '@/utils/request' |
||||
|
|
||||
|
import config from '@/common/config' |
||||
|
|
||||
|
let base = config.getCoreBasePath(); |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 功能状态表,无需前端维护,所有数据由汇总统计得出 |
||||
|
*1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, |
||||
|
*2 查询、新增、修改的参数格式 params={productId:'产品编号 主键',bizDate:'业务日期yyyy-MM-dd字符串 主键',planStartTime:'开始时间',planEndTime:'结束时间',actStartTime:'实际开始时间',actEndTime:'实际结束时间',planWorkload:'计划工作量,根据关联任务汇总',actWorkload:'实际工作量,根据关联任务汇总',planCostAmount:'计划成本,根据关联任务汇总',actCostAmount:'实际成本金额根据关联任务汇总',finishRate:'总体完成比例0-100之间,根据taskType进行汇总',demandRate:'需求完成率0-100之间,根据taskType进行汇总',designRate:'设计完成率0-100之间,根据taskType进行汇总',devRate:'开发完成率0-100之间,根据taskType进行汇总',uatRate:'uat测试完成率0-100之间,根据taskType进行汇总',sitRate:'sit测试完成率0-100之间,根据taskType进行汇总',ctime:'创建时间',ltime:'更新时间',cuserid:'创建人编号',cusername:'创建人姓名',calcTime:'汇总时间',planWorkhours:'工时数',planWorkerCnt:'总人数',closedBugs:'总关闭bugs',activeBugs:'激活bugs',confirmedBugs:'已确认bugs总数',resolvedBugs:'已解决bugs总数',productName:'产品名称',testCases:'测试案例总数',execCases:'测试中案例总数',designCases:'设计中案例总数',finishCases:'完成案例总数',projectCnt:'关联项目数',iterationCnt:'关联迭代数',taskCnt:'任务总数',finishTaskCnt:'已完成的任务总数',branchId:'机构号码',bugCnt:'bug总数',menuCnt:'故事数',menuFinishCnt:'需求完成数',estimateWorkload:'预估工时=计划结束时间在计算当日前完成的任务的预算工时总和'} |
||||
|
**/ |
||||
|
|
||||
|
//普通查询 条件之间and关系
|
||||
|
export const listXmProductStateHis = params => { return axios.get(`${base}/xm/core/xmProductStateHis/list`, { params: params }); }; |
||||
|
|
||||
|
//模糊查询功能状态表,无需前端维护,所有数据由汇总统计得出 条件之间or关系
|
||||
|
//export const listXmProductStateHisKey = params => { return axios.get(`${base}/xm/core/xmProductStateHis/listKey`, { params: params }); };
|
||||
|
|
||||
|
//删除一条功能状态表,无需前端维护,所有数据由汇总统计得出 params={productId:'产品编号 主键',bizDate:'业务日期yyyy-MM-dd字符串 主键'}
|
||||
|
export const delXmProductStateHis = params => { return axios.post(`${base}/xm/core/xmProductStateHis/del`,params); }; |
||||
|
|
||||
|
//批量删除功能状态表,无需前端维护,所有数据由汇总统计得出 params=[{productId:'产品编号 主键',bizDate:'业务日期yyyy-MM-dd字符串 主键'}]
|
||||
|
export const batchDelXmProductStateHis = params => { return axios.post(`${base}/xm/core/xmProductStateHis/batchDel`, params); }; |
||||
|
|
||||
|
//修改一条功能状态表,无需前端维护,所有数据由汇总统计得出记录
|
||||
|
export const editXmProductStateHis = params => { return axios.post(`${base}/xm/core/xmProductStateHis/edit`, params); }; |
||||
|
|
||||
|
//新增一条功能状态表,无需前端维护,所有数据由汇总统计得出
|
||||
|
export const addXmProductStateHis = params => { return axios.post(`${base}/xm/core/xmProductStateHis/add`, params); }; |
||||
@ -0,0 +1,309 @@ |
|||||
|
<template> |
||||
|
<section class="page-container padding"> |
||||
|
<el-row class="page-header"> |
||||
|
</el-row> |
||||
|
<el-row class="page-main" :style="{overflowX:'auto',height:maxTableHeight+'px'}" ref="table"> |
||||
|
<!--编辑界面 XmBranchStateHis 机构内所有项目指标汇总--> |
||||
|
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef"> |
||||
|
<el-form-item label="统计日期yyyy-mm-dd类型" prop="bizDate"> |
||||
|
<el-input v-model="editForm.bizDate" placeholder="统计日期yyyy-mm-dd类型"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="文件数据" prop="totalFileCnt"> |
||||
|
<el-input-number v-model="editForm.totalFileCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="bug数目" prop="totalBugCnt"> |
||||
|
<el-input-number v-model="editForm.totalBugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="任务数" prop="totalTaskCnt"> |
||||
|
<el-input-number v-model="editForm.totalTaskCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目总非人力预算-来自项目表" prop="totalBudgetNouserAmount"> |
||||
|
<el-input v-model="editForm.totalBudgetNouserAmount" placeholder="项目总非人力预算-来自项目表"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="总参与人数" prop="totalStaffCnt"> |
||||
|
<el-input-number v-model="editForm.totalStaffCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="统计执行日期" prop="calcTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.calcTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="0-暂时的1稳定的,暂时的可以被覆盖,稳定的不允许覆盖" prop="calcStatus"> |
||||
|
<el-input v-model="editForm.calcStatus" placeholder="0-暂时的1稳定的,暂时的可以被覆盖,稳定的不允许覆盖"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目总非人力成本" prop="totalCostNouserAmount"> |
||||
|
<el-input v-model="editForm.totalCostNouserAmount" placeholder="项目总非人力成本"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已关闭bug总数" prop="totalClosedBugCnt"> |
||||
|
<el-input-number v-model="editForm.totalClosedBugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已解决bug总数" prop="totalResolvedBugCnt"> |
||||
|
<el-input-number v-model="editForm.totalResolvedBugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<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-input-number v-model="editForm.totalPhaseCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<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"> |
||||
|
<el-input v-model="editForm.totalNeedPayAmount" placeholder="待付款总金额"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已付款总金额" prop="totalFinishPayAmount"> |
||||
|
<el-input v-model="editForm.totalFinishPayAmount" placeholder="已付款总金额"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="待收款总金额" prop="totalNeedColAmount"> |
||||
|
<el-input v-model="editForm.totalNeedColAmount" placeholder="待收款总金额"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已收款总金额" prop="totalFinishColAmount"> |
||||
|
<el-input v-model="editForm.totalFinishColAmount" placeholder="已收款总金额"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目总人力成本" prop="totalCostUserAmount"> |
||||
|
<el-input v-model="editForm.totalCostUserAmount" placeholder="项目总人力成本"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目总内部人力预算-来自项目表" prop="totalBudgetIuserAmount"> |
||||
|
<el-input v-model="editForm.totalBudgetIuserAmount" placeholder="项目总内部人力预算-来自项目表"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目总预算工作量-来自项目表" prop="totalPlanWorkload"> |
||||
|
<el-input v-model="editForm.totalPlanWorkload" placeholder="项目总预算工作量-来自项目表"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目风险总数" prop="totalRiskCnt"> |
||||
|
<el-input-number v-model="editForm.totalRiskCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已完成风险总数" prop="totalCompleteRiskCnt"> |
||||
|
<el-input-number v-model="editForm.totalCompleteRiskCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="机构编号" prop="branchId"> |
||||
|
<el-input v-model="editForm.branchId" placeholder="机构编号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="机构名称" prop="branchName"> |
||||
|
<el-input v-model="editForm.branchName" placeholder="机构名称"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目总外购人力预算-来自项目表" prop="totalBudgetOuserAmount"> |
||||
|
<el-input v-model="editForm.totalBudgetOuserAmount" placeholder="项目总外购人力预算-来自项目表"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已完成工作量-来自计划中实际完成工作量" prop="totalCompleteWorkload"> |
||||
|
<el-input v-model="editForm.totalCompleteWorkload" placeholder="已完成工作量-来自计划中实际完成工作量"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目总内部人力成本金额" prop="totalCostIuserAmount"> |
||||
|
<el-input v-model="editForm.totalCostIuserAmount" placeholder="项目总内部人力成本金额"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目总外购人力成本金额" prop="totalCostOuserAmount"> |
||||
|
<el-input v-model="editForm.totalCostOuserAmount" placeholder="项目总外购人力成本金额"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目进度0~100之间,来自任务表" prop="totalProgress"> |
||||
|
<el-input v-model="editForm.totalProgress" placeholder="项目进度0~100之间,来自任务表"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="激活的bug总数" prop="totalActiveBugCnt"> |
||||
|
<el-input-number v-model="editForm.totalActiveBugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已解决bug总数" prop="totalConfirmedBugCnt"> |
||||
|
<el-input-number v-model="editForm.totalConfirmedBugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目状态,0-初始,1-立项中,2-执行中,3-已结项,4-暂停" prop="projectStatus"> |
||||
|
<el-input v-model="editForm.projectStatus" placeholder="项目状态,0-初始,1-立项中,2-执行中,3-已结项,4-暂停"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="实际总工作量,来自任务表" prop="totalActWorkload"> |
||||
|
<el-input v-model="editForm.totalActWorkload" placeholder="实际总工作量,来自任务表"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="实际外购总工作量,来自任务表" prop="totalActOutWorkload"> |
||||
|
<el-input v-model="editForm.totalActOutWorkload" placeholder="实际外购总工作量,来自任务表"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="实际内部总工作量,来自任务表" prop="totalActInnerWorkload"> |
||||
|
<el-input v-model="editForm.totalActInnerWorkload" placeholder="实际内部总工作量,来自任务表"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已经分配到任务的总预算" prop="totalTaskBudgetCostAt"> |
||||
|
<el-input v-model="editForm.totalTaskBudgetCostAt" placeholder="已经分配到任务的总预算"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="外购任务数,来自任务表" prop="totalTaskOutCnt"> |
||||
|
<el-input v-model="editForm.totalTaskOutCnt" placeholder="外购任务数,来自任务表"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="待付款笔数" prop="totalNeedPayCnt"> |
||||
|
<el-input v-model="editForm.totalNeedPayCnt" placeholder="待付款笔数"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="完成付款总比数" prop="totalFinishPayCnt"> |
||||
|
<el-input v-model="editForm.totalFinishPayCnt" placeholder="完成付款总比数"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已付款总人数" prop="totalFinishPayUserCnt"> |
||||
|
<el-input v-model="editForm.totalFinishPayUserCnt" placeholder="已付款总人数"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="待付款总人数" prop="totalNeedPayUserCnt"> |
||||
|
<el-input v-model="editForm.totalNeedPayUserCnt" placeholder="待付款总人数"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="内部人力总工作量-应该大于或等于阶段计划内部人力总成本" prop="totalPlanIuserWorkload"> |
||||
|
<el-input v-model="editForm.totalPlanIuserWorkload" placeholder="内部人力总工作量-应该大于或等于阶段计划内部人力总成本"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="外购人力总工作量-应该大于或等于阶段计划外购人力总成本" prop="totalPlanOuserWorkload"> |
||||
|
<el-input v-model="editForm.totalPlanOuserWorkload" 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> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="测试中案例总数" prop="execCases"> |
||||
|
<el-input-number v-model="editForm.execCases" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="设计中案例总数" prop="designCases"> |
||||
|
<el-input-number v-model="editForm.designCases" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="完成案例总数" prop="finishCases"> |
||||
|
<el-input-number v-model="editForm.finishCases" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="迭代数" prop="iterationCnt"> |
||||
|
<el-input-number v-model="editForm.iterationCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="产品数" prop="productCnt"> |
||||
|
<el-input-number v-model="editForm.productCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="故事数" prop="menuCnt"> |
||||
|
<el-input-number v-model="editForm.menuCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目数量" prop="projectCnt"> |
||||
|
<el-input-number v-model="editForm.projectCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="产品总工时" prop="productBudgetWorkload"> |
||||
|
<el-input v-model="editForm.productBudgetWorkload" placeholder="产品总工时"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="产品实际完成总工作量" prop="productActWorkload"> |
||||
|
<el-input v-model="editForm.productActWorkload" placeholder="产品实际完成总工作量"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="预估完成工作量" prop="estimateWorkload"> |
||||
|
<el-input v-model="editForm.estimateWorkload" placeholder="预估完成工作量"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="执行中任务数=任务表开始日期小于当前日期,进度<100的任务" prop="execTaskCnt"> |
||||
|
<el-input-number v-model="editForm.execTaskCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="待开始的任务数=任务表中开始日期大于当前日期的任务数" prop="toStartTaskCnt"> |
||||
|
<el-input-number v-model="editForm.toStartTaskCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="执行中需求=需求表中开始日期小于小于当前日期,进度<100的需求" prop="execMenuCnt"> |
||||
|
<el-input-number v-model="editForm.execMenuCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="待开始需求数=需求表中开始日期大于当前日期的需求数" prop="toStartMenuCnt"> |
||||
|
<el-input-number v-model="editForm.toStartMenuCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="最早开始日期" prop="minStartTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.minStartTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="最晚结束时间" prop="maxEndTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.maxEndTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</el-row> |
||||
|
|
||||
|
<el-row class="page-bottom bottom-fixed"> |
||||
|
<el-button @click.native="handleCancel">取消</el-button> |
||||
|
<el-button v-loading="load.edit" type="primary" @click.native="saveSubmit" :disabled="load.edit==true">提交</el-button> |
||||
|
</el-row> |
||||
|
</section> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import util from '@/common/js/util';//全局公共库 |
||||
|
import config from "@/common/config"; //全局公共库import |
||||
|
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 |
||||
|
import { addXmBranchStateHis,editXmBranchStateHis } from '@/api/xm/core/xmBranchStateHis'; |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
name:'xmBranchStateHisEdit', |
||||
|
components: { |
||||
|
|
||||
|
}, |
||||
|
computed: { |
||||
|
...mapGetters([ 'userInfo' ]), |
||||
|
|
||||
|
}, |
||||
|
props:['xmBranchStateHis','visible','opType'], |
||||
|
|
||||
|
watch: { |
||||
|
'xmBranchStateHis':function( xmBranchStateHis ) { |
||||
|
if(xmBranchStateHis){ |
||||
|
this.editForm = xmBranchStateHis; |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
'visible':function(visible) { |
||||
|
if(visible==true){ |
||||
|
this.initData() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
currOpType:'add',//add/edit |
||||
|
load:{ list: false, edit: false, del: false, add: false },//查询中... |
||||
|
dicts:{},//下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex']} 返回结果 {sex: [{id:'1',name:'男'},{id:'2',name:'女'}]} |
||||
|
editFormRules: { |
||||
|
bizDate: [ |
||||
|
//{ required: true, message: '统计日期yyyy-mm-dd类型不能为空', trigger: 'blur' } |
||||
|
] |
||||
|
}, |
||||
|
editForm: { |
||||
|
bizDate:'',totalFileCnt:'',totalBugCnt:'',totalTaskCnt:'',totalBudgetNouserAmount:'',totalStaffCnt:'',calcTime:'',calcStatus:'',totalCostNouserAmount:'',totalClosedBugCnt:'',totalResolvedBugCnt:'',totalCompleteTaskCnt:'',totalPhaseCnt:'',totalCompletePhaseCnt:'',totalNeedPayAmount:'',totalFinishPayAmount:'',totalNeedColAmount:'',totalFinishColAmount:'',totalCostUserAmount:'',totalBudgetIuserAmount:'',totalPlanWorkload:'',totalRiskCnt:'',totalCompleteRiskCnt:'',branchId:'',branchName:'',totalBudgetOuserAmount:'',totalCompleteWorkload:'',totalCostIuserAmount:'',totalCostOuserAmount:'',totalProgress:'',totalActiveBugCnt:'',totalConfirmedBugCnt:'',projectStatus:'',totalActWorkload:'',totalActOutWorkload:'',totalActInnerWorkload:'',totalTaskBudgetCostAt:'',totalTaskOutCnt:'',totalNeedPayCnt:'',totalFinishPayCnt:'',totalFinishPayUserCnt:'',totalNeedPayUserCnt:'',totalPlanIuserWorkload:'',totalPlanOuserWorkload:'',testCases:'',execCases:'',designCases:'',finishCases:'',iterationCnt:'',productCnt:'',menuCnt:'',projectCnt:'',productBudgetWorkload:'',productActWorkload:'',estimateWorkload:'',execTaskCnt:'',toStartTaskCnt:'',execMenuCnt:'',toStartMenuCnt:'',minStartTime:'',maxEndTime:'' |
||||
|
}, |
||||
|
maxTableHeight:300, |
||||
|
}//end return |
||||
|
},//end data |
||||
|
methods: { |
||||
|
// 取消按钮点击 父组件监听@cancel="editFormVisible=false" 监听 |
||||
|
handleCancel:function(){ |
||||
|
this.$refs['editFormRef'].resetFields(); |
||||
|
this.$emit('cancel'); |
||||
|
}, |
||||
|
//新增、编辑提交XmBranchStateHis 机构内所有项目指标汇总父组件监听@submit="afterEditSubmit" |
||||
|
saveSubmit: function () { |
||||
|
this.$refs.editFormRef.validate((valid) => { |
||||
|
if (valid) { |
||||
|
this.$confirm('确认提交吗?', '提示', {}).then(() => { |
||||
|
this.load.edit=true |
||||
|
let params = Object.assign({}, this.editForm); |
||||
|
var func=addXmBranchStateHis |
||||
|
if(this.currOpType=='edit'){ |
||||
|
func=editXmBranchStateHis |
||||
|
} |
||||
|
func(params).then((res) => { |
||||
|
this.load.edit=false |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.editForm=res.data.data |
||||
|
this.initData() |
||||
|
this.currOpType="edit"; |
||||
|
this.$emit('submit');// @submit="afterAddSubmit" |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
||||
|
}).catch( err =>this.load.edit=false); |
||||
|
}); |
||||
|
}else{ |
||||
|
this.$notify({ showClose:true, message: "表单验证不通过,请修改表单数据再提交", type: 'error' }); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
initData: function(){ |
||||
|
this.currOpType=this.opType |
||||
|
if(this.xmBranchStateHis){ |
||||
|
this.editForm = Object.assign({},this.xmBranchStateHis); |
||||
|
} |
||||
|
|
||||
|
if(this.opType=='edit'){ |
||||
|
|
||||
|
}else{ |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
},//end method |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); |
||||
|
this.initData() |
||||
|
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.table.$el) |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,305 @@ |
|||||
|
<template> |
||||
|
<section class="page-container border padding"> |
||||
|
<el-row> |
||||
|
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input> |
||||
|
<el-button v-loading="load.list" :disabled="load.list==true" @click="searchXmBranchStateHiss" icon="el-icon-search">查询</el-button> |
||||
|
<el-button type="primary" @click="showAdd" icon="el-icon-plus"> </el-button> |
||||
|
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true" icon="el-icon-delete"></el-button> |
||||
|
</el-row> |
||||
|
<el-row class="padding-top"> |
||||
|
<!--列表 XmBranchStateHis 机构内所有项目指标汇总--> |
||||
|
<el-table ref="xmBranchStateHisTable" :data="xmBranchStateHiss" :height="maxTableHeight" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> |
||||
|
<el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column sortable type="index" width="55" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="bizDate" label="统计日期yyyy-mm-dd类型" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalFileCnt" label="文件数据" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalBugCnt" label="bug数目" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalTaskCnt" label="任务数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalBudgetNouserAmount" label="项目总非人力预算-来自项目表" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalStaffCnt" label="总参与人数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="calcTime" label="统计执行日期" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="calcStatus" label="0-暂时的1稳定的,暂时的可以被覆盖,稳定的不允许覆盖" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalCostNouserAmount" label="项目总非人力成本" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalClosedBugCnt" label="已关闭bug总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalResolvedBugCnt" label="已解决bug总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalCompleteTaskCnt" label="已完成任务总数-来自任务表" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalPhaseCnt" label="项目阶段计划数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalCompletePhaseCnt" label="项目阶段计划已完成数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalNeedPayAmount" label="待付款总金额" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalFinishPayAmount" label="已付款总金额" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalNeedColAmount" label="待收款总金额" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalFinishColAmount" label="已收款总金额" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalCostUserAmount" label="项目总人力成本" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalBudgetIuserAmount" label="项目总内部人力预算-来自项目表" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalPlanWorkload" label="项目总预算工作量-来自项目表" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalRiskCnt" label="项目风险总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalCompleteRiskCnt" label="已完成风险总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="branchId" label="机构编号" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="branchName" label="机构名称" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalBudgetOuserAmount" label="项目总外购人力预算-来自项目表" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalCompleteWorkload" label="已完成工作量-来自计划中实际完成工作量" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalCostIuserAmount" label="项目总内部人力成本金额" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalCostOuserAmount" label="项目总外购人力成本金额" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalProgress" label="项目进度0~100之间,来自任务表" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalActiveBugCnt" label="激活的bug总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalConfirmedBugCnt" label="已解决bug总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="projectStatus" label="项目状态,0-初始,1-立项中,2-执行中,3-已结项,4-暂停" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalActWorkload" label="实际总工作量,来自任务表" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalActOutWorkload" label="实际外购总工作量,来自任务表" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalActInnerWorkload" label="实际内部总工作量,来自任务表" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalTaskBudgetCostAt" label="已经分配到任务的总预算" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalTaskOutCnt" label="外购任务数,来自任务表" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalNeedPayCnt" label="待付款笔数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalFinishPayCnt" label="完成付款总比数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalFinishPayUserCnt" label="已付款总人数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalNeedPayUserCnt" label="待付款总人数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalPlanIuserWorkload" label="内部人力总工作量-应该大于或等于阶段计划内部人力总成本" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="totalPlanOuserWorkload" label="外购人力总工作量-应该大于或等于阶段计划外购人力总成本" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="testCases" label="测试案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="execCases" label="测试中案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="designCases" label="设计中案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="finishCases" label="完成案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="iterationCnt" label="迭代数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="productCnt" label="产品数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="menuCnt" label="故事数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="projectCnt" label="项目数量" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="productBudgetWorkload" label="产品总工时" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="productActWorkload" label="产品实际完成总工作量" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="estimateWorkload" label="预估完成工作量" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="execTaskCnt" label="执行中任务数=任务表开始日期小于当前日期,进度<100的任务" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="toStartTaskCnt" label="待开始的任务数=任务表中开始日期大于当前日期的任务数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="execMenuCnt" label="执行中需求=需求表中开始日期小于小于当前日期,进度<100的需求" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="toStartMenuCnt" label="待开始需求数=需求表中开始日期大于当前日期的需求数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="minStartTime" label="最早开始日期" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="maxEndTime" label="最晚结束时间" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column label="操作" width="180" fixed="right"> |
||||
|
<template scope="scope"> |
||||
|
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit"></el-button> |
||||
|
<el-button type="danger" @click="handleDel(scope.row,scope.$index)" icon="el-icon-delete"></el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<!--编辑 XmBranchStateHis 机构内所有项目指标汇总界面--> |
||||
|
<el-drawer title="编辑机构内所有项目指标汇总" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false"> |
||||
|
<xm-branch-state-his-edit op-type="edit" :xm-branch-state-his="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-branch-state-his-edit> |
||||
|
</el-drawer> |
||||
|
|
||||
|
<!--新增 XmBranchStateHis 机构内所有项目指标汇总界面--> |
||||
|
<el-drawer title="新增机构内所有项目指标汇总" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false"> |
||||
|
<xm-branch-state-his-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-branch-state-his-edit> |
||||
|
</el-drawer> |
||||
|
</el-row> |
||||
|
</section> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import util from '@/common/js/util';//全局公共库 |
||||
|
import config from '@/common/config';//全局公共库 |
||||
|
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 |
||||
|
import { listXmBranchStateHis, delXmBranchStateHis, batchDelXmBranchStateHis } from '@/api/xm/core/xmBranchStateHis'; |
||||
|
import XmBranchStateHisEdit from './XmBranchStateHisEdit';//新增修改界面 |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
name:'xmBranchStateHisMng', |
||||
|
components: { |
||||
|
XmBranchStateHisEdit, |
||||
|
}, |
||||
|
props:['visible'], |
||||
|
computed: { |
||||
|
...mapGetters(['userInfo']), |
||||
|
|
||||
|
}, |
||||
|
watch:{ |
||||
|
visible(val){ |
||||
|
if(val==true){ |
||||
|
this.initData(); |
||||
|
this.searchXmBranchStateHiss() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
filters: { |
||||
|
key: '' |
||||
|
}, |
||||
|
xmBranchStateHiss: [],//查询结果 |
||||
|
pageInfo:{//分页数据 |
||||
|
total:0,//服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算。 |
||||
|
pageSize:10,//每页数据 |
||||
|
count:false,//是否需要重新计算总记录数 |
||||
|
pageNum:1,//当前页码、从1开始计算 |
||||
|
orderFields:[],//排序列 如 ['sex','student_id'],必须为数据库字段 |
||||
|
orderDirs:[]//升序 asc,降序desc 如 性别 升序、学生编号降序 ['asc','desc'] |
||||
|
}, |
||||
|
load:{ list: false, edit: false, del: false, add: false },//查询中... |
||||
|
sels: [],//列表选中数据 |
||||
|
dicts:{ |
||||
|
//sex: [{id:'1',name:'男'},{id:'2',name:'女'}] |
||||
|
},//下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex']} 返回结果 {sex: [{id:'1',name:'男'},{id:'2',name:'女'}]} |
||||
|
addFormVisible: false,//新增xmBranchStateHis界面是否显示 |
||||
|
addForm: { |
||||
|
bizDate:'',totalFileCnt:'',totalBugCnt:'',totalTaskCnt:'',totalBudgetNouserAmount:'',totalStaffCnt:'',calcTime:'',calcStatus:'',totalCostNouserAmount:'',totalClosedBugCnt:'',totalResolvedBugCnt:'',totalCompleteTaskCnt:'',totalPhaseCnt:'',totalCompletePhaseCnt:'',totalNeedPayAmount:'',totalFinishPayAmount:'',totalNeedColAmount:'',totalFinishColAmount:'',totalCostUserAmount:'',totalBudgetIuserAmount:'',totalPlanWorkload:'',totalRiskCnt:'',totalCompleteRiskCnt:'',branchId:'',branchName:'',totalBudgetOuserAmount:'',totalCompleteWorkload:'',totalCostIuserAmount:'',totalCostOuserAmount:'',totalProgress:'',totalActiveBugCnt:'',totalConfirmedBugCnt:'',projectStatus:'',totalActWorkload:'',totalActOutWorkload:'',totalActInnerWorkload:'',totalTaskBudgetCostAt:'',totalTaskOutCnt:'',totalNeedPayCnt:'',totalFinishPayCnt:'',totalFinishPayUserCnt:'',totalNeedPayUserCnt:'',totalPlanIuserWorkload:'',totalPlanOuserWorkload:'',testCases:'',execCases:'',designCases:'',finishCases:'',iterationCnt:'',productCnt:'',menuCnt:'',projectCnt:'',productBudgetWorkload:'',productActWorkload:'',estimateWorkload:'',execTaskCnt:'',toStartTaskCnt:'',execMenuCnt:'',toStartMenuCnt:'',minStartTime:'',maxEndTime:'' |
||||
|
}, |
||||
|
|
||||
|
editFormVisible: false,//编辑界面是否显示 |
||||
|
editForm: { |
||||
|
bizDate:'',totalFileCnt:'',totalBugCnt:'',totalTaskCnt:'',totalBudgetNouserAmount:'',totalStaffCnt:'',calcTime:'',calcStatus:'',totalCostNouserAmount:'',totalClosedBugCnt:'',totalResolvedBugCnt:'',totalCompleteTaskCnt:'',totalPhaseCnt:'',totalCompletePhaseCnt:'',totalNeedPayAmount:'',totalFinishPayAmount:'',totalNeedColAmount:'',totalFinishColAmount:'',totalCostUserAmount:'',totalBudgetIuserAmount:'',totalPlanWorkload:'',totalRiskCnt:'',totalCompleteRiskCnt:'',branchId:'',branchName:'',totalBudgetOuserAmount:'',totalCompleteWorkload:'',totalCostIuserAmount:'',totalCostOuserAmount:'',totalProgress:'',totalActiveBugCnt:'',totalConfirmedBugCnt:'',projectStatus:'',totalActWorkload:'',totalActOutWorkload:'',totalActInnerWorkload:'',totalTaskBudgetCostAt:'',totalTaskOutCnt:'',totalNeedPayCnt:'',totalFinishPayCnt:'',totalFinishPayUserCnt:'',totalNeedPayUserCnt:'',totalPlanIuserWorkload:'',totalPlanOuserWorkload:'',testCases:'',execCases:'',designCases:'',finishCases:'',iterationCnt:'',productCnt:'',menuCnt:'',projectCnt:'',productBudgetWorkload:'',productActWorkload:'',estimateWorkload:'',execTaskCnt:'',toStartTaskCnt:'',execMenuCnt:'',toStartMenuCnt:'',minStartTime:'',maxEndTime:'' |
||||
|
}, |
||||
|
maxTableHeight:300, |
||||
|
} |
||||
|
},//end data |
||||
|
methods: { |
||||
|
handleSizeChange(pageSize) { |
||||
|
this.pageInfo.pageSize=pageSize; |
||||
|
this.getXmBranchStateHiss(); |
||||
|
}, |
||||
|
handleCurrentChange(pageNum) { |
||||
|
this.pageInfo.pageNum = pageNum; |
||||
|
this.getXmBranchStateHiss(); |
||||
|
}, |
||||
|
// 表格排序 obj.order=ascending/descending,需转化为 asc/desc ; obj.prop=表格中的排序字段,字段驼峰命名 |
||||
|
sortChange( obj ){ |
||||
|
if(obj.order==null){ |
||||
|
this.pageInfo.orderFields=[]; |
||||
|
this.pageInfo.orderDirs=[]; |
||||
|
}else{ |
||||
|
var dir='asc'; |
||||
|
if(obj.order=='ascending'){ |
||||
|
dir='asc' |
||||
|
}else{ |
||||
|
dir='desc'; |
||||
|
} |
||||
|
|
||||
|
this.pageInfo.orderFields=[util.toLine(obj.prop)]; |
||||
|
this.pageInfo.orderDirs=[dir]; |
||||
|
} |
||||
|
this.getXmBranchStateHiss(); |
||||
|
}, |
||||
|
searchXmBranchStateHiss(){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmBranchStateHiss(); |
||||
|
}, |
||||
|
//获取列表 XmBranchStateHis 机构内所有项目指标汇总 |
||||
|
getXmBranchStateHiss() { |
||||
|
let params = { |
||||
|
pageSize: this.pageInfo.pageSize, |
||||
|
pageNum: this.pageInfo.pageNum, |
||||
|
total: this.pageInfo.total, |
||||
|
count:this.pageInfo.count |
||||
|
}; |
||||
|
if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){ |
||||
|
let orderBys=[]; |
||||
|
for(var i=0;i<this.pageInfo.orderFields.length;i++){ |
||||
|
orderBys.push(this.pageInfo.orderFields[i]+" "+this.pageInfo.orderDirs[i]) |
||||
|
} |
||||
|
params.orderBy= orderBys.join(",") |
||||
|
} |
||||
|
if(this.filters.key){ |
||||
|
params.key=this.filters.key |
||||
|
} |
||||
|
|
||||
|
this.load.list = true; |
||||
|
listXmBranchStateHis(params).then((res) => { |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.total = res.data.total; |
||||
|
this.pageInfo.count=false; |
||||
|
this.xmBranchStateHiss = res.data.data; |
||||
|
}else{ |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: 'error' }); |
||||
|
} |
||||
|
this.load.list = false; |
||||
|
}).catch( err => this.load.list = false ); |
||||
|
}, |
||||
|
|
||||
|
//显示编辑界面 XmBranchStateHis 机构内所有项目指标汇总 |
||||
|
showEdit: function ( row,index ) { |
||||
|
this.editFormVisible = true; |
||||
|
this.editForm = Object.assign({}, row); |
||||
|
}, |
||||
|
//显示新增界面 XmBranchStateHis 机构内所有项目指标汇总 |
||||
|
showAdd: function () { |
||||
|
this.addFormVisible = true; |
||||
|
//this.addForm=Object.assign({}, this.editForm); |
||||
|
}, |
||||
|
afterAddSubmit(){ |
||||
|
this.addFormVisible=false; |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmBranchStateHiss(); |
||||
|
}, |
||||
|
afterEditSubmit(){ |
||||
|
this.editFormVisible=false; |
||||
|
}, |
||||
|
//选择行xmBranchStateHis |
||||
|
selsChange: function (sels) { |
||||
|
this.sels = sels; |
||||
|
}, |
||||
|
//删除xmBranchStateHis |
||||
|
handleDel: function (row,index) { |
||||
|
this.$confirm('确认删除该记录吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.load.del=true; |
||||
|
let params = { bizDate:row.bizDate, branchId:row.branchId }; |
||||
|
delXmBranchStateHis(params).then((res) => { |
||||
|
this.load.del=false; |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmBranchStateHiss(); |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
||||
|
}).catch( err => this.load.del=false ); |
||||
|
}); |
||||
|
}, |
||||
|
//批量删除xmBranchStateHis |
||||
|
batchDel: function () { |
||||
|
if(this.sels.length<=0){ |
||||
|
return; |
||||
|
} |
||||
|
var params=this.sels.map(i=>{ |
||||
|
return { bizDate:i.bizDate, branchId:i.branchId} |
||||
|
}) |
||||
|
this.$confirm('确认删除选中记录吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.load.del=true; |
||||
|
batchDelXmBranchStateHis(params).then((res) => { |
||||
|
this.load.del=false; |
||||
|
var tips=res.data.tips; |
||||
|
if( tips.isOk ){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmBranchStateHiss(); |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error'}); |
||||
|
}).catch( err => this.load.del=false ); |
||||
|
}); |
||||
|
}, |
||||
|
rowClick: function(row, event, column){ |
||||
|
this.editForm=row |
||||
|
this.$emit('row-click',row, event, column);// @row-click="rowClick" |
||||
|
}, |
||||
|
initData: function(){ |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
},//end methods |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); |
||||
|
this.initData() |
||||
|
this.searchXmBranchStateHiss(); |
||||
|
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.xmBranchStateHisTable.$el) |
||||
|
|
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
</style> |
||||
@ -0,0 +1,213 @@ |
|||||
|
<template> |
||||
|
<section class="page-container padding"> |
||||
|
<el-row class="page-header"> |
||||
|
</el-row> |
||||
|
<el-row class="page-main" :style="{overflowX:'auto',height:maxTableHeight+'px'}" ref="table"> |
||||
|
<!--编辑界面 XmIterationStateHis 迭代定义--> |
||||
|
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef"> |
||||
|
<el-form-item label="已分配到任务的预算从任务表汇总而来" prop="distBudgetCost"> |
||||
|
<el-input v-model="editForm.distBudgetCost" placeholder="已分配到任务的预算从任务表汇总而来"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已分配到任务的预算工作量从任务表汇总而来" prop="distBudgetWorkload"> |
||||
|
<el-input v-model="editForm.distBudgetWorkload" placeholder="已分配到任务的预算工作量从任务表汇总而来"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="实际成本从任务表汇总而来" prop="actCost"> |
||||
|
<el-input v-model="editForm.actCost" placeholder="实际成本从任务表汇总而来"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="实际工作量从任务表汇总而来" prop="actWorkload"> |
||||
|
<el-input v-model="editForm.actWorkload" placeholder="实际工作量从任务表汇总而来"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="实际投入人员数" prop="actStaffNum"> |
||||
|
<el-input v-model="editForm.actStaffNum" placeholder="实际投入人员数"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="进度" prop="finishRate"> |
||||
|
<el-input v-model="editForm.finishRate" 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> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="测试中案例总数" prop="execCases"> |
||||
|
<el-input-number v-model="editForm.execCases" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="设计中案例总数" prop="designCases"> |
||||
|
<el-input-number v-model="editForm.designCases" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="完成案例总数" prop="finishCases"> |
||||
|
<el-input-number v-model="editForm.finishCases" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="关联项目数" prop="projectCnt"> |
||||
|
<el-input-number v-model="editForm.projectCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="关联产品数" prop="productCnt"> |
||||
|
<el-input-number v-model="editForm.productCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="关联故事数" prop="menuCnt"> |
||||
|
<el-input-number v-model="editForm.menuCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="关联任务数" prop="taskCnt"> |
||||
|
<el-input-number v-model="editForm.taskCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已完成的任务数" prop="finishTaskCnt"> |
||||
|
<el-input-number v-model="editForm.finishTaskCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="计算日期" prop="calcTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.calcTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="迭代名称" prop="iterationName"> |
||||
|
<el-input v-model="editForm.iterationName" placeholder="迭代名称"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="预算成本" prop="budgetCost"> |
||||
|
<el-input v-model="editForm.budgetCost" placeholder="预算成本"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="预算工作量" prop="budgetWorkload"> |
||||
|
<el-input v-model="editForm.budgetWorkload" placeholder="预算工作量"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="迭代编号" prop="iterationId"> |
||||
|
<el-input v-model="editForm.iterationId" placeholder="迭代编号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="业务日期yyyy-MM-dd字符串" prop="bizDate"> |
||||
|
<el-input v-model="editForm.bizDate" placeholder="业务日期yyyy-MM-dd字符串"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已关闭bug总数" prop="closedBugCnt"> |
||||
|
<el-input-number v-model="editForm.closedBugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已解决bug总数" prop="resolvedBugCnt"> |
||||
|
<el-input-number v-model="editForm.resolvedBugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="激活的bug总数" prop="activeBugCnt"> |
||||
|
<el-input-number v-model="editForm.activeBugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已解决bug总数" prop="confirmedBugCnt"> |
||||
|
<el-input-number v-model="editForm.confirmedBugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="bug总数" prop="bugCnt"> |
||||
|
<el-input-number v-model="editForm.bugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="预估工时=计划结束时间在计算当日前完成的任务的预算工时总和" prop="estimateWorkload"> |
||||
|
<el-input v-model="editForm.estimateWorkload" placeholder="预估工时=计划结束时间在计算当日前完成的任务的预算工时总和"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="最早开始日期" prop="minStartTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.minStartTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="最晚结束时间" prop="maxEndTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.maxEndTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</el-row> |
||||
|
|
||||
|
<el-row class="page-bottom bottom-fixed"> |
||||
|
<el-button @click.native="handleCancel">取消</el-button> |
||||
|
<el-button v-loading="load.edit" type="primary" @click.native="saveSubmit" :disabled="load.edit==true">提交</el-button> |
||||
|
</el-row> |
||||
|
</section> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import util from '@/common/js/util';//全局公共库 |
||||
|
import config from "@/common/config"; //全局公共库import |
||||
|
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 |
||||
|
import { addXmIterationStateHis,editXmIterationStateHis } from '@/api/xm/core/xmIterationStateHis'; |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
name:'xmIterationStateHisEdit', |
||||
|
components: { |
||||
|
|
||||
|
}, |
||||
|
computed: { |
||||
|
...mapGetters([ 'userInfo' ]), |
||||
|
|
||||
|
}, |
||||
|
props:['xmIterationStateHis','visible','opType'], |
||||
|
|
||||
|
watch: { |
||||
|
'xmIterationStateHis':function( xmIterationStateHis ) { |
||||
|
if(xmIterationStateHis){ |
||||
|
this.editForm = xmIterationStateHis; |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
'visible':function(visible) { |
||||
|
if(visible==true){ |
||||
|
this.initData() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
currOpType:'add',//add/edit |
||||
|
load:{ list: false, edit: false, del: false, add: false },//查询中... |
||||
|
dicts:{},//下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex']} 返回结果 {sex: [{id:'1',name:'男'},{id:'2',name:'女'}]} |
||||
|
editFormRules: { |
||||
|
iterationId: [ |
||||
|
//{ required: true, message: '迭代编号不能为空', trigger: 'blur' } |
||||
|
] |
||||
|
}, |
||||
|
editForm: { |
||||
|
distBudgetCost:'',distBudgetWorkload:'',actCost:'',actWorkload:'',actStaffNum:'',finishRate:'',testCases:'',execCases:'',designCases:'',finishCases:'',projectCnt:'',productCnt:'',menuCnt:'',taskCnt:'',finishTaskCnt:'',calcTime:'',iterationName:'',budgetCost:'',budgetWorkload:'',iterationId:'',bizDate:'',closedBugCnt:'',resolvedBugCnt:'',activeBugCnt:'',confirmedBugCnt:'',bugCnt:'',estimateWorkload:'',minStartTime:'',maxEndTime:'' |
||||
|
}, |
||||
|
maxTableHeight:300, |
||||
|
}//end return |
||||
|
},//end data |
||||
|
methods: { |
||||
|
// 取消按钮点击 父组件监听@cancel="editFormVisible=false" 监听 |
||||
|
handleCancel:function(){ |
||||
|
this.$refs['editFormRef'].resetFields(); |
||||
|
this.$emit('cancel'); |
||||
|
}, |
||||
|
//新增、编辑提交XmIterationStateHis 迭代定义父组件监听@submit="afterEditSubmit" |
||||
|
saveSubmit: function () { |
||||
|
this.$refs.editFormRef.validate((valid) => { |
||||
|
if (valid) { |
||||
|
this.$confirm('确认提交吗?', '提示', {}).then(() => { |
||||
|
this.load.edit=true |
||||
|
let params = Object.assign({}, this.editForm); |
||||
|
var func=addXmIterationStateHis |
||||
|
if(this.currOpType=='edit'){ |
||||
|
func=editXmIterationStateHis |
||||
|
} |
||||
|
func(params).then((res) => { |
||||
|
this.load.edit=false |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.editForm=res.data.data |
||||
|
this.initData() |
||||
|
this.currOpType="edit"; |
||||
|
this.$emit('submit');// @submit="afterAddSubmit" |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
||||
|
}).catch( err =>this.load.edit=false); |
||||
|
}); |
||||
|
}else{ |
||||
|
this.$notify({ showClose:true, message: "表单验证不通过,请修改表单数据再提交", type: 'error' }); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
initData: function(){ |
||||
|
this.currOpType=this.opType |
||||
|
if(this.xmIterationStateHis){ |
||||
|
this.editForm = Object.assign({},this.xmIterationStateHis); |
||||
|
} |
||||
|
|
||||
|
if(this.opType=='edit'){ |
||||
|
|
||||
|
}else{ |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
},//end method |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); |
||||
|
this.initData() |
||||
|
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.table.$el) |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,273 @@ |
|||||
|
<template> |
||||
|
<section class="page-container border padding"> |
||||
|
<el-row> |
||||
|
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input> |
||||
|
<el-button v-loading="load.list" :disabled="load.list==true" @click="searchXmIterationStateHiss" icon="el-icon-search">查询</el-button> |
||||
|
<el-button type="primary" @click="showAdd" icon="el-icon-plus"> </el-button> |
||||
|
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true" icon="el-icon-delete"></el-button> |
||||
|
</el-row> |
||||
|
<el-row class="padding-top"> |
||||
|
<!--列表 XmIterationStateHis 迭代定义--> |
||||
|
<el-table ref="xmIterationStateHisTable" :data="xmIterationStateHiss" :height="maxTableHeight" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> |
||||
|
<el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column sortable type="index" width="55" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="distBudgetCost" label="已分配到任务的预算从任务表汇总而来" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="distBudgetWorkload" label="已分配到任务的预算工作量从任务表汇总而来" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="actCost" label="实际成本从任务表汇总而来" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="actWorkload" label="实际工作量从任务表汇总而来" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="actStaffNum" label="实际投入人员数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="finishRate" label="进度" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="testCases" label="测试案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="execCases" label="测试中案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="designCases" label="设计中案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="finishCases" label="完成案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="projectCnt" label="关联项目数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="productCnt" label="关联产品数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="menuCnt" label="关联故事数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="taskCnt" label="关联任务数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="finishTaskCnt" label="已完成的任务数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="calcTime" label="计算日期" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="iterationName" label="迭代名称" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="budgetCost" label="预算成本" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="budgetWorkload" label="预算工作量" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="iterationId" label="迭代编号" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="bizDate" label="业务日期yyyy-MM-dd字符串" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="closedBugCnt" label="已关闭bug总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="resolvedBugCnt" label="已解决bug总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="activeBugCnt" label="激活的bug总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="confirmedBugCnt" label="已解决bug总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="bugCnt" label="bug总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="estimateWorkload" label="预估工时=计划结束时间在计算当日前完成的任务的预算工时总和" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="minStartTime" label="最早开始日期" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="maxEndTime" label="最晚结束时间" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column label="操作" width="180" fixed="right"> |
||||
|
<template scope="scope"> |
||||
|
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit"></el-button> |
||||
|
<el-button type="danger" @click="handleDel(scope.row,scope.$index)" icon="el-icon-delete"></el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<!--编辑 XmIterationStateHis 迭代定义界面--> |
||||
|
<el-drawer title="编辑迭代定义" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false"> |
||||
|
<xm-iteration-state-his-edit op-type="edit" :xm-iteration-state-his="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-iteration-state-his-edit> |
||||
|
</el-drawer> |
||||
|
|
||||
|
<!--新增 XmIterationStateHis 迭代定义界面--> |
||||
|
<el-drawer title="新增迭代定义" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false"> |
||||
|
<xm-iteration-state-his-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-iteration-state-his-edit> |
||||
|
</el-drawer> |
||||
|
</el-row> |
||||
|
</section> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import util from '@/common/js/util';//全局公共库 |
||||
|
import config from '@/common/config';//全局公共库 |
||||
|
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 |
||||
|
import { listXmIterationStateHis, delXmIterationStateHis, batchDelXmIterationStateHis } from '@/api/xm/core/xmIterationStateHis'; |
||||
|
import XmIterationStateHisEdit from './XmIterationStateHisEdit';//新增修改界面 |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
name:'xmIterationStateHisMng', |
||||
|
components: { |
||||
|
XmIterationStateHisEdit, |
||||
|
}, |
||||
|
props:['visible'], |
||||
|
computed: { |
||||
|
...mapGetters(['userInfo']), |
||||
|
|
||||
|
}, |
||||
|
watch:{ |
||||
|
visible(val){ |
||||
|
if(val==true){ |
||||
|
this.initData(); |
||||
|
this.searchXmIterationStateHiss() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
filters: { |
||||
|
key: '' |
||||
|
}, |
||||
|
xmIterationStateHiss: [],//查询结果 |
||||
|
pageInfo:{//分页数据 |
||||
|
total:0,//服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算。 |
||||
|
pageSize:10,//每页数据 |
||||
|
count:false,//是否需要重新计算总记录数 |
||||
|
pageNum:1,//当前页码、从1开始计算 |
||||
|
orderFields:[],//排序列 如 ['sex','student_id'],必须为数据库字段 |
||||
|
orderDirs:[]//升序 asc,降序desc 如 性别 升序、学生编号降序 ['asc','desc'] |
||||
|
}, |
||||
|
load:{ list: false, edit: false, del: false, add: false },//查询中... |
||||
|
sels: [],//列表选中数据 |
||||
|
dicts:{ |
||||
|
//sex: [{id:'1',name:'男'},{id:'2',name:'女'}] |
||||
|
},//下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex']} 返回结果 {sex: [{id:'1',name:'男'},{id:'2',name:'女'}]} |
||||
|
addFormVisible: false,//新增xmIterationStateHis界面是否显示 |
||||
|
addForm: { |
||||
|
distBudgetCost:'',distBudgetWorkload:'',actCost:'',actWorkload:'',actStaffNum:'',finishRate:'',testCases:'',execCases:'',designCases:'',finishCases:'',projectCnt:'',productCnt:'',menuCnt:'',taskCnt:'',finishTaskCnt:'',calcTime:'',iterationName:'',budgetCost:'',budgetWorkload:'',iterationId:'',bizDate:'',closedBugCnt:'',resolvedBugCnt:'',activeBugCnt:'',confirmedBugCnt:'',bugCnt:'',estimateWorkload:'',minStartTime:'',maxEndTime:'' |
||||
|
}, |
||||
|
|
||||
|
editFormVisible: false,//编辑界面是否显示 |
||||
|
editForm: { |
||||
|
distBudgetCost:'',distBudgetWorkload:'',actCost:'',actWorkload:'',actStaffNum:'',finishRate:'',testCases:'',execCases:'',designCases:'',finishCases:'',projectCnt:'',productCnt:'',menuCnt:'',taskCnt:'',finishTaskCnt:'',calcTime:'',iterationName:'',budgetCost:'',budgetWorkload:'',iterationId:'',bizDate:'',closedBugCnt:'',resolvedBugCnt:'',activeBugCnt:'',confirmedBugCnt:'',bugCnt:'',estimateWorkload:'',minStartTime:'',maxEndTime:'' |
||||
|
}, |
||||
|
maxTableHeight:300, |
||||
|
} |
||||
|
},//end data |
||||
|
methods: { |
||||
|
handleSizeChange(pageSize) { |
||||
|
this.pageInfo.pageSize=pageSize; |
||||
|
this.getXmIterationStateHiss(); |
||||
|
}, |
||||
|
handleCurrentChange(pageNum) { |
||||
|
this.pageInfo.pageNum = pageNum; |
||||
|
this.getXmIterationStateHiss(); |
||||
|
}, |
||||
|
// 表格排序 obj.order=ascending/descending,需转化为 asc/desc ; obj.prop=表格中的排序字段,字段驼峰命名 |
||||
|
sortChange( obj ){ |
||||
|
if(obj.order==null){ |
||||
|
this.pageInfo.orderFields=[]; |
||||
|
this.pageInfo.orderDirs=[]; |
||||
|
}else{ |
||||
|
var dir='asc'; |
||||
|
if(obj.order=='ascending'){ |
||||
|
dir='asc' |
||||
|
}else{ |
||||
|
dir='desc'; |
||||
|
} |
||||
|
|
||||
|
this.pageInfo.orderFields=[util.toLine(obj.prop)]; |
||||
|
this.pageInfo.orderDirs=[dir]; |
||||
|
} |
||||
|
this.getXmIterationStateHiss(); |
||||
|
}, |
||||
|
searchXmIterationStateHiss(){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmIterationStateHiss(); |
||||
|
}, |
||||
|
//获取列表 XmIterationStateHis 迭代定义 |
||||
|
getXmIterationStateHiss() { |
||||
|
let params = { |
||||
|
pageSize: this.pageInfo.pageSize, |
||||
|
pageNum: this.pageInfo.pageNum, |
||||
|
total: this.pageInfo.total, |
||||
|
count:this.pageInfo.count |
||||
|
}; |
||||
|
if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){ |
||||
|
let orderBys=[]; |
||||
|
for(var i=0;i<this.pageInfo.orderFields.length;i++){ |
||||
|
orderBys.push(this.pageInfo.orderFields[i]+" "+this.pageInfo.orderDirs[i]) |
||||
|
} |
||||
|
params.orderBy= orderBys.join(",") |
||||
|
} |
||||
|
if(this.filters.key){ |
||||
|
params.key=this.filters.key |
||||
|
} |
||||
|
|
||||
|
this.load.list = true; |
||||
|
listXmIterationStateHis(params).then((res) => { |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.total = res.data.total; |
||||
|
this.pageInfo.count=false; |
||||
|
this.xmIterationStateHiss = res.data.data; |
||||
|
}else{ |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: 'error' }); |
||||
|
} |
||||
|
this.load.list = false; |
||||
|
}).catch( err => this.load.list = false ); |
||||
|
}, |
||||
|
|
||||
|
//显示编辑界面 XmIterationStateHis 迭代定义 |
||||
|
showEdit: function ( row,index ) { |
||||
|
this.editFormVisible = true; |
||||
|
this.editForm = Object.assign({}, row); |
||||
|
}, |
||||
|
//显示新增界面 XmIterationStateHis 迭代定义 |
||||
|
showAdd: function () { |
||||
|
this.addFormVisible = true; |
||||
|
//this.addForm=Object.assign({}, this.editForm); |
||||
|
}, |
||||
|
afterAddSubmit(){ |
||||
|
this.addFormVisible=false; |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmIterationStateHiss(); |
||||
|
}, |
||||
|
afterEditSubmit(){ |
||||
|
this.editFormVisible=false; |
||||
|
}, |
||||
|
//选择行xmIterationStateHis |
||||
|
selsChange: function (sels) { |
||||
|
this.sels = sels; |
||||
|
}, |
||||
|
//删除xmIterationStateHis |
||||
|
handleDel: function (row,index) { |
||||
|
this.$confirm('确认删除该记录吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.load.del=true; |
||||
|
let params = { iterationId:row.iterationId, bizDate:row.bizDate }; |
||||
|
delXmIterationStateHis(params).then((res) => { |
||||
|
this.load.del=false; |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmIterationStateHiss(); |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
||||
|
}).catch( err => this.load.del=false ); |
||||
|
}); |
||||
|
}, |
||||
|
//批量删除xmIterationStateHis |
||||
|
batchDel: function () { |
||||
|
if(this.sels.length<=0){ |
||||
|
return; |
||||
|
} |
||||
|
var params=this.sels.map(i=>{ |
||||
|
return { iterationId:i.iterationId, bizDate:i.bizDate} |
||||
|
}) |
||||
|
this.$confirm('确认删除选中记录吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.load.del=true; |
||||
|
batchDelXmIterationStateHis(params).then((res) => { |
||||
|
this.load.del=false; |
||||
|
var tips=res.data.tips; |
||||
|
if( tips.isOk ){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmIterationStateHiss(); |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error'}); |
||||
|
}).catch( err => this.load.del=false ); |
||||
|
}); |
||||
|
}, |
||||
|
rowClick: function(row, event, column){ |
||||
|
this.editForm=row |
||||
|
this.$emit('row-click',row, event, column);// @row-click="rowClick" |
||||
|
}, |
||||
|
initData: function(){ |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
},//end methods |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); |
||||
|
this.initData() |
||||
|
this.searchXmIterationStateHiss(); |
||||
|
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.xmIterationStateHisTable.$el) |
||||
|
|
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
</style> |
||||
@ -0,0 +1,249 @@ |
|||||
|
<template> |
||||
|
<section class="page-container padding"> |
||||
|
<el-row class="page-header"> |
||||
|
</el-row> |
||||
|
<el-row class="page-main" :style="{overflowX:'auto',height:maxTableHeight+'px'}" ref="table"> |
||||
|
<!--编辑界面 XmProductStateHis 功能状态表,无需前端维护,所有数据由汇总统计得出--> |
||||
|
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef"> |
||||
|
<el-form-item label="开始时间" prop="planStartTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.planStartTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="结束时间" prop="planEndTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.planEndTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="实际开始时间" prop="actStartTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.actStartTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="实际结束时间" prop="actEndTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.actEndTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="计划工作量,根据关联任务汇总" prop="planWorkload"> |
||||
|
<el-input v-model="editForm.planWorkload" placeholder="计划工作量,根据关联任务汇总"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="实际工作量,根据关联任务汇总" prop="actWorkload"> |
||||
|
<el-input v-model="editForm.actWorkload" placeholder="实际工作量,根据关联任务汇总"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="计划成本,根据关联任务汇总" prop="planCostAmount"> |
||||
|
<el-input v-model="editForm.planCostAmount" placeholder="计划成本,根据关联任务汇总"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="实际成本金额根据关联任务汇总" prop="actCostAmount"> |
||||
|
<el-input v-model="editForm.actCostAmount" placeholder="实际成本金额根据关联任务汇总"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="总体完成比例0-100之间,根据taskType进行汇总" prop="finishRate"> |
||||
|
<el-input v-model="editForm.finishRate" placeholder="总体完成比例0-100之间,根据taskType进行汇总"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="需求完成率0-100之间,根据taskType进行汇总" prop="demandRate"> |
||||
|
<el-input v-model="editForm.demandRate" placeholder="需求完成率0-100之间,根据taskType进行汇总"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="设计完成率0-100之间,根据taskType进行汇总" prop="designRate"> |
||||
|
<el-input v-model="editForm.designRate" placeholder="设计完成率0-100之间,根据taskType进行汇总"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="开发完成率0-100之间,根据taskType进行汇总" prop="devRate"> |
||||
|
<el-input v-model="editForm.devRate" placeholder="开发完成率0-100之间,根据taskType进行汇总"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="uat测试完成率0-100之间,根据taskType进行汇总" prop="uatRate"> |
||||
|
<el-input v-model="editForm.uatRate" placeholder="uat测试完成率0-100之间,根据taskType进行汇总"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="sit测试完成率0-100之间,根据taskType进行汇总" prop="sitRate"> |
||||
|
<el-input v-model="editForm.sitRate" placeholder="sit测试完成率0-100之间,根据taskType进行汇总"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="创建时间" prop="ctime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.ctime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="更新时间" prop="ltime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.ltime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="创建人编号" prop="cuserid"> |
||||
|
<el-input v-model="editForm.cuserid" placeholder="创建人编号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="创建人姓名" prop="cusername"> |
||||
|
<el-input v-model="editForm.cusername" placeholder="创建人姓名"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="汇总时间" prop="calcTime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.calcTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="工时数" prop="planWorkhours"> |
||||
|
<el-input v-model="editForm.planWorkhours" placeholder="工时数"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="总人数" prop="planWorkerCnt"> |
||||
|
<el-input v-model="editForm.planWorkerCnt" placeholder="总人数"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="总关闭bugs" prop="closedBugs"> |
||||
|
<el-input v-model="editForm.closedBugs" placeholder="总关闭bugs"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="激活bugs" prop="activeBugs"> |
||||
|
<el-input v-model="editForm.activeBugs" placeholder="激活bugs"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已确认bugs总数" prop="confirmedBugs"> |
||||
|
<el-input v-model="editForm.confirmedBugs" placeholder="已确认bugs总数"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已解决bugs总数" prop="resolvedBugs"> |
||||
|
<el-input v-model="editForm.resolvedBugs" placeholder="已解决bugs总数"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="产品编号" prop="productId"> |
||||
|
<el-input v-model="editForm.productId" placeholder="产品编号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="产品名称" prop="productName"> |
||||
|
<el-input v-model="editForm.productName" 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> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="测试中案例总数" prop="execCases"> |
||||
|
<el-input-number v-model="editForm.execCases" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="设计中案例总数" prop="designCases"> |
||||
|
<el-input-number v-model="editForm.designCases" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="完成案例总数" prop="finishCases"> |
||||
|
<el-input-number v-model="editForm.finishCases" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="关联项目数" prop="projectCnt"> |
||||
|
<el-input-number v-model="editForm.projectCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="关联迭代数" prop="iterationCnt"> |
||||
|
<el-input-number v-model="editForm.iterationCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="任务总数" prop="taskCnt"> |
||||
|
<el-input-number v-model="editForm.taskCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="已完成的任务总数" prop="finishTaskCnt"> |
||||
|
<el-input-number v-model="editForm.finishTaskCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="业务日期yyyy-MM-dd字符串" prop="bizDate"> |
||||
|
<el-input v-model="editForm.bizDate" placeholder="业务日期yyyy-MM-dd字符串"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="机构号码" prop="branchId"> |
||||
|
<el-input v-model="editForm.branchId" placeholder="机构号码"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="bug总数" prop="bugCnt"> |
||||
|
<el-input-number v-model="editForm.bugCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="故事数" prop="menuCnt"> |
||||
|
<el-input-number v-model="editForm.menuCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="需求完成数" prop="menuFinishCnt"> |
||||
|
<el-input-number v-model="editForm.menuFinishCnt" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="预估工时=计划结束时间在计算当日前完成的任务的预算工时总和" prop="estimateWorkload"> |
||||
|
<el-input v-model="editForm.estimateWorkload" placeholder="预估工时=计划结束时间在计算当日前完成的任务的预算工时总和"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</el-row> |
||||
|
|
||||
|
<el-row class="page-bottom bottom-fixed"> |
||||
|
<el-button @click.native="handleCancel">取消</el-button> |
||||
|
<el-button v-loading="load.edit" type="primary" @click.native="saveSubmit" :disabled="load.edit==true">提交</el-button> |
||||
|
</el-row> |
||||
|
</section> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import util from '@/common/js/util';//全局公共库 |
||||
|
import config from "@/common/config"; //全局公共库import |
||||
|
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 |
||||
|
import { addXmProductStateHis,editXmProductStateHis } from '@/api/xm/core/xmProductStateHis'; |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
name:'xmProductStateHisEdit', |
||||
|
components: { |
||||
|
|
||||
|
}, |
||||
|
computed: { |
||||
|
...mapGetters([ 'userInfo' ]), |
||||
|
|
||||
|
}, |
||||
|
props:['xmProductStateHis','visible','opType'], |
||||
|
|
||||
|
watch: { |
||||
|
'xmProductStateHis':function( xmProductStateHis ) { |
||||
|
if(xmProductStateHis){ |
||||
|
this.editForm = xmProductStateHis; |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
'visible':function(visible) { |
||||
|
if(visible==true){ |
||||
|
this.initData() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
currOpType:'add',//add/edit |
||||
|
load:{ list: false, edit: false, del: false, add: false },//查询中... |
||||
|
dicts:{},//下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex']} 返回结果 {sex: [{id:'1',name:'男'},{id:'2',name:'女'}]} |
||||
|
editFormRules: { |
||||
|
productId: [ |
||||
|
//{ required: true, message: '产品编号不能为空', trigger: 'blur' } |
||||
|
] |
||||
|
}, |
||||
|
editForm: { |
||||
|
planStartTime:'',planEndTime:'',actStartTime:'',actEndTime:'',planWorkload:'',actWorkload:'',planCostAmount:'',actCostAmount:'',finishRate:'',demandRate:'',designRate:'',devRate:'',uatRate:'',sitRate:'',ctime:'',ltime:'',cuserid:'',cusername:'',calcTime:'',planWorkhours:'',planWorkerCnt:'',closedBugs:'',activeBugs:'',confirmedBugs:'',resolvedBugs:'',productId:'',productName:'',testCases:'',execCases:'',designCases:'',finishCases:'',projectCnt:'',iterationCnt:'',taskCnt:'',finishTaskCnt:'',bizDate:'',branchId:'',bugCnt:'',menuCnt:'',menuFinishCnt:'',estimateWorkload:'' |
||||
|
}, |
||||
|
maxTableHeight:300, |
||||
|
}//end return |
||||
|
},//end data |
||||
|
methods: { |
||||
|
// 取消按钮点击 父组件监听@cancel="editFormVisible=false" 监听 |
||||
|
handleCancel:function(){ |
||||
|
this.$refs['editFormRef'].resetFields(); |
||||
|
this.$emit('cancel'); |
||||
|
}, |
||||
|
//新增、编辑提交XmProductStateHis 功能状态表,无需前端维护,所有数据由汇总统计得出父组件监听@submit="afterEditSubmit" |
||||
|
saveSubmit: function () { |
||||
|
this.$refs.editFormRef.validate((valid) => { |
||||
|
if (valid) { |
||||
|
this.$confirm('确认提交吗?', '提示', {}).then(() => { |
||||
|
this.load.edit=true |
||||
|
let params = Object.assign({}, this.editForm); |
||||
|
var func=addXmProductStateHis |
||||
|
if(this.currOpType=='edit'){ |
||||
|
func=editXmProductStateHis |
||||
|
} |
||||
|
func(params).then((res) => { |
||||
|
this.load.edit=false |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.editForm=res.data.data |
||||
|
this.initData() |
||||
|
this.currOpType="edit"; |
||||
|
this.$emit('submit');// @submit="afterAddSubmit" |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
||||
|
}).catch( err =>this.load.edit=false); |
||||
|
}); |
||||
|
}else{ |
||||
|
this.$notify({ showClose:true, message: "表单验证不通过,请修改表单数据再提交", type: 'error' }); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
initData: function(){ |
||||
|
this.currOpType=this.opType |
||||
|
if(this.xmProductStateHis){ |
||||
|
this.editForm = Object.assign({},this.xmProductStateHis); |
||||
|
} |
||||
|
|
||||
|
if(this.opType=='edit'){ |
||||
|
|
||||
|
}else{ |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
},//end method |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); |
||||
|
this.initData() |
||||
|
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.table.$el) |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,285 @@ |
|||||
|
<template> |
||||
|
<section class="page-container border padding"> |
||||
|
<el-row> |
||||
|
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input> |
||||
|
<el-button v-loading="load.list" :disabled="load.list==true" @click="searchXmProductStateHiss" icon="el-icon-search">查询</el-button> |
||||
|
<el-button type="primary" @click="showAdd" icon="el-icon-plus"> </el-button> |
||||
|
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true" icon="el-icon-delete"></el-button> |
||||
|
</el-row> |
||||
|
<el-row class="padding-top"> |
||||
|
<!--列表 XmProductStateHis 功能状态表,无需前端维护,所有数据由汇总统计得出--> |
||||
|
<el-table ref="xmProductStateHisTable" :data="xmProductStateHiss" :height="maxTableHeight" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> |
||||
|
<el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column sortable type="index" width="55" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="planStartTime" label="开始时间" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="planEndTime" label="结束时间" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="actStartTime" label="实际开始时间" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="actEndTime" label="实际结束时间" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="planWorkload" label="计划工作量,根据关联任务汇总" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="actWorkload" label="实际工作量,根据关联任务汇总" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="planCostAmount" label="计划成本,根据关联任务汇总" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="actCostAmount" label="实际成本金额根据关联任务汇总" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="finishRate" label="总体完成比例0-100之间,根据taskType进行汇总" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="demandRate" label="需求完成率0-100之间,根据taskType进行汇总" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="designRate" label="设计完成率0-100之间,根据taskType进行汇总" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="devRate" label="开发完成率0-100之间,根据taskType进行汇总" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="uatRate" label="uat测试完成率0-100之间,根据taskType进行汇总" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="sitRate" label="sit测试完成率0-100之间,根据taskType进行汇总" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="ctime" label="创建时间" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="ltime" label="更新时间" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="cuserid" label="创建人编号" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="cusername" label="创建人姓名" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="calcTime" label="汇总时间" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="planWorkhours" label="工时数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="planWorkerCnt" label="总人数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="closedBugs" label="总关闭bugs" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="activeBugs" label="激活bugs" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="confirmedBugs" label="已确认bugs总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="resolvedBugs" label="已解决bugs总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="productId" label="产品编号" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="productName" label="产品名称" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="testCases" label="测试案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="execCases" label="测试中案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="designCases" label="设计中案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="finishCases" label="完成案例总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="projectCnt" label="关联项目数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="iterationCnt" label="关联迭代数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="taskCnt" label="任务总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="finishTaskCnt" label="已完成的任务总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="bizDate" label="业务日期yyyy-MM-dd字符串" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="branchId" label="机构号码" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="bugCnt" label="bug总数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="menuCnt" label="故事数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="menuFinishCnt" label="需求完成数" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="estimateWorkload" label="预估工时=计划结束时间在计算当日前完成的任务的预算工时总和" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column label="操作" width="180" fixed="right"> |
||||
|
<template scope="scope"> |
||||
|
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit"></el-button> |
||||
|
<el-button type="danger" @click="handleDel(scope.row,scope.$index)" icon="el-icon-delete"></el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<!--编辑 XmProductStateHis 功能状态表,无需前端维护,所有数据由汇总统计得出界面--> |
||||
|
<el-drawer title="编辑功能状态表,无需前端维护,所有数据由汇总统计得出" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false"> |
||||
|
<xm-product-state-his-edit op-type="edit" :xm-product-state-his="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-product-state-his-edit> |
||||
|
</el-drawer> |
||||
|
|
||||
|
<!--新增 XmProductStateHis 功能状态表,无需前端维护,所有数据由汇总统计得出界面--> |
||||
|
<el-drawer title="新增功能状态表,无需前端维护,所有数据由汇总统计得出" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false"> |
||||
|
<xm-product-state-his-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-product-state-his-edit> |
||||
|
</el-drawer> |
||||
|
</el-row> |
||||
|
</section> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import util from '@/common/js/util';//全局公共库 |
||||
|
import config from '@/common/config';//全局公共库 |
||||
|
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 |
||||
|
import { listXmProductStateHis, delXmProductStateHis, batchDelXmProductStateHis } from '@/api/xm/core/xmProductStateHis'; |
||||
|
import XmProductStateHisEdit from './XmProductStateHisEdit';//新增修改界面 |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
name:'xmProductStateHisMng', |
||||
|
components: { |
||||
|
XmProductStateHisEdit, |
||||
|
}, |
||||
|
props:['visible'], |
||||
|
computed: { |
||||
|
...mapGetters(['userInfo']), |
||||
|
|
||||
|
}, |
||||
|
watch:{ |
||||
|
visible(val){ |
||||
|
if(val==true){ |
||||
|
this.initData(); |
||||
|
this.searchXmProductStateHiss() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
filters: { |
||||
|
key: '' |
||||
|
}, |
||||
|
xmProductStateHiss: [],//查询结果 |
||||
|
pageInfo:{//分页数据 |
||||
|
total:0,//服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算。 |
||||
|
pageSize:10,//每页数据 |
||||
|
count:false,//是否需要重新计算总记录数 |
||||
|
pageNum:1,//当前页码、从1开始计算 |
||||
|
orderFields:[],//排序列 如 ['sex','student_id'],必须为数据库字段 |
||||
|
orderDirs:[]//升序 asc,降序desc 如 性别 升序、学生编号降序 ['asc','desc'] |
||||
|
}, |
||||
|
load:{ list: false, edit: false, del: false, add: false },//查询中... |
||||
|
sels: [],//列表选中数据 |
||||
|
dicts:{ |
||||
|
//sex: [{id:'1',name:'男'},{id:'2',name:'女'}] |
||||
|
},//下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex']} 返回结果 {sex: [{id:'1',name:'男'},{id:'2',name:'女'}]} |
||||
|
addFormVisible: false,//新增xmProductStateHis界面是否显示 |
||||
|
addForm: { |
||||
|
planStartTime:'',planEndTime:'',actStartTime:'',actEndTime:'',planWorkload:'',actWorkload:'',planCostAmount:'',actCostAmount:'',finishRate:'',demandRate:'',designRate:'',devRate:'',uatRate:'',sitRate:'',ctime:'',ltime:'',cuserid:'',cusername:'',calcTime:'',planWorkhours:'',planWorkerCnt:'',closedBugs:'',activeBugs:'',confirmedBugs:'',resolvedBugs:'',productId:'',productName:'',testCases:'',execCases:'',designCases:'',finishCases:'',projectCnt:'',iterationCnt:'',taskCnt:'',finishTaskCnt:'',bizDate:'',branchId:'',bugCnt:'',menuCnt:'',menuFinishCnt:'',estimateWorkload:'' |
||||
|
}, |
||||
|
|
||||
|
editFormVisible: false,//编辑界面是否显示 |
||||
|
editForm: { |
||||
|
planStartTime:'',planEndTime:'',actStartTime:'',actEndTime:'',planWorkload:'',actWorkload:'',planCostAmount:'',actCostAmount:'',finishRate:'',demandRate:'',designRate:'',devRate:'',uatRate:'',sitRate:'',ctime:'',ltime:'',cuserid:'',cusername:'',calcTime:'',planWorkhours:'',planWorkerCnt:'',closedBugs:'',activeBugs:'',confirmedBugs:'',resolvedBugs:'',productId:'',productName:'',testCases:'',execCases:'',designCases:'',finishCases:'',projectCnt:'',iterationCnt:'',taskCnt:'',finishTaskCnt:'',bizDate:'',branchId:'',bugCnt:'',menuCnt:'',menuFinishCnt:'',estimateWorkload:'' |
||||
|
}, |
||||
|
maxTableHeight:300, |
||||
|
} |
||||
|
},//end data |
||||
|
methods: { |
||||
|
handleSizeChange(pageSize) { |
||||
|
this.pageInfo.pageSize=pageSize; |
||||
|
this.getXmProductStateHiss(); |
||||
|
}, |
||||
|
handleCurrentChange(pageNum) { |
||||
|
this.pageInfo.pageNum = pageNum; |
||||
|
this.getXmProductStateHiss(); |
||||
|
}, |
||||
|
// 表格排序 obj.order=ascending/descending,需转化为 asc/desc ; obj.prop=表格中的排序字段,字段驼峰命名 |
||||
|
sortChange( obj ){ |
||||
|
if(obj.order==null){ |
||||
|
this.pageInfo.orderFields=[]; |
||||
|
this.pageInfo.orderDirs=[]; |
||||
|
}else{ |
||||
|
var dir='asc'; |
||||
|
if(obj.order=='ascending'){ |
||||
|
dir='asc' |
||||
|
}else{ |
||||
|
dir='desc'; |
||||
|
} |
||||
|
|
||||
|
this.pageInfo.orderFields=[util.toLine(obj.prop)]; |
||||
|
this.pageInfo.orderDirs=[dir]; |
||||
|
} |
||||
|
this.getXmProductStateHiss(); |
||||
|
}, |
||||
|
searchXmProductStateHiss(){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmProductStateHiss(); |
||||
|
}, |
||||
|
//获取列表 XmProductStateHis 功能状态表,无需前端维护,所有数据由汇总统计得出 |
||||
|
getXmProductStateHiss() { |
||||
|
let params = { |
||||
|
pageSize: this.pageInfo.pageSize, |
||||
|
pageNum: this.pageInfo.pageNum, |
||||
|
total: this.pageInfo.total, |
||||
|
count:this.pageInfo.count |
||||
|
}; |
||||
|
if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){ |
||||
|
let orderBys=[]; |
||||
|
for(var i=0;i<this.pageInfo.orderFields.length;i++){ |
||||
|
orderBys.push(this.pageInfo.orderFields[i]+" "+this.pageInfo.orderDirs[i]) |
||||
|
} |
||||
|
params.orderBy= orderBys.join(",") |
||||
|
} |
||||
|
if(this.filters.key){ |
||||
|
params.key=this.filters.key |
||||
|
} |
||||
|
|
||||
|
this.load.list = true; |
||||
|
listXmProductStateHis(params).then((res) => { |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.total = res.data.total; |
||||
|
this.pageInfo.count=false; |
||||
|
this.xmProductStateHiss = res.data.data; |
||||
|
}else{ |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: 'error' }); |
||||
|
} |
||||
|
this.load.list = false; |
||||
|
}).catch( err => this.load.list = false ); |
||||
|
}, |
||||
|
|
||||
|
//显示编辑界面 XmProductStateHis 功能状态表,无需前端维护,所有数据由汇总统计得出 |
||||
|
showEdit: function ( row,index ) { |
||||
|
this.editFormVisible = true; |
||||
|
this.editForm = Object.assign({}, row); |
||||
|
}, |
||||
|
//显示新增界面 XmProductStateHis 功能状态表,无需前端维护,所有数据由汇总统计得出 |
||||
|
showAdd: function () { |
||||
|
this.addFormVisible = true; |
||||
|
//this.addForm=Object.assign({}, this.editForm); |
||||
|
}, |
||||
|
afterAddSubmit(){ |
||||
|
this.addFormVisible=false; |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmProductStateHiss(); |
||||
|
}, |
||||
|
afterEditSubmit(){ |
||||
|
this.editFormVisible=false; |
||||
|
}, |
||||
|
//选择行xmProductStateHis |
||||
|
selsChange: function (sels) { |
||||
|
this.sels = sels; |
||||
|
}, |
||||
|
//删除xmProductStateHis |
||||
|
handleDel: function (row,index) { |
||||
|
this.$confirm('确认删除该记录吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.load.del=true; |
||||
|
let params = { productId:row.productId, bizDate:row.bizDate }; |
||||
|
delXmProductStateHis(params).then((res) => { |
||||
|
this.load.del=false; |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmProductStateHiss(); |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
||||
|
}).catch( err => this.load.del=false ); |
||||
|
}); |
||||
|
}, |
||||
|
//批量删除xmProductStateHis |
||||
|
batchDel: function () { |
||||
|
if(this.sels.length<=0){ |
||||
|
return; |
||||
|
} |
||||
|
var params=this.sels.map(i=>{ |
||||
|
return { productId:i.productId, bizDate:i.bizDate} |
||||
|
}) |
||||
|
this.$confirm('确认删除选中记录吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.load.del=true; |
||||
|
batchDelXmProductStateHis(params).then((res) => { |
||||
|
this.load.del=false; |
||||
|
var tips=res.data.tips; |
||||
|
if( tips.isOk ){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmProductStateHiss(); |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error'}); |
||||
|
}).catch( err => this.load.del=false ); |
||||
|
}); |
||||
|
}, |
||||
|
rowClick: function(row, event, column){ |
||||
|
this.editForm=row |
||||
|
this.$emit('row-click',row, event, column);// @row-click="rowClick" |
||||
|
}, |
||||
|
initData: function(){ |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
},//end methods |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); |
||||
|
this.initData() |
||||
|
this.searchXmProductStateHiss(); |
||||
|
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.xmProductStateHisTable.$el) |
||||
|
|
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue