From 0a021a3c53da160fcc18e7779b6623bc49727e14 Mon Sep 17 00:00:00 2001 From: Xu Zhimeng Date: Tue, 10 Oct 2023 15:55:43 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20Load=20From=20File=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E6=97=B6=E4=BF=9D=E7=95=99=E8=A1=A8=E6=A0=BC=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=96=9C=E7=8E=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=97=B6=E5=80=BC=E4=B8=8D=E5=AF=B9=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=9C=89=E6=96=9C=E7=8E=87=E7=9A=84?= =?UTF-8?q?=E5=9F=BA=E7=BA=BF=E6=8E=A7=E5=88=B6=E7=82=B9=E6=97=81=E8=BE=B9?= =?UTF-8?q?+=E5=8F=B7=E4=BD=8D=E7=BD=AE=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8DPeak=20Infomation=E5=88=87=E6=8D=A2=E6=97=B6?= =?UTF-8?q?=E5=BA=95=E9=83=A8=E5=9B=BE=E8=A1=A8=E6=A0=87=E9=A2=98=E6=9C=AA?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/EditSlopeModal.vue | 2 +- .../AnalyzeInteractiveToolModal/index.vue | 14 ++++--- .../components/Modals/LoadFromFileModal.vue | 8 ++-- src/views/spectrumAnalysis/gamma-analysis.vue | 42 ++++++++++++++----- 4 files changed, 45 insertions(+), 21 deletions(-) diff --git a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/EditSlopeModal.vue b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/EditSlopeModal.vue index 5b5e4e1..4dc3de0 100644 --- a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/EditSlopeModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/EditSlopeModal.vue @@ -37,7 +37,7 @@ export default { }, handleOK() { if (this.allowNaN || this.value) { - this.$emit('change', this.value || 0, this.index, this.prevValue) + this.$emit('change', this.value, this.index, this.prevValue) this.visible = false } else { this.$message.warn('Input value invalid.') diff --git a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue index 88d85dd..f65cb81 100644 --- a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue +++ b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/index.vue @@ -206,6 +206,7 @@ import SampleDataMixin from '@/views/spectrumAnalysis/SampleDataMixin' import GeneralCommentModal from './components/GeneralCommentModal.vue' import EditSlopeModal from './components/EditSlopeModal.vue' import Response from './Response.json' +import { isNullOrUndefined } from '@/utils/util' // 初始配置 const initialOption = { @@ -414,7 +415,7 @@ const nuclideIdentifyModal = { } // 操作类型 -export const Operators = { +const Operators = { ADD: 1, // 新增 REMOVE: 2, // 移除 MODIFY: 3, // 改变 @@ -693,6 +694,7 @@ export default { if (!peaksBetweenChannel.length) { this.$message.warn(`There are 0 peak between channel ${left} and ${right}`) + this.isFitting = false return } @@ -1377,9 +1379,9 @@ export default { xctrlList.forEach((xctrl, index) => { const yctrl = yctrlList[index] const yslope = yslopeList[index] - if (yslope != 0) { - plusGraphic.push(this.buildGraphicPlus(xctrl + 2, yctrl + 2 * yslope)) + if (!isNullOrUndefined(yslope)) { plusGraphic.push(this.buildGraphicPlus(xctrl - 2, yctrl - 2 * yslope)) + plusGraphic.push(this.buildGraphicPlus(xctrl + 2, yctrl + 2 * yslope)) } }) this.option.graphic[1].children = plusGraphic @@ -1396,11 +1398,11 @@ export default { $action: 'replace', position: [xPix, yPix], style: { - x: -10, - y: -10, text: '+', fill: '#0f0', - font: 'bolder 20px "Microsoft YaHei", sans-serif' + font: 'bolder 20px "Microsoft YaHei", sans-serif', + textAlign: 'center', + textVerticalAlign: 'middle' }, zlevel: 101 } diff --git a/src/views/spectrumAnalysis/components/Modals/LoadFromFileModal.vue b/src/views/spectrumAnalysis/components/Modals/LoadFromFileModal.vue index d4a4e3f..9d50107 100644 --- a/src/views/spectrumAnalysis/components/Modals/LoadFromFileModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/LoadFromFileModal.vue @@ -319,6 +319,9 @@ export default { canUseFilePicker, } }, + created() { + this.handleReset() + }, methods: { // 初始化为10*4的表格 getInitialList() { @@ -386,6 +389,7 @@ export default { if (!isFileInDirectory) { this.$message.warn('File and Directory Not in Same') this.directoryHanlder = undefined + this.useFilePicker(column, record, rowIndex) return } @@ -679,10 +683,6 @@ export default { handleCancel() { this.visible = false }, - - beforeModalOpen() { - this.handleReset() - }, }, } diff --git a/src/views/spectrumAnalysis/gamma-analysis.vue b/src/views/spectrumAnalysis/gamma-analysis.vue index c6d48af..401acb4 100644 --- a/src/views/spectrumAnalysis/gamma-analysis.vue +++ b/src/views/spectrumAnalysis/gamma-analysis.vue @@ -194,7 +194,7 @@ export default { } }, created() { - this.option.title.text = '{a|Channel:0} {a|Energy:0} {a|Counts:0} {a|Detectability:0}' + this.setChartBottomTitle(0, 0, 0) this.option.tooltip.formatter = this.tooltipFormatter this.$bus.$on('colorChange', this.handleColorChange) @@ -458,7 +458,7 @@ export default { } return `
Channel: ${channel}
-
Energy: ${energy}
` +
${energy? `Energy: ${energy}`: ''}
` }, // Graph Assistance 操作 @@ -643,19 +643,37 @@ export default { const spectrumLineSeries = findSeriesByName(this.option.series, 'Spectrum') spectrumLineSeries.markLine.data[0].xAxis = xAxis - const channel = this.isEnergy() ? this.getChannelByEnergy(xAxis) : parseInt(xAxis.toFixed()) - const energy = this.isEnergy() - ? xAxis.toFixed(2) - : this.energyData.all.pointlist && this.energyData.all.pointlist[channel - 1].x.toFixed(2) - const counts = this.isEnergy() - ? this.energyData.all.pointlist[channel - 1] - : this.channelData.all.pointlist[channel - 1] - this.option.title.text = `{a|Channel:${channel}} {a|Energy:${energy}} {a|Counts:${counts.y}} {a|Detectability:0}` + const { channel, energy, counts } = this.getEnergyAndCountsByXAxis(xAxis) + this.setChartBottomTitle(channel, energy, counts) this.getSelPosNuclide(channel) } }, + // 设置图表底部的标题 + setChartBottomTitle(channel, energy, counts) { + this.option.title.text = `{a|Channel:${channel}} {a|Energy:${energy}} {a|Counts:${counts}} {a|Detectability:0}` + }, + + // 根据xAixs值找channel、energy和counts + getEnergyAndCountsByXAxis(xAxis) { + let channel, energy, counts + if (this.isEnergy()) { + channel = this.getChannelByEnergy(xAxis) + energy = xAxis.toFixed(2) + counts = this.energyData.all.pointlist[channel - 1] + } else { + channel = parseInt(xAxis.toFixed()) + energy = this.energyData.all.pointlist && this.energyData.all.pointlist[channel - 1].x.toFixed(2) + counts = this.channelData.all.pointlist[channel - 1] + } + return { + channel, + energy, + counts: counts.y + } + }, + // 双击还原 handleChartDblClick() { this.handleResetChart() @@ -789,6 +807,8 @@ export default { if (find) { this.getSelPosNuclide(find) + const { channel, energy, counts } = this.getEnergyAndCountsByXAxis(find) + this.setChartBottomTitle(channel, energy, counts) } }, @@ -1135,6 +1155,8 @@ export default { } } catch (error) { console.error(error) + } finally { + this.isLoading = false } // this.reprocessingModalVisible = true }, From 4a17c09ddd4bacd1611e7436da147fa2840e78fd Mon Sep 17 00:00:00 2001 From: Xu Zhimeng Date: Wed, 11 Oct 2023 10:02:47 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DAnalysis=20Setting?= =?UTF-8?q?s=20=E9=83=A8=E5=88=86=E5=80=BC=E6=9C=AA=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Modals/AnalyzeSettingModal.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/views/spectrumAnalysis/components/Modals/AnalyzeSettingModal.vue b/src/views/spectrumAnalysis/components/Modals/AnalyzeSettingModal.vue index cc39cab..8c4c6a3 100644 --- a/src/views/spectrumAnalysis/components/Modals/AnalyzeSettingModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/AnalyzeSettingModal.vue @@ -43,10 +43,10 @@ - Update Calibration + Update Calibration - Keep Calibration Peak Search Peaks + Keep Calibration Peak Search Peaks @@ -175,6 +175,8 @@ export default { edit_riskLevelK, dateTime_Act, dateTime_Conc, + checkBox_updateCal, + checkBox_keepPeak, } = this.model const param = { @@ -192,6 +194,8 @@ export default { riskLevelK: edit_riskLevelK, refTime_act: dateTime_Act, refTime_conc: dateTime_Conc, + updateCalibration: checkBox_updateCal, + keepCalPeakSearchPeaks: checkBox_keepPeak, } const { success, message } = await postAction('/gamma/configureSave', param) From 5d632a2954155a907f0e60f060f030efd2bc4790 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=BB=E7=8F=AE=E5=AE=87?= Date: Thu, 12 Oct 2023 15:30:41 +0800 Subject: [PATCH 3/3] =?UTF-8?q?analysis=20=E6=A8=A1=E5=9D=97=EF=BC=8C?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=88=86=E6=9E=90=E5=BC=B9=E7=AA=97=EF=BC=8C?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9B=B4=E6=96=B0=E5=AE=9E=E6=97=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Modals/AnalyzeSettingModal.vue | 1 + .../Modals/ReProcessingModal/index.vue | 160 ++++++++++++++++-- src/views/spectrumAnalysis/gamma-analysis.vue | 102 ++++++++++- src/views/spectrumAnalysis/index.vue | 13 +- 4 files changed, 250 insertions(+), 26 deletions(-) diff --git a/src/views/spectrumAnalysis/components/Modals/AnalyzeSettingModal.vue b/src/views/spectrumAnalysis/components/Modals/AnalyzeSettingModal.vue index 8c4c6a3..2b14225 100644 --- a/src/views/spectrumAnalysis/components/Modals/AnalyzeSettingModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/AnalyzeSettingModal.vue @@ -201,6 +201,7 @@ export default { const { success, message } = await postAction('/gamma/configureSave', param) if (success) { this.$message.success('Save Success') + this.$emit('senInfo', checkBox_updateCal ? '1' : '0') } else { this.$message.error(message) } diff --git a/src/views/spectrumAnalysis/components/Modals/ReProcessingModal/index.vue b/src/views/spectrumAnalysis/components/Modals/ReProcessingModal/index.vue index 23904cb..b9f09c5 100644 --- a/src/views/spectrumAnalysis/components/Modals/ReProcessingModal/index.vue +++ b/src/views/spectrumAnalysis/components/Modals/ReProcessingModal/index.vue @@ -1,52 +1,52 @@ @@ -121,11 +129,18 @@ import ReProcessingModal from './components/Modals/ReProcessingModal/index.vue' import { GammaOptions, graphAssistance } from './settings' +import store from '@/store/' +import Vue from 'vue' +import { ACCESS_TOKEN } from '@/store/mutation-types' + export default { props: { sample: { type: Object, }, + updateFlag: { + type: String, + }, }, components: { CustomChart, @@ -141,6 +156,7 @@ export default { }, data() { return { + abc: false, isLoading: false, isLoadingNuclide: false, option: cloneDeep(GammaOptions.option), @@ -191,6 +207,12 @@ export default { compareFileListModalVisible: false, // Compare 弹窗 reprocessingModalVisible: false, // 重新分析弹窗 isProcessing: false, // 正在处理 + websock: null, + lockReconnect: false, + bAnalyed: false, //是否重新分析 + checkBox_updateCal: false, //update复选框状态 + newCheckBox_updateCal: false, //update复选框状态 + currStep: '', } }, created() { @@ -210,8 +232,55 @@ export default { }, mounted() { this.option.brush = { toolbox: [] } + this.initWebSocket() }, methods: { + initWebSocket: function () { + console.log('qweqwerq') + // WebSocket与普通的请求所用协议有所不同,ws等同于http,wss等同于https + var userId = store.getters.userInfo.id + var url = + window._CONFIG['domianURL'].replace('https://', 'wss://').replace('http://', 'ws://') + '/websocket/' + userId + //console.log(url); + //update-begin-author:taoyan date:2022-4-22 for: v2.4.6 的 websocket 服务端,存在性能和安全问题。 #3278 + let token = Vue.ls.get(ACCESS_TOKEN) + this.websock = new WebSocket(url, [token]) + //update-end-author:taoyan date:2022-4-22 for: v2.4.6 的 websocket 服务端,存在性能和安全问题。 #3278 + this.websock.onopen = this.websocketOnopen + this.websock.onerror = this.websocketOnerror + this.websock.onmessage = this.websocketOnmessage + this.websock.onclose = this.websocketOnclose + }, + websocketOnopen: function () { + // console.log('WebSocket连接成功1231') + //心跳检测重置 + //this.heartCheck.reset().start(); + }, + websocketOnerror: function (e) { + this.reconnect() + }, + websocketOnmessage: function (e) { + // console.log('-----接收消息1231-------', e.data) + var data = eval('(' + e.data + ')') //解析对象 + // console.log(data) + if (data.cmd === 'analysis-process') { + this.currStep = data.msgTxt + } + }, + websocketOnclose: function (e) { + this.reconnect() + }, + reconnect() { + var that = this + if (that.lockReconnect) return + that.lockReconnect = true + //没连接上会一直重连,设置延迟避免请求过多 + setTimeout(function () { + console.info('尝试重连...') + that.initWebSocket() + that.lockReconnect = false + }, 20000) + }, // 获取样品详情 async getSampleDetail() { const { dbName, sampleId } = this.sample @@ -234,7 +303,7 @@ export default { ) console.log('%c [ result ]-243', 'font-size:13px; background:pink; color:#bf2c9f;', result) if (success) { - this.dataProsess(result) + this.dataProsess(result, 'db') } else { this.$message.error(message) } @@ -262,7 +331,7 @@ export default { ) console.log('%c [ result ]-243', 'font-size:13px; background:pink; color:#bf2c9f;', result) if (success) { - this.dataProsess(result) + this.dataProsess(result, 'file') } else { this.$message.error(message) } @@ -284,7 +353,7 @@ export default { return cancelToken }, - dataProsess(result) { + dataProsess(result, flag) { this.isLoading = false const { @@ -304,7 +373,12 @@ export default { shapeChannelData, shapeEnergyData, } = result - + if (flag && (flag == 'dab' || flag == 'file')) { + this.bAnalyed = result.bAnalyed + this.checkBox_updateCal = result.checkBox_updateCal + this.newCheckBox_updateCal = '2' + console.log(this.checkBox_updateCal) + } this.detailedInfomation = DetailedInformation this.qcFlags = QCFlag @@ -458,7 +532,7 @@ export default { } return `
Channel: ${channel}
-
${energy? `Energy: ${energy}`: ''}
` +
${energy ? `Energy: ${energy}` : ''}
` }, // Graph Assistance 操作 @@ -670,7 +744,7 @@ export default { return { channel, energy, - counts: counts.y + counts: counts.y, } }, @@ -1127,6 +1201,8 @@ export default { // 重新分析 async reProcessing() { + this.abc = true + this.reprocessingModalVisible = true if (this.isProcessing) { return } @@ -1158,7 +1234,10 @@ export default { } finally { this.isLoading = false } - // this.reprocessingModalVisible = true + }, + haCndleCloseModal() { + this.reprocessingModalVisible = false + this.abc = false }, /** @@ -1374,6 +1453,13 @@ export default { }, immediate: true, }, + updateFlag: { + handler(val) { + console.log('dfad', val) + this.newCheckBox_updateCal = val + }, + immediate: true, + }, }, } diff --git a/src/views/spectrumAnalysis/index.vue b/src/views/spectrumAnalysis/index.vue index af0d00d..6634a8c 100644 --- a/src/views/spectrumAnalysis/index.vue +++ b/src/views/spectrumAnalysis/index.vue @@ -30,7 +30,7 @@
- + @@ -78,7 +78,11 @@ - + @@ -374,6 +378,7 @@ export default { xe133mFlag: null, xe135Flag: null, }, + updateFlag: '2', } }, created() { @@ -391,6 +396,10 @@ export default { }, methods: { + getUpdateFlag(val) { + console.log('qerq', val) + this.updateFlag = val + }, getcommentsInfo(val) { this.params_toDB.comment = val.spectrumAnalysisCommentInfo },