add.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <template>
  2. <div class="formContent">
  3. <el-form ref="form" :model="formData" :rules="rules">
  4. <div class="formContent-item_title">设置对象</div>
  5. <el-form-item label="告警名称" prop="name" label-width="80px">
  6. <el-input v-model="formData.name" clearable placeholder="请输入告警名称"></el-input>
  7. </el-form-item>
  8. <el-form-item label="所属社区" prop="communityId" label-width="80px">
  9. <el-select v-model="formData.communityId" placeholder="请选择社区">
  10. <el-option v-for="(item, index) in communityArr" :key="index" :label="item.communityName" :value="item.id"></el-option>
  11. </el-select>
  12. </el-form-item>
  13. <div class="formContent-item_title">告警规则</div>
  14. <div class="flex-contetn">
  15. <el-form-item label="规则项" prop="type" class="fisrt">
  16. <el-select placeholder="状态" v-model="formData.type" clearable>
  17. <el-option label="日用水" :value="1"></el-option>
  18. <el-option label="月用水" :value="2"></el-option>
  19. <el-option label="日用电" :value="3"></el-option>
  20. <el-option label="月用电" :value="4"></el-option>
  21. </el-select>
  22. </el-form-item>
  23. <el-form-item label="运算符" prop="operate">
  24. <el-select placeholder="状态" v-model="formData.operate" clearable>
  25. <el-option label="=" value="="></el-option>
  26. <el-option label=">" value=">"></el-option>
  27. <el-option label="≥" value="≥"></el-option>
  28. <el-option label="<" value="<"></el-option>
  29. <el-option label="≤" value="≤"></el-option>
  30. <el-option label="≠" value="≠"></el-option>
  31. </el-select>
  32. </el-form-item>
  33. <el-form-item label="条件值" prop="value" class="inputs">
  34. <el-input v-model="formData.value" clearable placeholder="请输入数值"></el-input>
  35. </el-form-item>
  36. </div>
  37. </el-form>
  38. </div>
  39. </template>
  40. <script>
  41. export default {
  42. props: ['params'],
  43. data() {
  44. return {
  45. communityArr: [],
  46. formData: {
  47. name: '',
  48. communityId: '',
  49. type: '',
  50. operate: '',
  51. value: '',
  52. enable:1
  53. },
  54. rules: {
  55. name: [this.$valid.inputRequired('告警名称')],
  56. communityId: [this.$valid.selectRequired('社区')],
  57. type: [this.$valid.selectRequired('规则项')],
  58. operate: [this.$valid.selectRequired('运算符')],
  59. value: [this.$valid.inputRequired('条件值')]
  60. }
  61. };
  62. },
  63. methods: {
  64. submit() {
  65. this.$refs.form.validate((valid) => {
  66. if (valid) {
  67. var loading = this.$loading();
  68. let url = '/sc-community/alarmHydropower/add';
  69. if (this.params.todo == 'edit') {
  70. url = '/sc-community/alarmHydropower/update';
  71. }
  72. this.$http
  73. .post(url, this.formData)
  74. .then(({ status, msg }) => {
  75. if (status == 0) {
  76. this.$message.success(msg);
  77. this.params.callback();
  78. this.$emit('close');
  79. } else {
  80. this.$message.error(msg);
  81. }
  82. loading.close();
  83. })
  84. .catch(() => {
  85. loading.close();
  86. });
  87. }
  88. });
  89. }
  90. },
  91. created() {
  92. this.communityArr = this.params.communityArr;
  93. if (this.params.todo == 'edit') {
  94. this.formData = JSON.parse(JSON.stringify(this.params.data));
  95. }
  96. }
  97. };
  98. </script>
  99. <style lang="scss" scoped>
  100. @import '@assets/css/public-style.scss';
  101. .flex-contetn {
  102. display: grid;
  103. grid-template-columns: repeat(3, minmax(0, 1fr));
  104. border: 1px solid #e0e1e3;
  105. /deep/ .el-form-item__label {
  106. float: initial;
  107. display: block;
  108. text-align: left;
  109. line-height: rem(40);
  110. background: #f8fcff;
  111. padding-left: rem(20);
  112. }
  113. /deep/ .el-form-item__content {
  114. padding: 0 rem(10);
  115. margin-top: rem(20);
  116. }
  117. .inputs {
  118. /deep/ .el-form-item__content {
  119. padding-right: rem(20);
  120. }
  121. }
  122. .fisrt {
  123. /deep/ .el-form-item__content {
  124. padding-left: rem(20);
  125. }
  126. }
  127. }
  128. </style>