@nixweb/nixloc-ui 0.0.294 → 0.0.296
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/package.json +1 -1
- package/src/component/layout/NewHeader.vue +2 -2
- package/src/component/layout/NewMenu.vue +68 -54
- package/src/component/layout/Panel.vue +19 -3
- package/src/component/shared/DocumentEditor.vue +0 -1
- package/src/component/shared/Messages.vue +56 -30
- package/src/component/shared/SaveCancel.vue +10 -3
- package/src/component/shared/Table.vue +2 -2
package/package.json
CHANGED
|
@@ -5,78 +5,68 @@
|
|
|
5
5
|
<span class="header-logo" @click="editProfile">
|
|
6
6
|
<img class="photo" :src="urlPhoto" />
|
|
7
7
|
</span>
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
<i v-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<div v-if="menuCollapsed">
|
|
16
|
-
<br><br>
|
|
8
|
+
<div :style="'margin-left:' + (menuCollapsed ? 55 : 170) + 'px'" class="div-menu-toggle"
|
|
9
|
+
@click="toggleSidebar">
|
|
10
|
+
<div class="icon-menu-arrow">
|
|
11
|
+
<i v-if="menuCollapsed" class="fa-solid fa-angle-right "></i>
|
|
12
|
+
<i v-else class="fa-solid fa-angle-left"></i>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
17
15
|
</div>
|
|
16
|
+
|
|
18
17
|
<ScrollBar :minHeight="pageSize" :maxHeight="pageSize">
|
|
19
18
|
<div :class="{ 'sub': menuCollapsed }">
|
|
20
19
|
<div v-for="(item, index) in menuFilter(true)">
|
|
21
|
-
<div>
|
|
20
|
+
<div @mouseover="handleMouseOver(item.title, item.module)">
|
|
22
21
|
<div :ref="item.title" v-if="menuCollapsed" class="molded-icon text-center" :class="{
|
|
23
22
|
'menu-active': moduleActive === item.module,
|
|
24
23
|
'module-selected': module === item.module
|
|
25
|
-
}"
|
|
26
|
-
<i :class="item.icon"></i>
|
|
24
|
+
}">
|
|
25
|
+
<i :style="'font-size:18px'" :class="item.icon"></i>
|
|
26
|
+
<div v-if="false" :style="'margin-top:-16px'">
|
|
27
|
+
<span class="title-menu-collapsed">{{ item.abbreviatedTitle }}</span>
|
|
28
|
+
</div>
|
|
27
29
|
</div>
|
|
28
30
|
<div class="molded-icon-open" :class="{
|
|
29
31
|
'menu-active': moduleActive === item.module
|
|
30
|
-
}" v-else @
|
|
32
|
+
}" v-else @mouseover="handleMouseOver(item.title, item.module)">
|
|
31
33
|
<b-row>
|
|
32
|
-
<b-col sm="
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
:class="{ 'rotate': titleSubMenu == item.title }"></i>
|
|
42
|
-
|
|
43
|
-
<i v-else class="fa-sharp fa-solid fa-angle-down"
|
|
44
|
-
:class="{ 'rotate-down': titleSubMenu != item.title }"></i>
|
|
45
|
-
</div>
|
|
34
|
+
<b-col sm="12">
|
|
35
|
+
<b-row>
|
|
36
|
+
<b-col sm="2">
|
|
37
|
+
<i :class="item.icon"></i>
|
|
38
|
+
</b-col>
|
|
39
|
+
<b-col sm="10">
|
|
40
|
+
<span class="title-menu">{{ item.title }} </span>
|
|
41
|
+
</b-col>
|
|
42
|
+
</b-row>
|
|
46
43
|
</b-col>
|
|
47
44
|
</b-row>
|
|
48
45
|
</div>
|
|
49
46
|
</div>
|
|
50
47
|
|
|
51
|
-
<transition name="slide-fade">
|
|
52
|
-
<div class="sub-menu" v-if="!menuCollapsed && titleSubMenu == item.title">
|
|
53
|
-
<div v-for="(item, index) in subMenuFilter(false)" :key="index">
|
|
54
|
-
<div v-if="item.title" class="sub-menu-title"
|
|
55
|
-
@click.prevent="navegateTo(item, item.module)">
|
|
56
|
-
<b-row>
|
|
57
|
-
<b-col sm="3"> <i :class="item.icon"></i></b-col>
|
|
58
|
-
<span> {{ item.title }}</span>
|
|
59
|
-
</b-row>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
</div>
|
|
63
|
-
</transition>
|
|
64
|
-
|
|
65
48
|
<transition name="slide-fade">
|
|
66
49
|
<div :ref="item.title + 'sub'" class="sub-menu-collapsed sub-menu"
|
|
67
|
-
|
|
50
|
+
:style="'margin-left:' + (menuCollapsed ? 85 : 200) + 'px'"
|
|
51
|
+
v-if="titleSubMenuCollapsed == item.title">
|
|
68
52
|
<div v-for="(item, index) in subMenuFilter(false)" :key="index">
|
|
69
53
|
<div :class="{ 'sub-menu-title-collapsed': item.title }"
|
|
70
54
|
@click.prevent="navegateTo(item, item.module)">
|
|
71
55
|
<b-row>
|
|
72
56
|
<b-col sm="2" v-if="item.title">
|
|
73
57
|
<i :class="item.icon"></i>
|
|
58
|
+
|
|
74
59
|
</b-col>
|
|
75
60
|
<b-col sm="9">
|
|
76
61
|
<div v-if="item.groupName" class="div-group">
|
|
77
62
|
{{ item.groupName }}
|
|
78
63
|
</div>
|
|
79
|
-
<span>
|
|
64
|
+
<span>
|
|
65
|
+
<span> {{ item.title }}</span>
|
|
66
|
+
<span class="div-support" v-if="item.isVisible == 'support'">
|
|
67
|
+
Suporte
|
|
68
|
+
</span>
|
|
69
|
+
</span>
|
|
80
70
|
</b-col>
|
|
81
71
|
</b-row>
|
|
82
72
|
</div>
|
|
@@ -89,7 +79,6 @@
|
|
|
89
79
|
<br>
|
|
90
80
|
</div>
|
|
91
81
|
</ScrollBar>
|
|
92
|
-
|
|
93
82
|
</div>
|
|
94
83
|
</div>
|
|
95
84
|
</template>
|
|
@@ -246,7 +235,7 @@ export default {
|
|
|
246
235
|
position: fixed;
|
|
247
236
|
top: 0;
|
|
248
237
|
left: 0;
|
|
249
|
-
width:
|
|
238
|
+
width: 200px;
|
|
250
239
|
height: 100vh;
|
|
251
240
|
border-radius: 0px 20px 0px 0px;
|
|
252
241
|
background-color: #577696;
|
|
@@ -278,7 +267,7 @@ export default {
|
|
|
278
267
|
.sidebar-header .sidebar-toggler,
|
|
279
268
|
.sidebar-menu-button {
|
|
280
269
|
position: absolute;
|
|
281
|
-
|
|
270
|
+
left: 70px;
|
|
282
271
|
height: 30px;
|
|
283
272
|
width: 30px;
|
|
284
273
|
color: #151A2D;
|
|
@@ -296,6 +285,19 @@ export default {
|
|
|
296
285
|
transform: translate(-4px, 65px);
|
|
297
286
|
}
|
|
298
287
|
|
|
288
|
+
.div-menu-toggle {
|
|
289
|
+
position: fixed;
|
|
290
|
+
font-size: 18px;
|
|
291
|
+
top: 25px;
|
|
292
|
+
width: 20px;
|
|
293
|
+
height: 20px;
|
|
294
|
+
background-color: #D98621;
|
|
295
|
+
border-radius: 50%;
|
|
296
|
+
cursor: pointer;
|
|
297
|
+
z-index: 2000;
|
|
298
|
+
transition: all 0.4s ease;
|
|
299
|
+
}
|
|
300
|
+
|
|
299
301
|
.molded-icon-open {
|
|
300
302
|
padding-left: 10px;
|
|
301
303
|
cursor: pointer;
|
|
@@ -322,16 +324,17 @@ export default {
|
|
|
322
324
|
}
|
|
323
325
|
|
|
324
326
|
.icon-menu-arrow {
|
|
325
|
-
font-size:
|
|
326
|
-
margin-top:
|
|
327
|
+
font-size: 14px;
|
|
328
|
+
margin-top: -4px;
|
|
329
|
+
margin-left: 6px;
|
|
330
|
+
color: white;
|
|
327
331
|
}
|
|
328
332
|
|
|
329
333
|
.molded-icon {
|
|
330
334
|
cursor: pointer;
|
|
331
|
-
padding: 1px;
|
|
332
335
|
color: white;
|
|
333
336
|
font-size: 18px;
|
|
334
|
-
margin:
|
|
337
|
+
margin: 13px;
|
|
335
338
|
border-radius: 10px;
|
|
336
339
|
transition: all 0.3s ease;
|
|
337
340
|
}
|
|
@@ -339,7 +342,6 @@ export default {
|
|
|
339
342
|
.molded-icon:hover {
|
|
340
343
|
background-color: white;
|
|
341
344
|
color: #2C3453;
|
|
342
|
-
margin: 10px;
|
|
343
345
|
border-radius: 10px;
|
|
344
346
|
transition: all 0.8s ease;
|
|
345
347
|
}
|
|
@@ -377,15 +379,16 @@ export default {
|
|
|
377
379
|
.sub-menu-collapsed {
|
|
378
380
|
width: 260px;
|
|
379
381
|
margin-top: -100px;
|
|
380
|
-
margin-left: 85px;
|
|
381
382
|
position: absolute;
|
|
382
383
|
border-radius: 0px 15px 15px 0px;
|
|
383
384
|
background-color: #2C3453;
|
|
385
|
+
cursor: pointer;
|
|
384
386
|
}
|
|
385
387
|
|
|
386
388
|
.sub-menu-title-collapsed {
|
|
387
389
|
padding: 10px;
|
|
388
390
|
border-radius: 8px;
|
|
391
|
+
font-size: 13px;
|
|
389
392
|
}
|
|
390
393
|
|
|
391
394
|
.sub-menu-title-collapsed:hover {
|
|
@@ -405,8 +408,11 @@ export default {
|
|
|
405
408
|
}
|
|
406
409
|
|
|
407
410
|
.title-menu {
|
|
408
|
-
font-size:
|
|
409
|
-
|
|
411
|
+
font-size: 13px;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
.title-menu-collapsed {
|
|
415
|
+
font-size: 11.5px;
|
|
410
416
|
}
|
|
411
417
|
|
|
412
418
|
.div-arrow {
|
|
@@ -438,4 +444,12 @@ export default {
|
|
|
438
444
|
margin-left: 10px;
|
|
439
445
|
padding: 5px;
|
|
440
446
|
}
|
|
447
|
+
|
|
448
|
+
.div-support {
|
|
449
|
+
background-color: #0A36DB;
|
|
450
|
+
font-size: 11px;
|
|
451
|
+
border-radius: 20px;
|
|
452
|
+
padding: 2px;
|
|
453
|
+
color: white !important;
|
|
454
|
+
}
|
|
441
455
|
</style>
|
|
@@ -9,7 +9,11 @@
|
|
|
9
9
|
</VerticalFilter>
|
|
10
10
|
</div>
|
|
11
11
|
<div class="local-container" :class="{ 'layout-small': layout == 'small' }">
|
|
12
|
-
<
|
|
12
|
+
<div v-if="!modal.open && !vodal.open" class="div-message-panel">
|
|
13
|
+
<Messages />
|
|
14
|
+
</div>
|
|
15
|
+
<br>
|
|
16
|
+
<br>
|
|
13
17
|
<div class="row">
|
|
14
18
|
<div class="col-10">
|
|
15
19
|
<div class="div-title">
|
|
@@ -94,7 +98,7 @@ export default {
|
|
|
94
98
|
},
|
|
95
99
|
computed: {
|
|
96
100
|
...mapGetters("generic", ["isLoading", "event"]),
|
|
97
|
-
...mapState("generic", ["modal", "menuCollapsed"]),
|
|
101
|
+
...mapState("generic", ["modal", "vodal", "menuCollapsed"]),
|
|
98
102
|
},
|
|
99
103
|
methods: {
|
|
100
104
|
...mapMutations("generic", ["addLoading"]),
|
|
@@ -144,7 +148,7 @@ export default {
|
|
|
144
148
|
|
|
145
149
|
.panel {
|
|
146
150
|
padding-right: 30px;
|
|
147
|
-
margin-left:
|
|
151
|
+
margin-left: 130px;
|
|
148
152
|
}
|
|
149
153
|
|
|
150
154
|
.panel.collapsed {
|
|
@@ -166,4 +170,16 @@ export default {
|
|
|
166
170
|
.div-back:hover {
|
|
167
171
|
color: #505050;
|
|
168
172
|
}
|
|
173
|
+
|
|
174
|
+
.div-message-panel {
|
|
175
|
+
width: calc(100% - 60px);
|
|
176
|
+
position: fixed;
|
|
177
|
+
top: -55px;
|
|
178
|
+
left: 30px;
|
|
179
|
+
right: 30px;
|
|
180
|
+
margin: 0;
|
|
181
|
+
z-index: 2000 !important;
|
|
182
|
+
transition: top 0.5s ease;
|
|
183
|
+
}
|
|
184
|
+
|
|
169
185
|
</style>
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
3
|
<div :class="{ 'div-message': !modal.open }" v-if="storageNotification.length > 0">
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
<div class="side-by-side
|
|
7
|
-
|
|
8
|
-
{{ notification.message }}
|
|
9
|
-
</div>
|
|
4
|
+
<Alert type="danger">
|
|
5
|
+
<div class="side-by-side" v-for="(notification, index) in storageNotification" :key="index">
|
|
6
|
+
<div class="side-by-side text">
|
|
7
|
+
{{ notification.message }}
|
|
10
8
|
</div>
|
|
11
|
-
</
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
</
|
|
9
|
+
</div>
|
|
10
|
+
<div class="progress-bar-container">
|
|
11
|
+
<div class="progress-bar" :style="{ width: progressWidth + '%' }"></div>
|
|
12
|
+
</div>
|
|
13
|
+
</Alert>
|
|
16
14
|
</div>
|
|
17
15
|
</div>
|
|
18
16
|
</template>
|
|
@@ -26,9 +24,10 @@ export default {
|
|
|
26
24
|
name: "Messages",
|
|
27
25
|
data() {
|
|
28
26
|
return {
|
|
29
|
-
maxSeconds:
|
|
30
|
-
countdown:
|
|
27
|
+
maxSeconds: 10,
|
|
28
|
+
countdown: 10,
|
|
31
29
|
storageNotification: [],
|
|
30
|
+
progressWidth: 100,
|
|
32
31
|
};
|
|
33
32
|
},
|
|
34
33
|
computed: {
|
|
@@ -38,11 +37,13 @@ export default {
|
|
|
38
37
|
notifications() {
|
|
39
38
|
if (this.notifications.length > 0) {
|
|
40
39
|
this.storageNotification = this.notifications;
|
|
41
|
-
this.countdown =
|
|
40
|
+
this.countdown = this.maxSeconds;
|
|
41
|
+
this.progressWidth = 100;
|
|
42
|
+
this.startCountdown();
|
|
42
43
|
}
|
|
43
44
|
},
|
|
44
|
-
countdown() {
|
|
45
|
-
if (
|
|
45
|
+
countdown(newCountdown) {
|
|
46
|
+
if (newCountdown === 0) {
|
|
46
47
|
this.storageNotification = [];
|
|
47
48
|
this.removeNotificarions();
|
|
48
49
|
}
|
|
@@ -50,34 +51,59 @@ export default {
|
|
|
50
51
|
},
|
|
51
52
|
methods: {
|
|
52
53
|
...mapMutations("generic", ["removeNotificarions"]),
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
|
|
55
|
+
startCountdown() {
|
|
56
|
+
this.countdownInterval = setInterval(() => {
|
|
57
|
+
if (this.countdown > 0) {
|
|
58
|
+
this.countdown--;
|
|
59
|
+
this.updateProgressBar();
|
|
60
|
+
} else {
|
|
61
|
+
clearInterval(this.countdownInterval);
|
|
62
|
+
}
|
|
63
|
+
}, 1000);
|
|
55
64
|
},
|
|
56
|
-
messages(notifications) {
|
|
57
|
-
var message = "";
|
|
58
|
-
notifications.forEach(function (notification) {
|
|
59
|
-
message += notification.message + " ";
|
|
60
|
-
});
|
|
61
65
|
|
|
62
|
-
|
|
66
|
+
updateProgressBar() {
|
|
67
|
+
// Atualiza a largura da barra de progresso
|
|
68
|
+
this.progressWidth = (this.countdown / this.maxSeconds) * 100;
|
|
63
69
|
},
|
|
64
70
|
},
|
|
65
71
|
};
|
|
66
72
|
</script>
|
|
73
|
+
|
|
67
74
|
<style scoped>
|
|
68
75
|
.div-message {
|
|
69
76
|
margin-top: 50px;
|
|
77
|
+
transition: all 0.5s ease !important;
|
|
78
|
+
z-index: 2000;
|
|
70
79
|
}
|
|
71
80
|
|
|
72
|
-
.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
.invalid {
|
|
77
|
-
color: #f0134d;
|
|
81
|
+
.side-by-side {
|
|
82
|
+
display: flex;
|
|
83
|
+
justify-content: space-between;
|
|
78
84
|
}
|
|
79
85
|
|
|
80
86
|
.text {
|
|
81
87
|
margin-right: 10px;
|
|
82
88
|
}
|
|
89
|
+
|
|
90
|
+
.progress-bar-container {
|
|
91
|
+
width: 100%;
|
|
92
|
+
height: 3px;
|
|
93
|
+
background-color: #e0e0e0;
|
|
94
|
+
border-radius: 5px;
|
|
95
|
+
margin-top: 10px;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.progress-bar {
|
|
99
|
+
height: 100%;
|
|
100
|
+
background-color: #FF0201;
|
|
101
|
+
border-radius: 50px;
|
|
102
|
+
transition: width 1s ease-out;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.div-countdown {
|
|
106
|
+
margin-top: 10px;
|
|
107
|
+
font-size: 16px;
|
|
108
|
+
}
|
|
83
109
|
</style>
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<FixedBar :position="positionFixedBar" backgroundColor="#FAFAFC"
|
|
4
4
|
v-show="formDirty && !modal.open && on || showFixed">
|
|
5
|
-
<div class="
|
|
5
|
+
<div :class="{ collapsed: menuCollapsed, notCollapsed: !menuCollapsed }"
|
|
6
|
+
:style="'margin-bottom:' + marginBottom + 'px'">
|
|
6
7
|
<Button _key="cancelSaveCancel" eventName="cancelSaveCancel" title="Cancelar" type="danger" size="small"
|
|
7
8
|
:clicked="cancel" />
|
|
8
9
|
<Button _key="saveSaveCancel" :eventName="eventName" classIcon="fa-solid fa-floppy-disk" title="Salvar"
|
|
@@ -67,7 +68,7 @@ export default {
|
|
|
67
68
|
...mapState("generic", ["loading"]),
|
|
68
69
|
...mapGetters("generic", ["event"]),
|
|
69
70
|
...mapGetters("validation", ["isFormValid"]),
|
|
70
|
-
...mapState("generic", ["modal"]),
|
|
71
|
+
...mapState("generic", ["modal", "menuCollapsed"]),
|
|
71
72
|
},
|
|
72
73
|
methods: {
|
|
73
74
|
...mapMutations("validation", ["updateFormDirty", "resetValidation"]),
|
|
@@ -86,7 +87,13 @@ export default {
|
|
|
86
87
|
};
|
|
87
88
|
</script>
|
|
88
89
|
<style scoped>
|
|
89
|
-
.
|
|
90
|
+
.collapsed {
|
|
90
91
|
margin-left: 0px;
|
|
92
|
+
transition: all 0.4s ease;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.notCollapsed {
|
|
96
|
+
margin-left: 130px;
|
|
97
|
+
transition: all 0.4s ease;
|
|
91
98
|
}
|
|
92
99
|
</style>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<div class="icon-print" v-print="'#
|
|
3
|
+
<div class="icon-print" v-print="'#printTable'">
|
|
4
4
|
<i title="Imprimir" class="fas fa-print"></i>
|
|
5
5
|
</div>
|
|
6
|
-
<table id="
|
|
6
|
+
<table id="printTable" class="table table-responsive-xs">
|
|
7
7
|
<thead>
|
|
8
8
|
<tr>
|
|
9
9
|
<th class="td-checkbox" v-if="showChecks">
|