import { UserOutlined } from '@ant-design/icons';
import { Avatar, Tooltip } from 'antd';
import axios from 'axios';
import ModalEditLabel from '../Modal/ModaEditLabel';
import momment from 'moment';
import React, { useEffect, useState } from 'react';
import Pagination from "react-js-pagination";
import { PulseLoader } from 'react-spinners';
import { HOST } from '../../config/index';
import swal from 'sweetalert';
import { useLocation } from 'react-router-dom';
import { useSelector } from 'react-redux';
import Store from '../../store';
const initialDataPost = {
index: 1,
item_per_page: 5,
search_data: "",
person_type: 4,
}
export default function LabelImage() {
const [data, setData] = useState(null)
const [showModal, setShowModal] = useState(false)
const [dataEdit, setDataEdit] = useState(null)
const [loading, setLoading] = useState(true)
const token = useSelector(state => state.isLogin.access_token);
const dataRole = useSelector(state => state.role.role);
console.log(token)
const [activePage, setActivePage] = useState(1)
const [totalItems, setTotalItems] = useState(0)
const [dataPost, setDataPost] = useState(initialDataPost)
const itemsPerPage = 5
const location = useLocation();
useEffect(() => {
if (location.search) {
let path = location.search.replace('?', '').split('&');
let obj = {}
path.forEach(value => {
let arr = value.split('=');
obj[arr[0]] = arr[1]
})
}
}, [location])
useEffect(() => {
getData()
}, [])
const onClickEdit = (data) => {
setDataEdit(data)
setShowModal(true)
}
const onDelete = async (value) => {
let dataDel = {
obj_id: value._id,
id: value.id,
name: value.name,
birthday: value.birthday,
gender: value.gender,
is_deleted : 1
}
try {
const result = await axios({
method: 'POST',
url: `${HOST}/api/famous_persons/insert_or_update`,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': Store.getState().isLogin.access_token,
// 'Authorization': token,
},
data: dataDel,
})
if (result.data.status === 10000) {
if (data.length === 1) {
setActivePage(activePage - 1)
setDataPost({ ...dataPost, index: activePage - 1 })
}
swal({
icon: 'success',
title: 'Thành công',
text: 'Xoá thành công',
timer: 1500,
buttons: false,
})
getData(dataPost)
} else {
swal("Thất bại", "Xoá thất bại!", "error");
}
} catch (error) {
setLoading(false)
console.log(error);
}
}
const handlePageChange = (pageNumber) => {
setActivePage(pageNumber);
const data = {
...dataPost,
index: pageNumber,
}
getData(data);
}
const getData = async (data) => {
try {
const result = await axios({
method: 'POST',
url: `${HOST}/api/famous_persons/search`,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': Store.getState().isLogin.access_token,
// 'Authorization': token
},
data: data ? data : dataPost,
})
if (result.data.status === 10000) {
setData(result.data.data)
setTotalItems(result.data.count)
setLoading(false)
}
} catch (error) {
setLoading(false)
console.log(error);
}
}
const handleOnKeyDown = e => {
if (e.key === 'Enter') {
setActivePage(1)
getData(dataPost);
}
}
const tableRows = (dataAll) => dataAll.map((value, index) => {
var gender = ""
if (value.gender === "1") {
gender = "Nam"
} else if (value.gender === "2") {
gender = "Nữ"
} else if (value.gender === "3") {
gender = "Giới tính khác"
} else {
gender = ""
}
var listImg
if (value.sample_images.length > 0) {
let getDateImg = value.sample_images[0].split("_")
let dataImg = getDateImg.length > 0 && getDateImg[1].slice(0,6)
listImg = 0 && value.image_host +dataImg+ "/" +value.sample_images[0]}`} />
} else {
listImg =
Ảnh | Họ tên | FacebookID | Giới tính | Ngày sinh | {(dataRole?.indexOf('person:edit') === -1 && dataRole?.indexOf('person:delete') === -1) ? "" :Thao tác | }
---|