diff --git a/web-react/src/components/business/house-log.jsx b/web-react/src/components/business/house-log.jsx deleted file mode 100644 index c711110..0000000 --- a/web-react/src/components/business/house-log.jsx +++ /dev/null @@ -1,145 +0,0 @@ -import React, { Component } from 'react' -import { Descriptions, Spin, Steps, Timeline, Button } from 'antd' -import { AntIcon } from 'components' -import { api } from 'common/api' -import getDictData from 'util/dic' -import { toCamelCase } from 'util/format' - -const ellipsisType = [3, 4, 6] -const loadFlag = [] -export default class houseLog extends Component { - state = { - loading: true, - codes: { - houseLogType: [], - }, - data: [], - showCount: 3, - } - - async componentDidMount() { - const { id, infoId, taskId } = this.props - const state = { loading: false } - - state.codes = await getDictData('house_log_type') - - if (id) { - const { data } = await api.houseLogList({ id }) - state.data = data - } else if (infoId) { - const { data } = await api.houseLogListByInfoId({ id: infoId }) - state.data = data - } else if (taskId) { - const { data } = await api.houseLogListByTaskId({ id: taskId }) - state.data = data - } - this.setState(state) - } - - bindCodeValue(code, name) { - name = toCamelCase(name) - const codes = this.state.codes[name] - if (codes) { - const c = codes.find(p => p.code == code) - if (c) { - return c.value - } - } - return null - } - //点击加载更多按钮 展示全部 - showMore = () => { - loadFlag.length = 0 - this.setState({ - showCount: 10000, - }) - } - //只显示一次 ellipsisType 如果要全部显示 将false改为 true - loadOnce(itemType) { - if (loadFlag.includes(itemType)) return false - if (ellipsisType.includes(itemType)) { - loadFlag.unshift(itemType) - } - return true - } - //组件卸载清空 数组 否则再次点开数组中有值存在 - componentWillUnmount() { - loadFlag.length = 0 - } - render() { - const { loading, codes, data, showCount } = this.state - return ( - }> - - {data.map((item, i) => ( - - {i < showCount && ( - - {this.loadOnce(item.type) && ( - - ) : ( - [ - , - , - , - ][item.status] - ) - } - > -
- - {['等待', '正在', ''][item.status] + - this.bindCodeValue( - item.type, - 'house_log_type' - )} - -
-

{item.finishedTime}

- - {item.remark && ( - - {item.remark} - - )} - - {item.targetUserNames.split(',').join(' / ')} - - {item.finishedUserName && ( - - {item.finishedUserName} - - )} - -
- )} -
- )} -
- ))} -
- - {showCount < data.length && ( - - )} - -
- ) - } -} diff --git a/web-react/src/components/business/house-log/index.jsx b/web-react/src/components/business/house-log/index.jsx new file mode 100644 index 0000000..217ae94 --- /dev/null +++ b/web-react/src/components/business/house-log/index.jsx @@ -0,0 +1,138 @@ +import React, { Component } from 'react' +import { Button, Descriptions, Spin, Steps, Timeline } from 'antd' +import { AntIcon } from 'components' +import { api } from 'common/api' +import getDictData from 'util/dic' +import { toCamelCase } from 'util/format' + +const ellipsisType = [3, 4, 6] + +export default class houseLog extends Component { + state = { + loading: true, + codes: { + houseLogType: [], + }, + data: [], + ellipsis: true, + } + + ellipsisFlag = [] + + async componentDidMount() { + const { id, infoId, taskId } = this.props + const state = { loading: false } + + state.codes = await getDictData('house_log_type') + + if (id) { + const { data } = await api.houseLogList({ id }) + state.data = data + } else if (infoId) { + const { data } = await api.houseLogListByInfoId({ id: infoId }) + state.data = data + } else if (taskId) { + const { data } = await api.houseLogListByTaskId({ id: taskId }) + state.data = data + } + this.setState(state) + } + + bindCodeValue(code, name) { + name = toCamelCase(name) + const codes = this.state.codes[name] + if (codes) { + const c = codes.find(p => p.code == code) + if (c) { + return c.value + } + } + return null + } + + render() { + const { loading, data, ellipsis } = this.state + + let button = false + + return ( + }> + + {data.map((item, i) => { + let show = true + if ( + ellipsisType.includes(item.type) && + !this.ellipsisFlag.includes(item.type) + ) { + this.ellipsisFlag.push(item.type) + } else if ( + ellipsisType.includes(item.type) && + this.ellipsisFlag.includes(item.type) + ) { + show = false + } + if (show || !ellipsis) { + return ( + + ) : ( + [ + , + , + , + ][item.status] + ) + } + > +
+ + {['等待', '正在', ''][item.status] + + this.bindCodeValue(item.type, 'house_log_type')} + +
+

{item.finishedTime}

+ + {item.remark && ( + {item.remark} + )} + + {item.targetUserNames.split(',').join(' / ')} + + {item.finishedUserName && ( + + {item.finishedUserName} + + )} + +
+ ) + } else if (!button) { + button = true + return ( +