array.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <template>
  2. <div>
  3. <el-form-item label="占位内容">
  4. <el-input v-model="data.placeholder"
  5. clearable
  6. placeholder="占位内容"></el-input>
  7. </el-form-item>
  8. <el-form-item label="尺寸">
  9. <el-radio-group v-model="data.size"
  10. size="mini">
  11. <el-radio-button label="medium">正常</el-radio-button>
  12. <el-radio-button label="small">小</el-radio-button>
  13. <el-radio-button label="mini">超小</el-radio-button>
  14. </el-radio-group>
  15. </el-form-item>
  16. <el-form-item label="是否禁用">
  17. <el-switch v-model="data.disabled"></el-switch>
  18. </el-form-item>
  19. <el-form-item label="是否可见">
  20. <el-switch v-model="data.display"></el-switch>
  21. </el-form-item>
  22. <el-form-item label="是否必填">
  23. <el-switch v-model="data.required"></el-switch>
  24. </el-form-item>
  25. </div>
  26. </template>
  27. <script>
  28. export default {
  29. name: 'config-array',
  30. props: ['data'],
  31. data() {
  32. return {
  33. validator: {
  34. type: null,
  35. required: null,
  36. pattern: null,
  37. length: null
  38. }
  39. }
  40. },
  41. methods: {
  42. generateRule() {
  43. const rules = [];
  44. Object.keys(this.validator).forEach(key => {
  45. if (this.validator[key]) rules.push(this.validator[key])
  46. })
  47. this.data.rules = rules
  48. },
  49. },
  50. watch: {
  51. 'data.required': function (val) {
  52. if (val) this.validator.required = { required: true, message: `請输入${this.data.label}` }
  53. else this.validator.required = null
  54. this.generateRule()
  55. }
  56. }
  57. }
  58. </script>