Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
674a989ac4
  1. 30
      xm-core-ui-web/src/api/xm/core/xmProjectGroup.js
  2. 30
      xm-core-ui-web/src/api/xm/core/xmProjectGroupUser.js
  3. 194
      xm-core-ui-web/src/views/xm/core/xmProjectGroup/XmProjectGroupEdit.vue
  4. 269
      xm-core-ui-web/src/views/xm/core/xmProjectGroup/XmProjectGroupMng.vue
  5. 161
      xm-core-ui-web/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserEdit.vue
  6. 258
      xm-core-ui-web/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserMng.vue
  7. 6
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java

30
xm-core-ui-web/src/api/xm/core/xmProjectGroup.js

@ -1,30 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getCoreBasePath();
/**
* xm_project_group
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={id:'主键 主键',groupName:'团队名称',projectId:'项目编号-属于产品线则可为空',pgTypeId:'项目团队类型编号',pgTypeName:'团队类型名称',leaderUserid:'团队负责人',leaderUsername:'负责人姓名',ctime:'创建时间',ltime:'更新时间',productId:'产品编号,属于项目组的团队则可为空',branchId:'机构编号',pgClass:'团队类别0项目1产品',pgroupId:'上级团队编号',lvl:'级别0级1级2级3级4级',pidPaths:'上级编号路径逗号分割,0,开始,本组编号+逗号结束',isTpl:'是否为模板',assUserid:'副组长编号',assUsername:'副组长姓名',childrenCnt:'下级团队数量',userCnt:'组员数量',qxCode:'权限码',calcWorkload:'是否计算工作量0否1是',ntype:'节点类型0管理团队、1执行团队'}
**/
//普通查询 条件之间and关系
export const listXmProjectGroup = params => { return axios.get(`${base}/xm/core/xmProjectGroup/list`, { params: params }); };
//模糊查询xm_project_group 条件之间or关系
//export const listXmProjectGroupKey = params => { return axios.get(`${base}/xm/core/xmProjectGroup/listKey`, { params: params }); };
//删除一条xm_project_group params={id:'主键 主键'}
export const delXmProjectGroup = params => { return axios.post(`${base}/xm/core/xmProjectGroup/del`,params); };
//批量删除xm_project_group params=[{id:'主键 主键'}]
export const batchDelXmProjectGroup = params => { return axios.post(`${base}/xm/core/xmProjectGroup/batchDel`, params); };
//修改一条xm_project_group记录
export const editXmProjectGroup = params => { return axios.post(`${base}/xm/core/xmProjectGroup/edit`, params); };
//新增一条xm_project_group
export const addXmProjectGroup = params => { return axios.post(`${base}/xm/core/xmProjectGroup/add`, params); };

30
xm-core-ui-web/src/api/xm/core/xmProjectGroupUser.js

@ -1,30 +0,0 @@
import axios from '@/utils/request'
import config from '@/common/config'
let base = config.getCoreBasePath();
/**
* xm_project_group_user
*1 默认只开放普通查询所有查询只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
*2 查询新增修改的参数格式 params={groupId:'团队编号 主键',userid:'团队成员编号 主键',joinTime:'加入时间',username:'团队成员',outTime:'离队时间',status:'当前状态0参与中1已退出团队',obranchId:'组员原归属机构编号',isPri:'是否私人加入0否1是',seqNo:'排序号--从1开始',projectId:'项目编号',productId:'产品编号',pgClass:'0-项目,1-产品'}
**/
//普通查询 条件之间and关系
export const listXmProjectGroupUser = params => { return axios.get(`${base}/xm/core/xmProjectGroupUser/list`, { params: params }); };
//模糊查询xm_project_group_user 条件之间or关系
//export const listXmProjectGroupUserKey = params => { return axios.get(`${base}/xm/core/xmProjectGroupUser/listKey`, { params: params }); };
//删除一条xm_project_group_user params={groupId:'团队编号 主键',userid:'团队成员编号 主键'}
export const delXmProjectGroupUser = params => { return axios.post(`${base}/xm/core/xmProjectGroupUser/del`,params); };
//批量删除xm_project_group_user params=[{groupId:'团队编号 主键',userid:'团队成员编号 主键'}]
export const batchDelXmProjectGroupUser = params => { return axios.post(`${base}/xm/core/xmProjectGroupUser/batchDel`, params); };
//修改一条xm_project_group_user记录
export const editXmProjectGroupUser = params => { return axios.post(`${base}/xm/core/xmProjectGroupUser/edit`, params); };
//新增一条xm_project_group_user
export const addXmProjectGroupUser = params => { return axios.post(`${base}/xm/core/xmProjectGroupUser/add`, params); };

