Browse Source

feat: ApiTree add afterFetch props,add ApiTree demo

JinMao 3 năm trước cách đây
mục cha
commit
3b86435766

+ 5 - 1
src/components/Form/src/components/ApiTree.vue

@@ -24,6 +24,7 @@
       params: { type: Object },
       immediate: { type: Boolean, default: true },
       resultField: propTypes.string.def(''),
+      afterFetch: { type: Function as PropType<Fn> },
     },
     emits: ['options-change', 'change'],
     setup(props, { attrs, emit }) {
@@ -61,7 +62,7 @@
       });
 
       async function fetch() {
-        const { api } = props;
+        const { api, afterFetch } = props;
         if (!api || !isFunction(api)) return;
         loading.value = true;
         treeData.value = [];
@@ -71,6 +72,9 @@
         } catch (e) {
           console.error(e);
         }
+        if (afterFetch && isFunction(afterFetch)) {
+          result = afterFetch(result);
+        }
         loading.value = false;
         if (!result) return;
         if (!isArray(result)) {

+ 21 - 0
src/views/demo/form/index.vue

@@ -461,6 +461,27 @@
       },
     },
     {
+      field: 'field36',
+      component: 'ApiTree',
+      label: '远程Tree',
+      helpMessage: ['ApiTree组件', '使用接口提供的数据生成选项'],
+      required: true,
+      componentProps: {
+        api: treeOptionsListApi,
+        params: {
+          count: 2,
+        },
+        afterFetch: (v) => {
+          //do something
+          return v;
+        },
+        resultField: 'list',
+      },
+      colProps: {
+        span: 8,
+      },
+    },
+    {
       field: 'divider-linked',
       component: 'Divider',
       label: '字段联动',