dataCleanForm.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <template>
  2. <div>
  3. <el-form ref="dataCleaningForm" :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="!dataCleaning.isEnable" 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="!dataCleaning.isEnable" type="textarea"
  13. :autosize="{ minRows: 1 }"></el-input>
  14. </el-form-item>
  15. <el-form-item label="写入的mongo表" prop="mongodb_write_table">
  16. <el-input v-model="form['mongodb_write_table']" size="mini"
  17. :disabled="!dataCleaning.isEnable" type="textarea"
  18. :autosize="{ minRows: 1 }"></el-input>
  19. </el-form-item>
  20. <el-form-item label="时间列名称" prop="col_time">
  21. <el-input v-model="form['col_time']" size="mini"
  22. :disabled="!dataCleaning.isEnable" type="textarea"
  23. :autosize="{ minRows: 1 }"></el-input>
  24. </el-form-item>
  25. <el-form-item label="是否配置生产" prop="forecast_file">
  26. <el-select v-model="form['forecast_file']" clearable placeholder="请选择" size="small" style="width: 100%">
  27. <el-option
  28. v-for="item in forecastFileType" :disabled="!dataCleaning.isEnable"
  29. :key="item.value"
  30. :label="item.label"
  31. :value="item.value">
  32. </el-option>
  33. </el-select>
  34. </el-form-item>
  35. <el-form-item label="场站类型" prop="plant_type">
  36. <el-select v-model="form['plant_type']" clearable placeholder="请选择" size="small" style="width: 100%">
  37. <el-option
  38. v-for="item in stationType" :disabled="!dataCleaning.isEnable"
  39. :key="item.value"
  40. :label="item.label"
  41. :value="item.value">
  42. </el-option>
  43. </el-select>
  44. </el-form-item>
  45. <el-form-item label="数据清洗流程">
  46. <el-input v-model="form['clean_param']" size="mini"
  47. :disabled="!dataCleaning.isEnable" type="textarea"
  48. :autosize="{ minRows: 1 }"></el-input>
  49. </el-form-item>
  50. <el-form-item label="特征衍生">
  51. <el-input v-model="form['features_gen']" size="mini"
  52. :disabled="!dataCleaning.isEnable" type="textarea"
  53. :autosize="{ minRows: 1 }"></el-input>
  54. </el-form-item>
  55. <el-form-item label="装机容量" prop="cap">
  56. <el-input v-model="form['cap']" size="mini"
  57. :disabled="!dataCleaning.isEnable" type="textarea"
  58. :autosize="{ minRows: 1 }"></el-input>
  59. </el-form-item>
  60. <el-form-item label="目标值" prop="target">
  61. <el-input v-model="form['target']" size="mini"
  62. :disabled="!dataCleaning.isEnable" type="textarea"
  63. :autosize="{ minRows: 1 }"></el-input>
  64. </el-form-item>
  65. <el-form-item label="nwp辐照列">
  66. <el-input v-model="form['col_radiation']" size="mini"
  67. :disabled="!dataCleaning.isEnable" type="textarea"
  68. :autosize="{ minRows: 1 }"></el-input>
  69. </el-form-item>
  70. <el-form-item label="nwp风速列">
  71. <el-input v-model="form['col_speed']" size="mini"
  72. :disabled="!dataCleaning.isEnable" type="textarea"
  73. :autosize="{ minRows: 1 }"></el-input>
  74. </el-form-item>
  75. <el-form-item label="容忍时间窗口">
  76. <el-input v-model="form['tol']" size="mini"
  77. :disabled="!dataCleaning.isEnable" type="textarea"
  78. :autosize="{ minRows: 1 }"></el-input>
  79. </el-form-item>
  80. <el-form-item label="清洗上限">
  81. <el-input v-model="form['upper_ratio']" size="mini"
  82. :disabled="!dataCleaning.isEnable" type="textarea"
  83. :autosize="{ minRows: 1 }"></el-input>
  84. </el-form-item>
  85. <el-form-item label="清洗下限">
  86. <el-input v-model="form['lower_ratio']" size="mini"
  87. :disabled="!dataCleaning.isEnable" type="textarea"
  88. :autosize="{ minRows: 1 }"></el-input>
  89. </el-form-item>
  90. <el-form-item label="风速列1">
  91. <el-input v-model="form['speed_1']" size="mini"
  92. :disabled="!dataCleaning.isEnable" type="textarea"
  93. :autosize="{ minRows: 1 }"></el-input>
  94. </el-form-item>
  95. <el-form-item label="风速列2">
  96. <el-input v-model="form['speed_2']" size="mini"
  97. :disabled="!dataCleaning.isEnable" type="textarea"
  98. :autosize="{ minRows: 1 }"></el-input>
  99. </el-form-item>
  100. </el-form>
  101. </div>
  102. </template>
  103. <script>
  104. export default {
  105. props: {
  106. formData: {
  107. type: Object,
  108. default: {}
  109. }
  110. },
  111. destroyed() {
  112. this.$nextTick(() => {
  113. this.$refs.dataCleaningForm.clearValidate();
  114. });
  115. },
  116. watch: {
  117. formData: {
  118. handler(newVal, oldVal) {
  119. console.log(newVal)
  120. this.dataCleaning = newVal
  121. this.form = newVal.params
  122. },
  123. immediate: true
  124. }
  125. },
  126. data() {
  127. return {
  128. dataCleaning: {},
  129. form: {},
  130. rules: {
  131. mongodb_database: [
  132. {required: true, message: '请填写mongo库', trigger: 'blur'}
  133. ],
  134. mongodb_write_table: [
  135. {required: true, message: '请填写写入的mongo表', trigger: 'blur'}
  136. ],
  137. mongodb_read_table: [
  138. {required: true, message: '请填写读取的mongo表', trigger: 'blur'}
  139. ],
  140. col_time: [
  141. {required: true, message: '请填写时间列名称', trigger: 'blur'}
  142. ],
  143. forecast_file: [
  144. {required: true, message: '请选择是否配置生产', trigger: 'change'}
  145. ],
  146. plant_type: [
  147. {required: true, message: '请选择场站类型(solar/wind)', trigger: 'change'}
  148. ],
  149. cap: [
  150. {required: true, message: '请填写装机容量', trigger: 'blur'}
  151. ],
  152. target: [
  153. {required: true, message: '请填写目标值', trigger: 'blur'}
  154. ],
  155. },
  156. stationType: [
  157. {label: 'solar', value: 'solar'},
  158. {label: 'wind', value: 'wind'}
  159. ],
  160. forecastFileType: [
  161. {label: '测试', value: '0'},
  162. {label: '生产', value: '1'}
  163. ],
  164. }
  165. },
  166. mounted() {
  167. },
  168. methods: {
  169. saveTask() {
  170. this.$refs.dataCleaningForm.validate((valid) => {
  171. if (valid) {
  172. // console.log('child submit!');
  173. this.$emit('child-event', this.form)
  174. return true
  175. } else {
  176. this.$emit('child-event', {})
  177. this.$message.warning(this.dataCleaning.componentType+'模块校验未通过')
  178. return false;
  179. }
  180. });
  181. // this.dialogVisible = false
  182. },
  183. }
  184. }
  185. </script>
  186. <style scoped lang="scss">
  187. </style>