From 0b60ba74f0205a24ba7afb88457808ca8dcc4390 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=83=A1=E5=B0=8F=E6=A0=B9?= <hxg@haomo-studio.com>
Date: Mon, 5 Feb 2018 21:35:43 +0100
Subject: [PATCH] add schema to component table

---
 .../components/tables/HmComplexTable.vue      | 43 +++++++++++++++++++
 src/views/haomo/components/tables/index.vue   |  8 +++-
 2 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/src/views/haomo/components/tables/HmComplexTable.vue b/src/views/haomo/components/tables/HmComplexTable.vue
index 7185029..5ba140d 100644
--- a/src/views/haomo/components/tables/HmComplexTable.vue
+++ b/src/views/haomo/components/tables/HmComplexTable.vue
@@ -168,7 +168,50 @@
     // 混入公共对象
     mixins: [],
     props: {
+      /**
+       * 组件所使用的表定义schema。表定义schema,请使用 model2codejs 从pdm文件生成schema
+       */
       schema: {
+        type: Object,
+        required: true
+      },
+      /**
+       * 搜索过滤选项。默认没有过滤功能
+       */
+      filters: {
+        type: Array,
+        required: false
+      },
+      /**
+       * 指定要显示的列。默认为根据schema得到的所有列。完整示例为:
+       *  [
+       *    {
+       *      "name": "姓名",
+       *      "code": "username",
+       *      "render": function(value){
+       *        return "<a href='value'></a>"
+       *      }
+       *    }
+       *  ]
+       */
+      columns: {
+        type: Array,
+        required: false
+      },
+      /**
+       * 修改行数据的Hook函数。参数为行数据 rowData
+       */
+      rowHook: {
+        type: Function,
+        required: false
+      },
+      /**
+       * 表格的选项,包括:page_size。完整的示例为:
+       *  {
+       *    "page_size": 10, // 默认为10条数据/页
+       *  }
+       */
+      options: {
         type: Object,
         required: false
       }
diff --git a/src/views/haomo/components/tables/index.vue b/src/views/haomo/components/tables/index.vue
index 9f2633f..b6a68d7 100644
--- a/src/views/haomo/components/tables/index.vue
+++ b/src/views/haomo/components/tables/index.vue
@@ -1,11 +1,13 @@
 <template>
   <div class="app-container calendar-list-container">
-    <hm-complex-table></hm-complex-table>
+    <hm-complex-table :schema="schema">
+    </hm-complex-table>
   </div>
 </template>
 
 <script>
   import HmComplexTable from './HmComplexTable.vue'
+  import schema from '../../schema'
 
   export default {
     name: 'HmComplexTable',
@@ -20,7 +22,9 @@
     },
     filters: {
     },
-    created() {},
+    created() {
+      this.schema = schema['HmUser']
+    },
     methods: {}
   }
 </script>
-- 
2.21.0