1.部门周记list修改

2.查看工作量界面和修改页面
This commit is contained in:
chen 2024-07-09 16:42:24 +08:00
parent dbe4dbf9be
commit 4d8bce37d4
4 changed files with 477 additions and 41 deletions

View File

@ -0,0 +1,448 @@
<template>
<div id="content-container" :class="{'expand-right': expandRight}">
<!--Page Title-->
<div id="page-title">
<h1 class="page-header text-overflow">个人周报填报</h1>
</div>
<!--End page title-->
<!--Breadcrumb-->
<!--<ol class="breadcrumb">-->
<!--<li><a href="#">Home</a></li>-->
<!--<li><a href="#">Layouts</a></li>-->
<!--<li class="active">Demo</li>-->
<!--</ol>-->
<!--End breadcrumb-->
<!--Page content-->
<div class="page-content">
<div class="panel">
<div class="panel-body">
<el-form :model="formModel" label-width="100px" ref="formName">
<el-form-item label="部门" prop="deptId">
<el-select class="form-input" filterable placeholder="请选择" v-model="formModel.deptId" :disabled="true">
<el-option
v-for="subItem in orgOptions"
:key="subItem.model"
:label="subItem.label"
:value="subItem.model"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名" prop="userId">
<el-select class="form-input" filterable placeholder="请选择" :disabled="true"
v-model="formModel.userInfoId">
<el-option
v-for="subItem in userInfoOption"
:key="subItem.model"
:label="subItem.label"
:value="subItem.model"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="项目编号" prop="projectNo">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.projectNo"
>
</el-input>
</el-form-item>
<!-- :rules="[-->
<!-- {projectName: true, message: '项目名称不能为空'}]"-->
<el-form-item label="项目名称" prop="projectName">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.projectName"
>
</el-input>
</el-form-item>
<el-form-item label="工作量(人日)" prop="workload">
<el-input
class="form-input"
placeholder="请输入内容"
v-model.number="formModel.workload"
@change="moneyChange"
>
</el-input>
</el-form-item>
<el-form-item label="本周进展" prop="thisWeek">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.thisWeek"
>
</el-input>
</el-form-item>
<el-form-item label="下周计划" prop="nextWeek">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.nextWeek"
>
</el-input>
</el-form-item>
<!-- </div>-->
<el-form-item>
<div style="float: right">
<el-button @click="cancel()" type="default">取消</el-button>
<el-button @click="save('formName')" type="primary" :disabled="!isSave">修改</el-button>
</div>
</el-form-item>
</el-form>
</div>
</div>
</div>
<!--End Page content-->
</div>
</template>
<script>
import DataForm from '../../../components/form/DataForm.vue'
import DataTable from '../../../components/DataTable.vue'
import Api from '../../../server/index'
import app from '../../../assets/js/common/app.js'
import {baseUrl} from '../../../config/env.js'
import verifyButton from '../../../components/verifyButton.vue'
import FlowRecordTable from '../../../components/FlowRecordTable.vue'
export default {
beforeRouteEnter (to, from, next) {
next(function (vm) {
global.getMenuIndex(vm)
})
},
data () {
return {
ext: {},
thisWeek: '',
nextWeek: '',
userId: '',
workload: '',
projectName: '',
money: '',
projectNo: '',
expandRight: false,
app: app,
reimburseId: '',
actionUrl: `${baseUrl}/api/common/file-upload`, //
baseUrl: baseUrl,
formModel: {
userInfoId: '',
witness: '',
deptId: '',
reimburseCategory: '', //
reason: '', //
selectBudgetCategoryId: [], //
reimburseDetail: [
{
time: '',
money: '',
moneyDetail: '',
total: 0,
hasBill: '', //
fileList: [], //
}
], //
activie: 0
},
formWitnessData: [], //
orgOptions: [],
userInfoOption: [],
reimburseCategoryData: app.reimbursement, //
budgetCategory: [], //
reimburseIndex: 0, //
//
rewriteAgreeVerify: false, //
rewriteRejectVerify: false, //
rewriteDestroyVerify: false, //
flowId: '',
taskId: '',
checkOrVerify: false, //
isSave: true,
isEdit: false,
canEditReimburseCategory: false, //
canEditBudgetCategory: false, //
isVerify: false,
isNotVerifyReady: false //
}
},
created () {
this.taskId = this.$route.params.taskId
if (this.$route.name === 'ExpenseClaimApplyEdit') {
this.isEdit = true
this.flowId = this.$route.params.id
console.log('路由ID为', this.$route.params.id)
this.checkOrVerify = true
} else if (this.$route.name === 'ExpenseClaimApplyVerify') {
this.isVerify = true
this.flowId = this.$route.params.verifyId
this.checkOrVerify = false
this.isNotVerifyReady = this.$route.query.isNotVerifyReady === 'Y'
} else if (this.$route.name === 'ExpenseClaimApplyArchive') {
this.flowId = this.$route.params.id
this.checkOrVerify = true
} else {
this.flowId = this.$route.params.id
this.checkOrVerify = true
}
this.init()
this.getBudgetCategory()
},
methods: {
init () {
this.reimburseId = this.$route.params.id
this.getWeekly()
},
getWeekly () {
let ProjectWeekly = {
id: this.reimburseId
}
Api.ProjectManagements.getWeekly(ProjectWeekly).then(result => {
this.tableRowsData = []
this.pageLoading = false
if (result.status === 0) {
console.log('获取信息', result)
let dataList = result.data.ls[0]
this.formModel = dataList
this.formModel.userInfoId = dataList.ext.userName
this.formModel.deptId = dataList.ext.deptName
}
})
},
//
judgeEditAuth (canEdit) {
if (this.isNotVerifyReady === true) {
if (this.$route.name === 'ExpenseClaimApplyVerify') {
this.canEditBudgetCategory = canEdit
this.rewriteAgreeVerify = canEdit
this.rewriteRejectVerify = canEdit
this.rewriteDestroyVerify = canEdit
if (this.formModel.reimburseCategory !== 'medical') {
this.canEditReimburseCategory = canEdit
//
let destData = []
this.reimburseCategoryData.forEach((category, index) => {
destData.push(
{
label: category.label,
model: category.model,
disabled: category.model === 'medical',
}
)
})
this.reimburseCategoryData = destData
}
this.isEdit = false
} else {
this.isEdit = canEdit
}
}
},
getBudgetCategory () {
Api.Common.getBudgetCategory().then(result => {
if (result.status === 0) {
this.budgetCategory = this.assembleOrgData(result.data)
} else {
this.$message.error(`${result.msg}`)
}
})
},
//
getAllPeople () {
// Api.PersonnelManagement.personListNew(1, 10000).then((result) => {
// if (result.status === 0) {
// for (let i = 0; i < result.data.ls.length; i++) {
// let people = result.data.ls[i]
// this.formWitnessData.push({
// model: people.id,
// label: people.personName,
// disabled: people.id === this.formModel.userInfoId
// })
// }
// } else {
// this.$message.error(`${result.msg}`)
// }
// })
let params = {
path: {
id: 0
}
}
Api.Administration.getPeers(params).then((result) => {
console.log('查询所有')
console.log('查询所有人员的方法')
if (result.status === 0) {
// this.formModel.deptId=this.assembleOrgData(result.data)
this.orgOptions = this.assembleOrgData(result.data)
// this.formModel.userId=this.assembleOrgData(result.data)
// this.userInfoOption=this.assembleOrgData(result.data)
console.log('deptId', this.formModel.deptId)
console.log('orgOptions', this.orgOptions)
console.log('userId', this.formModel.userId)
console.log('userInfoOption', this.userInfoOption)
//
// this.formPermissionsData = this.assembleOrgData(result.data)
//
// this.formProjectManagerData = this.assembleOrgData(result.data)
// this.formPeopleData = this.assembleOrgData(result.data)
// this.formProjectAdmin = this.assembleOrgData(result.data)
// this.formMainLeader = this.assembleOrgData(result.data)
// this.formBranchLeader = this.assembleOrgData(result.data)
} else {
this.$message.error(result.msg)
}
})
},
//
assembleOrgData (source) {
let dest = []
for (let i = 0; i < source.length; i++) {
let org = {
value: source[i].id,
parentId: source[i].parentId,
label: source[i].name,
depth: source[i].depth
}
if (source[i].childList && source[i].childList.length > 0) {
org['children'] = this.assembleOrgData(source[i].childList)
}
dest.push(org)
}
return dest
},
addFile () {
this.formModel.reimburseDetail.push({
time: '',
money: '',
moneyDetail: '',
hasBill: '', //
fileList: [] //
})
},
deleteFile (index) {
if (this.formModel.reimburseDetail.length === 1) {
this.$message.warning('报销明细不能为空!')
return false
}
this.formModel.reimburseDetail.splice(index, 1)
},
//
handleFileRemove (file, fileList) {
console.log(fileList)
setTimeout(() => {
this.formModel.reimburseDetail[this.reimburseIndex].fileList = []
for (let i = 0; i < fileList.length; i++) {
this.formModel.reimburseDetail[this.reimburseIndex].fileList.push({
name: fileList[i].name,
url: fileList[i].url
})
}
}, 10)
},
handleFileSuccess (res, file, fileList) {
if (res.status === 0) {
this.formModel.reimburseDetail[this.reimburseIndex].fileList.push({
name: file.name,
url: file.response.data.url
})
} else {
this.$message.error(`${res.msg}`)
}
console.log(this.formModel.reimburseDetail[this.reimburseIndex].fileList)
},
reimburseClick (index) {
this.reimburseIndex = index
console.log(index)
},
//
agreeFlowVerify (comment) {
this.save('formName', 'commit', comment)
},
//
rejectFlowVerify (comment) {
this.save('formName', 'back', comment)
},
//
destroyFlowVerify (comment) {
this.save('formName', 'end', comment)
},
cancel () {
this.$router.go(-1)
},
save (formName) {
console.log('formName', formName)
this.$refs[formName].validate((valid) => {
if (valid) {
let data = {
projectWeeklyAddReq: {
projectWeekly: {
id: this.$route.params.id,
thisWeek: this.formModel.thisWeek,
nextWeek: this.formModel.nextWeek,
workload: this.formModel.workload
},
ext: {
projectName: this.formModel.projectName,
projectNo: this.formModel.projectNo,
deptName: this.formModel.deptId,
userName: this.formModel.userInfoId
}
}
}
this.isSave = false
Api.ProjectManagements.addWeekly(data.projectWeeklyAddReq).then(result => {
this.isSave = true
if (result.status === 0) {
this.$message.info(result.data)
this.$router.push({name: 'DepartmentWeeklyList'})
} else {
this.$message.error(result.data)
}
})
console.log(data)
} else {
console.log('error submit!!')
return false
}
})
},
moneyChange () {
let total = 0
for (let i = 0; i < this.formModel.reimburseDetail.length; i++) {
if (this.formModel.reimburseDetail[i].money === '' || !this.formModel.reimburseDetail[i].money) {
total += 0
} else {
total += Number(this.formModel.reimburseDetail[i].money)
}
}
this.formModel.total = total.toFixed(2)
}
},
components: {
DataTable, DataForm, verifyButton, FlowRecordTable
}
}
</script>
<style scoped lang="less" rel="stylesheet/less">
.expand-right {
@media (min-width: 768px) {
padding-left: 0 !important;
}
}
.page-content {
padding: 15px;
}
</style>

