From 442ca04cf88d312bd5a591e0cb662c33ad581fea Mon Sep 17 00:00:00 2001 From: leiqiaochu Date: Fri, 24 Feb 2023 09:50:23 +0800 Subject: [PATCH 01/17] =?UTF-8?q?fix:=20=E6=83=A8=E5=B9=B3=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/device/Product/index.vue | 322 ++++++++++-------- .../rule-engine/Alarm/Configuration/index.vue | 5 + 2 files changed, 177 insertions(+), 150 deletions(-) diff --git a/src/views/device/Product/index.vue b/src/views/device/Product/index.vue index 96ed930b..456eedbe 100644 --- a/src/views/device/Product/index.vue +++ b/src/views/device/Product/index.vue @@ -1,167 +1,180 @@ @@ -193,11 +206,11 @@ import { isNoCommunity, downloadObject } from '@/utils/utils'; import { omit } from 'lodash-es'; import { typeOptions } from '@/components/Search/util'; import Save from './Save/index.vue'; -import { useMenuStore } from 'store/menu' +import { useMenuStore } from 'store/menu'; /** * 表格数据 */ - const menuStory = useMenuStore() +const menuStory = useMenuStore(); const router = useRouter(); const isAdd = ref(0); const title = ref(''); @@ -425,7 +438,7 @@ const beforeUpload = (file: any) => { * 查看 */ const handleView = (id: string) => { - menuStory.jumpPage('device/Product/Detail',{id}) + menuStory.jumpPage('device/Product/Detail', { id }); }; /** @@ -643,4 +656,13 @@ const handleSearch = (e: any) => { padding: 20px; background: #f0f2f5; } +.productImg { + width: 88px; + height: 88px; +} +.productName { + white-space: nowrap; /*强制在同一行内显示所有文本,直到文本结束或者遭遇br标签对象才换行。*/ + overflow: hidden; /*超出部分隐藏*/ + text-overflow: ellipsis; /*隐藏部分以省略号代替*/ +} diff --git a/src/views/rule-engine/Alarm/Configuration/index.vue b/src/views/rule-engine/Alarm/Configuration/index.vue index 61ecfd8f..d507c780 100644 --- a/src/views/rule-engine/Alarm/Configuration/index.vue +++ b/src/views/rule-engine/Alarm/Configuration/index.vue @@ -206,10 +206,12 @@ import { Store } from 'jetlinks-store'; import type { ActionsType } from '@/components/Table/index.vue'; import { message } from 'ant-design-vue'; import { getImage } from '@/utils/comm'; +import { useMenuStore } from '@/store/menu'; const params = ref>({}); let isAdd = ref(0); let title = ref(''); const tableRef = ref>({}); +const menuStory = useMenuStore(); const columns = [ { title: '名称', @@ -421,6 +423,9 @@ const getActions = ( return actions.filter((i: ActionsType) => i.key !== 'view'); return actions; }; +const add = () =>{ + // menuStory.jumpPage() +} \ No newline at end of file From b5e547831deb6653d469d4339acb5c1c8a0e5c3d Mon Sep 17 00:00:00 2001 From: JiangQiming <291854119@qq.com> Date: Fri, 24 Feb 2023 10:19:47 +0800 Subject: [PATCH 03/17] fix: bug#10181 --- src/views/notice/Config/Detail/index.vue | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/views/notice/Config/Detail/index.vue b/src/views/notice/Config/Detail/index.vue index 293cb17a..7a5a85b8 100644 --- a/src/views/notice/Config/Detail/index.vue +++ b/src/views/notice/Config/Detail/index.vue @@ -333,7 +333,7 @@ watch( msgType.value = MSG_TYPE[val]; formData.value.provider = - formData.value.provider !== ':id' + route.params.id !== ':id' ? formData.value.provider : msgType.value[0].value; @@ -344,14 +344,14 @@ watch( }, ); -watch( - () => formData.value.provider, - (val) => { - // formData.value.configuration = - // CONFIG_FIELD_MAP[formData.value.type][val]; - // clearValid(); - }, -); +// watch( +// () => formData.value.provider, +// (val) => { +// // formData.value.configuration = +// // CONFIG_FIELD_MAP[formData.value.type][val]; +// // clearValid(); +// }, +// ); // 验证规则 const formRules = ref({ From ad2bc406141c1c3c3e793a2e29857937447f583a Mon Sep 17 00:00:00 2001 From: JiangQiming <291854119@qq.com> Date: Fri, 24 Feb 2023 11:15:27 +0800 Subject: [PATCH 04/17] fix: bug#10163 --- src/views/notice/Template/Detail/index.vue | 40 ++++++++++++++++------ src/views/notice/Template/types.d.ts | 4 +++ 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/views/notice/Template/Detail/index.vue b/src/views/notice/Template/Detail/index.vue index 35c26200..ac3ce6cf 100644 --- a/src/views/notice/Template/Detail/index.vue +++ b/src/views/notice/Template/Detail/index.vue @@ -803,9 +803,6 @@ const formData = ref({ * 重置公用字段值 */ const resetPublicFiles = () => { - formData.value.template.message = ''; - formData.value.configId = undefined; - if ( formData.value.provider === 'dingTalkMessage' || formData.value.type === 'weixin' @@ -819,7 +816,12 @@ const resetPublicFiles = () => { if (formData.value.type === 'email') formData.value.template.toParty = undefined; // formData.value.description = ''; + + formData.value.template.messageType = 'markdown'; + formData.value.template.message = ''; + formData.value.configId = undefined; formData.value.variableDefinitions = []; + handleMessageTypeChange(); }; // 根据通知方式展示对应的字段 @@ -992,16 +994,30 @@ const variableReg = (value: string) => { * 钉钉机器人 消息类型选择改变 */ const handleMessageTypeChange = () => { + delete formData.value.template.markdown; + delete formData.value.template.link; + delete formData.value.template.text; + if (formData.value.template.messageType === 'link') { + formData.value.template.link = { + title: '', + picUrl: '', + messageUrl: '', + text: formData.value.template.message as string, + }; + } + if (formData.value.template.messageType === 'markdown') { + formData.value.template.markdown = { + title: '', + text: formData.value.template.message as string, + }; + } + if (formData.value.template.messageType === 'text') { + formData.value.template.text = { + content: formData.value.template.message as string, + }; + } formData.value.variableDefinitions = []; formData.value.template.message = ''; - if (formData.value.template.link) { - formData.value.template.link.title = ''; - formData.value.template.link.picUrl = ''; - formData.value.template.link.messageUrl = ''; - } - if (formData.value.template.markdown) { - formData.value.template.markdown.title = ''; - } }; /** @@ -1047,6 +1063,8 @@ const handleTypeChange = () => { const handleProviderChange = () => { formData.value.template = TEMPLATE_FIELD_MAP[formData.value.type][formData.value.provider]; + // console.log('formData.value: ', formData.value); + // console.log('formData.value.template: ', formData.value.template); getConfigList(); resetPublicFiles(); }; diff --git a/src/views/notice/Template/types.d.ts b/src/views/notice/Template/types.d.ts index 54aad7ff..bae9e021 100644 --- a/src/views/notice/Template/types.d.ts +++ b/src/views/notice/Template/types.d.ts @@ -27,6 +27,9 @@ interface ILink { messageUrl: string; text: string; } +interface IText { + content: string; +} export type TemplateFormData = { template: { @@ -37,6 +40,7 @@ export type TemplateFormData = { messageType?: string; markdown?: IMarkDown; link?: ILink; + text?: IText; // 微信 // agentId?: string; // message?: string; From 6af3a1a9982dbc6caac1fd0d719dfcf2d4a01a2c Mon Sep 17 00:00:00 2001 From: JiangQiming <291854119@qq.com> Date: Fri, 24 Feb 2023 11:51:45 +0800 Subject: [PATCH 05/17] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=86=85=E5=AE=B9=E6=8F=90=E5=8F=96=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/notice/Template/Detail/index.vue | 42 +++++++++++++++------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/src/views/notice/Template/Detail/index.vue b/src/views/notice/Template/Detail/index.vue index ac3ce6cf..eb5ae295 100644 --- a/src/views/notice/Template/Detail/index.vue +++ b/src/views/notice/Template/Detail/index.vue @@ -919,7 +919,7 @@ watch( () => formData.value.template.markdown?.title, (val) => { if (!val) return; - variableReg(val); + variableReg(); }, { deep: true }, ); @@ -928,7 +928,7 @@ watch( () => formData.value.template.link?.title, (val) => { if (!val) return; - variableReg(val); + variableReg(); }, { deep: true }, ); @@ -937,7 +937,7 @@ watch( () => formData.value.template.subject, (val) => { if (!val) return; - variableReg(val); + variableReg(); }, { deep: true }, ); @@ -947,7 +947,7 @@ watch( () => formData.value.template.message, (val) => { if (!val) return; - variableReg(val); + variableReg(); }, { deep: true }, ); @@ -956,21 +956,42 @@ watch( () => formData.value.template.body, (val) => { if (!val) return; - variableReg(val); + variableReg(); }, { deep: true }, ); +/** + * 将需要提取变量的字段值拼接为一个字符串, 用于统一提取变量 + */ +const spliceStr = () => { + let variableFieldsStr = formData.value.template.message; + if (formData.value.provider === 'dingTalkRobotWebHook') { + if (formData.value.template.messageType === 'markdown') + variableFieldsStr += formData.value.template.markdown + ?.title as string; + if (formData.value.template.messageType === 'link') + variableFieldsStr += formData.value.template.link?.title as string; + } + if (formData.value.provider === 'embedded') + variableFieldsStr += formData.value.template.subject as string; + if (formData.value.provider === 'http') + variableFieldsStr += formData.value.template.body as string; + // console.log('variableFieldsStr: ', variableFieldsStr); + return variableFieldsStr || ''; +}; + /** * 根据字段输入内容, 提取变量 * @param value */ -const variableReg = (value: string) => { +const variableReg = () => { + const _val = spliceStr(); // 已经存在的变量 const oldKey = formData.value.variableDefinitions?.map((m) => m.id); // 正则提取${}里面的值 const pattern = /(?<=\$\{).*?(?=\})/g; - const titleList = value.match(pattern)?.filter((f) => f); + const titleList = _val.match(pattern)?.filter((f) => f); const newKey = [...new Set(titleList)]; const result = newKey?.map((m) => oldKey.includes(m) @@ -982,12 +1003,7 @@ const variableReg = (value: string) => { format: '%s', }, ); - formData.value.variableDefinitions = [ - ...new Set([ - ...formData.value.variableDefinitions, - ...(result as IVariableDefinitions[]), - ]), - ]; + formData.value.variableDefinitions = result as IVariableDefinitions[]; }; /** From 15c31a449bcff964f1fc51d0edd5ddbf9ea4869e Mon Sep 17 00:00:00 2001 From: JiangQiming <291854119@qq.com> Date: Fri, 24 Feb 2023 14:07:45 +0800 Subject: [PATCH 06/17] fix: bug#10199 #10201 --- src/components/Table/index.tsx | 2 +- src/views/notice/Config/index.vue | 4 ++-- src/views/notice/Template/index.vue | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/Table/index.tsx b/src/components/Table/index.tsx index e3c69329..ecc04bf0 100644 --- a/src/components/Table/index.tsx +++ b/src/components/Table/index.tsx @@ -260,7 +260,7 @@ const JTable = defineComponent({ /** * 导出方法 */ - expose({ reload }) + expose({ reload, _dataSource }) return () =>
diff --git a/src/views/notice/Config/index.vue b/src/views/notice/Config/index.vue index ff935b45..cd89502e 100644 --- a/src/views/notice/Config/index.vue +++ b/src/views/notice/Config/index.vue @@ -29,7 +29,7 @@ 导入 { * 导出 */ const handleExport = () => { - downloadObject(configRef.value.dataSource, `通知配置`); + downloadObject(configRef.value._dataSource, `通知配置`); }; const syncVis = ref(false); diff --git a/src/views/notice/Template/index.vue b/src/views/notice/Template/index.vue index 9db9dab6..f5ecbb08 100644 --- a/src/views/notice/Template/index.vue +++ b/src/views/notice/Template/index.vue @@ -29,7 +29,7 @@ 导入 { * 导出 */ const handleExport = () => { - downloadObject(configRef.value.dataSource, `通知配置`); + downloadObject(configRef.value._dataSource, `通知配置`); }; const syncVis = ref(false); From f3620e5e076638bc8e1d38a6fc90135101b8fdc4 Mon Sep 17 00:00:00 2001 From: JiangQiming <291854119@qq.com> Date: Fri, 24 Feb 2023 14:55:30 +0800 Subject: [PATCH 07/17] fix: bug#10198 --- src/views/notice/Config/Detail/index.vue | 65 ++++++++++------ src/views/notice/Template/Detail/index.vue | 88 +++++++++++++--------- src/views/notice/Template/types.d.ts | 2 + src/views/notice/const.ts | 4 +- 4 files changed, 101 insertions(+), 58 deletions(-) diff --git a/src/views/notice/Config/Detail/index.vue b/src/views/notice/Config/Detail/index.vue index 7a5a85b8..88a92a1e 100644 --- a/src/views/notice/Config/Detail/index.vue +++ b/src/views/notice/Config/Detail/index.vue @@ -336,23 +336,9 @@ watch( route.params.id !== ':id' ? formData.value.provider : msgType.value[0].value; - - // formData.value.configuration = - // CONFIG_FIELD_MAP[val][formData.value.provider]; - - // clearValid(); }, ); -// watch( -// () => formData.value.provider, -// (val) => { -// // formData.value.configuration = -// // CONFIG_FIELD_MAP[formData.value.type][val]; -// // clearValid(); -// }, -// ); - // 验证规则 const formRules = ref({ type: [{ required: true, message: '请选择通知方式' }], @@ -421,12 +407,6 @@ const { resetFields, validate, validateInfos, clearValidate } = useForm( formRules.value, ); -const clearValid = () => { - setTimeout(() => { - clearValidate(); - }, 200); -}; - const getDetail = async () => { if (route.params.id === ':id') return; const res = await configApi.detail(route.params.id as string); @@ -444,7 +424,7 @@ const handleTypeChange = () => { setTimeout(() => { formData.value.configuration = CONFIG_FIELD_MAP[formData.value.type][formData.value.provider]; - // resetPublicFiles(); + resetPublicFiles(); }, 0); }; @@ -454,7 +434,48 @@ const handleTypeChange = () => { const handleProviderChange = () => { formData.value.configuration = CONFIG_FIELD_MAP[formData.value.type][formData.value.provider]; - // resetPublicFiles(); + resetPublicFiles(); +}; + +/** + * 重置字段值 + */ +const resetPublicFiles = () => { + switch (formData.value.provider) { + case 'dingTalkMessage': + formData.value.configuration.appKey = ''; + formData.value.configuration.appSecret = ''; + break; + case 'dingTalkRobotWebHook': + formData.value.configuration.url = ''; + break; + case 'corpMessage': + formData.value.configuration.corpId = ''; + formData.value.configuration.corpSecret = ''; + break; + case 'embedded': + formData.value.configuration.host = ''; + formData.value.configuration.port = 25; + formData.value.configuration.ssl = false; + formData.value.configuration.sender = ''; + formData.value.configuration.username = ''; + formData.value.configuration.password = ''; + break; + case 'aliyun': + formData.value.configuration.regionId = ''; + formData.value.configuration.accessKeyId = ''; + formData.value.configuration.secret = ''; + break; + case 'aliyunSms': + formData.value.configuration.regionId = ''; + formData.value.configuration.accessKeyId = ''; + formData.value.configuration.secret = ''; + break; + case 'http': + formData.value.configuration.url = undefined; + formData.value.configuration.headers = []; + break; + } }; /** diff --git a/src/views/notice/Template/Detail/index.vue b/src/views/notice/Template/Detail/index.vue index eb5ae295..d16395f3 100644 --- a/src/views/notice/Template/Detail/index.vue +++ b/src/views/notice/Template/Detail/index.vue @@ -106,7 +106,8 @@ ({ }); /** - * 重置公用字段值 + * 重置字段值 */ const resetPublicFiles = () => { - if ( - formData.value.provider === 'dingTalkMessage' || - formData.value.type === 'weixin' - ) { - formData.value.template.toTag = undefined; - formData.value.template.toUser = undefined; - formData.value.template.agentId = undefined; + switch (formData.value.provider) { + case 'dingTalkMessage': + formData.value.template.agentId = ''; + formData.value.template.message = ''; + formData.value.template.departmentIdList = ''; + formData.value.template.userIdList = ''; + break; + case 'dingTalkRobotWebHook': + formData.value.template.message = ''; + formData.value.template.messageType = 'markdown'; + formData.value.template.markdown = { text: '', title: '' }; + break; + case 'corpMessage': + formData.value.template.agentId = ''; + formData.value.template.message = ''; + formData.value.template.toParty = ''; + formData.value.template.toUser = ''; + formData.value.template.toTag = ''; + break; + case 'embedded': + formData.value.template.subject = ''; + formData.value.template.message = ''; + formData.value.template.text = ''; + formData.value.template.sendTo = []; + formData.value.template.attachments = []; + break; + case 'aliyun': + formData.value.template.templateType = 'tts'; + formData.value.template.templateCode = ''; + formData.value.template.ttsCode = ''; + formData.value.template.message = ''; + formData.value.template.playTimes = 1; + formData.value.template.calledShowNumbers = ''; + formData.value.template.calledNumber = ''; + break; + case 'aliyunSms': + formData.value.template.code = ''; + formData.value.template.message = ''; + formData.value.template.phoneNumber = ''; + formData.value.template.signName = ''; + break; + case 'http': + formData.value.template.contextAsBody = true; + formData.value.template.body = ''; + break; } - if (formData.value.type === 'weixin') - formData.value.template.toParty = undefined; - if (formData.value.type === 'email') - formData.value.template.toParty = undefined; - // formData.value.description = ''; - formData.value.template.messageType = 'markdown'; - formData.value.template.message = ''; formData.value.configId = undefined; formData.value.variableDefinitions = []; handleMessageTypeChange(); @@ -833,15 +865,8 @@ watch( route.params.id !== ':id' ? formData.value.provider : msgType.value[0].value; - // formData.value.provider = formData.value.provider || msgType.value[0].value; - // console.log('formData.value.template: ', formData.value.template); - - // formData.value.template = - // TEMPLATE_FIELD_MAP[val][formData.value.provider]; if (val !== 'email') getConfigList(); - // clearValid(); - // console.log('formData.value: ', formData.value); if (val === 'sms') { getTemplateList(); @@ -850,15 +875,6 @@ watch( }, ); -// watch( -// () => formData.value.provider, -// (val) => { -// formData.value.template = TEMPLATE_FIELD_MAP[formData.value.type][val]; - -// clearValid(); -// }, -// ); - // 验证规则 const formRules = ref({ type: [{ required: true, message: '请选择通知方式' }], @@ -1069,6 +1085,7 @@ const handleTypeChange = () => { setTimeout(() => { formData.value.template = TEMPLATE_FIELD_MAP[formData.value.type][formData.value.provider]; + // console.log('formData.value.template: ', formData.value.template); resetPublicFiles(); }, 0); }; @@ -1146,8 +1163,9 @@ const handleSubmit = () => { setTimeout(() => { validate() .then(async () => { - formData.value.template.ttsCode = - formData.value.template.templateCode; + if (formData.value.provider === 'ttsCode') + formData.value.template.ttsCode = + formData.value.template.templateCode; btnLoading.value = true; let res; if (!formData.value.id) { diff --git a/src/views/notice/Template/types.d.ts b/src/views/notice/Template/types.d.ts index bae9e021..23e9ca57 100644 --- a/src/views/notice/Template/types.d.ts +++ b/src/views/notice/Template/types.d.ts @@ -36,6 +36,8 @@ export type TemplateFormData = { // 钉钉消息 agentId?: string; message?: string; + departmentIdList?: string; + userIdList?: string; // 钉钉机器人 messageType?: string; markdown?: IMarkDown; diff --git a/src/views/notice/const.ts b/src/views/notice/const.ts index 32116d21..39c36df7 100644 --- a/src/views/notice/const.ts +++ b/src/views/notice/const.ts @@ -147,10 +147,12 @@ export const TEMPLATE_FIELD_MAP = { dingTalkMessage: { agentId: '', message: '', + departmentIdList: '', + userIdList: '' }, dingTalkRobotWebHook: { message: '', - messageType: '', + messageType: 'markdown', markdown: { text: '', title: '', From 0dcdac0ee66a1bab583a470c14222c291a51c8f6 Mon Sep 17 00:00:00 2001 From: JiangQiming <291854119@qq.com> Date: Fri, 24 Feb 2023 16:50:45 +0800 Subject: [PATCH 08/17] fix: bug#10196 --- src/api/notice/config.ts | 12 ++-- src/views/notice/Config/SyncUser/index.vue | 73 +++++++++++++++------- 2 files changed, 58 insertions(+), 27 deletions(-) diff --git a/src/api/notice/config.ts b/src/api/notice/config.ts index bbb21c3d..467455d6 100644 --- a/src/api/notice/config.ts +++ b/src/api/notice/config.ts @@ -16,21 +16,21 @@ export default { debug: (data: any, configId: string, templateId: string) => post(`/notifier/${configId}/${templateId}/_send`, data), getHistory: (data: any, id: string) => post(`/notify/history/config/${id}/_query`, data), // 获取所有平台用户 - getPlatformUsers: () => post(`/user/_query/no-paging`, { paging: false }), + getPlatformUsers: (data: any) => post(`/user/_query/no-paging`, data), // 钉钉部门 dingTalkDept: (id: string) => get(`/notifier/dingtalk/corp/${id}/departments/tree`), // 钉钉部门人员 - getDingTalkUsers: (configId: string, deptId: string) => get(`/notifier/dingtalk/corp/${configId}/${deptId}/users`), + getDingTalkUsers: (configId: string, deptId: string) => get(`/notifier/dingtalk/corp/${configId}/${deptId}/users`), // 钉钉已经绑定的人员 - getDingTalkBindUsers: (id: string) => get(`/user/third-party/dingTalk_dingTalkMessage/${id}`), + getDingTalkBindUsers: (id: string) => get(`/user/third-party/dingTalk_dingTalkMessage/${id}`), // 钉钉绑定用户 - dingTalkBindUser: (data: any, id: string) => patch(`/user/third-party/dingTalk_dingTalkMessage/${id}`, data), + dingTalkBindUser: (data: { userId: string; providerName: string; thirdPartyUserId: string }[], id: string) => patch(`/user/third-party/dingTalk_dingTalkMessage/${id}`, data), // 微信部门 weChatDept: (id: string) => get(`/notifier/wechat/corp/${id}/departments`), // 微信部门人员 - getWeChatUsers: (configId: string, deptId: string) => get(`/notifier/wechat/corp/${configId}/${deptId}/users`), + getWeChatUsers: (configId: string, deptId: string) => get(`/notifier/wechat/corp/${configId}/${deptId}/users`), // 微信已经绑定的人员 - getWeChatBindUsers: (id: string) => get(`/user/third-party/weixin_corpMessage/${id}`), + getWeChatBindUsers: (id: string) => get(`/user/third-party/weixin_corpMessage/${id}`), // 微信绑定用户 weChatBindUser: (data: any, id: string) => patch(`/user/third-party/weixin_corpMessage/${id}`, data), // 解绑 diff --git a/src/views/notice/Config/SyncUser/index.vue b/src/views/notice/Config/SyncUser/index.vue index 1fc23686..2aa1a45f 100644 --- a/src/views/notice/Config/SyncUser/index.vue +++ b/src/views/notice/Config/SyncUser/index.vue @@ -7,7 +7,7 @@ @cancel="_vis = false" width="80%" > - + + + \ No newline at end of file diff --git a/src/views/device/Instance/Detail/Running/Property/Detail/PropertyAMap.vue b/src/views/device/Instance/Detail/Running/Property/Detail/PropertyAMap.vue new file mode 100644 index 00000000..b7860f91 --- /dev/null +++ b/src/views/device/Instance/Detail/Running/Property/Detail/PropertyAMap.vue @@ -0,0 +1,74 @@ + + + + + \ No newline at end of file diff --git a/src/views/device/Instance/Detail/Running/Property/Detail/Table.vue b/src/views/device/Instance/Detail/Running/Property/Detail/Table.vue index bc945471..83bba809 100644 --- a/src/views/device/Instance/Detail/Running/Property/Detail/Table.vue +++ b/src/views/device/Instance/Detail/Running/Property/Detail/Table.vue @@ -18,6 +18,13 @@ +
+ +
自定义属性
+ + + +
\ No newline at end of file + + + \ No newline at end of file diff --git a/src/views/device/Instance/Detail/Running/Property/Detail/index.vue b/src/views/device/Instance/Detail/Running/Property/Detail/index.vue index 6ba7173e..6bdb9c4b 100644 --- a/src/views/device/Instance/Detail/Running/Property/Detail/index.vue +++ b/src/views/device/Instance/Detail/Running/Property/Detail/index.vue @@ -2,15 +2,15 @@
- + - + - - + + @@ -21,7 +21,7 @@ import type { Dayjs } from 'dayjs'; import TimeComponent from './TimeComponent.vue' import Charts from './Charts.vue' -import AMap from './AMap.vue' +import PropertyAMap from './PropertyAMap.vue' import Table from './Table.vue' const props = defineProps({ diff --git a/src/views/device/Instance/Detail/Running/Property/PropertyCard.vue b/src/views/device/Instance/Detail/Running/Property/PropertyCard.vue index 220765b2..8ad0c5ef 100644 --- a/src/views/device/Instance/Detail/Running/Property/PropertyCard.vue +++ b/src/views/device/Instance/Detail/Running/Property/PropertyCard.vue @@ -1,15 +1,15 @@ \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/Device/DeviceSelect.vue b/src/views/rule-engine/Scene/Save/Device/DeviceSelect.vue new file mode 100644 index 00000000..b3aa34d6 --- /dev/null +++ b/src/views/rule-engine/Scene/Save/Device/DeviceSelect.vue @@ -0,0 +1,83 @@ + + + + + \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/Device/OrgList.vue b/src/views/rule-engine/Scene/Save/Device/OrgList.vue new file mode 100644 index 00000000..1374b005 --- /dev/null +++ b/src/views/rule-engine/Scene/Save/Device/OrgList.vue @@ -0,0 +1,130 @@ + + + + + \ No newline at end of file diff --git a/src/views/rule-engine/Scene/Save/Device/Product.vue b/src/views/rule-engine/Scene/Save/Device/Product.vue index d9d778ac..705d4b9e 100644 --- a/src/views/rule-engine/Scene/Save/Device/Product.vue +++ b/src/views/rule-engine/Scene/Save/Device/Product.vue @@ -4,18 +4,25 @@ type='simple' @search="handleSearch" class='search' + target="scene-triggrt-device-device" /> +