feat: 增加LoadFromDb、LoadFromFile等等弹窗,修改custom-modal时的用法,

This commit is contained in:
Xu Zhimeng 2023-07-06 14:05:43 +08:00
parent 42e1000c11
commit 6c02e52e23
16 changed files with 1302 additions and 166 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -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;
}
}
}
// 空状态

View File

@ -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 }}

View File

@ -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() {

View File

@ -376,6 +376,7 @@ export default {
width: 100px;
background-color: #406979;
cursor: pointer;
user-select: none;
&.active {
background-color: #1397a3;

View File

@ -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>

View File

@ -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>

View 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>

View 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>

View File

@ -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>

View File

@ -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>

View 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>

View 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>

View File

@ -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: {

View File

@ -152,7 +152,7 @@
:bodyStyle="{ padding: '15px 0 10px' }"
title="Data Recevice status Monitoring"
:width="1230"
:showFooter="false"
:footer="null"
@fullscreen="onModalFullScreen"
:getContainer="getModalContainer"
>