194
xm-core-ui-web/src/views/xm/core/xmProjectGroup/XmProjectGroupEdit.vue

@ -1,194 +0,0 @@
<template>
<section class="page-container padding">
<el-row class="page-header">
</el-row>
<el-row class="page-main">
<!--编辑界面 XmProjectGroup xm_project_group-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef">
<el-form-item label="主键" prop="id">
<el-input v-model="editForm.id" placeholder="主键"></el-input>
</el-form-item>
<el-form-item label="团队名称" prop="groupName">
<el-input v-model="editForm.groupName" placeholder="团队名称"></el-input>
</el-form-item>
<el-form-item label="项目编号-属于产品线则可为空" prop="projectId">
<el-input v-model="editForm.projectId" placeholder="项目编号-属于产品线则可为空"></el-input>
</el-form-item>
<el-form-item label="项目团队类型编号" prop="pgTypeId">
<el-input v-model="editForm.pgTypeId" placeholder="项目团队类型编号"></el-input>
</el-form-item>
<el-form-item label="团队类型名称" prop="pgTypeName">
<el-input v-model="editForm.pgTypeName" placeholder="团队类型名称"></el-input>
</el-form-item>
<el-form-item label="团队负责人" prop="leaderUserid">
<el-input v-model="editForm.leaderUserid" placeholder="团队负责人"></el-input>
</el-form-item>
<el-form-item label="负责人姓名" prop="leaderUsername">
<el-input v-model="editForm.leaderUsername" placeholder="负责人姓名"></el-input>
</el-form-item>
<el-form-item label="创建时间" prop="ctime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.ctime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="更新时间" prop="ltime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.ltime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="产品编号,属于项目组的团队则可为空" prop="productId">
<el-input v-model="editForm.productId" placeholder="产品编号,属于项目组的团队则可为空"></el-input>
</el-form-item>
<el-form-item label="机构编号" prop="branchId">
<el-input v-model="editForm.branchId" placeholder="机构编号"></el-input>
</el-form-item>
<el-form-item label="团队类别0项目1产品" prop="pgClass">
<el-input v-model="editForm.pgClass" placeholder="团队类别0项目1产品"></el-input>
</el-form-item>
<el-form-item label="上级团队编号" prop="pgroupId">
<el-input v-model="editForm.pgroupId" placeholder="上级团队编号"></el-input>
</el-form-item>
<el-form-item label="级别0级1级2级3级4级" prop="lvl">
<el-input-number v-model="editForm.lvl" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="上级编号路径逗号分割,0,开始,本组编号+逗号结束" prop="pidPaths">
<el-input v-model="editForm.pidPaths" placeholder="上级编号路径逗号分割,0,开始,本组编号+逗号结束"></el-input>
</el-form-item>
<el-form-item label="是否为模板" prop="isTpl">
<el-input v-model="editForm.isTpl" placeholder="是否为模板"></el-input>
</el-form-item>
<el-form-item label="副组长编号" prop="assUserid">
<el-input v-model="editForm.assUserid" placeholder="副组长编号"></el-input>
</el-form-item>
<el-form-item label="副组长姓名" prop="assUsername">
<el-input v-model="editForm.assUsername" placeholder="副组长姓名"></el-input>
</el-form-item>
<el-form-item label="下级团队数量" prop="childrenCnt">
<el-input-number v-model="editForm.childrenCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="组员数量" prop="userCnt">
<el-input-number v-model="editForm.userCnt" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="权限码" prop="qxCode">
<el-input v-model="editForm.qxCode" placeholder="权限码"></el-input>
</el-form-item>
<el-form-item label="是否计算工作量0否1是" prop="calcWorkload">
<el-input v-model="editForm.calcWorkload" placeholder="是否计算工作量0否1是"></el-input>
</el-form-item>
<el-form-item label="节点类型0管理团队、1执行团队" prop="ntype">
<el-input v-model="editForm.ntype" placeholder="节点类型0管理团队、1执行团队"></el-input>
</el-form-item>
</el-form>
</el-row>
<el-row class="page-bottom bottom-fixed">
<el-button @click.native="handleCancel">取消</el-button>
<el-button v-loading="load.edit" type="primary" @click.native="saveSubmit" :disabled="load.edit==true">提交</el-button>
</el-row>
</section>
</template>
<script>
import util from '@/common/js/util';//
import config from "@/common/config"; //import
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//
import { addXmProjectGroup,editXmProjectGroup } from '@/api/xm/core/xmProjectGroup';
import { mapGetters } from 'vuex'
export default {
name:'xmProjectGroupEdit',
components: {
},
computed: {
...mapGetters([ 'userInfo' ]),
},
props:['xmProjectGroup','visible','opType'],
watch: {
'xmProjectGroup':function( xmProjectGroup ) {
if(xmProjectGroup){
this.editForm = xmProjectGroup;
}
},
'visible':function(visible) {
if(visible==true){
this.initData()
}
}
},
data() {
return {
currOpType:'add',//add/edit
load:{ list: false, edit: false, del: false, add: false },//...
dicts:{},// params={categoryId:'all',itemCodes:['sex']} {sex: [{id:'1',name:''},{id:'2',name:''}]}
editFormRules: {
id: [
//{ required: true, message: '', trigger: 'blur' }
]
},
editForm: {
id:'',groupName:'',projectId:'',pgTypeId:'',pgTypeName:'',leaderUserid:'',leaderUsername:'',ctime:'',ltime:'',productId:'',branchId:'',pgClass:'',pgroupId:'',lvl:'',pidPaths:'',isTpl:'',assUserid:'',assUsername:'',childrenCnt:'',userCnt:'',qxCode:'',calcWorkload:'',ntype:''
},
}//end return
},//end data
methods: {
// @cancel="editFormVisible=false"
handleCancel:function(){
this.$refs['editFormRef'].resetFields();
this.$emit('cancel');
},
//XmProjectGroup xm_project_group@submit="afterEditSubmit"
saveSubmit: function () {
this.$refs.editFormRef.validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.load.edit=true
let params = Object.assign({}, this.editForm);
var func=addXmProjectGroup
if(this.currOpType=='edit'){
func=editXmProjectGroup
}
func(params).then((res) => {
this.load.edit=false
var tips=res.data.tips;
if(tips.isOk){
this.editForm=res.data.data
this.initData()
this.currOpType="edit";
this.$emit('submit');// @submit="afterAddSubmit"
}
this.$message({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err =>this.load.edit=false);
});
}else{
this.$message({ showClose:true, message: "表单验证不通过,请修改表单数据再提交", type: 'error' });
}
});
},
initData: function(){
this.currOpType=this.opType
if(this.xmProjectGroup){
this.editForm = Object.assign({},this.xmProjectGroup);
}
if(this.opType=='edit'){
}else{
}
},
},//end method
mounted() {
this.$nextTick(() => {
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data);
this.initData()
});
}
}
</script>
<style scoped>
</style>

