feat: 增加Strip弹窗,增加FtransltModal中后两个转换页面,增加LoadFrom DB 中 CollectStopB和AcqStartB查询

This commit is contained in:
Xu Zhimeng 2023-07-27 18:42:51 +08:00
parent d9c63c9bce
commit 63ede005d2
7 changed files with 433 additions and 8 deletions

View File

@ -0,0 +1,257 @@
<template>
<div class="int-spc-ims-transfer">
<a-form-model class="settings" :labelCol="{ style: { width: '75px', textAlign: 'center' } }">
<div class="top-left">
<a-form-model-item label="MSG_ID">
<a-input></a-input>
</a-form-model-item>
<a-form-model-item label="Comment">
<a-textarea></a-textarea>
</a-form-model-item>
<title-over-border title="Collection Block">
<a-form-model-item label="Start Time">
<custom-date-picker show-time />
</a-form-model-item>
<a-form-model-item label="Stop Time">
<custom-date-picker show-time />
</a-form-model-item>
<div>
<p>
Total air volume sampled
</p>
<a-input></a-input>
</div>
</title-over-border>
</div>
<title-over-border title="Header Block" class="header-block">
<div class="header-block-list">
<div class="header-block-item">
<div>
<a-checkbox></a-checkbox>
Designator
</div>
<a-input></a-input>
</div>
<div class="header-block-item">
<div>
<a-checkbox></a-checkbox>
Station code
</div>
<a-input></a-input>
</div>
<div class="header-block-item">
<div>
<a-checkbox></a-checkbox>
Detector code
</div>
<a-input></a-input>
</div>
<div class="header-block-item">
<div>
<a-checkbox></a-checkbox>
Sample geometry
</div>
<a-input></a-input>
</div>
</div>
<div class="system-type-and-spectrum-qualifier">
<title-over-border title="System type" class="system-type">
<a-radio-group>
<a-radio>P</a-radio>
<a-radio>G</a-radio>
<a-radio>B</a-radio>
</a-radio-group>
</title-over-border>
<title-over-border title="Spectrum qualifier" class="spectrum-qualifier">
<a-radio-group>
<a-radio>PREL</a-radio>
<a-radio>FULL</a-radio>
</a-radio-group>
</title-over-border>
</div>
<div class="identifications">
<div>
<p>Sample reference identification</p>
<a-input></a-input>
</div>
<div>
<p>Background measurement identification</p>
<a-input></a-input>
</div>
</div>
<div class="transmit-time">
<a-checkbox>Transmit time</a-checkbox>
<custom-date-picker></custom-date-picker>
</div>
</title-over-border>
</a-form-model>
<title-over-border title="Spectrum Transfer" class="spectrum-transfer">
<div class="title-container">
<div class="title">Canberra IEC1455(.IEC)</div>
<div class="data-type">
Data type
<div class="data-type-select">
<custom-select :option="[{ label: 'SAMPLEPHD', value: 1 }]" />
</div>
</div>
<div class="title">IMS .ims .rms</div>
</div>
<a-transfer></a-transfer>
</title-over-border>
</div>
</template>
<script>
import TitleOverBorder from '../../../TitleOverBorder.vue'
export default {
components: { TitleOverBorder }
}
</script>
<style lang="less" scoped>
.settings {
display: flex;
gap: 20px;
::v-deep {
.ant-form-item-control-wrapper {
flex: 1;
}
}
.ant-form-item {
margin-bottom: 10px;
}
p {
margin-bottom: 5px;
}
.top-left {
flex: 1;
}
.header-block {
flex: 2;
&-list {
display: flex;
gap: 20px;
.header-block-item {
// flex: 1;
.ant-input {
margin-top: 5px;
}
}
}
.system-type-and-spectrum-qualifier {
margin-top: 20px;
display: flex;
gap: 20px;
.system-type,
.spectrum-qualifier {
flex: 1;
}
.system-type .ant-radio-group {
display: flex;
justify-content: space-between;
}
.spectrum-qualifier {
.ant-radio-wrapper:nth-child(2) {
margin-left: 30px;
}
}
}
.identifications {
margin-top: 20px;
display: flex;
justify-content: space-between;
gap: 20px;
> div {
flex: 1;
}
}
.transmit-time {
margin-top: 20px;
display: flex;
align-items: center;
gap: 20px;
.ant-checkbox-wrapper {
width: 150px;
}
}
}
}
.spectrum-transfer {
margin-top: 20px;
.title-container {
display: flex;
.title {
flex: 1;
text-align: center;
background-color: #225a6a;
height: 32px;
line-height: 32px;
}
}
.data-type {
width: 166px;
padding: 0 8px;
position: relative;
text-align: center;
z-index: 1;
line-height: 32px;
&-select {
top: 100%;
left: 0;
position: absolute;
padding: 8px;
width: 100%;
}
}
.ant-transfer {
margin-top: 8px;
display: flex;
align-items: flex-end;
::v-deep {
.ant-transfer {
&-list {
flex: 1;
&-header {
display: none;
}
}
&-operation {
width: 150px;
.ant-btn {
width: 100%;
height: 32px;
margin-bottom: 20px;
text-align: center;
}
}
}
}
}
}
</style>

