8 changed files with 1131 additions and 5 deletions
-
30src/api/xm/core/xmTaskSbill.js
-
30src/api/xm/core/xmTaskWorkload.js
-
15src/router/routes_xm.js
-
135src/views/xm/core/xmTaskSbill/SelectXmProject.vue
-
217src/views/xm/core/xmTaskSbill/XmTaskSbillEdit.vue
-
265src/views/xm/core/xmTaskSbill/XmTaskSbillMng.vue
-
174src/views/xm/core/xmTaskWorkload/XmTaskWorkloadEdit.vue
-
260src/views/xm/core/xmTaskWorkload/XmTaskWorkloadMng.vue
@ -0,0 +1,30 @@ |
|||||
|
import axios from '@/utils/request' |
||||
|
|
||||
|
import config from '@/common/config' |
||||
|
|
||||
|
let base = config.getCoreBasePath(); |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 任务结算表 |
||||
|
*1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, |
||||
|
*2 查询、新增、修改的参数格式 params={id:'结算单据编号 主键',title:'结算单标题',amt:'金额=工时表中结算金额之和',ctime:'创建时间',cuserid:'创建人编号',cusername:'创建人姓名',remark:'备注',branchId:'机构编号',deptid:'部门编号',cpId:'相对方编号(机构写机构号,个人写个人编号)',cpName:'相对方名称(机构写机构名称,个人写个人名称)',workload:'结算工作量=工时表中工时之和',bizMonth:'业务月份yyyy-MM',bizDate:'业务日期yyyy-MM-dd',bizFlowState:'结算流程状态',bizProcInstId:'结算流程实例',ltime:'更新时间',status:'0-待提交,1-已提交,2-已通过,3-已付款,4-已完成',fmsg:'最后审核意见',projectId:'项目编号',projectName:'项目名称'} |
||||
|
**/ |
||||
|
|
||||
|
//普通查询 条件之间and关系
|
||||
|
export const listXmTaskSbill = params => { return axios.get(`${base}/xm/core/xmTaskSbill/list`, { params: params }); }; |
||||
|
|
||||
|
//模糊查询任务结算表 条件之间or关系
|
||||
|
//export const listXmTaskSbillKey = params => { return axios.get(`${base}/xm/core/xmTaskSbill/listKey`, { params: params }); };
|
||||
|
|
||||
|
//删除一条任务结算表 params={id:'结算单据编号 主键'}
|
||||
|
export const delXmTaskSbill = params => { return axios.post(`${base}/xm/core/xmTaskSbill/del`,params); }; |
||||
|
|
||||
|
//批量删除任务结算表 params=[{id:'结算单据编号 主键'}]
|
||||
|
export const batchDelXmTaskSbill = params => { return axios.post(`${base}/xm/core/xmTaskSbill/batchDel`, params); }; |
||||
|
|
||||
|
//修改一条任务结算表记录
|
||||
|
export const editXmTaskSbill = params => { return axios.post(`${base}/xm/core/xmTaskSbill/edit`, params); }; |
||||
|
|
||||
|
//新增一条任务结算表
|
||||
|
export const addXmTaskSbill = params => { return axios.post(`${base}/xm/core/xmTaskSbill/add`, params); }; |
||||
@ -0,0 +1,30 @@ |
|||||
|
import axios from '@/utils/request' |
||||
|
|
||||
|
import config from '@/common/config' |
||||
|
|
||||
|
let base = config.getCoreBasePath(); |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 工时登记表 |
||||
|
*1 默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:当前页码从1开始,pageSize:每页记录数,total:总记录【数如果是0后台会自动计算总记录数非0不会自动计算】},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, |
||||
|
*2 查询、新增、修改的参数格式 params={id:'主键 主键',userid:'员工编号',username:'姓名',ctime:'创建日期',taskId:'业务对象主键任务编号',cuserid:'创建人编号',bizDate:'业务日期yyyy-MM-dd',wstatus:'状态0-待确认,1-已确认,2-无效',remark:'备注',ttype:'任务类型-关联字典taskType',sbillId:'结算单据编号',stime:'结算提交时间',sstatus:'结算状态0-无需结算,1-待结算2-已提交3-已通过4-已结算',amt:'工时对应金额',samt:'结算金额',workload:'工时,一个task_id可多次提交,小时'} |
||||
|
**/ |
||||
|
|
||||
|
//普通查询 条件之间and关系
|
||||
|
export const listXmTaskWorkload = params => { return axios.get(`${base}/xm/core/xmTaskWorkload/list`, { params: params }); }; |
||||
|
|
||||
|
//模糊查询工时登记表 条件之间or关系
|
||||
|
//export const listXmTaskWorkloadKey = params => { return axios.get(`${base}/xm/core/xmTaskWorkload/listKey`, { params: params }); };
|
||||
|
|
||||
|
//删除一条工时登记表 params={id:'主键 主键'}
|
||||
|
export const delXmTaskWorkload = params => { return axios.post(`${base}/xm/core/xmTaskWorkload/del`,params); }; |
||||
|
|
||||
|
//批量删除工时登记表 params=[{id:'主键 主键'}]
|
||||
|
export const batchDelXmTaskWorkload = params => { return axios.post(`${base}/xm/core/xmTaskWorkload/batchDel`, params); }; |
||||
|
|
||||
|
//修改一条工时登记表记录
|
||||
|
export const editXmTaskWorkload = params => { return axios.post(`${base}/xm/core/xmTaskWorkload/edit`, params); }; |
||||
|
|
||||
|
//新增一条工时登记表
|
||||
|
export const addXmTaskWorkload = params => { return axios.post(`${base}/xm/core/xmTaskWorkload/add`, params); }; |
||||
@ -0,0 +1,135 @@ |
|||||
|
<template> |
||||
|
<section class="page-container padding"> |
||||
|
<el-row class="page-header"> |
||||
|
<el-input v-model="filters.key" style="width:50%;" placeholder="项目名称模糊查询" clearable> |
||||
|
</el-input> |
||||
|
<el-button type="primary" icon="el-icon-search" @click="searchXmProjects">查询</el-button> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-row> |
||||
|
<el-table ref="table" v-cloak fit border :data="xmProjects" highlight-current-row v-loading="load.list" |
||||
|
style="width: 100%;" :header-cell-style="{'text-align':'center'}" |
||||
|
:cell-style="{'text-align':'center'}"> |
||||
|
<el-table-column type="index" label="序号" min-width="50" ></el-table-column> |
||||
|
<el-table-column prop="id" label="项目编码" min-width="100" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="name" label="标题" min-width="150" ></el-table-column> |
||||
|
<el-table-column label="操作" min-width="80"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-button @click.stop="selectRow(scope.row)" >选择</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> |
||||
|
</section> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import util from '@/common/js/util';//全局公共库 |
||||
|
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 |
||||
|
import { addXmTaskSbill,editXmTaskSbill } from '@/api/xm/core/xmTaskSbill'; |
||||
|
import { mapGetters } from 'vuex' |
||||
|
import {listXmProject} from "@/api/xm/core/xmProject"; |
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
//XmTaskSbillEdit, |
||||
|
}, |
||||
|
computed: { |
||||
|
...mapGetters([ 'userInfo' ]), |
||||
|
|
||||
|
}, |
||||
|
props:['visible'], |
||||
|
|
||||
|
watch: { |
||||
|
'visible':function(visible) { |
||||
|
if(visible==true){ |
||||
|
//从新打开页面时某些数据需要重新加载,可以在这里添加 |
||||
|
this.initData() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
filters: { |
||||
|
key: '' |
||||
|
}, |
||||
|
load:{ list: false, edit: false, del: false, add: false },//查询中... |
||||
|
xmProjects:[], |
||||
|
pageInfo:{//分页数据 |
||||
|
total:0,//服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算。 |
||||
|
pageSize:10,//每页数据 |
||||
|
count:false,//是否需要重新计算总记录数 |
||||
|
pageNum:1,//当前页码、从1开始计算 |
||||
|
orderFields:['create_time'],//排序列 如 ['sex','student_id'],必须为数据库字段 |
||||
|
orderDirs:['desc']//升序 asc,降序desc 如 性别 升序、学生编号降序 ['asc','desc'] |
||||
|
}, |
||||
|
}//end return |
||||
|
},//end data |
||||
|
methods: { |
||||
|
//编辑提交XmTaskSbill 任务结算表父组件监听@submit="afterEditSubmit" |
||||
|
initData: function(){ |
||||
|
this.searchXmProjects(); |
||||
|
}, |
||||
|
/**begin 在下面加自定义方法**/ |
||||
|
handleSizeChange(pageSize) { |
||||
|
this.pageInfo.pageSize=pageSize; |
||||
|
this.getXmProjects(); |
||||
|
}, |
||||
|
handleCurrentChange(pageNum) { |
||||
|
this.pageInfo.pageNum = pageNum; |
||||
|
this.getXmProjects(); |
||||
|
}, |
||||
|
//获取列表 XmProject xm_project |
||||
|
getXmProjects(callBack) { |
||||
|
let params = { |
||||
|
pageSize: this.pageInfo.pageSize, |
||||
|
pageNum: this.pageInfo.pageNum, |
||||
|
total: this.pageInfo.total, |
||||
|
count:this.pageInfo.count, |
||||
|
}; |
||||
|
if(this.filters.key!==""){ |
||||
|
params.key= "%"+this.filters.key+"%"; |
||||
|
}else{ |
||||
|
//params.xxx=xxxxx |
||||
|
} |
||||
|
this.load.list = true; |
||||
|
listXmProject(params).then((res) => { |
||||
|
let tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
console.log(res.data); |
||||
|
this.pageInfo.total = res.data.total; |
||||
|
this.pageInfo.count=false; |
||||
|
this.xmProjects = res.data.data; |
||||
|
}else{ |
||||
|
this.$message({ showClose: true, message: tips.msg, type: 'error' }); |
||||
|
} |
||||
|
this.load.list = false; |
||||
|
}).catch( err => this.load.list = false ); |
||||
|
}, |
||||
|
selectRow(row){ |
||||
|
let obj = { |
||||
|
projectId:row.id, |
||||
|
projectName:row.name |
||||
|
} |
||||
|
this.$emit('select',obj); |
||||
|
}, |
||||
|
searchXmProjects(){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmProjects(); |
||||
|
} |
||||
|
},//end method |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); |
||||
|
this.initData() |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,217 @@ |
|||||
|
<template> |
||||
|
<section class="page-container padding"> |
||||
|
<el-row class="page-header"> |
||||
|
</el-row> |
||||
|
<el-row class="page-main"> |
||||
|
<!--编辑界面 XmTaskSbill 任务结算表--> |
||||
|
<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="项目ID:" prop="projectId"> |
||||
|
<el-button v-if="!editForm.projectId" type="primary" @click="projSelVisible=true" round>选择项目</el-button> |
||||
|
<span v-else>{{editForm.projectId}}</span> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="项目名称:" prop="projectName"> |
||||
|
<el-input disabled v-model="editForm.projectName" placeholder="项目名称"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="结算单标题:" prop="title"> |
||||
|
<el-input v-model="editForm.title" placeholder="结算单标题"></el-input> |
||||
|
</el-form-item> |
||||
|
<!-- <el-form-item label="金额=工时表中结算金额之和" prop="amt"> |
||||
|
<el-input v-model="editForm.amt" 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="cuserid"> |
||||
|
<el-input v-model="editForm.cuserid" placeholder="创建人编号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="创建人姓名" prop="cusername"> |
||||
|
<el-input v-model="editForm.cusername" placeholder="创建人姓名"></el-input> |
||||
|
</el-form-item>--> |
||||
|
<el-form-item label="备注:" prop="remark"> |
||||
|
<el-input v-model="editForm.remark" type="textarea" :autosize="{ minRows: 3}" placeholder="请输入备注" |
||||
|
maxlength="200" show-word-limit></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<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-form-item> |
||||
|
<!-- <el-form-item label="机构编号" prop="branchId"> |
||||
|
<el-input v-model="editForm.branchId" placeholder="机构编号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="部门编号" prop="deptid"> |
||||
|
<el-input v-model="editForm.deptid" placeholder="部门编号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="相对方编号(机构写机构号,个人写个人编号)" prop="cpId"> |
||||
|
<el-input v-model="editForm.cpId" placeholder="相对方编号(机构写机构号,个人写个人编号)"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="相对方名称(机构写机构名称,个人写个人名称)" prop="cpName"> |
||||
|
<el-input v-model="editForm.cpName" placeholder="相对方名称(机构写机构名称,个人写个人名称)"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="结算工作量=工时表中工时之和" prop="workload"> |
||||
|
<el-input v-model="editForm.workload" placeholder="结算工作量=工时表中工时之和"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="业务月份yyyy-MM" prop="bizMonth"> |
||||
|
<el-input v-model="editForm.bizMonth" placeholder="业务月份yyyy-MM"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="业务日期yyyy-MM-dd" prop="bizDate"> |
||||
|
<el-input v-model="editForm.bizDate" placeholder="业务日期yyyy-MM-dd"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="结算流程状态" prop="bizFlowState"> |
||||
|
<el-input v-model="editForm.bizFlowState" placeholder="结算流程状态"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="结算流程实例" prop="bizProcInstId"> |
||||
|
<el-input v-model="editForm.bizProcInstId" placeholder="结算流程实例"></el-input> |
||||
|
</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="0-待提交,1-已提交,2-已通过,3-已付款,4-已完成" prop="status"> |
||||
|
<el-input v-model="editForm.status" placeholder="0-待提交,1-已提交,2-已通过,3-已付款,4-已完成"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="最后审核意见" prop="fmsg"> |
||||
|
<el-input v-model="editForm.fmsg" placeholder="最后审核意见"></el-input> |
||||
|
</el-form-item>--> |
||||
|
</el-form> |
||||
|
</el-row> |
||||
|
|
||||
|
<!--新增 XmTaskSbill 任务结算表界面--> |
||||
|
<el-drawer title="选择项目" :visible.sync="projSelVisible" size="50%" append-to-body :close-on-click-modal="false"> |
||||
|
<select-xm-project :visible="projSelVisible" @select="afterProjectSelect"></select-xm-project> |
||||
|
</el-drawer> |
||||
|
</section> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import util from '@/common/js/util';//全局公共库 |
||||
|
import { getDicts,initSimpleDicts,initComplexDicts } from '@/api/mdp/meta/item';//字典表 |
||||
|
import { addXmTaskSbill,editXmTaskSbill } from '@/api/xm/core/xmTaskSbill'; |
||||
|
import { mapGetters } from 'vuex'; |
||||
|
import SelectXmProject from "./SelectXmProject"; |
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
//XmTaskSbillEdit, |
||||
|
SelectXmProject, |
||||
|
|
||||
|
}, |
||||
|
computed: { |
||||
|
...mapGetters([ 'userInfo' ]), |
||||
|
|
||||
|
}, |
||||
|
props:['xmTaskSbill','visible','opType'], |
||||
|
|
||||
|
watch: { |
||||
|
'xmTaskSbill':function( xmTaskSbill ) { |
||||
|
if(xmTaskSbill){ |
||||
|
this.editForm = xmTaskSbill; |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
'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' } |
||||
|
] |
||||
|
}, |
||||
|
|
||||
|
//编辑界面数据 XmTaskSbill 任务结算表 |
||||
|
editForm: { |
||||
|
id:'',title:'',amt:'',ctime:'',cuserid:'',cusername:'',remark:'',branchId:'',deptid:'',cpId:'',cpName:'',workload:'',bizMonth:'',bizDate:'',bizFlowState:'',bizProcInstId:'',ltime:'',status:'',fmsg:'',projectId:'',projectName:'' |
||||
|
}, |
||||
|
/**begin 在下面加自定义属性,记得补上面的一个逗号**/ |
||||
|
projSelVisible:false, |
||||
|
}//end return |
||||
|
},//end data |
||||
|
methods: { |
||||
|
// 取消按钮点击 父组件监听@cancel="editFormVisible=false" 监听 |
||||
|
handleCancel:function(){ |
||||
|
this.$refs['editFormRef'].resetFields(); |
||||
|
this.$emit('cancel'); |
||||
|
}, |
||||
|
//编辑提交XmTaskSbill 任务结算表父组件监听@submit="afterEditSubmit" |
||||
|
saveSubmit: function () { |
||||
|
this.$refs.editFormRef.validate((valid) => { |
||||
|
if (valid) { |
||||
|
this.$confirm('确认提交吗?', '提示', {}).then(() => { |
||||
|
this.load.edit=true |
||||
|
let params = Object.assign({}, this.editForm); |
||||
|
|
||||
|
let today = new Date(); |
||||
|
let year = today.getFullYear(); |
||||
|
let m = today.getMonth() + 1; |
||||
|
let d = today.getDay(); |
||||
|
params.bizMonth = year+"-"+m; |
||||
|
params.bizDate = year+"-"+m+"-"+d; |
||||
|
|
||||
|
if(this.currOpType=='edit'){ |
||||
|
editXmTaskSbill(params).then((res) => { |
||||
|
this.load.edit=false |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.$emit('submit');// @submit="afterEditSubmit" |
||||
|
} |
||||
|
this.$message({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
||||
|
}).catch( err =>this.load.edit=false); |
||||
|
}else{ |
||||
|
addXmTaskSbill(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); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
initData: function(){ |
||||
|
this.currOpType=this.opType |
||||
|
if(this.xmTaskSbill){ |
||||
|
this.editForm = Object.assign({},this.xmTaskSbill); |
||||
|
} |
||||
|
|
||||
|
if(this.opType=='edit'){ |
||||
|
|
||||
|
}else{ |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
/**begin 在下面加自定义方法**/ |
||||
|
afterProjectSelect(obj){ |
||||
|
this.projSelVisible = false; |
||||
|
this.editForm.projectId = obj.projectId; |
||||
|
this.editForm.projectName = obj.projectName; |
||||
|
} |
||||
|
},//end method |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); |
||||
|
this.initData() |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,265 @@ |
|||||
|
<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="searchXmTaskSbills" icon="el-icon-search">查询</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>--> |
||||
|
<span style="float:right;"> |
||||
|
<el-button type="primary" icon="el-icon-plus" @click="showAdd" round></el-button> |
||||
|
</span> |
||||
|
</el-row> |
||||
|
<el-row class="padding-top"> |
||||
|
<!--列表 XmTaskSbill 任务结算表--> |
||||
|
<el-table ref="xmTaskSbillTable" :data="xmTaskSbills" :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 label="序号" type="index" min-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="title" label="结算单标题" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="amt" 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="cuserid" label="创建人编号" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="cusername" label="创建人姓名" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="remark" 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="deptid" label="部门编号" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="cpId" label="相对方编号(机构写机构号,个人写个人编号)" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="cpName" label="相对方名称(机构写机构名称,个人写个人名称)" min-width="80" show-overflow-tooltip></el-table-column>--> |
||||
|
<el-table-column prop="workload" label="结算工时" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<!-- <el-table-column prop="bizMonth" label="业务月份yyyy-MM" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="bizDate" label="业务日期yyyy-MM-dd" min-width="80" show-overflow-tooltip></el-table-column>--> |
||||
|
<el-table-column prop="bizFlowState" label="审批状态" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="bizProcInstId" 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="status" label="结算单状态" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="fmsg" 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="projectName" label="项目名称" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column label="操作" width="120" fixed="right"> |
||||
|
<template scope="scope"> |
||||
|
<el-button type="text" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit"></el-button> |
||||
|
<el-button type="text" @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> |
||||
|
<!--编辑 XmTaskSbill 任务结算表界面--> |
||||
|
<el-drawer title="编辑任务结算单" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false"> |
||||
|
<xm-task-sbill-edit op-type="edit" :xm-task-sbill="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-task-sbill-edit> |
||||
|
</el-drawer> |
||||
|
|
||||
|
<!--新增 XmTaskSbill 任务结算表界面--> |
||||
|
<el-drawer title="新增任务结算单" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false"> |
||||
|
<xm-task-sbill-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-task-sbill-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 { listXmTaskSbill, delXmTaskSbill, batchDelXmTaskSbill } from '@/api/xm/core/xmTaskSbill'; |
||||
|
import XmTaskSbillEdit from './XmTaskSbillEdit';//新增修改界面 |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
XmTaskSbillEdit, |
||||
|
}, |
||||
|
props:['visible'], |
||||
|
computed: { |
||||
|
...mapGetters(['userInfo']), |
||||
|
|
||||
|
}, |
||||
|
watch:{ |
||||
|
visible(val){ |
||||
|
if(val==true){ |
||||
|
this.initData(); |
||||
|
this.searchXmTaskSbills() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
filters: { |
||||
|
key: '' |
||||
|
}, |
||||
|
xmTaskSbills: [],//查询结果 |
||||
|
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:{},//下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex']} 返回结果 {sex: [{id:'1',name:'男'},{id:'2',name:'女'}]} |
||||
|
addFormVisible: false,//新增xmTaskSbill界面是否显示 |
||||
|
//新增xmTaskSbill界面初始化数据 |
||||
|
addForm: { |
||||
|
id:'',title:'',amt:'',ctime:'',cuserid:'',cusername:'',remark:'',branchId:'',deptid:'',cpId:'',cpName:'',workload:'',bizMonth:'',bizDate:'',bizFlowState:'',bizProcInstId:'',ltime:'',status:'',fmsg:'',projectId:'',projectName:'' |
||||
|
}, |
||||
|
|
||||
|
editFormVisible: false,//编辑界面是否显示 |
||||
|
//编辑xmTaskSbill界面初始化数据 |
||||
|
editForm: { |
||||
|
id:'',title:'',amt:'',ctime:'',cuserid:'',cusername:'',remark:'',branchId:'',deptid:'',cpId:'',cpName:'',workload:'',bizMonth:'',bizDate:'',bizFlowState:'',bizProcInstId:'',ltime:'',status:'',fmsg:'',projectId:'',projectName:'' |
||||
|
}, |
||||
|
maxTableHeight:300, |
||||
|
} |
||||
|
},//end data |
||||
|
methods: { |
||||
|
handleSizeChange(pageSize) { |
||||
|
this.pageInfo.pageSize=pageSize; |
||||
|
this.getXmTaskSbills(); |
||||
|
}, |
||||
|
handleCurrentChange(pageNum) { |
||||
|
this.pageInfo.pageNum = pageNum; |
||||
|
this.getXmTaskSbills(); |
||||
|
}, |
||||
|
// 表格排序 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.getXmTaskSbills(); |
||||
|
}, |
||||
|
searchXmTaskSbills(){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmTaskSbills(); |
||||
|
}, |
||||
|
//获取列表 XmTaskSbill 任务结算表 |
||||
|
getXmTaskSbills() { |
||||
|
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; |
||||
|
listXmTaskSbill(params).then((res) => { |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.total = res.data.total; |
||||
|
this.pageInfo.count=false; |
||||
|
this.xmTaskSbills = res.data.data; |
||||
|
}else{ |
||||
|
this.$message({ showClose:true, message: tips.msg, type: 'error' }); |
||||
|
} |
||||
|
this.load.list = false; |
||||
|
}).catch( err => this.load.list = false ); |
||||
|
}, |
||||
|
|
||||
|
//显示编辑界面 XmTaskSbill 任务结算表 |
||||
|
showEdit: function ( row,index ) { |
||||
|
this.editFormVisible = true; |
||||
|
this.editForm = Object.assign({}, row); |
||||
|
}, |
||||
|
//显示新增界面 XmTaskSbill 任务结算表 |
||||
|
showAdd: function () { |
||||
|
this.addFormVisible = true; |
||||
|
//this.addForm=Object.assign({}, this.editForm); |
||||
|
}, |
||||
|
afterAddSubmit(){ |
||||
|
this.addFormVisible=false; |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmTaskSbills(); |
||||
|
}, |
||||
|
afterEditSubmit(){ |
||||
|
this.editFormVisible=false; |
||||
|
}, |
||||
|
//选择行xmTaskSbill |
||||
|
selsChange: function (sels) { |
||||
|
this.sels = sels; |
||||
|
}, |
||||
|
//删除xmTaskSbill |
||||
|
handleDel: function (row,index) { |
||||
|
this.$confirm('确认删除该记录吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.load.del=true; |
||||
|
let params = { id: row.id }; |
||||
|
delXmTaskSbill(params).then((res) => { |
||||
|
this.load.del=false; |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmTaskSbills(); |
||||
|
} |
||||
|
this.$message({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
||||
|
}).catch( err => this.load.del=false ); |
||||
|
}); |
||||
|
}, |
||||
|
//批量删除xmTaskSbill |
||||
|
batchDel: function () { |
||||
|
|
||||
|
this.$confirm('确认删除选中记录吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.load.del=true; |
||||
|
batchDelXmTaskSbill(this.sels).then((res) => { |
||||
|
this.load.del=false; |
||||
|
var tips=res.data.tips; |
||||
|
if( tips.isOk ){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmTaskSbills(); |
||||
|
} |
||||
|
this.$message({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error'}); |
||||
|
}).catch( err => this.load.del=false ); |
||||
|
}); |
||||
|
}, |
||||
|
rowClick: function(row, event, column){ |
||||
|
this.$emit('row-click',row, event, column);// @row-click="rowClick" |
||||
|
}, |
||||
|
initData: function(){ |
||||
|
|
||||
|
}, |
||||
|
/**begin 自定义函数请在下面加**/ |
||||
|
|
||||
|
},//end methods |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); |
||||
|
this.initData() |
||||
|
this.searchXmTaskSbills(); |
||||
|
if(this.$refs.xmTaskSbillTable){ |
||||
|
var clientRect=this.$refs.xmTaskSbillTable.$el.getBoundingClientRect(); |
||||
|
var subHeight=70/1000 * window.innerHeight; |
||||
|
this.maxTableHeight = window.innerHeight -clientRect.y - this.$refs.xmTaskSbillTable.$el.offsetTop-subHeight; |
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
</style> |
||||
@ -0,0 +1,174 @@ |
|||||
|
<template> |
||||
|
<section class="page-container padding"> |
||||
|
<el-row class="page-header"> |
||||
|
</el-row> |
||||
|
<el-row class="page-main" :style="{overflowX:'auto',height:maxTableHeight+'px'}" ref="table"> |
||||
|
<!--编辑界面 XmTaskWorkload 工时登记表--> |
||||
|
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef"> |
||||
|
<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="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="taskId"> |
||||
|
<el-input v-model="editForm.taskId" placeholder="业务对象主键任务编号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="创建人编号" prop="cuserid"> |
||||
|
<el-input v-model="editForm.cuserid" placeholder="创建人编号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="业务日期yyyy-MM-dd" prop="bizDate"> |
||||
|
<el-input v-model="editForm.bizDate" placeholder="业务日期yyyy-MM-dd"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="状态0-待确认,1-已确认,2-无效" prop="wstatus"> |
||||
|
<el-input v-model="editForm.wstatus" placeholder="状态0-待确认,1-已确认,2-无效"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="备注" prop="remark"> |
||||
|
<el-input v-model="editForm.remark" placeholder="备注"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="任务类型-关联字典taskType" prop="ttype"> |
||||
|
<el-input v-model="editForm.ttype" placeholder="任务类型-关联字典taskType"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="主键" prop="id"> |
||||
|
<el-input-number v-model="editForm.id" :min="0" :max="200"></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="结算单据编号" prop="sbillId"> |
||||
|
<el-input v-model="editForm.sbillId" placeholder="结算单据编号"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="结算提交时间" prop="stime"> |
||||
|
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.stime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd"></el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="结算状态0-无需结算,1-待结算2-已提交3-已通过4-已结算" prop="sstatus"> |
||||
|
<el-input v-model="editForm.sstatus" placeholder="结算状态0-无需结算,1-待结算2-已提交3-已通过4-已结算"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="工时对应金额" prop="amt"> |
||||
|
<el-input v-model="editForm.amt" placeholder="工时对应金额"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="结算金额" prop="samt"> |
||||
|
<el-input v-model="editForm.samt" placeholder="结算金额"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="工时,一个task_id可多次提交,小时" prop="workload"> |
||||
|
<el-input v-model="editForm.workload" placeholder="工时,一个task_id可多次提交,小时"></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 { addXmTaskWorkload,editXmTaskWorkload } from '@/api/xm/core/xmTaskWorkload'; |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
name:'xmTaskWorkloadEdit', |
||||
|
components: { |
||||
|
|
||||
|
}, |
||||
|
computed: { |
||||
|
...mapGetters([ 'userInfo' ]), |
||||
|
|
||||
|
}, |
||||
|
props:['xmTaskWorkload','visible','opType'], |
||||
|
|
||||
|
watch: { |
||||
|
'xmTaskWorkload':function( xmTaskWorkload ) { |
||||
|
if(xmTaskWorkload){ |
||||
|
this.editForm = xmTaskWorkload; |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
'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: { |
||||
|
userid:'',username:'',ctime:'',taskId:'',cuserid:'',bizDate:'',wstatus:'',remark:'',ttype:'',id:'',sbillId:'',stime:'',sstatus:'',amt:'',samt:'',workload:'' |
||||
|
}, |
||||
|
maxTableHeight:300, |
||||
|
}//end return |
||||
|
},//end data |
||||
|
methods: { |
||||
|
// 取消按钮点击 父组件监听@cancel="editFormVisible=false" 监听 |
||||
|
handleCancel:function(){ |
||||
|
this.$refs['editFormRef'].resetFields(); |
||||
|
this.$emit('cancel'); |
||||
|
}, |
||||
|
//新增、编辑提交XmTaskWorkload 工时登记表父组件监听@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=addXmTaskWorkload |
||||
|
if(this.currOpType=='edit'){ |
||||
|
func=editXmTaskWorkload |
||||
|
} |
||||
|
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.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
||||
|
}).catch( err =>this.load.edit=false); |
||||
|
}); |
||||
|
}else{ |
||||
|
this.$notify({ showClose:true, message: "表单验证不通过,请修改表单数据再提交", type: 'error' }); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
initData: function(){ |
||||
|
this.currOpType=this.opType |
||||
|
if(this.xmTaskWorkload){ |
||||
|
this.editForm = Object.assign({},this.xmTaskWorkload); |
||||
|
} |
||||
|
|
||||
|
if(this.opType=='edit'){ |
||||
|
|
||||
|
}else{ |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
},//end method |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
//initSimpleDicts('all',['sex','gradeLvl']).then(res=>this.dicts=res.data.data); |
||||
|
this.initData() |
||||
|
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.table.$el) |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,260 @@ |
|||||
|
<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="searchXmTaskWorkloads" 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"> |
||||
|
<!--列表 XmTaskWorkload 工时登记表--> |
||||
|
<el-table ref="xmTaskWorkloadTable" :data="xmTaskWorkloads" :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="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="ctime" label="创建日期" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="taskId" label="业务对象主键任务编号" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="cuserid" label="创建人编号" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="bizDate" label="业务日期yyyy-MM-dd" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="wstatus" label="状态0-待确认,1-已确认,2-无效" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="remark" label="备注" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="ttype" label="任务类型-关联字典taskType" min-width="80" 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="sbillId" label="结算单据编号" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="stime" label="结算提交时间" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="sstatus" label="结算状态0-无需结算,1-待结算2-已提交3-已通过4-已结算" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="amt" label="工时对应金额" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="samt" label="结算金额" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column prop="workload" label="工时,一个task_id可多次提交,小时" min-width="80" show-overflow-tooltip></el-table-column> |
||||
|
<el-table-column label="操作" width="180" fixed="right"> |
||||
|
<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> |
||||
|
<!--编辑 XmTaskWorkload 工时登记表界面--> |
||||
|
<el-drawer title="编辑工时登记表" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false"> |
||||
|
<xm-task-workload-edit op-type="edit" :xm-task-workload="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-task-workload-edit> |
||||
|
</el-drawer> |
||||
|
|
||||
|
<!--新增 XmTaskWorkload 工时登记表界面--> |
||||
|
<el-drawer title="新增工时登记表" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false"> |
||||
|
<xm-task-workload-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-task-workload-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 { listXmTaskWorkload, delXmTaskWorkload, batchDelXmTaskWorkload } from '@/api/xm/core/xmTaskWorkload'; |
||||
|
import XmTaskWorkloadEdit from './XmTaskWorkloadEdit';//新增修改界面 |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
name:'xmTaskWorkloadMng', |
||||
|
components: { |
||||
|
XmTaskWorkloadEdit, |
||||
|
}, |
||||
|
props:['visible'], |
||||
|
computed: { |
||||
|
...mapGetters(['userInfo']), |
||||
|
|
||||
|
}, |
||||
|
watch:{ |
||||
|
visible(val){ |
||||
|
if(val==true){ |
||||
|
this.initData(); |
||||
|
this.searchXmTaskWorkloads() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
filters: { |
||||
|
key: '' |
||||
|
}, |
||||
|
xmTaskWorkloads: [],//查询结果 |
||||
|
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,//新增xmTaskWorkload界面是否显示 |
||||
|
addForm: { |
||||
|
userid:'',username:'',ctime:'',taskId:'',cuserid:'',bizDate:'',wstatus:'',remark:'',ttype:'',id:'',sbillId:'',stime:'',sstatus:'',amt:'',samt:'',workload:'' |
||||
|
}, |
||||
|
|
||||
|
editFormVisible: false,//编辑界面是否显示 |
||||
|
editForm: { |
||||
|
userid:'',username:'',ctime:'',taskId:'',cuserid:'',bizDate:'',wstatus:'',remark:'',ttype:'',id:'',sbillId:'',stime:'',sstatus:'',amt:'',samt:'',workload:'' |
||||
|
}, |
||||
|
maxTableHeight:300, |
||||
|
} |
||||
|
},//end data |
||||
|
methods: { |
||||
|
handleSizeChange(pageSize) { |
||||
|
this.pageInfo.pageSize=pageSize; |
||||
|
this.getXmTaskWorkloads(); |
||||
|
}, |
||||
|
handleCurrentChange(pageNum) { |
||||
|
this.pageInfo.pageNum = pageNum; |
||||
|
this.getXmTaskWorkloads(); |
||||
|
}, |
||||
|
// 表格排序 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.getXmTaskWorkloads(); |
||||
|
}, |
||||
|
searchXmTaskWorkloads(){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmTaskWorkloads(); |
||||
|
}, |
||||
|
//获取列表 XmTaskWorkload 工时登记表 |
||||
|
getXmTaskWorkloads() { |
||||
|
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; |
||||
|
listXmTaskWorkload(params).then((res) => { |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.total = res.data.total; |
||||
|
this.pageInfo.count=false; |
||||
|
this.xmTaskWorkloads = res.data.data; |
||||
|
}else{ |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: 'error' }); |
||||
|
} |
||||
|
this.load.list = false; |
||||
|
}).catch( err => this.load.list = false ); |
||||
|
}, |
||||
|
|
||||
|
//显示编辑界面 XmTaskWorkload 工时登记表 |
||||
|
showEdit: function ( row,index ) { |
||||
|
this.editFormVisible = true; |
||||
|
this.editForm = Object.assign({}, row); |
||||
|
}, |
||||
|
//显示新增界面 XmTaskWorkload 工时登记表 |
||||
|
showAdd: function () { |
||||
|
this.addFormVisible = true; |
||||
|
//this.addForm=Object.assign({}, this.editForm); |
||||
|
}, |
||||
|
afterAddSubmit(){ |
||||
|
this.addFormVisible=false; |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmTaskWorkloads(); |
||||
|
}, |
||||
|
afterEditSubmit(){ |
||||
|
this.editFormVisible=false; |
||||
|
}, |
||||
|
//选择行xmTaskWorkload |
||||
|
selsChange: function (sels) { |
||||
|
this.sels = sels; |
||||
|
}, |
||||
|
//删除xmTaskWorkload |
||||
|
handleDel: function (row,index) { |
||||
|
this.$confirm('确认删除该记录吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.load.del=true; |
||||
|
let params = { id:row.id }; |
||||
|
delXmTaskWorkload(params).then((res) => { |
||||
|
this.load.del=false; |
||||
|
var tips=res.data.tips; |
||||
|
if(tips.isOk){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmTaskWorkloads(); |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
||||
|
}).catch( err => this.load.del=false ); |
||||
|
}); |
||||
|
}, |
||||
|
//批量删除xmTaskWorkload |
||||
|
batchDel: function () { |
||||
|
if(this.sels.length<=0){ |
||||
|
return; |
||||
|
} |
||||
|
var params=this.sels.map(i=>{ |
||||
|
return { id:i.id} |
||||
|
}) |
||||
|
this.$confirm('确认删除选中记录吗?', '提示', { |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.load.del=true; |
||||
|
batchDelXmTaskWorkload(params).then((res) => { |
||||
|
this.load.del=false; |
||||
|
var tips=res.data.tips; |
||||
|
if( tips.isOk ){ |
||||
|
this.pageInfo.count=true; |
||||
|
this.getXmTaskWorkloads(); |
||||
|
} |
||||
|
this.$notify({ showClose:true, message: tips.msg, type: tips.isOk?'success':'error'}); |
||||
|
}).catch( err => this.load.del=false ); |
||||
|
}); |
||||
|
}, |
||||
|
rowClick: function(row, event, column){ |
||||
|
this.editForm=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.searchXmTaskWorkloads(); |
||||
|
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.xmTaskWorkloadTable.$el) |
||||
|
|
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue