extra & lock column & select
{tableMixExpandedLock}
diff --git a/packages/component/src/components/table/demo/demo27.js b/packages/component/src/components/table/demo/demo27.js
new file mode 100644
index 000000000..c7fa22886
--- /dev/null
+++ b/packages/component/src/components/table/demo/demo27.js
@@ -0,0 +1,151 @@
+import React, { useState, useCallback } from 'react'
+import { Table } from '@alicloud/console-components'
+import styled from 'styled-components'
+
+const data = [
+ {
+ key: 1,
+ name: 'a',
+ age: 32,
+ address: 'aa',
+ children: [
+ {
+ key: 11,
+ name: 'b',
+ age: 33,
+ address: 'bb',
+ },
+ {
+ key: 12,
+ name: 'c',
+ age: 33,
+ address: 'cc',
+ children: [
+ {
+ key: 121,
+ name: 'd',
+ age: 33,
+ address: 'dd',
+ },
+ ],
+ },
+ {
+ key: 13,
+ name: 'e',
+ age: 33,
+ address: 'ee',
+ children: [
+ {
+ key: 131,
+ name: 'f',
+ age: 33,
+ address: 'ff',
+ children: [
+ {
+ key: 1311,
+ name: 'g',
+ age: 33,
+ address: 'gg',
+ },
+ {
+ key: 1312,
+ name: 'h',
+ age: 33,
+ address: 'hh',
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ key: 2,
+ name: 'i',
+ age: 32,
+ address: 'ii',
+ children: [],
+ },
+]
+
+const generateAllKeys = (dataSource) => {
+ let allKeys = []
+ dataSource.forEach((item) => {
+ allKeys.push(item.key)
+ if (item.children && Array.isArray(item.children)) {
+ allKeys = allKeys.concat(generateAllKeys(item.children))
+ }
+ })
+ return allKeys
+}
+
+const TableMixTree = () => {
+ const [selectedRowKeys, setSelectedRowKeys] = useState([])
+
+ const handleSelectAll = (selected, records) => {
+ if (selected) {
+ const allKeys = generateAllKeys(records)
+ setSelectedRowKeys(allKeys)
+ } else {
+ const keys = records.map((item) => item.key)
+ setSelectedRowKeys(keys)
+ }
+ }
+
+ const handleSelect = useCallback(
+ (selected, record) => {
+ if (selected) {
+ setSelectedRowKeys([record.key, ...selectedRowKeys])
+ } else {
+ // const selectedkeys = [...selectedRowKeys]
+ // const index = selectedkeys.indexOf(record.key)
+ // selectedkeys.splice(index, 1)
+ const selectedKeys = selectedRowKeys.filter(
+ (item) => item !== record.key
+ )
+ setSelectedRowKeys(selectedKeys)
+ }
+ },
+ [selectedRowKeys]
+ )
+
+ return (
+
+ )
+}
+
+const Demo27 = () => (
+
+
+
+)
+
+export default Demo27
+
+export const demoMeta = {
+ zhName: `树型Table`,
+ zhDesc: `演示了树型Table全选功能(包括children)`,
+}
+
+const SWrapper = styled.div`
+ .row {
+ margin-top: 10px;
+ }
+`
diff --git a/packages/component/src/components/table/demo/index.js b/packages/component/src/components/table/demo/index.js
index 1e187fac0..2975837f7 100644
--- a/packages/component/src/components/table/demo/index.js
+++ b/packages/component/src/components/table/demo/index.js
@@ -25,6 +25,7 @@ import Demo23 from './demo23'
import Demo24 from './demo24'
import Demo25 from './demo25'
import Demo26 from './demo26'
+import Demo27 from './demo27'
import './index.less'
const TableDemo = () => (
@@ -69,6 +70,8 @@ const TableDemo = () => (
混合模式
+
树型Table全选子节点
+
数据集为空
自定义Loading组件
From a0fa9d45fa7bd1b2e173f91dd6f0df066adab04f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E6=98=8E=E9=98=B3?= <1347276498@qq.com>
Date: Fri, 24 Apr 2020 11:02:47 +0800
Subject: [PATCH 5/5] chore(component/overlay): adjust demo style to fit design
---
.../component/src/components/overlay/demo/demo1.js | 12 ++++++------
.../component/src/components/overlay/demo/demo2.js | 12 ++++++------
.../component/src/components/overlay/demo/demo3.js | 8 ++++----
.../component/src/components/overlay/demo/demo4.js | 8 ++++----
.../component/src/components/overlay/demo/demo5.js | 10 +++++-----
.../component/src/components/overlay/demo/demo6.js | 8 ++++----
6 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/packages/component/src/components/overlay/demo/demo1.js b/packages/component/src/components/overlay/demo/demo1.js
index 1a27bf6a6..cc802ded5 100644
--- a/packages/component/src/components/overlay/demo/demo1.js
+++ b/packages/component/src/components/overlay/demo/demo1.js
@@ -1,5 +1,5 @@
import React, { useState, useRef, useCallback } from 'react'
-import { Overlay } from '@alicloud/console-components'
+import { Overlay, Button } from '@alicloud/console-components'
import styled from 'styled-components'
const Demo1 = () => {
@@ -17,9 +17,9 @@ const Demo1 = () => {
return (
-
btnRef.current}
@@ -32,13 +32,13 @@ const Demo1 = () => {
)
}
-const SInner = styled.span`
+const SInner = styled.div`
width: 300px;
height: 100px;
padding: 10px;
- border: 1px solid #999999;
background: #ffffff;
- box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.15);
+ border: 1px solid #ebebeb;
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.13);
`
export default Demo1
diff --git a/packages/component/src/components/overlay/demo/demo2.js b/packages/component/src/components/overlay/demo/demo2.js
index 438d4bde8..cd7145a0a 100644
--- a/packages/component/src/components/overlay/demo/demo2.js
+++ b/packages/component/src/components/overlay/demo/demo2.js
@@ -1,5 +1,5 @@
import React, { useState, useCallback, useRef } from 'react'
-import { Overlay } from '@alicloud/console-components'
+import { Overlay, Button } from '@alicloud/console-components'
import styled from 'styled-components'
const Demo2 = () => {
@@ -17,9 +17,9 @@ const Demo2 = () => {
return (
-
+
Open
-
+
btnRef.current}
@@ -34,13 +34,13 @@ const Demo2 = () => {
)
}
-const SInner = styled.span`
+const SInner = styled.div`
width: 300px;
height: 100px;
padding: 10px;
- border: 1px solid #999999;
background: #ffffff;
- box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.15);
+ border: 1px solid #ebebeb;
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.13);
`
export default Demo2
diff --git a/packages/component/src/components/overlay/demo/demo3.js b/packages/component/src/components/overlay/demo/demo3.js
index 1b632d00d..95bb3660d 100644
--- a/packages/component/src/components/overlay/demo/demo3.js
+++ b/packages/component/src/components/overlay/demo/demo3.js
@@ -1,11 +1,11 @@
import React from 'react'
-import { Overlay } from '@alicloud/console-components'
+import { Overlay, Button } from '@alicloud/console-components'
import styled from 'styled-components'
const { Popup } = Overlay
const Demo3 = () => (
- Open} triggerType="click">
+ Open} triggerType="click">
Hello World From Popup!
)
@@ -14,9 +14,9 @@ const SInner = styled.div`
width: 300px;
height: 100px;
padding: 10px;
- border: 1px solid #999999;
background: #ffffff;
- box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.15);
+ border: 1px solid #ebebeb;
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.13);
`
export default Demo3
diff --git a/packages/component/src/components/overlay/demo/demo4.js b/packages/component/src/components/overlay/demo/demo4.js
index 6ae067791..824fa084c 100644
--- a/packages/component/src/components/overlay/demo/demo4.js
+++ b/packages/component/src/components/overlay/demo/demo4.js
@@ -1,5 +1,5 @@
import React, { useState, useCallback } from 'react'
-import { Overlay } from '@alicloud/console-components'
+import { Overlay, Button } from '@alicloud/console-components'
import styled from 'styled-components'
const { Popup } = Overlay
@@ -13,7 +13,7 @@ const Demo4 = () => {
return (
Open}
+ trigger={Open}
triggerType="click"
visible={visible}
onVisibleChange={onVisibleChange}
@@ -27,9 +27,9 @@ const SInner = styled.div`
width: 300px;
height: 100px;
padding: 10px;
- border: 1px solid #999999;
background: #ffffff;
- box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.15);
+ border: 1px solid #ebebeb;
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.13);
`
export default Demo4
diff --git a/packages/component/src/components/overlay/demo/demo5.js b/packages/component/src/components/overlay/demo/demo5.js
index 02949c751..450dd60e7 100644
--- a/packages/component/src/components/overlay/demo/demo5.js
+++ b/packages/component/src/components/overlay/demo/demo5.js
@@ -1,14 +1,14 @@
import React from 'react'
-import { Overlay } from '@alicloud/console-components'
+import { Overlay, Button } from '@alicloud/console-components'
import styled from 'styled-components'
const { Popup } = Overlay
const Demo5 = () => (
- Open first overlay} triggerType="click">
+ Open first overlay} triggerType="click">
Open second overlay}
+ trigger={Open second overlay}
triggerType="click"
container={trigger => trigger.parentNode}
>
@@ -25,9 +25,9 @@ const SInner = styled.div`
width: 300px;
height: 100px;
padding: 10px;
- border: 1px solid #999999;
background: #ffffff;
- box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.15);
+ border: 1px solid #ebebeb;
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.13);
`
export default Demo5
diff --git a/packages/component/src/components/overlay/demo/demo6.js b/packages/component/src/components/overlay/demo/demo6.js
index e0a4f51ad..0cd06bac0 100644
--- a/packages/component/src/components/overlay/demo/demo6.js
+++ b/packages/component/src/components/overlay/demo/demo6.js
@@ -1,5 +1,5 @@
import React, { useRef } from 'react'
-import { Overlay } from '@alicloud/console-components'
+import { Overlay, Button } from '@alicloud/console-components'
import styled from 'styled-components'
const { Popup } = Overlay
@@ -10,7 +10,7 @@ const Demo6 = () => {
return (
Open}
+ trigger={Open}
triggerType="click"
container={trigger => trigger.parentNode}
target={containerRef.current}
@@ -34,8 +34,8 @@ const SInner = styled.div`
width: 300px;
height: 100px;
padding: 10px;
- border: 1px solid #999999;
background: #ffffff;
- box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.15);
+ border: 1px solid #ebebeb;
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.13);
`
export default Demo6