update: 优化场景联动-新增校验
This commit is contained in:
parent
6df60ea7e8
commit
8aaa9418bd
|
@ -1,11 +1,34 @@
|
|||
<template>
|
||||
|
||||
<j-form-item
|
||||
:rules="actionRules"
|
||||
:name="['branches', 0, 'then']"
|
||||
>
|
||||
<Action
|
||||
:thenOptions="data.branches ? data?.branches[0].then : []"
|
||||
:name="0"
|
||||
/>
|
||||
</j-form-item>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'index'
|
||||
}
|
||||
<script lang="ts" setup name='SceneSaveManual'>
|
||||
import { useSceneStore } from '@/store/scene';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import type { BranchesThen } from '@/views/rule-engine/Scene/typings'
|
||||
import Action from '../action/index.vue';
|
||||
|
||||
const sceneStore = useSceneStore();
|
||||
const { data } = storeToRefs(sceneStore);
|
||||
|
||||
const actionRules = [{
|
||||
validator(_: any, v?: BranchesThen[]) {
|
||||
console.log(_, v)
|
||||
if (!v || (v && !v.length) || (v && v.length && !v[0].actions.length)) {
|
||||
return Promise.reject('至少配置一个执行动作');
|
||||
}
|
||||
return Promise.resolve();
|
||||
},
|
||||
}]
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
|
|
@ -33,13 +33,13 @@
|
|||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
<script lang="ts" setup name='SceneSaveTimer'>
|
||||
import { useSceneStore } from '@/store/scene';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import Action from '../action/index.vue';
|
||||
import AddModel from './AddModal.vue'
|
||||
import AddButton from '../components/AddButton.vue'
|
||||
import type { OperationTimer } from '@/views/rule-engine/Scene/typings'
|
||||
import type { OperationTimer, BranchesThen } from '@/views/rule-engine/Scene/typings'
|
||||
|
||||
const sceneStore = useSceneStore();
|
||||
const { data } = storeToRefs(sceneStore);
|
||||
|
@ -55,7 +55,7 @@ const rules = [{
|
|||
}]
|
||||
|
||||
const actionRules = [{
|
||||
validator(_, v) {
|
||||
validator(_: any, v?: BranchesThen[]) {
|
||||
if (!v || (v && !v.length)) {
|
||||
return Promise.reject('至少配置一个执行动作');
|
||||
}
|
||||
|
@ -76,8 +76,8 @@ const onActionUpdate = (_data: any, type: boolean) => {
|
|||
}
|
||||
};
|
||||
|
||||
const save = (data: OperationTimer, options: Record<string, any>) => {
|
||||
data.value.trigger!.timer = data
|
||||
const save = (_data: OperationTimer, options: Record<string, any>) => {
|
||||
data.value.trigger!.timer = _data
|
||||
data.value.options!.trigger = options
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -14,10 +14,14 @@
|
|||
<Device v-if='data.triggerType === "device"' />
|
||||
<Manual v-else-if='data.triggerType === "manual"' />
|
||||
<Timer v-else-if='data.triggerType === "timer"' />
|
||||
<j-form-item>
|
||||
<j-form-item
|
||||
>
|
||||
<template #label>
|
||||
<TitleComponent data='说明' style='font-size: 14px;' />
|
||||
</template>
|
||||
<j-textarea
|
||||
v-model:value="data.description"
|
||||
placeholder=''
|
||||
placeholder='请输入说明'
|
||||
:rows="4"
|
||||
show-count
|
||||
:maxLength="200"
|
||||
|
@ -27,6 +31,8 @@
|
|||
<PermissionButton
|
||||
type='primary'
|
||||
hasPermission='rule-engine/Scene:update'
|
||||
:loading='loading'
|
||||
@click='save'
|
||||
>
|
||||
保存
|
||||
</PermissionButton>
|
||||
|
@ -42,14 +48,31 @@ import { keyByLabel } from '../typings'
|
|||
import Device from './Device/index.vue'
|
||||
import Manual from './Manual/index.vue'
|
||||
import Timer from './Timer/index.vue'
|
||||
import { modify } from '@/api/rule-engine/scene'
|
||||
import { useMenuStore } from '@/store/menu'
|
||||
import { message } from 'jetlinks-ui-components'
|
||||
|
||||
const sceneStore = useSceneStore()
|
||||
const menuStore = useMenuStore()
|
||||
const { data } = storeToRefs(sceneStore)
|
||||
const { getDetail } = sceneStore
|
||||
|
||||
const route = useRoute();
|
||||
const sceneForm = ref()
|
||||
const loading = ref(false)
|
||||
console.log('data',data)
|
||||
|
||||
const save = async () => {
|
||||
const formData = await sceneForm.value.validateFields()
|
||||
if (formData) {
|
||||
loading.value = true
|
||||
const resp = await modify(data.value.id!, data.value).then(res => res)
|
||||
loading.value = false
|
||||
if (resp.success) {
|
||||
menuStore.jumpPage('rule-engine/Scene')
|
||||
message.success('操作成功')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getDetail(route.query.id as string)
|
||||
|
||||
|
|
Loading…
Reference in New Issue