Browse Source

feat:预警配置关联数据库

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

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

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

Loading…
Cancel
Save