Browse Source

Merge pull request 'cjl-new' (#78) from cjl-new into master

Reviewed-on: http://120.26.116.243:3000/root/alert-front/pulls/78
pull/74/head
chenjiale 1 month ago
parent
commit
81ae32beb8
  1. 38
      src/views/model/AssessReport.vue
  2. 21
      src/views/model/train/index.vue

38
src/views/model/AssessReport.vue

@ -95,7 +95,7 @@ export default defineComponent({
const baseInfo = ref<Record<string, any>>({})
const modeRows = ref<ModeRow[]>([])
const pointRows = ref<AssessPointRow[]>([])
const assessRows = ref<AssessRow[]>([])
const assess = ref<AssessRow[]>([])
const assessResult = ref<AssessResultRow[]>(defaultAssessResult())
const cleanSummary = ref<AssessCleanSummary>()
const cleanModalVisible = ref(false)
@ -308,7 +308,7 @@ export default defineComponent({
modelName.value = detail.modelName
modeRows.value = detail.report.modeRows || []
pointRows.value = (detail.report.pointRows || []).map((item, index) => normalizePointRow(item, index))
assessRows.value = (detail.report.assessRows || []).map((item, index) => hydrateAssessRow(item, index))
assess.value = (detail.report.assess || []).map((item, index) => hydrateAssessRow(item, index))
assessResult.value = detail.report.assessResult || defaultAssessResult()
identifier.value = detail.report.identifier || identifier.value
timestamp.value = detail.report.time || ''
@ -327,7 +327,7 @@ export default defineComponent({
{ name: '样本类型', content: '训练样本' },
{ name: '样本数量', content: sampleCount ?? '--' },
]
assessRows.value
assess.value
= pointRows.value
.filter(item => item.alarm)
.map((item, index) => buildAssessRow({ ...item, index })) || []
@ -354,13 +354,13 @@ export default defineComponent({
const toggleAlarm = (row: AssessPointRow, checked: boolean) => {
row.alarm = checked
assessRows.value = assessRows.value.filter(item => item.pointId !== row.pointId)
assess.value = assess.value.filter(item => item.pointId !== row.pointId)
if (checked)
assessRows.value.push(buildAssessRow(row))
assess.value.push(buildAssessRow(row))
}
const applyRound = () => {
assessRows.value = assessRows.value.map(item => ({
assess.value = assess.value.map(item => ({
...item,
amplitude: Math.round(Number(item.amplitude) || 0),
}))
@ -369,7 +369,7 @@ export default defineComponent({
const applyAbsoluteBias = () => {
if (biasForm.absolute === undefined)
return
assessRows.value = assessRows.value.map(item => ({
assess.value = assess.value.map(item => ({
...item,
amplitude: biasForm.absolute,
}))
@ -378,14 +378,14 @@ export default defineComponent({
const applyRelativeBias = () => {
if (biasForm.relative === undefined)
return
assessRows.value = assessRows.value.map(item => ({
assess.value = assess.value.map(item => ({
...item,
amplitude: Number((Number(item.amplitude || 0) + biasForm.relative!).toFixed(2)),
}))
}
const applyPercentBias = () => {
assessRows.value = assessRows.value.map((item) => {
assess.value = assess.value.map((item) => {
const point = pointRows.value.find(p => p.pointId === item.pointId)
const delta = point ? Number(point.TMax || point.tMax || 0) - Number(point.TMin || point.tMin || 0) : 0
const amplitude = Number(((biasForm.percent / 100) * delta).toFixed(2))
@ -413,7 +413,7 @@ export default defineComponent({
let backward = 0
let forwardBase = 0
let backwardBase = 0
assessRows.value.forEach((item) => {
assess.value.forEach((item) => {
if (!item.fdr || !item.far)
return
const fdr = item.fdr.split('/')
@ -430,7 +430,7 @@ export default defineComponent({
const forwardScore = forwardBase ? (forward / forwardBase) * 100 : 0
const backwardScore = backwardBase ? (backward / backwardBase) * 100 : 0
const avg = (forwardScore + backwardScore) / 2
const beta = 1 / (1 + Math.exp(-((assessRows.value.length / 100) ** 2))) - 0.5
const beta = 1 / (1 + Math.exp(-((assess.value.length / 100) ** 2))) - 0.5
const finalScore = Number((avg + (100 - avg) * beta * 2).toFixed(2))
const bottom = bottomScore.value ?? 0
return {
@ -467,7 +467,7 @@ export default defineComponent({
uplow.push(`${p.Lower ?? p.lower ?? null},${p.Upper ?? p.upper ?? null}`)
})
const selected = row ? [row] : assessRows.value
const selected = row ? [row] : assess.value
selected.forEach((item) => {
const idx = item.index ?? points.findIndex(p => p.pointId === item.pointId)
if (idx >= 0)
@ -515,7 +515,7 @@ export default defineComponent({
}
const handleEvaluate = async (row?: AssessRow) => {
if (!assessRows.value.length) {
if (!assess.value.length) {
createMessage.warning('请先选择参与预警的参数')
return
}
@ -531,7 +531,7 @@ export default defineComponent({
const payload = {
modelId: modelId.value as string,
version: formModel.version,
assessRows: row ? [row] : assessRows.value,
assess: row ? [row] : assess.value,
pointRows: pointRows.value,
timeRange: formModel.timeRange
? formModel.timeRange.map(t => dayjs(t).format('YYYY-MM-DD HH:mm:ss'))
@ -544,7 +544,7 @@ export default defineComponent({
const res = await evaluateAssess(payload)
if (res?.points) {
res.points.forEach((result) => {
assessRows.value = assessRows.value.map((item) => {
assess.value = assess.value.map((item) => {
const match = item.pointId === result.pointId || item.index === result.index
if (!match)
return item
@ -583,7 +583,7 @@ export default defineComponent({
createMessage.warning('验证人不能为空')
return
}
if (!assessRows.value.length) {
if (!assess.value.length) {
createMessage.warning('请至少保留一个参与预警的参数')
return
}
@ -600,7 +600,7 @@ export default defineComponent({
report: {
pointRows: pointRows.value,
modeRows: modeRows.value,
assessRows: assessRows.value,
assess: assess.value,
assessResult: assessResult.value,
identifier: identifier.value,
time: timestamp.value || dayjs().format('YYYY-MM-DD HH:mm:ss'),
@ -695,7 +695,7 @@ export default defineComponent({
return {
assessColumns,
assessResult,
assessRows,
assess,
applyAbsoluteBias,
applyPercentBias,
applyRelativeBias,
@ -780,7 +780,7 @@ export default defineComponent({
</div>
</div>
<a-table
:columns="assessColumns" :data-source="assessRows" row-key="pointId" size="small" bordered
:columns="assessColumns" :data-source="assess" row-key="pointId" size="small" bordered
:pagination="{ pageSize: 10 }" align="center"
/>
</a-card>

21
src/views/model/train/index.vue

@ -27,6 +27,8 @@ import {
Tabs,
} from 'ant-design-vue'
import VueECharts from 'vue-echarts'
import PointTransfer from '../components/PointTransfer.vue'
import { buildPointKeyFromInfo, parsePointKey } from '../components/pointTransferHelper'
import { pointTableSchema, sampleInfoTableSchema } from './data'
import { BasicTable, useTable } from '@/components/Table'
import { PageWrapper } from '@/components/Page'
@ -46,8 +48,6 @@ import { useECharts } from '@/hooks/web/useECharts'
import { useMessage } from '@/hooks/web/useMessage'
import { useGo } from '@/hooks/web/usePage'
import Icon from '@/components/Icon'
import PointTransfer from '../components/PointTransfer.vue'
import { buildPointKeyFromInfo, parsePointKey } from '../components/pointTransferHelper'
export default defineComponent({
components: {
@ -208,7 +208,7 @@ export default defineComponent({
const point = model.value?.pointInfo[index]
return {
data: [item],
name: `${index + 1}.${point?.description}(${point?.PointId})`,
name: `${index + 1}.${point?.Description}(${point?.PointId})`,
}
})
echartsRefs.value = Array.from({ length: historyList.value.length })
@ -260,7 +260,7 @@ export default defineComponent({
return [xData[i], t]
}),
],
name: `${index + 1}.${point?.description}(${point?.PointId})`,
name: `${index + 1}.${point?.Description}(${point?.PointId})`,
}
})
brushActivated.value = new Set()
@ -310,6 +310,17 @@ export default defineComponent({
const color = ['blue', '#ff6f00', 'red']
const yIndex = [0, 0, 1]
const option = {
tooltip: {
trigger: 'axis',
confine: true,
formatter(params: any) {
if (!Array.isArray(params) || !params.length)
return ''
const time = dayjs(params[0].value?.[0]).format('YYYY-MM-DD HH:mm:ss')
const lines = params.map((p: any) => `${p.marker}${p.seriesName || name[p.seriesIndex] || ''}${p.value?.[1] ?? '-'}`)
return [`时间:${time}`, ...lines].join('<br/>')
},
},
xAxis: {
type: 'time',
axisLabel: {
@ -408,7 +419,7 @@ export default defineComponent({
isInitBrush.value = false
return
}
console.log(isInitBrush.value,model.value?.version)
console.log(isInitBrush.value, model.value?.version)
if (!isInitBrush.value && model.value?.version != 'v-test')
return

Loading…
Cancel
Save