Browse Source

优化

master
陈裕财 4 years ago
parent
commit
d370ebf7b1
  1. 72
      src/api/xm/core/xmProject.js
  2. 12
      src/views/xm/core/xmProject/XmProjectEdit.vue
  3. 58
      src/views/xm/core/xmProject/XmProjectMng.vue
  4. 8
      src/views/xm/core/xmProject/XmProjectOverview.vue

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

@ -46,3 +46,75 @@ export const createProjectCode = params => { return axios.post(`${base}/xm/core/
export const unDelXmProject = params => { return axios.post(`${base}/xm/core/xmProject/unDel`, params); };
export const getDefOptions= ()=>{
var options={
"projectStatus" : [ {
"optionValue" : "0",
"optionName" : "初始"
}, {
"optionValue" : "1",
"optionName" : "售前"
}, {
"optionValue" : "2",
"optionName" : "立项中"
}, {
"optionValue" : "3",
"optionName" : "实施中"
}, {
"optionValue" : "4",
"optionName" : "暂停中"
}, {
"optionValue" : "5",
"optionName" : "结项中"
}, {
"optionValue" : "6",
"optionName" : "已结项"
}, {
"optionValue" : "7",
"optionName" : "售后"
}, {
"optionValue" : "8",
"optionName" : "已完成"
}, {
"optionValue" : "9",
"optionName" : "已关闭"
} ],
"projectType" : [ {
"optionValue" : "0",
"optionName" : "it-新建-瀑布"
}, {
"optionValue" : "2",
"optionName" : "it-新建-敏捷"
}, {
"optionValue" : "1",
"optionName" : "it-存量-瀑布"
} ],
"priority" : [ {
"optionValue" : "zyx",
"optionName" : "最优先"
}, {
"optionValue" : "yb",
"optionName" : "一般优先"
}, {
"optionValue" : "ksh",
"optionName" : "可稍缓"
} ],
"urgencyLevel" : [ {
"optionValue" : "1",
"optionName" : "非常紧急"
}, {
"optionValue" : "3",
"optionName" : "一般紧急"
}, {
"optionValue" : "2",
"optionName" : "紧急"
}, {
"optionValue" : "4",
"optionName" : "低"
} ]
}
return options;
}

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

@ -168,7 +168,7 @@
import config from "@/common/config"; //
import { listOption } from '@/api/mdp/meta/itemOption';//
import { editXmProject } from '@/api/xm/core/xmProject';
import { editXmProject,getDefOptions } from '@/api/xm/core/xmProject';
import { uploadBase64 } from '@/api/mdp/arc/image';
import { mapGetters } from 'vuex';
@ -275,8 +275,7 @@
totalReceivables:function(){
return this.editForm.totalReceivables
},
calcProjectStatusStep(){
debugger;
calcProjectStatusStep(){
if(this.options['projectStatus'] && this.editForm){
var index=this.options['projectStatus'].findIndex(i=>{
if(i.optionValue==this.editForm.status){
@ -367,12 +366,7 @@
filters: {
ids: [],
},
options:{
projectType:[],
urgencyLevel:[],
priority:[],
projectStatus:[],
},// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
options: getDefOptions(),// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
load:{ list: false, add: false, del: false, edit: false },//...
editFormRules: {
name: [{

58
src/views/xm/core/xmProject/XmProjectMng.vue

@ -104,29 +104,38 @@
<el-button style="float:right;" type="text" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(p)" v-loading="load.add">复制</el-button>
<el-button style="float:right;" type="text" title="删除项目" @click.stop="handleDel(p)" v-loading="load.add">删除</el-button>
</div>
<div class="project-info">
<div class="info-item">
<span class="item-total">{{p.totalBugCnt==null?0:p.totalBugCnt}}</span>
<span class="item-type">缺陷</span>
</div>
<div class="info-item">
<span class="item-total">{{p.totalFileCnt==null?0:p.totalFileCnt}}</span>
<span class="item-type">文档</span>
<div class="project-info">
<div class="info-task" title="已完成 / 预算工作量 ,单位人天 ">
<span>
<span class="item-total finish-task">{{p.totalActWorkload==null?0:parseInt(p.totalActWorkload/8)}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.totalPlanWorkload==null?0:parseInt(p.totalPlanWorkload/8)}}</span>
</span>
<span class="item-type">工作量</span>
</div>
<div class="info-task">
<div class="info-task" title="已完成 / 总任务数 ">
<span>
<span class="item-total finish-task">{{p.totalCompleteTaskCnt==null?0:p.totalCompleteTaskCnt}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.totalTaskCnt==null?0:p.totalTaskCnt}}</span>
</span>
<span class="item-type">任务完成</span>
<span class="item-type">任务</span>
</div>
<div class="info-task" title="已关闭 / 总缺陷数 ">
<span>
<span class="item-total finish-task">{{p.totalClosedBugCnt==null?0:p.totalClosedBugCnt}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.totalBugCnt==null?0:p.totalBugCnt}}</span>
</span>
<span class="item-type">缺陷</span>
</div>
</div>
<div class="project-rate">
<el-progress :percentage="(p.totalProgress==null?0:p.totalProgress)"></el-progress>
</div>
<div class="project-footer">
<div class="project-type">{{p.xmType}}</div>
<div class="project-type">{{formatProjectStatus(p.status)}}</div>
<div class="project-period">{{p.startTime.substr(0,10)}} ~{{p.endTime.substr(0,10)}}</div>
</div>
</el-card>
@ -270,8 +279,8 @@
import util from '@/common/js/util';//
//import Sticky from '@/components/Sticky' // header
import config from "@/common/config"; //
//import { listOption } from '@/api/mdp/meta/itemOption';//
import { listXmProject, editStatus, delXmProject, batchDelXmProject,copyTo,createProjectCode } from '@/api/xm/core/xmProject';
import { listOption } from '@/api/mdp/meta/itemOption';//
import { listXmProject, editStatus, delXmProject, batchDelXmProject,copyTo,createProjectCode ,getDefOptions} from '@/api/xm/core/xmProject';
import { addXmMyFocus , delXmMyFocus } from '@/api/xm/core/xmMyFocus';
import XmProjectAdd from './XmProjectAdd';//
import XmProjectEdit from './XmProjectEdit';//
@ -334,7 +343,7 @@
},
load:{ list: false, edit: false, del: false, add: false },//...
sels: [],//
options:{},// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
options: getDefOptions(),// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
addFormVisible: false,//xmProject
//xmProject
@ -765,6 +774,18 @@
}
this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
})
},
formatProjectStatus(status){
if(this.options['projectStatus'] && this.options['projectStatus'].length>0 ){
var sts=this.options['projectStatus'].find(i=>i.optionValue==status)
if(sts){
return sts.optionName
}else{
return status;
}
}else{
return status;
}
}
/**end 自定义函数请在上面加**/
@ -784,6 +805,15 @@
this.filters.productName=this.$route.params.productName;
}
this.$nextTick(() => {
listOption([{categoryId:'all',itemCode:'projectType'},{categoryId:'all',itemCode:'urgencyLevel'},{categoryId:'all',itemCode:'priority'},{categoryId:'all',itemCode:'projectStatus'}] ).then(res=>{
if(res.data.tips.isOk){
this.options['projectType']=res.data.data.projectType
this.options['urgencyLevel']=res.data.data.urgencyLevel
this.options['priority']=res.data.data.priority
this.options['projectStatus']=res.data.data.projectStatus
}
});
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.table1.$el);
this.showInfo = false;
this.getXmProjects();

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

@ -267,6 +267,7 @@
import util from "@/common/js/util"; //
import { mapGetters } from "vuex";
import { listOption } from '@/api/mdp/meta/itemOption';//
import { getDefOptions} from '@/api/xm/core/xmProject';
export default {
computed: {
@ -365,12 +366,7 @@ export default {
return {
isActive: true,
maxTableHeight:300,
options:{
projectType:[],
urgencyLevel:[],
priority:[],
projectStatus:[],
},// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
options: getDefOptions(),// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
};
},

Loading…
Cancel
Save