feat: İhaleAB'den taşınan özellikler — MCP sunucusu, RSS, haftalık brief, teklif asistanı, yeterlilik rozeti, 5 yeni kırmızı bayrak
- /mcp (JSON-RPC, ih_live_ anahtarı): search_tenders, get_tender, search_results, search_items, upcoming_deadlines - /api/feeds/tenders.rss (anahtarlı) ve /api/feeds/sonuc.rss (açık) - Haftalık brief (Pazartesi 08:00, Telegram + e-posta), /api/me/brief tercihi + önizleme, sağ panelde yaklaşan ihale tarihleri - Detayda Teklif Asistanı sekmesi: belgeye sor (atıflı), taslak denetimi, taslak üretimi (analyzeSpec zinciri) - Derin analiz belge listesi × Doküman Deposu eşleştirme rozeti - Kırmızı bayrak: kısa süre, hafta sonu tarih, geç sözleşme, kazananı gizli, DT parçalama şüphesi - Kullanım kılavuzu güncellendi Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
import React, { useState } from 'react';
|
||||
import { useApp } from '../context/AppContext';
|
||||
import { TenderDocuments } from './TenderDocuments';
|
||||
import { TeklifAsistani } from './TeklifAsistani';
|
||||
import { TeklifCetveliKalemleri } from './TeklifCetveliKalemleri';
|
||||
import {
|
||||
X, Star, Share2, Calendar, MapPin, Building2, Tag, FileText, CheckSquare,
|
||||
DollarSign, Calculator, Download, Sparkles, AlertTriangle, ShieldCheck,
|
||||
Send, Stamp, ArrowLeft, ExternalLink, Printer
|
||||
} from 'lucide-react';
|
||||
Send, Stamp, ArrowLeft, ExternalLink, Printer, PenLine } from 'lucide-react';
|
||||
import confetti from 'canvas-confetti';
|
||||
|
||||
export const TenderDetailModal = () => {
|
||||
@@ -178,6 +178,7 @@ END:VCALENDAR`;
|
||||
{ id: 'pdf_stamp', label: 'Birim Fiyat Cetveli (PDF & Kaşe)', icon: Stamp, badge: 'İnteraktif' },
|
||||
{ id: 'ai_assistant', label: 'Yapay Zeka Asistanı', icon: Sparkles, badge: '%94 Uyum' },
|
||||
{ id: 'checklist', label: 'Hazırlık Checklist', icon: CheckSquare },
|
||||
{ id: 'teklif_asistani', label: 'Teklif Asistanı', icon: PenLine, badge: 'AI' },
|
||||
].map(tab => {
|
||||
const Icon = tab.icon;
|
||||
const isActive = activeTab === tab.id;
|
||||
@@ -550,6 +551,9 @@ END:VCALENDAR`;
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Tab 5: Teklif Asistanı — belgeye sor / taslak denetimi / taslak üretimi */}
|
||||
{activeTab === 'teklif_asistani' && <TeklifAsistani tender={tender} />}
|
||||
|
||||
{/* Tab 4: Readiness Checklist */}
|
||||
{activeTab === 'checklist' && (
|
||||
<div className="bg-white p-5 rounded-xl border border-slate-200 space-y-4">
|
||||
|
||||
Reference in New Issue
Block a user