organization.jsx 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879
  1. import React from 'react';
  2. import ReactDom from 'react-dom';
  3. import ajax from 'jquery/src/ajax/xhr.js';
  4. import $ from 'jquery/src/ajax';
  5. import '../content.less';
  6. import { Form,Radio, Icon, Button, Input, Select, Spin, Table, Switch, message, DatePicker, Modal, Upload,Popconfirm,AutoComplete } from 'antd';
  7. import {patternOrganization,conditionOrganization} from '../../../dataDic.js';
  8. import {getPattern,getCondition} from '../../../tools.js';
  9. const Organization=Form.create()(React.createClass({
  10. loadData(pageNo) {
  11. this.state.data = [];
  12. this.setState({
  13. loading: true,
  14. ispage:pageNo,
  15. });
  16. $.ajax({
  17. method: "post",
  18. dataType: "json",
  19. crossDomain: false,
  20. url: globalConfig.context + '/api/admin/organization/listOrganizationManagement',
  21. data: {
  22. pageNo: pageNo || 1,
  23. pageSize: this.state.pagination.pageSize,
  24. name: this.state.name, //组织名称
  25. superId:this.state.superId,//上级组织
  26. type:this.state.type,//组织类型
  27. depNo:this.state.depNo,//组织编号
  28. },
  29. success: function (data) {
  30. let theArr = [];
  31. if (!data.data || !data.data.list) {
  32. if (data.error && data.error.length) {
  33. message.warning(data.error[0].message);
  34. };
  35. } else {
  36. for (let i = 0; i < data.data.list.length; i++) {
  37. let thisdata = data.data.list[i];
  38. theArr.push({
  39. key: i,
  40. id: thisdata.id,//每一条记录的ID
  41. depNo:thisdata.depNo,//组织编号
  42. name:thisdata.name,//组织名称
  43. type:thisdata.type,//组织类型
  44. managerId:thisdata.managerName,//负责人
  45. superId:thisdata.superName,//上级组织
  46. status:thisdata.status,//组织状态
  47. });
  48. };
  49. this.state.pagination.current = data.data.pageNo;
  50. this.state.pagination.total = data.data.totalCount;
  51. };
  52. this.setState({
  53. dataSource: theArr,
  54. pagination: this.state.pagination
  55. });
  56. }.bind(this),
  57. }).always(function () {
  58. this.setState({
  59. loading: false
  60. });
  61. }.bind(this));
  62. },
  63. getInitialState() {
  64. return {
  65. searchMore: true,
  66. selectedRowKeys: [],
  67. selectedRows: [],
  68. loading: false,
  69. pagination: {
  70. defaultCurrent: 1,
  71. defaultPageSize: 10,
  72. showQuickJumper: true,
  73. pageSize: 10,
  74. onChange: function (page) {
  75. this.loadData(page);
  76. }.bind(this),
  77. showTotal: function (total) {
  78. return '共' + total + '条数据';
  79. }
  80. },
  81. columns: [
  82. {
  83. title: '组织编号',
  84. dataIndex: 'depNo',
  85. key: 'depNo',
  86. }, {
  87. title: '组织名称',
  88. dataIndex: 'name',
  89. key: 'name',
  90. }, {
  91. title: '负责人',
  92. dataIndex: 'managerId',
  93. key: 'managerId',
  94. },{
  95. title: '组织类型',
  96. dataIndex: 'type',
  97. key: 'type',
  98. render: text => { return getPattern(text) }
  99. }, {
  100. title: '上级组织',
  101. dataIndex: 'superId',
  102. key: 'superId',
  103. },{
  104. title: '组织状态',
  105. dataIndex: 'status',
  106. key: 'status',
  107. render: text => { return getCondition(text) }
  108. }
  109. ],
  110. dataSource: [],
  111. searchTime: [,]
  112. };
  113. },
  114. componentWillMount() {
  115. this.selectSuperId();
  116. },
  117. //获取上级组织
  118. selectSuperId() {
  119. this.state.data = []
  120. $.ajax({
  121. method: "get",
  122. dataType: "json",
  123. crossDomain: false,
  124. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  125. data:{
  126. },
  127. success: function (data) {
  128. let theArr = [];
  129. let theId=[];//用于保存上级组织的ID和名称
  130. let thedata=data.data;
  131. if (!thedata) {
  132. if (data.error && data.error.length) {
  133. message.warning(data.error[0].message);
  134. };
  135. thedata = {};
  136. };
  137. var contactIds=[];
  138. for(var i=0;i<data.data.length;i++){
  139. let theData = data.data[i];
  140. theArr.push(
  141. <Select.Option value={theData.id} key={theData.id}>{theData.name}</Select.Option>
  142. );
  143. theId.push(
  144. [theData.id,theData.name]
  145. );
  146. };
  147. this.setState({
  148. SuperArr:thedata,
  149. contactsOption: theArr,
  150. theId: theId,
  151. orderStatusOptions:data.data,
  152. });
  153. }.bind(this),
  154. }).always(function () {
  155. this.loadData();
  156. this.setState({
  157. loading: false
  158. });
  159. }.bind(this));
  160. },
  161. //编辑部门,保存
  162. edithandleSubmit(e){
  163. e.preventDefault();
  164. //上级组织字典
  165. let nameText=this.state.SuperArr
  166. let superText=this.state.editSuperId;
  167. let upId=this.state.theId;
  168. let oldId='';
  169. let superOne=this.state.editDataSource[0].editSuperId;
  170. if(superOne==superText){
  171. for(let j=0;j<upId.length;j++){
  172. if(superText==upId[j][1]){
  173. oldId=upId[j][0]
  174. }
  175. }
  176. };
  177. let remarksText=(this.state.editRemarks)?this.state.editRemarks:'该组织没有职能说明,请完善!';
  178. let isStatus=this.state.editStatus;
  179. if(isStatus==1){
  180. if(confirm('是否要解散该部门?')){
  181. if(!(superOne==superText)){
  182. if(confirm('上级组织已修改,是否保存?')){
  183. $.ajax({
  184. method: "post",
  185. dataType: "json",
  186. crossDomain: false,
  187. url:globalConfig.context + '/api/admin/organization/updateOrganization',
  188. data:{
  189. name:this.state.editName,//组织名称
  190. type:this.state.editType, //组织类型
  191. managerId:this.state.theTypes?this.state.theTypes:this.state.managerIdOrganizationId,//负责人ID
  192. superId:this.state.editSuperId,//上级组织
  193. status:this.state.editStatus,//组织状态
  194. remarks:remarksText,//组织职能说明
  195. id:this.state.editId,//组织ID
  196. updateOrganization:this.state.updateOrganization,
  197. abbreviation:this.state.abbreviation
  198. }
  199. }).done(function (data) {
  200. this.setState({
  201. loading: false
  202. });
  203. if (!data.error.length) {
  204. message.success('保存成功!');
  205. this.edithandleCancel();
  206. this.selectSuperId();
  207. } else {
  208. message.warning(data.error[0].message);
  209. }
  210. }.bind(this));
  211. return false
  212. }
  213. }else {
  214. $.ajax({
  215. method: "post",
  216. dataType: "json",
  217. crossDomain: false,
  218. url:globalConfig.context + '/api/admin/organization/updateOrganization',
  219. data:{
  220. name:this.state.editName,//组织名称
  221. type:this.state.editType, //组织类型
  222. managerId:this.state.theTypes?this.state.theTypes:this.state.managerIdOrganizationId,//负责人ID
  223. superId:oldId,//上级组织
  224. status:this.state.editStatus,//组织状态
  225. remarks:remarksText,//组织职能说明
  226. id:this.state.editId,//组织ID
  227. abbreviation:this.state.abbreviation
  228. }
  229. }).done(function (data) {
  230. this.setState({
  231. loading: false
  232. });
  233. if (!data.error.length) {
  234. message.success('保存成功!');
  235. this.edithandleCancel();
  236. this.selectSuperId();
  237. } else {
  238. message.warning(data.error[0].message);
  239. }
  240. }.bind(this));
  241. }
  242. }
  243. }else{
  244. if(!(superOne==superText)){
  245. if(confirm('上级组织已修改,是否保存?')){
  246. console.log(this.state.editSuperId);
  247. $.ajax({
  248. method: "post",
  249. dataType: "json",
  250. crossDomain: false,
  251. url:globalConfig.context + '/api/admin/organization/updateOrganization',
  252. data:{
  253. name:this.state.editName,//组织名称
  254. type:this.state.editType, //组织类型
  255. managerId:this.state.theTypes?this.state.theTypes:this.state.managerIdOrganizationId,//负责人ID
  256. superId:this.state.editSuperId,//上级组织
  257. status:this.state.editStatus,//组织状态
  258. remarks:remarksText,//组织职能说明
  259. id:this.state.editId,//组织ID
  260. abbreviation:this.state.abbreviation
  261. }
  262. }).done(function (data) {
  263. this.setState({
  264. loading: false
  265. });
  266. if (!data.error.length) {
  267. message.success('保存成功!');
  268. this.edithandleCancel();
  269. this.selectSuperId();
  270. } else {
  271. message.warning(data.error[0].message);
  272. }
  273. }.bind(this));
  274. return false
  275. }
  276. }else {
  277. console.log(this.state.editSuperId);
  278. $.ajax({
  279. method: "post",
  280. dataType: "json",
  281. crossDomain: false,
  282. url:globalConfig.context + '/api/admin/organization/updateOrganization',
  283. data:{
  284. name:this.state.editName,//组织名称
  285. type:this.state.editType, //组织类型
  286. managerId:this.state.theTypes?this.state.theTypes:this.state.managerIdOrganizationId,//负责人ID
  287. superId:oldId,//上级组织
  288. status:this.state.editStatus,//组织状态
  289. remarks:remarksText,//组织职能说明
  290. id:this.state.editId,//组织ID
  291. abbreviation:this.state.abbreviation
  292. }
  293. }).done(function (data) {
  294. this.setState({
  295. loading: false
  296. });
  297. if (!data.error.length) {
  298. message.success('保存成功!');
  299. this.edithandleCancel();
  300. this.selectSuperId();
  301. } else {
  302. message.warning(data.error[0].message);
  303. }
  304. }.bind(this));
  305. }
  306. }
  307. },
  308. //整行点击
  309. tableRowClick(record, index) {
  310. this.selectSuperId();
  311. this.state.RowData = record;
  312. this.setState({
  313. editvisible: true,
  314. selectedRowKeys:[],
  315. rowId:record.businessId,
  316. })
  317. $.ajax({
  318. method: "post",
  319. dataType: "json",
  320. crossDomain: false,
  321. url: globalConfig.context +"/api/admin/organization/selectAllById" ,
  322. data: {
  323. id: record.id
  324. },
  325. success: function (data) {
  326. let theArr = [];
  327. let thisdata = data;
  328. if (!data) {
  329. if (data.error && data.error.length) {
  330. message.warning(data.error[0].message);
  331. };
  332. } else {
  333. theArr.push({
  334. editId: thisdata.id,//每一条记录的ID
  335. editName:thisdata.name,//组织名称
  336. editManagerId:thisdata.managerId,//负责人
  337. editType:thisdata.type,//组织类型
  338. editStatus:thisdata.status,//组织状态
  339. editSuperId:thisdata.superId,//上级组织
  340. editDepNo: thisdata.depNo,//组织编号
  341. editCreateId:thisdata.createId,//创建人
  342. editTime:thisdata.createTime,//创建时间
  343. editRemarks:thisdata.remarks,//组织职能说明
  344. });
  345. };
  346. this.setState({
  347. editId: thisdata.id,//每一条记录的ID
  348. editName:thisdata.name,//组织名称
  349. managerIdOrganization:thisdata.managerName,//负责人名字
  350. managerIdOrganizationId:thisdata.managerId,//负责人idmanagerName
  351. editType:thisdata.type,//组织类型
  352. editStatus:thisdata.status,//组织状态
  353. editSuperId:thisdata.superId,//上级组织
  354. editDepNo: thisdata.depNo,//组织编号
  355. editCreateId:thisdata.createId,//创建人
  356. editTime:thisdata.createTime,//创建时间
  357. editRemarks: thisdata.remarks,//组织职能说明
  358. editDataSource: theArr,
  359. abbreviation:thisdata.abbreviation
  360. });
  361. }.bind(this),
  362. }).always(function (data) {
  363. // if (data.error.length) {
  364. // message.warn(data.error[0].message);
  365. // };
  366. this.setState({
  367. loading: false
  368. });
  369. }.bind(this));
  370. },
  371. //整行删除
  372. delectRow() {
  373. let deletedIds ='';
  374. for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
  375. let rowItem = this.state.selectedRows[idx];
  376. if (rowItem.id) {
  377. deletedIds=rowItem.id;
  378. };
  379. };
  380. this.setState({
  381. selectedRowKeys: [],
  382. loading: deletedIds.length > 0
  383. });
  384. $.ajax({
  385. method: "POST",
  386. dataType: "json",
  387. crossDomain: false,
  388. url: globalConfig.context + "/api/admin/organization/deleteById",
  389. data: {
  390. id: deletedIds
  391. }
  392. }).done(function (data) {
  393. if (!data.error.length) {
  394. message.success('删除成功!');
  395. this.setState({
  396. loading: false,
  397. });
  398. } else {
  399. message.warning(data.error[0].message);
  400. };
  401. this.selectSuperId();
  402. }.bind(this));
  403. },
  404. //新增一个部门,保存
  405. addhandleSubmit(e){
  406. e.preventDefault();
  407. // if(!this.state.theTypes){
  408. // message.warning('请输入负责人姓名');
  409. // return false;
  410. // }
  411. if(!this.state.typeOrganization){
  412. message.warning('请选择组织类型');
  413. return false;
  414. }
  415. if(!this.state.upOrganization){
  416. message.warning('请选择上级组织');
  417. return false;
  418. }
  419. this.props.form.validateFields((err, values) => {
  420. if (!err) {
  421. this.setState({
  422. loading: true
  423. });
  424. $.ajax({
  425. method: "post",
  426. dataType: "json",
  427. crossDomain: false,
  428. url:globalConfig.context + '/api/admin/organization/addOrganization',
  429. data:{
  430. name:this.state.nameOrganization,//组织名称
  431. managerId:this.state.theTypes,//负责人ID
  432. type:this.state.typeOrganization, //组织类型
  433. superId:this.state.upOrganization,//上级组织
  434. remarks:this.state.remarksOrganization,//组织职能说明
  435. }
  436. }).done(function (data) {
  437. this.setState({
  438. loading: false
  439. });
  440. if (!data.error.length) {
  441. message.success('保存成功!');
  442. this.handleCancel();
  443. this.selectSuperId();
  444. } else {
  445. message.warning(data.error[0].message);
  446. }
  447. }.bind(this));
  448. }
  449. });
  450. },
  451. //主管初始加载(自动补全)
  452. supervisor(e){
  453. $.ajax({
  454. method: "post",
  455. dataType: "json",
  456. crossDomain: false,
  457. url: globalConfig.context + "/api/admin/organization/selectName",
  458. data:{
  459. name:e
  460. },
  461. success: function (data) {
  462. let thedata=data.data;
  463. if (!thedata) {
  464. if (data.error && data.error.length) {
  465. message.warning(data.error[0].message);
  466. };
  467. thedata = {};
  468. };
  469. this.setState({
  470. customerArr:thedata,
  471. });
  472. }.bind(this),
  473. }).always(function () {
  474. this.setState({
  475. loading: false
  476. });
  477. }.bind(this));
  478. },
  479. //上级主管输入框失去焦点是判断客户是否存在
  480. selectAuto(value,options){
  481. this.setState({
  482. managerIdOrganization:value
  483. })
  484. let theType='';
  485. let contactLists=this.state.customerArr||[];
  486. if (value) {
  487. contactLists.map(function (item) {
  488. if (item.name == value.toString()) {
  489. theType = item.id;
  490. }
  491. });
  492. }
  493. this.setState({
  494. theTypes:theType
  495. })
  496. },
  497. //失去焦点时
  498. blurChange(e){
  499. },
  500. //值改变时请求客户名称
  501. httpChange(e){
  502. if(e.length>=1){
  503. this.supervisor(e);
  504. }
  505. this.setState({
  506. managerIdOrganization:e
  507. })
  508. },
  509. addClick() {
  510. this.state.theTypes='';
  511. this.state.nameOrganization='';//组织名称清零
  512. this.state.managerIdOrganization= '';//负责人ID清零
  513. this.state.typeOrganization= undefined; //组织类型清零
  514. this.state.upOrganization= undefined;//上级组织清零
  515. this.state.remarksOrganization= '';//组织职能说明清零
  516. this.state.RowData = {};
  517. this.setState({
  518. visible: true
  519. });
  520. this.selectSuperId();
  521. },
  522. editClick() {
  523. this.state.RowData = {};
  524. this.setState({
  525. editvisible: true
  526. });
  527. },
  528. handleCancel() {
  529. this.setState({ visible: false })
  530. },
  531. edithandleCancel() {
  532. this.setState({ editvisible: false })
  533. },
  534. search() {
  535. this.loadData();
  536. },
  537. //把搜索的部分置零
  538. reset() {
  539. this.state.superId = undefined;//上级组织清零
  540. this.state.name = '';//组织名称清零
  541. this.state.type = undefined;//组织类型清零
  542. this.state.depNo = '';//组织编号清零
  543. this.loadData();
  544. },
  545. searchSwitch() {
  546. this.setState({
  547. searchMore: !this.state.searchMore
  548. });
  549. },
  550. render() {
  551. const FormItem = Form.Item
  552. const rowSelection = {
  553. selectedRowKeys: this.state.selectedRowKeys,
  554. onChange: (selectedRowKeys, selectedRows) => {
  555. this.setState({
  556. selectedRows: selectedRows.slice(-1),
  557. selectedRowKeys: selectedRowKeys.slice(-1)
  558. });
  559. },
  560. onSelect: (recordt, selected, selectedRows) => {
  561. this.setState({
  562. recordt:recordt.id
  563. })
  564. },
  565. };
  566. const formItemLayout = {
  567. labelCol: { span: 8 },
  568. wrapperCol: { span: 14 },
  569. };
  570. const { getFieldDecorator } = this.props.form;
  571. const hasSelected = this.state.selectedRowKeys.length > 0;
  572. const { RangePicker } = DatePicker;
  573. const dataSources=this.state.customerArr || [];
  574. const options = dataSources.map((group,index) =>
  575. <Option key={index} value={group.name}>{group.name}</Option>
  576. )
  577. return (
  578. <div className="user-content" >
  579. <div className="content-title">
  580. <div className="user-search">
  581. <Input placeholder="组织名称" style={{width:'150px',marginRight:'10px',marginBottom:'10px'}}
  582. value={this.state.name}
  583. onChange={(e) => { this.setState({ name: e.target.value }); }} />
  584. <Select placeholder="上级组织"
  585. style={{ width:'200px',marginRight:'10px' }}
  586. value={this.state.superId}
  587. onChange={(e) => { this.setState({ superId: e }) }} notFoundContent="未获取到上级组织列表">
  588. {this.state.contactsOption}
  589. </Select>
  590. <Button type="primary" onClick={this.search} style={{marginRight:'10px'}}>搜索</Button>
  591. <Button onClick={this.reset} style={{marginRight:'10px'}}>重置</Button>
  592. <Popconfirm title="是否删除?" onConfirm={this.delectRow} okText="是" cancelText="否">
  593. <Button style={{ background: "#ea0862", border: "none", color: "#fff",marginRight:'10px' ,marginLeft:'10px'}}
  594. disabled={!hasSelected}
  595. >删除<Icon type="minus" />
  596. </Button>
  597. </Popconfirm>
  598. <span style={{marginRight:'20px'}}>更多搜索 <Switch defaultChecked={false} onChange={this.searchSwitch} /></span>
  599. <div style={this.state.searchMore ? { display: 'none' } : {display: 'inline-block'}}>
  600. <Input placeholder="组织编号" style={{width:'150px',marginRight:'10px'}}
  601. value={this.state.depNo}
  602. onChange={(e) => { this.setState({ depNo: e.target.value }); }} />
  603. <Select placeholder="组织类型"
  604. style={{width:'150px',marginRight:'50px'}}
  605. value={this.state.type}
  606. onChange={(e) => { this.setState({ type: e }) }}>
  607. <Select.Option value="0" >公司</Select.Option>
  608. <Select.Option value="1" >部门</Select.Option>
  609. <Select.Option value="2" >团队</Select.Option>
  610. </Select>
  611. </div>
  612. <Button type="primary" className="addButton" onClick={this.addClick} style={{marginBottom:'10px'}}>新增组织<Icon type="plus" /></Button>
  613. </div>
  614. <div className="patent-table">
  615. <Spin spinning={this.state.loading}>
  616. <Table columns={this.state.columns}
  617. dataSource={this.state.dataSource}
  618. rowSelection={rowSelection}
  619. pagination={this.state.pagination}
  620. onRowClick={this.tableRowClick} />
  621. </Spin>
  622. </div>
  623. <div className="patent-desc">
  624. <Modal maskClosable={false} visible={this.state.visible}
  625. onOk={this.checkPatentProcess} onCancel={this.handleCancel}
  626. width='600px'
  627. title='新增组织'
  628. footer=''
  629. className="admin-desc-content">
  630. <Form horizontal onSubmit={this.addhandleSubmit} id="add-form">
  631. <Spin spinning={this.state.loading}>
  632. <div className="clearfix">
  633. <FormItem
  634. labelCol={{ span: 7 }}
  635. wrapperCol={{ span: 12 }}
  636. label="组织名称" >
  637. <Input placeholder="组织名称" value={this.state.nameOrganization} style={{width:'95%'}}
  638. onChange={(e)=>{this.setState({nameOrganization:e.target.value})}} required="required"/>
  639. <span className="mandatory" style={{color:'red',marginLeft:'5px'}}>*</span>
  640. </FormItem>
  641. </div>
  642. <div className="clearfix">
  643. <FormItem
  644. labelCol={{ span: 7 }}
  645. wrapperCol={{ span: 12}}
  646. label="负责人"
  647. >
  648. <AutoComplete
  649. className="certain-category-search"
  650. dropdownClassName="certain-category-search-dropdown"
  651. dropdownMatchSelectWidth={false}
  652. dataSource={options}
  653. placeholder="输入名称"
  654. value={this.state.managerIdOrganization}
  655. onChange={this.httpChange}
  656. filterOption={true}
  657. onBlur={this.blurChange}
  658. onSelect={this.selectAuto}
  659. style={{width:'95%'}}
  660. >
  661. <Input />
  662. </AutoComplete>
  663. {/*<span className="mandatory" style={{color:'red',marginLeft:'5px'}}>*</span>*/}
  664. </FormItem>
  665. </div>
  666. <div className="clearfix">
  667. <FormItem
  668. labelCol={{ span: 7 }}
  669. wrapperCol={{ span: 12 }}
  670. label="组织类型"
  671. >
  672. <Select placeholder="组织类型" value={this.state.typeOrganization}
  673. onChange={(e)=>{this.setState({typeOrganization:e})}} style={{width:'95%'}} required="required">
  674. {
  675. patternOrganization.map(function (item) {
  676. return <Select.Option key={item.value} >{item.key}</Select.Option>
  677. })
  678. }
  679. </Select>
  680. <span className="mandatory" style={{color:'red',marginLeft:'5px'}}>*</span>
  681. </FormItem>
  682. </div>
  683. <div className="clearfix">
  684. <FormItem
  685. labelCol={{ span: 7 }}
  686. wrapperCol={{ span: 12 }}
  687. label="上级组织"
  688. >
  689. <Select placeholder="请选择上级组织"
  690. value={this.state.upOrganization}
  691. onChange={(e)=>{this.setState({upOrganization:e})}}
  692. notFoundContent="未获取到上级组织列表"
  693. style={{width:'95%'}} required="required">
  694. {this.state.contactsOption}
  695. </Select>
  696. <span className="mandatory" style={{color:'red',marginLeft:'5px'}}>*</span>
  697. </FormItem>
  698. </div>
  699. <div className="clearfix">
  700. <FormItem
  701. labelCol={{ span: 7 }}
  702. wrapperCol={{ span: 12 }}
  703. label="组织职能说明" >
  704. <Input type="textarea" rows={4} placeholder="组织职能说明" value={this.state.remarksOrganization}
  705. onChange={(e) => { this.setState({ remarksOrganization: e.target.value }) }} style={{width:'95%'}}/>
  706. </FormItem>
  707. </div>
  708. <FormItem wrapperCol={{ span: 12, offset: 7 }}>
  709. <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
  710. <Button className="set-submit" type="ghost" onClick={this.handleCancel} style={{marginLeft:'100px'}}>取消</Button>
  711. </FormItem>
  712. </Spin>
  713. </Form >
  714. </Modal>
  715. </div>
  716. <div className="patent-desc">
  717. <Modal maskClosable={false} visible={this.state.editvisible}
  718. onOk={this.checkPatentProcess} onCancel={this.edithandleCancel}
  719. width='600px'
  720. title='编辑组织'
  721. footer=''
  722. className="admin-desc-content">
  723. <Form horizontal onSubmit={this.edithandleSubmit} id="edit-form">
  724. <Spin spinning={this.state.loading}>
  725. <div className="clearfix">
  726. <FormItem
  727. labelCol={{ span: 7 }}
  728. wrapperCol={{ span: 12 }}
  729. label="组织名称" >
  730. <Input placeholder="组织名称" value={this.state.editName}
  731. onChange={(e)=>{this.setState({editName:e.target.value})}}/>
  732. </FormItem>
  733. </div>
  734. <div className="clearfix">
  735. <FormItem
  736. labelCol={{ span: 7 }}
  737. wrapperCol={{ span: 12}}
  738. label="负责人"
  739. >
  740. <AutoComplete
  741. className="certain-category-search"
  742. dropdownClassName="certain-category-search-dropdown"
  743. dropdownMatchSelectWidth={false}
  744. dataSource={options}
  745. placeholder="输入名称"
  746. value={this.state.managerIdOrganization}
  747. onChange={this.httpChange}
  748. filterOption={true}
  749. onBlur={this.blurChange}
  750. onSelect={this.selectAuto}
  751. style={{width:'95%'}}
  752. >
  753. <Input />
  754. </AutoComplete>
  755. <span className="mandatory" style={{color:'red',marginLeft:'5px'}}>*</span>
  756. </FormItem>
  757. </div>
  758. <div className="clearfix">
  759. <FormItem
  760. labelCol={{ span: 7 }}
  761. wrapperCol={{ span: 12 }}
  762. label="组织类型"
  763. >
  764. <Select placeholder="组织类型" value={this.state.editType}
  765. onChange={(e)=>{this.setState({editType:e})}}>
  766. {
  767. patternOrganization.map(function (item) {
  768. return <Select.Option key={item.value} >{item.key}</Select.Option>
  769. })
  770. }
  771. </Select>
  772. </FormItem>
  773. </div>
  774. <div className="clearfix">
  775. <FormItem
  776. labelCol={{ span: 7 }}
  777. wrapperCol={{ span: 12 }}
  778. label="组织状态"
  779. >
  780. <Select placeholder="组织状态" value={this.state.editStatus}
  781. onChange={(e)=>{this.setState({editStatus:e})}}>
  782. {
  783. conditionOrganization.map(function (item) {
  784. return <Select.Option key={item.value} >{item.key}</Select.Option>
  785. })
  786. }
  787. </Select>
  788. </FormItem>
  789. </div>
  790. <div className="clearfix">
  791. <FormItem
  792. labelCol={{ span: 7 }}
  793. wrapperCol={{ span: 12 }}
  794. label="上级组织"
  795. >
  796. <Select placeholder="请选择上级组织"
  797. value={this.state.editSuperId}
  798. onChange={(e)=>{this.setState({editSuperId:e})}}
  799. notFoundContent="未获取到上级组织列表">
  800. {this.state.contactsOption}
  801. </Select>
  802. </FormItem>
  803. </div>
  804. <div className="clearfix">
  805. <FormItem
  806. labelCol={{ span: 7 }}
  807. wrapperCol={{ span: 12 }}
  808. label="缩写" >
  809. <Input placeholder="缩写" value={this.state.abbreviation}
  810. onChange={(e)=>{this.setState({abbreviation:e.target.value})}}/>
  811. </FormItem>
  812. </div>
  813. <div className="clearfix">
  814. <FormItem
  815. labelCol={{ span: 7 }}
  816. wrapperCol={{ span: 12 }}
  817. label="组织编号"
  818. >
  819. <span>{this.state.editDepNo}</span>
  820. </FormItem>
  821. </div>
  822. <div className="clearfix" >
  823. <FormItem
  824. labelCol={{ span: 7 }}
  825. wrapperCol={{ span: 12 }}
  826. label="创建人"
  827. >
  828. <span>{this.state.editCreateId}</span>
  829. </FormItem>
  830. </div>
  831. <div className="clearfix">
  832. <FormItem
  833. labelCol={{ span: 7 }}
  834. wrapperCol={{ span: 12 }}
  835. label="创建时间"
  836. >
  837. <span>{this.state.editTime}</span>
  838. </FormItem>
  839. </div>
  840. <div className="clearfix">
  841. <FormItem
  842. labelCol={{ span: 7 }}
  843. wrapperCol={{ span: 12 }}
  844. label="组织职能说明" >
  845. <Input type="textarea" rows={4} placeholder="组织职能说明" value={this.state.editRemarks}
  846. onChange={(e) => { this.setState({ editRemarks: e.target.value }) }}/>
  847. </FormItem>
  848. </div>
  849. <FormItem wrapperCol={{ span: 12, offset: 7 }}>
  850. <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
  851. <Button className="set-submit" type="ghost" onClick={this.edithandleCancel} style={{marginLeft:'100px'}}>取消</Button>
  852. </FormItem>
  853. </Spin>
  854. </Form >
  855. </Modal>
  856. </div>
  857. </div>
  858. </div>
  859. );
  860. }
  861. }));
  862. export default Organization;