Compare commits

...

2 Commits

2 changed files with 87 additions and 26 deletions

View File

@ -215,13 +215,9 @@ export default {
async handler(newVal, oldVal) { async handler(newVal, oldVal) {
const sampleData = getSampleData(newVal.inputFileName) const sampleData = getSampleData(newVal.inputFileName)
if (sampleData) { if (sampleData) {
const { data, from } = sampleData const { data } = sampleData
this.sampleDetail = data this.sampleDetail = data
this.changeChartByType('sample') this.changeChartByType('sample')
if (from == 'db') {
this.sampleDetail = data
}
this.ROIAnalyzeLists = data.ROIAnalyzeLists || []
} else { } else {
if (newVal.sampleId) { if (newVal.sampleId) {
this.getDetailFromDB() this.getDetailFromDB()
@ -272,7 +268,7 @@ export default {
const { success, result, message } = await postAction('/selfStation/Reprocessing', formData) const { success, result, message } = await postAction('/selfStation/Reprocessing', formData)
if (success) { if (success) {
const analyseList = this.getROIAnalyzeListsFromResult(result) const analyseList = this.getROIAnalyzeListsFromResult(result)
this.ROIAnalyzeLists = analyseList this.ROIAnalyzeLists = this.spectraType == 'sample' ? analyseList : []
updateSampleData({ updateSampleData({
inputFileName, inputFileName,
key: 'ROIAnalyzeLists', key: 'ROIAnalyzeLists',
@ -409,7 +405,7 @@ export default {
} }
}, },
// //
async getDetailFromDB() { async getDetailFromDB() {
const { dbName, sampleId, analyst, inputFileName } = this.sample const { dbName, sampleId, analyst, inputFileName } = this.sample
try { try {
@ -434,7 +430,6 @@ export default {
}) })
const analyseList = this.getROIAnalyzeListsFromResult(result.sample) const analyseList = this.getROIAnalyzeListsFromResult(result.sample)
this.ROIAnalyzeLists = analyseList
updateSampleData({ updateSampleData({
inputFileName, inputFileName,
key: 'ROIAnalyzeLists', key: 'ROIAnalyzeLists',

View File

@ -26,8 +26,16 @@
@resize="handleChartResize" @resize="handleChartResize"
/> />
<div class="bar"> <div class="bar">
<div>{{ visualMapMax }}</div> <div>{{ visualMap.max }}</div>
<div class="bar-main"></div> <div class="bar-main">
<a-slider
v-model="visualMap.value"
range
vertical
:max="visualMap.max"
@afterChange="handleSliderChange"
></a-slider>
</div>
<div>0</div> <div>0</div>
</div> </div>
</div> </div>
@ -224,7 +232,6 @@ export default {
return { return {
showROI: true, showROI: true,
myChart: null,
startChannel: null, startChannel: null,
endChannel: null, endChannel: null,
boundaryList: [], // boundaryList: [], //
@ -232,8 +239,6 @@ export default {
isLog: true, // log isLog: true, // log
currBoundaryItem: null, // currBoundaryItem: null, //
visualMapMax: 0,
chartAxis: cloneDeep(ChartAxis), chartAxis: cloneDeep(ChartAxis),
boundary: [], boundary: [],
@ -243,6 +248,12 @@ export default {
g: 0, g: 0,
c: 0, c: 0,
}, },
visualMap: {
//
value: [0, 0],
max: 0,
},
} }
}, },
created() { created() {
@ -357,23 +368,52 @@ export default {
// scatter // scatter
buildScatterItem(xAxis, yAxis, count) { buildScatterItem(xAxis, yAxis, count) {
const { r, g, b } = this.interpolateColor(1 - count / this.visualMapMax)
return { return {
value: [xAxis, yAxis], value: [xAxis, yAxis, count],
itemStyle: { itemStyle: {
color: `rgb(${r}, ${g}, ${b})`, color: this.getScatterItemColor(count),
}, },
} }
}, },
setVisialMapParams() { //
const counts = this.histogramDataList.filter(({ c }) => c).map(({ c }) => c) getScatterItemColor(count) {
if (counts.length) { const [min, max] = this.visualMap.value
this.visualMapMax = counts.sort((a, b) => b - a)[0] let color = ''
if (count >= max) {
color = '#f00'
} else if (count <= min) {
color = '#fff'
} else { } else {
this.visualMapMax = 0 const { r, g, b } = this.interpolateColor(1 - (count - min) / (max - min))
color = `rgb(${r}, ${g}, ${b})`
} }
return color
},
//
setVisialMapParams() {
const counts = this.histogramDataList
.filter(({ c }) => c)
.map(({ c }) => c)
.sort((a, b) => b - a)
const max = (counts[0] || 0) + 100
// 100
this.visualMap.max = max
this.visualMap.value = [0, max]
},
//
handleSliderChange() {
this.scatterList.forEach((item) => {
item.itemStyle.color = this.getScatterItemColor(item.value[2])
})
this.$refs.chartTwoDRef.setOption({
series: {
data: this.scatterList,
},
})
}, },
// //
@ -710,7 +750,35 @@ export default {
&-main { &-main {
width: 14px; width: 14px;
flex: 1; flex: 1;
background: linear-gradient(to bottom, #ff0000 0, #fff 100%);
.ant-slider {
margin: 0;
padding: 0;
::v-deep {
.ant-slider-handle {
left: -2px;
right: -2px;
border-radius: 0;
margin-left: 0;
box-shadow: none;
border: 0;
background: #0cebc9;
height: 6px;
width: auto;
}
.ant-slider-rail {
width: 100%;
background: #084248 !important;
}
.ant-slider-track {
width: 100%;
background: linear-gradient(to bottom, #f00 0, #fff 100%);
}
}
}
} }
} }
} }
@ -728,11 +796,9 @@ export default {
} }
&.disabled { &.disabled {
cursor: not-allowed;
.boundary-item-left, .boundary-item-left,
.boundary-item-right { .boundary-item-right {
cursor: default; pointer-events: none;
} }
} }
} }