@neutron.co.id/operasional-interfaces 1.17.25 → 1.17.26
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/@office/models/personalia/submission/SubmissionForDecision.vue +239 -173
- package/build/mock/index.cjs +244 -188
- package/build/mock/index.mjs +244 -188
- package/build/mock/style.css +84 -2
- package/build/module.json +1 -1
- package/build/nuxt.json +1 -1
- package/package.json +6 -6
|
@@ -159,62 +159,75 @@ const copy = ref({
|
|
|
159
159
|
|
|
160
160
|
<template>
|
|
161
161
|
<NeonSingle class="neu-submission-single">
|
|
162
|
-
<
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
values.
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
values.
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
:initial-values="initialValues"
|
|
179
|
-
:is-loading="isLoading"
|
|
180
|
-
:is-changed="isChanged"
|
|
181
|
-
use-unsaved
|
|
182
|
-
@cancel="discardChanges"
|
|
183
|
-
@submit="saveOne"
|
|
162
|
+
<div class="single-wrapper">
|
|
163
|
+
<div
|
|
164
|
+
v-if="values.brand || values.department || values.title"
|
|
165
|
+
class="submission-header"
|
|
166
|
+
>
|
|
167
|
+
<span v-if="values.brand?.name" class="header-segment header-brand">
|
|
168
|
+
{{ values.brand.name }}
|
|
169
|
+
</span>
|
|
170
|
+
<NeonIcon
|
|
171
|
+
v-if="values.brand?.name && values.department?.name"
|
|
172
|
+
name="chevron-right"
|
|
173
|
+
class="header-sep"
|
|
174
|
+
/>
|
|
175
|
+
<span
|
|
176
|
+
v-if="values.department?.name"
|
|
177
|
+
class="header-segment header-department"
|
|
184
178
|
>
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
"
|
|
197
|
-
/>
|
|
179
|
+
{{ values.department.name }}
|
|
180
|
+
</span>
|
|
181
|
+
<NeonIcon
|
|
182
|
+
v-if="(values.brand?.name || values.department?.name) && values.title"
|
|
183
|
+
name="chevron-right"
|
|
184
|
+
class="header-sep"
|
|
185
|
+
/>
|
|
186
|
+
<span v-if="values.title" class="header-segment header-title">
|
|
187
|
+
{{ values.title }}
|
|
188
|
+
</span>
|
|
189
|
+
</div>
|
|
198
190
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
191
|
+
<OfficeTabs :use-url="isMain">
|
|
192
|
+
<!-- DOKUMEN -->
|
|
193
|
+
<SubmissionDocumentTab
|
|
194
|
+
toolbar="side"
|
|
195
|
+
:is-readonly="
|
|
196
|
+
values.status === 'raised' ||
|
|
197
|
+
values.status === 'delay' ||
|
|
198
|
+
values.status === 'approved' ||
|
|
199
|
+
values.status === 'monitored' ||
|
|
200
|
+
values.status === 'discontinued' ||
|
|
201
|
+
values.status === 'resolved'
|
|
202
|
+
"
|
|
203
|
+
/>
|
|
204
|
+
<OfficeTab handle="info" icon="circle-info" title="Info">
|
|
205
|
+
<NeonForm
|
|
206
|
+
handle="info"
|
|
207
|
+
:initial-values="initialValues"
|
|
208
|
+
:is-loading="isLoading"
|
|
209
|
+
:is-changed="isChanged"
|
|
210
|
+
use-unsaved
|
|
211
|
+
@cancel="discardChanges"
|
|
212
|
+
@submit="saveOne"
|
|
213
|
+
>
|
|
214
|
+
<NeonField
|
|
215
|
+
v-model="values.title"
|
|
216
|
+
v-bind="fields.title"
|
|
217
|
+
:is-disabled="
|
|
218
|
+
values.status === 'raised' ||
|
|
219
|
+
values.status === 'processed' ||
|
|
220
|
+
values.status === 'delay' ||
|
|
221
|
+
values.status === 'approved' ||
|
|
222
|
+
values.status === 'monitored' ||
|
|
223
|
+
values.status === 'discontinued' ||
|
|
224
|
+
values.status === 'resolved'
|
|
225
|
+
"
|
|
226
|
+
/>
|
|
212
227
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
v-
|
|
216
|
-
:field="fields.branches"
|
|
217
|
-
:query="Query.define(branchOptions)"
|
|
228
|
+
<NeonField
|
|
229
|
+
v-model="values.nominal"
|
|
230
|
+
v-bind="fields.nominal"
|
|
218
231
|
:is-disabled="
|
|
219
232
|
values.status === 'raised' ||
|
|
220
233
|
values.status === 'processed' ||
|
|
@@ -225,9 +238,40 @@ const copy = ref({
|
|
|
225
238
|
values.status === 'resolved'
|
|
226
239
|
"
|
|
227
240
|
/>
|
|
241
|
+
|
|
242
|
+
<NeonFields md="grid-cols-2">
|
|
243
|
+
<OfficeRelation
|
|
244
|
+
v-model="values"
|
|
245
|
+
:field="fields.branches"
|
|
246
|
+
:query="Query.define(branchOptions)"
|
|
247
|
+
:is-disabled="
|
|
248
|
+
values.status === 'raised' ||
|
|
249
|
+
values.status === 'processed' ||
|
|
250
|
+
values.status === 'delay' ||
|
|
251
|
+
values.status === 'approved' ||
|
|
252
|
+
values.status === 'monitored' ||
|
|
253
|
+
values.status === 'discontinued' ||
|
|
254
|
+
values.status === 'resolved'
|
|
255
|
+
"
|
|
256
|
+
/>
|
|
257
|
+
<OfficeRelation
|
|
258
|
+
v-model="values"
|
|
259
|
+
:field="fields.department"
|
|
260
|
+
:is-disabled="
|
|
261
|
+
values.status === 'raised' ||
|
|
262
|
+
values.status === 'processed' ||
|
|
263
|
+
values.status === 'delay' ||
|
|
264
|
+
values.status === 'approved' ||
|
|
265
|
+
values.status === 'monitored' ||
|
|
266
|
+
values.status === 'discontinued' ||
|
|
267
|
+
values.status === 'resolved'
|
|
268
|
+
"
|
|
269
|
+
/>
|
|
270
|
+
</NeonFields>
|
|
228
271
|
<OfficeRelation
|
|
229
272
|
v-model="values"
|
|
230
|
-
:field="fields.
|
|
273
|
+
:field="fields.type"
|
|
274
|
+
:query="Query.define(typeOptions)"
|
|
231
275
|
:is-disabled="
|
|
232
276
|
values.status === 'raised' ||
|
|
233
277
|
values.status === 'processed' ||
|
|
@@ -238,109 +282,94 @@ const copy = ref({
|
|
|
238
282
|
values.status === 'resolved'
|
|
239
283
|
"
|
|
240
284
|
/>
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
:is-disabled="
|
|
265
|
-
values.status === 'raised' ||
|
|
266
|
-
values.status === 'processed' ||
|
|
267
|
-
values.status === 'delay' ||
|
|
268
|
-
values.status === 'approved' ||
|
|
269
|
-
values.status === 'monitored' ||
|
|
270
|
-
values.status === 'discontinued' ||
|
|
271
|
-
values.status === 'resolved'
|
|
272
|
-
"
|
|
273
|
-
/>
|
|
274
|
-
</NeonFields>
|
|
275
|
-
</div>
|
|
276
|
-
<div class="ml-2 flex items-end pb-1">
|
|
277
|
-
<NeonCopy :size="'sm'" :value="copy.staff" />
|
|
278
|
-
</div>
|
|
279
|
-
</div>
|
|
280
|
-
|
|
281
|
-
<div class="flex items-right">
|
|
282
|
-
<div class="flex-grow">
|
|
283
|
-
<NeonFields class="flex-1">
|
|
284
|
-
<OfficeRelation
|
|
285
|
-
v-model="values"
|
|
286
|
-
:field="fields.raiseStaffs"
|
|
287
|
-
:query="Query.define(roleRaiseStaffOptions)"
|
|
288
|
-
:is-disabled="
|
|
289
|
-
values.status === 'raised' ||
|
|
290
|
-
values.status === 'processed' ||
|
|
291
|
-
values.status === 'delay' ||
|
|
292
|
-
values.status === 'approved' ||
|
|
293
|
-
values.status === 'monitored' ||
|
|
294
|
-
values.status === 'discontinued' ||
|
|
295
|
-
values.status === 'resolved'
|
|
296
|
-
"
|
|
297
|
-
/>
|
|
298
|
-
</NeonFields>
|
|
299
|
-
</div>
|
|
300
|
-
<div class="ml-2 flex items-end pb-1">
|
|
301
|
-
<NeonCopy :size="'sm'" :value="copy.raise" />
|
|
302
|
-
</div>
|
|
303
|
-
</div>
|
|
304
|
-
|
|
305
|
-
<div class="flex items-right">
|
|
306
|
-
<div class="flex-grow">
|
|
307
|
-
<NeonFields class="flex-1">
|
|
308
|
-
<OfficeRelation
|
|
309
|
-
v-model="values"
|
|
310
|
-
:field="fields.decideStaffs"
|
|
311
|
-
:query="Query.define(roleDecideStaffOptions)"
|
|
312
|
-
:is-disabled="
|
|
313
|
-
values.status === 'raised' ||
|
|
314
|
-
values.status === 'processed' ||
|
|
315
|
-
values.status === 'delay' ||
|
|
316
|
-
values.status === 'approved' ||
|
|
317
|
-
values.status === 'monitored' ||
|
|
318
|
-
values.status === 'discontinued' ||
|
|
319
|
-
values.status === 'resolved'
|
|
320
|
-
"
|
|
321
|
-
/>
|
|
322
|
-
</NeonFields>
|
|
285
|
+
|
|
286
|
+
<div class="flex items-right">
|
|
287
|
+
<div class="flex-grow">
|
|
288
|
+
<NeonFields class="flex-1">
|
|
289
|
+
<OfficeRelation
|
|
290
|
+
v-model="values"
|
|
291
|
+
:field="fields.submissionStaffs"
|
|
292
|
+
:query="Query.define(submissionStaffOptions)"
|
|
293
|
+
:is-disabled="
|
|
294
|
+
values.status === 'raised' ||
|
|
295
|
+
values.status === 'processed' ||
|
|
296
|
+
values.status === 'delay' ||
|
|
297
|
+
values.status === 'approved' ||
|
|
298
|
+
values.status === 'monitored' ||
|
|
299
|
+
values.status === 'discontinued' ||
|
|
300
|
+
values.status === 'resolved'
|
|
301
|
+
"
|
|
302
|
+
/>
|
|
303
|
+
</NeonFields>
|
|
304
|
+
</div>
|
|
305
|
+
<div class="ml-2 flex items-end pb-1">
|
|
306
|
+
<NeonCopy :size="'sm'" :value="copy.staff" />
|
|
307
|
+
</div>
|
|
323
308
|
</div>
|
|
324
|
-
|
|
325
|
-
|
|
309
|
+
|
|
310
|
+
<div class="flex items-right">
|
|
311
|
+
<div class="flex-grow">
|
|
312
|
+
<NeonFields class="flex-1">
|
|
313
|
+
<OfficeRelation
|
|
314
|
+
v-model="values"
|
|
315
|
+
:field="fields.raiseStaffs"
|
|
316
|
+
:query="Query.define(roleRaiseStaffOptions)"
|
|
317
|
+
:is-disabled="
|
|
318
|
+
values.status === 'raised' ||
|
|
319
|
+
values.status === 'processed' ||
|
|
320
|
+
values.status === 'delay' ||
|
|
321
|
+
values.status === 'approved' ||
|
|
322
|
+
values.status === 'monitored' ||
|
|
323
|
+
values.status === 'discontinued' ||
|
|
324
|
+
values.status === 'resolved'
|
|
325
|
+
"
|
|
326
|
+
/>
|
|
327
|
+
</NeonFields>
|
|
328
|
+
</div>
|
|
329
|
+
<div class="ml-2 flex items-end pb-1">
|
|
330
|
+
<NeonCopy :size="'sm'" :value="copy.raise" />
|
|
331
|
+
</div>
|
|
326
332
|
</div>
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
333
|
+
|
|
334
|
+
<div class="flex items-right">
|
|
335
|
+
<div class="flex-grow">
|
|
336
|
+
<NeonFields class="flex-1">
|
|
337
|
+
<OfficeRelation
|
|
338
|
+
v-model="values"
|
|
339
|
+
:field="fields.decideStaffs"
|
|
340
|
+
:query="Query.define(roleDecideStaffOptions)"
|
|
341
|
+
:is-disabled="
|
|
342
|
+
values.status === 'raised' ||
|
|
343
|
+
values.status === 'processed' ||
|
|
344
|
+
values.status === 'delay' ||
|
|
345
|
+
values.status === 'approved' ||
|
|
346
|
+
values.status === 'monitored' ||
|
|
347
|
+
values.status === 'discontinued' ||
|
|
348
|
+
values.status === 'resolved'
|
|
349
|
+
"
|
|
350
|
+
/>
|
|
351
|
+
</NeonFields>
|
|
352
|
+
</div>
|
|
353
|
+
<div class="ml-2 flex items-end pb-1">
|
|
354
|
+
<NeonCopy :size="'sm'" :value="copy.decision" />
|
|
355
|
+
</div>
|
|
337
356
|
</div>
|
|
338
|
-
|
|
339
|
-
|
|
357
|
+
|
|
358
|
+
<div class="flex items-right">
|
|
359
|
+
<div class="flex-grow">
|
|
360
|
+
<NeonFields class="flex-1">
|
|
361
|
+
<OfficeRelation
|
|
362
|
+
v-model="values"
|
|
363
|
+
:field="fields.followUpStaffs"
|
|
364
|
+
/>
|
|
365
|
+
</NeonFields>
|
|
366
|
+
</div>
|
|
367
|
+
<div class="ml-2 flex items-end pb-1">
|
|
368
|
+
<NeonCopy :size="'sm'" :value="copy.followUp" />
|
|
369
|
+
</div>
|
|
340
370
|
</div>
|
|
341
|
-
</div>
|
|
342
371
|
|
|
343
|
-
|
|
372
|
+
<!-- <NeonField
|
|
344
373
|
v-model="values.specifications"
|
|
345
374
|
v-bind="fields.specifications"
|
|
346
375
|
:is-disabled="
|
|
@@ -354,31 +383,68 @@ const copy = ref({
|
|
|
354
383
|
"
|
|
355
384
|
/> -->
|
|
356
385
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
386
|
+
<NeonField
|
|
387
|
+
v-model="values.preparedAt"
|
|
388
|
+
v-bind="fields.preparedAt"
|
|
389
|
+
is-disabled
|
|
390
|
+
/>
|
|
391
|
+
|
|
392
|
+
<NeonField
|
|
393
|
+
v-model="values.raisedAt"
|
|
394
|
+
v-bind="fields.raisedAt"
|
|
395
|
+
is-disabled
|
|
396
|
+
/>
|
|
397
|
+
|
|
398
|
+
<NeonField
|
|
399
|
+
v-model="values.processedAt"
|
|
400
|
+
v-bind="fields.processedAt"
|
|
401
|
+
is-disabled
|
|
402
|
+
/>
|
|
403
|
+
</NeonForm>
|
|
404
|
+
</OfficeTab>
|
|
405
|
+
</OfficeTabs>
|
|
406
|
+
</div>
|
|
377
407
|
</NeonSingle>
|
|
378
408
|
</template>
|
|
379
409
|
|
|
380
410
|
<style scoped>
|
|
381
411
|
.neu-submission-single {
|
|
382
|
-
@apply block;
|
|
412
|
+
@apply block h-full;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
.single-wrapper {
|
|
416
|
+
@apply flex flex-col h-full min-h-0;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.submission-header {
|
|
420
|
+
@apply flex items-center flex-wrap gap-1 px-4 py-2 border-b shrink-0;
|
|
421
|
+
@apply text-sm;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
.single-wrapper :deep(> .office-tabs),
|
|
425
|
+
.single-wrapper :deep(> .neon-tabs) {
|
|
426
|
+
@apply flex-1 min-h-0;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.header-segment {
|
|
430
|
+
@apply text-fg-subdued;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
.header-brand {
|
|
434
|
+
@apply font-medium text-dark;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.header-department {
|
|
438
|
+
@apply font-medium text-dark;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
.header-title {
|
|
442
|
+
@apply font-bold text-dark;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
.header-sep {
|
|
446
|
+
@apply text-fg-subdued;
|
|
447
|
+
|
|
448
|
+
--neon-icon-size: 12px;
|
|
383
449
|
}
|
|
384
450
|
</style>
|