shishuaikang
2023-12-01 17d224a823e7342f82856d4baf9f73bdf813a3ea
web/src/components/element/Form.vue
@@ -2,14 +2,11 @@
  <div class="role">
    <!-- https://juejin.cn/post/7042597964618924069?searchId=202310071305486BA29870D97939288832#heading-8 -->
    <!-- https://juejin.cn/post/7139110255748710436?searchId=2023092815420483B1983D44854DBE6608#comment -->
    <el-form
      ref="ruleForm"
      class="rule-form"
      :model="formConfig.formModels"
      :rules="formConfig.formRules"
    <el-form ref="ruleForm" class="rule-form" :model="formConfig.formModels" :rules="formConfig.formRules"
      :label-width="formConfig.labelWidth || 'auto'">
      <el-row>
        <el-col v-for="item in formConfig.formItems" :key="item.label" :span="item.span || 24">
        <el-col v-for="item in formItems" :key="item.label" :span="item.span || 24">
          <el-form-item :label="item.label" :style="formConfig.itemStyle || null">
            <template v-if="item.type === 'input' || item.type === 'password'">
@@ -17,10 +14,14 @@
                :show-password="item.type === 'password'"></el-input>
            </template>
            <template v-else-if="item.type === 'textarea'">
              <el-input type="textarea" :placeholder="item.placeholder || `请输入${item.label}`"></el-input>
            </template>
            <template v-else-if="item.type === 'select'">
              <el-select :placeholder="item.placeholder || `请选择${item.label}`">
                <el-option v-for="option in item.options" :key="option.label" :label="option.label"
                  :value="option.value"></el-option>
              <el-select v-model="formConfig.formModels.realNames" :placeholder="item.placeholder || `请选择${item.label}`">
                <el-option v-for="option in item.options" :key="option.id" :label="option.label"
                  :value="option.id"></el-option>
              </el-select>
            </template>
@@ -31,19 +32,25 @@
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
  </div>
</template>
<script>
export default {
  name: "cForm",
  data() {
    return {}
  },
  props: {
    formConfig: {
      type: Object,
      default: () => ({})
    }
      default: () => { }
    },
    formItems: {
      type: Array,
      default: () => []
    },
  }
}
</script>