@pisell/private-materials 3.4.77 → 3.4.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +7 -7
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +2 -2
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +2 -2
- package/es/components/booking/addons/model.d.ts +1 -10
- package/es/components/booking/forms/model.d.ts +1 -10
- package/es/components/booking/forms/sendModal/useSendModal.d.ts +0 -1
- package/es/components/booking/info/model.d.ts +1 -10
- package/es/components/booking/info/service/addService/utils.d.ts +1 -1
- package/es/components/booking/info2/service/addService/utils.d.ts +1 -1
- package/es/components/booking/model.d.ts +1 -9
- package/es/components/booking/notes/model.d.ts +1 -10
- package/es/components/booking/payments/model.d.ts +1 -10
- package/es/components/eftposPay/amount.d.ts +1 -1
- package/es/components/eftposPay/device.d.ts +1 -1
- package/es/components/eftposPay/hooks.d.ts +1 -1
- package/es/components/eftposPay/store/index.d.ts +3 -3
- package/es/components/eventBooking/components/ErrorTip/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +0 -1
- package/es/components/pay/toC/model.d.ts +1 -9
- package/es/components/schedules/model.d.ts +1 -9
- package/es/plus/saasAttendance/locales.d.ts +63 -0
- package/es/plus/saasAttendance/locales.js +71 -2
- package/es/plus/saasAttendance/settings/PermissonTab.d.ts +5 -0
- package/es/plus/saasAttendance/settings/PermissonTab.js +79 -0
- package/es/plus/saasAttendance/settings/ShiftScheduleTab.js +9 -3
- package/es/plus/saasAttendance/settings/components/MapField.js +69 -33
- package/es/plus/saasAttendance/settings/components/shiftModal/ShiftPreview.d.ts +7 -0
- package/es/plus/saasAttendance/settings/components/shiftModal/ShiftPreview.js +149 -0
- package/es/plus/saasAttendance/settings/components/shiftModal/ShiftPreview.less +119 -0
- package/es/plus/saasAttendance/settings/index.js +7 -0
- package/es/plus/saasAttendance/settings/index.less +15 -0
- package/es/plus/saasAttendance/settings/types.d.ts +6 -0
- package/es/plus/selectHolder/components/ErrorTip/index.d.ts +0 -1
- package/es/plus/walletEditor/components/ImageUpload/index.d.ts +1 -1
- package/es/pro/Selector/Selector.d.ts +1 -1
- package/lib/components/booking/addons/model.d.ts +1 -10
- package/lib/components/booking/forms/model.d.ts +1 -10
- package/lib/components/booking/forms/sendModal/useSendModal.d.ts +0 -1
- package/lib/components/booking/info/model.d.ts +1 -10
- package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
- package/lib/components/booking/info2/service/addService/utils.d.ts +1 -1
- package/lib/components/booking/model.d.ts +1 -9
- package/lib/components/booking/notes/model.d.ts +1 -10
- package/lib/components/booking/payments/model.d.ts +1 -10
- package/lib/components/eftposPay/amount.d.ts +1 -1
- package/lib/components/eftposPay/device.d.ts +1 -1
- package/lib/components/eftposPay/hooks.d.ts +1 -1
- package/lib/components/eftposPay/store/index.d.ts +3 -3
- package/lib/components/eventBooking/components/ErrorTip/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +0 -1
- package/lib/components/pay/toC/model.d.ts +1 -9
- package/lib/components/schedules/model.d.ts +1 -9
- package/lib/plus/saasAttendance/locales.d.ts +63 -0
- package/lib/plus/saasAttendance/locales.js +65 -2
- package/lib/plus/saasAttendance/settings/PermissonTab.d.ts +5 -0
- package/lib/plus/saasAttendance/settings/PermissonTab.js +128 -0
- package/lib/plus/saasAttendance/settings/ShiftScheduleTab.js +2 -1
- package/lib/plus/saasAttendance/settings/components/MapField.js +50 -11
- package/lib/plus/saasAttendance/settings/components/shiftModal/ShiftPreview.d.ts +7 -0
- package/lib/plus/saasAttendance/settings/components/shiftModal/ShiftPreview.js +150 -0
- package/lib/plus/saasAttendance/settings/components/shiftModal/ShiftPreview.less +119 -0
- package/lib/plus/saasAttendance/settings/index.js +12 -0
- package/lib/plus/saasAttendance/settings/index.less +15 -0
- package/lib/plus/saasAttendance/settings/types.d.ts +6 -0
- package/lib/plus/selectHolder/components/ErrorTip/index.d.ts +0 -1
- package/lib/plus/walletEditor/components/ImageUpload/index.d.ts +1 -1
- package/lib/pro/Selector/Selector.d.ts +1 -1
- package/lowcode/eco-cup-list/meta.ts +1 -1
- package/lowcode/eco-customer-list/meta.ts +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
import React, { useEffect } from 'react';
|
|
8
|
+
import { Form, Select, Radio } from 'antd';
|
|
9
|
+
import { locales } from '@pisell/utils';
|
|
10
|
+
var PermissionField = function PermissionField(props) {
|
|
11
|
+
var _props$value2;
|
|
12
|
+
useEffect(function () {
|
|
13
|
+
var _props$value;
|
|
14
|
+
if (typeof ((_props$value = props.value) === null || _props$value === void 0 ? void 0 : _props$value.member_data_view_range) === 'undefined') {
|
|
15
|
+
var _props$onChange;
|
|
16
|
+
(_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, _objectSpread(_objectSpread({}, props.value || {}), {}, {
|
|
17
|
+
member_data_view_range: ['this_week']
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
}, []);
|
|
21
|
+
var options = [{
|
|
22
|
+
label: locales.getText('pisell2.attendance.group-settings.basic-info.permission.this-week.recommended'),
|
|
23
|
+
value: 'this_week'
|
|
24
|
+
}, {
|
|
25
|
+
label: locales.getText('pisell2.attendance.group-settings.basic-info.permission.last-week'),
|
|
26
|
+
value: 'last_week'
|
|
27
|
+
}, {
|
|
28
|
+
label: locales.getText('pisell2.attendance.group-settings.basic-info.permission.this-month'),
|
|
29
|
+
value: 'this_month'
|
|
30
|
+
}];
|
|
31
|
+
var value = (_props$value2 = props.value) === null || _props$value2 === void 0 ? void 0 : _props$value2.member_data_view_range;
|
|
32
|
+
var isLimited = Array.isArray(value) && value.length > 0;
|
|
33
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Radio.Group, {
|
|
34
|
+
value: isLimited ? 'limited' : 'unlimited',
|
|
35
|
+
onChange: function onChange(e) {
|
|
36
|
+
var nextMode = e.target.value;
|
|
37
|
+
if (nextMode === 'limited') {
|
|
38
|
+
var _props$onChange2;
|
|
39
|
+
var next = Array.isArray(value) && value.length > 0 ? value : ['this_week'];
|
|
40
|
+
(_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 || _props$onChange2.call(props, _objectSpread(_objectSpread({}, props.value || {}), {}, {
|
|
41
|
+
member_data_view_range: next
|
|
42
|
+
}));
|
|
43
|
+
} else {
|
|
44
|
+
var _props$onChange3;
|
|
45
|
+
(_props$onChange3 = props.onChange) === null || _props$onChange3 === void 0 || _props$onChange3.call(props, _objectSpread(_objectSpread({}, props.value || {}), {}, {
|
|
46
|
+
member_data_view_range: []
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
style: {
|
|
51
|
+
marginBottom: 8
|
|
52
|
+
}
|
|
53
|
+
}, /*#__PURE__*/React.createElement(Radio, {
|
|
54
|
+
value: "limited"
|
|
55
|
+
}, locales.getText('pisell2.attendance.group-settings.basic-info.permission.limited')), /*#__PURE__*/React.createElement(Radio, {
|
|
56
|
+
value: "unlimited"
|
|
57
|
+
}, locales.getText('pisell2.attendance.group-settings.basic-info.permission.unlimited'))), isLimited && /*#__PURE__*/React.createElement(Select, {
|
|
58
|
+
mode: "multiple",
|
|
59
|
+
allowClear: true,
|
|
60
|
+
value: value,
|
|
61
|
+
options: options,
|
|
62
|
+
onChange: function onChange(next) {
|
|
63
|
+
var _props$onChange4;
|
|
64
|
+
(_props$onChange4 = props.onChange) === null || _props$onChange4 === void 0 || _props$onChange4.call(props, _objectSpread(_objectSpread({}, props.value || {}), {}, {
|
|
65
|
+
member_data_view_range: next.length > 0 ? next : []
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
}));
|
|
69
|
+
};
|
|
70
|
+
var PermissonTab = function PermissonTab(props) {
|
|
71
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
72
|
+
className: "saas-attendance-group-settings__panel",
|
|
73
|
+
id: props.id
|
|
74
|
+
}, /*#__PURE__*/React.createElement(Form.Item, {
|
|
75
|
+
label: locales.getText('pisell2.attendance.group-settings.data-permission.employee-data-view-range'),
|
|
76
|
+
name: "permission"
|
|
77
|
+
}, /*#__PURE__*/React.createElement(PermissionField, null)));
|
|
78
|
+
};
|
|
79
|
+
export default PermissonTab;
|
|
@@ -13,8 +13,7 @@ import { Button, Form, Radio } from 'antd';
|
|
|
13
13
|
import { Icon } from '@pisell/materials';
|
|
14
14
|
import { locales } from '@pisell/utils';
|
|
15
15
|
import ShiftModal from "./components/shiftModal";
|
|
16
|
-
|
|
17
|
-
// 注意时间,不要存在交叉的情况
|
|
16
|
+
import ShiftPreview from "./components/shiftModal/ShiftPreview";
|
|
18
17
|
var ScheduleSetting = function ScheduleSetting(props) {
|
|
19
18
|
var value = props.value,
|
|
20
19
|
onChange = props.onChange;
|
|
@@ -104,6 +103,13 @@ var ShiftScheduleTab = function ShiftScheduleTab(props) {
|
|
|
104
103
|
return validator;
|
|
105
104
|
}()
|
|
106
105
|
}]
|
|
107
|
-
}, /*#__PURE__*/React.createElement(ScheduleSetting, null))
|
|
106
|
+
}, /*#__PURE__*/React.createElement(ScheduleSetting, null)), /*#__PURE__*/React.createElement(Form.Item, {
|
|
107
|
+
noStyle: true,
|
|
108
|
+
shouldUpdate: true
|
|
109
|
+
}, function (form) {
|
|
110
|
+
return /*#__PURE__*/React.createElement(ShiftPreview, {
|
|
111
|
+
value: form.getFieldValue(['shift', 'fixed'])
|
|
112
|
+
});
|
|
113
|
+
}));
|
|
108
114
|
};
|
|
109
115
|
export default ShiftScheduleTab;
|
|
@@ -470,16 +470,20 @@ var MapField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
470
470
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
471
471
|
editingLocationValue = _useState8[0],
|
|
472
472
|
setEditingLocationValue = _useState8[1];
|
|
473
|
+
var _useState9 = useState(null),
|
|
474
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
475
|
+
editingLocationId = _useState10[0],
|
|
476
|
+
setEditingLocationId = _useState10[1];
|
|
473
477
|
var locationFormMapRef = useRef(null);
|
|
474
478
|
var mapRef = useRef(null);
|
|
475
|
-
var
|
|
476
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
477
|
-
isMapReady = _useState10[0],
|
|
478
|
-
setIsMapReady = _useState10[1];
|
|
479
|
-
var _useState11 = useState(null),
|
|
479
|
+
var _useState11 = useState(false),
|
|
480
480
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
481
|
-
|
|
482
|
-
|
|
481
|
+
isMapReady = _useState12[0],
|
|
482
|
+
setIsMapReady = _useState12[1];
|
|
483
|
+
var _useState13 = useState(null),
|
|
484
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
485
|
+
activeLocationId = _useState14[0],
|
|
486
|
+
setActiveLocationId = _useState14[1];
|
|
483
487
|
var context = useEngineContext();
|
|
484
488
|
useEffect(function () {
|
|
485
489
|
if (!onChange || !Array.isArray(value) || value.length === 0) return;
|
|
@@ -595,21 +599,19 @@ var MapField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
595
599
|
validRangeMeters: defaultRadius
|
|
596
600
|
};
|
|
597
601
|
setAddLocationOpen(true);
|
|
602
|
+
setEditingLocationId(null);
|
|
598
603
|
setEditingLocationValue(baseFormValue);
|
|
599
|
-
|
|
600
|
-
// Request geolocation permission and get current position
|
|
601
|
-
_context4.next = 5;
|
|
604
|
+
_context4.next = 6;
|
|
602
605
|
return getCurrentPosition();
|
|
603
|
-
case
|
|
606
|
+
case 6:
|
|
604
607
|
currentPosition = _context4.sent;
|
|
605
608
|
if (currentPosition) {
|
|
606
|
-
// Pre-fill the form with current position
|
|
607
609
|
setEditingLocationValue(_objectSpread(_objectSpread({}, baseFormValue), {}, {
|
|
608
610
|
latitude: currentPosition.lat.toFixed(6),
|
|
609
611
|
longitude: currentPosition.lng.toFixed(6)
|
|
610
612
|
}));
|
|
611
613
|
}
|
|
612
|
-
case
|
|
614
|
+
case 8:
|
|
613
615
|
case "end":
|
|
614
616
|
return _context4.stop();
|
|
615
617
|
}
|
|
@@ -622,9 +624,9 @@ var MapField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
622
624
|
}()
|
|
623
625
|
};
|
|
624
626
|
}, [defaultRadius]);
|
|
625
|
-
var
|
|
627
|
+
var handleSubmitLocation = /*#__PURE__*/function () {
|
|
626
628
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
627
|
-
var _values,
|
|
629
|
+
var _values, nextLocation, nextLocations, _nextLocations;
|
|
628
630
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
629
631
|
while (1) switch (_context5.prev = _context5.next) {
|
|
630
632
|
case 0:
|
|
@@ -639,37 +641,56 @@ var MapField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
639
641
|
return locationFormMapRef.current.validate();
|
|
640
642
|
case 5:
|
|
641
643
|
_values = _context5.sent;
|
|
642
|
-
|
|
643
|
-
id: createLocationId(),
|
|
644
|
+
nextLocation = {
|
|
645
|
+
id: editingLocationId !== null && editingLocationId !== void 0 ? editingLocationId : createLocationId(),
|
|
644
646
|
name: toMultiLangName(_values.name),
|
|
645
647
|
radius: _values.validRangeMeters,
|
|
646
648
|
address: {
|
|
647
649
|
lat: parseFloat(_values.latitude) || 0,
|
|
648
650
|
lng: parseFloat(_values.longitude) || 0
|
|
649
651
|
}
|
|
650
|
-
};
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
652
|
+
};
|
|
653
|
+
if (editingLocationId) {
|
|
654
|
+
nextLocations = locations.map(function (loc) {
|
|
655
|
+
return loc.id === editingLocationId ? nextLocation : loc;
|
|
656
|
+
});
|
|
657
|
+
onChange === null || onChange === void 0 || onChange(nextLocations);
|
|
658
|
+
setActiveLocationId(editingLocationId);
|
|
659
|
+
} else {
|
|
660
|
+
_nextLocations = [nextLocation].concat(_toConsumableArray(locations));
|
|
661
|
+
onChange === null || onChange === void 0 || onChange(_nextLocations);
|
|
662
|
+
setActiveLocationId(nextLocation.id);
|
|
663
|
+
}
|
|
655
664
|
setAddLocationOpen(false);
|
|
656
665
|
setEditingLocationValue(null);
|
|
657
|
-
|
|
666
|
+
setEditingLocationId(null);
|
|
667
|
+
_context5.next = 16;
|
|
658
668
|
break;
|
|
659
|
-
case
|
|
660
|
-
_context5.prev =
|
|
669
|
+
case 13:
|
|
670
|
+
_context5.prev = 13;
|
|
661
671
|
_context5.t0 = _context5["catch"](2);
|
|
662
672
|
console.error('Validation failed:', _context5.t0);
|
|
663
|
-
case
|
|
673
|
+
case 16:
|
|
664
674
|
case "end":
|
|
665
675
|
return _context5.stop();
|
|
666
676
|
}
|
|
667
|
-
}, _callee5, null, [[2,
|
|
677
|
+
}, _callee5, null, [[2, 13]]);
|
|
668
678
|
}));
|
|
669
|
-
return function
|
|
679
|
+
return function handleSubmitLocation() {
|
|
670
680
|
return _ref.apply(this, arguments);
|
|
671
681
|
};
|
|
672
682
|
}();
|
|
683
|
+
var handleEditLocation = useCallback(function (location) {
|
|
684
|
+
var _location$address$lat, _location$address$lng, _location$radius;
|
|
685
|
+
setAddLocationOpen(true);
|
|
686
|
+
setEditingLocationId(location.id);
|
|
687
|
+
setEditingLocationValue({
|
|
688
|
+
name: toMultiLangName(location.name),
|
|
689
|
+
latitude: String((_location$address$lat = location.address.lat) !== null && _location$address$lat !== void 0 ? _location$address$lat : ''),
|
|
690
|
+
longitude: String((_location$address$lng = location.address.lng) !== null && _location$address$lng !== void 0 ? _location$address$lng : ''),
|
|
691
|
+
validRangeMeters: (_location$radius = location.radius) !== null && _location$radius !== void 0 ? _location$radius : defaultRadius
|
|
692
|
+
});
|
|
693
|
+
}, [defaultRadius]);
|
|
673
694
|
var handleRemoveLocation = function handleRemoveLocation(locationId) {
|
|
674
695
|
var nextLocations = locations.filter(function (loc) {
|
|
675
696
|
return loc.id !== locationId;
|
|
@@ -769,7 +790,21 @@ var MapField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
769
790
|
className: "saas-attendance-map-field__location-header"
|
|
770
791
|
}, /*#__PURE__*/React.createElement("div", {
|
|
771
792
|
className: "saas-attendance-group-settings__location-name"
|
|
772
|
-
}, getLocationNameText(location.name)), /*#__PURE__*/React.createElement(
|
|
793
|
+
}, getLocationNameText(location.name)), /*#__PURE__*/React.createElement("div", {
|
|
794
|
+
className: "saas-attendance-map-field__location-actions"
|
|
795
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
796
|
+
type: "text",
|
|
797
|
+
size: "small",
|
|
798
|
+
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
799
|
+
type: "pisell2-edit-05",
|
|
800
|
+
size: 16
|
|
801
|
+
}),
|
|
802
|
+
className: "saas-attendance-map-field__edit-btn",
|
|
803
|
+
onClick: function onClick(e) {
|
|
804
|
+
e.stopPropagation();
|
|
805
|
+
handleEditLocation(location);
|
|
806
|
+
}
|
|
807
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
773
808
|
type: "text",
|
|
774
809
|
size: "small",
|
|
775
810
|
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
@@ -781,7 +816,7 @@ var MapField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
781
816
|
e.stopPropagation(); // Prevent triggering location item click
|
|
782
817
|
handleRemoveLocation(location.id);
|
|
783
818
|
}
|
|
784
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
819
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
785
820
|
className: "saas-attendance-group-settings__location-meta"
|
|
786
821
|
}, locales.getText('pisell2.attendance.group-settings.clock-in-method.add-location-modal.valid-range.label'), ": ", /*#__PURE__*/React.createElement("span", null, location.radius || defaultRadius)));
|
|
787
822
|
})));
|
|
@@ -790,15 +825,16 @@ var MapField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
790
825
|
className: "saas-attendance-group-settings__locations-box ".concat(className || '')
|
|
791
826
|
}, locations.length === 0 ? renderEmptyState() : renderLocationsList()), /*#__PURE__*/React.createElement(PisellModal, {
|
|
792
827
|
open: addLocationOpen,
|
|
793
|
-
title: locales.getText('pisell2.attendance.group-settings.clock-in-method.add-location-modal.title'),
|
|
828
|
+
title: locales.getText(editingLocationId ? 'pisell2.attendance.group-settings.clock-in-method.edit-location-modal.title' : 'pisell2.attendance.group-settings.clock-in-method.add-location-modal.title'),
|
|
794
829
|
destroyOnHidden: true,
|
|
795
830
|
onCancel: function onCancel() {
|
|
796
831
|
setAddLocationOpen(false);
|
|
797
832
|
setEditingLocationValue(null);
|
|
833
|
+
setEditingLocationId(null);
|
|
798
834
|
},
|
|
799
|
-
okText: locales.getText('pisell2.attendance.group-settings.actions.add-location-confirm'),
|
|
835
|
+
okText: locales.getText(editingLocationId ? 'pisell2.attendance.group-settings.actions.edit-location-confirm' : 'pisell2.attendance.group-settings.actions.add-location-confirm'),
|
|
800
836
|
cancelText: locales.getText('pisell2.attendance.group-settings.actions.cancel'),
|
|
801
|
-
onOk:
|
|
837
|
+
onOk: handleSubmitLocation
|
|
802
838
|
}, /*#__PURE__*/React.createElement(LocationFormMap, {
|
|
803
839
|
ref: locationFormMapRef,
|
|
804
840
|
value: editingLocationValue,
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import React, { useMemo } from 'react';
|
|
8
|
+
import { locales } from '@pisell/utils';
|
|
9
|
+
import "./ShiftPreview.less";
|
|
10
|
+
var WEEKDAYS = [1, 2, 3, 4, 5, 6, 7];
|
|
11
|
+
var getWeekdayText = function getWeekdayText(weekday) {
|
|
12
|
+
return locales.getText("pisell2.attendance.group-settings.shift-schedule.modal.weekday.".concat(weekday));
|
|
13
|
+
};
|
|
14
|
+
var parseMinutes = function parseMinutes(hhmm) {
|
|
15
|
+
var _split$map = (hhmm || '').split(':').map(function (v) {
|
|
16
|
+
return Number(v);
|
|
17
|
+
}),
|
|
18
|
+
_split$map2 = _slicedToArray(_split$map, 2),
|
|
19
|
+
h = _split$map2[0],
|
|
20
|
+
m = _split$map2[1];
|
|
21
|
+
if (!Number.isFinite(h) || !Number.isFinite(m)) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return h * 60 + m;
|
|
25
|
+
};
|
|
26
|
+
var formatClock = function formatClock(hhmm) {
|
|
27
|
+
var totalMinutes = parseMinutes(hhmm);
|
|
28
|
+
if (totalMinutes === null) return '';
|
|
29
|
+
var hours24 = Math.floor(totalMinutes / 60) % 24;
|
|
30
|
+
var minutes = totalMinutes % 60;
|
|
31
|
+
var suffix = hours24 >= 12 ? locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.period.pm') : locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.period.am');
|
|
32
|
+
var hours12 = hours24 % 12 === 0 ? 12 : hours24 % 12;
|
|
33
|
+
return "".concat(hours12, ":").concat(String(minutes).padStart(2, '0'), " ").concat(suffix);
|
|
34
|
+
};
|
|
35
|
+
var formatWeeklyHours = function formatWeeklyHours(totalMinutes) {
|
|
36
|
+
var hours = totalMinutes / 60;
|
|
37
|
+
if (Number.isInteger(hours)) return "".concat(hours);
|
|
38
|
+
return "".concat(hours.toFixed(2)).replace(/\.?0+$/, '');
|
|
39
|
+
};
|
|
40
|
+
var formatDuration = function formatDuration(totalMinutes) {
|
|
41
|
+
var hours = Math.floor(totalMinutes / 60);
|
|
42
|
+
var minutes = totalMinutes % 60;
|
|
43
|
+
return locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.duration')(hours, minutes);
|
|
44
|
+
};
|
|
45
|
+
var ShiftPreview = function ShiftPreview(props) {
|
|
46
|
+
var schedule = Array.isArray(props.value) ? props.value : [];
|
|
47
|
+
var previewDays = useMemo(function () {
|
|
48
|
+
var byWeekday = new Map();
|
|
49
|
+
schedule.forEach(function (item) {
|
|
50
|
+
if (item && typeof item.weekday === 'number') {
|
|
51
|
+
byWeekday.set(item.weekday, item);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return WEEKDAYS.map(function (weekday) {
|
|
55
|
+
var item = byWeekday.get(weekday);
|
|
56
|
+
var times = Array.isArray(item === null || item === void 0 ? void 0 : item.times) ? item.times : [];
|
|
57
|
+
var timeRanges = times.map(function (time) {
|
|
58
|
+
var startText = formatClock(time === null || time === void 0 ? void 0 : time.start);
|
|
59
|
+
var endText = formatClock(time === null || time === void 0 ? void 0 : time.end);
|
|
60
|
+
if (!startText || !endText) return null;
|
|
61
|
+
return {
|
|
62
|
+
startText: startText,
|
|
63
|
+
endText: endText
|
|
64
|
+
};
|
|
65
|
+
}).filter(Boolean);
|
|
66
|
+
var totalMinutes = times.reduce(function (sum, time) {
|
|
67
|
+
var start = parseMinutes(time === null || time === void 0 ? void 0 : time.start);
|
|
68
|
+
var end = parseMinutes(time === null || time === void 0 ? void 0 : time.end);
|
|
69
|
+
if (start === null || end === null || end <= start) {
|
|
70
|
+
return sum;
|
|
71
|
+
}
|
|
72
|
+
return sum + (end - start);
|
|
73
|
+
}, 0);
|
|
74
|
+
return {
|
|
75
|
+
weekday: weekday,
|
|
76
|
+
timeRanges: timeRanges,
|
|
77
|
+
totalMinutes: totalMinutes
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
}, [schedule]);
|
|
81
|
+
var workingDays = previewDays.filter(function (day) {
|
|
82
|
+
return day.totalMinutes > 0;
|
|
83
|
+
}).length;
|
|
84
|
+
var weeklyMinutes = previewDays.reduce(function (sum, day) {
|
|
85
|
+
return sum + day.totalMinutes;
|
|
86
|
+
}, 0);
|
|
87
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
88
|
+
className: "saas-attendance-group-settings__shift-preview"
|
|
89
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
90
|
+
className: "saas-attendance-group-settings__shift-summary"
|
|
91
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
92
|
+
className: "saas-attendance-group-settings__shift-summary-card"
|
|
93
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
94
|
+
className: "saas-attendance-group-settings__shift-summary-label"
|
|
95
|
+
}, locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.working-days')), /*#__PURE__*/React.createElement("div", {
|
|
96
|
+
className: "saas-attendance-group-settings__shift-summary-value"
|
|
97
|
+
}, workingDays), /*#__PURE__*/React.createElement("div", {
|
|
98
|
+
className: "saas-attendance-group-settings__shift-summary-unit"
|
|
99
|
+
}, locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.days-per-week'))), /*#__PURE__*/React.createElement("div", {
|
|
100
|
+
className: "saas-attendance-group-settings__shift-summary-card"
|
|
101
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
102
|
+
className: "saas-attendance-group-settings__shift-summary-label"
|
|
103
|
+
}, locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.weekly-hours')), /*#__PURE__*/React.createElement("div", {
|
|
104
|
+
className: "saas-attendance-group-settings__shift-summary-value"
|
|
105
|
+
}, formatWeeklyHours(weeklyMinutes)), /*#__PURE__*/React.createElement("div", {
|
|
106
|
+
className: "saas-attendance-group-settings__shift-summary-unit"
|
|
107
|
+
}, locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.hours')))), /*#__PURE__*/React.createElement("div", {
|
|
108
|
+
className: "saas-attendance-group-settings__shift-table"
|
|
109
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
110
|
+
className: "saas-attendance-group-settings__shift-table-head"
|
|
111
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
112
|
+
className: "saas-attendance-group-settings__shift-table-cell"
|
|
113
|
+
}, locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.table.day')), /*#__PURE__*/React.createElement("div", {
|
|
114
|
+
className: "saas-attendance-group-settings__shift-table-cell"
|
|
115
|
+
}, locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.table.shift-times')), /*#__PURE__*/React.createElement("div", {
|
|
116
|
+
className: "saas-attendance-group-settings__shift-table-cell"
|
|
117
|
+
}, locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.table.duration'))), previewDays.map(function (day) {
|
|
118
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
119
|
+
key: day.weekday,
|
|
120
|
+
className: "saas-attendance-group-settings__shift-table-row"
|
|
121
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
122
|
+
className: "saas-attendance-group-settings__shift-table-cell"
|
|
123
|
+
}, getWeekdayText(day.weekday)), /*#__PURE__*/React.createElement("div", {
|
|
124
|
+
className: "saas-attendance-group-settings__shift-table-cell"
|
|
125
|
+
}, day.timeRanges.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
126
|
+
className: "saas-attendance-group-settings__shift-times"
|
|
127
|
+
}, day.timeRanges.map(function (range, index) {
|
|
128
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
129
|
+
key: "".concat(day.weekday, "-").concat(index),
|
|
130
|
+
className: "saas-attendance-group-settings__shift-time-tag"
|
|
131
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
132
|
+
className: "saas-attendance-group-settings__shift-time-text"
|
|
133
|
+
}, range.startText), /*#__PURE__*/React.createElement("span", {
|
|
134
|
+
className: "saas-attendance-group-settings__shift-time-arrow"
|
|
135
|
+
}, "\u2192"), /*#__PURE__*/React.createElement("span", {
|
|
136
|
+
className: "saas-attendance-group-settings__shift-time-text"
|
|
137
|
+
}, range.endText));
|
|
138
|
+
})) : /*#__PURE__*/React.createElement("div", {
|
|
139
|
+
className: "saas-attendance-group-settings__shift-empty"
|
|
140
|
+
}, locales.getText('pisell2.attendance.group-settings.shift-schedule.preview.no-shift'))), /*#__PURE__*/React.createElement("div", {
|
|
141
|
+
className: "saas-attendance-group-settings__shift-table-cell"
|
|
142
|
+
}, day.totalMinutes > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
143
|
+
className: "saas-attendance-group-settings__shift-duration"
|
|
144
|
+
}, formatDuration(day.totalMinutes)) : /*#__PURE__*/React.createElement("div", {
|
|
145
|
+
className: "saas-attendance-group-settings__shift-duration-empty"
|
|
146
|
+
}, formatDuration(0))));
|
|
147
|
+
})));
|
|
148
|
+
};
|
|
149
|
+
export default ShiftPreview;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
.saas-attendance-group-settings__shift-preview {
|
|
2
|
+
margin-top: 12px;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.saas-attendance-group-settings__shift-summary {
|
|
6
|
+
display: grid;
|
|
7
|
+
grid-template-columns: 1fr 1fr;
|
|
8
|
+
gap: 12px;
|
|
9
|
+
margin-top: 12px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.saas-attendance-group-settings__shift-summary-card {
|
|
13
|
+
border: 1px solid #e5e7eb;
|
|
14
|
+
border-radius: 10px;
|
|
15
|
+
background: #ffffff;
|
|
16
|
+
padding: 14px 16px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.saas-attendance-group-settings__shift-summary-label {
|
|
20
|
+
font-size: 12px;
|
|
21
|
+
line-height: 18px;
|
|
22
|
+
color: #6b7280;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.saas-attendance-group-settings__shift-summary-value {
|
|
26
|
+
margin-top: 8px;
|
|
27
|
+
font-size: 28px;
|
|
28
|
+
line-height: 32px;
|
|
29
|
+
font-weight: 600;
|
|
30
|
+
color: #111827;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.saas-attendance-group-settings__shift-summary-unit {
|
|
34
|
+
margin-top: 4px;
|
|
35
|
+
font-size: 12px;
|
|
36
|
+
line-height: 18px;
|
|
37
|
+
color: #6b7280;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.saas-attendance-group-settings__shift-table {
|
|
41
|
+
margin-top: 12px;
|
|
42
|
+
border: 1px solid #e5e7eb;
|
|
43
|
+
border-radius: 10px;
|
|
44
|
+
overflow: hidden;
|
|
45
|
+
background: #ffffff;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.saas-attendance-group-settings__shift-table-head {
|
|
49
|
+
display: grid;
|
|
50
|
+
grid-template-columns: 1fr 3fr 1fr;
|
|
51
|
+
gap: 0;
|
|
52
|
+
padding: 12px 16px;
|
|
53
|
+
background: #f9fafb;
|
|
54
|
+
border-bottom: 1px solid #e5e7eb;
|
|
55
|
+
font-size: 12px;
|
|
56
|
+
color: #6b7280;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.saas-attendance-group-settings__shift-table-row {
|
|
60
|
+
display: grid;
|
|
61
|
+
grid-template-columns: 1fr 3fr 1fr;
|
|
62
|
+
gap: 0;
|
|
63
|
+
padding: 12px 16px;
|
|
64
|
+
border-bottom: 1px solid #f3f4f6;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.saas-attendance-group-settings__shift-table-row:last-child {
|
|
68
|
+
border-bottom: none;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.saas-attendance-group-settings__shift-table-cell {
|
|
72
|
+
display: flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.saas-attendance-group-settings__shift-times {
|
|
77
|
+
display: flex;
|
|
78
|
+
flex-direction: column;
|
|
79
|
+
gap: 8px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.saas-attendance-group-settings__shift-time-tag {
|
|
83
|
+
padding: 2px 4px;
|
|
84
|
+
border-radius: 6px;
|
|
85
|
+
background: #f3f4f6;
|
|
86
|
+
color: #374151;
|
|
87
|
+
font-size: 12px;
|
|
88
|
+
font-weight: 500;
|
|
89
|
+
display: inline-flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
gap: 6px;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.saas-attendance-group-settings__shift-time-text {
|
|
95
|
+
color: inherit;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.saas-attendance-group-settings__shift-time-arrow {
|
|
99
|
+
color: #6b7280;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.saas-attendance-group-settings__shift-empty {
|
|
103
|
+
color: #9ca3af;
|
|
104
|
+
font-size: 12px;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.saas-attendance-group-settings__shift-duration {
|
|
108
|
+
padding: 2px 4px;
|
|
109
|
+
border-radius: 2px;
|
|
110
|
+
background: #ecfdf5;
|
|
111
|
+
color: #14532d;
|
|
112
|
+
font-size: 10px;
|
|
113
|
+
font-weight: 600;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.saas-attendance-group-settings__shift-duration-empty {
|
|
117
|
+
color: #9ca3af;
|
|
118
|
+
font-size: 12px;
|
|
119
|
+
}
|
|
@@ -23,6 +23,7 @@ import useEngineContext from "../../../hooks/useEngineContext";
|
|
|
23
23
|
import { request } from "../../../utils";
|
|
24
24
|
import localeTexts from "../locales";
|
|
25
25
|
import BasicInfoTab from "./BasicInfoTab";
|
|
26
|
+
import PermissonTab from "./PermissonTab";
|
|
26
27
|
import ShiftScheduleTab from "./ShiftScheduleTab";
|
|
27
28
|
import ClockInMethodTab from "./ClockInMethodTab";
|
|
28
29
|
import CorrectionPolicyTab from "./CorrectionPolicyTab";
|
|
@@ -45,6 +46,10 @@ var TAB_CONFIGS = [{
|
|
|
45
46
|
key: 'correction',
|
|
46
47
|
icon: 'pisell2-clock',
|
|
47
48
|
labelKey: 'pisell2.attendance.group-settings.correction-policy'
|
|
49
|
+
}, {
|
|
50
|
+
key: 'permission',
|
|
51
|
+
icon: 'pisell2-user-01',
|
|
52
|
+
labelKey: 'pisell2.attendance.group-settings.data-permission'
|
|
48
53
|
}];
|
|
49
54
|
|
|
50
55
|
// 生成简单的唯一 ID
|
|
@@ -250,6 +255,8 @@ var Settings = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
250
255
|
}), /*#__PURE__*/React.createElement(CorrectionPolicyTab, {
|
|
251
256
|
form: form,
|
|
252
257
|
id: "saas-attendance-settings-section-".concat(_uniqueId, "-correction")
|
|
258
|
+
}), /*#__PURE__*/React.createElement(PermissonTab, {
|
|
259
|
+
id: "saas-attendance-settings-section-".concat(_uniqueId, "-permission")
|
|
253
260
|
}))));
|
|
254
261
|
});
|
|
255
262
|
export default Settings;
|
|
@@ -485,6 +485,21 @@
|
|
|
485
485
|
gap: 8px;
|
|
486
486
|
}
|
|
487
487
|
|
|
488
|
+
.saas-attendance-map-field__location-actions {
|
|
489
|
+
display: flex;
|
|
490
|
+
align-items: center;
|
|
491
|
+
gap: 4px;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
.saas-attendance-map-field__edit-btn {
|
|
495
|
+
color: #9ca3af;
|
|
496
|
+
transition: color 0.2s ease;
|
|
497
|
+
|
|
498
|
+
&:hover {
|
|
499
|
+
color: #7f56d9;
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
|
|
488
503
|
.saas-attendance-map-field__delete-btn {
|
|
489
504
|
color: #9ca3af;
|
|
490
505
|
transition: color 0.2s ease;
|
|
@@ -65,6 +65,10 @@ export interface AttendanceCorrection {
|
|
|
65
65
|
period_type: FrequencyType;
|
|
66
66
|
period_custom: number | null;
|
|
67
67
|
}
|
|
68
|
+
export declare type MemberDataViewRange = 'this_week' | 'last_week' | 'this_month';
|
|
69
|
+
export interface AttendancePermission {
|
|
70
|
+
member_data_view_range?: MemberDataViewRange[];
|
|
71
|
+
}
|
|
68
72
|
/**
|
|
69
73
|
* 考勤组设置值 - 完整的API数据结构
|
|
70
74
|
*/
|
|
@@ -76,6 +80,7 @@ export interface AttendanceGroupSettingsValue {
|
|
|
76
80
|
place: AttendancePlace;
|
|
77
81
|
member_ids: number[];
|
|
78
82
|
correction: AttendanceCorrection;
|
|
83
|
+
permission?: AttendancePermission;
|
|
79
84
|
creator_type?: string;
|
|
80
85
|
creator_id?: number;
|
|
81
86
|
editor_type?: string;
|
|
@@ -90,6 +95,7 @@ export interface BasicInfoTabValue {
|
|
|
90
95
|
name: MultiLangName;
|
|
91
96
|
timezone: string;
|
|
92
97
|
member_ids: number[];
|
|
98
|
+
permission?: AttendancePermission;
|
|
93
99
|
}
|
|
94
100
|
/**
|
|
95
101
|
* 排班规则Tab的值
|
|
@@ -3,6 +3,6 @@ export interface ImageUploadProps {
|
|
|
3
3
|
value?: string;
|
|
4
4
|
onChange?: (val: string) => void;
|
|
5
5
|
}
|
|
6
|
-
export declare const getBaseTime: (size: number) =>
|
|
6
|
+
export declare const getBaseTime: (size: number) => 2000 | 1000 | 4000 | 8000;
|
|
7
7
|
declare const ImageUpload: React.FC<ImageUploadProps>;
|
|
8
8
|
export default ImageUpload;
|