feat(purchase): 采购申请选择服务商城品目时显示提示信息

在品目编码选择器下方添加条件提示:
- 当选择的品目为特殊品目(服务商城品目)时显示黄色提示
- 提示文案:当前选择品目为服务商城品目
This commit is contained in:
吴红兵
2026-03-07 12:25:00 +08:00
parent 94c3473958
commit 271710e870

View File

@@ -125,6 +125,9 @@
:disabled="flowFieldDisabled('categoryCode')" :disabled="flowFieldDisabled('categoryCode')"
@change="handleCategoryChange" @change="handleCategoryChange"
/> />
<el-text v-if="isSpecialServiceCategory && dataForm.categoryCode" type="warning" size="small" style="margin-top: 4px">
当前选择品目为服务商城品目
</el-text>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -153,20 +156,20 @@
<!-- 分支一部门自行采购三列紧凑textarea 单独一行 --> <!-- 分支一部门自行采购三列紧凑textarea 单独一行 -->
<div class="mb20 form-section-compact" v-if="showPurchaseDetailBlocks && isDeptPurchase"> <div class="mb20 form-section-compact" v-if="showPurchaseDetailBlocks && isDeptPurchase">
<div class="step-title mb12">部门自行采购</div> <div class="step-title mb12">部门自行采购</div>
<el-col :span="24" class="mb12"> <el-col :span="24" class="mb12">
<el-form-item label="采购内容" prop="projectContent"> <el-form-item label="采购内容" prop="projectContent">
<el-input <el-input
v-model="dataForm.projectContent" v-model="dataForm.projectContent"
type="textarea" type="textarea"
:rows="3" :rows="3"
:maxlength="1000" :maxlength="1000"
show-word-limit show-word-limit
placeholder="请输入采购内容限制1000字" placeholder="请输入采购内容限制1000字"
clearable clearable
:disabled="flowFieldDisabled('projectContent')" :disabled="flowFieldDisabled('projectContent')"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="8" class="mb12"> <el-col :span="8" class="mb12">
<el-form-item label="采购途径" prop="purchaseChannel"> <el-form-item label="采购途径" prop="purchaseChannel">
@@ -214,9 +217,7 @@
<el-col <el-col
:span="8" :span="8"
class="mb12" class="mb12"
v-if=" v-if="isEntrustCenterChannel && isSpecialServiceCategory && isServiceCategory && dataForm.categoryCode"
isEntrustCenterChannel && isSpecialServiceCategory && isServiceCategory && dataForm.categoryCode
"
> >
<el-form-item label="是否有供应商" prop="hasSupplier"> <el-form-item label="是否有供应商" prop="hasSupplier">
<el-radio-group v-model="dataForm.hasSupplier" :disabled="flowFieldDisabled('hasSupplier')"> <el-radio-group v-model="dataForm.hasSupplier" :disabled="flowFieldDisabled('hasSupplier')">
@@ -230,11 +231,7 @@
:span="8" :span="8"
class="mb12" class="mb12"
v-if=" v-if="
isEntrustCenterChannel && isEntrustCenterChannel && isSpecialServiceCategory && isServiceCategory && dataForm.hasSupplier === '1' && dataForm.categoryCode
isSpecialServiceCategory &&
isServiceCategory &&
dataForm.hasSupplier === '1' &&
dataForm.categoryCode
" "
> >
<el-form-item label="需求文件" prop="serviceDirectSelect" required> <el-form-item label="需求文件" prop="serviceDirectSelect" required>
@@ -262,11 +259,7 @@
:span="8" :span="8"
class="mb12" class="mb12"
v-if=" v-if="
isEntrustCenterChannel && isEntrustCenterChannel && isSpecialServiceCategory && isServiceCategory && dataForm.hasSupplier === '0' && dataForm.categoryCode
isSpecialServiceCategory &&
isServiceCategory &&
dataForm.hasSupplier === '0' &&
dataForm.categoryCode
" "
> >
<el-form-item label="需求文件" prop="serviceInviteSelect" required> <el-form-item label="需求文件" prop="serviceInviteSelect" required>
@@ -290,11 +283,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 委托采购中心采购 - 其他情况(非特殊服务品目):默认需求模板 --> <!-- 委托采购中心采购 - 其他情况(非特殊服务品目):默认需求模板 -->
<el-col <el-col :span="8" class="mb12" v-if="isEntrustCenterChannel && !isSpecialServiceCategory && dataForm.categoryCode">
:span="8"
class="mb12"
v-if="isEntrustCenterChannel && !isSpecialServiceCategory && dataForm.categoryCode"
>
<el-form-item label="需求文件" prop="purchaseRequirementTemplate" required> <el-form-item label="需求文件" prop="purchaseRequirementTemplate" required>
<upload-file <upload-file
v-model="dataForm.purchaseRequirementTemplate" v-model="dataForm.purchaseRequirementTemplate"
@@ -495,16 +484,7 @@
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col <el-col :span="8" class="mb12" v-if="dataForm.budget && dataForm.budget >= BUDGET_FEASIBILITY_THRESHOLD && isSpecialType('0')">
:span="8"
class="mb12"
v-if="
dataForm.budget &&
dataForm.budget >= BUDGET_FEASIBILITY_THRESHOLD &&
isSpecialType('0')
"
>
<el-form-item label="校党委会议纪要" prop="meetingMinutes" required> <el-form-item label="校党委会议纪要" prop="meetingMinutes" required>
<upload-file <upload-file
v-model="dataForm.meetingMinutes" v-model="dataForm.meetingMinutes"
@@ -776,16 +756,12 @@
万时,系统默认要求使用公开比选模板。 万时,系统默认要求使用公开比选模板。
</li> </li>
<li> <li>
<strong>可行性论证与会议纪要(学校统一采购)</strong> 当预算金额 ≥ 30 万({{ <strong>可行性论证与会议纪要(学校统一采购)</strong> 当预算金额 ≥ 30 万({{ BUDGET_FEASIBILITY_THRESHOLD }}
BUDGET_FEASIBILITY_THRESHOLD
}}
元)且不是紧急/单一/进口等特殊情况时, 元)且不是紧急/单一/进口等特殊情况时,
需要上传「项目可行性论证报告」和「会议纪要」;紧急、单一来源、进口等特殊情况对应有单独的证明材料与会议纪要要求。 需要上传「项目可行性论证报告」和「会议纪要」;紧急、单一来源、进口等特殊情况对应有单独的证明材料与会议纪要要求。
</li> </li>
<li> <li>
<strong>政府采购意向表</strong> 当预算金额 ≥ 100 万({{ <strong>政府采购意向表</strong> 当预算金额 ≥ 100 万({{ BUDGET_GOV_PURCHASE_THRESHOLD }}
BUDGET_GOV_PURCHASE_THRESHOLD
}}
元),需要填写政府采购意向表并上传对应模板文件。 元),需要填写政府采购意向表并上传对应模板文件。
</li> </li>
<li> <li>
@@ -1276,10 +1252,10 @@ const isUrgentSpecial = computed(() => dataForm.isSpecial === '1');
// 是否为特殊情况非0即为特殊情况紧急、单一、进口或预算金额>=30万 // 是否为特殊情况非0即为特殊情况紧急、单一、进口或预算金额>=30万
const isSpecialCase = computed(() => { const isSpecialCase = computed(() => {
// 特殊情况或预算金额>=30万时需要选择校党委 // 特殊情况或预算金额>=30万时需要选择校党委
const isSpecial = dataForm.isSpecial && dataForm.isSpecial !== '0'; const isSpecial = dataForm.isSpecial && dataForm.isSpecial !== '0';
const isHighBudget = dataForm.budget != null && dataForm.budget >= BUDGET_FEASIBILITY_THRESHOLD.value; const isHighBudget = dataForm.budget != null && dataForm.budget >= BUDGET_FEASIBILITY_THRESHOLD.value;
return isSpecial || isHighBudget; return isSpecial || isHighBudget;
}); });
// 第二步标题 // 第二步标题
@@ -1401,7 +1377,7 @@ watch(
(newChannel, oldChannel) => { (newChannel, oldChannel) => {
// 仅在采购途径发生变化时清理 // 仅在采购途径发生变化时清理
if (newChannel === oldChannel) return; if (newChannel === oldChannel) return;
// 编辑模式dataForm.id存在如果是首次加载数据oldChannel为空不清理 // 编辑模式dataForm.id存在如果是首次加载数据oldChannel为空不清理
// 首次加载时保持原有数据,用户手动切换时需要清理 // 首次加载时保持原有数据,用户手动切换时需要清理
if (dataForm.id && !oldChannel) return; if (dataForm.id && !oldChannel) return;
@@ -1477,7 +1453,6 @@ const isAutoSelectPurchaseType = computed(() => {
); );
}); });
// 判断是否显示自动邀请比选模版5万<=金额<30万服务类目特殊服务类目 // 判断是否显示自动邀请比选模版5万<=金额<30万服务类目特殊服务类目
const showAutoInviteSelect = computed(() => { const showAutoInviteSelect = computed(() => {
if (!isDeptPurchase.value) return false; if (!isDeptPurchase.value) return false;