<script setup lang="ts"> import { computed, ref, watchEffect } from "vue"; import { useRoute, useRouter } from "vue-router"; import { httpInfo } from "/@/api/purchase/orderRecord"; import InitiateAudit from "./components/approval-process/Initiate-audit.vue"; import BusinessReview from "./components/approval-process/business-review.vue"; import FinancialAudit from "./components/approval-process/financial-audit.vue"; import CreateStatement from "./components/create-statement/index.vue"; import StatementDetail from "./components/statement-detail/index.vue"; import { httpStatus } from "/@/api/purchase/orderRecord"; import { useAsync, usePermission } from "/@/hooks"; const { query } = useRoute(); const { push } = useRouter(); const payNo = computed(() => query.id as string); const isCreate = computed(() => !payNo.value); //展开所有折叠面板 const collapses = ref(["1", "2", "3", "4"]); //对账单状态 const status = computed(() => Number(statementDetail.value.status)); const { run: statementStatusRun } = useAsync({ success: () => push("/purchase/orderRecord") }); const { data: statementDetail, run: statementDetailRun } = useAsync< Record<string, string> >({ initalData: {} }); const requesetStatementDetail = () => { statementDetailRun( httpInfo({ payNo: payNo.value }) ); }; //更改付款单审核状态 const requesetChangeStatus = otherParams => { statementStatusRun(httpStatus({ payNo: payNo.value, ...otherParams })); }; const { permission } = usePermission({ pageName: "orderRecordDetail" }); //初始化对账单详情 watchEffect(() => payNo.value && requesetStatementDetail()); </script> <template> <div class="porde__content" bg-white> <div v-show="permission.detail"> <!-- 创建 --> <CreateStatement v-if="isCreate" /> <!-- 详情 --> <ElTabs v-else> <ElTabPane label="订单对账详情"> <ElCollapse v-model="collapses"> <!-- 详情 --> <ElCollapseItem title="订单对账详情" name="1"> <StatementDetail :statement-detail="statementDetail" /> </ElCollapseItem> <!-- 审批流程 --> <ElCollapseItem name="2" v-if="status === 0" title="发起审核流程"> <InitiateAudit @change-status="requesetChangeStatus" /> </ElCollapseItem> <ElCollapseItem name="3" v-if="status === 1" title="业务审核"> <BusinessReview @change-status="requesetChangeStatus" /> </ElCollapseItem> <ElCollapseItem name="4" v-if="status === 2" title="财务审核"> <FinancialAudit @change-status="requesetChangeStatus" /> </ElCollapseItem> </ElCollapse> </ElTabPane> <ElTabPane label="审批记录" /> </ElTabs> </div> <NoAuth v-show="!permission.detail" /> </div> </template> <style lang="scss"> .porde__content { padding: 20px !important; } </style>