codevdesign 0.0.1 → 0.0.3
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/composants/csqcAlerteErreur.vue +86 -0
- package/composants/csqcConfirmation.vue +74 -0
- package/composants/csqcDialogue.vue +118 -0
- package/composants/csqcOptionSwitch.vue +113 -0
- package/composants/csqcRecherche.vue +158 -0
- package/composants/csqcSnackbar.vue +99 -0
- package/composants/csqcTable/csqcTable.vue +314 -0
- package/composants/csqcTable/csqcTableExportExcel.vue +67 -0
- package/composants/csqcTable/csqcTableModaleChoixColonnes.vue +567 -0
- package/composants/csqcTiroir.vue +150 -0
- package/composants/gabarit/csqcMenu.vue +249 -0
- package/composants/gabarit/pivEntete.vue +109 -0
- package/composants/gabarit/pivPiedPage.vue +59 -0
- package/composants/gabarit/vueDefault.vue +6 -0
- package/index.ts +38 -0
- package/locales/en.json +9 -0
- package/locales/fr.json +126 -0
- package/modeles/composants/csqcMenuModele.ts +18 -0
- package/modeles/composants/snackbar.ts +18 -0
- package/modeles/intervention.ts +38 -0
- package/modeles/unite.ts +42 -0
- package/modeles/utilisateur.ts +33 -0
- package/package.json +20 -12
- package/codevdesign.css +0 -1
- package/codevdesign.js +0 -16104
- package/codevdesign.umd.cjs +0 -25
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<!-- desktop -->
|
|
3
|
+
<div v-if="!estMobile">
|
|
4
|
+
<v-toolbar
|
|
5
|
+
class="pa-0 ajouterPointeur barreMenu"
|
|
6
|
+
:border="false"
|
|
7
|
+
elevation="2"
|
|
8
|
+
>
|
|
9
|
+
<div
|
|
10
|
+
v-for="item in filtrerMenuItems"
|
|
11
|
+
:key="item.title"
|
|
12
|
+
class="pt-1"
|
|
13
|
+
>
|
|
14
|
+
<v-btn
|
|
15
|
+
variant="text"
|
|
16
|
+
v-if="doitAfficherItemMenu(item)"
|
|
17
|
+
:to="item.path"
|
|
18
|
+
:active="item.path === route"
|
|
19
|
+
:active-color="'white'"
|
|
20
|
+
>{{ item.title }}</v-btn
|
|
21
|
+
>
|
|
22
|
+
</div>
|
|
23
|
+
<v-spacer></v-spacer>
|
|
24
|
+
<!-- Sous Liste -->
|
|
25
|
+
<v-menu
|
|
26
|
+
open-on-hover
|
|
27
|
+
v-for="(item, index) in filtrerSousListe"
|
|
28
|
+
:key="index"
|
|
29
|
+
>
|
|
30
|
+
<template v-slot:activator="{ props }">
|
|
31
|
+
<v-btn
|
|
32
|
+
color="white"
|
|
33
|
+
v-bind="props"
|
|
34
|
+
:active="estActifSousliste"
|
|
35
|
+
>
|
|
36
|
+
{{ item.nom }}
|
|
37
|
+
</v-btn>
|
|
38
|
+
</template>
|
|
39
|
+
|
|
40
|
+
<v-list
|
|
41
|
+
style="background-color: #223654 !important"
|
|
42
|
+
min-width="230px"
|
|
43
|
+
>
|
|
44
|
+
<v-list-item
|
|
45
|
+
v-for="(sousitem, sousindex) in obtenirItemsSousListeSelonDroits(item.id)"
|
|
46
|
+
:key="sousindex"
|
|
47
|
+
>
|
|
48
|
+
<v-btn
|
|
49
|
+
:max-height="35"
|
|
50
|
+
width="100%"
|
|
51
|
+
class="params_item"
|
|
52
|
+
:to="sousitem.path"
|
|
53
|
+
variant="text"
|
|
54
|
+
>{{ sousitem.title }}</v-btn
|
|
55
|
+
>
|
|
56
|
+
</v-list-item>
|
|
57
|
+
</v-list>
|
|
58
|
+
</v-menu>
|
|
59
|
+
</v-toolbar>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<!-- mobile -->
|
|
63
|
+
<div v-else>
|
|
64
|
+
<v-toolbar class="pa-0 ajouterPointeur barreMenu">
|
|
65
|
+
<v-app-bar-nav-icon
|
|
66
|
+
variant="text"
|
|
67
|
+
@click.stop="menu = !menu"
|
|
68
|
+
></v-app-bar-nav-icon>
|
|
69
|
+
<v-toolbar-title
|
|
70
|
+
><label
|
|
71
|
+
class="ajouterPointeur"
|
|
72
|
+
style="color: white !important"
|
|
73
|
+
>{{ $t('menu.menu') }}</label
|
|
74
|
+
>
|
|
75
|
+
</v-toolbar-title>
|
|
76
|
+
</v-toolbar>
|
|
77
|
+
|
|
78
|
+
<v-navigation-drawer v-model="menu">
|
|
79
|
+
<v-list>
|
|
80
|
+
<div
|
|
81
|
+
v-for="item in filtrerMenuItems"
|
|
82
|
+
:key="item.title"
|
|
83
|
+
>
|
|
84
|
+
<v-list-item
|
|
85
|
+
:to="item.path"
|
|
86
|
+
:active="item.path === route"
|
|
87
|
+
:title="item.title"
|
|
88
|
+
/>
|
|
89
|
+
</div>
|
|
90
|
+
<div
|
|
91
|
+
v-for="item in filtrerSousListe"
|
|
92
|
+
:key="item.id"
|
|
93
|
+
>
|
|
94
|
+
<v-list-group :value="item.nom">
|
|
95
|
+
<template v-slot:activator="{ props }">
|
|
96
|
+
<v-list-item
|
|
97
|
+
v-bind="props"
|
|
98
|
+
:title="item.nom"
|
|
99
|
+
/>
|
|
100
|
+
</template>
|
|
101
|
+
<div
|
|
102
|
+
v-for="(sousitem, index) in obtenirItemsSousListeSelonDroits(item.id)"
|
|
103
|
+
:key="index"
|
|
104
|
+
>
|
|
105
|
+
<v-list-item
|
|
106
|
+
:title="sousitem.title"
|
|
107
|
+
:value="sousitem.title"
|
|
108
|
+
:to="sousitem.path"
|
|
109
|
+
/>
|
|
110
|
+
</div>
|
|
111
|
+
</v-list-group>
|
|
112
|
+
</div>
|
|
113
|
+
</v-list>
|
|
114
|
+
</v-navigation-drawer>
|
|
115
|
+
</div>
|
|
116
|
+
</template>
|
|
117
|
+
|
|
118
|
+
<script setup lang="ts">
|
|
119
|
+
import type { MenuItem, SousListe, SousListeItems } from '../../modeles/composants/csqcMenuModele'
|
|
120
|
+
import { ref, computed } from 'vue'
|
|
121
|
+
const props = defineProps({
|
|
122
|
+
estMobile: {
|
|
123
|
+
type: Boolean,
|
|
124
|
+
required: true,
|
|
125
|
+
},
|
|
126
|
+
route: {
|
|
127
|
+
type: String,
|
|
128
|
+
required: true,
|
|
129
|
+
},
|
|
130
|
+
menuItems: {
|
|
131
|
+
type: Array as () => MenuItem[],
|
|
132
|
+
required: true,
|
|
133
|
+
},
|
|
134
|
+
sousliste: {
|
|
135
|
+
type: Array as () => SousListe[],
|
|
136
|
+
required: false,
|
|
137
|
+
default: () => [],
|
|
138
|
+
},
|
|
139
|
+
souslisteItems: {
|
|
140
|
+
type: Array as () => SousListeItems[],
|
|
141
|
+
required: false,
|
|
142
|
+
default: () => [],
|
|
143
|
+
},
|
|
144
|
+
droitsMap: {
|
|
145
|
+
type: Object as () => Record<string, boolean>,
|
|
146
|
+
required: true,
|
|
147
|
+
default: () => ({}),
|
|
148
|
+
},
|
|
149
|
+
})
|
|
150
|
+
const menu = ref<boolean>(false)
|
|
151
|
+
|
|
152
|
+
/*const verifierDroits = (monelement: string) => {
|
|
153
|
+
return props.droitsMap[monelement] || false
|
|
154
|
+
}*/
|
|
155
|
+
|
|
156
|
+
const doitAfficherItemMenu = (item: MenuItem) => {
|
|
157
|
+
return props.droitsMap[item.droit] || false
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const filtrerMenuItems = computed(() => {
|
|
161
|
+
return props.menuItems.filter(item => props.droitsMap[item.droit])
|
|
162
|
+
})
|
|
163
|
+
|
|
164
|
+
const filtrerSousListe = computed(() => {
|
|
165
|
+
return props.sousliste.filter(item => props.droitsMap[item.droit])
|
|
166
|
+
})
|
|
167
|
+
|
|
168
|
+
const obtenirItemsSousListeSelonDroits = (monitemId: number) => {
|
|
169
|
+
return props.souslisteItems.filter(item => item.parentId === monitemId && props.droitsMap[item.droit])
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Vérifie si un item de la sous-liste est actif (route correspond à un item)
|
|
173
|
+
const estActifSousliste = computed(() => {
|
|
174
|
+
return props.souslisteItems.some(item => props.route === item.path)
|
|
175
|
+
})
|
|
176
|
+
</script>
|
|
177
|
+
<style lang="css" scoped>
|
|
178
|
+
/* desktop background de la barre de menu et hauteur */
|
|
179
|
+
.v-toolbar {
|
|
180
|
+
background-color: #223654;
|
|
181
|
+
height: 66px;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/* desktop couleur du texte de la barre, marge du haut, padding */
|
|
185
|
+
.barreMenu {
|
|
186
|
+
color: white !important;
|
|
187
|
+
padding: 0 10px 0 10px !important;
|
|
188
|
+
margin-top: 77px !important;
|
|
189
|
+
}
|
|
190
|
+
/* desktop */
|
|
191
|
+
.v-btn {
|
|
192
|
+
font-weight: 400;
|
|
193
|
+
height: 72px !important;
|
|
194
|
+
}
|
|
195
|
+
/* desktop */
|
|
196
|
+
.v-btn--active {
|
|
197
|
+
font-weight: 600 !important;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* desktop empeche le texte parametre detre trop bas */
|
|
201
|
+
.params {
|
|
202
|
+
padding-top: 5px !important;
|
|
203
|
+
}
|
|
204
|
+
/* desktop */
|
|
205
|
+
.params_item {
|
|
206
|
+
font-weight: 400;
|
|
207
|
+
color: white !important;
|
|
208
|
+
background-color: #223654 !important;
|
|
209
|
+
}
|
|
210
|
+
/* desktop */
|
|
211
|
+
.params_item.v-btn--active {
|
|
212
|
+
color: white !important;
|
|
213
|
+
font-weight: 600 !important;
|
|
214
|
+
}
|
|
215
|
+
/* desktop */
|
|
216
|
+
.params_item.v-btn--active:hover {
|
|
217
|
+
color: white !important;
|
|
218
|
+
background-color: #223654 !important;
|
|
219
|
+
}
|
|
220
|
+
/* desktop */
|
|
221
|
+
.params_item.v-btn--active:hover::before {
|
|
222
|
+
color: #ffffff80 !important;
|
|
223
|
+
}
|
|
224
|
+
/* desktop */
|
|
225
|
+
.params_item.v-btn--active::before {
|
|
226
|
+
opacity: 0.24;
|
|
227
|
+
border-radius: 0;
|
|
228
|
+
color: #ffffff80 !important;
|
|
229
|
+
margin-top: 1px !important;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/* mobile couleur du texte de la barre, marge du haut, padding */
|
|
233
|
+
.barreMenu {
|
|
234
|
+
color: white !important;
|
|
235
|
+
padding: 0 10px 0 10px !important;
|
|
236
|
+
margin-top: 65px !important;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/* mobile background de la barre de menu et hauteur */
|
|
240
|
+
.v-toolbar {
|
|
241
|
+
background-color: #223654;
|
|
242
|
+
height: 66px;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/* mobile drawer apparait sous les app bar */
|
|
246
|
+
.v-navigation-drawer {
|
|
247
|
+
top: 132px !important;
|
|
248
|
+
}
|
|
249
|
+
</style>
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-toolbar
|
|
3
|
+
color="primary"
|
|
4
|
+
height="72px"
|
|
5
|
+
elevation="0"
|
|
6
|
+
absolute
|
|
7
|
+
>
|
|
8
|
+
<v-row
|
|
9
|
+
class="pl-6 pr-6"
|
|
10
|
+
align="center"
|
|
11
|
+
no-gutters
|
|
12
|
+
>
|
|
13
|
+
<!-- Première colonne : Logo -->
|
|
14
|
+
<v-col cols="auto">
|
|
15
|
+
<a href="/">
|
|
16
|
+
<img
|
|
17
|
+
v-if="texteVide(logoUrl)"
|
|
18
|
+
src="/images/QUEBEC_blanc.svg"
|
|
19
|
+
height="72"
|
|
20
|
+
id="pivImage"
|
|
21
|
+
:alt="$t('pivFooter.logoAlt')"
|
|
22
|
+
/>
|
|
23
|
+
<img
|
|
24
|
+
v-else
|
|
25
|
+
:src="logoUrl"
|
|
26
|
+
height="72"
|
|
27
|
+
id="pivImage"
|
|
28
|
+
:alt="$t('pivFooter.logoAlt')"
|
|
29
|
+
/>
|
|
30
|
+
</a>
|
|
31
|
+
</v-col>
|
|
32
|
+
|
|
33
|
+
<!-- Colonne pour le nom de l'application (Pour le mode desktop) -->
|
|
34
|
+
<v-col
|
|
35
|
+
v-if="!estMobile"
|
|
36
|
+
class="d-flex justify-center"
|
|
37
|
+
>
|
|
38
|
+
<v-app-bar-title class="pl-12">
|
|
39
|
+
{{ $t('pivEntete.nom_application') }}
|
|
40
|
+
</v-app-bar-title>
|
|
41
|
+
</v-col>
|
|
42
|
+
|
|
43
|
+
<!-- Colonne pour le bouton de langue -->
|
|
44
|
+
<v-col class="d-none d-flex justify-end">
|
|
45
|
+
<v-btn
|
|
46
|
+
variant="text"
|
|
47
|
+
@click="enregistrerLangue()"
|
|
48
|
+
>{{ $t('pivEntete.langue') }}
|
|
49
|
+
</v-btn>
|
|
50
|
+
</v-col>
|
|
51
|
+
|
|
52
|
+
<!-- Colonne pour le nom de l'application (Pour le mode mobile) -->
|
|
53
|
+
<v-col
|
|
54
|
+
v-if="estMobile"
|
|
55
|
+
cols="12"
|
|
56
|
+
>
|
|
57
|
+
<v-app-bar-title>
|
|
58
|
+
{{ $t('pivEntete.nom_application') }}
|
|
59
|
+
</v-app-bar-title>
|
|
60
|
+
</v-col>
|
|
61
|
+
</v-row>
|
|
62
|
+
</v-toolbar>
|
|
63
|
+
</template>
|
|
64
|
+
|
|
65
|
+
<script setup lang="ts">
|
|
66
|
+
import { useLocale } from 'vuetify'
|
|
67
|
+
const { current } = useLocale()
|
|
68
|
+
const texteVide = (texte: string | undefined, retirerEspace: boolean = true): boolean => {
|
|
69
|
+
let retour = texte === undefined || texte === null || texte === ''
|
|
70
|
+
|
|
71
|
+
if (!retour && retirerEspace) {
|
|
72
|
+
const temp = texte
|
|
73
|
+
retour = temp!.replace(' ', '') === ''
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return retour
|
|
77
|
+
}
|
|
78
|
+
const props = defineProps({
|
|
79
|
+
estMobile: {
|
|
80
|
+
type: Boolean,
|
|
81
|
+
required: true,
|
|
82
|
+
},
|
|
83
|
+
urlBase: {
|
|
84
|
+
type: String,
|
|
85
|
+
required: true,
|
|
86
|
+
},
|
|
87
|
+
logoUrl: {
|
|
88
|
+
type: String,
|
|
89
|
+
default: '',
|
|
90
|
+
},
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
// Fonction pour enregistrer la langue
|
|
94
|
+
const enregistrerLangue = (): void => {
|
|
95
|
+
const langueDispo: string = current.value === 'fr' ? 'en' : 'fr'
|
|
96
|
+
const returnUrl: string = encodeURIComponent(window.location.pathname) + encodeURIComponent(window.location.hash)
|
|
97
|
+
window.location.href = `${props.urlBase}/Traducteur/SetLanguage?culture=${langueDispo}&returnUrl=${returnUrl}`
|
|
98
|
+
}
|
|
99
|
+
</script>
|
|
100
|
+
|
|
101
|
+
<style scoped>
|
|
102
|
+
.container {
|
|
103
|
+
max-width: none !important;
|
|
104
|
+
}
|
|
105
|
+
.theme--light.v-app-bar.v-toolbar.v-sheet {
|
|
106
|
+
background: #095797;
|
|
107
|
+
color: #fff;
|
|
108
|
+
}
|
|
109
|
+
</style>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
|
|
2
|
+
<script setup lang="ts">
|
|
3
|
+
import { computed } from 'vue';
|
|
4
|
+
|
|
5
|
+
const anneeEnCours = computed<number>(() => {
|
|
6
|
+
return new Date().getFullYear();
|
|
7
|
+
});
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
<template>
|
|
12
|
+
<footer>
|
|
13
|
+
<div class="footer-content">
|
|
14
|
+
<a href="https://quebec.ca">
|
|
15
|
+
<img
|
|
16
|
+
id="logoFooter"
|
|
17
|
+
alt="Gouvernement du Québec."
|
|
18
|
+
src="/images/QUEBEC_couleur.svg"
|
|
19
|
+
width="117"
|
|
20
|
+
height="35"
|
|
21
|
+
/>
|
|
22
|
+
</a>
|
|
23
|
+
<div>
|
|
24
|
+
<small>
|
|
25
|
+
<a
|
|
26
|
+
href="http://www.droitauteur.gouv.qc.ca/copyright.php"
|
|
27
|
+
target="_blank"
|
|
28
|
+
>© Gouvernement du Québec, {{anneeEnCours}} </a>
|
|
29
|
+
</small>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</footer>
|
|
33
|
+
</template>
|
|
34
|
+
|
|
35
|
+
<style scoped>
|
|
36
|
+
|
|
37
|
+
footer {
|
|
38
|
+
display: flex;
|
|
39
|
+
justify-content: center; /* Centrer horizontalement */
|
|
40
|
+
align-items: center; /* Centrer verticalement */
|
|
41
|
+
text-align: center; /* Centrer le texte à l'intérieur des éléments */
|
|
42
|
+
height: 100px; /* Ajuster la hauteur du footer */
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.footer-content {
|
|
46
|
+
display: flex;
|
|
47
|
+
flex-direction: column; /* Disposer les éléments les uns sous les autres */
|
|
48
|
+
justify-content: center; /* Centrer verticalement à l'intérieur de .footer-content */
|
|
49
|
+
align-items: center; /* Centrer horizontalement à l'intérieur de .footer-content */
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
footer a {
|
|
53
|
+
text-decoration: none; /* Supprimer le soulignement des liens */
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
footer small {
|
|
57
|
+
margin-top: 10px; /* Ajouter de l'espace entre l'image et le texte */
|
|
58
|
+
}
|
|
59
|
+
</style>
|
package/index.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import csqcAlerteErreur from './composants/csqcAlerteErreur.vue'
|
|
2
|
+
import csqcDialogue from './composants/csqcDialogue.vue'
|
|
3
|
+
import csqcOptionSwitch from './composants/csqcOptionSwitch.vue'
|
|
4
|
+
import csqcRecherche from './composants/csqcRecherche.vue'
|
|
5
|
+
import csqcSnackbar from './composants/csqcSnackbar.vue'
|
|
6
|
+
import csqcTiroir from './composants/csqcTiroir.vue'
|
|
7
|
+
import pivEntete from './composants/gabarit/pivEntete.vue'
|
|
8
|
+
import pivFooter from './composants/gabarit/pivPiedPage.vue'
|
|
9
|
+
import csqcMenu from './composants/gabarit/csqcMenu.vue'
|
|
10
|
+
import csqcConfirmation from './composants/csqcConfirmation.vue'
|
|
11
|
+
import csqcTable from './composants/csqcTable/csqcTable.vue'
|
|
12
|
+
|
|
13
|
+
import modeleUtilisateur from './modeles/utilisateur'
|
|
14
|
+
import modeleUnite from './modeles/unite'
|
|
15
|
+
import modeleIntervention from './modeles/intervention'
|
|
16
|
+
import modeleSnackbar from './modeles/composants/snackbar'
|
|
17
|
+
import csqcEn from './locales/en.json'
|
|
18
|
+
import csqcFr from './locales/fr.json'
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
csqcFr,
|
|
22
|
+
csqcEn,
|
|
23
|
+
csqcAlerteErreur,
|
|
24
|
+
csqcDialogue,
|
|
25
|
+
csqcConfirmation,
|
|
26
|
+
csqcOptionSwitch,
|
|
27
|
+
csqcRecherche,
|
|
28
|
+
csqcSnackbar,
|
|
29
|
+
csqcTable,
|
|
30
|
+
csqcTiroir,
|
|
31
|
+
csqcMenu,
|
|
32
|
+
pivFooter,
|
|
33
|
+
pivEntete,
|
|
34
|
+
modeleUtilisateur,
|
|
35
|
+
modeleUnite,
|
|
36
|
+
modeleIntervention,
|
|
37
|
+
modeleSnackbar,
|
|
38
|
+
}
|
package/locales/en.json
ADDED
package/locales/fr.json
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"csqc-composants-ui": {
|
|
3
|
+
"annuler": "Annuler",
|
|
4
|
+
"boutton": {
|
|
5
|
+
"ajouter": "Ajouter",
|
|
6
|
+
"annuler": "Annuler",
|
|
7
|
+
"ok": "Ok"
|
|
8
|
+
},
|
|
9
|
+
"label": {
|
|
10
|
+
"rechercher": "Rechercher"
|
|
11
|
+
},
|
|
12
|
+
"ok": "Ok"
|
|
13
|
+
},
|
|
14
|
+
"csqc-dialog": {
|
|
15
|
+
"annuler": "Annuler"
|
|
16
|
+
},
|
|
17
|
+
"csqc-table": {
|
|
18
|
+
"boutton": {
|
|
19
|
+
"ajouter": "Ajouter"
|
|
20
|
+
},
|
|
21
|
+
"label": {
|
|
22
|
+
"rechercher": "Rechercher",
|
|
23
|
+
"supprimerMessage": "Voulez-vous vraiment supprimer {nom}?",
|
|
24
|
+
"supprimerTitre": "Confirmation de suppression!"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"csqcAlerte": {
|
|
28
|
+
"afficherComponent": "Afficher l'alerte",
|
|
29
|
+
"emitFermer": "v-on:fermer:alerte",
|
|
30
|
+
"headline": "csqcAlerte",
|
|
31
|
+
"message": "message* (obligatoire)",
|
|
32
|
+
"messageSoutien": "messageSoutien (facultatif)"
|
|
33
|
+
},
|
|
34
|
+
"csqcConfirmation": {
|
|
35
|
+
"afficherComponent": "Afficher la confirmation",
|
|
36
|
+
"headline": "csqcConfirmation",
|
|
37
|
+
"largeur": "largeur (facultatif, défaut: 525px)",
|
|
38
|
+
"message": "message* (obligatoire)",
|
|
39
|
+
"modeAlerteParam": "modeAlerteParam (facultatif, défaut: faux)",
|
|
40
|
+
"operationEnCours": "operationEnCours (facultatif, défaut: faux)",
|
|
41
|
+
"titre": "titre (facultatif)"
|
|
42
|
+
},
|
|
43
|
+
"csqcDialogue": {
|
|
44
|
+
"afficherComponent": "Afficher le dialogue",
|
|
45
|
+
"btnAnnuler": "btnAnnuler (facultatif, défaut: vrai)",
|
|
46
|
+
"btnAnnulerTexte": "btnAnnulerTexte (facultatif, défaut: 'annuler')",
|
|
47
|
+
"btnOk": "btnOk (facultatif, défaut: vrai)",
|
|
48
|
+
"btnOkDesactiver": "btnOkDesactiver (facultatif, défaut: faux)",
|
|
49
|
+
"btnOkTexte": "btnOkTexte (facultatif, défaut: 'ok')",
|
|
50
|
+
"emitAnnuler": "v-on:annuler",
|
|
51
|
+
"emitOk": "v-on:ok",
|
|
52
|
+
"headline": "csqcDialogue",
|
|
53
|
+
"largeur": "largeur (facultatif, défaut:50vw, max-width:650)",
|
|
54
|
+
"operationEnCours": "operationEnCours",
|
|
55
|
+
"persistant": "persistant (facultatif, défaut: vrai)",
|
|
56
|
+
"titre": "titre (facultatif)"
|
|
57
|
+
},
|
|
58
|
+
"csqcOptionSwitch": {
|
|
59
|
+
"desactiver": "desactiver (facultatif, défaut: faux)",
|
|
60
|
+
"headline": "csqcOptionSwitch",
|
|
61
|
+
"modelValue": "modelValue* (v-model)",
|
|
62
|
+
"texte": "texte*",
|
|
63
|
+
"texteDetaille": "texteDetaille*",
|
|
64
|
+
"update": "v-on:update:modelValue",
|
|
65
|
+
"valeurInverse": "valeurInverse (facultatif, défaut: faux)"
|
|
66
|
+
},
|
|
67
|
+
"csqcRecherche": {
|
|
68
|
+
"afficherComponent": "Afficher le snackbar",
|
|
69
|
+
"chargement": "chargement (facultatif, défaut: faux)",
|
|
70
|
+
"desactiver": "desactiver (facultatif, défaut: faux)",
|
|
71
|
+
"headline": "csqcRecherche",
|
|
72
|
+
"labelRechercher": "rechercheTexte (facultatif, défaut: Recherche)",
|
|
73
|
+
"rechercheAvancee": "rechercheAvancee",
|
|
74
|
+
"rechercheAvanceeDefaut": "Recherche avancée",
|
|
75
|
+
"rechercheAvanceeTexte": "rechercheAvanceeTexte (facultatif, défaut: Recherche Avancée)",
|
|
76
|
+
"rechercher": "Recherche",
|
|
77
|
+
"update": "v-on:update:recherche"
|
|
78
|
+
},
|
|
79
|
+
"csqcSnackbar": {
|
|
80
|
+
"afficherComponent": "Afficher le snackbar",
|
|
81
|
+
"btnFermer": "btnFermer (facultatif, défaut: vrai)",
|
|
82
|
+
"couleur": "couleur (facultatif, défaut: success)",
|
|
83
|
+
"headline": "csqcSnackbar",
|
|
84
|
+
"message": "message *",
|
|
85
|
+
"position": "position (facultatif, défaut: en bas à gauche)",
|
|
86
|
+
"styleCss": "styleCss (facultatif)",
|
|
87
|
+
"temps": "temps (facultatif, défaut: 4000, -1 pour indéfini)",
|
|
88
|
+
"titre": "titre (facultatif)"
|
|
89
|
+
},
|
|
90
|
+
"csqcTable": {
|
|
91
|
+
"btnAjouter": "btnAjouter (facultatif, défaut: vrai)",
|
|
92
|
+
"btnAjouterTexte": "btnAjouterTexte (facultatif, défaut: ajouter)",
|
|
93
|
+
"btnModifier": "btnModifier (facultatif, défaut: vrai)",
|
|
94
|
+
"btnSupprimer": "btnSupprimer (facultatif, défaut: vrai)",
|
|
95
|
+
"chargementEnCours": "chargementEnCours (facultatif, défaut: faux)",
|
|
96
|
+
"headline": "csqcTable",
|
|
97
|
+
"items": "# items",
|
|
98
|
+
"modaleSupprimerChamp": "modaleSupprimerChamp",
|
|
99
|
+
"modaleSupprimerTexte": "modaleSupprimerTexte",
|
|
100
|
+
"modaleSupprimerTitre": "modaleSupprimerTitre",
|
|
101
|
+
"operationEnCours": "operationEnCours (facultatif, défaut: faux)",
|
|
102
|
+
"rechercheAfficher": "rechercheAfficher (facultatif, défaut: vrai)",
|
|
103
|
+
"rechercheTexte": "rechercheTexte (facultatif, défaut: recherche)"
|
|
104
|
+
},
|
|
105
|
+
"csqcTiroir": {
|
|
106
|
+
"afficherComponent": "Afficher le tiroir",
|
|
107
|
+
"btnAnnuler": "btnAnnuler (facultatif, défaut: vrai)",
|
|
108
|
+
"btnAnnulerTexte": "btnAnnulerTexte (facultatif, défaut: 'annuler')",
|
|
109
|
+
"btnOk": "btnOk (facultatif, défaut: vrai)",
|
|
110
|
+
"btnOkDesactiver": "btnOkDesactiver (facultatif, défaut: faux)",
|
|
111
|
+
"btnOkTexte": "btnOkTexte (facultatif, défaut: 'ok')",
|
|
112
|
+
"emitFermer": "v-on:fermer",
|
|
113
|
+
"emitOk": "v-on:ok",
|
|
114
|
+
"headline": "csqcTiroir",
|
|
115
|
+
"operationEnCours": "operationEnCours",
|
|
116
|
+
"persistant": "persistant (facultatif, défaut: vrai)",
|
|
117
|
+
"titre": "titre (facultatif)"
|
|
118
|
+
},
|
|
119
|
+
"pivEntete": {
|
|
120
|
+
"langue": "English",
|
|
121
|
+
"nom_application": "Codev Design"
|
|
122
|
+
},
|
|
123
|
+
"pivFooter": {
|
|
124
|
+
"logoAlt": ""
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface MenuItem {
|
|
2
|
+
title: string
|
|
3
|
+
path: string
|
|
4
|
+
droit: string
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface SousListe {
|
|
8
|
+
droit: string
|
|
9
|
+
id: number
|
|
10
|
+
nom: string
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface SousListeItems {
|
|
14
|
+
parentId: number
|
|
15
|
+
title: string
|
|
16
|
+
path: string
|
|
17
|
+
droit: string
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
class CSQCSnackbar {
|
|
2
|
+
temps?: number
|
|
3
|
+
couleur?: string
|
|
4
|
+
message: string
|
|
5
|
+
style?: string
|
|
6
|
+
titre?: string
|
|
7
|
+
|
|
8
|
+
// Constructeur de la classe
|
|
9
|
+
constructor(message: string, temps?: number, couleur?: string, style?: string, titre?: string) {
|
|
10
|
+
this.message = message
|
|
11
|
+
this.temps = temps
|
|
12
|
+
this.couleur = couleur
|
|
13
|
+
this.style = style
|
|
14
|
+
this.titre = titre
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default CSQCSnackbar
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { EtatDemandeUnite, TypeIntervenant } from '@/outils/enum'
|
|
2
|
+
|
|
3
|
+
class Intervention {
|
|
4
|
+
id: number
|
|
5
|
+
demandeId: number
|
|
6
|
+
uniteId: number
|
|
7
|
+
chaiseId?: number
|
|
8
|
+
niveauChaise?: number
|
|
9
|
+
typeIntervenant: TypeIntervenant
|
|
10
|
+
utilisateurIdAyantIntervenu?: number
|
|
11
|
+
dateIntervention?: Date
|
|
12
|
+
etat: EtatDemandeUnite
|
|
13
|
+
|
|
14
|
+
// Constructeur de la classe
|
|
15
|
+
constructor(
|
|
16
|
+
id: number,
|
|
17
|
+
demandeId: number,
|
|
18
|
+
uniteId: number,
|
|
19
|
+
typeIntervenant: TypeIntervenant,
|
|
20
|
+
etat: EtatDemandeUnite,
|
|
21
|
+
chaiseId?: number,
|
|
22
|
+
niveauChaise?: number,
|
|
23
|
+
utilisateurIdAyantIntervenu?: number,
|
|
24
|
+
dateIntervention?: Date,
|
|
25
|
+
) {
|
|
26
|
+
this.id = id
|
|
27
|
+
this.demandeId = demandeId
|
|
28
|
+
this.uniteId = uniteId
|
|
29
|
+
this.typeIntervenant = typeIntervenant
|
|
30
|
+
this.etat = etat
|
|
31
|
+
this.chaiseId = chaiseId
|
|
32
|
+
this.niveauChaise = niveauChaise
|
|
33
|
+
this.utilisateurIdAyantIntervenu = utilisateurIdAyantIntervenu
|
|
34
|
+
this.dateIntervention = dateIntervention
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default Intervention
|