UNPKG

@aliretail/react-link-selector

Version:
106 lines (97 loc) 2.78 kB
import _Pagination from "@alifd/next/es/pagination"; import _Table from "@alifd/next/es/table"; import _Search from "@alifd/next/es/search"; import React, { Component, useState, useCallback, useEffect } from 'react'; import request from '@aliretail/react-universal-request'; import API from '../api'; import { columns } from './data'; import './index.scss'; var PAGESIZE = 20; export default function Detail(props) { var buildValue = function buildValue(val) { return val; }; var _useState = useState([]), data = _useState[0], setData = _useState[1]; var _useState2 = useState(buildValue(props.value)), value = _useState2[0], setValue = _useState2[1]; var _useState3 = useState(0), start = _useState3[0], setStart = _useState3[1]; var _useState4 = useState(''), searchKeyword = _useState4[0], setSearchKeyword = _useState4[1]; var _useState5 = useState(0), total = _useState5[0], setTotal = _useState5[1]; var queryData = function queryData() { request({ url: API.detail, method: 'POST', data: { start: start, limit: PAGESIZE, pageName: searchKeyword } }).then(function (json) { setTotal(json.result.totalElements); setData(json.result); }); }; useEffect(function () { queryData(); }, []); useEffect(function () { setValue(buildValue(props.value)); }, [props.value]); /** 检索当前页面组件 */ var search = function search(keyword) { setSearchKeyword(keyword); }; useEffect(function () { queryData(); }, [start, searchKeyword]); var rowSelection = { selectedRowKeys: value, onSelect: function onSelect(checked, record, row) { props.onSelect({ type: 'detail', result: [record.itemId] }); }, mode: 'single' }; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Search, { style: { margin: '10px 0' }, shape: "simple", onSearch: search, placeholder: "\u901A\u8FC7\u5546\u54C1\u540D\u79F0\u3001ID\u641C\u7D22" }), /*#__PURE__*/React.createElement("div", { className: "detail-page-list" }, /*#__PURE__*/React.createElement(_Table, { dataSource: data, rowSelection: rowSelection, hasBorder: false, primaryKey: "itemId", columns: columns })), /*#__PURE__*/React.createElement(_Pagination, { total: total, pageSize: PAGESIZE, hideOnlyOnePage: true, current: Math.floor(start / PAGESIZE) + 1, onChange: function onChange(n) { setStart((n - 1) * PAGESIZE); }, shape: "arrow-only", pageShowCount: 5, style: { marginTop: '16px', "float": 'right' }, showJump: false })); }