Browse Source

feat:预警配置关联数据库

pull/123/head
xiaojinfei 2 days ago
parent
commit
e38ed569f9
  1. 6
      src/api/alert/warn/index.ts
  2. 90
      src/views/warn/config/UpdateModal.vue
  3. 14
      src/views/warn/config/warn.data.ts

6
src/api/alert/warn/index.ts

@ -26,6 +26,12 @@ export function getWarnPageReal(params: WarnPageReqVO) {
return defHttp.get({ url: '/alert/warn/page-real', params })
}
// 修改预警
export function createWarn(data: WarnVO) {
return defHttp.post({ url: '/alert/warn/create', data })
}
// 修改预警
export function updateWarn(data: WarnVO) {
return defHttp.put({ url: '/alert/warn/update', data })

90
src/views/warn/config/UpdateModal.vue

@ -5,7 +5,7 @@ import {useI18n} from '@/hooks/web/useI18n'
import {useMessage} from '@/hooks/web/useMessage'
import {BasicForm, useForm} from '@/components/Form'
import {BasicModal, useModalInner} from '@/components/Modal'
import {getWarn, updateWarn} from '@/api/alert/warn'
import {getWarn, createWarn, updateWarn} from '@/api/alert/warn'
import {getSearchFormSchema} from '@/views/run/instant/instant.data'
import {Divider, Descriptions, DescriptionsItem} from 'ant-design-vue'
import {getInstantPoint} from "@/api/alert/run/instant";
@ -16,7 +16,7 @@ const emit = defineEmits(['success', 'register'])
const {t} = useI18n()
const {createMessage} = useMessage()
const isUpdate = ref(true)
const pointLoading = ref(true)
//
const [registerQueryForm, {
@ -50,13 +50,43 @@ function getPointInfo(list, inputName) {
}
async function handleQuery() {
//
const queryValues = await validateQueryForm()
//
const res = await getInstantPoint(queryValues.mpId)
//inputNameinputName
pointInfo.value = getPointInfo(res, queryValues?.inputName)
setProps({
submitButtonOptions: { loading: true },
})
try {
//
const queryValues = await validateQueryForm()
pointLoading.value = true
//
const res = await getInstantPoint(queryValues.mpId)
//inputNameinputName
pointInfo.value = getPointInfo(res, queryValues?.inputName)
// biasPointInfo:"XN.M00010001B"
// faultVariablePointInfo:"XN.M00010001F"
// id:1
// inputInfo:"HN_01_1RRA010MT_AVALUE"
// inputName:"HN_01_1RRA010MT_AVALUE"
// outPointInfo:"XN.M00010001R"
// unit:""
const {inputInfo, inputName, outPointInfo, ...rest} = pointInfo.value
//
pointInfo.value = {
...rest,
pointId: inputInfo,
pointName: inputName,
outputPoint: outPointInfo,
}
}
finally {
setProps({
submitButtonOptions: { loading: false },
})
pointLoading.value = false
}
}
const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
resetFields()
setModalProps({width: 800, useWrapper: true, minHeight: 180, confirmLoading: false})
@ -74,19 +104,35 @@ const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data)
await handleQuery()
}
})
async function handleSubmit() {
try {
const values = await validate()
//
if (values.inputName !== pointInfo.value.pointName) {
createMessage.error('请确保点号信息与查询结果一致,如果不一致请重新查询')
return
}
setModalProps({confirmLoading: true})
if (unref(isUpdate)) {
await updateWarn(values)
closeModal()
emit('success')
createMessage.success(t('common.saveSuccessText'))
}
else{
//
await updateWarn(values)
closeModal()
emit('success')
createMessage.success(t('common.saveSuccessText'))
} else {
//
//
const queryValues = await validateQueryForm()
//
const values = await validate()
//
const mergedValues = {...queryValues, ...values, ...pointInfo.value}
//
mergedValues.equation = `[${mergedValues.biasPointInfo}]>UPLIMIT or [${mergedValues.biasPointInfo}]<LOWLIMIT`
await createWarn(mergedValues)
closeModal()
emit('success')
createMessage.success(t('common.saveSuccessText'))
}
} finally {
setModalProps({confirmLoading: false})
@ -101,14 +147,16 @@ async function handleSubmit() {
<BasicForm v-if="!isUpdate" @register="registerQueryForm" @submit="handleQuery"/>
<Divider v-if="!isUpdate" style="margin-top:0px"/>
<!--查询出来的结果-->
<spin :spinning="pointLoading">
<Descriptions v-if="!isUpdate" bordered size="small" :column="2">
<DescriptionsItem label="测点名">{{ pointInfo?.inputInfo }}</DescriptionsItem>
<DescriptionsItem label="测点点号">{{ pointInfo?.inputName }}</DescriptionsItem>
<DescriptionsItem label="重构点名">{{ pointInfo?.inputInfo + "-重构值" }}</DescriptionsItem>
<DescriptionsItem label="重构点号">{{ pointInfo?.outPointInfo }}</DescriptionsItem>
<DescriptionsItem label="残差点名">{{ pointInfo?.inputInfo + "-偏差值" }}</DescriptionsItem>
<DescriptionsItem label="测点名">{{ pointInfo?.pointName }}</DescriptionsItem>
<DescriptionsItem label="测点点号">{{ pointInfo?.pointId }}</DescriptionsItem>
<DescriptionsItem label="重构点名">{{ pointInfo?.pointName + "-重构值" }}</DescriptionsItem>
<DescriptionsItem label="重构点号">{{ pointInfo?.outputPoint }}</DescriptionsItem>
<DescriptionsItem label="残差点名">{{ pointInfo?.pointName + "-偏差值" }}</DescriptionsItem>
<DescriptionsItem label="残差点号">{{ pointInfo?.biasPointInfo }}</DescriptionsItem>
</Descriptions>
</spin>
<Divider v-if="!isUpdate" style="margin-top:10px"/>
<BasicForm @register="registerForm"/>
</BasicModal>

14
src/views/warn/config/warn.data.ts

@ -149,6 +149,12 @@ export const updateWarnForm: FormSchema[] = [
component: 'Input',
required: true,
show: false,
dynamicRules: ({ values }) => {
// 假设:有 warnId = 编辑,没有 = 新增
return values.warnId
? [{ required: true, message: '编号不能为空' }]
: []
},
},
{
label: '残差上限',
@ -562,7 +568,7 @@ export const InstantForm: FormSchema[] = [
component: 'Select',
defaultValue: mpList.value?.[0]?.mpId,
colProps: { span:10},
componentProps: () => ({
componentProps: ({ formModel, formActionType }) => ({
placeholder: '模型实例',
allowClear: false,
options:mpList.value.map(instant => ({
@ -574,14 +580,14 @@ export const InstantForm: FormSchema[] = [
const res = await getInstantPoint(mpId)
console.log(res)
pointList.value=res;
formModel.inputName = res.data?.[0]?.inputName
formModel.inputName = res[0]?.inputName
formActionType.setFieldsValue({
inputName: res.data?.[0]?.inputName,
inputName: res[0]?.inputName,
})
}
})},
{
label: '预警点',
label: '预警点',
field: 'inputName',
component: 'Select',
defaultValue: pointList.value?.[0]?.inputName,

Loading…
Cancel
Save