gaoluyang
4 天以前 1b0f06d2a2fc71e21bbe22a6cfbd2ea45e91b800
fix(erp): 来票表单采购订单分摊表移到基本信息下方,按填写顺序排列

Co-Authored-By: Claude Code <noreply@anthropic.com>
已修改1个文件
62 ■■■■■ 文件已修改
src/views/erp/purchase/invoice/data.ts 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/erp/purchase/invoice/data.ts
@@ -46,37 +46,6 @@
      },
    },
    {
      fieldName: 'orderAllocations',
      label: '采购订单',
      component: markRaw(OrderAllocationField),
      formItemClass: 'md:col-span-2',
      dependencies: {
        triggerFields: ['id', 'price'],
        componentProps: (values, form) => ({
          invoicePrice: values.price,
          // 编辑时把本张来票已分摊的金额退回订单,重新选择订单时未开票金额按其他来票计算
          invoiceId: values.id ? Number(values.id) : undefined,
          disabled: formType?.value === 'detail',
          // 分摊行变化:带出供应商名称(同一供应商)与未开票金额合计
          onChange: (rows: Array<Record<string, any>>) => {
            const supplierNames = [
              ...new Set(
                rows
                  .map((row) => row.supplierName)
                  .filter((name): name is string => !!name),
              ),
            ];
            form.setFieldValue('supplierName', supplierNames.join('、'));
            if (orderRemainInvoicePrice) {
              orderRemainInvoicePrice.value = round2(
                rows.reduce((sum, row) => sum + Number(row.remainPrice ?? 0), 0),
              );
            }
          },
        }),
      },
    },
    {
      fieldName: 'supplierName',
      label: '供应商',
      component: 'Input',
@@ -154,6 +123,37 @@
      },
    },
    {
      fieldName: 'orderAllocations',
      label: '采购订单',
      component: markRaw(OrderAllocationField),
      formItemClass: 'md:col-span-2',
      dependencies: {
        triggerFields: ['id', 'price'],
        componentProps: (values, form) => ({
          invoicePrice: values.price,
          // 编辑时把本张来票已分摊的金额退回订单,重新选择订单时未开票金额按其他来票计算
          invoiceId: values.id ? Number(values.id) : undefined,
          disabled: formType?.value === 'detail',
          // 分摊行变化:带出供应商名称(同一供应商)与未开票金额合计
          onChange: (rows: Array<Record<string, any>>) => {
            const supplierNames = [
              ...new Set(
                rows
                  .map((row) => row.supplierName)
                  .filter((name): name is string => !!name),
              ),
            ];
            form.setFieldValue('supplierName', supplierNames.join('、'));
            if (orderRemainInvoicePrice) {
              orderRemainInvoicePrice.value = round2(
                rows.reduce((sum, row) => sum + Number(row.remainPrice ?? 0), 0),
              );
            }
          },
        }),
      },
    },
    {
      fieldName: 'blobIds',
      label: '发票附件',
      component: 'FileUpload',