From 227089fcb8f0facbc0d4456f876a75a747ee6af3 Mon Sep 17 00:00:00 2001 From: Mr Ke <kelq@hugeinfo.com.cn> Date: Fri, 29 May 2020 20:44:30 +0800 Subject: [PATCH] 绩效考核 --- src/components/oa/merits/meritsDetail/index.jsx | 113 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 93 insertions(+), 20 deletions(-) diff --git a/src/components/oa/merits/meritsDetail/index.jsx b/src/components/oa/merits/meritsDetail/index.jsx index 210cf34..51f2e1f 100644 --- a/src/components/oa/merits/meritsDetail/index.jsx +++ b/src/components/oa/merits/meritsDetail/index.jsx @@ -7,11 +7,14 @@ /** 绩效详情 */ import React, { ReactNode, ReactEventHandler, Component } from 'react'; import TableView from '../../../common/TableView'; -import { Row, Col, Button, InputNumber, message } from 'antd'; +import { Row, Col, Button, InputNumber, message, DatePicker } from 'antd'; import { createHashHistory } from 'history'; import './index.scss'; const history = createHashHistory(); + import fetch from '../../../../api/request'; +import moment from 'moment'; +const { MonthPicker } = DatePicker; export default class MeritsDetail extends Component { @@ -22,13 +25,41 @@ this.state = { formData: { __key: Date.now(), - ...this.props.match.params + // userId: this.props.match.params.userId || loginUser.userId, + meritsMonth: this.props.match.params.meritsMonth || moment().month(moment().month() - 1).format('YYYY-MM') }, - + title: null, + boolean: this.props.match.params.boolean || false }; } - componentDidMount() { } + componentDidMount() { + var loginUser = window.localStorage.getItem('loginUser') || '{}'; + loginUser = JSON.parse(loginUser); + this.setState({ + formData: { + ...this.state.formData, + userId: this.props.match.params.userId || loginUser.userId + } + }, () => { + this.findTitle(); + }) + } + + findTitle = () => { + fetch({ + url: `api/merits/assess/findTitle`, + params: { + userId: this.state.formData.userId + } + }).then(res => { + if (res) { + this.setState({ + title: res + }) + } + }) + } setFormData = data => { console.log('form', data); @@ -40,15 +71,15 @@ // 保存操作 onSave = (item) => { console.log('item', item); - let { id , meritsGrade} = item; + let { id, meritsGrade } = item; fetch({ url: `api/merits/assess/modifyGrade`, params: { id, meritsGrade } - }).then( res=> { - if(res) { + }).then(res => { + if (res) { message.success('保存成功'); this.setState({ formData: { @@ -58,11 +89,10 @@ }) } }) - } renderColumns = () => { - return [ + var cols = [ { title: '编号', dataIndex: 'id', width: '3%' }, { title: '评分项目', dataIndex: 'scoreItems', width: '6%' }, { title: '评分目标', dataIndex: 'scoreTarget', width: '10%' }, @@ -104,41 +134,84 @@ }} /> } }, - { + + ]; + if (this.props.match.params.boolean) { + return cols.concat({ title: '操作', dataIndex: 'operation', width: '10%', render: (cur, item) => { return <a onClick={() => { this.onSave(item) }}>保存</a> } - } - - ]; + }) + } else { + return cols + } } onBack = () => { history.goBack(); } + monthPickerChange = (m, d) => { + let { formData } = this.state; + this.setState({ + formData: { + ...formData, + meritsMonth: d + } + }, () => { + this.setState({ + formData: { + ...this.state.formData, + __key: Date.now() + } + }) + }) + } + render() { - const { formData } = this.state; + const { formData, title, boolean } = this.state; let tableParams = { url: `api/merits/assess/findMeritsDetail`, - formData, + formData: { + ...formData, + userId: this.props.match.params.userId || JSON.parse(window.localStorage.getItem('loginUser')) + }, key: formData.__key, columns: this.renderColumns(), extraFromData: {}, setFormData: this.setFormData, - showPagination: false + showPagination: false, + } + + function disabledDate(current) { + return current && current >= moment().endOf('day'); } return ( <div className="merits-detail-main"> - <h2>2020年4月绩效评分表(初级研发工程师)</h2> - <TableView {...tableParams} ref="table-view" /> - <Row className="margin-top"> + + <Row className="margin-bottom" type="flex" justify="center" gutter={20}> <Col> - <Button onClick={this.onBack}>返回</Button> + <MonthPicker value={formData.meritsMonth ? moment(formData.meritsMonth, 'YYYY-MM') : ''} format={'YYYY-MM'} onChange={this.monthPickerChange} disabledDate={disabledDate} /> </Col> + { + title && + <Col> + <h2>{title}</h2> + </Col> + } </Row> + + <TableView {...tableParams} ref="table-view" /> + { + boolean && + <Row className="margin-top"> + <Col> + <Button onClick={this.onBack}>返回</Button> + </Col> + </Row> + } </div> ) } -- Gitblit v1.8.0