|
|
@ -126,36 +126,6 @@ |
|
|
|
</Button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 高级设置内容区域 --> |
|
|
|
<div class="advanced-settings-content"> |
|
|
|
<!-- 选择合同审查组件 --> |
|
|
|
<div class="section review-components-section"> |
|
|
|
<div class="section-header"> |
|
|
|
<BarsOutlined class="section-icon" /> |
|
|
|
<h3 class="section-title">选择合同审查组件</h3> |
|
|
|
</div> |
|
|
|
<p class="section-description">系统将根据审查清单中的具体审查要求及参考资料审查合同。</p> |
|
|
|
|
|
|
|
<div class="review-components"> |
|
|
|
<div |
|
|
|
class="review-component-card" |
|
|
|
v-for="component in reviewComponents" |
|
|
|
:key="component.id" |
|
|
|
:class="{ active: component.selected }" |
|
|
|
@click="toggleReviewComponent(component.id)" |
|
|
|
> |
|
|
|
<CheckCircleFilled class="check-icon" v-if="component.selected" /> |
|
|
|
<div class="component-icon"> |
|
|
|
<SafetyCertificateOutlined v-if="component.icon === 'SafetyCertificateOutlined'" /> |
|
|
|
<FileTextOutlined v-if="component.icon === 'FileTextOutlined'" /> |
|
|
|
</div> |
|
|
|
<h4 class="component-title">{{ component.name }}</h4> |
|
|
|
<p class="component-desc">{{ component.description }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</BasicModal> |
|
|
@ -167,12 +137,9 @@ |
|
|
|
import { Button, Switch, Input, Select } from 'ant-design-vue'; |
|
|
|
import { |
|
|
|
LoadingOutlined, |
|
|
|
CheckCircleFilled, |
|
|
|
PlusOutlined, |
|
|
|
BarsOutlined, |
|
|
|
SafetyCertificateOutlined, |
|
|
|
FileTextOutlined, |
|
|
|
RobotOutlined |
|
|
|
RobotOutlined, |
|
|
|
FileTextOutlined |
|
|
|
} from '@ant-design/icons-vue'; |
|
|
|
import { message } from 'ant-design-vue'; |
|
|
|
import { AnalyzeContract } from '@/api/contractReview/ContractualTasks'; |
|
|
@ -206,24 +173,6 @@ |
|
|
|
const checklistGroups = ref<any[]>([]); |
|
|
|
const selectedGroupId = ref<string>('ai'); // 默认选中AI自动生成 |
|
|
|
|
|
|
|
// 审查组件选中状态 (默认都选中) |
|
|
|
const reviewComponents = ref([ |
|
|
|
{ |
|
|
|
id: 'textSymbol', |
|
|
|
name: '文本检查', |
|
|
|
icon: 'SafetyCertificateOutlined', |
|
|
|
selected: true, |
|
|
|
description: '分析合同内容中是否存在未使用法言法语、过于开放性描述、指代不明确、表述存在歧义、前后不统一、表述不规范等风险。' |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: 'mainBody', |
|
|
|
name: '主体审查', |
|
|
|
icon: 'FileTextOutlined', |
|
|
|
selected: true, |
|
|
|
description: '调取合同相对方的信息,分析相关主体的资信能力以及是否具备合同签署的资质或许可。' |
|
|
|
} |
|
|
|
]); |
|
|
|
|
|
|
|
// 加载审查清单 |
|
|
|
const loadChecklists = async () => { |
|
|
|
loading.value = true; |
|
|
@ -262,11 +211,6 @@ |
|
|
|
analyzing.value = true; |
|
|
|
selectedPosition.value = ''; |
|
|
|
|
|
|
|
// 重置审查组件为默认选中状态 |
|
|
|
reviewComponents.value.forEach(component => { |
|
|
|
component.selected = true; |
|
|
|
}); |
|
|
|
|
|
|
|
console.log('Modal opened with data:', data); |
|
|
|
|
|
|
|
// 只有当弹窗打开后,才开始分析合同文档 |
|
|
@ -316,14 +260,6 @@ |
|
|
|
selectedPosition.value = position; |
|
|
|
} |
|
|
|
|
|
|
|
// 切换审查组件选中状态 |
|
|
|
function toggleReviewComponent(componentId: string) { |
|
|
|
const component = reviewComponents.value.find(item => item.id === componentId); |
|
|
|
if (component) { |
|
|
|
component.selected = !component.selected; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 取消按钮处理 |
|
|
|
function handleCancel() { |
|
|
|
closeModal(); |
|
|
@ -339,18 +275,10 @@ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 检查是否至少选择了一个审查组件 |
|
|
|
const hasSelectedComponent = reviewComponents.value.some(component => component.selected); |
|
|
|
if (!hasSelectedComponent) { |
|
|
|
message.warning('请至少选择一个合同审查组件'); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 关闭弹窗,触发成功事件 |
|
|
|
closeModal(); |
|
|
|
emit('success', { |
|
|
|
position: selectedPosition.value, |
|
|
|
reviewComponents: reviewComponents.value.filter(item => item.selected).map(item => item.id), |
|
|
|
// 可以添加其他需要传递的数据 |
|
|
|
}); |
|
|
|
} |
|
|
|