Browse Source

fix:台账单空数据不显示

snow 2 years ago
parent
commit
e8fa28a7a5

+ 5 - 3
src/components/BasicDescriptions/src/basic-descriptions.tsx

@@ -1,4 +1,4 @@
-import { ElDescriptions, ElDescriptionsItem } from "element-plus";
+import { ElDescriptions, ElDescriptionsItem, ElEmpty } from "element-plus";
 import { defineComponent } from "vue";
 import { basicDescriptionsProps } from "./types";
 
@@ -7,9 +7,9 @@ const BasicDescriptions = defineComponent({
   props: basicDescriptionsProps,
   setup(props, { slots }) {
     return () => {
-      const { title, colNumber, columns, data, labelWidth } = props;
+      const { title, colNumber, columns, data, labelWidth, show } = props;
 
-      return (
+      return show ? (
         <ElDescriptions title={title} border column={colNumber} size="small">
           {columns.map(col => (
             <ElDescriptionsItem
@@ -24,6 +24,8 @@ const BasicDescriptions = defineComponent({
 
           {slots.custom && slots.custom(props.data)}
         </ElDescriptions>
+      ) : (
+        <ElEmpty description="暂无数据"></ElEmpty>
       );
     };
   }

+ 4 - 0
src/components/BasicDescriptions/src/types.ts

@@ -15,6 +15,10 @@ export const basicDescriptionsProps = {
   },
   labelWidth: {
     type: String
+  },
+  show: {
+    type: Boolean,
+    default: true
   }
 };
 

+ 9 - 4
src/views/search/standBook/config/detail.ts

@@ -15,6 +15,7 @@ export function useDetail(props: DetailProps) {
   const responseHandle = useResponseHandle();
   const defaultRef = ref<InstanceType<typeof BasicDescriptions>>(null);
   const hidden = ref(false);
+  const code = ref("");
   const emit = getCurrentInstance().emit;
 
   const getOffsetTop = () => {
@@ -27,7 +28,7 @@ export function useDetail(props: DetailProps) {
   async function requesetDetail() {
     const { api, prop, value } = props;
     const {
-      code,
+      code: _code,
       message,
       data: _data
     } = await api({
@@ -35,9 +36,12 @@ export function useDetail(props: DetailProps) {
     });
 
     responseHandle({
-      code,
+      code: _code,
       message,
-      handler: () => (data.value = _data)
+      handler: () => {
+        data.value = _data;
+        code.value = String(_code);
+      }
     });
   }
 
@@ -53,12 +57,13 @@ export function useDetail(props: DetailProps) {
         };
 
         nextTick(() => emit("map-offset-top", mapOffsetTop));
-      }, 100)
+      }, 300)
   );
 
   return {
     defaultRef,
     hidden,
+    code,
     data
   };
 }

+ 2 - 1
src/views/search/standBook/details/inv-open.vue

@@ -7,11 +7,12 @@ import BasicDescriptions from "/@/components/BasicDescriptions";
 const props = defineProps(detailProps);
 defineEmits(["map-offset-top"]);
 
-const { data, defaultRef } = useDetail(props);
+const { data, code, defaultRef } = useDetail(props);
 </script>
 
 <template>
   <BasicDescriptions
+    :show="code === '0'"
     ref="defaultRef"
     :data="data"
     :columns="INV_OPEN_COLUMNS"

+ 2 - 1
src/views/search/standBook/details/inv-return.vue

@@ -7,11 +7,12 @@ import BasicDescriptions from "/@/components/BasicDescriptions";
 const props = defineProps(detailProps);
 defineEmits(["map-offset-top"]);
 
-const { data, defaultRef } = useDetail(props);
+const { data, code, defaultRef } = useDetail(props);
 </script>
 
 <template>
   <BasicDescriptions
+    :show="code === '0'"
     ref="defaultRef"
     :data="data"
     :columns="INV_RETURN_COLUMNS"

+ 2 - 1
src/views/search/standBook/details/payment.vue

@@ -7,11 +7,12 @@ import BasicDescriptions from "/@/components/BasicDescriptions";
 const props = defineProps(detailProps);
 defineEmits(["map-offset-top"]);
 
-const { data, defaultRef } = useDetail(props);
+const { data, code, defaultRef } = useDetail(props);
 </script>
 
 <template>
   <BasicDescriptions
+    :show="code === '0'"
     ref="defaultRef"
     :data="data"
     :columns="purchpay_columns"

+ 2 - 1
src/views/search/standBook/details/purchase.vue

@@ -7,11 +7,12 @@ import BasicDescriptions from "/@/components/BasicDescriptions";
 const props = defineProps(detailProps);
 defineEmits(["map-offset-top"]);
 
-const { data, defaultRef } = useDetail(props);
+const { data, code, defaultRef } = useDetail(props);
 </script>
 
 <template>
   <BasicDescriptions
+    :show="code === '0'"
     ref="defaultRef"
     :data="data"
     :columns="PURCHAS_COLUMNS"

+ 2 - 1
src/views/search/standBook/details/reconciliation.vue

@@ -8,11 +8,12 @@ import { send_status_list } from "/@/utils/status";
 const props = defineProps(detailProps);
 defineEmits(["map-offset-top"]);
 
-const { data, defaultRef } = useDetail(props);
+const { data, code, defaultRef } = useDetail(props);
 </script>
 
 <template>
   <BasicDescriptions
+    :show="code === '0'"
     ref="defaultRef"
     :data="data"
     :columns="RECONCILIATION_COLUMNS"

+ 2 - 1
src/views/search/standBook/details/refund.vue

@@ -7,11 +7,12 @@ import BasicDescriptions from "/@/components/BasicDescriptions";
 const props = defineProps(detailProps);
 defineEmits(["map-offset-top"]);
 
-const { data, defaultRef } = useDetail(props);
+const { data, code, defaultRef } = useDetail(props);
 </script>
 
 <template>
   <BasicDescriptions
+    :show="code === '0'"
     ref="defaultRef"
     :data="data"
     :columns="SALE_COLUMNS"

+ 2 - 1
src/views/search/standBook/details/sale.vue

@@ -7,11 +7,12 @@ import BasicDescriptions from "/@/components/BasicDescriptions";
 const props = defineProps(detailProps);
 defineEmits(["map-offset-top"]);
 
-const { data, defaultRef } = useDetail(props);
+const { data, code, defaultRef } = useDetail(props);
 </script>
 
 <template>
   <BasicDescriptions
+    :show="code === '0'"
     ref="defaultRef"
     :data="data"
     :columns="SALE_COLUMNS"

+ 2 - 1
src/views/search/standBook/details/ticket-return.vue

@@ -7,11 +7,12 @@ import BasicDescriptions from "/@/components/BasicDescriptions";
 const props = defineProps(detailProps);
 defineEmits(["map-offset-top"]);
 
-const { data, defaultRef } = useDetail(props);
+const { data, code, defaultRef } = useDetail(props);
 </script>
 
 <template>
   <BasicDescriptions
+    :show="code === '0'"
     ref="defaultRef"
     :data="data"
     :columns="TICKET_RETURN_COLUMNS"

+ 2 - 1
src/views/search/standBook/details/trade.vue

@@ -7,11 +7,12 @@ import { detailProps } from "../types";
 const props = defineProps(detailProps);
 defineEmits(["map-offset-top"]);
 
-const { data, defaultRef } = useDetail(props);
+const { data, code, defaultRef } = useDetail(props);
 </script>
 
 <template>
   <BasicDescriptions
+    :show="code === '0'"
     ref="defaultRef"
     :data="data"
     :columns="TRADE_COLUMNS"

+ 2 - 1
src/views/search/standBook/details/tradelog.vue

@@ -7,11 +7,12 @@ import { detailProps } from "../types";
 const props = defineProps(detailProps);
 defineEmits(["map-offset-top"]);
 
-const { data, defaultRef } = useDetail(props);
+const { data, code, defaultRef } = useDetail(props);
 </script>
 
 <template>
   <BasicDescriptions
+    :show="code === '0'"
     ref="defaultRef"
     :data="data"
     :columns="CAPITAL_COLUMNS"