269
xm-core-ui-web/src/views/xm/core/xmProjectGroup/XmProjectGroupMng.vue

@ -1,269 +0,0 @@
<template>
<section class="page-container border padding">
<el-row>
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input>
<el-button v-loading="load.list" :disabled="load.list==true" @click="searchXmProjectGroups" icon="el-icon-search">查询</el-button>
<el-button type="primary" @click="showAdd" icon="el-icon-plus"> </el-button>
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true" icon="el-icon-delete"></el-button>
</el-row>
<el-row class="padding-top">
<!--列表 XmProjectGroup xm_project_group-->
<el-table ref="xmProjectGroupTable" :data="xmProjectGroups" :height="maxTableHeight" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column>
<el-table-column sortable type="index" width="55" show-overflow-tooltip></el-table-column>
<el-table-column prop="id" label="主键" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="groupName" label="团队名称" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="projectId" label="项目编号-属于产品线则可为空" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="pgTypeId" label="项目团队类型编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="pgTypeName" label="团队类型名称" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="leaderUserid" label="团队负责人" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="leaderUsername" label="负责人姓名" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="ctime" label="创建时间" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="ltime" label="更新时间" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="productId" label="产品编号,属于项目组的团队则可为空" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="branchId" label="机构编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="pgClass" label="团队类别0项目1产品" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="pgroupId" label="上级团队编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="lvl" label="级别0级1级2级3级4级" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="pidPaths" label="上级编号路径逗号分割,0,开始,本组编号+逗号结束" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="isTpl" label="是否为模板" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="assUserid" label="副组长编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="assUsername" label="副组长姓名" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="childrenCnt" label="下级团队数量" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="userCnt" label="组员数量" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="qxCode" label="权限码" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="calcWorkload" label="是否计算工作量0否1是" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="ntype" label="节点类型0管理团队、1执行团队" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="180" fixed="right">
<template slot="header">
<el-button @click="showAdd" icon="el-icon-plus" circle> </el-button>
</template>
<template scope="scope">
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit"></el-button>
<el-button type="danger" @click="handleDel(scope.row,scope.$index)" icon="el-icon-delete"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
</el-row>
<el-row>
<!--编辑 XmProjectGroup xm_project_group界面-->
<el-drawer title="编辑xm_project_group" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-project-group-edit op-type="edit" :xm-project-group="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-project-group-edit>
</el-drawer>
<!--新增 XmProjectGroup xm_project_group界面-->
<el-drawer title="新增xm_project_group" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-project-group-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-project-group-edit>
</el-drawer>
</el-row>
</section>
</template>
<script>
import util from '@/common/js/util';//
import config from '@/common/config';//
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//
import { listXmProjectGroup, delXmProjectGroup, batchDelXmProjectGroup } from '@/api/xm/core/xmProjectGroup';
import XmProjectGroupEdit from './XmProjectGroupEdit';//
import { mapGetters } from 'vuex'
export default {
name:'xmProjectGroupMng',
components: {
XmProjectGroupEdit,
},
props:['visible'],
computed: {
...mapGetters(['userInfo']),
},
watch:{
visible(val){
if(val==true){
this.initData();
this.searchXmProjectGroups()
}
}
},
data() {
return {
filters: {
key: ''
},
xmProjectGroups: [],//
pageInfo:{//
total:0,//0>0
pageSize:10,//
count:false,//
pageNum:1,//1
orderFields:[],// ['sex','student_id']
orderDirs:[]// asc,desc ['asc','desc']
},
load:{ list: false, edit: false, del: false, add: false },//...
sels: [],//
dicts:{
//sex: [{id:'1',name:''},{id:'2',name:''}]
},// params={categoryId:'all',itemCodes:['sex']} {sex: [{id:'1',name:''},{id:'2',name:''}]}
addFormVisible: false,//xmProjectGroup
addForm: {
id:'',groupName:'',projectId:'',pgTypeId:'',pgTypeName:'',leaderUserid:'',leaderUsername:'',ctime:'',ltime:'',productId:'',branchId:'',pgClass:'',pgroupId:'',lvl:'',pidPaths:'',isTpl:'',assUserid:'',assUsername:'',childrenCnt:'',userCnt:'',qxCode:'',calcWorkload:'',ntype:''
},
editFormVisible: false,//
editForm: {
id:'',groupName:'',projectId:'',pgTypeId:'',pgTypeName:'',leaderUserid:'',leaderUsername:'',ctime:'',ltime:'',productId:'',branchId:'',pgClass:'',pgroupId:'',lvl:'',pidPaths:'',isTpl:'',assUserid:'',assUsername:'',childrenCnt:'',userCnt:'',qxCode:'',calcWorkload:'',ntype:''
},
maxTableHeight:300,
}
},//end data
methods: {
handleSizeChange(pageSize) {
this.pageInfo.pageSize=pageSize;
this.getXmProjectGroups();
},
handleCurrentChange(pageNum) {
this.pageInfo.pageNum = pageNum;
this.getXmProjectGroups();
},
// obj.order=ascending/descending, asc/desc ; obj.prop=,
sortChange( obj ){
if(obj.order==null){
this.pageInfo.orderFields=[];
this.pageInfo.orderDirs=[];
}else{
var dir='asc';
if(obj.order=='ascending'){
dir='asc'
}else{
dir='desc';
}
this.pageInfo.orderFields=[util.toLine(obj.prop)];
this.pageInfo.orderDirs=[dir];
}
this.getXmProjectGroups();
},
searchXmProjectGroups(){
this.pageInfo.count=true;
this.getXmProjectGroups();
},
// XmProjectGroup xm_project_group
getXmProjectGroups() {
let params = {
pageSize: this.pageInfo.pageSize,
pageNum: this.pageInfo.pageNum,
total: this.pageInfo.total,
count:this.pageInfo.count
};
if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){
let orderBys=[];
for(var i=0;i<this.pageInfo.orderFields.length;i++){
orderBys.push(this.pageInfo.orderFields[i]+" "+this.pageInfo.orderDirs[i])
}
params.orderBy= orderBys.join(",")
}
if(this.filters.key){
params.key=this.filters.key
}
this.load.list = true;
listXmProjectGroup(params).then((res) => {
var tips=res.data.tips;
if(tips.isOk){
this.pageInfo.total = res.data.total;
this.pageInfo.count=false;
this.xmProjectGroups = res.data.data;
}else{
this.$message({ showClose:true, message: tips.msg, type: 'error' });
}
this.load.list = false;
}).catch( err => this.load.list = false );
},
// XmProjectGroup xm_project_group
showEdit: function ( row,index ) {
this.editFormVisible = true;
this.editForm = Object.assign({}, row);
},
// XmProjectGroup xm_project_group
showAdd: function () {
this.addFormVisible = true;
//this.addForm=Object.assign({}, this.editForm);
},
afterAddSubmit(){
this.addFormVisible=false;
this.pageInfo.count=true;
this.getXmProjectGroups();
},
afterEditSubmit(){
this.editFormVisible=false;
},
//xmProjectGroup
selsChange: function (sels) {
this.sels = sels;
},
//xmProjectGroup
handleDel: function (row,index) {
this.$confirm('确认删除该记录吗?', '提示', {
type: 'warning'
}).then(() => {
this.load.del=true;
let params = { id: row.id };
delXmProjectGroup(params).then((res) => {
this.load.del=false;
var tips=res.data.tips;
if(tips.isOk){
this.pageInfo.count=true;
this.getXmProjectGroups();
}
this.$message({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.del=false );
});
},
//xmProjectGroup
batchDel: function () {
this.$confirm('确认删除选中记录吗?', '提示', {
type: 'warning'
}).then(() => {
this.load.del=true;
batchDelXmProjectGroup(this.sels).then((res) => {
this.load.del=false;
var tips=res.data.tips;
if( tips.isOk ){
this.pageInfo.count=true;
this.getXmProjectGroups();
}
this.$message({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error'});
}).catch( err => this.load.del=false );
});
},
rowClick: function(row, event, column){
if(event.label!='操作' && event.type!='selection'){
this.showEdit(row)
}
this.$emit('row-click',row, event, column);// @row-click="rowClick"
},
initData: function(){
},
},//end methods
mounted() {
this.$nextTick(() => {
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data);
this.initData()
this.searchXmProjectGroups();
var table=document.querySelector('.el-table');
var top=util.getPositionTop(table)
this.maxTableHeight = window.innerHeight - top -60;
});
}
}
</script>
<style scoped>
</style>

161
xm-core-ui-web/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserEdit.vue

@ -1,161 +0,0 @@
<template>
<section class="page-container padding">
<el-row class="page-header">
</el-row>
<el-row class="page-main">
<!--编辑界面 XmProjectGroupUser xm_project_group_user-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef">
<el-form-item label="加入时间" prop="joinTime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.joinTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="团队编号" prop="groupId">
<el-input v-model="editForm.groupId" placeholder="团队编号"></el-input>
</el-form-item>
<el-form-item label="团队成员编号" prop="userid">
<el-input v-model="editForm.userid" placeholder="团队成员编号"></el-input>
</el-form-item>
<el-form-item label="团队成员" prop="username">
<el-input v-model="editForm.username" placeholder="团队成员"></el-input>
</el-form-item>
<el-form-item label="离队时间" prop="outTime">
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.outTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="当前状态0参与中1已退出团队" prop="status">
<el-input v-model="editForm.status" placeholder="当前状态0参与中1已退出团队"></el-input>
</el-form-item>
<el-form-item label="组员原归属机构编号" prop="obranchId">
<el-input v-model="editForm.obranchId" placeholder="组员原归属机构编号"></el-input>
</el-form-item>
<el-form-item label="是否私人加入0否1是" prop="isPri">
<el-input v-model="editForm.isPri" placeholder="是否私人加入0否1是"></el-input>
</el-form-item>
<el-form-item label="排序号--从1开始" prop="seqNo">
<el-input-number v-model="editForm.seqNo" :min="0" :max="200"></el-input-number>
</el-form-item>
<el-form-item label="项目编号" prop="projectId">
<el-input v-model="editForm.projectId" placeholder="项目编号"></el-input>
</el-form-item>
<el-form-item label="产品编号" prop="productId">
<el-input v-model="editForm.productId" placeholder="产品编号"></el-input>
</el-form-item>
<el-form-item label="0-项目,1-产品" prop="pgClass">
<el-input v-model="editForm.pgClass" placeholder="0-项目,1-产品"></el-input>
</el-form-item>
</el-form>
</el-row>
<el-row class="page-bottom bottom-fixed">
<el-button @click.native="handleCancel">取消</el-button>
<el-button v-loading="load.edit" type="primary" @click.native="saveSubmit" :disabled="load.edit==true">提交</el-button>
</el-row>
</section>
</template>
<script>
import util from '@/common/js/util';//
import config from "@/common/config"; //import
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//
import { addXmProjectGroupUser,editXmProjectGroupUser } from '@/api/xm/core/xmProjectGroupUser';
import { mapGetters } from 'vuex'
export default {
name:'xmProjectGroupUserEdit',
components: {
},
computed: {
...mapGetters([ 'userInfo' ]),
},
props:['xmProjectGroupUser','visible','opType'],
watch: {
'xmProjectGroupUser':function( xmProjectGroupUser ) {
if(xmProjectGroupUser){
this.editForm = xmProjectGroupUser;
}
},
'visible':function(visible) {
if(visible==true){
this.initData()
}
}
},
data() {
return {
currOpType:'add',//add/edit
load:{ list: false, edit: false, del: false, add: false },//...
dicts:{},// params={categoryId:'all',itemCodes:['sex']} {sex: [{id:'1',name:''},{id:'2',name:''}]}
editFormRules: {
groupId: [
//{ required: true, message: '', trigger: 'blur' }
]
},
editForm: {
joinTime:'',groupId:'',userid:'',username:'',outTime:'',status:'',obranchId:'',isPri:'',seqNo:'',projectId:'',productId:'',pgClass:''
},
}//end return
},//end data
methods: {
// @cancel="editFormVisible=false"
handleCancel:function(){
this.$refs['editFormRef'].resetFields();
this.$emit('cancel');
},
//XmProjectGroupUser xm_project_group_user@submit="afterEditSubmit"
saveSubmit: function () {
this.$refs.editFormRef.validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.load.edit=true
let params = Object.assign({}, this.editForm);
var func=addXmProjectGroupUser
if(this.currOpType=='edit'){
func=editXmProjectGroupUser
}
func(params).then((res) => {
this.load.edit=false
var tips=res.data.tips;
if(tips.isOk){
this.editForm=res.data.data
this.initData()
this.currOpType="edit";
this.$emit('submit');// @submit="afterAddSubmit"
}
this.$message({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err =>this.load.edit=false);
});
}else{
this.$message({ showClose:true, message: "表单验证不通过,请修改表单数据再提交", type: 'error' });
}
});
},
initData: function(){
this.currOpType=this.opType
if(this.xmProjectGroupUser){
this.editForm = Object.assign({},this.xmProjectGroupUser);
}
if(this.opType=='edit'){
}else{
}
},
},//end method
mounted() {
this.$nextTick(() => {
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data);
this.initData()
});
}
}
</script>
<style scoped>
</style>

