@aliretail/react-materials-components
Version:
236 lines (198 loc) • 7.82 kB
JavaScript
"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;