zhouwenxuan
2023-08-14 73ff31f85c1345760ef7ea3cb03e53b41dbbaf18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<template>
    <div class="system-gas-container">
        <el-card shadow="hover">
            <div class="system-menu-search mb15">
                <el-form :inline="true" >
                    <el-form-item label="日期:" >
                        <el-date-picker
                            v-model="state.tableData.listQuery.searchParams.time"
                            type="month"
                            format="YYYY-MM"
                            value-format="YYYY-MM"
                        />
                    </el-form-item>
                    <el-button size="default" type="primary" class="ml10" @click="search">
                        <el-icon>
                            <ele-Search />
                        </el-icon>
                        查询
                    </el-button>
                    <el-button size="default" class="ml10" @click="reset()">
                        <el-icon>
                            <RefreshLeft />
                        </el-icon>
                        重置
                    </el-button>
                </el-form>
            </div>
            <el-table :data="state.tableData.data" style="width: 100%">
                <el-table-column align="center" prop="date" label="日期"/>
                <el-table-column align="center"  label="文件名称">
                    <template #default="scope">
                        <div v-for="(item, index) in scope.row.file" :key="index">
                            {{ item.filename}}
                        </div>
                    </template>
                </el-table-column>
                <el-table-column label="操作" show-overflow-tooltip width="140">
                    <template #default="scope">
                        <el-button size="small" text type="primary" @click="downLoad(scope.row)">下载</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <br />
            <el-pagination
                @size-change="onHandleSizeChange"
                @current-change="onHandleCurrentChange"
                class="page-position"
                :pager-count="5"
                :page-sizes="[10, 20, 30]"
                v-model:current-page="state.tableData.listQuery.pageIndex"
                background
                v-model:page-size="state.tableData.listQuery.pageSize"
                layout="total, sizes, prev, pager, next, jumper"
                :total="state.tableData.total">
            </el-pagination>
            <br />
            <br />
        </el-card>
    </div>
</template>
 
<script setup lang="ts">
import {reactive, ref} from "vue";
import { TableDailytState } from "/@/types/monitorData";
import axios from "axios";
import Cookies from "js-cookie";
import { ElMessage } from 'element-plus'
 
const state = reactive<TableDailytState>({
    tableData: {
        data: [
            // {
            //     id:'1',
            //     date: '2023年9月1号',
            //     file: [
            //         {
            //             filename: '富城能源气体监测日报2023_09_01.docx',
            //             url: 'xxx'
            //         }
            //
            //     ]
            // }
        ],
        total: 0,
        loading: false,
        listQuery: {
            pageIndex: 1,
            pageSize: 10,
            searchParams:{
                time: ''
            }
        }
    }
});
 
const initDailyData = () => {
    console.log("数据列表")
};
const onHandleSizeChange = (val: number) => {
    state.tableData.listQuery.pageSize = val;
    initDailyData();
};
// 分页改变
const onHandleCurrentChange = (val: number) => {
    state.tableData.listQuery.pageIndex = val;
    initDailyData();
};
const downLoad = (file: any) => {
    // axios.get(process.env.VITE_API_URL + file.fileUrl, {
    //     headers: {
    //         'Content-Type': 'application/json',
    //         'Authorization': Cookies.get('token'),
    //     },
    //     responseType: 'blob'
    // }).then(res => {
    //     if (res) {
    //         const link = document.createElement('a')
    //         let blob = new Blob([res.data], {
    //             type: res.data.type
    //         })
    //         link.style.display = "none";
    //         link.href = URL.createObjectURL(blob); // 创建URL
    //         link.setAttribute("download", file.fileName);
    //         document.body.appendChild(link);
    //         link.click();
    //         document.body.removeChild(link);
    //     } else {
    //         ElMessage({
    //             message: '获取文件失败',
    //             type: 'error',
    //         })
    //     }
    // })
}
const search = () => {
    console.log("xxxx",state.tableData.listQuery.searchParams)
}
const reset = () => {
    state.tableData.listQuery.searchParams.time = '';
}
</script>
<style scoped lang="scss">
 
</style>