Просмотр исходного кода

feat(iot-rd-daily-report): 新增非生产时效导出功能

Zimo 1 месяц назад
Родитель
Сommit
65f17f4d5f
2 измененных файлов с 39 добавлено и 0 удалено
  1. 8 0
      src/api/pms/iotrddailyreport/index.ts
  2. 31 0
      src/views/pms/iotrddailyreport/summary.vue

+ 8 - 0
src/api/pms/iotrddailyreport/index.ts

@@ -50,6 +50,14 @@ export const IotRdDailyReportApi = {
   nptStatistics: async (params: any) => {
     return await request.get({ url: `/pms/iot-rd-daily-report/nptStatistics`, params })
   },
+
+  exportNptStatistics: async (params: any) => {
+    return await request.download({
+      url: `/pms/iot-rd-daily-report/exportNptStatistics`,
+      params
+    })
+  },
+
   // 查询瑞都日报分页
   getIotRdDailyReportPage: async (params: any) => {
     return await request.get({ url: `/pms/iot-rd-daily-report/page`, params })

+ 31 - 0
src/views/pms/iotrddailyreport/summary.vue

@@ -1,5 +1,7 @@
 <script setup lang="ts">
 import dayjs from 'dayjs'
+import { IotRdDailyReportApi } from '@/api/pms/iotrddailyreport'
+import download from '@/utils/download'
 import { rangeShortcuts } from '@/utils/formatTime'
 import { resolveDailyReportDeptId } from '@/utils/dailyReportDept'
 import { useUserStore } from '@/store/modules/user'
@@ -12,6 +14,7 @@ defineOptions({
 
 const route = useRoute()
 const pageRouteName = route.name
+const message = useMessage()
 const TOP_DEPT_ID = 163
 const deptId = resolveDailyReportDeptId(useUserStore().getUser.deptId, TOP_DEPT_ID)
 
@@ -42,6 +45,7 @@ const activeTab = ref<'日报统计' | '非生产时效'>('日报统计')
 const defaultView = ref<'表格' | '看板'>('表格')
 const deptName = ref('四川瑞都')
 const refreshKey = ref(0)
+const exportLoading = ref(false)
 
 const getRouteCreateTime = () => {
   const createTime = route.query.createTime
@@ -97,6 +101,23 @@ const resetQuery = () => {
   handleQuery()
 }
 
+const handleExport = async () => {
+  try {
+    await message.exportConfirm()
+
+    exportLoading.value = true
+    const { pageNo: _pageNo, pageSize: _pageSize, ...params } = query.value
+
+    void _pageNo
+    void _pageSize
+
+    const data = await IotRdDailyReportApi.exportNptStatistics(params)
+    download.excel(data, '瑞都非生产时效统计.xlsx')
+  } finally {
+    exportLoading.value = false
+  }
+}
+
 onMounted(() => {
   syncQueryFromRoute()
 })
@@ -158,6 +179,16 @@ watch(
         <el-button size="small" @click="resetQuery">
           <Icon icon="ep:refresh" class="mr-5px" /> 重置
         </el-button>
+        <el-button
+          v-if="activeTab === '非生产时效'"
+          v-hasPermi="['pms:iot-rd-daily-report:export']"
+          size="small"
+          type="success"
+          plain
+          :loading="exportLoading"
+          @click="handleExport">
+          <Icon icon="ep:download" class="mr-5px" /> 导出
+        </el-button>
       </el-form-item>
     </el-form>