index.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import { alarmTableData, alarmInfoRes, alarmLevelMapping, pushChannelMapping } from '../type';
  2. import { getAlarmMessageList, deleteAlarmMessage, updateAlarmStatus } from '../api/index';
  3. import { reactive, ref, onMounted } from 'vue';
  4. import { defineStore } from 'pinia';
  5. export const useAlarmDataList = defineStore('useAlarmDataList', () => {
  6. const alarmDataList = reactive<alarmTableData[]>([]);
  7. const searchContent = ref<string>('');
  8. const pageSize = ref<number>(10);
  9. const currentPage = ref<number>(1);
  10. const totalPage = ref<number>(0);
  11. const totalRow = ref<number>(0);
  12. function getAlarmData() {
  13. getAlarmMessageList({
  14. content: searchContent.value,
  15. pageNumber: currentPage.value,
  16. pageSize: pageSize.value,
  17. }).then((res: alarmInfoRes) => {
  18. if (res === null) {
  19. currentPage.value = 1;
  20. totalPage.value = 0;
  21. totalRow.value = 0;
  22. alarmDataList.length = 0;
  23. return;
  24. }
  25. alarmDataList.length = 0;
  26. totalPage.value = res.totalPage;
  27. totalRow.value = res.totalRow;
  28. for (let alarmMessage of res.records) {
  29. alarmDataList.push({
  30. id: alarmMessage.id,
  31. alarmType: alarmMessage.violationName,
  32. alarmLevel: alarmLevelMapping[alarmMessage.violationLevel],
  33. pushChannel: alarmMessage.pushChannel
  34. .slice(1, -1)
  35. .split(',')
  36. .map((channel) => pushChannelMapping[Number(channel)]),
  37. status: Boolean(alarmMessage.status),
  38. operationTime: alarmMessage.updatedAt,
  39. });
  40. }
  41. });
  42. }
  43. function deleteAlarm(id: number) {
  44. deleteAlarmMessage(id).then((res) => {
  45. getAlarmData();
  46. });
  47. }
  48. function updateStatus(id: number, rowStatus: boolean) {
  49. let status = Number(rowStatus);
  50. updateAlarmStatus({ id, status }).then((res) => {
  51. getAlarmData();
  52. });
  53. }
  54. onMounted(() => {
  55. getAlarmData();
  56. console.log('alarmDataList', alarmDataList);
  57. });
  58. return {
  59. alarmDataList,
  60. searchContent,
  61. currentPage,
  62. pageSize,
  63. totalPage,
  64. totalRow,
  65. getAlarmData,
  66. deleteAlarm,
  67. updateStatus,
  68. };
  69. });