@@ -1,19 +1,19 @@ | |||||
<script setup name="App"> | <script setup name="App"> | ||||
// import store from '@/store' | // import store from '@/store' | ||||
// console.log(store.menuStore.menuArr) | // console.log(store.menuStore.menuArr) | ||||
import Updater from '@/utils/updater' | |||||
import { ElMessageBox } from 'element-plus' | |||||
const up = new Updater({ | |||||
timer: 20000 | |||||
}) | |||||
// 更新通知 | |||||
up.on('update', () => { | |||||
up.stop() | |||||
ElMessageBox.confirm('检测到有新版本,是否更新?更新会重新加载页面,如果您有未提交的表单数据,请先保存!', '提示', {}).then(() => { | |||||
location.reload() | |||||
}) | |||||
}) | |||||
// import Updater from '@/utils/updater' | |||||
// import { ElMessageBox } from 'element-plus' | |||||
// | |||||
// const up = new Updater({ | |||||
// timer: 20000 | |||||
// }) | |||||
// // 更新通知 | |||||
// up.on('update', () => { | |||||
// up.stop() | |||||
// ElMessageBox.confirm('检测到有新版本,是否更新?更新会重新加载页面,如果您有未提交的表单数据,请先保存!', '提示', {}).then(() => { | |||||
// location.reload() | |||||
// }) | |||||
// }) | |||||
</script> | </script> | ||||
@@ -81,7 +81,7 @@ defineExpose({ validForm, formData, setFormData }) | |||||
> | > | ||||
<el-row :gutter="40"> | <el-row :gutter="40"> | ||||
<el-col :span="12"> | <el-col :span="12"> | ||||
<el-form-item label="初步设计方案"> | |||||
<el-form-item label="项目申报书" prop="preliminaryPlanFile"> | |||||
<el-upload | <el-upload | ||||
v-model:file-list="formData.preliminaryPlanFile" | v-model:file-list="formData.preliminaryPlanFile" | ||||
class="w-full" | class="w-full" | ||||
@@ -34,6 +34,9 @@ const route = useRoute(), | |||||
], | ], | ||||
applicationList: [ | applicationList: [ | ||||
{ required: true, message: '请添加应用', trigger: 'blur' } | { required: true, message: '请添加应用', trigger: 'blur' } | ||||
], | |||||
includeCause: [ | |||||
{ required: true, message: '请填写不包括原因', trigger: 'blur' } | |||||
] | ] | ||||
}, | }, | ||||
column = [ | column = [ | ||||
@@ -172,7 +175,8 @@ const route = useRoute(), | |||||
...i, | ...i, | ||||
relatedExistsApplication: i.relatedExistsApplication ? { applicationCode: i.relatedExistsApplicationCode, applicationName: i.relatedExistsApplication } : undefined | relatedExistsApplication: i.relatedExistsApplication ? { applicationCode: i.relatedExistsApplicationCode, applicationName: i.relatedExistsApplication } : undefined | ||||
} | } | ||||
}) : [] | |||||
}) : [], | |||||
includeCause: data.includeCause | |||||
} | } | ||||
}, | }, | ||||
// 修改是否包含应用 | // 修改是否包含应用 | ||||
@@ -205,6 +209,7 @@ defineExpose({ validForm, formData, applicationData, setFormData }) | |||||
</el-radio-group> | </el-radio-group> | ||||
</el-form-item> | </el-form-item> | ||||
</el-col> | </el-col> | ||||
<el-col v-if="formData.includeApplication === 1" :span="24"> | <el-col v-if="formData.includeApplication === 1" :span="24"> | ||||
<el-form-item label="包含的应用" prop="applicationList"> | <el-form-item label="包含的应用" prop="applicationList"> | ||||
<el-button | <el-button | ||||
@@ -232,6 +237,12 @@ defineExpose({ validForm, formData, applicationData, setFormData }) | |||||
</table-list> | </table-list> | ||||
</el-form-item> | </el-form-item> | ||||
</el-col> | </el-col> | ||||
<el-col v-if="formData.includeApplication !== 1" :span="24"> | |||||
<el-form-item label="不包含应用原因" prop="includeCause"> | |||||
<el-input v-model="formData.includeCause" placeholder="请输入" /> | |||||
</el-form-item> | |||||
</el-col> | |||||
</el-row> | </el-row> | ||||
</el-form> | </el-form> | ||||
<el-drawer | <el-drawer | ||||
@@ -286,7 +286,7 @@ const | |||||
}) | }) | ||||
} | } | ||||
}, | }, | ||||
emits = defineEmits(['changeIsFirst', 'getBasicInfoData']), | |||||
emits = defineEmits(['changeIsFirst', 'getBasicInfoData', 'reuseItem']), | |||||
changeIsFirst = (val) => { | changeIsFirst = (val) => { | ||||
emits('changeIsFirst', val) | emits('changeIsFirst', val) | ||||
}, | }, | ||||
@@ -549,20 +549,20 @@ watch(() => formData.value, val => { | |||||
:validate-on-rule-change="false" | :validate-on-rule-change="false" | ||||
> | > | ||||
<el-row :gutter="40"> | <el-row :gutter="40"> | ||||
<el-col :span="24"> | |||||
<el-form-item label="是否涉密" prop="baseProjIsConfidentiality"> | |||||
<el-radio-group v-model="formData.baseProjIsConfidentiality"> | |||||
<el-radio label="01">否</el-radio> | |||||
<el-radio label="02">是</el-radio> | |||||
</el-radio-group> | |||||
</el-form-item> | |||||
</el-col> | |||||
<!-- <el-col :span="24">--> | |||||
<!-- <el-form-item label="是否涉密" prop="baseProjIsConfidentiality">--> | |||||
<!-- <el-radio-group v-model="formData.baseProjIsConfidentiality">--> | |||||
<!-- <el-radio label="01">否</el-radio>--> | |||||
<!-- <el-radio label="02">是</el-radio>--> | |||||
<!-- </el-radio-group>--> | |||||
<!-- </el-form-item>--> | |||||
<!-- </el-col>--> | |||||
<el-col :span="24"> | <el-col :span="24"> | ||||
<el-form-item label="项目名称" prop="projectName"> | <el-form-item label="项目名称" prop="projectName"> | ||||
<el-input v-model="formData.projectName" maxlength="50" placeholder="请输入" /> | <el-input v-model="formData.projectName" maxlength="50" placeholder="请输入" /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-col> | </el-col> | ||||
<el-col :span="12"> | |||||
<el-col :span="24"> | |||||
<el-form-item label="项目类型" prop="projectType"> | <el-form-item label="项目类型" prop="projectType"> | ||||
<el-radio-group | <el-radio-group | ||||
v-model="formData.projectType" | v-model="formData.projectType" | ||||
@@ -570,9 +570,48 @@ watch(() => formData.value, val => { | |||||
> | > | ||||
<el-radio label="01">首次建设</el-radio> | <el-radio label="01">首次建设</el-radio> | ||||
<el-radio label="02">迭代升级</el-radio> | <el-radio label="02">迭代升级</el-radio> | ||||
<el-radio label="03">结转建设</el-radio> | |||||
<el-radio label="04">新运维</el-radio> | |||||
<el-radio label="05">续运维</el-radio> | |||||
</el-radio-group> | </el-radio-group> | ||||
</el-form-item> | </el-form-item> | ||||
</el-col> | </el-col> | ||||
<el-col :span="24"> | |||||
<el-form-item v-if="formData.projectType!=='01'" label="历年项目名称" prop="baseHistorProjs"> | |||||
<p class="text-right w-full mb-8"> | |||||
<el-button type="primary" @click="showRelatedProjectDialog">关联历年项目</el-button> | |||||
</p> | |||||
<table-list | |||||
:pagination="false" | |||||
style="width: 100%" | |||||
:column="columnPro" | |||||
:data="formData.baseHistorProjs" | |||||
:empty-temp="false" | |||||
> | |||||
<template #action="{scope}"> | |||||
<a class="text-primary" @click="delPro(scope.$index)">复用信息</a> | |||||
<a class="text-danger" @click="delPro(scope.$index)">删除</a> | |||||
</template> | |||||
</table-list> | |||||
</el-form-item> | |||||
<el-form-item v-else label="历年项目名称"> | |||||
<p class="text-right w-full mb-8"> | |||||
<el-button type="primary" @click="showRelatedProjectDialog">关联历年项目</el-button> | |||||
</p> | |||||
<table-list | |||||
:pagination="false" | |||||
style="width: 100%" | |||||
:column="columnPro" | |||||
:data="formData.baseHistorProjs" | |||||
:empty-temp="false" | |||||
> | |||||
<template #action="{scope}"> | |||||
<a class="text-primary" @click="delPro(scope.$index)">复用信息</a> | |||||
<a class="text-danger" @click="delPro(scope.$index)">删除</a> | |||||
</template> | |||||
</table-list> | |||||
</el-form-item> | |||||
</el-col> | |||||
<el-col :span="12"> | <el-col :span="12"> | ||||
<el-form-item label="内容类别" prop="baseConstructionType"> | <el-form-item label="内容类别" prop="baseConstructionType"> | ||||
<el-checkbox-group v-model="formData.baseConstructionType"> | <el-checkbox-group v-model="formData.baseConstructionType"> | ||||
@@ -662,19 +701,7 @@ watch(() => formData.value, val => { | |||||
/> | /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-col> | </el-col> | ||||
<el-col v-if="formData.baseProjIsConfidentiality==='01'" :span="12"> | |||||
<el-form-item label="建设起止年限" prop="buildDuration"> | |||||
<el-date-picker | |||||
v-model="formData.buildDuration" | |||||
type="daterange" | |||||
range-separator="-" | |||||
start-placeholder="开始时间" | |||||
end-placeholder="结束时间" | |||||
format="YYYY-MM-DD" | |||||
value-format="YYYY-MM-DD" | |||||
/> | |||||
</el-form-item> | |||||
</el-col> | |||||
<el-col :span="12"> | <el-col :span="12"> | ||||
<el-form-item label="建设单位" prop="buildOrgName"> | <el-form-item label="建设单位" prop="buildOrgName"> | ||||
<el-input v-model="formData.buildOrgName" placeholder="请输入" :disabled="true" /> | <el-input v-model="formData.buildOrgName" placeholder="请输入" :disabled="true" /> | ||||
@@ -806,6 +833,32 @@ watch(() => formData.value, val => { | |||||
</el-radio-group> | </el-radio-group> | ||||
</el-form-item> | </el-form-item> | ||||
</el-col> | </el-col> | ||||
<el-col :span="12"> | |||||
<el-form-item label="预算年度" prop="projectYear"> | |||||
<el-date-picker | |||||
v-model="formData.projectYear" | |||||
:disabled="$route.name==='declarePlan'||[10012,10013,10016].includes(detailData?.status)" | |||||
type="year" | |||||
placeholder="请选择" | |||||
format="YYYY" | |||||
value-format="YYYY" | |||||
/> | |||||
</el-form-item> | |||||
</el-col> | |||||
<el-col v-if="formData.baseProjIsConfidentiality==='01'" :span="12"> | |||||
<el-form-item label="建设起止年限" prop="buildDuration"> | |||||
<el-date-picker | |||||
v-model="formData.buildDuration" | |||||
type="daterange" | |||||
range-separator="-" | |||||
start-placeholder="开始时间" | |||||
end-placeholder="结束时间" | |||||
format="YYYY-MM-DD" | |||||
value-format="YYYY-MM-DD" | |||||
/> | |||||
</el-form-item> | |||||
</el-col> | |||||
<el-col :span="24"> | <el-col :span="24"> | ||||
<el-form-item label="立项依据材料" prop="baseProjBasis"> | <el-form-item label="立项依据材料" prop="baseProjBasis"> | ||||
<table-list | <table-list | ||||
@@ -891,24 +944,6 @@ watch(() => formData.value, val => { | |||||
/> | /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-col> | </el-col> | ||||
<el-col :span="12"> | |||||
<el-form-item v-if="declareAmount>=1000&&false" label="财政编码" prop="financialCode"> | |||||
<el-input | |||||
v-model="formData.financialCode" | |||||
maxlength="50" | |||||
placeholder="请填写" | |||||
:disabled="$route.name==='declarePlan'||[10012,10013,10016].includes(detailData?.status)" | |||||
/> | |||||
</el-form-item> | |||||
<el-form-item v-else label="财政编码"> | |||||
<el-input | |||||
v-model="formData.financialCode" | |||||
maxlength="50" | |||||
placeholder="请填写" | |||||
:disabled="$route.name==='declarePlan'||[10012,10013,10016].includes(detailData?.status)" | |||||
/> | |||||
</el-form-item> | |||||
</el-col> | |||||
<el-col :span="24"> | <el-col :span="24"> | ||||
<el-form-item label="项目概述" prop="projectOverview"> | <el-form-item label="项目概述" prop="projectOverview"> | ||||
<el-input | <el-input | ||||
@@ -921,40 +956,7 @@ watch(() => formData.value, val => { | |||||
/> | /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-col> | </el-col> | ||||
<el-col :span="24"> | |||||
<el-form-item v-if="formData.projectType!=='01'" label="历年项目名称" prop="baseHistorProjs"> | |||||
<p class="text-right w-full mb-8"> | |||||
<el-button type="primary" @click="showRelatedProjectDialog">关联历年项目</el-button> | |||||
</p> | |||||
<table-list | |||||
:pagination="false" | |||||
style="width: 100%" | |||||
:column="columnPro" | |||||
:data="formData.baseHistorProjs" | |||||
:empty-temp="false" | |||||
> | |||||
<template #action="{scope}"> | |||||
<a class="text-danger" @click="delPro(scope.$index)">删除</a> | |||||
</template> | |||||
</table-list> | |||||
</el-form-item> | |||||
<el-form-item v-else label="历年项目名称"> | |||||
<p class="text-right w-full mb-8"> | |||||
<el-button type="primary" @click="showRelatedProjectDialog">关联历年项目</el-button> | |||||
</p> | |||||
<table-list | |||||
:pagination="false" | |||||
style="width: 100%" | |||||
:column="columnPro" | |||||
:data="formData.baseHistorProjs" | |||||
:empty-temp="false" | |||||
> | |||||
<template #action="{scope}"> | |||||
<a class="text-danger" @click="delPro(scope.$index)">删除</a> | |||||
</template> | |||||
</table-list> | |||||
</el-form-item> | |||||
</el-col> | |||||
<el-col v-if="($route.name==='declarePlan')||([10012,10016,10013].includes(detailData.status))" :span="24"> | <el-col v-if="($route.name==='declarePlan')||([10012,10016,10013].includes(detailData.status))" :span="24"> | ||||
<el-form-item label="项目内容与预期成效" prop="beseExpectedResults"> | <el-form-item label="项目内容与预期成效" prop="beseExpectedResults"> | ||||
<table-list | <table-list | ||||
@@ -22,7 +22,6 @@ const formData = ref({ | |||||
} | } | ||||
}, | }, | ||||
rules = { | rules = { | ||||
projectYear: [{ required: true, message: '请选择预算年度' }], | |||||
declareAmount: [{ required: true, message: '请输入申报金额', trigger: 'blur' }, { validator: moneyValidator, trigger: 'blur' }], | declareAmount: [{ required: true, message: '请输入申报金额', trigger: 'blur' }, { validator: moneyValidator, trigger: 'blur' }], | ||||
declareHaveAmount: [{ required: true, message: '请输入自有资金', trigger: 'blur' }, { validator: moneyValidator, trigger: 'blur' }], | declareHaveAmount: [{ required: true, message: '请输入自有资金', trigger: 'blur' }, { validator: moneyValidator, trigger: 'blur' }], | ||||
declareGovOwnFinanceAmount: [ | declareGovOwnFinanceAmount: [ | ||||
@@ -55,7 +54,6 @@ const formData = ref({ | |||||
// 回显 | // 回显 | ||||
setFormData = (data) => { | setFormData = (data) => { | ||||
formData.value = { | formData.value = { | ||||
projectYear: data.projectYear ? data.projectYear + '' : null, | |||||
declareAmount: data.declareAmount, | declareAmount: data.declareAmount, | ||||
declareHaveAmount: data.declareHaveAmount, | declareHaveAmount: data.declareHaveAmount, | ||||
declareGovOwnFinanceAmount: data.declareGovOwnFinanceAmount, | declareGovOwnFinanceAmount: data.declareGovOwnFinanceAmount, | ||||
@@ -81,18 +79,6 @@ defineExpose({ validForm, formData, setFormData }) | |||||
> | > | ||||
<el-row :gutter="40"> | <el-row :gutter="40"> | ||||
<el-col :span="12"> | <el-col :span="12"> | ||||
<el-form-item label="预算年度" prop="projectYear"> | |||||
<el-date-picker | |||||
v-model="formData.projectYear" | |||||
:disabled="$route.name==='declarePlan'||[10012,10013,10016].includes(detailData?.status)" | |||||
type="year" | |||||
placeholder="请选择" | |||||
format="YYYY" | |||||
value-format="YYYY" | |||||
/> | |||||
</el-form-item> | |||||
</el-col> | |||||
<el-col :span="12"> | |||||
<el-form-item label="申报金额" prop="declareAmount"> | <el-form-item label="申报金额" prop="declareAmount"> | ||||
<el-input-number | <el-input-number | ||||
v-model="formData.declareAmount" | v-model="formData.declareAmount" | ||||
@@ -31,42 +31,84 @@ | |||||
<el-form-item v-if="formData.isCloudResource===1" prop="cloudResource"> | <el-form-item v-if="formData.isCloudResource===1" prop="cloudResource"> | ||||
<el-table :data="formData.cloudResource" style="width: 100%"> | <el-table :data="formData.cloudResource" style="width: 100%"> | ||||
<el-table-column type="index" label="序号" width="60" /> | <el-table-column type="index" label="序号" width="60" /> | ||||
<el-table-column prop="state" label="*云资源类型"> | |||||
<el-table-column prop="state"> | |||||
<template #header> | |||||
<span style="color: red">*</span>云资源类型 | |||||
</template> | |||||
<template #default="scope"> | <template #default="scope"> | ||||
<!-- <el-form-item--> | |||||
<!-- :prop="`cloudResource[${scope.$index}].cloudResourceType`"--> | |||||
<!-- :rules="[{required:true,message:''}]"--> | |||||
<!-- >--> | |||||
<!-- <el-input--> | |||||
<!-- v-model="formData.cloudResource[scope.$index].cloudResourceType"--> | |||||
<!-- placeholder="云资源类型"--> | |||||
<!-- />--> | |||||
<!-- </el-form-item>--> | |||||
<el-form-item | <el-form-item | ||||
:prop="`cloudResource[${scope.$index}].cloudResourceType`" | :prop="`cloudResource[${scope.$index}].cloudResourceType`" | ||||
:rules="[{required:true,message:''}]" | :rules="[{required:true,message:''}]" | ||||
> | > | ||||
<el-input | |||||
<el-select | |||||
v-model="formData.cloudResource[scope.$index].cloudResourceType" | v-model="formData.cloudResource[scope.$index].cloudResourceType" | ||||
placeholder="云资源类型" | |||||
/> | |||||
placeholder="请选择" | |||||
size="large" | |||||
@change="cloudTypeChange(scope.$index)" | |||||
> | |||||
<el-option | |||||
v-for="item in disData" | |||||
:key="item.name" | |||||
:label="item.name" | |||||
:value="item.name" | |||||
/> | |||||
</el-select> | |||||
</el-form-item> | </el-form-item> | ||||
</template> | </template> | ||||
</el-table-column> | </el-table-column> | ||||
<el-table-column prop="city" label="*基础规格"> | |||||
<el-table-column prop="city"> | |||||
<template #header> | |||||
<span style="color: red">*</span>基础规格 | |||||
</template> | |||||
<template #default="scope"> | <template #default="scope"> | ||||
<!-- <el-form-item--> | |||||
<!-- :prop="`cloudResource[${scope.$index}].baseSpecification`"--> | |||||
<!-- :rules="[{required:true,message:''}]"--> | |||||
<!-- >--> | |||||
<!-- <el-input--> | |||||
<!-- v-model="formData.cloudResource[scope.$index].baseSpecification"--> | |||||
<!-- placeholder="基础规格"--> | |||||
<!-- />--> | |||||
<!-- </el-form-item>--> | |||||
<el-form-item | <el-form-item | ||||
:prop="`cloudResource[${scope.$index}].baseSpecification`" | :prop="`cloudResource[${scope.$index}].baseSpecification`" | ||||
:rules="[{required:true,message:''}]" | :rules="[{required:true,message:''}]" | ||||
> | > | ||||
<el-input | |||||
<el-select | |||||
v-model="formData.cloudResource[scope.$index].baseSpecification" | v-model="formData.cloudResource[scope.$index].baseSpecification" | ||||
placeholder="基础规格" | |||||
/> | |||||
placeholder="请选择" | |||||
size="large" | |||||
> | |||||
<el-option | |||||
v-for="item in getDisdataItem(formData.cloudResource[scope.$index].cloudResourceType)" | |||||
:key="item.name" | |||||
:label="item.name" | |||||
:value="item.name" | |||||
/> | |||||
</el-select> | |||||
</el-form-item> | </el-form-item> | ||||
</template> | </template> | ||||
</el-table-column> | </el-table-column> | ||||
<el-table-column prop="address" label="*台数"> | |||||
<el-table-column prop="address"> | |||||
<template #header> | |||||
<span style="color: red">*</span>台数 | |||||
</template> | |||||
<template #default="scope"> | <template #default="scope"> | ||||
<el-form-item | <el-form-item | ||||
:prop="`cloudResource[${scope.$index}].serversCount`" | :prop="`cloudResource[${scope.$index}].serversCount`" | ||||
:rules="[{required:true,message:''}]" | :rules="[{required:true,message:''}]" | ||||
> | > | ||||
<el-input | |||||
v-model="formData.cloudResource[scope.$index].serversCount" | |||||
placeholder="台数" | |||||
/> | |||||
<el-input-number v-model="formData.cloudResource[scope.$index].serversCount" :min="1" placeholder="台数" /> | |||||
</el-form-item> | </el-form-item> | ||||
</template> | </template> | ||||
</el-table-column> | </el-table-column> | ||||
@@ -107,7 +149,10 @@ | |||||
<el-form-item v-if="formData.isProduceData===1" prop="isProduceData"> | <el-form-item v-if="formData.isProduceData===1" prop="isProduceData"> | ||||
<el-table :data="formData.produceData" style="width: 100%"> | <el-table :data="formData.produceData" style="width: 100%"> | ||||
<el-table-column type="index" label="序号" width="60" /> | <el-table-column type="index" label="序号" width="60" /> | ||||
<el-table-column prop="state" label="*数据目录名称"> | |||||
<el-table-column prop="state" label=""> | |||||
<template #header> | |||||
<span style="color: red">*</span>数据目录名称 | |||||
</template> | |||||
<template #default="scope"> | <template #default="scope"> | ||||
<el-form-item | <el-form-item | ||||
:prop="`produceData[${scope.$index}].dataDirectoryName`" | :prop="`produceData[${scope.$index}].dataDirectoryName`" | ||||
@@ -120,7 +165,10 @@ | |||||
</el-form-item> | </el-form-item> | ||||
</template> | </template> | ||||
</el-table-column> | </el-table-column> | ||||
<el-table-column prop="city" label="*数据项"> | |||||
<el-table-column prop="city"> | |||||
<template #header> | |||||
<span style="color: red">*</span>数据项 | |||||
</template> | |||||
<template #default="scope"> | <template #default="scope"> | ||||
<el-form-item | <el-form-item | ||||
:prop="`produceData[${scope.$index}].dataItem`" | :prop="`produceData[${scope.$index}].dataItem`" | ||||
@@ -128,7 +176,7 @@ | |||||
> | > | ||||
<el-input | <el-input | ||||
v-model="formData.produceData[scope.$index].dataItem" | v-model="formData.produceData[scope.$index].dataItem" | ||||
placeholder="数据项" | |||||
placeholder="多个数据项时,用“;”隔开" | |||||
/> | /> | ||||
</el-form-item> | </el-form-item> | ||||
</template> | </template> | ||||
@@ -160,7 +208,7 @@ | |||||
<el-form-item v-if="formData.isCommonComponent===1" prop="isProduceData"> | <el-form-item v-if="formData.isCommonComponent===1" prop="isProduceData"> | ||||
<el-table :data="formData.commonComponent" style="width: 100%"> | <el-table :data="formData.commonComponent" style="width: 100%"> | ||||
<el-table-column type="index" label="序号" width="60" /> | <el-table-column type="index" label="序号" width="60" /> | ||||
<el-table-column prop="state" label="*公共组件名称"> | |||||
<el-table-column prop="state" label="公共组件名称(强制组件数量必须>=1)"> | |||||
<template #default="scope"> | <template #default="scope"> | ||||
<el-form-item | <el-form-item | ||||
:prop="`commonComponent[${scope.$index}].componentName`" | :prop="`commonComponent[${scope.$index}].componentName`" | ||||
@@ -168,12 +216,12 @@ | |||||
> | > | ||||
<el-input | <el-input | ||||
v-model="formData.commonComponent[scope.$index].componentName" | v-model="formData.commonComponent[scope.$index].componentName" | ||||
placeholder="数据目录名称" | |||||
placeholder="请输入" | |||||
/> | /> | ||||
</el-form-item> | </el-form-item> | ||||
</template> | </template> | ||||
</el-table-column> | </el-table-column> | ||||
<el-table-column prop="city" label="*公共组件类型"> | |||||
<el-table-column prop="city" label="公共组件类型"> | |||||
<template #default="scope"> | <template #default="scope"> | ||||
<el-form-item | <el-form-item | ||||
:prop="`commonComponent[${scope.$index}].componentType`" | :prop="`commonComponent[${scope.$index}].componentType`" | ||||
@@ -181,7 +229,7 @@ | |||||
> | > | ||||
<el-input | <el-input | ||||
v-model="formData.commonComponent[scope.$index].componentType" | v-model="formData.commonComponent[scope.$index].componentType" | ||||
placeholder="数据项" | |||||
placeholder="请输入" | |||||
/> | /> | ||||
</el-form-item> | </el-form-item> | ||||
</template> | </template> | ||||
@@ -206,6 +254,7 @@ | |||||
</template> | </template> | ||||
<script setup> | <script setup> | ||||
import { onMounted, ref, watch } from 'vue' | import { onMounted, ref, watch } from 'vue' | ||||
const props = defineProps({ | const props = defineProps({ | ||||
detailData: { | detailData: { | ||||
type: Object, | type: Object, | ||||
@@ -214,6 +263,43 @@ const props = defineProps({ | |||||
} | } | ||||
} | } | ||||
}) | }) | ||||
function getDisdataItem (name) { | |||||
let disDataItem = [] | |||||
disData.value.forEach(item => { | |||||
if (item.name === name) { | |||||
disDataItem = item.children | |||||
} | |||||
}) | |||||
return disDataItem | |||||
} | |||||
function cloudTypeChange (index) { | |||||
formData.value.cloudResource[index].baseSpecification = '' | |||||
} | |||||
const disData = ref([ | |||||
{ | |||||
name: 'ECS', | |||||
children: [ | |||||
{ | |||||
name: '1核1G' | |||||
}, | |||||
{ | |||||
name: '2核4G' | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
name: 'OSS', | |||||
children: [ | |||||
{ | |||||
name: '100G' | |||||
}, | |||||
{ | |||||
name: '200G' | |||||
} | |||||
] | |||||
} | |||||
]) | |||||
const ruleFormRef = ref() | const ruleFormRef = ref() | ||||
const formData = ref({ | const formData = ref({ | ||||
mobileTerminalEntry: [], | mobileTerminalEntry: [], | ||||
@@ -26,7 +26,6 @@ import { changFilesParam, reviewFileParam } from '@/utils/uploadAction' | |||||
import { dictionary } from '@/http/apis/projectCollection/projectCollectionEnter' | import { dictionary } from '@/http/apis/projectCollection/projectCollectionEnter' | ||||
import ReviewCheck from '@/pages/declareManage/projectDeclare/declarePage/components/reviewCheck.vue' | import ReviewCheck from '@/pages/declareManage/projectDeclare/declarePage/components/reviewCheck.vue' | ||||
import { getIsShowReviewCheck } from '@/utils/getIsShowReviewCheck' | import { getIsShowReviewCheck } from '@/utils/getIsShowReviewCheck' | ||||
import ProvincialExamine from '@/pages/declareManage/projectDeclare/declarePage/components/provincialExamine.vue' | |||||
const { proxy } = getCurrentInstance(), | const { proxy } = getCurrentInstance(), | ||||
route = useRoute(), | route = useRoute(), | ||||
@@ -653,16 +652,16 @@ onMounted(async () => { | |||||
<funds-allocation ref="fundsAllocationRef" /> | <funds-allocation ref="fundsAllocationRef" /> | ||||
</div> | </div> | ||||
</el-collapse-item> | </el-collapse-item> | ||||
<el-collapse-item v-if="fundsInfoRef?.formData.declareAmount>=1000&&basicInfoRef?.formData?.baseProjIsConfidentiality==='01'" name="10" class="mb-16"> | |||||
<template #title> | |||||
<div class="collapse-title"> | |||||
重大项目省级联审信息 | |||||
</div> | |||||
</template> | |||||
<div class="p-24"> | |||||
<provincial-examine ref="provincialExamineRef" /> | |||||
</div> | |||||
</el-collapse-item> | |||||
<!-- <el-collapse-item v-if="fundsInfoRef?.formData.declareAmount>=1000&&basicInfoRef?.formData?.baseProjIsConfidentiality==='01'" name="10" class="mb-16">--> | |||||
<!-- <template #title>--> | |||||
<!-- <div class="collapse-title">--> | |||||
<!-- 重大项目省级联审信息--> | |||||
<!-- </div>--> | |||||
<!-- </template>--> | |||||
<!-- <div class="p-24">--> | |||||
<!-- <provincial-examine ref="provincialExamineRef" />--> | |||||
<!-- </div>--> | |||||
<!-- </el-collapse-item>--> | |||||
<el-collapse-item | <el-collapse-item | ||||
v-if="basicInfoRef?.formData?.baseProjIsConfidentiality==='01'" | v-if="basicInfoRef?.formData?.baseProjIsConfidentiality==='01'" | ||||
name="4" | name="4" | ||||
@@ -47,7 +47,8 @@ const formRef = ref(), | |||||
bidDoc: [], | bidDoc: [], | ||||
acceptanceLetter: [] | acceptanceLetter: [] | ||||
}], | }], | ||||
developCode: '' | |||||
developCode: '', | |||||
financialCode: '' | |||||
}), | }), | ||||
submitLoading = ref(false), | submitLoading = ref(false), | ||||
submit = async (formEl) => { | submit = async (formEl) => { | ||||
@@ -67,6 +68,7 @@ const formRef = ref(), | |||||
acceptanceLetter: i.acceptanceLetter && JSON.stringify(changFilesParam(i.acceptanceLetter)) | acceptanceLetter: i.acceptanceLetter && JSON.stringify(changFilesParam(i.acceptanceLetter)) | ||||
} | } | ||||
}), | }), | ||||
financialCode: formData.value.financialCode, | |||||
developCode: formData.value.developCode | developCode: formData.value.developCode | ||||
} | } | ||||
try { | try { | ||||
@@ -116,9 +118,18 @@ onMounted(async () => { | |||||
scroll-to-error | scroll-to-error | ||||
> | > | ||||
<el-card class="w-full mb-16"> | <el-card class="w-full mb-16"> | ||||
<el-form-item label="发改编码" :rules="[{ required: true, message: '请输入' }]" prop="developCode"> | |||||
<el-input v-model="formData.developCode" placeholder="请输入" /> | |||||
</el-form-item> | |||||
<el-row> | |||||
<el-col :span="12"> | |||||
<el-form-item label="发改编码" :rules="[{ required: true, message: '请输入' }]" prop="developCode"> | |||||
<el-input v-model="formData.developCode" placeholder="请输入" /> | |||||
</el-form-item> | |||||
</el-col> | |||||
<el-col :span="12"> | |||||
<el-form-item label="财政编码" prop="financialCode" :rules="[{ required: true, message: '请输入' }]"> | |||||
<el-input v-model="formData.financialCode" placeholder="请填写" /> | |||||
</el-form-item> | |||||
</el-col> | |||||
</el-row> | |||||
</el-card> | </el-card> | ||||
<el-card v-for="(item,index) in formData.sections" :key="index" class="w-full mb-16"> | <el-card v-for="(item,index) in formData.sections" :key="index" class="w-full mb-16"> | ||||
<template #header> | <template #header> | ||||
@@ -21,8 +21,12 @@ const { | |||||
</script> | </script> | ||||
<template> | <template> | ||||
<el-collapse v-model="collapseModal"> | |||||
<el-descriptions v-if="!detailData.projectApplications||detailData.projectApplications.length<1"> | |||||
<el-descriptions-item label="不包含应用原因">{{ detailData.includeCause?detailData.includeCause:'-' }}</el-descriptions-item> | |||||
</el-descriptions> | |||||
<el-collapse v-if="detailData.projectApplications" v-model="collapseModal"> | |||||
<el-collapse-item v-for="(app,index) in detailData.projectApplications" :key="index" :name="index"> | <el-collapse-item v-for="(app,index) in detailData.projectApplications" :key="index" :name="index"> | ||||
<template #title> | <template #title> | ||||
<div class="collapse-title">{{ app.applicationName ||app.relatedExistsApplication }}</div> | <div class="collapse-title">{{ app.applicationName ||app.relatedExistsApplication }}</div> | ||||
</template> | </template> | ||||
@@ -56,7 +56,8 @@ const props = defineProps({ | |||||
props.detailData?.isEngineeringSpeed && tabList.value.push('工程形象进度') | props.detailData?.isEngineeringSpeed && tabList.value.push('工程形象进度') | ||||
tabList.value.push('附件') | tabList.value.push('附件') | ||||
props.detailData?.isRemarks && tabList.value.push('备注') | props.detailData?.isRemarks && tabList.value.push('备注') | ||||
props.detailData?.projectApplications?.length && tabList.value.push('应用信息') | |||||
// props.detailData?.projectApplications?.length && tabList.value.push('应用信息') | |||||
tabList.value.push('应用信息') | |||||
if (props.detailData?.safetyInputModular && JSON.parse(props.detailData.safetyInputModular)?.length) { | if (props.detailData?.safetyInputModular && JSON.parse(props.detailData.safetyInputModular)?.length) { | ||||
for (let i = 0; i < JSON.parse(props.detailData.safetyInputModular).length; i++) { | for (let i = 0; i < JSON.parse(props.detailData.safetyInputModular).length; i++) { | ||||
tabList.value.push(JSON.parse(props.detailData.safetyInputModular)[i].moduleName) | tabList.value.push(JSON.parse(props.detailData.safetyInputModular)[i].moduleName) | ||||
@@ -418,7 +418,7 @@ async function bohui () { | |||||
</el-button> | </el-button> | ||||
<el-button @click="router.go(-1)">返回</el-button> | <el-button @click="router.go(-1)">返回</el-button> | ||||
<el-button | <el-button | ||||
v-if="detailData.status>=10012" | |||||
v-if="detailData.status===10012" | |||||
plain | plain | ||||
type="danger" | type="danger" | ||||
@click="rejectYear" | @click="rejectYear" | ||||