index.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <oa-scroll
  3. customClass="bg-white scroll-height"
  4. :pageSize="pageSize"
  5. :total="total"
  6. :isSticky="false"
  7. :refresherLoad="true"
  8. :refresherLoadTitle="false"
  9. :refresherEnabled="true"
  10. :refresherEnabledTitle="false"
  11. :refresherDefaultStyle="'none'"
  12. :refresherThreshold="44"
  13. :refresherBackground="'#f5f6f7'"
  14. @load="load"
  15. @refresh="refresh"
  16. :data-theme="'theme-' + proxy.$settingStore.themeColor.type"
  17. >
  18. <template #default>
  19. <view class="alarmManage">
  20. <u-grid :border="true">
  21. <u-grid-item v-for="(base, index) in dataList" :key="index" @click="handleToDetails(base.productCode, base.productName)">
  22. <u-badge type="primary" max="9999" :value="base.total" :showZero="true" :absolute="true" :offset="[10, 10, 0, 0]"></u-badge>
  23. <image class="mb15 pt35" style="width: 40px; height: 40px" :src="base.typeImg" mode="aspectFill"></image>
  24. <text class="mb15 grid-text text-ellipsis">{{ base.productName }}</text>
  25. </u-grid-item>
  26. </u-grid>
  27. </view>
  28. </template>
  29. </oa-scroll>
  30. </template>
  31. <script setup>
  32. import { onReady, onLoad, onShow, onNavigationBarButtonTap, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
  33. import { ref, onMounted, inject, shallowRef, reactive, getCurrentInstance } from "vue";
  34. import { useStores, commonStores } from "@/store/modules/index";
  35. import { dmpProductInfo, baseAlarmTypeList } from "@/api/business/fireIot/alarmManage.js";
  36. const { proxy } = getCurrentInstance();
  37. const dataList = ref([]);
  38. const pageSize = ref(20);
  39. const current = ref(1);
  40. const total = ref(0);
  41. /**
  42. * @页面初始化
  43. */
  44. function init() {
  45. baseAlarmTypeList({ productName: "", current: current.value, size: pageSize.value }).then((requset) => {
  46. if (requset.status === "SUCCESS") {
  47. dmpProductInfo({ current: current.value, size: 2000 }).then((requset1) => {
  48. if (requset1.status === "SUCCESS") {
  49. requset.data.records.forEach((e) => {
  50. requset1.data.records.forEach((el) => {
  51. if (e.productCode === el.productCode) {
  52. e.typeImg = el.typeImg ? el.typeImg : "/static/images/404.png";
  53. }
  54. });
  55. });
  56. dataList.value = requset.data.records;
  57. total.value = requset.data.total;
  58. }
  59. });
  60. }
  61. });
  62. }
  63. function handleToDetails(productCode, productName) {
  64. proxy.$tab.navigateTo(`/pages/business/fireIot/repairManage/repairDetailsList?productCode=${productCode}&productName=${productName}`);
  65. }
  66. /**
  67. * @scrollView加载数据
  68. */
  69. function load() {
  70. pageSize.value += 10;
  71. init();
  72. }
  73. /**
  74. * @scrollView刷新数据
  75. */
  76. function refresh() {
  77. pageSize.value = 20;
  78. init();
  79. }
  80. onShow(() => {
  81. //调用系统主题颜色
  82. proxy.$settingStore.systemThemeColor([1]);
  83. init();
  84. });
  85. </script>