TableEdit.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <template>
  2. <el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
  3. <el-form ref="form" :model="form" :rules="rules" label-width="120px">
  4. <!-- <el-form-item label="场站" prop="stationid">
  5. <el-cascader ref="cascaderRef" @change="cascaderChange" v-model="form.stationid" :options="options"
  6. style="width: 200px" :props="{ checkStrictly: true, label: 'name', value: 'id', children: 'children' }"
  7. clearable />
  8. </el-form-item>
  9. <el-form-item label="录入时间" prop="createtime">
  10. <el-date-picker style="width: 200px" v-model="form.createtime" type="datetime" placeholder="选择日期时间">
  11. </el-date-picker>
  12. </el-form-item>
  13. <el-form-item label="指标" prop="kay">
  14. <el-select style="width: 200px" v-model="form.kay" placeholder="请选择" clearable
  15. :disabled="!idAdd ? true : false">
  16. <el-option v-for="item in standardList" :key="item.uniformcode" :label="item.name" :value="item.uniformcode">
  17. </el-option>
  18. </el-select>
  19. </el-form-item> -->
  20. <!-- <el-table-column show-overflow-tooltip label="编号" prop="id" align="center" sortable></el-table-column>
  21. <el-table-column show-overflow-tooltip label="组织机构编码" prop="companyCode" align="center" sortable></el-table-column>
  22. <el-table-column show-overflow-tooltip label="指标编码" prop="targetCode" align="center" sortable></el-table-column>
  23. <el-table-column show-overflow-tooltip label="时间" prop="targetDate" align="center" sortable></el-table-column>
  24. <el-table-column show-overflow-tooltip label="值" prop="targetValue" align="center" sortable></el-table-column>
  25. <el-table-column show-overflow-tooltip label="周期" prop="targetCycle" align="center" sortable></el-table-column> -->
  26. <el-form-item label="编号" prop="id">
  27. <el-input style="width: 200px" class="inputs" v-model="form.id" placeholder="请输入"></el-input>
  28. </el-form-item>
  29. <el-form-item label="组织机构编码" prop="companyCode">
  30. <el-input style="width: 200px" class="inputs" v-model="form.companyCode" placeholder="请输入"></el-input>
  31. </el-form-item>
  32. <el-form-item label="指标编码" prop="targetCode">
  33. <el-input style="width: 200px" class="inputs" v-model="form.targetCode" placeholder="请输入"></el-input>
  34. </el-form-item>
  35. <el-form-item label="时间" prop="targetDate">
  36. <el-date-picker style="width: 200px" v-model="form.targetDate" type="datetime" placeholder="选择日期时间"></el-date-picker>
  37. </el-form-item>
  38. <el-form-item label="值" prop="targetValue">
  39. <el-input style="width: 200px" class="inputs" v-model="form.targetValue" placeholder="请输入"></el-input>
  40. </el-form-item>
  41. <el-form-item label="周期" prop="targetCycle">
  42. <el-input style="width: 200px" class="inputs" v-model="form.targetCycle" placeholder="请输入"></el-input>
  43. </el-form-item>
  44. </el-form>
  45. <div slot="footer" class="dialog-footer">
  46. <el-button @click="close">取 消</el-button>
  47. <el-button type="primary" @click="handleSave()">确 定</el-button>
  48. </div>
  49. </el-dialog>
  50. </template>
  51. <script>
  52. import api from '@/api/table'
  53. import dayjs from "dayjs";
  54. export default {
  55. name: 'TableEdit',
  56. props: {
  57. stationList: {
  58. type: Array,
  59. default: []
  60. },
  61. options: {
  62. type: Array,
  63. default: []
  64. },
  65. standardList: {
  66. type: Array,
  67. default: []
  68. },
  69. },
  70. data() {
  71. return {
  72. keyList: [{ name: '发电量' }, { name: '平均功率' }, { name: '最优功率' }],
  73. form: {
  74. id: "",
  75. companyCode: "",
  76. targetCode: "",
  77. targetDate: "",
  78. targetValue: "",
  79. targetCycle: "",
  80. },
  81. rules: {
  82. id: [{ required: true, trigger: 'blur', message: '请输入' }],
  83. companyCode: [{ required: true, trigger: 'blur', message: '请输入' }],
  84. targetCode: [{ required: true, trigger: 'blur', message: '请输入' }],
  85. targetDate: [{ required: true, trigger: 'blur', message: '请选择' }],
  86. targetValue: [{ required: true, trigger: 'blur', message: '请输入' }],
  87. targetCycle: [{ required: true, trigger: 'blur', message: '请输入' }],
  88. },
  89. title: '',
  90. dialogFormVisible: false,
  91. idAdd: true,
  92. }
  93. },
  94. created() { },
  95. methods: {
  96. // cascaderChange(data) {
  97. // this.form.stationidArr = data
  98. // this.form.stationnameArr = this.$refs["cascaderRef"].getCheckedNodes()[0].pathLabels
  99. // },
  100. showEdit(row) {
  101. if (!row) {
  102. this.title = '添加'
  103. this.idAdd = true
  104. } else {
  105. this.title = '编辑'
  106. this.idAdd = false
  107. this.form = Object.assign({}, row)
  108. // this.form.stationid = row.stationid.split(",")
  109. }
  110. this.dialogFormVisible = true
  111. },
  112. close() {
  113. this.$refs['form'].resetFields()
  114. this.form = this.$options.data().form
  115. this.dialogFormVisible = false
  116. this.$emit('fetch-data')
  117. },
  118. handleSave() {
  119. this.$refs['form'].validate(async (valid) => {
  120. if (valid) {
  121. // this.form.stationid = this.form.stationid.join(",")
  122. // this.form.stationname = this.form.stationnameArr[this.form.stationnameArr.length - 1]
  123. this.form.targetDate = dayjs(this.form.targetDate).format("YYYY-MM-DD HH:mm:ss")
  124. api.addIndicators(this.form).then(res => {
  125. if (res.code == 200) {
  126. this.$message({
  127. type: 'success',
  128. message: '添加成功!'
  129. });
  130. this.$emit('handleSuccess');
  131. this.dialogFormVisible = false
  132. }
  133. })
  134. } else {
  135. return false
  136. }
  137. })
  138. },
  139. },
  140. }
  141. </script>
  142. <style lang="less" scoped>
  143. .inputs {
  144. width: 200px;
  145. }
  146. </style>