Kaynağa Gözat

fix: 修改需求,但有部分内容需要先上线

master
yxhc 2 hafta önce
ebeveyn
işleme
b41f3417f9
11 değiştirilmiş dosya ile 242 ekleme ve 142 silme
  1. +13
    -13
      src/App.vue
  2. +1
    -1
      src/pages/declareManage/projectDeclare/declarePage/components/accessory.vue
  3. +12
    -1
      src/pages/declareManage/projectDeclare/declarePage/components/applications.vue
  4. +77
    -75
      src/pages/declareManage/projectDeclare/declarePage/components/basicInfo.vue
  5. +0
    -14
      src/pages/declareManage/projectDeclare/declarePage/components/fundsInfo.vue
  6. +106
    -20
      src/pages/declareManage/projectDeclare/declarePage/components/plannedUseResources.vue
  7. +10
    -11
      src/pages/declareManage/projectDeclare/declarePage/index.vue
  8. +15
    -4
      src/pages/declareManage/purchaseResults/fillPurchasingResult/index.vue
  9. +5
    -1
      src/pages/projectStoreManage/projectStore/projectDetail/components/applications.vue
  10. +2
    -1
      src/pages/projectStoreManage/projectStore/projectDetail/components/projectInfo.vue
  11. +1
    -1
      src/pages/toDoCenter/handleDuringExamine/index.vue

+ 13
- 13
src/App.vue Dosyayı Görüntüle

@@ -1,19 +1,19 @@
<script setup name="App">
// import store from '@/store'
// 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>



+ 1
- 1
src/pages/declareManage/projectDeclare/declarePage/components/accessory.vue Dosyayı Görüntüle

@@ -81,7 +81,7 @@ defineExpose({ validForm, formData, setFormData })
>
<el-row :gutter="40">
<el-col :span="12">
<el-form-item label="初步设计方案">
<el-form-item label="项目申报书" prop="preliminaryPlanFile">
<el-upload
v-model:file-list="formData.preliminaryPlanFile"
class="w-full"


+ 12
- 1
src/pages/declareManage/projectDeclare/declarePage/components/applications.vue Dosyayı Görüntüle

