From 0ec802e93557b2b1422ddbd68aafa994fa68f455 Mon Sep 17 00:00:00 2001
From: Mr Ke <kelq@hugeinfo.com.cn>
Date: Wed, 27 May 2020 10:04:29 +0800
Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/nsjcy/frontEnd/nsjcy

---
 SunshineIns/src/page/CareList.jsx |  223 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 163 insertions(+), 60 deletions(-)

diff --git a/SunshineIns/src/page/CareList.jsx b/SunshineIns/src/page/CareList.jsx
index bac86f5..4cb2b8d 100644
--- a/SunshineIns/src/page/CareList.jsx
+++ b/SunshineIns/src/page/CareList.jsx
@@ -2,7 +2,8 @@
 
 import HeadView from '../view/HeadView';
 import TableBtnView from '../view/TableBtnView';
-import { Input, Button, DatePicker, Divider, message, Popconfirm, Select, Badge } from 'antd';
+import CommonSearchForm from '../view/CommonSearchForm';
+import { Input, Button, DatePicker, Divider, message, Popconfirm, Select, Badge, Breadcrumb } from 'antd';
 import moment from 'moment';
 import Fetch from '../fetch';
 import TableView from '../view/TableView';
@@ -17,14 +18,45 @@
             return "社会调查";
         case 4:
             return "心理疏导";
+        case 5:
+            return "法律援助";
     }
 }
