|
|
@@ -35,7 +35,7 @@
|
|
|
<a-form-item label="触发事件" >
|
|
|
<a-select allowClear v-model:value="queryParams.subjectEvent" placeholder="选择触发事件">
|
|
|
<a-select-option
|
|
|
- v-for="item in subjectEventList"
|
|
|
+ v-for="item in Array.from(RuleController.SubjectEventMap, ([key, value]) => ({ ...value, value: value.key }))"
|
|
|
:key="item.key"
|
|
|
:value="item.value"
|
|
|
>
|
|
|
@@ -129,19 +129,19 @@
|
|
|
<div v-if="state.stepCount === 0" >针对部分类型数据提供的快速配置,将引导您完成简单的业务设置。您也可以直接编辑过滤语句,实现更复杂的查询要求</div>
|
|
|
<div v-else-if="state.stepCount === 1" >您可以设置将数据转发至华为云其他服务或私有服务器。</div>
|
|
|
</div>
|
|
|
- <!-- <div v-if="state.stepCount == 0">
|
|
|
- <a-form :label-col="{span: 4 }" :wrapper-col="{ span: 14 }" style="height: 600px; overflow-y: auto;">
|
|
|
- <a-form-item label="规则名称" >
|
|
|
- <a-input></a-input>
|
|
|
+ <div v-if="state.stepCount == 0">
|
|
|
+ <a-form :label-col="{span: 4 }" :wrapper-col="{ span: 14 }" style="height: 400px; overflow-y: auto;">
|
|
|
+ <a-form-item label="规则名称" v-bind="validateInfosStep1.ruleLabel" >
|
|
|
+ <a-input v-model:value="forwardRStateStep1.ruleLabel" ></a-input>
|
|
|
</a-form-item>
|
|
|
- <a-form-item label="转发目标">
|
|
|
+ <a-form-item label="数据来源" v-bind="validateInfosStep1.subjectResource">
|
|
|
<a-select
|
|
|
allowClear
|
|
|
style="width: 100%;"
|
|
|
- v-model:value="forwardState.targetType"
|
|
|
+ v-model:value="forwardRStateStep1.subjectResource"
|
|
|
>
|
|
|
<a-select-option
|
|
|
- v-for="item in forwardTatget"
|
|
|
+ v-for="item in subjectResourceList"
|
|
|
:key="item.key"
|
|
|
:value="item.key"
|
|
|
>
|
|
|
@@ -149,14 +149,30 @@
|
|
|
</a-select-option>
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
+ <a-form-item label="数据来源" v-bind="validateInfosStep1.subjectEvent">
|
|
|
+ <a-select
|
|
|
+ allowClear
|
|
|
+ style="width: 100%;"
|
|
|
+ v-model:value="forwardRStateStep1.subjectEvent"
|
|
|
+ >
|
|
|
+ <a-select-option
|
|
|
+ v-for="item in subjectEventList"
|
|
|
+ :key="item.key"
|
|
|
+ :value="item.key"
|
|
|
+ >
|
|
|
+ {{item.name}}
|
|
|
+ </a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="规则描述" >
|
|
|
+ <a-textarea
|
|
|
+ v-model:value="forwardRStateStep1.ruleDescription"
|
|
|
+ placeholder="请输入规则描述"
|
|
|
+ :auto-size="{ minRows: 2, maxRows: 5 }"
|
|
|
+ />
|
|
|
+ </a-form-item>
|
|
|
</a-form>
|
|
|
- </div> -->
|
|
|
- <form-pro
|
|
|
- v-if="state.stepCount == 0"
|
|
|
- validate
|
|
|
- :formProps="formProps"
|
|
|
- ref="formProo"
|
|
|
- />
|
|
|
+ </div>
|
|
|
<div v-if="state.stepCount == 1" >
|
|
|
<a-row>
|
|
|
<a-col>
|
|
|
@@ -167,7 +183,7 @@
|
|
|
</a-row>
|
|
|
<a-table
|
|
|
style="margin-top: 20px;"
|
|
|
- v-if="forwardRuleTargets.length "
|
|
|
+ v-if="forwardRuleTargets.length"
|
|
|
:columns="forwardRuleTargetsColumns"
|
|
|
:data-source="forwardRuleTargets"
|
|
|
size="middle"
|
|
|
@@ -196,7 +212,7 @@
|
|
|
@cancel="state.targetVisible = false"
|
|
|
@ok="ok('targetVisible')"
|
|
|
>
|
|
|
- <a-form :label-col="{span: 4 }" :wrapper-col="{ span: 14 }" style="height: 600px; overflow-y: auto;">
|
|
|
+ <a-form :label-col="{span: 4 }" :wrapper-col="{ span: 14 }" style="height: 400px; overflow-y: auto;">
|
|
|
<a-form-item label="转发目标">
|
|
|
<a-select
|
|
|
allowClear
|
|
|
@@ -433,6 +449,7 @@ import { computed } from '@vue/reactivity'
|
|
|
import TestDialog from './components/testDialog.vue'
|
|
|
import StatisticsTemplate from '@/components/StatisticsTemplate/index.vue'
|
|
|
import { SubjectEventEnum, SubjectResourceEnum } from '@/enum/common'
|
|
|
+import { useId } from '@/hooks'
|
|
|
|
|
|
const columns = [
|
|
|
{
|
|
|
@@ -574,8 +591,6 @@ const HttpRequestMethods = [
|
|
|
|
|
|
const subjectResourceList = Array.from(RuleController.SubjectResourceMap, ([key, value]) => ({ ...value, value: value.key }))
|
|
|
|
|
|
-console.log('subjectResourceList', subjectResourceList)
|
|
|
-
|
|
|
const subjectEventListByResourceMap = new Map([
|
|
|
[SubjectResourceEnum.DEVICE, [SubjectEventEnum.DEVICE_CREATE, SubjectEventEnum.DEVICE_DELETE]],
|
|
|
[SubjectResourceEnum.DEVICE_STATUS, [SubjectEventEnum.DEVICE_ATTRIBUTE_REPORT]],
|
|
|
@@ -585,9 +600,7 @@ const subjectEventListByResourceMap = new Map([
|
|
|
|
|
|
const subjectEventList = computed(() => {
|
|
|
const subjectevents = Array.from(RuleController.SubjectEventMap, ([key, value]) => ({ ...value, value: value.key }))
|
|
|
- const keys = subjectEventListByResourceMap.get(queryParams.subjectResource as SubjectResourceEnum)
|
|
|
- console.log('keys:', keys)
|
|
|
- const a = queryParams
|
|
|
+ const keys = subjectEventListByResourceMap.get(forwardRStateStep1.subjectResource as SubjectResourceEnum)
|
|
|
return subjectevents.filter(subjectevent => keys?.includes(subjectevent.key))
|
|
|
})
|
|
|
|
|
|
@@ -720,6 +733,13 @@ const forwardR1Ref = ref()
|
|
|
|
|
|
let forwardState = reactive(JSON.parse(JSON.stringify(initForwardState)))
|
|
|
|
|
|
+const forwardRStateStep1 = reactive({
|
|
|
+ ruleLabel: '',
|
|
|
+ subjectResource: '',
|
|
|
+ subjectEvent: '',
|
|
|
+ ruleDescription: ''
|
|
|
+})
|
|
|
+
|
|
|
const forwardRuleState = reactive({
|
|
|
HTTP: {
|
|
|
endpointUrl: [{ required: true, message: '请填写http地址' }],
|
|
|
@@ -765,6 +785,19 @@ let forwardRuleTargets = reactive([])
|
|
|
const forwardRuleStateComputed = computed(() => forwardState.targetType === '' ? {} : forwardRuleState[forwardState.targetType])
|
|
|
|
|
|
const { resetFields, validate, validateInfos } = useForm(forwardState, forwardRuleStateComputed)
|
|
|
+const { resetFields: resetFieldsStep1, validate: validateStep1, validateInfos: validateInfosStep1 } = useForm(forwardRStateStep1, reactive({
|
|
|
+ ruleLabel: [{ required: true, message: '请填写转发规则名称' }],
|
|
|
+ subjectResource: [{ required: true, message: '请填写转发规则名称' }],
|
|
|
+ subjectEvent: [{ required: true, message: '请填写转发规则名称' }]
|
|
|
+}))
|
|
|
+
|
|
|
+const updateForwardRuleTargets = (record, index) => {
|
|
|
+ state.targetVisible = true
|
|
|
+ forwardState.targetType = record.targetType
|
|
|
+ // forwardState.id = useId()
|
|
|
+ console.log('forwardState:', forwardState)
|
|
|
+ resetFields({ ...record })
|
|
|
+}
|
|
|
|
|
|
const changePage = ({ current }) => {
|
|
|
queryParams.page = current
|
|
|
@@ -775,8 +808,6 @@ const openDetailModal = async (id: string) => {
|
|
|
state.detailVisible = true
|
|
|
const { data } = await RuleController.forwardById(id)
|
|
|
detailForwardRef.value = data
|
|
|
- console.log('detailForwardRef.value :', detailForwardRef.value)
|
|
|
-
|
|
|
// const _forwardRuleTargets = data.forwardRuleTargets
|
|
|
}
|
|
|
|
|
|
@@ -785,6 +816,10 @@ const openModalDebug = (id: string) => {
|
|
|
state.forwardId = id
|
|
|
}
|
|
|
|
|
|
+const closeModal = () => {
|
|
|
+ state.stepCount = 1
|
|
|
+}
|
|
|
+
|
|
|
const openModal = async (opraState: 'add' | 'update', record) => {
|
|
|
state.opraState = opraState
|
|
|
|
|
|
@@ -796,12 +831,14 @@ const openModal = async (opraState: 'add' | 'update', record) => {
|
|
|
if (opraState === 'update') {
|
|
|
state.forwardId = record.id
|
|
|
const { data } = await RuleController.forwardById(record.id)
|
|
|
- formProps[0].value = data.ruleLabel
|
|
|
- formProps[1].value = data.subjectResource
|
|
|
- formProps[2].value = data.subjectEvent
|
|
|
- formProps[3].value = data.ruleDescription
|
|
|
+ resetFieldsStep1(data)
|
|
|
|
|
|
- const _forwardRuleTargets = data.forwardRuleTargets
|
|
|
+ const _forwardRuleTargets = data.forwardRuleTargets!.map(item => {
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ id: useId()
|
|
|
+ }
|
|
|
+ })
|
|
|
|
|
|
_forwardRuleTargets.forEach(item => {
|
|
|
const _requestHeaders = item.requestHeaders
|
|
|
@@ -862,12 +899,19 @@ const ok = async (visibleKey: string) => {
|
|
|
if (state.stepCount === 1) {
|
|
|
if (state.targetVisible) {
|
|
|
validate().then(() => {
|
|
|
- console.log('forwardState:', forwardState)
|
|
|
- forwardRuleTargets.push({ ...forwardState })
|
|
|
- forwardState = reactive(JSON.parse(JSON.stringify(initForwardState)))
|
|
|
+ console.log('触发这里11111')
|
|
|
+ const index = forwardRuleTargets.findIndex(item => item.id === forwardState.id)
|
|
|
+ if (index >= 0) {
|
|
|
+ forwardRuleTargets.splice(index, 1, forwardState)
|
|
|
+ } else {
|
|
|
+ forwardRuleTargets.push({ ...forwardState, id: useId() })
|
|
|
+ forwardState = reactive(JSON.parse(JSON.stringify(initForwardState)))
|
|
|
+ }
|
|
|
state.targetVisible = false
|
|
|
})
|
|
|
} else {
|
|
|
+ console.log('触发这里222')
|
|
|
+
|
|
|
const _otherProperties: Record<string, string> = {}
|
|
|
|
|
|
forwardRuleTargets.forEach(item => {
|
|
|
@@ -885,13 +929,15 @@ const ok = async (visibleKey: string) => {
|
|
|
item.otherProperties = _otherProperties
|
|
|
})
|
|
|
|
|
|
+ console.log('forwardState:', forwardState)
|
|
|
+
|
|
|
forwardState.otherProperties.forEach(item => {
|
|
|
_otherProperties[item.key] = item.value
|
|
|
})
|
|
|
if (state.opraState === 'add') {
|
|
|
- await RuleController.postForward({ ...forwardR1Ref.value, forwardRuleTargets })
|
|
|
+ await RuleController.postForward({ ...forwardRStateStep1, forwardRuleTargets })
|
|
|
} else {
|
|
|
- await RuleController.updateForward({ ...forwardR1Ref.value, forwardRuleTargets, id: state.forwardId })
|
|
|
+ await RuleController.updateForward({ ...forwardRStateStep1, forwardRuleTargets, id: state.forwardId })
|
|
|
}
|
|
|
|
|
|
state.visible = false
|
|
|
@@ -900,11 +946,11 @@ const ok = async (visibleKey: string) => {
|
|
|
}
|
|
|
|
|
|
if (state.stepCount === 0) {
|
|
|
- const r1 = await formProo.value.onSubmit()
|
|
|
- if (r1) {
|
|
|
- state.stepCount = 1
|
|
|
- forwardR1Ref.value = r1
|
|
|
- }
|
|
|
+ validateStep1().then((r) => {
|
|
|
+ if (r) {
|
|
|
+ state.stepCount = 1
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
|