excel pdf

This commit is contained in:
burakovec
2025-09-27 05:35:13 +03:00
parent 58cd065977
commit 4024d539d7
2 changed files with 43 additions and 14 deletions

View File

@ -297,18 +297,47 @@
GetLocalData() GetLocalData()
} }
const GetLocalData = async () => { const GetLocalData = async () => {
console.log("GetLocalData",selectedExport.value)
if (selectedExport.value !== null) { if (selectedExport.value !== null) {
const exportUrl = let exportUrl = ''
axios.defaults.baseURL + dataStore.apiBase + props.apiList + '?isPdf=true' let fileType = ''
let fileName = ''
const link = document.createElement('a') // Export tipine göre URL ve dosya ayarları
link.href = exportUrl if (selectedExport.value === 1) {
document.body.appendChild(link) // PDF
link.dispatchEvent( exportUrl = axios.defaults.baseURL + dataStore.apiBase + props.apiList + '/Pdf'
new MouseEvent('click', { bubbles: true, cancelable: true, view: window }) fileType = 'application/pdf'
) fileName = 'export.pdf'
link.remove() } else if (selectedExport.value === 2) {
window.URL.revokeObjectURL(link.href) // Excel
exportUrl = axios.defaults.baseURL + dataStore.apiBase + props.apiList + '/Excel'
fileType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
fileName = 'export.xlsx'
}
console.log("dataStore",dataStore)
// Axios ile dosya indirme - interceptor otomatik olarak token ekleyecek
try {
const response = await axios.get(exportUrl, {
responseType: 'blob'
})
const blob = new Blob([response.data], { type: fileType })
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.download = fileName
document.body.appendChild(link)
link.dispatchEvent(
new MouseEvent('click', { bubbles: true, cancelable: true, view: window })
)
link.remove()
window.URL.revokeObjectURL(url)
} catch (error) {
console.error('Export error:', error)
}
selectedExport.value = null selectedExport.value = null
exportPanel.value = false exportPanel.value = false

View File

@ -22,7 +22,7 @@
</div> </div>
</div> </div>
<div class="panel-content-item" v-if="showExport"> <!-- <div class="panel-content-item" v-if="showExport">
<div class="button-c button-icon button-export" @click="SelectExport(3)"> <div class="button-c button-icon button-export" @click="SelectExport(3)">
<i class="ico-c"> <i class="ico-c">
<svg> <svg>
@ -31,7 +31,7 @@
</i> </i>
<span class="panel-date">CSV</span> <span class="panel-date">CSV</span>
</div> </div>
</div> </div> -->
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -45,7 +45,7 @@
const emit = defineEmits(['update:selectedExport']) const emit = defineEmits(['update:selectedExport'])
const selected = ref<number>(0) const selected = ref<number>(0)
const showExport = ref<boolean>(false) const showExport = ref<boolean>(true)
const SelectExport = (exp: number) => { const SelectExport = (exp: number) => {
selected.value = exp selected.value = exp