+
+const taskNodeIds = {
+    1: '跟踪帮教',
+    2: '合适成年人',
+    3: '社会调查',
+    4: '心理疏导',
+    5: '法律援助',
+}
+
+const activityTypeList = [
+    1,
+    2,
+    3,
+    4,
+    5
+]
+const activityStatusIds = {
+    0: '未开始',
+    1: '进行中',
+    2: '已结束',
+    99: '暂停',
+}
+
+const activityStatusList = [
+    0,
+    1,
+    2
+]
 export default class CareList extends React.Component {
     constructor(props) {
         super(props);
         this.state = {
             data: [],
-            formdata: {
+            formData: {
+                __key: Date.now(),
                 page: 1,
                 size: 10,
             },
@@ -34,28 +66,55 @@
     }
 
     componentDidMount() {
-
-        document.title = '社会关护管理';
+        document.title = '社会观护管理';
         this.getData();
     }
 
-    getData = () => {
-        const { formdata } = this.state;
-        Fetch.socialQuery({ ...formdata })
+    setFormData = data => {
+        console.log('form', data);
+        this.setState({
+            formData: data,
+        });
+    }
+
+    searchonClick = data => {
+        console.log('form', data);
+        this.setState({
+            formData: data,
+        });
+        this.setState({ loading: true })
+        Fetch.socialQuery({ ...data })
             .then(res => {
                 console.log(res)
                 for (var i = 0; i < res.rows.length; i++) {
                     res.rows[i]['index'] = i + 1;
                 }
                 this.setState({
-                    data: res.rows
+                    data: res.rows,
+                    loading: false,
+                });
+            });
+    }
+
+    getData = () => {
+        const { formData } = this.state;
+        this.setState({ loading: true })
+        Fetch.socialQuery({ ...formData })
+            .then(res => {
+                console.log(res)
+                for (var i = 0; i < res.rows.length; i++) {
+                    res.rows[i]['index'] = i + 1;
+                }
+                this.setState({
+                    data: res.rows,
+                    loading: false,
                 });
             });
     }
     onInputChange = ({ target: { value, name } }) => {
-        this.setState(({ formdata }) => ({
-            formdata: {
-                ...formdata,
+        this.setState(({ formData }) => ({
+            formData: {
+                ...formData,
                 [name]: value
             }
         }))
@@ -65,8 +124,8 @@
     }
 
     Seaech = () => {
-        const { formdata } = this.state;
-        Fetch.getSweeping(formdata)
+        const { formData } = this.state;
+        Fetch.getSweeping(formData)
             .then(res => {
                 for (var i = 0; i < res.length; i++) {
                     res[i]['index'] = i + 1;
@@ -79,8 +138,24 @@
     Reset = () => {
         this.setState({
             resetKey: Date.now(),
-            formdata: {}
+            formData: {}
         }, this.getData);
+    }
+
+    reboot = (e,status) => {
+        this.setState({ loading: true })
+        Fetch.socialUpdate(e, status).then(res => {
+            if (res.code == 0) {
+                console.log(res)
+                this.setState({ loading: false })
+                message.success(status==0?'重启任务成功':'暂停任务成功');
+                this.getData();
+            } else {
+                this.setState({ loading: false })
+                message.error('删除失败,请联系管理员', 2)
+            }
+        }
+        )
     }
 
     confirm = (e) => {
@@ -115,7 +190,7 @@
             key: 'status',
             render: text => (
                 text == 0 ?
-                    <Badge style={{ backgroundColor: '#6C757C' }} count={'未开始'} /> :text == 1 ? <Badge count={'F1C40F'} style={{ backgroundColor: '#6C757C' }} /> : <Badge count={'已结束'} style={{ backgroundColor: '#2ECC71' }} />
+                    <Badge style={{ backgroundColor: '#6C757C' }} count={'未开始'} /> : text == 1 ? <Badge count={'进行中'} style={{ backgroundColor: '#F1C40F' }} /> : text == 2 ? <Badge count={'已结束'} style={{ backgroundColor: '#2ECC71' }} /> : <Badge count={'暂停'} style={{ backgroundColor: '#2ECC71' }} />
             )
         }, {
             title: '创建时间',
@@ -123,67 +198,95 @@
             key: 'createTime',
             render: text => <span>{moment(text).format("YYYY-MM-DD HH:mm")}</span>
         }, {
+            title: '开始时间',
+            dataIndex: 'startTime',
+            key: 'startTime',
+            render: text => <span>{moment(text).format("YYYY-MM-DD HH:mm")}</span>
+        }, {
+            title: '结束时间',
+            dataIndex: 'endTime',
+            key: 'endTime',
+            render: text => <span>{moment(text).format("YYYY-MM-DD HH:mm")}</span>
+        }, {
             title: '操作',
             key: 'action',
             render: (text, record) => (
                 <span>
-                    <a onClick={() => this.showModal(record.id)}>编辑</a>
-                    <Divider type="vertical" />
-                    <Popconfirm
-                        title="确认删除任务吗?"
-                        id={record.id}
-                        onConfirm={e => this.confirm(record.id)}
-                        okText="确定"
-                        cancelText="取消"
-                    >
-                        <a href="#">删除</a>
-                    </Popconfirm>
                     {
-                        record.status==1?
-                        <React.Fragment>
-                            <Divider type="vertical" />
-                            <a onClick={() => this.showModal(record.id)}>结束任务</a>
-                        </React.Fragment>:''
+                        record.status == 0 ?
+                            <React.Fragment>
+                                <a onClick={() => this.showModal(record.id)}>编辑</a>
+                                <Divider type="vertical" />
+                                <Popconfirm
+                                    title="确认删除任务吗?"
+                                    id={record.id}
+                                    onConfirm={e => this.confirm(record.id)}
+                                    okText="确定"
+                                    cancelText="取消"
+                                >
+                                    <a href="#">删除</a>
+                                    <Divider type="vertical" />
+                                </Popconfirm>
+                                <a onClick={() => this.reboot(record.id, 99)}>暂停</a>
+                            </React.Fragment> :
+                            record.status == 1 ?
+                                <React.Fragment>
+                                    <a onClick={() => this.showModal(record.id)}>查看</a>
+                                    <Divider type="vertical" />
+                                    <a onClick={() => this.showModal(record.id)}>结束任务</a>
+                                    <Divider type="vertical" />
+                                    <a onClick={() => this.reboot(record.id, 99)}>暂停</a>
+                                </React.Fragment> :
+                                <React.Fragment>
+                                    <a onClick={() => this.showModal(record.id)}>查看</a>
+                                    <Divider type="vertical" />
+                                    <a onClick={() => this.reboot(record.id, 0)}>重启</a>
+                                </React.Fragment>
                     }
                 </span>
             ),
         }];
-        const { data, loading, resetKey } = this.state;
+        const { data, loading, resetKey, formData } = this.state;
         return (
             <div className="app-page">
                 <HeadView history={this.props.history} />
-                <div style={{ marginLeft: '90%', marginBottom: '20px', marginTop: '20px' }}>
-                    <Button type="primary" size='large' onClick={() => this.showModal('new')}>新建任务</Button>
-                </div>
                 {/* <Breadcrumb style={{ padding: '20px' }}>
                     <Breadcrumb.Item><a href="">后台中心</a></Breadcrumb.Item>
                     <Breadcrumb.Item>社会关护</Breadcrumb.Item>
                 </Breadcrumb> */}
-                <TableBtnView name={''} key={resetKey}>
-                    <Select
-                        style={{ width: 200 }}
-                        placeholder="根据举报性质查询"
-                        onChange={(value) => this.onInputChange({ target: { name: 'nature', value } })}
-                    >
-                        <Option value="1">涉黑涉恶违法犯罪行为</Option>
-                        <Option value="2">涉黑涉恶违法犯罪保护伞</Option>
-                        <Option value="3">其他</Option>
-                    </Select>
-                    <Input placeholder="根据内容模糊查询" style={{ width: "200px" }} name='content' onChange={this.onInputChange} />
-                    <Select
-                        style={{ width: 200 }}
-                        placeholder="根据状态查询"
-                        onChange={(value) => this.onInputChange({ target: { name: 'status', value } })}
-                    >
-                        <Option value="2">已回复</Option>
-                        <Option value="1">待回复</Option>
-                    </Select>
-
-                    <DatePicker onChange={(_, value) => this.onInputChange({ target: { name: 'createTime', value } })} placeholder="根据创建时间查询" />
-                    <Button type="primary" onClick={this.Seaech}>查询</Button>
-                    <Button onClick={this.Reset}>重置</Button>
-                </TableBtnView>
-                <TableView columns={columns} data={data} pageSize='10' size='default' loading={loading} />
+                <div style={{ marginLeft: '90%', marginBottom: '20px', marginTop: '20px' }}>
+                    <Button type="primary" size='large' onClick={() => this.showModal('new')}>新建任务</Button>
+                </div>
+                <div style={{ background: '#fff', margin: 20 }}>
+                    <CommonSearchForm
+                        {...this.props}
+                        formData={formData}
+                        setFormData={this.setFormData}
+                        searchonClick={this.searchonClick}
+                        pathName={this.props.location.pathname}
+                        data={[
+                            {
+                                type: 'select', name: '任务类型', label: '任务类型', key: 'taskType', list: activityTypeList.map(key => ({
+                                    id: key,
+                                    name: taskNodeIds[key]
+                                })),
+                            },
+                            {
+                                type: 'select', name: '状态', label: '状态', key: 'status', list: activityStatusList.map(key => ({
+                                    id: key,
+                                    name: activityStatusIds[key]
+                                })),
+                            },
+                            {
+                                type: 'rangePicker',
+                                label: '创建时间',
+                                name: JSON.stringify(['开始时间', '结束时间']),
+                                key: JSON.stringify(['startTime', 'endTime']),
+                                keylistName: 'rangeTimelist',
+                            },
+                        ]} />
+                    <TableView columns={columns} data={data} pageSize='10' size='default' loading={loading} />
+                </div>
             </div>
         );
     }

--
Gitblit v1.8.0