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:
@@ -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}`,
|
||||
|
||||
@@ -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'">-->
|
||||
<!-- <!– label-width="106"–>-->
|
||||
<!-- <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) {
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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: '征集名称',
|
||||
|
||||
@@ -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']}]
|
||||
})
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
@@ -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: '征集名称',
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
@@ -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: '征集名称',
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
@@ -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: '征集名称',
|
||||
|
||||
@@ -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/, '')
|
||||
|
||||
Reference in New Issue
Block a user