<script lang="ts" setup>
|
import { useModal } from '@jnpf/ui/modal';
|
|
import { buildFields } from '#/components/FormGenerator/src/helper/formUtils';
|
|
import { invoiceDetailIds } from '../../helper/ocrMap';
|
import RuleModal from './RuleModal.vue';
|
|
defineOptions({ inheritAttrs: false });
|
const props = defineProps(['activeData', 'drawingList', 'addComponents']);
|
const [registerModal, { openModal }] = useModal();
|
|
function handleOpenModal() {
|
openModal(true, { activeData: props.activeData, drawingList: props.drawingList });
|
}
|
function onRuleConfirm(data, isEdit) {
|
props.activeData.__config__.storageType = data.storageType;
|
props.activeData.__config__.transferList = data.transferList;
|
if (data.storageType == 1 && !isEdit) {
|
let hasInsertedDetails: boolean = false;
|
let children: any[] = [];
|
const list: any[] = [];
|
const invoiceDetails = {
|
tableName: 'invoiceDetail',
|
tableTitle: '发票明细',
|
isMain: false,
|
fields: [],
|
};
|
const transferList = data.transferList.filter((o) => o.formId);
|
for (const item of transferList) {
|
if (invoiceDetailIds.includes(item.id)) {
|
children.push({
|
fullName: item.fullName.replace('发票明细-', ''),
|
fieldTitle: item.fullName.replace('发票明细-', ''),
|
id: item.id,
|
formId: item.formId,
|
});
|
} else {
|
if (!hasInsertedDetails && children.length) {
|
list.push({ ...invoiceDetails, fields: [...children] });
|
hasInsertedDetails = true;
|
children = [];
|
}
|
list.push({ isMain: true, fields: [{ ...item, fieldTitle: item.fullName, fieldComponent: item.defJnpfKey }] });
|
}
|
}
|
if (children.length) list.push({ ...invoiceDetails, fields: [...children] });
|
props.addComponents(buildFields(list), false);
|
}
|
}
|
</script>
|
<template>
|
<a-form-item label="识别规则">
|
<a-button block @click="handleOpenModal">{{ props.activeData.__config__?.transferList?.length ? '编辑识别规则' : '识别规则配置' }}</a-button>
|
</a-form-item>
|
<RuleModal @register="registerModal" @confirm="onRuleConfirm" />
|
</template>
|