View File

@ -0,0 +1,86 @@
<template>
<div class="int-spc-canberra-iec-transfer">
<div class="spectrum-transfer">
<div class="title-container">
<div class="title">Select .SPC File</div>
<div class="title">Select .IEC File</div>
</div>
<a-transfer></a-transfer>
<div class="desc">
<p>使用说明</p>
<p>1.IMS格式文件必须严格遵循IDC的IMS2.0格式</p>
<p>2转化后.CHN文件没有包含</p>
</div>
</div>
</div>
</template>
<script>
import TitleOverBorder from '../../../TitleOverBorder.vue'
export default {
components: { TitleOverBorder }
}
</script>
<style lang="less" scoped>
.spectrum-transfer {
margin-top: 20px;
.title-container {
display: flex;
gap: 66px;
.title {
flex: 1;
text-align: center;
background-color: #225a6a;
height: 32px;
line-height: 32px;
}
}
.ant-transfer {
margin-top: 8px;
display: flex;
align-items: center;
::v-deep {
.ant-transfer {
&-list {
flex: 1;
height: 400px;
&-header {
display: none;
}
}
&-operation {
width: 50px;
.ant-btn {
width: 100%;
height: 32px;
text-align: center;
&:first-child {
margin-bottom: 50px;
}
}
}
}
}
}
.desc {
margin-top: 20px;
p {
margin-bottom: 0;
}
}
}
</style>

View File

@ -94,7 +94,7 @@
<custom-select :option="[{ label: 'SAMPLEPHD', value: 1 }]" /> <custom-select :option="[{ label: 'SAMPLEPHD', value: 1 }]" />
</div> </div>
</div> </div>
<div class="title">IMS.ims.rms</div> <div class="title">IMS .ims .rms</div>
</div> </div>
<a-transfer></a-transfer> <a-transfer></a-transfer>
</title-over-border> </title-over-border>

View File

@ -1,11 +1,15 @@
<template> <template>
<custom-modal v-model="visible" :width="1080" title="File-Format-Ftransit" :footer="null"> <custom-modal v-model="visible" :width="1080" title="File-Format-Ftransit" :footer="null">
<a-tabs> <a-tabs :animated="false">
<a-tab-pane tab="INT.SPC<=>.IMS" key="1"> <a-tab-pane tab="INT.SPC<=>.IMS" key="1">
<int-spc-ims-transfer /> <int-spc-ims-transfer />
</a-tab-pane> </a-tab-pane>
<a-tab-pane tab="INT.SPC<=>Canberra.IEC" key="2"></a-tab-pane> <a-tab-pane tab="INT.SPC<=>Canberra.IEC" key="2">
<a-tab-pane tab="Canberra.IEC<=>.IMS" key="3"></a-tab-pane> <int-spc-canberra-iec-transfer />
</a-tab-pane>
<a-tab-pane tab="Canberra.IEC<=>.IMS" key="3">
<canberra-iec-ims-transfer />
</a-tab-pane>
</a-tabs> </a-tabs>
</custom-modal> </custom-modal>
</template> </template>
@ -13,9 +17,11 @@
<script> <script>
import ModalMixin from '@/mixins/ModalMixin' import ModalMixin from '@/mixins/ModalMixin'
import IntSpcImsTransfer from './components/IntSpcImsTransfer.vue' import IntSpcImsTransfer from './components/IntSpcImsTransfer.vue'
import IntSpcCanberraIecTransfer from './components/IntSpcCanberraIecTransfer.vue'
import CanberraIecImsTransfer from './components/CanberraIECImsTransfer.vue'
export default { export default {
components: { IntSpcImsTransfer }, components: { IntSpcImsTransfer, IntSpcCanberraIecTransfer, CanberraIecImsTransfer },
mixins: [ModalMixin] mixins: [ModalMixin]
} }
</script> </script>

