fix:gamma 增加 MDC 弹窗
This commit is contained in:
parent
f2b3e58940
commit
92b8b33c9b
224
src/views/spectrumAnalysis/components/Modals/MDCModal.vue
Normal file
224
src/views/spectrumAnalysis/components/Modals/MDCModal.vue
Normal file
|
@ -0,0 +1,224 @@
|
||||||
|
<template>
|
||||||
|
<custom-modal
|
||||||
|
v-model="visible"
|
||||||
|
:width="1231"
|
||||||
|
title="MDC"
|
||||||
|
class="nuclide-activity-and-mdc-modal"
|
||||||
|
>
|
||||||
|
<!-- 顶部搜索栏
|
||||||
|
<a-form-model class="search-form">
|
||||||
|
<a-space class="operators" :size="20">
|
||||||
|
<a-button type="primary" @click="handleExportToExcel">
|
||||||
|
<img src="@/assets/images/spectrum/download.png" />
|
||||||
|
Export to Excel
|
||||||
|
</a-button>
|
||||||
|
</a-space>
|
||||||
|
</a-form-model>-->
|
||||||
|
|
||||||
|
<!-- 顶部搜索栏结束 -->
|
||||||
|
<a-spin :spinning="isLoading">
|
||||||
|
<custom-table :columns="columns" :list="list" :scroll="{ y: 460 }" :canSelect="false"></custom-table>
|
||||||
|
</a-spin>
|
||||||
|
<div slot="custom-footer" style="text-align: center">
|
||||||
|
<a-space :size="20">
|
||||||
|
<a-button type="primary" @click="handleExportToExcel">Export to Excel</a-button>
|
||||||
|
<a-button @click="visible = false">Close</a-button>
|
||||||
|
</a-space>
|
||||||
|
</div>
|
||||||
|
</custom-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getAction } from '@/api/manage'
|
||||||
|
import ModalMixin from '@/mixins/ModalMixin'
|
||||||
|
import SampleDataMixin from '../../SampleDataMixin'
|
||||||
|
import * as XLSX from 'xlsx'
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: 'Nuclide',
|
||||||
|
dataIndex: 'nuclideName',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'HalfLife',
|
||||||
|
dataIndex: 'halflifeView',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Energy (keV)',
|
||||||
|
dataIndex: 'energy',
|
||||||
|
customRender: (text) => {
|
||||||
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Yield (%)',
|
||||||
|
dataIndex: 'yield',
|
||||||
|
customRender: (text) => {
|
||||||
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Efficiency',
|
||||||
|
dataIndex: 'efficiency',
|
||||||
|
customRender: (text) => {
|
||||||
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'MDC (uBq/m3)',
|
||||||
|
dataIndex: 'mdc',
|
||||||
|
customRender: (text) => {
|
||||||
|
return text
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'MDCErr (uBq/m3)',
|
||||||
|
dataIndex: 'mdcErr',
|
||||||
|
customRender: (text) => {
|
||||||
|
return text
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export default {
|
||||||
|
mixins: [ModalMixin, SampleDataMixin],
|
||||||
|
data() {
|
||||||
|
this.columns = columns
|
||||||
|
return {
|
||||||
|
queryParam: {
|
||||||
|
activityReferenceTime: undefined,
|
||||||
|
concentrationReferenceTime: undefined,
|
||||||
|
},
|
||||||
|
compareVisible: false,
|
||||||
|
isLoading: false,
|
||||||
|
|
||||||
|
list: [],
|
||||||
|
compareList: [],
|
||||||
|
fileName: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 切换比较
|
||||||
|
handleComparision() {
|
||||||
|
this.compareVisible = !this.compareVisible
|
||||||
|
},
|
||||||
|
|
||||||
|
async getInfo() {
|
||||||
|
this.list = [];
|
||||||
|
try {
|
||||||
|
this.isLoading = true
|
||||||
|
const { sampleId, inputFileName: fileName } = this.sampleData
|
||||||
|
const { success, result, message } = await getAction('/gamma/viewMDC', {
|
||||||
|
fileName,
|
||||||
|
})
|
||||||
|
if (success) {
|
||||||
|
this.list = result
|
||||||
|
} else {
|
||||||
|
this.$message.error(message)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error)
|
||||||
|
} finally {
|
||||||
|
this.isLoading = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
beforeModalOpen() {
|
||||||
|
this.compareVisible = false
|
||||||
|
this.getInfo()
|
||||||
|
},
|
||||||
|
|
||||||
|
// 导出到Excel
|
||||||
|
handleExportToExcel() {
|
||||||
|
const { inputFileName } = this.sampleData
|
||||||
|
let header = [];
|
||||||
|
this.columns.forEach(f=>{
|
||||||
|
header.push(f.dataIndex)
|
||||||
|
})
|
||||||
|
let name = inputFileName.split('.')[0]
|
||||||
|
if (this.list.length > 0) {
|
||||||
|
let _this = this
|
||||||
|
// saveAs(blob, `${_this.fileName}`)
|
||||||
|
// 创建工作簿
|
||||||
|
const workbook = XLSX.utils.book_new()
|
||||||
|
|
||||||
|
// 创建工作表
|
||||||
|
const worksheet = XLSX.utils.json_to_sheet(_this.list,{header, skipHeader:false})
|
||||||
|
|
||||||
|
// 将工作表添加到工作簿
|
||||||
|
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1')
|
||||||
|
|
||||||
|
// 导出Excel文件
|
||||||
|
XLSX.writeFile(workbook, `${name}_MDC` + '.xlsx')
|
||||||
|
} else {
|
||||||
|
this.$message.warning('No downloadable data')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.nuclide-activity-and-mdc-modal {
|
||||||
|
::v-deep {
|
||||||
|
.ant-modal-body {
|
||||||
|
padding: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-form {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
|
||||||
|
.time-pickers {
|
||||||
|
display: flex;
|
||||||
|
.ant-form-item {
|
||||||
|
margin-bottom: 0;
|
||||||
|
|
||||||
|
&:nth-child(2) {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep {
|
||||||
|
.ant-form-item {
|
||||||
|
&-label {
|
||||||
|
> label {
|
||||||
|
color: #ade6ee;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&-control-wrapper {
|
||||||
|
width: 210px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.operators {
|
||||||
|
.ant-btn {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
img {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.comparison-list {
|
||||||
|
padding-top: 15px;
|
||||||
|
border-top: 1px solid rgba(13, 109, 118, 0.5);
|
||||||
|
|
||||||
|
&-item {
|
||||||
|
&-title {
|
||||||
|
color: #0cebc9;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-top: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -94,6 +94,9 @@
|
||||||
<nuclide-activity-and-mdc-modal v-model="nuclideActivityAndMDCModalVisible" />
|
<nuclide-activity-and-mdc-modal v-model="nuclideActivityAndMDCModalVisible" />
|
||||||
<!-- Nuclide Activity and MDC 弹窗结束 -->
|
<!-- Nuclide Activity and MDC 弹窗结束 -->
|
||||||
|
|
||||||
|
<!-- Nuclide Activity and MDC 弹窗开始 -->
|
||||||
|
<mdc-modal v-model="MDCModalVisible" />
|
||||||
|
<!-- Nuclide Activity and MDC 弹窗结束 -->
|
||||||
<!-- Save Setting 弹窗开始 -->
|
<!-- Save Setting 弹窗开始 -->
|
||||||
<save-setting-modal v-model="saveSettingModalVisible" @save="handleSaveResultsToFile" />
|
<save-setting-modal v-model="saveSettingModalVisible" @save="handleSaveResultsToFile" />
|
||||||
<!-- Save Setting 弹窗结束 -->
|
<!-- Save Setting 弹窗结束 -->
|
||||||
|
@ -240,6 +243,7 @@ import LoadFromDbModal from './components/Modals/LoadFromDBModal.vue'
|
||||||
import LoadFromFileModal from './components/Modals/LoadFromFileModal.vue'
|
import LoadFromFileModal from './components/Modals/LoadFromFileModal.vue'
|
||||||
import PeakInfomation from './components/PeakInfomation.vue'
|
import PeakInfomation from './components/PeakInfomation.vue'
|
||||||
import NuclideActivityAndMdcModal from './components/Modals/NuclideActivityAndMDCModal.vue'
|
import NuclideActivityAndMdcModal from './components/Modals/NuclideActivityAndMDCModal.vue'
|
||||||
|
import MdcModal from './components/Modals/MDCModal.vue'
|
||||||
import MultiLevelMenu from './components/MultiLevelMenu.vue'
|
import MultiLevelMenu from './components/MultiLevelMenu.vue'
|
||||||
import SaveSettingModal from './components/Modals/SaveSettingModal.vue'
|
import SaveSettingModal from './components/Modals/SaveSettingModal.vue'
|
||||||
import AnalyzeSettingModal from './components/Modals/AnalyzeSettingModal.vue'
|
import AnalyzeSettingModal from './components/Modals/AnalyzeSettingModal.vue'
|
||||||
|
@ -292,6 +296,7 @@ export default {
|
||||||
LoadFromDbModal,
|
LoadFromDbModal,
|
||||||
LoadFromFileModal,
|
LoadFromFileModal,
|
||||||
PeakInfomation,
|
PeakInfomation,
|
||||||
|
MdcModal,
|
||||||
NuclideActivityAndMdcModal,
|
NuclideActivityAndMdcModal,
|
||||||
MultiLevelMenu,
|
MultiLevelMenu,
|
||||||
SaveSettingModal,
|
SaveSettingModal,
|
||||||
|
@ -379,6 +384,7 @@ export default {
|
||||||
arrOrRRRModalType: 1, // Reports -> ARR 或RRR 弹窗类型
|
arrOrRRRModalType: 1, // Reports -> ARR 或RRR 弹窗类型
|
||||||
arrOrRRRModalExtraData: {},
|
arrOrRRRModalExtraData: {},
|
||||||
|
|
||||||
|
MDCModalVisible: false, // Reports -> Radionuclide Activity 弹窗
|
||||||
nuclideActivityAndMDCModalVisible: false, // Reports -> Radionuclide Activity 弹窗
|
nuclideActivityAndMDCModalVisible: false, // Reports -> Radionuclide Activity 弹窗
|
||||||
spectrumModalVisible: false, // Reports -> Spectrum 弹窗
|
spectrumModalVisible: false, // Reports -> Spectrum 弹窗
|
||||||
sampleInfomationModalVisible: false, // Reports -> Sample Infomation 弹窗
|
sampleInfomationModalVisible: false, // Reports -> Sample Infomation 弹窗
|
||||||
|
@ -1466,6 +1472,12 @@ export default {
|
||||||
},
|
},
|
||||||
show: this.isGamma,
|
show: this.isGamma,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
type: 'a-menu-item',
|
||||||
|
title: 'MDC',
|
||||||
|
handler: () => (this.MDCModalVisible = true),
|
||||||
|
show: this.isGamma,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: 'a-menu-item',
|
type: 'a-menu-item',
|
||||||
title: 'Radionuclide Activity',
|
title: 'Radionuclide Activity',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user