From a051179b7106bbaa04be6cfc80132b17bc2979f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=87=AA=E5=B8=A6=E5=A4=A7=E4=BD=AC=E6=B0=94=E5=9C=BA?=
<188633308@qq.com>
Date: Fri, 9 Jul 2021 16:41:16 +0800
Subject: [PATCH] =?UTF-8?q?fix=20=E6=B5=81=E8=BD=AC=E6=97=A5=E5=BF=97?=
=?UTF-8?q?=E7=9C=81=E7=95=A5=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/components/business/house-log.jsx | 145 ------------------
.../components/business/house-log/index.jsx | 138 +++++++++++++++++
2 files changed, 138 insertions(+), 145 deletions(-)
delete mode 100644 web-react/src/components/business/house-log.jsx
create mode 100644 web-react/src/components/business/house-log/index.jsx
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 (
+ }
+ className="mt-md mb-md"
+ onClick={() => this.setState({ ellipsis: false })}
+ />
+ )
+ }
+
+ return <>>
+ })}
+
+
+ )
+ }
+}