Дипломная работа: Автоматизация учета рабочего времени сотрудников компании ООО "ВЕЛЕС"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
89
return getDateNumber(hours);
}
const getMinutes = (): string => {
let minutes = date.getMinutes();
return getDateNumber(minutes + 1);
}
const today = '${date.getUTCFullYear()}-${getDateNumber(month)}-
${getDateNumber(date.getUTCDate())}T${getHours()}:${getMinutes()}:00.000';
const datel = moment(today);
const date2 = moment(loginTime);
const diff = date1.diff(date2, ’minutes’);
const hours = Math.floor(diff/60);
const minutes = diff - hours*60;
this.setState({
workingTime: '${hours}n: ${minutes} минут'
})
}
getSailsCount = () => {
const {tasks} = this.props;
return !!tasks ? filter(tasks, (task: ITask) => task.type ===
ETaskType.DOC && task.checked).length : 0
}
getWorkTime = () => {
const {user: {workTime}} = this.props;
90
const hours = Math.floor(workTime/60);
const minutes = workTime - hours*60;
return '${hours}n: ${minutes} минут'
}
render () {
const {user, users, tasks, onReloadTasks, onDeleteTask} = this.props;
const {workingTime} = this.state;
return (
<div className="row profile">
<div className="col-xs-12">
<div className="col-xs-12 layout-panel pt-7 pb-7 mb-3">
<div className="col-xs-4">
className="user-image" src="https://encrypted-
tbn0.gstatic.com/images?q=tbn:ANd9GcQf00ByiPUMeiPAfU6BMmbutoOswG-
3LPfEYR8BqJfrQF3s5rcz"/
>
<div className="col-xs-8">
label={capitalize(user.name)}
className="text-left text-5"
classNameElement="text-right col-xs-2"
classNameLabel="col-xs-10"
>
<div className="row">
className="online-image mr-2 mt-1"
src="https://upload.wikimedia.org/wikipedia/commons/5/50/WX_circle_green.png"/>
<span className="text- 1">online
91
<FormGroup label={user.role === ERole.USER ? 'Работник'
: 'Руководитель'} className="text-left" classNameElement="text-right col-xs-12"
classNameLabel="col-xs-6"/>
{user.role === ERole.USER && ayoutHeader
label={'Совершено звонков клиентам: ${user.clients}'} size={2}/>}
{user.role === ERole.USER && ayoutHeader
label={'Совершено сделок: ${this.getSailsCount()}'} size={2}/>}
{user.role === ERole.USER && ayoutHeader
label={'Отработано времени: ${this.getWorkTime()}'} size={2}/>}
{user.role === ERole.USER && ayoutHeader
label={'Отработано времени за текущий сеанс: ${workingTime}'} size={2}/>}
<div className="col-xs-12 layout-panel pt-7 pb-7">
<WorkList user={user} users={users} tasks={tasks}
onReloadTasks={onReloadTasks} onDeleteT ask={onDeleteTask}/>
)
}
}
Статистика
import * as React from 'react';
import {SimpleButton} from '../../Core/SimpleButton';
import {ModalWindow} from '../../Core/ModalWindow';
import {EButtonStyle} from '../../Core/Enums';
import {FormGroup} from '../../Core/FormGroup';
import {IUser, ERole} from '../../../models/Common';
import {Input} from '../../../Components/Core/Input';
92
/**
* Параметры компонента.
*/
interface IProps {
onClose: () => void;
onSubmit: (request: IUser) => void;
}
/**
* Состояние компонента.
*/
interface IState {
user: IUser;
}
/**
* Отображает вопросы по выбранному типу.
*/
export class AddUserModal extends React.PureComponent<IProps, IState> {
constructor (props: IProps) {
super (props);
this.state = {
user: {role: ERole.USER}
}
}
/**
* Изменение полей запроса.
*
* @param {string} value Новое значение.
93
handleRequestChange = (field: keyof IUser) => (value: any) => {
this.setState({user: {...this.state.user, [field]: value}});
}
*/
/**
* Рендерит тело модального окна.
*/
renderModalBody = () => {
const {user} = this.state;
return (
className="form-horizontal">
<div className="ml-5 mr-5">
<FormGroup label="Имя пользователя" className="text-left"
classNameLabel="col-xs-3" classNameElement="col-xs-9">
<Input value={user && user.name}
onChange={this.handleRequestChange('name')} placeholder="Имя пользователя"/>
<FormGroup label-'Пароль" className="text-left"
classNameLabel="col-xs-3" classNameElement="col-xs-9">
<Input value={user && user.password}
onChange={this.handleRequestChange('password')} placeholder="Пароль"/>
)
}
/**
* Обработчик отправки формы.
*/
Источник: https://baza.diplomsite.ru/previewfile/2431