bfg-common 1.4.298 → 1.4.300

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.
@@ -62,6 +62,8 @@ watch(
62
62
  ([newValue1, newValue2]: [string, 'never' | 'on']) => {
63
63
  modelFrequencyLocal.value.isValid =
64
64
  newValue2 === 'never' ? false : !!newValue1
65
+
66
+ newValue2 === 'never' && (modelFrequencyLocal.value.frg_end_time = '')
65
67
  }
66
68
  )
67
69
  </script>
@@ -9,11 +9,11 @@
9
9
  v-model="model"
10
10
  />
11
11
 
12
- <div v-if="props.type === 'month'" class="">
12
+ <div v-if="props.type === 'month'">
13
13
  <div class="on-time__radio radio">
14
14
  <input
15
15
  id="on-time-monthly-by-day"
16
- v-model="selectedTimeMode"
16
+ v-model="model.frg_monthly_mode"
17
17
  data-id="on-time-monthly-by-day"
18
18
  type="radio"
19
19
  value="day"
@@ -49,7 +49,7 @@
49
49
  <div class="on-time__radio radio">
50
50
  <input
51
51
  id="on-time-monthly-by-week"
52
- v-model="selectedTimeMode"
52
+ v-model="model.frg_monthly_mode"
53
53
  data-id="on-time-monthly-by-week"
54
54
  type="radio"
55
55
  value="week"
@@ -115,8 +115,6 @@ const model = defineModel<UI_I_ScheduleNewTasksForm>({ required: true })
115
115
 
116
116
  const localization = computed<UI_I_Localization>(() => useLocal())
117
117
 
118
- const selectedTimeMode = ref<'day' | 'week'>('day')
119
-
120
118
  const frequencyOnWeeksDays = computed<UI_I_SelectInputItem[]>(() => {
121
119
  return frequencyOnWeeksDaysFunc(localization.value)
122
120
  })
@@ -125,7 +123,7 @@ const frequencyOnOrdinalNumber = computed<UI_I_SelectInputItem[]>(() => {
125
123
  })
126
124
 
127
125
  const isDisabledMonthlyDayField = computed<boolean>(
128
- () => selectedTimeMode.value === 'week'
126
+ () => model.value.frg_monthly_mode === 'week'
129
127
  )
130
128
 
131
129
  const isInitTimeIntervalValidation = ref<boolean>(false)
@@ -7,31 +7,31 @@ export const frequencyOnWeeksDaysFunc = (
7
7
  return [
8
8
  {
9
9
  label: localization.common.sunday,
10
- value: 'sunday',
10
+ value: 6,
11
11
  },
12
12
  {
13
13
  label: localization.common.monday,
14
- value: 'monday',
14
+ value: 1,
15
15
  },
16
16
  {
17
17
  label: localization.common.tuesday,
18
- value: 'tuesday',
18
+ value: 2,
19
19
  },
20
20
  {
21
21
  label: localization.common.wednesday,
22
- value: 'wednesday',
22
+ value: 3,
23
23
  },
24
24
  {
25
25
  label: localization.common.thursday,
26
- value: 'thursday',
26
+ value: 4,
27
27
  },
28
28
  {
29
29
  label: localization.common.friday,
30
- value: 'friday',
30
+ value: 5,
31
31
  },
32
32
  {
33
33
  label: localization.common.saturday,
34
- value: 'saturday',
34
+ value: 0,
35
35
  },
36
36
  ]
37
37
  }
@@ -42,23 +42,23 @@ export const frequencyOnOrdinalNumberFunc = (
42
42
  return [
43
43
  {
44
44
  label: localization.scheduledTasks.first,
45
- value: '',
45
+ value: 1,
46
46
  },
47
47
  {
48
48
  label: localization.scheduledTasks.second,
49
- value: 'once',
49
+ value: 2,
50
50
  },
51
51
  {
52
52
  label: localization.scheduledTasks.third,
53
- value: 'after-startup',
53
+ value: 3,
54
54
  },
55
55
  {
56
56
  label: localization.scheduledTasks.fourth,
57
- value: 'hour',
57
+ value: 4,
58
58
  },
59
59
  {
60
60
  label: localization.common.last,
61
- value: 'day',
61
+ value: 5,
62
62
  },
63
63
  ]
64
64
  }
@@ -146,25 +146,40 @@ const generateOnceCronExpression = (date: Date): any => {
146
146
  // Генерируем cron-выражение
147
147
  return `${minutes} ${hours} ${day} ${month} ${dayOfWeek} once`
148
148
  }
