From 2659c70804c1e6a9894b5eba05bebdeb02f66b35 Mon Sep 17 00:00:00 2001 From: xieyonghong <18010623010@163.com> Date: Sun, 19 Mar 2023 21:09:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E8=81=94=E5=8A=A8-=E5=AE=9A=E6=97=B6=E8=A7=A6=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scene/Save/Device/AddModal.vue | 84 ++++++++++--------- .../rule-engine/Scene/Save/Timer/AddModel.vue | 65 ++++++++++++++ .../rule-engine/Scene/Save/Timer/index.vue | 62 +++++++++++--- .../Scene/Save/components/Timer/util.ts | 41 ++++++++- src/views/rule-engine/Scene/Save/index.vue | 7 +- src/views/rule-engine/Scene/Save/util.ts | 2 +- 6 files changed, 208 insertions(+), 53 deletions(-) create mode 100644 src/views/rule-engine/Scene/Save/Timer/AddModel.vue diff --git a/src/views/rule-engine/Scene/Save/Device/AddModal.vue b/src/views/rule-engine/Scene/Save/Device/AddModal.vue index 2fbd6cf7..c9fd3dd6 100644 --- a/src/views/rule-engine/Scene/Save/Device/AddModal.vue +++ b/src/views/rule-engine/Scene/Save/Device/AddModal.vue @@ -59,7 +59,7 @@ import { detail as deviceDetail } from '@/api/device/instance' import Product from './Product.vue' import DeviceSelect from './DeviceSelect.vue' import Type from './Type.vue' -import { continuousValue, timeUnitEnum } from '@/views/rule-engine/Scene/Save/components/Timer/util' +import {continuousValue, handleTimerOptions, timeUnitEnum} from '@/views/rule-engine/Scene/Save/components/Timer/util' type Emit = { (e: 'cancel'): void @@ -161,46 +161,50 @@ const handleOptions = (data: TriggerDeviceOptions) => { if (data.timer) { const _timer = data.timer; - if (_timer.trigger === 'cron') { - _options.time = _timer.cron; - } else { - // console.log('continuousValue', continuousValue(_timer.when! || [], _timer!.trigger)) - let whenStr = '每天'; - if (_timer.when!.length) { - whenStr = _timer!.trigger === 'week' ? '每周' : '每月'; - const whenStrArr = continuousValue(_timer.when! || [], _timer!.trigger); - const whenStrArr3 = whenStrArr.splice(0, 3); - whenStr += whenStrArr3.join('、'); - whenStr += `等${_timer.when!.length}天`; - } - _options.when = whenStr; - if (_timer.once) { - _options.time = _timer.once.time + ' 执行1次'; - } else if (_timer.period) { - _options.time = _timer.period.from + '-' + _timer.period.to; - _options.extraTime = `每${_timer.period.every}${timeUnitEnum[_timer.period.unit]}执行1次`; - } - } - - if (data.operator === 'online') { - _options.type = '上线'; - _options.action = ''; - _options.typeIcon = 'icon-a-Group4713'; - } - - if (data.operator === 'offline') { - _options.type = '离线'; - _options.action = ''; - _options.typeIcon = 'icon-a-Group4892'; - } - - if (data.operator === 'reportProperty') { - _options.type = '属性上报'; - _options.action = ''; - _options.typeIcon = 'icon-file-upload-outline'; - } - return _options; + const { time, extraTime, when } = handleTimerOptions(_timer) + _options.when = when; + _options.time = time; + _options.extraTime = extraTime; + // if (_timer.trigger === 'cron') { + // _options.time = _timer.cron; + // } else { + // // console.log('continuousValue', continuousValue(_timer.when! || [], _timer!.trigger)) + // let whenStr = '每天'; + // if (_timer.when!.length) { + // whenStr = _timer!.trigger === 'week' ? '每周' : '每月'; + // const whenStrArr = continuousValue(_timer.when! || [], _timer!.trigger); + // const whenStrArr3 = whenStrArr.splice(0, 3); + // whenStr += whenStrArr3.join('、'); + // whenStr += `等${_timer.when!.length}天`; + // } + // _options.when = whenStr; + // if (_timer.once) { + // _options.time = _timer.once.time + ' 执行1次'; + // } else if (_timer.period) { + // _options.time = _timer.period.from + '-' + _timer.period.to; + // _options.extraTime = `每${_timer.period.every}${timeUnitEnum[_timer.period.unit]}执行1次`; + // } + // } } + + if (data.operator === 'online') { + _options.type = '上线'; + _options.action = ''; + _options.typeIcon = 'icon-a-Group4713'; + } + + if (data.operator === 'offline') { + _options.type = '离线'; + _options.action = ''; + _options.typeIcon = 'icon-a-Group4892'; + } + + if (data.operator === 'reportProperty') { + _options.type = '属性上报'; + _options.action = ''; + _options.typeIcon = 'icon-file-upload-outline'; + } + return _options; } const prev = () => { diff --git a/src/views/rule-engine/Scene/Save/Timer/AddModel.vue b/src/views/rule-engine/Scene/Save/Timer/AddModel.vue new file mode 100644 index 00000000..db8b21a9 --- /dev/null +++ b/src/views/rule-engine/Scene/Save/Timer/AddModel.vue @@ -0,0 +1,65 @@ + + + + + \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/Timer/index.vue b/src/views/rule-engine/Scene/Save/Timer/index.vue index ee5c1f24..36e893f8 100644 --- a/src/views/rule-engine/Scene/Save/Timer/index.vue +++ b/src/views/rule-engine/Scene/Save/Timer/index.vue @@ -1,30 +1,67 @@