@pisell/private-materials 6.6.28 → 6.6.30
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 +2 -2
- package/build/lowcode/preview.js +7 -7
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +8 -8
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +9 -9
- package/es/components/booking/forms/sendModal/useSendModal.d.ts +0 -1
- package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +0 -1
- package/es/components/booking/info/hooks/useInfoHolder.d.ts +0 -1
- package/es/components/booking/info/service2/utils.d.ts +1 -1
- package/es/components/eftpos/hooks.d.ts +0 -1
- 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 +2 -2
- package/es/components/eftposPay/store/index.d.ts +5 -5
- package/es/components/eftposPay/tyro/hooks.d.ts +0 -1
- package/es/components/eventBooking/components/ErrorTip/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/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/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +0 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +0 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +0 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +0 -1
- package/es/components/shoppingCart/components/Empty/index.d.ts +0 -1
- package/es/components/ticketBooking/utils/index.d.ts +1 -1
- package/es/hooks/usePaymentLogger.d.ts +0 -1
- package/es/index.d.ts +4 -0
- package/es/index.js +4 -1
- package/es/plus/productSelect/ProductCard/SkuCard/components/Capacity/index.d.ts +1 -1
- package/es/plus/productSelect/ProductCard/SkuCard/components/CardMask/index.d.ts +1 -1
- package/es/plus/productSelect/ProductCard/SkuCard/components/Countdown/index.d.ts +1 -1
- package/es/plus/productSelect/ProductCard/SkuCard/components/Duration/index.d.ts +1 -1
- package/es/plus/productSelect/ProductCard/SkuCard/components/MemberPrice/index.d.ts +1 -1
- package/es/plus/productSelect/ProductCard/SkuCard/components/Resource/index.d.ts +1 -1
- package/es/plus/productSelect/ProductCard/SkuCard/components/Stock/index.d.ts +1 -1
- package/es/plus/productSelect/ProductCard/SkuCard/components/Time/index.d.ts +1 -1
- package/es/plus/saasAttendance/index.d.ts +6 -0
- package/es/plus/saasAttendance/index.js +5 -0
- package/es/plus/saasAttendance/locales.d.ts +318 -0
- package/es/plus/saasAttendance/locales.js +354 -0
- package/es/plus/saasAttendance/settings/BasicInfoTab.d.ts +5 -0
- package/es/plus/saasAttendance/settings/BasicInfoTab.js +96 -0
- package/es/plus/saasAttendance/settings/ClockInMethodTab.d.ts +8 -0
- package/es/plus/saasAttendance/settings/ClockInMethodTab.js +81 -0
- package/es/plus/saasAttendance/settings/CorrectionPolicyTab.d.ts +8 -0
- package/es/plus/saasAttendance/settings/CorrectionPolicyTab.js +293 -0
- package/es/plus/saasAttendance/settings/ShiftScheduleTab.d.ts +5 -0
- package/es/plus/saasAttendance/settings/ShiftScheduleTab.js +109 -0
- package/es/plus/saasAttendance/settings/components/MapField.d.ts +78 -0
- package/es/plus/saasAttendance/settings/components/MapField.js +810 -0
- package/es/plus/saasAttendance/settings/components/index.d.ts +3 -0
- package/es/plus/saasAttendance/settings/components/index.js +2 -0
- package/es/plus/saasAttendance/settings/components/membersField/index.d.ts +8 -0
- package/es/plus/saasAttendance/settings/components/membersField/index.js +216 -0
- package/es/plus/saasAttendance/settings/components/membersField/index.less +70 -0
- package/es/plus/saasAttendance/settings/components/shiftModal/index.d.ts +18 -0
- package/es/plus/saasAttendance/settings/components/shiftModal/index.js +438 -0
- package/es/plus/saasAttendance/settings/index.d.ts +18 -0
- package/es/plus/saasAttendance/settings/index.js +255 -0
- package/es/plus/saasAttendance/settings/index.less +495 -0
- package/es/plus/saasAttendance/settings/serve.d.ts +27 -0
- package/es/plus/saasAttendance/settings/serve.js +83 -0
- package/es/plus/saasAttendance/settings/types.d.ts +128 -0
- package/es/plus/saasAttendance/settings/types.js +1 -0
- package/es/plus/saasRole/components/PermissionManager/index.d.ts +19 -0
- package/es/plus/saasRole/components/PermissionManager/index.js +211 -0
- package/es/plus/saasRole/components/PermissionManager/index.less +71 -0
- package/es/plus/saasRole/index.d.ts +14 -0
- package/es/plus/saasRole/index.js +1036 -0
- package/es/plus/saasRole/index.less +196 -0
- package/es/plus/saasRole/locales.d.ts +193 -0
- package/es/plus/saasRole/locales.js +193 -0
- package/es/plus/saasRole/serve.d.ts +72 -0
- package/es/plus/saasRole/serve.js +304 -0
- package/es/plus/saasRole/types.d.ts +175 -0
- package/es/plus/saasRole/types.js +1 -0
- package/es/plus/saasRole/utils.d.ts +0 -0
- package/es/plus/saasRole/utils.js +0 -0
- package/es/plus/saasTeamMembers/components/MemberDrawer/ExtensionFormTabContent.d.ts +31 -0
- package/es/plus/saasTeamMembers/components/MemberDrawer/ExtensionFormTabContent.js +503 -0
- package/es/plus/saasTeamMembers/components/MemberDrawer/index.d.ts +23 -0
- package/es/plus/saasTeamMembers/components/MemberDrawer/index.js +634 -0
- package/es/plus/saasTeamMembers/components/MemberDrawer/index.less +178 -0
- package/es/plus/saasTeamMembers/index.d.ts +5 -0
- package/es/plus/saasTeamMembers/index.js +529 -0
- package/es/plus/saasTeamMembers/index.less +87 -0
- package/es/plus/saasTeamMembers/locales.d.ts +330 -0
- package/es/plus/saasTeamMembers/locales.js +375 -0
- package/es/plus/saasTeamMembers/serve.d.ts +95 -0
- package/es/plus/saasTeamMembers/serve.js +374 -0
- package/es/plus/saasTeamMembers/type.d.ts +156 -0
- package/es/plus/saasTeamMembers/type.js +1 -0
- package/es/plus/selectHolder/components/ErrorTip/index.d.ts +0 -1
- package/lib/components/booking/forms/sendModal/useSendModal.d.ts +0 -1
- package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +0 -1
- package/lib/components/booking/info/hooks/useInfoHolder.d.ts +0 -1
- package/lib/components/booking/info/service2/utils.d.ts +1 -1
- package/lib/components/eftpos/hooks.d.ts +0 -1
- 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 +2 -2
- package/lib/components/eftposPay/store/index.d.ts +5 -5
- package/lib/components/eftposPay/tyro/hooks.d.ts +0 -1
- package/lib/components/eventBooking/components/ErrorTip/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/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/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +0 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +0 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +0 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +0 -1
- package/lib/components/shoppingCart/components/Empty/index.d.ts +0 -1
- package/lib/components/ticketBooking/utils/index.d.ts +1 -1
- package/lib/hooks/usePaymentLogger.d.ts +0 -1
- package/lib/index.d.ts +4 -0
- package/lib/index.js +9 -0
- package/lib/plus/productSelect/ProductCard/SkuCard/components/Capacity/index.d.ts +1 -1
- package/lib/plus/productSelect/ProductCard/SkuCard/components/CardMask/index.d.ts +1 -1
- package/lib/plus/productSelect/ProductCard/SkuCard/components/Countdown/index.d.ts +1 -1
- package/lib/plus/productSelect/ProductCard/SkuCard/components/Duration/index.d.ts +1 -1
- package/lib/plus/productSelect/ProductCard/SkuCard/components/MemberPrice/index.d.ts +1 -1
- package/lib/plus/productSelect/ProductCard/SkuCard/components/Resource/index.d.ts +1 -1
- package/lib/plus/productSelect/ProductCard/SkuCard/components/Stock/index.d.ts +1 -1
- package/lib/plus/productSelect/ProductCard/SkuCard/components/Time/index.d.ts +1 -1
- package/lib/plus/saasAttendance/index.d.ts +6 -0
- package/lib/plus/saasAttendance/index.js +39 -0
- package/lib/plus/saasAttendance/locales.d.ts +318 -0
- package/lib/plus/saasAttendance/locales.js +342 -0
- package/lib/plus/saasAttendance/settings/BasicInfoTab.d.ts +5 -0
- package/lib/plus/saasAttendance/settings/BasicInfoTab.js +152 -0
- package/lib/plus/saasAttendance/settings/ClockInMethodTab.d.ts +8 -0
- package/lib/plus/saasAttendance/settings/ClockInMethodTab.js +88 -0
- package/lib/plus/saasAttendance/settings/CorrectionPolicyTab.d.ts +8 -0
- package/lib/plus/saasAttendance/settings/CorrectionPolicyTab.js +369 -0
- package/lib/plus/saasAttendance/settings/ShiftScheduleTab.d.ts +5 -0
- package/lib/plus/saasAttendance/settings/ShiftScheduleTab.js +106 -0
- package/lib/plus/saasAttendance/settings/components/MapField.d.ts +78 -0
- package/lib/plus/saasAttendance/settings/components/MapField.js +631 -0
- package/lib/plus/saasAttendance/settings/components/index.d.ts +3 -0
- package/lib/plus/saasAttendance/settings/components/index.js +42 -0
- package/lib/plus/saasAttendance/settings/components/membersField/index.d.ts +8 -0
- package/lib/plus/saasAttendance/settings/components/membersField/index.js +247 -0
- package/lib/plus/saasAttendance/settings/components/membersField/index.less +70 -0
- package/lib/plus/saasAttendance/settings/components/shiftModal/index.d.ts +18 -0
- package/lib/plus/saasAttendance/settings/components/shiftModal/index.js +447 -0
- package/lib/plus/saasAttendance/settings/index.d.ts +18 -0
- package/lib/plus/saasAttendance/settings/index.js +283 -0
- package/lib/plus/saasAttendance/settings/index.less +495 -0
- package/lib/plus/saasAttendance/settings/serve.d.ts +27 -0
- package/lib/plus/saasAttendance/settings/serve.js +54 -0
- package/lib/plus/saasAttendance/settings/types.d.ts +128 -0
- package/lib/plus/saasAttendance/settings/types.js +17 -0
- package/lib/plus/saasRole/components/PermissionManager/index.d.ts +19 -0
- package/lib/plus/saasRole/components/PermissionManager/index.js +159 -0
- package/lib/plus/saasRole/components/PermissionManager/index.less +71 -0
- package/lib/plus/saasRole/index.d.ts +14 -0
- package/lib/plus/saasRole/index.js +780 -0
- package/lib/plus/saasRole/index.less +196 -0
- package/lib/plus/saasRole/locales.d.ts +193 -0
- package/lib/plus/saasRole/locales.js +219 -0
- package/lib/plus/saasRole/serve.d.ts +72 -0
- package/lib/plus/saasRole/serve.js +100 -0
- package/lib/plus/saasRole/types.d.ts +175 -0
- package/lib/plus/saasRole/types.js +17 -0
- package/lib/plus/saasRole/utils.d.ts +0 -0
- package/lib/plus/saasRole/utils.js +0 -0
- package/lib/plus/saasTeamMembers/components/MemberDrawer/ExtensionFormTabContent.d.ts +31 -0
- package/lib/plus/saasTeamMembers/components/MemberDrawer/ExtensionFormTabContent.js +393 -0
- package/lib/plus/saasTeamMembers/components/MemberDrawer/index.d.ts +23 -0
- package/lib/plus/saasTeamMembers/components/MemberDrawer/index.js +672 -0
- package/lib/plus/saasTeamMembers/components/MemberDrawer/index.less +178 -0
- package/lib/plus/saasTeamMembers/index.d.ts +5 -0
- package/lib/plus/saasTeamMembers/index.js +448 -0
- package/lib/plus/saasTeamMembers/index.less +87 -0
- package/lib/plus/saasTeamMembers/locales.d.ts +330 -0
- package/lib/plus/saasTeamMembers/locales.js +401 -0
- package/lib/plus/saasTeamMembers/serve.d.ts +95 -0
- package/lib/plus/saasTeamMembers/serve.js +132 -0
- package/lib/plus/saasTeamMembers/type.d.ts +156 -0
- package/lib/plus/saasTeamMembers/type.js +17 -0
- package/lib/plus/selectHolder/components/ErrorTip/index.d.ts +0 -1
- package/lowcode/saas-attendance-settings/meta.ts +56 -0
- package/lowcode/saas-role/meta.ts +35 -0
- package/lowcode/saas-team-members/meta.ts +35 -0
- package/package.json +4 -4
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
en: {
|
|
3
|
+
'pisell2.attendance.group-settings.title': 'Attendance Group Settings',
|
|
4
|
+
'pisell2.attendance.group-settings.sub-title': 'Configure attendance rules, clock-in methods, and correction policies',
|
|
5
|
+
// 基本信息
|
|
6
|
+
'pisell2.attendance.group-settings.basic-info': 'Basic Info',
|
|
7
|
+
'pisell2.attendance.group-settings.basic-info.label.name': 'Group Name',
|
|
8
|
+
'pisell2.attendance.group-settings.basic-info.name-tip': 'e.g., Headquarters Staff, Store A Team',
|
|
9
|
+
'pisell2.attendance.group-settings.basic-info.name-required': 'Please enter the group name',
|
|
10
|
+
'pisell2.attendance.group-settings.basic-info.name-max-length': function pisell2AttendanceGroupSettingsBasicInfoNameMaxLength(len) {
|
|
11
|
+
return "Maximum ".concat(len, " characters");
|
|
12
|
+
},
|
|
13
|
+
'pisell2.attendance.group-settings.basic-info.label.time-zone': 'Time Zone',
|
|
14
|
+
'pisell2.attendance.group-settings.basic-info.time-zone-tip': 'Important, Time zone cannot be changed after group creation',
|
|
15
|
+
'pisell2.attendance.group-settings.basic-info.label.members': 'Team Members',
|
|
16
|
+
'pisell2.attendance.group-settings.basic-info.add-members': 'Add Members',
|
|
17
|
+
'pisell2.attendance.group-settings.basic-info.members-count': function pisell2AttendanceGroupSettingsBasicInfoMembersCount(count) {
|
|
18
|
+
return "".concat(count, " members selected");
|
|
19
|
+
},
|
|
20
|
+
'pisell2.attendance.group-settings.basic-info.members-tip': 'Each employee can only belong to one attendance group at a time',
|
|
21
|
+
'pisell2.attendance.group-settings.basic-info.members-required': 'Please select at least one member',
|
|
22
|
+
'pisell2.attendance.group-settings.basic-info.members-drawer.title': 'Select Members',
|
|
23
|
+
'pisell2.attendance.group-settings.basic-info.members-drawer.columns.name': 'Name',
|
|
24
|
+
'pisell2.attendance.group-settings.basic-info.members-drawer.columns.email': 'Email',
|
|
25
|
+
'pisell2.attendance.group-settings.shift-schedule': 'Shift Schedule',
|
|
26
|
+
'pisell2.attendance.group-settings.clock-in-method': 'Clock-in Method',
|
|
27
|
+
'pisell2.attendance.group-settings.correction-policy': 'Correction Policy',
|
|
28
|
+
'pisell2.attendance.group-settings.actions.search': 'Search',
|
|
29
|
+
'pisell2.attendance.group-settings.actions.cancel': 'Cancel',
|
|
30
|
+
'pisell2.attendance.group-settings.actions.confirm': 'Confirm',
|
|
31
|
+
'pisell2.attendance.group-settings.actions.delete': 'Delete',
|
|
32
|
+
'pisell2.attendance.group-settings.actions.save-settings': 'Save Settings',
|
|
33
|
+
'pisell2.attendance.group-settings.actions.add-location': 'Add Location',
|
|
34
|
+
'pisell2.attendance.group-settings.actions.add-location-confirm': 'Add Location',
|
|
35
|
+
'pisell2.attendance.group-settings.shift-schedule.fixed-shifts.title': 'Fixed-Based Attendance',
|
|
36
|
+
'pisell2.attendance.group-settings.shift-schedule.fixed-shifts.desc': 'Employees clock in/out according to fixed shifts',
|
|
37
|
+
'pisell2.attendance.group-settings.shift-schedule.scheduled-shifts.set-shifts': 'Set Shifts',
|
|
38
|
+
'pisell2.attendance.group-settings.shift-schedule.scheduled-shifts.change-shifts': 'Change Shifts',
|
|
39
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.title': 'Set Shifts',
|
|
40
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.1': 'Mon',
|
|
41
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.2': 'Tue',
|
|
42
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.3': 'Wed',
|
|
43
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.4': 'Thu',
|
|
44
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.5': 'Fri',
|
|
45
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.6': 'Sat',
|
|
46
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.7': 'Sun',
|
|
47
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.no-shift': 'No shift',
|
|
48
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.add-time': 'Add time',
|
|
49
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.start': 'Start',
|
|
50
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.end': 'End',
|
|
51
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.start-required': 'Please select start time',
|
|
52
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.end-required': 'Please select end time',
|
|
53
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.range': 'The end time must be after the start time',
|
|
54
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.overlap': 'Time ranges cannot overlap',
|
|
55
|
+
'pisell2.attendance.group-settings.shift-schedule.validation.fixed-required': 'Please set at least one valid shift',
|
|
56
|
+
'pisell2.attendance.group-settings.shift-schedule.attendance-type.label': 'Attendance Type',
|
|
57
|
+
'pisell2.attendance.group-settings.shift-schedule.attendance-type.scheduled-shifts.title': 'Scheduled Shifts',
|
|
58
|
+
'pisell2.attendance.group-settings.shift-schedule.attendance-type.scheduled-shifts.desc': 'Employees clock in based on pre-assigned shifts',
|
|
59
|
+
'pisell2.attendance.group-settings.clock-in-method.gps.title': 'GPS Location Verification',
|
|
60
|
+
'pisell2.attendance.group-settings.clock-in-method.gps.desc': 'Employees use Team APP for GPS-based clock-in. System verifies location within approved areas.',
|
|
61
|
+
'pisell2.attendance.group-settings.clock-in-method.approved-locations.label': function pisell2AttendanceGroupSettingsClockInMethodApprovedLocationsLabel(max) {
|
|
62
|
+
return "Approved Locations (Maximum ".concat(max, ")");
|
|
63
|
+
},
|
|
64
|
+
'pisell2.attendance.group-settings.clock-in-method.approved-locations.empty.title': 'No locations configured',
|
|
65
|
+
'pisell2.attendance.group-settings.clock-in-method.approved-locations.empty.desc': 'Without locations, employees can clock in from anywhere',
|
|
66
|
+
'pisell2.attendance.group-settings.clock-in-method.default-valid-range.label': 'Default Valid Range',
|
|
67
|
+
'pisell2.attendance.group-settings.clock-in-method.default-valid-range.desc': 'Employees can clock in within this radius of each location',
|
|
68
|
+
'pisell2.attendance.group-settings.clock-in-method.meters': function pisell2AttendanceGroupSettingsClockInMethodMeters(val) {
|
|
69
|
+
return "".concat(val, " meters");
|
|
70
|
+
},
|
|
71
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.title': 'Add Location',
|
|
72
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.location-name.label': 'Location Name',
|
|
73
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.location-name.placeholder': 'e.g., Main Office, Store A',
|
|
74
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.location-name.validation': 'Please enter a location name',
|
|
75
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.latitude.label': 'Latitude',
|
|
76
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.latitude.placeholder': 'e.g., 39.9042',
|
|
77
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.latitude.validation': 'Please enter a valid latitude',
|
|
78
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.longitude.label': 'Longitude',
|
|
79
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.longitude.placeholder': 'e.g., 116.4074',
|
|
80
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.longitude.validation': 'Please enter a valid longitude',
|
|
81
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.valid-range.label': 'Valid Range (meters)',
|
|
82
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.tip.google-maps': 'Tip: Click on Google Maps to get coordinates',
|
|
83
|
+
'pisell2.attendance.group-settings.correction-policy.allow-corrections.title': 'Allow Corrections',
|
|
84
|
+
'pisell2.attendance.group-settings.correction-policy.allow-corrections.desc': 'Employees can submit correction requests for approval',
|
|
85
|
+
'pisell2.attendance.group-settings.correction-policy.types.label': 'Correction Types',
|
|
86
|
+
'pisell2.attendance.group-settings.correction-policy.types.missing.title': 'Missing',
|
|
87
|
+
'pisell2.attendance.group-settings.correction-policy.types.missing.desc': 'Forgot to clock in',
|
|
88
|
+
'pisell2.attendance.group-settings.correction-policy.types.late.title': 'Late',
|
|
89
|
+
'pisell2.attendance.group-settings.correction-policy.types.late.desc': 'Arrived late',
|
|
90
|
+
'pisell2.attendance.group-settings.correction-policy.types.early-out.title': 'Early Out',
|
|
91
|
+
'pisell2.attendance.group-settings.correction-policy.types.early-out.desc': 'Left early',
|
|
92
|
+
'pisell2.attendance.group-settings.correction-policy.types.normal.title': 'Normal',
|
|
93
|
+
'pisell2.attendance.group-settings.correction-policy.types.normal.desc': 'Regular correction',
|
|
94
|
+
'pisell2.attendance.group-settings.correction-policy.approver.label': 'Approver',
|
|
95
|
+
'pisell2.attendance.group-settings.correction-policy.approver.placeholder': 'Select approver',
|
|
96
|
+
'pisell2.attendance.group-settings.correction-policy.approver.required': 'Please select at least one approver',
|
|
97
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.label': 'Time Limit',
|
|
98
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.required': 'Please enter a correction time limit',
|
|
99
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days': function pisell2AttendanceGroupSettingsCorrectionPolicyTimeLimitRequestPastDays(days) {
|
|
100
|
+
return "Can request corrections for the past ".concat(days, " days");
|
|
101
|
+
},
|
|
102
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days.prefix': 'Can request corrections for the past',
|
|
103
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days.suffix': 'days',
|
|
104
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.helper': 'Enter 0 for same-day corrections only (0-180 days)',
|
|
105
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.label': 'Monthly Limit',
|
|
106
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.required': 'Please enter a monthly correction limit',
|
|
107
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum': function pisell2AttendanceGroupSettingsCorrectionPolicyMonthlyLimitMaximum(count) {
|
|
108
|
+
return "Maximum ".concat(count, " corrections per person per month");
|
|
109
|
+
},
|
|
110
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum.prefix': 'Maximum',
|
|
111
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum.suffix': 'corrections per person per month',
|
|
112
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.helper': 'Requests exceeding this limit will be rejected (0-999)',
|
|
113
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.label': 'Reset Period',
|
|
114
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.calendar-month.title': 'Calendar Month',
|
|
115
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.calendar-month.desc': 'Reset on the 1st of each month',
|
|
116
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.title': 'Custom Period',
|
|
117
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.desc': 'Set custom monthly start date (1-28 only)',
|
|
118
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.required': 'Please select a custom reset day'
|
|
119
|
+
},
|
|
120
|
+
'zh-CN': {
|
|
121
|
+
'pisell2.attendance.group-settings.title': '考勤组设置',
|
|
122
|
+
'pisell2.attendance.group-settings.sub-title': '配置考勤规则、打卡方式和补卡政策',
|
|
123
|
+
'pisell2.attendance.group-settings.basic-info': '基本信息',
|
|
124
|
+
'pisell2.attendance.group-settings.basic-info.label.name': '考勤组名称',
|
|
125
|
+
'pisell2.attendance.group-settings.basic-info.name-required': '请输入考勤组名称',
|
|
126
|
+
'pisell2.attendance.group-settings.basic-info.name-tip': '请输入考勤组名称,例如:总部员工、门店A',
|
|
127
|
+
'pisell2.attendance.group-settings.basic-info.name-max-length': function pisell2AttendanceGroupSettingsBasicInfoNameMaxLength(len) {
|
|
128
|
+
return "\u6700\u591A".concat(len, "\u4E2A\u5B57\u7B26");
|
|
129
|
+
},
|
|
130
|
+
'pisell2.attendance.group-settings.basic-info.label.time-zone': '考勤组时区',
|
|
131
|
+
'pisell2.attendance.group-settings.basic-info.time-zone-tip': '重要:考勤组创建后,时区将不可修改',
|
|
132
|
+
'pisell2.attendance.group-settings.basic-info.label.members': '需要打卡的人',
|
|
133
|
+
'pisell2.attendance.group-settings.basic-info.add-members': '添加成员',
|
|
134
|
+
'pisell2.attendance.group-settings.basic-info.members-count': function pisell2AttendanceGroupSettingsBasicInfoMembersCount(count) {
|
|
135
|
+
return "\u5DF2\u9009\u62E9 ".concat(count, " \u4EBA");
|
|
136
|
+
},
|
|
137
|
+
'pisell2.attendance.group-settings.basic-info.members-tip': '提示:一位员工在同一时间仅能属于一个考勤组',
|
|
138
|
+
'pisell2.attendance.group-settings.basic-info.members-required': '请至少选择一位成员',
|
|
139
|
+
'pisell2.attendance.group-settings.basic-info.members-drawer.title': '选择成员',
|
|
140
|
+
'pisell2.attendance.group-settings.basic-info.members-drawer.columns.name': '姓名',
|
|
141
|
+
'pisell2.attendance.group-settings.basic-info.members-drawer.columns.email': '邮箱',
|
|
142
|
+
'pisell2.attendance.group-settings.shift-schedule': '考勤班次',
|
|
143
|
+
'pisell2.attendance.group-settings.clock-in-method': '考勤方式',
|
|
144
|
+
'pisell2.attendance.group-settings.correction-policy': '补卡设置',
|
|
145
|
+
'pisell2.attendance.group-settings.actions.search': '搜索',
|
|
146
|
+
'pisell2.attendance.group-settings.actions.cancel': '取消',
|
|
147
|
+
'pisell2.attendance.group-settings.actions.confirm': '确认',
|
|
148
|
+
'pisell2.attendance.group-settings.actions.delete': '删除',
|
|
149
|
+
'pisell2.attendance.group-settings.actions.save-settings': '保存设置',
|
|
150
|
+
'pisell2.attendance.group-settings.actions.add-location': '新增考勤地点',
|
|
151
|
+
'pisell2.attendance.group-settings.actions.add-location-confirm': '添加地点',
|
|
152
|
+
'pisell2.attendance.group-settings.shift-schedule.fixed-shifts.title': '固定班制考勤',
|
|
153
|
+
'pisell2.attendance.group-settings.shift-schedule.fixed-shifts.desc': '員工需按照预设的班次进行打卡。',
|
|
154
|
+
'pisell2.attendance.group-settings.shift-schedule.scheduled-shifts.set-shifts': '设置排班',
|
|
155
|
+
'pisell2.attendance.group-settings.shift-schedule.scheduled-shifts.change-shifts': '修改排班',
|
|
156
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.title': '设置排班',
|
|
157
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.1': '周一',
|
|
158
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.2': '周二',
|
|
159
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.3': '周三',
|
|
160
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.4': '周四',
|
|
161
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.5': '周五',
|
|
162
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.6': '周六',
|
|
163
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.7': '周日',
|
|
164
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.no-shift': '未排班',
|
|
165
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.add-time': '添加时间段',
|
|
166
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.start': '开始时间',
|
|
167
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.end': '结束时间',
|
|
168
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.start-required': '请选择开始时间',
|
|
169
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.end-required': '请选择结束时间',
|
|
170
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.range': '结束时间必须在开始时间之后',
|
|
171
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.overlap': '时间段不能重叠或相连',
|
|
172
|
+
'pisell2.attendance.group-settings.shift-schedule.validation.fixed-required': '请设置至少一个有效排班',
|
|
173
|
+
'pisell2.attendance.group-settings.shift-schedule.attendance-type.label': '考勤类型',
|
|
174
|
+
'pisell2.attendance.group-settings.shift-schedule.attendance-type.scheduled-shifts.title': '排班制',
|
|
175
|
+
'pisell2.attendance.group-settings.shift-schedule.attendance-type.scheduled-shifts.desc': '员工按照预设班次打卡',
|
|
176
|
+
'pisell2.attendance.group-settings.clock-in-method.gps.title': 'GPS定位打卡',
|
|
177
|
+
'pisell2.attendance.group-settings.clock-in-method.gps.desc': '员工通过Team APP进行GPS定位打卡,系统验证是否在考勤范围内',
|
|
178
|
+
'pisell2.attendance.group-settings.clock-in-method.approved-locations.label': function pisell2AttendanceGroupSettingsClockInMethodApprovedLocationsLabel(max) {
|
|
179
|
+
return "\u8003\u52E4\u5730\u70B9\uFF08\u6700\u591A".concat(max, "\u4E2A\uFF09");
|
|
180
|
+
},
|
|
181
|
+
'pisell2.attendance.group-settings.clock-in-method.approved-locations.empty.title': '未设置考勤地点',
|
|
182
|
+
'pisell2.attendance.group-settings.clock-in-method.approved-locations.empty.desc': '未设置时,员工可在任意地点打卡',
|
|
183
|
+
'pisell2.attendance.group-settings.clock-in-method.default-valid-range.label': '默认有效范围',
|
|
184
|
+
'pisell2.attendance.group-settings.clock-in-method.default-valid-range.desc': '员工可在距离各地点的该半径内打卡',
|
|
185
|
+
'pisell2.attendance.group-settings.clock-in-method.meters': function pisell2AttendanceGroupSettingsClockInMethodMeters(val) {
|
|
186
|
+
return "".concat(val, " \u7C73");
|
|
187
|
+
},
|
|
188
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.title': '新增考勤地点',
|
|
189
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.location-name.label': '地点名称',
|
|
190
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.location-name.placeholder': '例如:总部大楼、门店A',
|
|
191
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.location-name.validation': '请输入地点名称',
|
|
192
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.latitude.label': '纬度',
|
|
193
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.latitude.placeholder': '例如:39.9042',
|
|
194
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.latitude.validation': '请输入有效的纬度',
|
|
195
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.longitude.label': '经度',
|
|
196
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.longitude.placeholder': '例如:116.4074',
|
|
197
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.longitude.validation': '请输入有效的经度',
|
|
198
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.valid-range.label': '有效范围(米)',
|
|
199
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.tip.google-maps': '提示:可以在Google Maps中点击位置获取经纬度坐标',
|
|
200
|
+
'pisell2.attendance.group-settings.correction-policy.allow-corrections.title': '允许补卡',
|
|
201
|
+
'pisell2.attendance.group-settings.correction-policy.allow-corrections.desc': '员工可以提交补卡申请,需要审批',
|
|
202
|
+
'pisell2.attendance.group-settings.correction-policy.types.label': '补卡类型',
|
|
203
|
+
'pisell2.attendance.group-settings.correction-policy.types.missing.title': '缺卡',
|
|
204
|
+
'pisell2.attendance.group-settings.correction-policy.types.missing.desc': '忘记打卡',
|
|
205
|
+
'pisell2.attendance.group-settings.correction-policy.types.late.title': '迟到',
|
|
206
|
+
'pisell2.attendance.group-settings.correction-policy.types.late.desc': '上班迟到',
|
|
207
|
+
'pisell2.attendance.group-settings.correction-policy.types.early-out.title': '早退',
|
|
208
|
+
'pisell2.attendance.group-settings.correction-policy.types.early-out.desc': '提前下班',
|
|
209
|
+
'pisell2.attendance.group-settings.correction-policy.types.normal.title': '正常',
|
|
210
|
+
'pisell2.attendance.group-settings.correction-policy.types.normal.desc': '正常打卡修正',
|
|
211
|
+
'pisell2.attendance.group-settings.correction-policy.approver.label': '审批补卡人',
|
|
212
|
+
'pisell2.attendance.group-settings.correction-policy.approver.placeholder': '请选择审批人',
|
|
213
|
+
'pisell2.attendance.group-settings.correction-policy.approver.required': '请选择审批人',
|
|
214
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.label': '补卡时间限制',
|
|
215
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.required': '请填写补卡时间限制',
|
|
216
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days': function pisell2AttendanceGroupSettingsCorrectionPolicyTimeLimitRequestPastDays(days) {
|
|
217
|
+
return "\u53EF\u7533\u8BF7\u8FC7\u53BB".concat(days, "\u5929\u5185\u7684\u8865\u5361");
|
|
218
|
+
},
|
|
219
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days.prefix': '可申请过去',
|
|
220
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days.suffix': '天内的补卡',
|
|
221
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.helper': '填写0表示仅可申请当日补卡(0-180天)',
|
|
222
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.label': '补卡次数限制',
|
|
223
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.required': '请填写补卡次数限制',
|
|
224
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum': function pisell2AttendanceGroupSettingsCorrectionPolicyMonthlyLimitMaximum(count) {
|
|
225
|
+
return "\u6BCF\u4EBA\u6BCF\u6708\u6700\u591A\u53EF\u8865\u5361 ".concat(count, " \u6B21");
|
|
226
|
+
},
|
|
227
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum.prefix': '每人每月最多可补卡',
|
|
228
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum.suffix': '次',
|
|
229
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.helper': '超过限制次数后将无法提交补卡申请(0-999次)',
|
|
230
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.label': '补卡周期',
|
|
231
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.calendar-month.title': '按自然月',
|
|
232
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.calendar-month.desc': '每月1日至最后一日为一个周期',
|
|
233
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.title': '按自定义周期',
|
|
234
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.desc': '自定义设置每月的起始日(不支持29、30、31日)',
|
|
235
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.required': '请选择自定义起始日'
|
|
236
|
+
},
|
|
237
|
+
'zh-HK': {
|
|
238
|
+
'pisell2.attendance.group-settings.title': '考勤組設定',
|
|
239
|
+
'pisell2.attendance.group-settings.sub-title': '配置考勤規則、打卡方式及補卡政策',
|
|
240
|
+
'pisell2.attendance.group-settings.basic-info': '基本資料',
|
|
241
|
+
'pisell2.attendance.group-settings.basic-info.label.name': '考勤組名稱',
|
|
242
|
+
'pisell2.attendance.group-settings.basic-info.name-required': '請輸入考勤組名稱',
|
|
243
|
+
'pisell2.attendance.group-settings.basic-info.name-tip': '請輸入考勤組名稱,例如:總部員工、門店A',
|
|
244
|
+
'pisell2.attendance.group-settings.basic-info.name-max-length': function pisell2AttendanceGroupSettingsBasicInfoNameMaxLength(len) {
|
|
245
|
+
return "\u6700\u591A".concat(len, "\u500B\u5B57\u5143");
|
|
246
|
+
},
|
|
247
|
+
'pisell2.attendance.group-settings.basic-info.label.time-zone': '考勤組時區',
|
|
248
|
+
'pisell2.attendance.group-settings.basic-info.time-zone-tip': '重要:考勤組建立後,時區將不可修改',
|
|
249
|
+
'pisell2.attendance.group-settings.basic-info.label.members': '需要打卡的人',
|
|
250
|
+
'pisell2.attendance.group-settings.basic-info.add-members': '新增成員',
|
|
251
|
+
'pisell2.attendance.group-settings.basic-info.members-count': function pisell2AttendanceGroupSettingsBasicInfoMembersCount(count) {
|
|
252
|
+
return "\u5DF2\u9078\u64C7 ".concat(count, " \u4EBA");
|
|
253
|
+
},
|
|
254
|
+
'pisell2.attendance.group-settings.basic-info.members-tip': '提示:一位員工在同一時間僅能屬於一個考勤組',
|
|
255
|
+
'pisell2.attendance.group-settings.basic-info.members-required': '請至少選擇一位成員',
|
|
256
|
+
'pisell2.attendance.group-settings.basic-info.members-drawer.title': '選擇成員',
|
|
257
|
+
'pisell2.attendance.group-settings.basic-info.members-drawer.columns.name': '姓名',
|
|
258
|
+
'pisell2.attendance.group-settings.basic-info.members-drawer.columns.email': '電郵',
|
|
259
|
+
'pisell2.attendance.group-settings.shift-schedule': '考勤班次',
|
|
260
|
+
'pisell2.attendance.group-settings.clock-in-method': '考勤方式',
|
|
261
|
+
'pisell2.attendance.group-settings.correction-policy': '補卡設定',
|
|
262
|
+
'pisell2.attendance.group-settings.actions.search': '搜索',
|
|
263
|
+
'pisell2.attendance.group-settings.actions.cancel': '取消',
|
|
264
|
+
'pisell2.attendance.group-settings.actions.confirm': '確認',
|
|
265
|
+
'pisell2.attendance.group-settings.actions.delete': '刪除',
|
|
266
|
+
'pisell2.attendance.group-settings.actions.save-settings': '儲存設定',
|
|
267
|
+
'pisell2.attendance.group-settings.actions.add-location': '新增考勤地點',
|
|
268
|
+
'pisell2.attendance.group-settings.actions.add-location-confirm': '添加地點',
|
|
269
|
+
'pisell2.attendance.group-settings.shift-schedule.fixed-shifts.title': '固定班制考勤',
|
|
270
|
+
'pisell2.attendance.group-settings.shift-schedule.fixed-shifts.desc': '員工需按照預設的班次進行打卡。',
|
|
271
|
+
'pisell2.attendance.group-settings.shift-schedule.scheduled-shifts.set-shifts': '設置排班',
|
|
272
|
+
'pisell2.attendance.group-settings.shift-schedule.scheduled-shifts.change-shifts': '修改排班',
|
|
273
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.title': '設置排班',
|
|
274
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.1': '週一',
|
|
275
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.2': '週二',
|
|
276
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.3': '週三',
|
|
277
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.4': '週四',
|
|
278
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.5': '週五',
|
|
279
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.6': '週六',
|
|
280
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.weekday.7': '週日',
|
|
281
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.no-shift': '未排班',
|
|
282
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.add-time': '新增時間段',
|
|
283
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.start': '開始時間',
|
|
284
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.end': '結束時間',
|
|
285
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.start-required': '請選擇開始時間',
|
|
286
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.end-required': '請選擇結束時間',
|
|
287
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.range': '結束時間必須在開始時間之後',
|
|
288
|
+
'pisell2.attendance.group-settings.shift-schedule.modal.validation.overlap': '時間段不能重疊或相連',
|
|
289
|
+
'pisell2.attendance.group-settings.shift-schedule.validation.fixed-required': '請設置至少一個有效排班',
|
|
290
|
+
'pisell2.attendance.group-settings.shift-schedule.attendance-type.label': '考勤類型',
|
|
291
|
+
'pisell2.attendance.group-settings.shift-schedule.attendance-type.scheduled-shifts.title': '排班制',
|
|
292
|
+
'pisell2.attendance.group-settings.shift-schedule.attendance-type.scheduled-shifts.desc': '員工按照預設班次打卡',
|
|
293
|
+
'pisell2.attendance.group-settings.clock-in-method.gps.title': 'GPS定位打卡',
|
|
294
|
+
'pisell2.attendance.group-settings.clock-in-method.gps.desc': '員工透過Team APP進行GPS定位打卡,系統驗證是否在考勤範圍內',
|
|
295
|
+
'pisell2.attendance.group-settings.clock-in-method.approved-locations.label': function pisell2AttendanceGroupSettingsClockInMethodApprovedLocationsLabel(max) {
|
|
296
|
+
return "\u8003\u52E4\u5730\u9EDE\uFF08\u6700\u591A".concat(max, "\u500B\uFF09");
|
|
297
|
+
},
|
|
298
|
+
'pisell2.attendance.group-settings.clock-in-method.approved-locations.empty.title': '未設定考勤地點',
|
|
299
|
+
'pisell2.attendance.group-settings.clock-in-method.approved-locations.empty.desc': '未設定時,員工可在任意地點打卡',
|
|
300
|
+
'pisell2.attendance.group-settings.clock-in-method.default-valid-range.label': '預設有效範圍',
|
|
301
|
+
'pisell2.attendance.group-settings.clock-in-method.default-valid-range.desc': '員工可在距離各地點的此半徑內打卡',
|
|
302
|
+
'pisell2.attendance.group-settings.clock-in-method.meters': function pisell2AttendanceGroupSettingsClockInMethodMeters(val) {
|
|
303
|
+
return "".concat(val, " \u7C73");
|
|
304
|
+
},
|
|
305
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.title': '新增考勤地點',
|
|
306
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.location-name.label': '地點名稱',
|
|
307
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.location-name.placeholder': '例如:總部大樓、門店A',
|
|
308
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.location-name.validation': '請輸入地點名稱',
|
|
309
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.latitude.label': '緯度',
|
|
310
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.latitude.placeholder': '例如:39.9042',
|
|
311
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.latitude.validation': '請輸入有效的緯度',
|
|
312
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.longitude.label': '經度',
|
|
313
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.longitude.placeholder': '例如:116.4074',
|
|
314
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.longitude.validation': '請輸入有效的經度',
|
|
315
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.valid-range.label': '有效範圍(米)',
|
|
316
|
+
'pisell2.attendance.group-settings.clock-in-method.add-location-modal.tip.google-maps': '提示:可以在Google Maps中點擊位置獲取經緯度座標',
|
|
317
|
+
'pisell2.attendance.group-settings.correction-policy.allow-corrections.title': '允許補卡',
|
|
318
|
+
'pisell2.attendance.group-settings.correction-policy.allow-corrections.desc': '員工可以提交補卡申請,需要審批',
|
|
319
|
+
'pisell2.attendance.group-settings.correction-policy.types.label': '補卡類型',
|
|
320
|
+
'pisell2.attendance.group-settings.correction-policy.types.missing.title': '缺卡',
|
|
321
|
+
'pisell2.attendance.group-settings.correction-policy.types.missing.desc': '忘記打卡',
|
|
322
|
+
'pisell2.attendance.group-settings.correction-policy.types.late.title': '遲到',
|
|
323
|
+
'pisell2.attendance.group-settings.correction-policy.types.late.desc': '上班遲到',
|
|
324
|
+
'pisell2.attendance.group-settings.correction-policy.types.early-out.title': '早退',
|
|
325
|
+
'pisell2.attendance.group-settings.correction-policy.types.early-out.desc': '提前下班',
|
|
326
|
+
'pisell2.attendance.group-settings.correction-policy.types.normal.title': '正常',
|
|
327
|
+
'pisell2.attendance.group-settings.correction-policy.types.normal.desc': '正常打卡修正',
|
|
328
|
+
'pisell2.attendance.group-settings.correction-policy.approver.label': '審批補卡人',
|
|
329
|
+
'pisell2.attendance.group-settings.correction-policy.approver.placeholder': '請選擇審批人',
|
|
330
|
+
'pisell2.attendance.group-settings.correction-policy.approver.required': '請選擇審批人',
|
|
331
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.label': '補卡時間限制',
|
|
332
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.required': '請填寫補卡時間限制',
|
|
333
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days': function pisell2AttendanceGroupSettingsCorrectionPolicyTimeLimitRequestPastDays(days) {
|
|
334
|
+
return "\u53EF\u7533\u8ACB\u904E\u53BB".concat(days, "\u5929\u5167\u7684\u88DC\u5361");
|
|
335
|
+
},
|
|
336
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days.prefix': '可申請過去',
|
|
337
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.request-past-days.suffix': '天內的補卡',
|
|
338
|
+
'pisell2.attendance.group-settings.correction-policy.time-limit.helper': '填寫0表示僅可申請當日補卡(0-180天)',
|
|
339
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.label': '補卡次數限制',
|
|
340
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.required': '請填寫補卡次數限制',
|
|
341
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum': function pisell2AttendanceGroupSettingsCorrectionPolicyMonthlyLimitMaximum(count) {
|
|
342
|
+
return "\u6BCF\u4EBA\u6BCF\u6708\u6700\u591A\u53EF\u88DC\u5361 ".concat(count, " \u6B21");
|
|
343
|
+
},
|
|
344
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum.prefix': '每人每月最多可補卡',
|
|
345
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.maximum.suffix': '次',
|
|
346
|
+
'pisell2.attendance.group-settings.correction-policy.monthly-limit.helper': '超過限制次數後將無法提交補卡申請(0-999次)',
|
|
347
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.label': '補卡週期',
|
|
348
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.calendar-month.title': '按自然月',
|
|
349
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.calendar-month.desc': '每月1日至最後一日為一個週期',
|
|
350
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.title': '按自定義週期',
|
|
351
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.desc': '自定義設定每月的起始日(不支援29、30、31日)',
|
|
352
|
+
'pisell2.attendance.group-settings.correction-policy.reset-period.custom-period.required': '請選擇自定義起始日'
|
|
353
|
+
}
|
|
354
|
+
};
|
|
@@ -0,0 +1,96 @@
|
|
|
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
|
+
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); }
|
|
8
|
+
import React, { useMemo } from 'react';
|
|
9
|
+
import { Form, Select } from 'antd';
|
|
10
|
+
import { useRequest } from 'ahooks';
|
|
11
|
+
import { Icon, BaseTranslation } from '@pisell/materials';
|
|
12
|
+
import { locales } from '@pisell/utils';
|
|
13
|
+
import useEngineContext from "../../../hooks/useEngineContext";
|
|
14
|
+
import { MembersField } from "./components";
|
|
15
|
+
import { getTimezoneList } from "./serve";
|
|
16
|
+
var BasicInfoTab = function BasicInfoTab(props) {
|
|
17
|
+
var _engineContext$appHel;
|
|
18
|
+
var engineContext = useEngineContext();
|
|
19
|
+
var _ref = (engineContext === null || engineContext === void 0 || (_engineContext$appHel = engineContext.appHelper) === null || _engineContext$appHel === void 0 ? void 0 : _engineContext$appHel.utils) || {},
|
|
20
|
+
translation = _ref.translation;
|
|
21
|
+
var _useRequest = useRequest(getTimezoneList, {
|
|
22
|
+
defaultParams: [{
|
|
23
|
+
pageSize: 499
|
|
24
|
+
}]
|
|
25
|
+
}),
|
|
26
|
+
data = _useRequest.data;
|
|
27
|
+
var timeZoneOptions = useMemo(function () {
|
|
28
|
+
var _data$data;
|
|
29
|
+
return (data === null || data === void 0 || (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.map(function (item) {
|
|
30
|
+
return {
|
|
31
|
+
label: translation(item.name),
|
|
32
|
+
value: item.code
|
|
33
|
+
};
|
|
34
|
+
})) || [];
|
|
35
|
+
}, [data]);
|
|
36
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
37
|
+
className: "saas-attendance-group-settings__panel",
|
|
38
|
+
id: props.id
|
|
39
|
+
}, /*#__PURE__*/React.createElement(Form.Item, {
|
|
40
|
+
label: locales.getText('pisell2.attendance.group-settings.basic-info.label.name'),
|
|
41
|
+
name: "name",
|
|
42
|
+
rules: [{
|
|
43
|
+
required: true
|
|
44
|
+
}, {
|
|
45
|
+
validator: function validator(_, value) {
|
|
46
|
+
var hasVal = false;
|
|
47
|
+
if (value && _typeof(value) === 'object') {
|
|
48
|
+
Object.entries(value).forEach(function (_ref2) {
|
|
49
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
50
|
+
key = _ref3[0],
|
|
51
|
+
val = _ref3[1];
|
|
52
|
+
if (val) {
|
|
53
|
+
hasVal = true;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (!hasVal) {
|
|
58
|
+
return Promise.reject(locales.getText('pisell2.attendance.group-settings.basic-info.name-required'));
|
|
59
|
+
}
|
|
60
|
+
return Promise.resolve();
|
|
61
|
+
}
|
|
62
|
+
}],
|
|
63
|
+
extra: locales.getText('pisell2.attendance.group-settings.basic-info.name-max-length')(50)
|
|
64
|
+
}, /*#__PURE__*/React.createElement(BaseTranslation, {
|
|
65
|
+
maxLength: 50,
|
|
66
|
+
placeholder: locales.getText('pisell2.attendance.group-settings.basic-info.name-tip')
|
|
67
|
+
})), /*#__PURE__*/React.createElement(Form.Item, {
|
|
68
|
+
label: locales.getText('pisell2.attendance.group-settings.basic-info.label.time-zone'),
|
|
69
|
+
name: "timezone",
|
|
70
|
+
rules: [{
|
|
71
|
+
required: true
|
|
72
|
+
}],
|
|
73
|
+
required: true,
|
|
74
|
+
extra: /*#__PURE__*/React.createElement("div", {
|
|
75
|
+
style: {
|
|
76
|
+
color: '#ea580c'
|
|
77
|
+
}
|
|
78
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
79
|
+
type: "pisell2-alert-triangle",
|
|
80
|
+
size: 14,
|
|
81
|
+
style: {
|
|
82
|
+
marginRight: 4
|
|
83
|
+
}
|
|
84
|
+
}), locales.getText('pisell2.attendance.group-settings.basic-info.time-zone-tip'))
|
|
85
|
+
}, /*#__PURE__*/React.createElement(Select, {
|
|
86
|
+
disabled: true,
|
|
87
|
+
options: timeZoneOptions
|
|
88
|
+
})), /*#__PURE__*/React.createElement(Form.Item, {
|
|
89
|
+
label: locales.getText('pisell2.attendance.group-settings.basic-info.label.members'),
|
|
90
|
+
name: "member_ids",
|
|
91
|
+
rules: [{
|
|
92
|
+
required: true
|
|
93
|
+
}]
|
|
94
|
+
}, /*#__PURE__*/React.createElement(MembersField, null)));
|
|
95
|
+
};
|
|
96
|
+
export default BasicInfoTab;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import React, { useMemo, useRef } from 'react';
|
|
2
|
+
import { Button, Form, Slider } from 'antd';
|
|
3
|
+
import { Icon } from '@pisell/materials';
|
|
4
|
+
import { locales } from '@pisell/utils';
|
|
5
|
+
import { MapField } from "./components";
|
|
6
|
+
var ClockInMethodTab = function ClockInMethodTab(props) {
|
|
7
|
+
var _Form$useWatch, _Form$useWatch2;
|
|
8
|
+
var form = props.form;
|
|
9
|
+
var maxLocations = 200;
|
|
10
|
+
var mapFieldRef = useRef(null);
|
|
11
|
+
var defaultValidRangeMeters = (_Form$useWatch = Form.useWatch(['place', 'radius'], form)) !== null && _Form$useWatch !== void 0 ? _Form$useWatch : 100;
|
|
12
|
+
var locations = (_Form$useWatch2 = Form.useWatch(['place', 'location'], form)) !== null && _Form$useWatch2 !== void 0 ? _Form$useWatch2 : [];
|
|
13
|
+
var isMaxLocations = Array.isArray(locations) && locations.length >= maxLocations;
|
|
14
|
+
var openAddLocation = function openAddLocation() {
|
|
15
|
+
var _mapFieldRef$current;
|
|
16
|
+
if (isMaxLocations) return;
|
|
17
|
+
(_mapFieldRef$current = mapFieldRef.current) === null || _mapFieldRef$current === void 0 || _mapFieldRef$current.onAddLocation();
|
|
18
|
+
};
|
|
19
|
+
var approvedLocationsLabel = useMemo(function () {
|
|
20
|
+
return locales.getText('pisell2.attendance.group-settings.clock-in-method.approved-locations.label')(maxLocations);
|
|
21
|
+
}, [maxLocations]);
|
|
22
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
23
|
+
className: "saas-attendance-group-settings__panel",
|
|
24
|
+
id: props.id
|
|
25
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
26
|
+
className: "saas-attendance-group-settings__banner banner-green"
|
|
27
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
28
|
+
className: "banner-icon"
|
|
29
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
30
|
+
type: "pisell2-marker-pin-01",
|
|
31
|
+
size: 20
|
|
32
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
33
|
+
className: "banner-body"
|
|
34
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
35
|
+
className: "banner-title"
|
|
36
|
+
}, locales.getText('pisell2.attendance.group-settings.clock-in-method.gps.title')), /*#__PURE__*/React.createElement("div", {
|
|
37
|
+
className: "banner-desc"
|
|
38
|
+
}, locales.getText('pisell2.attendance.group-settings.clock-in-method.gps.desc')))), /*#__PURE__*/React.createElement("div", {
|
|
39
|
+
className: "saas-attendance-group-settings__section"
|
|
40
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
41
|
+
className: "saas-attendance-group-settings__section-head"
|
|
42
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
43
|
+
className: "saas-attendance-group-settings__section-title"
|
|
44
|
+
}, approvedLocationsLabel), /*#__PURE__*/React.createElement(Button, {
|
|
45
|
+
type: "primary",
|
|
46
|
+
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
47
|
+
type: "pisell2-plus",
|
|
48
|
+
size: 16
|
|
49
|
+
}),
|
|
50
|
+
onClick: openAddLocation,
|
|
51
|
+
disabled: isMaxLocations
|
|
52
|
+
}, locales.getText('pisell2.attendance.group-settings.actions.add-location'))), /*#__PURE__*/React.createElement(Form.Item, {
|
|
53
|
+
name: ['place', 'location'],
|
|
54
|
+
style: {
|
|
55
|
+
marginBottom: 0
|
|
56
|
+
}
|
|
57
|
+
}, /*#__PURE__*/React.createElement(MapField, {
|
|
58
|
+
ref: mapFieldRef,
|
|
59
|
+
defaultRadius: defaultValidRangeMeters
|
|
60
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
61
|
+
className: "saas-attendance-group-settings__section"
|
|
62
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
63
|
+
className: "saas-attendance-group-settings__section-title"
|
|
64
|
+
}, locales.getText('pisell2.attendance.group-settings.clock-in-method.default-valid-range.label')), /*#__PURE__*/React.createElement("div", {
|
|
65
|
+
className: "saas-attendance-group-settings__slider-row"
|
|
66
|
+
}, /*#__PURE__*/React.createElement(Form.Item, {
|
|
67
|
+
name: ['place', 'radius'],
|
|
68
|
+
style: {
|
|
69
|
+
marginBottom: 0,
|
|
70
|
+
flex: 1
|
|
71
|
+
}
|
|
72
|
+
}, /*#__PURE__*/React.createElement(Slider, {
|
|
73
|
+
min: 0,
|
|
74
|
+
max: 1000
|
|
75
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
76
|
+
className: "saas-attendance-group-settings__slider-value"
|
|
77
|
+
}, locales.getText('pisell2.attendance.group-settings.clock-in-method.meters')(defaultValidRangeMeters || 0))), /*#__PURE__*/React.createElement("div", {
|
|
78
|
+
className: "saas-attendance-group-settings__help"
|
|
79
|
+
}, locales.getText('pisell2.attendance.group-settings.clock-in-method.default-valid-range.desc'))));
|
|
80
|
+
};
|
|
81
|
+
export default ClockInMethodTab;
|