fix: 1.接入ai_suggestion.
2. 接入合同起草功能。
This commit is contained in:
+28
-14
@@ -336,8 +336,9 @@ export default function FilesUpload() {
|
||||
// 附件追加状态
|
||||
const [showAttachmentUpload, setShowAttachmentUpload] = useState<boolean>(false);
|
||||
const [selectedDocumentId, setSelectedDocumentId] = useState<number | null>(null);
|
||||
const [selectedDocumentName, setSelectedDocumentName] = useState<string | null>(null);
|
||||
const [attachmentFiles, setAttachmentFiles] = useState<File[]>([]);
|
||||
const [attachmentMergeMode, setAttachmentMergeMode] = useState<'overwrite' | 'new'>('overwrite');
|
||||
const [attachmentMergeMode, setAttachmentMergeMode] = useState<'overwrite' | 'new'>('new');
|
||||
const [attachmentRemark, setAttachmentRemark] = useState<string>("");
|
||||
const [attachmentUploading, setAttachmentUploading] = useState<boolean>(false);
|
||||
|
||||
@@ -887,7 +888,7 @@ export default function FilesUpload() {
|
||||
if (files.length > 0) {
|
||||
// 检查主文件类型
|
||||
const selectedDocument = queueFiles.find(doc => doc.id === selectedDocumentId);
|
||||
const isMainFileDocx = selectedDocument?.path.toLowerCase().endsWith('.docx');
|
||||
const isMainFileDocx = selectedDocument?.path?.toLowerCase().endsWith('.docx');
|
||||
|
||||
// 验证文件类型,支持PDF、Word、ZIP、RAR
|
||||
const validFiles: File[] = [];
|
||||
@@ -899,7 +900,7 @@ export default function FilesUpload() {
|
||||
const isPdf = file.type === 'application/pdf' || fileName.endsWith('.pdf');
|
||||
const isValidType =
|
||||
isPdf ||
|
||||
file.type === 'application/msword' || fileName.endsWith('.doc') ||
|
||||
// file.type === 'application/msword' || fileName.endsWith('.doc') ||
|
||||
file.type === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' || fileName.endsWith('.docx') ||
|
||||
file.type === 'application/zip' || fileName.endsWith('.zip') ||
|
||||
file.type === 'application/x-rar-compressed' || fileName.endsWith('.rar');
|
||||
@@ -973,6 +974,7 @@ export default function FilesUpload() {
|
||||
setAttachmentRemark("");
|
||||
setShowAttachmentUpload(false);
|
||||
setSelectedDocumentId(null);
|
||||
setSelectedDocumentName(null)
|
||||
|
||||
// 刷新文档列表
|
||||
await filterDocuments(documentTypeIds);
|
||||
@@ -1042,6 +1044,7 @@ export default function FilesUpload() {
|
||||
setTemplateFile(null);
|
||||
setShowTemplateUpload(false);
|
||||
setSelectedDocumentId(null);
|
||||
setSelectedDocumentName(null)
|
||||
|
||||
// 刷新文档列表
|
||||
await filterDocuments(documentTypeIds);
|
||||
@@ -2114,6 +2117,7 @@ export default function FilesUpload() {
|
||||
icon="ri-attachment-line"
|
||||
onClick={() => {
|
||||
setSelectedDocumentId(record.id);
|
||||
setSelectedDocumentName(record.name)
|
||||
setShowAttachmentUpload(true);
|
||||
}}
|
||||
className="text-xs px-2 py-1 h-7"
|
||||
@@ -2126,6 +2130,7 @@ export default function FilesUpload() {
|
||||
icon="ri-file-copy-line"
|
||||
onClick={() => {
|
||||
setSelectedDocumentId(record.id);
|
||||
setSelectedDocumentName(record.name)
|
||||
setShowTemplateUpload(true);
|
||||
}}
|
||||
className="text-xs px-2 py-1 h-7"
|
||||
@@ -2290,7 +2295,7 @@ export default function FilesUpload() {
|
||||
ref={contractMainFileRef}
|
||||
multiple={false}
|
||||
accept=".pdf,.docx"
|
||||
tipText="请上传合同主文件,格式:PDF/Word"
|
||||
tipText="请上传合同主文件,格式:.pdf/.docx"
|
||||
mainText="上传合同主文件"
|
||||
buttonText="选择主文件"
|
||||
icon="ri-file-text-line"
|
||||
@@ -2327,7 +2332,7 @@ export default function FilesUpload() {
|
||||
ref={contractAttachmentFileRef}
|
||||
multiple={false}
|
||||
accept=".pdf,.docx"
|
||||
tipText="请上传合同附件,格式:PDF/Word"
|
||||
tipText="请上传合同附件,格式:.pdf/.docx"
|
||||
mainText="上传合同附件"
|
||||
buttonText="选择附件"
|
||||
icon="ri-file-copy-line"
|
||||
@@ -2362,7 +2367,7 @@ export default function FilesUpload() {
|
||||
onFilesSelected={handleContractTemplateFilesSelected}
|
||||
multiple={false}
|
||||
accept=".pdf,.docx"
|
||||
tipText="请上传合同模板,格式:PDF/Word"
|
||||
tipText="请上传合同模板,格式:.pdf/.docx"
|
||||
mainText="上传合同模板"
|
||||
buttonText="选择模板"
|
||||
icon="ri-file-copy-line"
|
||||
@@ -2600,11 +2605,13 @@ export default function FilesUpload() {
|
||||
if (e.target === e.currentTarget) {
|
||||
setShowAttachmentUpload(false);
|
||||
setSelectedDocumentId(null);
|
||||
setSelectedDocumentName(null)
|
||||
setAttachmentFiles([]);
|
||||
setAttachmentRemark("");
|
||||
setAttachmentMergeMode('overwrite');
|
||||
}
|
||||
}}
|
||||
}
|
||||
}
|
||||
>
|
||||
<div className="bg-white rounded-lg p-6 w-full max-w-2xl mx-4 max-h-[90vh] overflow-y-auto">
|
||||
<div className="flex justify-between items-center mb-4">
|
||||
@@ -2613,6 +2620,7 @@ export default function FilesUpload() {
|
||||
onClick={() => {
|
||||
setShowAttachmentUpload(false);
|
||||
setSelectedDocumentId(null);
|
||||
setSelectedDocumentName(null)
|
||||
setAttachmentFiles([]);
|
||||
setAttachmentRemark("");
|
||||
}}
|
||||
@@ -2626,10 +2634,11 @@ export default function FilesUpload() {
|
||||
{/* 文档信息 */}
|
||||
<div className="bg-gray-50 p-3 rounded">
|
||||
<p className="text-sm text-gray-600">
|
||||
目标文档ID: <span className="font-medium">{selectedDocumentId}</span>
|
||||
{/* 目标文档ID: <span className="font-medium">{selectedDocumentId}</span> */}
|
||||
目标文档名称: <span className="font-medium">{selectedDocumentName}</span>
|
||||
</p>
|
||||
<p className="text-xs text-gray-500 mt-1">
|
||||
支持PDF、Word、ZIP、RAR格式,ZIP/RAR内仅合并其中的PDF文件
|
||||
支持.pdf、.docx、.zip、.rar格式。<i className="ri-information-2-line mr-1"></i>ZIP/RAR内需要保证文件格式一致,否则报错
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -2642,7 +2651,7 @@ export default function FilesUpload() {
|
||||
onFilesSelected={handleAttachmentFilesSelected}
|
||||
multiple={true}
|
||||
accept=".pdf,.docx,.zip,.rar"
|
||||
tipText="支持PDF、Word、ZIP、RAR格式,可多选"
|
||||
tipText="支持.pdf、.docx、.zip、.rar格式,可多选"
|
||||
mainText="选择附件文件"
|
||||
buttonText="选择文件"
|
||||
icon="ri-attachment-line"
|
||||
@@ -2652,7 +2661,7 @@ export default function FilesUpload() {
|
||||
<p className="text-sm text-green-600 mb-2">
|
||||
<i className="ri-checkbox-circle-line"></i> 已选择 {attachmentFiles.length} 个文件
|
||||
</p>
|
||||
<div className="space-y-1 max-h-32 overflow-y-auto">
|
||||
<div className="space-y-1 max-h-32 overflow-y-auto">
|
||||
{attachmentFiles.map((file, index) => (
|
||||
<div key={index} className="text-xs text-gray-600 bg-gray-50 p-2 rounded">
|
||||
<i className="ri-file-line mr-1"></i>
|
||||
@@ -2670,7 +2679,7 @@ export default function FilesUpload() {
|
||||
合并模式
|
||||
</label>
|
||||
<div className="space-y-2">
|
||||
<label className="flex items-center">
|
||||
{/* <label className="flex items-center">
|
||||
<input
|
||||
type="radio"
|
||||
name="mergeMode"
|
||||
@@ -2680,7 +2689,7 @@ export default function FilesUpload() {
|
||||
className="mr-2"
|
||||
/>
|
||||
<span className="text-sm">覆盖原文档(推荐)</span>
|
||||
</label>
|
||||
</label> */}
|
||||
<label className="flex items-center">
|
||||
<input
|
||||
type="radio"
|
||||
@@ -2716,6 +2725,7 @@ export default function FilesUpload() {
|
||||
onClick={() => {
|
||||
setShowAttachmentUpload(false);
|
||||
setSelectedDocumentId(null);
|
||||
setSelectedDocumentName(null)
|
||||
setAttachmentFiles([]);
|
||||
setAttachmentRemark("");
|
||||
}}
|
||||
@@ -2746,6 +2756,7 @@ export default function FilesUpload() {
|
||||
if (e.target === e.currentTarget) {
|
||||
setShowTemplateUpload(false);
|
||||
setSelectedDocumentId(null);
|
||||
setSelectedDocumentName(null)
|
||||
setTemplateFile(null);
|
||||
}
|
||||
}}
|
||||
@@ -2757,6 +2768,7 @@ export default function FilesUpload() {
|
||||
onClick={() => {
|
||||
setShowTemplateUpload(false);
|
||||
setSelectedDocumentId(null);
|
||||
setSelectedDocumentName(null)
|
||||
setTemplateFile(null);
|
||||
}}
|
||||
className="text-gray-400 hover:text-gray-600"
|
||||
@@ -2769,7 +2781,8 @@ export default function FilesUpload() {
|
||||
{/* 文档信息 */}
|
||||
<div className="bg-gray-50 p-3 rounded">
|
||||
<p className="text-sm text-gray-600">
|
||||
目标文档ID: <span className="font-medium">{selectedDocumentId}</span>
|
||||
{/* 目标文档ID: <span className="font-medium">{selectedDocumentId}</span> */}
|
||||
目标文档名称: <span className="font-medium">{selectedDocumentName}</span>
|
||||
</p>
|
||||
<p className="text-xs text-gray-500 mt-1">
|
||||
支持.pdf、.docx格式,用于与合同文档进行结构对比
|
||||
@@ -2810,6 +2823,7 @@ export default function FilesUpload() {
|
||||
onClick={() => {
|
||||
setShowTemplateUpload(false);
|
||||
setSelectedDocumentId(null);
|
||||
setSelectedDocumentName(null)
|
||||
setTemplateFile(null);
|
||||
}}
|
||||
disabled={templateUploading}
|
||||
|
||||
Reference in New Issue
Block a user