depan724 commited on
Commit
a7b5fd6
·
verified ·
1 Parent(s): 70ef28d

dans la partie nouvelle employé, il faut ajouté n° sécurité sociale, et un espage piece jointe pour charger des documents

Browse files
Files changed (1) hide show
  1. nouveau-employe.html +265 -0
nouveau-employe.html ADDED
@@ -0,0 +1,265 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fr">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Remorquage Pro - Nouvel Employé</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
10
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
11
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
12
+ <script src="https://unpkg.com/feather-icons"></script>
13
+ <style>
14
+ .sidebar {
15
+ transition: all 0.3s ease;
16
+ }
17
+ .active-menu {
18
+ background-color: #3B82F6;
19
+ color: white;
20
+ }
21
+ </style>
22
+ </head>
23
+ <body class="bg-gray-100 flex h-screen">
24
+ <!-- Sidebar -->
25
+ <div class="sidebar bg-blue-800 text-white w-64 space-y-6 py-7 px-2 absolute inset-y-0 left-0 transform -translate-x-full md:relative md:translate-x-0 transition duration-200 ease-in-out" id="sidebar">
26
+ <div class="text-white flex items-center space-x-2 px-4">
27
+ <i data-feather="truck" class="h-8 w-8"></i>
28
+ <span class="text-2xl font-extrabold">Remorquage Pro</span>
29
+ </div>
30
+ <nav>
31
+ <a href="index.html" class="py-2.5 px-4 rounded transition duration-200 flex items-center space-x-2 hover:bg-blue-700">
32
+ <i data-feather="home"></i>
33
+ <span>Dashboard</span>
34
+ </a>
35
+ <a href="clients.html" class="py-2.5 px-4 rounded transition duration-200 flex items-center space-x-2 hover:bg-blue-700">
36
+ <i data-feather="users"></i>
37
+ <span>Clients</span>
38
+ </a>
39
+ <a href="employes.html" class="py-2.5 px-4 rounded transition duration-200 flex items-center space-x-2 hover:bg-blue-700">
40
+ <i data-feather="user-check"></i>
41
+ <span>Employés</span>
42
+ </a>
43
+ <a href="vehicules.html" class="py-2.5 px-4 rounded transition duration-200 flex items-center space-x-2 hover:bg-blue-700">
44
+ <i data-feather="truck"></i>
45
+ <span>Véhicules</span>
46
+ </a>
47
+ <a href="missions.html" class="py-2.5 px-4 rounded transition duration-200 flex items-center space-x-2 hover:bg-blue-700">
48
+ <i data-feather="map-pin"></i>
49
+ <span>Missions</span>
50
+ </a>
51
+ <a href="assurances.html" class="py-2.5 px-4 rounded transition duration-200 flex items-center space-x-2 hover:bg-blue-700">
52
+ <i data-feather="shield"></i>
53
+ <span>Assurances</span>
54
+ </a>
55
+ <a href="reglements.html" class="py-2.5 px-4 rounded transition duration-200 flex items-center space-x-2 hover:bg-blue-700">
56
+ <i data-feather="credit-card"></i>
57
+ <span>Règlements</span>
58
+ </a>
59
+ <a href="rapports.html" class="py-2.5 px-4 rounded transition duration-200 flex items-center space-x-2 hover:bg-blue-700">
60
+ <i data-feather="bar-chart-2"></i>
61
+ <span>Rapports</span>
62
+ </a>
63
+ </nav>
64
+ </div>
65
+
66
+ <!-- Main Content -->
67
+ <div class="flex-1 flex flex-col overflow-hidden">
68
+ <!-- Header -->
69
+ <header class="bg-white shadow-sm">
70
+ <div class="flex items-center justify-between p-4">
71
+ <div class="flex items-center">
72
+ <button id="menu-toggle" class="text-gray-500 focus:outline-none md:hidden">
73
+ <i data-feather="menu"></i>
74
+ </button>
75
+ <h1 class="text-2xl font-semibold text-gray-800 ml-4">Nouvel Employé</h1>
76
+ </div>
77
+ <div class="flex items-center space-x-4">
78
+ <div class="relative">
79
+ <i data-feather="bell" class="text-gray-500"></i>
80
+ <span class="absolute top-0 right-0 h-2 w-2 rounded-full bg-red-500"></span>
81
+ </div>
82
+ <div class="flex items-center">
83
+ <img src="http://static.photos/people/40x40/10" alt="Profile" class="h-10 w-10 rounded-full">
84
+ <span class="ml-2 text-gray-700">Admin</span>
85
+ </div>
86
+ </div>
87
+ </div>
88
+ </header>
89
+
90
+ <!-- Content -->
91
+ <main class="flex-1 overflow-y-auto p-6 bg-gray-100">
92
+ <div class="max-w-3xl mx-auto bg-white rounded-lg shadow p-8" data-aos="fade-up">
93
+ <h2 class="text-xl font-semibold text-gray-800 mb-6">Informations de l'employé</h2>
94
+ <form class="space-y-6">
95
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
96
+ <div>
97
+ <label class="block text-sm font-medium text-gray-700 mb-1">Nom</label>
98
+ <input type="text" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
99
+ </div>
100
+ <div>
101
+ <label class="block text-sm font-medium text-gray-700 mb-1">Prénom</label>
102
+ <input type="text" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
103
+ </div>
104
+ <div>
105
+ <label class="block text-sm font-medium text-gray-700 mb-1">Numéro de Sécurité Sociale</label>
106
+ <input type="text" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent" placeholder="1 85 06 75 115 007 36">
107
+ </div>
108
+ <div>
109
+ <label class="block text-sm font-medium text-gray-700 mb-1">N° Carte Vitale</label>
110
+ <input type="text" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent" placeholder="1234567890123">
111
+ </div>
112
+ </div>
113
+
114
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
115
+ <div>
116
+ <label class="block text-sm font-medium text-gray-700 mb-1">Email</label>
117
+ <input type="email" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
118
+ </div>
119
+ <div>
120
+ <label class="block text-sm font-medium text-gray-700 mb-1">Téléphone</label>
121
+ <input type="tel" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
122
+ </div>
123
+ </div>
124
+
125
+ <div>
126
+ <label class="block text-sm font-medium text-gray-700 mb-1">Adresse</label>
127
+ <input type="text" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
128
+ </div>
129
+
130
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
131
+ <div>
132
+ <label class="block text-sm font-medium text-gray-700 mb-1">Code Postal</label>
133
+ <input type="text" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
134
+ </div>
135
+ <div>
136
+ <label class="block text-sm font-medium text-gray-700 mb-1">Ville</label>
137
+ <input type="text" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
138
+ </div>
139
+ <div>
140
+ <label class="block text-sm font-medium text-gray-700 mb-1">Pays</label>
141
+ <select class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
142
+ <option value="FR" selected>France</option>
143
+ <option value="DE">Allemagne</option>
144
+ <option value="BE">Belgique</option>
145
+ <option value="other">Autre</option>
146
+ </select>
147
+ </div>
148
+ </div>
149
+
150
+ <!-- Pièces jointes -->
151
+ <div>
152
+ <label class="block text-sm font-medium text-gray-700 mb-2">Documents obligatoires (CV, Contrat, Carte Vitale, Documents d'identité)</label>
153
+ <div class="mt-1 flex justify-center px-6 pt-5 pb-6 border-2 border-gray-300 border-dashed rounded-lg">
154
+ <div class="space-y-1 text-center">
155
+ <svg class="mx-auto h-12 w-12 text-gray-400" stroke="currentColor" fill="none" viewBox="0 0 48 48" aria-hidden="true">
156
+ <path d="M28 8H12a4 4 0 00-4 4v20m32-12v8m0 0v8a4 4 0 01-4 4H12a4 4 0 01-4-4v-4m32-4l-3.172-3.172a4 4 0 00-5.656 0L28 28M8 32l9.172-9.172a4 4 0 015.656 0L28 28m0 0l4 4m4-24h8m-4-4v8m-12 4h.02" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
157
+ </svg>
158
+ <div class="flex text-sm text-gray-600">
159
+ <label for="file-upload" class="relative cursor-pointer bg-white rounded-md font-medium text-blue-600 hover:text-blue-500 focus-within:outline-none">
160
+ <span>Uploader un fichier</span>
161
+ <input id="file-upload" name="file-upload" type="file" class="sr-only" multiple>
162
+ </label>
163
+ <p class="pl-1">ou glisser-déposer</p>
164
+ </div>
165
+ <p class="text-xs text-gray-500">
166
+ PNG, JPG, PDF, DOCX jusqu'à 10MB
167
+ </p>
168
+ </div>
169
+ </div>
170
+ <div id="file-list" class="mt-2 grid grid-cols-3 gap-4"></div>
171
+ </div>
172
+
173
+ <div>
174
+ <label class="block text-sm font-medium text-gray-700 mb-1">Informations complémentaires</label>
175
+ <textarea rows="3" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"></textarea>
176
+ </div>
177
+
178
+ <div class="flex justify-end space-x-4 pt-4">
179
+ <a href="employes.html" class="px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition duration-200">
180
+ Annuler
181
+ </a>
182
+ <button type="submit" class="px-6 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition duration-200">
183
+ Enregistrer l'employé
184
+ </button>
185
+ </div>
186
+ </form>
187
+ </div>
188
+ </main>
189
+ </div>
190
+
191
+ <script>
192
+ // Toggle sidebar on mobile
193
+ document.getElementById('menu-toggle').addEventListener('click', function() {
194
+ document.getElementById('sidebar').classList.toggle('-translate-x-full');
195
+ });
196
+
197
+ // Gestion des pièces jointes
198
+ const fileInput = document.getElementById('file-upload');
199
+ const fileList = document.getElementById('file-list');
200
+
201
+ fileInput.addEventListener('change', function(e) {
202
+ fileList.innerHTML = '';
203
+
204
+ for (const file of e.target.files) {
205
+ const fileItem = document.createElement('div');
206
+ fileItem.className = 'flex items-center p-2 border rounded-lg';
207
+
208
+ const fileIcon = document.createElement('div');
209
+ fileIcon.className = 'flex-shrink-0 mr-3';
210
+
211
+ let iconClass = 'text-gray-400';
212
+ if (file.type.includes('image')) {
213
+ iconClass = 'text-blue-400';
214
+ } else if (file.type.includes('pdf')) {
215
+ iconClass = 'text-red-400';
216
+ }
217
+
218
+ fileIcon.innerHTML = `<i data-feather="file" class="h-5 w-5 ${iconClass}"></i>`;
219
+
220
+ const fileInfo = document.createElement('div');
221
+ fileInfo.className = 'flex-1 min-w-0';
222
+ fileInfo.innerHTML = `
223
+ <p class="text-sm font-medium text-gray-900 truncate">${file.name}</p>
224
+ <p class="text-xs text-gray-500">${(file.size / 1024 / 1024).toFixed(2)} MB</p>
225
+ `;
226
+
227
+ const removeBtn = document.createElement('button');
228
+ removeBtn.className = 'ml-2 text-red-500 hover:text-red-700';
229
+ removeBtn.innerHTML = '<i data-feather="x" class="h-4 w-4"></i>';
230
+ removeBtn.onclick = () => {
231
+ fileItem.remove();
232
+ };
233
+
234
+ fileItem.appendChild(fileIcon);
235
+ fileItem.appendChild(fileInfo);
236
+ fileItem.appendChild(removeBtn);
237
+ fileList.appendChild(fileItem);
238
+ }
239
+
240
+ feather.replace();
241
+ });
242
+
243
+ // Gestion du drag and drop
244
+ const dropZone = fileInput.closest('div');
245
+
246
+ dropZone.addEventListener('dragover', (e) => {
247
+ e.preventDefault();
248
+ dropZone.classList.add('border-blue-500');
249
+ });
250
+
251
+ dropZone.addEventListener('dragleave', () => {
252
+ dropZone.classList.remove('border-blue-500');
253
+ });
254
+
255
+ dropZone.addEventListener('drop', (e) => {
256
+ e.preventDefault();
257
+ dropZone.classList.remove('border-blue-500');
258
+ fileInput.files = e.dataTransfer.files;
259
+ fileInput.dispatchEvent(new Event('change'));
260
+ });
261
+ </script>
262
+ <script>AOS.init();</script>
263
+ <script>feather.replace();</script>
264
+ </body>
265
+ </html>