FinanceEdit.vue 3.19 KB
<template>
  <template>
    <BasicDrawer
      @register="register"
      v-bind="$attrs"
      title="收入款单"
      width="30%"
      :isDetail="true"
      @ok="handleSubmit"
      :showDetailBack="false"
      okText="保存"
      showFooter
      :destroyOnClose="true"
    >
      <div>
        <BasicForm @register="registerForm" />
      </div>

      <!-- <template #titleToolbar> <a-button type="primary"> 申请编辑权限 </a-button></template> -->
      <template #appendFooter>
        <!-- <a-button type="primary" @click="onGoCheckDetail"> 申请权限</a-button> -->
      </template>
    </BasicDrawer>
  </template>
</template>
<script lang="ts" setup>
  import { BasicDrawer, useDrawerInner } from '@/components/Drawer';
  import { BasicForm, FormSchema, useForm } from '@/components/Form';
  import { defineComponent, ref, computed, unref, toRaw, reactive } from 'vue';
  import { getEmailList } from '/@/api/sys/config';
  import { updateAmount } from '@/api/project/invoice';

  const emit = defineEmits(['success']);
  const schemas: FormSchema[] = [
    // {
    //   field: 'totalPayAmount',
    //   component: 'InputNumber',
    //   labelWidth: 250,
    //   colProps: {
    //     span: 23,
    //   },
    //   label: '实际应收金额',
    // },
    {
      field: 'actualPayedAmount1',
      component: 'InputNumber',
      labelWidth: 250,
      colProps: {
        span: 23,
      },
      componentProps: () => ({
        disabled: status.value === 10,
      }),
      label: '实际应收金额1$',
    },
    {
      field: 'actualPayedAmount2',
      component: 'InputNumber',
      labelWidth: 250,
      colProps: {
        span: 23,
      },
      componentProps: () => ({
        disabled: status.value === 10,
      }),
      label: '实际应收金额2$',
    },
    {
      field: 'actualPayedAmount3',
      component: 'InputNumber',
      labelWidth: 250,
      colProps: {
        span: 23,
      },
      componentProps: () => ({
        disabled: status.value === 10,
      }),
      label: '实际应收金额3$',
    },
    {
      field: 'otherAmount',
      component: 'InputNumber',
      labelWidth: 250,
      colProps: {
        span: 23,
      },
      componentProps: () => ({
        disabled: status.value === 10,
      }),
      label: '其他费用金额$',
    },
  ];
  const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
    labelWidth: 120,
    schemas,
    layout: 'vertical',
    showActionButtonGroup: false,
    actionColOptions: {
      span: 24,
    },
  });

  const update = ref();
  const status = ref();
  const [register, { setDrawerProps, closeDrawer }] = useDrawerInner((data) => {
    // 方式1
    console.log(data, '56565dataaa');
    status.value = data.data.status;
    resetFields();
    setDrawerProps({ confirmLoading: false });
    setFieldsValue({
      ...toRaw(data.data),
    });
    update.value = data;
  });
  //完成编辑
  async function handleSubmit() {
    const values = await validate();
    const updatedValues = {
      ...values,
      id: update.value.data.id,
      bgUrl: update.value.data.bgUrl,
    };
    await updateAmount({
      ...updatedValues,
    });
    emit('success');
    closeDrawer();
  }
</script>