Merge branch 'feature-analysis-RLR-renpy' of http://git.hivekion.com:3000/xiaoguangbin/AnalysisSystemForRadionuclide_vue into master-dev
This commit is contained in:
commit
515f8ff43f
|
@ -1,11 +1,21 @@
|
||||||
<template>
|
<template>
|
||||||
<a-modal :class="'custom-modal' + (innerFullscreen ? ' fullscreen' : '')" v-bind="_attrs" v-model="visible" @cancel="handleCancel">
|
<a-modal
|
||||||
|
:class="'custom-modal' + (innerFullscreen ? ' fullscreen' : '')"
|
||||||
|
v-bind="_attrs"
|
||||||
|
v-model="visible"
|
||||||
|
:maskClosable="false"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
>
|
||||||
<img slot="closeIcon" src="@/assets/images/global/close.png" />
|
<img slot="closeIcon" src="@/assets/images/global/close.png" />
|
||||||
<div slot="title">
|
<div slot="title">
|
||||||
<div class="custom-modal-title">
|
<div class="custom-modal-title">
|
||||||
<span>{{ title }}</span>
|
<span>{{ title }}</span>
|
||||||
<template v-if="enableFullScreen">
|
<template v-if="enableFullScreen">
|
||||||
<img v-if="innerFullscreen" src="@/assets/images/global/quit-fullscreen.png" @click="innerFullscreen = false" />
|
<img
|
||||||
|
v-if="innerFullscreen"
|
||||||
|
src="@/assets/images/global/quit-fullscreen.png"
|
||||||
|
@click="innerFullscreen = false"
|
||||||
|
/>
|
||||||
<img v-else src="@/assets/images/global/fullscreen.png" @click="innerFullscreen = true" />
|
<img v-else src="@/assets/images/global/fullscreen.png" @click="innerFullscreen = true" />
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
@ -24,24 +34,24 @@
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
value: {
|
value: {
|
||||||
type: Boolean
|
type: Boolean,
|
||||||
},
|
},
|
||||||
okHandler: {
|
okHandler: {
|
||||||
type: Function
|
type: Function,
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
type: String
|
type: String,
|
||||||
},
|
},
|
||||||
enableFullScreen: {
|
enableFullScreen: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
visible: this.value,
|
visible: this.value,
|
||||||
confirmLoading: false,
|
confirmLoading: false,
|
||||||
innerFullscreen: false
|
innerFullscreen: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
@ -56,7 +66,7 @@ export default {
|
||||||
},
|
},
|
||||||
innerFullscreen(val) {
|
innerFullscreen(val) {
|
||||||
this.$emit('fullscreen', val)
|
this.$emit('fullscreen', val)
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async onSave() {
|
async onSave() {
|
||||||
|
@ -64,7 +74,7 @@ export default {
|
||||||
try {
|
try {
|
||||||
this.confirmLoading = true
|
this.confirmLoading = true
|
||||||
const success = await this.okHandler()
|
const success = await this.okHandler()
|
||||||
if(success !== false) {
|
if (success !== false) {
|
||||||
this.visible = false
|
this.visible = false
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -80,8 +90,8 @@ export default {
|
||||||
this.visible = false
|
this.visible = false
|
||||||
},
|
},
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.$emit("cancel")
|
this.$emit('cancel')
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
_attrs() {
|
_attrs() {
|
||||||
|
@ -96,8 +106,8 @@ export default {
|
||||||
// 是否有自定义的footer
|
// 是否有自定义的footer
|
||||||
hasCustomFooter() {
|
hasCustomFooter() {
|
||||||
return !!this.$slots['custom-footer']
|
return !!this.$slots['custom-footer']
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -18,3 +18,40 @@ export const transformPointListData = pointlist => {
|
||||||
}
|
}
|
||||||
return pointlist.map(({ x, y }) => [x, y])
|
return pointlist.map(({ x, y }) => [x, y])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查找最近的峰(C++相关)
|
||||||
|
export const findNearPeak = (channel, peakList) => {
|
||||||
|
let t_bFind = false, // 是否在峰内
|
||||||
|
i = 0,
|
||||||
|
peakNum = peakList.length
|
||||||
|
for (; i < peakNum; ++i) {
|
||||||
|
const peak = peakList[i]
|
||||||
|
if (channel >= peak.left && channel <= peak.right) {
|
||||||
|
// 如果 channel 在峰的左右边界内
|
||||||
|
if (peak.multiIndex > 0 && channel > peak.peakCentroid) {
|
||||||
|
// 如果是重峰,且 channel 在重峰的第一个峰的中心道右侧
|
||||||
|
let j = i
|
||||||
|
let temp = channel - peak.peakCentroid
|
||||||
|
while (++j < peakNum && peakList[j].multiIndex == peak.multiIndex) {
|
||||||
|
if (Math.abs(peakList[j].peakCentroid - channel) < temp) {
|
||||||
|
// 找出重峰中峰中心道离 channel 最近的峰
|
||||||
|
temp = Math.abs(peakList[j].peakCentroid - channel)
|
||||||
|
i = j
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// channel 在索引(i)对应的峰内
|
||||||
|
t_bFind = true
|
||||||
|
break
|
||||||
|
} else if (peak.left > channel) {
|
||||||
|
// channel 不在任何峰内,找离它最近的峰
|
||||||
|
if (i > 0 && channel - peakList[i - 1].peakCentroid < peak.peakCentroid - channel) i -= 1
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (i >= peakNum) i -= 1
|
||||||
|
return {
|
||||||
|
index: i,
|
||||||
|
find: t_bFind
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
16890
src/views/spectrumAnalysis/baseCtrlJson.json
Normal file
16890
src/views/spectrumAnalysis/baseCtrlJson.json
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -216,7 +216,7 @@ import Response from './Response.json'
|
||||||
import { updateBaseLine } from '@/utils/WasmHelper'
|
import { updateBaseLine } from '@/utils/WasmHelper'
|
||||||
import RectList from './components/RectList.vue'
|
import RectList from './components/RectList.vue'
|
||||||
import { isNullOrUndefined } from '@/utils/util'
|
import { isNullOrUndefined } from '@/utils/util'
|
||||||
import { getLineData, transformPointListData } from '@/utils/sampleHelper'
|
import { findNearPeak, getLineData, transformPointListData } from '@/utils/sampleHelper'
|
||||||
|
|
||||||
// 初始配置
|
// 初始配置
|
||||||
const initialOption = {
|
const initialOption = {
|
||||||
|
@ -433,6 +433,12 @@ export default {
|
||||||
EditSlopeModal,
|
EditSlopeModal,
|
||||||
RectList,
|
RectList,
|
||||||
},
|
},
|
||||||
|
props: {
|
||||||
|
colorConfig: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
this.columns = columns
|
this.columns = columns
|
||||||
return {
|
return {
|
||||||
|
@ -450,7 +456,6 @@ export default {
|
||||||
list: [],
|
list: [],
|
||||||
BaseCtrls: {},
|
BaseCtrls: {},
|
||||||
baseCtrls_Copy: {},
|
baseCtrls_Copy: {},
|
||||||
FitBaseLine: '#fff',
|
|
||||||
sampleId: -1,
|
sampleId: -1,
|
||||||
|
|
||||||
peakCommentModalVisible: false, // Comment 弹窗是否显示
|
peakCommentModalVisible: false, // Comment 弹窗是否显示
|
||||||
|
@ -502,7 +507,7 @@ export default {
|
||||||
|
|
||||||
const currSampleDetailInfo = await this.$store.dispatch('GET_SAMPLE_DATA', inputFileName)
|
const currSampleDetailInfo = await this.$store.dispatch('GET_SAMPLE_DATA', inputFileName)
|
||||||
const {
|
const {
|
||||||
data: { allData, shadowChannelChart, shapeChannelData, peak },
|
data: { allData, shadowChannelChart, shapeChannelData, peak, BaseCtrls },
|
||||||
} = currSampleDetailInfo
|
} = currSampleDetailInfo
|
||||||
|
|
||||||
const channelBaseLine = getLineData(allData, 'BaseLine', 'channel')
|
const channelBaseLine = getLineData(allData, 'BaseLine', 'channel')
|
||||||
|
@ -515,8 +520,7 @@ export default {
|
||||||
this.channelCountChart = shadowChannelChart
|
this.channelCountChart = shadowChannelChart
|
||||||
this.channelPeakChart = channelPeakGroup
|
this.channelPeakChart = channelPeakGroup
|
||||||
this.energy = allEnergy
|
this.energy = allEnergy
|
||||||
// this.BaseCtrls = BaseCtrls
|
this.BaseCtrls = BaseCtrls
|
||||||
// this.FitBaseLine = FitBaseLine
|
|
||||||
this.barChart = shadowChannelChart
|
this.barChart = shadowChannelChart
|
||||||
|
|
||||||
this.setChartOption(channelBaseLine, shadowChannelChart, channelPeakGroup, shapeChannelData, shadowChannelChart)
|
this.setChartOption(channelBaseLine, shadowChannelChart, channelPeakGroup, shapeChannelData, shadowChannelChart)
|
||||||
|
@ -566,36 +570,15 @@ export default {
|
||||||
const { offsetX, offsetY } = param
|
const { offsetX, offsetY } = param
|
||||||
const point = getXAxisAndYAxisByPosition(this.$refs.chartRef.getChartInstance(), offsetX, offsetY)
|
const point = getXAxisAndYAxisByPosition(this.$refs.chartRef.getChartInstance(), offsetX, offsetY)
|
||||||
if (point) {
|
if (point) {
|
||||||
const xAxis = parseInt(point[0].toFixed())
|
const xAxis = Math.round(point[0])
|
||||||
this.option.series[0].markLine.data[0].xAxis = xAxis
|
this.setMarkLineXAxis(xAxis)
|
||||||
|
|
||||||
this.currChannel = xAxis
|
this.currChannel = xAxis
|
||||||
|
const { index } = findNearPeak(xAxis, this.list)
|
||||||
// 获取每一段 Channel 中的最大值
|
|
||||||
const maxXAxises = this.getPeakMaxValues()
|
|
||||||
|
|
||||||
let index = 0
|
|
||||||
// 计算当前选中的xAxis跟哪条 peak的最大值 最近
|
|
||||||
if (xAxis >= maxXAxises[maxXAxises.length - 1]) {
|
|
||||||
index = maxXAxises.length - 1
|
|
||||||
} else if (xAxis <= maxXAxises[0]) {
|
|
||||||
index = 0
|
|
||||||
} else {
|
|
||||||
for (let i = 1; i < maxXAxises.length; i++) {
|
|
||||||
const prev = maxXAxises[i - 1]
|
|
||||||
const curr = maxXAxises[i]
|
|
||||||
|
|
||||||
if (xAxis >= prev && xAxis <= curr) {
|
|
||||||
index = xAxis - prev < curr - xAxis ? i - 1 : i
|
|
||||||
break
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.list.length) {
|
if (this.list.length) {
|
||||||
const selectedRow = this.list[index]
|
const selectedRow = this.list[index]
|
||||||
this.selectedKeys = [selectedRow.index]
|
this.selectTableRow(selectedRow.index)
|
||||||
this.getSelPosNuclide(selectedRow)
|
this.getSelPosNuclide(selectedRow)
|
||||||
this.selectedTableItem = selectedRow
|
this.selectedTableItem = selectedRow
|
||||||
}
|
}
|
||||||
|
@ -645,34 +628,43 @@ export default {
|
||||||
|
|
||||||
// 切换图表上的红色竖线及表格选中
|
// 切换图表上的红色竖线及表格选中
|
||||||
handleChangeMarkLine(direction) {
|
handleChangeMarkLine(direction) {
|
||||||
const markLineOption = this.option.series[0].markLine.data[0]
|
const prevAxis = this.getMarkLineXAxis()
|
||||||
const prevAxis = markLineOption.xAxis
|
let i,
|
||||||
|
size = this.list.length
|
||||||
// 获取每一段 Channel 中的最大值
|
|
||||||
const maxXAxises = this.getPeakMaxValues()
|
|
||||||
if (direction == 'next') {
|
if (direction == 'next') {
|
||||||
// 找到第一个比prevAxis大的xAxis
|
for (i = 0; i < size; i++) {
|
||||||
const find = maxXAxises.find((xAxis) => xAxis > prevAxis)
|
const centroid = Math.round(this.list[i].peakCentroid)
|
||||||
if (find) {
|
if (centroid > prevAxis) {
|
||||||
markLineOption.xAxis = find
|
this.setMarkLineXAxis(centroid)
|
||||||
|
const selectedRow = this.list[i]
|
||||||
|
this.selectedTableItem = selectedRow
|
||||||
|
this.selectTableRow(selectedRow.index)
|
||||||
|
this.getSelPosNuclide(selectedRow)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (direction == 'prev') {
|
} else if (direction == 'prev') {
|
||||||
// 找到第一个比prevAxis小的xAxis
|
for (i = size - 1; i >= 0; i--) {
|
||||||
const find = cloneDeep(maxXAxises)
|
if (Math.round(this.list[i].peakCentroid) < prevAxis) {
|
||||||
.reverse()
|
this.setMarkLineXAxis(Math.round(this.list[i].peakCentroid))
|
||||||
.find((xAxis) => xAxis < prevAxis)
|
const selectedRow = this.list[i]
|
||||||
if (find) {
|
this.selectedTableItem = selectedRow
|
||||||
markLineOption.xAxis = find
|
this.selectTableRow(selectedRow.index)
|
||||||
|
this.getSelPosNuclide(selectedRow)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
const xAxis = markLineOption.xAxis
|
selectTableRow(key) {
|
||||||
if (xAxis >= 0) {
|
this.selectedKeys = [key]
|
||||||
const index = maxXAxises.findIndex((item) => item == xAxis)
|
},
|
||||||
if (index !== -1) {
|
|
||||||
this.selectedKeys = [this.list[index].index]
|
// 设置红色标记线的位置
|
||||||
}
|
setMarkLineXAxis(xAxis) {
|
||||||
}
|
const markLineOption = this.option.series[0].markLine.data[0]
|
||||||
|
markLineOption.xAxis = xAxis
|
||||||
|
|
||||||
const { xAxis: chartXAxisOption } = this.option
|
const { xAxis: chartXAxisOption } = this.option
|
||||||
const { max, min } = chartXAxisOption
|
const { max, min } = chartXAxisOption
|
||||||
|
@ -688,6 +680,11 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getMarkLineXAxis() {
|
||||||
|
const markLineOption = this.option.series[0].markLine.data[0]
|
||||||
|
return markLineOption.xAxis
|
||||||
|
},
|
||||||
|
|
||||||
// 获取右下角possible nuclide 和 identified nuclide
|
// 获取右下角possible nuclide 和 identified nuclide
|
||||||
async getSelPosNuclide(row) {
|
async getSelPosNuclide(row) {
|
||||||
this.model.possibleNuclide = ''
|
this.model.possibleNuclide = ''
|
||||||
|
@ -699,7 +696,7 @@ export default {
|
||||||
const { sampleId, inputFileName: fileName } = this.sampleData
|
const { sampleId, inputFileName: fileName } = this.sampleData
|
||||||
const { success, result, message } = await getAction('/gamma/getSelPosNuclide', {
|
const { success, result, message } = await getAction('/gamma/getSelPosNuclide', {
|
||||||
sampleId,
|
sampleId,
|
||||||
channel: parseInt(row.peakCentroid),
|
channel: Math.round(row.peakCentroid),
|
||||||
fileName,
|
fileName,
|
||||||
})
|
})
|
||||||
if (success) {
|
if (success) {
|
||||||
|
@ -776,6 +773,7 @@ export default {
|
||||||
shadowEnergyChart,
|
shadowEnergyChart,
|
||||||
shapeChannelData,
|
shapeChannelData,
|
||||||
shapeEnergyData,
|
shapeEnergyData,
|
||||||
|
peak: table,
|
||||||
})
|
})
|
||||||
|
|
||||||
this.channelPeakChart = channelPeakChart
|
this.channelPeakChart = channelPeakChart
|
||||||
|
@ -864,6 +862,7 @@ export default {
|
||||||
shadowEnergyChart,
|
shadowEnergyChart,
|
||||||
shapeChannelData,
|
shapeChannelData,
|
||||||
shapeEnergyData,
|
shapeEnergyData,
|
||||||
|
peak: table,
|
||||||
})
|
})
|
||||||
|
|
||||||
this.channelPeakChart = channelPeakChart
|
this.channelPeakChart = channelPeakChart
|
||||||
|
@ -881,7 +880,10 @@ export default {
|
||||||
series.push(this.buildCtrlPoint(this.channelBaseCPChart))
|
series.push(this.buildCtrlPoint(this.channelBaseCPChart))
|
||||||
|
|
||||||
this.list = table
|
this.list = table
|
||||||
|
|
||||||
|
this.opts.notMerge = true
|
||||||
this.option.series = series
|
this.option.series = series
|
||||||
|
this.resetChartOpts()
|
||||||
|
|
||||||
this.selectedKeys = []
|
this.selectedKeys = []
|
||||||
} else {
|
} else {
|
||||||
|
@ -917,7 +919,7 @@ export default {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const channel = row.peakCentroid
|
const channel = Math.round(row.peakCentroid)
|
||||||
this.currChannel = channel
|
this.currChannel = channel
|
||||||
|
|
||||||
this.option.series[0].markLine.data[0].xAxis = channel
|
this.option.series[0].markLine.data[0].xAxis = channel
|
||||||
|
@ -1041,7 +1043,7 @@ export default {
|
||||||
const baseLineEditSeries = buildLineSeries(
|
const baseLineEditSeries = buildLineSeries(
|
||||||
'BaseLine_Edit',
|
'BaseLine_Edit',
|
||||||
this.baseCtrls_Copy.baseline.map((val, index) => [index + 1, val]),
|
this.baseCtrls_Copy.baseline.map((val, index) => [index + 1, val]),
|
||||||
this.FitBaseLine,
|
this.colorConfig.Color_Fitbase || '#fff',
|
||||||
{
|
{
|
||||||
zlevel: 21,
|
zlevel: 21,
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,13 @@ const columns = [
|
||||||
title: 'Value',
|
title: 'Value',
|
||||||
dataIndex: 'value',
|
dataIndex: 'value',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
customRender: (text) => {
|
||||||
|
if (text !== 'Match' && text !== 'UnMatch') {
|
||||||
|
return parseFloat(Number(text).toPrecision(6))
|
||||||
|
} else {
|
||||||
|
return text
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Status',
|
title: 'Status',
|
||||||
|
|
|
@ -24,53 +24,59 @@ const configList = [
|
||||||
{
|
{
|
||||||
title: 'Spectrum Line',
|
title: 'Spectrum Line',
|
||||||
key: 'Color_Spec',
|
key: 'Color_Spec',
|
||||||
desc: 'Color of the original spectrum line'
|
desc: 'Color of the original spectrum line',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Baseline',
|
title: 'Baseline',
|
||||||
key: 'Color_Base',
|
key: 'Color_Base',
|
||||||
desc: 'Color of baseline'
|
desc: 'Color of baseline',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Lc Line',
|
title: 'Lc Line',
|
||||||
key: 'Color_Lc',
|
key: 'Color_Lc',
|
||||||
desc: 'Color of lc line'
|
desc: 'Color of lc line',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Scac Line',
|
title: 'Scac Line',
|
||||||
key: 'Color_Scac',
|
key: 'Color_Scac',
|
||||||
desc: 'Color of scac line'
|
desc: 'Color of scac line',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Peak Line',
|
title: 'Peak Line',
|
||||||
key: 'Color_Peak',
|
key: 'Color_Peak',
|
||||||
desc: "Color of all peaks' curve"
|
desc: "Color of all peaks' curve",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Compare Line',
|
title: 'Compare Line',
|
||||||
key: 'Color_Compare',
|
key: 'Color_Compare',
|
||||||
desc: 'Color of another spectrum line which is used to compare with current spectrum'
|
desc: 'Color of another spectrum line which is used to compare with current spectrum',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Spec Sum Line',
|
title: 'Spec Sum Line',
|
||||||
key: 'Color_Strip',
|
key: 'Color_Strip',
|
||||||
desc: 'Color of the line which is the sum of current spectrum and other spectrum Multiplied by a ratio'
|
desc: 'Color of the line which is the sum of current spectrum and other spectrum Multiplied by a ratio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Spec Cut Line',
|
title: 'Spec Cut Line',
|
||||||
key: 'spectCutLine',
|
key: 'spectCutLine',
|
||||||
desc: 'Color of the line which is the difference of current spectrum and other spectrum Multiplied by a ratio'
|
desc: 'Color of the line which is the difference of current spectrum and other spectrum Multiplied by a ratio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'FitBase Line',
|
title: 'FitBase Line',
|
||||||
key: 'Color_Fitbase',
|
key: 'Color_Fitbase',
|
||||||
desc: 'Color of the base line in edit state'
|
desc: 'Color of the base line in edit state',
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
export default {
|
export default {
|
||||||
mixins: [ModalMixin],
|
mixins: [ModalMixin],
|
||||||
components: {
|
components: {
|
||||||
ColorPicker
|
ColorPicker,
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
colorConfig: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
this.configList = configList
|
this.configList = configList
|
||||||
|
@ -84,8 +90,8 @@ export default {
|
||||||
Color_Compare: 'green', // Sample -> Compare下的颜色
|
Color_Compare: 'green', // Sample -> Compare下的颜色
|
||||||
Color_Strip: 'rgb(0, 0, 255)', // Sample -> Compare下的颜色
|
Color_Strip: 'rgb(0, 0, 255)', // Sample -> Compare下的颜色
|
||||||
spectCutLine: 'rgb(33, 90, 104)', // 无作用
|
spectCutLine: 'rgb(33, 90, 104)', // 无作用
|
||||||
Color_Fitbase: 'white' // Interactive Tool 弹窗中,进入BaseLine编辑模式时的基线副本的颜色
|
Color_Fitbase: 'white', // Interactive Tool 弹窗中,进入BaseLine编辑模式时的基线副本的颜色
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -93,40 +99,16 @@ export default {
|
||||||
return color
|
return color
|
||||||
},
|
},
|
||||||
|
|
||||||
async getData() {
|
beforeModalOpen() {
|
||||||
try {
|
Object.entries(this.colorConfig).forEach(([k, v]) => {
|
||||||
this.isLoading = true
|
|
||||||
const { success, result, message } = await getAction('/gamma/viewColorConfig')
|
|
||||||
if (success) {
|
|
||||||
Object.entries(result).forEach(([k, v]) => {
|
|
||||||
this.config[k] = v
|
this.config[k] = v
|
||||||
})
|
})
|
||||||
} else {
|
|
||||||
this.$message.error(message)
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error)
|
|
||||||
} finally {
|
|
||||||
this.isLoading = false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
beforeModalOpen() {
|
|
||||||
this.getData()
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// 应用颜色
|
// 应用颜色
|
||||||
async handleApply() {
|
async handleApply() {
|
||||||
const {
|
const { Color_Spec, Color_Peak, Color_Lc, Color_Base, Color_Scac, Color_Compare, Color_Strip, Color_Fitbase } =
|
||||||
Color_Spec,
|
this.config
|
||||||
Color_Peak,
|
|
||||||
Color_Lc,
|
|
||||||
Color_Base,
|
|
||||||
Color_Scac,
|
|
||||||
Color_Compare,
|
|
||||||
Color_Strip,
|
|
||||||
Color_Fitbase
|
|
||||||
} = this.config
|
|
||||||
const { success, message } = await putAction('/gamma/updateColorConfig', {
|
const { success, message } = await putAction('/gamma/updateColorConfig', {
|
||||||
colorSpec: Color_Spec,
|
colorSpec: Color_Spec,
|
||||||
colorPeak: Color_Peak,
|
colorPeak: Color_Peak,
|
||||||
|
@ -135,22 +117,16 @@ export default {
|
||||||
colorScac: Color_Scac,
|
colorScac: Color_Scac,
|
||||||
colorCompare: Color_Compare,
|
colorCompare: Color_Compare,
|
||||||
colorFitbase: Color_Fitbase,
|
colorFitbase: Color_Fitbase,
|
||||||
colorStrip: Color_Strip
|
colorStrip: Color_Strip,
|
||||||
})
|
})
|
||||||
if (success) {
|
if (success) {
|
||||||
this.$bus.$emit(
|
this.$emit('colorChange', this.config)
|
||||||
'colorChange',
|
|
||||||
Object.entries(this.config).reduce((prev, [key, value]) => {
|
|
||||||
prev[key] = value
|
|
||||||
return prev
|
|
||||||
}, {})
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(message)
|
this.$message.error(message)
|
||||||
throw new Error(message)
|
throw new Error(message)
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -12,13 +12,13 @@
|
||||||
style: {
|
style: {
|
||||||
width: '70px',
|
width: '70px',
|
||||||
textAlign: 'left',
|
textAlign: 'left',
|
||||||
flexShrink: 0
|
flexShrink: 0,
|
||||||
}
|
},
|
||||||
}"
|
}"
|
||||||
:wrapperCol="{
|
:wrapperCol="{
|
||||||
style: {
|
style: {
|
||||||
flex: 1
|
flex: 1,
|
||||||
}
|
},
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<a-form-model-item label="Energy">
|
<a-form-model-item label="Energy">
|
||||||
|
@ -54,13 +54,7 @@
|
||||||
<div>
|
<div>
|
||||||
<label>
|
<label>
|
||||||
<a-button type="primary" :loading="isCalling" @click="handleCall">Call</a-button>
|
<a-button type="primary" :loading="isCalling" @click="handleCall">Call</a-button>
|
||||||
<input
|
<input ref="fileInput" type="file" accept=".ent" style="display: none" @change="handleFileChange" />
|
||||||
ref="fileInput"
|
|
||||||
type="file"
|
|
||||||
accept=".ent"
|
|
||||||
style="display: none;"
|
|
||||||
@change="handleFileChange"
|
|
||||||
/>
|
|
||||||
</label>
|
</label>
|
||||||
<a-button type="primary" :loading="isSaving" @click="handleSave">Save</a-button>
|
<a-button type="primary" :loading="isSaving" @click="handleSave">Save</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -126,23 +120,23 @@ const columns = [
|
||||||
{
|
{
|
||||||
title: 'Energy(keV)',
|
title: 'Energy(keV)',
|
||||||
dataIndex: 'energy',
|
dataIndex: 'energy',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Efficiency',
|
title: 'Efficiency',
|
||||||
dataIndex: 'efficiency',
|
dataIndex: 'efficiency',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Fit(keV)',
|
title: 'Fit(keV)',
|
||||||
dataIndex: 'fit',
|
dataIndex: 'fit',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Delta(%)',
|
title: 'Delta(%)',
|
||||||
dataIndex: 'delta',
|
dataIndex: 'delta',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const initialOption = {
|
const initialOption = {
|
||||||
|
@ -150,99 +144,99 @@ const initialOption = {
|
||||||
top: 20,
|
top: 20,
|
||||||
right: 20,
|
right: 20,
|
||||||
bottom: 50,
|
bottom: 50,
|
||||||
left: 70
|
left: 70,
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
text: 'Channel',
|
text: 'Channel',
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: '#8FD4F8',
|
color: '#8FD4F8',
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
fontWeight: 'normal'
|
fontWeight: 'normal',
|
||||||
},
|
},
|
||||||
right: 10,
|
right: 10,
|
||||||
bottom: 0
|
bottom: 0,
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis',
|
trigger: 'axis',
|
||||||
formatter: params => {
|
formatter: (params) => {
|
||||||
const [x, y] = params[0].value
|
const [x, y] = params[0].value
|
||||||
const energy = parseInt(x)
|
const energy = parseInt(x)
|
||||||
const efficiency = y.toFixed(3)
|
const efficiency = y.toFixed(3)
|
||||||
return `<div class="channel">Energy: ${energy}</div>
|
return `<div class="channel">Energy: ${energy}</div>
|
||||||
<div class="energy">Efficiency: ${efficiency}</div>`
|
<div class="energy">Efficiency: ${efficiency}</div>`
|
||||||
},
|
},
|
||||||
className: 'figure-chart-option-tooltip'
|
className: 'figure-chart-option-tooltip',
|
||||||
},
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
min: 1,
|
min: 1,
|
||||||
max: 'dataMax',
|
max: 'dataMax',
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
},
|
},
|
||||||
axisLine: {
|
axisLine: {
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
splitLine: {
|
splitLine: {
|
||||||
show: false
|
show: false,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
},
|
},
|
||||||
axisTick: {
|
axisTick: {
|
||||||
show: false
|
show: false,
|
||||||
},
|
},
|
||||||
axisLine: {
|
axisLine: {
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
splitLine: {
|
splitLine: {
|
||||||
show: false
|
show: false,
|
||||||
},
|
},
|
||||||
name: 'keV',
|
name: 'keV',
|
||||||
nameLocation: 'center',
|
nameLocation: 'center',
|
||||||
nameGap: 50,
|
nameGap: 50,
|
||||||
nameTextStyle: {
|
nameTextStyle: {
|
||||||
color: '#8FD4F8',
|
color: '#8FD4F8',
|
||||||
fontSize: 14
|
fontSize: 14,
|
||||||
}
|
|
||||||
},
|
},
|
||||||
series: []
|
},
|
||||||
|
series: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
const functions = [
|
const functions = [
|
||||||
{
|
{
|
||||||
label: 'Interpolation',
|
label: 'Interpolation',
|
||||||
value: 1
|
value: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'HT Efficiency',
|
label: 'HT Efficiency',
|
||||||
value: 5
|
value: 5,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Log Polynomial',
|
label: 'Log Polynomial',
|
||||||
value: 6
|
value: 6,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Invlog Polynomial',
|
label: 'Invlog Polynomial',
|
||||||
value: 8
|
value: 8,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'HAE Efficiency(1-3)',
|
label: 'HAE Efficiency(1-3)',
|
||||||
value: 93
|
value: 93,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'HAE Efficiency(1-2)',
|
label: 'HAE Efficiency(1-2)',
|
||||||
value: 94
|
value: 94,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'HAE Efficiency(1-2-3)',
|
label: 'HAE Efficiency(1-2-3)',
|
||||||
value: 95
|
value: 95,
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -266,11 +260,11 @@ export default {
|
||||||
currSelectedDataSource: '',
|
currSelectedDataSource: '',
|
||||||
appliedDataSource: '',
|
appliedDataSource: '',
|
||||||
opts: {
|
opts: {
|
||||||
notMerge: true
|
notMerge: true,
|
||||||
},
|
},
|
||||||
ECutAnalysis_Low: -1,
|
ECutAnalysis_Low: -1,
|
||||||
G_energy_span: -1,
|
G_energy_span: -1,
|
||||||
funcId: 1
|
funcId: 1,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -282,7 +276,7 @@ export default {
|
||||||
sampleId,
|
sampleId,
|
||||||
fileName,
|
fileName,
|
||||||
currentText,
|
currentText,
|
||||||
width: 922
|
width: 922,
|
||||||
})
|
})
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
if (success) {
|
if (success) {
|
||||||
|
@ -332,15 +326,15 @@ export default {
|
||||||
value: [x, y],
|
value: [x, y],
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: scatterPoint.color,
|
color: scatterPoint.color,
|
||||||
borderWidth: 0
|
borderWidth: 0,
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
emphasis: {
|
emphasis: {
|
||||||
disabled: true
|
disabled: true,
|
||||||
},
|
},
|
||||||
animation: false,
|
animation: false,
|
||||||
zlevel: 20
|
zlevel: 20,
|
||||||
})
|
})
|
||||||
this.option.series = series
|
this.option.series = series
|
||||||
}
|
}
|
||||||
|
@ -390,7 +384,7 @@ export default {
|
||||||
|
|
||||||
this.list.splice(i, 0, {
|
this.list.splice(i, 0, {
|
||||||
energy: energy,
|
energy: energy,
|
||||||
efficiency
|
efficiency,
|
||||||
})
|
})
|
||||||
|
|
||||||
this.uncert.splice(i, 0, 0.5)
|
this.uncert.splice(i, 0, 0.5)
|
||||||
|
@ -463,12 +457,12 @@ export default {
|
||||||
const { success, result, message } = await postAction('/gamma/changeDataEfficiency', {
|
const { success, result, message } = await postAction('/gamma/changeDataEfficiency', {
|
||||||
sampleId,
|
sampleId,
|
||||||
fileName,
|
fileName,
|
||||||
m_vCurEnergy: this.list.map(item => item.energy),
|
m_vCurEnergy: this.list.map((item) => item.energy),
|
||||||
m_vCurEffi: this.list.map(item => item.efficiency),
|
m_vCurEffi: this.list.map((item) => item.efficiency),
|
||||||
m_vCurUncert: this.uncert,
|
m_vCurUncert: this.uncert,
|
||||||
m_curParam: this.param,
|
m_curParam: this.param,
|
||||||
funcId: this.funcId,
|
funcId: this.funcId,
|
||||||
width: 922
|
width: 922,
|
||||||
})
|
})
|
||||||
if (success) {
|
if (success) {
|
||||||
this.handleResult(result)
|
this.handleResult(result)
|
||||||
|
@ -487,10 +481,10 @@ export default {
|
||||||
try {
|
try {
|
||||||
this.isSaving = true
|
this.isSaving = true
|
||||||
const res = await postAction('/gamma/saveDataEfficiency', {
|
const res = await postAction('/gamma/saveDataEfficiency', {
|
||||||
m_vCurEnergy: this.list.map(item => item.energy),
|
m_vCurEnergy: this.list.map((item) => item.energy),
|
||||||
m_vCurEffi: this.list.map(item => item.efficiency),
|
m_vCurEffi: this.list.map((item) => item.efficiency),
|
||||||
m_vCurUncert: this.uncert,
|
m_vCurUncert: this.uncert,
|
||||||
funcId: this.funcId
|
funcId: this.funcId,
|
||||||
})
|
})
|
||||||
if (typeof res == 'string') {
|
if (typeof res == 'string') {
|
||||||
const blob = new Blob([res], { type: 'text/plain' })
|
const blob = new Blob([res], { type: 'text/plain' })
|
||||||
|
@ -548,18 +542,18 @@ export default {
|
||||||
let curCalName = this.currSelectedDataSource
|
let curCalName = this.currSelectedDataSource
|
||||||
// 如果沒选中以Input开头的,也就是选中了PHD之类的
|
// 如果沒选中以Input开头的,也就是选中了PHD之类的
|
||||||
if (!curCalName.includes('Input')) {
|
if (!curCalName.includes('Input')) {
|
||||||
curCalName = `Input ${this.dataSourceList.filter(item => item.includes('Input')).length + 1}`
|
curCalName = `Input ${this.dataSourceList.filter((item) => item.includes('Input')).length + 1}`
|
||||||
}
|
}
|
||||||
|
|
||||||
const { sampleId, inputFileName: fileName } = this.sampleData
|
const { sampleId, inputFileName: fileName } = this.sampleData
|
||||||
const { success, result, message } = await postAction('/gamma/applyDataEfficiency', {
|
const { success, result, message } = await postAction('/gamma/applyDataEfficiency', {
|
||||||
m_vCurEnergy: this.list.map(item => item.energy),
|
m_vCurEnergy: this.list.map((item) => item.energy),
|
||||||
m_vCurEffi: this.list.map(item => item.efficiency),
|
m_vCurEffi: this.list.map((item) => item.efficiency),
|
||||||
m_vCurUncert: this.uncert,
|
m_vCurUncert: this.uncert,
|
||||||
m_curParam: this.param,
|
m_curParam: this.param,
|
||||||
curCalName,
|
curCalName,
|
||||||
sampleId,
|
sampleId,
|
||||||
fileName
|
fileName,
|
||||||
})
|
})
|
||||||
if (success) {
|
if (success) {
|
||||||
this.handleDataSourceClick(curCalName)
|
this.handleDataSourceClick(curCalName)
|
||||||
|
@ -591,8 +585,8 @@ export default {
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -12,13 +12,13 @@
|
||||||
style: {
|
style: {
|
||||||
width: '70px',
|
width: '70px',
|
||||||
textAlign: 'left',
|
textAlign: 'left',
|
||||||
flexShrink: 0
|
flexShrink: 0,
|
||||||
}
|
},
|
||||||
}"
|
}"
|
||||||
:wrapperCol="{
|
:wrapperCol="{
|
||||||
style: {
|
style: {
|
||||||
flex: 1
|
flex: 1,
|
||||||
}
|
},
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<a-form-model-item label="Channel">
|
<a-form-model-item label="Channel">
|
||||||
|
@ -54,13 +54,7 @@
|
||||||
<div>
|
<div>
|
||||||
<label>
|
<label>
|
||||||
<a-button type="primary" :loading="isCalling" @click="handleCall">Call</a-button>
|
<a-button type="primary" :loading="isCalling" @click="handleCall">Call</a-button>
|
||||||
<input
|
<input ref="fileInput" type="file" accept=".ent" style="display: none" @change="handleFileChange" />
|
||||||
ref="fileInput"
|
|
||||||
type="file"
|
|
||||||
accept=".ent"
|
|
||||||
style="display: none;"
|
|
||||||
@change="handleFileChange"
|
|
||||||
/>
|
|
||||||
</label>
|
</label>
|
||||||
<a-button type="primary" :loading="isSaving" @click="handleSave">Save</a-button>
|
<a-button type="primary" :loading="isSaving" @click="handleSave">Save</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -121,23 +115,23 @@ const columns = [
|
||||||
{
|
{
|
||||||
title: 'Channel',
|
title: 'Channel',
|
||||||
dataIndex: 'channel',
|
dataIndex: 'channel',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Energy(keV)',
|
title: 'Energy(keV)',
|
||||||
dataIndex: 'energy',
|
dataIndex: 'energy',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Fit(keV)',
|
title: 'Fit(keV)',
|
||||||
dataIndex: 'fit',
|
dataIndex: 'fit',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Delta(%)',
|
title: 'Delta(%)',
|
||||||
dataIndex: 'delta',
|
dataIndex: 'delta',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const initialOption = {
|
const initialOption = {
|
||||||
|
@ -145,68 +139,68 @@ const initialOption = {
|
||||||
top: 20,
|
top: 20,
|
||||||
right: 20,
|
right: 20,
|
||||||
bottom: 50,
|
bottom: 50,
|
||||||
left: 70
|
left: 70,
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
text: 'Channel',
|
text: 'Channel',
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: '#8FD4F8',
|
color: '#8FD4F8',
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
fontWeight: 'normal'
|
fontWeight: 'normal',
|
||||||
},
|
},
|
||||||
right: 10,
|
right: 10,
|
||||||
bottom: 0
|
bottom: 0,
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis',
|
trigger: 'axis',
|
||||||
formatter: params => {
|
formatter: (params) => {
|
||||||
const [x, y] = params[0].value
|
const [x, y] = params[0].value
|
||||||
const channel = parseInt(x)
|
const channel = parseInt(x)
|
||||||
const energy = y.toFixed(3)
|
const energy = y.toFixed(3)
|
||||||
return `<div class="channel">Channel: ${channel}</div>
|
return `<div class="channel">Channel: ${channel}</div>
|
||||||
<div class="energy">Energy: ${energy}</div>`
|
<div class="energy">Energy: ${energy}</div>`
|
||||||
},
|
},
|
||||||
className: 'figure-chart-option-tooltip'
|
className: 'figure-chart-option-tooltip',
|
||||||
},
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
min: 1,
|
min: 1,
|
||||||
max: 'dataMax',
|
max: 'dataMax',
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
},
|
},
|
||||||
axisLine: {
|
axisLine: {
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
splitLine: {
|
splitLine: {
|
||||||
show: false
|
show: false,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
},
|
},
|
||||||
axisTick: {
|
axisTick: {
|
||||||
show: false
|
show: false,
|
||||||
},
|
},
|
||||||
axisLine: {
|
axisLine: {
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
splitLine: {
|
splitLine: {
|
||||||
show: false
|
show: false,
|
||||||
},
|
},
|
||||||
name: 'keV',
|
name: 'keV',
|
||||||
nameLocation: 'center',
|
nameLocation: 'center',
|
||||||
nameGap: 50,
|
nameGap: 50,
|
||||||
nameTextStyle: {
|
nameTextStyle: {
|
||||||
color: '#8FD4F8',
|
color: '#8FD4F8',
|
||||||
fontSize: 14
|
fontSize: 14,
|
||||||
}
|
|
||||||
},
|
},
|
||||||
series: []
|
},
|
||||||
|
series: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -228,11 +222,11 @@ export default {
|
||||||
currSelectedDataSource: '',
|
currSelectedDataSource: '',
|
||||||
appliedDataSource: '',
|
appliedDataSource: '',
|
||||||
opts: {
|
opts: {
|
||||||
notMerge: true
|
notMerge: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
rg_high: -1,
|
rg_high: -1,
|
||||||
rg_low: -1
|
rg_low: -1,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -244,7 +238,7 @@ export default {
|
||||||
sampleId,
|
sampleId,
|
||||||
fileName,
|
fileName,
|
||||||
currentText,
|
currentText,
|
||||||
width: 922
|
width: 922,
|
||||||
})
|
})
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
if (success) {
|
if (success) {
|
||||||
|
@ -294,15 +288,15 @@ export default {
|
||||||
value: [x, y],
|
value: [x, y],
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: scatterPoint.color,
|
color: scatterPoint.color,
|
||||||
borderWidth: 0
|
borderWidth: 0,
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
emphasis: {
|
emphasis: {
|
||||||
disabled: true
|
disabled: true,
|
||||||
},
|
},
|
||||||
animation: false,
|
animation: false,
|
||||||
zlevel: 20
|
zlevel: 20,
|
||||||
})
|
})
|
||||||
this.option.series = series
|
this.option.series = series
|
||||||
}
|
}
|
||||||
|
@ -351,7 +345,7 @@ export default {
|
||||||
|
|
||||||
this.list.splice(i, 0, {
|
this.list.splice(i, 0, {
|
||||||
channel: centroid,
|
channel: centroid,
|
||||||
energy
|
energy,
|
||||||
})
|
})
|
||||||
|
|
||||||
this.uncert.splice(i, 0, 0.5)
|
this.uncert.splice(i, 0, 0.5)
|
||||||
|
@ -424,11 +418,11 @@ export default {
|
||||||
const { success, result, message } = await postAction('/gamma/changeDataEnergy', {
|
const { success, result, message } = await postAction('/gamma/changeDataEnergy', {
|
||||||
sampleId,
|
sampleId,
|
||||||
fileName,
|
fileName,
|
||||||
m_vCurCentroid: this.list.map(item => item.channel),
|
m_vCurCentroid: this.list.map((item) => item.channel),
|
||||||
m_vCurEnergy: this.list.map(item => item.energy),
|
m_vCurEnergy: this.list.map((item) => item.energy),
|
||||||
m_vCurUncert: this.uncert,
|
m_vCurUncert: this.uncert,
|
||||||
m_curParam: this.param,
|
m_curParam: this.param,
|
||||||
width: 922
|
width: 922,
|
||||||
})
|
})
|
||||||
if (success) {
|
if (success) {
|
||||||
this.handleResult(result)
|
this.handleResult(result)
|
||||||
|
@ -447,9 +441,9 @@ export default {
|
||||||
try {
|
try {
|
||||||
this.isSaving = true
|
this.isSaving = true
|
||||||
const res = await postAction('/gamma/saveDataEnergy', {
|
const res = await postAction('/gamma/saveDataEnergy', {
|
||||||
m_vCurCentroid: this.list.map(item => item.channel),
|
m_vCurCentroid: this.list.map((item) => item.channel),
|
||||||
m_vCurEnergy: this.list.map(item => item.energy),
|
m_vCurEnergy: this.list.map((item) => item.energy),
|
||||||
m_vCurUncert: this.uncert
|
m_vCurUncert: this.uncert,
|
||||||
})
|
})
|
||||||
if (typeof res == 'string') {
|
if (typeof res == 'string') {
|
||||||
const blob = new Blob([res], { type: 'text/plain' })
|
const blob = new Blob([res], { type: 'text/plain' })
|
||||||
|
@ -507,18 +501,18 @@ export default {
|
||||||
let curCalName = this.currSelectedDataSource
|
let curCalName = this.currSelectedDataSource
|
||||||
// 如果沒选中以Input开头的,也就是选中了PHD之类的
|
// 如果沒选中以Input开头的,也就是选中了PHD之类的
|
||||||
if (!curCalName.includes('Input')) {
|
if (!curCalName.includes('Input')) {
|
||||||
curCalName = `Input ${this.dataSourceList.filter(item => item.includes('Input')).length + 1}`
|
curCalName = `Input ${this.dataSourceList.filter((item) => item.includes('Input')).length + 1}`
|
||||||
}
|
}
|
||||||
|
|
||||||
const { sampleId, inputFileName: fileName } = this.sampleData
|
const { sampleId, inputFileName: fileName } = this.sampleData
|
||||||
const { success, result, message } = await postAction('/gamma/applyDataEnergy', {
|
const { success, result, message } = await postAction('/gamma/applyDataEnergy', {
|
||||||
m_vCurCentroid: this.list.map(item => item.channel),
|
m_vCurCentroid: this.list.map((item) => item.channel),
|
||||||
m_vCurEnergy: this.list.map(item => item.energy),
|
m_vCurEnergy: this.list.map((item) => item.energy),
|
||||||
m_vCurUncert: this.uncert,
|
m_vCurUncert: this.uncert,
|
||||||
m_curParam: this.param,
|
m_curParam: this.param,
|
||||||
curCalName,
|
curCalName,
|
||||||
sampleId,
|
sampleId,
|
||||||
fileName
|
fileName,
|
||||||
})
|
})
|
||||||
if (success) {
|
if (success) {
|
||||||
this.handleDataSourceClick(curCalName)
|
this.handleDataSourceClick(curCalName)
|
||||||
|
@ -550,8 +544,8 @@ export default {
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -138,7 +138,7 @@
|
||||||
</template>
|
</template>
|
||||||
<!-- 底部按钮结束 -->
|
<!-- 底部按钮结束 -->
|
||||||
</custom-modal>
|
</custom-modal>
|
||||||
<a-modal v-model="visible_file" :width="1200" title="File List" @cancel="cancelFileModale">
|
<a-modal v-model="visible_file" :width="1200" title="File List" :maskClosable="false" @cancel="cancelFileModale">
|
||||||
<a-spin :spinning="loading_file">
|
<a-spin :spinning="loading_file">
|
||||||
<div style="position: relative; padding-bottom: 40px; height: 460px; overflow: hidden">
|
<div style="position: relative; padding-bottom: 40px; height: 460px; overflow: hidden">
|
||||||
<a-row type="flex" style="margin-bottom: 15px">
|
<a-row type="flex" style="margin-bottom: 15px">
|
||||||
|
@ -445,7 +445,9 @@ export default {
|
||||||
})
|
})
|
||||||
|
|
||||||
if (findFile) {
|
if (findFile) {
|
||||||
const regExp = new RegExp(`(${otherFilePrefix}${fileType}_${qualify}_\\d{1,}\\.{0,}\\d{0,}).*?(\\.PHD)`)
|
const regExp = new RegExp(
|
||||||
|
`(${otherFilePrefix}${fileType}_${qualify}_\\d{1,}\\.{0,}\\d{0,}).*?(\\.PHD)`
|
||||||
|
)
|
||||||
record[nameKeys[index]] = {
|
record[nameKeys[index]] = {
|
||||||
file: findFile,
|
file: findFile,
|
||||||
fileName: findFile.name.replace(regExp, '$1$2'),
|
fileName: findFile.name.replace(regExp, '$1$2'),
|
||||||
|
|
|
@ -64,53 +64,56 @@ const columns = [
|
||||||
title: 'Energy (keV)',
|
title: 'Energy (keV)',
|
||||||
dataIndex: 'energy',
|
dataIndex: 'energy',
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return text && text !== 'null' ? Number(text).toPrecision(6) : text
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Yield (%)',
|
title: 'Yield (%)',
|
||||||
dataIndex: 'yield',
|
dataIndex: 'yield',
|
||||||
|
customRender: (text) => {
|
||||||
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Efficiency',
|
title: 'Efficiency',
|
||||||
dataIndex: 'efficiency',
|
dataIndex: 'efficiency',
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return text && text !== 'null' ? Number(text).toPrecision(6) : text
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Activity (Bq)',
|
title: 'Activity (Bq)',
|
||||||
dataIndex: 'activity',
|
dataIndex: 'activity',
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return text && text !== 'null' ? Number(text).toPrecision(6) : text
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Act Err (%)',
|
title: 'Act Err (%)',
|
||||||
dataIndex: 'actErr',
|
dataIndex: 'actErr',
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return text && text !== 'null' ? Number(text).toPrecision(6) : text
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'MDA (Bq)',
|
title: 'MDA (Bq)',
|
||||||
dataIndex: 'mda',
|
dataIndex: 'mda',
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return text && text !== 'null' ? Number(text).toPrecision(6) : text
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Conc (uBq/m3)',
|
title: 'Conc (uBq/m3)',
|
||||||
dataIndex: 'conc',
|
dataIndex: 'conc',
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return text && text !== 'null' ? Number(text).toPrecision(6) : text
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'MDC (uBq/m3)',
|
title: 'MDC (uBq/m3)',
|
||||||
dataIndex: 'mdc',
|
dataIndex: 'mdc',
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return text && text !== 'null' ? Number(text).toPrecision(5) : text
|
return text && text !== 'null' ? parseFloat(Number(text).toPrecision(6)) : text
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
@ -86,9 +86,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="nuclide-library-settings-operation">
|
<div class="nuclide-library-settings-operation">
|
||||||
<a-space :size="10">
|
<a-space :size="10">
|
||||||
<span>
|
<span> Energy: </span>
|
||||||
Energy:
|
|
||||||
</span>
|
|
||||||
<a-input v-model="model.editEnergy"></a-input>
|
<a-input v-model="model.editEnergy"></a-input>
|
||||||
<a-input-number
|
<a-input-number
|
||||||
v-model="model.err"
|
v-model="model.err"
|
||||||
|
@ -122,18 +120,18 @@ const daughterColumns = [
|
||||||
{
|
{
|
||||||
title: 'Name',
|
title: 'Name',
|
||||||
dataIndex: 'daughters',
|
dataIndex: 'daughters',
|
||||||
align: 'center'
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Ratio',
|
title: 'Ratio',
|
||||||
dataIndex: 'branchingratios',
|
dataIndex: 'branchingratios',
|
||||||
align: 'center'
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Status',
|
title: 'Status',
|
||||||
dataIndex: 'daughtersstable',
|
dataIndex: 'daughtersstable',
|
||||||
align: 'center'
|
align: 'center',
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
// 主体表格配置
|
// 主体表格配置
|
||||||
|
@ -143,43 +141,35 @@ const mainColumns = [
|
||||||
width: 80,
|
width: 80,
|
||||||
customRender: (_, __, index) => {
|
customRender: (_, __, index) => {
|
||||||
return index + 1
|
return index + 1
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Full Name',
|
title: 'Full Name',
|
||||||
dataIndex: 'fullName'
|
dataIndex: 'fullName',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Energy(keV)',
|
title: 'Energy(keV)',
|
||||||
dataIndex: 'energy',
|
dataIndex: 'energy',
|
||||||
width: 100,
|
width: 100,
|
||||||
customRender: text => {
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
return toFixed(text, 3)
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Energy Uncert(%)',
|
title: 'Energy Uncert(%)',
|
||||||
dataIndex: 'energyUncert',
|
dataIndex: 'energyUncert',
|
||||||
width: 120,
|
width: 120,
|
||||||
customRender: text => {
|
customRender: (text) => parseFloat(Number(text * 100).toPrecision(6)),
|
||||||
return text ? toFixed(text * 100, 6) : ''
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Yield',
|
title: 'Yield',
|
||||||
dataIndex: 'yield',
|
dataIndex: 'yield',
|
||||||
width: 80,
|
width: 80,
|
||||||
customRender: text => {
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
return toFixed(text, 3)
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Yield Uncert(%)',
|
title: 'Yield Uncert(%)',
|
||||||
dataIndex: 'yieldUncert',
|
dataIndex: 'yieldUncert',
|
||||||
width: 120,
|
width: 120,
|
||||||
customRender: text => {
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
return toFixed(text, 3)
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'KeyLine',
|
title: 'KeyLine',
|
||||||
|
@ -187,15 +177,15 @@ const mainColumns = [
|
||||||
width: 100,
|
width: 100,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
scopedSlots: {
|
scopedSlots: {
|
||||||
customRender: 'keyLine'
|
customRender: 'keyLine',
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [ModalMixin, SampleDataMixin],
|
mixins: [ModalMixin, SampleDataMixin],
|
||||||
components: {
|
components: {
|
||||||
TitleOverBorder
|
TitleOverBorder,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
this.daughterColumns = daughterColumns
|
this.daughterColumns = daughterColumns
|
||||||
|
@ -210,7 +200,7 @@ export default {
|
||||||
model: {},
|
model: {},
|
||||||
|
|
||||||
selectedNuclide: {}, // 当前选中的Nuclide
|
selectedNuclide: {}, // 当前选中的Nuclide
|
||||||
selectedParent: {} // 当前选中的Parent
|
selectedParent: {}, // 当前选中的Parent
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -224,19 +214,19 @@ export default {
|
||||||
const { success, result, message } = await getAction('/gamma/NuclideLibrary', {
|
const { success, result, message } = await getAction('/gamma/NuclideLibrary', {
|
||||||
sampleId,
|
sampleId,
|
||||||
fileName,
|
fileName,
|
||||||
...this.model
|
...this.model,
|
||||||
})
|
})
|
||||||
if (success) {
|
if (success) {
|
||||||
const {
|
const {
|
||||||
daughter: { list_parent, table_daughter },
|
daughter: { list_parent, table_daughter },
|
||||||
nuclLinesLibs,
|
nuclLinesLibs,
|
||||||
nuclideInfo,
|
nuclideInfo,
|
||||||
nuclides
|
nuclides,
|
||||||
} = result
|
} = result
|
||||||
|
|
||||||
this.nuclideList = nuclides
|
this.nuclideList = nuclides
|
||||||
this.parentList = list_parent ? list_parent.filter(item => item) : []
|
this.parentList = list_parent ? list_parent.filter((item) => item) : []
|
||||||
this.daughterList = table_daughter ? table_daughter.filter(item => item.daughters) : []
|
this.daughterList = table_daughter ? table_daughter.filter((item) => item.daughters) : []
|
||||||
this.nuclideInfo = nuclideInfo
|
this.nuclideInfo = nuclideInfo
|
||||||
this.nuclLinesLibs = nuclLinesLibs
|
this.nuclLinesLibs = nuclLinesLibs
|
||||||
|
|
||||||
|
@ -259,7 +249,7 @@ export default {
|
||||||
libraryName: 'UserLibrary',
|
libraryName: 'UserLibrary',
|
||||||
err: 0.5,
|
err: 0.5,
|
||||||
editEnergy: '',
|
editEnergy: '',
|
||||||
nuclideName: ''
|
nuclideName: '',
|
||||||
}
|
}
|
||||||
this.getInfo(true)
|
this.getInfo(true)
|
||||||
},
|
},
|
||||||
|
@ -300,8 +290,8 @@ export default {
|
||||||
handleParentDBClick(item) {
|
handleParentDBClick(item) {
|
||||||
this.model.nuclideName = item
|
this.model.nuclideName = item
|
||||||
this.getInfo()
|
this.getInfo()
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -12,13 +12,13 @@
|
||||||
style: {
|
style: {
|
||||||
width: '70px',
|
width: '70px',
|
||||||
textAlign: 'left',
|
textAlign: 'left',
|
||||||
flexShrink: 0
|
flexShrink: 0,
|
||||||
}
|
},
|
||||||
}"
|
}"
|
||||||
:wrapperCol="{
|
:wrapperCol="{
|
||||||
style: {
|
style: {
|
||||||
flex: 1
|
flex: 1,
|
||||||
}
|
},
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<a-form-model-item label="Energy">
|
<a-form-model-item label="Energy">
|
||||||
|
@ -54,13 +54,7 @@
|
||||||
<div>
|
<div>
|
||||||
<label>
|
<label>
|
||||||
<a-button type="primary" :loading="isCalling" @click="handleCall">Call</a-button>
|
<a-button type="primary" :loading="isCalling" @click="handleCall">Call</a-button>
|
||||||
<input
|
<input ref="fileInput" type="file" accept=".ent" style="display: none" @change="handleFileChange" />
|
||||||
ref="fileInput"
|
|
||||||
type="file"
|
|
||||||
accept=".ent"
|
|
||||||
style="display: none;"
|
|
||||||
@change="handleFileChange"
|
|
||||||
/>
|
|
||||||
</label>
|
</label>
|
||||||
<a-button type="primary" :loading="isSaving" @click="handleSave">Save</a-button>
|
<a-button type="primary" :loading="isSaving" @click="handleSave">Save</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -121,23 +115,23 @@ const columns = [
|
||||||
{
|
{
|
||||||
title: 'Energy(keV)',
|
title: 'Energy(keV)',
|
||||||
dataIndex: 'energy',
|
dataIndex: 'energy',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'FWHM(keV)',
|
title: 'FWHM(keV)',
|
||||||
dataIndex: 'fwhm',
|
dataIndex: 'fwhm',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Fit(keV)',
|
title: 'Fit(keV)',
|
||||||
dataIndex: 'fit',
|
dataIndex: 'fit',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Delta(%)',
|
title: 'Delta(%)',
|
||||||
dataIndex: 'delta',
|
dataIndex: 'delta',
|
||||||
customRender: (text) => Number(text).toFixed(3)
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const initialOption = {
|
const initialOption = {
|
||||||
|
@ -145,68 +139,68 @@ const initialOption = {
|
||||||
top: 20,
|
top: 20,
|
||||||
right: 20,
|
right: 20,
|
||||||
bottom: 50,
|
bottom: 50,
|
||||||
left: 70
|
left: 70,
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
text: 'Channel',
|
text: 'Channel',
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: '#8FD4F8',
|
color: '#8FD4F8',
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
fontWeight: 'normal'
|
fontWeight: 'normal',
|
||||||
},
|
},
|
||||||
right: 10,
|
right: 10,
|
||||||
bottom: 0
|
bottom: 0,
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis',
|
trigger: 'axis',
|
||||||
formatter: params => {
|
formatter: (params) => {
|
||||||
const [x, y] = params[0].value
|
const [x, y] = params[0].value
|
||||||
const energy = parseInt(x)
|
const energy = parseInt(x)
|
||||||
const fwhm = y.toFixed(3)
|
const fwhm = y.toFixed(3)
|
||||||
return `<div class="channel">Energy: ${energy}</div>
|
return `<div class="channel">Energy: ${energy}</div>
|
||||||
<div class="energy">Fwhm: ${fwhm}</div>`
|
<div class="energy">Fwhm: ${fwhm}</div>`
|
||||||
},
|
},
|
||||||
className: 'figure-chart-option-tooltip'
|
className: 'figure-chart-option-tooltip',
|
||||||
},
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
min: 1,
|
min: 1,
|
||||||
max: 'dataMax',
|
max: 'dataMax',
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
},
|
},
|
||||||
axisLine: {
|
axisLine: {
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
splitLine: {
|
splitLine: {
|
||||||
show: false
|
show: false,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
},
|
},
|
||||||
axisTick: {
|
axisTick: {
|
||||||
show: false
|
show: false,
|
||||||
},
|
},
|
||||||
axisLine: {
|
axisLine: {
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
splitLine: {
|
splitLine: {
|
||||||
show: false
|
show: false,
|
||||||
},
|
},
|
||||||
name: 'keV',
|
name: 'keV',
|
||||||
nameLocation: 'center',
|
nameLocation: 'center',
|
||||||
nameGap: 50,
|
nameGap: 50,
|
||||||
nameTextStyle: {
|
nameTextStyle: {
|
||||||
color: '#8FD4F8',
|
color: '#8FD4F8',
|
||||||
fontSize: 14
|
fontSize: 14,
|
||||||
}
|
|
||||||
},
|
},
|
||||||
series: []
|
},
|
||||||
|
series: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -228,10 +222,10 @@ export default {
|
||||||
currSelectedDataSource: '',
|
currSelectedDataSource: '',
|
||||||
appliedDataSource: '',
|
appliedDataSource: '',
|
||||||
opts: {
|
opts: {
|
||||||
notMerge: true
|
notMerge: true,
|
||||||
},
|
},
|
||||||
ECutAnalysis_Low: -1,
|
ECutAnalysis_Low: -1,
|
||||||
G_energy_span: -1
|
G_energy_span: -1,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -243,7 +237,7 @@ export default {
|
||||||
sampleId,
|
sampleId,
|
||||||
fileName,
|
fileName,
|
||||||
currentText,
|
currentText,
|
||||||
width: 922
|
width: 922,
|
||||||
})
|
})
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
if (success) {
|
if (success) {
|
||||||
|
@ -293,15 +287,15 @@ export default {
|
||||||
value: [x, y],
|
value: [x, y],
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: scatterPoint.color,
|
color: scatterPoint.color,
|
||||||
borderWidth: 0
|
borderWidth: 0,
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
emphasis: {
|
emphasis: {
|
||||||
disabled: true
|
disabled: true,
|
||||||
},
|
},
|
||||||
animation: false,
|
animation: false,
|
||||||
zlevel: 20
|
zlevel: 20,
|
||||||
})
|
})
|
||||||
this.option.series = series
|
this.option.series = series
|
||||||
}
|
}
|
||||||
|
@ -350,7 +344,7 @@ export default {
|
||||||
|
|
||||||
this.list.splice(i, 0, {
|
this.list.splice(i, 0, {
|
||||||
energy: energy,
|
energy: energy,
|
||||||
fwhm
|
fwhm,
|
||||||
})
|
})
|
||||||
|
|
||||||
this.uncert.splice(i, 0, 0.5)
|
this.uncert.splice(i, 0, 0.5)
|
||||||
|
@ -423,10 +417,10 @@ export default {
|
||||||
const { success, result, message } = await postAction('/gamma/changeDataResolution', {
|
const { success, result, message } = await postAction('/gamma/changeDataResolution', {
|
||||||
sampleId,
|
sampleId,
|
||||||
fileName,
|
fileName,
|
||||||
m_vCurEnergy: this.list.map(item => item.energy),
|
m_vCurEnergy: this.list.map((item) => item.energy),
|
||||||
m_vCurReso: this.list.map(item => item.fwhm),
|
m_vCurReso: this.list.map((item) => item.fwhm),
|
||||||
m_vCurUncert: this.uncert,
|
m_vCurUncert: this.uncert,
|
||||||
m_curParam: this.param
|
m_curParam: this.param,
|
||||||
})
|
})
|
||||||
if (success) {
|
if (success) {
|
||||||
this.handleResult(result)
|
this.handleResult(result)
|
||||||
|
@ -445,9 +439,9 @@ export default {
|
||||||
try {
|
try {
|
||||||
this.isSaving = true
|
this.isSaving = true
|
||||||
const res = await postAction('/gamma/saveDataResolution', {
|
const res = await postAction('/gamma/saveDataResolution', {
|
||||||
m_vCurEnergy: this.list.map(item => item.energy),
|
m_vCurEnergy: this.list.map((item) => item.energy),
|
||||||
m_vCurReso: this.list.map(item => item.fwhm),
|
m_vCurReso: this.list.map((item) => item.fwhm),
|
||||||
m_vCurUncert: this.uncert
|
m_vCurUncert: this.uncert,
|
||||||
})
|
})
|
||||||
if (typeof res == 'string') {
|
if (typeof res == 'string') {
|
||||||
const blob = new Blob([res], { type: 'text/plain' })
|
const blob = new Blob([res], { type: 'text/plain' })
|
||||||
|
@ -505,18 +499,18 @@ export default {
|
||||||
let curCalName = this.currSelectedDataSource
|
let curCalName = this.currSelectedDataSource
|
||||||
// 如果沒选中以Input开头的,也就是选中了PHD之类的
|
// 如果沒选中以Input开头的,也就是选中了PHD之类的
|
||||||
if (!curCalName.includes('Input')) {
|
if (!curCalName.includes('Input')) {
|
||||||
curCalName = `Input ${this.dataSourceList.filter(item => item.includes('Input')).length + 1}`
|
curCalName = `Input ${this.dataSourceList.filter((item) => item.includes('Input')).length + 1}`
|
||||||
}
|
}
|
||||||
|
|
||||||
const { sampleId, inputFileName: fileName } = this.sampleData
|
const { sampleId, inputFileName: fileName } = this.sampleData
|
||||||
const { success, result, message } = await postAction('/gamma/applyDataResolution', {
|
const { success, result, message } = await postAction('/gamma/applyDataResolution', {
|
||||||
m_vCurEnergy: this.list.map(item => item.energy),
|
m_vCurEnergy: this.list.map((item) => item.energy),
|
||||||
m_vCurReso: this.list.map(item => item.fwhm),
|
m_vCurReso: this.list.map((item) => item.fwhm),
|
||||||
m_vCurUncert: this.uncert,
|
m_vCurUncert: this.uncert,
|
||||||
m_curParam: this.param,
|
m_curParam: this.param,
|
||||||
curCalName,
|
curCalName,
|
||||||
sampleId,
|
sampleId,
|
||||||
fileName
|
fileName,
|
||||||
})
|
})
|
||||||
if (success) {
|
if (success) {
|
||||||
this.handleDataSourceClick(curCalName)
|
this.handleDataSourceClick(curCalName)
|
||||||
|
@ -548,8 +542,8 @@ export default {
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -47,10 +47,12 @@ const columns = [
|
||||||
{
|
{
|
||||||
title: 'Energy(keV)',
|
title: 'Energy(keV)',
|
||||||
dataIndex: 'energy',
|
dataIndex: 'energy',
|
||||||
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Centroid',
|
title: 'Centroid',
|
||||||
dataIndex: 'centroid',
|
dataIndex: 'centroid',
|
||||||
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Multiplet',
|
title: 'Multiplet',
|
||||||
|
@ -59,22 +61,27 @@ const columns = [
|
||||||
{
|
{
|
||||||
title: 'Fwhm(keV)',
|
title: 'Fwhm(keV)',
|
||||||
dataIndex: 'fwhm',
|
dataIndex: 'fwhm',
|
||||||
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'NetArea',
|
title: 'NetArea',
|
||||||
dataIndex: 'netArea',
|
dataIndex: 'netArea',
|
||||||
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'AreaErr(%)',
|
title: 'AreaErr(%)',
|
||||||
dataIndex: 'areaErr',
|
dataIndex: 'areaErr',
|
||||||
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Significant',
|
title: 'Significant',
|
||||||
dataIndex: 'significant',
|
dataIndex: 'significant',
|
||||||
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Sensitivity',
|
title: 'Sensitivity',
|
||||||
dataIndex: 'sensitivity',
|
dataIndex: 'sensitivity',
|
||||||
|
customRender: (text) => parseFloat(Number(text).toPrecision(6)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Indentify',
|
title: 'Indentify',
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
<!-- 二级交互栏结束 -->
|
<!-- 二级交互栏结束 -->
|
||||||
<!-- 主体部分 -->
|
<!-- 主体部分 -->
|
||||||
<div class="gamma-analysis-main">
|
<div class="gamma-analysis-main">
|
||||||
<div class="gamma-analysis-chart">
|
<div class="gamma-analysis-chart" ref="chartContainerRef" tabindex="0" @keydown="handleKeyboardEvent">
|
||||||
<CustomChart
|
<CustomChart
|
||||||
ref="chartRef"
|
ref="chartRef"
|
||||||
:option="option"
|
:option="option"
|
||||||
|
@ -140,6 +140,8 @@ import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||||
import StripModal from './components/Modals/StripModal.vue'
|
import StripModal from './components/Modals/StripModal.vue'
|
||||||
import { FilePicker } from '@/utils/FilePicker'
|
import { FilePicker } from '@/utils/FilePicker'
|
||||||
import { zipFile } from '@/utils/file'
|
import { zipFile } from '@/utils/file'
|
||||||
|
import { findNearPeak } from '@/utils/sampleHelper'
|
||||||
|
import baseCtrlJson from './baseCtrlJson.json'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
|
@ -232,20 +234,14 @@ export default {
|
||||||
this.setChartBottomTitle(0, 0, 0)
|
this.setChartBottomTitle(0, 0, 0)
|
||||||
this.option.tooltip.formatter = this.tooltipFormatter
|
this.option.tooltip.formatter = this.tooltipFormatter
|
||||||
|
|
||||||
this.$bus.$on('colorChange', this.handleColorChange)
|
|
||||||
this.$bus.$on('gammaRefresh', this.handleRefresh)
|
this.$bus.$on('gammaRefresh', this.handleRefresh)
|
||||||
this.$bus.$on('accept', this.handleAccept)
|
this.$bus.$on('accept', this.handleAccept)
|
||||||
|
|
||||||
document.addEventListener('keydown', this.handleKeyboardEvent)
|
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.cancelLastRequest()
|
this.cancelLastRequest()
|
||||||
|
|
||||||
this.$bus.$off('colorChange', this.handleColorChange)
|
|
||||||
this.$bus.$off('gammaRefresh', this.handleRefresh)
|
this.$bus.$off('gammaRefresh', this.handleRefresh)
|
||||||
this.$bus.$off('accept', this.handleAccept)
|
this.$bus.$off('accept', this.handleAccept)
|
||||||
|
|
||||||
document.removeEventListener('keydown', this.handleKeyboardEvent)
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.option.brush = { toolbox: [] }
|
this.option.brush = { toolbox: [] }
|
||||||
|
@ -534,7 +530,7 @@ export default {
|
||||||
|
|
||||||
this.$store.commit('ADD_SAMPLE_DATA', {
|
this.$store.commit('ADD_SAMPLE_DATA', {
|
||||||
inputFileName,
|
inputFileName,
|
||||||
data: result,
|
data: Object.assign(result, { BaseCtrls: baseCtrlJson }),
|
||||||
from: flag,
|
from: flag,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -867,6 +863,7 @@ export default {
|
||||||
|
|
||||||
// 点击图表,设置红线
|
// 点击图表,设置红线
|
||||||
handleChartClick(param) {
|
handleChartClick(param) {
|
||||||
|
this.$refs.chartContainerRef.focus()
|
||||||
const { offsetX, offsetY } = param
|
const { offsetX, offsetY } = param
|
||||||
const point = getXAxisAndYAxisByPosition(this.getChart(), offsetX, offsetY)
|
const point = getXAxisAndYAxisByPosition(this.getChart(), offsetX, offsetY)
|
||||||
if (point) {
|
if (point) {
|
||||||
|
@ -883,50 +880,13 @@ export default {
|
||||||
|
|
||||||
// 设置图表底部的标题
|
// 设置图表底部的标题
|
||||||
setChartBottomTitle(channel, energy, counts) {
|
setChartBottomTitle(channel, energy, counts) {
|
||||||
const { index, find } = this.findNearPeak(channel)
|
const { index, find } = findNearPeak(channel, this.peakList)
|
||||||
|
|
||||||
this.option.title.text = `{a|Channel:${channel}} {a|Energy:${energy || '0.00'}} {a|Counts:${
|
this.option.title.text = `{a|Channel:${channel}} {a|Energy:${energy || '0.00'}} {a|Counts:${
|
||||||
counts || '0.0'
|
counts || '0.0'
|
||||||
}} {a|Significance:${find ? this.peakList[index].significance.toFixed(2) : '0.00'}}`
|
}} {a|Significance:${find ? this.peakList[index].significance.toFixed(2) : '0.00'}}`
|
||||||
},
|
},
|
||||||
|
|
||||||
// 查找最近的峰(C++相关)
|
|
||||||
findNearPeak(channel) {
|
|
||||||
let t_bFind = false,
|
|
||||||
i = 0,
|
|
||||||
peakNum = this.peakList.length
|
|
||||||
for (; i < peakNum; ++i) {
|
|
||||||
const peak = this.peakList[i]
|
|
||||||
if (channel >= peak.left && channel <= peak.right) {
|
|
||||||
// 如果 channel 在峰的左右边界内
|
|
||||||
if (peak.multiIndex > 0 && channel > peak.peakCentroid) {
|
|
||||||
// 如果是重峰,且 channel 在重峰的第一个峰的中心道右侧
|
|
||||||
let j = i
|
|
||||||
let temp = channel - peak.peakCentroid
|
|
||||||
while (++j < peakNum && this.peakList[j].multiIndex == peak.multiIndex) {
|
|
||||||
if (Math.abs(this.peakList[j].peakCentroid - channel) < temp) {
|
|
||||||
// 找出重峰中峰中心道离 channel 最近的峰
|
|
||||||
temp = Math.abs(this.peakList[j].peakCentroid - channel)
|
|
||||||
i = j
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// channel 在索引(i)对应的峰内
|
|
||||||
t_bFind = true
|
|
||||||
break
|
|
||||||
} else if (peak.left > channel) {
|
|
||||||
// channel 不在任何峰内,找离它最近的峰
|
|
||||||
if (i > 0 && channel - this.peakList[i - 1].peakCentroid < peak.peakCentroid - channel) i -= 1
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (i >= peakNum) i -= 1
|
|
||||||
return {
|
|
||||||
index: i,
|
|
||||||
find: t_bFind,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 根据xAixs值找channel、energy和counts
|
// 根据xAixs值找channel、energy和counts
|
||||||
getEnergyAndCountsByXAxis(xAxis) {
|
getEnergyAndCountsByXAxis(xAxis) {
|
||||||
let channel, energy, counts
|
let channel, energy, counts
|
||||||
|
@ -1342,6 +1302,7 @@ export default {
|
||||||
// 从分析工具刷新部分数据
|
// 从分析工具刷新部分数据
|
||||||
handleRefresh(data) {
|
handleRefresh(data) {
|
||||||
data.DetailedInformation = this.detailedInfomation
|
data.DetailedInformation = this.detailedInfomation
|
||||||
|
data.QCFlag = this.qcFlags
|
||||||
this.clearCompareLine()
|
this.clearCompareLine()
|
||||||
this.redrawPeakLine()
|
this.redrawPeakLine()
|
||||||
this.dataProcess(data)
|
this.dataProcess(data)
|
||||||
|
@ -1349,36 +1310,29 @@ export default {
|
||||||
|
|
||||||
// 分析工具Accept时刷新部分数据
|
// 分析工具Accept时刷新部分数据
|
||||||
handleAccept(data) {
|
handleAccept(data) {
|
||||||
console.log('%c [ data ]-1166', 'font-size:13px; background:pink; color:#bf2c9f;', data)
|
|
||||||
const {
|
const {
|
||||||
allData,
|
allData,
|
||||||
barChart,
|
|
||||||
channelBaseLineChart,
|
|
||||||
peakSet,
|
peakSet,
|
||||||
shadowChannelChart,
|
shadowChannelChart,
|
||||||
shadowEnergyChart,
|
shadowEnergyChart,
|
||||||
shapeChannelData,
|
shapeChannelData,
|
||||||
shapeData,
|
|
||||||
shapeEnergyData,
|
shapeEnergyData,
|
||||||
} = data
|
} = data
|
||||||
|
|
||||||
|
const result = {
|
||||||
|
DetailedInformation: this.detailedInfomation,
|
||||||
|
QCFlag: this.qcFlags,
|
||||||
|
allData,
|
||||||
|
shadowChannelChart,
|
||||||
|
shadowEnergyChart,
|
||||||
|
|
||||||
|
shapeChannelData,
|
||||||
|
shapeEnergyData,
|
||||||
|
peak: peakSet,
|
||||||
|
}
|
||||||
this.clearCompareLine()
|
this.clearCompareLine()
|
||||||
this.channelData.peakGroup = this.getLineData(allData, 'Peak', 'channel', true)
|
|
||||||
this.energyData.peakGroup = this.getLineData(allData, 'Peak', 'energy', true)
|
|
||||||
this.redrawPeakLine()
|
this.redrawPeakLine()
|
||||||
|
this.dataProcess(result)
|
||||||
this.channelData.baseLine = this.getLineData(allData, 'BaseLine', 'channel')
|
|
||||||
this.energyData.baseLine = this.getLineData(allData, 'BaseLine', 'energy')
|
|
||||||
this.redrawLineBySeriesName(
|
|
||||||
'BaseLine',
|
|
||||||
this.energyData.baseLine,
|
|
||||||
this.channelData.baseLine,
|
|
||||||
this.graphAssistance.Baseline
|
|
||||||
)
|
|
||||||
|
|
||||||
this.channelData.baseLineCP = shapeChannelData
|
|
||||||
this.energyData.baseLineCP = shapeEnergyData
|
|
||||||
this.redrawCtrlPointBySeriesName()
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// 显示比较弹窗
|
// 显示比较弹窗
|
||||||
|
@ -1771,6 +1725,7 @@ export default {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-thumbnail {
|
&-thumbnail {
|
||||||
|
|
|
@ -91,7 +91,11 @@
|
||||||
<!-- 分析-设置弹窗结束 -->
|
<!-- 分析-设置弹窗结束 -->
|
||||||
|
|
||||||
<!-- 分析工具弹窗开始 -->
|
<!-- 分析工具弹窗开始 -->
|
||||||
<analyze-interactive-tool-modal v-model="analyzeInteractiveToolModalVisible" :sampleId="sampleData.sampleId" />
|
<analyze-interactive-tool-modal
|
||||||
|
v-model="analyzeInteractiveToolModalVisible"
|
||||||
|
:sampleId="sampleData.sampleId"
|
||||||
|
:colorConfig="colorConfig"
|
||||||
|
/>
|
||||||
<!-- 分析工具弹窗结束 -->
|
<!-- 分析工具弹窗结束 -->
|
||||||
|
|
||||||
<!-- Korsum 弹窗开始 -->
|
<!-- Korsum 弹窗开始 -->
|
||||||
|
@ -119,7 +123,7 @@
|
||||||
<!-- SpectrumComments 弹窗结束 -->
|
<!-- SpectrumComments 弹窗结束 -->
|
||||||
|
|
||||||
<!-- Color Config 弹窗开始 -->
|
<!-- Color Config 弹窗开始 -->
|
||||||
<color-config-modal v-model="colorConfigModalVisible" />
|
<color-config-modal v-model="colorConfigModalVisible" :colorConfig="colorConfig" @colorChange="handleColorChange" />
|
||||||
<!-- Color Config 弹窗结束 -->
|
<!-- Color Config 弹窗结束 -->
|
||||||
|
|
||||||
<!-- Data Processing Log 弹窗开始 -->
|
<!-- Data Processing Log 弹窗开始 -->
|
||||||
|
@ -397,6 +401,8 @@ export default {
|
||||||
isReAnalyed_beta: false,
|
isReAnalyed_beta: false,
|
||||||
|
|
||||||
isSaving: false,
|
isSaving: false,
|
||||||
|
|
||||||
|
colorConfig: {}, // 颜色配置
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -407,6 +413,7 @@ export default {
|
||||||
// dbName: 'auto',
|
// dbName: 'auto',
|
||||||
// inputFileName: 'CAX05_001-20230731_1528_S_FULL_37563.6.PHD',
|
// inputFileName: 'CAX05_001-20230731_1528_S_FULL_37563.6.PHD',
|
||||||
// })
|
// })
|
||||||
|
this.getColorConfig()
|
||||||
},
|
},
|
||||||
|
|
||||||
destroyed() {
|
destroyed() {
|
||||||
|
@ -426,10 +433,10 @@ export default {
|
||||||
},
|
},
|
||||||
getStationName(arg, val, flag) {
|
getStationName(arg, val, flag) {
|
||||||
arg.forEach((item) => {
|
arg.forEach((item) => {
|
||||||
item.conc = Number(item.conc).toFixed(6)
|
item.conc = Number(item.conc).toPrecision(6)
|
||||||
item.concErr = Number(item.concErr).toFixed(6)
|
item.concErr = Number(item.concErr).toPrecision(6)
|
||||||
item.lc = Number(item.lc).toFixed(6)
|
item.lc = Number(item.lc).toPrecision(6)
|
||||||
item.mdc = Number(item.mdc).toFixed(6)
|
item.mdc = Number(item.mdc).toPrecision(6)
|
||||||
})
|
})
|
||||||
this.resultDisplayFlag = arg
|
this.resultDisplayFlag = arg
|
||||||
this.params_toDB.stationName = val
|
this.params_toDB.stationName = val
|
||||||
|
@ -718,10 +725,10 @@ export default {
|
||||||
this.analyseCurrentSpectrumData = res.result
|
this.analyseCurrentSpectrumData = res.result
|
||||||
this.resultDisplayFlag = res.result.XeData
|
this.resultDisplayFlag = res.result.XeData
|
||||||
this.resultDisplayFlag.forEach((item) => {
|
this.resultDisplayFlag.forEach((item) => {
|
||||||
item.conc = item.conc.toFixed(6)
|
item.conc = item.conc.toPrecision(6)
|
||||||
item.concErr = item.concErr.toFixed(6)
|
item.concErr = item.concErr.toPrecision(6)
|
||||||
item.lc = item.lc.toFixed(6)
|
item.lc = item.lc.toPrecision(6)
|
||||||
item.mdc = item.mdc.toFixed(6)
|
item.mdc = item.mdc.toPrecision(6)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(res.message)
|
this.$message.warning(res.message)
|
||||||
|
@ -743,10 +750,10 @@ export default {
|
||||||
this.analyseCurrentSpectrumData = res.result
|
this.analyseCurrentSpectrumData = res.result
|
||||||
this.resultDisplayFlag = res.result.XeData
|
this.resultDisplayFlag = res.result.XeData
|
||||||
this.resultDisplayFlag.forEach((item) => {
|
this.resultDisplayFlag.forEach((item) => {
|
||||||
item.conc = item.conc.toFixed(6)
|
item.conc = item.conc.toPrecision(6)
|
||||||
item.concErr = item.concErr.toFixed(6)
|
item.concErr = item.concErr.toPrecision(6)
|
||||||
item.lc = item.lc.toFixed(6)
|
item.lc = item.lc.toPrecision(6)
|
||||||
item.mdc = item.mdc.toFixed(6)
|
item.mdc = item.mdc.toPrecision(6)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(res.message)
|
this.$message.warning(res.message)
|
||||||
|
@ -764,6 +771,26 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 获取颜色配置
|
||||||
|
async getColorConfig() {
|
||||||
|
try {
|
||||||
|
const { success, result, message } = await getAction('/gamma/viewColorConfig')
|
||||||
|
if (success) {
|
||||||
|
this.colorConfig = result
|
||||||
|
} else {
|
||||||
|
this.$message.error(message)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 颜色修改
|
||||||
|
handleColorChange(colorConfig) {
|
||||||
|
this.colorConfig = colorConfig
|
||||||
|
this.$refs.gammaAnalysisRef.handleColorChange(colorConfig)
|
||||||
|
},
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
// 顶部菜单栏配置
|
// 顶部菜单栏配置
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
:title="title"
|
:title="title"
|
||||||
:width="800"
|
:width="800"
|
||||||
:visible="visible"
|
:visible="visible"
|
||||||
|
:maskClosable="false"
|
||||||
:confirmLoading="confirmLoading"
|
:confirmLoading="confirmLoading"
|
||||||
@ok="handleOk"
|
@ok="handleOk"
|
||||||
@cancel="handleCancel"
|
@cancel="handleCancel"
|
||||||
|
@ -10,178 +11,159 @@
|
||||||
>
|
>
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<a-form-model ref="form" :model="model" :rules="validatorRules">
|
<a-form-model ref="form" :model="model" :rules="validatorRules">
|
||||||
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="itemText" label="Name">
|
||||||
<a-form-model-item
|
<a-input placeholder="Please Enter Name" v-model="model.itemText" />
|
||||||
:labelCol="labelCol"
|
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
prop="itemText"
|
|
||||||
label="Name">
|
|
||||||
<a-input placeholder="Please Enter Name" v-model="model.itemText"/>
|
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|
||||||
<a-form-model-item
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="itemValue" label="Item Value">
|
||||||
:labelCol="labelCol"
|
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
prop="itemValue"
|
|
||||||
label="Item Value">
|
|
||||||
<a-input placeholder="Please Enter Item Value" v-model="model.itemValue" />
|
<a-input placeholder="Please Enter Item Value" v-model="model.itemValue" />
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|
||||||
<a-form-model-item
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Description">
|
||||||
:labelCol="labelCol"
|
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
label="Description">
|
|
||||||
<a-input v-model="model.description" />
|
<a-input v-model="model.description" />
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|
||||||
<a-form-model-item
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Sort">
|
||||||
:labelCol="labelCol"
|
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
label="Sort">
|
|
||||||
<a-input-number :min="1" v-model="model.sortOrder" />
|
<a-input-number :min="1" v-model="model.sortOrder" />
|
||||||
The Smaller The Value, the More Advanced
|
The Smaller The Value, the More Advanced
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|
||||||
<a-form-model-item
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Enable" hasFeedback>
|
||||||
:labelCol="labelCol"
|
<a-switch checkedChildren="Enable" unCheckedChildren="Disable" @change="onChose" v-model="visibleCheck" />
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
label="Enable"
|
|
||||||
hasFeedback>
|
|
||||||
<a-switch checkedChildren="Enable" unCheckedChildren="Disable" @change="onChose" v-model="visibleCheck"/>
|
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|
||||||
</a-form-model>
|
</a-form-model>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import pick from 'lodash.pick'
|
import pick from 'lodash.pick'
|
||||||
import {addDictItem, editDictItem} from '@/api/api'
|
import { addDictItem, editDictItem } from '@/api/api'
|
||||||
import { getAction } from '@api/manage'
|
import { getAction } from '@api/manage'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "DictItemModal",
|
name: 'DictItemModal',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: "操作",
|
title: '操作',
|
||||||
visible: false,
|
visible: false,
|
||||||
visibleCheck: true,
|
visibleCheck: true,
|
||||||
model: {},
|
model: {},
|
||||||
dictId: "",
|
dictId: '',
|
||||||
status: 1,
|
status: 1,
|
||||||
labelCol: {
|
labelCol: {
|
||||||
xs: {span: 24},
|
xs: { span: 24 },
|
||||||
sm: {span: 5},
|
sm: { span: 5 },
|
||||||
},
|
},
|
||||||
wrapperCol: {
|
wrapperCol: {
|
||||||
xs: {span: 24},
|
xs: { span: 24 },
|
||||||
sm: {span: 16},
|
sm: { span: 16 },
|
||||||
},
|
},
|
||||||
confirmLoading: false,
|
confirmLoading: false,
|
||||||
validatorRules: {
|
validatorRules: {
|
||||||
itemText: [{required: true, message: 'Please Enter Name'}],
|
itemText: [{ required: true, message: 'Please Enter Name' }],
|
||||||
itemValue: [{required: true, message: 'Please Enter Item Value'},{validator: this.validateItemValue}],
|
itemValue: [{ required: true, message: 'Please Enter Item Value' }, { validator: this.validateItemValue }],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {},
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
add(dictId) {
|
add(dictId) {
|
||||||
this.dictId = dictId;
|
this.dictId = dictId
|
||||||
//初始化默认值
|
//初始化默认值
|
||||||
this.edit({sortOrder:1,status:1});
|
this.edit({ sortOrder: 1, status: 1 })
|
||||||
},
|
},
|
||||||
edit(record) {
|
edit(record) {
|
||||||
if (record.id) {
|
if (record.id) {
|
||||||
this.dictId = record.dictId;
|
this.dictId = record.dictId
|
||||||
}
|
}
|
||||||
this.status = record.status;
|
this.status = record.status
|
||||||
this.visibleCheck = (record.status == 1) ? true : false;
|
this.visibleCheck = record.status == 1 ? true : false
|
||||||
this.model = Object.assign({}, record);
|
this.model = Object.assign({}, record)
|
||||||
this.model.dictId = this.dictId;
|
this.model.dictId = this.dictId
|
||||||
this.model.status = this.status;
|
this.model.status = this.status
|
||||||
this.visible = true;
|
this.visible = true
|
||||||
},
|
},
|
||||||
onChose(checked) {
|
onChose(checked) {
|
||||||
if (checked) {
|
if (checked) {
|
||||||
this.status = 1;
|
this.status = 1
|
||||||
this.visibleCheck = true;
|
this.visibleCheck = true
|
||||||
} else {
|
} else {
|
||||||
this.status = 0;
|
this.status = 0
|
||||||
this.visibleCheck = false;
|
this.visibleCheck = false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 确定
|
// 确定
|
||||||
handleOk() {
|
handleOk() {
|
||||||
const that = this;
|
const that = this
|
||||||
// 触发表单验证
|
// 触发表单验证
|
||||||
this.$refs.form.validate(valid => {
|
this.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
that.confirmLoading = true;
|
that.confirmLoading = true
|
||||||
this.model.itemText = (this.model.itemText || '').trim()
|
this.model.itemText = (this.model.itemText || '').trim()
|
||||||
this.model.itemValue = (this.model.itemValue || '').trim()
|
this.model.itemValue = (this.model.itemValue || '').trim()
|
||||||
this.model.description = (this.model.description || '').trim()
|
this.model.description = (this.model.description || '').trim()
|
||||||
this.model.status = this.status;
|
this.model.status = this.status
|
||||||
let obj;
|
let obj
|
||||||
if (!this.model.id) {
|
if (!this.model.id) {
|
||||||
obj = addDictItem(this.model);
|
obj = addDictItem(this.model)
|
||||||
} else {
|
} else {
|
||||||
obj = editDictItem(this.model);
|
obj = editDictItem(this.model)
|
||||||
}
|
}
|
||||||
obj.then((res) => {
|
obj
|
||||||
|
.then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
that.$message.success(res.message);
|
that.$message.success(res.message)
|
||||||
that.$emit('ok');
|
that.$emit('ok')
|
||||||
} else {
|
} else {
|
||||||
that.$message.warning(res.message);
|
that.$message.warning(res.message)
|
||||||
}
|
}
|
||||||
}).finally(() => {
|
|
||||||
that.confirmLoading = false;
|
|
||||||
that.close();
|
|
||||||
})
|
})
|
||||||
}else{
|
.finally(() => {
|
||||||
return false;
|
that.confirmLoading = false
|
||||||
|
that.close()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 关闭
|
// 关闭
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.close();
|
this.close()
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
this.$emit('close');
|
this.$emit('close')
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
this.$refs.form.resetFields();
|
this.$refs.form.resetFields()
|
||||||
},
|
},
|
||||||
validateItemValue(rule, value, callback){
|
validateItemValue(rule, value, callback) {
|
||||||
let param = {
|
let param = {
|
||||||
itemValue:value,
|
itemValue: value,
|
||||||
dictId:this.dictId,
|
dictId: this.dictId,
|
||||||
}
|
}
|
||||||
if(this.model.id){
|
if (this.model.id) {
|
||||||
param.id = this.model.id
|
param.id = this.model.id
|
||||||
}
|
}
|
||||||
if(value){
|
if (value) {
|
||||||
let reg=new RegExp("[`~!@#$^&*()=|{}'.<>《》/?!¥()—【】‘;:”“。,、?]")
|
let reg = new RegExp("[`~!@#$^&*()=|{}'.<>《》/?!¥()—【】‘;:”“。,、?]")
|
||||||
if(reg.test(value)){
|
if (reg.test(value)) {
|
||||||
callback("Cannot Have Special Charactors")
|
callback('Cannot Have Special Charactors')
|
||||||
}else{
|
} else {
|
||||||
//update--begin--autor:lvdandan-----date:20201203------for:JT-27【数据字典】字典 - 数据值可重复
|
//update--begin--autor:lvdandan-----date:20201203------for:JT-27【数据字典】字典 - 数据值可重复
|
||||||
getAction("/sys/dictItem/dictItemCheck",param).then((res)=>{
|
getAction('/sys/dictItem/dictItemCheck', param).then((res) => {
|
||||||
if(res.success){
|
if (res.success) {
|
||||||
callback()
|
callback()
|
||||||
}else{
|
} else {
|
||||||
callback(res.message);
|
callback(res.message)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
//update--end--autor:lvdandan-----date:20201203------for:JT-27【数据字典】字典 - 数据值可重复
|
//update--end--autor:lvdandan-----date:20201203------for:JT-27【数据字典】字典 - 数据值可重复
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
:title="title"
|
:title="title"
|
||||||
:width="600"
|
:width="600"
|
||||||
:visible="visible"
|
:visible="visible"
|
||||||
|
:maskClosable="false"
|
||||||
:confirmLoading="confirmLoading"
|
:confirmLoading="confirmLoading"
|
||||||
@ok="handleOk"
|
@ok="handleOk"
|
||||||
@cancel="handleCancel"
|
@cancel="handleCancel"
|
||||||
|
@ -10,42 +11,27 @@
|
||||||
>
|
>
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<a-form-model ref="form" :model="model" :rules="validatorRules">
|
<a-form-model ref="form" :model="model" :rules="validatorRules">
|
||||||
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dictName" required label="Dict Name">
|
||||||
<a-form-model-item
|
<a-input placeholder="Please Enter Dict Name" v-model="model.dictName" />
|
||||||
:labelCol="labelCol"
|
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
prop="dictName"
|
|
||||||
required
|
|
||||||
label="Dict Name">
|
|
||||||
<a-input placeholder="Please Enter Dict Name" v-model="model.dictName"/>
|
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|
||||||
<a-form-model-item
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dictCode" required label="Dict Code">
|
||||||
:labelCol="labelCol"
|
<a-input placeholder="Please Enter Dict Code" v-model="model.dictCode" />
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
prop="dictCode"
|
|
||||||
required
|
|
||||||
label="Dict Code">
|
|
||||||
<a-input placeholder="Please Enter Dict Code" v-model="model.dictCode"/>
|
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|
||||||
<a-form-model-item
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Description">
|
||||||
:labelCol="labelCol"
|
<a-input v-model="model.description" />
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
label="Description">
|
|
||||||
<a-input v-model="model.description"/>
|
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|
||||||
</a-form-model>
|
</a-form-model>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import pick from 'lodash.pick'
|
import pick from 'lodash.pick'
|
||||||
import { addDict, editDict, duplicateCheck } from '@/api/api'
|
import { addDict, editDict, duplicateCheck } from '@/api/api'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DictModal',
|
name: 'DictModal',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -55,23 +41,20 @@
|
||||||
model: {},
|
model: {},
|
||||||
labelCol: {
|
labelCol: {
|
||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 5 }
|
sm: { span: 5 },
|
||||||
},
|
},
|
||||||
wrapperCol: {
|
wrapperCol: {
|
||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
sm: { span: 16 }
|
sm: { span: 16 },
|
||||||
},
|
},
|
||||||
confirmLoading: false,
|
confirmLoading: false,
|
||||||
validatorRules: {
|
validatorRules: {
|
||||||
dictName: [{ required: true, message: 'Please Enter Dict Name' }],
|
dictName: [{ required: true, message: 'Please Enter Dict Name' }],
|
||||||
dictCode: [
|
dictCode: [{ required: true, message: 'Please Enter Dict Code' }, { validator: this.validateDictCode }],
|
||||||
{ required: true, message: 'Please Enter Dict Code' },
|
},
|
||||||
{ validator: this.validateDictCode }]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {},
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
validateDictCode(rule, value, callback) {
|
validateDictCode(rule, value, callback) {
|
||||||
// 重复校验
|
// 重复校验
|
||||||
|
@ -79,7 +62,7 @@
|
||||||
tableName: 'sys_dict',
|
tableName: 'sys_dict',
|
||||||
fieldName: 'dict_code',
|
fieldName: 'dict_code',
|
||||||
fieldVal: value,
|
fieldVal: value,
|
||||||
dataId: this.model.id
|
dataId: this.model.id,
|
||||||
}
|
}
|
||||||
duplicateCheck(params).then((res) => {
|
duplicateCheck(params).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
|
@ -108,7 +91,7 @@
|
||||||
handleOk() {
|
handleOk() {
|
||||||
const that = this
|
const that = this
|
||||||
// 触发表单验证
|
// 触发表单验证
|
||||||
this.$refs.form.validate(valid => {
|
this.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
that.confirmLoading = true
|
that.confirmLoading = true
|
||||||
this.model.dictName = (this.model.dictName || '').trim()
|
this.model.dictName = (this.model.dictName || '').trim()
|
||||||
|
@ -120,19 +103,21 @@
|
||||||
} else {
|
} else {
|
||||||
obj = editDict(this.model)
|
obj = editDict(this.model)
|
||||||
}
|
}
|
||||||
obj.then((res) => {
|
obj
|
||||||
|
.then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
that.$message.success(res.message)
|
that.$message.success(res.message)
|
||||||
that.$emit('ok')
|
that.$emit('ok')
|
||||||
} else {
|
} else {
|
||||||
that.$message.warning(res.message)
|
that.$message.warning(res.message)
|
||||||
}
|
}
|
||||||
}).finally(() => {
|
})
|
||||||
|
.finally(() => {
|
||||||
that.confirmLoading = false
|
that.confirmLoading = false
|
||||||
that.close()
|
that.close()
|
||||||
})
|
})
|
||||||
}else{
|
} else {
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -143,8 +128,8 @@
|
||||||
close() {
|
close() {
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
this.visible = false
|
this.visible = false
|
||||||
this.$refs.form.resetFields();
|
this.$refs.form.resetFields()
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
|
@ -3,63 +3,53 @@
|
||||||
:title="title"
|
:title="title"
|
||||||
:width="1000"
|
:width="1000"
|
||||||
:visible="visible"
|
:visible="visible"
|
||||||
|
:maskClosable="false"
|
||||||
:confirmLoading="confirmLoading"
|
:confirmLoading="confirmLoading"
|
||||||
@ok="handleOk"
|
@ok="handleOk"
|
||||||
@cancel="handleCancel"
|
@cancel="handleCancel"
|
||||||
:cancelButtonProps="{ props: { type: 'warn' } }"
|
:cancelButtonProps="{ props: { type: 'warn' } }"
|
||||||
cancelText="Cancel">
|
cancelText="Cancel"
|
||||||
|
>
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<a-form-model ref="form" :model="model" :rules="validatorRules">
|
<a-form-model ref="form" :model="model" :rules="validatorRules">
|
||||||
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ruleName" label="Rule Name">
|
||||||
<a-form-model-item
|
<a-input placeholder="Please Enter Rule Name" v-model="model.ruleName" />
|
||||||
:labelCol="labelCol"
|
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
prop="ruleName"
|
|
||||||
label="Rule Name">
|
|
||||||
<a-input placeholder="Please Enter Rule Name" v-model="model.ruleName"/>
|
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
<a-form-model-item
|
<a-form-model-item
|
||||||
v-show="showRuleColumn"
|
v-show="showRuleColumn"
|
||||||
:labelCol="labelCol"
|
:labelCol="labelCol"
|
||||||
:wrapperCol="wrapperCol"
|
:wrapperCol="wrapperCol"
|
||||||
prop="ruleColumn"
|
prop="ruleColumn"
|
||||||
label="Rule Column">
|
label="Rule Column"
|
||||||
<a-input placeholder="Please Enter Rule Column" v-model.trim="model.ruleColumn"/>
|
>
|
||||||
|
<a-input placeholder="Please Enter Rule Column" v-model.trim="model.ruleColumn" />
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
<a-form-model-item
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ruleConditions" label="Rule Conditions">
|
||||||
:labelCol="labelCol"
|
<j-dict-select-tag
|
||||||
:wrapperCol="wrapperCol"
|
@input="handleChangeRuleCondition"
|
||||||
prop="ruleConditions"
|
v-model="model.ruleConditions"
|
||||||
label="Rule Conditions">
|
placeholder="Please Enter Rule Conditions"
|
||||||
<j-dict-select-tag @input="handleChangeRuleCondition" v-model="model.ruleConditions" placeholder="Please Enter Rule Conditions" dictCode="rule_conditions"/>
|
dictCode="rule_conditions"
|
||||||
|
/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
<a-form-model-item
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ruleValue" label="Rule Value">
|
||||||
:labelCol="labelCol"
|
<a-input placeholder="Please Enter Rule Value" v-model="model.ruleValue" />
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
prop="ruleValue"
|
|
||||||
label="Rule Value">
|
|
||||||
<a-input placeholder="Please Enter Rule Value" v-model="model.ruleValue"/>
|
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|
||||||
<a-form-model-item
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Status">
|
||||||
:labelCol="labelCol"
|
|
||||||
:wrapperCol="wrapperCol"
|
|
||||||
label="Status">
|
|
||||||
<a-radio-group buttonStyle="solid" v-model="model.status">
|
<a-radio-group buttonStyle="solid" v-model="model.status">
|
||||||
<a-radio-button value="1">Valid</a-radio-button>
|
<a-radio-button value="1">Valid</a-radio-button>
|
||||||
<a-radio-button value="0">Invalid</a-radio-button>
|
<a-radio-button value="0">Invalid</a-radio-button>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|
||||||
</a-form-model>
|
</a-form-model>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { httpAction } from '@/api/manage'
|
import { httpAction } from '@/api/manage'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'PermissionDataRuleModal',
|
name: 'PermissionDataRuleModal',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -69,36 +59,35 @@
|
||||||
model: {},
|
model: {},
|
||||||
ruleConditionList: [],
|
ruleConditionList: [],
|
||||||
labelCol: {
|
labelCol: {
|
||||||
xs: {span: 24},
|
xs: { span: 24 },
|
||||||
sm: {span: 5}
|
sm: { span: 5 },
|
||||||
},
|
},
|
||||||
wrapperCol: {
|
wrapperCol: {
|
||||||
xs: {span: 24},
|
xs: { span: 24 },
|
||||||
sm: {span: 16}
|
sm: { span: 16 },
|
||||||
},
|
},
|
||||||
confirmLoading: false,
|
confirmLoading: false,
|
||||||
permissionId: '',
|
permissionId: '',
|
||||||
validatorRules: {
|
validatorRules: {
|
||||||
ruleConditions: [{required: true, message: '请选择条件!'}],
|
ruleConditions: [{ required: true, message: '请选择条件!' }],
|
||||||
ruleName:[{required: true, message: '请输入规则名称!'}],
|
ruleName: [{ required: true, message: '请输入规则名称!' }],
|
||||||
ruleValue: [{required: true, message: '请输入规则值!'}],
|
ruleValue: [{ required: true, message: '请输入规则值!' }],
|
||||||
ruleColumn: []
|
ruleColumn: [],
|
||||||
},
|
},
|
||||||
url: {
|
url: {
|
||||||
list: '/sys/dictItem/list',
|
list: '/sys/dictItem/list',
|
||||||
add: '/sys/permission/addPermissionRule',
|
add: '/sys/permission/addPermissionRule',
|
||||||
edit: '/sys/permission/editPermissionRule'
|
edit: '/sys/permission/editPermissionRule',
|
||||||
},
|
},
|
||||||
showRuleColumn:true
|
showRuleColumn: true,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {},
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
add(permId) {
|
add(permId) {
|
||||||
this.permissionId = permId
|
this.permissionId = permId
|
||||||
//初始化默认值
|
//初始化默认值
|
||||||
this.edit({status:'1'})
|
this.edit({ status: '1' })
|
||||||
},
|
},
|
||||||
edit(record) {
|
edit(record) {
|
||||||
this.model = Object.assign({}, record)
|
this.model = Object.assign({}, record)
|
||||||
|
@ -118,7 +107,7 @@
|
||||||
handleOk() {
|
handleOk() {
|
||||||
const that = this
|
const that = this
|
||||||
// 触发表单验证
|
// 触发表单验证
|
||||||
this.$refs.form.validate(valid => {
|
this.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
that.confirmLoading = true
|
that.confirmLoading = true
|
||||||
let httpurl = ''
|
let httpurl = ''
|
||||||
|
@ -130,44 +119,45 @@
|
||||||
httpurl += this.url.edit
|
httpurl += this.url.edit
|
||||||
method = 'put'
|
method = 'put'
|
||||||
}
|
}
|
||||||
httpAction(httpurl, this.model, method).then((res) => {
|
httpAction(httpurl, this.model, method)
|
||||||
|
.then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
that.$message.success(res.message)
|
that.$message.success(res.message)
|
||||||
that.$emit('ok')
|
that.$emit('ok')
|
||||||
} else {
|
} else {
|
||||||
that.$message.warning(res.message)
|
that.$message.warning(res.message)
|
||||||
}
|
}
|
||||||
}).finally(() => {
|
})
|
||||||
|
.finally(() => {
|
||||||
that.confirmLoading = false
|
that.confirmLoading = false
|
||||||
that.close()
|
that.close()
|
||||||
})
|
})
|
||||||
}else{
|
} else {
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.close()
|
this.close()
|
||||||
},
|
},
|
||||||
initRuleCondition(){
|
initRuleCondition() {
|
||||||
if(this.model.ruleConditions && this.model.ruleConditions=='USE_SQL_RULES'){
|
if (this.model.ruleConditions && this.model.ruleConditions == 'USE_SQL_RULES') {
|
||||||
this.showRuleColumn = false
|
this.showRuleColumn = false
|
||||||
}else{
|
} else {
|
||||||
this.showRuleColumn = true
|
this.showRuleColumn = true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleChangeRuleCondition(val){
|
handleChangeRuleCondition(val) {
|
||||||
if(val=='USE_SQL_RULES'){
|
if (val == 'USE_SQL_RULES') {
|
||||||
this.model.ruleColumn=''
|
this.model.ruleColumn = ''
|
||||||
this.showRuleColumn = false
|
this.showRuleColumn = false
|
||||||
}else{
|
} else {
|
||||||
this.showRuleColumn = true
|
this.showRuleColumn = true
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
</style>
|
</style>
|
|
@ -5,29 +5,27 @@
|
||||||
:title="title"
|
:title="title"
|
||||||
:width="1000"
|
:width="1000"
|
||||||
:visible="visible"
|
:visible="visible"
|
||||||
|
:maskClosable="false"
|
||||||
@ok="handleOk"
|
@ok="handleOk"
|
||||||
@cancel="handleCancel"
|
@cancel="handleCancel"
|
||||||
:cancelButtonProps="{ props: { type: 'warn' } }"
|
:cancelButtonProps="{ props: { type: 'warn' } }"
|
||||||
cancelText="Cancel">
|
cancelText="Cancel"
|
||||||
|
>
|
||||||
|
|
||||||
<!-- 查询区域 -->
|
<!-- 查询区域 -->
|
||||||
<div class="table-page-search-wrapper">
|
<div class="table-page-search-wrapper">
|
||||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
|
|
||||||
<a-col :span="10">
|
<a-col :span="10">
|
||||||
<a-form-item label="User Name">
|
<a-form-item label="User Name">
|
||||||
<a-input v-model="queryParam.username"></a-input>
|
<a-input v-model="queryParam.username"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
|
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
||||||
<a-button type="primary" @click="searchQuery" icon="search">Search</a-button>
|
<a-button type="primary" @click="searchQuery" icon="search">Search</a-button>
|
||||||
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">Reset</a-button>
|
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">Reset</a-button>
|
||||||
</span>
|
</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -42,27 +40,30 @@
|
||||||
:pagination="ipagination"
|
:pagination="ipagination"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:scroll="{ y: 240 }"
|
:scroll="{ y: 240 }"
|
||||||
:rowSelection="{selectedRowKeys: selectedRowKeys,onSelectAll:onSelectAll,onSelect:onSelect,onChange: onSelectChange}"
|
:rowSelection="{
|
||||||
@change="handleTableChange">
|
selectedRowKeys: selectedRowKeys,
|
||||||
|
onSelectAll: onSelectAll,
|
||||||
|
onSelect: onSelect,
|
||||||
|
onChange: onSelectChange,
|
||||||
|
}"
|
||||||
|
@change="handleTableChange"
|
||||||
|
>
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
<!-- table区域-end -->
|
<!-- table区域-end -->
|
||||||
|
|
||||||
|
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {filterObj} from '@/utils/util'
|
import { filterObj } from '@/utils/util'
|
||||||
import {getAction} from '@/api/manage'
|
import { getAction } from '@/api/manage'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "SelectUserModal",
|
name: 'SelectUserModal',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: "Add From List",
|
title: 'Add From List',
|
||||||
names: [],
|
names: [],
|
||||||
visible: false,
|
visible: false,
|
||||||
placement: 'right',
|
placement: 'right',
|
||||||
|
@ -76,61 +77,60 @@
|
||||||
dataIndex: '',
|
dataIndex: '',
|
||||||
key: 'rowIndex',
|
key: 'rowIndex',
|
||||||
width: 50,
|
width: 50,
|
||||||
align: "center",
|
align: 'center',
|
||||||
customRender: function (t, r, index) {
|
customRender: function (t, r, index) {
|
||||||
return parseInt(index) + 1;
|
return parseInt(index) + 1
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'User Name',
|
title: 'User Name',
|
||||||
align: "center",
|
align: 'center',
|
||||||
width: 100,
|
width: 100,
|
||||||
dataIndex: 'username'
|
dataIndex: 'username',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Real Name',
|
title: 'Real Name',
|
||||||
align: "center",
|
align: 'center',
|
||||||
width: 100,
|
width: 100,
|
||||||
dataIndex: 'realname'
|
dataIndex: 'realname',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Gender',
|
title: 'Gender',
|
||||||
align: "center",
|
align: 'center',
|
||||||
width: 100,
|
width: 100,
|
||||||
dataIndex: 'sex_dictText'
|
dataIndex: 'sex_dictText',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Phone',
|
title: 'Phone',
|
||||||
align: "center",
|
align: 'center',
|
||||||
width: 100,
|
width: 100,
|
||||||
dataIndex: 'phone'
|
dataIndex: 'phone',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Org',
|
title: 'Org',
|
||||||
align: "center",
|
align: 'center',
|
||||||
width: 150,
|
width: 150,
|
||||||
dataIndex: 'orgCode'
|
dataIndex: 'orgCode',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
columns2: [
|
columns2: [
|
||||||
{
|
{
|
||||||
title: 'User Name',
|
title: 'User Name',
|
||||||
align: "center",
|
align: 'center',
|
||||||
dataIndex: 'username',
|
dataIndex: 'username',
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Real Name',
|
title: 'Real Name',
|
||||||
align: "center",
|
align: 'center',
|
||||||
dataIndex: 'realname',
|
dataIndex: 'realname',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Action',
|
title: 'Action',
|
||||||
dataIndex: 'action',
|
dataIndex: 'action',
|
||||||
align: "center",
|
align: 'center',
|
||||||
width: 100,
|
width: 100,
|
||||||
scopedSlots: {customRender: 'action'},
|
scopedSlots: { customRender: 'action' },
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
//数据集
|
//数据集
|
||||||
dataSource1: [],
|
dataSource1: [],
|
||||||
|
@ -146,7 +146,7 @@
|
||||||
},
|
},
|
||||||
showQuickJumper: true,
|
showQuickJumper: true,
|
||||||
showSizeChanger: true,
|
showSizeChanger: true,
|
||||||
total: 0
|
total: 0,
|
||||||
},
|
},
|
||||||
isorter: {
|
isorter: {
|
||||||
column: 'createTime',
|
column: 'createTime',
|
||||||
|
@ -156,52 +156,52 @@
|
||||||
selectedRowKeys: [],
|
selectedRowKeys: [],
|
||||||
selectedRows: [],
|
selectedRows: [],
|
||||||
url: {
|
url: {
|
||||||
list: "/sys/user/list",
|
list: '/sys/user/list',
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.loadData();
|
this.loadData()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
searchQuery() {
|
searchQuery() {
|
||||||
this.loadData(1);
|
this.loadData(1)
|
||||||
},
|
},
|
||||||
searchReset() {
|
searchReset() {
|
||||||
this.queryParam = {};
|
this.queryParam = {}
|
||||||
this.loadData(1);
|
this.loadData(1)
|
||||||
},
|
},
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
},
|
},
|
||||||
handleOk() {
|
handleOk() {
|
||||||
this.dataSource2 = this.selectedRowKeys;
|
this.dataSource2 = this.selectedRowKeys
|
||||||
console.log("data:" + this.dataSource2);
|
console.log('data:' + this.dataSource2)
|
||||||
this.$emit("selectFinished", this.dataSource2);
|
this.$emit('selectFinished', this.dataSource2)
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
},
|
},
|
||||||
add() {
|
add() {
|
||||||
this.visible = true;
|
this.visible = true
|
||||||
},
|
},
|
||||||
loadData(arg) {
|
loadData(arg) {
|
||||||
//加载数据 若传入参数1则加载第一页的内容
|
//加载数据 若传入参数1则加载第一页的内容
|
||||||
if (arg === 1) {
|
if (arg === 1) {
|
||||||
this.ipagination.current = 1;
|
this.ipagination.current = 1
|
||||||
}
|
}
|
||||||
var params = this.getQueryParams();//查询条件
|
var params = this.getQueryParams() //查询条件
|
||||||
getAction(this.url.list, params).then((res) => {
|
getAction(this.url.list, params).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.dataSource1 = res.result.records;
|
this.dataSource1 = res.result.records
|
||||||
this.ipagination.total = res.result.total;
|
this.ipagination.total = res.result.total
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getQueryParams() {
|
getQueryParams() {
|
||||||
var param = Object.assign({}, this.queryParam, this.isorter);
|
var param = Object.assign({}, this.queryParam, this.isorter)
|
||||||
param.field = this.getQueryField();
|
param.field = this.getQueryField()
|
||||||
param.pageNo = this.ipagination.current;
|
param.pageNo = this.ipagination.current
|
||||||
param.pageSize = this.ipagination.pageSize;
|
param.pageSize = this.ipagination.pageSize
|
||||||
return filterObj(param);
|
return filterObj(param)
|
||||||
},
|
},
|
||||||
getQueryField() {
|
getQueryField() {
|
||||||
//TODO 字段权限控制
|
//TODO 字段权限控制
|
||||||
|
@ -209,81 +209,80 @@
|
||||||
onSelectAll(selected, selectedRows, changeRows) {
|
onSelectAll(selected, selectedRows, changeRows) {
|
||||||
if (selected === true) {
|
if (selected === true) {
|
||||||
for (var a = 0; a < changeRows.length; a++) {
|
for (var a = 0; a < changeRows.length; a++) {
|
||||||
this.dataSource2.push(changeRows[a]);
|
this.dataSource2.push(changeRows[a])
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (var b = 0; b < changeRows.length; b++) {
|
for (var b = 0; b < changeRows.length; b++) {
|
||||||
this.dataSource2.splice(this.dataSource2.indexOf(changeRows[b]), 1);
|
this.dataSource2.splice(this.dataSource2.indexOf(changeRows[b]), 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// console.log(selected, selectedRows, changeRows);
|
// console.log(selected, selectedRows, changeRows);
|
||||||
},
|
},
|
||||||
onSelect(record, selected) {
|
onSelect(record, selected) {
|
||||||
if (selected === true) {
|
if (selected === true) {
|
||||||
this.dataSource2.push(record);
|
this.dataSource2.push(record)
|
||||||
} else {
|
} else {
|
||||||
var index = this.dataSource2.indexOf(record);
|
var index = this.dataSource2.indexOf(record)
|
||||||
//console.log();
|
//console.log();
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
this.dataSource2.splice(this.dataSource2.indexOf(record), 1);
|
this.dataSource2.splice(this.dataSource2.indexOf(record), 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onSelectChange(selectedRowKeys, selectedRows) {
|
onSelectChange(selectedRowKeys, selectedRows) {
|
||||||
this.selectedRowKeys = selectedRowKeys;
|
this.selectedRowKeys = selectedRowKeys
|
||||||
this.selectionRows = selectedRows;
|
this.selectionRows = selectedRows
|
||||||
},
|
},
|
||||||
onClearSelected() {
|
onClearSelected() {
|
||||||
this.selectedRowKeys = [];
|
this.selectedRowKeys = []
|
||||||
this.selectionRows = [];
|
this.selectionRows = []
|
||||||
},
|
},
|
||||||
handleDelete: function (record) {
|
handleDelete: function (record) {
|
||||||
this.dataSource2.splice(this.dataSource2.indexOf(record), 1);
|
this.dataSource2.splice(this.dataSource2.indexOf(record), 1)
|
||||||
},
|
},
|
||||||
handleTableChange(pagination, filters, sorter) {
|
handleTableChange(pagination, filters, sorter) {
|
||||||
//分页、排序、筛选变化时触发
|
//分页、排序、筛选变化时触发
|
||||||
console.log(sorter);
|
console.log(sorter)
|
||||||
//TODO 筛选
|
//TODO 筛选
|
||||||
if (Object.keys(sorter).length > 0) {
|
if (Object.keys(sorter).length > 0) {
|
||||||
this.isorter.column = sorter.field;
|
this.isorter.column = sorter.field
|
||||||
this.isorter.order = "ascend" == sorter.order ? "asc" : "desc"
|
this.isorter.order = 'ascend' == sorter.order ? 'asc' : 'desc'
|
||||||
}
|
|
||||||
this.ipagination = pagination;
|
|
||||||
this.loadData();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
this.ipagination = pagination
|
||||||
|
this.loadData()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.ant-card-body .table-operator {
|
.ant-card-body .table-operator {
|
||||||
margin-bottom: 18px;
|
margin-bottom: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-table-tbody .ant-table-row td {
|
.ant-table-tbody .ant-table-row td {
|
||||||
padding-top: 15px;
|
padding-top: 15px;
|
||||||
padding-bottom: 15px;
|
padding-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.anty-row-operator button {
|
.anty-row-operator button {
|
||||||
margin: 0 5px
|
margin: 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-btn-danger {
|
.ant-btn-danger {
|
||||||
background-color: #ffffff
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-modal-cust-warp {
|
.ant-modal-cust-warp {
|
||||||
height: 100%
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-modal-cust-warp .ant-modal-body {
|
.ant-modal-cust-warp .ant-modal-body {
|
||||||
height: calc(100% - 110px) !important;
|
height: calc(100% - 110px) !important;
|
||||||
overflow-y: auto
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-modal-cust-warp .ant-modal-content {
|
.ant-modal-cust-warp .ant-modal-content {
|
||||||
height: 90% !important;
|
height: 90% !important;
|
||||||
overflow-y: hidden
|
overflow-y: hidden;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
Loading…
Reference in New Issue
Block a user