diff --git a/src/utils/file.js b/src/utils/file.js new file mode 100644 index 0000000..60c4ac9 --- /dev/null +++ b/src/utils/file.js @@ -0,0 +1,33 @@ +import { Modal } from 'ant-design-vue' +import { saveAs } from 'file-saver' + +/** + * 弹窗填入文件名保存文件 + * @param {Blob} data 数据 + * @param {string} ext 扩展名,不带. + */ +export const showSaveFileModal = (data, ext) => { + let fileName = '' + const handleClick = event => { + fileName = event.target.value + } + + Modal.confirm({ + title: 'Please enter file name', + content: h => , + okText: 'Cancle', + cancelText: 'Save', + okButtonProps: { style: { backgroundColor: '#b98326', color: '#fff', borderColor: 'transparent' } }, + cancelButtonProps: { style: { color: '#fff', backgroundColor: '#31aab0', borderColor: 'transparent' } }, + onOk() { + console.log('Cancel') + }, + onCancel() { + if (fileName) { + saveAs(data, `${fileName}.${ext}`) + } else { + throw new Error() + } + } + }) +} diff --git a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/NuclideReviewModal.vue b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/NuclideReviewModal.vue index c8b0d2e..43c7e6b 100644 --- a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/NuclideReviewModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/NuclideReviewModal.vue @@ -159,6 +159,9 @@ export default { props: { channel: { type: Number + }, + nuclide: { + type: String } }, data() { @@ -265,13 +268,17 @@ export default { } this.handleResData(result) + this.isLoading = false + + if (this.nuclide && this.nuclideList.length) { + this.currNuclide = this.nuclide + this.getInfoByNuclide() + } } else { this.$message.error(message) } } catch (error) { console.error(error) - } finally { - this.isLoading = false } }, @@ -307,7 +314,6 @@ export default { fileName: inputFileName }) if (success) { - console.log('%c [ ]-301', 'font-size:13px; background:pink; color:#bf2c9f;', result) const { chart, halfLife, halfLifeErr, lines, name, table } = result this.info = { diff --git a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue index ff76c75..40e8b85 100644 --- a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue +++ b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue @@ -1317,6 +1317,7 @@ export default { const [xPixel] = chart.convertToPixel('grid', [xAxis, yAxis]) // 保持x轴不变 this.position[0] = xPixel + this.redrawBaseLine() }, ondragend: ({ offsetY }) => { this.setGraphicDraggable(false) @@ -1348,6 +1349,11 @@ export default { } }, + // 重新生成基线 + redrawBaseLine() { + console.log('%c [ 重新生成基线 ]-1355', 'font-size:13px; background:pink; color:#bf2c9f;', ) + }, + // 根据数据绘制 + 号 buildGraphicPlusByData() { this.option.graphic[1].children.forEach(item => { diff --git a/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/AutomaticAnalysisLogModal.vue b/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/AutomaticAnalysisLogModal.vue index 5edfa76..ad8ea00 100644 --- a/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/AutomaticAnalysisLogModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/BetaGammaModals/AutomaticAnalysisLogModal.vue @@ -41,7 +41,11 @@ export default { const res = await getAction(this.type == 1 ? '/gamma/viewAutomaticAnalysisLog' : '/gamma/viewAutomaticAnalysisLog', { // 自动分析日志接口暂用都是gammam,beta暂时没有 sampleId }) - this.content = "" + if(typeof res == 'string') { + this.content = res + } else if(typeof res == 'object') { + this.$message.error(res.message) + } } catch (error) { console.error(error) } finally { diff --git a/src/views/spectrumAnalysis/components/Modals/ConfigUserLibraryModal.vue b/src/views/spectrumAnalysis/components/Modals/ConfigUserLibraryModal.vue index e2ca10b..62c74fe 100644 --- a/src/views/spectrumAnalysis/components/Modals/ConfigUserLibraryModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/ConfigUserLibraryModal.vue @@ -18,11 +18,11 @@
- Default + Default Load
- Save + Save Apply
@@ -33,14 +33,17 @@ diff --git a/src/views/spectrumAnalysis/components/SubOperators/PopOverWithIcon.vue b/src/views/spectrumAnalysis/components/SubOperators/PopOverWithIcon.vue index 7e52eb8..ace73aa 100644 --- a/src/views/spectrumAnalysis/components/SubOperators/PopOverWithIcon.vue +++ b/src/views/spectrumAnalysis/components/SubOperators/PopOverWithIcon.vue @@ -40,44 +40,3 @@ export default { } } - - diff --git a/src/views/spectrumAnalysis/gamma-analysis.vue b/src/views/spectrumAnalysis/gamma-analysis.vue index ada4804..47a3b89 100644 --- a/src/views/spectrumAnalysis/gamma-analysis.vue +++ b/src/views/spectrumAnalysis/gamma-analysis.vue @@ -20,10 +20,21 @@ @reset="handleReset" /> - - Nuclide Library - - + +
+ Nuclide Library + +
+ + + +
+
@@ -69,6 +80,13 @@ + + @@ -78,13 +96,14 @@ import PopOverWithIcon from './components/SubOperators/PopOverWithIcon.vue' import DetailedInfomation from './components/SubOperators/DetailedInfomation.vue' import QcFlags from './components/SubOperators/QcFlags.vue' import GraphAssistance from './components/SubOperators/GraphAssistance.vue' -import NuclearLibrary from './components/SubOperators/NuclearLibrary.vue' +import NuclideLibrary from './components/SubOperators/NuclideLibrary.vue' import ButtonWithSwitchIcon from './components/SubOperators/ButtonWithSwitchIcon.vue' import { getAction } from '@/api/manage' import Response from './response.json' import { buildLineSeries, findSeriesByName, getXAxisAndYAxisByPosition, rangeNumber } from '@/utils/chartHelper' import { cloneDeep } from 'lodash' import axios from 'axios' +import NuclideReviewModal from './components/Modals/AnalyzeInteractiveToolModal/components/NuclideReviewModal.vue' // 初始配置 const initialOption = { @@ -246,12 +265,14 @@ export default { DetailedInfomation, QcFlags, GraphAssistance, - NuclearLibrary, + NuclideLibrary, ButtonWithSwitchIcon, + NuclideReviewModal, }, data() { return { isLoading: false, + isLoadingNuclide: false, option: cloneDeep(initialOption), opts: { notMerge: false, @@ -261,6 +282,7 @@ export default { detailedInfomation: [], qcFlags: [], graphAssistance: cloneDeep(graphAssistance), + nuclideLibraryVisible: false, channelPeakGroup: [], energyPeakGroup: [], @@ -273,6 +295,12 @@ export default { top: 0, left: 0, }, + + nuclideReview: { + visible: false, + nuclide: '', + }, + currChannel: -1, } }, created() { @@ -609,10 +637,10 @@ export default { this.thumbnailOption.series[0].symbol = 'none' break case 'Scatter': - this.option.series[0].type = 'scatterGL' + this.option.series[0].type = 'scatter' this.option.series[0].symbol = 'circle' - this.thumbnailOption.series[0].type = 'scatterGL' + this.thumbnailOption.series[0].type = 'scatter' this.thumbnailOption.series[0].symbol = 'circle' break } @@ -643,6 +671,10 @@ export default { } }, + handleChangeNuclideVisible() { + this.nuclideLibraryVisible = !this.nuclideLibraryVisible + }, + // 根据seriesName重绘线 redrawLineBySeriesName(seriesName, energyData, channelData, isShow = true) { const series = findSeriesByName(this.option.series, seriesName) @@ -722,8 +754,10 @@ export default { // 获取 Nuclide Library 数据 async getSelPosNuclide(channel) { + this.currChannel = channel + try { - this.loading = true + this.isLoadingNuclide = true const { sampleId, inputFileName: fileName } = this.sample const { success, result, message } = await getAction('/gamma/getSelPosNuclide', { @@ -732,8 +766,8 @@ export default { fileName, }) if (success) { - const { identify } = result - this.nuclideLibraryList = identify + const { possible } = result + this.nuclideLibraryList = possible } else { this.$message.error(message) } @@ -741,10 +775,17 @@ export default { this.list = [] console.error(error) } finally { - this.loading = false + this.isLoadingNuclide = false } }, + // Nuclide Library 单项双击 + handleNuclideDblClick(nuclide) { + this.nuclideLibraryVisible = false + this.nuclideReview.nuclide = nuclide + this.nuclideReview.visible = true + }, + resize() { this.$refs.chartRef.resize() this.$refs.thumbnailChartRef.resize() @@ -821,19 +862,25 @@ export default { const max = item.pointlist.find((point) => point.y == Math.max(...allY)) return max.x }) + + let find = null if (direction == 'right') { // 找到第一个比prevAxis大的xAxis - const find = maxXAxises.find((xAxis) => xAxis > prevAxis) + find = maxXAxises.find((xAxis) => xAxis > prevAxis) if (find) { this.option.series[0].markLine.data[0].xAxis = find } } else if (direction == 'left') { // 找到第一个比prevAxis小的xAxis - const find = maxXAxises.reverse().find((xAxis) => xAxis < prevAxis) + find = maxXAxises.reverse().find((xAxis) => xAxis < prevAxis) if (find) { this.option.series[0].markLine.data[0].xAxis = find } } + + if (find) { + this.getSelPosNuclide(find) + } }, // 鼠标按下时开启可刷选状态 diff --git a/src/views/spectrumAnalysis/index.vue b/src/views/spectrumAnalysis/index.vue index 3119c73..6f2d87a 100644 --- a/src/views/spectrumAnalysis/index.vue +++ b/src/views/spectrumAnalysis/index.vue @@ -1183,6 +1183,43 @@ export default { // 主体部分结束 } +