UNPKG

@aliretail/react-materials-components

Version:
236 lines (198 loc) 7.82 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _dialog = _interopRequireDefault(require("@alifd/next/lib/dialog")); var _pagination = _interopRequireDefault(require("@alifd/next/lib/pagination")); var _table = _interopRequireDefault(require("@alifd/next/lib/table")); var _button = _interopRequireDefault(require("@alifd/next/lib/button")); var _input = _interopRequireDefault(require("@alifd/next/lib/input")); var _select = _interopRequireDefault(require("@alifd/next/lib/select")); var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _Edit = _interopRequireDefault(require("./Edit")); var _ahooks = require("ahooks"); var _ImageText = _interopRequireDefault(require("../ImageText")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /* eslint-disable react/prop-types */ var SelectGoodDialog = /*#__PURE__*/React.forwardRef(function (props, ref) { var children = props.children, value = props.value, _props$type = props.type, type = _props$type === void 0 ? 'normal' : _props$type, onFetchNormalGoods = props.onFetchNormalGoods, onFetchGroupGoods = props.onFetchGroupGoods, onChange = props.onChange; var _React$useState = React.useState(false), visible = _React$useState[0], setVisible = _React$useState[1]; var _React$useState2 = React.useState('title'), selectValue = _React$useState2[0], setSelectValue = _React$useState2[1]; var _React$useState3 = React.useState(), inputValue = _React$useState3[0], setInputValue = _React$useState3[1]; var _React$useState4 = React.useState([]), selectedKeys = _React$useState4[0], setSelectedKeys = _React$useState4[1]; var trigger = function () { if (value !== null && value !== void 0 && value.length) { return /*#__PURE__*/React.createElement(_Edit["default"], { keys: value, type: type, onFetchGoodsInfo: function onFetchGoodsInfo() { if (type === 'normal') { return onFetchNormalGoods({ limit: 1, start: 0, scItemIdList: value, addChildren: 0, type: '0' }); } return onFetchGroupGoods({ limit: 1, start: 0, scItemIdList: value, addChildren: 1 }); } }); } return children; }(); var _useRequest = (0, _ahooks.useRequest)(function (args) { if (type === 'normal') { return onFetchNormalGoods(args); } return onFetchGroupGoods(args); }, { manual: true }), loading = _useRequest.loading, data = _useRequest.data, params = _useRequest.params, run = _useRequest.run; var _ref = (params === null || params === void 0 ? void 0 : params[0]) || {}, start = _ref.start, limit = _ref.limit; // start = (current - 1) * size // current = start / size + 1 var current = start / limit + 1; var columns = [{ title: '货品', dataIndex: 'scItem', cell: function cell(v) { return /*#__PURE__*/React.createElement(_ImageText["default"], v); } }]; /** 表格行选择 */ var rowSelection = { mode: 'single', selectedRowKeys: selectedKeys, onChange: function onChange(keys) { return setSelectedKeys(keys); } }; /** 分页参数 */ var pagination = { current: current, pageSize: limit, total: (data === null || data === void 0 ? void 0 : data.total) || 0, totalRender: function totalRender(total) { return "\u5171" + total + "\u6761"; }, style: { textAlign: 'right', marginTop: 10 }, size: 'small', pageSizeSelector: 'dropdown', type: 'simple', onChange: function onChange(c) { var nextStart = (c - 1) * limit; run((0, _extends3["default"])({}, params === null || params === void 0 ? void 0 : params[0], { start: nextStart })); }, onPageSizeChange: function onPageSizeChange(s) { var nextLimit = s; run((0, _extends3["default"])({}, params === null || params === void 0 ? void 0 : params[0], { limit: nextLimit })); } }; /** 打开弹窗 */ var handleClick = function handleClick() { setVisible(true); setSelectedKeys(value || []); run({ start: 0, limit: 10 }); }; /** 关闭弹窗 */ var handleClose = function handleClose() { setVisible(false); }; /** 查询 */ var handleSearch = function handleSearch() { var _extends2; var key = selectValue; var v = inputValue; run((0, _extends3["default"])({}, params === null || params === void 0 ? void 0 : params[0], (_extends2 = { start: 0 }, _extends2[key] = v, _extends2))); }; var handleOk = function handleOk() { setVisible(false); onChange === null || onChange === void 0 ? void 0 : onChange(selectedKeys); }; var select = /*#__PURE__*/React.createElement(_select["default"], { value: selectValue, onChange: setSelectValue }, /*#__PURE__*/React.createElement(_select["default"].Option, { value: "title" }, "\u8D27\u54C1\u540D\u79F0"), /*#__PURE__*/React.createElement(_select["default"].Option, { value: "scItemId" }, "\u8D27\u54C1\u7F16\u7801")); return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.cloneElement(trigger, { onClick: handleClick }), /*#__PURE__*/React.createElement(_dialog["default"], { ref: ref, onCancel: handleClose, onClose: handleClose, onOk: handleOk, style: { width: 500 }, shouldUpdatePosition: true, visible: visible, title: "\u9009\u62E9\u8D27\u54C1", cache: false }, /*#__PURE__*/React.createElement(_input["default"].Group, { addonBefore: select, style: { marginBottom: 8 } }, /*#__PURE__*/React.createElement(_input["default"], { hasClear: true, value: inputValue, onChange: setInputValue }), /*#__PURE__*/React.createElement(_button["default"], { type: "primary", onClick: handleSearch, style: { marginLeft: 16 } }, "\u67E5\u8BE2")), /*#__PURE__*/React.createElement(_table["default"], { primaryKey: "scItemId", loading: loading, dataSource: data === null || data === void 0 ? void 0 : data.content, rowSelection: rowSelection, hasBorder: false, columns: columns }), /*#__PURE__*/React.createElement(_pagination["default"], pagination))); }); var _default = SelectGoodDialog; exports["default"] = _default;