diff --git a/config/routes.js b/config/routes.js index 937cdb2..f7a9bc2 100644 --- a/config/routes.js +++ b/config/routes.js @@ -24,8 +24,16 @@ export default [ component: './ResultData', }, { - path:"/GZT", - component:"./GZT" + path:"/ZBSX", + component:"./ZBSX" + }, + { + path:"/YBSX", + component:"./YBSX" + }, + { + path:"/JDCX", + component:"./JDCX" }, { path: '/', diff --git a/src/pages/JDCX/TableList/index.jsx b/src/pages/JDCX/TableList/index.jsx new file mode 100644 index 0000000..5c1caa7 --- /dev/null +++ b/src/pages/JDCX/TableList/index.jsx @@ -0,0 +1,343 @@ +import React, { useState, useEffect } from 'react'; +import { Table, Modal, Button, Pagination, Tooltip } from 'antd'; +import { connect } from 'umi'; +import moment from 'moment'; + +import TopSearch from '../TopSearch'; +import CK from '@/components/Tabs-CK'; +import { getDicsName } from '@/utils/utils'; +import { AJZT, UserLevel } from '@/utils/constants'; +import { getHGIcons, ExampleBar, getTimeLine } from '@/components/MyIcons'; + +const initDateType = 'sevenDays'; +const initSearchParams = { + page: 1, + size: 10, + startTime: moment().add(-7, 'days'), + endTime: moment(), +}; + +const TableList = (props) => { + const { msg, sysToken, refesh, isLocationInBu, locationType, type, global } = props; + const [searchParams, setSearchParams] = useState(initSearchParams); + const [tableData, setTableData] = useState(null); + // const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [nowModalComponent, setNowModalComponent] = useState(null); + const [categoryList, setCategoryList] = useState([]); + + const getList = (params) => { + const newParams = isLocationInBu && type === 'sheng' ? { ...params, sign: 1 } : params; // 部里发布 并且查询省里的列表加额外参数 + const newSysToken = (locationType === UserLevel.Province.value && type === 'sheng')|| (locationType === UserLevel.City.value && type === 'shi') ? '' : sysToken; + props.fetchDoneList({ params: newParams, sysToken: newSysToken }).then((data) => setTableData(data)); + // console.log(sysToken); + }; + // debugger; + const getCategoryList = () => { + let newSysToken = sysToken; + let isNotGateway = false; + if (isLocationInBu) { // 在部級環境下 + if (type === 'sheng') isNotGateway = true; // systoken需要加到url最後面 + } + // else if (locationType === UserLevel.Province.value) { // 在省級環境下 + // newSysToken = type === 'sheng' ? 'sheng' : type === 'shi' ? 'shi' : sysToken; + // } else if (locationType === UserLevel.City.value) { // 在市級環境下 + // newSysToken = type; + // } + props + .fetchCategoryList({ + params: {}, + sysToken: newSysToken, + isNotGateway + }) + .then((res) => { + setCategoryList(res); + }); + }; + // debugger; + // const getDict = (params) => { + // props.fetchDict({ params, sysToken }); + // } + + useEffect(() => { + if (!msg) { + getList(searchParams); + } + }, [refesh]); + + useEffect(() => { + // 点击模型详情跳转过来的,参数由跳转带过来, + if (msg) { + setSearchParams(msg); + getList({ ...msg, searchType: 1 }); // 给接口添加参数,此时接口模型名称不是绝对匹配查询,不是模糊查询 + } + }, [msg]); + + useEffect(() => { + getCategoryList(); // 专项类别 + }, [type]); + + // 点击查询 + const onSearch = (params) => { + setSearchParams({ ...searchParams, ...params, page: 1 }); + getList({ ...searchParams, ...params, page: 1 }); + }; + + const handleReset = () => { + setSearchParams(initSearchParams); + getList(initSearchParams); + }; + + const changePage = (page) => { + setSearchParams({ ...searchParams, page }); + getList({ ...searchParams, page }); + }; + + // const rowSelection = { + // selectedRowKeys, + // onChange: selectedRowKeys, + // getCheckboxProps: record => ({ + // disabled: selectAbleType === 'folder' ? record.isDir !== 1 : record.isDir === 1, + // }), + // }; + + const columns = [ + { + title: '序号', + dataIndex: 'id', + key: 'id', + render: (text, record, index) => index + 1, + width: '5%', + }, + { + title: '预警编号', + dataIndex: 'yjBh', + width: '22%', + render: (text, record) => { + return ( + + {getHGIcons(record?.ccjg)} + {text} + + ); + }, + }, + { + title: '模型名称', + dataIndex: 'mxMc', + width: '7%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '问题类型', + dataIndex: 'cjwtLx', + width: '7%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '承办督察部门', + dataIndex: 'sadwMc', + width: '9%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '问题简述', + dataIndex: 'wtjs', + width: '7%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '当前办理单位', + dataIndex: 'dqbldwMc', + width: '9%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '当前办理人', + dataIndex: 'dqblrMc', + width: '8%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '预警流向', + dataIndex: 'blfsMc', + width: '7%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '最新状态', + dataIndex: 'dqZt', + width: '7%', + render: (text) => ( + + {getDicsName(AJZT, text)} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '最新更新时间', + dataIndex: 'updateTime', + width: '9%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '最迟反馈时间', + dataIndex: 'zcfkSj', + width: '9%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '时限', + key: 'id', + dataIndex: 'fkyj', + width: '5%', + render: (text) => getTimeLine(text), + // fixed: 'right', + }, + { + title: '操作', + key: 'id', + dataIndex: 'id', + width: '6%', + render: (text, record) => { + return ( + + ); + }, + fixed: 'right', + }, + ]; + + return ( +
+ + changePage(page), + // showSizeChanger: true, + // onShowSizeChange: () => this.onShowSizeChange, + // pageSizeOptions: ['10', '20', '50', '100', '500', '1000'], + /> +
+ + changePage(page)} + showTotal={(total) => `共 ${total} 条`} + /> +
+ {nowModalComponent && ( + setNowModalComponent(null)} + // style={{ background: '#fff', paddingBottom: 0, minHeight: 560 }} + maskClosable={false} + width={1000} + > + {nowModalComponent} + + )} + + ); +}; + +const mapStateToProps = ({ user, global, doing, loading }) => ({ + user: user.currentUser, + global, + doing, + loading: loading.effects['doing/fetchProgressList'] || false, +}); +const mapDispatchToProps = (dispatch) => ({ + // 列表 + fetchDoneList({ params, sysToken }) { + const chooseTime = {}; + if (params.startTime) + chooseTime.startTime = `${params.startTime.format('YYYY-MM-DD')} 00:00:00`; + if (params.endTime) chooseTime.endTime = `${params.endTime.format('YYYY-MM-DD')} 23:59:59`; + return dispatch({ + type: 'doing/fetchProgressList', + payload: { params: { ...params, ...chooseTime }, sysToken }, + }); + }, + fetchDict(params) { + return dispatch({ type: 'global/fetchDict', payload: params }); + }, + // 专项类别 + fetchCategoryList({ params, sysToken, isNotGateway }) { + return dispatch({ + type: 'doing/fetchCategoryList', + payload: { params: { ...params }, sysToken, isNotGateway }, + }); + }, +}); +export default connect(mapStateToProps, mapDispatchToProps)(TableList); diff --git a/src/pages/JDCX/TopSearch/README.md b/src/pages/JDCX/TopSearch/README.md new file mode 100644 index 0000000..573c93e --- /dev/null +++ b/src/pages/JDCX/TopSearch/README.md @@ -0,0 +1 @@ +在办 /已办 /进度查询 /列表上部查询 diff --git a/src/pages/JDCX/TopSearch/index.jsx b/src/pages/JDCX/TopSearch/index.jsx new file mode 100644 index 0000000..17e27b9 --- /dev/null +++ b/src/pages/JDCX/TopSearch/index.jsx @@ -0,0 +1,412 @@ +import React, { useState, useEffect } from 'react'; +import { Row, Col, Form, Input, Radio, Button, DatePicker, Select, Checkbox, message } from 'antd'; +import moment from 'moment'; + +import NextOrg from '@/components/NextOrg'; +import { AJZT, YJLX, BLFS, SLFS, CCQK, YQQK, CSQK } from '@/utils/constants'; + +import styles from './index.less'; + +const { Item } = Form; +const { Option } = Select; + +const upGrid = { xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 8 }; +const bottomGrid = { xs: 12, sm: 12, md: 12, lg: 6, xl: 6, xxl: 4 }; + +const layout = { + labelCol: { span: 5 }, + wrapperCol: { span: 19 }, +}; + +const latterLayout = { + labelCol: { span: 10 }, + wrapperCol: { span: 14 }, +}; + +const dateTypeCounts = [ + { + key: 'threeDays', + label: '近3天', + start: moment().add(-3, 'days'), + end: moment(), + }, + { + key: 'sevenDays', + label: '近7天', + start: moment().add(-7, 'days'), + end: moment(), + }, + { + key: 'months', + label: '近一个月', + start: moment().add(-1, 'months'), + end: moment(), + }, + { + key: 'quarters', + label: '近三个月', + start: moment().add(-1, 'quarters'), + end: moment(), + }, + { + key: 'years', + label: '近一年', + start: moment().add(-1, 'years'), + end: moment(), + }, +]; + +const TopSearch = (props) => { + const { categoryList } = props; + const [form] = Form.useForm(); + const { initDateType } = props; + const [dateType, setDateType] = useState(initDateType); + const [boxHidden, setBoxHidden] = useState(); + + useEffect(() => { + if (props.changeParams) { + setDateType('custom'); // 点击消息跳转,时间改成自定义 + form.setFieldsValue({ ...props.changeParams, xfsj: 'custom', zxZbId: '' }); + } + }, [props.changeParams]); + + const handleReset = () => { + form.resetFields(); + setDateType(initDateType); + props.handleReset(); + }; + + const handleDateTypeChange = (e) => { + setDateType(e.target.value); + }; + + const renderRange = () => ( + + + + + ~ + + + + + ); + + const onFinish = (value) => { + const copyValue = { ...value }; + if (value.xfsj !== 'custom') { + const c = dateTypeCounts?.find((e) => e.key === value.xfsj); + copyValue.startTime = c?.start; + copyValue.endTime = c?.end; + } + if (value.startTime && value.endTime && value.startTime.valueOf() > value.endTime.valueOf()) { + message.warning('查询条件投诉开始时间不能大于投诉结束时间'); + return; + } + delete copyValue.xfsj; + delete copyValue.sadwMc; + delete copyValue.dqbldwMc; + // Object.keys(copyValue).forEach(key => { + // if (key !== 'startTime' && key !== 'endTime' && copyValue[key]) { + // copyValue[key] = JSON.stringify(copyValue[key]); + // } + // }) + props.onSearch(copyValue); + }; + + const onFinishFailed = () => {}; + + const onChangeOrg = (params) => { + const { bm } = params; + form.setFieldsValue({ xjdwBm: bm }); + }; + + // 专项类别更改 + const handleChange = (keyField, evt, options) => { + // const value = evt.target ? evt.target.value : evt; + if (keyField === 'zxZbId') { + form.setFieldsValue({ zxLb: options.children }); + } + }; + // 跨级派发checkbox变化 + const kjpfBoxChange = (e) => { + console.log('checked = ', e.target.checked); + if (e.target.checked) { + setBoxHidden(e.target.checked); + } else { + setBoxHidden(e.target.checked); + } + }; + // select可搜索 + const filterOption = (inputValue, option) => { + return option.children.indexOf(inputValue) > -1; + }; + + const renderDw = () => { + return ( + + + + + + ); + // if (blfs === BLFS.DB.value) { + // return (+ // + // {/* 办理方式是督办 */} + // + // + // ) + // } + // if (blfs === BLFS.ZB.value) { + // return ( + // + // + // {/* 办理方式是转办 */} + // + // + // + // ) + // } + }; + + return ( +
+
+ + +
+ + + + + + + + + + {boxHidden ? null : ( + + + + {dateTypeCounts.map((range) => ( + + {range.label} + + ))} + 自定义 + + + {dateType === 'custom' ? renderRange() : null} + + )} + + + form.setFieldsValue({ sadwBm: bm })} + /> + + + + + + form.setFieldsValue({ dqbldwBm: bm })} + /> + + + + + + + + + + + + {Object.keys(SLFS).map((key) => { + return ( + + {SLFS[key].name} + + ); + })} + + + + {boxHidden ? null : ( + + + + {Object.keys(YQQK).map((key) => { + return ( + + {YQQK[key].name} + + ); + })} + + + + )} + + + + {Object.keys(CCQK).map((key) => { + return ( + + {CCQK[key].name} + + ); + })} + + + + + + + + + {!boxHidden ? ( + + + + + + ) : null} + + + + + + + + + + + 跨级派发 + + + + + + prevValues.blfs !== currentValues.blfs} + > + {({ getFieldValue }) => { + return getFieldValue('blfs') === YJLX.XJBL.value ? ( + <> + + + + + + + prevValues.blfs !== currentValues.blfs || + prevValues.nbfs !== currentValues.nbfs + } + > + {() => { + return renderDw(); + }} + + + + ) : null; + }} + + + +
+ + +
+ + + + + ); +}; + +export default TopSearch; diff --git a/src/pages/JDCX/TopSearch/index.less b/src/pages/JDCX/TopSearch/index.less new file mode 100644 index 0000000..990a381 --- /dev/null +++ b/src/pages/JDCX/TopSearch/index.less @@ -0,0 +1,12 @@ +.TopSearch { + padding: 15px; + background-color: #fff; +} + +.radioBox { + :global { + .ant-radio-button-wrapper { + padding: 0 9px; + } + } +} diff --git a/src/pages/JDCX/index.jsx b/src/pages/JDCX/index.jsx new file mode 100644 index 0000000..acad0a7 --- /dev/null +++ b/src/pages/JDCX/index.jsx @@ -0,0 +1,153 @@ +import React, { useState } from 'react'; +import { Tabs } from 'antd'; +import { connect, history } from 'umi'; + +import ProvinceSelect from '@/components/ProvinceSelect'; + +import { secondTabName } from '@/utils/utils'; +import { UserLevel, processTab } from '@/utils/constants'; + +import TableList from './TableList'; + +const { TabPane } = Tabs; + +const Progress = (props) => { + const { user, isLocationInBu, locationType } = props; + const tabList = processTab(locationType); + const [activeKey, setActiveKey] = useState('department'); + const [selectdProvince, setSelectdProvince] = useState(''); + const [selectdCity, setSelectdCity] = useState(''); + const [showProvinceSelect, setShowProvinceSelect] = useState(isLocationInBu); + const [departmentMsg, setDepartmentMsg] = useState(null); + const [provinceMsg, setProvinceMsg] = useState(null); + const [cityMsg, setCityMsg] = useState(null); + const [ifReload, setIfReload] = useState(null); // 页面是否要重新加载 为从待办跳转过来准备 + + const changeTab = (key) => { + setActiveKey(key); + setShowProvinceSelect(isLocationInBu); + setDepartmentMsg(null); + setProvinceMsg(null); + setCityMsg(null); + }; + + if (props.location.params) { + // 监控路由参数 点击消息跳转过来的会带params参数 + const { type, msg, reload } = props.location.params; // type: 展示tab类型 msg: 消息带过来的查询条件 + if (reload === ifReload) { + // 防止不断循环 + return false; + } + setIfReload(reload); + if (type === 'department') { + // 跳转到部级下发 + setActiveKey(type); + setDepartmentMsg(msg); + } else if (type === 'province') { + // 跳转到省级下发 + setShowProvinceSelect(false); + setActiveKey(type); + setProvinceMsg(msg); + } else if (type === 'city') { // 跳转到市级下发 + setShowProvinceSelect(false); + setActiveKey(type); + setCityMsg(msg); + } + history.push('/progresssearch'); // 清空参数 防止误判 + } + + const onSelectProvince = (key) => { + setSelectdProvince(key); + setActiveKey('province'); + setShowProvinceSelect(false); + }; + + const onSelectCity = (key) => { + setSelectdCity(key); + setActiveKey('city'); + setShowProvinceSelect(false); + } + + const renderContent = () => { + console.log(props.dispatch); + if (activeKey === 'department') { + return ( + + ); + } + if (activeKey === 'province') { + if (showProvinceSelect) { + return ( + + ); + } else { + return ( + + ); + } + } + if (activeKey === 'city'){ + return + } + + // return ( + // + // ); + }; + + return ( +
+ + {/* + + + */} + { + tabList.map((item) => { + return ( + + ); + }) + } + + {renderContent()} +
+ ); +}; + +export default connect(({ user }) => ({ + user: user.currentUser, + isLocationInBu: user.isLocationInBu, + locationType: user.locationType +}))(Progress); diff --git a/src/pages/YBSX/TableList/index.jsx b/src/pages/YBSX/TableList/index.jsx new file mode 100644 index 0000000..086e97b --- /dev/null +++ b/src/pages/YBSX/TableList/index.jsx @@ -0,0 +1,300 @@ +import React, { useState, useEffect } from 'react'; +import { Table, Modal, Button, Tooltip, Pagination } from 'antd'; +import { connect } from 'umi'; +import moment from 'moment'; + +import TopSearch from '../TopSearch'; +import CK from '@/components/Tabs-CK'; +import { getDicsName } from '@/utils/utils'; +import { AJZT, UserLevel } from '@/utils/constants'; +import { getHGIcons, ExampleBar } from '@/components/MyIcons'; + +const initDateType = 'sevenDays'; +const initSearchParams = { + page: 1, + size: 10, + startTime: moment().add(-7, 'days'), + endTime: moment(), +}; + +const TableList = (props) => { + const { sysToken, refesh, isLocationInBu, type, locationType } = props; + const [searchParams, setSearchParams] = useState(initSearchParams); + const [tableData, setTableData] = useState(null); + // const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [nowModalComponent, setNowModalComponent] = useState(null); + + const getList = (params) => { + const newParams = isLocationInBu && type === 'sheng' ? { ...params, sign: 1 } : params; // 部里发布 并且查询省里的列表加额外参数 + const newSysToken = (locationType === UserLevel.Province.value && type === 'sheng')|| (locationType === UserLevel.City.value && type === 'shi') ? '' : sysToken; + props.fetchDoneList({ params: newParams, sysToken:newSysToken }).then((data) => setTableData(data)); + }; + + const hideModal = (flag) => { + if (flag) { + getList(searchParams); + } + setNowModalComponent(null); + }; + + useEffect(() => { + getList(searchParams); + }, [refesh]); + + // 点击查询 + const onSearch = (params) => { + setSearchParams({ ...searchParams, ...params, page: 1 }); + getList({ ...searchParams, ...params, page: 1 }); + }; + + const handleReset = () => { + setSearchParams(initSearchParams); + getList(initSearchParams); + }; + + const changePage = (page) => { + setSearchParams({ ...searchParams, page }); + getList({ ...searchParams, page }); + }; + + // const rowSelection = { + // selectedRowKeys, + // onChange: selectedRowKeys, + // getCheckboxProps: record => ({ + // disabled: selectAbleType === 'folder' ? record.isDir !== 1 : record.isDir === 1, + // }), + // }; + + const columns = [ + { + title: '序号', + dataIndex: 'id', + key: 'id', + render: (text, record, index) => index + 1, + width: '5%', + }, + { + title: '预警编号', + dataIndex: 'yjBh', + width: '22%', + render: (text, record) => { + return ( + + {getHGIcons(record?.ccjg)} + {text} + + ); + }, + }, + { + title: '模型名称', + dataIndex: 'mxMc', + width: '8%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '问题类型', + dataIndex: 'cjwtLx', + width: '9%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '承办督察部门', + dataIndex: 'sadwMc', + width: '9%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '问题简述', + dataIndex: 'wtjs', + width: '7%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '当前办理单位', + dataIndex: 'dqbldwMc', + width: '9%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '当前办理人', + dataIndex: 'dqblrMc', + width: '8%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '预警流向', + dataIndex: 'blfsMc', + width: '7%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '最新状态', + dataIndex: 'dqZt', + width: '7%', + render: (text) => ( + + {getDicsName(AJZT, text)} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '最新更新时间', + dataIndex: 'updateTime', + width: '9%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '最迟反馈时间', + dataIndex: 'zcfkSj', + width: '9%', + render: (text) => ( + + {text} + + ), + ellipsis: { showTitle: false }, + }, + { + title: '操作', + key: 'id', + dataIndex: 'id', + width: '5%', + render: (text, record) => { + return ( + // 部级用户 没有抽查省级源数据的权限 + + ); + }, + fixed: 'right', + }, + ]; + + return ( +
+ +
changePage(page), + // showSizeChanger: true, + // onShowSizeChange: () => this.onShowSizeChange, + // pageSizeOptions: ['10', '20', '50', '100', '500', '1000'], + /> +
+ + changePage(page)} + showTotal={(total) => `共 ${total} 条`} + /> +
+ + {nowModalComponent && ( + setNowModalComponent(null)} + // style={{ background: '#fff', paddingBottom: 0, minHeight: 560 }} + maskClosable={false} + width={1000} + > + {nowModalComponent} + + )} + + ); +}; + +const mapStateToProps = ({ user, doing, loading }) => ({ + user: user.currentUser, + doing, + loading: loading.effects['doing/fetchDoneList'] || false, +}); +const mapDispatchToProps = (dispatch) => ({ + // 列表 + fetchDoneList({ params, sysToken }) { + const chooseTime = {}; + if (params.startTime) + chooseTime.startTime = `${params.startTime.format('YYYY-MM-DD')} 00:00:00`; + if (params.endTime) chooseTime.endTime = `${params.endTime.format('YYYY-MM-DD')} 23:59:59`; + return dispatch({ + type: 'doing/fetchDoneList', + payload: { params: { ...params, ...chooseTime }, sysToken }, + }); + }, + fetchReBJCheck(params) { + return dispatch({ type: 'doing/fetchReBJCheck', payload: params }); + }, +}); +export default connect(mapStateToProps, mapDispatchToProps)(TableList); diff --git a/src/pages/YBSX/TopSearch/README.md b/src/pages/YBSX/TopSearch/README.md new file mode 100644 index 0000000..0d8eb6b --- /dev/null +++ b/src/pages/YBSX/TopSearch/README.md @@ -0,0 +1 @@ +已办列表上部查询 diff --git a/src/pages/YBSX/TopSearch/index.jsx b/src/pages/YBSX/TopSearch/index.jsx new file mode 100644 index 0000000..64291ad --- /dev/null +++ b/src/pages/YBSX/TopSearch/index.jsx @@ -0,0 +1,293 @@ +import React, { useState } from 'react'; +import { Row, Col, Form, Input, Radio, Button, DatePicker, Select, Checkbox, message } from 'antd'; +import moment from 'moment'; + +import NextOrg from '@/components/NextOrg'; +import { YJLX, BLFS, SLFS, CCQK } from '@/utils/constants'; + +import styles from './index.less'; + +const { Item } = Form; +const { Option } = Select; + +const upGrid = { xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 8 }; +const bottomGrid = { xs: 12, sm: 12, md: 12, lg: 6, xl: 6, xxl: 4 }; + +const layout = { + labelCol: { span: 5 }, + wrapperCol: { span: 19 }, +}; + +const latterLayout = { + labelCol: { span: 10 }, + wrapperCol: { span: 14 }, +}; + +const dateTypeCounts = [ + { + key: 'threeDays', + label: '近3天', + start: moment().add(-3, 'days'), + end: moment(), + }, + { + key: 'sevenDays', + label: '近7天', + start: moment().add(-7, 'days'), + end: moment(), + }, + { + key: 'months', + label: '近一个月', + start: moment().add(-1, 'months'), + end: moment(), + }, + { + key: 'quarters', + label: '近三个月', + start: moment().add(-1, 'quarters'), + end: moment(), + }, + { + key: 'years', + label: '近一年', + start: moment().add(-1, 'years'), + end: moment(), + }, +]; + +const TopSearch = props => { + const [form] = Form.useForm(); + const { initParams, initDateType } = props; + const [dateType, setDateType] = useState(initDateType); + + const handleReset = () => { + form.resetFields(); + setDateType(initDateType); + props.handleReset(); + }; + + const handleDateTypeChange = e => { + setDateType(e.target.value); + }; + + const renderRange = () => ( + + + + + ~ + + + + + ); + + const onFinish = (value) => { + const copyValue = { ...value }; + if (value.xfsj !== 'custom') { + const c = dateTypeCounts?.find(e => e.key === value.xfsj); + copyValue.startTime = c?.start; + copyValue.endTime = c?.end; + } + if (value.startTime && value.endTime && (value.startTime.valueOf() > value.endTime.valueOf())) { + message.warning('查询条件投诉开始时间不能大于投诉结束时间'); + return; + } + delete copyValue.xfsj; + delete copyValue.sadwMc; + delete copyValue.dqbldwMc; + // Object.keys(copyValue).forEach(key => { + // if (key !== 'startTime' && key !== 'endTime' && copyValue[key]) { + // copyValue[key] = JSON.stringify(copyValue[key]); + // } + // }) + props.onSearch(copyValue); + }; + + const onFinishFailed = () => { + + }; + + const onChangeOrg = params => { + const { bm } = params; + form.setFieldsValue({ xjdwBm: bm }); + } + + const renderDw = () => { + return ( + + + + + + ) + // if (blfs === BLFS.DB.value) { + // return (+ // + // {/* 办理方式是督办 */} + // + // + // ) + // } + // if (blfs === BLFS.ZB.value) { + // return ( + // + // + // {/* 办理方式是转办 */} + // + // + // + // ) + // } + } + + return ( +
+
+ +
+ + + + + + + + + + + + + {dateTypeCounts.map(range => ( + + {range.label} + + ))} + 自定义 + + + {dateType === 'custom' + ? renderRange() + : null} + + + + + form.setFieldsValue({ sadwBm: bm })} /> + + + + + + form.setFieldsValue({ dqbldwBm: bm })} /> + + + + + + + {Object.keys(SLFS).map(key => { + return {SLFS[key].name} + })} + + + + + + + {Object.keys(CCQK).map(key => { + return {CCQK[key].name} + })} + + + + + + + + + prevValues.blfs !== currentValues.blfs} + > + {({ getFieldValue }) => { + return getFieldValue('blfs') === YJLX.XJBL.value ? ( + <> + + + + + + (prevValues.blfs !== currentValues.blfs) || (prevValues.nbfs !== currentValues.nbfs)} + > + {() => { + return renderDw(); + }} + + + + ) : + null + ; + }} + + + +
+ + +
+ + + + + ); +}; + +export default TopSearch; diff --git a/src/pages/YBSX/TopSearch/index.less b/src/pages/YBSX/TopSearch/index.less new file mode 100644 index 0000000..990a381 --- /dev/null +++ b/src/pages/YBSX/TopSearch/index.less @@ -0,0 +1,12 @@ +.TopSearch { + padding: 15px; + background-color: #fff; +} + +.radioBox { + :global { + .ant-radio-button-wrapper { + padding: 0 9px; + } + } +} diff --git a/src/pages/YBSX/index.jsx b/src/pages/YBSX/index.jsx new file mode 100644 index 0000000..fbae96a --- /dev/null +++ b/src/pages/YBSX/index.jsx @@ -0,0 +1,107 @@ +import React, { useState } from 'react'; +import { Tabs } from 'antd'; +import { connect } from 'umi'; + +import ProvinceSelect from '@/components/ProvinceSelect'; +import { UserLevel, processTab } from '@/utils/constants'; +import TableList from './TableList'; + +import { secondTabName } from '@/utils/utils'; + +const { TabPane } = Tabs + +const Done = (props) => { + const { user, isLocationInBu, locationType } = props; + const tabList = processTab(locationType); + const [activeKey, setActiveKey] = useState('department'); + const [selectdProvince, setSelectdProvince] = useState(''); + const [showProvinceSelect, setShowProvinceSelect] = useState(isLocationInBu); + + const changeTab = (key) => { + setActiveKey(key); + setShowProvinceSelect(isLocationInBu); + } + + const onSelectProvince = (key) => { + setSelectdProvince(key); + setActiveKey('province'); + setShowProvinceSelect(false); + } + + const renderContent = () => { + if (activeKey === 'department') { + return ( + + ) + } + if (activeKey === 'province' ) { + if(showProvinceSelect){ + return + }else{ + return( + + ) + } + } + if (activeKey === 'city'){ + return + } + // return ( + // ) + } + + return ( +
+ + {/* + */} + {/* + + */} + { + tabList.map((item) => { + return ( + + ); + }) + } + + { + renderContent() + } +
+ + ) +} + + +export default connect(({ user }) => ({ + user: user.currentUser, + isLocationInBu: user.isLocationInBu, + locationType: user.locationType +}))(Done); diff --git a/src/pages/GZT/HCBGBtn/index.jsx b/src/pages/ZBSX/HCBGBtn/index.jsx similarity index 100% rename from src/pages/GZT/HCBGBtn/index.jsx rename to src/pages/ZBSX/HCBGBtn/index.jsx diff --git a/src/pages/GZT/README.md b/src/pages/ZBSX/README.md similarity index 100% rename from src/pages/GZT/README.md rename to src/pages/ZBSX/README.md diff --git a/src/pages/GZT/TableList/README.md b/src/pages/ZBSX/TableList/README.md similarity index 100% rename from src/pages/GZT/TableList/README.md rename to src/pages/ZBSX/TableList/README.md diff --git a/src/pages/GZT/TableList/index.jsx b/src/pages/ZBSX/TableList/index.jsx similarity index 100% rename from src/pages/GZT/TableList/index.jsx rename to src/pages/ZBSX/TableList/index.jsx diff --git a/src/pages/GZT/TopSearch/README.md b/src/pages/ZBSX/TopSearch/README.md similarity index 100% rename from src/pages/GZT/TopSearch/README.md rename to src/pages/ZBSX/TopSearch/README.md diff --git a/src/pages/GZT/TopSearch/index.jsx b/src/pages/ZBSX/TopSearch/index.jsx similarity index 100% rename from src/pages/GZT/TopSearch/index.jsx rename to src/pages/ZBSX/TopSearch/index.jsx diff --git a/src/pages/GZT/TopSearch/index.less b/src/pages/ZBSX/TopSearch/index.less similarity index 100% rename from src/pages/GZT/TopSearch/index.less rename to src/pages/ZBSX/TopSearch/index.less diff --git a/src/pages/GZT/index.jsx b/src/pages/ZBSX/index.jsx similarity index 100% rename from src/pages/GZT/index.jsx rename to src/pages/ZBSX/index.jsx