feat: 增加LoadFromDb、LoadFromFile等等弹窗,修改custom-modal时的用法,
This commit is contained in:
		
							parent
							
								
									42e1000c11
								
							
						
					
					
						commit
						6c02e52e23
					
				
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/spectrum/comparation.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/spectrum/comparation.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/spectrum/download.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/images/spectrum/download.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.4 KiB | 
|  | @ -61,6 +61,8 @@ body { | |||
| .ant-table { | ||||
|   color: #ade6ee; | ||||
|   font-size: 16px; | ||||
|   border: 1px solid rgba(65,111,127, .5); | ||||
| 
 | ||||
|   &-thead { | ||||
|     > tr { | ||||
|       th { | ||||
|  | @ -679,6 +681,16 @@ input[type='number']::-webkit-outer-spin-button { | |||
|       background-color: #b98326 !important; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   &-grey { | ||||
|     // 自定义warn样式 | ||||
|     background-color: #406979 !important; | ||||
|     color: #fff !important; | ||||
|     border-color: #406979 !important; | ||||
|     &:hover { | ||||
|       background-color: #406979 !important; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| // 空状态 | ||||
|  |  | |||
|  | @ -55,7 +55,7 @@ | |||
|       </custom-table> | ||||
|     </div> | ||||
|     <!-- 日志列表结束 --> | ||||
|     <custom-modal title="Log" :width="950" v-model="visible" :show-footer="false"> | ||||
|     <custom-modal title="Log" :width="950" v-model="visible" :footer="null"> | ||||
|       <a-spin class="log-detail" :spinning="isGettingDetail"> | ||||
|         <div v-for="(logItem, index) in logInfo" :key="index"> | ||||
|           {{ logItem }} | ||||
|  |  | |||
|  | @ -56,19 +56,30 @@ | |||
|         </beta-gamma-chart-container> | ||||
|       </div> | ||||
|     </div> | ||||
| 
 | ||||
|     <!-- Comparison Modal 开始 --> | ||||
|     <comparison-modal v-model="comparisonModalVisible" /> | ||||
|     <!-- Comparison Modal 结束 --> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import BetaGammaChartContainer from './components/BetaGammaChartContainer.vue' | ||||
| import BetaGammaSpectrumChart from './components/BetaGammaSpectrumChart.vue' | ||||
| import ComparisonModal from './components/Modals/ComparisonModal.vue' | ||||
| import ResultDisplay from './components/ResultDisplay.vue' | ||||
| import SpectrumLineChart from './components/SpectrumLineChart.vue' | ||||
| 
 | ||||
| import twoDData from './data.json' | ||||
| 
 | ||||
| export default { | ||||
|   components: { BetaGammaChartContainer, SpectrumLineChart, ResultDisplay, BetaGammaSpectrumChart }, | ||||
|   components: { | ||||
|     BetaGammaChartContainer, | ||||
|     SpectrumLineChart, | ||||
|     ResultDisplay, | ||||
|     BetaGammaSpectrumChart, | ||||
|     ComparisonModal | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       resultDisplay: [ | ||||
|  | @ -101,7 +112,8 @@ export default { | |||
|           mdc: '0.03464' | ||||
|         } | ||||
|       ], | ||||
|       twoDData: {} | ||||
|       twoDData: {}, | ||||
|       comparisonModalVisible: false | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|  |  | |||
|  | @ -376,6 +376,7 @@ export default { | |||
|       width: 100px; | ||||
|       background-color: #406979; | ||||
|       cursor: pointer; | ||||
|       user-select: none; | ||||
| 
 | ||||
|       &.active { | ||||
|         background-color: #1397a3; | ||||
|  |  | |||
|  | @ -1,30 +0,0 @@ | |||
| <template> | ||||
|   <a-modal v-model="visible" title="Load From Database" class="load-from-db-modal"> | ||||
|     从数据库加载 | ||||
|   </a-modal> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|   props: { | ||||
|     value: { | ||||
|       type: Boolean | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     visible: { | ||||
|       get() { | ||||
|         return this.value | ||||
|       }, | ||||
|       set(val) { | ||||
|         this.$emit('input', val) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .load-from-db-modal { | ||||
| } | ||||
| </style> | ||||
|  | @ -1,128 +0,0 @@ | |||
| <template> | ||||
|   <a-modal v-model="visible" :width="1400" title="Load Data From File"> | ||||
|     <a-table :data-source="list" :columns="columns" :pagination="false"> | ||||
|       <template slot="sampleData"> | ||||
|         <a-input type="file" @change="handleFileChange($event, 'sampleData')"></a-input> | ||||
|       </template> | ||||
|       <template slot="gasBkData"> | ||||
|         <a-input type="file" @change="handleFileChange($event, 'gasBkData')"></a-input> | ||||
|       </template> | ||||
|       <template slot="detBkData"> | ||||
|         <a-input type="file" @change="handleFileChange($event, 'detBkData')"></a-input> | ||||
|       </template> | ||||
|       <template slot="qcData"> | ||||
|         <a-input type="file" @change="handleFileChange($event, 'qcData')"></a-input> | ||||
|       </template> | ||||
|       <template slot="status" slot-scope="text"> | ||||
|         <span class="status"></span> | ||||
|       </template> | ||||
|     </a-table> | ||||
| 
 | ||||
|     <!-- 底部按钮 --> | ||||
|     <template slot="footer"> | ||||
|       <a-space> | ||||
|         <a-button type="primary" @click="handleReset">Reset</a-button> | ||||
|         <a-button type="primary" @click="handleLoad">Load</a-button> | ||||
|         <a-button type="primary" @click="handleCancel">Cancel</a-button> | ||||
|       </a-space> | ||||
|     </template> | ||||
|     <!-- 底部按钮结束 --> | ||||
|   </a-modal> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| const columns = [ | ||||
|   { | ||||
|     title: 'SampleData', | ||||
|     dataIndex: 'sampleData', | ||||
|     scopedSlots: { | ||||
|       customRender: 'sampleData' | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     title: 'GasBkData', | ||||
|     dataIndex: 'gasBkData', | ||||
|     scopedSlots: { | ||||
|       customRender: 'gasBkData' | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     title: 'DetBkData', | ||||
|     dataIndex: 'detBkData', | ||||
|     scopedSlots: { | ||||
|       customRender: 'detBkData' | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     title: 'QCData', | ||||
|     dataIndex: 'qcData', | ||||
|     scopedSlots: { | ||||
|       customRender: 'qcData' | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     title: 'Status', | ||||
|     align: 'center', | ||||
|     scopedSlots: { | ||||
|       customRender: 'status' | ||||
|     } | ||||
|   } | ||||
| ] | ||||
| 
 | ||||
| export default { | ||||
|   props: { | ||||
|     value: { | ||||
|       type: Boolean | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     this.columns = columns | ||||
|     return { | ||||
|       list: this.getInitialList() | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     getInitialList() { | ||||
|       return new Array(10).fill(0).map(() => ({ | ||||
|         sampleData: '', | ||||
|         gasBkData: '', | ||||
|         detBkData: '', | ||||
|         qcData: '' | ||||
|       })) | ||||
|     }, | ||||
| 
 | ||||
|     handleFileChange(fileInfo, key) { | ||||
|       console.log('%c [ fileInfo, key ]-86', 'font-size:13px; background:pink; color:#bf2c9f;', fileInfo, key) | ||||
|     }, | ||||
| 
 | ||||
|     handleReset() { | ||||
|       this.list = this.getInitialList() | ||||
|     }, | ||||
| 
 | ||||
|     handleLoad() {}, | ||||
| 
 | ||||
|     handleCancel() {} | ||||
|   }, | ||||
|   computed: { | ||||
|     visible: { | ||||
|       get() { | ||||
|         return this.value | ||||
|       }, | ||||
|       set(val) { | ||||
|         this.$emit('input', val) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .status { | ||||
|   display: inline-block; | ||||
|   width: 25px; | ||||
|   height: 25px; | ||||
|   border-radius: 50%; | ||||
| 
 | ||||
|   background-color: #00e170; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										130
									
								
								src/views/spectrumAnalysis/components/Modals/ComparisonModal.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								src/views/spectrumAnalysis/components/Modals/ComparisonModal.vue
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,130 @@ | |||
| <template> | ||||
|   <custom-modal v-model="visible" title="Comparison" :width="800" :footer="null" class="comparison-modal"> | ||||
|     <div class="comparison-list"> | ||||
|       <div class="comparison-list-item" v-for="(item, index) in compareList" :key="index"> | ||||
|         <div class="comparison-list-item-title">{{ item.title }}</div> | ||||
|         <custom-table :list="item.list" :columns="columns"></custom-table> | ||||
|       </div> | ||||
|     </div> | ||||
|   </custom-modal> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| const columns = [ | ||||
|   { | ||||
|     title: 'Isotope', | ||||
|     dataIndex: 'isotope' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Concentration', | ||||
|     dataIndex: 'concentration' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Uncertainty', | ||||
|     dataIndex: 'uncertainty' | ||||
|   }, | ||||
|   { | ||||
|     title: 'MDC[mBq / m3 ]', | ||||
|     dataIndex: 'mdc' | ||||
|   } | ||||
| ] | ||||
| 
 | ||||
| export default { | ||||
|   props: { | ||||
|     value: { | ||||
|       type: Boolean | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     this.columns = columns | ||||
|     return { | ||||
|       compareList: [ | ||||
|         { | ||||
|           title: 'ARMD', | ||||
|           list: [ | ||||
|             { | ||||
|               isotope: 'isotope', | ||||
|               concentration: 'concentration', | ||||
|               uncertainty: 'uncertainty', | ||||
|               mdc: 'mdc' | ||||
|             }, | ||||
|             { | ||||
|               isotope: 'isotope', | ||||
|               concentration: 'concentration', | ||||
|               uncertainty: 'uncertainty', | ||||
|               mdc: 'mdc' | ||||
|             }, | ||||
|             { | ||||
|               isotope: 'isotope', | ||||
|               concentration: 'concentration', | ||||
|               uncertainty: 'uncertainty', | ||||
|               mdc: 'mdc' | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           title: 'IDC', | ||||
|           list: [ | ||||
|             { | ||||
|               isotope: 'isotope', | ||||
|               concentration: 'concentration', | ||||
|               uncertainty: 'uncertainty', | ||||
|               mdc: 'mdc' | ||||
|             }, | ||||
|             { | ||||
|               isotope: 'isotope', | ||||
|               concentration: 'concentration', | ||||
|               uncertainty: 'uncertainty', | ||||
|               mdc: 'mdc' | ||||
|             }, | ||||
|             { | ||||
|               isotope: 'isotope', | ||||
|               concentration: 'concentration', | ||||
|               uncertainty: 'uncertainty', | ||||
|               mdc: 'mdc' | ||||
|             }, | ||||
|             { | ||||
|               isotope: 'isotope', | ||||
|               concentration: 'concentration', | ||||
|               uncertainty: 'uncertainty', | ||||
|               mdc: 'mdc' | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     visible: { | ||||
|       get() { | ||||
|         return this.value | ||||
|       }, | ||||
|       set(val) { | ||||
|         this.$emit('input', val) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .comparison-modal { | ||||
|   ::v-deep { | ||||
|     .ant-modal-body { | ||||
|       padding: 16px; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .comparison-list { | ||||
|   &-item { | ||||
|     &-title { | ||||
|       color: #0cebc9; | ||||
|     } | ||||
| 
 | ||||
|     &:last-child { | ||||
|       margin-top: 12px; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										313
									
								
								src/views/spectrumAnalysis/components/Modals/LoadFromDBModal.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										313
									
								
								src/views/spectrumAnalysis/components/Modals/LoadFromDBModal.vue
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,313 @@ | |||
| <template> | ||||
|   <custom-modal v-model="visible" :width="1200" title="Load From Database" class="load-from-db-modal"> | ||||
|     <search-form :items="formItems" v-model="queryParam" @search="searchQuery"> </search-form> | ||||
|     <custom-table | ||||
|       size="middle" | ||||
|       rowKey="sampleId" | ||||
|       :columns="columns" | ||||
|       :list="dataSource" | ||||
|       :pagination="ipagination" | ||||
|       :loading="loading" | ||||
|       @change="handleTableChange" | ||||
|       :selectedRowKeys.sync="selectedRowKeys" | ||||
|       :multiple="true" | ||||
|     > | ||||
|     </custom-table> | ||||
|     <!-- 底部操作栏 --> | ||||
|     <template slot="custom-footer"> | ||||
|       <a-button type="primary" :loading="isLoadingSample" @click="handleLoad">Load</a-button> | ||||
|     </template> | ||||
|   </custom-modal> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import { JeecgListMixin } from '@/mixins/JeecgListMixin' | ||||
| import { getAction } from '../../../../api/manage' | ||||
| 
 | ||||
| const columns = [ | ||||
|   { | ||||
|     title: 'SampleID', | ||||
|     align: 'left', | ||||
|     dataIndex: 'sampleId' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Station', | ||||
|     align: 'left', | ||||
|     dataIndex: 'stationName' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Detector', | ||||
|     align: 'left', | ||||
|     dataIndex: 'detectorsName' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Sample', | ||||
|     align: 'left', | ||||
|     dataIndex: 'sampleType' | ||||
|   }, | ||||
|   { | ||||
|     title: 'DataType', | ||||
|     align: 'left', | ||||
|     dataIndex: 'dataType' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Qualifier', | ||||
|     align: 'left', | ||||
|     dataIndex: 'spectralQualifie' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Col.Stop', | ||||
|     align: 'left', | ||||
|     dataIndex: 'collectStop' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Acq.Start', | ||||
|     align: 'left', | ||||
|     dataIndex: 'acquisitionStart' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Acq.real', | ||||
|     align: 'left', | ||||
|     dataIndex: 'acquisitionRealSec' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Acq.live', | ||||
|     align: 'left', | ||||
|     dataIndex: 'acquisitionLiveSec' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Status', | ||||
|     align: 'left', | ||||
|     dataIndex: 'status' | ||||
|   } | ||||
| ] | ||||
| 
 | ||||
| export default { | ||||
|   props: { | ||||
|     value: { | ||||
|       type: Boolean | ||||
|     } | ||||
|   }, | ||||
|   mixins: [JeecgListMixin], | ||||
|   data() { | ||||
|     this.columns = columns | ||||
|     return { | ||||
|       selectedRowKeys: [], | ||||
|       stationList: [], | ||||
|       detectorList: [], | ||||
|       url: { | ||||
|         list: '/gardsSampleData/findPage' | ||||
|       }, | ||||
| 
 | ||||
|       isLoadingSample: false // 正在加载样例 | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getStationList() | ||||
|     this.getDetectorList() | ||||
|   }, | ||||
|   methods: { | ||||
|     loadData(arg) { | ||||
|       //加载数据 若传入参数1则加载第一页的内容 | ||||
|       if (arg === 1) { | ||||
|         this.ipagination.current = 1 | ||||
|       } | ||||
|       this.onClearSelected() | ||||
| 
 | ||||
|       const params = this.getQueryParams() //查询条件 | ||||
|       if (params.checkboxGroup) { | ||||
|         params.checkboxGroup.forEach(item => { | ||||
|           params[item] = true | ||||
|         }) | ||||
|         delete params.checkboxGroup | ||||
|       } | ||||
| 
 | ||||
|       this.loading = true | ||||
|       getAction(this.url.list, params) | ||||
|         .then(res => { | ||||
|           if (res.success) { | ||||
|             this.dataSource = res.result.records || res.result | ||||
|             if (res.result.total) { | ||||
|               this.ipagination.total = res.result.total | ||||
|             } else { | ||||
|               this.ipagination.total = 0 | ||||
|             } | ||||
|           } else { | ||||
|             this.$message.warning(res.message) | ||||
|           } | ||||
|         }) | ||||
|         .finally(() => { | ||||
|           this.loading = false | ||||
|         }) | ||||
|     }, | ||||
| 
 | ||||
|     /** | ||||
|      * 加载 | ||||
|      */ | ||||
|     async handleLoad() { | ||||
|       if (!this.selectedRowKeys.length) { | ||||
|         this.$message.warn('Please Select Databases To Load') | ||||
|         return | ||||
|       } | ||||
|       this.isLoadingSample = true | ||||
|       const res = await '' | ||||
|       console.log('%c [ res ]-156', 'font-size:13px; background:pink; color:#bf2c9f;', res) | ||||
|       this.isLoadingSample = false | ||||
|       this.visible = false | ||||
|     }, | ||||
| 
 | ||||
|     async getStationList() { | ||||
|       try { | ||||
|         const { success, result, message } = await getAction('/gardsStations/findPage', { | ||||
|           pageIndex: 1, | ||||
|           pageSize: 10000 | ||||
|         }) | ||||
|         if (success) { | ||||
|           this.stationList = result.records.map(record => ({ label: record.stationCode, value: record.stationId })) | ||||
|         } else { | ||||
|           this.$message.error(message) | ||||
|         } | ||||
|       } catch (error) { | ||||
|         console.error(error) | ||||
|       } | ||||
|     }, | ||||
| 
 | ||||
|     async getDetectorList() { | ||||
|       try { | ||||
|         const { success, result, message } = await getAction('/gardsDetectors/findPage', { | ||||
|           pageIndex: 1, | ||||
|           pageSize: 10000 | ||||
|         }) | ||||
|         if (success) { | ||||
|           this.detectorList = result.records.map(record => ({ label: record.detectorCode, value: record.detectorId })) | ||||
|         } else { | ||||
|           this.$message.error(message) | ||||
|         } | ||||
|       } catch (error) { | ||||
|         console.error(error) | ||||
|       } | ||||
|     }, | ||||
| 
 | ||||
|     filterOption(input, option) { | ||||
|       return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     visible: { | ||||
|       get() { | ||||
|         return this.value | ||||
|       }, | ||||
|       set(val) { | ||||
|         this.$emit('input', val) | ||||
|       } | ||||
|     }, | ||||
|     formItems() { | ||||
|       return [ | ||||
|         { | ||||
|           label: 'SampleID', | ||||
|           type: 'a-input', | ||||
|           name: 'sampleId', | ||||
|           props: { | ||||
|             allowClear: true | ||||
|           }, | ||||
|           style: { | ||||
|             width: '20%' | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           label: 'Station', | ||||
|           type: 'custom-select', | ||||
|           name: 'stationId', | ||||
|           props: { | ||||
|             options: [ | ||||
|               { | ||||
|                 label: 'ALL', | ||||
|                 value: '' | ||||
|               }, | ||||
|               ...this.stationList | ||||
|             ], | ||||
|             showSearch: true, | ||||
|             filterOption: this.filterOption, | ||||
|             allowClear: true | ||||
|           }, | ||||
|           style: { | ||||
|             width: '18%' | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           label: 'Detector', | ||||
|           type: 'custom-select', | ||||
|           name: 'detectorId', | ||||
|           props: { | ||||
|             options: [ | ||||
|               { | ||||
|                 label: 'ALL', | ||||
|                 value: '' | ||||
|               }, | ||||
|               ...this.detectorList | ||||
|             ], | ||||
|             showSearch: true, | ||||
|             filterOption: this.filterOption, | ||||
|             allowClear: true | ||||
|           }, | ||||
|           style: { | ||||
|             width: '18%' | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           label: 'From', | ||||
|           type: 'custom-date-picker', | ||||
|           name: 'collectStart', | ||||
|           props: { | ||||
|             showTime: { format: 'HH:mm' }, | ||||
|             format: 'YYYY-MM-DD HH:mm', | ||||
|             valueFormat: 'YYYY-MM-DD HH:mm:ss', | ||||
|             style: { | ||||
|               minWidth: 'auto' | ||||
|             } | ||||
|           }, | ||||
|           style: { | ||||
|             width: '22%' | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           label: 'To', | ||||
|           type: 'custom-date-picker', | ||||
|           name: 'collectStop', | ||||
|           props: { | ||||
|             showTime: { format: 'HH:mm' }, | ||||
|             format: 'YYYY-MM-DD HH:mm', | ||||
|             valueFormat: 'YYYY-MM-DD HH:mm:ss', | ||||
|             style: { | ||||
|               minWidth: 'auto' | ||||
|             } | ||||
|           }, | ||||
|           style: { | ||||
|             paddingRight: 0, | ||||
|             width: '22%' | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           label: '', | ||||
|           type: 'a-checkbox-group', | ||||
|           name: 'checkboxGroup', | ||||
|           props: { | ||||
|             options: [ | ||||
|               { label: 'Collect Stop', value: 'collectStop' }, | ||||
|               { label: 'Acq.Start', value: 'acqDotStart' } | ||||
|             ] | ||||
|           }, | ||||
|           style: { | ||||
|             width: '230px' | ||||
|           } | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .load-from-db-modal { | ||||
| } | ||||
| </style> | ||||
|  | @ -0,0 +1,172 @@ | |||
| <template> | ||||
|   <custom-modal v-model="visible" :width="1200" title="Load Data From File"> | ||||
|     <a-table :data-source="list" :columns="columns" :pagination="false" bordered> | ||||
|       <template slot="sampleData" slot-scope="text, record"> | ||||
|         <phd-select type="file" @change="handleFileChange(record, 'sampleData', $event)" :title="text && text.name"> | ||||
|           {{ text && text.name }} | ||||
|         </phd-select> | ||||
|       </template> | ||||
|       <template slot="gasBkData" slot-scope="text, record"> | ||||
|         <phd-select type="file" @change="handleFileChange(record, 'gasBkData', $event)" :title="text && text.name"> | ||||
|           {{ text && text.name }} | ||||
|         </phd-select> | ||||
|       </template> | ||||
|       <template slot="detBkData" slot-scope="text, record"> | ||||
|         <phd-select type="file" @change="handleFileChange(record, 'detBkData', $event)" :title="text && text.name"> | ||||
|           {{ text && text.name }} | ||||
|         </phd-select> | ||||
|       </template> | ||||
|       <template slot="qcData" slot-scope="text, record"> | ||||
|         <phd-select type="file" @change="handleFileChange(record, 'qcData', $event)" :title="text && text.name"> | ||||
|           {{ text && text.name }} | ||||
|         </phd-select> | ||||
|       </template> | ||||
|       <template slot="status" slot-scope="text"> | ||||
|         <span class="status"></span> | ||||
|       </template> | ||||
|     </a-table> | ||||
| 
 | ||||
|     <!-- 底部按钮 --> | ||||
|     <template slot="custom-footer"> | ||||
|       <a-space> | ||||
|         <a-button type="primary" @click="handleReset">Reset</a-button> | ||||
|         <a-button type="primary" @click="handleLoad">Load</a-button> | ||||
|         <a-button type="primary" @click="handleCancel">Cancel</a-button> | ||||
|       </a-space> | ||||
|     </template> | ||||
|     <!-- 底部按钮结束 --> | ||||
|   </custom-modal> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import PhdSelect from '../PHDSelect.vue' | ||||
| const columns = [ | ||||
|   { | ||||
|     title: 'SampleData', | ||||
|     dataIndex: 'sampleData', | ||||
|     width: '23%', | ||||
|     ellipsis: true, | ||||
|     scopedSlots: { | ||||
|       customRender: 'sampleData' | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     title: 'GasBkData', | ||||
|     dataIndex: 'gasBkData', | ||||
|     width: '23%', | ||||
|     ellipsis: true, | ||||
|     scopedSlots: { | ||||
|       customRender: 'gasBkData' | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     title: 'DetBkData', | ||||
|     dataIndex: 'detBkData', | ||||
|     width: '23%', | ||||
|     ellipsis: true, | ||||
|     scopedSlots: { | ||||
|       customRender: 'detBkData' | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     title: 'QCData', | ||||
|     dataIndex: 'qcData', | ||||
|     width: '23%', | ||||
|     ellipsis: true, | ||||
|     scopedSlots: { | ||||
|       customRender: 'qcData' | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     title: 'Status', | ||||
|     align: 'center', | ||||
|     scopedSlots: { | ||||
|       customRender: 'status' | ||||
|     } | ||||
|   } | ||||
| ] | ||||
| 
 | ||||
| export default { | ||||
|   components: { PhdSelect }, | ||||
|   props: { | ||||
|     value: { | ||||
|       type: Boolean | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     this.columns = columns | ||||
|     return { | ||||
|       list: this.getInitialList() | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     // 初始化为10*4的表格 | ||||
|     getInitialList() { | ||||
|       return new Array(10).fill(0).map(() => ({ | ||||
|         sampleData: undefined, | ||||
|         gasBkData: undefined, | ||||
|         detBkData: undefined, | ||||
|         qcData: undefined | ||||
|       })) | ||||
|     }, | ||||
| 
 | ||||
|     handleFileChange(record, key, fileInfo) { | ||||
|       record[key] = fileInfo | ||||
|     }, | ||||
| 
 | ||||
|     handleReset() { | ||||
|       this.list = this.getInitialList() | ||||
|     }, | ||||
| 
 | ||||
|     handleLoad() { | ||||
|       console.log('%c [ handleLoad ]-123', 'font-size:13px; background:pink; color:#bf2c9f;', this.list) | ||||
|     }, | ||||
| 
 | ||||
|     handleCancel() { | ||||
|       this.visible = false | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     visible: { | ||||
|       get() { | ||||
|         return this.value | ||||
|       }, | ||||
|       set(val) { | ||||
|         this.$emit('input', val) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .status { | ||||
|   display: inline-block; | ||||
|   width: 25px; | ||||
|   height: 25px; | ||||
|   border-radius: 50%; | ||||
|   margin-top: 8px; | ||||
| 
 | ||||
|   background-color: #00e170; | ||||
| } | ||||
| ::v-deep { | ||||
|   @tableBorderColor: #000; | ||||
| 
 | ||||
|   .ant-table-bordered .ant-table-thead > tr > th, | ||||
|   .ant-table-bordered .ant-table-tbody > tr > td { | ||||
|     border-right-color: @tableBorderColor; | ||||
|   } | ||||
|   .ant-table-thead > tr th { | ||||
|     border-bottom: 1px solid @tableBorderColor; | ||||
|   } | ||||
| 
 | ||||
|   .ant-table-bordered .ant-table-body > table { | ||||
|     border-color: @tableBorderColor; | ||||
|   } | ||||
| 
 | ||||
|   .ant-table-tbody tr td { | ||||
|     padding-top: 0 !important; | ||||
|     padding-bottom: 0 !important; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|  | @ -0,0 +1,239 @@ | |||
| <template> | ||||
|   <custom-modal | ||||
|     v-model="visible" | ||||
|     :width="1231" | ||||
|     title="Nuclide Activity and MDC" | ||||
|     class="nuclide-activity-and-mdc-modal" | ||||
|     :footer="null" | ||||
|   > | ||||
|     <!-- 顶部搜索栏 --> | ||||
|     <a-form-model class="search-form"> | ||||
|       <div class="time-pickers"> | ||||
|         <a-form-model-item label="Activity reference time"> | ||||
|           <custom-date-picker show-time v-model="queryParam.activityReferenceTime" /> | ||||
|         </a-form-model-item> | ||||
|         <a-form-model-item label="Concentration reference time"> | ||||
|           <custom-date-picker show-time v-model="queryParam.concentrationReferenceTime" /> | ||||
|         </a-form-model-item> | ||||
|       </div> | ||||
|       <a-space class="operators" :size="20"> | ||||
|         <a-button :type="compareVisible ? 'grey' : 'primary'" @click="handleComparision"> | ||||
|           <img src="@/assets/images/spectrum/comparation.png" /> | ||||
|           {{ compareVisible ? 'Cancel comparison' : 'Comparison' }} | ||||
|         </a-button> | ||||
|         <a-button type="primary" @click="handleExportToExcel"> | ||||
|           <img src="@/assets/images/spectrum/download.png" /> | ||||
|           Export to Excel | ||||
|         </a-button> | ||||
|       </a-space> | ||||
|     </a-form-model> | ||||
|     <!-- 顶部搜索栏结束 --> | ||||
|     <!-- 主体部分 --> | ||||
|     <div v-if="compareVisible" class="comparison-list"> | ||||
|       <div class="comparison-list-item" v-for="(item, index) in compareList" :key="index"> | ||||
|         <div class="comparison-list-item-title">{{ item.title }}</div> | ||||
|         <custom-table :list="item.list" :columns="columns"></custom-table> | ||||
|       </div> | ||||
|     </div> | ||||
|     <custom-table v-else :list="list" :columns="columns"></custom-table> | ||||
|   </custom-modal> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| const columns = [ | ||||
|   { | ||||
|     title: 'Nuclide', | ||||
|     dataIndex: 'nuclide' | ||||
|   }, | ||||
|   { | ||||
|     title: 'HalfLife', | ||||
|     dataIndex: 'halfLife' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Energy (keV)', | ||||
|     dataIndex: 'energy' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Yield (%)', | ||||
|     dataIndex: 'yield' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Efficiency', | ||||
|     dataIndex: 'efficiency' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Activity (Bq)', | ||||
|     dataIndex: 'activity' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Act Err (%)', | ||||
|     dataIndex: 'actErr' | ||||
|   }, | ||||
|   { | ||||
|     title: 'MDA (Bq)', | ||||
|     dataIndex: 'mda' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Conc (uBq/m3)', | ||||
|     dataIndex: 'conc' | ||||
|   }, | ||||
|   { | ||||
|     title: 'MDC (uBq/m3)', | ||||
|     dataIndex: 'mdc' | ||||
|   } | ||||
| ] | ||||
| export default { | ||||
|   props: { | ||||
|     value: { | ||||
|       type: Boolean | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     this.columns = columns | ||||
|     return { | ||||
|       queryParam: { | ||||
|         activityReferenceTime: undefined, | ||||
|         concentrationReferenceTime: undefined | ||||
|       }, | ||||
|       compareVisible: false, | ||||
| 
 | ||||
|       list: [ | ||||
|         { | ||||
|           nuclide: 'nuclide', | ||||
|           halfLife: 'halfLife', | ||||
|           energy: 'energy', | ||||
|           yield: 'yield', | ||||
|           efficiency: 'efficiency', | ||||
|           activity: 'activity', | ||||
|           actErr: 'actErr', | ||||
|           mda: 'mda', | ||||
|           conc: 'conc', | ||||
|           mdc: 'mdc' | ||||
|         } | ||||
|       ], | ||||
| 
 | ||||
|       compareList: [ | ||||
|         { | ||||
|           title: 'ARMD', | ||||
|           list: [ | ||||
|             { | ||||
|               nuclide: 'nuclide', | ||||
|               halfLife: 'halfLife', | ||||
|               energy: 'energy', | ||||
|               yield: 'yield', | ||||
|               efficiency: 'efficiency', | ||||
|               activity: 'activity', | ||||
|               actErr: 'actErr', | ||||
|               mda: 'mda', | ||||
|               conc: 'conc', | ||||
|               mdc: 'mdc' | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           title: 'IDC', | ||||
|           list: [ | ||||
|             { | ||||
|               nuclide: 'nuclide', | ||||
|               halfLife: 'halfLife', | ||||
|               energy: 'energy', | ||||
|               yield: 'yield', | ||||
|               efficiency: 'efficiency', | ||||
|               activity: 'activity', | ||||
|               actErr: 'actErr', | ||||
|               mda: 'mda', | ||||
|               conc: 'conc', | ||||
|               mdc: 'mdc' | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     // 切换比较 | ||||
|     handleComparision() { | ||||
|       this.compareVisible = !this.compareVisible | ||||
|     }, | ||||
| 
 | ||||
|     // 导出到Excel | ||||
|     handleExportToExcel() {} | ||||
|   }, | ||||
|   computed: { | ||||
|     visible: { | ||||
|       get() { | ||||
|         return this.value | ||||
|       }, | ||||
|       set(val) { | ||||
|         this.$emit('input', val) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .nuclide-activity-and-mdc-modal { | ||||
|   ::v-deep { | ||||
|     .ant-modal-body { | ||||
|       padding: 16px; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .search-form { | ||||
|   display: flex; | ||||
|   justify-content: space-between; | ||||
|   margin-bottom: 15px; | ||||
| 
 | ||||
|   .time-pickers { | ||||
|     display: flex; | ||||
|     .ant-form-item { | ||||
|       margin-bottom: 0; | ||||
| 
 | ||||
|       &:nth-child(2) { | ||||
|         margin-left: 20px; | ||||
|       } | ||||
| 
 | ||||
|       ::v-deep { | ||||
|         .ant-form-item { | ||||
|           &-label { | ||||
|             > label { | ||||
|               color: #ade6ee; | ||||
|             } | ||||
|           } | ||||
| 
 | ||||
|           &-control-wrapper { | ||||
|             width: 210px; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   .operators { | ||||
|     .ant-btn { | ||||
|       display: flex; | ||||
|       align-items: center; | ||||
| 
 | ||||
|       img { | ||||
|         margin-right: 10px; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .comparison-list { | ||||
|   padding-top: 15px; | ||||
|   border-top: 1px solid rgba(13, 109, 118, 0.5); | ||||
| 
 | ||||
|   &-item { | ||||
|     &-title { | ||||
|       color: #0cebc9; | ||||
|     } | ||||
| 
 | ||||
|     &:last-child { | ||||
|       margin-top: 12px; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										39
									
								
								src/views/spectrumAnalysis/components/PHDSelect.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								src/views/spectrumAnalysis/components/PHDSelect.vue
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,39 @@ | |||
| <template> | ||||
|   <label class="file-select"> | ||||
|     <input type="file" @change="handleFileChange" accept=".phd, .PHD" /> | ||||
|     <div class="file-name"> | ||||
|       <slot /> | ||||
|     </div> | ||||
|   </label> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|   methods: { | ||||
|     handleFileChange(e) { | ||||
|       const file = e.target.files[0] | ||||
|       if (file) { | ||||
|         this.$emit('change', file) | ||||
|       } | ||||
|       e.target.value = '' | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .file-select { | ||||
|   display: block; | ||||
|   height: 42px; | ||||
|   line-height: 42px; | ||||
| 
 | ||||
|   input { | ||||
|     display: none; | ||||
|   } | ||||
|   .file-name { | ||||
|     overflow: hidden; | ||||
|     text-overflow: ellipsis; | ||||
|     white-space: nowrap; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										360
									
								
								src/views/spectrumAnalysis/components/PeakInfomation.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										360
									
								
								src/views/spectrumAnalysis/components/PeakInfomation.vue
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,360 @@ | |||
| <template> | ||||
|   <a-modal v-model="visible" title="Peak Infomation" :width="1231" :footer="null" class="peak-infomation"> | ||||
|     <div v-if="compareVisible" class="comparison-list"> | ||||
|       <div class="comparison-list-item" v-for="(item, index) in compareList" :key="index"> | ||||
|         <div class="comparison-list-item-title">{{ item.title }}</div> | ||||
|         <custom-table :list="item.list" :scroll="{ y: 230 }" :columns="columns"></custom-table> | ||||
|       </div> | ||||
|     </div> | ||||
|     <custom-table v-else :columns="columns" :list="list"></custom-table> | ||||
| 
 | ||||
|     <!-- 底部按钮 --> | ||||
|     <div class="peak-infomation-footer"> | ||||
|       <a-space :size="20"> | ||||
|         <a-button :type="compareVisible ? 'grey' : 'primary'" @click="handleComparision"> | ||||
|           <img src="@/assets/images/spectrum/comparation.png" /> | ||||
|           {{ compareVisible ? 'Cancel comparison' : 'Comparison' }} | ||||
|         </a-button> | ||||
|         <a-button type="primary" @click="handleExportToExcel"> | ||||
|           <img src="@/assets/images/spectrum/download.png" /> | ||||
|           Export to Excel | ||||
|         </a-button> | ||||
|       </a-space> | ||||
|     </div> | ||||
|   </a-modal> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| const columns = [ | ||||
|   { | ||||
|     title: 'Index', | ||||
|     dataIndex: 'index', | ||||
|     align: 'center', | ||||
|     customRender: (_, __, index) => { | ||||
|       return index + 1 | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     title: 'Energy(keV)', | ||||
|     dataIndex: 'energy' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Centroid', | ||||
|     dataIndex: 'centroid' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Multiplet', | ||||
|     dataIndex: 'multiplet' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Fwhm(keV)', | ||||
|     dataIndex: 'fwhm' | ||||
|   }, | ||||
|   { | ||||
|     title: 'NetArea', | ||||
|     dataIndex: 'netArea' | ||||
|   }, | ||||
|   { | ||||
|     title: 'AreaErr(%)', | ||||
|     dataIndex: 'areaErr' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Significant', | ||||
|     dataIndex: 'significant' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Sensitivity', | ||||
|     dataIndex: 'sensitivity' | ||||
|   }, | ||||
|   { | ||||
|     title: 'Indentify', | ||||
|     dataIndex: 'indentify' | ||||
|   } | ||||
| ] | ||||
| export default { | ||||
|   props: { | ||||
|     value: { | ||||
|       type: Boolean | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     this.columns = columns | ||||
|     return { | ||||
|       list: [ | ||||
|         { | ||||
|           id: 1, | ||||
|           energy: 'energy', | ||||
|           centroid: 'centroid', | ||||
|           multiplet: 'multiplet', | ||||
|           fwhm: 'fwhm', | ||||
|           netArea: 'netArea', | ||||
|           areaErr: 'areaErr', | ||||
|           significant: 'significant', | ||||
|           sensitivity: 'sensitivity', | ||||
|           indentify: 'indentify' | ||||
|         } | ||||
|       ], | ||||
|       compareList: [ | ||||
|         { | ||||
|           title: 'ARMD', | ||||
|           list: [ | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             }, | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           title: 'IDC', | ||||
|           list: [ | ||||
|             { | ||||
|               id: 1, | ||||
|               energy: 'energy', | ||||
|               centroid: 'centroid', | ||||
|               multiplet: 'multiplet', | ||||
|               fwhm: 'fwhm', | ||||
|               netArea: 'netArea', | ||||
|               areaErr: 'areaErr', | ||||
|               significant: 'significant', | ||||
|               sensitivity: 'sensitivity', | ||||
|               indentify: 'indentify' | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|       ], | ||||
|       compareVisible: true | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     // 切换比较 | ||||
|     handleComparision() { | ||||
|       this.compareVisible = !this.compareVisible | ||||
|     }, | ||||
| 
 | ||||
|     // 导出到Excel | ||||
|     handleExportToExcel() {} | ||||
|   }, | ||||
|   computed: { | ||||
|     visible: { | ||||
|       get() { | ||||
|         return this.value | ||||
|       }, | ||||
|       set(val) { | ||||
|         this.$emit('input', val) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .peak-infomation { | ||||
|   ::v-deep { | ||||
|     .ant-modal-body { | ||||
|       padding: 20px 16px 16px; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   &-footer { | ||||
|     margin-top: 10px; | ||||
|     text-align: right; | ||||
| 
 | ||||
|     .ant-btn { | ||||
|       display: flex; | ||||
|       align-items: center; | ||||
| 
 | ||||
|       img { | ||||
|         margin-right: 10px; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .comparison-list { | ||||
|   &-item { | ||||
|     &-title { | ||||
|       color: #0cebc9; | ||||
|     } | ||||
| 
 | ||||
|     &:last-child { | ||||
|       margin-top: 12px; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|  | @ -78,6 +78,14 @@ | |||
|     <!-- 从文件加载开始 --> | ||||
|     <load-from-file-modal v-model="loadFromFileModalVisible" /> | ||||
|     <!-- 从文件加载结束 --> | ||||
| 
 | ||||
|     <!-- Peak Infomation 弹窗开始 --> | ||||
|     <peak-infomation v-model="peakInfomationModalVisible" /> | ||||
|     <!-- Peak Infomation 弹窗结束 --> | ||||
| 
 | ||||
|     <!-- Nuclide Activity and MDC 弹窗开始 --> | ||||
|     <nuclide-activity-and-mdc-modal v-model="nuclideActivityAndMDCModalVisible" /> | ||||
|     <!-- Nuclide Activity and MDC 弹窗结束 --> | ||||
|   </div> | ||||
| </template> | ||||
| <script> | ||||
|  | @ -91,8 +99,10 @@ import GammaAnalysis from './gamma-analysis.vue' | |||
| import BetaGammaAnalysis from './beta-gamma-analysis.vue' | ||||
| import Spectra from './components/SubOperators/Spectra.vue' | ||||
| import SpectraListInMenu from './components/SpectraListInMenu.vue' | ||||
| import LoadFromDbModal from './components/LoadFromDBModal.vue' | ||||
| import LoadFromFileModal from './components/LoadFromFileModal.vue' | ||||
| import LoadFromDbModal from './components/Modals/LoadFromDBModal.vue' | ||||
| import LoadFromFileModal from './components/Modals/LoadFromFileModal.vue' | ||||
| import PeakInfomation from './components/PeakInfomation.vue' | ||||
| import NuclideActivityAndMdcModal from './components/Modals/NuclideActivityAndMDCModal.vue' | ||||
| 
 | ||||
| // 分析类型 | ||||
| const ANALYZE_TYPE = { | ||||
|  | @ -112,7 +122,9 @@ export default { | |||
|     Spectra, | ||||
|     SpectraListInMenu, | ||||
|     LoadFromDbModal, | ||||
|     LoadFromFileModal | ||||
|     LoadFromFileModal, | ||||
|     PeakInfomation, | ||||
|     NuclideActivityAndMdcModal | ||||
|   }, | ||||
|   data() { | ||||
|     this.ANALYZE_TYPE = ANALYZE_TYPE | ||||
|  | @ -128,7 +140,11 @@ export default { | |||
|       ], | ||||
| 
 | ||||
|       loadFromDbModalVisible: false, | ||||
|       loadFromFileModalVisible: false | ||||
|       loadFromFileModalVisible: false, | ||||
| 
 | ||||
|       peakInfomationModalVisible: false, | ||||
| 
 | ||||
|       nuclideActivityAndMDCModalVisible: false | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|  |  | |||
|  | @ -152,7 +152,7 @@ | |||
|       :bodyStyle="{ padding: '15px 0 10px' }" | ||||
|       title="Data Recevice status Monitoring" | ||||
|       :width="1230" | ||||
|       :showFooter="false" | ||||
|       :footer="null" | ||||
|       @fullscreen="onModalFullScreen" | ||||
|       :getContainer="getModalContainer" | ||||
|     > | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user