|
@@ -1,219 +1,6 @@
|
1
|
|
-// import React, { useState } from "react";
|
2
|
|
-// import { Tree, Icon, Card } from "antd";
|
3
|
|
-// import { nanoid } from "nanoid";//生成唯一id
|
4
|
|
-// import { duration } from "moment";
|
5
|
|
-// import TreeTitle from './TreeTitle'
|
6
|
|
-
|
7
|
|
-// const { TreeNode } = Tree;
|
8
|
|
-// //树形数据
|
9
|
|
-// const treeData = [
|
10
|
|
-// {
|
11
|
|
-// value: "0",
|
12
|
|
-// defaultValue: "0",
|
13
|
|
-// key: "0",
|
14
|
|
-// parentKey: '0',
|
15
|
|
-// isEditable: false,
|
16
|
|
-// children: [
|
17
|
|
-// {
|
18
|
|
-// value: "0",
|
19
|
|
-// key: "0-1",
|
20
|
|
-// defaultValue: "0-1",
|
21
|
|
-// isEditable: false,
|
22
|
|
-// },
|
23
|
|
-// ],
|
24
|
|
-// },
|
25
|
|
-
|
26
|
|
-// ];
|
27
|
|
-
|
28
|
|
-// const expandedKeyArr = ["0"];
|
29
|
|
-// export default function TreeDemo() {
|
30
|
|
-// const [data, setData] = useState(treeData);//获取值,及时更新被修改的值。变量
|
31
|
|
-// const [expandedKeys, setExpandedKeys] = useState(expandedKeyArr);//状态
|
32
|
|
-// // const onExpand = (expandedKeys) => {
|
33
|
|
-// // //记录折叠的key值
|
34
|
|
-// // setExpandedKeys(expandedKeys);
|
35
|
|
-// // };
|
36
|
|
-// //开始渲染树形节点 data拿到数据
|
37
|
|
-// const renderTreeNodes = (data) => {
|
38
|
|
-// //遍历项目
|
39
|
|
-// let nodeArr = data.map((item) => {
|
40
|
|
-
|
41
|
|
-// const Title = (
|
42
|
|
-// <TreeTitle
|
43
|
|
-// value={item.value}
|
44
|
|
-// isDelete={item.parentKey !== "0"}
|
45
|
|
-// onAdd={() => onAdd(item.key)}
|
46
|
|
-// onDelete={() => onDelete(item.key)}
|
47
|
|
-// onChange={(val) => onChange(val, item.key)}
|
48
|
|
-// />
|
49
|
|
-// );
|
50
|
|
-// if (item.children) {
|
51
|
|
-// return (
|
52
|
|
-// <TreeNode title={Title} key={item.key} dataRef={item}>
|
53
|
|
-// {/* 渲染 */}
|
54
|
|
-// {renderTreeNodes(item.children)}
|
55
|
|
-// </TreeNode>
|
56
|
|
-// );
|
57
|
|
-// }
|
58
|
|
-// //返回他的标题,和key值
|
59
|
|
-// return <TreeNode title={Title} key={item.key} />;
|
60
|
|
-// });
|
61
|
|
-// //返回节点
|
62
|
|
-// return nodeArr;
|
63
|
|
-// }
|
64
|
|
-// //新增
|
65
|
|
-// const onAdd = (key) => {
|
66
|
|
-// if (expandedKeys.indexOf(key) === -1) {
|
67
|
|
-// expandedKeyArr.push(key);
|
68
|
|
-// }
|
69
|
|
-// setExpandedKeys(expandedKeyArr.slice());
|
70
|
|
-// addNode(key, treeData);//添加节点 树形
|
71
|
|
-// //useState里数据务必为immutable (不可赋值的对象),所以必须加上slice()返回一个新的数组对象
|
72
|
|
-// setData(treeData.slice());//添加子项
|
73
|
|
-// };
|
74
|
|
-// //编辑
|
75
|
|
-// //拿到key treeData数据--setData设置数据---slice删除数据中已返回的元素 [aa,bb,cc,dd,ee]--slice(2)输出[cc,dd,ee]
|
76
|
|
-// const onEdit = (key) => {
|
77
|
|
-// editNode(key, treeData);
|
78
|
|
-// setData(treeData.slice());
|
79
|
|
-// };
|
80
|
|
-// const editNode = (key, data) =>
|
81
|
|
-// data.forEach((item) => {
|
82
|
|
-// if (item.key === key) {
|
83
|
|
-// //编辑状态 true
|
84
|
|
-
|
85
|
|
-// item.isEditable = true;
|
86
|
|
-// } else {
|
87
|
|
-
|
88
|
|
-// //编辑状态 false
|
89
|
|
-// item.isEditable = false;
|
90
|
|
-// }
|
91
|
|
-// item.value = item.defaultValue; // 当某节点处于编辑状态,并改变数据,点击编辑其他节点时,此节点变成不可编辑状态,value 需要回退到 defaultvalue
|
92
|
|
-// //当某子项处于编辑状态,改变数据,点击其他时候,此项变成不可编辑
|
93
|
|
-// if (item.children) {
|
94
|
|
-// editNode(key, item.children);
|
95
|
|
-// //编辑子节点
|
96
|
|
-// }
|
97
|
|
-// });
|
98
|
|
-
|
99
|
|
-// const addNode = (key, data) =>
|
100
|
|
-// data.forEach((item) => {
|
101
|
|
-// if (item.key === key) {//如果拿到的key相同则判断子项
|
102
|
|
-// if (item.children) {
|
103
|
|
-// item.children.push({
|
104
|
|
-// value: "default",//创建新的子项默认值
|
105
|
|
-// key: nanoid(), // 这个 key 应该是唯一的
|
106
|
|
-// });
|
107
|
|
-// } else {
|
108
|
|
-// item.children = [];
|
109
|
|
-// item.children.push({
|
110
|
|
-// value: "default",
|
111
|
|
-// key: nanoid(),
|
112
|
|
-// });
|
113
|
|
-// }
|
114
|
|
-// return;
|
115
|
|
-// }
|
116
|
|
-// if (item.children) {
|
117
|
|
-// addNode(key, item.children);
|
118
|
|
-// }
|
119
|
|
-// });
|
120
|
|
-
|
121
|
|
-// const onChange = (val, key) => {
|
122
|
|
-// changeNode(key, val, treeData);
|
123
|
|
-// setData(treeData.slice());
|
124
|
|
-// };
|
125
|
|
-
|
126
|
|
-// const changeNode = (key, value, data) =>
|
127
|
|
-// data.forEach((item) => {
|
128
|
|
-// if (item.key === key) {//新增子项内容赋值
|
129
|
|
-// item.value = value;
|
130
|
|
-// }
|
131
|
|
-// if (item.children) {
|
132
|
|
-// changeNode(key, value, item.children);//子项
|
133
|
|
-// }
|
134
|
|
-// });
|
135
|
|
-
|
136
|
|
-// //确认保存节点
|
137
|
|
-// const saveNode = (key, data) =>
|
138
|
|
-// data.forEach((item) => {
|
139
|
|
-// if (item.key === key) {
|
140
|
|
-// item.defaultValue = item.value;//item.value内容赋值给defaultValue
|
141
|
|
-// }
|
142
|
|
-// //子项保存不能编辑
|
143
|
|
-// if (item.children) {
|
144
|
|
-// saveNode(key, item.children);
|
145
|
|
-// }
|
146
|
|
-// //项目是否能编辑
|
147
|
|
-// item.isEditable = false;
|
148
|
|
-// });
|
149
|
|
-
|
150
|
|
-// //取消确认
|
151
|
|
-// const closeNode = (key, defaultValue, data) =>
|
152
|
|
-// data.forEach((item) => {
|
153
|
|
-// item.isEditable = false;
|
154
|
|
-// if (item.key === key) {
|
155
|
|
-// item.value = defaultValue;
|
156
|
|
-// }
|
157
|
|
-// if (item.children) {
|
158
|
|
-// closeNode(key, defaultValue, item.children);
|
159
|
|
-// }
|
160
|
|
-// });
|
161
|
|
-// // slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
|
162
|
|
-// const onDelete = (key) => {
|
163
|
|
-// deleteNode(key, treeData);
|
164
|
|
-// setData(treeData.slice());
|
165
|
|
-// };
|
166
|
|
-// //删除节点
|
167
|
|
-// const deleteNode = (key, data) =>
|
168
|
|
-// //拿到每个key数据, 如果要删除的key相同,则删除,并返回。如果不同判断子项
|
169
|
|
-// data.forEach((item, index) => {
|
170
|
|
-// if (item.key === key) {
|
171
|
|
-// data.splice(index, 1);//从某个位置开始删除元素
|
172
|
|
-// return;
|
173
|
|
-// } else {
|
174
|
|
-// if (item.children) {
|
175
|
|
-// deleteNode(key, item.children);
|
176
|
|
-// }
|
177
|
|
-// }
|
178
|
|
-// });
|
179
|
|
-
|
180
|
|
-// return (
|
181
|
|
-// <div>
|
182
|
|
-// <Card style={{ width: '90%' }}>
|
183
|
|
-// <Tree
|
184
|
|
-// switcherIcon={<Icon type="down-square" theme="filled" />}
|
185
|
|
-// expandedKeys={expandedKeys}
|
186
|
|
-// // onExpand={onExpand}
|
187
|
|
-// >
|
188
|
|
-// {renderTreeNodes(data)}
|
189
|
|
-// </Tree>
|
190
|
|
-// </Card>
|
191
|
|
-
|
192
|
|
-// </div>
|
193
|
|
-// );
|
194
|
|
-// }
|
195
|
|
-
|
196
|
|
-
|
197
|
|
-
|
198
|
|
-
|
199
|
|
-
|
200
|
|
-
|
201
|
|
-
|
202
|
|
-
|
203
|
|
-
|
204
|
|
-
|
205
|
|
-
|
206
|
|
-
|
207
|
|
-
|
208
|
|
-
|
209
|
|
-
|
210
|
|
-
|
211
|
|
-
|
212
|
|
-
|
213
|
1
|
|
214
|
2
|
import { Row, Col, Card, Tree, Form, TreeSelect, Input, InputNumber, Modal, Button, message } from 'antd'
|
215
|
|
-import { title } from 'echarts/lib/theme/dark';
|
216
|
|
-import React, { useEffect, useState, useCallback,useRef } from 'react';
|
|
3
|
+// import React, { useEffect, useState, useCallback,useRef } from 'react';
|
217
|
4
|
import TreedataFrom from './form';
|
218
|
5
|
|
219
|
6
|
const { TreeNode,DirectoryTree } = Tree;
|
|
@@ -247,11 +34,6 @@ const confirm = data => {
|
247
|
34
|
}
|
248
|
35
|
|
249
|
36
|
|
250
|
|
-
|
251
|
|
-
|
252
|
|
-
|
253
|
|
-
|
254
|
|
-
|
255
|
37
|
// function uuid() {
|
256
|
38
|
// var s = [];
|
257
|
39
|
// var hexDigits = "0123456789";
|
|
@@ -262,11 +44,6 @@ const confirm = data => {
|
262
|
44
|
// var uuid = s.join("");
|
263
|
45
|
// return uuid;
|
264
|
46
|
// }
|
265
|
|
-
|
266
|
|
-
|
267
|
|
-
|
268
|
|
-// const [treeData, settreeData] = useState([])
|
269
|
|
-
|
270
|
47
|
const treeData = [
|
271
|
48
|
{
|
272
|
49
|
title: '分厂厂长管理',
|
|
@@ -286,6 +63,7 @@ const treeData = [
|
286
|
63
|
],
|
287
|
64
|
},
|
288
|
65
|
];
|
|
66
|
+// const item = this.info.node.key
|
289
|
67
|
|
290
|
68
|
class TreeDemo extends React.Component {
|
291
|
69
|
formRef = React.createRef();
|
|
@@ -323,27 +101,38 @@ class TreeDemo extends React.Component {
|
323
|
101
|
console.log(valeu);
|
324
|
102
|
};
|
325
|
103
|
|
326
|
|
-onSelect=(value,info)=>{
|
327
|
|
- this.setState({value},()=>{
|
328
|
|
- this.formRef.current.setFieldsValue({
|
329
|
|
- ...info.node.props,
|
330
|
104
|
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+ onSelect=(value,info)=>{
|
|
108
|
+ this.setState({value},()=>{
|
|
109
|
+ this.formRef.current.setFieldsValue({
|
|
110
|
+ ...info.node.props,
|
|
111
|
+ })
|
331
|
112
|
})
|
332
|
|
- console.log(this.state.treeTitle);
|
|
113
|
+ }
|
333
|
114
|
|
334
|
|
- })
|
335
|
|
-}
|
336
|
|
-// if(info.node.props.sex===0){
|
337
|
|
-// this.state.checked=true
|
338
|
|
-// }else{
|
339
|
|
-// this.state.checked=false
|
340
|
|
-// }
|
341
|
115
|
|
342
|
|
-// console.log(this.state.checked);
|
343
|
116
|
|
|
117
|
+// onSelect=(value,info)=>{
|
|
118
|
+// this.setState({value},()=>{
|
|
119
|
+// this.$nextTick(()=>{
|
|
120
|
+// setTimeout(()=>{
|
|
121
|
+// this.formRef.current.setFieldsValue({
|
|
122
|
+// ...info.node.props,
|
|
123
|
+// })
|
|
124
|
+// })
|
|
125
|
+// })
|
|
126
|
+
|
|
127
|
+// console.log(this.state.info);
|
|
128
|
+
|
|
129
|
+// })
|
|
130
|
+// }
|
344
|
131
|
|
345
|
132
|
|
346
|
133
|
|
|
134
|
+;
|
|
135
|
+
|
347
|
136
|
renderTreeNodes = data =>
|
348
|
137
|
data.map(item => {
|
349
|
138
|
if (item.children) {
|
|
@@ -366,22 +155,17 @@ onSelect=(value,info)=>{
|
366
|
155
|
<Row >
|
367
|
156
|
<Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 0 }}>
|
368
|
157
|
<Card>
|
369
|
|
-
|
370
|
158
|
<FormItem
|
371
|
159
|
label="管辖部门"
|
372
|
160
|
>
|
373
|
161
|
<Button type="primary" style={{marginRight:'20px'}} onClick={onAdd} >
|
374
|
162
|
增加
|
375
|
163
|
</Button>
|
376
|
|
- <Button type="danger" onClick={confirm}>
|
|
164
|
+ {/* onDelete={() => onDelete(item.key)} */}
|
|
165
|
+ <Button type="danger" >
|
377
|
166
|
删除
|
378
|
167
|
</Button>
|
379
|
168
|
<Tree
|
380
|
|
- // showSearch
|
381
|
|
- style={{ width: '100%' }}
|
382
|
|
- value={this.state.value}
|
383
|
|
- dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
|
384
|
|
- placeholder="Please select"
|
385
|
169
|
allowClear
|
386
|
170
|
treeDefaultExpandAll
|
387
|
171
|
treeData={this.state.treeData}
|
|
@@ -403,12 +187,7 @@ onSelect=(value,info)=>{
|
403
|
187
|
<Col xs={{ span: 10, offset: 10 }} lg={{ span: 10, offset: 4 }}>
|
404
|
188
|
<Card>
|
405
|
189
|
<TreedataFrom
|
406
|
|
- // treeTitle={this.state.treeTitle}
|
407
|
190
|
ref={this.formRef}
|
408
|
|
- // handelSex={this.handelSex}
|
409
|
|
- // onFinish={this.state.onFinish}
|
410
|
|
-
|
411
|
|
-
|
412
|
191
|
/>
|
413
|
192
|
</Card>
|
414
|
193
|
</Col>
|