View File

@ -152,6 +152,8 @@ export default {
} }
params.AllUsers = this.allUsersValue params.AllUsers = this.allUsersValue
params.CollectStopB = this.collectStopValue
params.AcqStartB = this.acqStartValue
delete params.checkboxGroup delete params.checkboxGroup
this.onClearSelected() this.onClearSelected()
@ -392,8 +394,8 @@ export default {
props: { props: {
options: [ options: [
{ label: 'All User', value: 'AllUsers' }, { label: 'All User', value: 'AllUsers' },
{ label: 'Collect Stop', value: 'CollectStop' }, { label: 'Collect Stop', value: 'CollectStopB' },
{ label: 'Acq.Start', value: 'AcqStart' } { label: 'Acq.Start', value: 'AcqStartB' }
] ]
}, },
style: { style: {
@ -439,6 +441,16 @@ export default {
allUsersValue() { allUsersValue() {
const checkboxGroup = this.queryParam.checkboxGroup const checkboxGroup = this.queryParam.checkboxGroup
return !!(checkboxGroup && checkboxGroup.includes('AllUsers')) return !!(checkboxGroup && checkboxGroup.includes('AllUsers'))
},
collectStopValue() {
const checkboxGroup = this.queryParam.checkboxGroup
return !!(checkboxGroup && checkboxGroup.includes('CollectStopB'))
},
acqStartValue() {
const checkboxGroup = this.queryParam.checkboxGroup
return !!(checkboxGroup && checkboxGroup.includes('AcqStartB'))
} }
}, },
watch: { watch: {

View File

@ -0,0 +1,32 @@
<template>
<custom-modal v-model="visible" title="Ratio" :width="240" :okHandler="handleOk">
<a-input-number :min="1" v-model="ratio"></a-input-number>
</custom-modal>
</template>
<script>
import ModalMixin from '@/mixins/ModalMixin'
export default {
mixins: [ModalMixin],
data() {
return {
ratio: 1
}
},
methods: {
handleOk() {
console.log('%c [ ]-14', 'font-size:13px; background:pink; color:#bf2c9f;', this.ratio)
if(!this.ratio) {
this.$message.warn('Ratio Cannot Be Null')
throw new Error('Ratio Empty')
}
}
}
}
</script>
<style lang="less" scoped>
.ant-input-number {
width: 100%;
}
</style>

View File

@ -46,6 +46,10 @@
<load-from-file-modal v-model="loadFromFileModalVisible" /> <load-from-file-modal v-model="loadFromFileModalVisible" />
<!-- 从文件加载结束 --> <!-- 从文件加载结束 -->
<!-- Strip 弹窗开始 -->
<strip-modal v-model="stripModalVisible" />
<!-- Strip 弹窗结束 -->
<!-- Ftransit 弹窗开始 --> <!-- Ftransit 弹窗开始 -->
<ftranslt-modal v-model="ftransltModalVisible" /> <ftranslt-modal v-model="ftransltModalVisible" />
<!-- Ftransit 弹窗结束 --> <!-- Ftransit 弹窗结束 -->
@ -209,6 +213,7 @@ import BetaGammaRlrModal from './components/Modals/BetaGammaModals/BetaGammaRLRM
import StatisticsParamerHistoryModal from './components/Modals/BetaGammaModals/StatisticsParamerHistoryModal.vue' import StatisticsParamerHistoryModal from './components/Modals/BetaGammaModals/StatisticsParamerHistoryModal.vue'
import FtransltModal from './components/Modals/FtransltModal/index.vue' import FtransltModal from './components/Modals/FtransltModal/index.vue'
import BetaGammaEnergyCalibrationModal from './components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/index.vue' import BetaGammaEnergyCalibrationModal from './components/Modals/BetaGammaModals/BetaGammaEnergyCalibrationModal/index.vue'
import StripModal from './components/Modals/StripModal.vue'
// //
const ANALYZE_TYPE = { const ANALYZE_TYPE = {
@ -251,7 +256,8 @@ export default {
BetaGammaRlrModal, BetaGammaRlrModal,
StatisticsParamerHistoryModal, StatisticsParamerHistoryModal,
FtransltModal, FtransltModal,
BetaGammaEnergyCalibrationModal BetaGammaEnergyCalibrationModal,
StripModal
}, },
data() { data() {
this.ANALYZE_TYPE = ANALYZE_TYPE this.ANALYZE_TYPE = ANALYZE_TYPE
@ -263,6 +269,7 @@ export default {
loadFromDbModalVisible: false, // loadFromDbModalVisible: false, //
loadFromFileModalVisible: false, // loadFromFileModalVisible: false, //
stripModalVisible: false, // Strip
ftransltModalVisible: false, // Ftransit ftransltModalVisible: false, // Ftransit
sampleData: {}, // sampleData: {}, //
@ -436,9 +443,16 @@ export default {
title: 'Clean All', title: 'Clean All',
handler: this.handleCleanAll handler: this.handleCleanAll
}, },
{
type: 'a-menu-item',
title: 'Strip',
show: this.isGamma,
handler: () => (this.stripModalVisible = true)
},
{ {
type: 'a-menu-item', type: 'a-menu-item',
title: 'Ftransit', title: 'Ftransit',
show: this.isGamma,
handler: () => (this.ftransltModalVisible = true) handler: () => (this.ftransltModalVisible = true)
} }
] ]
@ -534,32 +548,50 @@ export default {
{ {
type: 'a-menu-item', type: 'a-menu-item',
title: 'Configure', title: 'Configure',
show: this.isGamma,
handler: () => (this.analyzeConfigureModalVisible = true) handler: () => (this.analyzeConfigureModalVisible = true)
}, },
{ {
type: 'a-menu-item', type: 'a-menu-item',
title: 'ReProcessing', title: 'ReProcessing',
show: this.isGamma,
handler: () => (this.reprocessingModalVisible = true) handler: () => (this.reprocessingModalVisible = true)
}, },
{ {
type: 'a-menu-item', type: 'a-menu-item',
title: 'Reprocess All', title: 'Reprocess All',
show: this.isGamma,
handler: this.handleReprocessAll handler: this.handleReprocessAll
}, },
{ {
type: 'a-menu-item', type: 'a-menu-item',
title: 'Interactive Tool', title: 'Interactive Tool',
show: this.isGamma,
handler: () => (this.analyzeInteractiveToolModalVisible = true) handler: () => (this.analyzeInteractiveToolModalVisible = true)
}, },
{ {
type: 'a-menu-item', type: 'a-menu-item',
title: 'Zero Time', title: 'Zero Time',
show: this.isGamma,
handler: () => (this.zeroTimeModalVisible = true) handler: () => (this.zeroTimeModalVisible = true)
}, },
{ {
type: 'a-menu-item', type: 'a-menu-item',
title: 'Korsum', title: 'Korsum',
show: this.isGamma,
handler: () => (this.korsumModalShow = true) handler: () => (this.korsumModalShow = true)
},
{
type: 'a-menu-item',
title: 'Analyze current spectrum',
show: this.isBetaGamma,
handler: () => {}
},
{
type: 'a-menu-item',
title: 'Analyze all spectra',
show: this.isBetaGamma,
handler: () => {}
} }
] ]
} }