feat(project-demand): 根据需求状态显示不同表单

- 添加了 v-if="formData.state=='3'" 条件,以根据需求状态显示不同表单元素
- 为征集名称、类型、截止时间等字段添加了只读显示逻辑
- 调整了专项资金相关字段的显示逻辑
- 优化了附件上传和文件列表的显示条件
- 根据状态控制提交、返回按钮的显示
This commit is contained in:
dj
2025-08-22 17:38:46 +08:00
parent 0efd2a7db2
commit f2ac70f9e3

View File

@@ -6,12 +6,14 @@
<el-row gutter="30">
<el-col :span="6">
<el-form-item label="征集名称" prop="requirementName">
<el-input v-model="formData.requirementName" placeholder="请输入征集名称" clearable @change="changeRequirementData"></el-input>
<el-input v-if="formData.state=='3'" v-model="formData.requirementName" placeholder="请输入征集名称" clearable @change="changeRequirementData"></el-input>
<span v-else>{{ formData.requirementName }}</span>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: -40px">
<el-form-item label="征集类型" prop="collectType">
<el-select v-model="formData.collectType" placeholder="请选择征集类型" clearable filterable @change="changeRequirementData">
<el-select v-if="formData.state=='3'" v-model="formData.collectType" placeholder="请选择征集类型" clearable filterable @change="changeRequirementData" >
<el-option
v-for="item in cacheStore.getDict('collect_type')"
:key="item.value"
@@ -19,11 +21,12 @@
:value="item.value"
/>
</el-select>
<span v-else>{{ formData.collectType }}</span>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px">
<el-form-item label="需求上报截止时间" prop="deadline">
<el-config-provider>
<el-config-provider v-if="formData.state=='3'">
<el-date-picker
style="width: 100%"
v-model="formData.deadline"
@@ -33,19 +36,21 @@
:disabled-date="disabledDate" @change="changeRequirementData"
/>
</el-config-provider>
<span v-else>{{ formData.deadline }}</span>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: -20px">
<el-form-item label="是否专项资金" prop="isSpecialFund">
<el-select v-model="formData.isSpecialFund" placeholder="请选择是否专项资金" clearable filterable @change="changeRequirementData">
<el-select v-if="formData.state=='3'" v-model="formData.isSpecialFund" placeholder="请选择是否专项资金" clearable filterable @change="changeRequirementData">
<el-option :value="true" label="是"></el-option>
<el-option :value="false" label="否"></el-option>
</el-select>
<span v-else>{{ formData.isSpecialFund?' ':' ' }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="专项资金名称" prop="specialFundId" v-if="formData.isSpecialFund">
<el-select v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable @change="changeRequirementData">
<el-select v-if="formData.state=='3'" v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable @change="changeRequirementData">
<el-option
v-for="item in specialFundOption"
:key="item.value"
@@ -53,16 +58,17 @@
:value="item.value">
</el-option>
</el-select>
<span v-else>{{ formData.specialFund }}</span>
</el-form-item>
</el-col>
<el-col :span="6" v-if="formData.isSpecialFund">
<el-col :span="6" v-if="formData.isSpecialFund&&formData.state=='3'">
<!-- <el-form-item>-->
<a @click="addSpecialFund" style="width: 116px;text-align: right;display: inline-block">新增专项资金</a>
<!-- </el-form-item>-->
</el-col>
<el-col :span="24">
<el-form-item label="征集公司" :required="true" prop="" class="company-select">
<div style="width: 100%">
<div style="width: 100%" v-if="formData.state=='3'">
<el-button color="#DED0B2" @click="showCompany">{{ selectedCompanyList.length === 0 ? '请选择征集公司' : '更改' }}
</el-button>
</div>
@@ -75,19 +81,21 @@
</el-col>
<el-col :span="24" style="margin-bottom: -18px">
<el-form-item label="征集说明" prop="" required>
<el-input
<el-input v-if="formData.state=='3'"
v-model="formData.collectExplain"
style="width:100%;margin-right: 50px"
:rows="5"
type="textarea"
placeholder="请输入征集说明" @change="changeRequirementData"
/>
<div v-else v-html="formData.collectExplain" style="white-space: pre-wrap;">
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<baseTitle title="附件文件" style="margin-right: 10px"></baseTitle>
<file-upload v-if="checkFormPrem('fileList')" @getFile="getFile"/>
<file-upload v-if="checkFormPrem('fileList')&&formData.state=='3'" @getFile="getFile"/>
<div style="margin-right: 50px">
<fvTable style="width: 100%;max-height: 160px;" height="160" v-if="showTable"
:tableConfig="tableConfig" :data="formData.fileList"
@@ -123,7 +131,7 @@
<div class="oper-page-btn">
<el-button color="#DED0B2" v-if="routerName==='Requirement/add'&&formData.state=='3'" @click="handleSubmit(demandForm)">提交</el-button>
<el-button color="#DED0B2" v-else-if="routerName==='Requirement/edit'&&formData.state=='3'" @click="handleResubmit(demandForm)">重新提交</el-button>
<el-button @click="handleBack">返回</el-button>
<el-button @click="handleBack" v-if="formData.state=='3'">返回</el-button>
</div>
<company-picker :multiple="true" ref="companyRef" title="请选择征集公司" @ok="sureSelectedCompany" @cancelOrClear="cancelSelectedCompany"
v-model:value="selectedCompanyList"/>
@@ -243,8 +251,10 @@ const tableConfig = reactive({
return (
<div>
<el-button type="primary" link onClick={() => handleDownload(row)}>下载</el-button>
<popover-delete name={row.originalFileName} type={'文件'} btnType={'danger'}
onDelete={() => handleDelete(row)}/>
{
formData.value.state=='3'? <popover-delete name={row.originalFileName} type={'文件'} btnType={'danger'}
onDelete={() => handleDelete(row)}/>:''
}
</div>
)
}