diff --git a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/FitPeaksAndBaselineModal.vue b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/FitPeaksAndBaselineModal.vue index 73502a1..ca12c50 100644 --- a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/FitPeaksAndBaselineModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/FitPeaksAndBaselineModal.vue @@ -6,16 +6,29 @@ Fixed - +
- + Peaks - Cancel + Cancel
@@ -25,6 +38,7 @@ import { getAction, postAction } from '@/api/manage' import ModalMixin from '@/mixins/ModalMixin' import SampleDataMixin from '@/views/spectrumAnalysis/SampleDataMixin' +import { cloneDeep } from 'lodash' const columns = [ { @@ -116,8 +130,14 @@ const columns = [ export default { mixins: [ModalMixin, SampleDataMixin], props: { - curChan: { + channel_1: { type: Number + }, + channel_2: { + type: Number + }, + isInsertPeak: { + type: Boolean } }, data() { @@ -129,18 +149,20 @@ export default { } }, methods: { - // 接收 - async handlePeaks() { + async handlePeaks(accept) { try { this.isAcceptting = true const { inputFileName: fileName } = this.sampleData const { success, result, message } = await postAction('/gamma/acceptResults', { fileName, - accept: true + accept, + oldPeaks: this.oldPeaks, + newPeak: this.newPeaks, + flag: this.isInsertPeak ? 'insert' : 'fit' }) if (success) { this.visible = false - this.$emit('result', result) + this.$emit(accept ? 'result' : 'cancel', result) } else { this.$message.error(message) } @@ -151,46 +173,51 @@ export default { } }, - // 取消 - async handleCancel() { - try { - this.isCanceling = true - const { inputFileName: fileName } = this.sampleData - const { success, result, message } = await postAction('/gamma/acceptResults', { - fileName, - accept: false, - oldPeak: this.oldPeaks - }) - if (success) { - this.visible = false - this.$emit('cancel', result) - } else { - this.$message.error(message) + // 值变化 + handleInput(record, index) { + const find = this.newPeaks.find(item => item.index == record.lab) + if (find) { + const table2NewPeakMap = { + energy: 'energy', + netArea: 'area', + fwhm: 'fwhm' } - } catch (error) { - console.error(error) - } finally { - this.isCanceling = false + + find[table2NewPeakMap[index]] = record[index] } }, async getData() { + const { sampleId, inputFileName: fileName } = this.sampleData try { + let url = '/gamma/fitPeak' + let params = { + left: this.channel_1, + right: this.channel_2, + fileName + } + + // 如果是Insert Peak + if (this.isInsertPeak) { + url = '/gamma/insertPeak' + params = { + sampleId, + fileName, + curChan: Math.ceil(this.channel_1) + } + } + this.isLoading = true - const { sampleId, inputFileName } = this.sampleData - const { success, result, message } = await getAction('/gamma/insertPeak', { - sampleId, - fileName: inputFileName, - curChan: Math.ceil(this.curChan) - }) + const { success, result, message } = await getAction(url, params) if (success) { - const { oldPeaks, tablePeaksList } = result + const { newPeaks, oldPeaks, tablePeaksList } = result tablePeaksList.forEach(item => { item.energy = Number(item.energy).toPrecision(6) item.netArea = Number(item.netArea).toPrecision(6) item.fwhm = Number(item.fwhm).toPrecision(6) }) this.list = tablePeaksList + this.newPeaks = newPeaks this.oldPeaks = oldPeaks } else { this.$message.error(message) diff --git a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue index 3b1e0ac..17559f6 100644 --- a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue +++ b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue @@ -107,7 +107,7 @@ Replot
- Accept + Accept
Cancel @@ -181,7 +181,9 @@ @@ -461,11 +463,17 @@ export default { model: cloneDeep(nuclideIdentifyModal), currChannel: undefined, // 当currChannel前选中的channel + + channel_1: undefined, // 用于Fit Peaks And Baseline Modal的道值 + channel_2: undefined, + isInsertPeak: false, // 是否是插入Peak + selectedTableItem: undefined, // 当前选中的表格项 isModifying: false, // 正在修改控制点 isFitting: false, // 正在进行Fit操作 firstFittingChannel: null, // Fit操作时点击的第一个channel + isAccepting: false, operationStack: [] // 操作记录 } @@ -517,25 +525,11 @@ export default { this.energy = energy this.BaseCtrls = BaseCtrls this.FitBaseLine = FitBaseLine + this.barChart = barChart - const series = [] - - // 推入BaseLine - series.push(this.buildBaseLine(channelBaseLineChart)) - - // 推入Count - series.push(this.buildCountLine(channelCountChart)) - - // 推入Peak - series.push(...this.buildPeaks(channelPeakChart)) - - // 推入基线控制点 - series.push(this.buildCtrlPoint(channelBaseCPChart)) - - this.thumbnailOption.series = this.buildBarChart(barChart) - + this.setChartOption(channelBaseLineChart, channelCountChart, channelPeakChart, channelBaseCPChart, barChart) this.list = table - this.option.series = series + } else { this.$message.error(message) } @@ -544,6 +538,26 @@ export default { } }, + setChartOption(baseLine, count, peaks, baseCP, bar) { + const series = [] + + // 推入BaseLine + series.push(this.buildBaseLine(baseLine)) + + // 推入Count + series.push(this.buildCountLine(count)) + + // 推入Peak + series.push(...this.buildPeaks(peaks)) + + // 推入基线控制点 + series.push(this.buildCtrlPoint(baseCP)) + + this.thumbnailOption.series = this.buildBarChart(bar) + + this.option.series = series + }, + reset() { this.currChannel = undefined this.btnGroupType = 1 @@ -636,6 +650,9 @@ export default { return } + this.channel_1 = left + this.channel_2 = right + this.isInsertPeak = false this.fitPeaksAndBaselineModalVisible = true this.isFitting = false @@ -737,7 +754,10 @@ export default { return } + this.channel_1 = this.currChannel + this.fitPeaksAndBaselineModalVisible = true + this.isInsertPeak = true }, // 点击 Fit Peak XXX 弹窗中的 Peaks 按钮 @@ -765,47 +785,20 @@ export default { this.channelPeakChart = channelPeakChart this.channelBaseLineChart = channelBaseLineChart + this.barChart = barChart - const series = [] - - // 推入BaseLine - series.push(this.buildBaseLine(channelBaseLineChart)) - - // 推入旧的Count - series.push(this.buildCountLine(channelCountChart)) - - // 推入Peak - series.push(...this.buildPeaks(channelPeakChart)) - - // 推入旧的基线控制点 - series.push(this.buildCtrlPoint(channelBaseCPChart)) - - this.thumbnailOption.series = this.buildBarChart(barChart) - + this.setChartOption(channelBaseLineChart, this.channelCountChart, channelPeakChart, this.channelBaseCPChart, barChart) this.list = table - this.option.series = series }, // 点击 Fit Peak XXX 弹窗中的 Cancel 按钮 handleCancelSuccess(result) { const { channelPeakChart, table } = result this.channelPeakChart = channelPeakChart - const series = [] - // 推入旧的BaseLine - series.push(this.buildBaseLine(this.channelBaseLineChart)) - - // 推入旧的Count - series.push(this.buildCountLine(this.channelCountChart)) - - // 推入Peak - series.push(...this.buildPeaks(channelPeakChart)) - - // 推入旧的基线控制点 - series.push(this.buildCtrlPoint(this.channelBaseCPChart)) + this.setChartOption(this.channelBaseLineChart, this.channelCountChart, channelPeakChart, this.channelBaseCPChart, this.barChart) this.list = table - this.option.series = series }, // 删除 @@ -1278,31 +1271,73 @@ export default { }, // 确定对Baseline Control Points 的操作 - handleAccept() { + async handleAccept() { this.BaseCtrls = cloneDeep(this.baseCtrls_Copy) const { baseline, xctrl, yctrl } = this.BaseCtrls - this.channelBaseLineChart.pointlist = baseline.map((val, index) => { - return { - x: index + 1, - y: val + // this.channelBaseLineChart.pointlist = baseline.map((val, index) => { + // return { + // x: index + 1, + // y: val + // } + // }) + + // this.channelBaseCPChart = xctrl.map((val, index) => { + // return { + // color: this.channelBaseCPChart[0].color, + // name: index.toString(), + // point: { + // x: val, + // y: yctrl[index] + // }, + // size: 4 + // } + // }) + + const { inputFileName: fileName } = this.sampleData + + try { + this.isAccepting = true + const { success, result, message } = await postAction('/gamma/acceptBaseLine', { + ...this.BaseCtrls, + fileName + }) + if (success) { + const { + allData, + barChart, + channelBaseLineChart, + peakSet, + shadowChannelChart, + shadowEnergyChart, + shapeChannelData, + shapeData, + shapeEnergyData + } = result + + this.channelBaseLineChart = channelBaseLineChart + this.channelPeakChart = peakSet + this.shadowChannelChart = shadowChannelChart + this.channelBaseCPChart = shapeChannelData + this.barChart = barChart + + this.btnGroupType = 1 + this.opts.notMerge = true + this.clearRect() + + this.setChartOption(channelBaseLineChart, this.channelCountChart, peakSet, this.channelBaseCPChart, barChart) + this.$nextTick(() => { + this.resetChartOpts() + }) + + this.$bus.$emit('accept', result) + } else { + this.$message.error(message) } - }) - - this.channelBaseCPChart = xctrl.map((val, index) => { - return { - color: this.channelBaseCPChart[0].color, - name: index.toString(), - point: { - x: val, - y: yctrl[index] - }, - size: 4 - } - }) - - this.handleSwitchOperation() - - this.$bus.$emit('accept') + } catch (error) { + console.error(error) + } finally { + this.isAccepting = false + } }, // 右下角添加当前选中的nuclide diff --git a/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/components/BetaDetectorCalibration.vue b/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/components/BetaDetectorCalibration.vue index 9d16ab4..c098dba 100644 --- a/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/components/BetaDetectorCalibration.vue +++ b/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/components/BetaDetectorCalibration.vue @@ -596,6 +596,7 @@ export default { count: 0, //反算时需要传递的数值 非反算的情况下不需要传递 数值大小是 第一次调用接口时返回的tableWidgets 大小 isFirstFitting: true, isInverse: false, // 是否需要反算 + betaIsFitting: false, } }, created() { @@ -869,6 +870,8 @@ export default { }) if (success) { this.isFirstFitting = false + this.betaIsFitting = true + this.$emit('isFitting', this.betaIsFitting) const { EToC, newLineSeries, newScatterSeriesData, tableWidgets, CToE } = result this.newE2C = EToC diff --git a/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/components/GammaDetectorCalibration.vue b/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/components/GammaDetectorCalibration.vue index 2fc9bb9..aa1ec94 100644 --- a/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/components/GammaDetectorCalibration.vue +++ b/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/components/GammaDetectorCalibration.vue @@ -467,6 +467,7 @@ export default { count: 0, //反算时需要传递的数值 非反算的情况下不需要传递 数值大小是 第一次调用接口时返回的tableWidgets 大小 isFirstFitting: true, isInverse: false, // 是否需要反算 + gammaIsFitting: false, } }, created() { @@ -646,6 +647,8 @@ export default { }) if (success) { this.isFirstFitting = false + this.gammaIsFitting = false + this.$emit('isFitting', this.gammaIsFitting) const { EToC, newLineSeries, newScatterSeriesData, tableWidgets, CToE } = result this.newE2C = EToC diff --git a/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/index.vue b/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/index.vue index df6f889..2ac1900 100644 --- a/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/index.vue +++ b/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/index.vue @@ -9,19 +9,19 @@ > - + - +