dic.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <template>
  2. <el-dialog :title="titleMap[mode]" :visible.sync="visible" width="500px" destroy-on-close @closed="$emit('closed')">
  3. <el-form ref="dialogForm" :model="form" :rules="rules" label-width="80px">
  4. <el-form-item label="项目编码" prop="parCode">
  5. <el-input v-model="form.parCode" placeholder="请输入编码" />
  6. </el-form-item>
  7. <el-form-item label="项目名称" prop="parName">
  8. <el-input v-model="form.parName" placeholder="请输入名称" />
  9. </el-form-item>
  10. <el-form-item label="项目值" prop="parValue" label-width="83px">
  11. <el-input v-model="form.parValue" placeholder="请输入值" />
  12. </el-form-item>
  13. <el-form-item label="计量单位" prop="parUnit">
  14. <el-select
  15. v-model="form.parUnit"
  16. placeholder="计量单位"
  17. clearable
  18. >
  19. <el-option
  20. v-for="dict in dict.type.pdm_maintenance_time"
  21. v-if="form.parType==0"
  22. :key="dict.value"
  23. :label="dict.label"
  24. :value="dict.value"
  25. />
  26. <el-option
  27. v-for="dict in dict.type.repeat_power_failure"
  28. v-if="form.parType==1"
  29. :key="dict.value"
  30. :label="dict.label"
  31. :value="dict.value"
  32. />
  33. </el-select>
  34. </el-form-item>
  35. <el-form-item label="状态" prop="status">
  36. <template>
  37. <el-switch v-model="form.status" active-value="1" inactive-value="0"></el-switch>
  38. </template>
  39. </el-form-item>
  40. <el-form-item label="备注" prop="remark">
  41. <el-input type="textarea" v-model="form.remark" placeholder="请输入备注" />
  42. </el-form-item>
  43. </el-form>
  44. <div slot="footer" class="dialog-footer">
  45. <el-button type="primary" @click="submit" :loading="isSaveing">确 定</el-button>
  46. <el-button @click="visible=false" >取 消</el-button>
  47. </div>
  48. </el-dialog>
  49. </template>
  50. <script>
  51. import { addPar, updatePar } from "@/api/powerdistribution/par";
  52. export default {
  53. emits: ['success', 'closed'],
  54. dicts: ["pdm_maintenance_time","repeat_power_failure"],
  55. data() {
  56. return {
  57. mode: "add",
  58. titleMap: {
  59. add: '新增配置',
  60. edit: '编辑配置'
  61. },
  62. visible: false,
  63. isSaveing: false,
  64. form: {
  65. id:'',
  66. parCode:"",
  67. parName: "",
  68. parValue: "",
  69. parUnit: "",
  70. parType: "",
  71. remark: "",
  72. status: ""
  73. },
  74. rules: {
  75. parCode: [
  76. {required: true, message: '请输入编码'}
  77. ],
  78. parName: [
  79. {required: true, message: '请输入名称'}
  80. ],
  81. parValue: [
  82. {required: true, message: '请输入值'}
  83. ],
  84. parUnit: [
  85. {required: true, message: '请选择计量单位'}
  86. ]
  87. },
  88. }
  89. },
  90. mounted() {
  91. },
  92. methods: {
  93. //显示
  94. open(mode='add'){
  95. this.mode = mode;
  96. this.visible = true;
  97. return this;
  98. },
  99. //表单提交方法
  100. submit(){
  101. this.$refs.dialogForm.validate(async (valid) => {
  102. if (valid) {
  103. this.isSaveing = true;
  104. var res
  105. if(this.mode=="add")
  106. {
  107. addPar(this.form).then(response => {
  108. this.$emit('success', this.form, this.mode)
  109. this.$message.success("操作成功")
  110. this.visible = false;
  111. });
  112. }else
  113. {
  114. updatePar(this.form).then(response => {
  115. this.$message.success("操作成功")
  116. this.$emit('success', this.form, this.mode)
  117. this.visible = false;
  118. });
  119. }
  120. this.isSaveing = false;
  121. }
  122. })
  123. },
  124. //表单注入数据
  125. setData(data){
  126. // this.form.id = data.id
  127. // this.form.parCode = data.parCode
  128. // this.form.parName = data.parName
  129. // this.form.parValue = data.parValue
  130. //可以和上面一样单个注入,也可以像下面一样直接合并进去
  131. Object.assign(this.form, data)
  132. }
  133. }
  134. }
  135. </script>
  136. <style>
  137. </style>