Browse Source

优化

master
陈裕财 2 years ago
parent
commit
94759d30b0
  1. 20
      src/views/xm/core/xmMenu/XmMenuMng.vue
  2. 148
      src/views/xm/core/xmMenuWorkItem/XmSubBugList.vue
  3. 134
      src/views/xm/core/xmMenuWorkItem/XmSubMenuList.vue
  4. 194
      src/views/xm/core/xmMenuWorkItem/XmSubTaskList.vue
  5. 2
      src/views/xm/core/xmProduct/XmProductMng.vue
  6. 4
      src/views/xm/core/xmProject/XmProjectMng.vue
  7. 10
      src/views/xm/core/xmQuestion/XmQuestionEdit.vue
  8. 16
      src/views/xm/core/xmQuestion/XmQuestionMng.vue
  9. 8
      src/views/xm/core/xmTask/XmTaskMng.vue
  10. 174
      src/views/xm/core/xmTaskWorkItem/XmSubTaskList.vue
  11. 6
      src/views/xm/core/xmTestCase/XmTestCaseEdit.vue
  12. 4
      src/views/xm/core/xmTestCase/XmTestCaseMng.vue
  13. 4
      src/views/xm/core/xmTestCase/XmTestCaseSelect.vue
  14. 2
      src/views/xm/core/xmTestPlan/XmTestPlanListForProject.vue
  15. 6
      src/views/xm/core/xmTestPlan/XmTestPlanMng.vue
  16. 2
      src/views/xm/core/xmTestPlan/XmTestPlanSelect.vue
  17. 10
      src/views/xm/core/xmTestPlanCase/XmTestPlanCaseEdit.vue
  18. 8
      src/views/xm/core/xmTestPlanCase/XmTestPlanCaseMng.vue
  19. 6
      src/views/xm/core/xmTestPlanCase/XmTestPlanCaseSelect.vue
  20. 2
      src/views/xm/core/xmWorkload/XmWorkloadList.vue
  21. 2
      src/views/xm/core/xmWorkload/XmWorkloadMng.vue
  22. 2
      src/views/xm/core/xmWorkload/XmWorkloadSimpleList.vue
  23. 2
      src/views/xm/core/xmWorkload/XmWorkloadSimpleListForBizDate.vue

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

