2023-06-28 19:25:11 +08:00
|
|
|
|
<template>
|
|
|
|
|
<div class="beta-gamma-analysis">
|
2023-07-11 19:35:18 +08:00
|
|
|
|
<!-- 二级交互栏 -->
|
|
|
|
|
<div class="spectrum-analysis-sub-operators">
|
|
|
|
|
<pop-over-with-icon placement="bottomLeft">
|
|
|
|
|
Detailed-Information
|
|
|
|
|
<detailed-infomation slot="content" />
|
|
|
|
|
</pop-over-with-icon>
|
|
|
|
|
<pop-over-with-icon placement="bottomLeft">
|
|
|
|
|
QC Flags
|
2023-07-24 19:26:46 +08:00
|
|
|
|
<beta-gamma-qc-flags slot="content" :data="qcFlags" />
|
2023-07-11 19:35:18 +08:00
|
|
|
|
</pop-over-with-icon>
|
|
|
|
|
<pop-over-with-icon placement="bottomLeft" style="width: 159px" v-model="spectraVisible">
|
|
|
|
|
Spectra
|
2023-07-13 19:18:23 +08:00
|
|
|
|
<spectra
|
|
|
|
|
slot="content"
|
|
|
|
|
v-model="spectraType"
|
|
|
|
|
@input="
|
|
|
|
|
spectraVisible = false
|
|
|
|
|
changeChartByType($event)
|
|
|
|
|
"
|
|
|
|
|
/>
|
2023-07-11 19:35:18 +08:00
|
|
|
|
</pop-over-with-icon>
|
2023-06-28 19:25:11 +08:00
|
|
|
|
</div>
|
2023-07-11 19:35:18 +08:00
|
|
|
|
<!-- 二级交互栏结束 -->
|
|
|
|
|
<!-- 主体部分 -->
|
|
|
|
|
<div class="beta-gamma-analysis-main">
|
|
|
|
|
<!-- 左侧图表 -->
|
|
|
|
|
<div class="beta-gamma-spectrum-sample">
|
2023-06-28 19:25:11 +08:00
|
|
|
|
<beta-gamma-chart-container>
|
|
|
|
|
<template slot="title">
|
2023-07-11 19:35:18 +08:00
|
|
|
|
Beta-Gamma Spectrum: Sample
|
2023-06-28 19:25:11 +08:00
|
|
|
|
</template>
|
2023-07-11 19:35:18 +08:00
|
|
|
|
<beta-gamma-spectrum-chart
|
|
|
|
|
ref="betaGammaChartRef"
|
2023-07-13 19:18:23 +08:00
|
|
|
|
:histogramDataList="histogramDataList"
|
|
|
|
|
:histogramDataDList="histogramDataDList"
|
2023-07-17 19:37:46 +08:00
|
|
|
|
:boundary="boundaryList"
|
2023-07-11 19:35:18 +08:00
|
|
|
|
@positionChange="handlePositionChange"
|
|
|
|
|
@rangeChange="handleRangeChange"
|
|
|
|
|
/>
|
2023-06-28 19:25:11 +08:00
|
|
|
|
</beta-gamma-chart-container>
|
|
|
|
|
</div>
|
2023-07-11 19:35:18 +08:00
|
|
|
|
<!-- 左侧图表结束 -->
|
|
|
|
|
|
|
|
|
|
<!-- 右侧 -->
|
|
|
|
|
<div class="beta-and-gamma-spectrum">
|
|
|
|
|
<!-- 四个图表开始 -->
|
|
|
|
|
<div class="spectrum-charts">
|
|
|
|
|
<div class="gamma-spectrum">
|
|
|
|
|
<div class="gamma-spectrum-item">
|
|
|
|
|
<beta-gamma-chart-container>
|
|
|
|
|
<template slot="title">
|
|
|
|
|
Gamma Spectrum: Original
|
|
|
|
|
</template>
|
|
|
|
|
<spectrum-line-chart
|
|
|
|
|
ref="lineChart1Ref"
|
|
|
|
|
:data="gammaOriginalData"
|
2023-07-13 19:18:23 +08:00
|
|
|
|
:energy="gammaEnergyData"
|
2023-07-11 19:35:18 +08:00
|
|
|
|
@rangeChange="handleLineChartRangeChange($event, 'y')"
|
|
|
|
|
/>
|
|
|
|
|
</beta-gamma-chart-container>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="gamma-spectrum-item">
|
|
|
|
|
<beta-gamma-chart-container>
|
|
|
|
|
<template slot="title">
|
|
|
|
|
Gamma Spectrum: Projected
|
|
|
|
|
</template>
|
|
|
|
|
<spectrum-line-chart
|
|
|
|
|
ref="lineChart2Ref"
|
2023-07-13 19:18:23 +08:00
|
|
|
|
:data="gammaProjectedData"
|
|
|
|
|
:energy="gammaEnergyData"
|
2023-07-11 19:35:18 +08:00
|
|
|
|
@rangeChange="handleLineChartRangeChange($event, 'y')"
|
|
|
|
|
/>
|
|
|
|
|
</beta-gamma-chart-container>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="gamma-spectrum">
|
|
|
|
|
<div class="gamma-spectrum-item">
|
|
|
|
|
<beta-gamma-chart-container>
|
|
|
|
|
<template slot="title">
|
|
|
|
|
Beta Spectrum: Original
|
|
|
|
|
</template>
|
|
|
|
|
<spectrum-line-chart
|
|
|
|
|
ref="lineChart3Ref"
|
|
|
|
|
:data="betaOriginalData"
|
2023-07-13 19:18:23 +08:00
|
|
|
|
:energy="betaEnergyData"
|
2023-07-11 19:35:18 +08:00
|
|
|
|
title="Beta"
|
|
|
|
|
color="#00ff1e"
|
|
|
|
|
@rangeChange="handleLineChartRangeChange($event, 'x')"
|
|
|
|
|
/>
|
|
|
|
|
</beta-gamma-chart-container>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="gamma-spectrum-item">
|
|
|
|
|
<beta-gamma-chart-container>
|
|
|
|
|
<template slot="title">
|
|
|
|
|
Beta Spectrum: Projected
|
|
|
|
|
</template>
|
|
|
|
|
<spectrum-line-chart
|
|
|
|
|
ref="lineChart4Ref"
|
2023-07-13 19:18:23 +08:00
|
|
|
|
:data="betaProjectedData"
|
|
|
|
|
:energy="betaEnergyData"
|
2023-07-11 19:35:18 +08:00
|
|
|
|
title="Beta"
|
|
|
|
|
color="#00ff1e"
|
|
|
|
|
@rangeChange="handleLineChartRangeChange($event, 'x')"
|
|
|
|
|
/>
|
|
|
|
|
</beta-gamma-chart-container>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 四个图表结束 -->
|
2023-07-06 14:05:43 +08:00
|
|
|
|
|
2023-07-11 19:35:18 +08:00
|
|
|
|
<!-- 结果显示开始 -->
|
|
|
|
|
<div class="result-display">
|
|
|
|
|
<beta-gamma-chart-container>
|
|
|
|
|
<template slot="title">
|
|
|
|
|
Result display
|
|
|
|
|
</template>
|
|
|
|
|
<result-display :data="resultDisplay"></result-display>
|
|
|
|
|
</beta-gamma-chart-container>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 结果显示结束 -->
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 右侧结束 -->
|
|
|
|
|
|
|
|
|
|
<!-- Comparison Modal 开始 -->
|
|
|
|
|
<comparison-modal v-model="comparisonModalVisible" />
|
|
|
|
|
<!-- Comparison Modal 结束 -->
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 主体部分结束 -->
|
2023-06-28 19:25:11 +08:00
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2023-07-13 19:18:23 +08:00
|
|
|
|
import { getAction } from '../../api/manage'
|
2023-06-28 19:25:11 +08:00
|
|
|
|
import BetaGammaChartContainer from './components/BetaGammaChartContainer.vue'
|
|
|
|
|
import BetaGammaSpectrumChart from './components/BetaGammaSpectrumChart.vue'
|
2023-07-06 14:05:43 +08:00
|
|
|
|
import ComparisonModal from './components/Modals/ComparisonModal.vue'
|
2023-06-28 19:25:11 +08:00
|
|
|
|
import ResultDisplay from './components/ResultDisplay.vue'
|
|
|
|
|
import SpectrumLineChart from './components/SpectrumLineChart.vue'
|
2023-07-24 19:26:46 +08:00
|
|
|
|
import BetaGammaQcFlags from './components/SubOperators/BetaGammaQcFlags.vue'
|
2023-07-11 19:35:18 +08:00
|
|
|
|
import DetailedInfomation from './components/SubOperators/DetailedInfomation.vue'
|
|
|
|
|
import PopOverWithIcon from './components/SubOperators/PopOverWithIcon.vue'
|
|
|
|
|
import Spectra from './components/SubOperators/Spectra.vue'
|
2023-07-04 19:46:38 +08:00
|
|
|
|
|
2023-06-28 19:25:11 +08:00
|
|
|
|
export default {
|
2023-07-06 14:05:43 +08:00
|
|
|
|
components: {
|
|
|
|
|
BetaGammaChartContainer,
|
|
|
|
|
SpectrumLineChart,
|
|
|
|
|
ResultDisplay,
|
|
|
|
|
BetaGammaSpectrumChart,
|
2023-07-11 19:35:18 +08:00
|
|
|
|
ComparisonModal,
|
|
|
|
|
DetailedInfomation,
|
|
|
|
|
|
|
|
|
|
PopOverWithIcon,
|
2023-07-24 19:26:46 +08:00
|
|
|
|
Spectra,
|
|
|
|
|
BetaGammaQcFlags
|
2023-07-11 19:35:18 +08:00
|
|
|
|
},
|
|
|
|
|
props: {
|
2023-07-13 19:18:23 +08:00
|
|
|
|
sample: {
|
2023-07-11 19:35:18 +08:00
|
|
|
|
type: Object
|
|
|
|
|
}
|
2023-07-06 14:05:43 +08:00
|
|
|
|
},
|
2023-06-28 19:25:11 +08:00
|
|
|
|
data() {
|
|
|
|
|
return {
|
2023-07-24 19:26:46 +08:00
|
|
|
|
qcFlags: {},
|
|
|
|
|
|
2023-07-11 19:35:18 +08:00
|
|
|
|
spectraVisible: false,
|
2023-07-13 19:18:23 +08:00
|
|
|
|
spectraType: 'sample',
|
|
|
|
|
|
|
|
|
|
resultDisplay: [],
|
|
|
|
|
|
2023-07-11 19:35:18 +08:00
|
|
|
|
histogramDataList: [],
|
2023-07-13 19:18:23 +08:00
|
|
|
|
histogramDataDList: [],
|
2023-07-17 19:37:46 +08:00
|
|
|
|
boundaryList: [],
|
2023-07-11 19:35:18 +08:00
|
|
|
|
|
|
|
|
|
gammaOriginalData: [],
|
2023-07-13 19:18:23 +08:00
|
|
|
|
gammaProjectedData: [],
|
|
|
|
|
|
2023-07-11 19:35:18 +08:00
|
|
|
|
betaOriginalData: [],
|
|
|
|
|
betaProjectedData: [],
|
2023-07-13 19:18:23 +08:00
|
|
|
|
|
|
|
|
|
gammaEnergyData: [],
|
|
|
|
|
betaEnergyData: [],
|
2023-07-11 19:35:18 +08:00
|
|
|
|
|
2023-07-06 14:05:43 +08:00
|
|
|
|
comparisonModalVisible: false
|
2023-06-28 19:25:11 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
2023-07-13 19:18:23 +08:00
|
|
|
|
async getSampleDetail() {
|
|
|
|
|
this.spectraType = 'sample'
|
|
|
|
|
|
|
|
|
|
const { dbName, sampleId } = this.sample
|
|
|
|
|
const { success, result, message } = await getAction('/spectrumAnalysis/getDBSpectrumChart', {
|
|
|
|
|
dbName,
|
|
|
|
|
sampleId
|
|
|
|
|
})
|
|
|
|
|
if (success) {
|
|
|
|
|
this.sampleDetail = result
|
|
|
|
|
this.changeChartByType('sample')
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(message)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
changeChartByType(type) {
|
|
|
|
|
const {
|
|
|
|
|
betaOriginalData,
|
|
|
|
|
betaProjectedData,
|
|
|
|
|
betaEnergyData,
|
|
|
|
|
|
|
|
|
|
gammaOriginalData,
|
|
|
|
|
gammaProjectedData,
|
|
|
|
|
gammaEnergyData,
|
|
|
|
|
|
|
|
|
|
histogramDataList, // 左侧 Beta-Gamma Spectrum: Sample 图表
|
|
|
|
|
histogramDataDList, // 左侧 Beta-Gamma Spectrum: Sample 图表的3D部分
|
2023-07-17 19:37:46 +08:00
|
|
|
|
Boundary, // 左侧2d图表的矩形
|
|
|
|
|
|
2023-07-13 19:18:23 +08:00
|
|
|
|
XeData, // 右下角Result Display
|
2023-07-24 19:26:46 +08:00
|
|
|
|
spectrumData,
|
|
|
|
|
|
|
|
|
|
AcqTimeBtn, // QC Flags 相关
|
|
|
|
|
CollectTimeBtn, // QC Flags 相关
|
|
|
|
|
SampleVolumeBtn, // QC Flags 相关
|
|
|
|
|
XeVolumeBtn, // QC Flags 相关
|
|
|
|
|
GasBgBtn, // QC Flags 相关
|
|
|
|
|
DetBgBtn // QC Flags 相关
|
2023-07-13 19:18:23 +08:00
|
|
|
|
} = this.sampleDetail[type]
|
|
|
|
|
|
|
|
|
|
this.histogramDataList = histogramDataList
|
|
|
|
|
this.histogramDataDList = histogramDataDList
|
2023-07-17 19:37:46 +08:00
|
|
|
|
this.boundaryList = Boundary
|
2023-07-13 19:18:23 +08:00
|
|
|
|
|
|
|
|
|
this.gammaOriginalData = gammaOriginalData
|
|
|
|
|
this.gammaProjectedData = gammaProjectedData
|
|
|
|
|
this.gammaEnergyData = gammaEnergyData
|
|
|
|
|
|
|
|
|
|
this.betaOriginalData = betaOriginalData
|
|
|
|
|
this.betaProjectedData = betaProjectedData
|
|
|
|
|
this.betaEnergyData = betaEnergyData
|
|
|
|
|
|
|
|
|
|
this.resultDisplay = XeData
|
2023-07-24 19:26:46 +08:00
|
|
|
|
|
|
|
|
|
this.qcFlags = {
|
|
|
|
|
AcqTimeBtn,
|
|
|
|
|
CollectTimeBtn,
|
|
|
|
|
SampleVolumeBtn,
|
|
|
|
|
XeVolumeBtn,
|
|
|
|
|
GasBgBtn,
|
|
|
|
|
DetBgBtn
|
|
|
|
|
}
|
2023-07-13 19:18:23 +08:00
|
|
|
|
},
|
|
|
|
|
|
2023-06-28 19:25:11 +08:00
|
|
|
|
resize() {
|
2023-07-04 19:46:38 +08:00
|
|
|
|
this.$refs.betaGammaChartRef && this.$refs.betaGammaChartRef.resize()
|
2023-06-28 19:25:11 +08:00
|
|
|
|
this.$refs.lineChart1Ref && this.$refs.lineChart1Ref.resize()
|
|
|
|
|
this.$refs.lineChart2Ref && this.$refs.lineChart2Ref.resize()
|
|
|
|
|
this.$refs.lineChart3Ref && this.$refs.lineChart3Ref.resize()
|
|
|
|
|
this.$refs.lineChart4Ref && this.$refs.lineChart4Ref.resize()
|
2023-07-04 19:46:38 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 鼠标在左侧2d图表上移动时
|
|
|
|
|
handlePositionChange([xAxis, yAxis]) {
|
|
|
|
|
// Gamma Spectrum,根据bata-gamma的gamma channel的值(y轴)进行定位
|
|
|
|
|
this.$refs.lineChart1Ref.setLinePosition(yAxis)
|
|
|
|
|
this.$refs.lineChart2Ref.setLinePosition(yAxis)
|
|
|
|
|
|
|
|
|
|
// Beta Spectrum,根据bata-gamma的bata channel的值(x轴)进行定位
|
|
|
|
|
this.$refs.lineChart3Ref.setLinePosition(xAxis)
|
|
|
|
|
this.$refs.lineChart4Ref.setLinePosition(xAxis)
|
2023-07-06 19:40:48 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 鼠标在左侧2d图表上刷选时
|
|
|
|
|
handleRangeChange([x1, x2, y1, y2]) {
|
|
|
|
|
this.$refs.lineChart1Ref.setRange(y1, y2)
|
|
|
|
|
this.$refs.lineChart2Ref.setRange(y1, y2)
|
|
|
|
|
|
|
|
|
|
this.$refs.lineChart3Ref.setRange(x1, x2)
|
|
|
|
|
this.$refs.lineChart4Ref.setRange(x1, x2)
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 右侧折线图表刷选时
|
|
|
|
|
* @param {number[]} range 范围
|
|
|
|
|
* @param {'x'|'y'} type 类型
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
|
|
handleLineChartRangeChange([x1, x2], type) {
|
|
|
|
|
if (type == 'y') {
|
|
|
|
|
// 如果是gamma channel变化
|
|
|
|
|
this.$refs.lineChart1Ref.setRange(x1, x2)
|
|
|
|
|
this.$refs.lineChart2Ref.setRange(x1, x2)
|
|
|
|
|
} else if (type == 'x') {
|
|
|
|
|
this.$refs.lineChart3Ref.setRange(x1, x2)
|
|
|
|
|
this.$refs.lineChart4Ref.setRange(x1, x2)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.$refs.betaGammaChartRef.setRange(x1, x2, type)
|
2023-06-28 19:25:11 +08:00
|
|
|
|
}
|
2023-07-11 19:35:18 +08:00
|
|
|
|
},
|
|
|
|
|
watch: {
|
2023-07-13 19:18:23 +08:00
|
|
|
|
sample: {
|
|
|
|
|
handler() {
|
|
|
|
|
this.getSampleDetail()
|
2023-07-11 19:35:18 +08:00
|
|
|
|
},
|
|
|
|
|
immediate: true
|
|
|
|
|
}
|
2023-06-28 19:25:11 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
|
|
.beta-gamma-analysis {
|
|
|
|
|
height: 100%;
|
2023-07-11 19:35:18 +08:00
|
|
|
|
|
|
|
|
|
&-main {
|
|
|
|
|
height: calc(100% - 51px);
|
|
|
|
|
display: flex;
|
2023-07-25 20:03:29 +08:00
|
|
|
|
gap: 30px;
|
2023-07-11 19:35:18 +08:00
|
|
|
|
overflow: auto hidden;
|
|
|
|
|
}
|
2023-06-28 19:25:11 +08:00
|
|
|
|
|
|
|
|
|
.beta-gamma-spectrum-sample {
|
2023-07-25 20:03:29 +08:00
|
|
|
|
flex: 788;
|
2023-06-28 19:25:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.beta-and-gamma-spectrum {
|
2023-07-25 20:03:29 +08:00
|
|
|
|
flex: 1048;
|
2023-06-28 19:25:11 +08:00
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
|
|
|
|
.spectrum-charts {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
height: calc(100% - 208px);
|
|
|
|
|
|
|
|
|
|
.gamma-spectrum {
|
|
|
|
|
display: flex;
|
|
|
|
|
height: 50%;
|
|
|
|
|
|
|
|
|
|
&-item {
|
|
|
|
|
flex: 509px;
|
|
|
|
|
|
|
|
|
|
&:first-child {
|
|
|
|
|
margin-right: 30px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.result-display {
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|