| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458 | 
							- import React from 'react';
 
- import ajax from 'jquery/src/ajax/xhr.js';
 
- import $ from 'jquery/src/ajax';
 
- import { Form, Radio, Button, Input, Select, Spin, Table, message, Modal, Popconfirm } from 'antd';
 
- import { getPost } from '@/tools';
 
- const Assign = React.createClass({
 
-     departmentList() {
 
-         this.setState({
 
-             loading: true
 
-         });
 
-         $.ajax({
 
-             method: "get",
 
-             dataType: "json",
 
-             crossDomain: false,
 
-             url: globalConfig.context + "/api/admin/organization/selectSuperId",
 
-             data: {
 
-             },
 
-             success: function (data) {
 
-                 let thedata = data.data;
 
-                 let theArr = [];
 
-                 if (!thedata) {
 
-                     if (data.error && data.error.length) {
 
-                         message.warning(data.error[0].message);
 
-                     };
 
-                     thedata = {};
 
-                 } else {
 
-                     thedata.map(function (item, index) {
 
-                         theArr.push({
 
-                             key: index,
 
-                             name: item.name,
 
-                             id: item.id,
 
-                         })
 
-                     })
 
-                 }
 
-                 this.setState({
 
-                     departmentArr: theArr,
 
-                 })
 
-             }.bind(this),
 
-         }).always(function () {
 
-             this.setState({
 
-                 loading: false
 
-             });
 
-         }.bind(this));
 
-     },
 
-     getInitialState() {
 
-         return {
 
-             contact: 0,
 
-             selectedRows: [],
 
-             searchMore: true,
 
-             loading: false,
 
-             visible: false,
 
-             showDesc: false,
 
-             pagination: {
 
-                 defaultCurrent: 1,
 
-                 defaultPageSize: 10,
 
-                 showQuickJumper: true,
 
-                 pageSize: 10,
 
-                 onChange: function (page) {
 
-                     this.loadData(page);
 
-                 }.bind(this),
 
-                 showTotal: function (total) {
 
-                     return '共' + total + '条数据';
 
-                 }
 
-             },
 
-             userList: [
 
-                 {
 
-                     title: '用户姓名',
 
-                     dataIndex: 'name',
 
-                     key: 'name',
 
-                     width: 100
 
-                 }, {
 
-                     title: '部门机构',
 
-                     dataIndex: 'departmentName',
 
-                     key: 'departmentName',
 
-                     width: 150,
 
-                     render: text => {
 
-                         return text && text.length > 12 ? <span title={text}>{text.substr(0, 12) + '...'}</span> : text
 
-                     }
 
-                 }, {
 
-                     title: '职务',
 
-                     dataIndex: 'position',
 
-                     key: 'position',
 
-                     width: 100,
 
-                 }, {
 
-                     title: '联系手机',
 
-                     dataIndex: 'contactMobile',
 
-                     key: 'contactMobile',
 
-                     width: 100
 
-                 }, {
 
-                     title: '操作',
 
-                     dataIndex: 'abc',
 
-                     key: 'abc',
 
-                     width: 100,
 
-                     render: (text, record, index) => {
 
-                         if (this.props.data.length) {
 
-                             return (
 
-                                 // <Popconfirm title={'您确认将所选订单分配给【'+record.departmentName+'-'+record.name+'】?'} onConfirm={(e)=>{this.confirmSelect1(record)}} okText="确认" cancelText="取消">
 
-                                 //     <Button style={{marginRight:'5px'}} type="primary">选定</Button>
 
-                                 // </Popconfirm>
 
-                                 <Popconfirm title={'您确认将所选订单分配给【' + record.departmentName + '-' + record.name + '】?'} onConfirm={(e) => { this.setState({ remarksVisible: true, remarks: "", fn: this.confirmSelect1, record }) }} okText="确认" cancelText="取消">
 
-                                     <Button style={{ marginRight: '5px' }} type="primary">选定</Button>
 
-                                 </Popconfirm>
 
-                             )
 
-                         } else {
 
-                             return (
 
-                                 // <Popconfirm title={'您确认将' + this.props.title + ' 【' + this.props.data.orderNo + '】 分配给【' + record.departmentName + '-' + record.name + '】?'} onConfirm={(e) => { this.confirmSelect(record) }} okText="确认" cancelText="取消">
 
-                                 //     <Button style={{ marginRight: '5px' }} type="primary">选定</Button>
 
-                                 // </Popconfirm>
 
-                                 <Popconfirm title={'您确认将' + this.props.title + ' 【' + this.props.data.orderNo + '】 分配给【' + record.departmentName + '-' + record.name + '】?'} onConfirm={(e) => { this.setState({ remarksVisible: true, remarks: "", fn: this.confirmSelect, record }) }} okText="确认" cancelText="取消">
 
-                                     <Button style={{ marginRight: '5px' }} type="primary">选定</Button>
 
-                                 </Popconfirm>
 
-                             )
 
-                         }
 
-                     }
 
-                 }
 
-             ],
 
-             dataSource: [],
 
-         };
 
-     },
 
-     //操作分配
 
-     confirmDelet(index) {
 
-         this.setState({
 
-             orderNos: index.orderNo,
 
-         });
 
-     },
 
-     onCancel() {
 
-         this.setState({
 
-             visible: false
 
-         })
 
-         this.props.closeDesc(false, false);
 
-     },
 
-     onShow() {
 
-         this.setState({
 
-             visible: false,
 
-         });
 
-         this.props.closeDesc(false, true);
 
-     },
 
-     //分配对象列表
 
-     contactList(item = {}, nub) {
 
-         this.setState({
 
-             loading: true
 
-         });
 
-         let api = !nub ? '/api/admin/frequentContactsList' : '/api/admin/superviser/adminList';
 
-         $.ajax({
 
-             method: "get",
 
-             dataType: "json",
 
-             crossDomain: false,
 
-             url: globalConfig.context + api,
 
-             data: {
 
-                 pageNo: 1,
 
-                 pageSize: 99,
 
-                 departmentId: this.state.departmenttList,
 
-                 name: this.state.financeNameSearch,
 
-                 roleName: this.props.roleName
 
-             },
 
-             success: function (data) {
 
-                 let theArr = [];
 
-                 if (!data.data) {
 
-                     if (data.error && data.error.length) {
 
-                         message.warning(data.error[0].message);
 
-                     };
 
-                 } else {
 
-                     for (let i = 0; i < data.data.list.length; i++) {
 
-                         let thisdata = data.data.list[i];
 
-                         theArr.push({
 
-                             key: i,
 
-                             id: thisdata.id,
 
-                             contactId: thisdata.contactId,
 
-                             userNo: thisdata.userNo,
 
-                             name: thisdata.name,
 
-                             departmentName: thisdata.departmentName,
 
-                             departmentId: thisdata.departmentId,
 
-                             position: thisdata.roles[0],
 
-                             contactMobile: thisdata.contactMobile,
 
-                         });
 
-                     };
 
-                 };
 
-                 this.setState({
 
-                     distributionList: theArr,
 
-                 });
 
-             }.bind(this),
 
-         }).always(function () {
 
-             this.setState({
 
-                 loading: false
 
-             });
 
-         }.bind(this));
 
-     },
 
-     //选定对象
 
-     confirmSelect(record) {
 
-         if (this.state.remarks == "") {
 
-             message.warning("请填写备注信息")
 
-             return
 
-         }
 
-         this.setState({
 
-             loading: true
 
-         });
 
-         $.ajax({
 
-             method: this.props.requestMethod,
 
-             dataType: "json",
 
-             crossDomain: false,
 
-             url: globalConfig.context + this.props.selApi,
 
-             // 			data:{
 
-             // 				taskId:this.props.data.id,//任务ID
 
-             // 				taskReceiverId:this.state.contact?record.id:record.contactId,//分配人物ID
 
-             // 				specially:this.props.specially,//是否是咨询师管理员
 
-             // 				orderNo:this.state.orderNo,
 
-             // 				financeId: this.state.contact?record.id:record.contactId,    //分配人物id
 
-             // 				approval:this.props.data.approval,   //是否特批
 
-             // 				newFinance:this.state.contact?record.id:record.contactId
 
-             //
 
-             // 			}
 
-             data: this.judge(this.props, record)
 
-         }).done(function (data) {
 
-             if (!data.error.length) {
 
-                 message.success('派单成功');
 
-                 this.setState({
 
-                     remarksVisible: false
 
-                 })
 
-                 this.onShow();
 
-                 if (this.props.reset) {
 
-                     this.props.reset()
 
-                 }
 
-             } else {
 
-                 message.warning(data.error[0].message);
 
-             };
 
-             this.setState({
 
-                 loading: false,
 
-             });
 
-         }.bind(this));
 
-     },
 
-     confirmSelect1(record) {
 
-         if (this.state.remarks == "") {
 
-             message.warning("请填写备注信息")
 
-             return
 
-         }
 
-         let orderNo = this.props.data.join(",")
 
-         this.setState({
 
-             loading: true
 
-         });
 
-         $.ajax({
 
-             method: this.props.requestMethod,
 
-             dataType: "json",
 
-             crossDomain: false,
 
-             url: globalConfig.context + this.props.selApi,
 
-             // 			data:{
 
-             // 				taskId:this.props.data.id,//任务ID
 
-             // 				taskReceiverId:this.state.contact?record.id:record.contactId,//分配人物ID
 
-             // 				specially:this.props.specially,//是否是咨询师管理员
 
-             // 				orderNo:this.state.orderNo,
 
-             // 				financeId: this.state.contact?record.id:record.contactId,    //分配人物id
 
-             // 				approval:this.props.data.approval,   //是否特批
 
-             // 				newFinance:this.state.contact?record.id:record.contactId
 
-             //
 
-             // 			}
 
-             data: {
 
-                 orderNo,
 
-                 financeId: record.id,
 
-                 remarks: this.state.remarks
 
-             }
 
-         }).done(
 
-             function (data) {
 
-                 if (!data.error.length) {
 
-                     message.success("派单成功");
 
-                     this.onShow();
 
-                     this.setState({
 
-                         remarksVisible: false
 
-                     })
 
-                     if (this.props.reset) {
 
-                         this.props.reset();
 
-                     }
 
-                 } else {
 
-                     message.warning(data.error[0].message);
 
-                 }
 
-                 this.setState({
 
-                     loading: false
 
-                 });
 
-             }.bind(this)
 
-         );
 
-     },
 
-     /* 区分分派和两种转交 */
 
-     judge(props, record) {
 
-         if (props.fenpaiData === 8) {
 
-             return {
 
-                 taskId: props.data.id,//任务ID
 
-                 taskReceiverId: this.state.contact ? record.id : record.contactId,//分配人物ID
 
-                 remarks: this.state.remarks,
 
-                 type: this.props.type,
 
-             };
 
-         } else if (props.fenpaiData === 4) {
 
-             return {
 
-                 orderNo: this.state.orderNo,
 
-                 financeId: this.state.contact ? record.id : record.contactId,    //分配人物id
 
-                 approval: props.data.approval,   //是否特批
 
-                 remarks: this.state.remarks
 
-             };
 
-         } else {
 
-             return {
 
-                 orderNo: this.state.orderNo,
 
-                 newFinance: this.state.contact ? record.id : record.contactId,
 
-                 remarks: this.state.remarks
 
-             };
 
-         }
 
-     },
 
-     searchOrder() {
 
-         this.contactList({}, this.state.contact);
 
-     },
 
-     resetOrder() {
 
-         this.state.departmenttList = undefined;
 
-         this.state.financeNameSearch = '';
 
-         this.state.contact = 0;
 
-         this.setState({
 
-             distributionList: []
 
-         });
 
-     },
 
-     //初始加载组件,和主页面一起加载
 
-     componentDidMount() {},
 
-     //组件调用初始加载函数,可用条件控制,在调用组件时可以拿到参数
 
-     componentWillReceiveProps(nextProps) {
 
-         this.state.visible = nextProps.showDesc;
 
-         if (nextProps.showDesc) {
 
-             this.contactList(nextProps, 0);
 
-             this.departmentList()
 
-             this.setState({
 
-                 orderNo: nextProps.data.orderNo
 
-             })
 
-         }
 
-         this.setState({
 
-             contact: 0
 
-         })
 
-         // console.log("kan", this.props.specially);
 
-         // console.log("kan22", this.state);
 
-     },
 
-     render() {
 
-         const FormItem = Form.Item;
 
-         let departmentArr = this.state.departmentArr || [];
 
-         return (
 
-             <div className="user-content" >
 
-                 {this.state.visible ? <Modal maskClosable={false} visible={this.state.visible}
 
-                     onOk={this.onShow} onCancel={this.onCancel}
 
-                     width='800px'
 
-                     title='选择'
 
-                     footer=''
 
-                     className="admin-desc-content">
 
-                     <Form layout="horizontal" onSubmit={this.handleSubmit} id="demand-form" style={{ paddingBottom: '40px' }} >
 
-                         <Spin spinning={this.state.loading}>
 
-                             <div>
 
-                                 <span style={{ marginRight: 5 }}>常用联系人:</span>
 
-                                 <Radio.Group onChange={(e) => { this.setState({ contact: e.target.value }) }} value={this.state.contact}>
 
-                                     <Radio value={0}>是</Radio>
 
-                                     <Radio value={1}>否</Radio>
 
-                                 </Radio.Group>
 
-                                 <Select placeholder="部门"
 
-                                     style={{ width: 150, marginRight: '10px', marginLeft: '10px' }}
 
-                                     value={this.state.departmenttList}
 
-                                     onChange={(e) => { this.setState({ departmenttList: e }) }}>
 
-                                     {
 
-                                         departmentArr.map(function (item) {
 
-                                             return <Select.Option key={item.id} >{item.name}</Select.Option>
 
-                                         })
 
-                                     }
 
-                                 </Select>
 
-                                 <Input placeholder="姓名" style={{ width: '150px', marginLeft: '10px' }}
 
-                                     value={this.state.financeNameSearch}
 
-                                     onChange={(e) => { this.setState({ financeNameSearch: e.target.value }); }} />
 
-                                 <Button type="primary" onClick={this.searchOrder} style={{ marginLeft: '10px', marginRight: '10px' }}>搜索</Button>
 
-                                 <Button onClick={this.resetOrder}>重置</Button>
 
-                             </div>
 
-                             <div className="patent-table" style={{ marginTop: '10px' }}>
 
-                                 <Spin spinning={this.state.loading}>
 
-                                     <Table size="middle" columns={this.state.userList}
 
-                                         dataSource={this.state.distributionList}
 
-                                         pagination={false}
 
-                                         scroll={{ y: 400 }}
 
-                                     />
 
-                                 </Spin>
 
-                             </div>
 
-                         </Spin>
 
-                     </Form>
 
-                 </Modal> : null}
 
-                 {this.state.remarksVisible ? <Modal
 
-                     maskClosable={false}
 
-                     visible={this.state.remarksVisible}
 
-                     onOk={e => {
 
-                         this.setState({
 
-                             remarksVisible: false
 
-                         })
 
-                     }}
 
-                     onCancel={e => {
 
-                         this.setState({
 
-                             remarksVisible: false
 
-                         })
 
-                     }}
 
-                     width="400px"
 
-                     title={"备注"}
 
-                     footer=""
 
-                     className="admin-desc-content"
 
-                 >
 
-                     <Form layout="horizontal" id="demand-form">
 
-                         <Spin spinning={this.state.loading}>
 
-                             <div className="clearfix">
 
-                                 <FormItem
 
-                                     labelCol={{ span: 4 }}
 
-                                     wrapperCol={{ span: 16 }}
 
-                                     label="备注"
 
-                                 >
 
-                                     <Input
 
-                                         type="textarea"
 
-                                         placeholder="请输入备注"
 
-                                         rows={4}
 
-                                         value={this.state.remarks}
 
-                                         onChange={e => {
 
-                                             this.setState({ remarks: e.target.value });
 
-                                         }}
 
-                                     />
 
-                                 </FormItem>
 
-                             </div>
 
-                             <div className="clearfix">
 
-                                 <Button
 
-                                     className="cancel"
 
-                                     type="primary"
 
-                                     onClick={e => {
 
-                                         // console.log(this.state.fn, this.state.record)
 
-                                         this.state.fn(this.state.record)
 
-                                     }}
 
-                                     style={{ marginLeft: "50px" }}
 
-                                     htmlType="submit"
 
-                                 >
 
-                                     确定
 
-                     </Button>
 
-                                 <Button
 
-                                     className="cancel"
 
-                                     type="ghost"
 
-                                     onClick={e => {
 
-                                         this.setState({
 
-                                             remarksVisible: false
 
-                                         })
 
-                                     }}
 
-                                     style={{ marginLeft: "50px" }}
 
-                                 >
 
-                                     取消
 
-                     </Button>
 
-                             </div>
 
-                         </Spin>
 
-                     </Form>
 
-                 </Modal> : null}
 
-             </div>
 
-         );
 
-     }
 
- });
 
- export default Assign;
 
 
  |