setPreferenc.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <template>
  2. <el-dialog title="参数设置" :visible.sync="dialogVisible" :close-on-click-modal="false" :close-on-press-escape="false"
  3. @close="handleClose" width="800px">
  4. <el-form ref="baseForm" class="base-form" label-position="right" label-width="130px" :model="baseForm" :rules="rules"
  5. size="small">
  6. <el-row>
  7. <el-col :span="24">
  8. <el-row>
  9. <el-col :span="12">
  10. <el-form-item label="电表品牌型号:" prop="tmnconfigElecmetermodel">
  11. <el-input placeholder="请输入" v-model="baseForm.tmnconfigElecmetermodel">
  12. </el-input>
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="12">
  16. <el-form-item label="水表品牌型号:" prop="tmnconfigWatermetermodel">
  17. <el-input placeholder="请输入" v-model="baseForm.tmnconfigWatermetermodel">
  18. </el-input>
  19. </el-form-item>
  20. </el-col>
  21. </el-row>
  22. </el-col>
  23. <el-col :span="24">
  24. <el-row>
  25. <el-col :span="12">
  26. <el-form-item label="计算模式:" prop="tmnconfigMeteredmodel">
  27. <!-- <el-input placeholder="请输入" v-model="baseForm.tmnconfigMeteredmodel"> -->
  28. <!-- </el-input> -->
  29. <el-select v-model="baseForm.tmnconfigMeteredmodel" style="width:100%">
  30. <el-option
  31. label="水电双计"
  32. value="0"
  33. ></el-option>
  34. <el-option
  35. label="只计水"
  36. value="1"
  37. ></el-option>
  38. <el-option
  39. label="只计电"
  40. value="2"
  41. ></el-option>
  42. </el-select>
  43. </el-form-item>
  44. </el-col>
  45. <el-col :span="12">
  46. <el-form-item label="以电折水系数:" prop="tmnconfigCoefficient">
  47. <el-input placeholder="请输入" v-model="baseForm.tmnconfigCoefficient">
  48. </el-input>
  49. </el-form-item>
  50. </el-col>
  51. </el-row>
  52. </el-col>
  53. </el-row>
  54. </el-form>
  55. <div style="text-align: right">
  56. <el-button type="info" plain @click="resetForm('baseForm')">取消</el-button>
  57. <el-button type="primary" style="margin-left:16px;" @click="submitForm('baseForm')" :disabled="dialogSubmitLoading"
  58. :loading="dialogSubmitLoading">确定</el-button>
  59. </div>
  60. </el-dialog>
  61. </template>
  62. <script>
  63. import { getTmnconfigInfo, addTmnconfig } from '@/api/tmn/index.js'
  64. export default {
  65. name: 'setPreferenc',
  66. props: {
  67. visible: {
  68. type: Boolean,
  69. default: false
  70. },
  71. tmnId: {
  72. type: String,
  73. default: ''
  74. }
  75. },
  76. data() {
  77. return {
  78. dialogSubmitLoading: false,
  79. dialogVisible: false,
  80. baseForm: {
  81. tmnconfigElecmetermodel: '',//电表品牌型号
  82. tmnconfigWatermetermodel: '',//水表品牌型号
  83. tmnconfigMeteredmodel: '', //计量模式
  84. tmnconfigCoefficient: '',//以电折水系数
  85. },
  86. rules: {
  87. tmnconfigElecmetermodel: [
  88. { required: true, message: '电表品牌型号', trigger: 'blur' }
  89. ],
  90. tmnconfigWatermetermodel: [
  91. { required: true, message: '水表品牌型号', trigger: 'blur' }
  92. ],
  93. tmnconfigMeteredmodel: [
  94. { required: true, message: '计量模式', trigger: 'blur' }
  95. ],
  96. tmnconfigCoefficient: [
  97. { required: true, message: '以电折水系数', trigger: 'blur' }
  98. ]
  99. }
  100. };
  101. },
  102. watch: {
  103. visible(val) {
  104. val && this.getTmnconfigInfoHandler(this.tmnId)
  105. if (val !== this.dialogVisible) {
  106. this.dialogVisible = val;
  107. }
  108. },
  109. },
  110. methods: {
  111. async getTmnconfigInfoHandler(tmnId) {
  112. const response = await getTmnconfigInfo({ tmnId })
  113. const responseData = response?.data
  114. this.baseForm = {
  115. tmnconfigElecmetermodel: responseData?.tmnconfigElecmetermodel || '',
  116. tmnconfigWatermetermodel: responseData?.tmnconfigWatermetermodel || '',
  117. tmnconfigMeteredmodel: responseData?.tmnconfigMeteredmodel || '',
  118. tmnconfigCoefficient: responseData?.tmnconfigCoefficient || '',
  119. }
  120. },
  121. async addTmnconfigHandler() {
  122. const params = {
  123. tmnId: this.tmnId,
  124. ...this.baseForm
  125. }
  126. await addTmnconfig(params)
  127. this.handleClose()
  128. this.$emit('refresh')
  129. },
  130. resetForm(formName) {
  131. this.$refs[formName].resetFields();
  132. this.dialogVisible = false;
  133. },
  134. submitForm(formName) {
  135. this.$refs[formName].validate((valid) => {
  136. valid && this.addTmnconfigHandler()
  137. })
  138. },
  139. handleClose() {
  140. this.$emit('update:visible', false);
  141. this.resetForm('baseForm');
  142. }
  143. }
  144. };
  145. </script>
  146. <style lang="scss" scoped>
  147. .input-number {
  148. width: 100%;
  149. }
  150. .base-form {
  151. max-height: 70vh;
  152. overflow-y: auto;
  153. overflow-x: hidden;
  154. padding: 0 20px;
  155. }
  156. </style>
  157. <style lang="css" scoped>
  158. ::v-deep .el-dialog__header {
  159. border-bottom: 1px solid #ebeef5;
  160. }
  161. </style>