linkmore-design
Version:
๐ ๐lm็ปไปถๅบใ๐
187 lines (185 loc) โข 6.29 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _radio = _interopRequireDefault(require("../radio"));
var _checkbox = _interopRequireDefault(require("../checkbox"));
var _row = _interopRequireDefault(require("../row"));
var _col = _interopRequireDefault(require("../col"));
var _inputNumber = _interopRequireDefault(require("../input-number"));
var _GlobalContext = _interopRequireDefault(require("./GlobalContext"));
// import { Radio, Checkbox, Row, Col, InputNumber } from "linkmore-design";
const RadioGroup = _radio.default.Group;
const CheckboxGroup = _checkbox.default.Group;
const radioStyle = {
display: "block",
paddingBottom: "6px"
};
function MonthPane(props) {
const {
language = {}
} = (0, _react.useContext)(_GlobalContext.default);
const {
assign,
everyTime = {},
aTob = {},
aStartTob = {}
} = language;
const {
value,
onChange
} = props;
const [currentRadio, setCurrentRadio] = (0, _react.useState)(1);
const [from, setFrom] = (0, _react.useState)(1);
const [to, setTo] = (0, _react.useState)(10);
const [offsetFrom, setOffsetFrom] = (0, _react.useState)(1);
const [offset, setOffset] = (0, _react.useState)(1);
const [selected, setSelected] = (0, _react.useState)(["1"]);
const isFirstRender = _react.default.useRef();
if (isFirstRender.current !== false) {
isFirstRender.current = true;
}
(0, _react.useEffect)(() => {
if (value === "*") {
setCurrentRadio(1);
} else if (value.indexOf("-") > -1) {
setCurrentRadio(2);
const [defaultFrom, defaultTo] = value.split("-");
setFrom(parseInt(defaultFrom, 10));
setTo(parseInt(defaultTo, 10));
} else if (value.indexOf("/") > -1) {
setCurrentRadio(3);
const [defaultOffsetFrom, defaultOffset] = value.split("/");
setOffsetFrom(parseInt(defaultOffsetFrom, 10));
setOffset(parseInt(defaultOffset, 10));
} else {
setCurrentRadio(4);
setSelected(value ? value.split(",") : ["1"]);
}
}, [value]);
(0, _react.useEffect)(() => {
if (!isFirstRender.current) {
switch (currentRadio) {
case 1:
onChange("*");
break;
case 2:
onChange(`${from}-${to}`);
break;
case 3:
onChange(`${offsetFrom}/${offset}`);
break;
case 4:
onChange(selected.join(","));
break;
default:
break;
}
}
}, [currentRadio, from, to, offsetFrom, offset, selected]);
const onChangeRadio = (0, _react.useCallback)(e => {
setCurrentRadio(e.target.value);
}, []);
const onChangeFrom = (0, _react.useCallback)(v => {
setFrom(v || 1);
}, []);
const onChangeTo = (0, _react.useCallback)(v => {
setTo(v || 1);
}, []);
const onChangeOffsetFrom = (0, _react.useCallback)(v => {
setOffsetFrom(v || 1);
}, []);
const onChangeOffset = (0, _react.useCallback)(v => {
setOffset(v || 1);
}, []);
const onChangeSelected = (0, _react.useCallback)(v => {
setSelected(v.length !== 0 ? v : ["1"]);
}, []);
const checkList = (0, _react.useMemo)(() => {
const disabled = currentRadio !== 4;
const checks = [];
for (let i = 1; i < 13; i++) {
checks.push( /*#__PURE__*/_react.default.createElement(_col.default, {
key: i,
span: 4
}, /*#__PURE__*/_react.default.createElement(_checkbox.default, {
disabled: disabled,
value: i.toString()
}, i)));
}
return checks;
}, [currentRadio, selected]);
(0, _react.useEffect)(() => {
isFirstRender.current = false;
}, []);
const aTobA = /*#__PURE__*/_react.default.createElement(_inputNumber.default, {
disabled: currentRadio !== 2,
min: 1,
max: 12,
value: from,
size: "small",
onChange: onChangeFrom,
style: {
width: 100
}
});
const aTobB = /*#__PURE__*/_react.default.createElement(_inputNumber.default, {
disabled: currentRadio !== 2,
min: 1,
max: 12,
value: to,
size: "small",
onChange: onChangeTo,
style: {
width: 100
}
});
const aStartTobA = /*#__PURE__*/_react.default.createElement(_inputNumber.default, {
disabled: currentRadio !== 3,
min: 1,
max: 12,
value: offsetFrom,
size: "small",
onChange: onChangeOffsetFrom,
style: {
width: 100
}
});
const aStartTobB = /*#__PURE__*/_react.default.createElement(_inputNumber.default, {
disabled: currentRadio !== 3,
min: 1,
max: 12,
value: offset,
size: "small",
onChange: onChangeOffset,
style: {
width: 100
}
});
return /*#__PURE__*/_react.default.createElement(RadioGroup, {
name: "radiogroup",
value: currentRadio,
onChange: onChangeRadio
}, /*#__PURE__*/_react.default.createElement(_radio.default, {
style: radioStyle,
value: 1
}, everyTime.month || "ๆฏไธๆ"), /*#__PURE__*/_react.default.createElement(_radio.default, {
style: radioStyle,
value: 2
}, aTob.month ? aTob.month(aTobA, aTobB) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\u4ECE\xA0", aTobA, "\xA0-\xA0", aTobB, "\xA0\u6708\uFF0C\u6BCF\u6708\u6267\u884C\u4E00\u6B21")), /*#__PURE__*/_react.default.createElement(_radio.default, {
style: radioStyle,
value: 3
}, aStartTob.month ? aStartTob.month(aStartTobA, aStartTobB) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\u4ECE\xA0", aStartTobA, "\xA0\u6708\u5F00\u59CB\uFF0C \u6BCF\xA0", aStartTobB, "\xA0\u6708\u6267\u884C\u4E00\u6B21")), /*#__PURE__*/_react.default.createElement(_radio.default, {
style: radioStyle,
value: 4
}, assign || "ๆๅฎ", /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(CheckboxGroup, {
value: selected,
onChange: onChangeSelected
}, /*#__PURE__*/_react.default.createElement(_row.default, null, checkList))));
}
var _default = MonthPane;
exports.default = _default;