export.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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 v-model="datetimerange" type="daterange" start-placeholder="请选择开始时间"
  8. end-placeholder="请选择结束时间" start="2000-3-20 12:00:00" end="2025-10-20 20:00:00" rangeSeparator="至" />
  9. </view>
  10. </view>
  11. <block>
  12. <view class="processList">
  13. <view class="cu-list menu-avatar">
  14. <view class="cu-item" v-for="(item,index) in getExportData" :key="index">
  15. <view class="cu-avatar lg">
  16. <image class="image-bg"
  17. :src="item.device_state=='离线'?'/static/device-icon.png':'/static/device-icon.png'" />
  18. </view>
  19. <view class="content">
  20. <view class="pro-title">
  21. <view class="cut" >{{item.owner_name}}</view>
  22. </view>
  23. <view class="pro-des ">
  24. <view class="text-cut">{{item.unitinfo}}</view>
  25. </view>
  26. <view class="pro-date ">{{item.install_time}}</view>
  27. </view>
  28. <view class="nav-right num">
  29. <view class="text-grey">
  30. <!-- <span class="online">{{item.device_state}}</span> -->
  31. <span :class="item.device_state=='在线'?'online':'offline'">{{item.device_state}}</span>
  32. <text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
  33. </view>
  34. </view>
  35. </view>
  36. <view class=" text-center margin-top" v-if="!this.getExportData.length&&this.dataRes">暂无数据...</view>
  37. </view>
  38. </view>
  39. </block>
  40. <view v-if="this.getExportData.length>0" class="padding-lr padding-bottom-lg bg-white" style="position:fixed;bottom:0;width:100%">
  41. <view class="btn-area">
  42. <button class="bg-blue round missReport margin-top" @tap="exportButton()">导 出 </button>
  43. </view>
  44. </view>
  45. </view>
  46. </template>
  47. <script>
  48. export default {
  49. data() {
  50. return {
  51. getExportData: [],
  52. dataRes: 0,
  53. datetimerange: ['', ''],
  54. keyWords:'',
  55. dwtype:0
  56. };
  57. },
  58. onLoad: function(option) {
  59. this.dwtype=option.dwtype
  60. this.getData({
  61. "company_code": uni.getStorageSync('selectedCode'),
  62. "dwtype":this.dwtype,
  63. "start_time": '',
  64. "end_time": '',
  65. })
  66. },
  67. watch: {
  68. datetimerange(newval) {
  69. this.getData({
  70. "company_code": uni.getStorageSync('selectedCode'),
  71. "dwtype":this.dwtype,
  72. "start_time":newval[0],
  73. "end_time": newval[1],
  74. })
  75. }
  76. },
  77. methods: {
  78. async getData(params = {}) {
  79. const res = await this.$myRequest({
  80. url: 'DeviceManagement/getDeviceList', //设备管理列表渲染
  81. data: params,
  82. showLoading: true
  83. })
  84. this.getExportData = res.data.data;
  85. this.dataRes = 1;
  86. },
  87. exportButton() {
  88. // alert(this.dwtype)
  89. //#ifdef H5
  90. var start_time =this.datetimerange[0]?`start_time/${this.datetimerange[0]}/`:'';
  91. var end_time =this.datetimerange[1]?`end_time/${this.datetimerange[1]}/`:'';
  92. let exportUrl = this.$BASE_URL+
  93. `ExportModule/getDeviceListExpor/${start_time}${end_time}dwtype/${this.dwtype}/company_code/${uni.getStorageSync('selectedCode')}/`
  94. // alert(exportUrl)
  95. var ua = window.navigator.userAgent.toLowerCase();
  96. if (ua.match(/MicroMessenger/i) == 'micromessenger') {
  97. uni.showModal({
  98. showCancel: false,
  99. content: '如需下载,请在默认浏览器中操作',
  100. success: function(res) {
  101. window.location.href = exportUrl;
  102. }
  103. });
  104. } else {
  105. window.location.href = exportUrl;
  106. }
  107. //#endif
  108. }
  109. }
  110. }
  111. </script>
  112. <style lang="scss">
  113. </style>