WIP: 修改请求接口,移植部分功能

This commit is contained in:
Xu Zhimeng 2024-07-26 11:25:17 +08:00
parent 718e8bd788
commit 56aada9e3c
14 changed files with 384 additions and 34 deletions

View File

@ -130,6 +130,10 @@ export default {
isInsertPeak: { isInsertPeak: {
type: Boolean, type: Boolean,
}, },
currROIIndex: {
type: Number,
default: 1,
},
}, },
data() { data() {
this.columns = columns this.columns = columns
@ -151,6 +155,7 @@ export default {
newPeak: this.newPeaks, newPeak: this.newPeaks,
flag: this.isInsertPeak ? 'insert' : 'fit', flag: this.isInsertPeak ? 'insert' : 'fit',
tablePeaksList: this.list, tablePeaksList: this.list,
gammaROINum: this.currROIIndex + 1,
}) })
if (success) { if (success) {
this.visible = false this.visible = false
@ -187,6 +192,7 @@ export default {
left: this.channel_1, left: this.channel_1,
right: this.channel_2, right: this.channel_2,
fileName, fileName,
gammaROINum: this.currROIIndex + 1,
} }
// Insert Peak // Insert Peak
@ -196,6 +202,7 @@ export default {
sampleId, sampleId,
fileName, fileName,
curChan: Math.ceil(this.channel_1), curChan: Math.ceil(this.channel_1),
gammaROINum: this.currROIIndex + 1,
} }
} }
@ -211,7 +218,7 @@ export default {
item.fwhm = Number(item.fwhm).toPrecision(6) item.fwhm = Number(item.fwhm).toPrecision(6)
}) })
this.list = tablePeaksList this.list = tablePeaksList
this.newPeaks = newPeaks this.newPeaks = newPeaks
this.oldPeaks = oldPeaks this.oldPeaks = oldPeaks
} else { } else {

View File

@ -12,9 +12,15 @@ import ModalMixin from '@/mixins/ModalMixin'
import SampleDataMixin from '@/views/spectrumAnalysis/SampleDataMixin' import SampleDataMixin from '@/views/spectrumAnalysis/SampleDataMixin'
export default { export default {
mixins: [ModalMixin, SampleDataMixin], mixins: [ModalMixin, SampleDataMixin],
props: {
currROIIndex: {
type: Number,
default: 1,
},
},
data() { data() {
return { return {
content: '' content: '',
} }
}, },
methods: { methods: {
@ -28,7 +34,8 @@ export default {
const { inputFileName: fileName } = this.sampleData const { inputFileName: fileName } = this.sampleData
const { success, message } = await postAction('/selfStation/addGeneralComment', { const { success, message } = await postAction('/selfStation/addGeneralComment', {
fileName, fileName,
comments: this.content comments: this.content,
gammaROINum: this.currROIIndex + 1,
}) })
if (!success) { if (!success) {
this.$message.error(message) this.$message.error(message)
@ -44,7 +51,8 @@ export default {
this.isLoading = true this.isLoading = true
const { inputFileName: fileName } = this.sampleData const { inputFileName: fileName } = this.sampleData
const { success, result, message } = await getAction('/selfStation/viewGeneralComment', { const { success, result, message } = await getAction('/selfStation/viewGeneralComment', {
fileName fileName,
gammaROINum: this.currROIIndex + 1,
}) })
if (success) { if (success) {
this.content = result this.content = result
@ -61,8 +69,8 @@ export default {
beforeModalOpen() { beforeModalOpen() {
this.content = '' this.content = ''
this.getComment() this.getComment()
} },
} },
} }
</script> </script>

View File

@ -165,7 +165,11 @@ export default {
}, },
page: { page: {
type: String, type: String,
default: 'AnalyzeInteractiveToolModal' default: 'AnalyzeInteractiveToolModal',
},
currROIIndex: {
type: Number,
default: 1,
}, },
}, },
data() { data() {
@ -273,13 +277,14 @@ export default {
const { sampleId, inputFileName: fileName } = this.sampleData const { sampleId, inputFileName: fileName } = this.sampleData
let url = '/selfStation/nuclideReview' let url = '/selfStation/nuclideReview'
// 20231219:xiao // 20231219:xiao
if(this.page === 'gamma-analysis'){ if (this.page === 'gamma-analysis') {
url = '/selfStation/nuclideReviewGamma' url = '/selfStation/nuclideReviewGamma'
} }
const { success, result, message } = await getAction(url, { const { success, result, message } = await getAction(url, {
sampleId: sampleId, sampleId: sampleId,
channel: this.channel, channel: this.channel,
fileName, fileName,
gammaROINum: this.currROIIndex + 1,
}) })
if (success) { if (success) {
this.model = { this.model = {
@ -342,13 +347,14 @@ export default {
const { sampleId, inputFileName } = this.sampleData const { sampleId, inputFileName } = this.sampleData
let url = '/selfStation/changeNuclide' let url = '/selfStation/changeNuclide'
// 20231219:xiao // 20231219:xiao
if(this.page === 'gamma-analysis'){ if (this.page === 'gamma-analysis') {
url = '/selfStation/changeNuclideGamma' url = '/selfStation/changeNuclideGamma'
} }
const { success, result, message } = await getAction(url, { const { success, result, message } = await getAction(url, {
sampleId, sampleId,
nuclideName: this.currNuclide, nuclideName: this.currNuclide,
fileName: inputFileName, fileName: inputFileName,
gammaROINum: this.currROIIndex + 1,
}) })
if (success) { if (success) {
const { chart, halfLife, halfLifeErr, lines, name, table } = result const { chart, halfLife, halfLifeErr, lines, name, table } = result
@ -388,6 +394,7 @@ export default {
sampleId, sampleId,
fileName, fileName,
...this.model, ...this.model,
gammaROINum: this.currROIIndex + 1,
}) })
if (success) { if (success) {
this.handleResData(result) this.handleResData(result)

View File

@ -14,12 +14,16 @@ export default {
mixins: [ModalMixin, SampleDataMixin], mixins: [ModalMixin, SampleDataMixin],
props: { props: {
curRow: { curRow: {
type: Number type: Number,
} },
currROIIndex: {
type: Number,
default: 1,
},
}, },
data() { data() {
return { return {
content: '' content: '',
} }
}, },
methods: { methods: {
@ -34,7 +38,8 @@ export default {
const { success, message } = await postAction('/selfStation/addPeakComment', { const { success, message } = await postAction('/selfStation/addPeakComment', {
fileName, fileName,
comments: this.content, comments: this.content,
curRow: this.curRow curRow: this.curRow,
gammaROINum: this.currROIIndex + 1,
}) })
if (!success) { if (!success) {
this.$message.error(message) this.$message.error(message)
@ -51,7 +56,8 @@ export default {
const { inputFileName: fileName } = this.sampleData const { inputFileName: fileName } = this.sampleData
const { success, result, message } = await getAction('/selfStation/viewPeakComment', { const { success, result, message } = await getAction('/selfStation/viewPeakComment', {
fileName, fileName,
curRow: this.curRow curRow: this.curRow,
gammaROINum: this.currROIIndex + 1,
}) })
if (success) { if (success) {
this.content = result this.content = result
@ -68,8 +74,8 @@ export default {
beforeModalOpen() { beforeModalOpen() {
this.content = '' this.content = ''
this.getComment() this.getComment()
} },
} },
} }
</script> </script>

View File

@ -185,11 +185,11 @@
<!-- 右侧结束 --> <!-- 右侧结束 -->
</div> </div>
<!-- Peak Comment弹窗 开始 --> <!-- Peak Comment弹窗 开始 -->
<peak-comment-modal v-model="peakCommentModalVisible" :curRow="curRow" /> <peak-comment-modal v-model="peakCommentModalVisible" :curRow="curRow" :currROIIndex="currROIIndex" />
<!-- Peak Comment弹窗 结束 --> <!-- Peak Comment弹窗 结束 -->
<!-- General Comment弹窗 开始 --> <!-- General Comment弹窗 开始 -->
<general-comment-modal v-model="generalCommentModalVisible" /> <general-comment-modal v-model="generalCommentModalVisible" :currROIIndex="currROIIndex" />
<!-- General Comment弹窗 结束 --> <!-- General Comment弹窗 结束 -->
<!-- Fit Peaks and Baseline弹窗 开始 --> <!-- Fit Peaks and Baseline弹窗 开始 -->
@ -198,12 +198,18 @@
:channel_1="channel_1" :channel_1="channel_1"
:channel_2="channel_2" :channel_2="channel_2"
:isInsertPeak="isInsertPeak" :isInsertPeak="isInsertPeak"
:currROIIndex="currROIIndex"
@result="handleInsertSuccess" @result="handleInsertSuccess"
@cancel="handleCancelSuccess" @cancel="handleCancelSuccess"
/> />
<!-- Fit Peaks and Baseline弹窗 结束 --> <!-- Fit Peaks and Baseline弹窗 结束 -->
<!-- Nuclide Review 弹窗开始 --> <!-- Nuclide Review 弹窗开始 -->
<nuclide-review-modal v-model="nuclideReviewModalVisible" :sampleId="sampleId" :channel="currChannel" /> <nuclide-review-modal
v-model="nuclideReviewModalVisible"
:sampleId="sampleId"
:channel="currChannel"
:currROIIndex="currROIIndex"
/>
<!-- Nuclide Review 弹窗结束 --> <!-- Nuclide Review 弹窗结束 -->
<!-- Edit Slope 弹窗 --> <!-- Edit Slope 弹窗 -->
@ -214,7 +220,7 @@
<script> <script>
import CustomChart from '@/components/CustomChart/index.vue' import CustomChart from '@/components/CustomChart/index.vue'
import TitleOverBorder from '../../TitleOverBorder.vue' import TitleOverBorder from '../../../TitleOverBorder.vue'
import PeakCommentModal from './components/PeakCommentModal.vue' import PeakCommentModal from './components/PeakCommentModal.vue'
import FitPeaksAndBaseLineModal from './components/FitPeaksAndBaselineModal.vue' import FitPeaksAndBaseLineModal from './components/FitPeaksAndBaselineModal.vue'
import NuclideReviewModal from './components/NuclideReviewModal.vue' import NuclideReviewModal from './components/NuclideReviewModal.vue'

View File

@ -687,7 +687,7 @@ export default {
// reset 20231211xiao // reset 20231211xiao
const res = await postAction( const res = await postAction(
'/spectrumAnalysis/resetButton?tabName=gamma&sampleFileName=' + this.newSampleData.inputFileName, '/selfStation/resetButton?tabName=gamma&sampleFileName=' + this.newSampleData.inputFileName,
{} {}
) )
@ -707,7 +707,7 @@ export default {
return return
} }
try { try {
const { success, result, message } = await postAction('/spectrumAnalysis/fitting', { const { success, result, message } = await postAction('/selfStation/fitting', {
...(this.list.length <= 0 ? this.newCalibrationFuncModel : []), // list C to E 20231101xiao ...(this.list.length <= 0 ? this.newCalibrationFuncModel : []), // list C to E 20231101xiao
sampleFileName: this.newSampleData.inputFileName, sampleFileName: this.newSampleData.inputFileName,
tabName: 'gamma', tabName: 'gamma',

View File

@ -146,7 +146,7 @@ export default {
currentFileName: this.newSampleData.inputFileName, currentFileName: this.newSampleData.inputFileName,
currentQCFileName: this.newSampleData.qcFileName, currentQCFileName: this.newSampleData.qcFileName,
} }
postAction('/spectrumAnalysis/ReAnalyse', params).then((res) => { postAction('/selfStation/ReAnalyse', params).then((res) => {
if (res.success) { if (res.success) {
res.result.XeData.forEach((item) => { res.result.XeData.forEach((item) => {
item.conc = parseFloat(item.conc.toPrecision(6)) item.conc = parseFloat(item.conc.toPrecision(6))

View File

@ -0,0 +1,276 @@
<template>
<custom-modal
v-model="visible"
:width="900"
title="Analysis Settings"
class="analysis-settings"
:okHandler="handleOk"
>
<a-spin :spinning="isLoading">
<!-- 第一行 -->
<div class="analysis-settings-item">
<title-over-border title="Peak Searching">
<a-form-model :colon="false" :labelCol="{ style: { width: '160px' } }">
<a-form-model-item label="ECutAnalysis_Low">
<div class="input-with-unit">
<a-input v-model="model.edit_ps_low"></a-input>
KeV
</div>
</a-form-model-item>
<a-form-model-item label="ECutAnalysis_High">
<div class="input-with-unit">
<a-input v-model="model.edit_ps_high"></a-input>
KeV
</div>
</a-form-model-item>
<a-form-model-item label="EnergyTolerance">
<div class="input-with-unit">
<a-input v-model="model.edit_energy"></a-input>
KeV
</div>
</a-form-model-item>
<a-form-model-item label="PSS_low">
<a-input v-model="model.edit_pss_low"></a-input>
</a-form-model-item>
</a-form-model>
</title-over-border>
<title-over-border title="Calibration Peak Searching">
<a-form-model :colon="false" :labelCol="{ style: { width: '170px' } }">
<a-form-model-item label="CalibrationPSS_low">
<a-input v-model="model.edit_cal_low" disabled></a-input>
</a-form-model-item>
<a-form-model-item label="CalibrationPSS_high">
<a-input v-model="model.edit_cal_high" disabled></a-input>
</a-form-model-item>
<a-form-model-item>
<a-checkbox v-model="model.checkBox_updateCal"> Update Calibration </a-checkbox>
</a-form-model-item>
<a-form-model-item>
<a-checkbox v-model="model.checkBox_keepPeak"> Keep Calibration Peak Search Peaks </a-checkbox>
</a-form-model-item>
</a-form-model>
</title-over-border>
</div>
<!-- 第二行 -->
<div class="analysis-settings-item">
<title-over-border title="Baseline Param">
<a-form-model :colon="false" :labelCol="{ style: { width: '90px' } }">
<a-form-model-item label="k_back">
<a-input v-model="model.edit_k_back"></a-input>
</a-form-model-item>
<a-form-model-item label="k_alpha">
<a-input v-model="model.edit_k_alpha"></a-input>
</a-form-model-item>
<a-form-model-item label="k_beta">
<a-input v-model="model.edit_k_beta"></a-input>
</a-form-model-item>
</a-form-model>
</title-over-border>
<div>
<a-form-model :colon="false" :labelCol="{ style: { width: '150px' } }">
<title-over-border title="BaseImprove">
<a-form-model-item label="BaseImprovePSS">
<a-input v-model="model.edit_bi_pss"></a-input>
</a-form-model-item>
</title-over-border>
<title-over-border title="LC Computing" style="margin-top: 20px">
<a-form-model-item label="RiskLevelK">
<a-input v-model="model.edit_riskLevelK"></a-input>
</a-form-model-item>
</title-over-border>
</a-form-model>
</div>
</div>
<!-- 第三行 -->
<div class="analysis-settings-item">
<title-over-border title="Activity Reference Time">
<custom-date-picker
show-time
format="YYYY/MM/DD HH:mm:ss"
valueFormat="YYYY/MM/DD HH:mm:ss"
v-model="model.dateTime_Act"
></custom-date-picker>
</title-over-border>
<title-over-border title="Concentration Reference Time">
<custom-date-picker
show-time
format="YYYY/MM/DD HH:mm:ss"
valueFormat="YYYY/MM/DD HH:mm:ss"
v-model="model.dateTime_Conc"
></custom-date-picker>
</title-over-border>
</div>
<!-- 第四行 -->
<div class="analysis-settings-item">
<a-checkbox v-model="model.group_calPS">Apply to All Spectrums</a-checkbox>
</div>
</a-spin>
</custom-modal>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import TitleOverBorder from '../../TitleOverBorder.vue'
import SampleDataMixin from '../../../SampleDataMixin'
import moment from 'moment'
export default {
components: { TitleOverBorder },
mixins: [SampleDataMixin],
data() {
return {
visible: false,
isLoading: false,
model: {},
}
},
methods: {
open() {
this.visible = true
this.getInfo()
},
async getInfo() {
try {
this.isLoading = true
const { sampleId, inputFileName: fileName } = this.sampleData
const { success, result, message } = await getAction('/selfStation/configure', {
sampleId,
fileName,
})
this.isLoading = false
if (success) {
if (result.edit_ps_high == -9999) {
result.edit_ps_high = 'inf'
}
result.dateTime_Act = moment(result.dateTime_Act).format('YYYY/MM/DD HH:mm:ss')
result.dateTime_Conc = moment(result.dateTime_Conc || '2000/01/01 00:00:00').format('YYYY/MM/DD HH:mm:ss')
this.model = result
} else {
this.$message.error(message)
}
} catch (error) {
console.error(error)
}
},
async handleOk() {
try {
const { inputFileName: fileName } = this.sampleData
const {
edit_ps_low,
edit_ps_high,
edit_energy,
edit_pss_low,
edit_cal_low,
edit_cal_high,
edit_k_back,
edit_k_alpha,
edit_k_beta,
edit_bi_pss,
edit_riskLevelK,
dateTime_Act,
dateTime_Conc,
checkBox_updateCal,
checkBox_keepPeak,
group_calPS,
} = this.model
const param = {
fileName,
ecutAnalysis_Low: edit_ps_low,
ecutAnalysis_High: edit_ps_high == 'inf' ? -9999 : edit_ps_high,
energyTolerance: edit_energy,
pss_low: edit_pss_low,
calibrationPSS_low: edit_cal_low,
calibrationPSS_high: edit_cal_high,
k_back: edit_k_back,
k_alpha: edit_k_alpha,
k_beta: edit_k_beta,
baseImprovePSS: edit_bi_pss,
riskLevelK: edit_riskLevelK,
refTime_act: dateTime_Act,
refTime_conc: dateTime_Conc,
updateCalibration: checkBox_updateCal,
keepCalPeakSearchPeaks: checkBox_keepPeak,
applyAll: group_calPS || false,
}
const { success, message } = await postAction('/selfStation/configureSave', param)
if (success) {
this.$message.success('Save Success')
this.$emit('senInfo', checkBox_updateCal ? '1' : '0')
} else {
this.$message.error(message)
}
} catch (error) {
console.error(error)
} finally {
return false
}
},
},
}
</script>
<style lang="less" scoped>
.analysis-settings {
&-item {
display: flex;
margin-top: 5px;
&:not(:first-child) {
margin-top: 20px;
}
> div {
flex: 1;
&:first-child {
margin-right: 20px;
}
}
.ant-form {
&-item {
margin-bottom: 0;
&:not(:last-child) {
margin-bottom: 10px;
}
::v-deep {
.ant-form-item {
&-label {
text-align: left;
label {
font-size: 16px;
}
}
&-control-wrapper {
flex: 1;
}
}
}
.input-with-unit {
display: flex;
align-items: center;
.ant-input {
margin-right: 10px;
}
}
}
}
}
}
</style>

View File

@ -15,6 +15,7 @@
<custom-chart <custom-chart
ref="chartRef" ref="chartRef"
:option="option" :option="option"
:opts="opts"
autoresize autoresize
@zr:mousedown="handleMouseDown" @zr:mousedown="handleMouseDown"
@zr:mouseup="handleMouseUp" @zr:mouseup="handleMouseUp"
@ -120,6 +121,12 @@ const option = {
brush: {}, brush: {},
} }
const initialAxisInfo = {
channel: 0,
count: 0,
energy: 0,
}
export default { export default {
props: { props: {
title: String, title: String,
@ -158,11 +165,10 @@ export default {
return { return {
option: cloneDeep(option), option: cloneDeep(option),
axisInfo: { opts: {
channel: 0, notMerge: false,
count: 0,
energy: 0,
}, },
axisInfo: cloneDeep(initialAxisInfo),
isMax: false, isMax: false,
} }
}, },
@ -247,8 +253,26 @@ export default {
}) })
}, },
/**
* 重置图表配置
*/
resetChartOpts() {
this.opts.notMerge = false
this.option.brush = { toolbox: [] }
},
clearPeakLine() {
this.opts.notMerge = true
this.option.series.splice(8)
this.$nextTick(() => {
this.resetChartOpts()
})
},
// Peak Line // Peak Line
redrawPeakLine() { redrawPeakLine() {
this.clearPeakLine()
const data = this.channelData.peakGroup const data = this.channelData.peakGroup
const peakLines = [] const peakLines = []
data.forEach((item, index) => { data.forEach((item, index) => {
@ -425,20 +449,24 @@ export default {
this.option.xAxis.min = x1 this.option.xAxis.min = x1
this.option.xAxis.max = x2 this.option.xAxis.max = x2
}, },
resetAxiosInfo() {
this.axisInfo = cloneDeep(initialAxisInfo)
},
}, },
watch: { watch: {
roiList: { roiList: {
handler(val) { handler(val) {
this.option.series[0].data = val.map(({ x, y }) => [x, y]) this.option.series[0].data = val.map(({ x, y }) => [x, y])
this.resetAxiosInfo()
}, },
immediate: true, immediate: true,
}, },
analyzeResult: { analyzeResult: {
handler(val) { handler(val) {
if (val && Object.keys(val).length) { if (val && Object.keys(val).length) {
this.resetAxiosInfo()
this.handleAnalyzeResult() this.handleAnalyzeResult()
console.log('%c [ ]-441', 'font-size:13px; background:pink; color:#bf2c9f;', )
} }
}, },
immediate: true, immediate: true,

View File

@ -105,12 +105,19 @@
<!-- Save Setting 弹窗结束 --> <!-- Save Setting 弹窗结束 -->
<!-- 分析-设置弹窗开始 --> <!-- 分析-设置弹窗开始 -->
<analyze-setting-modal <self-station-analyze-setting-modal
v-model="analyzeConfigureModalVisible" v-model="analyzeConfigureModalVisible"
:sampleId="sampleData.sampleId" :sampleId="sampleData.sampleId"
@senInfo="getUpdateFlag" @senInfo="getUpdateFlag"
/> />
<!-- 分析-设置弹窗结束 --> <!-- 分析-设置弹窗结束 -->
<!-- 自建台站的分析-设置弹窗开始 -->
<self-station-analyze-setting-modal
ref="selfStationAnalyzeConfigureModalRef"
:sampleId="sampleData.sampleId"
@senInfo="getUpdateFlag"
/>
<!-- 自建台站的分析-设置弹窗结束 -->
<!-- 全部分析-进度弹窗开始 --> <!-- 全部分析-进度弹窗开始 -->
<processing-monitor-modal <processing-monitor-modal
v-model="analyzeAllModalVisible" v-model="analyzeAllModalVisible"
@ -299,7 +306,7 @@ import FtransltModal from './components/Modals/FtransltModal/index.vue'
import BetaGammaEnergyCalibrationModal from './components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/index.vue' import BetaGammaEnergyCalibrationModal from './components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/index.vue'
import AutomaticAnalysisLogModal from './components/Modals/BetaGammaModals/AutomaticAnalysisLogModal.vue' import AutomaticAnalysisLogModal from './components/Modals/BetaGammaModals/AutomaticAnalysisLogModal.vue'
import BetaGammaExtrapolationModal from './components/Modals/BetaGammaModals/BetaGammaExtrapolationModal.vue' import BetaGammaExtrapolationModal from './components/Modals/BetaGammaModals/BetaGammaExtrapolationModal.vue'
import CalibrationModal from './components/Modals/NewBetaModals/CalibrationModal/index.vue' import CalibrationModal from './components/Modals/SelfStation/CalibrationModal/index.vue'
import { getAction } from '@/api/manage' import { getAction } from '@/api/manage'
import { clearSampleCache } from './clearSampleCache' import { clearSampleCache } from './clearSampleCache'
@ -309,7 +316,8 @@ import BGLogViewer from './components/Modals/BetaGammaModals/BGLogViewer.vue'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import CompareFromDbModal from './components/Modals/CompareFromDBModal.vue' import CompareFromDbModal from './components/Modals/CompareFromDBModal.vue'
import { clearSampleData, getSampleData, updateSampleDataAnaly } from '@/utils/SampleStore' import { clearSampleData, getSampleData, updateSampleDataAnaly } from '@/utils/SampleStore'
import BetaAnalyzeInteractiveToolModal from './components/Modals/BetaAnalyzeInteractiveToolModal/index.vue' import BetaAnalyzeInteractiveToolModal from './components/Modals/SelfStation/BetaAnalyzeInteractiveToolModal/index.vue'
import SelfStationAnalyzeSettingModal from './components/Modals/SelfStation/SelfStationAnalyzeSettingModal.vue'
// //
const ANALYZE_TYPE = { const ANALYZE_TYPE = {
@ -367,6 +375,7 @@ export default {
CompareFromDbModal, CompareFromDbModal,
CalibrationModal, CalibrationModal,
BetaAnalyzeInteractiveToolModal, BetaAnalyzeInteractiveToolModal,
SelfStationAnalyzeSettingModal,
}, },
provide() { provide() {
@ -1347,8 +1356,11 @@ export default {
{ {
type: 'a-menu-item', type: 'a-menu-item',
title: 'Configure', title: 'Configure',
show: this.isGamma, show: this.isGamma || this.isBeta,
handler: () => (this.analyzeConfigureModalVisible = true), handler: () => {
if (this.isGamma) this.analyzeConfigureModalVisible = true
if (this.isBeta) this.$refs.selfStationAnalyzeConfigureModalRef.open()
},
}, },
{ {
type: 'a-menu-item', type: 'a-menu-item',