SoFunction
Updated on 2025-04-05

Introduction to the special components for disabling form forms in vue

form form disables dedicated components

<template>
  <div :class="disabled?'jeecg-form-container-disabled':''">
    <fieldset :disabled="disabled">
      <slot name="detail"></slot>
    </fieldset>
    <slot name="edit"></slot>
    <fieldset disabled>
      <slot></slot>
    </fieldset>
  </div>
</template>


&lt;script&gt;
/**
    *How to use
    * Just write this component directly under form.
    *<a-form layout="inline" :form="form" >
    * <j-form-container :disabled="true">
    * <!-- The form content is omitted... -->
    * </j-form-container>
    *</a-form>
    */
export default {
  name: 'JFormContainer',
  props: {
    disabled: {
      type: Boolean,
      default: false,
      required: false
    }
  },
  mounted () {
    ('I am disabling dedicated components for form, but I do not support disabling iframe content in form')
  }
}
&lt;/script&gt;
<style>
  .jeecg-form-container-disabled{
    cursor: not-allowed;
  }
  .jeecg-form-container-disabled fieldset[disabled] {
    -ms-pointer-events: none;
    pointer-events: none;
  }
  .jeecg-form-container-disabled .ant-select{
    -ms-pointer-events: none;
    pointer-events: none;
  }

  .jeecg-form-container-disabled .ant-upload-select{display:none}
  .jeecg-form-container-disabled .ant-upload-list{cursor:grabbing}
  .jeecg-form-container-disabled fieldset[disabled] .ant-upload-list{
    -ms-pointer-events: auto !important;
    pointer-events: auto !important;
  }

  .jeecg-form-container-disabled .ant-upload-list-item-actions .anticon-delete,
  .jeecg-form-container-disabled .ant-upload-list-item .anticon-close{
    display: none;
  }
</style>
&lt;template&gt;
  &lt;a-form layout="inline" :form="form" &gt;
      &lt;j-form-container :disabled="true"&gt;
        &lt;!-- Form content omitted..... --&gt;
        &lt;a-row class="form-row" :gutter="16"&gt;
          &lt;a-col :lg="10" :md="10" :sm="20"&gt;
            &lt;a-form-item label="document"&gt;
              &lt;a-button&gt; &lt;a-icon type="upload" /&gt; Upload &lt;/a-button&gt;
            &lt;/a-form-item&gt;
          &lt;/a-col&gt;
        &lt;/a-row&gt;
        &lt;a-row class="form-row" :gutter="16"&gt;
          &lt;a-col :lg="10" :md="10" :sm="20"&gt;
            &lt;a-form-item label="document"&gt;
              &lt;a-button&gt; &lt;a-icon type="upload" /&gt; Upload &lt;/a-button&gt;
            &lt;/a-form-item&gt;
          &lt;/a-col&gt;
        &lt;/a-row&gt;
      &lt;/j-form-container&gt;
    &lt;/a-form&gt;
&lt;/template&gt;
<script>
import JFormContainer from '@/components/jeecg/JFormContainer'
export default {
  components: {
    JFormContainer  
  },
  data () {
    return {
      form: this.$(this)
    }
  },
  methods: {}
}
</script>

<style scoped>

</style>

Summarize

The above is personal experience. I hope you can give you a reference and I hope you can support me more.