diff --git a/plugin/antdv.ts b/plugin/antdv.ts
index 1d051d09fa163076b559df1adf70e5e98f4b5600..fb7d12e381fcb6c2596fd43bfba1b4d427ac11ba 100644
--- a/plugin/antdv.ts
+++ b/plugin/antdv.ts
@@ -1,6 +1,6 @@
import type { IMatcher } from './jetlinks'
-
+// kebab-case 要求短语内的各个单词或缩写之间以-(连字符)做间隔
export function kebabCase(key: string) {
const result = key.replace(/([A-Z])/g, ' $1').trim()
return result.split(' ').join('-').toLowerCase()
diff --git a/src/api/account/notificationSubscription.ts b/src/api/account/notificationSubscription.ts
index f7dac85ccdbe0dba0fa8775c9733121a567ae5f8..afc034152cdf0c055b5fc983d387695bf963261c 100644
--- a/src/api/account/notificationSubscription.ts
+++ b/src/api/account/notificationSubscription.ts
@@ -30,7 +30,6 @@ export const getWechatOAuth2 = (configId: string, templateId: string, url: strin
export const getDingTalkOAuth2 = (configId: string, url: string) => server.get(`/notifier/dingtalk/corp/${configId}/oauth2/binding-user-url?authCode=${url}`);
// 获取oauth2授权的用户绑定码
-
export const getUserBind = (type: 'wechat' | 'dingtalk', params: any) => server.get(`/notifier/${type}/corp/oauth2/user-bind-code`, params);
// 根据绑定码绑定当前用户
diff --git a/src/api/rule-engine/configuration.ts b/src/api/rule-engine/configuration.ts
index 964c26f173f100d20d14da6b33103ccd6497fe33..f4f20f2c572ed62d3046eb27ef2c149b816721bc 100644
--- a/src/api/rule-engine/configuration.ts
+++ b/src/api/rule-engine/configuration.ts
@@ -34,7 +34,7 @@ export const save = (data:any) =>server.post('/alarm/config',data);
/**
* 更新基础设置
*/
-export const updata = (data:any) => server.patch('/alarm/config',data);
+export const update = (data:any) => server.patch('/alarm/config',data);
/**
* 获取基础设置数据
*/
diff --git a/src/store/alarm.ts b/src/store/alarm.ts
index b0f998e4c1ea071d248b4fab30edf1bb40d9d9cc..5a6d6756daad3129179ce1a7c09d2c228071e33f 100644
--- a/src/store/alarm.ts
+++ b/src/store/alarm.ts
@@ -39,9 +39,7 @@ export const useAlarmStore = defineStore('alarm', () => {
export const useAlarmConfigurationStore = defineStore('alarmConfigration', () => {
const configurationData = reactive({
- current:{
-
- }
+ current:{}
})
return { configurationData }
})
\ No newline at end of file
diff --git a/src/store/department.ts b/src/store/department.ts
index ca278f3771a2f699d152b1e6db9b30ee1c632bbd..afb92003bc6670a00068a682c74a12db12264664 100644
--- a/src/store/department.ts
+++ b/src/store/department.ts
@@ -12,9 +12,9 @@ export const useDepartmentStore = defineStore({
id: 'department',
state: (): DepartmentStateType => ({
productId: undefined,
- // 设备资产分配弹窗操作类型:
- // 1. optType === 'handle': 手动点击资产分配按钮;
- // 2. optType === ': 产品资产分配后, 自动弹出设备资产分配
+ // 设备资产分配弹窗操作类型:
+ // 1. optType === 'handle': 手动点击资产分配按钮;
+ // 2. optType === '': 产品资产分配后, 自动弹出设备资产分配
optType: '',
crossPageKeys: [], // 表格跨页多选的keys
changedApis: {},
diff --git a/src/utils/consts.ts b/src/utils/consts.ts
index c2561832413043b2f842b950b337597eb7b38b45..62c5acb1492e44e565ad41d88170572df940c20d 100644
--- a/src/utils/consts.ts
+++ b/src/utils/consts.ts
@@ -29,6 +29,7 @@ export const StatusColorEnum = {
'default': 'default',
}
+/** 系统设置 */
export const SystemConst = {
API_BASE: 'api',
SYSTEM_NAME: 'Jetlinks',
@@ -52,7 +53,7 @@ export const USER_CENTER_MENU_CODE = 'account-center'
export const USER_CENTER_MENU_BUTTON_CODE = 'user-center-passwd-update'
export const messageSubscribe = 'message-subscribe'
-/**协议列表 */
+/** 协议列表 */
export const protocolList = [
{ label: 'OPC_UA', value: 'OPC_UA', alias: 'opc-ua' },
{ label: 'MODBUS_TCP', value: 'MODBUS_TCP', alias: 'Modbus/TCP' },
diff --git a/src/views/device/Firmware/Task/Save/SelectDevices.vue b/src/views/device/Firmware/Task/Save/SelectDevices.vue
index d080fdc10085f342fb3db337be9e0068c1618334..c969e687e7fe9f537bbe8cefeed3502b4250d137 100644
--- a/src/views/device/Firmware/Task/Save/SelectDevices.vue
+++ b/src/views/device/Firmware/Task/Save/SelectDevices.vue
@@ -266,7 +266,6 @@ onMounted(() => {
if (props.data.id) {
checkLable.value = updateSelect(props.data.deviceId);
emit('update:modelValue', props.data.deviceId);
- console.log(111, checkLable.value, props.data.deviceId);
}
}
},
diff --git a/src/views/device/components/Metadata/Base/Base.vue b/src/views/device/components/Metadata/Base/Base.vue
index 09b5e9c2ef70b88b4a70b8b6276ceeb13063e1e8..ca22d2a78a39caa2edaf32116afe87d25a815b4d 100644
--- a/src/views/device/components/Metadata/Base/Base.vue
+++ b/src/views/device/components/Metadata/Base/Base.vue
@@ -12,6 +12,7 @@
@change="(data) => dataSourceCache = data"
>
+
新增
@@ -136,19 +137,20 @@
+
-
+
+
+
+
+
+ detailData.data = data"
+ @save="handleSaveClick"
+ @cancel="cancelDrawer"
+ />
+ detailData.data = data"
+ @save="handleSaveClick"
+ @cancel="cancelDrawer"
+ />
+ detailData.data = data"
+ @save="handleSaveClick"
+ @cancel="cancelDrawer"
+ />
+ detailData.data = data"
+ @save="handleSaveClick"
+ @cancel="cancelDrawer"
+ />
+
{
})
provide('_dataSource', dataSourceCache)
+
const showDetail = (data: any) => {
detailData.data = data
+ detailData.type = 'view'
detailData.visible = true
}
const cancelDetailModal = () => {
detailData.data = {}
+ detailData.type = 'view'
detailData.visible = false
}
-const operateLimits = (action: 'add' | 'updata', types: MetadataType) => {
+const showDrawer = (data: any, type: string) => {
+ detailData.data = data
+ detailData.type = type
+ detailData.visible = true
+}
+
+const cancelDrawer = () => {
+ detailData.visible = false
+}
+
+const operateLimits = (action: 'add' | 'update', types: MetadataType) => {
return (
_target === 'device' &&
(instanceStore.detail.features || []).find((item: { id: string; name: string }) => item.id === limitsMap.get(`${types}-${action}`))
@@ -398,7 +463,6 @@ const getDataByType = () => {
}
const handleAddClick = async (_data?: any, index?: number) => {
-
const newObject = _data || getDataByType()
const _addData = await tableRef.value.addItem(newObject, index)
@@ -435,13 +499,16 @@ const editStatusChange = (status: boolean) => {
}
const handleSaveClick = async (next?: Function) => {
- let resp = await tableRef.value.getData().finally(() => {
-
- });
+ let resp = await tableRef.value.getData().finally(() => {});
+ if(detailData.type === 'create') {
+ resp.push(detailData.data);
+ }
if(resp) {
-
const virtual: any[] = [];
const arr = resp.map((item: any) => {
+ if(detailData.type === 'edit' && item.id === detailData.data.id) {
+ item = detailData.data;
+ }
if(item.expands?.virtualRule) {
const triggerProperties = item.expands.virtualRule.triggerProperties
const rule = omit(item.expands.virtualRule, ['triggerProperties'])
@@ -488,7 +555,9 @@ const handleSaveClick = async (next?: Function) => {
loading.value = false
})
if(result.success) {
- dataSource.value = resp
+ dataSource.value = arr
+ detailData.data = {}
+ detailData.type = ''
tableRef.value.cleanEditStatus()
editStatus.value = false
onlyMessage('操作成功!')
diff --git a/src/views/device/components/Metadata/Base/DetailDrawer/EventDrawer.vue b/src/views/device/components/Metadata/Base/DetailDrawer/EventDrawer.vue
new file mode 100644
index 0000000000000000000000000000000000000000..e3fec157264f53e92dee1f1a1066cc5e48c3449c
--- /dev/null
+++ b/src/views/device/components/Metadata/Base/DetailDrawer/EventDrawer.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ 取消
+ 确认
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/device/components/Metadata/Base/DetailDrawer/FunctionDrawer.vue b/src/views/device/components/Metadata/Base/DetailDrawer/FunctionDrawer.vue
new file mode 100644
index 0000000000000000000000000000000000000000..1540c6dc57232664bc651815814cadc9ac840b36
--- /dev/null
+++ b/src/views/device/components/Metadata/Base/DetailDrawer/FunctionDrawer.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ 取消
+ 确认
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/device/components/Metadata/Base/DetailDrawer/JsonView.vue b/src/views/device/components/Metadata/Base/DetailDrawer/JsonView.vue
new file mode 100644
index 0000000000000000000000000000000000000000..95ad70215f786edee2374fe5258e38c1001ea15b
--- /dev/null
+++ b/src/views/device/components/Metadata/Base/DetailDrawer/JsonView.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/device/components/Metadata/Base/DetailDrawer/PropertiesDrawer.vue b/src/views/device/components/Metadata/Base/DetailDrawer/PropertiesDrawer.vue
new file mode 100644
index 0000000000000000000000000000000000000000..f00aab5741ffaa4d9e4734f136bd06ce59d490ef
--- /dev/null
+++ b/src/views/device/components/Metadata/Base/DetailDrawer/PropertiesDrawer.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ 取消
+ 确认
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/device/components/Metadata/Base/DetailDrawer/TagsDrawer.vue b/src/views/device/components/Metadata/Base/DetailDrawer/TagsDrawer.vue
new file mode 100644
index 0000000000000000000000000000000000000000..2fd964bbf7223acecc48057c0cb1d52224688e4c
--- /dev/null
+++ b/src/views/device/components/Metadata/Base/DetailDrawer/TagsDrawer.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ 取消
+ 确认
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/device/components/Metadata/Base/DetailDrawer/index.ts b/src/views/device/components/Metadata/Base/DetailDrawer/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6e1a6530b88dba2691c57a2f9f2422750464ab4a
--- /dev/null
+++ b/src/views/device/components/Metadata/Base/DetailDrawer/index.ts
@@ -0,0 +1,4 @@
+export { default as PropertiesDrawer } from './PropertiesDrawer.vue'
+export { default as FunctionDrawer } from './FunctionDrawer.vue'
+export { default as EventDrawer } from './EventDrawer.vue'
+export { default as TagsDrawer } from './TagsDrawer.vue'
\ No newline at end of file
diff --git a/src/views/device/components/Metadata/Base/Edit/BaseForm.vue b/src/views/device/components/Metadata/Base/Edit/BaseForm.vue
index c177612614e7b2ab315bc573c4a5c401c2c4d9f6..303fa93b3bd59c0ad7eab2f9d30e2f0a0b9b24a7 100644
--- a/src/views/device/components/Metadata/Base/Edit/BaseForm.vue
+++ b/src/views/device/components/Metadata/Base/Edit/BaseForm.vue
@@ -59,6 +59,7 @@
+