feat(web): migrate CRM screens to Ant Design Vue with central theme

Adopt ant-design-vue and a shared antdTheme for leads, pipeline, invoices, and shared form controls under strict single-page governance.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-18 19:39:59 +03:30
co-authored by Cursor
parent ab538b8304
commit 4abab55a6b
40 changed files with 7529 additions and 11795 deletions
+19 -7
View File
@@ -1084,6 +1084,7 @@ onUnmounted(() => {
.workspace {
min-width: 0;
min-height: 100dvh;
display: flex;
flex-direction: column;
position: relative;
@@ -1904,10 +1905,10 @@ onUnmounted(() => {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 1rem;
gap: 16px;
min-width: 0;
/* همان فاصله بالای سایدبار شناور (14px) */
padding: 14px 1.5rem 0.85rem;
/* هم‌تراز با پدینگ ۱۶px محتوای workspace */
padding: 16px;
position: sticky;
top: 0;
z-index: 20;
@@ -2113,18 +2114,29 @@ onUnmounted(() => {
}
.content {
padding: 0 1.5rem 1.5rem;
flex: 1 1 auto;
min-height: 0;
min-width: 0;
display: flex;
flex-direction: column;
padding: 16px;
overflow-x: clip;
}
/* ریشهٔ RouterView ارتفاع workspace را پر کند */
.content > *:first-child {
flex: 1 1 auto;
min-height: 0;
min-width: 0;
}
@media (max-width: 1280px) and (min-width: 901px) {
.content {
padding-inline: 1rem;
padding: 16px;
}
.desktop-topbar {
padding-inline: 1rem;
padding: 16px;
}
}
@@ -2253,7 +2265,7 @@ onUnmounted(() => {
}
.content {
padding: 1rem 0.85rem calc(1.25rem + var(--mobile-tabbar-h));
padding: 16px 16px calc(16px + var(--mobile-tabbar-h));
}
.notif-layer {