codevdesign 0.0.84 → 0.0.85
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/csqcEntete.vue +50 -45
- package/locales/en.json +13 -11
- package/locales/fr.json +3 -3
- package/package.json +1 -1
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<v-app-bar
|
|
3
|
-
color="
|
|
3
|
+
:color="barreCouleur"
|
|
4
4
|
class="px-0 mx-0"
|
|
5
|
-
:style="{
|
|
5
|
+
:style="{
|
|
6
|
+
position: 'sticky',
|
|
7
|
+
// variables CSS pour les couleurs dynamiques
|
|
8
|
+
'--entete-texte': texteCouleur,
|
|
9
|
+
'--entete-icone': iconeCouleur,
|
|
10
|
+
}"
|
|
6
11
|
height="82px"
|
|
7
12
|
>
|
|
8
13
|
<v-row
|
|
@@ -20,16 +25,17 @@
|
|
|
20
25
|
v-if="retour"
|
|
21
26
|
size="large"
|
|
22
27
|
start
|
|
23
|
-
color="
|
|
28
|
+
:color="iconeCouleur"
|
|
24
29
|
icon="mdi-arrow-left-thin"
|
|
25
30
|
@click="retournerMenu"
|
|
26
|
-
|
|
31
|
+
/>
|
|
32
|
+
</slot>
|
|
27
33
|
|
|
28
34
|
<div class="titre-bloc">
|
|
29
35
|
<!-- Titre -->
|
|
30
|
-
<slot name="titre"
|
|
31
|
-
|
|
32
|
-
>
|
|
36
|
+
<slot name="titre">
|
|
37
|
+
<span class="pl-3 titre-texte">{{ props.titre }}</span>
|
|
38
|
+
</slot>
|
|
33
39
|
|
|
34
40
|
<!-- État -->
|
|
35
41
|
<slot name="etat">
|
|
@@ -44,9 +50,10 @@
|
|
|
44
50
|
>
|
|
45
51
|
{{ monEtat.texte }}
|
|
46
52
|
</v-btn>
|
|
47
|
-
</span
|
|
48
|
-
>
|
|
49
|
-
|
|
53
|
+
</span>
|
|
54
|
+
</slot>
|
|
55
|
+
|
|
56
|
+
<!-- État secondaire -->
|
|
50
57
|
<slot name="etatSecondaire">
|
|
51
58
|
<span
|
|
52
59
|
v-if="monEtatSecondaire?.afficher"
|
|
@@ -59,16 +66,18 @@
|
|
|
59
66
|
>
|
|
60
67
|
{{ monEtatSecondaire.texte }}
|
|
61
68
|
</v-btn>
|
|
62
|
-
</span
|
|
63
|
-
>
|
|
69
|
+
</span>
|
|
70
|
+
</slot>
|
|
71
|
+
|
|
64
72
|
<!-- Sous-titre -->
|
|
65
|
-
<slot name="soustitre"
|
|
66
|
-
|
|
67
|
-
>
|
|
73
|
+
<slot name="soustitre">
|
|
74
|
+
<span class="pl-3 soustitre-texte">{{ props.soustitre }}</span>
|
|
75
|
+
</slot>
|
|
68
76
|
</div>
|
|
69
77
|
</v-toolbar-title>
|
|
70
78
|
</v-col>
|
|
71
79
|
</v-row>
|
|
80
|
+
|
|
72
81
|
<!-- Barre en bas -->
|
|
73
82
|
<div style="position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background-color: #808a9d" />
|
|
74
83
|
</v-app-bar>
|
|
@@ -78,7 +87,6 @@
|
|
|
78
87
|
import { useRouter } from 'vue-router'
|
|
79
88
|
import { ref, computed } from 'vue'
|
|
80
89
|
|
|
81
|
-
// Déclaration de l'interface
|
|
82
90
|
interface EnteteEtat {
|
|
83
91
|
afficher: boolean
|
|
84
92
|
couleur: string
|
|
@@ -98,61 +106,58 @@
|
|
|
98
106
|
soustitre?: string
|
|
99
107
|
retour?: string
|
|
100
108
|
etat?: EnteteEtat
|
|
109
|
+
couleur?: string // couleur de la barre (Vuetify color/hex)
|
|
110
|
+
couleurTexte?: string
|
|
111
|
+
couleurIcone?: string
|
|
101
112
|
etatSecondaire?: EnteteEtatSecondaire
|
|
102
113
|
}>()
|
|
103
114
|
|
|
104
115
|
const titreCol = ref(12)
|
|
105
116
|
|
|
106
|
-
//
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
afficher: false,
|
|
111
|
-
couleur: 'primary',
|
|
112
|
-
texte: 'test',
|
|
113
|
-
}
|
|
114
|
-
)
|
|
115
|
-
})
|
|
117
|
+
// Fallbacks (tes valeurs actuelles)
|
|
118
|
+
const barreCouleur = computed(() => props.couleur ?? 'white')
|
|
119
|
+
const texteCouleur = computed(() => props.couleurTexte ?? '#223654')
|
|
120
|
+
const iconeCouleur = computed(() => props.couleurIcone ?? 'grisMoyen') // peut être un nom de couleur Vuetify ou un hex
|
|
116
121
|
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
couleur: 'primary',
|
|
122
|
-
texte: 'test',
|
|
123
|
-
}
|
|
124
|
-
)
|
|
125
|
-
})
|
|
122
|
+
const monEtat = computed<EnteteEtat>(() => props.etat ?? { afficher: false, couleur: 'primary', texte: 'test' })
|
|
123
|
+
const monEtatSecondaire = computed<EnteteEtatSecondaire>(
|
|
124
|
+
() => props.etatSecondaire ?? { afficher: false, couleur: 'primary', texte: 'test' },
|
|
125
|
+
)
|
|
126
126
|
|
|
127
127
|
function retournerMenu() {
|
|
128
|
-
if (props.retour) {
|
|
129
|
-
router.push({ name: props.retour })
|
|
130
|
-
}
|
|
128
|
+
if (props.retour) router.push({ name: props.retour })
|
|
131
129
|
}
|
|
132
|
-
|
|
133
130
|
function controlAffichage() {
|
|
134
|
-
|
|
131
|
+
/* logique resize */
|
|
135
132
|
}
|
|
136
133
|
</script>
|
|
137
|
-
|
|
134
|
+
|
|
135
|
+
<style scoped>
|
|
138
136
|
.titre {
|
|
139
137
|
font-size: 1.85rem;
|
|
140
|
-
color: #223654;
|
|
141
138
|
font-weight: bold;
|
|
142
139
|
margin-bottom: 15px;
|
|
143
140
|
}
|
|
144
|
-
.
|
|
141
|
+
.titre-texte {
|
|
142
|
+
color: var(--entete-texte, #223654);
|
|
143
|
+
}
|
|
144
|
+
.soustitre-texte {
|
|
145
145
|
display: block;
|
|
146
146
|
font-size: 1rem;
|
|
147
|
-
color: #223654;
|
|
148
147
|
font-weight: normal;
|
|
148
|
+
color: var(--entete-texte, #223654);
|
|
149
149
|
}
|
|
150
150
|
.titre-bloc {
|
|
151
151
|
display: inline-block;
|
|
152
152
|
vertical-align: middle;
|
|
153
153
|
padding-left: 12px;
|
|
154
154
|
}
|
|
155
|
+
/* Couleur de l’icône (retour) + hover */
|
|
156
|
+
.v-icon {
|
|
157
|
+
color: var(--entete-icone, #6b7280); /* grisMoyen approx si hex */
|
|
158
|
+
}
|
|
155
159
|
.v-icon:hover {
|
|
156
|
-
|
|
160
|
+
/* tu peux garder une couleur fixe ou calculer une teinte plus foncée si besoin */
|
|
161
|
+
filter: brightness(0.85);
|
|
157
162
|
}
|
|
158
163
|
</style>
|
package/locales/en.json
CHANGED
|
@@ -31,23 +31,23 @@
|
|
|
31
31
|
"titre": "Tracking Preference"
|
|
32
32
|
},
|
|
33
33
|
"csqcEmploisEmploye": {
|
|
34
|
-
"dateDebut": "Date
|
|
35
|
-
"dateFin": "Date
|
|
36
|
-
"etat": "
|
|
37
|
-
"etatActif": "
|
|
38
|
-
"lieuPrincipal": "
|
|
39
|
-
"lieuSecondaire": "
|
|
34
|
+
"dateDebut": "Start Date",
|
|
35
|
+
"dateFin": "End Date",
|
|
36
|
+
"etat": "Status",
|
|
37
|
+
"etatActif": "Active",
|
|
38
|
+
"lieuPrincipal": "Primary Location",
|
|
39
|
+
"lieuSecondaire": "Secondary Location|Secondary Locations",
|
|
40
40
|
"principal": {
|
|
41
41
|
"libelle": "Principal",
|
|
42
|
-
"non": "
|
|
43
|
-
"oui": "
|
|
42
|
+
"non": "No",
|
|
43
|
+
"oui": "Yes"
|
|
44
44
|
},
|
|
45
|
-
"statut": "
|
|
46
|
-
"titre": "
|
|
45
|
+
"statut": "Status",
|
|
46
|
+
"titre": "Employee Jobs"
|
|
47
47
|
},
|
|
48
48
|
"csqcImportCSV": {
|
|
49
49
|
"erreur": {
|
|
50
|
-
"erreur": "
|
|
50
|
+
"erreur": "Import Error.",
|
|
51
51
|
"lectureFichier": "Error reading CSV file."
|
|
52
52
|
}
|
|
53
53
|
},
|
|
@@ -57,7 +57,9 @@
|
|
|
57
57
|
"csqcRechercheUtilisateur": {
|
|
58
58
|
"ajouterUtilisateurInfo": "You can enter here the Office 365 identifier or the employee’s payroll number. Then click on the magnifying glass. If this information is found in the payroll system, the user will be added. Note that the user must have a valid portal email address in the payroll system.",
|
|
59
59
|
"aucunEmploi": "No job found",
|
|
60
|
+
"aucunResultat": "No result found",
|
|
60
61
|
"corpsEmploi": "Job category",
|
|
62
|
+
"erreur": " An error occurred while searching for the user.",
|
|
61
63
|
"identifiantOuMatricule": "Office 365 identifier or payroll number",
|
|
62
64
|
"placeholderRechercheUtilisateur": "Search for a user",
|
|
63
65
|
"revenirRecherche": "Back to search",
|
package/locales/fr.json
CHANGED
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
"csqcRechercheUtilisateur": {
|
|
58
58
|
"ajouterUtilisateurInfo": "Vous pouvez entrer ici l’ID Office 365 ou le numéro d’employé, puis cliquer sur la loupe. Si cette information existe dans le système de paie, l’utilisateur sera ajouté. Veuillez noter que l’utilisateur doit avoir une adresse courriel valide du portail dans le système de paie.",
|
|
59
59
|
"aucunEmploi": "Aucun emploi",
|
|
60
|
+
"aucunResultat": "Aucun résultat trouvé",
|
|
60
61
|
"corpsEmploi": "Corps d'emploi",
|
|
62
|
+
"erreur": "Une erreur est survenue lors de la recherche de l'utilisateur.",
|
|
61
63
|
"identifiantOuMatricule": "identifiant Office 365 ou le matricule employé",
|
|
62
64
|
"placeholderRechercheUtilisateur": "Rechercher un utilisateur",
|
|
63
65
|
"revenirRecherche": "Retour à la recherche",
|
|
64
66
|
"utilisateurIntrouvable": "Employé introuvable",
|
|
65
|
-
"utilisateurs": "Employé"
|
|
66
|
-
"aucunResultat": "Aucun résultat trouvé",
|
|
67
|
-
"erreur": "Une erreur est survenue lors de la recherche de l'utilisateur."
|
|
67
|
+
"utilisateurs": "Employé"
|
|
68
68
|
},
|
|
69
69
|
"label": {
|
|
70
70
|
"actif": "Actif",
|