@@ -34,6 +34,9 @@ const route = useRoute(),
],
applicationList: [
{ required: true, message: '请添加应用', trigger: 'blur' }
],
includeCause: [
{ required: true, message: '请填写不包括原因', trigger: 'blur' }
]
},
column = [
@@ -172,7 +175,8 @@ const route = useRoute(),
...i,
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-form-item>
</el-col>

<el-col v-if="formData.includeApplication === 1" :span="24">
<el-form-item label="包含的应用" prop="applicationList">
<el-button
@@ -232,6 +237,12 @@ defineExpose({ validForm, formData, applicationData, setFormData })
</table-list>
</el-form-item>
</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-form>
<el-drawer


+ 77
- 75
src/pages/declareManage/projectDeclare/declarePage/components/basicInfo.vue Dosyayı Görüntüle

@@ -286,7 +286,7 @@ const
})
}
},
emits = defineEmits(['changeIsFirst', 'getBasicInfoData']),
emits = defineEmits(['changeIsFirst', 'getBasicInfoData', 'reuseItem']),
changeIsFirst = (val) => {
emits('changeIsFirst', val)
},
@@ -549,20 +549,20 @@ watch(() => formData.value, val => {
:validate-on-rule-change="false"
>
<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-form-item label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" maxlength="50" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="24">
<el-form-item label="项目类型" prop="projectType">
<el-radio-group
v-model="formData.projectType"
@@ -570,9 +570,48 @@ watch(() => formData.value, val => {
>
<el-radio label="01">首次建设</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-form-item>
</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-form-item label="内容类别" prop="baseConstructionType">
<el-checkbox-group v-model="formData.baseConstructionType">
@@ -662,19 +701,7 @@ watch(() => formData.value, val => {
/>
</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="12">
<el-form-item label="建设单位" prop="buildOrgName">
<el-input v-model="formData.buildOrgName" placeholder="请输入" :disabled="true" />
@@ -806,6 +833,32 @@ watch(() => formData.value, val => {
</el-radio-group>
</el-form-item>
</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-form-item label="立项依据材料" prop="baseProjBasis">
<table-list
@@ -891,24 +944,6 @@ watch(() => formData.value, val => {
/>
</el-form-item>
</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-form-item label="项目概述" prop="projectOverview">
<el-input
@@ -921,40 +956,7 @@ watch(() => formData.value, val => {
/>
</el-form-item>
</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-form-item label="项目内容与预期成效" prop="beseExpectedResults">
<table-list


+ 0
- 14
src/pages/declareManage/projectDeclare/declarePage/components/fundsInfo.vue Dosyayı Görüntüle

@@ -22,7 +22,6 @@ const formData = ref({
}
},
rules = {
projectYear: [{ required: true, message: '请选择预算年度' }],
declareAmount: [{ required: true, message: '请输入申报金额', trigger: 'blur' }, { validator: moneyValidator, trigger: 'blur' }],
declareHaveAmount: [{ required: true, message: '请输入自有资金', trigger: 'blur' }, { validator: moneyValidator, trigger: 'blur' }],
declareGovOwnFinanceAmount: [
@@ -55,7 +54,6 @@ const formData = ref({
// 回显
setFormData = (data) => {
formData.value = {
projectYear: data.projectYear ? data.projectYear + '' : null,
declareAmount: data.declareAmount,
declareHaveAmount: data.declareHaveAmount,
declareGovOwnFinanceAmount: data.declareGovOwnFinanceAmount,
@@ -81,18 +79,6 @@ defineExpose({ validForm, formData, setFormData })
>
<el-row :gutter="40">
<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-input-number
v-model="formData.declareAmount"


+ 106
- 20
src/pages/declareManage/projectDeclare/declarePage/components/plannedUseResources.vue Dosyayı Görüntüle

@@ -31,42 +31,84 @@
<el-form-item v-if="formData.isCloudResource===1" prop="cloudResource">
<el-table :data="formData.cloudResource" style="width: 100%">
<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">
<!-- <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
:prop="`cloudResource[${scope.$index}].cloudResourceType`"
:rules="[{required:true,message:''}]"
>
<el-input
<el-select
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>
</template>
</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">
<!-- <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
:prop="`cloudResource[${scope.$index}].baseSpecification`"
:rules="[{required:true,message:''}]"
>
<el-input
<el-select
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>
</template>
</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">
<el-form-item
:prop="`cloudResource[${scope.$index}].serversCount`"
: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>
</template>
</el-table-column>
@@ -107,7 +149,10 @@
<el-form-item v-if="formData.isProduceData===1" prop="isProduceData">
<el-table :data="formData.produceData" style="width: 100%">
<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">
<el-form-item
:prop="`produceData[${scope.$index}].dataDirectoryName`"
@@ -120,7 +165,10 @@
</el-form-item>
</template>
</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">
<el-form-item
:prop="`produceData[${scope.$index}].dataItem`"
@@ -128,7 +176,7 @@
>
<el-input
v-model="formData.produceData[scope.$index].dataItem"
placeholder="数据项"
placeholder="多个数据项时,用“;”隔开"
/>
</el-form-item>
</template>
@@ -160,7 +208,7 @@
<el-form-item v-if="formData.isCommonComponent===1" prop="isProduceData">
<el-table :data="formData.commonComponent" style="width: 100%">
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="state" label="*公共组件名称">
<el-table-column prop="state" label="公共组件名称(强制组件数量必须>=1)">
<template #default="scope">
<el-form-item
:prop="`commonComponent[${scope.$index}].componentName`"
@@ -168,12 +216,12 @@
>
<el-input
v-model="formData.commonComponent[scope.$index].componentName"
placeholder="数据目录名称"
placeholder="请输入"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="city" label="*公共组件类型">
<el-table-column prop="city" label="公共组件类型">
<template #default="scope">
<el-form-item
:prop="`commonComponent[${scope.$index}].componentType`"
@@ -181,7 +229,7 @@
>
<el-input
v-model="formData.commonComponent[scope.$index].componentType"
placeholder="数据项"
placeholder="请输入"
/>
</el-form-item>
</template>
@@ -206,6 +254,7 @@
</template>
<script setup>
import { onMounted, ref, watch } from 'vue'

const props = defineProps({
detailData: {
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 formData = ref({
mobileTerminalEntry: [],


+ 10
- 11
src/pages/declareManage/projectDeclare/declarePage/index.vue Dosyayı Görüntüle

@@ -26,7 +26,6 @@ import { changFilesParam, reviewFileParam } from '@/utils/uploadAction'
import { dictionary } from '@/http/apis/projectCollection/projectCollectionEnter'
import ReviewCheck from '@/pages/declareManage/projectDeclare/declarePage/components/reviewCheck.vue'
import { getIsShowReviewCheck } from '@/utils/getIsShowReviewCheck'
import ProvincialExamine from '@/pages/declareManage/projectDeclare/declarePage/components/provincialExamine.vue'

const { proxy } = getCurrentInstance(),
route = useRoute(),
@@ -653,16 +652,16 @@ onMounted(async () => {
<funds-allocation ref="fundsAllocationRef" />
</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 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="basicInfoRef?.formData?.baseProjIsConfidentiality==='01'"
name="4"


+ 15
- 4
src/pages/declareManage/purchaseResults/fillPurchasingResult/index.vue Dosyayı Görüntüle

@@ -47,7 +47,8 @@ const formRef = ref(),
bidDoc: [],
acceptanceLetter: []
}],
developCode: ''
developCode: '',
financialCode: ''
}),
submitLoading = ref(false),
submit = async (formEl) => {
@@ -67,6 +68,7 @@ const formRef = ref(),
acceptanceLetter: i.acceptanceLetter && JSON.stringify(changFilesParam(i.acceptanceLetter))
}
}),
financialCode: formData.value.financialCode,
developCode: formData.value.developCode
}
try {
@@ -116,9 +118,18 @@ onMounted(async () => {
scroll-to-error
>
<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 v-for="(item,index) in formData.sections" :key="index" class="w-full mb-16">
<template #header>


+ 5
- 1
src/pages/projectStoreManage/projectStore/projectDetail/components/applications.vue Dosyayı Görüntüle

@@ -21,8 +21,12 @@ const {
</script>

<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">

<template #title>
<div class="collapse-title">{{ app.applicationName ||app.relatedExistsApplication }}</div>
</template>


+ 2
- 1
src/pages/projectStoreManage/projectStore/projectDetail/components/projectInfo.vue Dosyayı Görüntüle

@@ -56,7 +56,8 @@ const props = defineProps({
props.detailData?.isEngineeringSpeed && tabList.value.push('工程形象进度')
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) {
for (let i = 0; i < JSON.parse(props.detailData.safetyInputModular).length; i++) {
tabList.value.push(JSON.parse(props.detailData.safetyInputModular)[i].moduleName)


+ 1
- 1
src/pages/toDoCenter/handleDuringExamine/index.vue Dosyayı Görüntüle

@@ -418,7 +418,7 @@ async function bohui () {
</el-button>
<el-button @click="router.go(-1)">返回</el-button>
<el-button
v-if="detailData.status>=10012"
v-if="detailData.status===10012"
plain
type="danger"
@click="rejectYear"


Yükleniyor…
İptal
Kaydet