Browse Source

优化

master
陈裕财 4 years ago
parent
commit
0591952ac6
  1. 77
      src/views/xm/core/xmProjectGroup/XmProjectGroupSelect.vue
  2. 2
      src/views/xm/core/xmQuestion/XmQuestionAdd.vue

77
src/views/xm/core/xmProjectGroup/XmProjectGroupSelect.vue

@ -1,22 +1,27 @@
<template> <template>
<section class="page-container padding border"> <section class="page-container padding border">
<el-row>
<el-col :span="16">
<el-row class="padding">
<el-col :span="8">
<el-button type="primary" @click="userConfirm" icon="el-icon-finished">确认选择用户</el-button> <el-button type="primary" @click="userConfirm" icon="el-icon-finished">确认选择用户</el-button>
</el-col> </el-col>
<el-col :span="8" class="hidden-sm-and-down"> <el-col :span="8" class="hidden-sm-and-down">
<el-tooltip content="黄色表示选中"><span class="addXmProjectGroupFormworkSquare"></span></el-tooltip> <el-tooltip content="黄色表示选中"><span class="addXmProjectGroupFormworkSquare"></span></el-tooltip>
<el-button @click="selectProjectVisible=true">切换项目</el-button>
{{this.filters.selProject?"当前项目:":""}}<el-tag type="primary" v-if="this.filters.selProject">{{this.filters.selProject.name}}</el-tag>
<el-button @click="selectProjectVisible=true">选择项目团队</el-button>
{{this.filters.selProject?"当前项目:":""}}<el-tag type="primary" v-if="this.filters.selProject" closable @close="filters.selProject=null">{{this.filters.selProject.name}}</el-tag>
<el-tag v-else type="warning">未选择项目</el-tag> <el-tag v-else type="warning">未选择项目</el-tag>
</el-col> </el-col>
<el-col :span="8" class="hidden-sm-and-down">
<el-button @click="selectProductVisible=true">选择产品团队</el-button>
{{this.filters.xmProduct?"当前产品:":""}}<el-tag type="primary" v-if="this.filters.xmProduct&&this.filters.xmProduct.id" @close="filters.xmProduct=null">{{this.filters.xmProduct.productName}}</el-tag>
<el-tag v-else type="warning">未选择产品</el-tag>
</el-col>
</el-row> </el-row>
<el-row class="page-main page-height-80" v-loading="load.list"> <el-row class="page-main page-height-80" v-loading="load.list">
<el-row v-for="(item,index) in xmProjectGroupFormworkSels" :key="index" class="padding">
<h3>
<div>{{item.groupName + ":"}}
<el-row v-for="(item,index) in xmProjectGroupFormworkSels" :key="index" class="padding ">
<h4>
<div class="padding-bottom">{{item.groupName + ":"}}
</div> </div>
</h3>
</h4>
<el-col :span="24" style="margin-left:30px;display:flex;flex-wrap: wrap;"> <el-col :span="24" style="margin-left:30px;display:flex;flex-wrap: wrap;">
<div :class="v.isSelected=='1'?'checkCopyButton':'copyButton'" v-for="(v,valueIndex) in item.groupUsers" :key="valueIndex" @click="toggleSelected(index,valueIndex)"> <div :class="v.isSelected=='1'?'checkCopyButton':'copyButton'" v-for="(v,valueIndex) in item.groupUsers" :key="valueIndex" @click="toggleSelected(index,valueIndex)">
{{v.username}} {{v.username}}
@ -25,9 +30,14 @@
</el-row> </el-row>
</el-row> </el-row>
<el-drawer title="选中项目" :visible.sync="selectProjectVisible" size="80%" append-to-body :close-on-click-modal="false">
<el-drawer title="选中项目团队" :visible.sync="selectProjectVisible" size="80%" append-to-body :close-on-click-modal="false">
<xm-project-list @project-confirm="onPorjectConfirm"></xm-project-list> <xm-project-list @project-confirm="onPorjectConfirm"></xm-project-list>
</el-drawer> </el-drawer>
<el-drawer title="选中产品团队" :visible.sync="selectProductVisible" size="80%" append-to-body :close-on-click-modal="false">
<xm-product-select :isSelectProduct="true" @selected="onProductConfirm"></xm-product-select>
</el-drawer>
</section> </section>
</template> </template>
@ -39,6 +49,7 @@
import XmProjectList from '../xmProject/XmProjectList'; import XmProjectList from '../xmProject/XmProjectList';
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import XmProductSelect from '../xmProduct/XmProductSelect.vue';
export default { export default {
computed: { computed: {
@ -47,7 +58,7 @@
]) ])
}, },
// //
props: ['visible','selProject','isSelectSingleUser','isSelectMultiUser'],
props: ['visible','selProject','isSelectSingleUser','isSelectMultiUser','xmProduct'],
watch: { watch: {
"selGroups": function(selGroups) { "selGroups": function(selGroups) {
if(this.selGroups){ if(this.selGroups){
@ -69,6 +80,9 @@
}, },
selProject(selProject){ selProject(selProject){
this.filters.selProject=selProject this.filters.selProject=selProject
},
xmProduct(xmProduct){
this.filters.xmProduct=this.xmProduct
} }
}, },
@ -78,6 +92,7 @@
filters: { filters: {
key: '', key: '',
selProject:null, selProject:null,
xmProduct:null,
}, },
selGroups:[], selGroups:[],
load: {list: false,edit: false,del: false,add: false}, //... load: {list: false,edit: false,del: false,add: false}, //...
@ -89,6 +104,7 @@
/**begin 自定义属性请在下面加 请加备注**/ /**begin 自定义属性请在下面加 请加备注**/
xmProjectGroupFormworkSels: [], xmProjectGroupFormworkSels: [],
selectProjectVisible:false, selectProjectVisible:false,
selectProductVisible:false,
/**end 自定义属性请在上面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/
} }
}, //end data }, //end data
@ -135,14 +151,19 @@
var params={}; var params={};
if(this.filters.selProject){ if(this.filters.selProject){
params.projectId=this.filters.selProject.id params.projectId=this.filters.selProject.id
}else{
this.selectProjectVisible=true;
this.$notify({showClose: true,
message: '请选中项目',
type: 'success'
});
}
if(this.filters.xmProduct && this.filters.xmProduct.id){
params.productId=this.filters.xmProduct.id
}
if(!params.projectId && !params.productId){
this.$notify({showClose:true,message:'产品团队或者项目团队最少选中一个',type:'error'})
return; return;
} }
if(params.projectId && params.productId){
params.productId=null
this.$notify({showClose:true,message:'产品团队或者项目团队只能选中一个,两个都选以项目团队为准',type:'warning'})
}
getGroups(params).then(res=>{ getGroups(params).then(res=>{
var tips = res.data.tips; var tips = res.data.tips;
if(tips.isOk){ if(tips.isOk){
@ -155,16 +176,24 @@
onPorjectConfirm:function(project){ onPorjectConfirm:function(project){
this.filters.selProject=project this.filters.selProject=project
this.filters.xmProduct=null;
this.selectProjectVisible=false; this.selectProjectVisible=false;
this.getGroups(); this.getGroups();
}, },
onProductConfirm:function(product){
this.filters.xmProduct=product
this.filters.selProject=null
this.selectProductVisible=false;
this.getGroups();
},
/**end 自定义函数请在上面加**/ /**end 自定义函数请在上面加**/
}, //end methods }, //end methods
components: { components: {
XmProjectList
XmProjectList,XmProductSelect
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
@ -179,18 +208,20 @@
if(this.selProject){ if(this.selProject){
this.filters.selProject=this.selProject this.filters.selProject=this.selProject
} }
this.getGroups();
listOption([{categoryId:'all',itemCode:'projectGroupType'}] ).then(res=>{
if(res.data.tips.isOk){
this.options['projectGroupType']=res.data.data.projectGroupType
}
});
if(this.xmProduct){
this.filters.xmProduct=this.xmProduct
}
this.getGroups();
}); });
} }
} }
</script> </script>
<style scoped> <style scoped>
.group-name{
color: rgb(107, 88, 88);
}
.copyButton { .copyButton {
margin-left: 10px; margin-left: 10px;
border-radius: 20px; border-radius: 20px;

2
src/views/xm/core/xmQuestion/XmQuestionAdd.vue

@ -111,7 +111,7 @@
import {sn} from '@/common/js/sequence'; import {sn} from '@/common/js/sequence';
import VueEditor from '@/components/Tinymce/index'; import VueEditor from '@/components/Tinymce/index';
import XmGroupMng from '../xmProjectGroup/XmProjectGroupMng';
import XmGroupMng from '../xmProjectGroup/XmProjectGroupSelect';
import xmMenuSelect from '../xmMenu/XmMenuSelect'; import xmMenuSelect from '../xmMenu/XmMenuSelect';
import XmProjectList from '../xmProject/XmProjectList'; import XmProjectList from '../xmProject/XmProjectList';

Loading…
Cancel
Save