Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 5072 | Rev 5090 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
4814 stevensc 1
import axios from 'axios'
4841 stevensc 2
import React, { useEffect, useState } from 'react'
5072 stevensc 3
import EditModal from './Modal';
4932 stevensc 4
import Table from './Table';
4799 stevensc 5
 
4827 stevensc 6
const CompanySizesView = ({ urlsVar }) => {
4814 stevensc 7
 
4841 stevensc 8
    const { linkTable, linkAdd, linkEdit, linkDelete } = urlsVar
4905 stevensc 9
    const [companyData, setCompanyData] = useState({});
5071 stevensc 10
    const [showModal, setShowModal] = useState(false);
5078 stevensc 11
    const [selectItem, setSelectItem] = useState(null);
12
    const [actionLink, setActionLink] = useState('');
5071 stevensc 13
 
14
    // Filters States
4881 stevensc 15
    const [search, setSearch] = useState('');
16
    const [dataLength, setDataLength] = useState(10);
17
    const [page, setPage] = useState(1);
18
    const lengthValues = ["10", "25", "50", "100"]
4827 stevensc 19
 
4841 stevensc 20
    const getData = () => {
4881 stevensc 21
        axios.get(
22
            linkTable,
23
            {
24
                params: {
4999 stevensc 25
                    query: search,
4881 stevensc 26
                    page: page,
4904 stevensc 27
                    length: dataLength
4881 stevensc 28
                }
29
            })
4841 stevensc 30
            .then(({ data }) => {
31
                if (data.success) {
32
                    setCompanyData(data.data)
4830 stevensc 33
 
4841 stevensc 34
                    return data.data
35
                }
36
            })
37
            .catch((err) => console.log(err))
4814 stevensc 38
    }
39
 
5071 stevensc 40
    const closeModal = () => {
41
        setShowModal(false)
42
    }
43
 
5078 stevensc 44
    const editItem = (item) => {
45
        setSelectItem(item);
46
        setActionLink(linkEdit);
47
        setShowModal(true);
48
    }
49
 
50
    const addItem = () => {
51
        setSelectItem(null);
52
        setActionLink(linkAdd);
53
        setShowModal(true);
54
    }
55
 
4827 stevensc 56
    useEffect(() => {
4841 stevensc 57
        getData()
4881 stevensc 58
    }, [search, dataLength, page]);
4814 stevensc 59
 
4799 stevensc 60
    return (
5071 stevensc 61
        <>
62
            <section className="content">
63
                <section className="content-header">
64
                    <div className="container-fluid">
65
                        <div className="row mb-2">
66
                            <div className="col-sm-12">
67
                                <h1>Tamaños de empresa</h1>
68
                            </div>
4881 stevensc 69
                        </div>
70
                    </div>
5071 stevensc 71
                </section>
72
                <section className="content">
73
                    <div className="container-fluid">
74
                        <div className="row">
75
                            <div className="col-12">
76
                                <div className="card">
77
                                    <div className="card-body">
78
                                        <div className="dataTables_wrapper dt-bootstrap4 no-footer">
79
                                            <div className="row">
80
                                                <div className="col-sm-12 col-md-6">
81
                                                    <div className="dataTables_length" id="gridTable_length">
82
                                                        <label>
83
                                                            Mostrar
84
                                                            <select
85
                                                                className="custom-select custom-select-sm form-control form-control-sm"
86
                                                                onChange={(e) => setDataLength(e.target.value)}
87
                                                            >
88
                                                                {
89
                                                                    lengthValues.map((value, index) => (
90
                                                                        <option key={index} value={value}>{value}</option>
91
                                                                    ))
92
                                                                }
93
                                                            </select>
94
                                                            registros
95
                                                        </label>
96
                                                    </div>
4881 stevensc 97
                                                </div>
5071 stevensc 98
                                                <div className="col-sm-12 col-md-6">
99
                                                    <div className="dataTables_filter">
100
                                                        <label>
101
                                                            Buscar
102
                                                            <input
103
                                                                type="search"
104
                                                                className="form-control form-control-sm" placeholder=""
105
                                                                onChange={(e) => setSearch(e.target.value)}
106
                                                            />
107
                                                        </label>
108
                                                    </div>
109
                                                </div>
4881 stevensc 110
                                            </div>
5071 stevensc 111
                                            <div className="row">
112
                                                <div className="col-sm-12">
113
                                                    {
114
                                                        companyData.items
115
                                                        &&
116
                                                        <Table
117
                                                            data={companyData.items}
5078 stevensc 118
                                                            onEdit={editItem}
4881 stevensc 119
                                                        />
5071 stevensc 120
                                                    }
4881 stevensc 121
                                                </div>
122
                                            </div>
5071 stevensc 123
                                            <div className="row">
124
                                                <div className="col-sm-12 col-md-5">
125
                                                    <div className="dataTables_info" >
126
                                                        {`Mostrando registros del 1 al ${companyData.items?.length} de un total de ${companyData.total} registros`}
127
                                                    </div>
4972 stevensc 128
                                                </div>
5071 stevensc 129
                                                <div className="col-sm-12 col-md-7">
130
                                                    <div className="dataTables_paginate paging_simple_numbers" id="gridTable_paginate">
131
                                                        <ul className="pagination">
132
                                                            <li className="paginate_button page-item previous disabled">
133
                                                                <button
134
                                                                    type='button'
135
                                                                    className="page-link"
136
                                                                    disabled={page === 1}
137
                                                                >
138
                                                                    Anterior
139
                                                                </button>
140
                                                            </li>
141
                                                            <li className="paginate_button page-item active">
142
                                                                <button
143
                                                                    className="page-link"
144
                                                                >
145
                                                                    1
146
                                                                </button>
147
                                                            </li>
148
                                                            <li className="paginate_button page-item next disabled" id="gridTable_next">
149
                                                                <button
150
                                                                    type='button'
151
                                                                    className="page-link"
152
                                                                    disabled
153
                                                                >
154
                                                                    Siguiente
155
                                                                </button>
156
                                                            </li>
157
                                                        </ul>
158
                                                    </div>
4972 stevensc 159
                                                </div>
160
                                            </div>
161
                                        </div>
4881 stevensc 162
                                    </div>
5071 stevensc 163
                                    <div className="card-footer clearfix">
164
                                        <div>
165
                                            <button
166
                                                type="button"
167
                                                className="btn btn-info btn-refresh">
168
                                                <i className="fa fa-refresh" />
169
                                                Recargar
170
                                            </button>
171
                                            <button
172
                                                type="button"
173
                                                className="btn btn-primary btn-add"
5078 stevensc 174
                                                onClick={addItem}
5071 stevensc 175
                                            >
176
                                                <i className="fa fa-plus" />
177
                                                Agregar
178
                                            </button>
179
                                        </div>
4972 stevensc 180
                                    </div>
181
                                </div>
4881 stevensc 182
                            </div>
183
                        </div>
184
                    </div>
5071 stevensc 185
                </section>
4881 stevensc 186
            </section>
5072 stevensc 187
            <EditModal
5071 stevensc 188
                isOpen={showModal}
189
                title='Tamaños de empresas'
190
                closeModal={closeModal}
5078 stevensc 191
                isEdit={actionLink === linkEdit}
192
                url={actionLink}
193
                currentItem={selectItem}
5071 stevensc 194
            />
195
        </>
4799 stevensc 196
    )
197
}
198
 
199
export default CompanySizesView