feat(expense-management): 新增费用分摊功能并优化项目管理相关页面
This commit is contained in:
@@ -9,6 +9,13 @@ export const addAllocation = (data) => {
|
|||||||
data
|
data
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
export const addShare = (data) => {
|
||||||
|
return request({
|
||||||
|
url:'/workflow/mosr/cost/share',
|
||||||
|
method: "post",
|
||||||
|
data
|
||||||
|
});
|
||||||
|
};
|
||||||
export const getAllocationDetail = (allocationId) => {
|
export const getAllocationDetail = (allocationId) => {
|
||||||
return request({
|
return request({
|
||||||
url: `/workflow/mosr/cost/allocation/info/${allocationId}`,
|
url: `/workflow/mosr/cost/allocation/info/${allocationId}`,
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ const tableConfig = reactive({
|
|||||||
params: {},
|
params: {},
|
||||||
export:{
|
export:{
|
||||||
open :true,
|
open :true,
|
||||||
fileName:`科技创新费用支出明细.xlsx`
|
fileName:`科研项日现金支出明细表`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const search = (val) => {
|
const search = (val) => {
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ import {
|
|||||||
getResearchUser,
|
getResearchUser,
|
||||||
getProjectOption,
|
getProjectOption,
|
||||||
editAllocation,
|
editAllocation,
|
||||||
getAllocationDetailList
|
getAllocationDetailList, addShare
|
||||||
} from "@/api/expense-manage";
|
} from "@/api/expense-manage";
|
||||||
import {useProcessStore} from '@/stores/processStore.js';
|
import {useProcessStore} from '@/stores/processStore.js';
|
||||||
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue';
|
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue';
|
||||||
@@ -107,16 +107,16 @@ localStorage.removeItem('originallySelectedList')
|
|||||||
const userList = ref([])
|
const userList = ref([])
|
||||||
const changeDiagram = ref(false)
|
const changeDiagram = ref(false)
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
shareName: [{required: true, message: '请输入分摊名称', trigger: ['blur', 'change']}],
|
// shareName: [{required: true, message: '请输入分摊名称', trigger: ['blur', 'change']}],
|
||||||
apportionmentMonth: [{required: true, message: '请选择月份', trigger: ['blur', 'change']}],
|
apportionmentMonth: [{required: true, message: '请选择月份', trigger: ['blur', 'change']}],
|
||||||
projectId: [{required: true, message: '请选择项目名称', trigger: ['blur', 'change']}],
|
projectId: [{required: true, message: '请选择项目名称', trigger: ['blur', 'change']}],
|
||||||
// researchPersonnelId: [{required: true, message: '请选择研发人员', trigger: ['blur', 'change']}],
|
// researchPersonnelId: [{required: true, message: '请选择研发人员', trigger: ['blur', 'change']}],
|
||||||
wagesPayable: [{required: true, message: '请输入应发工资', trigger: ['blur', 'change']}],
|
// wagesPayable: [{required: true, message: '请输入应发工资', trigger: ['blur', 'change']}],
|
||||||
performance: [{required: true, message: '请输入绩效', trigger: ['blur', 'change']}],
|
// performance: [{required: true, message: '请输入绩效', trigger: ['blur', 'change']}],
|
||||||
reserveFund: [{required: true, message: '请输入公积金', trigger: ['blur', 'change']}],
|
// reserveFund: [{required: true, message: '请输入公积金', trigger: ['blur', 'change']}],
|
||||||
socialSecurity: [{required: true, message: '请输入社保', trigger: ['blur', 'change']}],
|
// socialSecurity: [{required: true, message: '请输入社保', trigger: ['blur', 'change']}],
|
||||||
annuity: [{required: true, message: '请输入年金', trigger: ['blur', 'change']}],
|
// annuity: [{required: true, message: '请输入年金', trigger: ['blur', 'change']}],
|
||||||
workday: [{required: true, message: '请输入工作日', trigger: ['blur', 'change']}],
|
// workday: [{required: true, message: '请输入工作日', trigger: ['blur', 'change']}],
|
||||||
researchDuration: [{required: true, message: '请输入研发时长', trigger: ['blur', 'change']}],
|
researchDuration: [{required: true, message: '请输入研发时长', trigger: ['blur', 'change']}],
|
||||||
})
|
})
|
||||||
const processStore = useProcessStore()
|
const processStore = useProcessStore()
|
||||||
@@ -135,12 +135,12 @@ const formData = ref({
|
|||||||
{
|
{
|
||||||
projectId: '',
|
projectId: '',
|
||||||
projectName: '',
|
projectName: '',
|
||||||
researchPersonnelId: '',
|
// researchPersonnelId: '',
|
||||||
wagesPayable: null,
|
// wagesPayable: null,
|
||||||
performance: null,
|
// performance: null,
|
||||||
reserveFund: null,
|
// reserveFund: null,
|
||||||
socialSecurity: null,
|
// socialSecurity: null,
|
||||||
annuity: null,
|
// annuity: null,
|
||||||
workday: '21.75',
|
workday: '21.75',
|
||||||
researchDuration: null,
|
researchDuration: null,
|
||||||
}
|
}
|
||||||
@@ -383,13 +383,11 @@ const handleSubmit = (instance) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let params = {
|
let params = {
|
||||||
shareName: formData.value.shareName,
|
|
||||||
apportionmentMonth: formData.value.apportionmentMonth,
|
apportionmentMonth: formData.value.apportionmentMonth,
|
||||||
usrAllocations: formData.value.tableData,
|
usrAllocations: formData.value.tableData,
|
||||||
deploymentId: processInstanceData.value.deploymentId,
|
|
||||||
}
|
}
|
||||||
console.log('params', params, formData.value.tableData)
|
console.log('params', params, formData.value.tableData)
|
||||||
const {code, msg} = await addAllocation(params)
|
const {code, msg} = await addShare(params)
|
||||||
ElNotification({
|
ElNotification({
|
||||||
title: '提示',
|
title: '提示',
|
||||||
message: msg,
|
message: msg,
|
||||||
|
|||||||
@@ -232,7 +232,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?route.query.id?'-10px':'0':'0'}">
|
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?route.query.id?'-10px':'0':'0'}">
|
||||||
<el-form-item label="需求征集" prop="requirementId" required>
|
<el-form-item label="需求征集" prop="" required>
|
||||||
<template v-if="formData.requirementDefaultName">{{ formData.requirementDefaultName }}</template>
|
<template v-if="formData.requirementDefaultName">{{ formData.requirementDefaultName }}</template>
|
||||||
<el-select v-else v-model="formData.requirementId" clearable placeholder="请选择需求征集"
|
<el-select v-else v-model="formData.requirementId" clearable placeholder="请选择需求征集"
|
||||||
@change="changeCollectData">
|
@change="changeCollectData">
|
||||||
|
|||||||
@@ -216,6 +216,12 @@ const tableConfig = reactive({
|
|||||||
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
|
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
prop: 'processNumber',
|
||||||
|
label: '编号',
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
prop: 'requirementName',
|
prop: 'requirementName',
|
||||||
label: '征集名称',
|
label: '征集名称',
|
||||||
|
|||||||
@@ -219,6 +219,12 @@ const tableConfig = reactive({
|
|||||||
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
|
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
prop: 'processNumber',
|
||||||
|
label: '编号',
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
prop: 'requirementName',
|
prop: 'requirementName',
|
||||||
label: '征集名称',
|
label: '征集名称',
|
||||||
|
|||||||
@@ -214,6 +214,11 @@ const tableConfig = reactive({
|
|||||||
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
|
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
prop: 'processNumber',
|
||||||
|
label: '编号',
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
prop: 'requirementName',
|
prop: 'requirementName',
|
||||||
label: '征集名称',
|
label: '征集名称',
|
||||||
|
|||||||
Reference in New Issue
Block a user