Browse Source

优化

master
陈裕财 4 years ago
parent
commit
35e5797ef4
  1. 16
      src/api/xm/core/xmProject.js
  2. 661
      src/views/xm/core/xmProject/XmProjectForLinkComplex.vue
  3. 11
      src/views/xm/core/xmProject/XmProjectInfo.vue
  4. 2
      src/views/xm/core/xmProject/XmProjectOverview.vue

16
src/api/xm/core/xmProject.js

@ -1,5 +1,7 @@
import axios from '@/utils/request'
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表
import config from '@/common/config'
let base = config.getCoreBasePath();
@ -48,6 +50,20 @@ export const unDelXmProject = params => { return axios.post(`${base}/xm/core/xmP
export const editXmProjectSomeFields = params => { return axios.post(`${base}/xm/core/xmProject/editSomeFields`, params); };
/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */
//初始化页面上的字典
export const initDicts = (that) => {
//任务类型字典taskState,交易模式字典tranMode,能力要求字典capaLvl,保障要求字典supRequire,会员权益等级memInterestLvl
var itemCodes=["projectType", "priority", "projectStatus"];//在此添加要加载的字典 如['sex','grade','lvl']
if(itemCodes.length>0){
initSimpleDicts('all',itemCodes).then(res=>{
Object.assign(that.dicts,res.data.data)
});
}
};
export const getDefOptions= ()=>{
var options={

661
src/views/xm/core/xmProject/XmProjectForLinkComplex.vue

@ -1,208 +1,495 @@
<template>
<section class="page-container border">
<el-row>
<el-col :span="24">
<el-tabs type="border-card" :value="showPanel" @tab-click="tabClick">
<el-tab-pane disabled>
<div slot="label">
<xm-project-select ref="xmProjectSelect" :auto-select="true" :link-iteration-id="xmIteration?xmIteration.id:null" :link-product-id="xmProduct?xmProduct.id:null" @row-click="onProjectRowClick" @clear="onProjectClearSelect"></xm-project-select>
</div>
</el-tab-pane>
<el-tab-pane disabled>
<div slot="label">
<el-popover
placement="bottom"
width="800"
v-model="projectAddVisible"
trigger="manual">
<xm-project-add :visible="projectAddVisible" op-type="add" :xm-product="xmProduct" @cancel="projectAddVisible=false" @submit="afterProjectAddSubmit"></xm-project-add>
<el-link type="warning" slot="reference" @click="projectAddVisible=true" icon="el-icon-plus"><font style="font-size:14px;">项目</font></el-link>
</el-popover>
</div>
</el-tab-pane>
<el-tab-pane label="项目概览" name="projectOverview" v-if="selProject&&selProject.id">
<xm-project-overview v-if="selProject && showPanel=='projectOverview'" :xm-product="xmProduct" :xm-iteration="xmIteration" :sel-project="selProject"></xm-project-overview>
</el-tab-pane>
<el-tab-pane label="执行统计" name="projectCalc" v-if="selProject&&selProject.id">
<div v-if="showPanel=='projectCalc'">
<el-row>
<el-button type="primary" @click="loadTasksToXmProjectState" v-loading="load.calcProject">计算项目预算数据</el-button>
<br>
<font color="blue" style="font-size:10px;">将从项目任务中汇总进度预算工作量实际工作量预算金额实际金额缺陷数需求数等数据到项目统计表</font>
</el-row>
<el-row>
<el-button type="primary" @click="loadTasksSettleToXmProjectState" v-loading="load.calcSettle">计算项目结算数据</el-button>
<br>
<font color="blue" style="font-size:10px;">将从项目任务汇总结算数据项目统计表</font>
</el-row>
</div>
</el-tab-pane>
<el-tab-pane label="项目详情" name="detail" v-if="selProject&&selProject.id">
<xm-project-detail v-if="showPanel=='detail'" :sel-project="selProject" @submit="afterEditSubmit"></xm-project-detail>
</el-tab-pane>
<el-tab-pane label="配置关联的产品" name="productProjectLink" v-if="selProject&&selProject.id && !xmProduct" >
<xm-product-project-link-mng v-if="showPanel=='productProjectLink'" :sel-project="selProject"></xm-product-project-link-mng>
</el-tab-pane>
<!--
<section>
<el-row>
<el-col :span="6" class="padding-right padding-left">
<el-row class="padding">
<el-col :span="20">
<xm-project-select
ref="xmProjectSelect"
:auto-select="true"
:link-iteration-id="xmIteration ? xmIteration.id : null"
:link-product-id="xmProduct ? xmProduct.id : null"
@row-click="onProjectRowClick"
@clear="onProjectClearSelect"
></xm-project-select>
</el-col>
<el-col :span="4">
<el-popover
placement="bottom"
width="800"
v-model="projectAddVisible"
trigger="manual"
>
<xm-project-add
:visible="projectAddVisible"
op-type="add"
:xm-product="xmProduct"
@cancel="projectAddVisible = false"
@submit="afterProjectAddSubmit"
></xm-project-add>
<el-link
type="warning"
slot="reference"
@click="projectAddVisible = true"
icon="el-icon-plus"
><font style="font-size: 14px">项目</font></el-link
>
</el-popover>
</el-col>
</el-row>
<el-row
ref="pageBody"
class="padding border"
:style="{ maxHeight: maxTableHeight + 'px', overflowY: 'auto' }"
>
<h4 class="padding-bottom">常用功能快捷导航</h4>
<el-steps :active="calcProjectStatusStep" finish-status="success" direction="vertical">
<el-step
v-for="(i, index) in dicts['projectStatus']"
:title="i.name"
:key="index"
>
<el-row slot="description">
<el-row v-if="i.id=='0'"><!--初始-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="editXmProjectSomeFields(selProject,'status','1')">进入售前</el-button>
</span>
<span v-if="selProject.status!=i.id">
</span>
</el-row>
<el-row v-else-if="i.id=='1'"><!--售前-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="showMenusPage">需求管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="editXmProjectSomeFields(selProject,'status','2')">设为立项中</el-button>
</span>
<span v-if="selProject.status!=i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="showMenusPage">需求管理</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='2'"><!--立项中-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='合同管理'">签订合同</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='团队'">创建团队</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='计划'">创建计划</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='预算'">预算清单</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="showProjectGaiSuan()">项目估算</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="showProjectShouYi()">项目收益</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="editXmProjectSomeFields(selProject,'status','3')">设为立项中</el-button>
</span>
<span v-if="selProject.status!=i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='合同管理'">合同管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='团队'">团队管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='计划'">计划管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='预算'">预算管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="showProjectGaiSuan()">项目估算</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="showProjectShouYi()">项目收益</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='3'"><!--实施中-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='迭代'">迭代管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='计划'">任务管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='缺陷'">缺陷管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='每日工时'">每日工时</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='每月工时'">每月工时</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='费用'">费用管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='效能'">效能分析</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="editXmProjectSomeFields(selProject,'status','4')">暂停项目</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="projectChangeRequire()">变更申请</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="editXmProjectSomeFields(selProject,'status','5')">设为结项中</el-button>
</span>
<span v-if="selProject.status!=i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='迭代'">迭代管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='计划'">任务管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='缺陷'">缺陷管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='每日工时'">每日工时</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='每月工时'">每月工时</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='费用'">费用管理</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="infotype='效能'">效能分析</el-button>
<el-button v-if="selProject.status<i.id" class="step-btn" type="warning" size="mini" plain @click="editXmProjectSomeFields(selProject,'status','5')">结项申请</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="showDetail()">变更申请</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='4'"><!--暂停中-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="editXmProjectSomeFields(selProject,'status','3')">重新激活</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='5'"><!--结项中-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="showDetail()">结项申请</el-button>
<el-button class="step-btn" type="warning" size="mini" plain @click="showCurrFlow()">结项审批</el-button>
</span>
<span v-if="selProject.status!=i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="showHisFlow()">结项审批</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='6'"><!--已结项-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="editXmProjectSomeFields(selProject,'status','7')">转入售后</el-button>
</span>
<span v-if="selProject.status!=i.id">
</span>
</el-row>
<el-row v-else-if="i.id=='7'"><!--售后-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="editXmProjectSomeFields(selProject,'status','8')">设为已完成</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='8'"><!--已完成-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" size="mini" plain @click="editXmProjectSomeFields(selProject,'status','9')">关闭项目</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='9'"><!--已关闭-->
</el-row>
</el-row>
</el-step>
</el-steps>
</el-row>
</el-col>
<el-col :span="18">
<el-tabs :value="showPanel" @tab-click="tabClick">
<el-tab-pane
label="项目概览"
name="projectOverview"
v-if="selProject && selProject.id"
>
<xm-project-overview
v-if="selProject && showPanel == 'projectOverview'"
:xm-product="xmProduct"
:xm-iteration="xmIteration"
:sel-project="selProject"
></xm-project-overview>
</el-tab-pane>
<el-tab-pane
label="执行统计"
name="projectCalc"
v-if="selProject && selProject.id"
>
<div v-if="showPanel == 'projectCalc'">
<el-row>
<el-button
type="primary"
@click="loadTasksToXmProjectState"
v-loading="load.calcProject"
>计算项目预算数据</el-button
>
<br />
<font color="blue" style="font-size: 10px"
>将从项目任务中汇总进度预算工作量实际工作量预算金额实际金额缺陷数需求数等数据到项目统计表</font
>
</el-row>
<el-row>
<el-button
type="primary"
@click="loadTasksSettleToXmProjectState"
v-loading="load.calcSettle"
>计算项目结算数据</el-button
>
<br />
<font color="blue" style="font-size: 10px"
>将从项目任务汇总结算数据项目统计表</font
>
</el-row>
</div>
</el-tab-pane>
<el-tab-pane
label="项目详情"
name="detail"
v-if="selProject && selProject.id"
>
<xm-project-detail
v-if="showPanel == 'detail'"
:sel-project="selProject"
@submit="afterEditSubmit"
></xm-project-detail>
</el-tab-pane>
<el-tab-pane
label="配置关联的产品"
name="productProjectLink"
v-if="selProject && selProject.id && !xmProduct"
>
<xm-product-project-link-mng
v-if="showPanel == 'productProjectLink'"
:sel-project="selProject"
></xm-product-project-link-mng>
</el-tab-pane>
<!--
<el-tab-pane label="配置关联的迭代" name="iterationProjectLink" v-if="selProject&&selProject.id" >
<xm-iteration-link-for-project v-if="showPanel=='iterationProjectLink'" :sel-project="selProject"></xm-iteration-link-for-project>
</el-tab-pane>
-->
<el-tab-pane label="需求" lazy name="menus" v-if="selProject&&selProject.id">
<xm-menu-mng v-if="selProject && showPanel=='menus'" :xm-product="xmProduct" :xm-iteration="xmIteration" :sel-project="selProject" :disabled-mng="false"></xm-menu-mng>
</el-tab-pane>
<el-tab-pane label="计划" lazy name="plan" v-if="selProject&&selProject.id">
<xm-plan v-if="selProject && showPanel=='plan'" queryScope="plan" ptype="0" :xm-product="xmProduct" :xm-iteration="xmIteration" :sel-project="selProject"></xm-plan>
</el-tab-pane>
<el-tab-pane label="任务" lazy name="tasks" v-if="selProject&&selProject.id">
<xm-task-mng v-if="selProject && showPanel=='tasks'" queryScope="task" ptype="0" :xm-product="xmProduct" :xm-iteration="xmIteration" :sel-project="selProject"></xm-task-mng>
</el-tab-pane>
<el-tab-pane label="缺陷" lazy name="bugs" v-if="selProject&&selProject.id">
<xm-question-mng v-if="selProject && showPanel=='bugs'" :xm-product="xmProduct" :xm-iteration="xmIteration" :sel-project="selProject"></xm-question-mng>
</el-tab-pane>
</el-tabs>
<el-row>
</el-row>
</el-col>
<el-tab-pane
label="需求"
lazy
name="menus"
v-if="selProject && selProject.id"
>
<xm-menu-mng
v-if="selProject && showPanel == 'menus'"
:xm-product="xmProduct"
:xm-iteration="xmIteration"
:sel-project="selProject"
:disabled-mng="false"
></xm-menu-mng>
</el-tab-pane>
</el-row>
</section>
<el-tab-pane
label="计划"
lazy
name="plan"
v-if="selProject && selProject.id"
>
<xm-plan
v-if="selProject && showPanel == 'plan'"
queryScope="plan"
ptype="0"
:xm-product="xmProduct"
:xm-iteration="xmIteration"
:sel-project="selProject"
></xm-plan>
</el-tab-pane>
<el-tab-pane
label="任务"
lazy
name="tasks"
v-if="selProject && selProject.id"
>
<xm-task-mng
v-if="selProject && showPanel == 'tasks'"
queryScope="task"
ptype="0"
:xm-product="xmProduct"
:xm-iteration="xmIteration"
:sel-project="selProject"
></xm-task-mng>
</el-tab-pane>
<el-tab-pane
label="缺陷"
lazy
name="bugs"
v-if="selProject && selProject.id"
>
<xm-question-mng
v-if="selProject && showPanel == 'bugs'"
:xm-product="xmProduct"
:xm-iteration="xmIteration"
:sel-project="selProject"
></xm-question-mng>
</el-tab-pane>
</el-tabs>
<el-row> </el-row>
</el-col>
</el-row>
</section>
</template>
<script>
import util from '@/common/js/util';//
import config from '@/common/config';//
import { initSimpleDicts } from '@/api/mdp/meta/item';//
import XmIterationMng from '../xmIteration/XmIterationMng.vue'
import XmMenuMng from '../xmMenu/XmMenuMng.vue'
import XmIterationStateShow from '../xmIterationState/XmIterationStateShow.vue'
import { mapGetters } from 'vuex'
import XmProductMng from '../xmProduct/XmProductMng.vue';
import XmTaskMng from '../xmTask/XmTaskMng.vue';
import XmQuestionMng from '../xmQuestion/XmQuestionMng.vue';
import XmProjectSelect from '@/views/xm/core/components/XmProjectSelect.vue';
import XmProjectForLink from './XmProjectForLink.vue';
import util from "@/common/js/util"; //
import config from "@/common/config"; //
import XmIterationMng from "../xmIteration/XmIterationMng.vue";
import XmMenuMng from "../xmMenu/XmMenuMng.vue";
import XmIterationStateShow from "../xmIterationState/XmIterationStateShow.vue";
import { mapGetters } from "vuex";
import XmProductMng from "../xmProduct/XmProductMng.vue";
import XmTaskMng from "../xmTask/XmTaskMng.vue";
import XmQuestionMng from "../xmQuestion/XmQuestionMng.vue";
import XmProjectSelect from "@/views/xm/core/components/XmProjectSelect.vue";
import XmProjectForLink from "./XmProjectForLink.vue";
import XmProductSelect from '@/views/xm/core/components/XmProductSelect.vue'
import XmProductProjectForLink from '../xmProduct/XmProductProjectForLink.vue';
import XmProductSelect from "@/views/xm/core/components/XmProductSelect.vue";
import XmProductProjectForLink from "../xmProduct/XmProductProjectForLink.vue";
import XmProjectOverview from "./XmProjectOverview";
import XmProjectAdd from './XmProjectEdit';//
import XmProjectDetail from './XmProjectDetail';//
import XmProjectAdd from "./XmProjectEdit"; //
import XmProjectDetail from "./XmProjectDetail"; //
import XmProductProjectLinkMng from '../xmProductProjectLink/XmProductProjectLinkMng.vue';
import XmIterationLinkForProject from '../xmIterationLink/XmIterationLinkForProject.vue';
import XmPlan from '../xmTask/XmPlan.vue';
import XmProductProjectLinkMng from "../xmProductProjectLink/XmProductProjectLinkMng.vue";
import XmIterationLinkForProject from "../xmIterationLink/XmIterationLinkForProject.vue";
import XmPlan from "../xmTask/XmPlan.vue";
import {
initDicts,
getDefOptions,
editXmProjectSomeFields,
} from "@/api/xm/core/xmProject";
import {
loadTasksToXmProjectState,
loadTasksSettleToXmProjectState,
} from "@/api/xm/core/xmProjectState";
export default {
computed: {
...mapGetters(["userInfo", "roles"]),
import { loadTasksToXmProjectState , loadTasksSettleToXmProjectState} from '@/api/xm/core/xmProjectState';
export default {
computed: {
...mapGetters([
'userInfo','roles'
]),
},
props:['visible','xmIteration','xmProduct'],
watch:{
visible:function(visible){
if(visible==true){
}
}
},
data() {
return{
load:{
calcProject:false,
},
selProject:null,
showPanel:'projectOverview',//menus,tasks,bugs,iterationStateShow
projectAddVisible:false,
/**end 自定义属性请在上面加 请加备注**/
}
},//end data
methods: {
calcProjectStatusStep() {
if (this.dicts["projectStatus"] && this.selProject) {
var index = this.dicts["projectStatus"].findIndex((i) => {
if (i.id == this.selProject.status) {
return true;
} else {
return false;
}
});
return index + 1;
} else {
return 0;
}
},
},
props: ["visible", "xmIteration", "xmProduct"],
watch: {
visible: function (visible) {
if (visible == true) {
}
},
},
data() {
return {
load: {
calcProject: false,
},
dicts:{
"projectType":[], "priority":[], "projectStatus":[]
},
selProject: null,
showPanel: "projectOverview", //menus,tasks,bugs,iterationStateShow
projectAddVisible: false,
maxTableHeight:300,
/**end 自定义属性请在上面加 请加备注**/
};
}, //end data
methods: {
/**end 自定义函数请在上面加**/
onProjectRowClick(xmProject) {
this.selProject = xmProject;
},
/**end 自定义函数请在上面加**/
onProjectRowClick(xmProject){
onProjectClearSelect() {
this.selProject = null;
},
tabClick(tab) {
this.showPanel = tab.name;
},
afterProjectAddSubmit(project) {
this.projectAddVisible = false;
if (this.$refs.xmProjectSelect) {
this.$refs.xmProjectSelect.xmProjects.push(project);
this.$refs.xmProjectSelect.rowClick(project);
}
},
this.selProject=xmProject
},
onProjectClearSelect(){
this.selProject=null;
},
tabClick(tab){
this.showPanel=tab.name
},
afterProjectAddSubmit(project){
this.projectAddVisible=false;
if(this.$refs.xmProjectSelect){
this.$refs.xmProjectSelect.xmProjects.push(project)
this.$refs.xmProjectSelect.rowClick(project);
}
},
loadTasksToXmProjectState() {
var row = this.selProject;
var params = { projectId: row.id };
loadTasksToXmProjectState(params)
.then((res) => {
this.load.calcProject = false;
var tips = res.data.tips;
if (this.$refs["xmProjectSelect"]) {
this.$refs["xmProjectSelect"].reloadOne();
}
this.$notify({
position: "bottom-left",
showClose: true,
message: tips.msg,
type: tips.isOk ? "success" : "error",
});
})
.catch((err) => (this.load.calcProject = false));
},
loadTasksSettleToXmProjectState() {
var row = this.selProject;
var params = { projectId: row.id };
loadTasksSettleToXmProjectState(params)
.then((res) => {
this.load.calcProject = false;
var tips = res.data.tips;
this.$notify({
position: "bottom-left",
showClose: true,
message: tips.msg,
type: tips.isOk ? "success" : "error",
});
})
.catch((err) => (this.load.calcProject = false));
},
onEditFields(row) {
Object.assign(this.selProject, row);
this.$emit("edit-fields", row);
},
showCurrFlow() {
this.$refs["项目概览"].showPanelName = "currFlow";
},
showHisFlow() {
this.$refs["项目概览"].showPanelName = "hisFlow";
},
showDetail() {
this.$refs["项目概览"].showPanelName = "detail";
},
showProjectGaiSuan() {
this.$refs["项目概览"].showPanelName = "detail";
this.$nextTick(() => {
this.$refs["项目概览"].$refs["detail"].$refs[
"projectEdit"
].currTabPane = "4";
});
},
showProjectShouYi() {
this.$refs["项目概览"].showPanelName = "detail";
this.$nextTick(() => {
this.$refs["项目概览"].$refs["detail"].$refs[
"projectEdit"
].currTabPane = "5";
});
},
showMenusPage() {
this.infotype = "产品";
this.$nextTick(() => {
this.$refs["xmProductComplex"].showPanel = "menus";
});
},
}, //end methods
components: {
//
XmIterationMng,
XmMenuMng,
XmIterationStateShow,
XmProductMng,
XmTaskMng,
XmQuestionMng,
XmProductSelect,
XmProjectSelect,
XmProjectForLink,
XmProductProjectForLink,
XmProjectAdd,
XmProjectDetail,
XmProjectOverview,
XmProductProjectLinkMng,
XmIterationLinkForProject,
XmPlan,
},
mounted() {
this.$nextTick(() => {
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.pageBody.$el);
});
loadTasksToXmProjectState(){
var row=this.selProject;
var params={projectId:row.id}
loadTasksToXmProjectState(params).then((res) => {
this.load.calcProject=false;
var tips=res.data.tips;
if(this.$refs['xmProjectSelect']){
this.$refs['xmProjectSelect'].reloadOne();
}
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error'});
}).catch( err => this.load.calcProject=false );
},
loadTasksSettleToXmProjectState(){
var row=this.selProject;
var params={projectId:row.id}
loadTasksSettleToXmProjectState(params).then((res) => {
this.load.calcProject=false;
var tips=res.data.tips;
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error'});
}).catch( err => this.load.calcProject=false );
},
},//end methods
components: {
//
XmIterationMng,
XmMenuMng,
XmIterationStateShow,
XmProductMng,
XmTaskMng,
XmQuestionMng,
XmProductSelect,
XmProjectSelect,
XmProjectForLink,
XmProductProjectForLink,
XmProjectAdd,
XmProjectDetail,
XmProjectOverview,
XmProductProjectLinkMng,
XmIterationLinkForProject,
XmPlan,
},
mounted() {
this.$nextTick(() => {
});
}
}
initDicts(this)
},
};
</script>
<style scoped>
.more-label-font{
text-align:center;
float:left;
padding-top:5px;
}
.more-label-font {
text-align: center;
float: left;
padding-top: 5px;
}
.step-btn{
margin-left:0px;margin-bottom: 5px;
}
</style>

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

@ -407,9 +407,8 @@ import XmWorkloadSetMonthList from "../xmTaskWorkload/WorkloadSetMonthList.vue";
import XmReport from "@/views/xm/rpt/reportIndex";
import XmPlan from "../xmTask/XmPlan.vue";
import { initSimpleDicts } from "@/api/mdp/meta/item"; //
import { getDefOptions,editXmProjectSomeFields } from "@/api/xm/core/xmProject";
import { initDicts,getDefOptions,editXmProjectSomeFields } from "@/api/xm/core/xmProject";
export default {
props: ["selProject", "visible"],
@ -852,11 +851,7 @@ export default {
this.infotype = infotype;
}
});
initSimpleDicts("all", ["projectType", "priority", "projectStatus"]).then(
(res) => {
this.dicts = res.data.data;
}
);
initDicts(this)
},
};
</script>

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

@ -1,5 +1,5 @@
<template>
<section class="page-container padding">
<section>
<el-row class="page-main " :style="{overflowX: 'hidden',height:maxTableHeight+'px'}" ref="table">
<el-row :gutter="10" style="margin-bottom:10px">
<el-col :span="8" >

Loading…
Cancel
Save