JFormContainer.vue

<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>

<script>
/**
   * 使用方法
   * 在form下直接写这个组件就行了,
   *<a-form layout="inline" :form="form" >
   *     <j-form-container :disabled="true">
   *         <!-- 表单内容省略..... -->
   *     </j-form-container>
   *</a-form>
   */
export default {
  name: 'JFormContainer',
  props: {
    disabled: {
      type: Boolean,
      default: false,
      required: false
    }
  },
  mounted () {
    console.log('我是表单禁用专用组件,但是我并不支持表单中iframe的内容禁用')
  }
}
</script>
<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>


<template>
  <a-form layout="inline" :form="form" >
      <j-form-container :disabled="true">
        <!-- 表单内容省略..... -->
        <a-row class="form-row" :gutter="16">
          <a-col :lg="10" :md="10" :sm="20">
            <a-form-item label="文件">
              <a-button> <a-icon type="upload" /> 上传 </a-button>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row class="form-row" :gutter="16">
          <a-col :lg="10" :md="10" :sm="20">
            <a-form-item label="文件">
              <a-button> <a-icon type="upload" /> 上传 </a-button>
            </a-form-item>
          </a-col>
        </a-row>
      </j-form-container>
    </a-form>
</template>

<script>
import JFormContainer from '@/components/jeecg/JFormContainer'
export default {
  components: {
    JFormContainer  
  },
  data () {
    return {
      form: this.$form.createForm(this)
    }
  },
  methods: {}
}
</script>

<style scoped>

</style>

Logo

前往低代码交流专区

更多推荐