149
- const generateHourlyCronExpression = (delay: string, date: Date): any => {
149
+ const generateHourlyCronExpression = (
150
+ data: UI_I_ScheduleNewTasksForm
151
+ ): string => {
150
152
  if (!date) return
151
153
 
154
+ const startOnTimestamp = Math.floor(
155
+ new Date(data.frg_start_on_time).getTime() / 1000
156
+ )
157
+ const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
158
+
152
159
  // const minutes = date.getMinutes()
153
160
  // const hours = date.getHours()
154
161
 
155
162
  // Генерируем cron-выражение
156
163
  // return `${minutes} ${hours}/${delay} * * *`
157
- return `0 */${delay} * * *`
164
+ return endTimestamp
165
+ ? `0 */${data.frg_interval} * * * start=${startOnTimestamp},end=${endTimestamp}`
166
+ : `0 */${data.frg_interval} * * * start=${startOnTimestamp}`
158
167
  }
159
- const generateDaylyCronExpression = (delay: string, date: Date): string => {
168
+ const generateDaylyCronExpression = (
169
+ data: UI_I_ScheduleNewTasksForm
170
+ ): string => {
160
171
  if (!date) return
161
172
 
162
- // const minutes = date.getMinutes()
163
- // const hours = date.getHours()
164
- // const day = date.getDate()
173
+ const startOnTimestamp = Math.floor(
174
+ new Date(data.frg_start_on_time).getTime() / 1000
175
+ )
176
+ const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
165
177
 
166
178
  // Генерируем cron-выражение
167
- return `0 0 */${delay} * *`
179
+ return endTimestamp
180
+ ? `0 0 */${data.frg_interval} * * start=${startOnTimestamp},end=${endTimestamp}`
181
+ : `0 0 */${data.frg_interval} * * start=${startOnTimestamp}`
182
+
168
183
  // return `${minutes} ${hours} ${day}/${delay} * *`
169
184
  }
170
185
  const generateWeeklyCronExpression = (
@@ -172,21 +187,39 @@ const generateWeeklyCronExpression = (
172
187
  ): string => {
173
188
  const { frg_on_week_days } = data
174
189
 
175
- // Генерируем cron-выражение
176
- return `* * * * ${frg_on_week_days.join(',')}`
190
+ const startOnTimestamp = Math.floor(
191
+ new Date(data.frg_start_on_time).getTime() / 1000
192
+ )
193
+ const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
194
+
195
+ return endTimestamp
196
+ ? `* * * * ${frg_on_week_days.join(',')}/${
197
+ data.frg_interval
198
+ } start=${startOnTimestamp},end=${endTimestamp}`
199
+ : `* * * * ${frg_on_week_days.join(',')}/${
200
+ data.frg_interval
201
+ } start=${startOnTimestamp}`
177
202
  }
203
+
178
204
  const generateMonthlyCronExpression = (
179
205
  data: UI_I_ScheduleNewTasksForm
180
206
  ): string => {
181
- const { frg_interval, frg_monthly_day } = data
207
+ const { frg_interval, frg_monthly_day, frq_week_day, frq_ordinal_number } =
208
+ data
182
209
 
183
- const startOn = new Date(data.frg_start_on_time)
184
- const end = new Date(data.frg_end_time)
210
+ const startOnTimestamp = Math.floor(
211
+ new Date(data.frg_start_on_time).getTime() / 1000
212
+ )
213
+ const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
185
214
 
186
- console.log(startOn, end)
215
+ const month = data.frg_monthly_mode === 'week' ? '*' : frg_monthly_day
216
+ const cronWeekly = `${frq_week_day}#${frq_ordinal_number}`
217
+ const dayOfWeek = data.frg_monthly_mode === 'week' ? cronWeekly : '*'
187
218
 
188
219
  // Генерируем cron-выражение
189
- return `* * ${frg_monthly_day} */${frg_interval} *`
220
+ return endTimestamp
221
+ ? `* * ${month} */${frg_interval} ${dayOfWeek} start=${startOnTimestamp},end=${endTimestamp}`
222
+ : `* * ${month} */${frg_interval} ${dayOfWeek} start=${startOnTimestamp}`
190
223
  }
191
224
 
192
225
  const generateCronExpression = (
@@ -208,18 +241,10 @@ const generateCronExpression = (
208
241
  cronExpression = `0 0 0 0 0 after_procurator_startup${suffixDelay}` // Выполняется после запуска procurator_startup с задержой N минут
209
242
  break
210
243
  case 'hour':
211
- const hourlyDelay = interval.frg_interval
212
- cronExpression = generateHourlyCronExpression(
213
- hourlyDelay,
214
- new Date(interval.frg_start_on_time)
215
- )
244
+ cronExpression = generateHourlyCronExpression(interval)
216
245
  break
217
246
  case 'day':
218
- const dayDelay = interval.frg_interval
219
- cronExpression = generateDaylyCronExpression(
220
- dayDelay,
221
- new Date(interval.frg_start_on_time)
222
- )
247
+ cronExpression = generateDaylyCronExpression(interval)
223
248
  break
224
249
  case 'week':
225
250
  cronExpression = generateWeeklyCronExpression(interval)
@@ -13,6 +13,7 @@ export const scheduledTaskDefaultFormFunc = (): UI_I_ScheduleNewTasksForm => {
13
13
  frg_interval: 1,
14
14
  frg_end_time: '',
15
15
  frg_start_on_time: '',
16
+ frg_monthly_mode: 'day',
16
17
  frg_monthly_day: 0,
17
18
  frq_week_day: '',
18
19
  frq_ordinal_number: '',
@@ -11,6 +11,7 @@ export interface UI_I_ScheduleNewTasksForm {
11
11
  frg_interval: number
12
12
  frg_end_time: string
13
13
  frg_start_on_time: string
14
+ frg_monthly_mode: 'day' | 'week'
14
15
  frg_monthly_day: number
15
16
  frq_ordinal_number: string
16
17
  frq_week_day: UI_T_FrequencyWeeksDays
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.4.298",
4
+ "version": "1.4.300",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",