Merge pull request 'dj' (#956) from dj into master

Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/956
This commit is contained in:
2025-03-31 15:16:28 +00:00
19 changed files with 413 additions and 114 deletions

View File

@@ -9,6 +9,13 @@ export const addAllocation = (data) => {
data
});
};
export const addShare = (data) => {
return request({
url:'/workflow/mosr/cost/share',
method: "post",
data
});
};
export const getAllocationDetail = (allocationId) => {
return request({
url: `/workflow/mosr/cost/allocation/info/${allocationId}`,

View File

@@ -10,6 +10,13 @@
</el-input>
</el-form-item>
</el-col>
<el-col :span="6" v-if="title==='apply'">
<!-- label-width="106"-->
<el-form-item label="实际专项资金" prop="specialFundAmount" label-width="121" >
<el-input v-model="localFormData.specialFundAmount" placeholder="请输入实际专项资金">
</el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="6" v-if="title==='apply'">-->
<!-- &lt;!&ndash; label-width="106"&ndash;&gt;-->
<!-- <el-form-item label="实际专项资金" prop="budget" label-width="120">-->
@@ -230,7 +237,7 @@ const pageInfo = reactive({
})
const rules = reactive({
actualEconomicEstimate: [{required: true, message: '请输入实际经费预算', trigger: ['blur','change']}],
// projectChargePerson: [{required: true, message: '请选择项目负责人', trigger: 'blur'}],
specialFundAmount: [{required: true, message: '请输入实际专项资金', trigger: 'blur'}],
// projectPerson: [{required: true, message: '请选择项目成员', trigger: 'blur'}],
})
const tagsViewStore = useTagsView()
@@ -549,7 +556,8 @@ const handleSubmit = async (instance) => {
fileList: files,
// singleFile: attachment.value.singleFile,
projectId: projectId.value,
actualEconomicEstimate: localFormData.value.actualEconomicEstimate,
actualEconomicEstimate: parseFloat(localFormData.value.actualEconomicEstimate),
specialFundAmount: parseFloat(localFormData.value.specialFundAmount),
preProcess: JSON.stringify(localFormData.value.preProcess)
}
if (sessionParams.value.preProcess && !localFormData.value.preProcess) {

View File

@@ -32,7 +32,7 @@
<!-- <el-button color="#DED0B2" @click="handleUpload">上传附件</el-button>-->
<file-upload v-if="!isLineBtn&&uploadState" @getFile="getFile"/>
<el-button color="#DED0B2" @click="handleEditTag" v-if="activeName!='all'" style="margin-left: 10px;">编辑
<el-button color="#DED0B2" @click="handleEditTag" v-if="activeName!='all'&&activeName!='plus'" style="margin-left: 10px;">编辑
</el-button>
</div>
<fvTable style="width: 100%;min-height:311px;max-height: 311px" v-if="showAttachmentTable" height="311"
@@ -127,9 +127,9 @@ const executeTableConfig = reactive({
<div>
<el-button type="primary" link onClick={() => handleDownload(row)}>下载</el-button>
{
row.newFile ?
<popover-delete name={row.originalFileName} type={'文件'} btnType={'danger'}
onDelete={() => deleteSingleFile(row)}/> : ''
uploadState.value ?
<popover-delete name={row.originalFileName} type={'文件'} btnType={'danger'}
onDelete={() => deleteSingleFile(row)}/>:''
}
</div>
)
@@ -137,6 +137,7 @@ const executeTableConfig = reactive({
}
]
})
// row.newFile ?: ''
const otherAttachmentList = ref([])
const filePreviewParam = ref({
@@ -159,6 +160,8 @@ const deleteSingleFile = (row) => {
})
if (res.code === 1000) {
otherAttachmentList.value.splice(otherAttachmentList.value.findIndex((item) => item.fileId === row.fileId), 1);
getAttachmentList()
activeName.value = 'all'
}
});
}
@@ -176,6 +179,9 @@ const changeTag = async () => {
projectId: route.query.projectId,
fileTag: fileParam.value.tagName
})
getAttachmentList()
fileParam.value.tagName = ''
activeName.value = 'all'
}
ElNotification({
title: '提示',
@@ -188,11 +194,9 @@ const changeTag = async () => {
// label: fileParam.value.tagName
// })
tagNameShow.value = false;
fileParam.value.tagName = ''
activeName.value = 'all'
}
const tabRemove = async (val) => {
ElMessageBox.confirm(`确认删除名称为${getFileName(val)}的标签吗?`, '系统提示', {
ElMessageBox.confirm(`确认删除名称为${getTagName(val)}的标签吗?`, '系统提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
@@ -205,15 +209,16 @@ const tabRemove = async (val) => {
})
if (res.code === 1000) {
getTagsOption()
otherAttachmentList.value = allFiles.value
}
})
}
const handleEditTag = () => {
tagNameShow.value = true
fileParam.value.tagName = getFileName(activeName.value)
fileParam.value.tagName = getTagName(activeName.value)
isEdit.value = true
}
const getFileName = (name) => {
const getTagName = (name) => {
const tagArray = tagsOption.value.filter((item1) => item1.tagId == name)
let tagName = ''
if (tagArray && tagArray.length > 0) {
@@ -227,16 +232,17 @@ const handleTabClick = (item) => {
isEdit.value = false
}
if (item.props.name != 'plus') {
if (item.props.name == 'all') {
otherAttachmentList.value = allFiles.value
} else {
otherAttachmentList.value = allFiles.value.filter(item1 => item1.tag == getFileName(item.props.name))
}
changeFileList(getTagName(item.props.name))
// if (item.props.name == 'all') {
// otherAttachmentList.value = allFiles.value
// } else {
// otherAttachmentList.value = allFiles.value.filter(item1 => item1.tag == getTagName(item.props.name))
// }
}
showAttachmentTable.value = false
nextTick(() => {
showAttachmentTable.value = true
})
// showAttachmentTable.value = false
// nextTick(() => {
// showAttachmentTable.value = true
// })
}
const compositeParam = (item) => {
return {
@@ -246,7 +252,7 @@ const compositeParam = (item) => {
fileType: item.fileType,
url: item.url,
newFile: true,
tag: activeName.value,
tag: getTagName(activeName.value),
}
}
const getFile = (val) => {
@@ -264,11 +270,14 @@ const handleSubmit = async (list) => {
targetState: "30"
}
let res = await uploadFileList(params)
// ElNotification({
// title: '提示',
// message: res.msg,
// type: res.code === 1000 ? 'success' : 'error'
// })
if(res.code !== 1000){
ElNotification({
title: '提示',
message: res.msg,
type: 'error'
})
}
getTagsOption()
}
const clickToPreview = (row) => {
filePreviewShow.value = false
@@ -281,12 +290,29 @@ const clickToPreview = (row) => {
filePreviewShow.value = true
})
}
const handleSearch = () => {
const changeFileList=(tag)=>{
showAttachmentTable.value = false
let params = {
targetId: route.query.projectId,
targetState: "30",
tag:tag
}
searchImplementationFileList(params).then(res => {
if (res.code === 1000) {
otherAttachmentList.value = res.data.fileList
nextTick(() => {
showAttachmentTable.value = true
})
}
})
}
const getAttachmentList = () => {
const loading = ElLoading.service({fullscreen: true})
let params = {
targetId: route.query.projectId,
targetState: "30"
}
showAttachmentTable.value = false
if (attachmentParam.tag) {
tagsOption.value.forEach(item => {
if (item.value === attachmentParam.tag) {
@@ -296,7 +322,6 @@ const handleSearch = () => {
params.tag = attachmentParam.tag
}
searchImplementationFileList(params).then(res => {
showAttachmentTable.value = false
if (res.code === 1000) {
// otherAttachmentList.value = res.data.fileList
otherAttachmentList.value = res.data.fileList
@@ -322,19 +347,12 @@ const getTagsOption = () => {
if (!route.query.projectId) return
getTagList(route.query.projectId).then(res => {
if (res.code === 1000) {
res.data.rows[0].isClose = 1
tagsOption.value = res.data.rows
otherAttachmentList.value.forEach(item => {
tagsOption.value.forEach(tag => {
// console.log(tag.fileTag,item.tag)
if (tag.fileTag == item.tag) {
tag.isClose = 0
} else {
tag.isClose = 1
}
})
tagsOption.value.forEach((tag, index) => {
const filterArray = otherAttachmentList.value.filter(item => tag.fileTag == item.tag)
tagsOption.value[index].isClose = filterArray.length > 0 ? 0 : 1
})
if (!res.data.rows || res.data.rows.length == 0) return;
// if (!res.data.rows || res.data.rows.length == 0) return;
// activeName.value=res.data.rows[0].tagId
} else {
ElNotification({
@@ -356,9 +374,9 @@ const handleUpload = () => {
}
})
}
handleSearch()
getAttachmentList()
onActivated(() => {
handleSearch()
getAttachmentList()
})
</script>
<style lang="scss">

View File

@@ -294,6 +294,22 @@ const schema = computed(() => {
</div>
)
},
{
label: '实际经费预算',
prop: 'actualEconomicEstimate',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.actualEconomicEstimate ?
<span>{toThousands(baseFormData.value?.actualEconomicEstimate)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '产学研联合',
prop: 'industryUniversityResearch',
@@ -335,6 +351,22 @@ const schema = computed(() => {
},
{
label: '预估专项资金(元)',
prop: 'forecastSpecialFundAmount',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.forecastSpecialFundAmount ?
<span>{toThousands(baseFormData.value?.forecastSpecialFundAmount)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '实际专项资金(元)',
prop: 'specialFundAmount',
colProps: {
span: 6

View File

@@ -1,6 +1,6 @@
<template>
<fvSearchForm :searchConfig="searchConfig" @search="search" style="margin-left: 16px"></fvSearchForm>
<fvTable ref="tableIns" :tableConfig="tableConfig">
<!-- <fvSearchForm :searchConfig="searchConfig" @search="search" style="margin-left: 16px"></fvSearchForm>-->
<fvTable ref="tableIns" :tableConfig="tableConfig" style="margin-top: 15px">
<template #empty>
<el-empty description="暂无数据"/>
</template>
@@ -115,118 +115,100 @@ const tableConfig = reactive({
// }
// },
{
prop: 'affiliatedCompany',
prop: 'paymentYear',
label: '支出年份',
align: 'center'
},
{
prop: 'projectName',
prop: 'paymentMonth',
label: '月份',
align: 'center'
},
{
prop: 'projectCost',
prop: 'masterProjectName',
label: '主项目',
align: 'center',
width: 120,
showOverflowTooltip: false,
currentRender: ({row, index}) => {
if (row.projectCost !== null&&row.projectCost !== null&&row.projectCost!==undefined) {
return (<Tag dictType={'project_cost'} value={row.projectCost}/>)
} else {
return '--'
}
}
},
{
prop: 'time',
prop: 'subProjectName',
label: '子项目',
align: 'center',
width: 120,
},
{
prop: 'researchStage',
prop: 'projectType',
label: '项目类型',
align: 'center',
width: 120,
showOverflowTooltip: false,
currentRender: ({row, index}) => {
if (row.researchStage&&row.researchStage !== null&&row.researchStage!==undefined) {
return (<Tag dictType={'research_stage'} value={row.researchStage}/>)
if (row.projectType&&row.projectType !== null&&row.projectType!==undefined) {
return (<Tag dictType={'project_type'} value={row.projectType}/>)
} else {
return '--'
}
}
},
{
prop: 'digest',
prop: 'rdType',
label: 'RAD统计类型',
align: 'center'
},
{
prop: 'digest',
prop: 'paymentProcessType',
label: '付款流程类型',
align: 'center',
currentRender:({row})=>{
return <span>{toThousands(row.afterTax)}</span>
}
},
{
prop: 'digest',
prop: 'processState',
label: '流程状态',
align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => {
if (row.source&&row.source !== null&&row.source!==undefined) {
return (<Tag dictType={'ledger_source'} value={row.source}/>)
} else {
return '--'
}
}
},
{
prop: 'digest',
prop: 'filingTime',
label: '归档时间',
align: 'center',
},
{
prop: 'digest',
prop: 'paymentProcessNum',
label: '付款流程编号',
align: 'center',
},
{
prop: '付款/请款事由',
label: '来源',
align: 'center',
},
{
prop: 'digest',
prop: 'paymentAmount',
label: '付款金额',
align: 'center',
},
{
prop: 'digest',
prop: 'paymentSubject',
label: '付款/请款事由',
align: 'center',
},
{
prop: 'contractNum',
label: '合同编号',
align: 'center',
},
{
prop: 'digest',
prop: 'contractName',
label: '合同名称',
align: 'center',
},
{
prop: 'digest',
prop: 'contractSumAmount',
label: '合同金额(元)',
align: 'center',
},
],
api: '',
api: '/workflow/mosr/payment/list',
params: {},
export:{
open :true,
fileName:`技创新费用支出明细.xlsx`
fileName:`研项日现金支出明细表`
}
})
const search = (val) => {

View File

@@ -96,7 +96,7 @@ import {
getResearchUser,
getProjectOption,
editAllocation,
getAllocationDetailList
getAllocationDetailList, addShare
} from "@/api/expense-manage";
import {useProcessStore} from '@/stores/processStore.js';
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue';
@@ -107,16 +107,16 @@ localStorage.removeItem('originallySelectedList')
const userList = ref([])
const changeDiagram = ref(false)
const rules = reactive({
shareName: [{required: true, message: '请输入分摊名称', trigger: ['blur', 'change']}],
// shareName: [{required: true, message: '请输入分摊名称', trigger: ['blur', 'change']}],
apportionmentMonth: [{required: true, message: '请选择月份', trigger: ['blur', 'change']}],
projectId: [{required: true, message: '请选择项目名称', trigger: ['blur', 'change']}],
// researchPersonnelId: [{required: true, message: '请选择研发人员', trigger: ['blur', 'change']}],
wagesPayable: [{required: true, message: '请输入应发工资', trigger: ['blur', 'change']}],
performance: [{required: true, message: '请输入绩效', trigger: ['blur', 'change']}],
reserveFund: [{required: true, message: '请输入公积金', trigger: ['blur', 'change']}],
socialSecurity: [{required: true, message: '请输入社保', trigger: ['blur', 'change']}],
annuity: [{required: true, message: '请输入年金', trigger: ['blur', 'change']}],
workday: [{required: true, message: '请输入工作日', trigger: ['blur', 'change']}],
// wagesPayable: [{required: true, message: '请输入应发工资', trigger: ['blur', 'change']}],
// performance: [{required: true, message: '请输入绩效', trigger: ['blur', 'change']}],
// reserveFund: [{required: true, message: '请输入公积金', trigger: ['blur', 'change']}],
// socialSecurity: [{required: true, message: '请输入社保', trigger: ['blur', 'change']}],
// annuity: [{required: true, message: '请输入年金', trigger: ['blur', 'change']}],
// workday: [{required: true, message: '请输入工作日', trigger: ['blur', 'change']}],
researchDuration: [{required: true, message: '请输入研发时长', trigger: ['blur', 'change']}],
})
const processStore = useProcessStore()
@@ -135,12 +135,12 @@ const formData = ref({
{
projectId: '',
projectName: '',
researchPersonnelId: '',
wagesPayable: null,
performance: null,
reserveFund: null,
socialSecurity: null,
annuity: null,
// researchPersonnelId: '',
// wagesPayable: null,
// performance: null,
// reserveFund: null,
// socialSecurity: null,
// annuity: null,
workday: '21.75',
researchDuration: null,
}
@@ -383,13 +383,11 @@ const handleSubmit = (instance) => {
return;
}
let params = {
shareName: formData.value.shareName,
apportionmentMonth: formData.value.apportionmentMonth,
usrAllocations: formData.value.tableData,
deploymentId: processInstanceData.value.deploymentId,
}
console.log('params', params, formData.value.tableData)
const {code, msg} = await addAllocation(params)
const {code, msg} = await addShare(params)
ElNotification({
title: '提示',
message: msg,

View File

@@ -46,6 +46,11 @@ const tableConfig = reactive({
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
}
},
{
prop: 'processNumber',
label: '编号',
align: 'center',
},
{
prop: 'requirementName',
label: '征集名称',

View File

@@ -183,15 +183,15 @@
</el-form-item>
</el-col>
<el-col :span="6" v-if="formData.isSpecialFund">
<el-form-item label="预估专项资金(元)" prop="specialFundAmount">
<el-form-item label="预估专项资金(元)" prop="forecastSpecialFundAmount">
<el-input
v-model="formData.specialFundAmount"
v-model="formData.forecastSpecialFundAmount"
placeholder="请输入预估专项资金"
clearable
:formatter="(value) => value.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:parser="(value) => value.replace(/\$\s?|(,*)+[^0-9.]/g, '')" @change="changeCollectData"
/>
<!-- <el-input-number v-model="formData.specialFundAmount" placeholder="请输入预估专项资金" :controls="false"/>-->
<!-- <el-input-number v-model="formData.forecastSpecialFundAmount" placeholder="请输入预估专项资金" :controls="false"/>-->
</el-form-item>
</el-col>
<el-col :span="6" :style="{marginLeft:!formData.isSpecialFund?'0':'-40px'}">
@@ -232,7 +232,7 @@
</el-form-item>
</el-col>
<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>
<el-select v-else v-model="formData.requirementId" clearable placeholder="请选择需求征集"
@change="changeCollectData">
@@ -447,7 +447,7 @@ const rules = reactive({
economicEstimate: [{required: true, message: '请输入预估经费预算', trigger: ['blur', 'change']}],
isSpecialFund: [{required: true, message: '请选择是否为专项资金', trigger: ['blur', 'change']}],
isWithinBudget: [{required: true, message: '请选择是否在预算内', trigger: ['blur', 'change']}],
specialFundAmount: [{required: true, message: '请输入专项资金', trigger: ['blur', 'change']}],
forecastSpecialFundAmount: [{required: true, message: '请输入专项资金', trigger: ['blur', 'change']}],
serviceDescription: [{required: true, message: '请输入现有业务描述', trigger: ['blur', 'change']}],
contentDescription: [{required: true, message: '请输入研发项目关键内容描述', trigger: ['blur', 'change']}]
})

View File

@@ -88,7 +88,7 @@ const searchConfig = ref([
},
{
label: '承办单位',
prop: 'undertaker',
prop: 'affiliatedCompanyId',
component: 'el-tree-select',
props: {
placeholder: '请输入承办单位查询',
@@ -218,6 +218,11 @@ const tableConfig = reactive({
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
}
},
{
prop: 'processNumber',
label: '编号',
align: 'center',
},
{
prop: 'requirementName',
label: '征集名称',
@@ -441,7 +446,7 @@ const handleDetail = (row) => {
}
const init = async () => {
const res = await getSubCompOpt()
searchConfig.value.find(item=>item.prop == 'undertaker').props.data = res.data
searchConfig.value.find(item=>item.prop == 'affiliatedCompanyId').props.data = res.data
}
init()

View File

@@ -171,6 +171,21 @@ const schema = computed(() => {
}
</div>
)
}, {
label: '实际经费预算',
prop: 'actualEconomicEstimate',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.actualEconomicEstimate ?
<span>{toThousands(baseFormData.value?.actualEconomicEstimate)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '产学研联合',
@@ -210,9 +225,24 @@ const schema = computed(() => {
colProps: {
span: 6
}
},{
label: '预估专项资金(元)',
prop: 'forecastSpecialFundAmount',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.forecastSpecialFundAmount ?
<span>{toThousands(baseFormData.value?.forecastSpecialFundAmount)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '预估专项资金(元)',
label: '实际专项资金(元)',
prop: 'specialFundAmount',
colProps: {
span: 6
@@ -249,6 +279,13 @@ const schema = computed(() => {
colProps: {
span: 6
}
},
{
label: '主项目',
prop: 'masterProjectName',
colProps: {
span: 6
}
}
]
})

View File

@@ -216,6 +216,12 @@ const tableConfig = reactive({
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
}
},
{
prop: 'processNumber',
label: '编号',
align: 'center',
},
{
prop: 'requirementName',
label: '征集名称',

View File

@@ -178,6 +178,22 @@ const schema = computed(() => {
</div>
)
},
{
label: '实际经费预算',
prop: 'actualEconomicEstimate',
colProps: {
span: 6
},
component: () => (
<div>
{
basicData.value?.actualEconomicEstimate ?
<span>{toThousands(basicData.value?.actualEconomicEstimate)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '产学研联合',
prop: 'industryUniversityResearch',
@@ -219,6 +235,22 @@ const schema = computed(() => {
},
{
label: '预估专项资金(元)',
prop: 'forecastSpecialFundAmount',
colProps: {
span: 6
},
component: () => (
<div>
{
basicData.value?.forecastSpecialFundAmount ?
<span>{toThousands(basicData.value?.forecastSpecialFundAmount)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '实际专项资金(元)',
prop: 'specialFundAmount',
colProps: {
span: 6
@@ -255,6 +287,13 @@ const schema = computed(() => {
colProps: {
span: 6
}
},
{
label: '主项目',
prop: 'masterProjectName',
colProps: {
span: 6
}
}
]
})

View File

@@ -219,6 +219,12 @@ const tableConfig = reactive({
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
}
},
{
prop: 'processNumber',
label: '编号',
align: 'center',
},
{
prop: 'requirementName',
label: '征集名称',

View File

@@ -244,6 +244,21 @@ const schema = computed(() => {
}
</div>
)
}, {
label: '实际经费预算',
prop: 'actualEconomicEstimate',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.actualEconomicEstimate ?
<span>{toThousands(baseFormData.value?.actualEconomicEstimate)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '产学研联合',
@@ -283,9 +298,24 @@ const schema = computed(() => {
colProps: {
span: 6
}
}, {
label: '预估专项资金(元)',
prop: 'forecastSpecialFundAmount',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.forecastSpecialFundAmount ?
<span>{toThousands(baseFormData.value?.forecastSpecialFundAmount)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '预估专项资金(元)',
label: '实际专项资金(元)',
prop: 'specialFundAmount',
colProps: {
span: 6
@@ -322,6 +352,13 @@ const schema = computed(() => {
colProps: {
span: 6
}
},
{
label: '主项目',
prop: 'masterProjectName',
colProps: {
span: 6
}
}
]
})

View File

@@ -184,6 +184,21 @@ const schema = computed(() => {
}
</div>
)
},{
label: '实际经费预算',
prop: 'actualEconomicEstimate',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.actualEconomicEstimate ?
<span>{toThousands(baseFormData.value?.actualEconomicEstimate)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '产学研联合',
@@ -223,9 +238,24 @@ const schema = computed(() => {
colProps: {
span: 6
}
}, {
label: '预估专项资金(元)',
prop: 'forecastSpecialFundAmount',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.forecastSpecialFundAmount ?
<span>{toThousands(baseFormData.value?.forecastSpecialFundAmount)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '预估专项资金(元)',
label: '实际专项资金(元)',
prop: 'specialFundAmount',
colProps: {
span: 6
@@ -262,6 +292,13 @@ const schema = computed(() => {
colProps: {
span: 6
}
},
{
label: '主项目',
prop: 'masterProjectName',
colProps: {
span: 6
}
}
]
})

View File

@@ -159,6 +159,21 @@ const schema = computed(() => {
}
</div>
)
}, {
label: '实际经费预算',
prop: 'actualEconomicEstimate',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.actualEconomicEstimate ?
<span>{toThousands(baseFormData.value?.actualEconomicEstimate)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '产学研联合',
@@ -201,6 +216,22 @@ const schema = computed(() => {
},
{
label: '预估专项资金(元)',
prop: 'forecastSpecialFundAmount',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.forecastSpecialFundAmount ?
<span>{toThousands(baseFormData.value?.forecastSpecialFundAmount)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '实际专项资金(元)',
prop: 'specialFundAmount',
colProps: {
span: 6
@@ -237,6 +268,13 @@ const schema = computed(() => {
colProps: {
span: 6
}
},
{
label: '主项目',
prop: 'masterProjectName',
colProps: {
span: 6
}
}
]
})

View File

@@ -268,6 +268,22 @@ const schema = computed(() => {
</div>
)
},
{
label: '实际经费预算',
prop: 'actualEconomicEstimate',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.actualEconomicEstimate ?
<span>{toThousands(baseFormData.value?.actualEconomicEstimate)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '产学研联合',
prop: 'industryUniversityResearch',
@@ -316,6 +332,22 @@ const schema = computed(() => {
},
{
label: '预估专项资金(元)',
prop: 'forecastSpecialFundAmount',
colProps: {
span: 6
},
component: () => (
<div>
{
baseFormData.value?.forecastSpecialFundAmount ?
<span>{toThousands(baseFormData.value?.forecastSpecialFundAmount)}</span>
: <span>{'--'}</span>
}
</div>
)
},
{
label: '实际专项资金(元)',
prop: 'specialFundAmount',
colProps: {
span: 6
@@ -352,6 +384,13 @@ const schema = computed(() => {
colProps: {
span: 6
}
},
{
label: '主项目',
prop: 'masterProjectName',
colProps: {
span: 6
}
}
]
})

View File

@@ -214,6 +214,11 @@ const tableConfig = reactive({
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
}
},
{
prop: 'processNumber',
label: '编号',
align: 'center',
},
{
prop: 'requirementName',
label: '征集名称',

View File

@@ -69,8 +69,8 @@ export default defineConfig({
open: true,
proxy: {
// '/api/workflow': {
// // target: 'http://frp.feashow.cn:31800/',
// target: 'http://clay.frp.feashow.cn/',
// target: 'http://frp.feashow.cn:31800/',
// // target: 'http://clay.frp.feashow.cn/',
// // target: 'http://192.168.31.175:8000',
// changeOrigin: true,
// rewrite: (path) => path.replace(/^\/api/, '')