index.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <template>
  2. <div class="app-container algorithm">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px">
  4. <el-form-item label="联系方式" prop="phone">
  5. <el-input v-model="queryParams.phone" placeholder="请输入联系方式" />
  6. </el-form-item >
  7. <el-form-item label="报警状态" prop="status">
  8. <el-select v-model="queryParams.status" placeholder="请选择报警状态">
  9. <el-option
  10. v-for="item in statusList"
  11. :key="item.value"
  12. :label="item.label"
  13. :value="item.value">
  14. </el-option>
  15. </el-select>
  16. </el-form-item>
  17. <el-form-item label="开始时间" prop="startTime">
  18. <el-date-picker clearable size="small"
  19. v-model="queryParams.startTime"
  20. type="date"
  21. value-format="yyyy-MM-dd"
  22. placeholder="请选择开始时间">
  23. </el-date-picker>
  24. </el-form-item>
  25. <el-form-item label="结束时间" prop="endTime">
  26. <el-date-picker clearable size="small"
  27. v-model="queryParams.endTime"
  28. type="date"
  29. value-format="yyyy-MM-dd"
  30. placeholder="请选择结束时间">
  31. </el-date-picker>
  32. </el-form-item>
  33. <el-form-item>
  34. <p class="inquire-button-one" @click="handleQuery">查询</p>
  35. <p class="reset-button-one" @click="resetQuery">重置</p>
  36. </el-form-item>
  37. </el-form>
  38. <el-table border :data="dataList" @selection-change="handleSelectionChange">
  39. <el-table-column label="报警方式" align="center" prop="method" />
  40. <el-table-column label="报警状态" align="center" prop="status">
  41. <template slot-scope="scope">
  42. <div :style="{'color':scope.row.status=='失败'? 'red':'green'}">
  43. {{scope.row.status}}
  44. </div>
  45. </template>
  46. </el-table-column>
  47. <el-table-column label="联系方式" align="center" prop="phone" />
  48. <el-table-column label="报警内容" align="center" prop="notice" width="500" show-overflow-tooltip/>
  49. <el-table-column label="拨打次数" align="center" prop="isBack" />
  50. <el-table-column label="回调时间" align="center" prop="updateTime" width="200"/>
  51. <el-table-column label="首次报警时间" align="center" prop="createTime" width="200"/>
  52. </el-table>
  53. <pagination :page-sizes="[20, 30, 40, 50]"
  54. v-show="total>0"
  55. :total="total"
  56. :page.sync="queryParams.pageNum"
  57. :limit.sync="queryParams.pageSize"
  58. @pagination="getList"
  59. />
  60. <el-dialog :title="imgTitle" :visible.sync="imgOpen" width="800px" append-to-body>
  61. <div class="scrollbar-box" style="width:760px;max-height:700px;overflow-y: scroll;">
  62. <img :src="imgUrl" style="width:760px;">
  63. </div>
  64. </el-dialog>
  65. </div>
  66. </template>
  67. <script>
  68. import { listAlarmLog } from "@/api/laboratory/alarm";
  69. export default {
  70. name: "Algorithm",
  71. data() {
  72. return {
  73. imgTitle:"",
  74. imgOpen:false,
  75. imgUrl:"",
  76. // 遮罩层
  77. loading: true,
  78. // 选中数组
  79. ids: [],
  80. // 非单个禁用
  81. single: true,
  82. // 非多个禁用
  83. multiple: true,
  84. // 显示搜索条件
  85. showSearch: true,
  86. // 总条数
  87. total: 0,
  88. dataList: [],
  89. // 弹出层标题
  90. title: "",
  91. // 是否显示弹出层
  92. open: false,
  93. statusList: [
  94. {
  95. value: '成功',
  96. label: '成功'
  97. },
  98. {
  99. value: '失败',
  100. label: '失败'
  101. },
  102. ],
  103. // 查询参数
  104. queryParams: {
  105. pageNum: 1,
  106. pageSize:20,
  107. phone: null,
  108. startTime: null,
  109. endTime: null,
  110. status: ''
  111. },
  112. // 表单参数
  113. form: {},
  114. // 表单校验
  115. rules: {
  116. }
  117. };
  118. },
  119. created() {
  120. this.getList();
  121. },
  122. methods: {
  123. /** 查询算法回调结果列表 */
  124. getList() {
  125. this.loading = true;
  126. listAlarmLog(this.queryParams).then( response => {
  127. this.dataList = response.rows;
  128. this.total = response.total;
  129. this.loading = false;
  130. });
  131. },
  132. // 取消按钮
  133. cancel() {
  134. this.open = false;
  135. this.reset();
  136. },
  137. // 表单重置
  138. reset() {
  139. this.form = {
  140. id: null,
  141. algorithmType: null,
  142. algorithmResult: null,
  143. parseResult: null,
  144. parseResultMsg: null,
  145. signId: null,
  146. subId: null,
  147. createTime: null
  148. };
  149. this.resetForm("form");
  150. },
  151. /** 搜索按钮操作 */
  152. handleQuery() {
  153. this.queryParams.pageNum = 1;
  154. this.getList();
  155. },
  156. /** 重置按钮操作 */
  157. resetQuery() {
  158. this.resetForm("queryForm");
  159. this.handleQuery();
  160. },
  161. // 多选框选中数据
  162. handleSelectionChange(selection) {
  163. this.ids = selection.map(item => item.id)
  164. this.single = selection.length!==1
  165. this.multiple = !selection.length
  166. },
  167. /** 修改按钮操作 */
  168. handleUpdate(row) {
  169. this.reset();
  170. const id = row.id || this.ids
  171. getAlgorithm(id).then( response => {
  172. this.form = response.data;
  173. this.open = true;
  174. this.title = "修改算法";
  175. });
  176. },
  177. }
  178. };
  179. </script>
  180. <style scoped lang="scss">
  181. .algorithm {
  182. display: flex!important;
  183. flex-direction: column;
  184. box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
  185. padding:20px 20px 20px!important;
  186. .button-box{
  187. width:190px;
  188. display: flex;
  189. margin:0 auto;
  190. }
  191. }
  192. </style>