UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

203 lines (201 loc) • 6.81 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _button = _interopRequireDefault(require("../button")); var _tabs = _interopRequireDefault(require("../tabs")); var _react = _interopRequireWildcard(require("react")); var _cronRegex = require("./cron-regex"); var _DayPane = _interopRequireDefault(require("./DayPane")); var _HourPane = _interopRequireDefault(require("./HourPane")); var _MinutePane = _interopRequireDefault(require("./MinutePane")); var _MonthPane = _interopRequireDefault(require("./MonthPane")); var _SecondPane = _interopRequireDefault(require("./SecondPane")); var _WeekPane = _interopRequireDefault(require("./WeekPane")); var _YearPanel = _interopRequireDefault(require("./YearPanel")); var _GlobalContext = _interopRequireDefault(require("./GlobalContext")); var _ = require("."); // import { Button, Tabs } from 'linkmore-design' _GlobalContext.default.displayName = 'qnn-react-cron config provider'; const QnnReactCronContextProvider = _GlobalContext.default.Provider; const Cron = props => { const { language = {} } = (0, _react.useContext)(_GlobalContext.default); const { paneTitle = {} } = language; const { style, value, onOk, footer, getCronFns, panesShow = {}, defaultTab = 'second' } = props; const [currentTab, setCurrentTab] = (0, _react.useState)(defaultTab); const [second, setSecond] = (0, _react.useState)('*'); const [minute, setMinute] = (0, _react.useState)('*'); const [hour, setHour] = (0, _react.useState)('*'); const [day, setDay] = (0, _react.useState)('*'); const [month, setMonth] = (0, _react.useState)('*'); const [week, setWeek] = (0, _react.useState)('?'); const [year, setYear] = (0, _react.useState)('*'); const onParse = () => { return new Promise(resolve => { if (value) { try { let [secondVal, minuteValue, hourVal, dayVal, monthVal, weekVal, yearVal] = value.split(' '); secondVal = _cronRegex.secondRegex.test(secondVal) ? secondVal : '*'; minuteValue = _cronRegex.minuteRegex.test(minuteValue) ? minuteValue : '*'; hourVal = _cronRegex.hourRegex.test(hourVal) ? hourVal : '*'; dayVal = _cronRegex.dayRegex.test(dayVal) ? dayVal : '*'; monthVal = _cronRegex.monthRegex.test(monthVal) ? monthVal : '*'; weekVal = _cronRegex.weekRegex.test(weekVal) ? weekVal : '?'; weekVal = dayVal !== '?' ? '?' : weekVal; // console.log('yearVal', value.split(" "), yearVal, yearRegex.test(yearVal)) // return; yearVal = _cronRegex.yearRegex.test(yearVal) ? yearVal : '*'; setSecond(secondVal); setMinute(minuteValue); setHour(hourVal); setDay(dayVal); setMonth(monthVal); setWeek(weekVal); setYear(yearVal); resolve({ value, secondVal, minuteValue, hourVal, dayVal, monthVal, weekVal, yearVal }); } catch (error) { setSecond('*'); setMinute('*'); setHour('*'); setDay('*'); setMonth('*'); setWeek('?'); setYear('*'); resolve({}); } } else { setSecond('*'); setMinute('*'); setHour('*'); setDay('*'); setMonth('*'); setWeek('?'); setYear('*'); resolve({}); } }); }; const onGenerate = () => { if (onOk) { onOk([second, minute, hour, day, month, week, year].join(' ')); } }; const onChangeDay = v => { setDay(v); if (v !== '?') { setWeek('?'); } }; const onChangeWeek = v => { setWeek(v); if (v !== '?') { setDay('?'); } }; const TabItems = [panesShow.second !== false && { label: paneTitle.second || '秒', key: _.TABKEY_ENUM.SECOND, children: /*#__PURE__*/_react.default.createElement(_SecondPane.default, { value: second, onChange: setSecond }) }, panesShow.minute !== false && { label: paneTitle.minute || '分', key: _.TABKEY_ENUM.MINUTE, children: /*#__PURE__*/_react.default.createElement(_MinutePane.default, { value: minute, onChange: setMinute }) }, panesShow.hour !== false && { label: paneTitle.hour || '时', key: _.TABKEY_ENUM.HOUR, children: /*#__PURE__*/_react.default.createElement(_HourPane.default, { value: hour, onChange: setHour }) }, panesShow.day !== false && { label: paneTitle.day || '日', key: _.TABKEY_ENUM.DAY, children: /*#__PURE__*/_react.default.createElement(_DayPane.default, { value: day, onChange: onChangeDay }) }, panesShow.month !== false && { label: paneTitle.month || '月', key: _.TABKEY_ENUM.MONTH, children: /*#__PURE__*/_react.default.createElement(_MonthPane.default, { value: month, onChange: setMonth }) }, panesShow.week !== false && { label: paneTitle.week || '周', key: _.TABKEY_ENUM.WEEK, children: /*#__PURE__*/_react.default.createElement(_WeekPane.default, { value: week, onChange: onChangeWeek }) }, panesShow.year !== false && { label: paneTitle.year || '年', key: _.TABKEY_ENUM.YEAR, children: /*#__PURE__*/_react.default.createElement(_YearPanel.default, { value: year, onChange: setYear }) }]; (0, _react.useEffect)(() => { getCronFns && getCronFns({ //设置值 onParse, getValue: () => [second, minute, hour, day, month, week, year].join(' ') }); }); (0, _react.useEffect)(() => { onParse(); }, [value]); return /*#__PURE__*/_react.default.createElement("div", { className: 'qnn-react-cron', style: style }, /*#__PURE__*/_react.default.createElement(_tabs.default, { activeKey: currentTab, onChange: setCurrentTab, className: 'Tabs', items: TabItems }), footer === false || (footer === null ? null : /*#__PURE__*/_react.default.createElement("div", { className: "footer" }, footer || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_button.default, { style: { marginRight: 10 }, onClick: onParse }, "\u89E3\u6790\u5230UI"), /*#__PURE__*/_react.default.createElement(_button.default, { type: "primary", onClick: onGenerate }, "\u751F\u6210"))))); }; Cron.Provider = QnnReactCronContextProvider; var _default = Cron; exports.default = _default;