Merge branch 'feature-analysis-RLR-renpy' of http://git.hivekion.com:3000/xiaoguangbin/AnalysisSystemForRadionuclide_vue into feature-analysis-RLR-renpy
This commit is contained in:
		
						commit
						f912c4d8dc
					
				|  | @ -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) | ||||
|         } | ||||
|  |  | |||
|  | @ -1,52 +1,52 @@ | |||
| <template> | ||||
|   <custom-modal v-model="visible" :width="400" title="Processing Monitor" :footer="null"> | ||||
|     <div class="processing"> | ||||
|       <div> | ||||
|       <div v-if="calibrationUpdatesFlag" style="margin-bottom: 20px"> | ||||
|         <!-- 标题 --> | ||||
|         <div class="processing-title">Calibration Updates</div> | ||||
|         <!-- 列表 --> | ||||
|         <div class="processing-list"> | ||||
|           <div class="processing-list-item"> | ||||
|             <status :status="0" /> | ||||
|             <status :status="status_ener1" /> | ||||
|             <div class="description">Energy - Mariscotti Centroids</div> | ||||
|           </div> | ||||
|           <div class="processing-list-item"> | ||||
|             <status :status="0" /> | ||||
|             <status :status="status_reso" /> | ||||
|             <div class="description">Resolution</div> | ||||
|           </div> | ||||
|           <div class="processing-list-item"> | ||||
|             <status :status="0" /> | ||||
|             <status :status="status_ener2" /> | ||||
|             <div class="description">Energy - Fitted Centroids</div> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div style="margin-top: 20px;"> | ||||
|       <div> | ||||
|         <!-- 标题 --> | ||||
|         <div class="processing-title">Spectrum Analysis</div> | ||||
|         <!-- 列表 --> | ||||
|         <div class="processing-list"> | ||||
|           <div class="processing-list-item"> | ||||
|             <status :status="0" /> | ||||
|             <status :status="status_peak" /> | ||||
|             <div class="description">Peak Search</div> | ||||
|           </div> | ||||
|           <div class="processing-list-item"> | ||||
|             <status :status="0" /> | ||||
|             <status :status="status_base" /> | ||||
|             <div class="description">Baseline Fitting</div> | ||||
|           </div> | ||||
|           <div class="processing-list-item"> | ||||
|             <status :status="1" /> | ||||
|             <status :status="status_net" /> | ||||
|             <div class="description">Net Area Fitting</div> | ||||
|           </div> | ||||
|           <div class="processing-list-item"> | ||||
|             <status :status="2" /> | ||||
|             <status :status="status_nucl" /> | ||||
|             <div class="description">Nuclide Identification</div> | ||||
|           </div> | ||||
|           <div class="processing-list-item"> | ||||
|             <status :status="2" /> | ||||
|             <status :status="status_acti" /> | ||||
|             <div class="description">Activity and MDA</div> | ||||
|           </div> | ||||
|           <div class="processing-list-item"> | ||||
|             <status :status="2" /> | ||||
|             <status :status="status_qc" /> | ||||
|             <div class="description">QC Test</div> | ||||
|           </div> | ||||
|         </div> | ||||
|  | @ -59,12 +59,24 @@ | |||
| import Status from './components/status.vue' | ||||
| export default { | ||||
|   components: { | ||||
|     Status | ||||
|     Status, | ||||
|   }, | ||||
|   props: { | ||||
|     value: { | ||||
|       type: Boolean | ||||
|     } | ||||
|       type: Boolean, | ||||
|     }, | ||||
|     bAnalyed: { | ||||
|       type: Boolean, | ||||
|     }, | ||||
|     checkBoxFlag: { | ||||
|       type: Boolean, | ||||
|     }, | ||||
|     newCheckBoxFlag: { | ||||
|       type: String, | ||||
|     }, | ||||
|     currStep: { | ||||
|       type: String, | ||||
|     }, | ||||
|   }, | ||||
|   computed: { | ||||
|     visible: { | ||||
|  | @ -73,9 +85,125 @@ export default { | |||
|       }, | ||||
|       set(val) { | ||||
|         this.$emit('input', val) | ||||
|       } | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
|   watch: { | ||||
|     newCheckBoxFlag: { | ||||
|       handler(val) { | ||||
|         console.log('flag', val) | ||||
|         if (val === '0') { | ||||
|           this.calibrationUpdatesFlag = false | ||||
|           this.status_peak = 1 | ||||
|           this.status_base = 2 | ||||
|           this.status_net = 2 | ||||
|           this.status_nucl = 2 | ||||
|           this.status_acti = 2 | ||||
|           this.status_qc = 2 | ||||
|         } else if (val === '1') { | ||||
|           this.calibrationUpdatesFlag = true | ||||
|           this.status_ener1 = 1 | ||||
|           this.status_reso = 1 | ||||
|           this.status_ener2 = 1 | ||||
|           this.status_peak = 2 | ||||
|           this.status_base = 2 | ||||
|           this.status_net = 2 | ||||
|           this.status_nucl = 2 | ||||
|           this.status_acti = 2 | ||||
|           this.status_qc = 2 | ||||
|         } else { | ||||
|           this.calibrationUpdatesFlag = this.checkBoxFlag | ||||
|           this.status_peak = this.checkBoxFlag ? 2 : 1 | ||||
|           this.status_ener1 = 1 | ||||
|           this.status_reso = 1 | ||||
|           this.status_ener2 = 1 | ||||
|           this.status_base = 2 | ||||
|           this.status_net = 2 | ||||
|           this.status_nucl = 2 | ||||
|           this.status_acti = 2 | ||||
|           this.status_qc = 2 | ||||
|         } | ||||
|       }, | ||||
|       immediate: true, | ||||
|     }, | ||||
|     currStep: { | ||||
|       handler(val) { | ||||
|         if (val === '0' && this.calibrationUpdatesFlag) { | ||||
|           this.status_ener1 = 0 | ||||
|           this.status_reso = 0 | ||||
|           this.status_ener2 = 0 | ||||
|           this.status_peak = 1 | ||||
|         } else if (val === '1') { | ||||
|           this.status_ener1 = 0 | ||||
|           this.status_reso = 0 | ||||
|           this.status_ener2 = 0 | ||||
|           this.status_peak = 0 | ||||
|           this.status_base = 1 | ||||
|         } else if (val === '2') { | ||||
|           this.status_ener1 = 0 | ||||
|           this.status_reso = 0 | ||||
|           this.status_ener2 = 0 | ||||
|           this.status_peak = 0 | ||||
|           this.status_base = 0 | ||||
|           this.status_net = 1 | ||||
|         } else if (val === '3') { | ||||
|           this.status_ener1 = 0 | ||||
|           this.status_reso = 0 | ||||
|           this.status_ener2 = 0 | ||||
|           this.status_peak = 0 | ||||
|           this.status_base = 0 | ||||
|           this.status_net = 0 | ||||
|           this.status_nucl = 1 | ||||
|         } else if (val === '4') { | ||||
|           this.status_ener1 = 0 | ||||
|           this.status_reso = 0 | ||||
|           this.status_ener2 = 0 | ||||
|           this.status_peak = 0 | ||||
|           this.status_base = 0 | ||||
|           this.status_net = 0 | ||||
|           this.status_nucl = 0 | ||||
|           this.status_acti = 1 | ||||
|         } else if (val === '5') { | ||||
|           this.status_ener1 = 0 | ||||
|           this.status_reso = 0 | ||||
|           this.status_ener2 = 0 | ||||
|           this.status_peak = 0 | ||||
|           this.status_base = 0 | ||||
|           this.status_net = 0 | ||||
|           this.status_nucl = 0 | ||||
|           this.status_acti = 0 | ||||
|           this.status_qc = 1 | ||||
|         } else if (val === '6') { | ||||
|           this.status_ener1 = 0 | ||||
|           this.status_reso = 0 | ||||
|           this.status_ener2 = 0 | ||||
|           this.status_peak = 0 | ||||
|           this.status_base = 0 | ||||
|           this.status_net = 0 | ||||
|           this.status_nucl = 0 | ||||
|           this.status_acti = 0 | ||||
|           this.status_qc = 0 | ||||
|           setTimeout(() => { | ||||
|             this.$emit('closeModal') | ||||
|           }, 500) | ||||
|         } | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       calibrationUpdatesFlag: true, | ||||
|       status_ener1: 1, | ||||
|       status_reso: 1, | ||||
|       status_ener2: 1, | ||||
|       status_peak: 2, | ||||
|       status_base: 2, | ||||
|       status_net: 2, | ||||
|       status_nucl: 2, | ||||
|       status_acti: 2, | ||||
|       status_qc: 2, | ||||
|     } | ||||
|   } | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
|  |  | |||
|  | @ -91,7 +91,15 @@ | |||
| 
 | ||||
|     <compare-file-list-modal v-model="compareFileListModalVisible" @compareWithFile="handleCompareWithFile" /> | ||||
|     <!-- ReProcessing 弹窗开始 --> | ||||
|     <re-processing-modal v-model="reprocessingModalVisible" /> | ||||
|     <re-processing-modal | ||||
|       v-if="abc" | ||||
|       v-model="reprocessingModalVisible" | ||||
|       :bAnalyed="bAnalyed" | ||||
|       :currStep="currStep" | ||||
|       :checkBoxFlag="checkBox_updateCal" | ||||
|       :newCheckBoxFlag="newCheckBox_updateCal" | ||||
|       @closeModal="haCndleCloseModal" | ||||
|     /> | ||||
|     <!-- ReProcessing 弹窗结束 --> | ||||
|   </div> | ||||
| </template> | ||||
|  | @ -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 `<div class="channel">Channel: ${channel}</div> | ||||
|               <div class="energy">${energy? `Energy: ${energy}`: ''}</div>` | ||||
|               <div class="energy">${energy ? `Energy: ${energy}` : ''}</div>` | ||||
|     }, | ||||
| 
 | ||||
|     // Graph Assistance 操作 | ||||
|  | @ -670,7 +744,7 @@ export default { | |||
|       return { | ||||
|         channel, | ||||
|         energy, | ||||
|         counts: counts.y | ||||
|         counts: counts.y, | ||||
|       } | ||||
|     }, | ||||
| 
 | ||||
|  | @ -1162,7 +1236,10 @@ export default { | |||
|       } finally { | ||||
|         this.isLoading = false | ||||
|       } | ||||
|       // this.reprocessingModalVisible = true | ||||
|     }, | ||||
|     haCndleCloseModal() { | ||||
|       this.reprocessingModalVisible = false | ||||
|       this.abc = false | ||||
|     }, | ||||
| 
 | ||||
|     /** | ||||
|  | @ -1367,6 +1444,16 @@ export default { | |||
|     }, | ||||
|   }, | ||||
|   watch: { | ||||
|     currStep: { | ||||
|       handler(val) { | ||||
|         console.log('dfad', val) | ||||
|         if (val && val == '0') { | ||||
|           this.abc = true | ||||
|           this.reprocessingModalVisible = true | ||||
|         } | ||||
|       }, | ||||
|       immediate: true, | ||||
|     }, | ||||
|     sample: { | ||||
|       handler(newVal, oldVal) { | ||||
|         console.log('newValnewVal', newVal) | ||||
|  | @ -1378,6 +1465,13 @@ export default { | |||
|       }, | ||||
|       immediate: true, | ||||
|     }, | ||||
|     updateFlag: { | ||||
|       handler(val) { | ||||
|         console.log('dfad', val) | ||||
|         this.newCheckBox_updateCal = val | ||||
|       }, | ||||
|       immediate: true, | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  |  | |||
|  | @ -30,7 +30,7 @@ | |||
|     <!-- 频谱分析部分 --> | ||||
|     <div class="spectrum-analysis-main"> | ||||
|       <!-- Gamma 分析 --> | ||||
|       <gamma-analysis v-if="isGamma" ref="gammaAnalysisRef" :sample="sampleData" /> | ||||
|       <gamma-analysis v-if="isGamma" ref="gammaAnalysisRef" :sample="sampleData" :updateFlag="updateFlag" /> | ||||
|       <!-- Gamma 分析 --> | ||||
| 
 | ||||
|       <!-- Beta-Gamma 分析 --> | ||||
|  | @ -78,7 +78,11 @@ | |||
|     <!-- Save Setting 弹窗结束 --> | ||||
| 
 | ||||
|     <!-- 分析-设置弹窗开始 --> | ||||
|     <analyze-setting-modal v-model="analyzeConfigureModalVisible" :sampleId="sampleData.sampleId" /> | ||||
|     <analyze-setting-modal | ||||
|       v-model="analyzeConfigureModalVisible" | ||||
|       :sampleId="sampleData.sampleId" | ||||
|       @senInfo="getUpdateFlag" | ||||
|     /> | ||||
|     <!-- 分析-设置弹窗结束 --> | ||||
| 
 | ||||
|     <!-- 分析工具弹窗开始 --> | ||||
|  | @ -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 | ||||
|     }, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user