|
|
@@ -1,11 +1,59 @@
|
|
|
+<template>
|
|
|
+ <div class="p-2">
|
|
|
+ <NForm :model="form" :rules="rules" label-placement="left" style="width: 100%" ref="formRef" label-width="88px"
|
|
|
+ size="small">
|
|
|
+ <NFormItem label="SN" path="sn">
|
|
|
+ <NInput v-model:value="form.sn" :allow-input="handleAllowInput" />
|
|
|
+ </NFormItem>
|
|
|
+ <NFormItem label="描述" path="description">
|
|
|
+ <NInput type="textarea" v-model:value="form.description" />
|
|
|
+ </NFormItem>
|
|
|
+ <NFormItem label="时间" path="timePeriod">
|
|
|
+ <NDatePicker v-model:formatted-value="form.timePeriod" value-format="yyyy.MM.dd HH:mm:ss" type="datetimerange"
|
|
|
+ clearable />
|
|
|
+ </NFormItem>
|
|
|
+
|
|
|
+ <NCollapse :trigger-areas="['arrow']">
|
|
|
+ <NCollapseItem :disable="!form.enableEventAndAlarm" title="事件&告警">
|
|
|
+ <template #header-extra>
|
|
|
+ <NSwitch v-model:value="form.enableEventAndAlarm" size="small" />
|
|
|
+ </template>
|
|
|
+ </NCollapseItem>
|
|
|
+ <NCollapseItem :disable="!form.enableCloudLog" title="云通讯日志">
|
|
|
+ <template #header-extra>
|
|
|
+ <NSwitch v-model:value="form.enableCloudLog" size="small" />
|
|
|
+ </template>
|
|
|
+ </NCollapseItem>
|
|
|
+ <NCollapseItem :disable="!form.enableSiteLog" title="设备日志">
|
|
|
+ <template #header-extra>
|
|
|
+ <NSwitch v-model:value="form.enableSiteLog" size="small" />
|
|
|
+ </template>
|
|
|
+ </NCollapseItem>
|
|
|
+ </NCollapse>
|
|
|
+ </NForm>
|
|
|
+ <div class="flex justify-end gap-x-4">
|
|
|
+ <NButton secondary @click="emits('cancel')">
|
|
|
+ 取消
|
|
|
+ </NButton>
|
|
|
+ <NButton secondary type="warning" @click="reset">
|
|
|
+ 重置
|
|
|
+ </NButton>
|
|
|
+ <NButton type="success" @click="handleSubmitClick">
|
|
|
+ 确定
|
|
|
+ </NButton>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
<script setup lang="ts">
|
|
|
-import { computed, onMounted, useTemplateRef } from 'vue'
|
|
|
-import { NForm, NFormItem, NInput, NButton, NCollapseItem, NSwitch } from 'naive-ui'
|
|
|
+import { onMounted, useTemplateRef } from 'vue'
|
|
|
+import { NForm, NFormItem, NInput, NButton, NCollapseItem, NSwitch, NDatePicker } from 'naive-ui'
|
|
|
import type { FormRules } from 'naive-ui'
|
|
|
|
|
|
import { useResettableReactive } from '@/composable/useResettable'
|
|
|
|
|
|
import type { AnalysisConfig } from '@/service/sitesAnalysis/interface'
|
|
|
+import { getManageConfig } from '@/service/sitesAnalysis'
|
|
|
|
|
|
interface AnalysisConfigForm extends AnalysisConfig { }
|
|
|
|
|
|
@@ -16,7 +64,7 @@ const { id } = defineProps<{
|
|
|
const formRef = useTemplateRef<InstanceType<typeof NForm>>('formRef')
|
|
|
|
|
|
const emits = defineEmits<{
|
|
|
- (e: 'submit'): void
|
|
|
+ (e: 'submit', value: AnalysisConfig): void
|
|
|
(e: 'cancel'): void
|
|
|
}>()
|
|
|
|
|
|
@@ -24,7 +72,7 @@ const [form, setUserForm, reset, updateInitialState] = useResettableReactive<Ana
|
|
|
id: '',
|
|
|
sn: '',
|
|
|
description: '',
|
|
|
- timePeriod: ["", ""],
|
|
|
+ timePeriod: null,
|
|
|
|
|
|
enableEventAndAlarm: false,
|
|
|
enableCloudLog: false,
|
|
|
@@ -45,71 +93,20 @@ const rules: FormRules = {
|
|
|
const handleSubmitClick = () => {
|
|
|
formRef.value?.validate().then((valid) => {
|
|
|
if (valid) {
|
|
|
- emits('submit')
|
|
|
+ emits('submit', form)
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-onMounted(() => {
|
|
|
+onMounted(async () => {
|
|
|
if (id !== undefined) {
|
|
|
// 请求表单数据
|
|
|
+ const cfg = await getManageConfig(id)
|
|
|
|
|
|
// 填入表单数据
|
|
|
- // setUserForm({ ...data })
|
|
|
+ setUserForm({ ...cfg })
|
|
|
// 设置表单数据重置状态
|
|
|
- // updateInitialState({
|
|
|
- // name: data.name ?? '',
|
|
|
- // description: data.description ?? '',
|
|
|
- // siteList: data.siteList ?? ''
|
|
|
- // })
|
|
|
+ updateInitialState({ ...cfg })
|
|
|
}
|
|
|
})
|
|
|
</script>
|
|
|
-<template>
|
|
|
- <div class="p-2">
|
|
|
- <NForm :model="form" :rules="rules" label-placement="left" style="width: 100%" ref="formRef" label-width="88px"
|
|
|
- size="small">
|
|
|
- <NFormItem label="SN" path="sn">
|
|
|
- <NInput v-model:value="form.sn" :allow-input="handleAllowInput" />
|
|
|
- </NFormItem>
|
|
|
- <NFormItem label="描述" path="description">
|
|
|
- <NInput type="textarea" v-model:value="form.description" />
|
|
|
- </NFormItem>
|
|
|
- <NFormItem label="时间" path="timePeriod">
|
|
|
- <NDatePicker v-model:formatted-value="form.timePeriod" type="datetimerange" clearable />
|
|
|
- </NFormItem>
|
|
|
-
|
|
|
- <NCollapse :trigger-areas="['arrow']">
|
|
|
- <NCollapseItem :disable="!form.enableEventAndAlarm">
|
|
|
- <template #header-extra>
|
|
|
- <NSwitch v-model:value="form.enableEventAndAlarm" size="small" />
|
|
|
- </template>
|
|
|
- <div>事件&告警</div>
|
|
|
- </NCollapseItem>
|
|
|
- <NCollapseItem :disable="!form.enableCloudLog">
|
|
|
- <template #header-extra>
|
|
|
- <NSwitch v-model:value="form.enableCloudLog" size="small" />
|
|
|
- </template>
|
|
|
- <div>云通讯日志</div>
|
|
|
- </NCollapseItem>
|
|
|
- <NCollapseItem :disable="!form.enableSiteLog">
|
|
|
- <template #header-extra>
|
|
|
- <NSwitch v-model:value="form.enableSiteLog" size="small" />
|
|
|
- </template>
|
|
|
- <div>设备日志</div>
|
|
|
- </NCollapseItem>
|
|
|
- </NCollapse>
|
|
|
- </NForm>
|
|
|
- <div class="flex justify-end gap-x-4">
|
|
|
- <NButton secondary @click="emits('cancel')">
|
|
|
- 取消
|
|
|
- </NButton>
|
|
|
- <NButton secondary type="warning" @click="reset">
|
|
|
- 重置
|
|
|
- </NButton>
|
|
|
- <NButton type="success" @click="handleSubmitClick">
|
|
|
- 确定
|
|
|
- </NButton>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</template>
|