DrawerEdit.vue 5.33 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, reactive } from 'vue';
  import { getEmailList } from '/@/api/sys/config';

  const emit = defineEmits(['success']);
  // const isUpdate = ref(true);
  const schemas: FormSchema[] = [
    {
      field: 'typeValue',
      component: 'Select',
      label: '客户编码',
      componentProps: {
        disabled: 'Select',
      },
      colProps: {
        span: 23,
      },
      defaultValue: '',
    },
    {
      field: 'configSample',
      component: 'InputTextArea',
      labelWidth: 250,
      colProps: {
        span: 23,
      },
      label: '确认样品确认状态(填写邮箱)',
      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: 'aitexSgsTest',
      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 }],
    // },
    {
      field: 'id',
    },
    {
      field: 'type',
    },
  ];
  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({
    //   settingValue: data.data.settingValue,
    //   enableFlag: data.data.enableFlag,
    //   // settingValue: data.info,
    // });
    setFieldsValue({
      ...toRaw(data.data),
    });
  });
  function replaceChineseCommas(text: string): string {
    // 使用正则表达式替换中文逗号
    const replacedText = text.replace(/,/g, ',');
    return replacedText;
  }
  async function getData() {
    const emailAll = await getEmailList({});
    console.log(emailAll, 56561);
    return emailAll;
  }
  async function handleSubmit() {
    try {
      const values = await validate();
      getData().then((res) => {
        const test = ref();
        for (const value1 of res) {
          test.value = value1;
          for (const value2 of value1.configInfos) {
            console.log(value1, 56568);
          }
        }
        test.value.configSample = replaceChineseCommas(values.configSample);
        emit('success', {
          values: { ...test },
        });
      });
      // values.aitexSgsTest = replaceChineseCommas(values.aitexSgsTest);
      // console.log(values, 333333);
      // emit('success', {
      //   values: { ...values },
      // });
      setDrawerProps({ confirmLoading: true });
      closeDrawer();
    } finally {
      setDrawerProps({ confirmLoading: false });
    }
  }
</script>