diff --git a/src/views/xm/core/xmIteration/XmIterationInfo.vue b/src/views/xm/core/xmIteration/XmIterationInfo.vue
index 90bf3e8d..32636983 100644
--- a/src/views/xm/core/xmIteration/XmIterationInfo.vue
+++ b/src/views/xm/core/xmIteration/XmIterationInfo.vue
@@ -34,7 +34,7 @@
-
+
diff --git a/src/views/xm/core/xmProduct/XmProductInfo.vue b/src/views/xm/core/xmProduct/XmProductInfo.vue
index f2b1eb11..4d8384e1 100644
--- a/src/views/xm/core/xmProduct/XmProductInfo.vue
+++ b/src/views/xm/core/xmProduct/XmProductInfo.vue
@@ -156,7 +156,7 @@
-
+
diff --git a/src/views/xm/core/xmProject/XmProjectInfo.vue b/src/views/xm/core/xmProject/XmProjectInfo.vue
index 043822c1..bd9381e0 100644
--- a/src/views/xm/core/xmProject/XmProjectInfo.vue
+++ b/src/views/xm/core/xmProject/XmProjectInfo.vue
@@ -136,7 +136,7 @@
-
+
diff --git a/src/views/xm/core/xmQuestion/XmQuestionMng.vue b/src/views/xm/core/xmQuestion/XmQuestionMng.vue
index 3f5f24c8..9d9c2ad1 100644
--- a/src/views/xm/core/xmQuestion/XmQuestionMng.vue
+++ b/src/views/xm/core/xmQuestion/XmQuestionMng.vue
@@ -521,7 +521,7 @@
if(this.filters.tags && this.filters.tags.length>0){
params.tagIdList=this.filters.tags.map(i=>i.tagId)
}
- params.qtype=this.qtype
+ //params.qtype=this.qtype
listXmQuestion(params).then((res) => {
var tips=res.data.tips;
if(tips.isOk){
diff --git a/src/views/xm/core/xmTestCaseExec/XmTestCaseExecMng.vue b/src/views/xm/core/xmTestCaseExec/XmTestCaseExecMng.vue
index 16c8003f..9cfb37ca 100644
--- a/src/views/xm/core/xmTestCaseExec/XmTestCaseExecMng.vue
+++ b/src/views/xm/core/xmTestCaseExec/XmTestCaseExecMng.vue
@@ -191,7 +191,7 @@
-
+
diff --git a/src/views/xm/core/xmWorkItem/XmSubMenuList.vue b/src/views/xm/core/xmWorkItem/XmSubMenuList.vue
index 2e6e16d5..5ed062c7 100644
--- a/src/views/xm/core/xmWorkItem/XmSubMenuList.vue
+++ b/src/views/xm/core/xmWorkItem/XmSubMenuList.vue
@@ -5,20 +5,91 @@
特性
+
+
+
+
用户故事
+
+
+
+
-
-
-
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.iterationName}}
+
+
+
+
+
+
+
+
+
+ {{scope.row.finishRate}}%
+
+
+ {{scope.row.mactRate}}%
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.mmUsername}}
+
+
+ 选跟进人
+
+
+
+
+
+
+
@@ -27,8 +98,11 @@ import Vue from "vue";
import util from "@/common/js/util"; //全局公共库
import treeTool from "@/common/js/treeTool"; //全局公共库
import { initSimpleDicts } from '@/api/mdp/meta/item'; //下拉框数据查询
- import { listXmMenu,addXmMenu } from '@/api/xm/core/xmMenu';
-
+ import { listXmMenuWithState,addXmMenu,editXmMenuSomeFields,batchDelXmMenu } from '@/api/xm/core/xmMenu';
+ import XmMenuWorkload from '@/views/xm/core/components/XmMenuWorkload';//修改界面
+ import XmGroupDialog from '@/views/xm/core/xmGroup/XmGroupDialog';//修改界面
+ import XmIterationSelect from '@/views/xm/core/components/XmIterationSelect.vue';//修改界面
+ import TagDialog from "@/views/mdp/arc/tag/TagDialog";
import { mapGetters } from 'vuex'
export default {
@@ -48,7 +122,7 @@ export default {
},
},
props: [
- 'parentXmMenu'
+ 'parentXmMenu','linkProjectId'
],
watch: {
'parentXmMenu.menuId':function(){
@@ -61,14 +135,107 @@ export default {
},
data() {
return{
- load:{edit:false,list:false,add:false},
+ load:{edit:false,list:false,add:false,del:false},
xmMenus:[],
+ editForm:{},
+ dicts:{},
+ sels:[],
+
}
}, //end data
methods: {
+
+ //选择行xmMenu
+ selsChange: function (sels) {
+ this.sels = sels;
+ },
+
+
+ rowClick: function(row, event, column){
+ this.editForm=row
+ },
+
+
+ formaterByDicts(row,property,cellValue){
+ var property=property
+ var dict=null;
+ if(property=='source'){
+ dict=this.dicts['demandSource']
+ }else if(property=='dlvl'){
+ dict=this.dicts['demandLvl']
+ }else if(property=='dtype'){
+ dict=this.dicts['demandType']
+ }else if(property=='priority'){
+ dict=this.dicts['priority']
+ }
+ if(!dict){
+ return cellValue;
+ }else{
+ var item=dict.find(i=>i.id==cellValue)
+ return item?item.name:cellValue;
+ }
+ },
+ formatterPriorityDicts(cellValue){
+ if(!cellValue && cellValue!=='0'){
+ return []
+ }
+ var key="priority";
+ if(this.dicts[key]==undefined || this.dicts[key]==null || this.dicts[key].length==0 ){
+ return [{id:cellValue,name:cellValue,className:'primary'}];
+ }
+ var list=this.dicts[key].filter(i=>i.id==cellValue)
+ if(list.length>0){
+ var data= {...list[0],className:'primary'}
+ if(data.id=='0'){
+ data.className='danger'
+ }else if(data.id=='1'){
+ data.className='warning'
+ }else if(data.id=='2'){
+ data.className='success'
+ }else if(data.id=='3'){
+ data.className='primary'
+ }else if(data.id=='4'){
+ data.className='info'
+ }else{
+ data.className='primary'
+ }
+ return [data];
+ }else{
+ return [{id:cellValue,name:cellValue,className:'primary'}]
+ }
+
+ },
+ formatterMenuStatusDicts: function(cellValue){
+ if(!cellValue && cellValue!=='0'){
+ return []
+ }
+ var key="menuStatus";
+ if(this.dicts[key]==undefined || this.dicts[key]==null || this.dicts[key].length==0 ){
+ return [{id:cellValue,name:cellValue,className:'primary'}];
+ }
+ var list=this.dicts[key].filter(i=>i.id==cellValue)
+ if(list.length>0){
+ var data= {...list[0],className:'primary'}
+ if(data.id=='0'){
+ data.className='primary'
+ }else if(data.id=='1'){
+ data.className='warning'
+ }else if(data.id=='2'){
+ data.className='success'
+ }else if(data.id=='3'){
+ data.className='info'
+ } else{
+ data.className='danger'
+ }
+ return [data];
+ }else{
+ return [{id:cellValue,name:cellValue,className:'primary'}]
+ }
+
+ },
getXmMenus(){
- listXmMenu({pmenuId:this.parentXmMenu.menuId}).then(res=>{
+ listXmMenuWithState({pmenuId:this.parentXmMenu.menuId}).then(res=>{
var tips = res.data.tips;
if(tips.isOk){
this.xmMenus=res.data.data
@@ -120,11 +287,98 @@ export default {
});
},
+ editXmMenuSomeFields(row,fieldName,$event){
+ var params={menuIds:[row.menuId]};
+ if(this.sels.length>0){
+ if(!this.sels.some(k=>k.menuId==row.menuId)){
+ this.$notify({showClose:true,message:'请操作选中的行或者取消选中的行再操作其它行',type:'warning'})
+ return;
+ }
+ params.menuIds=this.sels.map(i=>i.menuId)
+ }
+ if(fieldName==='iterationId'){
+ if($event){
+ params[fieldName]=$event.id;
+ params.iterationName=$event.iterationName
+ }else{
+ return;
+ }
+ }else if(fieldName==='tagIds'){
+ if($event){
+ params[fieldName]=$event.map(i=>i.tagId).join(",");
+ params.tagNames=$event.map(i=>i.tagName).join(",");
+ }else{
+ return;
+ }
+ }else if(fieldName==='workload'){
+ params={...params,...$event}
+ }else if(fieldName==='mmUserid'){
+ params.mmUserid=$event[0].userid
+ params.mmUsername=$event[0].username
+ }else{
+ params[fieldName]=$event
+ }
+
+ editXmMenuSomeFields(params).then(res=>{
+ var tips = res.data.tips;
+ if(tips.isOk){
+ if(this.sels.length>0){
+ this.sels.forEach(i=>{
+ this.fieldTagVisible=false;
+ Object.assign(i,params)
+ })
+ }else{
+ Object.assign(row,params)
+ }
+ }else{
+ this.$notify({showClose:true,message:tips.msg,type:tips.isOk?'success':'error'})
+ }
+ })
+ },
+
+ onTagSelected(tags,option){
+ if(option.action=='editTagIds'){
+ this.editXmMenuSomeFields(option.data,"tagIds",tags)
+ }
+
+ },
+
+ onGroupUserSelect(users,option){
+ this.editXmMenuSomeFields(option.data,"mmUserid",users);
+ },
+ //批量删除xmMenu
+ batchDel: function () {
+ if(this.sels.length==0){
+ this.$notify({showClose: true, message: "请先选择要删除的需求", type: 'warning'});
+ return;
+ }
+ this.$confirm('确认删除选中的'+this.sels.length+'条数据吗?删除后数据不可恢复', '提示', {
+ type: 'warning'
+ }).then(() => {
+ this.load.del=true;
+ batchDelXmMenu(this.sels).then((res) => {
+ this.load.del=false;
+ var tips=res.data.tips;
+ if( tips.isOk ){
+ this.getXmMenus();
+ }
+ this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error'});
+ }).catch( err => this.load.del=false );
+ });
+ },
}, //end methods
- components: {
+ components: {
+ TagDialog,
+ XmMenuWorkload,
+ XmGroupDialog,
+ XmIterationSelect,
},
mounted() {
this.initData();
+
+ initSimpleDicts("all",['menuStatus','demandSource','demandLvl','demandType','priority']).then(res=>{
+ this.dicts=res.data.data;
+ })
},
};