update: 替换场景联动中的组件
This commit is contained in:
parent
3b7a412411
commit
232c844080
|
@ -25,7 +25,7 @@
|
|||
"event-source-polyfill": "^1.0.31",
|
||||
"global": "^4.4.0",
|
||||
"jetlinks-store": "^0.0.3",
|
||||
"jetlinks-ui-components": "^1.0.4",
|
||||
"jetlinks-ui-components": "^1.0.5",
|
||||
"js-cookie": "^3.0.1",
|
||||
"less": "^4.1.3",
|
||||
"less-loader": "^11.1.0",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<a-result status="404" title="404" sub-title="Sorry, the page you visited does not exist.">
|
||||
</a-result>
|
||||
<j-result status="404" title="404">
|
||||
</j-result>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
<template>
|
||||
<a-modal
|
||||
<j-modal
|
||||
title='触发规则'
|
||||
visible
|
||||
:width='820'
|
||||
@click='save'
|
||||
@cancel='cancel'
|
||||
>
|
||||
<a-steps :current='addModel.stepNumber' @change='stepChange'>
|
||||
<a-step>
|
||||
<j-steps :current='addModel.stepNumber' @change='stepChange'>
|
||||
<j-step>
|
||||
<template #title>选择产品</template>
|
||||
</a-step>
|
||||
<a-step>
|
||||
</j-step>
|
||||
<j-step>
|
||||
<template #title>选择设备</template>
|
||||
</a-step>
|
||||
<a-step>
|
||||
</j-step>
|
||||
<j-step>
|
||||
<template #title>触发类型</template>
|
||||
</a-step>
|
||||
</a-steps>
|
||||
<a-divider style='margin-bottom: 0px' />
|
||||
</j-step>
|
||||
</j-steps>
|
||||
<j-divider style='margin-bottom: 0px' />
|
||||
<div class='steps-content'>
|
||||
<Product
|
||||
v-if='addModel.stepNumber === 0'
|
||||
|
@ -42,13 +42,13 @@
|
|||
</div>
|
||||
<template #footer>
|
||||
<div class='steps-action'>
|
||||
<a-button v-if='addModel.stepNumber === 0' @click='cancel'>取消</a-button>
|
||||
<a-button v-else @click='prev'>上一步</a-button>
|
||||
<a-button type='primary' v-if='addModel.stepNumber < 2' @click='saveClick'>下一步</a-button>
|
||||
<a-button type='primary' v-else @click='saveClick'>确定</a-button>
|
||||
<j-button v-if='addModel.stepNumber === 0' @click='cancel'>取消</j-button>
|
||||
<j-button v-else @click='prev'>上一步</j-button>
|
||||
<j-button type='primary' v-if='addModel.stepNumber < 2' @click='saveClick'>下一步</j-button>
|
||||
<j-button type='primary' v-else @click='saveClick'>确定</j-button>
|
||||
</div>
|
||||
</template>
|
||||
</a-modal>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script setup lang='ts' name='AddModel'>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
class='search'
|
||||
target="scene-triggrt-device-device"
|
||||
/>
|
||||
<a-divider style='margin: 0' />
|
||||
<j-divider style='margin: 0' />
|
||||
<j-pro-table
|
||||
ref='actionRef'
|
||||
model='CARD'
|
||||
|
@ -43,20 +43,20 @@
|
|||
{{ slotProps.name }}
|
||||
</span>
|
||||
</Ellipsis>
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<j-row>
|
||||
<j-col :span="12">
|
||||
<div class="card-item-content-text">
|
||||
设备类型
|
||||
</div>
|
||||
<div>{{ slotProps.deviceType?.text }}</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
</j-col>
|
||||
<j-col :span="12">
|
||||
<div class="card-item-content-text">
|
||||
产品名称
|
||||
</div>
|
||||
<div>{{ slotProps.productName }}</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</template>
|
||||
</CardBox>
|
||||
</template>
|
||||
|
@ -172,7 +172,6 @@ const handleClick = (detail: any) => {
|
|||
value: detail.id
|
||||
})
|
||||
}
|
||||
console.log('cloneRowKeys', cloneRowKeys)
|
||||
emit('update', cloneRowKeys)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<template>
|
||||
<a-form ref='invokeForm' :model='formModel' layout='vertical' :colon='false'>
|
||||
<a-row :gutter='24'>
|
||||
<a-col :span='10'>
|
||||
<a-form-item
|
||||
<j-form ref='invokeForm' :model='formModel' layout='vertical' :colon='false'>
|
||||
<j-row :gutter='24'>
|
||||
<j-col :span='10'>
|
||||
<j-form-item
|
||||
name='functionId'
|
||||
:rules="[{ required: true, message: '请选择功能' }]"
|
||||
>
|
||||
<a-select
|
||||
<j-select
|
||||
showSearch
|
||||
allowClear
|
||||
v-model:value='formModel.functionId'
|
||||
|
@ -16,20 +16,20 @@
|
|||
:filterOption='filterSelectNode'
|
||||
@select='onSelect'
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span='14'>
|
||||
<a-form-item>定时调用所选功能</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span='24'>
|
||||
</j-form-item>
|
||||
</j-col>
|
||||
<j-col :span='14'>
|
||||
<j-form-item>定时调用所选功能</j-form-item>
|
||||
</j-col>
|
||||
<j-col :span='24'>
|
||||
<FunctionCall
|
||||
:value='_value'
|
||||
:data='functionData'
|
||||
@change='callDataChange'
|
||||
/>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</j-form>
|
||||
</template>
|
||||
|
||||
<script setup lang='ts' name='InvokeFunction'>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
class='search'
|
||||
target="scene-triggrt-device-category"
|
||||
/>
|
||||
<a-divider style='margin: 0' />
|
||||
<j-divider style='margin: 0' />
|
||||
<j-pro-table
|
||||
ref="instanceRef"
|
||||
model='TABLE'
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
class='search'
|
||||
target="scene-triggrt-device-device"
|
||||
/>
|
||||
<a-divider style='margin: 0' />
|
||||
<j-divider style='margin: 0' />
|
||||
<j-pro-table
|
||||
ref='actionRef'
|
||||
model='CARD'
|
||||
|
@ -42,14 +42,14 @@
|
|||
</span>
|
||||
</Ellipsis>
|
||||
</div>
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<j-row>
|
||||
<j-col :span="12">
|
||||
<div class="card-item-content-text">
|
||||
设备类型
|
||||
</div>
|
||||
<div>直连设备</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</template>
|
||||
</CardBox>
|
||||
</template>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<template>
|
||||
<a-row :gutter='[24]'>
|
||||
<a-col :span='10'>
|
||||
<a-form-item
|
||||
<j-row :gutter='[24]'>
|
||||
<j-col :span='10'>
|
||||
<j-form-item
|
||||
name='readProperties'
|
||||
:rules="[{ required: true, message: '请选择属性' }]"
|
||||
>
|
||||
<a-select
|
||||
<j-select
|
||||
show-search
|
||||
mode='multiple'
|
||||
max-tag-count='responsive'
|
||||
|
@ -16,12 +16,12 @@
|
|||
:filter-option='filterSelectNode'
|
||||
@change='change'
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span='14'>
|
||||
<a-form-item>定时读取所选属性值</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</j-form-item>
|
||||
</j-col>
|
||||
<j-col :span='14'>
|
||||
<j-form-item>定时读取所选属性值</j-form-item>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</template>
|
||||
|
||||
<script setup lang='ts' name='ReadProperties'>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class='type'>
|
||||
<a-form ref='typeForm' :model='formModel' layout='vertical' :colon='false'>
|
||||
<a-form-item
|
||||
<j-form ref='typeForm' :model='formModel' layout='vertical' :colon='false'>
|
||||
<j-form-item
|
||||
required
|
||||
label='触发类型'
|
||||
>
|
||||
|
@ -10,7 +10,7 @@
|
|||
:options='topOptions'
|
||||
v-model:value='formModel.operator'
|
||||
/>
|
||||
</a-form-item>
|
||||
</j-form-item>
|
||||
<template v-if='showTimer'>
|
||||
<Timer ref='timerRef' v-model:value='formModel.timer' />
|
||||
</template>
|
||||
|
@ -27,12 +27,12 @@
|
|||
v-model:action='optionCache.action'
|
||||
:properties='writeProperties'
|
||||
/>
|
||||
<a-form-item
|
||||
<j-form-item
|
||||
v-if='showReportEvent'
|
||||
name='eventId'
|
||||
:rules="[{ required: true, message: '请选择事件' }]"
|
||||
>
|
||||
<a-select
|
||||
<j-select
|
||||
v-model:value='formModel.eventId'
|
||||
:filter-option='filterSelectNode'
|
||||
:options='eventOptions'
|
||||
|
@ -40,7 +40,7 @@
|
|||
style='width: 100%'
|
||||
@select='eventSelect'
|
||||
/>
|
||||
</a-form-item>
|
||||
</j-form-item>
|
||||
<template v-if='showInvokeFunction'>
|
||||
<InvokeFunction
|
||||
ref='invokeRef'
|
||||
|
@ -49,7 +49,7 @@
|
|||
:functions='functionOptions'
|
||||
/>
|
||||
</template>
|
||||
</a-form>
|
||||
</j-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<template>
|
||||
<a-form ref='writeForm' :model='formModel' layout='vertical' :colon='false'>
|
||||
<a-row :futter='[24, 24]'>
|
||||
<a-col :span='10'>
|
||||
<a-form-item
|
||||
<j-form ref='writeForm' :model='formModel' layout='vertical' :colon='false'>
|
||||
<j-row :futter='[24, 24]'>
|
||||
<j-col :span='10'>
|
||||
<j-form-item
|
||||
name='reportKey'
|
||||
:rules="[{ required: true, message: '请输入修改值' }]"
|
||||
>
|
||||
<a-select
|
||||
<j-select
|
||||
showSearch
|
||||
style='width: 100%'
|
||||
placeholder='请选择属性'
|
||||
|
@ -15,22 +15,22 @@
|
|||
:filter-option='filterSelectNode'
|
||||
@change='change'
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span='14'>
|
||||
</j-form-item>
|
||||
</j-col>
|
||||
<j-col :span='14'>
|
||||
<span style='line-height: 32px;padding-left: 24px'>
|
||||
定时调用所选属性
|
||||
</span>
|
||||
</a-col>
|
||||
<a-col :span='24' v-if='showTable'>
|
||||
</j-col>
|
||||
<j-col :span='24' v-if='showTable'>
|
||||
<FunctionCall
|
||||
:value='_value'
|
||||
:data='callDataOptions'
|
||||
@change='callDataChange'
|
||||
/>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</j-col>
|
||||
</j-row>
|
||||
</j-form>
|
||||
</template>
|
||||
|
||||
<script setup lang='ts' name='WriteProperties'>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class='device'>
|
||||
<a-form-item
|
||||
<j-form-item
|
||||
:rules='rules'
|
||||
name='device'
|
||||
>
|
||||
|
@ -13,7 +13,7 @@
|
|||
>
|
||||
<Title :options='data.options.trigger' />
|
||||
</AddButton>
|
||||
</a-form-item>
|
||||
</j-form-item>
|
||||
<Terms />
|
||||
<AddModel v-if='visible' @cancel='visible = false' @save='save' :value='data.trigger.device' :options='data.options.trigger' />
|
||||
</div>
|
||||
|
@ -25,7 +25,6 @@ import { useSceneStore } from '@/store/scene'
|
|||
import AddModel from './AddModal.vue'
|
||||
import AddButton from '../components/AddButton.vue'
|
||||
import Title from '../components/Title.vue'
|
||||
import Action from '../action/index.vue'
|
||||
import Terms from '../components/Terms'
|
||||
import type { TriggerDevice } from '@/views/rule-engine/Scene/typings'
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
</template>
|
||||
<template v-if='column.dataIndex === "type"'>
|
||||
{{ record.type }}
|
||||
<a-tooltip
|
||||
<j-tooltip
|
||||
v-if="record.type === 'object'"
|
||||
>
|
||||
<template slot="title">
|
||||
|
@ -26,7 +26,7 @@
|
|||
cursor: 'help',
|
||||
}"
|
||||
/>
|
||||
</a-tooltip>
|
||||
</j-tooltip>
|
||||
</template>
|
||||
<template v-if='column.dataIndex === "value"'>
|
||||
<ValueItem
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<template>
|
||||
<a-form
|
||||
<j-form
|
||||
ref='timerForm'
|
||||
:model='formModel'
|
||||
layout='vertical'
|
||||
:colon='false'
|
||||
>
|
||||
<a-form-item name='trigger'>
|
||||
<a-radio-group
|
||||
<j-form-item name='trigger'>
|
||||
<j-radio-group
|
||||
v-model:value='formModel.trigger'
|
||||
:options='[
|
||||
{ label: "按周", value: "week" },
|
||||
|
@ -16,8 +16,8 @@
|
|||
option-type='button'
|
||||
button-style='solid'
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item v-if='showCron' name='cron' :rules="[
|
||||
</j-form-item>
|
||||
<j-form-item v-if='showCron' name='cron' :rules="[
|
||||
{ max: 64, message: '最多可输入64个字符' },
|
||||
{
|
||||
validator: async (_, v) => {
|
||||
|
@ -32,14 +32,14 @@
|
|||
}
|
||||
}
|
||||
]">
|
||||
<a-input placeholder='corn表达式' v-model:value='formModel.cron' />
|
||||
</a-form-item>
|
||||
<j-input placeholder='corn表达式' v-model:value='formModel.cron' />
|
||||
</j-form-item>
|
||||
<template v-else>
|
||||
<a-form-item name='when'>
|
||||
<j-form-item name='when'>
|
||||
<WhenOption v-model:value='formModel.when' :type='formModel.trigger' />
|
||||
</a-form-item>
|
||||
<a-form-item name='mod'>
|
||||
<a-radio-group
|
||||
</j-form-item>
|
||||
<j-form-item name='mod'>
|
||||
<j-radio-group
|
||||
v-model:value='formModel.mod'
|
||||
:options='[
|
||||
{ label: "周期执行", value: "period" },
|
||||
|
@ -48,18 +48,18 @@
|
|||
option-type='button'
|
||||
button-style='solid'
|
||||
/>
|
||||
</a-form-item>
|
||||
</j-form-item>
|
||||
</template>
|
||||
<a-space v-if='showOnce' style='display: flex;gap: 24px'>
|
||||
<a-form-item :name="['once', 'time']">
|
||||
<a-time-picker valueFormat='HH:mm:ss' v-model:value='formModel.once.time' style='width: 100%'
|
||||
<j-space v-if='showOnce' style='display: flex;gap: 24px'>
|
||||
<j-form-item :name="['once', 'time']">
|
||||
<j-time-picker valueFormat='HH:mm:ss' v-model:value='formModel.once.time' style='width: 100%'
|
||||
format='HH:mm:ss' />
|
||||
</a-form-item>
|
||||
<a-form-item> 执行一次</a-form-item>
|
||||
</a-space>
|
||||
<a-space v-if='showPeriod' style='display: flex;gap: 24px'>
|
||||
<a-form-item>
|
||||
<a-time-range-picker
|
||||
</j-form-item>
|
||||
<j-form-item> 执行一次</j-form-item>
|
||||
</j-space>
|
||||
<j-space v-if='showPeriod' style='display: flex;gap: 24px'>
|
||||
<j-form-item>
|
||||
<j-time-range-picker
|
||||
valueFormat='HH:mm:ss'
|
||||
:value='[
|
||||
formModel.period.from,
|
||||
|
@ -70,13 +70,13 @@
|
|||
formModel.period.to = v[1]
|
||||
}'
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item>每</a-form-item>
|
||||
<a-form-item
|
||||
</j-form-item>
|
||||
<j-form-item>每</j-form-item>
|
||||
<j-form-item
|
||||
:name='["period", "every"]'
|
||||
:rules='[{ required: true, message: "请输入时间" }]'
|
||||
>
|
||||
<a-input-number
|
||||
<j-input-number
|
||||
placeholder='请输入时间'
|
||||
style='max-width: 170px'
|
||||
:precision='0'
|
||||
|
@ -85,7 +85,7 @@
|
|||
v-model:value='formModel.period.every'
|
||||
>
|
||||
<template #addonAfter>
|
||||
<a-select
|
||||
<j-select
|
||||
v-model:value='formModel.period.unit'
|
||||
:options='[
|
||||
{ label: "秒", value: "seconds" },
|
||||
|
@ -94,11 +94,11 @@
|
|||
]'
|
||||
/>
|
||||
</template>
|
||||
</a-input-number>
|
||||
</a-form-item>
|
||||
<a-form-item>执行一次</a-form-item>
|
||||
</a-space>
|
||||
</a-form>
|
||||
</j-input-number>
|
||||
</j-form-item>
|
||||
<j-form-item>执行一次</j-form-item>
|
||||
</j-space>
|
||||
</j-form>
|
||||
</template>
|
||||
|
||||
<script setup lang='ts' name='Timer'>
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
>
|
||||
<div class='way-item-title'>
|
||||
<span class='label'>{{ item.label }}</span>
|
||||
<a-popover v-if='item.tip' :content='item.tip'>
|
||||
<j-popover v-if='item.tip' :content='item.tip'>
|
||||
<AIcon type='QuestionCircleOutlined' class='icon' />
|
||||
</a-popover>
|
||||
</j-popover>
|
||||
</div>
|
||||
<div class='way-item-image'>
|
||||
<img
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
{{ keyByLabel[data.triggerType] }}
|
||||
</div>
|
||||
</div>
|
||||
<a-form ref='sceneForm' :model='data' :colon='false' layout='vertical'>
|
||||
<j-form ref='sceneForm' :model='data' :colon='false' layout='vertical'>
|
||||
<Device v-if='data.triggerType === "device"' />
|
||||
<Manual v-else-if='data.triggerType === "manual"' />
|
||||
<Timer v-else-if='data.triggerType === "timer"' />
|
||||
</a-form>
|
||||
</j-form>
|
||||
<PermissionButton
|
||||
type='primary'
|
||||
hasPermission='rule-engine/Scene:update'
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<a-modal
|
||||
<j-modal
|
||||
visible
|
||||
:title='title'
|
||||
:width='750'
|
||||
|
@ -8,13 +8,13 @@
|
|||
@cancel='emit("close")'
|
||||
@ok='handleOk'
|
||||
>
|
||||
<a-form
|
||||
<j-form
|
||||
layout='vertical'
|
||||
name='scene-save'
|
||||
ref="formRef"
|
||||
:model='formModel'
|
||||
>
|
||||
<a-form-item
|
||||
<j-form-item
|
||||
name='name'
|
||||
label='名称'
|
||||
:rules="[
|
||||
|
@ -22,17 +22,17 @@
|
|||
{ max: 64, message: '最多输入64个字符' }
|
||||
]"
|
||||
>
|
||||
<a-input v-model:value='formModel.name' placeholder='请输入名称' />
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
<j-input v-model:value='formModel.name' placeholder='请输入名称' />
|
||||
</j-form-item>
|
||||
<j-form-item
|
||||
:name='["trigger", "type"]'
|
||||
label='触发方式'
|
||||
:rules="[{ required: true, message: '请选择触发方式' }]"
|
||||
>
|
||||
<TriggerWay v-model:modelValue='formModel.trigger.type' :disabled='disabled' />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
</j-form-item>
|
||||
</j-form>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script setup lang='ts'>
|
||||
|
|
12
yarn.lock
12
yarn.lock
|
@ -3709,6 +3709,18 @@ jetlinks-ui-components@^1.0.4:
|
|||
lodash-es "^4.17.21"
|
||||
monaco-editor "^0.35.0"
|
||||
|
||||
jetlinks-ui-components@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "http://47.108.170.157:9013/jetlinks-ui-components/-/jetlinks-ui-components-1.0.5.tgz#0c4999d28c96c11ce266c5c9706cc895010450dc"
|
||||
integrity sha512-buCf4mWJ8cUyn+12nRRLIr25MwG60nxqWH4pZidKy/npNKt5WQXLV8PmHmf04z0xpJUnW5yY3C7QBkYoAkSgVw==
|
||||
dependencies:
|
||||
"@vueuse/core" "^9.12.0"
|
||||
ant-design-vue "^3.2.15"
|
||||
colorpicker-v3 "^2.10.2"
|
||||
jetlinks-ui-components "^1.0.4"
|
||||
lodash-es "^4.17.21"
|
||||
monaco-editor "^0.35.0"
|
||||
|
||||
js-cookie@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz"
|
||||
|
|
Loading…
Reference in New Issue