修改实施采购途径
This commit is contained in:
@@ -26,120 +26,113 @@
|
||||
<el-divider content-position="left">
|
||||
<span class="section-title">基础信息</span>
|
||||
</el-divider>
|
||||
<el-text v-if="!isEditMode && !isViewMode" type="info" size="small" class="mb12" style="display: block">
|
||||
暂存时,基础信息必填
|
||||
</el-text>
|
||||
<el-text v-if="!isEditMode && !isViewMode" type="info" size="small" class="mb12" style="display: block"> 暂存时,基础信息必填 </el-text>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="采购项目名称" prop="projectName">
|
||||
<el-input
|
||||
v-model="dataForm.projectName"
|
||||
placeholder="请输入采购项目名称"
|
||||
clearable
|
||||
:disabled="flowFieldDisabled('projectName')"
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="采购项目名称" prop="projectName">
|
||||
<el-input v-model="dataForm.projectName" placeholder="请输入采购项目名称" clearable :disabled="flowFieldDisabled('projectName')" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="填报日期" prop="applyDate">
|
||||
<el-date-picker
|
||||
v-model="dataForm.applyDate"
|
||||
type="date"
|
||||
placeholder="请选择填报日期"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('applyDate')"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="资金来源" prop="fundSource">
|
||||
<el-select
|
||||
v-model="dataForm.fundSource"
|
||||
placeholder="请选择资金来源"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('fundSource')"
|
||||
>
|
||||
<el-option v-for="item in fundSourceList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="预算金额" prop="budget">
|
||||
<div class="budget-yuan-wrap">
|
||||
<el-input-number
|
||||
v-model="dataForm.budget"
|
||||
:min="0.01"
|
||||
:precision="2"
|
||||
placeholder="请输入金额"
|
||||
:controls="false"
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('budget')"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="填报日期" prop="applyDate">
|
||||
<el-date-picker
|
||||
v-model="dataForm.applyDate"
|
||||
type="date"
|
||||
placeholder="请选择填报日期"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('applyDate')"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="资金来源" prop="fundSource">
|
||||
<el-select
|
||||
v-model="dataForm.fundSource"
|
||||
placeholder="请选择资金来源"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('fundSource')"
|
||||
>
|
||||
<el-option v-for="item in fundSourceList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="预算金额" prop="budget">
|
||||
<div class="budget-yuan-wrap">
|
||||
<el-input-number
|
||||
v-model="dataForm.budget"
|
||||
:min="0.01"
|
||||
:precision="2"
|
||||
placeholder="请输入金额"
|
||||
:controls="false"
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('budget')"
|
||||
/>
|
||||
<span class="budget-unit">元</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="是否集采" prop="isCentralized">
|
||||
<el-select
|
||||
v-model="dataForm.isCentralized"
|
||||
placeholder="请选择是否集采"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('isCentralized')"
|
||||
>
|
||||
<el-option v-for="item in isCentralizedList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="是否特殊情况" prop="isSpecial">
|
||||
<el-select
|
||||
v-model="dataForm.isSpecial"
|
||||
placeholder="请选择是否特殊情况"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('isSpecial')"
|
||||
>
|
||||
<el-option v-for="item in isSpecialList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="是否有资产" prop="hasAssets">
|
||||
<el-radio-group v-model="dataForm.hasAssets" :disabled="flowFieldDisabled('hasAssets')">
|
||||
<el-radio label="1">有</el-radio>
|
||||
<el-radio label="0">无</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" class="mb12">
|
||||
<el-form-item label="品目编码" prop="categoryCode">
|
||||
<el-cascader
|
||||
v-model="categoryCodePath"
|
||||
:options="categoryTreeData"
|
||||
:props="{ value: 'code', label: 'name', children: 'children', checkStrictly: false }"
|
||||
placeholder="请选择品目编码(仅最后一级)"
|
||||
clearable
|
||||
filterable
|
||||
:show-all-levels="true"
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('categoryCode')"
|
||||
@change="handleCategoryChange"
|
||||
/>
|
||||
<!-- 显示品目编码层级关系 -->
|
||||
<el-text v-if="categoryCodeHierarchy" type="info" size="small" style="margin-top: 4px; display: block">
|
||||
品目编码层级:{{ categoryCodeHierarchy }}
|
||||
</el-text>
|
||||
<el-text v-if="isSpecialServiceCategory && dataForm.categoryCode" type="warning" size="small" style="margin-top: 4px">
|
||||
当前选择品目为服务商城品目
|
||||
</el-text>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<span class="budget-unit">元</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="是否集采" prop="isCentralized">
|
||||
<el-select
|
||||
v-model="dataForm.isCentralized"
|
||||
placeholder="请选择是否集采"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('isCentralized')"
|
||||
>
|
||||
<el-option v-for="item in isCentralizedList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="是否特殊情况" prop="isSpecial">
|
||||
<el-select
|
||||
v-model="dataForm.isSpecial"
|
||||
placeholder="请选择是否特殊情况"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('isSpecial')"
|
||||
>
|
||||
<el-option v-for="item in isSpecialList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="是否有资产" prop="hasAssets">
|
||||
<el-radio-group v-model="dataForm.hasAssets" :disabled="flowFieldDisabled('hasAssets')">
|
||||
<el-radio label="1">有</el-radio>
|
||||
<el-radio label="0">无</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" class="mb12">
|
||||
<el-form-item label="品目编码" prop="categoryCode">
|
||||
<el-cascader
|
||||
v-model="categoryCodePath"
|
||||
:options="categoryTreeData"
|
||||
:props="{ value: 'code', label: 'name', children: 'children', checkStrictly: false }"
|
||||
placeholder="请选择品目编码(仅最后一级)"
|
||||
clearable
|
||||
filterable
|
||||
:show-all-levels="true"
|
||||
style="width: 100%"
|
||||
:disabled="flowFieldDisabled('categoryCode')"
|
||||
@change="handleCategoryChange"
|
||||
/>
|
||||
<!-- 显示品目编码层级关系 -->
|
||||
<el-text v-if="categoryCodeHierarchy" type="info" size="small" style="margin-top: 4px; display: block">
|
||||
品目编码层级:{{ categoryCodeHierarchy }}
|
||||
</el-text>
|
||||
<el-text v-if="isSpecialServiceCategory && dataForm.categoryCode" type="warning" size="small" style="margin-top: 4px">
|
||||
当前选择品目为服务商城品目
|
||||
</el-text>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- 采购详情(新增时需先填是否特殊情况、是否集采、预算金额后才显示) -->
|
||||
<div>
|
||||
@@ -203,7 +196,13 @@
|
||||
:disabled="isPurchaseTypeDisabled"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option v-for="item in purchaseTypeDeptOptions" :key="item.value" :label="item.label" :value="item.value" :disabled="item.disabled" />
|
||||
<el-option
|
||||
v-for="item in purchaseTypeDeptOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
:disabled="item.disabled"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -399,16 +398,16 @@
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="8" class="mb12">
|
||||
<el-form-item label="实施采购途径" prop="implementChannel" :required="isImplementChannelRequired">
|
||||
<el-form-item label="实施采购途径" prop="implementType" :required="isImplementTypeRequired">
|
||||
<el-select
|
||||
v-model="dataForm.implementChannel"
|
||||
v-model="dataForm.implementType"
|
||||
placeholder="请选择实施采购途径"
|
||||
clearable
|
||||
:disabled="schoolUnifiedPurchaseFormDisabled"
|
||||
@change="handleImplementChannelChange"
|
||||
@change="handleImplementTypeChange"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option v-for="item in implementChannelList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
<el-option v-for="item in implementTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -987,7 +986,6 @@ const dataForm = reactive({
|
||||
isSpecial: '',
|
||||
hasAssets: '0',
|
||||
purchaseMode: '',
|
||||
implementChannel: '', // 实施采购途径:框架协议、网上商城
|
||||
purchaseType: '',
|
||||
purchaseTypeUnion: '',
|
||||
purchaseChannel: '',
|
||||
@@ -1058,8 +1056,10 @@ const isSpecialList = ref<any[]>([]);
|
||||
const purchaseTypeDeptList = ref<any[]>([]);
|
||||
/** 部门采购方式字典(委托采购中心采购时使用) */
|
||||
const purchaseTypeDeptDelegationList = ref<any[]>([]);
|
||||
/** 实施采购途径选项:框架协议、网上商城 */
|
||||
const implementChannelList = ref<any[]>([
|
||||
/** 实施采购途径选项:1:自行组织采购 2:委托代理采购 5:框架协议 8:网上商城 */
|
||||
const implementTypeList = ref<any[]>([
|
||||
{ value: '1', label: '自行组织采购' },
|
||||
{ value: '2', label: '委托代理采购' },
|
||||
{ value: '5', label: '框架协议' },
|
||||
{ value: '8', label: '网上商城' },
|
||||
]);
|
||||
@@ -1229,7 +1229,7 @@ const isPurchaseTypeUnionRequired = computed(() => {
|
||||
});
|
||||
|
||||
// 学校统一采购 - 实施采购途径是否必填
|
||||
const isImplementChannelRequired = computed(() => {
|
||||
const isImplementTypeRequired = computed(() => {
|
||||
// 审核阶段:采购中心必填
|
||||
if (isFlowEmbed.value && isPurchaseCenter.value) {
|
||||
return true;
|
||||
@@ -1407,19 +1407,24 @@ const calcEntrustCenterType = (): 'service_online' | 'other' | '' => {
|
||||
return 'other';
|
||||
};
|
||||
|
||||
// 实施采购途径变化时,自动设置采购方式
|
||||
// 框架协议 → 采购方式自动选择"框架协议"
|
||||
// 网上商城 → 采购方式自动选择"网上商城"
|
||||
const handleImplementChannelChange = (value: string) => {
|
||||
// 实施采购途径变化时,根据选择自动设置采购方式
|
||||
// 5:框架协议 → 采购方式自动选择"框架协议"
|
||||
// 8:网上商城 → 采购方式自动选择"网上商城"
|
||||
// 1:自行组织采购、2:委托代理采购 → 清空采购方式,由用户手动选择
|
||||
const handleImplementTypeChange = (value: string) => {
|
||||
if (!value) {
|
||||
// 清空实施采购途径时,清空采购方式
|
||||
dataForm.purchaseType = '';
|
||||
return;
|
||||
}
|
||||
|
||||
// 根据实施采购途径自动设置采购方式
|
||||
// value 与 PurchaseTypeEnum 编码一致:5=框架协议,8=网上商城
|
||||
dataForm.purchaseType = value;
|
||||
// 仅当选择框架协议(5)或网上商城(8)时,自动设置采购方式
|
||||
if (value === '5' || value === '8') {
|
||||
dataForm.purchaseType = value;
|
||||
} else {
|
||||
// 其他选项清空采购方式,由用户手动选择
|
||||
dataForm.purchaseType = '';
|
||||
}
|
||||
};
|
||||
|
||||
// 监听采购途径变化,清理所有与采购方式相关的材料字段,同时如果已选择品目则重新计算entrustCenterType
|
||||
@@ -1769,7 +1774,7 @@ const dataRules = reactive({
|
||||
},
|
||||
],
|
||||
// 学校统一采购 + 采购中心审核:实施采购途径必填
|
||||
implementChannel: [
|
||||
implementType: [
|
||||
{
|
||||
validator: (_rule: any, value: string, callback: (e?: Error) => void) => {
|
||||
if (!isDeptPurchase.value && isFlowEmbed.value && isPurchaseCenter.value) {
|
||||
@@ -1900,8 +1905,7 @@ async function loadDetail(applyId: string | number) {
|
||||
budget: detail.budget != null ? Number(detail.budget) : null,
|
||||
isCentralized: detail.isCentralized != null ? String(detail.isCentralized) : '',
|
||||
isSpecial: detail.isSpecial != null ? String(detail.isSpecial) : '',
|
||||
purchaseMode: detail.purchaseMode != null ? String(detail.purchaseMode) : '',
|
||||
implementChannel: detail.implementChannel != null ? String(detail.implementChannel) : '',
|
||||
purchaseMode: detail.purchaseMode != null ? String(detail.purchaseMode) : '',
|
||||
purchaseType:
|
||||
detail.purchaseType === DEPT_PURCHASE_TYPE.ENTRUST_CENTER
|
||||
? ''
|
||||
|
||||
Reference in New Issue
Block a user