@@ -0,0 +1,108 @@
|
||||
import { useForm } from '@inertiajs/react';
|
||||
import { Panel, FormErrors, controlClass } from '@/components/procurement';
|
||||
import { Button } from '@/components/ui/button';
|
||||
|
||||
export type IntelligencePolicy = {
|
||||
revision: number;
|
||||
configured: boolean;
|
||||
procurement_brief: boolean;
|
||||
people_brief: boolean;
|
||||
};
|
||||
|
||||
export function IntelligenceSettings({
|
||||
policy,
|
||||
version,
|
||||
ready,
|
||||
}: {
|
||||
policy: IntelligencePolicy;
|
||||
version: number;
|
||||
ready: boolean;
|
||||
}) {
|
||||
const form = useForm({
|
||||
version,
|
||||
procurement_brief: policy.procurement_brief,
|
||||
people_brief: policy.people_brief,
|
||||
reason: '',
|
||||
});
|
||||
return (
|
||||
<Panel title="Inteligência e sínteses com fontes">
|
||||
<div className="space-y-4 text-sm">
|
||||
<p>
|
||||
{policy.configured
|
||||
? `Configuração da empresa · revisão ${policy.revision}.`
|
||||
: 'Configuração inicial: sínteses locais disponíveis nos dois percursos.'}
|
||||
</p>
|
||||
<p>
|
||||
Defina onde apresentar as sínteses factuais. A mudança
|
||||
aplica-se às próximas consultas e não altera processos,
|
||||
avaliações, decisões ou permissões de acesso aos documentos.
|
||||
</p>
|
||||
{!ready ? (
|
||||
<p>
|
||||
Instalação da configuração de inteligência pendente
|
||||
neste ambiente.
|
||||
</p>
|
||||
) : (
|
||||
<form
|
||||
className="space-y-4"
|
||||
onSubmit={(event) => {
|
||||
event.preventDefault();
|
||||
form.post(
|
||||
'/administracao/parametrizacao/intelligence',
|
||||
{ preserveScroll: true },
|
||||
);
|
||||
}}
|
||||
>
|
||||
<FormErrors errors={form.errors} />
|
||||
<label className="flex items-center gap-2">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={form.data.procurement_brief}
|
||||
onChange={(event) =>
|
||||
form.setData(
|
||||
'procurement_brief',
|
||||
event.target.checked,
|
||||
)
|
||||
}
|
||||
/>
|
||||
Síntese com fontes em Compras
|
||||
</label>
|
||||
<label className="flex items-center gap-2">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={form.data.people_brief}
|
||||
onChange={(event) =>
|
||||
form.setData(
|
||||
'people_brief',
|
||||
event.target.checked,
|
||||
)
|
||||
}
|
||||
/>
|
||||
Síntese com fontes em Pessoas e contratações
|
||||
</label>
|
||||
<label className="grid gap-1">
|
||||
Motivo e efeito pretendido
|
||||
<textarea
|
||||
className={controlClass}
|
||||
minLength={10}
|
||||
maxLength={4000}
|
||||
required
|
||||
value={form.data.reason}
|
||||
onChange={(event) =>
|
||||
form.setData('reason', event.target.value)
|
||||
}
|
||||
/>
|
||||
</label>
|
||||
<Button disabled={form.processing}>
|
||||
Guardar configuração das sínteses
|
||||
</Button>
|
||||
</form>
|
||||
)}
|
||||
<p>
|
||||
Sínteses factuais calculadas localmente, com fontes e sem
|
||||
envio externo de documentos.
|
||||
</p>
|
||||
</div>
|
||||
</Panel>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user