@7365admin1/layer-common 3.2.2-staging.128 → 3.2.2-staging.130
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/components/AreaChecklistHistoryMain.vue +9 -6
- package/components/AreaMain.vue +64 -90
- package/components/Carousel.vue +56 -36
- package/components/Chat/Bubbles.vue +43 -14
- package/components/Chat/Information.vue +49 -32
- package/components/Chat/ListCard.vue +38 -9
- package/components/Chat/Message.vue +41 -15
- package/components/Chat/Navigation.vue +27 -15
- package/components/CleaningScheduleMain.vue +15 -3
- package/components/DrawImage.vue +29 -21
- package/components/EquipmentItemMain.vue +80 -91
- package/components/EquipmentManagementMain.vue +72 -96
- package/components/Input/Date.vue +3 -0
- package/components/Input/File.vue +55 -10
- package/components/Input/ListGroupSelection.vue +56 -8
- package/components/MemberMain.vue +34 -33
- package/components/RolePermissionMain.vue +33 -44
- package/components/ScheduleAreaMain.vue +20 -11
- package/components/ScheduleTaskMain.vue +33 -43
- package/components/UnitMain.vue +31 -43
- package/components/WorkOrder/Create.vue +26 -17
- package/package.json +1 -1
|
@@ -20,17 +20,18 @@
|
|
|
20
20
|
|
|
21
21
|
<template #extension>
|
|
22
22
|
<v-row no-gutters class="w-100 d-flex flex-column">
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
<!--
|
|
24
|
+
A bare `v-card` here paints Vuetify's own `surface`, a shade off
|
|
25
|
+
the table card it sits inside. A plain row on the card's own
|
|
26
|
+
background, with both filters on the design's field.
|
|
27
|
+
-->
|
|
28
|
+
<div class="w-100 filter-bar d-flex align-center ga-5">
|
|
28
29
|
<v-select
|
|
29
30
|
v-model="statusFilter"
|
|
30
31
|
:items="statusOptions"
|
|
31
32
|
density="compact"
|
|
32
33
|
hide-details
|
|
33
|
-
class="mx-2"
|
|
34
|
+
class="mx-2 filter-field"
|
|
34
35
|
style="max-width: 160px"
|
|
35
36
|
item-title="title"
|
|
36
37
|
item-value="value"
|
|
@@ -42,13 +43,13 @@
|
|
|
42
43
|
:items="typeOptions"
|
|
43
44
|
density="compact"
|
|
44
45
|
hide-details
|
|
45
|
-
class="mx-2"
|
|
46
|
+
class="mx-2 filter-field"
|
|
46
47
|
style="max-width: 160px"
|
|
47
48
|
item-title="title"
|
|
48
49
|
item-value="value"
|
|
49
50
|
label="Type"
|
|
50
51
|
/>
|
|
51
|
-
</
|
|
52
|
+
</div>
|
|
52
53
|
</v-row>
|
|
53
54
|
</template>
|
|
54
55
|
<template #actions>
|
|
@@ -106,9 +107,17 @@
|
|
|
106
107
|
(item.status && String(item.status).toLowerCase() === 'accepted')
|
|
107
108
|
"
|
|
108
109
|
>
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
<!--
|
|
111
|
+
`color`/`variant` on a plain `<span>` do nothing - Vuetify only
|
|
112
|
+
reads them on its own components, so this drew as bare cell text
|
|
113
|
+
while reading as a tonal green chip. It is the accepted chip the
|
|
114
|
+
sibling branches already use.
|
|
115
|
+
-->
|
|
116
|
+
<StatusChip
|
|
117
|
+
status="Accepted"
|
|
118
|
+
class="text-capitalize"
|
|
119
|
+
:label="item.acceptedByName || item.acceptedBy || 'Accepted'"
|
|
120
|
+
/>
|
|
112
121
|
</div>
|
|
113
122
|
<div v-else-if="isScheduleClosed">
|
|
114
123
|
<StatusChip status="Closed" class="text-capitalize" />
|
|
@@ -297,51 +297,41 @@
|
|
|
297
297
|
</HygieneUpdateMoreAction>
|
|
298
298
|
</v-dialog>
|
|
299
299
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
<v-card-text>
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
300
|
+
<!--
|
|
301
|
+
Was a `v-toolbar` title bar (Vuetify paints that from its own `surface`,
|
|
302
|
+
a grey slab visibly lighter than the card on dark) over a second toolbar
|
|
303
|
+
carrying two block buttons, the confirm one on `color="black"` - not a
|
|
304
|
+
token, so it drew a light-theme fill on the dark theme. It is the shared
|
|
305
|
+
confirmation shape now, the same one every converted screen uses.
|
|
306
|
+
-->
|
|
307
|
+
<v-dialog v-model="dialogDeleteTask" max-width="520">
|
|
308
|
+
<v-card class="screen-modal">
|
|
309
|
+
<v-card-title class="text-capitalize">
|
|
310
|
+
Delete {{ selectedTask?.title || "Schedule Task" }}
|
|
311
|
+
</v-card-title>
|
|
312
|
+
|
|
313
|
+
<v-card-text class="screen-modal__body">
|
|
314
|
+
Are you sure you want to delete this schedule task?
|
|
313
315
|
</v-card-text>
|
|
314
316
|
|
|
315
|
-
<
|
|
316
|
-
<v-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
variant="flat"
|
|
334
|
-
color="black"
|
|
335
|
-
class="text-none font-weight-bold"
|
|
336
|
-
height="48"
|
|
337
|
-
:loading="submitting"
|
|
338
|
-
@click="_deleteScheduleTask"
|
|
339
|
-
>
|
|
340
|
-
Delete
|
|
341
|
-
</v-btn>
|
|
342
|
-
</v-col>
|
|
343
|
-
</v-row>
|
|
344
|
-
</v-toolbar>
|
|
317
|
+
<div class="screen-modal__footer">
|
|
318
|
+
<v-btn
|
|
319
|
+
class="screen-btn-ghost"
|
|
320
|
+
variant="outlined"
|
|
321
|
+
:disabled="submitting"
|
|
322
|
+
@click="dialogDeleteTask = false"
|
|
323
|
+
>
|
|
324
|
+
Cancel
|
|
325
|
+
</v-btn>
|
|
326
|
+
<v-btn
|
|
327
|
+
class="screen-btn-primary"
|
|
328
|
+
variant="flat"
|
|
329
|
+
:loading="submitting"
|
|
330
|
+
@click="_deleteScheduleTask"
|
|
331
|
+
>
|
|
332
|
+
Delete
|
|
333
|
+
</v-btn>
|
|
334
|
+
</div>
|
|
345
335
|
</v-card>
|
|
346
336
|
</v-dialog>
|
|
347
337
|
|
package/components/UnitMain.vue
CHANGED
|
@@ -141,51 +141,39 @@
|
|
|
141
141
|
</HygieneUpdateMoreAction>
|
|
142
142
|
</v-dialog>
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
144
|
+
<!--
|
|
145
|
+
Was a `v-toolbar` title bar over a toolbar footer of two block buttons, the
|
|
146
|
+
confirm one on `color="black"` - not a token, so it drew a light-theme fill
|
|
147
|
+
on the dark theme. The shared confirmation shape now.
|
|
148
|
+
-->
|
|
149
|
+
<v-dialog v-model="dialogDeleteUnit" max-width="520">
|
|
150
|
+
<v-card class="screen-modal">
|
|
151
|
+
<v-card-title class="text-capitalize">
|
|
152
|
+
Delete {{ selectedUnit?.name || "Unit" }}
|
|
153
|
+
</v-card-title>
|
|
154
|
+
|
|
155
|
+
<v-card-text class="screen-modal__body">
|
|
156
|
+
Are you sure you want to delete this unit?
|
|
157
157
|
</v-card-text>
|
|
158
158
|
|
|
159
|
-
<
|
|
160
|
-
<v-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
variant="flat"
|
|
178
|
-
color="black"
|
|
179
|
-
class="text-none font-weight-bold"
|
|
180
|
-
height="48"
|
|
181
|
-
:loading="submitting"
|
|
182
|
-
@click="_deleteUnit"
|
|
183
|
-
>
|
|
184
|
-
Delete
|
|
185
|
-
</v-btn>
|
|
186
|
-
</v-col>
|
|
187
|
-
</v-row>
|
|
188
|
-
</v-toolbar>
|
|
159
|
+
<div class="screen-modal__footer">
|
|
160
|
+
<v-btn
|
|
161
|
+
class="screen-btn-ghost"
|
|
162
|
+
variant="outlined"
|
|
163
|
+
:disabled="submitting"
|
|
164
|
+
@click="dialogDeleteUnit = false"
|
|
165
|
+
>
|
|
166
|
+
Cancel
|
|
167
|
+
</v-btn>
|
|
168
|
+
<v-btn
|
|
169
|
+
class="screen-btn-primary"
|
|
170
|
+
variant="flat"
|
|
171
|
+
:loading="submitting"
|
|
172
|
+
@click="_deleteUnit"
|
|
173
|
+
>
|
|
174
|
+
Delete
|
|
175
|
+
</v-btn>
|
|
176
|
+
</div>
|
|
189
177
|
</v-card>
|
|
190
178
|
</v-dialog>
|
|
191
179
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<FormDialog v-model="dialog" @close="closeDialog">
|
|
3
3
|
<template #title>
|
|
4
|
-
<span class="
|
|
4
|
+
<span class="screen-card-title pt-1 text-capitalize">
|
|
5
5
|
{{ isEditMode ? "Edit Work Order" : "Create Work Order" }}
|
|
6
6
|
</span>
|
|
7
7
|
</template>
|
|
@@ -24,8 +24,7 @@
|
|
|
24
24
|
item-props
|
|
25
25
|
label="Subject"
|
|
26
26
|
variant="outlined"
|
|
27
|
-
|
|
28
|
-
class="mb-2"
|
|
27
|
+
class="filter-field mb-2"
|
|
29
28
|
:clearable="
|
|
30
29
|
props.createdFrom === 'feedback' && workOrder.subject !== ''
|
|
31
30
|
? false
|
|
@@ -39,7 +38,7 @@
|
|
|
39
38
|
:custom-filter="customFilter"
|
|
40
39
|
:rules="[requiredRule]"
|
|
41
40
|
>
|
|
42
|
-
<template #label> Subject <span class="
|
|
41
|
+
<template #label> Subject <span class="form-required">*</span> </template>
|
|
43
42
|
</v-autocomplete>
|
|
44
43
|
|
|
45
44
|
<v-autocomplete
|
|
@@ -50,8 +49,7 @@
|
|
|
50
49
|
item-props
|
|
51
50
|
label="Category"
|
|
52
51
|
variant="outlined"
|
|
53
|
-
|
|
54
|
-
class="mb-2"
|
|
52
|
+
class="filter-field mb-2"
|
|
55
53
|
:clearable="
|
|
56
54
|
props.createdFrom === 'feedback' && workOrder.category !== ''
|
|
57
55
|
? false
|
|
@@ -64,12 +62,12 @@
|
|
|
64
62
|
"
|
|
65
63
|
:rules="[requiredRule]"
|
|
66
64
|
>
|
|
67
|
-
<template #label> Category <span class="
|
|
65
|
+
<template #label> Category <span class="form-required">*</span> </template>
|
|
68
66
|
</v-autocomplete>
|
|
69
67
|
|
|
70
68
|
<v-checkbox v-model="workOrder.highPriority" density="compact" class="ma-0">
|
|
71
69
|
<template #label>
|
|
72
|
-
<span class="
|
|
70
|
+
<span class="form-check-label">
|
|
73
71
|
Set work order as High Priority (Optional)
|
|
74
72
|
</span>
|
|
75
73
|
</template>
|
|
@@ -98,14 +96,13 @@
|
|
|
98
96
|
<v-autocomplete
|
|
99
97
|
label="Unit"
|
|
100
98
|
variant="outlined"
|
|
101
|
-
|
|
99
|
+
class="filter-field mt-1"
|
|
102
100
|
v-model="workOrder.unit"
|
|
103
101
|
:items="units"
|
|
104
|
-
class="mt-1"
|
|
105
102
|
clearable
|
|
106
103
|
:rules="[requiredRule]"
|
|
107
104
|
>
|
|
108
|
-
<template #label> Unit <span class="
|
|
105
|
+
<template #label> Unit <span class="form-required">*</span> </template>
|
|
109
106
|
</v-autocomplete>
|
|
110
107
|
|
|
111
108
|
<!-- <v-text-field
|
|
@@ -125,23 +122,21 @@
|
|
|
125
122
|
<v-textarea
|
|
126
123
|
label="Work Order Description"
|
|
127
124
|
variant="outlined"
|
|
128
|
-
|
|
125
|
+
class="filter-field mt-1"
|
|
129
126
|
v-model="workOrder.description"
|
|
130
|
-
class="mt-1"
|
|
131
127
|
rows="4"
|
|
132
128
|
clearable
|
|
133
129
|
auto-grow
|
|
134
130
|
:rules="[requiredRule]"
|
|
135
131
|
>
|
|
136
|
-
<template #label> Description <span class="
|
|
132
|
+
<template #label> Description <span class="form-required">*</span> </template>
|
|
137
133
|
</v-textarea>
|
|
138
134
|
|
|
139
135
|
<template #footer>
|
|
140
136
|
<v-btn
|
|
141
|
-
|
|
142
|
-
|
|
137
|
+
class="screen-btn-primary mb-4"
|
|
138
|
+
variant="flat"
|
|
143
139
|
block
|
|
144
|
-
height="40"
|
|
145
140
|
:loading="loading"
|
|
146
141
|
:disabled="loading || !isFormValid"
|
|
147
142
|
@click="submitWorkOrder"
|
|
@@ -282,3 +277,17 @@ const customFilter = (value: string, query: string, item: any) => {
|
|
|
282
277
|
return title.includes(search) || subtitle.includes(search);
|
|
283
278
|
};
|
|
284
279
|
</script>
|
|
280
|
+
|
|
281
|
+
<style scoped>
|
|
282
|
+
/* The required star was `text-red`, a Vuetify palette word rather than the
|
|
283
|
+
design's error token. */
|
|
284
|
+
.form-required {
|
|
285
|
+
color: var(--err);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.form-check-label {
|
|
289
|
+
font-family: var(--font-sans);
|
|
290
|
+
font-size: var(--fs-cell);
|
|
291
|
+
color: var(--text);
|
|
292
|
+
}
|
|
293
|
+
</style>
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@7365admin1/layer-common",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "3.2.2-staging.
|
|
5
|
+
"version": "3.2.2-staging.130",
|
|
6
6
|
"author": "7365admin1",
|
|
7
7
|
"main": "./nuxt.config.ts",
|
|
8
8
|
"//files": "What a consumer extending this layer actually loads. Without this npm ships the whole working tree - the changesets, the CI workflows, the render harness in tools/ and any scratch directory that happened to exist at publish time. Nuxt resolves a layer by directory, so every runtime directory below has to stay listed; adding a new top-level runtime directory means adding it here too.",
|