BetaGamma Analyser Log 和之前一样 直接保存文件,不需要输入名称

This commit is contained in:
任珮宇 2023-11-08 14:28:14 +08:00
parent c8c1c021ea
commit b026200b25
2 changed files with 27 additions and 35 deletions

View File

@ -13,7 +13,7 @@
import ModalMixin from '@/mixins/ModalMixin' import ModalMixin from '@/mixins/ModalMixin'
import { getAction } from '@/api/manage' import { getAction } from '@/api/manage'
import SampleDataMixin from '@/views/spectrumAnalysis/SampleDataMixin' import SampleDataMixin from '@/views/spectrumAnalysis/SampleDataMixin'
import { showSaveFileModal } from '@/utils/file' import { saveAs } from 'file-saver'
export default { export default {
mixins: [ModalMixin, SampleDataMixin], mixins: [ModalMixin, SampleDataMixin],
data() { data() {
@ -25,7 +25,14 @@ export default {
async getDetail() { async getDetail() {
try { try {
this.isLoading = true this.isLoading = true
const { dbName, sampleId, inputFileName: sampleFileName, gasFileName, detFileName, qcFileName } = this.newSampleData const {
dbName,
sampleId,
inputFileName: sampleFileName,
gasFileName,
detFileName,
qcFileName,
} = this.newSampleData
const result = await getAction('/spectrumAnalysis/viewBGLogViewer', { const result = await getAction('/spectrumAnalysis/viewBGLogViewer', {
dbName, dbName,
sampleId, sampleId,
@ -34,7 +41,7 @@ export default {
detFileName, detFileName,
qcFileName, qcFileName,
}) })
if(typeof result == 'string') { if (typeof result == 'string') {
this.content = result this.content = result
} else { } else {
const { success, result, message } = res const { success, result, message } = res
@ -56,8 +63,9 @@ export default {
}, },
handleClick() { handleClick() {
let name = this.newSampleData.inputFileName.split('.')[0]
const blob = new Blob([this.content], { type: 'text/plain' }) const blob = new Blob([this.content], { type: 'text/plain' })
showSaveFileModal(blob, 'txt') saveAs(blob, `${name}_beta analysis log.txt`)
}, },
}, },
} }

View File

@ -3,7 +3,7 @@
<a-spin :spinning="isLoading"> <a-spin :spinning="isLoading">
<pre class="data-processing-log">{{ text }}</pre> <pre class="data-processing-log">{{ text }}</pre>
</a-spin> </a-spin>
<div slot="custom-footer" style="text-align: center;"> <div slot="custom-footer" style="text-align: center">
<a-space :size="20"> <a-space :size="20">
<a-button type="primary" @click="handleOk">Export</a-button> <a-button type="primary" @click="handleOk">Export</a-button>
<a-button @click="visible = false">Cancel</a-button> <a-button @click="visible = false">Cancel</a-button>
@ -15,64 +15,48 @@
<script> <script>
import ModalMixin from '@/mixins/ModalMixin' import ModalMixin from '@/mixins/ModalMixin'
import { getAction } from '@/api/manage' import { getAction } from '@/api/manage'
import { saveAs } from 'file-saver'; import { saveAs } from 'file-saver'
import SampleDataMixin from '../../SampleDataMixin' import SampleDataMixin from '../../SampleDataMixin'
export default { export default {
mixins: [ModalMixin, SampleDataMixin], mixins: [ModalMixin, SampleDataMixin],
data() { data() {
return { return {
text: "", text: '',
isLoading: false, isLoading: false,
fileName: '' fileName: '',
} }
}, },
methods: { methods: {
beforeModalOpen() { beforeModalOpen() {
this.getViewGammaviewerLog(); this.getViewGammaviewerLog()
}, },
getViewGammaviewerLog() { getViewGammaviewerLog() {
this.isLoading = true this.isLoading = true
const { sampleId, inputFileName: fileName } = this.sampleData const { sampleId, inputFileName: fileName } = this.sampleData
let params = { let params = {
sampleId, sampleId,
fileName fileName,
} }
getAction("/gamma/viewGammaViewerLog", params).then(res => { getAction('/gamma/viewGammaViewerLog', params).then((res) => {
this.isLoading = false this.isLoading = false
if (res.success) { if (res.success) {
this.text = res.result this.text = res.result
} else { } else {
this.text = "" this.text = ''
this.$message.warning("This operation fails. Contact your system administrator") this.$message.warning('This operation fails. Contact your system administrator')
} }
}) })
}, },
handleOk() { handleOk() {
this.fileName="" this.fileName = ''
if (this.text) { if (this.text) {
let strData = new Blob([this.text], { type: 'text/plain;charset=utf-8' }); let name = this.newSampleData.inputFileName.split('.')[0]
// saveAs(strData, `GammaViewer Log.txt`) let strData = new Blob([this.text], { type: 'text/plain;charset=utf-8' })
let _this = this saveAs(strData, `${name}_gamma analysis log.txt`)
this.$confirm({
title: 'Please enter file name',
content: h => <a-input v-model={_this.fileName} />,
okText: 'Cancle',
cancelText: 'Save',
okButtonProps: {style: {backgroundColor: "#b98326", color: "#fff", borderColor: "transparent"}},
cancelButtonProps: {style: {color: "#fff", backgroundColor: "#31aab0", borderColor: "transparent"}},
onOk() {
console.log('Cancel');
},
onCancel() {
if (_this.fileName) {
saveAs(strData, `${_this.fileName}.txt`)
}
},
});
} else { } else {
this.$message.warning("No data can be saved!") this.$message.warning('No data can be saved!')
} }
} },
}, },
} }
</script> </script>