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: {
type: Boolean,
},
currROIIndex: {
type: Number,
default: 1,
},
},
data() {
this.columns = columns
@ -151,6 +155,7 @@ export default {
newPeak: this.newPeaks,
flag: this.isInsertPeak ? 'insert' : 'fit',
tablePeaksList: this.list,
gammaROINum: this.currROIIndex + 1,
})
if (success) {
this.visible = false
@ -187,6 +192,7 @@ export default {
left: this.channel_1,
right: this.channel_2,
fileName,
gammaROINum: this.currROIIndex + 1,
}
// Insert Peak
@ -196,6 +202,7 @@ export default {
sampleId,
fileName,
curChan: Math.ceil(this.channel_1),
gammaROINum: this.currROIIndex + 1,
}
}

View File

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

View File

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

View File

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

View File

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

View File

@ -687,7 +687,7 @@ export default {
// reset 20231211xiao
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
}
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
sampleFileName: this.newSampleData.inputFileName,
tabName: 'gamma',

View File

@ -146,7 +146,7 @@ export default {
currentFileName: this.newSampleData.inputFileName,
currentQCFileName: this.newSampleData.qcFileName,
}
postAction('/spectrumAnalysis/ReAnalyse', params).then((res) => {
postAction('/selfStation/ReAnalyse', params).then((res) => {
if (res.success) {
res.result.XeData.forEach((item) => {
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
ref="chartRef"
:option="option"
:opts="opts"
autoresize
@zr:mousedown="handleMouseDown"
@zr:mouseup="handleMouseUp"
@ -120,6 +121,12 @@ const option = {
brush: {},
}
const initialAxisInfo = {
channel: 0,
count: 0,
energy: 0,
}
export default {
props: {
title: String,
@ -158,11 +165,10 @@ export default {
return {
option: cloneDeep(option),
axisInfo: {
channel: 0,
count: 0,
energy: 0,
opts: {
notMerge: false,
},
axisInfo: cloneDeep(initialAxisInfo),
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
redrawPeakLine() {
this.clearPeakLine()
const data = this.channelData.peakGroup
const peakLines = []
data.forEach((item, index) => {
@ -425,20 +449,24 @@ export default {
this.option.xAxis.min = x1
this.option.xAxis.max = x2
},
resetAxiosInfo() {
this.axisInfo = cloneDeep(initialAxisInfo)
},
},
watch: {
roiList: {
handler(val) {
this.option.series[0].data = val.map(({ x, y }) => [x, y])
this.resetAxiosInfo()
},
immediate: true,
},
analyzeResult: {
handler(val) {
if (val && Object.keys(val).length) {
this.resetAxiosInfo()
this.handleAnalyzeResult()
console.log('%c [ ]-441', 'font-size:13px; background:pink; color:#bf2c9f;', )
}
},
immediate: true,

View File

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