@ -264,33 +264,33 @@
</el-table-column> </el-table-column>
<el-table-column prop="status" label="状态" min-width="80" sortable> <el-table-column prop="status" label="状态" min-width="80" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="menuStatus" v-model="scope.row.status" label="需求状态" @change="editXmMenuSomeFields(scope.row,'status',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="menuStatus" v-model="scope.row.status" label="需求状态" @change="editXmMenuSomeFields(scope.row,'status',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="priority" label="优先级" width="100" sortable> <el-table-column prop="priority" label="优先级" width="100" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="priority" v-model="scope.row.priority" placeholder="优先级" style="display:block;" @change="editXmMenuSomeFields(scope.row,'priority',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="priority" v-model="scope.row.priority" placeholder="优先级" style="display:block;" @change="editXmMenuSomeFields(scope.row,'priority',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="dtype" label="类型" width="100" sortable v-if="false"> <el-table-column prop="dtype" label="类型" width="100" sortable v-if="false">
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="demandType" v-model="scope.row.dtype" placeholder="类型" style="display:block;" @change="editXmMenuSomeFields(scope.row,'dtype',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="demandType" v-model="scope.row.dtype" placeholder="类型" style="display:block;" @change="editXmMenuSomeFields(scope.row,'dtype',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="source" label="来源" width="100" :formatter="formaterByDicts" show-overflow-tooltip sortable v-if="false"> <el-table-column prop="source" label="来源" width="100" :formatter="formaterByDicts" show-overflow-tooltip sortable v-if="false">
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="demandSource" v-model="scope.row.source" placeholder="来源" style="display:block;" @change="editXmMenuSomeFields(scope.row,'source',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="demandSource" v-model="scope.row.source" placeholder="来源" style="display:block;" @change="editXmMenuSomeFields(scope.row,'source',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="dlvl" label="层次" width="100" sortable> <el-table-column prop="dlvl" label="层次" width="100" sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="demandLvl" v-model="scope.row.dlvl" placeholder="层次" style="display:block;" @change="editXmMenuSomeFields(scope.row,'dlvl',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="demandLvl" v-model="scope.row.dlvl" placeholder="层次" style="display:block;" @change="editXmMenuSomeFields(scope.row,'dlvl',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="iterationName" label="迭代" width="150" show-overflow-tooltip sortable> <el-table-column prop="iterationName" label="迭代" width="150" show-overflow-tooltip sortable>

148
src/views/xm/core/xmMenuWorkItem/XmSubBugList.vue

@ -1,63 +1,63 @@
<template> <template>
<el-row v-show="parentXmMenu.dclass==='3' && xmBugs.length>0">
<el-row v-show="parentXmMenu.dclass==='3' && xmBugs.length>0">
<el-row> <el-row>
<el-table :data="xmBugs" :max-height="400" @selection-change="selsChange" @row-click="rowClick"> <el-table :data="xmBugs" :max-height="400" @selection-change="selsChange" @row-click="rowClick">
<el-table-column type="selection" label="全选"></el-table-column> <el-table-column type="selection" label="全选"></el-table-column>
<el-table-column prop="name" label="名称" min-width="350px"> <el-table-column prop="name" label="名称" min-width="350px">
<template slot-scope="scope">
<template slot-scope="scope">
<div class="cell-box"> <div class="cell-box">
<div class="icon" :style="{backgroundColor: '#F56C6C'}"> <div class="icon" :style="{backgroundColor: '#F56C6C'}">
<i style="width:20px;" class="el-icon-warning" ></i> <i style="width:20px;" class="el-icon-warning" ></i>
</div> </div>
<el-link @click="showEdit( scope.row,scope.$index)" title="编辑任务">{{scope.row.sortLevel}}&nbsp;{{scope.row.name}}</el-link> <el-link @click="showEdit( scope.row,scope.$index)" title="编辑任务">{{scope.row.sortLevel}}&nbsp;{{scope.row.name}}</el-link>
<div class="cell-bar"> <div class="cell-bar">
<el-button @click="copyOne(scope.row,scope.$index)" icon="el-icon-document-copy" circle title="复制一行"></el-button>
<el-button @click="copyOne(scope.row,scope.$index)" icon="el-icon-document-copy" circle title="复制一行"></el-button>
</div> </div>
</div> </div>
</template> </template>
</el-table-column>
</el-table-column>
<el-table-column prop="bugStatus" label="状态" width="100"> <el-table-column prop="bugStatus" label="状态" width="100">
<template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" :dict="dicts.bugStatus" v-model="scope.row.bugStatus" placeholder="类型" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'bugStatus',$event)">
</mdp-select-tag>
<template slot-scope="scope">
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" :dict="dicts.bugStatus" v-model="scope.row.bugStatus" placeholder="类型" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'bugStatus',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="budgetWorkload" label="工时" width="100"> <el-table-column prop="budgetWorkload" label="工时" width="100">
<template slot-scope="scope">
<template slot-scope="scope">
<div class="cell-text"> <div class="cell-text">
{{scope.row.budgetWorkload}}&nbsp;/&nbsp;{{scope.row.actWorkload}} {{scope.row.budgetWorkload}}&nbsp;/&nbsp;{{scope.row.actWorkload}}
</div> </div>
<span class="cell-bar">
<span class="cell-bar">
<el-button @click="workloadRecord('actWorkload',scope.row)">登记工时</el-button> <el-button @click="workloadRecord('actWorkload',scope.row)">登记工时</el-button>
</span>
</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="priority" label="优先级" width="100"> <el-table-column prop="priority" label="优先级" width="100">
<template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" :dict="dicts.priority" v-model="scope.row.priority" placeholder="优先级" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'priority',$event)">
</mdp-select-tag>
<template slot-scope="scope">
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" :dict="dicts.priority" v-model="scope.row.priority" placeholder="优先级" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'priority',$event)">
</mdp-select>
</template> </template>
</el-table-column>
</el-table-column>
<el-table-column prop="solution" label="解决方案" width="100"> <el-table-column prop="solution" label="解决方案" width="100">
<template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" :dict="dicts.bugSolution" v-model="scope.row.solution" placeholder="类型" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'solution',$event)">
</mdp-select-tag>
<template slot-scope="scope">
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" :dict="dicts.bugSolution" v-model="scope.row.solution" placeholder="类型" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'solution',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="handlerUsername" label="负责人" width="100" show-overflow-tooltip>
<template slot-scope="scope">
<el-table-column prop="handlerUsername" label="负责人" width="100" show-overflow-tooltip>
<template slot-scope="scope">
<mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="handlerUserid" username-key="handlerUsername" :project-id="scope.row.projectId" v-model="scope.row" @change="editXmTaskSomeFields(scope.row,'handlerUserid',$event)"></mdp-select-user-xm> <mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="handlerUserid" username-key="handlerUsername" :project-id="scope.row.projectId" v-model="scope.row" @change="editXmTaskSomeFields(scope.row,'handlerUserid',$event)"></mdp-select-user-xm>
</template> </template>
</el-table-column> </el-table-column>
</el-table>
</el-table>
</el-row> </el-row>
<xm-group-dialog ref="xmGroupDialog" :sel-project=" {id:linkProjectId} " :is-select-single-user="1" @user-confirm="onUserConfirm"></xm-group-dialog>
<xm-group-dialog ref="xmGroupDialog" :sel-project=" {id:linkProjectId} " :is-select-single-user="1" @user-confirm="onUserConfirm"></xm-group-dialog>
<el-dialog :title="'新增缺陷'" :visible.sync="addFormVisible" append-to-body modal-append-to-body> <el-dialog :title="'新增缺陷'" :visible.sync="addFormVisible" append-to-body modal-append-to-body>
<el-form :model="addForm" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" :rules="addFormRules" ref="addForm">
<el-form-item prop="name"> <el-form-item prop="name">
@ -68,7 +68,7 @@
缺陷名称 缺陷名称
</template> </template>
<el-input v-model="addForm.name" autocomplete="off" ></el-input> <el-input v-model="addForm.name" autocomplete="off" ></el-input>
</el-form-item>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="addFormVisible = false"> </el-button> <el-button @click="addFormVisible = false"> </el-button>
@ -79,14 +79,14 @@
<el-dialog title="编辑缺陷" :visible.sync="editFormVisible" width="90%" top="20px" :close-on-click-modal="false" append-to-body> <el-dialog title="编辑缺陷" :visible.sync="editFormVisible" width="90%" top="20px" :close-on-click-modal="false" append-to-body>
<xm-question-edit :sel-project=" {id:editForm.projectId,name:editForm.projectName} " :xm-question="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit" @edit-fields="afterEditSubmit"></xm-question-edit> <xm-question-edit :sel-project=" {id:editForm.projectId,name:editForm.projectName} " :xm-question="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit" @edit-fields="afterEditSubmit"></xm-question-edit>
</el-dialog> </el-dialog>
</el-row>
</el-row>
</template> </template>
<script> <script>
import Vue from "vue"; import Vue from "vue";
import util from "@/common/js/util"; // import util from "@/common/js/util"; //
import treeTool from "@/common/js/treeTool"; // import treeTool from "@/common/js/treeTool"; //
import { initSimpleDicts } from '@/api/mdp/meta/item'; //
import { initSimpleDicts } from '@/api/mdp/meta/item'; //
import { listXmQuestion ,addXmQuestion,batchDelXmQuestion,editXmQuestionSomeFields} from '@/api/xm/core/xmQuestion'; import { listXmQuestion ,addXmQuestion,batchDelXmQuestion,editXmQuestionSomeFields} from '@/api/xm/core/xmQuestion';
import XmGroupDialog from '../xmGroup/XmGroupDialog'; import XmGroupDialog from '../xmGroup/XmGroupDialog';
@ -95,9 +95,9 @@ import treeTool from "@/common/js/treeTool"; //全局公共库
export default { export default {
computed: { computed: {
...mapGetters(["userInfo", "roles"]),
calcMenuLabel(){
...mapGetters(["userInfo", "roles"]),
calcMenuLabel(){
var params={label:'工作项',icon:'',color:''}; var params={label:'工作项',icon:'',color:''};
if(this.parentXmMenu.dclass==='0'){ if(this.parentXmMenu.dclass==='0'){
params={label:'史诗',icon:'el-icon-s-promotion',color:'rgb(255, 153, 51)'}; params={label:'史诗',icon:'el-icon-s-promotion',color:'rgb(255, 153, 51)'};
@ -105,25 +105,25 @@ export default {
params={label:'特性',icon:'el-icon-s-flag',color:'rgb(0, 153, 51)'}; params={label:'特性',icon:'el-icon-s-flag',color:'rgb(0, 153, 51)'};
}else if(this.parentXmMenu.dclass==='2'){ }else if(this.parentXmMenu.dclass==='2'){
params={label:'故事',icon:'el-icon-document',color:' rgb(79, 140, 255)'}; params={label:'故事',icon:'el-icon-document',color:' rgb(79, 140, 255)'};
}
}
return params; return params;
},
},
}, },
props: [
props: [
'parentXmMenu','linkProjectId' 'parentXmMenu','linkProjectId'
], ],
watch: {
watch: {
'parentXmMenu':function(){ 'parentXmMenu':function(){
this.initData(); this.initData();
}, },
'xmBugs':function(){ 'xmBugs':function(){
this.$emit("bugs-change",this.xmBugs) this.$emit("bugs-change",this.xmBugs)
} }
}, },
data() {
data() {
return{ return{
load:{edit:false,list:false,add:false,del:false,},
load:{edit:false,list:false,add:false,del:false,},
xmBugs:[], xmBugs:[],
editForm: { editForm: {
id:'',name:'',projectId:'',projectName:'',taskId:'',taskName:'',endTime:'',askUserid:'',askUsername:'',handlerUserid:'',handlerUsername:'',priority:'',solution:'',processTime:'',receiptMessage:'',receiptTime:'',description:'',createUserid:'',createUsername:'',createTime:'',bugStatus:'',receiptMessage:'', id:'',name:'',projectId:'',projectName:'',taskId:'',taskName:'',endTime:'',askUserid:'',askUsername:'',handlerUserid:'',handlerUsername:'',priority:'',solution:'',processTime:'',receiptMessage:'',receiptTime:'',description:'',createUserid:'',createUsername:'',createTime:'',bugStatus:'',receiptMessage:'',
@ -154,7 +154,7 @@ export default {
} }
}, //end data }, //end data
methods: {
methods: {
...util, ...util,
selectVisible(row,visible){ selectVisible(row,visible){
if(visible){ if(visible){
@ -185,24 +185,24 @@ export default {
afterEditSubmit(row){ afterEditSubmit(row){
Object.assign(this.editForm,row) Object.assign(this.editForm,row)
}, },
initData(){
this.xmBugs=[]
initData(){
this.xmBugs=[]
if(!this.parentXmMenu || !this.parentXmMenu.menuId){ if(!this.parentXmMenu || !this.parentXmMenu.menuId){
return; return;
} }
var dclass=this.parentXmMenu.dclass; var dclass=this.parentXmMenu.dclass;
if(dclass==='3'){ if(dclass==='3'){
this.getXmBugs(); this.getXmBugs();
}
},
addXmBug(){
this.$refs.addForm.validate().then(res=>{
}
},
addXmBug(){
this.$refs.addForm.validate().then(res=>{
var question={menuId:this.parentXmMenu.menuId,menuName:this.parentXmMenu.menuName,productId:this.parentXmMenu.productId,iterationId:this.parentXmMenu.iterationId,iterationName:this.parentXmMenu.iterationName} var question={menuId:this.parentXmMenu.menuId,menuName:this.parentXmMenu.menuName,productId:this.parentXmMenu.productId,iterationId:this.parentXmMenu.iterationId,iterationName:this.parentXmMenu.iterationName}
question.priority='3' question.priority='3'
question.verNum=this.parentXmMenu.sinceVersion; question.verNum=this.parentXmMenu.sinceVersion;
question.pverNum=this.parentXmMenu.sinceVersion; question.pverNum=this.parentXmMenu.sinceVersion;
question.askUserid=this.userInfo.userid question.askUserid=this.userInfo.userid
question.askUsername=this.userInfo.username
question.askUsername=this.userInfo.username
question.qtype="1" question.qtype="1"
question.id=null; question.id=null;
question.name=this.addForm.name question.name=this.addForm.name
@ -213,17 +213,17 @@ export default {
this.load.edit=false this.load.edit=false
var tips=res.data.tips; var tips=res.data.tips;
if(tips.isOk){ if(tips.isOk){
this.$emit('submit',res.data.data);// @submit="afterAddSubmit"
this.$emit('submit',res.data.data);// @submit="afterAddSubmit"
this.xmBugs.push(res.data.data) this.xmBugs.push(res.data.data)
} }
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' }); this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.edit=false); }).catch( err => this.load.edit=false);
}) })
},
},
showAdd() { showAdd() {
this.addFormVisible=true; this.addFormVisible=true;
}, },
batchDel: function () { batchDel: function () {
if(this.sels.length<=0){ if(this.sels.length<=0){
this.$notify({position:'bottom-left',showClose:true,message:"请选择要删除的缺陷", type: "error"}); this.$notify({position:'bottom-left',showClose:true,message:"请选择要删除的缺陷", type: "error"});
@ -243,9 +243,9 @@ export default {
}).catch( err => this.load.del=false ); }).catch( err => this.load.del=false );
}); });
}, },
editXmQuestionSomeFields(row,fieldName,$event){ editXmQuestionSomeFields(row,fieldName,$event){
var params={ids:[row.id]}; var params={ids:[row.id]};
if(this.sels.length>0){ if(this.sels.length>0){
if(!this.sels.some(k=>k.id==row.id)){ if(!this.sels.some(k=>k.id==row.id)){
@ -255,16 +255,16 @@ export default {
params.ids=this.sels.map(i=>i.id) params.ids=this.sels.map(i=>i.id)
} }
if(fieldName==='handlerUserid'){ if(fieldName==='handlerUserid'){
if($event){
if($event){
params[fieldName]=$event[0].userid; params[fieldName]=$event[0].userid;
params.handlerUsername=$event[0].username
params.handlerUsername=$event[0].username
}else{ }else{
return; return;
} }
}else if(fieldName==='tagIds'){ }else if(fieldName==='tagIds'){
if($event){
if($event){
params[fieldName]=$event.map(i=>i.tagId).join(","); params[fieldName]=$event.map(i=>i.tagId).join(",");
params.tagNames=$event.map(i=>i.tagName).join(",");
params.tagNames=$event.map(i=>i.tagName).join(",");
}else{ }else{
return; return;
} }
@ -277,16 +277,16 @@ export default {
}else{ }else{
params[fieldName]=$event params[fieldName]=$event
} }
editXmQuestionSomeFields(params).then(res=>{ editXmQuestionSomeFields(params).then(res=>{
var tips = res.data.tips; var tips = res.data.tips;
if(tips.isOk){
if(tips.isOk){
if(this.sels.length>0){ if(this.sels.length>0){
this.sels.forEach(i=>{
Object.assign(i,params)
this.sels.forEach(i=>{
Object.assign(i,params)
}) })
}else{
Object.assign(row,params)
}else{
Object.assign(row,params)
} }
Object.assign(this.editFormBak,this.editForm) Object.assign(this.editFormBak,this.editForm)
}else{ }else{
@ -295,31 +295,31 @@ export default {
} }
}) })
}, },
showEdit(row,index){ showEdit(row,index){
this.editForm=row this.editForm=row
this.editFormVisible=true this.editFormVisible=true
}, },
onUserConfirm:function(groupUsers,option){ onUserConfirm:function(groupUsers,option){
if(option.action=='editHandlerUserid'){ if(option.action=='editHandlerUserid'){
this.editXmQuestionSomeFields(option.data,"handlerUserid",groupUsers) this.editXmQuestionSomeFields(option.data,"handlerUserid",groupUsers)
return; return;
}
}
this.getXmBugs(); this.getXmBugs();
},
},
copyOne(row,index){ copyOne(row,index){
var params={...row} var params={...row}
params.id=null; params.id=null;
params.createUserid=this.userInfo.userid params.createUserid=this.userInfo.userid
params.createUsername=this.userInfo.username
params.createUsername=this.userInfo.username
params.bugStatus="1" params.bugStatus="1"
params.name=row.name+'V' params.name=row.name+'V'
addXmQuestion(params).then(res=>{ addXmQuestion(params).then(res=>{
var tips = res.data.tips var tips = res.data.tips
if(tips.isOk){
if(tips.isOk){
var row2=res.data.data var row2=res.data.data
this.xmBugs.splice(index+1,0,row2) this.xmBugs.splice(index+1,0,row2)
//this.pageInfo.total=this.pageInfo.total+1 //this.pageInfo.total=this.pageInfo.total+1
@ -330,14 +330,14 @@ export default {
}) })
} }
}, //end methods }, //end methods
components: {
components: {
XmGroupDialog,'xm-question-edit':()=>import('../xmQuestion/XmQuestionEdit'),MdpSelectUserXm, XmGroupDialog,'xm-question-edit':()=>import('../xmQuestion/XmQuestionEdit'),MdpSelectUserXm,
}, },
mounted() {
mounted() {
this.initData(); this.initData();
initSimpleDicts('all',['bugSeverity','bugSolution','bugStatus','bugType','priority','bugRepRate']).then(res=>{ initSimpleDicts('all',['bugSeverity','bugSolution','bugStatus','bugType','priority','bugRepRate']).then(res=>{
if(res.data.tips.isOk){
if(res.data.tips.isOk){
this.dicts=res.data.data; this.dicts=res.data.data;
} }
}); });
@ -345,16 +345,16 @@ export default {
}; };
</script> </script>
<style lang="less" scoped>
<style lang="less" scoped>
.my-cell-bar{ .my-cell-bar{
display: none;
display: none;
} }
.el-table__row td:hover{ .el-table__row td:hover{
.my-cell-bar{ .my-cell-bar{
width:90%; width:90%;
padding-right:0px; padding-right:0px;
display: inline-block;
display: inline-block;
} }
.my-cell-text{ .my-cell-text{
display:none; display:none;

134
src/views/xm/core/xmMenuWorkItem/XmSubMenuList.vue

@ -1,11 +1,11 @@
<template> <template>
<section>
<el-row v-if="parentXmMenu.dclass<'3' && xmMenus.length>0">
<section>
<el-row v-if="parentXmMenu.dclass<'3' && xmMenus.length>0">
<el-row> <el-row>
<el-table :data="xmMenus" :max-height="400" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick"> <el-table :data="xmMenus" :max-height="400" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick">
<el-table-column type="selection" label="全选"></el-table-column> <el-table-column type="selection" label="全选"></el-table-column>
<el-table-column prop="menuName" label="名称" min-width="350">
<template slot-scope="scope" >
<el-table-column prop="menuName" label="名称" min-width="350">
<template slot-scope="scope" >
<div class="cell-box"> <div class="cell-box">
<div v-if="scope.row.dclass=='1'" class="icon" style="background-color: rgb(255, 153, 51);"> <div v-if="scope.row.dclass=='1'" class="icon" style="background-color: rgb(255, 153, 51);">
<i class="el-icon-s-promotion"></i> <i class="el-icon-s-promotion"></i>
@ -17,26 +17,26 @@
<i class="el-icon-document"></i> <i class="el-icon-document"></i>
</div> </div>
<el-link @click="showEdit( scope.row,scope.$index)" title="编辑" >{{scope.row.seqNo}}&nbsp;{{scope.row.menuName}}</el-link> <el-link @click="showEdit( scope.row,scope.$index)" title="编辑" >{{scope.row.seqNo}}&nbsp;{{scope.row.menuName}}</el-link>
<div class="cell-bar"> <div class="cell-bar">
<el-button @click="copyOne(scope.row,scope.$index)" icon="el-icon-document-copy" circle title="复制一行"></el-button>
<el-button @click="copyOne(scope.row,scope.$index)" icon="el-icon-document-copy" circle title="复制一行"></el-button>
</div> </div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="status" label="状态" width="100" sortable> <el-table-column prop="status" label="状态" width="100" sortable>
<template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" :dict="dicts.menuStatus" v-model="scope.row.status" placeholder="需求状态" style="display:block;" @change="editXmMenuSomeFields(scope.row,'status',$event)">
</mdp-select-tag>
<template slot-scope="scope">
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" :dict="dicts.menuStatus" v-model="scope.row.status" placeholder="需求状态" style="display:block;" @change="editXmMenuSomeFields(scope.row,'status',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="priority" label="优先级" width="100" sortable> <el-table-column prop="priority" label="优先级" width="100" sortable>
<template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" :dict="dicts.priority" v-model="scope.row.priority" placeholder="优先级" style="display:block;" @change="editXmMenuSomeFields(scope.row,'priority',$event)">
</mdp-select-tag>
<template slot-scope="scope">
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" :dict="dicts.priority" v-model="scope.row.priority" placeholder="优先级" style="display:block;" @change="editXmMenuSomeFields(scope.row,'priority',$event)">
</mdp-select>
</template> </template>
</el-table-column>
</el-table-column>
<el-table-column prop="iterationName" label="迭代" width="150" show-overflow-tooltip sortable> <el-table-column prop="iterationName" label="迭代" width="150" show-overflow-tooltip sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<div class="cell-text"> <div class="cell-text">
@ -46,7 +46,7 @@
<xm-iteration-select v-if="scope.row.dclass==='3'" style="display:inline;" :auto-select="false" :product-id="scope.row.productId" placeholder="迭代" @row-click="editXmMenuSomeFields(scope.row,'iterationId',$event)"></xm-iteration-select> <xm-iteration-select v-if="scope.row.dclass==='3'" style="display:inline;" :auto-select="false" :product-id="scope.row.productId" placeholder="迭代" @row-click="editXmMenuSomeFields(scope.row,'iterationId',$event)"></xm-iteration-select>
</span> </span>
</template> </template>
</el-table-column>
</el-table-column>
<el-table-column prop="finishRate" label="进度" width="100" show-overflow-tooltip sortable> <el-table-column prop="finishRate" label="进度" width="100" show-overflow-tooltip sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.calcType!=='2'"> <div v-if="scope.row.calcType!=='2'">
@ -54,19 +54,19 @@
</div> </div>
</template> </template>
</el-table-column>
</el-table-column>
<el-table-column prop="mmUsername" label="跟进人" width="150" show-overflow-tooltip sortable> <el-table-column prop="mmUsername" label="跟进人" width="150" show-overflow-tooltip sortable>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="mmUserid" username-key="mmUsername" :project-id="linkProjectId" v-model="scope.row" @change="editXmMenuSomeFields(scope.row,'mmUserid',$enent)"></mdp-select-user-xm> <mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="mmUserid" username-key="mmUsername" :project-id="linkProjectId" v-model="scope.row" @change="editXmMenuSomeFields(scope.row,'mmUserid',$enent)"></mdp-select-user-xm>
</template> </template>
</el-table-column> </el-table-column>
</el-table>
</el-table>
</el-row> </el-row>
</el-row>
</el-row>
<tag-dialog ref="tagDialog" :jump="true" @select-confirm="onTagSelected"> <tag-dialog ref="tagDialog" :jump="true" @select-confirm="onTagSelected">
</tag-dialog>
</tag-dialog>
<el-dialog :title="'新增'+calcMenuLabel.label" :visible.sync="addFormVisible" append-to-body modal-append-to-body> <el-dialog :title="'新增'+calcMenuLabel.label" :visible.sync="addFormVisible" append-to-body modal-append-to-body>
<el-form :model="addForm" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" :rules="addFormRules" ref="addForm">
<el-form-item prop="menuName"> <el-form-item prop="menuName">
@ -77,7 +77,7 @@
{{calcMenuLabel.label}}名称 {{calcMenuLabel.label}}名称
</template> </template>
<el-input v-model="addForm.menuName" autocomplete="off" ></el-input> <el-input v-model="addForm.menuName" autocomplete="off" ></el-input>
</el-form-item>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="addFormVisible = false"> </el-button> <el-button @click="addFormVisible = false"> </el-button>
@ -95,8 +95,8 @@
import Vue from "vue"; import Vue from "vue";
import util from "@/common/js/util"; // import util from "@/common/js/util"; //
import treeTool from "@/common/js/treeTool"; // import treeTool from "@/common/js/treeTool"; //
import { initSimpleDicts } from '@/api/mdp/meta/item'; //
import { listXmMenuWithState,addXmMenu,editXmMenuSomeFields,batchDelXmMenu } from '@/api/xm/core/xmMenu';
import { initSimpleDicts } from '@/api/mdp/meta/item'; //
import { listXmMenuWithState,addXmMenu,editXmMenuSomeFields,batchDelXmMenu } from '@/api/xm/core/xmMenu';
import XmMenuWorkload from '@/views/xm/core/components/XmMenuWorkload';// import XmMenuWorkload from '@/views/xm/core/components/XmMenuWorkload';//
import XmGroupDialog from '@/views/xm/core/xmGroup/XmGroupDialog';// import XmGroupDialog from '@/views/xm/core/xmGroup/XmGroupDialog';//
import XmIterationSelect from '@/views/xm/core/components/XmIterationSelect.vue';// import XmIterationSelect from '@/views/xm/core/components/XmIterationSelect.vue';//
@ -106,9 +106,9 @@ import treeTool from "@/common/js/treeTool"; //全局公共库
export default { export default {
computed: { computed: {
...mapGetters(["userInfo", "roles"]),
calcMenuLabel(){
...mapGetters(["userInfo", "roles"]),
calcMenuLabel(){
var params={label:'工作项',icon:'',color:''}; var params={label:'工作项',icon:'',color:''};
if(this.addForm.dclass==='1'){ if(this.addForm.dclass==='1'){
params={label:'史诗',icon:'el-icon-s-promotion',color:'rgb(255, 153, 51)'}; params={label:'史诗',icon:'el-icon-s-promotion',color:'rgb(255, 153, 51)'};
@ -116,30 +116,30 @@ export default {
params={label:'特性',icon:'el-icon-s-flag',color:'rgb(0, 153, 51)'}; params={label:'特性',icon:'el-icon-s-flag',color:'rgb(0, 153, 51)'};
}else if(this.addForm.dclass==='3'){ }else if(this.addForm.dclass==='3'){
params={label:'故事',icon:'el-icon-document',color:' rgb(79, 140, 255)'}; params={label:'故事',icon:'el-icon-document',color:' rgb(79, 140, 255)'};
}
}
return params; return params;
},
},
}, },
props: [
props: [
'parentXmMenu','linkProjectId' 'parentXmMenu','linkProjectId'
], ],
watch: {
watch: {
'parentXmMenu':function(){ 'parentXmMenu':function(){
this.initData(); this.initData();
}, },
'xmMenus':function(){ 'xmMenus':function(){
this.$emit('menus-change',this.xmMenus); this.$emit('menus-change',this.xmMenus);
} }
}, },
data() {
data() {
return{ return{
load:{edit:false,list:false,add:false,del:false},
xmMenus:[],
load:{edit:false,list:false,add:false,del:false},
xmMenus:[],
//xmMenu //xmMenu
editForm: { editForm: {
menuId:'',menuName:'',pmenuId:'',productId:'',remark:'',status:'',online:'',demandUrl:'',codeUrl:'',designUrl:'',docUrl:'',helpUrl:'',operDocUrl:'',ntype:'0',childrenCnt:0,sinceVersion:'',proposerId:'',proposerName:'',dlvl:'0',dtype:'0',priority:'0',source:'1',dclass:'3' menuId:'',menuName:'',pmenuId:'',productId:'',remark:'',status:'',online:'',demandUrl:'',codeUrl:'',designUrl:'',docUrl:'',helpUrl:'',operDocUrl:'',ntype:'0',childrenCnt:0,sinceVersion:'',proposerId:'',proposerName:'',dlvl:'0',dtype:'0',priority:'0',source:'1',dclass:'3'
},
},
addForm:{menuName:'',dclass:'3'}, addForm:{menuName:'',dclass:'3'},
editFormVisible:false, editFormVisible:false,
addFormVisible:false, addFormVisible:false,
@ -155,7 +155,7 @@ export default {
} }
}, //end data }, //end data
methods: {
methods: {
...util, ...util,
selectVisible(row,visible){ selectVisible(row,visible){
if(visible){ if(visible){
@ -170,11 +170,11 @@ export default {
Object.assign(this.editForm,row) Object.assign(this.editForm,row)
}, },
rowClick: function(row, event, column){
rowClick: function(row, event, column){
this.editForm=row this.editForm=row
this.editFormBak=Object.assign({},this.editForm) this.editFormBak=Object.assign({},this.editForm)
}, },
getXmMenus(){ getXmMenus(){
listXmMenuWithState({pmenuId:this.parentXmMenu.menuId}).then(res=>{ listXmMenuWithState({pmenuId:this.parentXmMenu.menuId}).then(res=>{
var tips = res.data.tips; var tips = res.data.tips;
@ -185,30 +185,30 @@ export default {
} }
}) })
}, },
showEdit(row,index){ showEdit(row,index){
this.editForm=row this.editForm=row
this.editFormVisible=true this.editFormVisible=true
}, },
initData(){
this.xmMenus=[]
initData(){
this.xmMenus=[]
if(!this.parentXmMenu || !this.parentXmMenu.menuId){ if(!this.parentXmMenu || !this.parentXmMenu.menuId){
return; return;
} }
var dclass=this.parentXmMenu.dclass; var dclass=this.parentXmMenu.dclass;
if(dclass<3){ if(dclass<3){
this.getXmMenus(); this.getXmMenus();
}
},
addXmMenu( ){
}
},
addXmMenu( ){
this.$refs.addForm.validate().then(valid=>{ this.$refs.addForm.validate().then(valid=>{
var menu={...this.parentXmMenu} var menu={...this.parentXmMenu}
menu.mmUserid=this.userInfo.userid menu.mmUserid=this.userInfo.userid
menu.mmUsername=this.userInfo.username menu.mmUsername=this.userInfo.username
menu.seqNo=this.parentXmMenu.seqNo+"."+(parseInt(this.parentXmMenu.childrenCnt)+1) menu.seqNo=this.parentXmMenu.seqNo+"."+(parseInt(this.parentXmMenu.childrenCnt)+1)
menu.pmenuId=this.parentXmMenu.menuId menu.pmenuId=this.parentXmMenu.menuId
menu.pmenuName=this.parentXmMenu.menuName
menu.pmenuName=this.parentXmMenu.menuName
menu.menuId=null; menu.menuId=null;
menu.menuName=this.addForm.menuName menu.menuName=this.addForm.menuName
menu.dclass=this.addForm.dclass menu.dclass=this.addForm.dclass
@ -217,13 +217,13 @@ export default {
this.load.edit=false this.load.edit=false
var tips=res.data.tips; var tips=res.data.tips;
if(tips.isOk){ if(tips.isOk){
this.$emit('add-submit',res.data.data);// @submit="afterAddSubmit"
this.$emit('add-submit',res.data.data);// @submit="afterAddSubmit"
this.xmMenus.push(res.data.data) this.xmMenus.push(res.data.data)
} }
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' }); this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.edit=false); }).catch( err => this.load.edit=false);
}); });
},
},
showAdd(dclass) { showAdd(dclass) {
this.addForm.menuName=this.parentXmMenu.menuName+'---请修改' this.addForm.menuName=this.parentXmMenu.menuName+'---请修改'
if(dclass){ if(dclass){
@ -231,7 +231,7 @@ export default {
} }
this.addFormVisible=true; this.addFormVisible=true;
}, },
editXmMenuSomeFields(row,fieldName,$event){ editXmMenuSomeFields(row,fieldName,$event){
var params={menuIds:[row.menuId]}; var params={menuIds:[row.menuId]};
if(this.sels.length>0){ if(this.sels.length>0){
@ -277,19 +277,19 @@ export default {
} }
Object.assign(this.editFormBak,this.editForm) Object.assign(this.editFormBak,this.editForm)
}else{ }else{
Object.assign(this.editForm,this.editFormBak) Object.assign(this.editForm,this.editFormBak)
this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})
} }
}) })
}, },
onTagSelected(tags,option){ onTagSelected(tags,option){
if(option.action=='editTagIds'){ if(option.action=='editTagIds'){
this.editXmMenuSomeFields(option.data,"tagIds",tags) this.editXmMenuSomeFields(option.data,"tagIds",tags)
}
}
},
},
//xmMenu //xmMenu
batchDel: function () { batchDel: function () {
if(this.sels.length==0){ if(this.sels.length==0){
@ -303,24 +303,24 @@ export default {
batchDelXmMenu(this.sels).then((res) => { batchDelXmMenu(this.sels).then((res) => {
this.load.del=false; this.load.del=false;
var tips=res.data.tips; var tips=res.data.tips;
if( tips.isOk ){
this.getXmMenus();
if( tips.isOk ){
this.getXmMenus();
} }
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error'}); this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error'});
}).catch( err => this.load.del=false ); }).catch( err => this.load.del=false );
}); });
}, },
copyOne(row,index){ copyOne(row,index){
var params={...row} var params={...row}
params.menuId=null;
params.menuId=null;
params.status="0" params.status="0"
params.menuName=row.menuName+'V' params.menuName=row.menuName+'V'
addXmMenu(params).then(res=>{ addXmMenu(params).then(res=>{
var tips = res.data.tips var tips = res.data.tips
if(tips.isOk){
if(tips.isOk){
var row2=res.data.data var row2=res.data.data
this.xmMenus.splice(index+1,0,row2) this.xmMenus.splice(index+1,0,row2)
this.pageInfo.total=this.pageInfo.total+1 this.pageInfo.total=this.pageInfo.total+1
@ -331,16 +331,16 @@ export default {
}) })
} }
}, //end methods }, //end methods
components: {
TagDialog,
XmMenuWorkload,
components: {
TagDialog,
XmMenuWorkload,
XmIterationSelect, XmIterationSelect,
MdpSelectUserXm, MdpSelectUserXm,
'xm-menu-edit':()=>import('../xmMenu/XmMenuEdit') 'xm-menu-edit':()=>import('../xmMenu/XmMenuEdit')
}, },
mounted() {
mounted() {
this.initData(); this.initData();
initSimpleDicts("all",['menuStatus','demandSource','demandLvl','demandType','priority']).then(res=>{ initSimpleDicts("all",['menuStatus','demandSource','demandLvl','demandType','priority']).then(res=>{
this.dicts=res.data.data; this.dicts=res.data.data;
}) })
@ -348,16 +348,16 @@ export default {
}; };
</script> </script>
<style lang="less" scoped>
<style lang="less" scoped>
.my-cell-bar{ .my-cell-bar{
display: none;
display: none;
} }
.el-table__row td:hover{ .el-table__row td:hover{
.my-cell-bar{ .my-cell-bar{
width:90%; width:90%;
padding-right:0px; padding-right:0px;
display: inline-block;
display: inline-block;
} }
.my-cell-text{ .my-cell-text{
display:none; display:none;

194
src/views/xm/core/xmMenuWorkItem/XmSubTaskList.vue

@ -1,17 +1,17 @@
<template> <template>
<el-row v-show="parentXmMenu.dclass==='3' && xmTasks.length>0">
<el-row v-show="parentXmMenu.dclass==='3' && xmTasks.length>0">
<el-row> <el-row>
<el-table :data="xmTasks" :max-height="400" v-loading="load.list" @selection-change="selsChange" @row-click="rowClick"> <el-table :data="xmTasks" :max-height="400" v-loading="load.list" @selection-change="selsChange" @row-click="rowClick">
<el-table-column type="selection" label="全选"></el-table-column> <el-table-column type="selection" label="全选"></el-table-column>
<el-table-column prop="name" label="名称" min-width="350"> <el-table-column prop="name" label="名称" min-width="350">
<template slot-scope="scope">
<template slot-scope="scope">
<div class="cell-box"> <div class="cell-box">
<div class="icon" :style="{backgroundColor: scope.row.ntype==='1'?'#E6A23C':'#1CC7EA'}"><i style="width:20px;" :class="scope.row.ntype==='1'?'el-icon-time':'el-icon-s-operation'" ></i> <div class="icon" :style="{backgroundColor: scope.row.ntype==='1'?'#E6A23C':'#1CC7EA'}"><i style="width:20px;" :class="scope.row.ntype==='1'?'el-icon-time':'el-icon-s-operation'" ></i>
</div> </div>
<el-link @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" title="编辑任务" >{{scope.row.sortLevel}}&nbsp;{{scope.row.name}}</el-link> <el-link @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" title="编辑任务" >{{scope.row.sortLevel}}&nbsp;{{scope.row.name}}</el-link>
<div class="cell-bar"> <div class="cell-bar">
<el-button @click="copyOne(scope.row,scope.$index)" icon="el-icon-document-copy" circle title="复制一行"></el-button>
<el-button @click="copyOne(scope.row,scope.$index)" icon="el-icon-document-copy" circle title="复制一行"></el-button>
</div> </div>
</div> </div>
</template> </template>
@ -20,43 +20,43 @@
label="状态" label="状态"
type="taskState" type="taskState"
width="100" width="100"
>
<template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" :dict="dicts.taskState" v-model="scope.row.taskState" placeholder="任务状态" style="display:block;" @change="editXmTaskSomeFields(scope.row,'taskState',$event)">
</mdp-select-tag>
>
<template slot-scope="scope">
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" :dict="dicts.taskState" v-model="scope.row.taskState" placeholder="任务状态" style="display:block;" @change="editXmTaskSomeFields(scope.row,'taskState',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="budgetWorkload" label="工时" width="100"> <el-table-column prop="budgetWorkload" label="工时" width="100">
<template slot-scope="scope">
<template slot-scope="scope">
<div class="cell-text"> <div class="cell-text">
<span title="实际工时 / 预估工时 " >{{scope.row.actWorkload>0?scope.row.actWorkload:0}}&nbsp;/&nbsp;{{scope.row.budgetWorkload>0?scope.row.budgetWorkload:0}}</span> <span title="实际工时 / 预估工时 " >{{scope.row.actWorkload>0?scope.row.actWorkload:0}}&nbsp;/&nbsp;{{scope.row.budgetWorkload>0?scope.row.budgetWorkload:0}}</span>
</div> </div>
<span class="cell-bar">
<span class="cell-bar">
<el-button @click="workloadRecord(scope.row)">登记工时</el-button> <el-button @click="workloadRecord(scope.row)">登记工时</el-button>
</span>
</span>
</template> </template>
</el-table-column>
</el-table-column>
<el-table-column prop="rate" label="进度" width="100"> <el-table-column prop="rate" label="进度" width="100">
<template slot-scope="scope">
<el-tag
:type="scope.row.rate >= 100 ? 'success' : 'warning'"
<template slot-scope="scope">
<el-tag
:type="scope.row.rate >= 100 ? 'success' : 'warning'"
> >
{{ (scope.row.rate != null ? scope.row.rate : 0) + "%" }} {{ (scope.row.rate != null ? scope.row.rate : 0) + "%" }}
</el-tag>
</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="优先级" label="优先级"
type="level" type="level"
width="100" width="100"
>
<template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" :dict="dicts.priority" v-model="scope.row.level" placeholder="优先级" style="display:block;" @change="editXmTaskSomeFields(scope.row,'level',$event)">
</mdp-select-tag>
>
<template slot-scope="scope">
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" :dict="dicts.priority" v-model="scope.row.level" placeholder="优先级" style="display:block;" @change="editXmTaskSomeFields(scope.row,'level',$event)">
</mdp-select>
</template> </template>
</el-table-column>
</el-table-column>
<el-table-column <el-table-column
sortable sortable
prop="createUsername" prop="createUsername"
@ -64,7 +64,7 @@
width="120" width="120"
show-overflow-tooltip show-overflow-tooltip
> >
<template slot-scope="scope">
<template slot-scope="scope">
<mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="createUserid" username-key="createUsername" :project-id="scope.row.projectId" v-model="scope.row" @change="editXmTaskSomeFields(scope.row,'creatorUserid',$event)"></mdp-select-user-xm> <mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="createUserid" username-key="createUsername" :project-id="scope.row.projectId" v-model="scope.row" @change="editXmTaskSomeFields(scope.row,'creatorUserid',$event)"></mdp-select-user-xm>
</template> </template>
@ -76,13 +76,13 @@
width="120" width="120"
show-overflow-tooltip show-overflow-tooltip
> >
<template slot-scope="scope">
<template slot-scope="scope">
<mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="executorUserid" username-key="executorUsername" :project-id="scope.row.projectId" v-model="scope.row" @change="selectExecUserConfirm(scope.row,'executorUserid',$event)"></mdp-select-user-xm> <mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="executorUserid" username-key="executorUsername" :project-id="scope.row.projectId" v-model="scope.row" @change="selectExecUserConfirm(scope.row,'executorUserid',$event)"></mdp-select-user-xm>
</template> </template>
</el-table-column> </el-table-column>
</el-table>
</el-table>
</el-row> </el-row>
<!--编辑 XmTask xm_task界面--> <!--编辑 XmTask xm_task界面-->
<el-dialog <el-dialog
title="编辑任务" title="编辑任务"
@ -97,24 +97,24 @@
:xm-project="{id:editForm.projectId,name:editForm.projectName}" :xm-project="{id:editForm.projectId,name:editForm.projectName}"
:xm-task="editForm" :xm-task="editForm"
:visible="editFormVisible" :visible="editFormVisible"
@cancel="editFormVisible = false"
@cancel="editFormVisible = false"
@submit="afterEditSubmit" @submit="afterEditSubmit"
@edit-fields="afterEditSubmit" @edit-fields="afterEditSubmit"
></xm-task-edit>
></xm-task-edit>
</el-dialog> </el-dialog>
<el-dialog title="新增任务" :visible.sync="addFormVisible" append-to-body modal-append-to-body> <el-dialog title="新增任务" :visible.sync="addFormVisible" append-to-body modal-append-to-body>
<el-form :model="addForm" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" :rules="addFormRules" ref="addForm">
<el-form-item label="上级计划" prop="parentTaskname">
{{addForm.parentTaskname?addForm.parentTaskname:'无上级'}}
<el-form-item label="上级计划" prop="parentTaskname">
{{addForm.parentTaskname?addForm.parentTaskname:'无上级'}}
<el-button <el-button
@click="selectParentTaskVisible=true"
@click="selectParentTaskVisible=true"
title="选择上级计划" title="选择上级计划"
type="text" type="text"
icon="el-icon-upload2"
> 选择上级计划 </el-button>
</el-form-item>
icon="el-icon-upload2"
> 选择上级计划 </el-button>
</el-form-item>
<el-form-item label="任务名称" prop="name"> <el-form-item label="任务名称" prop="name">
<template slot="label"> <template slot="label">
<div class="icon" style="background-color: #1CC7EA;"> <div class="icon" style="background-color: #1CC7EA;">
<i class="el-icon-s-operation"></i> <i class="el-icon-s-operation"></i>
@ -122,42 +122,42 @@
任务名称 任务名称
</template> </template>
<el-input v-model="addForm.name" autocomplete="off" ></el-input> <el-input v-model="addForm.name" autocomplete="off" ></el-input>
</el-form-item>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer">
<div slot="footer" class="dialog-footer">
<el-button @click="addFormVisible=false">关闭</el-button> <el-button @click="addFormVisible=false">关闭</el-button>
<el-button type="primary" @click="addXmTask" v-loading="load.edit" :disabled="load.edit"> </el-button> <el-button type="primary" @click="addXmTask" v-loading="load.edit" :disabled="load.edit"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="选择新的上级计划" append-to-body :visible.sync="selectParentTaskVisible" width="60%" top="20px"> <el-dialog title="选择新的上级计划" append-to-body :visible.sync="selectParentTaskVisible" width="60%" top="20px">
<xm-phase-select :sel-project="{id:this.linkProjectId,name:''}" @select="onSelectedParentTask"></xm-phase-select> <xm-phase-select :sel-project="{id:this.linkProjectId,name:''}" @select="onSelectedParentTask"></xm-phase-select>
</el-dialog> </el-dialog>
<xm-workload-record-dialog ref="workloadRecordDialog" @submi="afterWorkloadSubmit" @edit-xm-task-some-fields="onEditXmTaskSomeFields" @submit="onWorkloadSubmit"></xm-workload-record-dialog> <xm-workload-record-dialog ref="workloadRecordDialog" @submi="afterWorkloadSubmit" @edit-xm-task-some-fields="onEditXmTaskSomeFields" @submit="onWorkloadSubmit"></xm-workload-record-dialog>
</el-row>
</el-row>
</template> </template>
<script> <script>
import Vue from "vue"; import Vue from "vue";
import util from "@/common/js/util"; // import util from "@/common/js/util"; //
import treeTool from "@/common/js/treeTool"; // import treeTool from "@/common/js/treeTool"; //
import { initSimpleDicts } from '@/api/mdp/meta/item'; //
import { initSimpleDicts } from '@/api/mdp/meta/item'; //
import { listXmTask ,addTask,editXmTaskSomeFields,batchDelXmTask } from '@/api/xm/core/xmTask'; import { listXmTask ,addTask,editXmTaskSomeFields,batchDelXmTask } from '@/api/xm/core/xmTask';
import XmGroupDialog from '@/views/xm/core/xmGroup/XmGroupDialog';// import XmGroupDialog from '@/views/xm/core/xmGroup/XmGroupDialog';//
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import XmWorkloadRecordDialog from '../xmWorkload/XmWorkloadRecordDialog.vue'; import XmWorkloadRecordDialog from '../xmWorkload/XmWorkloadRecordDialog.vue';
import XmPhaseSelect from "../xmTask/XmPhaseSelect.vue";
import XmPhaseSelect from "../xmTask/XmPhaseSelect.vue";
import { addXmTaskExecuser } from '@/api/xm/core/xmTaskExecuser'; import { addXmTaskExecuser } from '@/api/xm/core/xmTaskExecuser';
import MdpSelectUserXm from '@/views/xm/core/components/MdpSelectUserXm/index';// import MdpSelectUserXm from '@/views/xm/core/components/MdpSelectUserXm/index';//
export default { export default {
computed: { computed: {
...mapGetters(["userInfo", "roles"]),
calcMenuLabel(){
...mapGetters(["userInfo", "roles"]),
calcMenuLabel(){
var params={label:'工作项',icon:'',color:''}; var params={label:'工作项',icon:'',color:''};
if(this.parentXmMenu.dclass==='0'){ if(this.parentXmMenu.dclass==='0'){
params={label:'史诗',icon:'el-icon-s-promotion',color:'rgb(255, 153, 51)'}; params={label:'史诗',icon:'el-icon-s-promotion',color:'rgb(255, 153, 51)'};
@ -165,27 +165,27 @@ export default {
params={label:'特性',icon:'el-icon-s-flag',color:'rgb(0, 153, 51)'}; params={label:'特性',icon:'el-icon-s-flag',color:'rgb(0, 153, 51)'};
}else if(this.parentXmMenu.dclass==='2'){ }else if(this.parentXmMenu.dclass==='2'){
params={label:'故事',icon:'el-icon-document',color:' rgb(79, 140, 255)'}; params={label:'故事',icon:'el-icon-document',color:' rgb(79, 140, 255)'};
}
}
return params; return params;
},
},
}, },
props: [
props: [
'parentXmMenu','linkProjectId' 'parentXmMenu','linkProjectId'
], ],
watch: {
watch: {
'parentXmMenu':function(){ 'parentXmMenu':function(){
this.initData(); this.initData();
}, },
'xmTasks':function(){ 'xmTasks':function(){
this.$emit("tasks-change",this.xmTasks) this.$emit("tasks-change",this.xmTasks)
} }
}, },
data() {
data() {
return{ return{
load:{edit:false,list:false,add:false,del:false,},
load:{edit:false,list:false,add:false,del:false,},
xmTasks:[], xmTasks:[],
//xmTask //xmTask
editForm: { editForm: {
id: "", id: "",
@ -221,13 +221,13 @@ export default {
actEndTime: "", actEndTime: "",
uniInnerPrice:80,uniOutPrice:100, uniInnerPrice:80,uniOutPrice:100,
}, },
editFormVisible:false,
editFormVisible:false,
addForm:{name:'',parentTaskid:'',parentTaskname:''}, addForm:{name:'',parentTaskid:'',parentTaskname:''},
addFormRules: { addFormRules: {
name: [ name: [
{ required: true, message: '任务名称不能为空', trigger: 'change' }, { required: true, message: '任务名称不能为空', trigger: 'change' },
{ min: 2, max: 150, message: '任务名称长度在 2 到 150 个字符', trigger: 'change' },// { min: 2, max: 150, message: '任务名称长度在 2 到 150 个字符', trigger: 'change' },//
],
],
}, },
addFormVisible:false, addFormVisible:false,
sels:[], sels:[],
@ -244,7 +244,7 @@ export default {
} }
}, //end data }, //end data
methods: {
methods: {
selectVisible(row,visible){ selectVisible(row,visible){
if(visible){ if(visible){
this.rowClick(row) this.rowClick(row)
@ -268,24 +268,24 @@ export default {
this.editForm=row this.editForm=row
this.$refs.workloadRecordDialog.open(row) this.$refs.workloadRecordDialog.open(row)
}, },
initData(){
this.xmTasks=[]
initData(){
this.xmTasks=[]
if(!this.parentXmMenu || !this.parentXmMenu.menuId){ if(!this.parentXmMenu || !this.parentXmMenu.menuId){
return; return;
} }
var dclass=this.parentXmMenu.dclass; var dclass=this.parentXmMenu.dclass;
if(dclass==='3'){ if(dclass==='3'){
this.getXmTasks(); this.getXmTasks();
}
},
addXmTask(){
this.$refs.addForm.validate().then(valid=>{
}
},
addXmTask(){
this.$refs.addForm.validate().then(valid=>{
var task={...this.addForm,menuId:this.parentXmMenu.menuId,menuName:this.parentXmMenu.menuName,productId:this.parentXmMenu.productId,iterationId:this.parentXmMenu.iterationId,iterationName:this.parentXmMenu.iterationName} var task={...this.addForm,menuId:this.parentXmMenu.menuId,menuName:this.parentXmMenu.menuName,productId:this.parentXmMenu.productId,iterationId:this.parentXmMenu.iterationId,iterationName:this.parentXmMenu.iterationName}
task.priority='3' task.priority='3'
task.verNum=this.parentXmMenu.sinceVersion; task.verNum=this.parentXmMenu.sinceVersion;
task.pverNum=this.parentXmMenu.sinceVersion; task.pverNum=this.parentXmMenu.sinceVersion;
task.createUserid=this.userInfo.userid task.createUserid=this.userInfo.userid
task.createUsername=this.userInfo.username
task.createUsername=this.userInfo.username
task.qtype="1" task.qtype="1"
task.ntype="0" task.ntype="0"
task.ptype="0" task.ptype="0"
@ -298,27 +298,27 @@ export default {
var tips=res.data.tips; var tips=res.data.tips;
if(tips.isOk){ if(tips.isOk){
this.$emit('submit',res.data.data);// @submit="afterAddSubmit" this.$emit('submit',res.data.data);// @submit="afterAddSubmit"
this.xmTasks.push(res.data.data)
this.xmTasks.push(res.data.data)
} }
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' }); this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.edit=false); }).catch( err => this.load.edit=false);
}) })
},
},
showAdd() { showAdd() {
this.addForm.name=this.parentXmMenu.menuName this.addForm.name=this.parentXmMenu.menuName
this.addFormVisible=true; this.addFormVisible=true;
this.addForm.parentTaskid='' this.addForm.parentTaskid=''
this.addForm.parentTaskname='' this.addForm.parentTaskname=''
}, },
showEdit(row,index){ showEdit(row,index){
this.editForm=row this.editForm=row
this.editFormVisible=true this.editFormVisible=true
}, },
afterEditSubmit(row){ afterEditSubmit(row){
Object.assign(this.editForm,row) Object.assign(this.editForm,row)
},
},
editXmTaskSomeFields(row,fieldName,$event){ editXmTaskSomeFields(row,fieldName,$event){
var params={ids:[row.id]}; var params={ids:[row.id]};
if(this.sels.length>0){ if(this.sels.length>0){
@ -365,17 +365,17 @@ export default {
}) })
}else{ }else{
Object.assign(row,params) Object.assign(row,params)
} }
Object.assign(this.editFormBak,this.editForm) Object.assign(this.editFormBak,this.editForm)
}else{ }else{
Object.assign(this.editForm,this.editFormBak) Object.assign(this.editForm,this.editFormBak)
this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})
} }
}) })
}, },
//xmTask //xmTask
batchDel: function () { batchDel: function () {
if(this.sels.length==0){ if(this.sels.length==0){
@ -390,8 +390,8 @@ export default {
.then((res) => { .then((res) => {
this.load.del = false; this.load.del = false;
var tips = res.data.tips; var tips = res.data.tips;
if (tips.isOk) {
this.getXmTasks()
if (tips.isOk) {
this.getXmTasks()
} }
this.$notify({ this.$notify({
showClose: true, showClose: true,
@ -403,11 +403,11 @@ export default {
}); });
}, },
rowClick: function (row) { rowClick: function (row) {
this.editForm = row;
this.editForm = row;
this.editFormBak=Object.assign({},this.editForm) this.editFormBak=Object.assign({},this.editForm)
// this.$emit('row-click',row,);// @row-click="rowClick" // this.$emit('row-click',row,);// @row-click="rowClick"
}, },
formatterPriorityDicts(cellValue){ formatterPriorityDicts(cellValue){
if(!cellValue && cellValue!=='0'){ if(!cellValue && cellValue!=='0'){
return [] return []
@ -472,9 +472,9 @@ export default {
afterEditSubmit(row){ afterEditSubmit(row){
Object.assign(this.editForm,row) Object.assign(this.editForm,row)
}, },
onEditXmTaskSomeFields(data){ onEditXmTaskSomeFields(data){
Object.assign(this.editForm,data) Object.assign(this.editForm,data)
this.$emit('edit-xm-task-some-fields',data); this.$emit('edit-xm-task-some-fields',data);
}, },
@ -487,16 +487,16 @@ export default {
this.addForm.parentTaskname=task.name this.addForm.parentTaskname=task.name
this.selectParentTaskVisible=false this.selectParentTaskVisible=false
}, },
// //
selectExecUserConfirm(row,fieldName,users) { selectExecUserConfirm(row,fieldName,users) {
var user= users[0]; var user= users[0];
var params={}
var params={}
params.taskId = row.id; params.taskId = row.id;
params.projectId=row.projectId
params.projectId=row.projectId
params.projectName=row.projectName params.projectName=row.projectName
params.taskName=row.name
params.taskName=row.name
params.quoteStartTime=row.startTime params.quoteStartTime=row.startTime
params.quoteEndTime=row.endTime params.quoteEndTime=row.endTime
params.quoteAmount=row.budgetAt params.quoteAmount=row.budgetAt
@ -505,7 +505,7 @@ export default {
params.username=user.username params.username=user.username
addXmTaskExecuser(params).then(res=>{ addXmTaskExecuser(params).then(res=>{
var tips = res.data.tips var tips = res.data.tips
if(tips.isOk){
if(tips.isOk){
row.executorUserid=user.userid row.executorUserid=user.userid
row.executorUsername=user.username row.executorUsername=user.username
row.exeUserids=user.userid row.exeUserids=user.userid
@ -515,27 +515,27 @@ export default {
row.executorUsername=this.editFormBak.executorUsername row.executorUsername=this.editFormBak.executorUsername
this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:'error'}) this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:'error'})
} }
})
},
})
},
copyOne(row,index){ copyOne(row,index){
var params={...row} var params={...row}
params.id=null; params.id=null;
params.createUserid=this.userInfo.userid params.createUserid=this.userInfo.userid
params.createUsername=this.userInfo.username
params.createUsername=this.userInfo.username
params.executorUserid=null params.executorUserid=null
params.executorUseranme=null params.executorUseranme=null
params.execUserids=null; params.execUserids=null;
params.execUsername=null;
params.execUsername=null;
params.actWorkload=null; params.actWorkload=null;
params.actAt=null; params.actAt=null;
params.efunds=0
params.efunds=0
params.name=row.name+'V' params.name=row.name+'V'
addTask(params).then(res=>{ addTask(params).then(res=>{
var tips = res.data.tips var tips = res.data.tips
if(tips.isOk){
if(tips.isOk){
var row2=res.data.data var row2=res.data.data
this.xmTasks.splice(index+1,0,row2) this.xmTasks.splice(index+1,0,row2)
this.pageInfo.total=this.pageInfo.total+1 this.pageInfo.total=this.pageInfo.total+1
@ -546,12 +546,12 @@ export default {
}) })
} }
}, //end methods }, //end methods
components: {
components: {
XmWorkloadRecordDialog,XmGroupDialog,'xm-task-edit':()=>import('../xmTask/XmTaskEdit'),XmPhaseSelect,MdpSelectUserXm, XmWorkloadRecordDialog,XmGroupDialog,'xm-task-edit':()=>import('../xmTask/XmTaskEdit'),XmPhaseSelect,MdpSelectUserXm,
}, },
mounted() {
mounted() {
this.initData(); this.initData();
initSimpleDicts( "all", ["planType","taskType","priority","xmTaskSettleSchemel","priority","taskState" ]).then((res) => { initSimpleDicts( "all", ["planType","taskType","priority","xmTaskSettleSchemel","priority","taskState" ]).then((res) => {
this.dicts = res.data.data; this.dicts = res.data.data;
}); });
@ -561,14 +561,14 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.my-cell-bar{ .my-cell-bar{
display: none;
display: none;
} }
.el-table__row td:hover{ .el-table__row td:hover{
.my-cell-bar{ .my-cell-bar{
width:90%; width:90%;
padding-right:0px; padding-right:0px;
display: inline-block;
display: inline-block;
} }
.my-cell-text{ .my-cell-text{
display:none; display:none;

2
src/views/xm/core/xmProduct/XmProductMng.vue

@ -265,7 +265,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="pstatus" label="状态" width="100" sortable :formatter="formatPstatus" fixed="left"> <el-table-column prop="pstatus" label="状态" width="100" sortable :formatter="formatPstatus" fixed="left">
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag placeholder="状态" item-code="xmProductPstatus" v-model="scope.row.pstatus" effect="dark"></mdp-select-tag>
<mdp-select show-style="tag" placeholder="状态" item-code="xmProductPstatus" v-model="scope.row.pstatus" effect="dark"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="finishRate" label="进度" width="180" sortable> <el-table-column prop="finishRate" label="进度" width="180" sortable>

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

@ -238,12 +238,12 @@
</el-table-column> </el-table-column>
<el-table-column prop="status" label="状态" width="100" sortable fixed="left"> <el-table-column prop="status" label="状态" width="100" sortable fixed="left">
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="projectStatus" :disabled="true" v-model="scope.row.status"></mdp-select-tag>
<mdp-select show-style="tag" item-code="projectStatus" :disabled="true" v-model="scope.row.status"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="bizFlowState" label="审批状态" min-width="120" > <el-table-column prop="bizFlowState" label="审批状态" min-width="120" >
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="bizFlowState" :disabled="true" v-model="scope.row.bizFlowState"></mdp-select-tag>
<mdp-select show-style="tag" item-code="bizFlowState" :disabled="true" v-model="scope.row.bizFlowState"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="finishRate" label="进度" width="180" sortable> <el-table-column prop="finishRate" label="进度" width="180" sortable>

10
src/views/xm/core/xmQuestion/XmQuestionEdit.vue

@ -101,7 +101,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="复现频率" prop="repRate"> <el-form-item label="复现频率" prop="repRate">
<mdp-select-tag item-code="bugRepRate" v-model="editForm.repRate" @change="editXmQuestionSomeFields(editForm,'repRate',$event)"></mdp-select-tag>
<mdp-select show-style="tag" item-code="bugRepRate" v-model="editForm.repRate" @change="editXmQuestionSomeFields(editForm,'repRate',$event)"></mdp-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -116,26 +116,26 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="严重程度" prop="bugSeverity"> <el-form-item label="严重程度" prop="bugSeverity">
<mdp-select-tag item-code="bugSeverity" v-model="editForm.bugSeverity" @change="editXmQuestionSomeFields(editForm,'bugSeverity',$event)"></mdp-select-tag>
<mdp-select show-style="tag" item-code="bugSeverity" v-model="editForm.bugSeverity" @change="editXmQuestionSomeFields(editForm,'bugSeverity',$event)"></mdp-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="原因分析" prop="bugReason"> <el-form-item label="原因分析" prop="bugReason">
<mdp-select-tag item-code="bugReason" v-model="editForm.bugReason" @change="editXmQuestionSomeFields(editForm,'bugReason',$event)"></mdp-select-tag>
<mdp-select show-style="tag" item-code="bugReason" v-model="editForm.bugReason" @change="editXmQuestionSomeFields(editForm,'bugReason',$event)"></mdp-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="解决方案" prop="solution"> <el-form-item label="解决方案" prop="solution">
<mdp-select-tag item-code="bugSolution" v-model="editForm.solution" @change="editXmQuestionSomeFields(editForm,'solution',$event)"></mdp-select-tag>
<mdp-select show-style="tag" item-code="bugSolution" v-model="editForm.solution" @change="editXmQuestionSomeFields(editForm,'solution',$event)"></mdp-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="缺陷类别" prop="bugType"> <el-form-item label="缺陷类别" prop="bugType">
<mdp-select-tag item-code="bugType" v-model="editForm.bugType" @change="editXmQuestionSomeFields(editForm,'bugType',$event)"></mdp-select-tag>
<mdp-select show-style="tag" item-code="bugType" v-model="editForm.bugType" @change="editXmQuestionSomeFields(editForm,'bugType',$event)"></mdp-select>
</el-form-item> </el-form-item>

16
src/views/xm/core/xmQuestion/XmQuestionMng.vue

@ -150,26 +150,26 @@
</el-table-column> </el-table-column>
<el-table-column prop="bugStatus" label="状态" width="100"> <el-table-column prop="bugStatus" label="状态" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" v-model="scope.row.bugStatus" placeholder="类型" item-code="bugStatus" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'bugStatus',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" v-model="scope.row.bugStatus" placeholder="类型" item-code="bugStatus" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'bugStatus',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="priority" label="优先级" width="100"> <el-table-column prop="priority" label="优先级" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" v-model="scope.row.priority" placeholder="优先级" item-code="priority" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'priority',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" v-model="scope.row.priority" placeholder="优先级" item-code="priority" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'priority',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="solution" label="解决方案" width="100"> <el-table-column prop="solution" label="解决方案" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" v-model="scope.row.solution" placeholder="类型" item-code="bugSolution" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'solution',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" v-model="scope.row.solution" placeholder="类型" item-code="bugSolution" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'solution',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="bugSeverity" label="严重程度" width="100"> <el-table-column prop="bugSeverity" label="严重程度" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" v-model="scope.row.bugSeverity" placeholder="类型" item-code="bugSeverity" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'bugSeverity',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" v-model="scope.row.bugSeverity" placeholder="类型" item-code="bugSeverity" style="display:block;" @change="editXmQuestionSomeFields(scope.row,'bugSeverity',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<!-- <!--

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

@ -392,8 +392,8 @@
width="100" width="100"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="taskState" v-model="scope.row.taskState" placeholder="任务状态" style="display:block;" @change="editXmTaskSomeFields(scope.row,'taskState',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="taskState" v-model="scope.row.taskState" placeholder="任务状态" style="display:block;" @change="editXmTaskSomeFields(scope.row,'taskState',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column sortable prop="rate" label="进度" width="100"> <el-table-column sortable prop="rate" label="进度" width="100">
@ -484,8 +484,8 @@
width="100" width="100"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="priority" v-model="scope.row.level" placeholder="优先级" style="display:block;" @change="editXmTaskSomeFields(scope.row,'level',$event)">
</mdp-select-tag>
<mdp-select show-style="tag" size="mini" @visible-change="selectVisible(scope.row,$event)" item-code="priority" v-model="scope.row.level" placeholder="优先级" style="display:block;" @change="editXmTaskSomeFields(scope.row,'level',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>

174
src/views/xm/core/xmTaskWorkItem/XmSubTaskList.vue

@ -3,63 +3,63 @@
<el-row> <el-row>
<el-table :data="xmTasks" :max-height="400" v-loading="load.list" @selection-change="selsChange" @row-click="rowClick"> <el-table :data="xmTasks" :max-height="400" v-loading="load.list" @selection-change="selsChange" @row-click="rowClick">
<el-table-column type="selection" label="全选"></el-table-column> <el-table-column type="selection" label="全选"></el-table-column>
<el-table-column prop="name" label="名称" min-width="300">
<template slot-scope="scope">
<el-table-column prop="name" label="名称" min-width="300">
<template slot-scope="scope">
<div class="cell-box"> <div class="cell-box">
<div class="icon" :style="{backgroundColor: scope.row.ntype==='1'?'#E6A23C':'#1CC7EA'}"><i style="width:20px;" :class="scope.row.ntype==='1'?'el-icon-time':'el-icon-s-operation'" ></i> <div class="icon" :style="{backgroundColor: scope.row.ntype==='1'?'#E6A23C':'#1CC7EA'}"><i style="width:20px;" :class="scope.row.ntype==='1'?'el-icon-time':'el-icon-s-operation'" ></i>
</div> </div>
<span > <span >
<el-link @click="showEdit(scope.row)">{{scope.row.sortLevel}}&nbsp;{{scope.row.name}}</el-link> <el-link @click="showEdit(scope.row)">{{scope.row.sortLevel}}&nbsp;{{scope.row.name}}</el-link>
</span>
</span>
<div class="cell-bar"> <div class="cell-bar">
<el-button @click="copyOne(scope.row,scope.$index)" icon="el-icon-document-copy" circle title="复制一行"></el-button>
<el-button @click="copyOne(scope.row,scope.$index)" icon="el-icon-document-copy" circle title="复制一行"></el-button>
</div> </div>
</div> </div>
</template> </template>
</el-table-column>
</el-table-column>
<el-table-column <el-table-column
label="状态" label="状态"
type="taskState" type="taskState"
width="100" width="100"
>
<template slot-scope="scope">
<mdp-select-tag :dict="dicts.taskState" v-model="scope.row.taskState" placeholder="任务状态" style="display:block;" @change="editXmTaskSomeFields(scope.row,'taskState',$event)">
</mdp-select-tag>
>
<template slot-scope="scope">
<mdp-select show-style="tag" :dict="dicts.taskState" v-model="scope.row.taskState" placeholder="任务状态" style="display:block;" @change="editXmTaskSomeFields(scope.row,'taskState',$event)">
</mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="budgetWorkload" label="工时" width="100"> <el-table-column prop="budgetWorkload" label="工时" width="100">
<template slot-scope="scope">
<template slot-scope="scope">
<div class="cell-text"> <div class="cell-text">
<span title="实际工时 / 预估工时 " >{{scope.row.actWorkload>0?scope.row.actWorkload:0}}&nbsp;/&nbsp;{{scope.row.budgetWorkload>0?scope.row.budgetWorkload:0}}</span> <span title="实际工时 / 预估工时 " >{{scope.row.actWorkload>0?scope.row.actWorkload:0}}&nbsp;/&nbsp;{{scope.row.budgetWorkload>0?scope.row.budgetWorkload:0}}</span>
</div> </div>
<span class="cell-bar">
<span class="cell-bar">
<el-button @click="workloadRecord(scope.row)">登记工时</el-button> <el-button @click="workloadRecord(scope.row)">登记工时</el-button>
</span>
</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="rate" label="进度" width="100"> <el-table-column prop="rate" label="进度" width="100">
<template slot-scope="scope">
<el-tag
:type="scope.row.rate >= 100 ? 'success' : 'warning'"
<template slot-scope="scope">
<el-tag
:type="scope.row.rate >= 100 ? 'success' : 'warning'"
> >
{{ (scope.row.rate != null ? scope.row.rate : 0) + "%" }} {{ (scope.row.rate != null ? scope.row.rate : 0) + "%" }}
</el-tag>
</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="优先级" label="优先级"
type="level" type="level"
width="100" width="100"
>
<template slot-scope="scope">
<mdp-select-tag :dict="dicts.priority" v-model="scope.row.level" placeholder="优先级" style="display:block;" @change="editXmTaskSomeFields(scope.row,'level',$event)">
</mdp-select-tag>
>
<template slot-scope="scope">
<mdp-select show-style="tag" :dict="dicts.priority" v-model="scope.row.level" placeholder="优先级" style="display:block;" @change="editXmTaskSomeFields(scope.row,'level',$event)">
</mdp-select>
</template> </template>
</el-table-column>
</el-table-column>
<el-table-column <el-table-column
sortable sortable
prop="createUsername" prop="createUsername"
@ -67,7 +67,7 @@
width="120" width="120"
show-overflow-tooltip show-overflow-tooltip
> >
<template slot-scope="scope">
<template slot-scope="scope">
<mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="creatorUserid" username-key="creatorUsername" :project-id="scope.row.projectId" v-model="scope.row" @change="editXmTaskSomeFields(scope.row,'creatorUserid',$event)"></mdp-select-user-xm> <mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="creatorUserid" username-key="creatorUsername" :project-id="scope.row.projectId" v-model="scope.row" @change="editXmTaskSomeFields(scope.row,'creatorUserid',$event)"></mdp-select-user-xm>
</template> </template>
@ -79,30 +79,30 @@
width="120" width="120"
show-overflow-tooltip show-overflow-tooltip
> >
<template slot-scope="scope">
<template slot-scope="scope">
<mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="executorUserid" username-key="executorUsername" :project-id="scope.row.projectId" v-model="scope.row" @change="selectExecUserConfirm(scope.row,'executorUserid',$event)"></mdp-select-user-xm> <mdp-select-user-xm @visible-change="selectVisible(scope.row,$event)" userid-key="executorUserid" username-key="executorUsername" :project-id="scope.row.projectId" v-model="scope.row" @change="selectExecUserConfirm(scope.row,'executorUserid',$event)"></mdp-select-user-xm>
</template> </template>
</el-table-column> </el-table-column>
</el-table>
</el-table>
</el-row> </el-row>
<el-dialog :title="ntype==='0'?'新增任务':'新增计划'" :visible.sync="addFormVisible" append-to-body modal-append-to-body> <el-dialog :title="ntype==='0'?'新增任务':'新增计划'" :visible.sync="addFormVisible" append-to-body modal-append-to-body>
<el-form :model="addForm" :rules="addFormRules" ref="addForm"> <el-form :model="addForm" :rules="addFormRules" ref="addForm">
<el-form-item label="任务名称" prop="name"> <el-form-item label="任务名称" prop="name">
<template slot="label"> <template slot="label">
<div class="icon" :style="{backgroundColor: ntype==='1'?'#E6A23C':'#409EFF'}"> <div class="icon" :style="{backgroundColor: ntype==='1'?'#E6A23C':'#409EFF'}">
<i :class=" ntype==='1'?'el-icon-time':'el-icon-s-operation'" ></i> <i :class=" ntype==='1'?'el-icon-time':'el-icon-s-operation'" ></i>
</div> {{ntype==='1'?'计划名称':'任务名称'}} </div> {{ntype==='1'?'计划名称':'任务名称'}}
</template> </template>
<el-input v-model="addForm.name" autocomplete="off" ></el-input> <el-input v-model="addForm.name" autocomplete="off" ></el-input>
</el-form-item>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="addFormVisible = false"> </el-button> <el-button @click="addFormVisible = false"> </el-button>
<el-button type="primary" @click="addXmTask" v-loading="load.edit" :disabled="load.edit"> </el-button> <el-button type="primary" @click="addXmTask" v-loading="load.edit" :disabled="load.edit"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!--编辑 XmTask xm_task界面--> <!--编辑 XmTask xm_task界面-->
<el-dialog <el-dialog
title="编辑任务" title="编辑任务"
@ -117,34 +117,34 @@
:xm-project="{id:editForm.projectId,name:editForm.projectName}" :xm-project="{id:editForm.projectId,name:editForm.projectName}"
:xm-task="editForm" :xm-task="editForm"
:visible="editFormVisible" :visible="editFormVisible"
@cancel="editFormVisible = false"
@cancel="editFormVisible = false"
@submit="onEditXmTaskSomeFields" @submit="onEditXmTaskSomeFields"
@edit-fields="onEditXmTaskSomeFields" @edit-fields="onEditXmTaskSomeFields"
></xm-task-edit> ></xm-task-edit>
</el-dialog>
</el-dialog>
<xm-workload-record-dialog ref="workloadRecordDialog" @submi="afterWorkloadSubmit" @edit-xm-task-some-fields="onEditXmTaskSomeFields" @submit="onWorkloadSubmit"></xm-workload-record-dialog> <xm-workload-record-dialog ref="workloadRecordDialog" @submi="afterWorkloadSubmit" @edit-xm-task-some-fields="onEditXmTaskSomeFields" @submit="onWorkloadSubmit"></xm-workload-record-dialog>
</el-row>
</el-row>
</template> </template>
<script> <script>
import Vue from "vue"; import Vue from "vue";
import util from "@/common/js/util"; // import util from "@/common/js/util"; //
import treeTool from "@/common/js/treeTool"; // import treeTool from "@/common/js/treeTool"; //
import { initSimpleDicts } from '@/api/mdp/meta/item'; //
import { initSimpleDicts } from '@/api/mdp/meta/item'; //
import { listXmTask ,addTask,editXmTaskSomeFields,batchDelXmTask } from '@/api/xm/core/xmTask'; import { listXmTask ,addTask,editXmTaskSomeFields,batchDelXmTask } from '@/api/xm/core/xmTask';
import XmGroupDialog from '@/views/xm/core/xmGroup/XmGroupDialog';// import XmGroupDialog from '@/views/xm/core/xmGroup/XmGroupDialog';//
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import XmWorkloadRecordDialog from '../xmWorkload/XmWorkloadRecordDialog.vue'; import XmWorkloadRecordDialog from '../xmWorkload/XmWorkloadRecordDialog.vue';
import { addXmTaskExecuser } from '@/api/xm/core/xmTaskExecuser'; import { addXmTaskExecuser } from '@/api/xm/core/xmTaskExecuser';
import MdpSelectUserXm from '@/views/xm/core/components/MdpSelectUserXm/index';// import MdpSelectUserXm from '@/views/xm/core/components/MdpSelectUserXm/index';//
export default { export default {
computed: { computed: {
...mapGetters(["userInfo", "roles"]),
calcMenuLabel(){
...mapGetters(["userInfo", "roles"]),
calcMenuLabel(){
var params={label:'工作项',icon:'',color:''}; var params={label:'工作项',icon:'',color:''};
if(this.parentXmTask.dclass==='0'){ if(this.parentXmTask.dclass==='0'){
params={label:'史诗',icon:'el-icon-s-promotion',color:'rgb(255, 153, 51)'}; params={label:'史诗',icon:'el-icon-s-promotion',color:'rgb(255, 153, 51)'};
@ -152,28 +152,28 @@ export default {
params={label:'特性',icon:'el-icon-s-flag',color:'rgb(0, 153, 51)'}; params={label:'特性',icon:'el-icon-s-flag',color:'rgb(0, 153, 51)'};
}else if(this.parentXmTask.dclass==='2'){ }else if(this.parentXmTask.dclass==='2'){
params={label:'故事',icon:'el-icon-document',color:' rgb(79, 140, 255)'}; params={label:'故事',icon:'el-icon-document',color:' rgb(79, 140, 255)'};
}
}
return params; return params;
},
},
}, },
props: [
props: [
'parentXmTask','linkProjectId' 'parentXmTask','linkProjectId'
], ],
watch: {
watch: {
'parentXmTask':function(){ 'parentXmTask':function(){
this.initData(); this.initData();
}, },
'xmTasks':function(){ 'xmTasks':function(){
this.$emit("tasks-change",this.xmTasks) this.$emit("tasks-change",this.xmTasks)
} }
}, },
data() {
data() {
return{ return{
load:{edit:false,list:false,add:false,del:false,},
load:{edit:false,list:false,add:false,del:false,},
xmTasks:[], xmTasks:[],
editFormVisible:false, editFormVisible:false,
//xmTask //xmTask
editForm: { editForm: {
id: "", id: "",
@ -209,7 +209,7 @@ export default {
actEndTime: "", actEndTime: "",
uniInnerPrice:80,uniOutPrice:100, uniInnerPrice:80,uniOutPrice:100,
}, },
editFormBak: { editFormBak: {
id: "", id: "",
name: "", name: "",
@ -265,8 +265,8 @@ export default {
} }
}, //end data }, //end data
methods: {
methods: {
selectVisible(row,visible){ selectVisible(row,visible){
if(visible){ if(visible){
this.rowClick(row) this.rowClick(row)
@ -290,54 +290,54 @@ export default {
this.editForm=row this.editForm=row
this.$refs.workloadRecordDialog.open(row) this.$refs.workloadRecordDialog.open(row)
}, },
initData(){
this.xmTasks=[]
initData(){
this.xmTasks=[]
if(!this.parentXmTask || !this.parentXmTask.id){ if(!this.parentXmTask || !this.parentXmTask.id){
return; return;
} }
this.getXmTasks(); this.getXmTasks();
},
addXmTask(){
},
addXmTask(){
this.$refs.addForm.validate().then(valid=>{ this.$refs.addForm.validate().then(valid=>{
var task={...this.parentXmTask,name:this.addForm.name,id:null,parentTaskid:this.parentXmTask.id,parentTaskname:this.parentXmTask.name} var task={...this.parentXmTask,name:this.addForm.name,id:null,parentTaskid:this.parentXmTask.id,parentTaskname:this.parentXmTask.name}
task.priority='3' task.priority='3'
task.verNum=this.parentXmTask.sinceVersion; task.verNum=this.parentXmTask.sinceVersion;
task.pverNum=this.parentXmTask.sinceVersion; task.pverNum=this.parentXmTask.sinceVersion;
task.createUserid=this.userInfo.userid task.createUserid=this.userInfo.userid
task.createUsername=this.userInfo.username
task.createUsername=this.userInfo.username
task.qtype="1" task.qtype="1"
task.ntype=this.ntype task.ntype=this.ntype
task.ptype="0" task.ptype="0"
task.id=null;
task.id=null;
this.load.edit=true; this.load.edit=true;
addTask(task).then((res) => { addTask(task).then((res) => {
this.load.edit=false this.load.edit=false
var tips=res.data.tips; var tips=res.data.tips;
if(tips.isOk){ if(tips.isOk){
this.$emit('submit',res.data.data);// @submit="afterAddSubmit"
this.$emit('submit',res.data.data);// @submit="afterAddSubmit"
this.xmTasks.push(res.data.data) this.xmTasks.push(res.data.data)
} }
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' }); this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.edit=false); }).catch( err => this.load.edit=false);
}) })
},
},
showAdd(ntype) { showAdd(ntype) {
this.ntype=ntype;
this.ntype=ntype;
this.addForm.name=this.parentXmTask.name+"-请修改" this.addForm.name=this.parentXmTask.name+"-请修改"
this.addFormVisible=true; this.addFormVisible=true;
}, },
// //
selectExecUserConfirm(row,fieldName,users) { selectExecUserConfirm(row,fieldName,users) {
var user= users[0]; var user= users[0];
var params={}
var params={}
params.taskId = row.id; params.taskId = row.id;
params.projectId=row.projectId
params.projectId=row.projectId
params.projectName=row.projectName params.projectName=row.projectName
params.taskName=row.name
params.taskName=row.name
params.quoteStartTime=row.startTime params.quoteStartTime=row.startTime
params.quoteEndTime=row.endTime params.quoteEndTime=row.endTime
params.quoteAmount=row.budgetAt params.quoteAmount=row.budgetAt
@ -346,7 +346,7 @@ export default {
params.username=user.username params.username=user.username
addXmTaskExecuser(params).then(res=>{ addXmTaskExecuser(params).then(res=>{
var tips = res.data.tips var tips = res.data.tips
if(tips.isOk){
if(tips.isOk){
row.executorUserid=user.userid row.executorUserid=user.userid
row.executorUsername=user.username row.executorUsername=user.username
row.exeUserids=user.userid row.exeUserids=user.userid
@ -356,8 +356,8 @@ export default {
row.executorUsername=this.editFormBak.executorUsername row.executorUsername=this.editFormBak.executorUsername
this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:'error'}) this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:'error'})
} }
})
})
}, },
editXmTaskSomeFields(row,fieldName,$event){ editXmTaskSomeFields(row,fieldName,$event){
var params={ids:[row.id]}; var params={ids:[row.id]};
@ -396,7 +396,7 @@ export default {
} }
editXmTaskSomeFields(params).then(res=>{ editXmTaskSomeFields(params).then(res=>{
var tips = res.data.tips; var tips = res.data.tips;
if(tips.isOk){ if(tips.isOk){
if(this.sels.length>0){ if(this.sels.length>0){
@ -409,13 +409,13 @@ export default {
} }
Object.assign(this.editFormBak,this.editForm) Object.assign(this.editFormBak,this.editForm)
}else{ }else{
Object.assign(this.editForm,this.editFormBak) Object.assign(this.editForm,this.editFormBak)
this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})
} }
}) })
}, },
//xmTask //xmTask
batchDel: function () { batchDel: function () {
if(this.sels.length==0){ if(this.sels.length==0){
@ -430,8 +430,8 @@ export default {
.then((res) => { .then((res) => {
this.load.del = false; this.load.del = false;
var tips = res.data.tips; var tips = res.data.tips;
if (tips.isOk) {
this.getXmTasks()
if (tips.isOk) {
this.getXmTasks()
} }
this.$notify({ this.$notify({
showClose: true, showClose: true,
@ -443,11 +443,11 @@ export default {
}); });
}, },
rowClick: function (row) { rowClick: function (row) {
this.editForm = row;
this.editForm = row;
this.editFormBak=Object.assign({},this.editForm) this.editFormBak=Object.assign({},this.editForm)
// this.$emit('row-click',row,);// @row-click="rowClick" // this.$emit('row-click',row,);// @row-click="rowClick"
}, },
formatterPriorityDicts(cellValue){ formatterPriorityDicts(cellValue){
if(!cellValue && cellValue!=='0'){ if(!cellValue && cellValue!=='0'){
return [] return []
@ -514,7 +514,7 @@ export default {
this.editFormVisible=true this.editFormVisible=true
}, },
onEditXmTaskSomeFields(data){ onEditXmTaskSomeFields(data){
Object.assign(this.editForm,data) Object.assign(this.editForm,data)
this.$emit('edit-xm-task-some-fields',data); this.$emit('edit-xm-task-some-fields',data);
}, },
@ -522,24 +522,24 @@ export default {
Object.assign(this.editForm,data) Object.assign(this.editForm,data)
this.$emit('workload-submit',data) this.$emit('workload-submit',data)
}, },
copyOne(row,index){ copyOne(row,index){
var params={...row} var params={...row}
params.id=null; params.id=null;
params.createUserid=this.userInfo.userid params.createUserid=this.userInfo.userid
params.createUsername=this.userInfo.username
params.createUsername=this.userInfo.username
params.executorUserid=null params.executorUserid=null
params.executorUseranme=null params.executorUseranme=null
params.execUserids=null; params.execUserids=null;
params.execUsername=null;
params.execUsername=null;
params.actWorkload=null; params.actWorkload=null;
params.actAt=null; params.actAt=null;
params.efunds=0
params.efunds=0
params.name=row.name+'V' params.name=row.name+'V'
addTask(params).then(res=>{ addTask(params).then(res=>{
var tips = res.data.tips var tips = res.data.tips
if(tips.isOk){
if(tips.isOk){
var row2=res.data.data var row2=res.data.data
this.xmTasks.splice(index+1,0,row2) this.xmTasks.splice(index+1,0,row2)
this.pageInfo.total=this.pageInfo.total+1 this.pageInfo.total=this.pageInfo.total+1
@ -550,12 +550,12 @@ export default {
}) })
} }
}, //end methods }, //end methods
components: {
components: {
XmWorkloadRecordDialog,XmGroupDialog,'xm-task-edit':()=>import('../xmTask/XmTaskEdit'),MdpSelectUserXm, XmWorkloadRecordDialog,XmGroupDialog,'xm-task-edit':()=>import('../xmTask/XmTaskEdit'),MdpSelectUserXm,
}, },
mounted() {
mounted() {
this.initData(); this.initData();
initSimpleDicts( "all", ["planType","taskType","priority","xmTaskSettleSchemel","priority","taskState" ]).then((res) => { initSimpleDicts( "all", ["planType","taskType","priority","xmTaskSettleSchemel","priority","taskState" ]).then((res) => {
this.dicts = res.data.data; this.dicts = res.data.data;
}); });
@ -565,14 +565,14 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.my-cell-bar{ .my-cell-bar{
display: none;
display: none;
} }
.el-table__row td:hover{ .el-table__row td:hover{
.my-cell-bar{ .my-cell-bar{
width:90%; width:90%;
padding-right:0px; padding-right:0px;
display: inline-block;
display: inline-block;
} }
.my-cell-text{ .my-cell-text{
display:none; display:none;

6
src/views/xm/core/xmTestCase/XmTestCaseEdit.vue

@ -23,7 +23,7 @@
</el-form-item> </el-form-item>
<el-form-item label="测试方式" prop="testType"> <el-form-item label="测试方式" prop="testType">
<mdp-select-tag placeholder="测试方式" clearable item-code="testType" v-model="editForm.testType" effect="dark" @change="editSomeFields(editForm,'testType',$event)"></mdp-select-tag>
<mdp-select show-style="tag" placeholder="测试方式" clearable item-code="testType" v-model="editForm.testType" effect="dark" @change="editSomeFields(editForm,'testType',$event)"></mdp-select>
</el-form-item> </el-form-item>
<el-form-item label="版本号" prop="verNum"> <el-form-item label="版本号" prop="verNum">
<el-input v-model="editForm.verNum" placeholder="版本号" :maxlength="50" @change="editSomeFields(editForm,'verNum',$event)"></el-input> <el-input v-model="editForm.verNum" placeholder="版本号" :maxlength="50" @change="editSomeFields(editForm,'verNum',$event)"></el-input>
@ -38,7 +38,7 @@
</el-form-item> </el-form-item>
<el-form-item label="接口地址" prop="url"> <el-form-item label="接口地址" prop="url">
<div style="display:flex;"> <div style="display:flex;">
<mdp-select-tag label="请求方法" v-model="autoStep.method" :dict="dicts.autoTestMethod" ></mdp-select-tag>
<mdp-select show-style="tag" label="请求方法" v-model="autoStep.method" :dict="dicts.autoTestMethod" ></mdp-select>
<el-input v-model="autoStep.url" placeholder="url 如#{baseApi}/user/list,支持通过 #{变量名}引用环境变量"></el-input> <el-input v-model="autoStep.url" placeholder="url 如#{baseApi}/user/list,支持通过 #{变量名}引用环境变量"></el-input>
<el-button style="margin-left:10px;" type="primary" @click="sendMsgForTestSetting" title="执行用例">发送</el-button> <el-button style="margin-left:10px;" type="primary" @click="sendMsgForTestSetting" title="执行用例">发送</el-button>
</div> </div>
@ -99,7 +99,7 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="请求方法"> <el-form-item label="请求方法">
<mdp-select-tag label="请求方法" v-model="autoStep.method" :dict="dicts.autoTestMethod"></mdp-select-tag>
<mdp-select show-style="tag" label="请求方法" v-model="autoStep.method" :dict="dicts.autoTestMethod"></mdp-select>
</el-form-item> </el-form-item>
<el-form-item label="查询参数" class="field"> <el-form-item label="查询参数" class="field">
<div class="field-text"> <div class="field-text">

4
src/views/xm/core/xmTestCase/XmTestCaseMng.vue

@ -38,13 +38,13 @@
</el-table-column> </el-table-column>
<el-table-column prop="caseStatus" label="状态" width="100" show-overflow-tooltip> <el-table-column prop="caseStatus" label="状态" width="100" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" item-code="testCaseStatus" v-model="scope.row.caseStatus" effect="dark" @change="editSomeFields(scope.row,'caseStatus',$event)"></mdp-select-tag>
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" item-code="testCaseStatus" v-model="scope.row.caseStatus" effect="dark" @change="editSomeFields(scope.row,'caseStatus',$event)"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="testType" label="测试方式" min-width="120" show-overflow-tooltip> <el-table-column prop="testType" label="测试方式" min-width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" item-code="testType" v-model="scope.row.testType" effect="dark" @change="editSomeFields(scope.row,'testType',$event)"></mdp-select-tag>
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" item-code="testType" v-model="scope.row.testType" effect="dark" @change="editSomeFields(scope.row,'testType',$event)"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="funcName" label="模块" min-width="150" show-overflow-tooltip> <el-table-column prop="funcName" label="模块" min-width="150" show-overflow-tooltip>

4
src/views/xm/core/xmTestCase/XmTestCaseSelect.vue

@ -39,13 +39,13 @@
<el-table-column prop="caseStatus" label="状态" min-width="120" show-overflow-tooltip> <el-table-column prop="caseStatus" label="状态" min-width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="testCaseStatus" v-model="scope.row.caseStatus" effect="dark" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" item-code="testCaseStatus" v-model="scope.row.caseStatus" effect="dark" :disabled="true"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="testType" label="测试方式" min-width="120" show-overflow-tooltip> <el-table-column prop="testType" label="测试方式" min-width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="testType" v-model="scope.row.testType" effect="dark" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" item-code="testType" v-model="scope.row.testType" effect="dark" :disabled="true"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="caseRemark" label="备注" min-width="120" show-overflow-tooltip> <el-table-column prop="caseRemark" label="备注" min-width="120" show-overflow-tooltip>

2
src/views/xm/core/xmTestPlan/XmTestPlanListForProject.vue

@ -28,7 +28,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="status" label="状态" width="120" show-overflow-tooltip> <el-table-column prop="status" label="状态" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="testPlanStatus" v-model="scope.row.status" effect="dark" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" item-code="testPlanStatus" v-model="scope.row.status" effect="dark" :disabled="true"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="stime" label="开始时间" width="120" show-overflow-tooltip> <el-table-column prop="stime" label="开始时间" width="120" show-overflow-tooltip>

6
src/views/xm/core/xmTestPlan/XmTestPlanMng.vue

@ -43,19 +43,19 @@
</el-table-column> </el-table-column>
<el-table-column prop="status" label="状态" width="120" show-overflow-tooltip> <el-table-column prop="status" label="状态" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="testPlanStatus" v-model="scope.row.status" effect="dark" @change="editSomeFields(scope.row,'status',$event)"></mdp-select-tag>
<mdp-select show-style="tag" item-code="testPlanStatus" v-model="scope.row.status" effect="dark" @change="editSomeFields(scope.row,'status',$event)"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="testType" label="测试方式" width="120" show-overflow-tooltip> <el-table-column prop="testType" label="测试方式" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="testType" v-model="scope.row.testType" effect="dark" @change="editSomeFields(scope.row,'testType',$event)"></mdp-select-tag>
<mdp-select show-style="tag" item-code="testType" v-model="scope.row.testType" effect="dark" @change="editSomeFields(scope.row,'testType',$event)"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="tcode" label="测试结果" width="120" show-overflow-tooltip> <el-table-column prop="tcode" label="测试结果" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="testPlanTcode" v-model="scope.row.tcode" effect="dark" @change="editSomeFields(scope.row,'tcode',$event)"></mdp-select-tag>
<mdp-select show-style="tag" item-code="testPlanTcode" v-model="scope.row.tcode" effect="dark" @change="editSomeFields(scope.row,'tcode',$event)"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>

2
src/views/xm/core/xmTestPlan/XmTestPlanSelect.vue

@ -26,7 +26,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="status" label="状态" width="120" show-overflow-tooltip> <el-table-column prop="status" label="状态" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="testPlanStatus" v-model="scope.row.status" effect="dark" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" item-code="testPlanStatus" v-model="scope.row.status" effect="dark" :disabled="true"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="stime" label="开始时间" width="120" show-overflow-tooltip> <el-table-column prop="stime" label="开始时间" width="120" show-overflow-tooltip>

10
src/views/xm/core/xmTestPlanCase/XmTestPlanCaseEdit.vue

@ -25,7 +25,7 @@
{{editForm.menuName?editForm.menuName:'暂无关联需求'}} <el-button type="text" @click="menuFormVisible=true">查看需求</el-button> {{editForm.menuName?editForm.menuName:'暂无关联需求'}} <el-button type="text" @click="menuFormVisible=true">查看需求</el-button>
</el-form-item> </el-form-item>
<el-form-item label="测试方式" prop="testType"> <el-form-item label="测试方式" prop="testType">
<mdp-select-tag placeholder="测试方式" clearable item-code="testType" v-model="editForm.testType" effect="dark" @change="editSomeFields(editForm,'testType',$event)" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" placeholder="测试方式" clearable item-code="testType" v-model="editForm.testType" effect="dark" @change="editSomeFields(editForm,'testType',$event)" :disabled="true"></mdp-select>
</el-form-item> </el-form-item>
<el-form-item label="版本号" prop="verNum"> <el-form-item label="版本号" prop="verNum">
<el-input v-model="editForm.verNum" placeholder="版本号" :maxlength="50" @change="editSomeFields(editForm,'verNum',$event)"></el-input> <el-input v-model="editForm.verNum" placeholder="版本号" :maxlength="50" @change="editSomeFields(editForm,'verNum',$event)"></el-input>
@ -39,7 +39,7 @@
</el-row> </el-row>
<el-row v-if="editForm.testType=='1'" class="padding-bottom"> <el-row v-if="editForm.testType=='1'" class="padding-bottom">
<div style="display:flex;"> <div style="display:flex;">
<mdp-select-tag label="请求方法" v-model="autoStep.method" :dict="dicts.autoTestMethod" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" label="请求方法" v-model="autoStep.method" :dict="dicts.autoTestMethod" :disabled="true"></mdp-select>
<span>{{ autoStep.url }}</span> <span>{{ autoStep.url }}</span>
<el-button style="margin-left:10px;" type="primary" @click="sendMsgForTestSetting" title="执行用例">执行用例</el-button> <el-button style="margin-left:10px;" type="primary" @click="sendMsgForTestSetting" title="执行用例">执行用例</el-button>
@ -73,7 +73,7 @@
用例状态 用例状态
</el-row> </el-row>
<el-row> <el-row>
<mdp-select-tag item-code="testCaseStatus" v-model="editForm.caseStatus" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" item-code="testCaseStatus" v-model="editForm.caseStatus" :disabled="true"></mdp-select>
</el-row> </el-row>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
@ -90,7 +90,7 @@
用例类型 用例类型
</el-row> </el-row>
<el-row> <el-row>
<mdp-select-tag item-code="caseType" v-model="editForm.caseType" :disabled="true" ></mdp-select-tag>
<mdp-select show-style="tag" item-code="caseType" v-model="editForm.caseType" :disabled="true" ></mdp-select>
</el-row> </el-row>
</el-col> </el-col>
@ -100,7 +100,7 @@
紧急程度 紧急程度
</el-row> </el-row>
<el-row> <el-row>
<mdp-select-tag item-code="priority" v-model="editForm.cpriority" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" item-code="priority" v-model="editForm.cpriority" :disabled="true"></mdp-select>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>

8
src/views/xm/core/xmTestPlanCase/XmTestPlanCaseMng.vue

@ -40,18 +40,18 @@
</el-table-column> </el-table-column>
<el-table-column prop="caseStatus" label="用例状态" width="100" show-overflow-tooltip> <el-table-column prop="caseStatus" label="用例状态" width="100" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" item-code="testCaseStatus" v-model="scope.row.caseStatus" effect="dark" @change="editSomeFields(scope.row,'caseStatus',$event)" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" item-code="testCaseStatus" v-model="scope.row.caseStatus" effect="dark" @change="editSomeFields(scope.row,'caseStatus',$event)" :disabled="true"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<template v-if="select!==true"> <template v-if="select!==true">
<el-table-column prop="testType" label="执行方式" width="120" > <el-table-column prop="testType" label="执行方式" width="120" >
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" item-code="testType" v-model="scope.row.testType" @change="editSomeFields(scope.row,'testType',$event)" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" item-code="testType" v-model="scope.row.testType" @change="editSomeFields(scope.row,'testType',$event)" :disabled="true"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="execStatus" label="执行结果" width="120" show-overflow-tooltip> <el-table-column prop="execStatus" label="执行结果" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" item-code="testStepTcode" v-model="scope.row.execStatus" effect="dark" @change="editSomeFields(scope.row,'execStatus',$event)"></mdp-select-tag>
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" item-code="testStepTcode" v-model="scope.row.execStatus" effect="dark" @change="editSomeFields(scope.row,'execStatus',$event)"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="execUsername" label="执行人姓名" min-width="120" > <el-table-column prop="execUsername" label="执行人姓名" min-width="120" >
@ -62,7 +62,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="priority" label="优先级" width="120" > <el-table-column prop="priority" label="优先级" width="120" >
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag @visible-change="selectVisible(scope.row,$event)" item-code="priority" v-model="scope.row.priority" @change="editSomeFields(scope.row,'priority',$event)"></mdp-select-tag>
<mdp-select show-style="tag" @visible-change="selectVisible(scope.row,$event)" item-code="priority" v-model="scope.row.priority" @change="editSomeFields(scope.row,'priority',$event)"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="执行备注" min-width="150" show-overflow-tooltip> <el-table-column prop="remark" label="执行备注" min-width="150" show-overflow-tooltip>

6
src/views/xm/core/xmTestPlanCase/XmTestPlanCaseSelect.vue

@ -33,13 +33,13 @@
</el-table-column> </el-table-column>
<el-table-column prop="caseStatus" label="用例状态" width="100" show-overflow-tooltip> <el-table-column prop="caseStatus" label="用例状态" width="100" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="testCaseStatus" v-model="scope.row.caseStatus" effect="dark" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" item-code="testCaseStatus" v-model="scope.row.caseStatus" effect="dark" :disabled="true"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="execStatus" label="执行结果" width="100" show-overflow-tooltip> <el-table-column prop="execStatus" label="执行结果" width="100" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="testStepTcode" v-model="scope.row.execStatus" effect="dark" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" item-code="testStepTcode" v-model="scope.row.execStatus" effect="dark" :disabled="true"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="execUsername" label="执行人姓名" min-width="120" > <el-table-column prop="execUsername" label="执行人姓名" min-width="120" >
@ -50,7 +50,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="priority" label="优先级" width="120" > <el-table-column prop="priority" label="优先级" width="120" >
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag item-code="priority" v-model="scope.row.priority" :disabled="true"></mdp-select-tag>
<mdp-select show-style="tag" item-code="priority" v-model="scope.row.priority" :disabled="true"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="100" fixed="right"> <el-table-column label="操作" width="100" fixed="right">

2
src/views/xm/core/xmWorkload/XmWorkloadList.vue

@ -27,7 +27,7 @@
<el-table-column prop="bizType" label="报工类型" width="120" show-overflow-tooltip> <el-table-column prop="bizType" label="报工类型" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag :disabled="true" v-model="scope.row.bizType" item-code="wlBizType"></mdp-select-tag>
<mdp-select show-style="tag" :disabled="true" v-model="scope.row.bizType" item-code="wlBizType"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="bizName" label="报工业务" width="120" show-overflow-tooltip> <el-table-column prop="bizName" label="报工业务" width="120" show-overflow-tooltip>

2
src/views/xm/core/xmWorkload/XmWorkloadMng.vue

@ -173,7 +173,7 @@
<el-table-column prop="bizType" label="报工类型" width="120" show-overflow-tooltip> <el-table-column prop="bizType" label="报工类型" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag :disabled="true" v-model="scope.row.bizType" item-code="wlBizType"></mdp-select-tag>
<mdp-select show-style="tag" :disabled="true" v-model="scope.row.bizType" item-code="wlBizType"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="bizName" label="报工业务" width="120" show-overflow-tooltip> <el-table-column prop="bizName" label="报工业务" width="120" show-overflow-tooltip>

2
src/views/xm/core/xmWorkload/XmWorkloadSimpleList.vue

@ -48,7 +48,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="bizType" label="报工类型" width="120" show-overflow-tooltip> <el-table-column prop="bizType" label="报工类型" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag :disabled="true" v-model="scope.row.bizType" item-code="wlBizType"></mdp-select-tag>
<mdp-select show-style="tag" :disabled="true" v-model="scope.row.bizType" item-code="wlBizType"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="bizName" label="报工业务" width="120" show-overflow-tooltip> <el-table-column prop="bizName" label="报工业务" width="120" show-overflow-tooltip>

2
src/views/xm/core/xmWorkload/XmWorkloadSimpleListForBizDate.vue

@ -36,7 +36,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="bizType" label="报工类型" width="120" show-overflow-tooltip> <el-table-column prop="bizType" label="报工类型" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<mdp-select-tag :disabled="true" v-model="scope.row.bizType" item-code="wlBizType"></mdp-select-tag>
<mdp-select show-style="tag" :disabled="true" v-model="scope.row.bizType" item-code="wlBizType"></mdp-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="bizName" label="报工业务" width="120" show-overflow-tooltip> <el-table-column prop="bizName" label="报工业务" width="120" show-overflow-tooltip>

Loading…
Cancel
Save