DrawerCreate.vue 5.06 KB
<template>
  <BasicDrawer
    v-cloakv-bind="$attrs"
    @register="register"
    title="新增邮件发送"
    width="35%"
    showFooter
    @ok="handleSubmit"
    ref="formRef"
    okText="保存"
    :destroyOnClose="true"
    :isDetail="true"
    :showDetailBack="false"
    :mask="false"
    class="z-20"
  >
    <div>
      <BasicForm @register="registerForm" />
    </div>
    <!-- <div>客户编码</div>
    <textarea></textarea> -->
  </BasicDrawer>
</template>
<script lang="ts" setup>
  import { BasicDrawer, useDrawerInner } from '@/components/Drawer';
  import { BasicForm, FormSchema, useForm } from '@/components/Form';
  import { defineComponent, ref, computed, unref, toRaw } from 'vue';
  import { useOrderInfo } from '/@/hooks/component/order';
  import { useOrderStoreWithOut } from '/@/store/modules/order';

  const orderStore = useOrderStoreWithOut();
  const { customerCode: customerCodeOptions } = useOrderInfo(orderStore);
  const emit = defineEmits(['success2']);
  // const isUpdate = ref(true);
  const schemas: FormSchema[] = [
    {
      field: 'settingValue',
      component: 'Select',
      label: '客户编码',
      componentProps: {
        options: customerCodeOptions,
      },
      colProps: {
        span: 23,
      },
      defaultValue: '',
    },
    {
      field: 'createTime',
      component: 'InputTextArea',
      labelWidth: 250,
      colProps: {
        span: 23,
      },
      label: '确认样品确认状态(填写邮箱)',
    },
    // {
    //   field: 'id',
    //   component: 'Select',
    //   label: '客户编码',
    //   colProps: {
    //     span: 23,
    //   },
    //   defaultValue: '',
    //   rules: [{ required: true }],
    // },
    // {
    //   field: 'event',
    //   component: 'InputTextArea',
    //   labelWidth: 250,
    //   colProps: {
    //     span: 23,
    //   },
    //   label: '确认样品确认状态(填写邮箱)',
    //   rules: [{ required: true }],
    // },
    // {
    //   field: 'event2',
    //   component: 'InputTextArea',
    //   labelWidth: 250,
    //   colProps: {
    //     span: 23,
    //   },
    //   label: '其他需求样品发送时间(填写邮箱)',
    //   rules: [{ required: true }],
    // },
    // {
    //   field: 'event3',
    //   component: 'InputTextArea',
    //   labelWidth: 250,
    //   colProps: {
    //     span: 23,
    //   },
    //   label: '大货样确认意见(填写邮箱)',
    //   rules: [{ required: true }],
    // },
    // {
    //   field: 'event4',
    //   component: 'InputTextArea',
    //   labelWidth: 250,
    //   colProps: {
    //     span: 23,
    //   },
    //   label: 'AITEX/SGS测试状态(填写邮箱)',
    //   rules: [{ required: true }],
    // },
    // {
    //   field: 'event5',
    //   component: 'InputTextArea',
    //   labelWidth: 250,
    //   colProps: {
    //     span: 23,
    //   },
    //   label: '要求包装到货日期(填写邮箱)',
    //   rules: [{ required: true }],
    // },
    // {
    //   field: 'event6',
    //   component: 'InputTextArea',
    //   labelWidth: 250,
    //   colProps: {
    //     span: 23,
    //   },
    //   label: '最晚订舱时间(填写邮箱)',
    //   rules: [{ required: true }],
    // },
    // {
    //   field: 'event7',
    //   component: 'InputTextArea',
    //   labelWidth: 250,
    //   colProps: {
    //     span: 23,
    //   },
    //   label: '尾期验货日期(填写邮箱)',
    //   rules: [{ required: true }],
    // },
    // {
    //   field: 'event8',
    //   component: 'InputTextArea',
    //   labelWidth: 250,
    //   colProps: {
    //     span: 23,
    //   },
    //   label: '中期验货报告(填写邮箱)',
    //   rules: [{ required: true }],
    // },
    // {
    //   field: 'event9',
    //   component: 'InputTextArea',
    //   labelWidth: 250,
    //   colProps: {
    //     span: 23,
    //   },
    //   label: '尾期验货报告(填写邮箱)',
    //   rules: [{ required: true }],
    // },
  ];
  const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
    labelWidth: 120,
    schemas,
    layout: 'vertical',
    showActionButtonGroup: false,
    actionColOptions: {
      span: 24,
    },
  });
  const [register, { setDrawerProps, closeDrawer }] = useDrawerInner((data) => {
    // 方式1
    resetFields();
    setDrawerProps({ confirmLoading: false });
    console.log(data.data, 666);
    // setFieldsValue({
    //   // ...toRaw(data.data),
    //   settingValue: 'customerCode',
    // });
  });
  function replaceChineseCommas(text: string): string {
    // 使用正则表达式替换中文逗号
    const replacedText = text.replace(/,/g, ',');
    return replacedText;
  }
  async function handleSubmit() {
    try {
      const values = await validate();
      console.log(values, 555, 666);
      values.createTime = replaceChineseCommas(values.createTime);
      console.log(values, 777, 888);
      emit('success2', {
        values: { ...values },
      });
      setDrawerProps({ confirmLoading: true });
      closeDrawer();
    } finally {
      setDrawerProps({ confirmLoading: false });
    }
  }
</script>