查看模式下新增实施采购的信息
This commit is contained in:
@@ -396,6 +396,46 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
<!-- 查看时:实施采购信息 -->
|
||||||
|
<div v-if="isViewMode && (dataForm.implementType || viewImplementPurchaseFiles.length)" class="implement-info-block mb20">
|
||||||
|
<el-divider content-position="left">实施采购信息</el-divider>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :span="12" class="mb16" v-if="dataForm.implementType">
|
||||||
|
<div class="view-label">实施采购方式</div>
|
||||||
|
<div class="view-value">{{ dataForm.implementType === '1' ? '自行组织采购' : dataForm.implementType === '2' ? '委托代理采购' : dataForm.implementType || '—' }}</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12" class="mb16" v-if="dataForm.fileFlowInstId">
|
||||||
|
<div class="view-label">文件审批状态</div>
|
||||||
|
<div class="view-value">
|
||||||
|
<el-tag v-if="dataForm.fileFlowStatus === '-2'" type="info">撤回</el-tag>
|
||||||
|
<el-tag v-else-if="dataForm.fileFlowStatus === '-1'" type="warning">暂存</el-tag>
|
||||||
|
<el-tag v-else-if="dataForm.fileFlowStatus === '0'" type="primary">运行中</el-tag>
|
||||||
|
<el-tag v-else-if="dataForm.fileFlowStatus === '1'" type="success">完成</el-tag>
|
||||||
|
<el-tag v-else-if="dataForm.fileFlowStatus === '2'" type="danger">作废</el-tag>
|
||||||
|
<el-tag v-else-if="dataForm.fileFlowStatus === '3'" type="info">终止</el-tag>
|
||||||
|
<span v-else>—</span>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<div v-if="viewImplementPurchaseFiles.length" class="mb16">
|
||||||
|
<div class="view-label mb8">采购文件</div>
|
||||||
|
<el-table :data="viewImplementPurchaseFiles" border size="small" max-height="240">
|
||||||
|
<el-table-column type="index" label="版本" width="70" align="center">
|
||||||
|
<template #default="{ $index }">V{{ $index + 1 }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="fileTitle" label="文件名" min-width="180" show-overflow-tooltip />
|
||||||
|
<el-table-column label="上传时间" width="165" align="center">
|
||||||
|
<template #default="{ row }">{{ formatImplementFileTime(row.createTime) }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="90" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-button type="primary" link size="small" @click="downloadImplementFile(row)">下载</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<!-- 操作按钮(流程嵌入时隐藏取消/返回,由流程页处理) -->
|
<!-- 操作按钮(流程嵌入时隐藏取消/返回,由流程页处理) -->
|
||||||
@@ -554,7 +594,13 @@ const dataForm = reactive({
|
|||||||
schoolLeaderName: '',
|
schoolLeaderName: '',
|
||||||
// 其他材料(zip压缩包)
|
// 其他材料(zip压缩包)
|
||||||
otherMaterials: '',
|
otherMaterials: '',
|
||||||
|
// 实施采购信息(查看时展示)
|
||||||
|
implementType: '',
|
||||||
|
fileFlowInstId: '',
|
||||||
|
fileFlowStatus: '',
|
||||||
});
|
});
|
||||||
|
/** 查看时展示的采购文件列表(实施采购上传的 type=130) */
|
||||||
|
const viewImplementPurchaseFiles = ref<{ id: string; fileTitle?: string; createTime?: string; remark?: string }[]>([]);
|
||||||
const categoryTreeData = ref<any[]>([]);
|
const categoryTreeData = ref<any[]>([]);
|
||||||
const categoryCodePath = ref<string[]>([]); // 级联选择器的路径数组
|
const categoryCodePath = ref<string[]>([]); // 级联选择器的路径数组
|
||||||
const fundSourceList = ref<any[]>([]);
|
const fundSourceList = ref<any[]>([]);
|
||||||
@@ -1100,6 +1146,9 @@ async function loadDetail(applyId: string | number) {
|
|||||||
schoolLeaderUserId: detail.schoolLeaderUserId ?? '',
|
schoolLeaderUserId: detail.schoolLeaderUserId ?? '',
|
||||||
schoolLeaderName: detail.schoolLeaderName ?? '',
|
schoolLeaderName: detail.schoolLeaderName ?? '',
|
||||||
otherMaterials: detail.otherMaterials ?? '',
|
otherMaterials: detail.otherMaterials ?? '',
|
||||||
|
implementType: detail.implementType ?? '',
|
||||||
|
fileFlowInstId: detail.fileFlowInstId ?? '',
|
||||||
|
fileFlowStatus: detail.fileFlowStatus ?? '',
|
||||||
});
|
});
|
||||||
setCategoryCodePath();
|
setCategoryCodePath();
|
||||||
if (dataForm.budget != null) {
|
if (dataForm.budget != null) {
|
||||||
@@ -1129,9 +1178,20 @@ async function loadDetail(applyId: string | number) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
// 查看时展示实施采购的采购文件列表(type=130)
|
||||||
|
const purchaseFiles = fileList.filter((f: any) => String(f.fileType) === '130').map((f: any) => ({
|
||||||
|
id: f.id,
|
||||||
|
fileTitle: f.fileTitle || f.file_title || '采购文件',
|
||||||
|
createTime: f.createTime || f.create_time,
|
||||||
|
remark: f.remark,
|
||||||
|
}));
|
||||||
|
viewImplementPurchaseFiles.value = purchaseFiles;
|
||||||
|
} else {
|
||||||
|
viewImplementPurchaseFiles.value = [];
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('加载采购申请附件失败', err);
|
console.error('加载采购申请附件失败', err);
|
||||||
|
viewImplementPurchaseFiles.value = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -1140,6 +1200,21 @@ async function loadDetail(applyId: string | number) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function formatImplementFileTime(t?: string) {
|
||||||
|
if (!t) return '—';
|
||||||
|
const d = new Date(t);
|
||||||
|
return isNaN(d.getTime()) ? t : d.toLocaleString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' });
|
||||||
|
}
|
||||||
|
|
||||||
|
function downloadImplementFile(file: { remark?: string; fileTitle?: string }) {
|
||||||
|
if (!file?.remark) {
|
||||||
|
useMessage().warning('无法获取文件路径');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const url = `/purchase/purchasingfiles/download?fileName=${encodeURIComponent(file.remark)}&fileTitle=${encodeURIComponent(file.fileTitle || '采购文件')}`;
|
||||||
|
other.downBlobFile(url, {}, file.fileTitle || '采购文件');
|
||||||
|
}
|
||||||
|
|
||||||
/** 流程嵌入时提供给 orderVue.currElTabIsView 的 methods(只读/禁用提交) */
|
/** 流程嵌入时提供给 orderVue.currElTabIsView 的 methods(只读/禁用提交) */
|
||||||
const flowMethods = {
|
const flowMethods = {
|
||||||
disableForm(disabled?: boolean) {
|
disableForm(disabled?: boolean) {
|
||||||
@@ -1827,6 +1902,9 @@ onMounted(async () => {
|
|||||||
.mb16 {
|
.mb16 {
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
|
.mb8 {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
.mb10 {
|
.mb10 {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
@@ -1842,6 +1920,18 @@ onMounted(async () => {
|
|||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.implement-info-block {
|
||||||
|
.view-label {
|
||||||
|
font-size: 14px;
|
||||||
|
color: var(--el-text-color-secondary);
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
.view-value {
|
||||||
|
font-size: 14px;
|
||||||
|
color: var(--el-text-color-primary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* 紧凑表单样式 */
|
/* 紧凑表单样式 */
|
||||||
.compact-form {
|
.compact-form {
|
||||||
:deep(.el-form-item) {
|
:deep(.el-form-item) {
|
||||||
|
|||||||
Reference in New Issue
Block a user