@aliretail/react-link-selector
Version:
106 lines (97 loc) • 2.78 kB
JavaScript
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
}));
}