Browse Source

优化

master
陈裕财 4 years ago
parent
commit
b6d0fcfb9c
  1. 9
      src/views/xm/core/xmGroup/XmGroupEdit.vue
  2. 31
      src/views/xm/core/xmMenu/XmMenuMng.vue
  3. 8
      src/views/xm/core/xmMenu/XmMenuMngBatch.vue
  4. 31
      src/views/xm/core/xmProduct/XmProductInfo.vue
  5. 92
      src/views/xm/core/xmTask/XmTaskMng.vue

9
src/views/xm/core/xmGroup/XmGroupEdit.vue

@ -141,7 +141,14 @@
if(this.opType=='edit'){
}else{
if(!this.editForm.leaderUserid){
this.editForm.leaderUserid=this.userInfo.userid
this.editForm.leaderUsername=this.userInfo.username
}
if(!this.editForm.assUserid){
this.editForm.assUserid=this.userInfo.userid
this.editForm.assUsername=this.userInfo.username
}
}
},
showUserSelect(userType){

31
src/views/xm/core/xmMenu/XmMenuMng.vue

@ -132,7 +132,15 @@
<template slot-scope="scope">
{{dicts.menuStatus.some(i=>i.id==scope.row.status)?dicts.menuStatus.find(i=>scope.row.status==i.id).name:''}}
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="dtype" label="类型" width="100" :formatter="formaterByDicts" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="source" label="来源" width="100" :formatter="formaterByDicts" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="dlvl" label="层次" width="100" :formatter="formaterByDicts" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="priority" label="优先级" width="100" :formatter="formaterByDicts" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="iterationName" label="迭代" min-width="80" show-overflow-tooltip>
</el-table-column>
@ -952,7 +960,26 @@
}
this.$notify({showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})
})
}
},
formaterByDicts(row,column,cellValue,index){
var property=column.property
var dict=null;
if(property=='source'){
dict=this.dicts['demandSource']
}else if(property=='dlvl'){
dict=this.dicts['demandLvl']
}else if(property=='dtype'){
dict=this.dicts['demandType']
}else if(property=='priority'){
dict=this.dicts['priority']
}
if(!dict){
return cellValue;
}else{
var item=dict.find(i=>i.id==cellValue)
return item?item.name:cellValue;
}
}
},//end methods
components: {
'xm-menu-add':XmMenuAdd,

8
src/views/xm/core/xmMenu/XmMenuMngBatch.vue

@ -32,16 +32,16 @@
<el-table-column label="需求属性" width="500" >
<template slot-scope="scope">
<el-select v-model="scope.row.dtype" clearable placeholder="需求类型">
<el-select v-model="scope.row.dtype" title="需求类型" clearable placeholder="需求类型">
<el-option v-for="i in dicts.demandType" :label="i.name" :key="i.id" :value="i.id"></el-option>
</el-select>
<el-select v-model="scope.row.source" placeholder="需求来源" clearable>
<el-select v-model="scope.row.source" title="需求来源" placeholder="需求来源" clearable>
<el-option v-for="i in dicts.demandSource" :label="i.name" :key="i.id" :value="i.id"></el-option>
</el-select>
<el-select v-model="scope.row.dlvl" placeholder="需求层次" clearable class="hidden-md-and-down">
<el-select v-model="scope.row.dlvl" title="需求层次" placeholder="需求层次" clearable class="hidden-md-and-down">
<el-option v-for="i in dicts.demandLvl" :label="i.name" :key="i.id" :value="i.id"></el-option>
</el-select>
<el-select v-model="scope.row.priority" placeholder="优先级" clearable>
<el-select v-model="scope.row.priority" title="优先级" placeholder="优先级" clearable>
<el-option v-for="i in dicts.priority" :label="i.name" :key="i.id" :value="i.id"></el-option>
</el-select>
</template>

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

@ -25,18 +25,30 @@
<el-menu-item label="需求" index="需求">
<span slot="title"><i class="el-icon-document" ></i>需求</span>
</el-menu-item>
<el-menu-item index="任务">
<span slot="title"><i class="el-icon-s-operation"></i>任务</span>
</el-menu-item>
<el-submenu index="任务">
<template slot="title">任务</template>
<el-menu-item index="产品任务">
<span slot="title"><i class="el-icon-view"></i>产品任务</span>
</el-menu-item>
<el-menu-item index="项目任务">
<span slot="title"><i class="el-icon-video-camera"></i>项目任务</span>
</el-menu-item>
</el-submenu >
<el-menu-item index="缺陷">
<span slot="title"><i class="el-icon-question" ></i>缺陷</span>
</el-menu-item>
<el-menu-item index="团队">
<span slot="title"><i class="el-icon-user-solid" ></i>团队</span>
</el-menu-item>
<el-menu-item index="计划">
<span slot="title"><i class="el-icon-odometer"></i>计划</span>
</el-menu-item>
<el-submenu index="计划">
<template slot="title">计划</template>
<el-menu-item index="产品计划">
<span slot="title"><i class="el-icon-view"></i>产品计划</span>
</el-menu-item>
<el-menu-item index="项目计划">
<span slot="title"><i class="el-icon-video-camera"></i>项目计划</span>
</el-menu-item>
</el-submenu >
<el-submenu index="财务" class="hidden-sm-and-down">
<template slot="title">财务</template>
<el-menu-item index="合同管理">
@ -136,11 +148,14 @@
<xm-iteration-for-project-complex v-if="infotype=='迭代'" ref="xmIterationMng" :xm-product="xmProduct"></xm-iteration-for-project-complex>
<xm-project-complex v-if="infotype=='项目'" ref="xmProjectForLink" :xm-product="xmProduct"></xm-project-complex>
<xm-menu-mng v-if="infotype=='需求'" :xm-product="xmProduct"></xm-menu-mng>
<xm-task-mng v-if="infotype=='任务'" ptype="1" queryScope="task" ref="xmTaskMng" :xm-product="xmProduct" key="task"></xm-task-mng>
<xm-task-mng v-if="infotype=='产品任务'" ptype="1" queryScope="task" ref="productXmTaskMng" :xm-product="xmProduct" key="productXmTaskMng"></xm-task-mng>
<xm-task-mng v-if="infotype=='项目任务'" ptype="0" queryScope="task" ref="projectXmTaskMng" :xm-product="xmProduct" key="projectXmTaskMng"></xm-task-mng>
<xm-question v-if="infotype=='缺陷'" :qtype="'bug'" :xm-product='xmProduct' ref="xmQuestion"></xm-question>
<xm-group-mng v-if="infotype=='团队'" :xm-product="xmProduct"></xm-group-mng>
<xm-file-mng v-if="infotype=='文档'" :xm-product="xmProduct"></xm-file-mng>
<xm-task-mng v-if="infotype=='计划'" ref="productPlan" ptype="1" queryScope="planTask" :xm-product="xmProduct" key="productPlan"></xm-task-mng>
<xm-task-mng v-if="infotype=='产品计划'" ref="productPlan" ptype="1" queryScope="planTask" :xm-product="xmProduct" key="productPlan"></xm-task-mng>
<xm-task-mng v-if="infotype=='项目计划'" ref="projectPlan" ptype="0" queryScope="planTask" :xm-product="xmProduct" key="projectPlan"></xm-task-mng>
<!--<xm-phase-for-product v-if="infotype=='计划'" ref="xmPhaseMng" :xm-product="xmProduct" ></xm-phase-for-product> -->
<xm-test-case-exec-mng v-if="infotype=='测试计划'" :visible="infotype=='测试计划'" :xm-product='xmProduct' ref="xmQuestion"></xm-test-case-exec-mng>
<xm-menu-with-plan v-if="infotype=='需求监控'" ref="xmMenuWithPlan" :xm-product="xmProduct"></xm-menu-with-plan>

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

@ -8,11 +8,11 @@
>
<el-row>
<el-popover v-if="(!xmProduct||!xmProduct.id) && (!selProject || !selProject.id)"
<el-popover v-if=" ptype==='0' && (!selProject || !selProject.id)"
placement="right"
width="400"
trigger="click">
<xm-project-select v-if="!selProject||!selProject.id" :auto-select="true" :xm-iteration="xmIteration" :xm-product="xmProduct" @row-click="onProjectRowClick" @clear-select="filters.selProject=null"></xm-project-select>
<xm-project-select v-if="!selProject||!selProject.id" :auto-select="true" :xm-iteration="xmIteration" :xm-product="xmProduct" @row-click="onProjectRowClick" @clear-select="onProjectClear"></xm-project-select>
<el-link type="warning" slot="reference" v-if="!selProject||!selProject.id" icon="el-icon-search"><font style="font-size:14px;">{{filters.selProject?filters.selProject.name:'选择项目'}}</font></el-link>
</el-popover>
<el-select style="width: 100px" v-model="filters.taskState" placeholder="状态" clearable>
@ -437,6 +437,11 @@
</template>
</el-table-column>
<el-table-column sortable prop="productId" label="产品" width="100" show-overflow-tooltip>
</el-table-column>
<el-table-column sortable prop="projectId" label="项目" width="100" show-overflow-tooltip>
</el-table-column>
<el-table-column sortable prop="tagNames" label="标签" width="100">
</el-table-column>
<el-table-column
@ -553,11 +558,7 @@
</template>
<xm-gantt
v-if="displayType == 'grant'"
:tree-data="tasksTreeData"
:project-phase="{
startTime: currentProjectPhase.beginDate,
endTime: currentProjectPhase.endDate,
}"
:tree-data="tasksTreeData"
:useRealTime="true"
></xm-gantt>
</el-row>
@ -565,8 +566,7 @@
</el-row>
<el-row v-if="batchEditVisible">
<xm-task-mng-batch
:sel-project="selProject"
:sel-project-phase="currentProjectPhase"
:sel-project="selProject"
:visible="batchEditVisible"
:xmTasks="xmTasks"
@back="batchEditBack"
@ -750,8 +750,7 @@
>
<xm-task-edit
:xm-project="currentProject"
:xm-task="editForm"
:project-phase="currentProjectPhase"
:xm-task="editForm"
:visible="editFormVisible"
@cancel="editFormVisible = false"
@after-add-submit="afterExecEditSubmit"
@ -1059,27 +1058,7 @@ export default {
} else {
return null;
}
},
currentProjectPhase() {
if (this.projectPhase != null && this.projectPhase != undefined) {
return this.projectPhase;
} else {
var projectPhase = {};
if (
this.editForm && this.editForm.id
) {
projectPhase.id = this.editForm.phaseId;
projectPhase.name = this.editForm.projectPhaseName;
projectPhase.taskType = this.editForm.taskType;
projectPhase.projectId = this.editForm.projectId;
projectPhase.projectName = this.editForm.projectName;
projectPhase.ntype="0"
return projectPhase;
} else {
return null;
}
}
},
},
curUser() {
return {
id: this.userInfo.userid,
@ -1279,8 +1258,7 @@ export default {
skillVisible: false,
skillIds: [],
taskSkills: [],
projectPhase: null,
taskSkills: [],
taskTemplateVisible: false,
parentTask: null,
projectInfoVisible: false,
@ -1399,10 +1377,18 @@ export default {
params.ntype="1"
}else if(this.queryScope==='task'){
params.ntype="0"
}
if(this.ptype){
params.ptype=this.ptype
}
if(this.ptype==='1'){
if(!params.productId){
return;
}
}else if(this.ptype==='0'){
if(!params.projectId){
return;
}
}
params.ptype=this.ptype
getTask(params)
.then((res) => {
var tips = res.data.tips;
@ -1957,21 +1943,7 @@ export default {
handleSelect(key, keyPath) {
this.drawerkey = key;
},
projectPhaseRowClick: function (projectPhase) {
this.projectPhase = projectPhase;
if(projectPhase.ntype=='1'){
this.pageInfo.total=0;
this.xmTasks=[];
return;
}
this.getXmTasks();
},
clearSelectPhase: function () {
this.projectPhase = null;
this.getXmTasks();
},
},
getDateString(dateStr) {
if (dateStr == null || dateStr == "" || dateStr == undefined) {
return "";
@ -2128,6 +2100,10 @@ export default {
this.filters.selProject = project;
this.searchXmTasks();
},
onProjectClear(){
this.filters.selProject=null;
this.searchXmTasks();
},
handleCommand(command) {
if (command.type == "showSubAdd") {
this.showSubAdd(command.data);
@ -2360,12 +2336,7 @@ export default {
if (this.filters.selProject) {
params.projectId = this.filters.selProject.id;
}
params.workexec = "true";
if (this.projectPhase) {
{
params.phaseId = this.projectPhase.id;
}
}
params.workexec = "true";
if (this.isMy == "1") {
params.userid = this.userInfo.userid;
params.isMy = "1";
@ -2407,7 +2378,10 @@ export default {
loadXmTaskLazy(tree, treeNode, resolve) {
this.maps.set(tree.id, { tree, treeNode, resolve }) //
var params={parentTaskid:tree.id}
params=this.getParams(params);
params=this.getParams(params);
if(params.projectId && params.productId){
params.ptype=""
}
params.isTop=""
this.load.list = true;
var func=listXmTask

Loading…
Cancel
Save