Browse Source

优化

master
陈裕财 4 years ago
parent
commit
5dfa5648d4
  1. 2
      src/api/xm/core/xmIteration.js
  2. 72
      src/views/xm/core/xmIteration/XmIterationEdit.vue
  3. 90
      src/views/xm/core/xmIteration/XmIterationInfo.vue
  4. 4
      src/views/xm/core/xmIteration/XmIterationOverviewComplex.vue

2
src/api/xm/core/xmIteration.js

@ -40,7 +40,7 @@ export const editSomeFieldsXmIteration = params => { return axios.post(`${base}/
/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */
//初始化页面上的字典
export const initDicts = (that) => {
var itemCodes=[];//在此添加要加载的字典 如['sex','grade','lvl']
var itemCodes=['iterationStatus'];//在此添加要加载的字典 如['sex','grade','lvl']
if(itemCodes.length>0){
initSimpleDicts('all',itemCodes).then(res=>{
Object.assign(that.dicts,res.data.data)

72
src/views/xm/core/xmIteration/XmIterationEdit.vue

@ -17,44 +17,35 @@
<!--新增界面 XmIteration 迭代定义-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm">
<el-form-item label="迭代名称" prop="iterationName">
<el-input v-model="editForm.iterationName" placeholder="迭代名称" ></el-input>
<el-input v-model="editForm.iterationName" placeholder="迭代名称" @change="editSomeFields(editForm,'iterationName',$event)"></el-input>
</el-form-item>
<el-form-item label="序号" prop="seqNo">
<el-input v-model="editForm.seqNo" placeholder="如1.0,2.0,1.1.1等" ></el-input>
<el-input v-model="editForm.seqNo" placeholder="如1.0,2.0,1.1.1等" @change="editSomeFields(editForm,'seqNo',$event)"></el-input>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.startTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.endTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<date-range start-key="startTime" end-key="endTime" v-model="editForm" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd" @change="editSomeFields(editForm,'startTime',$event)"></date-range>
</el-form-item>
<el-form-item label="上线时间" prop="onlineTime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.onlineTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.onlineTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd" @change="editSomeFields(editForm,'onlineTime',$event)"></el-date-picker>
</el-form-item>
<el-form-item label="负责人姓名" prop="adminUsername">
{{editForm.adminUsername}} <el-button type="text" @click="userSelectVisible=true">选择负责人</el-button>
</el-form-item>
<el-form-item label="预算工作量" prop="budgetWorkload">
<el-input v-model="editForm.budgetWorkload" type="number" min="0" style="width:60%;" placeholder="预算工作量"></el-input> 人时 1人工作1日=8人时
</el-form-item>
<el-form-item>
<el-col :span="24" :offset="8">
<el-button v-loading="load.edit" type="primary" @click.native="editSubmit" :disabled="load.edit==true">提交</el-button>
</el-col>
</el-form-item>
<el-input v-model="editForm.budgetWorkload" type="number" min="0" style="width:60%;" placeholder="预算工作量" @change="editSomeFields(editForm,'budgetWorkload',$event)"></el-input> 人时 1人工作1日=8人时
</el-form-item>
</el-form>
</el-row>
<el-drawer append-to-body title="选择员工" :visible.sync="userSelectVisible" size="60%">
<users-select :select-userids="[]" @confirm="onUserSelected" ref="usersSelect"></users-select>
<users-select v-if="userSelectVisible" :select-userids="[]" @confirm="onUserSelected" ref="usersSelect"></users-select>
</el-drawer>
</section>
</template>
<script>
import util from '@/common/js/util';//
import { initSimpleDicts } from '@/api/mdp/meta/item';//
import { editXmIteration } from '@/api/xm/core/xmIteration';
import util from '@/common/js/util';//
import { initDicts,editXmIteration,editSomeFieldsXmIteration } from '@/api/xm/core/xmIteration';
import { mapGetters } from 'vuex'
import UsersSelect from "@/views/mdp/sys/user/UsersSelect";
@ -80,9 +71,13 @@
},
props:['xmIteration','visible'],
watch: {
'xmIteration':function( xmIteration ) {
this.editForm=Object.assign(this.editForm, this.xmIteration);
},
'xmIteration':{
handler(){
this.editForm=Object.assign(this.editForm, this.xmIteration);
this.editFormBak={...this.editForm}
},
deep:true,
},
'visible':function(visible) {
if(visible==true){
}
@ -105,6 +100,9 @@
editForm: {
id:'',branchId:'',iterationName:'',startTime:'',endTime:'',onlineTime:'',pid:'',adminUserid:'',adminUsername:'',ctime:'',budgetCost:'',budgetWorkload:'',seqNo:'',istatus:'',cuserid:'',cusername:'',remark:'',iphase:'',isTpl:'',productId:''
},
editFormBak: {
id:'',branchId:'',iterationName:'',startTime:'',endTime:'',onlineTime:'',pid:'',adminUserid:'',adminUsername:'',ctime:'',budgetCost:'',budgetWorkload:'',seqNo:'',istatus:'',cuserid:'',cusername:'',remark:'',iphase:'',isTpl:'',productId:''
},
/**begin 在下面加自定义属性,记得补上面的一个逗号**/
userSelectVisible:false,
/**end 在上面加自定义属性**/
@ -144,29 +142,36 @@
},
/**begin 在下面加自定义方法,记得补上面的一个逗号**/
onUserSelected: function(users) {
onUserSelected: function(users) {
if(users.length>1){
this.$notify.error("只能选一个人");
return;
}
var user=users[0]
this.editForm.adminUserid=user.userid
this.editForm.adminUsername=user.username
var user=users[0]
this.editSomeFields(this.editForm,'adminUserid',user)
this.userSelectVisible = false;
},
editSomeFields(row,fieldName,$event){
if(this.opType=='add'){
return;
}
editSomeFields(row,fieldName,$event){
let params={};
params['ids']=[row].map(i=>i.id)
params[fieldName]=$event
if(fieldName=='adminUserid'){
params['adminUserid']=$event.userid
params['adminUsername']=$event.username
}else if(fieldName=='startTime'){
params['adminUserid']=row.startTime
params['adminUsername']=row.endTime
}else{
params[fieldName]=$event
}
var func = editSomeFieldsXmIteration
func(params).then(res=>{
let tips = res.data.tips;
if(tips.isOk){
this.editFormBak=[...this.editForm]
Object.assign(this.editForm,params)
this.$emit('edit-fields',params)
}else{
Object.assign(this.editForm,this.editFormBak)
this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})
@ -181,10 +186,9 @@
UsersSelect
},
mounted() {
initSimpleDicts('all',['iterationStatus'] ).then(res=>{
this.dicts=res.data.data;
})
initDicts(this)
this.editForm=Object.assign(this.editForm, this.xmIteration);
this.editFormBak={...this.editForm}
/**在下面写其它函数***/
}//end mounted

90
src/views/xm/core/xmIteration/XmIterationInfo.vue

@ -90,7 +90,7 @@
type="warning"
size="mini"
plain
@click="infotype = '产品'"
@click="infotype = '需求'"
>需求管理</el-button
>
<el-button
@ -98,7 +98,7 @@
type="warning"
size="mini"
plain
@click="infotype = '产品'"
@click="showIterationMenu"
>配置需求范围</el-button
>
<el-button
@ -106,7 +106,7 @@
type="warning"
size="mini"
plain
@click="infotype = '产品'"
@click="editSomeFields(xmIteration, 'istatus', '1')"
>开启需求评审</el-button
>
</span>
@ -116,7 +116,7 @@
type="warning"
size="mini"
plain
@click="infotype = '产品'"
@click="infotype = '需求'"
>需求管理</el-button
>
<el-button
@ -124,8 +124,8 @@
type="warning"
size="mini"
plain
@click="infotype = '产品'"
>配置需求范围</el-button
@click="showIterationMenu"
>需求范围</el-button
>
</span>
</el-row>
@ -137,7 +137,7 @@
type="warning"
size="mini"
plain
@click="infotype = '产品'"
@click="showIterationMenu"
>确认需求范围</el-button
>
<el-button
@ -145,7 +145,7 @@
type="warning"
size="mini"
plain
@click="editXmProjectSomeFields(xmIteration, 'istatus', '2')"
@click="infotype='缺陷'"
>缺陷登记</el-button
>
<el-button
@ -153,7 +153,7 @@
type="warning"
size="mini"
plain
@click="infotype = '产品'"
@click="editSomeFields(xmIteration, 'istatus', '2')"
>进入计划会</el-button
>
</span>
@ -169,7 +169,7 @@
type="warning"
size="mini"
plain
@click="infotype = '合同管理'"
@click="showIterationDetail"
>迭代计划</el-button
>
<el-button
@ -177,9 +177,17 @@
type="warning"
size="mini"
plain
@click="infotype = '团队'"
@click="infotype = '任务'"
>任务管理</el-button
>
<el-button
class="step-btn"
type="warning"
size="mini"
plain
@click="editSomeFields(xmIteration, 'istatus', '3')"
>设为研发中</el-button
>
</span>
<span v-if="xmIteration.istatus != i.id">
<el-button
@ -187,7 +195,7 @@
type="warning"
size="mini"
plain
@click="infotype = '合同管理'"
@click="showIterationDetail"
>迭代计划</el-button
>
<el-button
@ -195,7 +203,7 @@
type="warning"
size="mini"
plain
@click="infotype = '团队'"
@click="infotype = '任务'"
>任务管理</el-button
>
</span>
@ -208,7 +216,7 @@
type="warning"
size="mini"
plain
@click="infotype = '团队'"
@click="infotype = '任务'"
>任务管理</el-button
>
<el-button
@ -224,20 +232,11 @@
type="warning"
size="mini"
plain
@click="editXmProjectSomeFields(xmIteration, 'istatus', '5')"
@click="editSomeFields(xmIteration, 'istatus', '4')"
>设为测试中</el-button
>
</span>
<span v-if="xmIteration.istatus != i.id">
<el-button
class="step-btn"
type="warning"
size="mini"
plain
@click="infotype = '缺陷'"
>缺陷管理</el-button
>
<span v-if="xmIteration.istatus != i.id">
<el-button
class="step-btn"
type="warning"
@ -264,7 +263,7 @@
type="warning"
size="mini"
plain
@click="editXmProjectSomeFields(xmIteration, 'istatus', '5')"
@click="editSomeFields(xmIteration, 'istatus', '5')"
>设为待上线</el-button
>
</span>
@ -278,7 +277,7 @@
type="warning"
size="mini"
plain
@click="editXmProjectSomeFields(xmIteration, 'istatus', '5')"
@click="editSomeFields(xmIteration, 'istatus', '6')"
>设为已完成</el-button
>
</span>
@ -294,7 +293,7 @@
type="warning"
size="mini"
plain
@click="editXmProjectSomeFields(xmIteration, 'istatus', '7')"
@click="editSomeFields(xmIteration, 'istatus', '7')"
>设为已关闭</el-button
>
</span>
@ -310,7 +309,7 @@
type="warning"
size="mini"
plain
@click="editXmProjectSomeFields(xmIteration, 'istatus', '7')"
@click="editSomeFields(xmIteration, 'istatus', '0')"
>重新打开</el-button
>
</span>
@ -322,6 +321,7 @@
<el-col :span="infotype == '迭代概览' ? 18 : 24">
<xm-iteration-overview-complex
v-if="infotype == '迭代概览'"
ref="迭代概览"
:xm-iteration="xmIteration"
></xm-iteration-overview-complex>
<xm-project-complex
@ -399,7 +399,9 @@ import xmTestCaseExecMng from "../xmTestCaseExec/XmTestCaseExecMng";
import XmIterationForProjectComplex from "./XmIterationForLinkComplex.vue";
import XmIterationOverviewComplex from "../xmIteration/XmIterationOverviewComplex.vue";
import XmProductForProjectComplex from "../xmProduct/XmProductForLinkComplex.vue";
import XmProjectComplex from "../xmProject/XmProjectForLinkComplex.vue";
import XmProjectComplex from "../xmProject/XmProjectForLinkComplex.vue";
import {initDicts, listXmIteration, editSomeFieldsXmIteration } from '@/api/xm/core/xmIteration';
import XmReport from "@/views/xm/rpt/reportIndex";
@ -729,6 +731,28 @@ export default {
localStorage.setItem("iteration-infotype", "迭代概览");
this.$router.back();
},
editSomeFields(row,fieldName,$event){
let params={};
params['ids']=[row].map(i=>i.id)
params[fieldName]=$event
var func = editSomeFieldsXmIteration
func(params).then(res=>{
let tips = res.data.tips;
if(tips.isOk){
Object.assign(row,params)
}else{
this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})
}
}).catch((e)=>Object.assign(this.editForm,this.editFormBak))
},
showIterationMenu(){
this.$refs['迭代概览'].showPanelName='iterationMenuMng'
},
showIterationDetail(){
this.$refs['迭代概览'].showPanelName='detail'
}
}, //end methods
components: {
xmTaskMng,
@ -757,11 +781,7 @@ export default {
},
mounted() {
this.$nextTick(() => {
initSimpleDicts("all", ["iterationStatus"]).then((res) => {
if (res.data.tips.isOk) {
this.dicts["iterationStatus"] = res.data.data.iterationStatus;
}
});
initDicts(this);
var infotype = localStorage.getItem("iteration-infotype");
if (infotype) {
this.infotype = infotype;

4
src/views/xm/core/xmIteration/XmIterationOverviewComplex.vue

@ -1,6 +1,6 @@
<template>
<section class="page-container padding-left padding-right">
<el-menu mode="horizontal" default-active="overview" @select="onMenuToolBarSelect">
<el-menu mode="horizontal" :default-active="showPanelName" @select="onMenuToolBarSelect">
<el-menu-item index="overview">
<span slot="title">迭代概览</span>
</el-menu-item>
@ -28,7 +28,7 @@
<xm-iteration-edit v-if="showPanelName=='detail'" :xm-iteration="xmIteration"></xm-iteration-edit>
<xm-iteration-link-for-product v-if="showPanelName=='iterationProductLink'" :xm-iteration="xmIteration"></xm-iteration-link-for-product>
<xm-iteration-link-for-project v-if="showPanelName=='iterationProjectLink'" :xm-iteration="xmIteration"></xm-iteration-link-for-project>
<xm-iteration-menu-mng v-if="showPanelName=='iterationMenuMng'" :xm-iteration="xmIteration"></xm-iteration-menu-mng>
<xm-iteration-menu-mng v-if="showPanelName=='iterationMenuMng'" :xm-iteration="xmIteration" ref="iterationMenuMng"></xm-iteration-menu-mng>
<div v-if="showPanelName=='iterationCalc'" class="padding">
<el-row>
<el-button type="primary" @click="loadTasksToXmIterationState" v-loading="load.calcIteration">计算迭代统计数据</el-button>

Loading…
Cancel
Save