| | |
| | | <script setup lang="ts"> |
| | | import { ref, reactive, onMounted, computed, PropType } from "vue"; |
| | | <script setup lang="tsx"> |
| | | import { ref, reactive, onMounted, computed, PropType, h } from "vue"; |
| | | import { useRenderIcon } from "@/components/ReIcon/src/hooks"; |
| | | import { useDept } from "./utils/hook"; |
| | | import { FormItemProps } from "./utils/types"; |
| | | |
| | | import { useDetail } from "./utils/detail"; |
| | | import { getTenderOrderDetail } from "@/api/item/index"; |
| | | const isLoading = ref(false); |
| | | import { addDialog } from "@/components/ReDialog"; |
| | | import pdfPreview from "@/views/system/component/pdfPreview.vue"; |
| | | import { deviceDetection } from "@pureadmin/utils"; |
| | | interface Emits { |
| | | (e: "backListPage"): void; |
| | | } |
| | | const emit = defineEmits<Emits>(); |
| | | const props = defineProps({ |
| | | nowInfo: Object as PropType<FormItemProps> |
| | | nowID: null |
| | | }); |
| | | import Delete from "~icons/ep/delete"; |
| | | import EditPen from "~icons/ep/edit-pen"; |
| | | import IconParkSolidBack from "~icons/icon-park-solid/back"; |
| | | |
| | | const { |
| | | state, |
| | | loading, |
| | | selectedNum, |
| | | dataList, |
| | | onSearch, |
| | | resetForm, |
| | | openDialog, |
| | | handleDelete, |
| | | handleSelectionChange, |
| | | handleSizeChange, |
| | | handleCurrentChange, |
| | | pagination, |
| | | checkboxAsRadio, |
| | | onSelectionCancel, |
| | | onbatchDel |
| | | } = useDept(ref({})); |
| | | const { openDialog } = useDept(ref({})); |
| | | const { openUploadDialog, state, changeDialog } = useDetail(); |
| | | defineOptions({ |
| | | name: "itemdetail" |
| | | }); |
| | | onMounted(() => { |
| | | console.log(props.nowInfo); |
| | | onMounted(async () => { |
| | | let res = await getTenderOrderDetail({ id: props.nowID }); |
| | | state.nowInfo = res.result; |
| | | }); |
| | | const backListPage = () => { |
| | | emit("backListPage"); |
| | | }; |
| | | const previewPdf = pdfUrl => { |
| | | addDialog({ |
| | | title: `预览pdf`, |
| | | props: {}, |
| | | width: "60%", |
| | | draggable: true, |
| | | fullscreen: deviceDetection(), |
| | | fullscreenIcon: true, |
| | | sureBtnLoading: true, |
| | | closeOnClickModal: false, |
| | | contentRenderer: () => h(pdfPreview, { pdfSrc: pdfUrl }) |
| | | // jsx 语法 (注意在.vue文件启用jsx语法,需要在script开启lang="tsx") |
| | | }); |
| | | }; |
| | | </script> |
| | | |
| | |
| | | <el-card> |
| | | <template v-slot:header> |
| | | <div class="flex justify-between"> |
| | | <div>{{ nowInfo.projectName }}</div> |
| | | <div>{{ state.nowInfo.projectName }}</div> |
| | | <div> |
| | | <el-button |
| | | class="reset-margin" |
| | | link |
| | | type="primary" |
| | | :icon="useRenderIcon(EditPen)" |
| | | @click="openDialog('修改', nowInfo)" |
| | | /> |
| | | <el-button |
| | | class="reset-margin" |
| | | link |
| | | type="primary" |
| | | :icon="useRenderIcon(Delete)" |
| | | @click="openDialog('修改', nowInfo)" |
| | | @click="openDialog('修改', state.nowInfo)" |
| | | /> |
| | | <el-button |
| | | class="reset-margin" |
| | |
| | | </div> |
| | | </template> |
| | | <div> |
| | | <el-descriptions class="margin-top" :column="3" :size="size" border> |
| | | <el-descriptions |
| | | class="margin-top" |
| | | :column="3" |
| | | border |
| | | label-width="120" |
| | | > |
| | | <el-descriptions-item label="项目编号"> |
| | | {{ nowInfo.projectCode }} |
| | | {{ state.nowInfo.projectCode }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="行业品目" |
| | | >18100000000</el-descriptions-item |
| | | > |
| | | <el-descriptions-item label="行业品目"> |
| | | {{ state.nowInfo.hangyepinmuName }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="采购方式"> |
| | | {{ nowInfo.caigoufangshiName }} |
| | | {{ state.nowInfo.caigoufangshiName }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="联合体投标"> |
| | | {{ nowInfo.lianhetitoubiao }} |
| | | {{ state.nowInfo.lianhetitoubiao }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="Remarks"> |
| | | <el-tag size="small">School</el-tag> |
| | | <el-descriptions-item label="开标方式"> |
| | | {{ state.nowInfo.kaibiaofangshi }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="Address" /> |
| | | </el-descriptions> |
| | | </div> |
| | | </el-card> |
| | | <div class="mt-4.5"> |
| | | <el-card> |
| | | <el-tabs |
| | | tab-position="left" |
| | | style="height: calc(100vh - 380px)" |
| | | class="demo-tabs" |
| | | type="border-card" |
| | | > |
| | | <el-tab-pane label="公告文件上传"> |
| | | <h4>公告文件上传</h4> |
| | | <el-divider /> |
| | | <el-scrollbar height="calc(100vh - 430px)"> |
| | | <div> |
| | | <el-form label-width="auto" style="max-width: 1000px"> |
| | | <el-form-item label="项目信息:"> |
| | | <span class="mr-4"> |
| | | 投标报名开始时间:{{ |
| | | state.nowInfo.toubiaoStartDate ?? "暂无" |
| | | }} |
| | | </span> |
| | | <span class="mr-4"> |
| | | 投标报名截止时间: |
| | | {{ state.nowInfo.toubiaoEndDate ?? "暂无" }} |
| | | </span> |
| | | <span class="mr-4"> |
| | | 开标时间:{{ state.nowInfo.kaibiaoDate ?? "暂无" }} |
| | | </span> |
| | | </el-form-item> |
| | | <el-form-item label="上传公告:"> |
| | | <el-button |
| | | :disabled="!!state.nowInfo.zhaobiaowenjian" |
| | | type="primary" |
| | | plain |
| | | size="small" |
| | | @click="openUploadDialog('上传', state.nowInfo)" |
| | | > |
| | | 上传公告 |
| | | </el-button> |
| | | <el-button |
| | | v-if="state.nowInfo.zhaobiaowenjian" |
| | | type="primary" |
| | | plain |
| | | size="small" |
| | | @click="openUploadDialog('上传变更', state.nowInfo)" |
| | | > |
| | | 上传变更公告 |
| | | </el-button> |
| | | </el-form-item> |
| | | <el-form-item v-if="state.nowInfo.zhaobiaowenjian" label=" "> |
| | | <div class="border-1 w-[100%] rounded-md p-3"> |
| | | <p>{{ state.nowInfo.projectName }}</p> |
| | | <p>上传时间:2025-8-12 13:41:00</p> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | size="small" |
| | | @click="previewPdf(state.nowInfo.zhaobiaowenjian)" |
| | | > |
| | | 点击预览 |
| | | </el-button> |
| | | <el-button |
| | | v-if="state.nowInfo?.changeOrder" |
| | | type="primary" |
| | | plain |
| | | size="small" |
| | | @click=" |
| | | previewPdf(state.nowInfo.changeOrder.biangengwenjian) |
| | | " |
| | | > |
| | | 点击预览变更公告 |
| | | </el-button> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | size="small" |
| | | @click="changeDialog('上传变更', state.nowInfo)" |
| | | > |
| | | 修改标题 |
| | | </el-button> |
| | | </div> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="磋商文件:"> |
| | | <el-button type="primary" plain size="small"> |
| | | 上传磋商文件 |
| | | </el-button> |
| | | </el-form-item> |
| | | <el-form-item label=" "> |
| | | <div class="border-1 w-[100%] rounded-md p-3 pl-3"> |
| | | <p>磋商文件名称</p> |
| | | <p>发布时间:2025-8-12 13:41:00</p> |
| | | <el-button type="primary" plain size="small"> |
| | | 点击预览 |
| | | </el-button> |
| | | <el-button type="primary" plain size="small"> |
| | | 点击下载 |
| | | </el-button> |
| | | </div> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="澄清与答疑文件:"> |
| | | <el-button type="primary" plain size="small"> |
| | | 文件管理 |
| | | </el-button> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | </div> |
| | | <!-- <el-row :gutter="10" align="right"> |
| | | <el-col :span="3"> |
| | | <el-text size="large"> 项目信息: </el-text> |
| | | </el-col> |
| | | <el-col :span="20"> |
| | | <el-button type="primary" plain>上传公告</el-button> |
| | | <el-button type="primary" plain>上传变更公告</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10" align="right"> |
| | | <el-col :span="3"> |
| | | <el-text size="large"> 公告上传: </el-text> |
| | | </el-col> |
| | | <el-col :span="20"> |
| | | <el-button type="primary" plain>上传公告</el-button> |
| | | <el-button type="primary" plain>上传变更公告</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10" align="right"> |
| | | <el-col :span="3"> |
| | | <el-text size="large"> 磋商文件: </el-text> |
| | | </el-col> |
| | | <el-col :span="20"> |
| | | <el-button type="primary" plain>上传磋商文件</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10" align="right"> |
| | | <el-col :span="3"> |
| | | <el-text size="large"> 澄清与答疑文件: </el-text> |
| | | </el-col> |
| | | <el-col :span="20"> |
| | | <el-button type="primary" plain>文件管理</el-button> |
| | | </el-col> |
| | | </el-row> --> |
| | | </el-scrollbar> |
| | | </el-tab-pane> |
| | | <!-- <el-tab-pane label="开评标管理">开评标管理</el-tab-pane> --> |
| | | <el-tab-pane label="中标公示">中标公示</el-tab-pane> |
| | | <el-tab-pane label="项目完结">项目完结</el-tab-pane> |
| | | </el-tabs> |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped></style> |
| | | <style lang="scss" scoped> |
| | | .el-divider--horizontal { |
| | | margin: 11px 0; |
| | | } |
| | | </style> |