index.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <template>
  2. <view class="processWrapper exportBody">
  3. <view style="height: 98rpx"></view>
  4. <view class="ding">
  5. <!-- <calendar></calendar> -->
  6. <view class="example-body">
  7. <uni-datetime-picker
  8. v-model="datetimerange"
  9. type="daterange"
  10. start-placeholder="请选择开始时间"
  11. end-placeholder="请选择结束时间"
  12. start="2000-3-20 12:00:00"
  13. end="2025-10-20 20:00:00"
  14. rangeSeparator="至"
  15. />
  16. </view>
  17. </view>
  18. <block>
  19. <view class="processList">
  20. <view class="cu-list menu-avatar">
  21. <view class="cu-item" v-for="(item, index) in getExportData" :key="index">
  22. <view class="cu-avatar lg">
  23. <image class="image-bg" :src="item.clzt == 0 ? '@/static/images/export/process-icon.png' : '@/static/images/export/processed-icon.png'" />
  24. </view>
  25. <view class="content">
  26. <view class="pro-title">
  27. <view class="cut">{{ keyWords == "人工督察单" ? item.artificial_code : item.supervise_code }}</view>
  28. </view>
  29. <view class="pro-des">
  30. <view class="text-cut">{{ item.content }}</view>
  31. </view>
  32. <view class="pro-date">{{ item.timestamp }}</view>
  33. </view>
  34. <view class="action" style="z-index: 99">
  35. <view class="unProcess" style="color: #ff4e00" v-if="item.clzt == 0">未处理</view>
  36. <view class="processed" style="color: #08be04" v-else>已处理</view>
  37. </view>
  38. </view>
  39. <view class="text-center margin-top" v-if="!getExportData.length && dataRes">暂无数据...</view>
  40. </view>
  41. </view>
  42. </block>
  43. <view v-if="getExportData.length > 0" class="padding-lr padding-bottom-lg bg-white" style="position: fixed; bottom: 0; width: 100%">
  44. <view class="btn-area">
  45. <button class="bg-blue round missReport margin-top" @tap="exportButton()">导 出</button>
  46. </view>
  47. </view>
  48. </view>
  49. </template>
  50. <script setup>
  51. import config from "@/config";
  52. import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
  53. import { ref, reactive, computed, getCurrentInstance, toRefs, inject, watchEffect } from "vue";
  54. import { publicStores, useStores } from "@/store/modules/index";
  55. const useStore = useStores();
  56. const { proxy } = getCurrentInstance();
  57. const data = reactive({
  58. getExportData: [],
  59. dataRes: 0,
  60. datetimerange: ["", ""],
  61. keyWords: "",
  62. });
  63. let { getExportData, dataRes, datetimerange, keyWords } = toRefs(data);
  64. onLoad((option) => {
  65. keyWords = option.keywords;
  66. getData({
  67. company_code: uni.getStorageSync("selectedCode"),
  68. start_time: "",
  69. end_time: "",
  70. });
  71. });
  72. function datetimerange1(newval) {
  73. getData({
  74. company_code: uni.getStorageSync("selectedCode"),
  75. start_time: newval[0],
  76. end_time: newval[1],
  77. });
  78. }
  79. async function getData(params = {}) {
  80. const res = await this.$myRequest({
  81. // url: listUrl, //人员督察单渲染
  82. url: keyWords == "人工督察单" ? "FireInspector/getManualInspectorList" : "FireInspector/getElectronicInspectorList",
  83. data: params,
  84. showLoading: true,
  85. });
  86. getExportData = res.data.data;
  87. dataRes = 1;
  88. }
  89. function exportButton() {
  90. let url2 = "";
  91. switch (keyWords) {
  92. case "人工督察单":
  93. url2 = "ExportModule/getManualInspectorListExpor";
  94. break;
  95. case "电子督察单":
  96. url2 = "ExportModule/getElectronicInspectorListExpor";
  97. break;
  98. default:
  99. break;
  100. }
  101. //#ifdef H5
  102. var start_time = datetimerange[0] ? `start_time/${datetimerange[0]}/` : "";
  103. var end_time = datetimerange[1] ? `end_time/${datetimerange[1]}/` : "";
  104. let exportUrl = config.BASE_URL + url2 + `/${start_time}${end_time}company_code/${uni.getStorageSync("selectedCode")}/`;
  105. var ua = window.navigator.userAgent.toLowerCase();
  106. if (ua.match(/MicroMessenger/i) == "micromessenger") {
  107. uni.showModal({
  108. showCancel: false,
  109. content: "如需下载,请在默认浏览器中操作",
  110. success: function (res) {
  111. window.location.href = exportUrl;
  112. },
  113. });
  114. } else {
  115. window.location.href = exportUrl;
  116. }
  117. //#endif
  118. }
  119. watchEffect(() => {
  120. datetimerange1();
  121. });
  122. </script>
  123. <style lang="scss"></style>