feat: 完成File-Format-Ftranslt中第一个tab页内容,修复组件名错误的问题

This commit is contained in:
Xu Zhimeng 2023-07-24 19:26:46 +08:00
parent 5185865e17
commit 94e1808ed3
18 changed files with 588 additions and 113 deletions

View File

@ -8,7 +8,7 @@
</pop-over-with-icon> </pop-over-with-icon>
<pop-over-with-icon placement="bottomLeft"> <pop-over-with-icon placement="bottomLeft">
QC Flags QC Flags
<qc-flags slot="content" :data="{ collectionTime: '123' }" /> <beta-gamma-qc-flags slot="content" :data="qcFlags" />
</pop-over-with-icon> </pop-over-with-icon>
<pop-over-with-icon placement="bottomLeft" style="width: 159px" v-model="spectraVisible"> <pop-over-with-icon placement="bottomLeft" style="width: 159px" v-model="spectraVisible">
Spectra Spectra
@ -138,9 +138,9 @@ import BetaGammaSpectrumChart from './components/BetaGammaSpectrumChart.vue'
import ComparisonModal from './components/Modals/ComparisonModal.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 BetaGammaQcFlags from './components/SubOperators/BetaGammaQcFlags.vue'
import DetailedInfomation from './components/SubOperators/DetailedInfomation.vue' import DetailedInfomation from './components/SubOperators/DetailedInfomation.vue'
import PopOverWithIcon from './components/SubOperators/PopOverWithIcon.vue' import PopOverWithIcon from './components/SubOperators/PopOverWithIcon.vue'
import QcFlags from './components/SubOperators/QcFlags.vue'
import Spectra from './components/SubOperators/Spectra.vue' import Spectra from './components/SubOperators/Spectra.vue'
export default { export default {
@ -153,8 +153,8 @@ export default {
DetailedInfomation, DetailedInfomation,
PopOverWithIcon, PopOverWithIcon,
QcFlags, Spectra,
Spectra BetaGammaQcFlags
}, },
props: { props: {
sample: { sample: {
@ -163,6 +163,8 @@ export default {
}, },
data() { data() {
return { return {
qcFlags: {},
spectraVisible: false, spectraVisible: false,
spectraType: 'sample', spectraType: 'sample',
@ -216,7 +218,14 @@ export default {
Boundary, // 2d Boundary, // 2d
XeData, // Result Display XeData, // Result Display
spectrumData spectrumData,
AcqTimeBtn, // QC Flags
CollectTimeBtn, // QC Flags
SampleVolumeBtn, // QC Flags
XeVolumeBtn, // QC Flags
GasBgBtn, // QC Flags
DetBgBtn // QC Flags
} = this.sampleDetail[type] } = this.sampleDetail[type]
this.histogramDataList = histogramDataList this.histogramDataList = histogramDataList
@ -232,6 +241,15 @@ export default {
this.betaEnergyData = betaEnergyData this.betaEnergyData = betaEnergyData
this.resultDisplay = XeData this.resultDisplay = XeData
this.qcFlags = {
AcqTimeBtn,
CollectTimeBtn,
SampleVolumeBtn,
XeVolumeBtn,
GasBgBtn,
DetBgBtn
}
}, },
resize() { resize() {

View File

@ -28,7 +28,7 @@
</div> </div>
</div> </div>
<div class="interactive-analysis-tools-right"> <div class="interactive-analysis-tools-right">
<title-over-boarder title="Peak"> <title-over-border title="Peak">
<div class="peak-box"> <div class="peak-box">
<!-- 按钮组1 --> <!-- 按钮组1 -->
<template v-if="btnGroupType == 1"> <template v-if="btnGroupType == 1">
@ -79,12 +79,12 @@
</div> </div>
</template> </template>
</div> </div>
</title-over-boarder> </title-over-border>
<div class="reset-btn-box"> <div class="reset-btn-box">
<a-button type="primary">Reset Chart</a-button> <a-button type="primary">Reset Chart</a-button>
</div> </div>
<div class="identify-box"> <div class="identify-box">
<title-over-boarder title="Nuclide Identify"> <title-over-border title="Nuclide Identify">
<a-form-model class="tolerance"> <a-form-model class="tolerance">
<a-form-model-item label="Tolerance"> <a-form-model-item label="Tolerance">
<a-input-number></a-input-number> <a-input-number></a-input-number>
@ -109,7 +109,7 @@
<a-button type="primary" @click="handleDel">Del</a-button> <a-button type="primary" @click="handleDel">Del</a-button>
</a-space> </a-space>
</div> </div>
</title-over-boarder> </title-over-border>
</div> </div>
</div> </div>
</div> </div>
@ -128,7 +128,7 @@
<script> <script>
import CustomChart from '@/components/CustomChart/index.vue' import CustomChart from '@/components/CustomChart/index.vue'
import TitleOverBoarder from '../../TitleOverBoarder.vue' import TitleOverBorder from '../../TitleOverBorder.vue'
import CommentModal from './components/CommentModal.vue' import CommentModal from './components/CommentModal.vue'
import FitPeaksAndBaseLineModal from './components/FitPeaksAndBaselineModal.vue' import FitPeaksAndBaseLineModal from './components/FitPeaksAndBaselineModal.vue'
import NuclideReviewModal from './components/NuclideReviewModal.vue' import NuclideReviewModal from './components/NuclideReviewModal.vue'
@ -264,7 +264,7 @@ export default {
}, },
components: { components: {
CustomChart, CustomChart,
TitleOverBoarder, TitleOverBorder,
CommentModal, CommentModal,
FitPeaksAndBaseLineModal, FitPeaksAndBaseLineModal,
NuclideReviewModal NuclideReviewModal

View File

@ -8,7 +8,7 @@
> >
<!-- 第一行 --> <!-- 第一行 -->
<div class="analysis-settings-item"> <div class="analysis-settings-item">
<title-over-boarder title="Peak Searching"> <title-over-border title="Peak Searching">
<a-form-model :colon="false" :labelCol="{ style: { width: '160px' } }"> <a-form-model :colon="false" :labelCol="{ style: { width: '160px' } }">
<a-form-model-item label="ECutAnalysis_Low"> <a-form-model-item label="ECutAnalysis_Low">
<div class="input-with-unit"> <div class="input-with-unit">
@ -32,8 +32,8 @@
<a-input></a-input> <a-input></a-input>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
</title-over-boarder> </title-over-border>
<title-over-boarder title="Calibration Peak Searching"> <title-over-border title="Calibration Peak Searching">
<a-form-model :colon="false" :labelCol="{ style: { width: '170px' } }"> <a-form-model :colon="false" :labelCol="{ style: { width: '170px' } }">
<a-form-model-item label="CalibrationPSS_low"> <a-form-model-item label="CalibrationPSS_low">
<a-input></a-input> <a-input></a-input>
@ -52,12 +52,12 @@
</a-checkbox> </a-checkbox>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
</title-over-boarder> </title-over-border>
</div> </div>
<!-- 第二行 --> <!-- 第二行 -->
<div class="analysis-settings-item"> <div class="analysis-settings-item">
<title-over-boarder title="Baseline Param"> <title-over-border title="Baseline Param">
<a-form-model :colon="false" :labelCol="{ style: { width: '90px' } }"> <a-form-model :colon="false" :labelCol="{ style: { width: '90px' } }">
<a-form-model-item label="k_back"> <a-form-model-item label="k_back">
<a-input></a-input> <a-input></a-input>
@ -69,39 +69,39 @@
<a-input></a-input> <a-input></a-input>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
</title-over-boarder> </title-over-border>
<div> <div>
<a-form-model :colon="false" :labelCol="{ style: { width: '150px' } }"> <a-form-model :colon="false" :labelCol="{ style: { width: '150px' } }">
<title-over-boarder title="BaseImprove"> <title-over-border title="BaseImprove">
<a-form-model-item label="BaseImprovePSS"> <a-form-model-item label="BaseImprovePSS">
<a-input></a-input> <a-input></a-input>
</a-form-model-item> </a-form-model-item>
</title-over-boarder> </title-over-border>
<title-over-boarder title="LC Computing" style="margin-top: 20px"> <title-over-border title="LC Computing" style="margin-top: 20px">
<a-form-model-item label="RiskLevelK"> <a-form-model-item label="RiskLevelK">
<a-input></a-input> <a-input></a-input>
</a-form-model-item> </a-form-model-item>
</title-over-boarder> </title-over-border>
</a-form-model> </a-form-model>
</div> </div>
</div> </div>
<!-- 第三行 --> <!-- 第三行 -->
<div class="analysis-settings-item"> <div class="analysis-settings-item">
<title-over-boarder title="Activity Reference Time"> <title-over-border title="Activity Reference Time">
<custom-date-picker show-time v-model="formModel.activityReferenceTime"></custom-date-picker> <custom-date-picker show-time v-model="formModel.activityReferenceTime"></custom-date-picker>
</title-over-boarder> </title-over-border>
<title-over-boarder title="Concentration Reference Time"> <title-over-border title="Concentration Reference Time">
<custom-date-picker show-time v-model="formModel.concentrationReferenceTime"></custom-date-picker> <custom-date-picker show-time v-model="formModel.concentrationReferenceTime"></custom-date-picker>
</title-over-boarder> </title-over-border>
</div> </div>
</custom-modal> </custom-modal>
</template> </template>
<script> <script>
import TitleOverBoarder from '../TitleOverBoarder.vue' import TitleOverBorder from '../TitleOverBorder.vue'
export default { export default {
components: { TitleOverBoarder }, components: { TitleOverBorder },
props: { props: {
value: { value: {
type: Boolean type: Boolean

View File

@ -1,15 +1,15 @@
<template> <template>
<custom-modal v-model="visible" :width="800" title="Comments"> <custom-modal v-model="visible" :width="800" title="Comments">
<a-spin :spinning="isLoading"> <a-spin :spinning="isLoading">
<title-over-boarder title="Spectrum Comment"> <title-over-border title="Spectrum Comment">
<a-textarea v-model="comments.spectrumCommentInfo" :rows="8" :disabled="true"></a-textarea> <a-textarea v-model="comments.spectrumCommentInfo" :rows="8" :disabled="true"></a-textarea>
</title-over-boarder> </title-over-border>
<title-over-boarder title="Other Analyser's Comment"> <title-over-border title="Other Analyser's Comment">
<a-textarea v-model="comments.spectrumOtherCommentInfo" :rows="8" :disabled="true"></a-textarea> <a-textarea v-model="comments.spectrumOtherCommentInfo" :rows="8" :disabled="true"></a-textarea>
</title-over-boarder> </title-over-border>
<title-over-boarder title="Spectrum Analysis Comment"> <title-over-border title="Spectrum Analysis Comment">
<a-textarea v-model="comments.spectrumAnalysisCommentInfo" :rows="8" :disabled="!isAdd"></a-textarea> <a-textarea v-model="comments.spectrumAnalysisCommentInfo" :rows="8" :disabled="!isAdd"></a-textarea>
</title-over-boarder> </title-over-border>
</a-spin> </a-spin>
<a-space slot="custom-footer" :size="20"> <a-space slot="custom-footer" :size="20">
<a-button v-if="isAdd" type="primary" @click="handleOk">Commit Comment Indormations</a-button> <a-button v-if="isAdd" type="primary" @click="handleOk">Commit Comment Indormations</a-button>
@ -20,10 +20,10 @@
<script> <script>
import ModalMixin from '@/mixins/ModalMixin' import ModalMixin from '@/mixins/ModalMixin'
import TitleOverBoarder from '../../TitleOverBoarder.vue' import TitleOverBorder from '../../TitleOverBorder.vue'
import { getAction } from '../../../../../api/manage' import { getAction } from '../../../../../api/manage'
export default { export default {
components: { TitleOverBoarder }, components: { TitleOverBorder },
mixins: [ModalMixin], mixins: [ModalMixin],
props: { props: {
isAdd: { isAdd: {

View File

@ -1,10 +1,6 @@
<template> <template>
<custom-modal v-model="visible" :width="750" title="QC Result"> <custom-modal v-model="visible" :width="750" title="QC Result">
<a-table :columns="columns" :dataSource="list" :pagination="false"> <a-table :columns="columns" :dataSource="list" :pagination="false"> </a-table>
<template slot="status" slot-scope="text">
{{ text == 0 ? 'PASS' : 'ERROR' }}
</template>
</a-table>
<a-space slot="custom-footer" :size="20"> <a-space slot="custom-footer" :size="20">
<a-button type="primary">Save Text</a-button> <a-button type="primary">Save Text</a-button>
<a-button type="primary">Save Excel</a-button> <a-button type="primary">Save Excel</a-button>
@ -14,6 +10,7 @@
</template> </template>
<script> <script>
import { getAction } from '@/api/manage'
import ModalMixin from '@/mixins/ModalMixin' import ModalMixin from '@/mixins/ModalMixin'
const columns = [ const columns = [
@ -43,14 +40,20 @@ const columns = [
console.log('%c [ ]-36', 'font-size:13px; background:pink; color:#bf2c9f;', record) console.log('%c [ ]-36', 'font-size:13px; background:pink; color:#bf2c9f;', record)
return { return {
style: { style: {
backgroundColor: record.status == 0 ? '#008000 !important' : '#f00 !important' backgroundColor: record.status.toLowerCase() == 'pass' ? '#008000 !important' : '#f00 !important'
} }
} }
} }
} }
] ]
export default { export default {
mixins: [ModalMixin], mixins: [ModalMixin],
props: {
sampleId: {
type: String
}
},
data() { data() {
this.columns = columns this.columns = columns
return { return {
@ -69,6 +72,73 @@ export default {
} }
] ]
} }
},
methods: {
async getData() {
try {
this.isLoading = true
const res = await getAction('/spectrumAnalysis/viewQCResult', {
sampleId: this.sampleId
})
if (res.success) {
const result = res.result
console.log('%c [ result ]-89', 'font-size:13px; background:pink; color:#bf2c9f;', result)
this.list.push({
qcFlags: 'Collection Time (h)',
evaluationMetrics: result.collectTimeEvaluationMetrics,
value: result.collectTimeValue,
status: result.collectTimeStatus
})
this.list.push({
qcFlags: 'Acquisition Time (h)',
evaluationMetrics: result.acquisitionTimeEvaluationMetrics,
value: result.acquisitionTimeValue,
status: result.acquisitionTimeStatus
})
this.list.push({
qcFlags: 'Xenon Volume (ml)',
evaluationMetrics: result.xenonVolumeEvaluationMetrics,
value: result.xenonVolumeValue,
status: result.xenonVolumeStatus
})
this.list.push({
qcFlags: 'Gas Bg',
evaluationMetrics: result.gasBgValueAndStatus,
value: result.gasBgValueAndStatus ? 'Match' : 'UnMatch',
status: result.gasBgValueAndStatus ? 'Pass' : 'Failed'
})
this.list.push({
qcFlags: 'Det Bg',
evaluationMetrics: result.detBgValueAndStatus,
value: result.detBgValueAndStatus ? 'Match' : 'UnMatch',
status: result.detBgValueAndStatus ? 'Pass' : 'Failed'
})
this.list.push({
qcFlags: 'MDC for Xe133(mBq/m3)',
evaluationMetrics: result.xe133MDCEvaluationMetrics,
value: result.xe133MDCValue,
status: result.xe133MDCStatus
})
} else {
this.$message.error(res.message)
}
} catch (error) {
console.error(error)
} finally {
this.isLoading = false
}
},
beforeModalOpen() {
this.list = []
this.getData()
}
} }
} }
</script> </script>

View File

@ -2,9 +2,9 @@
<custom-modal v-model="visible" title="Statistics Paramer History" :width="1480" :footer="null"> <custom-modal v-model="visible" title="Statistics Paramer History" :width="1480" :footer="null">
<div class="statistics-paramer-history"> <div class="statistics-paramer-history">
<!-- 左侧配置 --> <!-- 左侧配置 -->
<title-over-boarder title="Query Infomation Settings" class="settings"> <title-over-border title="Query Infomation Settings" class="settings">
<!-- Station And Detector --> <!-- Station And Detector -->
<title-over-boarder title="Station And Detector"> <title-over-border title="Station And Detector">
<a-form-model <a-form-model
:labelCol="{ style: { width: '70px', textAlign: 'left', flexShrink: 0 } }" :labelCol="{ style: { width: '70px', textAlign: 'left', flexShrink: 0 } }"
:wrapperCol="{ flex: 1 }" :wrapperCol="{ flex: 1 }"
@ -20,16 +20,16 @@
<custom-select :options="[{ label: 'test', value: 1 }]" size="small"></custom-select> <custom-select :options="[{ label: 'test', value: 1 }]" size="small"></custom-select>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
</title-over-boarder> </title-over-border>
<!-- Nuclide --> <!-- Nuclide -->
<title-over-boarder title="Nuclide" class="nuclide"> <title-over-border title="Nuclide" class="nuclide">
<a-checkbox-group> <a-checkbox-group>
<a-checkbox>Xe131m</a-checkbox> <a-checkbox>Xe131m</a-checkbox>
<a-checkbox>Xe133m</a-checkbox> <a-checkbox>Xe133m</a-checkbox>
<a-checkbox>Xe133</a-checkbox> <a-checkbox>Xe133</a-checkbox>
<a-checkbox>Xe135</a-checkbox> <a-checkbox>Xe135</a-checkbox>
</a-checkbox-group> </a-checkbox-group>
</title-over-boarder> </title-over-border>
<a-checkbox-group class="other-checkbox"> <a-checkbox-group class="other-checkbox">
<a-checkbox>MDC</a-checkbox> <a-checkbox>MDC</a-checkbox>
@ -55,7 +55,7 @@
</div> </div>
<a-divider></a-divider> <a-divider></a-divider>
<!-- Filter --> <!-- Filter -->
<title-over-boarder title="Filter"> <title-over-border title="Filter">
<a-checkbox>Xe Result Flag</a-checkbox> <a-checkbox>Xe Result Flag</a-checkbox>
<!-- 配置详情 --> <!-- 配置详情 -->
<div class="filter-options"> <div class="filter-options">
@ -126,8 +126,8 @@
</div> </div>
</div> </div>
</div> </div>
</title-over-boarder> </title-over-border>
</title-over-boarder> </title-over-border>
<!-- 右侧图表 --> <!-- 右侧图表 -->
<div class="statistics-paramer-history-chart"> <div class="statistics-paramer-history-chart">
<custom-chart :option="option"></custom-chart> <custom-chart :option="option"></custom-chart>
@ -138,7 +138,7 @@
<script> <script>
import ModalMixin from '@/mixins/ModalMixin' import ModalMixin from '@/mixins/ModalMixin'
import TitleOverBoarder from '../../TitleOverBoarder.vue' import TitleOverBorder from '../../TitleOverBorder.vue'
import CustomChart from '@/components/CustomChart/index.vue' import CustomChart from '@/components/CustomChart/index.vue'
const initialOption = { const initialOption = {
@ -200,7 +200,7 @@ const initialOption = {
} }
} }
export default { export default {
components: { TitleOverBoarder, CustomChart }, components: { TitleOverBorder, CustomChart },
mixins: [ModalMixin], mixins: [ModalMixin],
data() { data() {
return { return {

View File

@ -3,7 +3,7 @@
<div class="efficiency-calibration"> <div class="efficiency-calibration">
<div class="left"> <div class="left">
<!-- Calibration Data --> <!-- Calibration Data -->
<title-over-boarder title="Calibration Data"> <title-over-border title="Calibration Data">
<div class="calibration-data"> <div class="calibration-data">
<a-form-model <a-form-model
:colon="false" :colon="false"
@ -60,22 +60,22 @@
</div> </div>
</div> </div>
</div> </div>
</title-over-boarder> </title-over-border>
<!-- Equation --> <!-- Equation -->
<title-over-boarder class="mt-20" title="Equation"> <title-over-border class="mt-20" title="Equation">
<div class="equation"> <div class="equation">
Efficiency = 59.541 + (88.034 - 59.541) * (E - 1) / (0.058243 - 1) Efficiency = 59.541 + (88.034 - 59.541) * (E - 1) / (0.058243 - 1)
</div> </div>
</title-over-boarder> </title-over-border>
<!-- curve --> <!-- curve -->
<title-over-boarder class="mt-20" title="curve"> <title-over-border class="mt-20" title="curve">
<div class="curve"> <div class="curve">
<custom-chart :option="option" /> <custom-chart :option="option" />
</div> </div>
</title-over-boarder> </title-over-border>
</div> </div>
<div class="right"> <div class="right">
<title-over-boarder title="Data Source" style="height: 100%"> <title-over-border title="Data Source" style="height: 100%">
<div class="data-source"> <div class="data-source">
<div class="data-source-main"> <div class="data-source-main">
<div class="title">PHD</div> <div class="title">PHD</div>
@ -86,7 +86,7 @@
<div class="mt-20">PHD</div> <div class="mt-20">PHD</div>
</div> </div>
</div> </div>
</title-over-boarder> </title-over-border>
</div> </div>
</div> </div>
</custom-modal> </custom-modal>
@ -94,7 +94,7 @@
<script> <script>
import ModalMixin from '@/mixins/ModalMixin' import ModalMixin from '@/mixins/ModalMixin'
import TitleOverBoarder from '../TitleOverBoarder.vue' import TitleOverBorder from '../TitleOverBorder.vue'
import CustomChart from '@/components/CustomChart/index.vue' import CustomChart from '@/components/CustomChart/index.vue'
const columns = [ const columns = [
@ -191,7 +191,7 @@ const initialOption = {
} }
export default { export default {
components: { TitleOverBoarder, CustomChart }, components: { TitleOverBorder, CustomChart },
mixins: [ModalMixin], mixins: [ModalMixin],
data() { data() {
this.columns = columns this.columns = columns

View File

@ -3,7 +3,7 @@
<div class="energy-calibration"> <div class="energy-calibration">
<div class="left"> <div class="left">
<!-- Calibration Data --> <!-- Calibration Data -->
<title-over-boarder title="Calibration Data"> <title-over-border title="Calibration Data">
<div class="calibration-data"> <div class="calibration-data">
<a-form-model <a-form-model
:colon="false" :colon="false"
@ -55,22 +55,22 @@
</div> </div>
</div> </div>
</div> </div>
</title-over-boarder> </title-over-border>
<!-- Equation --> <!-- Equation -->
<title-over-boarder class="mt-20" title="Equation"> <title-over-border class="mt-20" title="Equation">
<div class="equation"> <div class="equation">
Energy = -0.056137 + C * 0.334493 + C<sup>2</sup> * 3.10365e - 08 + C<sup>3</sup> * -4.05186e - 12 Energy = -0.056137 + C * 0.334493 + C<sup>2</sup> * 3.10365e - 08 + C<sup>3</sup> * -4.05186e - 12
</div> </div>
</title-over-boarder> </title-over-border>
<!-- curve --> <!-- curve -->
<title-over-boarder class="mt-20" title="curve"> <title-over-border class="mt-20" title="curve">
<div class="curve"> <div class="curve">
<custom-chart :option="option" /> <custom-chart :option="option" />
</div> </div>
</title-over-boarder> </title-over-border>
</div> </div>
<div class="right"> <div class="right">
<title-over-boarder title="Data Source" style="height: 100%"> <title-over-border title="Data Source" style="height: 100%">
<div class="data-source"> <div class="data-source">
<div class="data-source-main"> <div class="data-source-main">
<div class="title">PHD</div> <div class="title">PHD</div>
@ -81,7 +81,7 @@
<div class="mt-20">CallUpdate2</div> <div class="mt-20">CallUpdate2</div>
</div> </div>
</div> </div>
</title-over-boarder> </title-over-border>
</div> </div>
</div> </div>
</custom-modal> </custom-modal>
@ -89,7 +89,7 @@
<script> <script>
import ModalMixin from '@/mixins/ModalMixin' import ModalMixin from '@/mixins/ModalMixin'
import TitleOverBoarder from '../TitleOverBoarder.vue' import TitleOverBorder from '../TitleOverBorder.vue'
import CustomChart from '@/components/CustomChart/index.vue' import CustomChart from '@/components/CustomChart/index.vue'
const columns = [ const columns = [
@ -186,7 +186,7 @@ const initialOption = {
} }
export default { export default {
components: { TitleOverBoarder, CustomChart }, components: { TitleOverBorder, CustomChart },
mixins: [ModalMixin], mixins: [ModalMixin],
data() { data() {
this.columns = columns this.columns = columns

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">ORTEC int.spc</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,23 @@
<template>
<custom-modal v-model="visible" :width="1080" title="File-Format-Ftransit" :footer="null">
<a-tabs>
<a-tab-pane tab="INT.SPC<=>.IMS" key="1">
<int-spc-ims-transfer />
</a-tab-pane>
<a-tab-pane tab="INT.SPC<=>Canberra.IEC" key="2"></a-tab-pane>
<a-tab-pane tab="Canberra.IEC<=>.IMS" key="3"></a-tab-pane>
</a-tabs>
</custom-modal>
</template>
<script>
import ModalMixin from '@/mixins/ModalMixin'
import IntSpcImsTransfer from './components/IntSpcImsTransfer.vue'
export default {
components: { IntSpcImsTransfer },
mixins: [ModalMixin]
}
</script>
<style></style>

View File

@ -2,7 +2,7 @@
<custom-modal v-model="visible" title="Korsum" :width="1120" :footer="null"> <custom-modal v-model="visible" title="Korsum" :width="1120" :footer="null">
<div class="korsum"> <div class="korsum">
<!-- 输入开始 --> <!-- 输入开始 -->
<title-over-boarder title="Input"> <title-over-border title="Input">
<div class="korsum-input"> <div class="korsum-input">
<!-- 公式部分 --> <!-- 公式部分 -->
<a-form-model <a-form-model
@ -99,11 +99,11 @@
</div> </div>
<!-- 按钮结束 --> <!-- 按钮结束 -->
</div> </div>
</title-over-boarder> </title-over-border>
<!-- 输入结束 --> <!-- 输入结束 -->
<!-- 输出开始 --> <!-- 输出开始 -->
<title-over-boarder title="Output"> <title-over-border title="Output">
<div class="korsum-output"> <div class="korsum-output">
<div class="korsum-output-main"> <div class="korsum-output-main">
<div class="korsum-output-list"> <div class="korsum-output-list">
@ -136,14 +136,14 @@
</div> </div>
</div> </div>
</div> </div>
</title-over-boarder> </title-over-border>
<!-- 输出结束 --> <!-- 输出结束 -->
</div> </div>
</custom-modal> </custom-modal>
</template> </template>
<script> <script>
import TitleOverBoarder from '../TitleOverBoarder.vue' import TitleOverBorder from '../TitleOverBorder.vue'
const columns = [ const columns = [
{ {
@ -191,7 +191,7 @@ const outputColumns = [
} }
] ]
export default { export default {
components: { TitleOverBoarder }, components: { TitleOverBorder },
props: { props: {
value: { value: {
type: Boolean type: Boolean

View File

@ -14,13 +14,13 @@
</div> </div>
<div class="nuclide-library-settings"> <div class="nuclide-library-settings">
<div class="nuclide-library-settings-select"> <div class="nuclide-library-settings-select">
<title-over-boarder class="select-library" title="Select Library"> <title-over-border class="select-library" title="Select Library">
<a-radio-group> <a-radio-group>
<a-radio>User Library</a-radio> <a-radio>User Library</a-radio>
<a-radio>Full Library</a-radio> <a-radio>Full Library</a-radio>
<a-radio>Relevant Library</a-radio> <a-radio>Relevant Library</a-radio>
</a-radio-group> </a-radio-group>
</title-over-boarder> </title-over-border>
<div class="parent-and-daughters"> <div class="parent-and-daughters">
<div class="parents"> <div class="parents">
<div class="title">Parents</div> <div class="title">Parents</div>
@ -88,7 +88,7 @@
<script> <script>
import ModalMixin from '@/mixins/ModalMixin' import ModalMixin from '@/mixins/ModalMixin'
import TitleOverBoarder from '../TitleOverBoarder.vue' import TitleOverBorder from '../TitleOverBorder.vue'
// //
const daughterColumns = [ const daughterColumns = [
@ -144,7 +144,7 @@ const mainColumns = [
export default { export default {
mixins: [ModalMixin], mixins: [ModalMixin],
components: { components: {
TitleOverBoarder TitleOverBorder
}, },
data() { data() {
this.daughterColumns = daughterColumns this.daughterColumns = daughterColumns

View File

@ -3,7 +3,7 @@
<div class="resolution-calibration"> <div class="resolution-calibration">
<div class="left"> <div class="left">
<!-- Calibration Data --> <!-- Calibration Data -->
<title-over-boarder title="Calibration Data"> <title-over-border title="Calibration Data">
<div class="calibration-data"> <div class="calibration-data">
<a-form-model <a-form-model
:colon="false" :colon="false"
@ -55,22 +55,22 @@
</div> </div>
</div> </div>
</div> </div>
</title-over-boarder> </title-over-border>
<!-- Equation --> <!-- Equation -->
<title-over-boarder class="mt-20" title="Equation"> <title-over-border class="mt-20" title="Equation">
<div class="equation"> <div class="equation">
FWHM = (0.514363 + E * 0/00281408)<sup>1/2</sup> FWHM = (0.514363 + E * 0/00281408)<sup>1/2</sup>
</div> </div>
</title-over-boarder> </title-over-border>
<!-- curve --> <!-- curve -->
<title-over-boarder class="mt-20" title="curve"> <title-over-border class="mt-20" title="curve">
<div class="curve"> <div class="curve">
<custom-chart :option="option" /> <custom-chart :option="option" />
</div> </div>
</title-over-boarder> </title-over-border>
</div> </div>
<div class="right"> <div class="right">
<title-over-boarder title="Data Source" style="height: 100%"> <title-over-border title="Data Source" style="height: 100%">
<div class="data-source"> <div class="data-source">
<div class="data-source-main"> <div class="data-source-main">
<div class="title">PHD</div> <div class="title">PHD</div>
@ -81,7 +81,7 @@
<div class="mt-20">CalResUpdate</div> <div class="mt-20">CalResUpdate</div>
</div> </div>
</div> </div>
</title-over-boarder> </title-over-border>
</div> </div>
</div> </div>
</custom-modal> </custom-modal>
@ -89,7 +89,7 @@
<script> <script>
import ModalMixin from '@/mixins/ModalMixin' import ModalMixin from '@/mixins/ModalMixin'
import TitleOverBoarder from '../TitleOverBoarder.vue' import TitleOverBorder from '../TitleOverBorder.vue'
import CustomChart from '@/components/CustomChart/index.vue' import CustomChart from '@/components/CustomChart/index.vue'
const columns = [ const columns = [
@ -186,7 +186,7 @@ const initialOption = {
} }
export default { export default {
components: { TitleOverBoarder, CustomChart }, components: { TitleOverBorder, CustomChart },
mixins: [ModalMixin], mixins: [ModalMixin],
data() { data() {
this.columns = columns this.columns = columns

View File

@ -7,12 +7,12 @@
</a-checkbox> </a-checkbox>
</div> </div>
<div> <div>
<title-over-boarder title="Format"> <title-over-border title="Format">
<a-radio-group v-model="saveFormat" class="format-radio-group"> <a-radio-group v-model="saveFormat" class="format-radio-group">
<a-radio value="txt">Save as Txt</a-radio> <a-radio value="txt">Save as Txt</a-radio>
<a-radio value="excel">Save as Excel</a-radio> <a-radio value="excel">Save as Excel</a-radio>
</a-radio-group> </a-radio-group>
</title-over-boarder> </title-over-border>
</div> </div>
</div> </div>
</custom-modal> </custom-modal>
@ -20,9 +20,9 @@
<script> <script>
import { downloadFile } from '../../../../api/manage' import { downloadFile } from '../../../../api/manage'
import TitleOverBoarder from '../TitleOverBoarder.vue' import TitleOverBorder from '../TitleOverBorder.vue'
export default { export default {
components: { TitleOverBoarder }, components: { TitleOverBorder },
props: { props: {
value: { value: {
type: Boolean type: Boolean

View File

@ -3,7 +3,7 @@
<div class="zero-time"> <div class="zero-time">
<!-- 左侧 --> <!-- 左侧 -->
<div class="zero-time-left"> <div class="zero-time-left">
<title-over-boarder title="Fission Product Infomation"> <title-over-border title="Fission Product Infomation">
<div class="fission-product"> <div class="fission-product">
<div class="fission-product-container"> <div class="fission-product-container">
<div class="fission-product-title"> <div class="fission-product-title">
@ -26,18 +26,18 @@
</div> </div>
</div> </div>
</div> </div>
</title-over-boarder> </title-over-border>
<!-- Result of Zero Time --> <!-- Result of Zero Time -->
<title-over-boarder class="mt-20" title="Result of Zero Time"> <title-over-border class="mt-20" title="Result of Zero Time">
<div class="result-of-zero-time">2015-05-30 17:30:60</div> <div class="result-of-zero-time">2015-05-30 17:30:60</div>
</title-over-boarder> </title-over-border>
</div> </div>
<!-- 左侧结束 --> <!-- 左侧结束 -->
<!-- 右侧 --> <!-- 右侧 -->
<div class="zero-time-right"> <div class="zero-time-right">
<!-- Active of Fission Product --> <!-- Active of Fission Product -->
<title-over-boarder title="Active of Fission Product"> <title-over-border title="Active of Fission Product">
<div class="active-of-fission-product"> <div class="active-of-fission-product">
<div class="item"> <div class="item">
<div class="title"> <div class="title">
@ -59,25 +59,25 @@
</div> </div>
</div> </div>
</div> </div>
</title-over-boarder> </title-over-border>
<div class="zero-time-right-center mt-20"> <div class="zero-time-right-center mt-20">
<!-- Fission Target --> <!-- Fission Target -->
<title-over-boarder class="fission-target" title="Fission Target"> <title-over-border class="fission-target" title="Fission Target">
<a-radio-group> <a-radio-group>
<a-radio>U-235</a-radio> <a-radio>U-235</a-radio>
<a-radio>U-238</a-radio> <a-radio>U-238</a-radio>
<a-radio>PU-239</a-radio> <a-radio>PU-239</a-radio>
</a-radio-group> </a-radio-group>
</title-over-boarder> </title-over-border>
<title-over-boarder class="fission-energy" title="Energy of Fission Neutron"> <title-over-border class="fission-energy" title="Energy of Fission Neutron">
<a-radio-group> <a-radio-group>
<a-radio>T&gt;Thermal_spectrum</a-radio> <a-radio>T&gt;Thermal_spectrum</a-radio>
<a-radio>F&gt;Fission_spectrum</a-radio> <a-radio>F&gt;Fission_spectrum</a-radio>
<a-radio>H-&gt;Fast_Neutron</a-radio> <a-radio>H-&gt;Fast_Neutron</a-radio>
</a-radio-group> </a-radio-group>
</title-over-boarder> </title-over-border>
</div> </div>
<title-over-boarder class="mt-20" title="Reference Time"> <title-over-border class="mt-20" title="Reference Time">
<a-form-model layout="inline"> <a-form-model layout="inline">
<a-form-model-item label="Date"> <a-form-model-item label="Date">
<custom-date-picker /> <custom-date-picker />
@ -86,7 +86,7 @@
<a-time-picker></a-time-picker> <a-time-picker></a-time-picker>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
</title-over-boarder> </title-over-border>
<div class="zero-time-right-buttons mt-20"> <div class="zero-time-right-buttons mt-20">
<a-button type="primary">Analysis</a-button> <a-button type="primary">Analysis</a-button>
@ -100,10 +100,10 @@
</template> </template>
<script> <script>
import TitleOverBoarder from '../TitleOverBoarder.vue' import TitleOverBorder from '../TitleOverBorder.vue'
export default { export default {
components: { TitleOverBoarder }, components: { TitleOverBorder },
props: { props: {
value: { value: {
type: Boolean type: Boolean

View File

@ -0,0 +1,88 @@
<template>
<div class="qc-flags">
<div class="qc-flags-item" v-for="conf in config" :key="conf.label">
<span :class="data[conf.name]"></span>
{{ conf.label }}
</div>
</div>
</template>
<script>
//
const config = [
{
label: 'Collection Time',
name: 'CollectTimeBtn'
},
{
label: 'Acq Time',
name: 'AcqTimeBtn'
},
{
label: 'Xe Volume',
name: 'XeVolumeBtn'
},
{
label: 'GasBg',
name: 'GasBgBtn'
},
{
label: 'DetBg',
name: 'DetBgBtn'
},
{
label: 'Sample Volume',
name: 'SampleVolumeBtn'
}
]
export default {
props: {
data: {
type: Object,
default: () => ({})
}
},
created() {
this.config = config
}
}
</script>
<style lang="less" scoped>
.qc-flags {
display: flex;
&-item {
background-color: #46738e;
display: flex;
align-items: center;
width: 150px;
height: 30px;
&:not(:last-child) {
margin-right: 2px;
}
span {
margin-left: 20px;
margin-right: 5px;
width: 14px;
height: 14px;
border-radius: 50%;
background: radial-gradient(circle, #979797 0, #777a7c 100%);
&.GreenLight {
background: radial-gradient(circle, #00fe7f 0, #00d56a 100%);
}
&.RedLight {
background: radial-gradient(circle, #fe0015 0, #d50000 100%);
}
&.YellowLight {
background: radial-gradient(circle, #feed00 0, #d5d100 100%);
}
}
}
}
</style>

View File

@ -43,6 +43,10 @@
<load-from-file-modal v-model="loadFromFileModalVisible" /> <load-from-file-modal v-model="loadFromFileModalVisible" />
<!-- 从文件加载结束 --> <!-- 从文件加载结束 -->
<!-- Ftransit 弹窗开始 -->
<ftranslt-modal v-model="ftransltModalVisible" />
<!-- Ftransit 弹窗结束 -->
<!-- Peak Infomation 弹窗开始 --> <!-- Peak Infomation 弹窗开始 -->
<peak-infomation v-model="peakInfomationModalVisible" /> <peak-infomation v-model="peakInfomationModalVisible" />
<!-- Peak Infomation 弹窗结束 --> <!-- Peak Infomation 弹窗结束 -->
@ -128,7 +132,11 @@
<!-- RLR 弹窗结束 --> <!-- RLR 弹窗结束 -->
<!-- Beta-Gamma 的Comments 弹窗 --> <!-- Beta-Gamma 的Comments 弹窗 -->
<beta-gamma-comments-modal v-model="betaGammaCommentsModalVisible" :isAdd="isBetaGammaCommentsAdd" :sampleId="this.sampleData.sampleId"/> <beta-gamma-comments-modal
v-model="betaGammaCommentsModalVisible"
:isAdd="isBetaGammaCommentsAdd"
:sampleId="this.sampleData.sampleId"
/>
<!-- Beta-Gamma 的Comments 结束 --> <!-- Beta-Gamma 的Comments 结束 -->
<!-- Beta-Gamma Spectrum 弹窗 --> <!-- Beta-Gamma Spectrum 弹窗 -->
@ -136,11 +144,14 @@
<!-- Beta-Gamma Spectrum 弹窗 结束 --> <!-- Beta-Gamma Spectrum 弹窗 结束 -->
<!-- Beta-Gamma Sample Infomation 弹窗 --> <!-- Beta-Gamma Sample Infomation 弹窗 -->
<beta-gamma-sample-infomation-modal v-model="betaGammaSampleInfomationModalVisible" :sampleId="this.sampleData.sampleId" /> <beta-gamma-sample-infomation-modal
v-model="betaGammaSampleInfomationModalVisible"
:sampleId="this.sampleData.sampleId"
/>
<!-- Beta-Gamma Sample Infomation 弹窗 结束 --> <!-- Beta-Gamma Sample Infomation 弹窗 结束 -->
<!-- Beta-Gamma QC Result 弹窗 --> <!-- Beta-Gamma QC Result 弹窗 -->
<beta-gamma-qc-results-modal v-model="betaGammaQCResultsModalVisible" /> <beta-gamma-qc-results-modal v-model="betaGammaQCResultsModalVisible" :sampleId="this.sampleData.sampleId"/>
<!-- Beta-Gamma QC Result 弹窗 结束 --> <!-- Beta-Gamma QC Result 弹窗 结束 -->
<!-- Beta-Gamma RLR 弹窗 --> <!-- Beta-Gamma RLR 弹窗 -->
@ -186,6 +197,7 @@ import BetaGammaSampleInfomationModal from './components/Modals/BetaGammaModals/
import BetaGammaQcResultsModal from './components/Modals/BetaGammaModals/BetaGammaQCResultsModal.vue' import BetaGammaQcResultsModal from './components/Modals/BetaGammaModals/BetaGammaQCResultsModal.vue'
import BetaGammaRlrModal from './components/Modals/BetaGammaModals/BetaGammaRLRModal/index.vue' import BetaGammaRlrModal from './components/Modals/BetaGammaModals/BetaGammaRLRModal/index.vue'
import StatisticsParamerHistoryModal from './components/Modals/BetaGammaModals/StatisticsParamerHistoryModal.vue' import StatisticsParamerHistoryModal from './components/Modals/BetaGammaModals/StatisticsParamerHistoryModal.vue'
import FtransltModal from './components/Modals/FtransltModal/index.vue'
// //
const ANALYZE_TYPE = { const ANALYZE_TYPE = {
@ -226,7 +238,8 @@ export default {
BetaGammaSampleInfomationModal, BetaGammaSampleInfomationModal,
BetaGammaQcResultsModal, BetaGammaQcResultsModal,
BetaGammaRlrModal, BetaGammaRlrModal,
StatisticsParamerHistoryModal StatisticsParamerHistoryModal,
FtransltModal
}, },
data() { data() {
this.ANALYZE_TYPE = ANALYZE_TYPE this.ANALYZE_TYPE = ANALYZE_TYPE
@ -238,6 +251,7 @@ export default {
loadFromDbModalVisible: false, // loadFromDbModalVisible: false, //
loadFromFileModalVisible: false, // loadFromFileModalVisible: false, //
ftransltModalVisible: false, // Ftransit
sampleData: {}, // sampleData: {}, //
@ -407,6 +421,11 @@ export default {
type: 'a-menu-item', type: 'a-menu-item',
title: 'Clean All', title: 'Clean All',
handler: this.handleCleanAll handler: this.handleCleanAll
},
{
type: 'a-menu-item',
title: 'Ftransit',
handler: () => (this.ftransltModalVisible = true)
} }
] ]
}, },