index.vue 2.33 KB
<template>
  <div>
    <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" />
  </div>
</template>
<script lang="ts">
  import { defineComponent, ref } from 'vue';
  import { BasicForm, useForm } from '/@/components/Form';
  import { formSchema } from './config';

  export default defineComponent({
    name: 'DetailTemplate',
    components: {
      BasicForm,
    },
    props: ['alarmSeverityInfo'],
    emits: ['success', 'register', 'getAllFields'],
    setup(props) {
      const fieldValue: any = ref({});
      const [registerForm, { resetFields, getFieldsValue, setFieldsValue, updateSchema }] = useForm(
        {
          labelWidth: 120,
          schemas: formSchema,
        }
      );
      const resetFieldsFunc = () => {
        resetFields();
      };

      const getFieldsValueFunc = () => {
        fieldValue.value = getFieldsValue();
        return fieldValue.value;
      };
      const item = [
        {
          value: 'CRITICAL',
          label: '危险',
          disabled: false,
        },
        {
          value: 'MAJOR',
          label: '重要',
          disabled: false,
        },
        {
          value: 'MINOR',
          label: '次要',
          disabled: false,
        },
        {
          value: 'WARNING',
          label: '警告',
          disabled: false,
        },
        {
          value: 'INDETERMINATE',
          label: '不确定',
          disabled: false,
        },
      ];
      const updateSchemaSelectDisableFunc = () => {
        updateSchema({
          field: 'default',
          componentProps: ({ formModel }) => {
            item.forEach((f) => {
              if (f.value == formModel.default) {
                f.disabled = true;
              }
            });
            return {
              options: item,
            };
          },
        });
      };

      const setFieldsValueFunc = () => {
        if (props.alarmSeverityInfo != 1) {
          let newArr = Object.keys(props.alarmSeverityInfo);
          setTimeout(() => {
            newArr.forEach((f) => {
              setFieldsValue({ default: f });
            });
          }, 10);
        }
      };
      setFieldsValueFunc();
      return {
        resetFieldsFunc,
        updateSchemaSelectDisableFunc,
        getFieldsValueFunc,
        registerForm,
      };
    },
  });
</script>