Merge branch 'developer' of ssh://code.cyweb.top:30033/scj/zhxy/v3/cloud-ui into developer

This commit is contained in:
zhoutianchi
2026-02-26 16:08:28 +08:00

View File

@@ -19,8 +19,8 @@
:disabled="isViewMode || flowFormDisabled" :disabled="isViewMode || flowFormDisabled"
class="compact-form"> class="compact-form">
<!-- 第一步基本信息查看/流程嵌入时单页展示否则按步骤切换 --> <!-- 基本信息与采购详情同页展示 -->
<div v-show="isViewMode || isFlowEmbed || currentStep === 0"> <div>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12" class="mb16"> <el-col :span="12" class="mb16">
<el-form-item label="采购项目名称" prop="projectName"> <el-form-item label="采购项目名称" prop="projectName">
@@ -130,10 +130,13 @@
</el-row> </el-row>
</div> </div>
<!-- 第二步采购详情查看/流程嵌入时单页展示否则按步骤切换 --> <!-- 采购详情新增时需先填是否特殊情况是否集采预算金额后才显示 -->
<div v-show="isViewMode || isFlowEmbed || currentStep === 1"> <div>
<el-alert v-if="!showPurchaseDetailBlocks" type="info" :closable="false" class="mb16" show-icon>
请先填写上方是否特殊情况是否集采预算金额系统将根据填写结果展示部门自行采购学校统一采购表单
</el-alert>
<!-- 分支一部门自行采购单行两列流式布局条件显示的项自动填满两列 --> <!-- 分支一部门自行采购单行两列流式布局条件显示的项自动填满两列 -->
<div class="mb20" v-if="isDeptPurchase"> <div class="mb20" v-if="showPurchaseDetailBlocks && isDeptPurchase">
<div class="step-title mb16">部门自行采购</div> <div class="step-title mb16">部门自行采购</div>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12" class="mb16"> <el-col :span="12" class="mb16">
@@ -267,7 +270,7 @@
</div> </div>
<!-- 分支二:学校统一采购(单行两列流式布局);申请时隐藏采购方式,由审批环节采购中心补充 --> <!-- 分支二:学校统一采购(单行两列流式布局);申请时隐藏采购方式,由审批环节采购中心补充 -->
<div class="mb20" v-else> <div class="mb20" v-if="showPurchaseDetailBlocks && !isDeptPurchase">
<div class="step-title mb16">学校统一采购</div> <div class="step-title mb16">学校统一采购</div>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12" class="mb16"> <el-col :span="12" class="mb16">
@@ -389,7 +392,7 @@
</div> </div>
</div> </div>
<el-row :gutter="24" v-if="currentStep === 1 || isFlowEmbed"> <el-row :gutter="24">
<el-col :span="12" class="mb16"> <el-col :span="12" class="mb16">
<el-form-item label="备注" prop="remark" class="mb16"> <el-form-item label="备注" prop="remark" class="mb16">
<el-input <el-input
@@ -462,30 +465,19 @@
</template> </template>
<template v-else> <template v-else>
<el-button v-if="!isFlowEmbed" @click="handleCancel">取消</el-button> <el-button v-if="!isFlowEmbed" @click="handleCancel">取消</el-button>
<el-button v-if="!isFlowEmbed && currentStep > 0" @click="prevStep">上一步</el-button>
<el-button <el-button
v-if="!isFlowEmbed && currentStep < 1" v-if="!isEditMode && !flowSubmitDisabled"
type="primary" type="warning"
@click="nextStep" @click="handleTempStore"
:disabled="loading"> :disabled="loading">
下一步 暂存
</el-button> </el-button>
<template v-if="currentStep === 1 || isFlowEmbed"> <!-- <el-button -->
<el-button <!-- type="primary" -->
v-if="!isEditMode && !flowSubmitDisabled" <!-- @click="handleSubmit" -->
type="warning" <!-- :disabled="loading">-->
@click="handleTempStore" <!-- {{ isEditMode ? '保存' : '提交' }}-->
:disabled="loading"> <!-- </el-button>-->
暂存
</el-button>
<!-- <el-button -->
<!-- v-if="currentStep === 1" -->
<!-- type="primary" -->
<!-- @click="handleSubmit" -->
<!-- :disabled="loading">-->
<!-- {{ isEditMode ? '保存' : '提交' }}-->
<!-- </el-button>-->
</template>
</template> </template>
</div> </div>
</div> </div>
@@ -570,7 +562,6 @@ function flowFieldDisabled(key: string) {
// 定义变量内容 // 定义变量内容
const formRef = ref(); const formRef = ref();
const currentStep = ref(0);
const dataForm = reactive({ const dataForm = reactive({
id: '', id: '',
projectName: '', projectName: '',
@@ -723,6 +714,16 @@ const isDeptPurchase = computed(() => {
dataForm.budget && dataForm.budget < 50000); dataForm.budget && dataForm.budget < 50000);
}); });
// 是否已填入“是否特殊情况”“是否集采”“预算金额”,从而能明确是部门自行采购还是学校统一采购(新增时先隐藏采购详情,填完后再显示)
const isPurchaseTypeDetermined = computed(() => {
return dataForm.isSpecial !== '' && dataForm.isCentralized !== '' &&
dataForm.budget != null && Number(dataForm.budget) > 0;
});
// 是否显示“部门自行采购/学校统一采购”区块:查看/编辑/流程嵌入/已保存过 时直接显示;新增时仅当类型已明确后显示
const showPurchaseDetailBlocks = computed(() => {
return !!isViewMode.value || !!isFlowEmbed.value || !!(dataForm.id) || isPurchaseTypeDetermined.value;
});
// 学校统一采购时采购形式默认值(不由用户选择):>=100万→政府采购('1')5万~100万且集采=否→学校自主('2')5万~100万且集采=政府集中采购→政府采购('1')5万~100万且集采=学校集中采购→学校自主('2') // 学校统一采购时采购形式默认值(不由用户选择):>=100万→政府采购('1')5万~100万且集采=否→学校自主('2')5万~100万且集采=政府集中采购→政府采购('1')5万~100万且集采=学校集中采购→学校自主('2')
const schoolUnifiedPurchaseFormDefault = computed(() => { const schoolUnifiedPurchaseFormDefault = computed(() => {
if (isDeptPurchase.value || dataForm.budget == null) return null; if (isDeptPurchase.value || dataForm.budget == null) return null;
@@ -1064,32 +1065,6 @@ const dataRules = reactive({
], ],
}); });
// 下一步
const nextStep = async () => {
try {
const fieldsToValidate = ['projectName', 'applyDate', 'fundSource', 'budget', 'isCentralized', 'isSpecial', 'categoryCode'];
await formRef.value?.validateField(fieldsToValidate);
// 打印品目编码的值
console.log('品目编码值 (categoryCode):', dataForm.categoryCode);
console.log('品目编码路径 (categoryCodePath):', categoryCodePath.value);
console.log('品目编码完整信息:', {
code: dataForm.categoryCode,
path: categoryCodePath.value,
categoryInfo: getCategoryInfo()
});
currentStep.value = 1;
} catch (error) {
useMessage().warning('请完善第一步信息');
}
};
// 上一步
const prevStep = () => {
currentStep.value = 0;
};
// 取消 // 取消
const handleCancel = () => { const handleCancel = () => {
// 流程嵌入时由流程页处理返回,不 postMessage // 流程嵌入时由流程页处理返回,不 postMessage
@@ -1164,7 +1139,6 @@ async function loadDetail(applyId: string | number) {
agentName: detail.agentName ?? '', agentName: detail.agentName ?? '',
}); });
setCategoryCodePath(); setCategoryCodePath();
currentStep.value = 0;
try { try {
const fileRes = await getApplyFiles(String(applyId)); const fileRes = await getApplyFiles(String(applyId));
const fileList: { id: string; fileType: string; fileTitle?: string }[] = fileRes?.data ?? []; const fileList: { id: string; fileType: string; fileTitle?: string }[] = fileRes?.data ?? [];