Kaynağa Gözat

修复DataTableTree部分bug,优化空数据显示

Yue 2 yıl önce
ebeveyn
işleme
6785f117d6

+ 2 - 0
src/components/Table/VbDataTable.vue

@@ -44,6 +44,7 @@ const props = withDefaults(
     isTree?: boolean
     expandDepth?: number
     intervalLeft?: number
+    iconField?: string
     keyField?: string
     parentField?: string
     childrenField?: string
@@ -273,6 +274,7 @@ defineExpose({ search })
       :row-span-suffix="rowSpanSuffix"
       :is-tree="isTree"
       :interval-left="intervalLeft"
+      :icon-field="iconField"
       :key-field="keyField"
       :parent-field="parentField"
       :children-field="childrenField"

+ 3 - 0
src/components/Table/VbTreeTable.vue

@@ -7,6 +7,7 @@ const props = withDefaults(
   defineProps<{
     expandDepth?: number
     intervalLeft?: number
+    iconField?: string
     keyField?: string
     parentField?: string
     childrenField?: string
@@ -102,10 +103,12 @@ defineExpose({ search })
     :isTree="true"
     :header="header"
     :interval-left="intervalLeft"
+    :icon-field="iconField"
     :key-field="keyField"
     :children-field="childrenField"
     :parent-field="parentField"
     :expand-depth="expandDepth"
+    :data="data"
     :url="url"
     :configs="configs"
     :method="method"

+ 8 - 2
src/components/Table/table-partials/table-content/TableContent.vue

@@ -6,6 +6,7 @@ import TableFixed from "@/components/Table/table-partials/table-content/table-fi
 import TableFixedRight from "@/components/Table/table-partials/table-content/table-fixed/TableRightFixed.vue"
 import Loading from "@/components/Table/table-partials/Loading.vue"
 import type { Sort, Header, Scroll } from "@/components/Table/table-partials/models"
+import { getAssetPath } from "@/core/helpers/assets"
 const props = withDefaults(
   defineProps<{
     header: Array<Header>
@@ -32,6 +33,7 @@ const props = withDefaults(
     isTree?: boolean
     expandDepth?: number
     intervalLeft?: number
+    iconField?: string
     keyField?: string
     parentField?: string
     childrenField?: string
@@ -163,6 +165,7 @@ defineExpose({
       :td-tr-class="tdTrClass"
       :is-tree="isTree"
       :interval-left="intervalLeft"
+      :icon-field="iconField"
       :key-field="keyField"
       :children-field="childrenField"
       :parent-field="parentField"
@@ -216,6 +219,7 @@ defineExpose({
           :row-span-suffix="rowSpanSuffix"
           :is-tree="isTree"
           :interval-left="intervalLeft"
+          :icon-field="keyField"
           :key-field="keyField"
           :parent-field="parentField"
           :children-field="childrenField"
@@ -228,8 +232,9 @@ defineExpose({
         <tr v-if="loading" style="height: 50px"></tr>
       </table>
       <template v-if="data.length == 0 && !loading">
-        <div class="text-center text-primary mt-10 mb-5 fs-4">
-          {{ emptyTableText }}
+        <div class="h-100px d-flex justify-content-center flex-column align-items-center">
+          <img class="mb-2" :src="getAssetPath('media/table/empty.svg')" />
+          <span class="text-gray-500">{{ emptyTableText }}</span>
         </div>
       </template>
       <Loading v-if="loading" />
@@ -252,6 +257,7 @@ defineExpose({
       :row-span-suffix="rowSpanSuffix"
       :is-tree="isTree"
       :interval-left="intervalLeft"
+      :icon-field="keyField"
       :key-field="keyField"
       :parent-field="parentField"
       :children-field="childrenField"

+ 2 - 0
src/components/Table/table-partials/table-content/table-body/TableBodyRow.vue

@@ -19,6 +19,7 @@ const props = withDefaults(
     isTree?: boolean
     expandDepth?: number
     intervalLeft?: number
+    iconField?: string
     keyField?: string
     parentField?: string
     childrenField?: string
@@ -130,6 +131,7 @@ onMounted(init)
           :row="row"
           :header="header"
           :interval-left="intervalLeft"
+          :icon-field="iconField"
           :key-field="keyField"
           :parent-field="parentField"
           :children-field="childrenField"

+ 1 - 1
src/components/Table/table-partials/table-content/table-body/TableTreeRow.vue

@@ -158,7 +158,7 @@ onMounted(() => {
       :children-field="childrenField"
     >
       <template v-for="(_, name) in $slots" #[name]="">
-        <slot :name="name" :row="child" />
+        <slot :name="name" :row="child">{{ child }}</slot>
       </template>
     </TableTreeRow>
   </template>

+ 2 - 0
src/components/Table/table-partials/table-content/table-fixed/TableFixed.vue

@@ -27,6 +27,7 @@ const props = withDefaults(
     isTree?: boolean
     expandDepth?: number
     intervalLeft?: number
+    iconField?: string
     keyField?: string
     parentField?: string
     childrenField?: string
@@ -159,6 +160,7 @@ onBeforeUnmount(() => {
         :row-span-suffix="rowSpanSuffix"
         :is-tree="isTree"
         :interval-left="intervalLeft"
+        :icon-field="iconField"
         :key-field="keyField"
         :children-field="childrenField"
         :parent-field="parentField"

+ 2 - 0
src/components/Table/table-partials/table-content/table-fixed/TableRightFixed.vue

@@ -22,6 +22,7 @@ const props = withDefaults(
     isTree?: boolean
     expandDepth?: number
     intervalLeft?: number
+    iconField?: string
     keyField?: string
     parentField?: string
     childrenField?: string
@@ -108,6 +109,7 @@ onBeforeUnmount(() => {
         :row-span-suffix="rowSpanSuffix"
         :is-tree="isTree"
         :interval-left="intervalLeft"
+        :icon-field="iconField"
         :key-field="keyField"
         :children-field="childrenField"
         :parent-field="parentField"