258
xm-core-ui-web/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserMng.vue

@ -1,258 +0,0 @@
<template>
<section class="page-container border padding">
<el-row>
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input>
<el-button v-loading="load.list" :disabled="load.list==true" @click="searchXmProjectGroupUsers" icon="el-icon-search">查询</el-button>
<el-button type="primary" @click="showAdd" icon="el-icon-plus"> </el-button>
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true" icon="el-icon-delete"></el-button>
</el-row>
<el-row class="padding-top">
<!--列表 XmProjectGroupUser xm_project_group_user-->
<el-table ref="xmProjectGroupUserTable" :data="xmProjectGroupUsers" :height="maxTableHeight" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="55" show-overflow-tooltip></el-table-column>
<el-table-column sortable type="index" width="55" show-overflow-tooltip></el-table-column>
<el-table-column prop="joinTime" label="加入时间" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="groupId" label="团队编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="userid" label="团队成员编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="username" label="团队成员" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="outTime" label="离队时间" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="status" label="当前状态0参与中1已退出团队" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="obranchId" label="组员原归属机构编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="isPri" label="是否私人加入0否1是" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="seqNo" label="排序号--从1开始" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="projectId" label="项目编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="productId" label="产品编号" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column prop="pgClass" label="0-项目,1-产品" min-width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="180" fixed="right">
<template slot="header">
<el-button @click="showAdd" icon="el-icon-plus" circle> </el-button>
</template>
<template scope="scope">
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit"></el-button>
<el-button type="danger" @click="handleDel(scope.row,scope.$index)" icon="el-icon-delete"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
</el-row>
<el-row>
<!--编辑 XmProjectGroupUser xm_project_group_user界面-->
<el-drawer title="编辑xm_project_group_user" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-project-group-user-edit op-type="edit" :xm-project-group-user="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-project-group-user-edit>
</el-drawer>
<!--新增 XmProjectGroupUser xm_project_group_user界面-->
<el-drawer title="新增xm_project_group_user" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-project-group-user-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-project-group-user-edit>
</el-drawer>
</el-row>
</section>
</template>
<script>
import util from '@/common/js/util';//
import config from '@/common/config';//
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//
import { listXmProjectGroupUser, delXmProjectGroupUser, batchDelXmProjectGroupUser } from '@/api/xm/core/xmProjectGroupUser';
import XmProjectGroupUserEdit from './XmProjectGroupUserEdit';//
import { mapGetters } from 'vuex'
export default {
name:'xmProjectGroupUserMng',
components: {
XmProjectGroupUserEdit,
},
props:['visible'],
computed: {
...mapGetters(['userInfo']),
},
watch:{
visible(val){
if(val==true){
this.initData();
this.searchXmProjectGroupUsers()
}
}
},
data() {
return {
filters: {
key: ''
},
xmProjectGroupUsers: [],//
pageInfo:{//
total:0,//0>0
pageSize:10,//
count:false,//
pageNum:1,//1
orderFields:[],// ['sex','student_id']
orderDirs:[]// asc,desc ['asc','desc']
},
load:{ list: false, edit: false, del: false, add: false },//...
sels: [],//
dicts:{
//sex: [{id:'1',name:''},{id:'2',name:''}]
},// params={categoryId:'all',itemCodes:['sex']} {sex: [{id:'1',name:''},{id:'2',name:''}]}
addFormVisible: false,//xmProjectGroupUser
addForm: {
joinTime:'',groupId:'',userid:'',username:'',outTime:'',status:'',obranchId:'',isPri:'',seqNo:'',projectId:'',productId:'',pgClass:''
},
editFormVisible: false,//
editForm: {
joinTime:'',groupId:'',userid:'',username:'',outTime:'',status:'',obranchId:'',isPri:'',seqNo:'',projectId:'',productId:'',pgClass:''
},
maxTableHeight:300,
}
},//end data
methods: {
handleSizeChange(pageSize) {
this.pageInfo.pageSize=pageSize;
this.getXmProjectGroupUsers();
},
handleCurrentChange(pageNum) {
this.pageInfo.pageNum = pageNum;
this.getXmProjectGroupUsers();
},
// obj.order=ascending/descending, asc/desc ; obj.prop=,
sortChange( obj ){
if(obj.order==null){
this.pageInfo.orderFields=[];
this.pageInfo.orderDirs=[];
}else{
var dir='asc';
if(obj.order=='ascending'){
dir='asc'
}else{
dir='desc';
}
this.pageInfo.orderFields=[util.toLine(obj.prop)];
this.pageInfo.orderDirs=[dir];
}
this.getXmProjectGroupUsers();
},
searchXmProjectGroupUsers(){
this.pageInfo.count=true;
this.getXmProjectGroupUsers();
},
// XmProjectGroupUser xm_project_group_user
getXmProjectGroupUsers() {
let params = {
pageSize: this.pageInfo.pageSize,
pageNum: this.pageInfo.pageNum,
total: this.pageInfo.total,
count:this.pageInfo.count
};
if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){
let orderBys=[];
for(var i=0;i<this.pageInfo.orderFields.length;i++){
orderBys.push(this.pageInfo.orderFields[i]+" "+this.pageInfo.orderDirs[i])
}
params.orderBy= orderBys.join(",")
}
if(this.filters.key){
params.key=this.filters.key
}
this.load.list = true;
listXmProjectGroupUser(params).then((res) => {
var tips=res.data.tips;
if(tips.isOk){
this.pageInfo.total = res.data.total;
this.pageInfo.count=false;
this.xmProjectGroupUsers = res.data.data;
}else{
this.$message({ showClose:true, message: tips.msg, type: 'error' });
}
this.load.list = false;
}).catch( err => this.load.list = false );
},
// XmProjectGroupUser xm_project_group_user
showEdit: function ( row,index ) {
this.editFormVisible = true;
this.editForm = Object.assign({}, row);
},
// XmProjectGroupUser xm_project_group_user
showAdd: function () {
this.addFormVisible = true;
//this.addForm=Object.assign({}, this.editForm);
},
afterAddSubmit(){
this.addFormVisible=false;
this.pageInfo.count=true;
this.getXmProjectGroupUsers();
},
afterEditSubmit(){
this.editFormVisible=false;
},
//xmProjectGroupUser
selsChange: function (sels) {
this.sels = sels;
},
//xmProjectGroupUser
handleDel: function (row,index) {
this.$confirm('确认删除该记录吗?', '提示', {
type: 'warning'
}).then(() => {
this.load.del=true;
let params = { groupId: row.groupId };
delXmProjectGroupUser(params).then((res) => {
this.load.del=false;
var tips=res.data.tips;
if(tips.isOk){
this.pageInfo.count=true;
this.getXmProjectGroupUsers();
}
this.$message({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.del=false );
});
},
//xmProjectGroupUser
batchDel: function () {
this.$confirm('确认删除选中记录吗?', '提示', {
type: 'warning'
}).then(() => {
this.load.del=true;
batchDelXmProjectGroupUser(this.sels).then((res) => {
this.load.del=false;
var tips=res.data.tips;
if( tips.isOk ){
this.pageInfo.count=true;
this.getXmProjectGroupUsers();
}
this.$message({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error'});
}).catch( err => this.load.del=false );
});
},
rowClick: function(row, event, column){
if(event.label!='操作' && event.type!='selection'){
this.showEdit(row)
}
this.$emit('row-click',row, event, column);// @row-click="rowClick"
},
initData: function(){
},
},//end methods
mounted() {
this.$nextTick(() => {
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data);
this.initData()
this.searchXmProjectGroupUsers();
var table=document.querySelector('.el-table');
var top=util.getPositionTop(table)
this.maxTableHeight = window.innerHeight - top -60;
});
}
}
</script>
<style scoped>
</style>

6
xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java

@ -170,9 +170,9 @@ public class XmTaskExecuserController {
} }
if("1".equals(xmTask.getCrowd()) && "1".equals(xmTask.getTaskOut())){ if("1".equals(xmTask.getCrowd()) && "1".equals(xmTask.getTaskOut())){
tips=mkClient.checkMemberInterests(xmTaskExecuser.getUserid(),xmTask.getBudgetAt(),xmTask.getBudgetWorkload(),1);
if(!tips.isOk()){
return ResponseHelper.failed(tips);
Tips tips2=mkClient.checkMemberInterests(xmTaskExecuser.getUserid(),xmTask.getBudgetAt(),xmTask.getBudgetWorkload(),1);
if(!tips2.isOk()){
return ResponseHelper.failed(tips2);
} }
} }

Loading…
Cancel
Save