From 356bf1fccf9d8c036e808c33fbd052297c48d5e5 Mon Sep 17 00:00:00 2001 From: leiqiaochu Date: Tue, 7 Mar 2023 10:13:41 +0800 Subject: [PATCH 1/8] =?UTF-8?q?feat:=20=E6=8C=89=E9=92=AE=E9=89=B4?= =?UTF-8?q?=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Product/Detail/DeviceAccess/index.vue | 22 ++---- src/views/device/Product/index.vue | 24 ++++--- .../rule-engine/Alarm/Config/Io/index.vue | 72 +++++++++++-------- src/views/rule-engine/Alarm/Config/index.vue | 5 +- .../Alarm/Configuration/Save/Base/index.vue | 5 +- .../Alarm/Configuration/Save/Scene/index.vue | 5 +- .../rule-engine/Alarm/Configuration/index.vue | 34 ++++++--- .../rule-engine/Alarm/Log/Detail/index.vue | 4 +- .../rule-engine/Alarm/Log/SolveLog/index.vue | 4 +- .../Alarm/Log/TabComponent/indev.vue | 33 +++++++-- .../DashBoard/components/NewAlarm.vue | 7 +- src/views/rule-engine/Instance/index.vue | 31 ++++++-- 12 files changed, 158 insertions(+), 88 deletions(-) diff --git a/src/views/device/Product/Detail/DeviceAccess/index.vue b/src/views/device/Product/Detail/DeviceAccess/index.vue index 7caaaf88..471f81f4 100644 --- a/src/views/device/Product/Detail/DeviceAccess/index.vue +++ b/src/views/device/Product/Detail/DeviceAccess/index.vue @@ -4,11 +4,12 @@
@@ -173,9 +174,7 @@ - 保存 + 保存 - {{ slotProps.id }} - + @@ -353,6 +347,7 @@ import { ConfigMetadata } from '@/views/device/Product/typings'; import { Empty, message } from 'ant-design-vue'; import { getImage } from '@/utils/comm'; import Title from '../Title/index.vue'; +import { usePermissionStore } from '@/store/permission'; import './index.less'; import { getProviders, @@ -375,6 +370,7 @@ import Driver from 'driver.js'; import 'driver.js/dist/driver.min.css'; import { marked } from 'marked'; import type { FormInstance, TableColumnType } from 'ant-design-vue'; +const permissionStore = usePermissionStore(); const render = new marked.Renderer(); marked.setOptions({ renderer: render, @@ -548,10 +544,6 @@ const temp = { const _selectedRowKeys = ref([]); const currentForm = ref({}); -const onSelectChange = (keys: string[]) => { - _selectedRowKeys.value = [...keys]; -}; - const cancelSelect = () => { _selectedRowKeys.value = []; }; diff --git a/src/views/device/Product/index.vue b/src/views/device/Product/index.vue index 97d88c91..6f3ccf08 100644 --- a/src/views/device/Product/index.vue +++ b/src/views/device/Product/index.vue @@ -15,19 +15,26 @@ :params="params" > -
- -
+
- - + + \ No newline at end of file From decf106b9976f16107b9165a5ebf2e9b9e7d3080 Mon Sep 17 00:00:00 2001 From: JiangQiming <291854119@qq.com> Date: Tue, 7 Mar 2023 10:24:27 +0800 Subject: [PATCH 2/8] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E5=9B=9E=E6=94=BE?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1=E5=AE=BD=E5=BA=A6=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/media/Device/Playback/iconNode.vue | 6 ----- src/views/media/Device/Playback/index.vue | 24 +++++++++++++++----- src/views/media/Device/Playback/timeLine.vue | 12 +++++----- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/src/views/media/Device/Playback/iconNode.vue b/src/views/media/Device/Playback/iconNode.vue index 63a0dce8..2f0f9969 100644 --- a/src/views/media/Device/Playback/iconNode.vue +++ b/src/views/media/Device/Playback/iconNode.vue @@ -20,10 +20,6 @@ const props = defineProps(); // type 为local时有效,0:未下载; 1:下载中:2:已下载 const status = ref(props.item?.isServer ? 2 : 0); -// const status = computed({ -// get: () => (props.item?.isServer ? 2 : 0), -// set: (val: number) => {}, -// }); const getLocalIcon = (s: number) => { if (s === 0) { @@ -75,5 +71,3 @@ const handleClick = () => { } }; - - diff --git a/src/views/media/Device/Playback/index.vue b/src/views/media/Device/Playback/index.vue index 89703bbb..ca8496ca 100644 --- a/src/views/media/Device/Playback/index.vue +++ b/src/views/media/Device/Playback/index.vue @@ -2,12 +2,14 @@ @@ -192,9 +188,6 @@ const screen = ref(1); const players = ref([]); // 当前选中的窗口 const playerActive = ref(0); -// 单个播放窗口宽高 -const screenWidth = ref(''); -const screenHeight = ref(''); // 历史记录 const historyList = ref([]); // 展示保存浮窗 diff --git a/src/components/Player/index.vue b/src/components/Player/index.vue index b5d20225..a2d47542 100644 --- a/src/components/Player/index.vue +++ b/src/components/Player/index.vue @@ -1,50 +1,88 @@ diff --git a/src/views/media/Device/Channel/Live/index.vue b/src/views/media/Device/Channel/Live/index.vue index c24a9273..e34ce661 100644 --- a/src/views/media/Device/Channel/Live/index.vue +++ b/src/views/media/Device/Channel/Live/index.vue @@ -25,7 +25,7 @@
刷新
重置
- + ('mp4'); /** * 媒体开始播放 */ const mediaStart = () => { - src.value = channelApi.ptzStart( + url.value = channelApi.ptzStart( props.data.deviceId, props.data.channelId, mediaType.value, @@ -150,6 +150,9 @@ watch( if (val) { mediaStart(); getIsRecord(); + } else { + // url置空, 即销毁播放器 + url.value = ''; } }, ); diff --git a/src/views/media/Device/Playback/index.vue b/src/views/media/Device/Playback/index.vue index ca8496ca..950ed0cb 100644 --- a/src/views/media/Device/Playback/index.vue +++ b/src/views/media/Device/Playback/index.vue @@ -6,10 +6,40 @@
{ /** * 下载到云端 - * @param item + * @param item */ const downloadClick = async (item: recordsItemType) => { const downloadUrl = playBackApi.downLoadFile(item.id); @@ -341,7 +371,7 @@ watch( /** * 日历操作 - * @param date + * @param date */ const handlePanelChange = (date: any) => { time.value = date; @@ -354,7 +384,7 @@ const handlePanelChange = (date: any) => { /** * 播放/暂停 - * @param _startTime + * @param _startTime */ const handlePlay = (_startTime: any) => { if (playStatus.value === 0 || _startTime !== playNowTime.value) { diff --git a/src/views/media/Device/Playback/timeLine.vue b/src/views/media/Device/Playback/timeLine.vue index f0e8f185..b44f0b13 100644 --- a/src/views/media/Device/Playback/timeLine.vue +++ b/src/views/media/Device/Playback/timeLine.vue @@ -256,7 +256,7 @@ const handleProgress = (event: any, item: any) => { } }; -defineExpose({ playByStartTime }); +defineExpose({ playByStartTime, onNextPlay }); \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/components/ParamsDropdown.vue b/src/views/rule-engine/Scene/Save/components/ParamsDropdown.vue new file mode 100644 index 00000000..bc101782 --- /dev/null +++ b/src/views/rule-engine/Scene/Save/components/ParamsDropdown.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/components/Terms/Branchs.vue b/src/views/rule-engine/Scene/Save/components/Terms/Branchs.vue new file mode 100644 index 00000000..1fbce681 --- /dev/null +++ b/src/views/rule-engine/Scene/Save/components/Terms/Branchs.vue @@ -0,0 +1,135 @@ + + + + + \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue b/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue new file mode 100644 index 00000000..60c55ac2 --- /dev/null +++ b/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue @@ -0,0 +1,142 @@ + + + + + \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/components/Terms/Terms.vue b/src/views/rule-engine/Scene/Save/components/Terms/Terms.vue new file mode 100644 index 00000000..eaae2ec6 --- /dev/null +++ b/src/views/rule-engine/Scene/Save/components/Terms/Terms.vue @@ -0,0 +1,121 @@ + + + + + \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/components/Terms/TermsItem.vue b/src/views/rule-engine/Scene/Save/components/Terms/TermsItem.vue new file mode 100644 index 00000000..f13e6a2b --- /dev/null +++ b/src/views/rule-engine/Scene/Save/components/Terms/TermsItem.vue @@ -0,0 +1,126 @@ + + + + + \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/components/Terms/index.less b/src/views/rule-engine/Scene/Save/components/Terms/index.less new file mode 100644 index 00000000..b8fe5f99 --- /dev/null +++ b/src/views/rule-engine/Scene/Save/components/Terms/index.less @@ -0,0 +1,204 @@ +.add-button() { + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + color: rgba(0, 0, 0, 0.3); + background-color: #fff; + border: 1px dashed rgba(0, 0, 0, 0.3); + border-radius: 50%; + cursor: pointer; +} + +.deleteBtn() { + position: absolute; + top: -10px; + right: -10px; + display: none; + width: 20px; + height: 20px; + color: #999; + line-height: 20px; + text-align: center; + background-color: #f1f1f1; + border-radius: 50%; + cursor: pointer; + + &.show { + display: block; + } + + &:hover { + background-color: #f3f3f3; + } +} + +.actions-terms { + .actions-terms-warp { + display: flex; + width: 66.66%; + margin-bottom: 24px; + + &.first-children { + width: 100%; + .actions-branches { + width: 66.66%; + } + } + + &.first-children, + &:last-child { + margin-bottom: 0; + } + + .when-add-button { + .add-button(); + } + + .actions-terms-title { + width: 40px; + padding-top: 16px; + color: #6968be; + font-weight: 800; + font-size: 16px; + } + + .actions-terms-options { + position: relative; + display: flex; + flex-direction: column; + flex-grow: 1; + width: 0; + + &.border { + padding: 10px 18px 0 18px; + border: 1px dashed #999; + border-radius: 2px; + } + + &.no-when { + flex: none; + } + + .actions-terms-list { + position: relative; + margin-bottom: 16px; + + .ant-form-item-has-error { + .params-item_button { + border-color: @error-color; + } + } + + .actions-terms-list-content { + display: flex; + padding-top: 10px; + overflow-x: auto; + overflow-y: visible; + row-gap: 16px; + + } + } + } + } +} + +.terms-params { + display: flex; + flex-shrink: 0; + + .terms-params-warp { + display: flex; + align-items: baseline; + } + + .terms-params-content { + position: relative; + display: flex; + // flex-wrap: wrap; + padding: 8px; + padding-bottom: 0; + border: 1px dashed #e0e0e0; + //background-color: #fafafa; + border-radius: 6px; + row-gap: 16px; + .terms-params-item { + display: flex; + align-items: center; + } + + .ant-form-item { + margin-bottom: 8px; + &:not(:first-child) { + .ant-form-item-explain-error { + padding-left: 80px !important; + } + } + } + } + + .terms-group-add { + width: 66px; + margin-left: 16px; + padding: 2px 8px; + color: rgba(0, 0, 0, 0.3); + background: #fff; + border: 1px dashed rgba(0, 0, 0, 0.3); + border-radius: 30px; + cursor: pointer; + + .terms-content { + display: flex; + align-items: center; + } + } + + .term-type-warp { + width: 50px; + margin: 0 16px; + .term-type { + padding-top: 4px; + padding-bottom: 4px; + border-radius: 2px; + } + } +} + +.terms-params-item { + .params-button { + padding: 6px 8px; + border: 1px solid #d9d9d9; + border-radius: 8px; + cursor: pointer; + } + + .params-item_button { + position: relative; + display: flex; + gap: 2px; + + + .button-delete { + .deleteBtn(); + } + } + + .term-add { + margin-left: 16px; + .add-button(); + } +} + +.terms-params-delete { + .deleteBtn(); + + &.danger { + color: #e50012; + background-color: rgba(229, 0, 18, 0.1); + } + + &.filter-terms-params-delete { + transform: translateY(6px); + } +} diff --git a/src/views/rule-engine/Scene/Save/components/Terms/index.ts b/src/views/rule-engine/Scene/Save/components/Terms/index.ts new file mode 100644 index 00000000..71bd72da --- /dev/null +++ b/src/views/rule-engine/Scene/Save/components/Terms/index.ts @@ -0,0 +1,4 @@ +import Terms from './Terms.vue' +import './index.less' + +export default Terms \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/components/Terms/util.ts b/src/views/rule-engine/Scene/Save/components/Terms/util.ts new file mode 100644 index 00000000..de1c841c --- /dev/null +++ b/src/views/rule-engine/Scene/Save/components/Terms/util.ts @@ -0,0 +1,2 @@ +export const ContextKey = 'columnOptions' + diff --git a/src/views/rule-engine/Scene/typings.ts b/src/views/rule-engine/Scene/typings.ts index eff7cdbb..308e1329 100644 --- a/src/views/rule-engine/Scene/typings.ts +++ b/src/views/rule-engine/Scene/typings.ts @@ -122,13 +122,18 @@ export interface TriggerDeviceOptions { functionParameters?: Record[]; } +export type SelectorValuesItem = { + name: string + value: any +} + /** * 设备触发配置 */ export interface TriggerDevice { productId: string; selector: string; - selectorValues?: Record[]; + selectorValues?: SelectorValuesItem[]; operation?: TriggerDeviceOptions; } diff --git a/vite.config.ts b/vite.config.ts index 16a66d4a..66528f39 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -10,6 +10,7 @@ import VueSetupExtend from 'vite-plugin-vue-setup-extend' import { createStyleImportPlugin, AndDesignVueResolve } from 'vite-plugin-style-import' import * as path from 'path' import monacoEditorPlugin from 'vite-plugin-monaco-editor'; +// import { JetlinksVueResolver } from 'jetlinks-ui-components/lib/plugin/resolve' import { JetlinksVueResolver } from './plugin/jetlinks' import copy from 'rollup-plugin-copy'; From 783088e1bd756a7eea5226947b0d78d216eedabb Mon Sep 17 00:00:00 2001 From: xieyonghong <18010623010@163.com> Date: Tue, 7 Mar 2023 19:25:13 +0800 Subject: [PATCH 8/8] =?UTF-8?q?update:=20=E5=88=A0=E9=99=A4props=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/menu.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/utils/menu.ts b/src/utils/menu.ts index 6d920212..a723734c 100644 --- a/src/utils/menu.ts +++ b/src/utils/menu.ts @@ -167,7 +167,6 @@ const findChildrenRoute = (code: string, url: string, routes: any[] = []): MenuI url: `${url}/${route.code}`, code: `${code}/${route.code}`, name: route.name, - props: true, isShow: false } }) @@ -184,7 +183,6 @@ const findDetailRouteItem = (code: string, url: string): Partial | nul code: `${code}/Detail`, component: detailComponent, name: '详情信息', - props: true, isShow: false } } @@ -217,7 +215,6 @@ export function filterAsnycRouter(asyncRouterMap: any, parentCode = '', level = hideInMenu: route.isShow === false, buttons: route.buttons?.map((b: any) => b.id) || [] }, - props: true, } const silder = {..._route}