feat(9-mejoras): limpieza leads + admin CRUD + calendario + CRM360 FRASA

1. Leads limpiados (207 eliminados, 18 apartados conservados)
2. Round-robin desactivado (config round_robin_habilitado=false)
3. Admin puede borrar/reasignar/mover leads (DELETE/PATCH/POST)
4. Calendario: fechaCita guardada y pasada correctamente
5. Avisos Monday eliminados (BannerModoLocal, ChipPendienteSync, vinculación)
6. Contactos filtrados por usuario asignado
7. Modal bitácora: notas persisten entre fases
8. Fases oportunidades: Agendo→Afluencia→Cotizar→Aparto
9. Toast de nota eliminado en cambios de status
10. Branding: CRM360 FRASA + logo en todas las apps
11. 7 apps construidas
This commit is contained in:
2026-09-10 07:05:40 +00:00
parent 356bf46216
commit 16cacd5f31
43 changed files with 246 additions and 190 deletions

View File

@@ -3,7 +3,6 @@ import { MODULOS, esModuloVisible } from './data/modulos'
import { Navbar } from './components/Navbar'
import { TarjetaModulo } from './components/TarjetaModulo'
import { ConfiguracionCuenta } from './components/ConfiguracionCuenta'
import BannerModoLocal from './components/BannerModoLocal'
import { VistaContactos } from './components/VistaContactos'
import { ConfigPage } from './components/config/ConfigPage'
import { CapturaPage } from './pages/CapturaPage'
@@ -49,7 +48,7 @@ export default function App() {
return (
<div className="flex min-h-screen flex-col">
<Navbar usuario={usuario} onConfiguraciones={() => setVista('configuraciones')} />
<BannerModoLocal />
<VistaContactos onVolver={() => setVista('home')} />
</div>
)
@@ -59,7 +58,7 @@ export default function App() {
return (
<div className="flex min-h-screen flex-col">
<Navbar usuario={usuario} onConfiguraciones={() => setVista('configuraciones')} />
<BannerModoLocal />
<CapturaPage onVolver={() => setVista('home')} />
</div>
)
@@ -69,7 +68,7 @@ export default function App() {
return (
<div className="flex min-h-screen flex-col">
<Navbar usuario={usuario} onConfiguraciones={() => setVista('configuraciones')} />
<BannerModoLocal />
<ClientesMaestroPage onVolver={() => setVista('home')} />
</div>
)
@@ -79,7 +78,7 @@ export default function App() {
return (
<div className="flex min-h-screen flex-col">
<Navbar usuario={usuario} onConfiguraciones={() => setVista('configuraciones')} />
<BannerModoLocal />
<ConfigPage onVolver={() => setVista('home')} />
</div>
)
@@ -88,7 +87,6 @@ export default function App() {
return (
<div className="flex min-h-screen flex-col">
<Navbar usuario={usuario} onConfiguraciones={() => setVista('configuraciones')} />
<BannerModoLocal />
<main className="w-full flex-1 px-4 sm:px-6 lg:px-8">
<section aria-labelledby="titulo-hero" className="py-12 sm:py-16">
@@ -99,7 +97,7 @@ export default function App() {
Ecosistema comercial
</h1>
<p className="mt-3 max-w-2xl text-sm leading-relaxed text-[#64748B] dark:text-[#94A3B8] sm:text-base">
Las herramientas del equipo comercial de Frasa Desarrollos en un solo lugar:
Las herramientas del equipo comercial de CRM360 FRASA en un solo lugar:
cotizaciones, alta de clientes, cobranza, tableros y asistente IA.
</p>
</section>
@@ -131,7 +129,7 @@ export default function App() {
<footer className="mt-16 border-t border-[#E5E7EB] dark:border-[#1E293B]">
<div className="px-6 py-8 sm:px-6 lg:px-8">
<p className="text-xs text-[#64748B] dark:text-[#94A3B8]">Consult (AS) Technology</p>
<p className="text-xs text-[#64748B] dark:text-[#94A3B8]">CRM360 FRASA &middot; Consult (AS) Technology</p>
</div>
</footer>
</div>