Browse Source

Merge branch 'dev' of ssh://10.10.100.21/source/uas-office-integration into dev

RaoMeng 5 years ago
parent
commit
13ac6c68ed

+ 7 - 1
uas-office-web/uas-mobile/src/components/common/bizgoblin/BarGraph.jsx

@@ -42,7 +42,13 @@ export default class BarGraph extends Component {
         <div className="ant-table-title">{SONTITLE_}</div>
         <div
           className="ant-table-title-second">{FORMULA_KEYDISPLAY_ ? FORMULA_KEYDISPLAY_ : ''}{FORMULA_VALUEDISPLAY_} {'单位(' + FORMULA_UNIT_ + ')'}</div>
-        <Chart padding={[25, 15, 40, 50]} height={300} autoFit data={data}>
+        <Chart
+          theme={{ maxColumnWidth: 20 }}
+          padding={[25, 15, 40, 50]}
+          height={300}
+          autoFit
+          data={data}
+        >
           <Axis name='xField'
                 label={{
                   rotate: -126,

+ 4 - 0
uas-office-web/uas-mobile/src/components/common/calendar/CommonCalendar.jsx

@@ -6,6 +6,7 @@
 import React, { Component } from 'react'
 import { Calendar } from 'antd'
 import './common-calendar.less'
+import moment from 'moment'
 
 export default class CommonCalendar extends Component {
 
@@ -24,6 +25,7 @@ export default class CommonCalendar extends Component {
   }
 
   render () {
+    let { currentDate } = this.props
     return (
       <div className='calendar-box'>
         <div className="site-calendar-demo-card">
@@ -32,6 +34,7 @@ export default class CommonCalendar extends Component {
             dateCellRender={this.dateCellRender}
             onSelect={this.onSelectTime}
             fullscreen={false}
+            value={moment(currentDate)}
           />
         </div>
       </div>
@@ -68,6 +71,7 @@ export default class CommonCalendar extends Component {
               ]
               break
             default:
+              break
           }
 
         }

+ 0 - 1
uas-office-web/uas-mobile/src/components/private/noticematter/NoticeMatter.jsx

@@ -32,7 +32,6 @@ class NoticeMatter extends Component {
     let MeetingList = []
     if (!isObjEmpty(noticeMatterData)) {
       noticeMatterData.forEach((item, index) => {
-        console.log(item)
         MeetingList.push(
           <Step className={item.CALLER == '' ? '' : 'step-icon'} key={index} status="finish" title={item.TIME}
                 description={item.MEETINGNAME + '来自(' + item.MEETINGFROM + ')'}

+ 11 - 4
uas-office-web/uas-mobile/src/components/private/tasktodo/TaskTodoRow.jsx

@@ -36,10 +36,17 @@ class TaskTodoRow extends Component {
           <div className="task-item-caption">发起人</div>
           <div className="task-item-value">{RECORDER}</div>
         </div>
-        <div className="task-des-item">
-          <div className="task-item-caption">项目名称</div>
-          <div className="task-item-value">{PRJNAME || 123}</div>
-        </div>
+        {
+          RA_TYPE == 'projecttask' ?
+            (
+              <div className="task-des-item">
+                <div className="task-item-caption">项目名称</div>
+                <div className="task-item-value">{PRJNAME}</div>
+              </div>
+            ) : (
+              null
+            )
+        }
         <div className="task-des-item">
           <div className="task-item-caption">发起时间</div>
           <div className="task-item-value">{STATDATE}</div>

+ 2 - 0
uas-office-web/uas-mobile/src/pages/private/homePage/HomePage.jsx

@@ -16,6 +16,7 @@ import { GlobalEvent } from '../../../utils/common/eventbus/eventbus'
 import { EVENT_DOC_FUNC_COUNT } from '../../../utils/common/eventbus/events.types'
 import { requestUserInfo } from '../../../utils/private/user.util'
 import { clearFormState } from '../../../redux/actions/formState'
+import { clearScheduleState } from '../../../redux/actions/scheduleState'
 import { forceVisible } from 'react-lazyload'
 
 /**
@@ -37,6 +38,7 @@ class HomePage extends Component {
     document.title = 'UAS系统'
     clearListState()
     clearFormState()
+    clearScheduleState()
 
     //刷新应用红点
     GlobalEvent.on(EVENT_DOC_FUNC_COUNT, onDocFuncCountRefresh, this)

+ 37 - 27
uas-office-web/uas-mobile/src/pages/private/schedulePage/SchedulePage.jsx

@@ -12,7 +12,8 @@ import { fetchPostObj, fetchGet } from '../../../utils/common/fetchRequest'
 import { message } from 'antd'
 import { Toast } from 'antd-mobile'
 import { API } from '../../../configs/api.config'
-
+import { saveScheduleState } from '../../../redux/actions/scheduleState'
+import moment from 'moment'
 import './schedule-page.less'
 
 class SchedulePage extends Component {
@@ -24,6 +25,7 @@ class SchedulePage extends Component {
       punchClockData: {},
       noticeMatterData: [],
       calendarData: [],
+      currentDate: new Date().format('yyyy-MM-dd'),
     }
   }
 
@@ -41,11 +43,15 @@ class SchedulePage extends Component {
   }
 
   render () {
-    let { punchClockData, noticeMatterData, calendarData } = this.state
-
+    let { scheduleState: { punchClockData, noticeMatterData, calendarData, currentDate } } = this.props
     return (
       <div className='schedule-root'>
-        <CommonCalendar clickBlankPanel={this.clickBlankPanel} clickDate={this.clickDate} calendarData={calendarData}/>
+        <CommonCalendar
+          clickBlankPanel={this.clickBlankPanel}
+          clickDate={this.clickDate}
+          calendarData={calendarData}
+          currentDate={currentDate}
+        />
         <PunchClock punchClockData={punchClockData}/>
         <NoticeMatter noticeMatterData={noticeMatterData}/>
       </div>
@@ -53,18 +59,18 @@ class SchedulePage extends Component {
   }
 
   clickDate = (date) => {
-    let nowDate = new Date().format('yyyy-MM-dd')
     Toast.loading('加载中', 0)
     fetchPostObj(API.APPCOMMON_DAILYTASK, {
       data: date,
     }).then(response => {
       Toast.hide()
-      this.setState({
+      saveScheduleState({
         noticeMatterData: response.data.noticeMatterData,
         punchClockData: response.data.punchClockData,
+        currentDate: date,
       })
       if (!isObjEmpty(response.data.calendarData)) {
-        this.setState({
+        saveScheduleState({
           calendarData: response.data.calendarData,
         })
       }
@@ -85,10 +91,8 @@ class SchedulePage extends Component {
       data: date,
     }).then(response => {
       Toast.hide()
-      this.setState({
+      saveScheduleState({
         calendarData: response.data.calendarData,
-        noticeMatterData: response.data.noticeMatterData,
-        punchClockData: response.data.punchClockData,
       })
     }).catch(error => {
       Toast.hide()
@@ -101,27 +105,33 @@ class SchedulePage extends Component {
   }
 
   getdailyData = () => {
-    Toast.loading('正在获取数据', 0)
-    fetchGet(API.APPCOMMON_DAILYTASKTOTAL)
-      .then(response => {
+    // 判断缓存中是否有数据,若有数据则部发起请求
+    let { scheduleState: { punchClockData, noticeMatterData, calendarData } } = this.props
+    if (isObjEmpty(punchClockData) || isObjEmpty(calendarData)) {
+      Toast.loading('正在获取数据', 0)
+      fetchGet(API.APPCOMMON_DAILYTASKTOTAL)
+        .then(response => {
+          Toast.hide()
+          saveScheduleState({
+            calendarData: response.data.calendarData,
+            noticeMatterData: response.data.noticeMatterData,
+            punchClockData: response.data.punchClockData,
+          })
+        }).catch(error => {
         Toast.hide()
-        this.setState({
-          calendarData: response.data.calendarData,
-          noticeMatterData: response.data.noticeMatterData,
-          punchClockData: response.data.punchClockData,
-        })
-      }).catch(error => {
-      Toast.hide()
-      if (typeof error === 'string') {
-        message.error(error)
-      } else {
-        message.error('待办事项获取失败')
-      }
-    })
+        if (typeof error === 'string') {
+          message.error(error)
+        } else {
+          message.error('待办事项获取失败')
+        }
+      })
+    }
   }
 
 }
 
-let mapStateToProps = (state) => ({})
+let mapStateToProps = (state) => ({
+  scheduleState: state.scheduleState,
+})
 
 export default connect(mapStateToProps)(SchedulePage)

+ 29 - 0
uas-office-web/uas-mobile/src/redux/actions/scheduleState.js

@@ -0,0 +1,29 @@
+/**
+ * Created by Hujs on 2020/12/22
+ * Desc: 日程数据缓存
+ */
+
+import { CLEAR_SCHEDULE_STATE, SAVE_SCHEDULE_STATE } from '../constants/actionTypes'
+import store from '../store/store'
+
+/**
+ * 保存日程状态
+ * @param data
+ * @returns {Function}
+ */
+export const saveScheduleState = (data) => {
+  return store.dispatch({
+    type: SAVE_SCHEDULE_STATE,
+    ...data,
+  })
+}
+
+/**
+ * 清除日程状态
+ * @returns {Function}
+ */
+export const clearScheduleState = () => {
+  return store.dispatch({
+    type: CLEAR_SCHEDULE_STATE,
+  })
+}

+ 5 - 1
uas-office-web/uas-mobile/src/redux/constants/actionTypes.js

@@ -36,7 +36,11 @@ export const CLEAR_FORM_STATE = 'CLEAR_FORM_STATE'
 export const CLEAR_FILTER_STATE = 'CLEAR_FILTER_STATE'
 export const CLEAR_BILL_STATE = 'CLEAR_BILL_STATE'
 
-/**********************************看板图表********************************************/
+/**********************************看板图表*****************************************/
 export const CLEAR_CHART_STATE = 'CLEAR_CHART_STATE'
 export const SAVE_CHART_STATE = 'SAVE_CHART_STATE'
 
+/**********************************日程*********************************************/
+export const CLEAR_SCHEDULE_STATE = 'CLEAR_SCHEDULE_STATE'
+export const SAVE_SCHEDULE_STATE = 'SAVE_SCHEDULE_STATE'
+

+ 2 - 0
uas-office-web/uas-mobile/src/redux/reducers/index.js

@@ -8,6 +8,7 @@ import redListState from './redListState'
 import redUserState from './redUserState'
 import redFormState from './redFormState'
 import redChartState from './redChartState'
+import redScheduleState from './redScheduleState'
 
 /**
  * Created by RaoMeng on 2020/11/9
@@ -23,4 +24,5 @@ export const appReducer = combineReducers({
   userState: redUserState,
   formState: redFormState,
   chartState: redChartState,
+  scheduleState: redScheduleState,
 })

+ 31 - 0
uas-office-web/uas-mobile/src/redux/reducers/redScheduleState.js

@@ -0,0 +1,31 @@
+import { CLEAR_SCHEDULE_STATE, SAVE_SCHEDULE_STATE } from '../constants/actionTypes'
+
+const initScheduleState = {
+  punchClockData: {},
+  noticeMatterData: [],
+  calendarData: [],
+  currentDate: new Date().format('yyyy-MM-dd'),
+}
+
+const redScheduleState = (state = initScheduleState, action) => {
+  if (action === undefined) {
+    return state
+  }
+
+  switch (action.type) {
+    case SAVE_SCHEDULE_STATE:
+      //更新列表状态
+      return {
+        ...state,
+        ...action,
+      }
+    case CLEAR_SCHEDULE_STATE:
+      //清空列表状态
+      return initScheduleState
+    default:
+      return state
+  }
+
+}
+
+export default redScheduleState

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

@@ -5,6 +5,7 @@ import { clearDocState } from '../actions/docState'
 import { clearListState } from '../actions/listState'
 import { clearUserInfo } from '../actions/userState'
 import { clearChartState } from '../actions/chartState'
+import { clearScheduleState } from '../actions/scheduleState'
 
 /**
  * Created by RaoMeng on 2020/12/14
@@ -22,4 +23,5 @@ export function clearAllRedux () {
   clearListState()
   clearUserInfo()
   clearChartState()
+  clearScheduleState()
 }