- Added UserManagement.vue component for managing users with PrimeVue DataTable. - Integrated API endpoints for user CRUD operations in the backend. - Implemented user password hashing using a custom state processor. - Updated router to include user management route with admin access control. - Enhanced Dashboard.vue and app.scss for improved styling and responsiveness. - Documented user management features and API usage in USER-CRUD.md.
145 lines
2.2 KiB
SCSS
145 lines
2.2 KiB
SCSS
/* Global styles for myCRM */
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
background: #f9fafb;
|
|
color: #1f2937;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
#app {
|
|
width: 100%;
|
|
min-height: 100vh;
|
|
}
|
|
|
|
/* PrimeVue Component Styling Fixes */
|
|
.p-card {
|
|
background: white;
|
|
border-radius: 8px;
|
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
|
|
.p-card-title {
|
|
color: #1f2937;
|
|
font-weight: 600;
|
|
font-size: 1rem;
|
|
|
|
@media (min-width: 768px) {
|
|
font-size: 1.125rem;
|
|
}
|
|
}
|
|
|
|
.p-card-content {
|
|
color: #4b5563;
|
|
font-size: 0.875rem;
|
|
|
|
@media (min-width: 768px) {
|
|
font-size: 1rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
.p-datatable {
|
|
.p-datatable-header {
|
|
background: white;
|
|
border: 1px solid #e5e7eb;
|
|
}
|
|
|
|
.p-datatable-thead > tr > th {
|
|
background: #f9fafb;
|
|
color: #374151;
|
|
border: 1px solid #e5e7eb;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.p-datatable-tbody > tr {
|
|
background: white;
|
|
color: #1f2937;
|
|
|
|
&:hover {
|
|
background: #f9fafb;
|
|
}
|
|
|
|
> td {
|
|
border: 1px solid #e5e7eb;
|
|
}
|
|
}
|
|
}
|
|
|
|
.p-button {
|
|
&.p-button-info {
|
|
background: #3b82f6;
|
|
border-color: #3b82f6;
|
|
|
|
&:hover {
|
|
background: #2563eb;
|
|
border-color: #2563eb;
|
|
}
|
|
}
|
|
|
|
&.p-button-danger {
|
|
background: #ef4444;
|
|
border-color: #ef4444;
|
|
|
|
&:hover {
|
|
background: #dc2626;
|
|
border-color: #dc2626;
|
|
}
|
|
}
|
|
}
|
|
|
|
.p-dialog {
|
|
.p-dialog-header {
|
|
background: white;
|
|
color: #1f2937;
|
|
}
|
|
|
|
.p-dialog-content {
|
|
background: white;
|
|
color: #1f2937;
|
|
}
|
|
}
|
|
|
|
.p-inputtext {
|
|
background: white;
|
|
color: #1f2937;
|
|
border: 1px solid #d1d5db;
|
|
|
|
&:enabled:focus {
|
|
border-color: #3b82f6;
|
|
box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25);
|
|
}
|
|
}
|
|
|
|
.p-checkbox {
|
|
.p-checkbox-box {
|
|
background: white;
|
|
border: 1px solid #d1d5db;
|
|
|
|
&.p-highlight {
|
|
background: #3b82f6;
|
|
border-color: #3b82f6;
|
|
}
|
|
}
|
|
}
|
|
|
|
.p-tag {
|
|
&.p-tag-success {
|
|
background: #10b981;
|
|
}
|
|
|
|
&.p-tag-danger {
|
|
background: #ef4444;
|
|
}
|
|
|
|
&.p-tag-info {
|
|
background: #3b82f6;
|
|
}
|
|
}
|