Просмотр исходного кода

uas手机版
订阅推送列表接口对接

RaoMeng 5 лет назад
Родитель
Сommit
8bf80ea473

+ 1 - 1
uas-office-web/uas-mobile/src/components/common/func/FuncItem.jsx

@@ -6,7 +6,7 @@
 import React, { Component } from 'react'
 import './common-func.less'
 import { Icon } from 'antd-mobile'
-import { isObjEmpty, getOS } from '../../../utils/common/common.util'
+import { isObjEmpty } from '../../../utils/common/common.util'
 import { fetchGet } from '../../../utils/common/fetchRequest'
 import { FUNC_TYPE_DOC } from '../../../configs/constans.config'
 import { GlobalEvent } from '../../../utils/common/eventbus/eventbus'

+ 11 - 3
uas-office-web/uas-mobile/src/components/private/subscribe/SubscribeChild.jsx

@@ -22,10 +22,18 @@ export default class SubscribeChild extends Component {
   }
 
   render () {
+    const { subObj, onSubItemClick } = this.props
     return (
-      <div className='comp-subscribe-child-root'>
-        <div className='comp-subscribe-child-title'>订阅名字</div>
-        <div className='comp-subscribe-child-unread'>未读</div>
+      <div className='comp-subscribe-child-root'
+           onClick={() => {
+             onSubItemClick && onSubItemClick(subObj)
+           }}>
+        <div className='comp-subscribe-child-title'>{subObj.TITLE_}</div>
+        <div className={subObj.STATUS_ === 0
+          ? 'comp-subscribe-child-unread'
+          : 'comp-subscribe-child-read'}>{subObj.STATUS_ === 0
+          ? '未读'
+          : '已读'}</div>
         <img className='comp-subscribe-child-img'
              src={'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3001884651,1229479384&fm=26&gp=0.jpg'}/>
       </div>

+ 18 - 5
uas-office-web/uas-mobile/src/components/private/subscribe/SubscribeGroup.jsx

@@ -7,6 +7,7 @@ import React, { Component } from 'react'
 import './comp-subscrive.less'
 import SubscribeTop from './SubscribeTop'
 import SubscribeChild from './SubscribeChild'
+import { isObjEmpty } from '../../../utils/common/common.util'
 
 export default class SubscribeGroup extends Component {
 
@@ -24,14 +25,26 @@ export default class SubscribeGroup extends Component {
   }
 
   render () {
+    const { subGroups, onSubItemClick } = this.props
+    const subItems = []
+    if (!isObjEmpty(subGroups, subGroups.list)) {
+      subGroups.list.forEach((item, index) => {
+        if (index === 0) {
+          subItems.push(<SubscribeTop
+            subObj={item}
+            onSubItemClick={onSubItemClick}/>)
+        } else {
+          subItems.push(<SubscribeChild
+            subObj={item}
+            onSubItemClick={onSubItemClick}/>)
+        }
+      })
+    }
     return (
       <div className='comp-subscribe-group-root'>
-        <div className='comp-subscribe-group-time'>2020-11-11 11:11</div>
+        <div className='comp-subscribe-group-time'>{subGroups.groupDate}</div>
         <div className='comp-subscribe-group-content'>
-          <SubscribeTop/>
-          <SubscribeChild/>
-          <SubscribeChild/>
-          <SubscribeChild/>
+          {subItems}
         </div>
       </div>
     )

+ 11 - 3
uas-office-web/uas-mobile/src/components/private/subscribe/SubscribeTop.jsx

@@ -23,14 +23,22 @@ export default class SubscribeTop extends Component {
   }
 
   render () {
+    const { subObj, onSubItemClick } = this.props
     return (
-      <div className='comp-subscribe-top-root'>
+      <div className='comp-subscribe-top-root'
+           onClick={() => {
+             onSubItemClick && onSubItemClick(subObj)
+           }}>
         <img
           className='comp-subscribe-top-img'
           src={'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1605083752905&di=065289a91a7d35161f10752ccb92c14c&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F30%2F29%2F01300000201438121627296084016.jpg'}/>
         <div className='comp-subscribe-top-mask'>
-          <div className='comp-subscribe-top-title'>芯片超期提醒</div>
-          <span className='comp-subscribe-top-unread'>未读</span>
+          <div className='comp-subscribe-top-title'>{subObj.TITLE_}</div>
+          <span className={subObj.STATUS_ === 0
+            ? 'comp-subscribe-top-unread'
+            : 'comp-subscribe-top-read'}>{subObj.STATUS_ === 0
+            ? '未读'
+            : '已读'}</span>
         </div>
       </div>
     )

+ 1 - 1
uas-office-web/uas-mobile/src/configs/api.config.js

@@ -6,7 +6,7 @@
 export const _host = window.location.origin
   && 'http://usoft.f3322.net:10007/uas'
   && 'http://10.1.7.44:8081/erp'//吴雨骁
-  && 'http://10.1.7.104:8080/ERP'//吴炳
+  && 'http://10.1.7.104:8090/ERP'//吴炳
 
 export const _baseURL = _host + (process.env.REACT_APP_ROUTER_BASE_NAME || '')
 

+ 1 - 4
uas-office-web/uas-mobile/src/pages/private/homePage/HomePage.jsx

@@ -1,7 +1,7 @@
 import React, { Component } from 'react'
 import { connect } from 'react-redux'
 import './home-page.less'
-import { TabBar, SearchBar } from 'antd-mobile'
+import { TabBar } from 'antd-mobile'
 import UasIcon from '../../../configs/iconfont.conig'
 import {
   freshHomeState,
@@ -14,9 +14,6 @@ import MineRoot from './MineRoot'
 import { clearListState } from '../../../redux/actions/listState'
 import { GlobalEvent } from '../../../utils/common/eventbus/eventbus'
 import { EVENT_DOC_FUNC_COUNT } from '../../../utils/common/eventbus/events.types'
-import { requestServices } from '../../../utils/private/services.util'
-import { fetchGet } from '../../../utils/common/fetchRequest'
-import { API } from '../../../configs/api.config'
 
 /**
  * Created by RaoMeng on 2020/11/9

+ 3 - 1
uas-office-web/uas-mobile/src/pages/private/report/ReportSearch.jsx

@@ -9,7 +9,6 @@ import './report.less'
 import { PullToRefresh, SearchBar } from 'antd-mobile'
 import { requestReportFunc } from '../../../utils/private/report.util'
 import { isObjEmpty, strContain } from '../../../utils/common/common.util'
-import FuncGroup from '../../../components/common/func/FuncGroup'
 import ReportSearchItem
   from '../../../components/private/report/ReportSearchItem'
 
@@ -26,6 +25,8 @@ class ReportSearch extends Component {
 
   componentDidMount () {
     document.title = '报表搜索'
+    this.searchBar.focus()
+
     const { reportState } = this.props
     this.allReportFuncList = []
     if (!isObjEmpty(reportState, reportState.reportFuncGroupList)) {
@@ -60,6 +61,7 @@ class ReportSearch extends Component {
       <div
         className='report-search-root'>
         <SearchBar
+          ref={el => this.searchBar = el}
           onChange={this.onSearchChange}
           placeholder={'搜索'}/>
         <PullToRefresh

+ 75 - 20
uas-office-web/uas-mobile/src/pages/private/subscribe/SubscribeList.jsx

@@ -11,6 +11,10 @@ import LoadingMore from '../../../components/common/loading/LoadingMore'
 import { isObjEmpty } from '../../../utils/common/common.util'
 import SubscribeGroup
   from '../../../components/private/subscribe/SubscribeGroup'
+import { fetchPostObj } from '../../../utils/common/fetchRequest'
+import { API } from '../../../configs/api.config'
+import { message } from 'antd'
+import { saveListState } from '../../../redux/actions/listState'
 
 const mPageSize = 10
 let mPageIndex = 0
@@ -23,7 +27,7 @@ class SubscribeList extends Component {
 
     this.state = {
       refreshing: true,
-      hasNextPage: true,
+      // hasNextPage: true,
       height: document.documentElement.clientHeight,
       subscribeDataSource: new ListView.DataSource({
         rowHasChanged: (row1, row2) => row1 !== row2,
@@ -40,22 +44,23 @@ class SubscribeList extends Component {
     })
     if (this.props.listState && !isObjEmpty(this.props.listState.listData)) {
       mPageIndex = this.props.listState.pageIndex
+      mSubscribeList = this.props.listState.listData
       this.setState({
-          subscribeDataSource: this.props.listState.listData,
-          hasNextPage: this.props.listState.hasNextPage,
+          subscribeDataSource: this.state.subscribeDataSource.cloneWithRows(
+            mSubscribeList),
+          // hasNextPage: this.props.listState.hasNextPage,
         },
         () => {
           ReactDOM.findDOMNode(
             this.lv).scrollTop = this.props.listState.scrollTop
-          if (this.state.hasNextPage) {
-            this.loadSubscribeList()
-          }
+          // if (this.state.hasNextPage) {
+          this.loadSubscribeList()
+          // }
         },
       )
     } else {
-      Toast.loading('加载中...', 0)
-      mSubscribeList = []
       mPageIndex = 0
+      mSubscribeList = []
       this.loadSubscribeList()
     }
   }
@@ -65,7 +70,7 @@ class SubscribeList extends Component {
   }
 
   render () {
-    const { subscribeDataSource, height, hasNextPage } = this.state
+    const { subscribeDataSource, height } = this.state
     const refreshLayout = this.getRefreshLayout()
     return (
       <div className='com-column-flex'>
@@ -74,17 +79,19 @@ class SubscribeList extends Component {
           dataSource={subscribeDataSource}
           initialListSize={mPageSize}
           renderFooter={() => {
-            return hasNextPage && <LoadingMore/>
+            return <LoadingMore/>
           }}
           renderRow={(rowData, sectionID, rowID) => {
-            return <SubscribeGroup/>
+            return <SubscribeGroup
+              subGroups={rowData}
+              onSubItemClick={this.onSubItemClick.bind(this)}/>
           }}
           style={{
             height,
           }}
           pullToRefresh={refreshLayout}
           onEndReachedThreshold={10}
-          onEndReached={hasNextPage ? this.loadSubscribeList : null}
+          onEndReached={this.loadSubscribeList}
           pageSize={mPageSize}
         />
       </div>
@@ -115,18 +122,66 @@ class SubscribeList extends Component {
         }),
       })
     }
-    setTimeout(() => {
-      Toast.hide()
-      const list = [{}, {}, {}, {}]
-      mSubscribeList = mSubscribeList.concat(list)
+
+    fetchPostObj(API.SUBSCRIBE_SUBSCRIBETOPUSH, {
+      pageIndex: mPageIndex,
+      pageSize: mPageSize,
+    }).then(response => {
+      if (!isObjEmpty(response, response.data, response.data.list)) {
+        response.data.list.forEach((groupItem, groupIndex) => {
+          let groupSub = {
+            groupDate: groupItem.groupDate,
+            groupIndex: mSubscribeList.length,
+          }
+          if (!isObjEmpty(groupItem.list)) {
+            groupItem.list.forEach((childItem, childIndex) => {
+              childItem.groupIndex = mSubscribeList.length
+              childItem.childIndex = childIndex
+            })
+          }
+          groupSub.list = groupItem.list
+          mSubscribeList.push(groupSub)
+        })
+        this.setState({
+          subscribeDataSource: this.state.subscribeDataSource.cloneWithRows(
+            mSubscribeList),
+          refreshing: false,
+        })
+      } else {
+        mPageIndex--
+      }
+    }).catch(error => {
+      mPageIndex--
+      if (typeof error === 'string') {
+        message.error(error)
+      } else {
+        message.error('数据获取失败')
+      }
       this.setState({
-        subscribeDataSource: this.state.subscribeDataSource.cloneWithRows(
-          mSubscribeList),
-        hasNextPage: true,
         refreshing: false,
       })
-    }, 1000)
+    })
+  }
 
+  onSubItemClick = (subObj) => {
+    console.log(mSubscribeList[subObj.groupIndex].list)
+    console.log(mSubscribeList[subObj.groupIndex].list[subObj.childIndex])
+    if (!isObjEmpty(mSubscribeList, mSubscribeList[subObj.groupIndex],
+      mSubscribeList[subObj.groupIndex].list,
+      mSubscribeList[subObj.groupIndex].list[subObj.childIndex])) {
+      mSubscribeList[subObj.groupIndex].list[subObj.childIndex].STATUS_ = -1
+      this.setState({
+        subscribeDataSource: this.state.subscribeDataSource.cloneWithRows(
+          JSON.parse(
+            JSON.stringify(mSubscribeList))),
+      })
+
+      saveListState({
+        scrollTop: ReactDOM.findDOMNode(this.lv).scrollTop,
+        pageIndex: mPageIndex,
+        listData: mSubscribeList,
+      })
+    }
   }
 }
 

+ 1 - 4
uas-office-web/uas-mobile/src/pages/private/subscribe/SubscribeNot.jsx

@@ -11,10 +11,7 @@ import { SUBSCRIBE_ITEM_NOT } from '../../../configs/constans.config'
 import SubLeftMenu from '../../../components/private/subscribe/SubLeftMenu'
 import { saveListState } from '../../../redux/actions/listState'
 import { isObjEmpty } from '../../../utils/common/common.util'
-import {
-  requestMySubscribe,
-  requestSubscribeConfig,
-} from '../../../utils/private/subscribe.util'
+import { requestSubscribeConfig } from '../../../utils/private/subscribe.util'
 import RefreshLayout
   from '../../../components/common/refreshLayout/RefreshLayout'
 

+ 0 - 2
uas-office-web/uas-mobile/src/redux/actions/docState.js

@@ -5,8 +5,6 @@
 
 import store from '../store/store'
 import { CLEAR_DOC_STATE, REFRESH_DOC_LIST } from '../constants/actionTypes'
-import { isObjEmpty } from '../../utils/common/common.util'
-import { FUNC_TYPE_DOC } from '../../configs/constans.config'
 
 /**
  * 保存列表状态

+ 0 - 1
uas-office-web/uas-mobile/src/utils/private/subscribe.util.js

@@ -5,7 +5,6 @@
 import { Toast } from 'antd-mobile'
 import { fetchPostObj } from '../common/fetchRequest'
 import { API } from '../../configs/api.config'
-import { refreshReportList } from '../../redux/actions/reportState'
 import { message } from 'antd'
 import { saveListState } from '../../redux/actions/listState'
 import { isObjEmpty } from '../common/common.util'