index.jsx 7.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. import { Row, Col, Card, Tree, Form, TreeSelect, Input, InputNumber, Modal, Button, message } from 'antd'
  2. import React, { useState, useEffect } from 'react';
  3. import request from '@/utils/request';
  4. import apis from '@/services/apis';
  5. import moment from 'moment';
  6. import TreedataFrom from './form';
  7. const { TreeNode, DirectoryTree } = Tree;
  8. const FormItem = Form.Item;
  9. const { Search } = Input;
  10. const treeData =
  11. [
  12. {
  13. title: 'institutionId',
  14. name: 'institutionName',
  15. key: '0-0-0',
  16. selectable: false,
  17. children: [
  18. { name: 'institutionName', phone: '13184013427', remark: "", day: "1991-11-22", cardId: '210203197503102721', sex: 2, id: '4242', belon: 2, homeaddres: 2, key: '0-0-0-1', },
  19. { title: '柯琼彦', phone: '13184013427', remark: "", day: "1991-11-22", cardId: '210203197503102721', sex: 2, id: '4242', belon: 2, homeaddres: 2, key: '0-0-0-2', },
  20. ],
  21. },
  22. {
  23. title: '分厂员工管理',
  24. key: '0-0-1',
  25. selectable: false,
  26. children: [
  27. { title: '伏佳', phone: '18613523527', remark: "", day: "1992-10-11", cardId: '520323197806058856', sex: 1, id: '1124', belon: 4, homeaddres: 4, key: '0-0-1-0' },
  28. { title: '舒宏', phone: '14736632088', remark: "", day: "1992-12-13", cardId: '610729197408202551', sex: 1, id: '4534', belon: 3, homeaddres: 2, key: '0-0-1-1' },
  29. { title: '狄莉珍', phone: '17604898508', remark: "", day: "1993-10-11", cardId: '820000195008115837', sex: 1, id: '4242', belon: 1, homeaddres: 5, key: '0-0-1-2' },
  30. ],
  31. },
  32. ]
  33. // const item = this.info.node.key
  34. class TreeDemo extends React.Component {
  35. formRef = React.createRef();
  36. constructor(props) {
  37. super(props)
  38. this.state = {
  39. expandedKeys: ['0-0-0', '0-0-1'],
  40. autoExpandParent: false,
  41. checkedKeys: ['0-0-0'],
  42. searchValue: '',
  43. selectedKeys: [],
  44. // treeTitle: [info.node.props],
  45. checked: true,
  46. treeData: [],
  47. testarr: []
  48. };
  49. }
  50. onExpand = expandedKeys => {
  51. console.log('onExpand', expandedKeys);
  52. // 如果没有将 autoExpandParent 设置为 false,如果子项展开,父项不能折叠。
  53. // 或者,您可以删除所有扩展的子键。
  54. this.setState({
  55. expandedKeys,
  56. autoExpandParent: false,
  57. });
  58. };
  59. handelSex = e => {
  60. this.setState({
  61. sex: e.target.value
  62. });
  63. console.log(valeu);
  64. };
  65. //修改
  66. onChangethis = (value) => {
  67. const treeData = this.state.treeData
  68. let Data1 = this.state.treeData
  69. for (var i = 0; i < treeData.length; i++) {
  70. for (var j = 0; j < treeData[i].children.length; j++) {
  71. // console.log(Data1[i].children[j].key);
  72. // console.log("---------")
  73. // console.log(value);
  74. if (treeData[i].children[j].key == value.key) {
  75. Data1[i].children[j] = value
  76. //qileguaile wo cao
  77. console.log(Data1[i].children[j]);
  78. // console.log(treeData[i].children[j].key)
  79. break
  80. }
  81. }
  82. }
  83. this.setState({
  84. treeData1: Data1
  85. }, () => {
  86. message.success('修改成功!')
  87. })
  88. }
  89. //删除
  90. onDelect = (value) => {
  91. const treeData = this.state.treeData
  92. let Data1 = this.state.treeData
  93. for (var i = 0; i < treeData.length; i++) {
  94. for (var j = 0; j < treeData[i].children.length; j++) {
  95. if (treeData[i].children[j].key == value.key) {
  96. delete Data1[i].children[j]
  97. break
  98. }
  99. }
  100. }
  101. // console.log("----Data1-----")
  102. // console.log(Data1)
  103. this.setState({
  104. treeData: Data1
  105. }, () => {
  106. message.success('shanchuchenggong')
  107. })
  108. }
  109. onSelect = (values, info) => {
  110. // this.FromValue(info.node)
  111. console.log(this.state.treeData)
  112. console.log(info)
  113. this.setState({ values }, () => {
  114. this.formRef.current.setFieldsValue({
  115. ...info.node.props,
  116. key: info.node.props.eventKey,//event
  117. day: moment(info.node.props.day)
  118. })
  119. console.log(this.getTreeData)
  120. // moment(info.node.props.day).format('YYYY-MM-DD')
  121. })
  122. }
  123. // getTreeData = (e) => {
  124. // request({
  125. // url: "http://localhost:8000/api/admin/institution/list",
  126. // method: 'GET',
  127. // // params: {leveltype: 3, cityId},
  128. // action: "admin.institution.get",
  129. // }).then((treeData) => {
  130. // setData(treeData)
  131. // console.log(this.getTreeData)
  132. // })
  133. // }
  134. async institutionTree(params) {
  135. let arr = []
  136. return request('/api/admin/institution/list', {
  137. method: 'GET',
  138. data: params,
  139. }).then((testarr2) => {
  140. this.setState({ testarr: testarr2 }, () => {
  141. console.log("testarr2")
  142. console.log(this.state.testarr)
  143. // title: 'institutionId',
  144. // name: 'institutionName',
  145. // key: '0-0-0',
  146. const arr2 = this.state.testarr
  147. for (var i = 0; i < this.state.testarr.length; i++) {
  148. let list = {
  149. title: 'institutionId',
  150. name: 'institutionName',
  151. key: '0-0-0'
  152. }
  153. list.title = arr2[i].institutionName
  154. list.key = '0' + i.toString
  155. arr.push(list)
  156. }
  157. this.setState({
  158. treeData: arr
  159. })
  160. })
  161. // console.log(this.getTreeData)
  162. })
  163. }
  164. componentDidMount() {
  165. // fetch(`http://localhost:8000/api/admin/institution/list`, {
  166. // headers: {
  167. // Authorization: "Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiIxIiwib3JnSWQiOiIxIiwiZXhwIjoxNjI3MDQ1MjQxfQ.7FhVDoI0dEECZinRUzMzcLl-kcobkamZSqoUzTxBTRo"
  168. // }
  169. // }).then((res) => {
  170. // console.log(res)
  171. // }),
  172. // this.institutionTree()
  173. this.institutionTree([])
  174. }
  175. renderTreeNodes = data =>
  176. data.map(item => {
  177. if (item.children) {
  178. return (
  179. <TreeNode title={item.title} key={item.key} dataRef={item} >
  180. {this.renderTreeNodes(item.children)}
  181. </TreeNode >
  182. );
  183. }
  184. return <TreeNode key={item.key} {...item} />;
  185. });
  186. //搜索框
  187. // onChange = e => {
  188. // const { value } = e.target;
  189. // const expandedKeys = treeData
  190. // .map(item => {
  191. // if (item.title.indexOf(value) > -1) {
  192. // return getParentKey(item.key, gData);
  193. // }
  194. // return null;
  195. // })
  196. // .filter((item, i, self) => item && self.indexOf(item) === i);
  197. // this.setState({
  198. // expandedKeys,
  199. // searchValue: value,
  200. // autoExpandParent: true,
  201. // });
  202. // };
  203. render() {
  204. const { searchValue } = this.state;
  205. return (
  206. <Card>
  207. <Row >
  208. <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 0 }}>
  209. <Card>
  210. <FormItem
  211. label="管辖部门"
  212. >
  213. {/* <Search style={{ marginBottom: 8 }} placeholder="Search" onChange={this.onChange} /> */}
  214. <Tree
  215. // api={apis.Institution.instIist}
  216. showLine
  217. defaultExpandedKeys={['0-0']}
  218. onSelect={this.onSelect}
  219. treeData={this.state.treeData}
  220. // api={apis.Institution.instIist}
  221. >
  222. {this.renderTreeNodes(this.state.treeData)}
  223. {/* 动态渲染 */}
  224. </Tree >
  225. </FormItem>
  226. </Card>
  227. </Col>
  228. <Col xs={{ span: 10, offset: 10 }} lg={{ span: 10, offset: 4 }}>
  229. <Card>
  230. <TreedataFrom
  231. ref={this.formRef}
  232. triggerRef={this.bindRef}
  233. onChangethis={this.onChangethis}
  234. onSubmit={this.onChangethis}
  235. />
  236. </Card>
  237. </Col>
  238. </Row>
  239. </Card>
  240. );
  241. }
  242. }
  243. export default TreeDemo