index.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <script setup lang="ts">
  2. import { computed, onMounted, ref, watchEffect } from "vue";
  3. import { useRoute, useRouter } from "vue-router";
  4. import { useResponseHandle } from "/@/hooks";
  5. import { httpDetail, httpStatus } from "/@/api/InvoiceSales/capitalPool";
  6. import { httpInfo } from "/@/api/InvoiceSales/capitalClaim";
  7. import BasicDescriptions from "/@/components/BasicDescriptions";
  8. import { approval_process } from "../approval-process";
  9. import { CAPITAL_COLUMNS } from "/@/utils/details/tragelog";
  10. import PaymentReceipt from "../basic-claim/receipt-payment.vue";
  11. import { SALE_COLUMNS } from "/@/utils/details/sale";
  12. const { query } = useRoute();
  13. const { push } = useRouter();
  14. const responseHandle = useResponseHandle();
  15. const capitalDetail = ref<any>({});
  16. const tradeDetail = ref<any>({});
  17. const collapses = ref(["1", "2", "3", "4"]);
  18. const logNo = computed(() => query.id);
  19. //当前的审核流程
  20. const currentProcess = computed(() => {
  21. const { status } = capitalDetail.value;
  22. return approval_process[status];
  23. });
  24. //资金认领详情
  25. async function requesetCapitalDetail() {
  26. const { code, message, data } = await httpDetail({
  27. logNo: logNo.value
  28. });
  29. responseHandle({
  30. code,
  31. message,
  32. handler: () => (capitalDetail.value = data)
  33. });
  34. }
  35. //资金详情
  36. async function requesetTradeDetail() {
  37. const { data, message, code } = await httpInfo({
  38. tradNo: tradeNo.value
  39. });
  40. responseHandle({
  41. code,
  42. message,
  43. handler: () => (tradeDetail.value = data)
  44. });
  45. }
  46. const tradeNo = computed(() => {
  47. const { tradNo } = capitalDetail.value;
  48. return tradNo;
  49. });
  50. //资金认证状态
  51. async function requesetCapitalStatus(otherParams) {
  52. const { code, message } = await httpStatus({
  53. logNo: logNo.value,
  54. ...otherParams
  55. });
  56. responseHandle({
  57. code,
  58. message,
  59. handler: () => push("/InvoiceSales/capitalClaim")
  60. });
  61. }
  62. //初始化数据
  63. function initalData() {
  64. if (!logNo.value) return;
  65. requesetCapitalDetail();
  66. }
  67. onMounted(() => initalData());
  68. watchEffect(() => tradeNo.value && requesetTradeDetail());
  69. </script>
  70. <template>
  71. <div class="capital__content" bg-white>
  72. <ElTabs>
  73. <ElTabPane label="详情">
  74. <ElCollapse v-model="collapses">
  75. <ElCollapseItem title="资金详情" name="1">
  76. <PaymentReceipt :trade-info="tradeDetail" />
  77. </ElCollapseItem>
  78. <!-- 关联订单 -->
  79. <ElCollapseItem title="关联订单" name="2">
  80. <BasicDescriptions
  81. :columns="SALE_COLUMNS"
  82. :data="capitalDetail.orderinfo ? capitalDetail.orderinfo : {}"
  83. :col-number="2"
  84. />
  85. </ElCollapseItem>
  86. <!-- 详情 -->
  87. <ElCollapseItem title="认领资金详情" name="3">
  88. <BasicDescriptions
  89. :columns="CAPITAL_COLUMNS"
  90. :data="capitalDetail"
  91. :col-number="2"
  92. />
  93. </ElCollapseItem>
  94. <!-- 审核 -->
  95. <ElCollapseItem
  96. name="4"
  97. v-if="currentProcess"
  98. :title="currentProcess.title"
  99. >
  100. <component
  101. :is="currentProcess.component"
  102. @change-status="requesetCapitalStatus"
  103. />
  104. </ElCollapseItem>
  105. </ElCollapse>
  106. </ElTabPane>
  107. <ElTabPane label="审批记录" />
  108. </ElTabs>
  109. </div>
  110. </template>