processDialog.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <template>
  2. <ele-modal
  3. :visible.sync="visible"
  4. title="处理"
  5. width="70%"
  6. append-to-body
  7. :maxable="true"
  8. @close="cancel"
  9. >
  10. <el-form
  11. ref="form"
  12. :model="form"
  13. :rules="rules"
  14. label-width="120px"
  15. class="el-form-box"
  16. >
  17. <!-- 告警详细 -->
  18. <header-title title="告警详细"></header-title>
  19. <el-row>
  20. <el-col :span="8">
  21. <el-form-item label="告警名称:">
  22. <el-input disabled v-model="form.name" placeholder=" " />
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="8">
  26. <el-form-item label="告警级别:">
  27. <el-input disabled :value="getLevel(form.alarmLevel)" placeholder=" " />
  28. </el-form-item>
  29. </el-col>
  30. <el-col :span="8">
  31. <el-form-item label="能源分类:">
  32. <el-input disabled v-model="form.energyTypeName" placeholder=" " />
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="8">
  36. <el-form-item label="用能分区:">
  37. <el-input disabled v-model="form.areaName" placeholder=" " />
  38. </el-form-item>
  39. </el-col>
  40. <el-col :span="8">
  41. <el-form-item label="告警描述:">
  42. <el-input disabled v-model="form.description" placeholder=" " />
  43. </el-form-item>
  44. </el-col>
  45. <el-col :span="8">
  46. <el-form-item label="告警时间:">
  47. <el-input disabled v-model="form.createTime" placeholder=" " />
  48. </el-form-item>
  49. </el-col>
  50. </el-row>
  51. <!-- 告警处理意见 -->
  52. <header-title title="告警处理意见"></header-title>
  53. <el-row>
  54. <el-col :span="8">
  55. <el-form-item label="处理时间:" prop="processTime">
  56. <el-date-picker
  57. v-model="form.processTime"
  58. type="datetime"
  59. placeholder="时间 "
  60. style="width: 100%"
  61. format="yyyy-MM-dd HH:mm:ss"
  62. value-format="yyyy-MM-dd HH:mm:ss"
  63. :disabled="type == 'view'"
  64. ></el-date-picker>
  65. </el-form-item>
  66. </el-col>
  67. <el-col :span="8">
  68. <el-form-item label="处理方式:" prop="handleType">
  69. <el-select
  70. v-model="form.handleType"
  71. placeholder="请选择"
  72. :disabled="type == 'view'"
  73. style="width: 100%"
  74. >
  75. <el-option label="现场处理" :value="1"></el-option>
  76. <el-option label="远程处理" :value="2"></el-option>
  77. <el-option label="转派处理" :value="3"></el-option>
  78. </el-select>
  79. </el-form-item>
  80. </el-col>
  81. <!-- <el-col :span="8">
  82. <el-form-item label="增加用量:">
  83. <el-input
  84. v-model="form.increaseDosage"
  85. placeholder="请输入"
  86. ></el-input>
  87. </el-form-item>
  88. </el-col> -->
  89. </el-row>
  90. <el-row>
  91. <el-col :span="24">
  92. <el-form-item label="处理意见:">
  93. <el-input
  94. v-model="form.handleOpinion"
  95. :disabled="type == 'view'"
  96. type="textarea"
  97. :rows="4"
  98. placeholder="请输入"
  99. ></el-input>
  100. </el-form-item>
  101. </el-col>
  102. </el-row>
  103. <el-row>
  104. <el-col :span="24">
  105. <el-form-item label="处理定性:">
  106. <el-radio-group
  107. v-model="form.qualitativeProcessing"
  108. :disabled="type == 'view'"
  109. >
  110. <el-radio :label="1">已核查,没问题</el-radio>
  111. <el-radio :label="2">请现场核查确定</el-radio>
  112. </el-radio-group>
  113. </el-form-item>
  114. </el-col>
  115. </el-row>
  116. <el-row>
  117. <el-col :span="24">
  118. <el-form-item label="处理照片:">
  119. <fileMain
  120. v-model="handleImg"
  121. :type="type == 'view' ? 'view' : 'add'"
  122. ></fileMain>
  123. </el-form-item>
  124. </el-col>
  125. </el-row>
  126. </el-form>
  127. <template v-slot:footer>
  128. <el-button
  129. type="primary"
  130. @click="save()"
  131. v-loading="loading"
  132. v-if="type != 'view'"
  133. >保存</el-button
  134. >
  135. <el-button @click="cancel">关闭</el-button>
  136. </template>
  137. </ele-modal>
  138. </template>
  139. <script>
  140. import {
  141. powerusagealarmlogsheetGetById,
  142. powerusagealarmlogsheetHandle
  143. } from '@/api/alarmConfiguration/index.js';
  144. const defForm = {
  145. name: '',
  146. levelText: '',
  147. energyClassificationName: '',
  148. areaName: '',
  149. description: '',
  150. warningTime: '',
  151. processTime: '',
  152. handleType: '',
  153. increaseDate: '',
  154. increaseUnit: 'degree',
  155. increaseDosage: '',
  156. qualitativeProcessing: 'needCheck'
  157. };
  158. export default {
  159. data() {
  160. return {
  161. visible: false,
  162. loading: false,
  163. form: { ...defForm },
  164. type: 'edit',
  165. fileList: [],
  166. rules: {
  167. processTime: [
  168. { required: true, message: '请选择处理时间', trigger: 'change' }
  169. ],
  170. handleType: [
  171. { required: true, message: '请选择处理方式', trigger: 'change' }
  172. ]
  173. }
  174. };
  175. },
  176. methods: {
  177. async open(row, type) {
  178. this.visible = true;
  179. this.type = type;
  180. if (row) {
  181. this.form = await powerusagealarmlogsheetGetById(row.id);
  182. }
  183. },
  184. getLevel(val) {
  185. return { 1: '提示', 2: '一般', 3: '严重', 4: '紧急', 5: '致命' }[val];
  186. },
  187. cancel() {
  188. this.form = { ...defForm };
  189. this.visible = false;
  190. },
  191. save() {
  192. this.$refs.form.validate((valid) => {
  193. if (valid) {
  194. this.loading = true;
  195. // let api = this.form.id ? update : save;
  196. powerusagealarmlogsheetHandle(this.form)
  197. .then((res) => {
  198. this.loading = false;
  199. this.$message.success('操作成功');
  200. this.cancel();
  201. this.$emit('reload');
  202. })
  203. .finally(() => {
  204. this.loading = false;
  205. });
  206. }
  207. });
  208. }
  209. }
  210. };
  211. </script>
  212. <style lang="scss" scoped>
  213. .el-form-box {
  214. ::v-deep .el-input.is-disabled .el-input__inner {
  215. background-color: #f5f7fa;
  216. color: #606266;
  217. }
  218. }
  219. </style>