刘光辉
9 小时以前 0dfe84494048ce27ba8449831782128412d3eb13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<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>