WIP: 修改Interactive Tools 弹窗数据的获取方式,底下的表格最后一项改为溢出隐藏,操作markLine时如不可见,则自动居中

This commit is contained in:
Xu Zhimeng 2023-10-30 19:56:56 +08:00
parent 1a849ec336
commit a7b18c57c7
2 changed files with 182 additions and 163 deletions

20
src/utils/sampleHelper.js Normal file
View File

@ -0,0 +1,20 @@
/**
* 在返回的allData中查找指定的数据
* @param {Array} allData
* @param {*} name
* @param {*} group
*/
export const getLineData = (allData, name, group, isList = false) => {
const arrFunc = isList ? Array.prototype.filter : Array.prototype.find
return arrFunc.call(allData, item => item.name == name && item.group == group) || {}
}
/**
* 转换pointlist类型数据到series的data可用的数据
*/
export const transformPointListData = pointlist => {
if (!pointlist) {
return []
}
return pointlist.map(({ x, y }) => [x, y])
}

View File

@ -36,6 +36,7 @@
<span @click="handleChangeMarkLine('next')">&gt;</span> <span @click="handleChangeMarkLine('next')">&gt;</span>
</p> </p>
<custom-table <custom-table
size="small"
:class="list.length ? 'has-data' : ''" :class="list.length ? 'has-data' : ''"
:list="list" :list="list"
:columns="columns" :columns="columns"
@ -215,6 +216,7 @@ import Response from './Response.json'
import { updateBaseLine } from '@/utils/WasmHelper' import { updateBaseLine } from '@/utils/WasmHelper'
import RectList from './components/RectList.vue' import RectList from './components/RectList.vue'
import { isNullOrUndefined } from '@/utils/util' import { isNullOrUndefined } from '@/utils/util'
import { getLineData, transformPointListData } from '@/utils/sampleHelper'
// //
const initialOption = { const initialOption = {
@ -223,7 +225,7 @@ const initialOption = {
left: 40, left: 40,
right: 30, right: 30,
bottom: 30, bottom: 30,
containLabel: true containLabel: true,
}, },
title: { title: {
text: '', text: '',
@ -234,39 +236,39 @@ const initialOption = {
rich: { rich: {
a: { a: {
padding: [0, 20, 0, 0], padding: [0, 20, 0, 0],
fontSize: 16 fontSize: 16,
} },
} },
} },
}, },
tooltip: { tooltip: {
trigger: 'axis', trigger: 'axis',
axisPointer: { axisPointer: {
lineStyle: { lineStyle: {
color: '#3CAEBB', color: '#3CAEBB',
width: 1 width: 1,
} },
}, },
formatter: undefined, formatter: undefined,
className: 'figure-chart-option-tooltip' className: 'figure-chart-option-tooltip',
}, },
xAxis: { xAxis: {
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: '#ade6ee' color: '#ade6ee',
} },
}, },
splitLine: { splitLine: {
show: false show: false,
}, },
axisLabel: { axisLabel: {
textStyle: { textStyle: {
color: '#ade6ee' color: '#ade6ee',
} },
}, },
min: 1, min: 1,
max: 'dataMax', max: 'dataMax',
animation: false animation: false,
}, },
yAxis: { yAxis: {
type: 'log', type: 'log',
@ -275,31 +277,31 @@ const initialOption = {
nameGap: 40, nameGap: 40,
nameTextStyle: { nameTextStyle: {
color: '#8FD4F8', color: '#8FD4F8',
fontSize: 16 fontSize: 16,
}, },
axisLine: { axisLine: {
show: true, show: true,
lineStyle: { lineStyle: {
color: '#ade6ee' color: '#ade6ee',
} },
}, },
splitLine: { splitLine: {
show: true, show: true,
lineStyle: { lineStyle: {
color: 'rgba(173, 230, 238, .2)' color: 'rgba(173, 230, 238, .2)',
} },
}, },
axisLabel: { axisLabel: {
textStyle: { textStyle: {
color: '#ade6ee' color: '#ade6ee',
} },
}, },
min: 0.1, min: 0.1,
max: 'dataMax', max: 'dataMax',
animation: false animation: false,
}, },
series: [], series: [],
brush: {} brush: {},
} }
const columns = [ const columns = [
@ -308,61 +310,62 @@ const columns = [
customRender: (_, __, index) => { customRender: (_, __, index) => {
return index + 1 return index + 1
}, },
width: 60 width: 60,
}, },
{ {
title: 'Energy (keV)', title: 'Energy (keV)',
dataIndex: 'energy', dataIndex: 'energy',
width: 120, width: 120,
customRender: text => { customRender: (text) => {
return text.toFixed(3) return text.toFixed(3)
} },
}, },
{ {
title: 'Centroid (C)', title: 'Centroid (C)',
dataIndex: 'peakCentroid', dataIndex: 'peakCentroid',
width: 120, width: 120,
customRender: text => { customRender: (text) => {
return text.toFixed(3) return text.toFixed(3)
} },
}, },
{ {
title: 'FWHM (keV)', title: 'FWHM (keV)',
dataIndex: 'fwhm', dataIndex: 'fwhm',
width: 120, width: 120,
customRender: text => { customRender: (text) => {
return text.toFixed(3) return text.toFixed(3)
} },
}, },
{ {
title: 'Area', title: 'Area',
dataIndex: 'area', dataIndex: 'area',
width: 120, width: 120,
customRender: text => { customRender: (text) => {
return text.toFixed(3) return text.toFixed(3)
} },
}, },
{ {
title: 'Detectability', title: 'Detectability',
dataIndex: 'significance', dataIndex: 'significance',
width: 120, width: 120,
customRender: text => { customRender: (text) => {
return text.toFixed(3) return text.toFixed(3)
} },
}, },
{ {
title: '#Cmnt', title: '#Cmnt',
dataIndex: 'comments', dataIndex: 'comments',
width: 120 width: 120,
}, },
{ {
title: 'Nuclides', title: 'Nuclides',
dataIndex: 'nuclides', dataIndex: 'nuclides',
width: 120, width: 120,
customRender: text => { ellipsis: true,
customRender: (text) => {
return text && text.join(';') return text && text.join(';')
} },
} },
] ]
// //
@ -371,43 +374,43 @@ const thumbnailOption = {
top: 0, top: 0,
left: 5, left: 5,
right: 5, right: 5,
bottom: 0 bottom: 0,
}, },
xAxis: { xAxis: {
type: 'category', type: 'category',
axisLine: { axisLine: {
show: false show: false,
}, },
splitLine: { splitLine: {
show: false show: false,
}, },
axisLabel: { axisLabel: {
show: false show: false,
}, },
min: 1, min: 1,
max: 'dataMax' max: 'dataMax',
}, },
yAxis: { yAxis: {
type: 'value', type: 'value',
axisLine: { axisLine: {
show: false show: false,
}, },
splitLine: { splitLine: {
show: false show: false,
}, },
axisLabel: { axisLabel: {
show: false show: false,
}, },
min: 0.1, min: 0.1,
max: 'dataMax' max: 'dataMax',
}, },
series: null series: null,
} }
const nuclideIdentifyModal = { const nuclideIdentifyModal = {
possibleNuclide: '', possibleNuclide: '',
tolerance: 0.5, tolerance: 0.5,
identifiedNuclide: '' identifiedNuclide: '',
} }
// //
@ -415,7 +418,7 @@ const Operators = {
ADD: 1, // ADD: 1, //
REMOVE: 2, // REMOVE: 2, //
MODIFY: 3, // MODIFY: 3, //
SLOPE_CHANGE: 4 // slope SLOPE_CHANGE: 4, // slope
} }
export default { export default {
@ -428,7 +431,7 @@ export default {
NuclideReviewModal, NuclideReviewModal,
GeneralCommentModal, GeneralCommentModal,
EditSlopeModal, EditSlopeModal,
RectList RectList,
}, },
data() { data() {
this.columns = columns this.columns = columns
@ -477,66 +480,47 @@ export default {
isReploting: false, isReploting: false,
operationStack: [], // operationStack: [], //
replotNeeded: false replotNeeded: false,
} }
}, },
created() { created() {
this.option.tooltip.formatter = params => { this.option.tooltip.formatter = (params) => {
const channel = parseInt(params[0].value[0]) const channel = parseInt(params[0].value[0])
const energy = this.energy[channel - 1] const energy = this.energy.pointlist ? this.energy.pointlist[channel - 1].x : 0
return `<div class="channel">Channel: ${channel}</div> return `<div class="channel">Channel: ${channel}</div>
<div class="energy">${isNullOrUndefined(energy) ? '' : `Energy: ${energy.toFixed(2)}`}</div>` <div class="energy">${isNullOrUndefined(energy) ? '' : `Energy: ${energy.toFixed(2)}`}</div>`
} }
}, },
methods: { methods: {
async getInfo() { async getInfo() {
try {
this.isLoading = true
this.option.series = [] this.option.series = []
this.thumbnailOption.series = [] this.thumbnailOption.series = []
this.list = [] this.list = []
this.model = cloneDeep(nuclideIdentifyModal) this.model = cloneDeep(nuclideIdentifyModal)
const { success, result, message } = await getAction('/gamma/InteractiveTool', { const { inputFileName } = this.sampleData
sampleId: this.sampleId,
fileName: this.fileName
})
// const { success, result, message } = cloneDeep(Response) const currSampleDetailInfo = await this.$store.dispatch('GET_SAMPLE_DATA', inputFileName)
if (success) {
this.isLoading = false
const { const {
barChart, data: { allData, shadowChannelChart, shapeChannelData, peak },
channelBaseCPChart, } = currSampleDetailInfo
channelBaseLineChart,
channelCountChart,
channelPeakChart,
energy,
table,
BaseCtrls,
FitBaseLine
} = result
console.log('%c [ ]-374', 'font-size:13px; background:pink; color:#bf2c9f;', result) const channelBaseLine = getLineData(allData, 'BaseLine', 'channel')
const channelPeakGroup = getLineData(allData, 'Peak', 'channel', true)
this.channelBaseCPChart = channelBaseCPChart const allEnergy = getLineData(allData, 'Energy', 'energy')
this.channelBaseLineChart = channelBaseLineChart
this.channelCountChart = channelCountChart
this.channelPeakChart = channelPeakChart
this.energy = energy
this.BaseCtrls = BaseCtrls
this.FitBaseLine = FitBaseLine
this.barChart = barChart
this.setChartOption(channelBaseLineChart, channelCountChart, channelPeakChart, channelBaseCPChart, barChart) this.channelBaseCPChart = shapeChannelData
this.list = table this.channelBaseLineChart = channelBaseLine
} else { this.channelCountChart = shadowChannelChart
this.$message.error(message) this.channelPeakChart = channelPeakGroup
} this.energy = allEnergy
} catch (error) { // this.BaseCtrls = BaseCtrls
console.error(error) // this.FitBaseLine = FitBaseLine
} this.barChart = shadowChannelChart
this.setChartOption(channelBaseLine, shadowChannelChart, channelPeakGroup, shapeChannelData, shadowChannelChart)
this.list = peak
}, },
setChartOption(baseLine, count, peaks, baseCP, bar) { setChartOption(baseLine, count, peaks, baseCP, bar) {
@ -554,7 +538,7 @@ export default {
// 线 // 线
series.push(this.buildCtrlPoint(baseCP)) series.push(this.buildCtrlPoint(baseCP))
this.thumbnailOption.series = this.buildBarChart(bar) // this.thumbnailOption.series = this.buildBarChart(bar)
this.option.series = series this.option.series = series
}, },
@ -573,10 +557,6 @@ export default {
}, },
beforeModalOpen() { beforeModalOpen() {
const { sampleId, inputFileName } = this.sampleData
this.sampleId = sampleId
this.fileName = inputFileName
this.getInfo() this.getInfo()
this.reset() this.reset()
}, },
@ -640,7 +620,7 @@ export default {
left = channel left = channel
} }
const peaksBetweenChannel = this.list.filter(peak => { const peaksBetweenChannel = this.list.filter((peak) => {
const centroidId = peak.peakCentroid const centroidId = peak.peakCentroid
return centroidId >= left && centroidId <= right return centroidId >= left && centroidId <= right
}) })
@ -672,7 +652,7 @@ export default {
const maxXAxises = this.getPeakMaxValues() const maxXAxises = this.getPeakMaxValues()
if (direction == 'next') { if (direction == 'next') {
// prevAxisxAxis // prevAxisxAxis
const find = maxXAxises.find(xAxis => xAxis > prevAxis) const find = maxXAxises.find((xAxis) => xAxis > prevAxis)
if (find) { if (find) {
markLineOption.xAxis = find markLineOption.xAxis = find
} }
@ -680,7 +660,7 @@ export default {
// prevAxisxAxis // prevAxisxAxis
const find = cloneDeep(maxXAxises) const find = cloneDeep(maxXAxises)
.reverse() .reverse()
.find(xAxis => xAxis < prevAxis) .find((xAxis) => xAxis < prevAxis)
if (find) { if (find) {
markLineOption.xAxis = find markLineOption.xAxis = find
} }
@ -688,11 +668,24 @@ export default {
const xAxis = markLineOption.xAxis const xAxis = markLineOption.xAxis
if (xAxis >= 0) { if (xAxis >= 0) {
const index = maxXAxises.findIndex(item => item == xAxis) const index = maxXAxises.findIndex((item) => item == xAxis)
if (index !== -1) { if (index !== -1) {
this.selectedKeys = [this.list[index].index] this.selectedKeys = [this.list[index].index]
} }
} }
const { xAxis: chartXAxisOption } = this.option
const { max, min } = chartXAxisOption
//
if (xAxis >= max || xAxis <= min) {
const halfDiff = (max - min) / 2
const lastChannel = this.channelCountChart.pointlist[this.channelCountChart.pointlist.length - 1].x
let nextMax = xAxis + halfDiff
let nextMin = xAxis - halfDiff
chartXAxisOption.max = nextMax > lastChannel ? lastChannel : nextMax
chartXAxisOption.min = nextMin < 1 ? 1 : nextMin
}
}, },
// possible nuclide identified nuclide // possible nuclide identified nuclide
@ -703,10 +696,11 @@ export default {
if (!row._possible) { if (!row._possible) {
this.$set(row, '_loading', true) this.$set(row, '_loading', true)
try { try {
const { sampleId, inputFileName: fileName } = this.sampleData
const { success, result, message } = await getAction('/gamma/getSelPosNuclide', { const { success, result, message } = await getAction('/gamma/getSelPosNuclide', {
sampleId: this.sampleId, sampleId,
channel: parseInt(row.peakCentroid), channel: parseInt(row.peakCentroid),
fileName: this.fileName fileName,
}) })
if (success) { if (success) {
const { possible } = result const { possible } = result
@ -724,9 +718,9 @@ export default {
// Channel // Channel
getPeakMaxValues() { getPeakMaxValues() {
const maxXAxises = this.channelPeakChart.map(item => { const maxXAxises = this.channelPeakChart.map((item) => {
const allY = item.pointlist.map(point => point.y) const allY = item.pointlist.map((point) => point.y)
const max = item.pointlist.find(point => point.y == Math.max(...allY)) const max = item.pointlist.find((point) => point.y == Math.max(...allY))
return max.x return max.x
}) })
return maxXAxises return maxXAxises
@ -772,7 +766,7 @@ export default {
shadowEnergyChart, shadowEnergyChart,
shapeChannelData, shapeChannelData,
shapeEnergyData, shapeEnergyData,
table table,
} = result } = result
this.$bus.$emit('gammaRefresh', { this.$bus.$emit('gammaRefresh', {
@ -781,7 +775,7 @@ export default {
shadowChannelChart, shadowChannelChart,
shadowEnergyChart, shadowEnergyChart,
shapeChannelData, shapeChannelData,
shapeEnergyData shapeEnergyData,
}) })
this.channelPeakChart = channelPeakChart this.channelPeakChart = channelPeakChart
@ -828,8 +822,8 @@ export default {
content: 'Are you sure to delete this peak?', content: 'Are you sure to delete this peak?',
cancelButtonProps: { cancelButtonProps: {
props: { props: {
type: 'warn' type: 'warn',
} },
}, },
onOk: async () => { onOk: async () => {
// this.list.splice(findIndex, 1) // this.list.splice(findIndex, 1)
@ -850,7 +844,7 @@ export default {
const { inputFileName: fileName } = this.sampleData const { inputFileName: fileName } = this.sampleData
const { success, result, message } = await getAction('/gamma/deletePeak', { const { success, result, message } = await getAction('/gamma/deletePeak', {
fileName, fileName,
curRow: this.curRow curRow: this.curRow,
}) })
if (success) { if (success) {
const { const {
@ -860,7 +854,7 @@ export default {
shadowEnergyChart, shadowEnergyChart,
shapeChannelData, shapeChannelData,
shapeEnergyData, shapeEnergyData,
table table,
} = result } = result
this.$bus.$emit('gammaRefresh', { this.$bus.$emit('gammaRefresh', {
@ -869,7 +863,7 @@ export default {
shadowChannelChart, shadowChannelChart,
shadowEnergyChart, shadowEnergyChart,
shapeChannelData, shapeChannelData,
shapeEnergyData shapeEnergyData,
}) })
this.channelPeakChart = channelPeakChart this.channelPeakChart = channelPeakChart
@ -896,7 +890,7 @@ export default {
} catch (error) { } catch (error) {
console.error(error) console.error(error)
} }
} },
}) })
}, },
@ -928,6 +922,19 @@ export default {
this.option.series[0].markLine.data[0].xAxis = channel this.option.series[0].markLine.data[0].xAxis = channel
const { xAxis: chartXAxisOption } = this.option
const { max, min } = chartXAxisOption
//
if (channel >= max || channel <= min) {
const halfDiff = (max - min) / 2
const lastChannel = this.channelCountChart.pointlist[this.channelCountChart.pointlist.length - 1].x
let nextMax = channel + halfDiff
let nextMin = channel - halfDiff
chartXAxisOption.max = nextMax > lastChannel ? lastChannel : nextMax
chartXAxisOption.min = nextMin < 1 ? 1 : nextMin
}
this.getSelPosNuclide(row) this.getSelPosNuclide(row)
this.selectedTableItem = row this.selectedTableItem = row
@ -946,8 +953,8 @@ export default {
key: 'brush', key: 'brush',
brushOption: { brushOption: {
// brush brushType false // brush brushType false
brushType: 'rect' brushType: 'rect',
} },
}) })
}, },
@ -962,12 +969,12 @@ export default {
// //
chart.dispatchAction({ chart.dispatchAction({
type: 'brush', type: 'brush',
areas: [] areas: [],
}) })
// //
chart.dispatchAction({ chart.dispatchAction({
type: 'takeGlobalCursor' type: 'takeGlobalCursor',
}) })
}, },
@ -978,8 +985,8 @@ export default {
if (areas) { if (areas) {
const range = areas.range const range = areas.range
const [[minX, maxX], [minY, maxY]] = range const [[minX, maxX], [minY, maxY]] = range
const point1 = chart.convertFromPixel({ seriesIndex: 0 }, [minX, minY]).map(num => parseInt(num.toFixed())) const point1 = chart.convertFromPixel({ seriesIndex: 0 }, [minX, minY]).map((num) => parseInt(num.toFixed()))
const point2 = chart.convertFromPixel({ seriesIndex: 0 }, [maxX, maxY]).map(num => parseInt(num.toFixed())) const point2 = chart.convertFromPixel({ seriesIndex: 0 }, [maxX, maxY]).map((num) => parseInt(num.toFixed()))
const xAxisMax = chart.getModel().getComponent('xAxis').axis.scale._extent[1] const xAxisMax = chart.getModel().getComponent('xAxis').axis.scale._extent[1]
const yAxisMax = this.option.yAxis.max const yAxisMax = this.option.yAxis.max
let [x1, y2, x2, y1] = [...point1, ...point2] // let [x1, y2, x2, y1] = [...point1, ...point2] //
@ -1036,7 +1043,7 @@ export default {
this.baseCtrls_Copy.baseline.map((val, index) => [index + 1, val]), this.baseCtrls_Copy.baseline.map((val, index) => [index + 1, val]),
this.FitBaseLine, this.FitBaseLine,
{ {
zlevel: 21 zlevel: 21,
} }
) )
this.option.series.push(baseLineEditSeries) this.option.series.push(baseLineEditSeries)
@ -1050,13 +1057,13 @@ export default {
this.btnGroupType = 1 this.btnGroupType = 1
this.opts.notMerge = true this.opts.notMerge = true
const baseLineEditSeries = findSeriesByName(this.option.series, 'BaseLine_Edit') const baseLineEditSeries = findSeriesByName(this.option.series, 'BaseLine_Edit')
const index = this.option.series.findIndex(item => item == baseLineEditSeries) const index = this.option.series.findIndex((item) => item == baseLineEditSeries)
this.option.series.splice(index, 1) this.option.series.splice(index, 1)
this.clearRect() this.clearRect()
const baseLineSeries = findSeriesByName(this.option.series, 'BaseLine') const baseLineSeries = findSeriesByName(this.option.series, 'BaseLine')
baseLineSeries.data = this.channelBaseLineChart.pointlist.map(({ x, y }) => [x, y]) // 线 baseLineSeries.data = transformPointListData(this.channelBaseLineChart.pointlist) // 线
const baseLineCP = findSeriesByName(this.option.series, 'BaseLine_Ctrl_Point') const baseLineCP = findSeriesByName(this.option.series, 'BaseLine_Ctrl_Point')
baseLineCP.data = this.buildCPPointData(this.channelBaseCPChart) baseLineCP.data = this.buildCPPointData(this.channelBaseCPChart)
@ -1096,7 +1103,7 @@ export default {
this.isModifying = false this.isModifying = false
this.pushOperationStack(Operators.MODIFY, { this.pushOperationStack(Operators.MODIFY, {
index, index,
prevYAxis prevYAxis,
}) })
}, },
@ -1120,7 +1127,7 @@ export default {
// Peaks // Peaks
redrawPeaks(peakList) { redrawPeaks(peakList) {
this.option.series = this.option.series.filter(item => { this.option.series = this.option.series.filter((item) => {
return !item.name.includes('Peak_') return !item.name.includes('Peak_')
}) })
this.option.series.push(...this.buildPeaks(peakList)) this.option.series.push(...this.buildPeaks(peakList))
@ -1196,7 +1203,7 @@ export default {
index: i, index: i,
removeXAxis, removeXAxis,
removeYAxis, removeYAxis,
removeYSlope removeYSlope,
}) })
}, },
@ -1232,7 +1239,7 @@ export default {
this.$refs.editSlopeModal.open({ this.$refs.editSlopeModal.open({
index: i, index: i,
value: yslope[i], value: yslope[i],
allowNaN: !(i == 0 || i == n - 1) allowNaN: !(i == 0 || i == n - 1),
}) })
}, },
@ -1246,7 +1253,7 @@ export default {
yslope[index] = slope yslope[index] = slope
this.pushOperationStack(Operators.SLOPE_CHANGE, { this.pushOperationStack(Operators.SLOPE_CHANGE, {
index, index,
slope: prevSlope slope: prevSlope,
}) })
this.redrawBaseLine() this.redrawBaseLine()
this.buildRect() this.buildRect()
@ -1269,7 +1276,7 @@ export default {
const { success, result, message } = await postAction('/gamma/replotBaseLine', { const { success, result, message } = await postAction('/gamma/replotBaseLine', {
...this.baseCtrls_Copy, ...this.baseCtrls_Copy,
fileName, fileName,
replotNeeded: this.replotNeeded replotNeeded: this.replotNeeded,
}) })
if (success) { if (success) {
const { chartData, peakSet, shapeData } = result const { chartData, peakSet, shapeData } = result
@ -1288,8 +1295,8 @@ export default {
color, color,
point: { point: {
x: xAxis, x: xAxis,
y: yctrl[index] y: yctrl[index],
} },
} }
}) })
baseLineCP.data = this.buildCPPointData(baseCPPoints) baseLineCP.data = this.buildCPPointData(baseCPPoints)
@ -1323,8 +1330,8 @@ export default {
itemStyle: { itemStyle: {
color: 'transparent', color: 'transparent',
borderColor: color, borderColor: color,
borderWidth: size / 2 borderWidth: size / 2,
} },
} }
}) })
}, },
@ -1358,7 +1365,7 @@ export default {
this.isAccepting = true this.isAccepting = true
const { success, result, message } = await postAction('/gamma/acceptBaseLine', { const { success, result, message } = await postAction('/gamma/acceptBaseLine', {
...this.baseCtrls_Copy, ...this.baseCtrls_Copy,
fileName fileName,
}) })
if (success) { if (success) {
this.BaseCtrls = cloneDeep(this.baseCtrls_Copy) this.BaseCtrls = cloneDeep(this.baseCtrls_Copy)
@ -1372,7 +1379,7 @@ export default {
shadowEnergyChart, shadowEnergyChart,
shapeChannelData, shapeChannelData,
shapeData, shapeData,
shapeEnergyData shapeEnergyData,
} = result } = result
this.channelBaseLineChart = channelBaseLineChart this.channelBaseLineChart = channelBaseLineChart
@ -1416,7 +1423,7 @@ export default {
curRow: this.curRow, curRow: this.curRow,
nuclideName: possibleNuclide, nuclideName: possibleNuclide,
fileName, fileName,
list_identify: nuclides list_identify: nuclides,
}) })
if (success) { if (success) {
nuclides.push(possibleNuclide) nuclides.push(possibleNuclide)
@ -1439,7 +1446,7 @@ export default {
if (this.selectedTableItem._deleting) { if (this.selectedTableItem._deleting) {
return return
} }
const findIndex = nuclides.findIndex(nuclide => nuclide == this.model.identifiedNuclide) const findIndex = nuclides.findIndex((nuclide) => nuclide == this.model.identifiedNuclide)
if (-1 !== findIndex) { if (-1 !== findIndex) {
try { try {
this.$set(this.selectedTableItem, '_deleting', true) this.$set(this.selectedTableItem, '_deleting', true)
@ -1448,7 +1455,7 @@ export default {
curRow: this.curRow, curRow: this.curRow,
nuclideName: this.model.identifiedNuclide, nuclideName: this.model.identifiedNuclide,
fileName, fileName,
list_identify: nuclides list_identify: nuclides,
}) })
if (success) { if (success) {
nuclides.splice(findIndex, 1) nuclides.splice(findIndex, 1)
@ -1467,43 +1474,35 @@ export default {
buildBaseLine(channelBaseLineChart) { buildBaseLine(channelBaseLineChart) {
return buildLineSeries( return buildLineSeries(
'BaseLine', 'BaseLine',
channelBaseLineChart.pointlist.map(({ x, y }) => [x, y]), transformPointListData(channelBaseLineChart.pointlist),
channelBaseLineChart.color, channelBaseLineChart.color,
{ {
markLine: { markLine: {
silent: true, silent: true,
symbol: 'none', symbol: 'none',
label: { label: {
show: false show: false,
}, },
lineStyle: { lineStyle: {
color: 'red', color: 'red',
width: 1 width: 1,
}, },
data: [{ xAxis: -1 }] data: [{ xAxis: -1 }],
}, },
zlevel: 10 zlevel: 10,
} }
) )
}, },
// count // count
buildCountLine(channelCountChart) { buildCountLine(channelCountChart) {
return buildLineSeries( return buildLineSeries('CountChart', transformPointListData(channelCountChart.pointlist), channelCountChart.color)
'CountChart',
channelCountChart.pointlist.map(({ x, y }) => [x, y]),
channelCountChart.color
)
}, },
// Peaks // Peaks
buildPeaks(channelPeakChart) { buildPeaks(channelPeakChart) {
return channelPeakChart.map((item, index) => { return channelPeakChart.map((item, index) => {
return buildLineSeries( return buildLineSeries('Peak_' + (index + 1), transformPointListData(item.pointlist), item.color)
'Peak_' + (index + 1),
item.pointlist.map(({ x, y }) => [x, y]),
item.color
)
}) })
}, },
@ -1515,7 +1514,7 @@ export default {
data: this.buildCPPointData(channelBaseCPChart), data: this.buildCPPointData(channelBaseCPChart),
silent: true, silent: true,
animation: false, animation: false,
zlevel: 20 zlevel: 20,
} }
}, },
@ -1526,7 +1525,7 @@ export default {
barChart.map(({ x, y }) => [x, y]), barChart.map(({ x, y }) => [x, y]),
'#fff', '#fff',
{ {
silent: true silent: true,
} }
) )
}, },
@ -1539,7 +1538,7 @@ export default {
pushOperationStack(operator, operand) { pushOperationStack(operator, operand) {
this.operationStack.push({ this.operationStack.push({
operator, operator,
operand operand,
}) })
}, },
@ -1584,19 +1583,19 @@ export default {
*/ */
clearOperationStack() { clearOperationStack() {
this.operationStack = [] this.operationStack = []
} },
}, },
computed: { computed: {
curRow() { curRow() {
const [selectedKey] = this.selectedKeys const [selectedKey] = this.selectedKeys
const findIndex = this.list.findIndex(item => item.index == selectedKey) const findIndex = this.list.findIndex((item) => item.index == selectedKey)
return findIndex return findIndex
}, },
isOperationStackEmpty() { isOperationStackEmpty() {
return this.operationStack.length == 0 return this.operationStack.length == 0
} },
} },
} }
</script> </script>