4 changed files with 280 additions and 7 deletions
-
5src/views/xm/core/xmGroup/XmGroupMng.vue
-
2src/views/xm/core/xmTaskExecuser/XmTaskExecuserForTask.vue
-
10src/views/xm/core/xmTaskExecuser/XmTaskExecuserMng.vue
-
270src/views/xm/core/xmTaskExecuser/XmTaskExecuserSelect.vue
@ -0,0 +1,270 @@ |
|||||
|
<template> |
||||
|
<section class="padding"> |
||||
|
<el-row> |
||||
|
<el-input v-model="filters.key" style="width: 20%;" placeholder="任务名称、用户姓名模糊查询" clearable></el-input> |
||||
|
<el-input v-model="filters.taskId" style="width:150px;" placeholder="任务编号查询" clearable></el-input> |
||||
|
<span v-if="selProject && selProject.id"> |
||||
|
<el-input v-if="selProject && selProject.id" v-model="filters.projectId" style="width: 150px;" placeholder="项目编号" clearable></el-input> |
||||
|
<el-input v-model="filters.branchId" style="width: 150px;" placeholder="项目公司编号" clearable></el-input> |
||||
|
</span> |
||||
|
<el-input v-model="filters.execUserBranchId" style="width: 150px;" placeholder="用户公司编号" clearable></el-input> |
||||
|
<el-select v-model="filters.status" placeholder="候选状态" clearable> |
||||
|
<el-option v-for="(item,index) in dicts.projectTaskExecuserStatus" :value="item.id" :label="item.name" :key="index"></el-option> |
||||
|
</el-select> |
||||
|
<el-select v-model="filters.taskState" placeholder="任务状态" clearable> |
||||
|
<el-option v-for="(item,index) in dicts.taskState" :value="item.id" :label="item.name" :key="index"></el-option> |
||||
|
</el-select> |
||||
|
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmTaskExecusers">查询</el-button> |
||||
|
<!-- <el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true">批量删除</el-button> --> |
||||
|
</el-row> |
||||
|
<el-row class="page-main "> |
||||
|
<!--列表 XmTaskExecuser xm_task_execuser--> |
||||
|
<el-table ref="table" :height="tableHeight" :data="xmTaskExecusers" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> |
||||
|
<el-table-column label="序号" type="index" width="60" fixed="left"> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="username" label="用户姓名" width="150" sortable show-overflow-tooltip fixed="left"> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="execUserBranchId" label="用户归属公司" width="150" sortable show-overflow-tooltip fixed="left"> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="status" label="候选状态" width="100" sortable fixed="left"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-link type="primary" v-if="scope.row.status=='0'">候选中</el-link> |
||||
|
<el-link type="success" v-else-if="scope.row.status=='1'">执行中 </el-link> |
||||
|
<el-link type="info" v-else-if="scope.row.status=='7'">已放弃 </el-link> |
||||
|
<el-link type="danger" v-else-if="scope.row.status=='8'">黑名单 </el-link> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="taskName" label="任务名称" width="150" sortable show-overflow-tooltip fixed="left"> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="taskName" label="任务状态" width="100" sortable show-overflow-tooltip > |
||||
|
<template slot-scope="scope"> |
||||
|
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'taskState',scope.row.taskState)" :key="index" :type="item.className">{{item.name}}</el-tag> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="projectId" label="项目编号" width="100" sortable show-overflow-tooltip> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="startTime" label="加入时间" width="150" sortable> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="endTime" label="离开时间" width="150" sortable> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="skillRemark" label="技能" min-width="150" sortable show-overflow-tooltip> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="remarks" label="备注" min-width="150" sortable show-overflow-tooltip> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="报价信息" min-width="150"> |
||||
|
|
||||
|
<el-table-column prop="createTime" label="报价时间" width="150" sortable> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="quoteWorkload" label="报价工作量" width="100" sortable> |
||||
|
<template slot-scope="scope"> |
||||
|
{{scope.row.quoteWorkload?scope.row.quoteWorkload:'-'}}h |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="quotePrice" label="报价金额" width="100" sortable> |
||||
|
|
||||
|
<template slot-scope="scope"> |
||||
|
¥{{scope.row.quotePrice?scope.row.quotePrice:'-'}}元 |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</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> |
||||
|
</section> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import util from '@/common/js/util';//全局公共库 |
||||
|
import config from "@/common/config"; //全局公共库 |
||||
|
|
||||
|
//import Sticky from '@/components/Sticky' // 粘性header组件 |
||||
|
import { initSimpleDicts } from '@/api/mdp/meta/item';//下拉框数据查询 |
||||
|
import { listXmTaskExecuserWithTask,editXmTaskExecuser,leaveTask,beExecutor,settleExec, delXmTaskExecuser, batchDelXmTaskExecuser,quotePrice,becomeCandidate,toTest,testSuccess,testFail } from '@/api/xm/core/xmTaskExecuser'; |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
computed: { |
||||
|
...mapGetters([ |
||||
|
'userInfo','roles' |
||||
|
]), |
||||
|
xmTask:function(){ |
||||
|
var xmTask={...this.editForm} |
||||
|
xmTask.id=this.editForm.taskId; |
||||
|
return xmTask; |
||||
|
} |
||||
|
}, |
||||
|
props: ["visible",'selProject'], |
||||
|
watch: { |
||||
|
'visible': function(val) { |
||||
|
if(val == true){ |
||||
|
this.searchXmTaskExecusers(); |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
filters: { |
||||
|
key: '', |
||||
|
execUserBranchId:'', |
||||
|
taskId:'', |
||||
|
projectId:'', |
||||
|
status:'', |
||||
|
taskState:'', |
||||
|
branchId:'', |
||||
|
}, |
||||
|
xmTaskExecusers: [],//查询结果 |
||||
|
pageInfo:{//分页数据 |
||||
|
total:0,//服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算。 |
||||
|
pageSize:10,//每页数据 |
||||
|
count:false,//是否需要重新计算总记录数 |
||||
|
pageNum:1,//当前页码、从1开始计算 |
||||
|
orderFields:['res.create_time'],//排序列 如 ['sex','student_id'],必须为数据库字段 |
||||
|
orderDirs:['desc']//升序 asc,降序desc 如 性别 升序、学生编号降序 ['asc','desc'] |
||||
|
}, |
||||
|
load:{ list: false, edit: false, del: false, add: false },//查询中... |
||||
|
sels: [],//列表选中数据 |
||||
|
dicts:{ |
||||
|
projectTaskExecuserStatus:[], |
||||
|
projectTaskSettleStatus:[], |
||||
|
},//下拉选择框的所有静态数据 params=[{categoryId:'0001',itemCode:'sex'}] 返回结果 {'sex':[{optionValue:'1',optionName:'男',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'女',seqOrder:'2',fp:'',isDefault:'0'}]} |
||||
|
|
||||
|
addFormVisible: false,//新增xmTaskExecuser界面是否显示 |
||||
|
//新增xmTaskExecuser界面初始化数据 |
||||
|
addForm: { |
||||
|
createTime:'',id:'',taskId:'',userid:'',startTime:'',endTime:'',status:'',remarks:'',settleAmount:'',settleWorkload:'',settleStatus:'',settleTime:'',createUserid:'',createUsername:'',username:'',matchScore:'',quoteWeekday:'',quoteAmount:'',quoteTime:'',bizProcInstId:'',bizFlowState:'',projectId:'',phaseId:'',skillRemark:'',quoteWorkload:'',quoteStartTime:'',quoteEndTime:'',branchId:'',projectPhaseName:'',taskName:'' |
||||
|
}, |
||||
|
|
||||
|
editFormVisible: false,//编辑界面是否显示 |
||||
|
//编辑xmTaskExecuser界面初始化数据 |
||||
|
editForm: { |
||||
|
createTime:'',id:'',taskId:'',userid:'',startTime:'',endTime:'',status:'',remarks:'',settleAmount:'',settleWorkload:'',settleStatus:'',settleTime:'',createUserid:'',createUsername:'',username:'',matchScore:'',quoteWeekday:'',quoteAmount:'',quoteTime:'',bizProcInstId:'',bizFlowState:'',projectId:'',phaseId:'',skillRemark:'',quoteWorkload:'',quoteStartTime:'',quoteEndTime:'',branchId:'',projectPhaseName:'',taskName:'' |
||||
|
}, |
||||
|
/**begin 自定义属性请在下面加 请加备注**/ |
||||
|
pickerOptions: util.getPickerOptions('datarange'), |
||||
|
tableHeight:300, |
||||
|
|
||||
|
/**end 自定义属性请在上面加 请加备注**/ |
||||
|
} |
||||
|
},//end data |
||||
|
methods: { |
||||
|
...util, |
||||
|
handleSizeChange(pageSize) { |
||||
|
this.pageInfo.pageSize=pageSize; |
||||
|
this.getXmTaskExecusers(); |
||||
|
}, |
||||
|
handleCurrentChange(pageNum) { |
||||
|
this.pageInfo.pageNum = pageNum; |
||||
|
this.getXmTaskExecusers(); |
||||
|
}, |
||||
|
// 表格排序 obj.order=ascending/descending,需转化为 asc/desc ; obj.prop=表格中的排序字段,字段驼峰命名 |
||||
|
sortChange( obj ){ |
||||
|
var dir='asc'; |
||||
|
if(obj.order=='ascending'){ |
||||
|
dir='asc' |
||||
|
}else{ |
||||
|
dir='desc'; |
||||
|
} |
||||
|
if(obj.prop=='xxx'){ |
||||
|
this.pageInfo.orderFields=['xxx']; |
||||
|
this.pageInfo.orderDirs=[dir]; |
||||
|
} |
||||
|
this.getXmTaskExecusers(); |
||||
|
}, |
||||
|
searchXmTaskExecusers(){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmTaskExecusers(); |
||||
|
}, |
||||
|
//获取列表 XmTaskExecuser xm_task_execuser |
||||
|
getXmTaskExecusers() { |
||||
|
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; |
||||
|
if(this.filters.taskId){ |
||||
|
params.taskId=this.filters.taskId |
||||
|
} |
||||
|
if(this.filters.projectId){ |
||||
|
params.projectId=this.filters.projectId |
||||
|
} |
||||
|
if(this.selProject && this.selProject.id){ |
||||
|
params.projectId=this.selProject.id |
||||
|
} |
||||
|
if(this.filters.execUserBranchId){ |
||||
|
params.execUserBranchId=this.filters.execUserBranchId |
||||
|
} |
||||
|
|
||||
|
if(this.filters.taskState){ |
||||
|
params.taskState=this.filters.taskState |
||||
|
} |
||||
|
if(this.filters.status){ |
||||
|
params.status=this.filters.status |
||||
|
} |
||||
|
listXmTaskExecuserWithTask(params).then((res) => { |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.total = res.data.total; |
||||
|
this.pageInfo.count=false; |
||||
|
this.xmTaskExecusers = res.data.data; |
||||
|
this.$emit("loadExecUserList",this.xmTaskExecusers); |
||||
|
}else{ |
||||
|
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: 'error' }); |
||||
|
} |
||||
|
this.load.list = false; |
||||
|
}).catch( err => this.load.list = false ); |
||||
|
}, |
||||
|
|
||||
|
//选择行xmTaskExecuser |
||||
|
selsChange: function (sels) { |
||||
|
this.sels = sels; |
||||
|
}, |
||||
|
rowClick: function(row, event, column){ |
||||
|
this.editForm=row; |
||||
|
this.$emit('row-click',row, event, column);// @row-click="rowClick" |
||||
|
}, |
||||
|
/**end 自定义函数请在上面加**/ |
||||
|
|
||||
|
},//end methods |
||||
|
components: { |
||||
|
//在下面添加其它组件 |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
this.tableHeight = util.calcTableMaxHeight(this.$refs.table.$el); |
||||
|
this.getXmTaskExecusers(); |
||||
|
}); |
||||
|
|
||||
|
initSimpleDicts('all',['projectTaskExecuserStatus','projectTaskSettleStatus','taskState']).then(res=>{ |
||||
|
this.dicts=res.data.data; |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
.exec-navbar{ |
||||
|
background: #fafbfc; |
||||
|
padding: 0 20px; |
||||
|
height: 50px; |
||||
|
overflow: auto hidden; |
||||
|
line-height: 50px; |
||||
|
} |
||||
|
.badge { |
||||
|
margin-top: 7px; |
||||
|
padding-bottom: 10px; |
||||
|
} |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue