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 {
|
.ant-table {
|
||||||
color: #ade6ee;
|
color: #ade6ee;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
border: 1px solid rgba(65,111,127, .5);
|
||||||
|
|
||||||
&-thead {
|
&-thead {
|
||||||
> tr {
|
> tr {
|
||||||
th {
|
th {
|
||||||
|
@ -679,6 +681,16 @@ input[type='number']::-webkit-outer-spin-button {
|
||||||
background-color: #b98326 !important;
|
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>
|
</custom-table>
|
||||||
</div>
|
</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">
|
<a-spin class="log-detail" :spinning="isGettingDetail">
|
||||||
<div v-for="(logItem, index) in logInfo" :key="index">
|
<div v-for="(logItem, index) in logInfo" :key="index">
|
||||||
{{ logItem }}
|
{{ logItem }}
|
||||||
|
|
|
@ -56,19 +56,30 @@
|
||||||
</beta-gamma-chart-container>
|
</beta-gamma-chart-container>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Comparison Modal 开始 -->
|
||||||
|
<comparison-modal v-model="comparisonModalVisible" />
|
||||||
|
<!-- Comparison Modal 结束 -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import BetaGammaChartContainer from './components/BetaGammaChartContainer.vue'
|
import BetaGammaChartContainer from './components/BetaGammaChartContainer.vue'
|
||||||
import BetaGammaSpectrumChart from './components/BetaGammaSpectrumChart.vue'
|
import BetaGammaSpectrumChart from './components/BetaGammaSpectrumChart.vue'
|
||||||
|
import ComparisonModal from './components/Modals/ComparisonModal.vue'
|
||||||
import ResultDisplay from './components/ResultDisplay.vue'
|
import ResultDisplay from './components/ResultDisplay.vue'
|
||||||
import SpectrumLineChart from './components/SpectrumLineChart.vue'
|
import SpectrumLineChart from './components/SpectrumLineChart.vue'
|
||||||
|
|
||||||
import twoDData from './data.json'
|
import twoDData from './data.json'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { BetaGammaChartContainer, SpectrumLineChart, ResultDisplay, BetaGammaSpectrumChart },
|
components: {
|
||||||
|
BetaGammaChartContainer,
|
||||||
|
SpectrumLineChart,
|
||||||
|
ResultDisplay,
|
||||||
|
BetaGammaSpectrumChart,
|
||||||
|
ComparisonModal
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
resultDisplay: [
|
resultDisplay: [
|
||||||
|
@ -101,7 +112,8 @@ export default {
|
||||||
mdc: '0.03464'
|
mdc: '0.03464'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
twoDData: {}
|
twoDData: {},
|
||||||
|
comparisonModalVisible: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
|
@ -376,6 +376,7 @@ export default {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
background-color: #406979;
|
background-color: #406979;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
user-select: none;
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
background-color: #1397a3;
|
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" />
|
<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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -91,8 +99,10 @@ import GammaAnalysis from './gamma-analysis.vue'
|
||||||
import BetaGammaAnalysis from './beta-gamma-analysis.vue'
|
import BetaGammaAnalysis from './beta-gamma-analysis.vue'
|
||||||
import Spectra from './components/SubOperators/Spectra.vue'
|
import Spectra from './components/SubOperators/Spectra.vue'
|
||||||
import SpectraListInMenu from './components/SpectraListInMenu.vue'
|
import SpectraListInMenu from './components/SpectraListInMenu.vue'
|
||||||
import LoadFromDbModal from './components/LoadFromDBModal.vue'
|
import LoadFromDbModal from './components/Modals/LoadFromDBModal.vue'
|
||||||
import LoadFromFileModal from './components/LoadFromFileModal.vue'
|
import LoadFromFileModal from './components/Modals/LoadFromFileModal.vue'
|
||||||
|
import PeakInfomation from './components/PeakInfomation.vue'
|
||||||
|
import NuclideActivityAndMdcModal from './components/Modals/NuclideActivityAndMDCModal.vue'
|
||||||
|
|
||||||
// 分析类型
|
// 分析类型
|
||||||
const ANALYZE_TYPE = {
|
const ANALYZE_TYPE = {
|
||||||
|
@ -112,7 +122,9 @@ export default {
|
||||||
Spectra,
|
Spectra,
|
||||||
SpectraListInMenu,
|
SpectraListInMenu,
|
||||||
LoadFromDbModal,
|
LoadFromDbModal,
|
||||||
LoadFromFileModal
|
LoadFromFileModal,
|
||||||
|
PeakInfomation,
|
||||||
|
NuclideActivityAndMdcModal
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
this.ANALYZE_TYPE = ANALYZE_TYPE
|
this.ANALYZE_TYPE = ANALYZE_TYPE
|
||||||
|
@ -128,7 +140,11 @@ export default {
|
||||||
],
|
],
|
||||||
|
|
||||||
loadFromDbModalVisible: false,
|
loadFromDbModalVisible: false,
|
||||||
loadFromFileModalVisible: false
|
loadFromFileModalVisible: false,
|
||||||
|
|
||||||
|
peakInfomationModalVisible: false,
|
||||||
|
|
||||||
|
nuclideActivityAndMDCModalVisible: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -152,7 +152,7 @@
|
||||||
:bodyStyle="{ padding: '15px 0 10px' }"
|
:bodyStyle="{ padding: '15px 0 10px' }"
|
||||||
title="Data Recevice status Monitoring"
|
title="Data Recevice status Monitoring"
|
||||||
:width="1230"
|
:width="1230"
|
||||||
:showFooter="false"
|
:footer="null"
|
||||||
@fullscreen="onModalFullScreen"
|
@fullscreen="onModalFullScreen"
|
||||||
:getContainer="getModalContainer"
|
:getContainer="getModalContainer"
|
||||||
>
|
>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user