date.vue 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <template>
  2. <div>
  3. <template v-if="data.type.indexOf('range') != -1">
  4. <el-form-item label="开始占位内容"
  5. label-width="110px">
  6. <el-input v-model="data.startPlaceholder"
  7. clearable
  8. placeholder="开始占位内容"></el-input>
  9. </el-form-item>
  10. <el-form-item label="结束占位内容"
  11. label-width="110px">
  12. <el-input v-model="data.endPlaceholder"
  13. clearable
  14. placeholder="结束占位内容"></el-input>
  15. </el-form-item>
  16. </template>
  17. <el-form-item label="占位内容"
  18. v-else>
  19. <el-input v-model="data.placeholder"
  20. clearable
  21. placeholder="占位内容"></el-input>
  22. </el-form-item>
  23. <el-form-item label="显示格式化"
  24. label-width="100px">
  25. <el-input v-model="data.format"
  26. clearable
  27. placeholder="显示格式化"></el-input>
  28. </el-form-item>
  29. <el-form-item label="值格式化">
  30. <el-input v-model="data.valueFormat"
  31. clearable
  32. placeholder="值格式化"></el-input>
  33. </el-form-item>
  34. <el-form-item label="取消范围联动"
  35. label-width="110px"
  36. v-if="['timerange', 'daterange', 'datetimerange'].includes(data.type)">
  37. <el-switch v-model="data.unlinkPanels"></el-switch>
  38. </el-form-item>
  39. <el-form-item label="是否只读">
  40. <el-switch v-model="data.readonly"></el-switch>
  41. </el-form-item>
  42. <el-form-item label="是否禁用">
  43. <el-switch v-model="data.disabled"></el-switch>
  44. </el-form-item>
  45. <el-form-item label="是否可见">
  46. <el-switch v-model="data.display"></el-switch>
  47. </el-form-item>
  48. <el-form-item label="是否必填">
  49. <el-switch v-model="data.required"></el-switch>
  50. </el-form-item>
  51. </div>
  52. </template>
  53. <script>
  54. export default {
  55. name: "config-date",
  56. props: ['data'],
  57. data() {
  58. return {
  59. validator: {
  60. type: null,
  61. required: null,
  62. pattern: null,
  63. length: null
  64. }
  65. }
  66. },
  67. methods: {
  68. generateRule() {
  69. const rules = [];
  70. Object.keys(this.validator).forEach(key => {
  71. if (this.validator[key]) rules.push(this.validator[key])
  72. })
  73. this.data.rules = rules
  74. },
  75. },
  76. watch: {
  77. 'data.required': function (val) {
  78. if (val) this.validator.required = { required: true, message: `${this.data.label}必须填写` }
  79. else this.validator.required = null
  80. this.generateRule()
  81. }
  82. }
  83. }
  84. </script>