formComponent.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <template>
  2. <div>
  3. <el-form :model="form" ref="form" style="display:flex;flex-wrap: wrap">
  4. <el-form-item
  5. v-for="(item,index) in formOption" :key="index" v-if="(index+1) <= inDex"
  6. :prop="item.label"
  7. :label="item.name"
  8. :label-width="item.labelSize + 'px'"
  9. :rules="item.rules"
  10. >
  11. <el-input v-model="form[item.label]" v-if="item.inputType == 2" :style="{ width: item.width + 'px' }" size="small" :placeholder="'请输入'+item.name"></el-input>
  12. <span v-if="item.inputType == 1">
  13. <el-select v-model="form[item.label]" slot="prepend" placeholder="请选择">
  14. <el-option v-for="(item,index) in dataList[item.label]" :key="index" :label="item.fName" :value="item.fId"></el-option>
  15. </el-select>
  16. </span>
  17. <el-input
  18. v-if="item.inputType == 4"
  19. type="textarea"
  20. autosize
  21. placeholder="请输入内容"
  22. v-model="form[item.label]">
  23. </el-input>
  24. <div style="width: 100%;display:flex;" v-if="item.inputType == 5">
  25. <el-input v-model="number" placeholder="请输入内容" @input="spellNumbers(item.label)"></el-input>
  26. <span style="padding-left: 10px;padding-right: 10px">至</span>
  27. <el-input v-model="numBer" placeholder="请输入内容" @input="spellNumbers(item.label)"></el-input>
  28. </div>
  29. <el-date-picker
  30. v-if="item.inputType == 3"
  31. v-model="form[item.label]"
  32. type="daterange"
  33. range-separator="至"
  34. start-placeholder="开始日期"
  35. end-placeholder="结束日期">
  36. </el-date-picker>
  37. </el-form-item>
  38. </el-form>
  39. </div>
  40. </template>
  41. <script>
  42. export default {
  43. name: 'formComponent',
  44. props:['formOption','dataList','inDex'],
  45. data() {
  46. return {
  47. form:{},
  48. numBer:'',
  49. number:'',
  50. };
  51. },
  52. methods: {
  53. returnToForm(){
  54. this.$emit('returnToForm', this.form)
  55. },
  56. spellNumbers(name){
  57. this.form[name] = [this.number,this.numBer]
  58. },
  59. //表单验证
  60. submitForm(form) {
  61. this.$refs["form"].validate((valid) => {
  62. if (valid) {
  63. this.$emit('submitForm')
  64. } else {
  65. return false;
  66. }
  67. });
  68. },
  69. }
  70. }
  71. </script>
  72. <style scoped>
  73. </style>