From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/views/iot/utils/constants.ts |  543 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 543 insertions(+), 0 deletions(-)

diff --git a/src/views/iot/utils/constants.ts b/src/views/iot/utils/constants.ts
new file mode 100644
index 0000000..fe6db18
--- /dev/null
+++ b/src/views/iot/utils/constants.ts
@@ -0,0 +1,543 @@
+import { isEmpty } from '@/utils/is'
+
+/** IoT 渚濊禆娉ㄥ叆 KEY */
+export const IOT_PROVIDE_KEY = {
+  PRODUCT: 'IOT_PRODUCT'
+}
+
+/** IoT 浜у搧鐗╂ā鍨嬬被鍨嬫灇涓剧被 */
+export const IoTThingModelTypeEnum = {
+  PROPERTY: 1, // 灞炴��
+  SERVICE: 2, // 鏈嶅姟
+  EVENT: 3 // 浜嬩欢
+} as const
+
+/** IoT 璁惧娑堟伅鐨勬柟娉曟灇涓� */
+export const IotDeviceMessageMethodEnum = {
+  // ========== 璁惧鐘舵�� ==========
+  STATE_UPDATE: {
+    method: 'thing.state.update',
+    name: '璁惧鐘舵�佸彉鏇�',
+    upstream: true
+  },
+
+  // ========== 璁惧灞炴�� ==========
+  PROPERTY_POST: {
+    method: 'thing.property.post',
+    name: '灞炴�т笂鎶�',
+    upstream: true
+  },
+  PROPERTY_SET: {
+    method: 'thing.property.set',
+    name: '灞炴�ц缃�',
+    upstream: false
+  },
+
+  // ========== 璁惧浜嬩欢 ==========
+  EVENT_POST: {
+    method: 'thing.event.post',
+    name: '浜嬩欢涓婃姤',
+    upstream: true
+  },
+
+  // ========== 鏈嶅姟璋冪敤 ==========
+  SERVICE_INVOKE: {
+    method: 'thing.service.invoke',
+    name: '鏈嶅姟璋冪敤',
+    upstream: false
+  },
+
+  // ========== 璁惧閰嶇疆 ==========
+  CONFIG_PUSH: {
+    method: 'thing.config.push',
+    name: '閰嶇疆鎺ㄩ��',
+    upstream: false
+  }
+}
+
+// IoT 浜у搧鐗╂ā鍨嬫湇鍔¤皟鐢ㄦ柟寮忔灇涓�
+export const IoTThingModelServiceCallTypeEnum = {
+  ASYNC: {
+    label: '寮傛',
+    value: 'async'
+  },
+  SYNC: {
+    label: '鍚屾',
+    value: 'sync'
+  }
+} as const
+export const getThingModelServiceCallTypeLabel = (value: string): string | undefined =>
+  Object.values(IoTThingModelServiceCallTypeEnum).find((type) => type.value === value)?.label
+
+// IoT 浜у搧鐗╂ā鍨嬩簨浠剁被鍨嬫灇涓�
+export const IoTThingModelEventTypeEnum = {
+  INFO: {
+    label: '淇℃伅',
+    value: 'info'
+  },
+  ALERT: {
+    label: '鍛婅',
+    value: 'alert'
+  },
+  ERROR: {
+    label: '鏁呴殰',
+    value: 'error'
+  }
+} as const
+export const getEventTypeLabel = (value: string): string | undefined =>
+  Object.values(IoTThingModelEventTypeEnum).find((type) => type.value === value)?.label
+
+// IoT 浜у搧鐗╂ā鍨嬪弬鏁版槸杈撳叆鍙傛暟杩樻槸杈撳嚭鍙傛暟
+export const IoTThingModelParamDirectionEnum = {
+  INPUT: 'input', // 杈撳叆鍙傛暟
+  OUTPUT: 'output' // 杈撳嚭鍙傛暟
+} as const
+
+// IoT 浜у搧鐗╂ā鍨嬭闂ā寮忔灇涓剧被
+export const IoTThingModelAccessModeEnum = {
+  READ_WRITE: {
+    label: '璇诲啓',
+    value: 'rw'
+  },
+  READ_ONLY: {
+    label: '鍙',
+    value: 'r'
+  },
+  WRITE_ONLY: {
+    label: '鍙啓',
+    value: 'w'
+  }
+} as const
+
+/** 鑾峰彇璁块棶妯″紡鏍囩 */
+export const getAccessModeLabel = (value: string): string => {
+  const mode = Object.values(IoTThingModelAccessModeEnum).find((mode) => mode.value === value)
+  return mode?.label || value
+}
+
+/** 灞炴�у�肩殑鏁版嵁绫诲瀷 */
+export const IoTDataSpecsDataTypeEnum = {
+  INT: 'int',
+  FLOAT: 'float',
+  DOUBLE: 'double',
+  ENUM: 'enum',
+  BOOL: 'bool',
+  TEXT: 'text',
+  DATE: 'date',
+  STRUCT: 'struct',
+  ARRAY: 'array'
+} as const
+
+export const getDataTypeOptions = () => {
+  return [
+    { value: IoTDataSpecsDataTypeEnum.INT, label: '鏁存暟鍨�' },
+    { value: IoTDataSpecsDataTypeEnum.FLOAT, label: '鍗曠簿搴︽诞鐐瑰瀷' },
+    { value: IoTDataSpecsDataTypeEnum.DOUBLE, label: '鍙岀簿搴︽诞鐐瑰瀷' },
+    { value: IoTDataSpecsDataTypeEnum.ENUM, label: '鏋氫妇鍨�' },
+    { value: IoTDataSpecsDataTypeEnum.BOOL, label: '甯冨皵鍨�' },
+    { value: IoTDataSpecsDataTypeEnum.TEXT, label: '鏂囨湰鍨�' },
+    { value: IoTDataSpecsDataTypeEnum.DATE, label: '鏃堕棿鍨�' },
+    { value: IoTDataSpecsDataTypeEnum.STRUCT, label: '缁撴瀯浣�' },
+    { value: IoTDataSpecsDataTypeEnum.ARRAY, label: '鏁扮粍' }
+  ]
+}
+
+/** 鑾峰緱鐗╀綋妯″瀷鏁版嵁绫诲瀷閰嶇疆椤瑰悕绉� */
+export const getDataTypeOptionsLabel = (value: string) => {
+  if (isEmpty(value)) {
+    return value
+  }
+  const dataType = getDataTypeOptions().find((option) => option.value === value)
+  return dataType && `${dataType.value}(${dataType.label})`
+}
+
+/** 鑾峰彇鏁版嵁绫诲瀷鏄剧ず鍚嶇О锛堢敤浜庡睘鎬ч�夋嫨鍣級 */
+export const getDataTypeName = (dataType: string): string => {
+  const typeMap = {
+    [IoTDataSpecsDataTypeEnum.INT]: '鏁存暟',
+    [IoTDataSpecsDataTypeEnum.FLOAT]: '娴偣鏁�',
+    [IoTDataSpecsDataTypeEnum.DOUBLE]: '鍙岀簿搴�',
+    [IoTDataSpecsDataTypeEnum.TEXT]: '瀛楃涓�',
+    [IoTDataSpecsDataTypeEnum.BOOL]: '甯冨皵鍊�',
+    [IoTDataSpecsDataTypeEnum.ENUM]: '鏋氫妇',
+    [IoTDataSpecsDataTypeEnum.DATE]: '鏃ユ湡',
+    [IoTDataSpecsDataTypeEnum.STRUCT]: '缁撴瀯浣�',
+    [IoTDataSpecsDataTypeEnum.ARRAY]: '鏁扮粍'
+  }
+  return typeMap[dataType] || dataType
+}
+
+/** 鑾峰彇鏁版嵁绫诲瀷鏍囩绫诲瀷锛堢敤浜� el-tag 鐨� type 灞炴�э級 */
+export const getDataTypeTagType = (
+  dataType: string
+): 'primary' | 'success' | 'info' | 'warning' | 'danger' => {
+  const tagMap = {
+    [IoTDataSpecsDataTypeEnum.INT]: 'primary',
+    [IoTDataSpecsDataTypeEnum.FLOAT]: 'success',
+    [IoTDataSpecsDataTypeEnum.DOUBLE]: 'success',
+    [IoTDataSpecsDataTypeEnum.TEXT]: 'info',
+    [IoTDataSpecsDataTypeEnum.BOOL]: 'warning',
+    [IoTDataSpecsDataTypeEnum.ENUM]: 'danger',
+    [IoTDataSpecsDataTypeEnum.DATE]: 'primary',
+    [IoTDataSpecsDataTypeEnum.STRUCT]: 'info',
+    [IoTDataSpecsDataTypeEnum.ARRAY]: 'warning'
+  } as const
+  return tagMap[dataType] || 'info'
+}
+
+/** 鐗╂ā鍨嬬粍鏍囩甯搁噺 */
+export const THING_MODEL_GROUP_LABELS = {
+  PROPERTY: '璁惧灞炴��',
+  EVENT: '璁惧浜嬩欢',
+  SERVICE: '璁惧鏈嶅姟'
+} as const
+
+// IoT OTA 浠诲姟璁惧鑼冨洿鏋氫妇
+export const IoTOtaTaskDeviceScopeEnum = {
+  ALL: {
+    label: '鍏ㄩ儴璁惧',
+    value: 1
+  },
+  SELECT: {
+    label: '鎸囧畾璁惧',
+    value: 2
+  }
+} as const
+
+// IoT OTA 浠诲姟鐘舵�佹灇涓�
+export const IoTOtaTaskStatusEnum = {
+  IN_PROGRESS: {
+    label: '杩涜涓�',
+    value: 10
+  },
+  END: {
+    label: '宸茬粨鏉�',
+    value: 20
+  },
+  CANCELED: {
+    label: '宸插彇娑�',
+    value: 30
+  }
+} as const
+
+// IoT OTA 鍗囩骇璁板綍鐘舵�佹灇涓�
+export const IoTOtaTaskRecordStatusEnum = {
+  PENDING: {
+    label: '寰呮帹閫�',
+    value: 0
+  },
+  PUSHED: {
+    label: '宸叉帹閫�',
+    value: 10
+  },
+  UPGRADING: {
+    label: '鍗囩骇涓�',
+    value: 20
+  },
+  SUCCESS: {
+    label: '鍗囩骇鎴愬姛',
+    value: 30
+  },
+  FAILURE: {
+    label: '鍗囩骇澶辫触',
+    value: 40
+  },
+  CANCELED: {
+    label: '鍗囩骇鍙栨秷',
+    value: 50
+  }
+} as const
+
+// ========== 鍦烘櫙鑱斿姩瑙勫垯鐩稿叧甯搁噺 ==========
+
+/** IoT 鍦烘櫙鑱斿姩瑙﹀彂鍣ㄧ被鍨嬫灇涓� */
+export const IotRuleSceneTriggerTypeEnum = {
+  DEVICE_STATE_UPDATE: 1, // 璁惧涓婁笅绾垮彉鏇�
+  DEVICE_PROPERTY_POST: 2, // 鐗╂ā鍨嬪睘鎬т笂鎶�
+  DEVICE_EVENT_POST: 3, // 璁惧浜嬩欢涓婃姤
+  DEVICE_SERVICE_INVOKE: 4, // 璁惧鏈嶅姟璋冪敤
+  TIMER: 100 // 瀹氭椂瑙﹀彂
+} as const
+
+/** 瑙﹀彂鍣ㄧ被鍨嬮�夐」閰嶇疆 */
+export const triggerTypeOptions = [
+  {
+    value: IotRuleSceneTriggerTypeEnum.DEVICE_STATE_UPDATE,
+    label: '璁惧鐘舵�佸彉鏇�'
+  },
+  {
+    value: IotRuleSceneTriggerTypeEnum.DEVICE_PROPERTY_POST,
+    label: '璁惧灞炴�т笂鎶�'
+  },
+  {
+    value: IotRuleSceneTriggerTypeEnum.DEVICE_EVENT_POST,
+    label: '璁惧浜嬩欢涓婃姤'
+  },
+  {
+    value: IotRuleSceneTriggerTypeEnum.DEVICE_SERVICE_INVOKE,
+    label: '璁惧鏈嶅姟璋冪敤'
+  },
+  {
+    value: IotRuleSceneTriggerTypeEnum.TIMER,
+    label: '瀹氭椂瑙﹀彂'
+  }
+]
+
+/** 鍒ゆ柇鏄惁涓鸿澶囪Е鍙戝櫒绫诲瀷 */
+export const isDeviceTrigger = (type: number): boolean => {
+  const deviceTriggerTypes = [
+    IotRuleSceneTriggerTypeEnum.DEVICE_STATE_UPDATE,
+    IotRuleSceneTriggerTypeEnum.DEVICE_PROPERTY_POST,
+    IotRuleSceneTriggerTypeEnum.DEVICE_EVENT_POST,
+    IotRuleSceneTriggerTypeEnum.DEVICE_SERVICE_INVOKE
+  ] as number[]
+  return deviceTriggerTypes.includes(type)
+}
+
+// ========== 鍦烘櫙鑱斿姩瑙勫垯鎵ц鍣ㄧ浉鍏冲父閲� ==========
+
+/** IoT 鍦烘櫙鑱斿姩鎵ц鍣ㄧ被鍨嬫灇涓� */
+export const IotRuleSceneActionTypeEnum = {
+  DEVICE_PROPERTY_SET: 1, // 璁惧灞炴�ц缃�
+  DEVICE_SERVICE_INVOKE: 2, // 璁惧鏈嶅姟璋冪敤
+  ALERT_TRIGGER: 100, // 鍛婅瑙﹀彂
+  ALERT_RECOVER: 101 // 鍛婅鎭㈠
+} as const
+
+/** 鎵ц鍣ㄧ被鍨嬮�夐」閰嶇疆 */
+export const getActionTypeOptions = () => [
+  {
+    value: IotRuleSceneActionTypeEnum.DEVICE_PROPERTY_SET,
+    label: '璁惧灞炴�ц缃�'
+  },
+  {
+    value: IotRuleSceneActionTypeEnum.DEVICE_SERVICE_INVOKE,
+    label: '璁惧鏈嶅姟璋冪敤'
+  },
+  {
+    value: IotRuleSceneActionTypeEnum.ALERT_TRIGGER,
+    label: '瑙﹀彂鍛婅'
+  },
+  {
+    value: IotRuleSceneActionTypeEnum.ALERT_RECOVER,
+    label: '鎭㈠鍛婅'
+  }
+]
+
+/** 鑾峰彇鎵ц鍣ㄧ被鍨嬫爣绛� */
+export const getActionTypeLabel = (type: number): string => {
+  const option = getActionTypeOptions().find((opt) => opt.value === type)
+  return option?.label || '鏈煡绫诲瀷'
+}
+
+/** IoT 鍦烘櫙鑱斿姩瑙﹀彂鏉′欢鍙傛暟鎿嶄綔绗︽灇涓� */
+export const IotRuleSceneTriggerConditionParameterOperatorEnum = {
+  EQUALS: { name: '绛変簬', value: '=' }, // 绛変簬
+  NOT_EQUALS: { name: '涓嶇瓑浜�', value: '!=' }, // 涓嶇瓑浜�
+  GREATER_THAN: { name: '澶т簬', value: '>' }, // 澶т簬
+  GREATER_THAN_OR_EQUALS: { name: '澶т簬绛変簬', value: '>=' }, // 澶т簬绛変簬
+  LESS_THAN: { name: '灏忎簬', value: '<' }, // 灏忎簬
+  LESS_THAN_OR_EQUALS: { name: '灏忎簬绛変簬', value: '<=' }, // 灏忎簬绛変簬
+  IN: { name: '鍦�...涔嬩腑', value: 'in' }, // 鍦�...涔嬩腑
+  NOT_IN: { name: '涓嶅湪...涔嬩腑', value: 'not in' }, // 涓嶅湪...涔嬩腑
+  BETWEEN: { name: '鍦�...涔嬮棿', value: 'between' }, // 鍦�...涔嬮棿
+  NOT_BETWEEN: { name: '涓嶅湪...涔嬮棿', value: 'not between' }, // 涓嶅湪...涔嬮棿
+  LIKE: { name: '瀛楃涓插尮閰�', value: 'like' }, // 瀛楃涓插尮閰�
+  NOT_NULL: { name: '闈炵┖', value: 'not null' } // 闈炵┖
+} as const
+
+/** IoT 鍦烘櫙鑱斿姩瑙﹀彂鏉′欢绫诲瀷鏋氫妇 */
+export const IotRuleSceneTriggerConditionTypeEnum = {
+  DEVICE_STATUS: 1, // 璁惧鐘舵��
+  DEVICE_PROPERTY: 2, // 璁惧灞炴��
+  CURRENT_TIME: 3 // 褰撳墠鏃堕棿
+} as const
+
+/** 鑾峰彇鏉′欢绫诲瀷閫夐」 */
+export const getConditionTypeOptions = () => [
+  {
+    value: IotRuleSceneTriggerConditionTypeEnum.DEVICE_STATUS,
+    label: '璁惧鐘舵��'
+  },
+  {
+    value: IotRuleSceneTriggerConditionTypeEnum.DEVICE_PROPERTY,
+    label: '璁惧灞炴��'
+  },
+  {
+    value: IotRuleSceneTriggerConditionTypeEnum.CURRENT_TIME,
+    label: '褰撳墠鏃堕棿'
+  }
+]
+
+/** 璁惧鐘舵�佹灇涓� - 缁熶竴鐨勮澶囩姸鎬佺鐞� */
+export const IoTDeviceStatusEnum = {
+  // 鍦ㄧ嚎鐘舵��
+  ONLINE: {
+    label: '鍦ㄧ嚎',
+    value: 'online',
+    tagType: 'success'
+  },
+  OFFLINE: {
+    label: '绂荤嚎',
+    value: 'offline',
+    tagType: 'danger'
+  },
+  // 鍚敤鐘舵��
+  ENABLED: {
+    label: '姝e父',
+    value: 0,
+    value2: 'enabled',
+    tagType: 'success'
+  },
+  DISABLED: {
+    label: '绂佺敤',
+    value: 1,
+    value2: 'disabled',
+    tagType: 'danger'
+  },
+  // 婵�娲荤姸鎬�
+  ACTIVATED: {
+    label: '宸叉縺娲�',
+    value2: 'activated',
+    tagType: 'success'
+  },
+  NOT_ACTIVATED: {
+    label: '鏈縺娲�',
+    value2: 'not_activated',
+    tagType: 'info'
+  }
+} as const
+
+/** 璁惧閫夋嫨鍣ㄧ壒娈婇�夐」 */
+export const DEVICE_SELECTOR_OPTIONS = {
+  ALL_DEVICES: {
+    id: 0,
+    deviceName: '鍏ㄩ儴璁惧'
+  }
+} as const
+
+/** IoT 鍦烘櫙鑱斿姩瑙﹀彂鏃堕棿鎿嶄綔绗︽灇涓� */
+export const IotRuleSceneTriggerTimeOperatorEnum = {
+  BEFORE_TIME: { name: '鍦ㄦ椂闂翠箣鍓�', value: 'before_time' }, // 鍦ㄦ椂闂翠箣鍓�
+  AFTER_TIME: { name: '鍦ㄦ椂闂翠箣鍚�', value: 'after_time' }, // 鍦ㄦ椂闂翠箣鍚�
+  BETWEEN_TIME: { name: '鍦ㄦ椂闂翠箣闂�', value: 'between_time' }, // 鍦ㄦ椂闂翠箣闂�
+  AT_TIME: { name: '鍦ㄦ寚瀹氭椂闂�', value: 'at_time' }, // 鍦ㄦ寚瀹氭椂闂�
+  BEFORE_TODAY: { name: '鍦ㄤ粖鏃ヤ箣鍓�', value: 'before_today' }, // 鍦ㄤ粖鏃ヤ箣鍓�
+  AFTER_TODAY: { name: '鍦ㄤ粖鏃ヤ箣鍚�', value: 'after_today' }, // 鍦ㄤ粖鏃ヤ箣鍚�
+  TODAY: { name: '鍦ㄤ粖鏃ヤ箣闂�', value: 'today' } // 鍦ㄤ粖鏃ヤ箣闂�
+} as const
+
+/** 鑾峰彇瑙﹀彂鍣ㄧ被鍨嬫爣绛� */
+export const getTriggerTypeLabel = (type: number): string => {
+  const option = triggerTypeOptions.find((item) => item.value === type)
+  return option?.label || '鏈煡绫诲瀷'
+}
+
+// ========== JSON 鍙傛暟杈撳叆缁勪欢鐩稿叧甯搁噺 ==========
+
+/** JSON 鍙傛暟杈撳叆缁勪欢绫诲瀷鏋氫妇 */
+export const JsonParamsInputTypeEnum = {
+  SERVICE: 'service',
+  EVENT: 'event',
+  PROPERTY: 'property',
+  CUSTOM: 'custom'
+} as const
+
+/** JSON 鍙傛暟杈撳叆缁勪欢绫诲瀷 */
+export type JsonParamsInputType =
+  (typeof JsonParamsInputTypeEnum)[keyof typeof JsonParamsInputTypeEnum]
+
+/** JSON 鍙傛暟杈撳叆缁勪欢鏂囨湰甯搁噺 */
+export const JSON_PARAMS_INPUT_CONSTANTS = {
+  // 鍩虹鏂囨湰
+  PLACEHOLDER: '璇疯緭鍏SON鏍煎紡鐨勫弬鏁�',
+  JSON_FORMAT_CORRECT: 'JSON 鏍煎紡姝g‘',
+  QUICK_FILL_LABEL: '蹇�熷~鍏咃細',
+  EXAMPLE_DATA_BUTTON: '绀轰緥鏁版嵁',
+  CLEAR_BUTTON: '娓呯┖',
+  VIEW_EXAMPLE_TITLE: '鏌ョ湅鍙傛暟绀轰緥',
+  COMPLETE_JSON_FORMAT: '瀹屾暣 JSON 鏍煎紡锛�',
+  REQUIRED_TAG: '蹇呭~',
+
+  // 閿欒淇℃伅
+  PARAMS_MUST_BE_OBJECT: '鍙傛暟蹇呴』鏄竴涓湁鏁堢殑 JSON 瀵硅薄',
+  PARAM_REQUIRED_ERROR: (paramName: string) => `鍙傛暟 ${paramName} 涓哄繀濉」`,
+  JSON_FORMAT_ERROR: (error: string) => `JSON鏍煎紡閿欒: ${error}`,
+  UNKNOWN_ERROR: '鏈煡閿欒',
+
+  // 绫诲瀷鐩稿叧鏍囬
+  TITLES: {
+    SERVICE: (name?: string) => `${name || '鏈嶅姟'} - 杈撳叆鍙傛暟绀轰緥`,
+    EVENT: (name?: string) => `${name || '浜嬩欢'} - 杈撳嚭鍙傛暟绀轰緥`,
+    PROPERTY: '灞炴�ц缃� - 鍙傛暟绀轰緥',
+    CUSTOM: (name?: string) => `${name || '鑷畾涔�'} - 鍙傛暟绀轰緥`,
+    DEFAULT: '鍙傛暟绀轰緥'
+  },
+
+  // 鍙傛暟鏍囩
+  PARAMS_LABELS: {
+    SERVICE: '杈撳叆鍙傛暟',
+    EVENT: '杈撳嚭鍙傛暟',
+    PROPERTY: '灞炴�у弬鏁�',
+    CUSTOM: '鍙傛暟鍒楄〃',
+    DEFAULT: '鍙傛暟'
+  },
+
+  // 绌虹姸鎬佹秷鎭�
+  EMPTY_MESSAGES: {
+    SERVICE: '姝ゆ湇鍔℃棤闇�杈撳叆鍙傛暟',
+    EVENT: '姝や簨浠舵棤杈撳嚭鍙傛暟',
+    PROPERTY: '鏃犲彲璁剧疆鐨勫睘鎬�',
+    CUSTOM: '鏃犲弬鏁伴厤缃�',
+    DEFAULT: '鏃犲弬鏁�'
+  },
+
+  // 鏃犻厤缃秷鎭�
+  NO_CONFIG_MESSAGES: {
+    SERVICE: '璇峰厛閫夋嫨鏈嶅姟',
+    EVENT: '璇峰厛閫夋嫨浜嬩欢',
+    PROPERTY: '璇峰厛閫夋嫨浜у搧',
+    CUSTOM: '璇峰厛杩涜閰嶇疆',
+    DEFAULT: '璇峰厛杩涜閰嶇疆'
+  }
+} as const
+
+/** JSON 鍙傛暟杈撳叆缁勪欢鍥炬爣甯搁噺 */
+export const JSON_PARAMS_INPUT_ICONS = {
+  // 鏍囬鍥炬爣
+  TITLE_ICONS: {
+    SERVICE: 'ep:service',
+    EVENT: 'ep:bell',
+    PROPERTY: 'ep:edit',
+    CUSTOM: 'ep:document',
+    DEFAULT: 'ep:document'
+  },
+
+  // 鍙傛暟鍥炬爣
+  PARAMS_ICONS: {
+    SERVICE: 'ep:edit',
+    EVENT: 'ep:upload',
+    PROPERTY: 'ep:setting',
+    CUSTOM: 'ep:list',
+    DEFAULT: 'ep:edit'
+  },
+
+  // 鐘舵�佸浘鏍�
+  STATUS_ICONS: {
+    ERROR: 'ep:warning',
+    SUCCESS: 'ep:circle-check'
+  }
+} as const
+
+/** JSON 鍙傛暟杈撳叆缁勪欢绀轰緥鍊煎父閲� */
+export const JSON_PARAMS_EXAMPLE_VALUES = {
+  [IoTDataSpecsDataTypeEnum.INT]: { display: '25', value: 25 },
+  [IoTDataSpecsDataTypeEnum.FLOAT]: { display: '25.5', value: 25.5 },
+  [IoTDataSpecsDataTypeEnum.DOUBLE]: { display: '25.5', value: 25.5 },
+  [IoTDataSpecsDataTypeEnum.BOOL]: { display: 'false', value: false },
+  [IoTDataSpecsDataTypeEnum.TEXT]: { display: '"auto"', value: 'auto' },
+  [IoTDataSpecsDataTypeEnum.ENUM]: { display: '"option1"', value: 'option1' },
+  [IoTDataSpecsDataTypeEnum.STRUCT]: { display: '{}', value: {} },
+  [IoTDataSpecsDataTypeEnum.ARRAY]: { display: '[]', value: [] },
+  DEFAULT: { display: '""', value: '' }
+} as const

--
Gitblit v1.8.0