reportForm.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <template>
  2. <div>
  3. <el-form ref="reportForm" :rules="rules" :model="form" class="demo-form-inline"
  4. label-width="130px">
  5. <el-form-item label="mongo库" prop="mongodb_database">
  6. <el-input v-model="form['mongodb_database']" size="mini"
  7. :disabled="!report.enable" type="textarea"
  8. :autosize="{ minRows: 1 }"></el-input>
  9. </el-form-item>
  10. <el-form-item label="读取的mongo表" prop="mongodb_read_table">
  11. <el-input v-model="form['mongodb_read_table']" size="mini"
  12. :disabled="!report.enable" type="textarea"
  13. :autosize="{ minRows: 1 }"></el-input>
  14. </el-form-item>
  15. <el-form-item label="时间列名称" prop="col_time">
  16. <el-input v-model="form['col_time']" size="mini"
  17. :disabled="!report.enable" type="textarea"
  18. :autosize="{ minRows: 1 }"></el-input>
  19. </el-form-item>
  20. <el-form-item label="目标列" prop="label">
  21. <el-input v-model="form['label']" size="mini"
  22. :disabled="!report.enable " type="textarea"
  23. :autosize="{ minRows: 1 }"></el-input>
  24. </el-form-item>
  25. <el-form-item label="预测列" prop="label_pre">
  26. <el-input v-model="form['label_pre']" size="mini"
  27. :disabled="!report.enable " type="textarea"
  28. :autosize="{ minRows: 1 }"></el-input>
  29. </el-form-item>
  30. <el-form-item label="站点编码" prop="farm_id">
  31. <el-input v-model="form['farm_id']" size="mini"
  32. :disabled="!report.enable" type="textarea"
  33. :autosize="{ minRows: 1 }"></el-input>
  34. </el-form-item>
  35. <el-form-item label="装机容量" prop="cap">
  36. <el-input v-model="form['cap']" size="mini"
  37. :disabled="!report.enable" type="textarea"
  38. :autosize="{ minRows: 1 }"></el-input>
  39. </el-form-item>
  40. <el-form-item label="分组计算准确率的key值">
  41. <el-input v-model="form['group_key']" size="mini"
  42. :disabled="!report.enable" type="textarea"
  43. :autosize="{ minRows: 1 }"></el-input>
  44. </el-form-item>
  45. </el-form>
  46. </div>
  47. </template>
  48. <script>
  49. export default {
  50. props: {
  51. formData: {
  52. type: Object,
  53. default: {}
  54. }
  55. },
  56. destroyed() {
  57. this.$nextTick(() => {
  58. this.$refs.reportForm.clearValidate();
  59. });
  60. },
  61. watch: {
  62. formData: {
  63. handler(newVal, oldVal) {
  64. console.log(newVal)
  65. this.report = newVal
  66. this.form = newVal.value
  67. },
  68. immediate: true
  69. }
  70. },
  71. data() {
  72. return {
  73. report: {},
  74. form: {},
  75. rules: {
  76. mongodb_database: [
  77. {required: true, message: '请填写mongo库', trigger: 'blur'}
  78. ],
  79. mongodb_write_table: [
  80. {required: true, message: '请填写写入的mongo表', trigger: 'blur'}
  81. ],
  82. mongodb_read_table: [
  83. {required: true, message: '请填写读取的mongo表', trigger: 'blur'}
  84. ],
  85. col_time: [
  86. {required: true, message: '请填写时间列名称', trigger: 'blur'}
  87. ],
  88. label: [
  89. {required: true, message: '请填写目标列', trigger: 'blur'}
  90. ], label_pre: [
  91. {required: true, message: '请填写预测列', trigger: 'blur'}
  92. ], cap: [
  93. {required: true, message: '请填写装机容量', trigger: 'blur'}
  94. ], farm_id: [
  95. {required: true, message: '请填写站点编码', trigger: 'blur'}
  96. ]
  97. },
  98. plantType: [
  99. {label: 'solar', value: 'solar'},
  100. {label: 'wind', value: 'wind'}
  101. ],
  102. }
  103. },
  104. mounted() {
  105. },
  106. methods: {
  107. saveTask() {
  108. this.$refs.reportForm.validate((valid) => {
  109. if (valid) {
  110. // console.log('child submit!');
  111. this.$emit('child-event', this.form)
  112. return true
  113. } else {
  114. this.$emit('child-event', {})
  115. console.log('error submit!!');
  116. return false;
  117. }
  118. });
  119. // this.dialogVisible = false
  120. },
  121. }
  122. }
  123. </script>
  124. <style scoped lang="scss">
  125. </style>