View File

@ -1,28 +1,4 @@
<!--<template>
<div id="content-container" :class="{'expand-right': expandRight}">
<page-loading :show="pageLoading"></page-loading>
&lt;!&ndash;Page Title&ndash;&gt;
<div id="page-title">
<h1 class="page-header text-overflow">部门周报填报</h1>
</div>
<div class="page-content">
<data-table
:totalColumnsData="tableColumnsData"
:rowsData="tableRowsData"
:showSingleOperation="tableShowSingleOperation"
:showMultipleOperation="false"
:canFolded="true"
:showPageCtr="true"
:totalPage="tableTotalPage"
:currentPage="pageNo"
@selectPage="tableSelectPage"
@singleEdit="tableSingleEdit"
@singleCheck="tableSingleCheck"
>
</data-table>
</div>
</div>
</template>-->
<template> <template>
<div id="content-container" :class="{'expand-right': expandRight}"> <div id="content-container" :class="{'expand-right': expandRight}">
<page-loading :show="pageLoading"></page-loading> <page-loading :show="pageLoading"></page-loading>
@ -54,8 +30,10 @@
> >
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" size="mini" @click="showById(scope.row.id)">查看工作量</el-button> <el-button type="text" size="mini" @click="showById(scope.row.id)">查看工作量</el-button>
<el-button type="text" size="mini" @click="updateById(scope.row.id)">修改</el-button> <el-button type="text" size="mini" @click="updateById(scope.row.id)">修改</el-button>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -69,8 +47,7 @@
layout="sizes, prev, pager, next, jumper, ->, total, slot" layout="sizes, prev, pager, next, jumper, ->, total, slot"
/> />
<!-- 查看每人工作量(人日)--> <!-- 查看每人工作量(人日)-->
<el-dialog title="查看每人工作量" :visible.sync="formDataInfo" width="35%"> <el-dialog title="查看每人工作量" :visible.sync="formDataInfo" width="60%">
<h3>每人工作量(人日)</h3>
<div> <div>
<el-table :data="workLoadInfo"> <el-table :data="workLoadInfo">
<el-table-column <el-table-column
@ -120,11 +97,12 @@
showCheck: true, showCheck: true,
}, },
dataList: [], dataList: [],
workLoadInfo: [], workLoadInfo: [], //
formDataInfo: false, formDataInfo: false,
// //
pageNo: 1, // pageNo: 1, //
pageSize: 10, // pageSize: 10, //
total: null,
tableTotalPage: 1, tableTotalPage: 1,
tableColumnsData: [], tableColumnsData: [],
tableRowsData: [], tableRowsData: [],
@ -146,12 +124,13 @@
pageSize: this.pageSize pageSize: this.pageSize
} }
// this.pageLoading = true; // this.pageLoading = true;
Api.ProjectManagements.getWeekly(projectWeeklyFindReq).then(result=>{ Api.ProjectManagements.getDepartmentWeekly(projectWeeklyFindReq).then(result=>{
this.tableRowsData = []; this.tableRowsData = [];
this.pageLoading = false; this.pageLoading = false;
console.log("周报填报列表",result) console.log("周报填报列表",result)
if (result.status === 0) { if (result.status === 0) {
this.dataList = result.data.ls; this.dataList = result.data.ls;
this.total = result.data.total;
for (let i=0; i<this.dataList.length; i++) { for (let i=0; i<this.dataList.length; i++) {
this.tableRowsData.push({ this.tableRowsData.push({
projectNo: this.dataList[i].projectNo, projectNo: this.dataList[i].projectNo,
@ -203,12 +182,6 @@
this.pageNo = param; this.pageNo = param;
this.init(); this.init();
}, },
tableSingleCheck (index){
this.$router.push({
name: "ExpenseClaimApplyCheck",
params: {id: this.tableRowsData[index].id}
})
},
showById (id) { showById (id) {
Api.ProjectManagements.getWorkLoad(id).then( Api.ProjectManagements.getWorkLoad(id).then(
response => { response => {
@ -218,13 +191,12 @@
} }
) )
}, },
tableSingleEdit (index) { updateById (id) {
this.$router.push({ this.$router.push({
name: "ExpenseClaimApplyEdit", name: "DepartmentWeeklyEdit",
params: {id: this.tableRowsData[index].id} params: {id}
}) })
} }},
},
components: { components: {
PageLoading, DataTable, DataForm PageLoading, DataTable, DataForm
} }

View File

@ -1,6 +1,7 @@
import Vue from 'vue' import Vue from 'vue'
import Router from 'vue-router' import Router from 'vue-router'
import {setItem} from '../config/mUtils.js' import {setItem} from '../config/mUtils.js'
import DepartmentWeeklyDetail from "../pages/projectManagements/departmentWeekly/DepartmentWeeklyEdit";
// import Nav from '../components/nav/nav.vue' // import Nav from '../components/nav/nav.vue'
@ -323,6 +324,7 @@ const ProjectBudgetApplyAdd = r => require.ensure([], () => r(require('../pages/
const ProjectBudgetApplyDetail = r => require.ensure([], () => r(require('../pages/projectManagements/weekly/projectBudget/ProjectBudgetApplyDetail.vue')), 'ProjectBudgetApplyDetail') const ProjectBudgetApplyDetail = r => require.ensure([], () => r(require('../pages/projectManagements/weekly/projectBudget/ProjectBudgetApplyDetail.vue')), 'ProjectBudgetApplyDetail')
// 部门周报 // 部门周报
const DepartmentWeeklyList = r => require.ensure([], () => r(require('../pages/projectManagements/departmentWeekly/DepartmentWeeklyList.vue')), 'DepartmentWeeklyList') const DepartmentWeeklyList = r => require.ensure([], () => r(require('../pages/projectManagements/departmentWeekly/DepartmentWeeklyList.vue')), 'DepartmentWeeklyList')
const DepartmentWeeklyEdit = r => require.ensure([], () => r(require('../pages/projectManagements/departmentWeekly/DepartmentWeeklyEdit.vue')), 'DepartmentWeeklyEdit')
//财务管理 //财务管理
const ExpenseReceipteManagement = r => require.ensure([], () => r(require('../pages/financialManagement/expenseReceipteManagement/ExpenseReceipteManagement.vue')), 'ExpenseReceipteManagement') const ExpenseReceipteManagement = r => require.ensure([], () => r(require('../pages/financialManagement/expenseReceipteManagement/ExpenseReceipteManagement.vue')), 'ExpenseReceipteManagement')
const ExpenseReceipteDetail = r => require.ensure([], () => r(require('../pages/financialManagement/expenseReceipteManagement/ExpenseReceipteDetail.vue')), 'ExpenseReceipteDetail') const ExpenseReceipteDetail = r => require.ensure([], () => r(require('../pages/financialManagement/expenseReceipteManagement/ExpenseReceipteDetail.vue')), 'ExpenseReceipteDetail')
@ -2339,6 +2341,16 @@ export default new Router({
module: 'project' module: 'project'
} }
}, },
{
// 项目管理-->部门项目周报修改
name: 'DepartmentWeeklyEdit',
path: '/project/managements/departmentWeekly/department/Weekly/edit/:id',
component: DepartmentWeeklyEdit,
meta: {
info: 'WeeklyManagements',
module: 'project'
}
},
// //
// { // {
// //项目管理-->项目立项 // //项目管理-->项目立项

View File

@ -53,6 +53,10 @@ export default {
getBudget:(param) => Ax('post', '/api/project/weekly/budget', param), getBudget:(param) => Ax('post', '/api/project/weekly/budget', param),
addBudget:(param) => Ax('post', '/api/project/weekly/budget/add', param), addBudget:(param) => Ax('post', '/api/project/weekly/budget/add', param),
delBudget:(param) => Ax('delete', '/api/project/weekly/budget/del', param), delBudget:(param) => Ax('delete', '/api/project/weekly/budget/del', param),
/**
* 部门周报填报管理
*
* */
getDepartmentWeekly: (param) => Ax('post', '/api/project/departmentWeekly', param), getDepartmentWeekly: (param) => Ax('post', '/api/project/departmentWeekly', param),
getWorkLoad: (id) => Ax('get', `/api/project/departmentWeekly/showById/${id}`, id) getWorkLoad: (id) => Ax('get', `/api/project/departmentWeekly/showById/${id}`, id),
} }