detail.vue 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <script setup lang="ts">
  2. import { computed, ref, watchEffect } from "vue";
  3. import { useRoute, useRouter } from "vue-router";
  4. import { httpInfo } from "/@/api/purchase/orderRecord";
  5. import InitiateAudit from "./components/approval-process/Initiate-audit.vue";
  6. import BusinessReview from "./components/approval-process/business-review.vue";
  7. import FinancialAudit from "./components/approval-process/financial-audit.vue";
  8. import CreateStatement from "./components/create-statement/index.vue";
  9. import StatementDetail from "./components/statement-detail/index.vue";
  10. import { httpStatus } from "/@/api/purchase/orderRecord";
  11. import { useAsync, usePermission } from "/@/hooks";
  12. const { query } = useRoute();
  13. const { push } = useRouter();
  14. const payNo = computed(() => query.id as string);
  15. const isCreate = computed(() => !payNo.value);
  16. //展开所有折叠面板
  17. const collapses = ref(["1", "2", "3", "4"]);
  18. //对账单状态
  19. const status = computed(() => Number(statementDetail.value.status));
  20. const { run: statementStatusRun } = useAsync({
  21. success: () => push("/purchase/orderRecord")
  22. });
  23. const { data: statementDetail, run: statementDetailRun } = useAsync<
  24. Record<string, string>
  25. >({
  26. initalData: {}
  27. });
  28. const requesetStatementDetail = () => {
  29. statementDetailRun(
  30. httpInfo({
  31. payNo: payNo.value
  32. })
  33. );
  34. };
  35. //更改付款单审核状态
  36. const requesetChangeStatus = otherParams => {
  37. statementStatusRun(httpStatus({ payNo: payNo.value, ...otherParams }));
  38. };
  39. const { permission } = usePermission({
  40. pageName: "orderRecordDetail"
  41. });
  42. //初始化对账单详情
  43. watchEffect(() => payNo.value && requesetStatementDetail());
  44. </script>
  45. <template>
  46. <div class="porde__content" bg-white>
  47. <div v-show="permission.detail">
  48. <!-- 创建 -->
  49. <CreateStatement v-if="isCreate" />
  50. <!-- 详情 -->
  51. <ElTabs v-else>
  52. <ElTabPane label="订单对账详情">
  53. <ElCollapse v-model="collapses">
  54. <!-- 详情 -->
  55. <ElCollapseItem title="订单对账详情" name="1">
  56. <StatementDetail :statement-detail="statementDetail" />
  57. </ElCollapseItem>
  58. <!-- 审批流程 -->
  59. <ElCollapseItem name="2" v-if="status === 0" title="发起审核流程">
  60. <InitiateAudit @change-status="requesetChangeStatus" />
  61. </ElCollapseItem>
  62. <ElCollapseItem name="3" v-if="status === 1" title="业务审核">
  63. <BusinessReview @change-status="requesetChangeStatus" />
  64. </ElCollapseItem>
  65. <ElCollapseItem name="4" v-if="status === 2" title="财务审核">
  66. <FinancialAudit @change-status="requesetChangeStatus" />
  67. </ElCollapseItem>
  68. </ElCollapse>
  69. </ElTabPane>
  70. <ElTabPane label="审批记录" />
  71. </ElTabs>
  72. </div>
  73. <NoAuth v-show="!permission.detail" />
  74. </div>
  75. </template>
  76. <style lang="scss">
  77. .porde__content {
  78. padding: 20px !important;
  79. }
  80. </style>