Browse Source

uas手机版
日常任务 回复与确认页面

samhoo 5 years ago
parent
commit
e802fc533c

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

@@ -5,6 +5,7 @@
 
 import React, { Component } from 'react'
 import { connect } from 'react-redux'
+import { withRouter } from 'react-router-dom'
 import './task-todo-item.less'
 
 class TaskTodoRow extends Component {
@@ -39,10 +40,12 @@ class TaskTodoRow extends Component {
   onItemClick = (taskId) => {
     //点击跳详情
     //console.log(taskId)
+    this.props.history.push('/dailyTaskAffirm')
+
   }
 
 }
 
 let mapStateToProps = (state) => ({})
 
-export default connect(mapStateToProps)(TaskTodoRow)
+export default connect(mapStateToProps)(withRouter(TaskTodoRow))

+ 31 - 0
uas-office-web/uas-mobile/src/configs/antd.config.less

@@ -57,3 +57,34 @@
 .ant-table-title {
   padding: 8px 8px !important;
 }
+
+/********************日历***********************/
+.calendar-box {
+  .ant-picker-calendar-header {
+    display: flex;
+    justify-content: center;
+
+    .ant-select {
+      min-width: 50px !important;
+      width: 70px !important;
+
+      .ant-select-selector {
+        border: none;
+        padding: 0px !important;
+
+        .ant-select-selection-item {
+          padding: 0 0 0 14px !important;
+        }
+      }
+
+      .ant-select-arrow {
+        display: none;
+      }
+    }
+  }
+}
+
+/********************多行文本***********************/
+.am-textarea-control textarea {
+  font-size: 14px !important;
+}

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

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

+ 10 - 2
uas-office-web/uas-mobile/src/configs/router.config.js

@@ -39,6 +39,10 @@ const SubscribeManage = PageLoadable(
 /**************************************************待办**************************************************/
 const TaskTodo = PageLoadable(
   import(/* webpackChunkName:'tasktodo' */'@/pages/private/taskTodo/TaskTodo'))
+const DailyTaskAffirm = PageLoadable(
+  import(/* webpackChunkName:'tasktodo' */'@/pages/private/taskTodo/DailyTaskAffirm'))
+const DailyTaskReply = PageLoadable(
+  import(/* webpackChunkName:'tasktodo' */'@/pages/private/taskTodo/DailyTaskReply'))
 
 /**************************************************报表**************************************************/
 const ReportSearch = PageLoadable(
@@ -106,6 +110,10 @@ class Routes extends React.Component {
           {/***************************************待办******************************************/}
           {/*待办列表*/}
           <Route path='/taskTodo' component={TaskTodo}/>
+          {/*日常任务-确认*/}
+          <Route path='/dailyTaskAffirm' component={DailyTaskAffirm}/>
+          {/*日常任务-回复*/}
+          <Route path='/dailyTaskReply' component={DailyTaskReply}/>
 
           {/***************************************报表******************************************/}
           {/*报表搜索*/}
@@ -134,7 +142,7 @@ class Routes extends React.Component {
     let props = this.props
     let login = props.login
     if (login) {
-      return <component {...props}/>
+      return <component {...props} />
     } else {
       return <Redirect to={{
         pathname: '/login',
@@ -151,7 +159,7 @@ class Routes extends React.Component {
     let props = this.props
     let authority = props.authority
     if (authority) {
-      return <component {...props}/>
+      return <component {...props} />
     } else {
       return <Redirect to={{
         pathname: '/accessDenied',

+ 127 - 0
uas-office-web/uas-mobile/src/pages/private/taskTodo/DailyTaskAffirm.jsx

@@ -0,0 +1,127 @@
+/**
+ * Created by hujs on 2020/12/11
+ * Desc: 日常任务-确认
+ */
+
+import React, { Component } from 'react'
+import { isObjEmpty } from '../../../utils/common/common.util'
+import { message } from 'antd'
+import { Toast, List, TextareaItem, Button } from 'antd-mobile'
+import { fetchPostObj, fetchGet } from '../../../utils/common/fetchRequest'
+import { API } from '../../../configs/api.config'
+import './daily-task.less'
+
+export default class DailyTaskAffirm extends Component {
+
+  constructor () {
+    super()
+
+    this.state = {
+      textAreaValue: '',
+    }
+  }
+
+  componentDidMount () {
+
+  }
+
+  componentWillUnmount () {
+
+  }
+
+  render () {
+
+    return (
+      <div className="daily-task-page">
+        <div className="task-des-panel">
+          <div className="task-des-item">
+            <div className="task-item-caption">任务名称</div>
+            <div className="task-item-value">客户风险预警</div>
+          </div>
+          <div className="task-des-item">
+            <div className="task-item-caption">提出人</div>
+            <div className="task-item-value">李剑辉</div>
+          </div>
+          <div className="task-des-item">
+            <div className="task-item-caption">执行人</div>
+            <div className="task-item-value">吴雨骁</div>
+          </div>
+          <div className="task-des-item">
+            <div className="task-item-caption">开始时间</div>
+            <div className="task-item-value">2020-10-23</div>
+          </div>
+          <div className="task-des-item">
+            <div className="task-item-caption">结束时间</div>
+            <div className="task-item-value">2020-10-29</div>
+          </div>
+        </div>
+        <div className="task-handler-panel">
+          <div className="task-handler-title">
+            处理明细
+          </div>
+          <div className="task-handler-detail">
+            <p className="task-detail-info">
+              <span className="task-info-left">李剑辉</span>
+              <span className="task-info-right">2020-10-24 16:54</span>
+            </p>
+            <p className="task-detail-reply">回复:已完成对应的任务</p>
+          </div>
+          <div className="task-handler-detail">
+            <p className="task-detail-info">
+              <span className="task-info-left">周袁</span>
+              <span className="task-info-right">2020-10-24 17:54</span>
+            </p>
+            <p className="task-detail-reply">驳回:不满足要求</p>
+          </div>
+          <div className="task-handler-detail">
+            <p className="task-detail-info">
+              <span className="task-info-left">周袁</span>
+              <span className="task-info-right">2020-10-25 16:54</span>
+            </p>
+            <p className="task-detail-reply">确定:已完成对应的任务</p>
+          </div>
+        </div>
+        <div className="task-affirm-panel">
+          <div className="task-affirm-title">
+            确认信息<span style={{ color: 'red' }}>*</span>
+          </div>
+          <List>
+            <TextareaItem
+              rows={3}
+              placeholder="请输入"
+              onChange={this.onTextChange}
+            />
+          </List>
+        </div>
+        <div className="task-btn-panel">
+          <Button
+            className='task-btn-panel-button'
+            type="primary"
+            onClick={this.onReject}
+            inline>驳回</Button>
+          <Button
+            className='task-btn-panel-button'
+            type="primary"
+            onClick={this.onConfirm}
+            inline>确认</Button>
+        </div>
+      </div>
+    )
+  }
+
+  onTextChange = value => {
+    this.setState({
+      textAreaValue: value,
+    })
+  }
+
+  onReject = () => {
+    //console.log('驳回')
+  }
+
+  onConfirm = () => {
+    // console.log('确认')
+  }
+
+}
+

+ 90 - 0
uas-office-web/uas-mobile/src/pages/private/taskTodo/DailyTaskReply.jsx

@@ -0,0 +1,90 @@
+/**
+ * Created by hujs on 2020/12/11
+ * Desc: 日常任务-回复
+ */
+
+import React, { Component } from 'react'
+import { isObjEmpty } from '../../../utils/common/common.util'
+import { message } from 'antd'
+import { Toast, List, TextareaItem, Button } from 'antd-mobile'
+import { fetchPostObj, fetchGet } from '../../../utils/common/fetchRequest'
+import { API } from '../../../configs/api.config'
+import './daily-task.less'
+
+export default class DailyTaskReply extends Component {
+
+  constructor () {
+    super()
+
+    this.state = {}
+  }
+
+  componentDidMount () {
+
+  }
+
+  componentWillUnmount () {
+
+  }
+
+  render () {
+
+    return (
+      <div className="daily-task-page">
+        <div className="task-des-panel">
+          <div className="task-des-item">
+            <div className="task-item-caption">任务名称</div>
+            <div className="task-item-value">客户风险预警</div>
+          </div>
+          <div className="task-des-item">
+            <div className="task-item-caption">提出人</div>
+            <div className="task-item-value">李剑辉</div>
+          </div>
+          <div className="task-des-item">
+            <div className="task-item-caption">执行人</div>
+            <div className="task-item-value">吴雨骁</div>
+          </div>
+          <div className="task-des-item">
+            <div className="task-item-caption">开始时间</div>
+            <div className="task-item-value">2020-10-23</div>
+          </div>
+          <div className="task-des-item">
+            <div className="task-item-caption">结束时间</div>
+            <div className="task-item-value">2020-10-29</div>
+          </div>
+        </div>
+        <div className="task-affirm-panel">
+          <div className="task-affirm-title">
+            回复信息<span style={{ color: 'red' }}>*</span>
+          </div>
+          <List>
+            <TextareaItem
+              rows={3}
+              placeholder="请输入"
+              onChange={this.onTextChange}
+            />
+          </List>
+        </div>
+        <div className="task-btn-panel">
+          <Button
+            className='task-btn-panel-button'
+            type="primary"
+            onClick={this.onReply}
+            inline>回复</Button>
+        </div>
+      </div>
+    )
+  }
+
+  onTextChange = value => {
+    this.setState({
+      textAreaValue: value,
+    })
+  }
+
+  onReply = () => {
+    console.log('回复')
+  }
+
+}
+

+ 113 - 0
uas-office-web/uas-mobile/src/pages/private/taskTodo/daily-task.less

@@ -0,0 +1,113 @@
+.daily-task-page {
+  height: 100vh;
+  padding: 8px;
+  background: @com-bg-color-lightGray;
+  position: relative;
+  overflow: hidden;
+
+  .task-des-panel {
+    background: #fff;
+    padding: 8px;
+    margin-bottom: 5px;
+
+    .task-des-item {
+      display: flex;
+      flex-direction: row;
+      width: 100%;
+      padding: 2px 2px;
+      font-size: 14px;
+
+      .task-item-caption {
+        width: 80px;
+        overflow: hidden;
+        word-wrap: break-word;
+        word-break: normal;
+        color: #666666;
+      }
+
+      .task-item-value {
+        flex: 1;
+        max-height: 80px;
+        padding-left: 10px;
+        overflow: auto;
+        word-wrap: break-word;
+        word-break: normal;
+        color: #333333;
+      }
+    }
+  }
+
+  .task-handler-panel {
+    background: #fff;
+    padding: 8px;
+    margin-bottom: 5px;
+
+    .task-handler-title {
+      margin-bottom: 2px;
+      color: @com-text-color-normal;
+    }
+
+    .task-handler-detail {
+      border-bottom: 1px solid #DCDCDC;
+      padding: 5px 0px;
+      color: #A9A9A9;
+
+      p {
+        margin: 0px;
+      }
+
+      .task-detail-info {
+        display: flex;
+        justify-content: space-between;
+        margin-bottom: 4px;
+
+        .task-info-left {
+          padding-left: 12px;
+        }
+
+        .task-info-right {
+          padding-right: 20px;
+        }
+      }
+
+      .task-detail-reply {
+        padding-left: 12px;
+      }
+    }
+  }
+
+  .task-affirm-panel {
+    background: #fff;
+    padding: 8px;
+    margin-bottom: 5px;
+
+    .task-affirm-title {
+      margin-bottom: 2px;
+      color: @com-text-color-normal;
+    }
+  }
+
+  .task-btn-panel {
+    width: 100%;
+    background: #fff;
+    position: fixed;
+    bottom: 0px;
+    z-index: 99;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    justify-content: center;
+    padding-right: 12px;
+
+    .task-btn-panel-button {
+      flex: 1;
+      margin: 12px;
+      border: 1px solid #108ee9;
+
+      &:before {
+        border: none !important;
+      }
+    }
+
+  }
+}