Commit 89c59114e4a68d3f4e6913223868660f6aa8ba24
Merge branch 'dev-fix-ww' into 'main_dev'
feat: 新增任务中心间隔时间单位(秒)使用环境变量控制 See merge request yunteng/thingskit-front!570
Showing
12 changed files
with
445 additions
and
394 deletions
| @@ -39,3 +39,6 @@ VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME = 500000 | @@ -39,3 +39,6 @@ VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME = 500000 | ||
| 39 | 39 | ||
| 40 | # Alarm Notify Auto Close Time Unit is Second | 40 | # Alarm Notify Auto Close Time Unit is Second |
| 41 | VITE_GLOB_ALARM_NOTIFY_DURATION = 5 | 41 | VITE_GLOB_ALARM_NOTIFY_DURATION = 5 |
| 42 | + | ||
| 43 | +# Should Disabled Task Center Execute Interval Unit (Second) | ||
| 44 | +VITE_GLOB_DISABLED_TASK_CENTER_EXECUTE_INTERVAL_UNIT_SECOND = false |
| 1 | -# Whether to open mock | ||
| 2 | -VITE_GLOB_USE_MOCK = false | ||
| 3 | - | ||
| 4 | -# public path | ||
| 5 | -VITE_GLOB_PUBLIC_PATH = / | ||
| 6 | - | ||
| 7 | -# Delete console | ||
| 8 | -VITE_GLOB_DROP_CONSOLE = true | ||
| 9 | - | ||
| 10 | -# Whether to enable gzip or brotli compression | ||
| 11 | -# Optional: gzip | brotli | none | ||
| 12 | -# If you need multiple forms, you can use `,` to separate | ||
| 13 | -VITE_GLOB_BUILD_COMPRESS = 'gzip' | ||
| 14 | - | ||
| 15 | -# Whether to delete origin files when using compress, default false | ||
| 16 | -VITE_GLOB_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false | ||
| 17 | - | ||
| 18 | -# Basic interface address SPA | ||
| 19 | -VITE_GLOB_API_URL=http://122.9.141.195:8080/api | ||
| 20 | - | ||
| 21 | -# File upload address, optional | ||
| 22 | -# It can be forwarded by nginx or write the actual address directly | ||
| 23 | -VITE_GLOB_UPLOAD_URL=http://122.9.141.195:8080/api/yt/oss/upload | ||
| 24 | - | ||
| 25 | -# Interface prefix | ||
| 26 | -VITE_GLOB_API_URL_PREFIX=/yt | ||
| 27 | - | ||
| 28 | -# Whether to enable image compression | ||
| 29 | -VITE_GLOB_USE_IMAGEMIN= false | ||
| 30 | - | ||
| 31 | -# use pwa | ||
| 32 | -VITE_USE_PWA = false | ||
| 33 | - | ||
| 34 | -# Is it compatible with older browsers | ||
| 35 | -VITE_LEGACY = true | ||
| 36 | - | ||
| 37 | -# 实时数据的ws地址 | ||
| 38 | -VITE_GLOB_WEB_SOCKET = ws://122.9.141.195:8080/api/ws/plugins/telemetry?token= | ||
| 39 | - | ||
| 40 | -#configuration | ||
| 41 | -VITE_GLOB_CONFIGURATION = /thingskit-scada | ||
| 42 | - | ||
| 43 | -# 大屏设计器 | ||
| 44 | -VITE_GLOB_LARGE_DESIGNER = /large-designer | ||
| 45 | - | ||
| 46 | -# Content Security Policy | ||
| 47 | -VITE_GLOB_CONTENT_SECURITY_POLICY = false | ||
| 48 | - | ||
| 49 | -# Alarm Notify Polling Interval Time | ||
| 50 | -VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME = 60000 | ||
| 51 | - | ||
| 52 | -# Alarm Notify Auto Close Time Unit is Second | ||
| 53 | -VITE_GLOB_ALARM_NOTIFY_DURATION = 5 | 1 | +# Whether to open mock |
| 2 | +VITE_GLOB_USE_MOCK = false | ||
| 3 | + | ||
| 4 | +# public path | ||
| 5 | +VITE_GLOB_PUBLIC_PATH = / | ||
| 6 | + | ||
| 7 | +# Delete console | ||
| 8 | +VITE_GLOB_DROP_CONSOLE = true | ||
| 9 | + | ||
| 10 | +# Whether to enable gzip or brotli compression | ||
| 11 | +# Optional: gzip | brotli | none | ||
| 12 | +# If you need multiple forms, you can use `,` to separate | ||
| 13 | +VITE_GLOB_BUILD_COMPRESS = 'gzip' | ||
| 14 | + | ||
| 15 | +# Whether to delete origin files when using compress, default false | ||
| 16 | +VITE_GLOB_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false | ||
| 17 | + | ||
| 18 | +# Basic interface address SPA | ||
| 19 | +VITE_GLOB_API_URL=http://122.9.141.195:8080/api | ||
| 20 | + | ||
| 21 | +# File upload address, optional | ||
| 22 | +# It can be forwarded by nginx or write the actual address directly | ||
| 23 | +VITE_GLOB_UPLOAD_URL=http://122.9.141.195:8080/api/yt/oss/upload | ||
| 24 | + | ||
| 25 | +# Interface prefix | ||
| 26 | +VITE_GLOB_API_URL_PREFIX=/yt | ||
| 27 | + | ||
| 28 | +# Whether to enable image compression | ||
| 29 | +VITE_GLOB_USE_IMAGEMIN= false | ||
| 30 | + | ||
| 31 | +# use pwa | ||
| 32 | +VITE_USE_PWA = false | ||
| 33 | + | ||
| 34 | +# Is it compatible with older browsers | ||
| 35 | +VITE_LEGACY = true | ||
| 36 | + | ||
| 37 | +# 实时数据的ws地址 | ||
| 38 | +VITE_GLOB_WEB_SOCKET = ws://122.9.141.195:8080/api/ws/plugins/telemetry?token= | ||
| 39 | + | ||
| 40 | +#configuration | ||
| 41 | +VITE_GLOB_CONFIGURATION = /thingskit-scada | ||
| 42 | + | ||
| 43 | +# 大屏设计器 | ||
| 44 | +VITE_GLOB_LARGE_DESIGNER = /large-designer | ||
| 45 | + | ||
| 46 | +# Content Security Policy | ||
| 47 | +VITE_GLOB_CONTENT_SECURITY_POLICY = false | ||
| 48 | + | ||
| 49 | +# Alarm Notify Polling Interval Time | ||
| 50 | +VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME = 60000 | ||
| 51 | + | ||
| 52 | +# Alarm Notify Auto Close Time Unit is Second | ||
| 53 | +VITE_GLOB_ALARM_NOTIFY_DURATION = 5 | ||
| 54 | + | ||
| 55 | +# Should Disabled Task Center Execute Interval Unit (Second) | ||
| 56 | +VITE_GLOB_DISABLED_TASK_CENTER_EXECUTE_INTERVAL_UNIT_SECOND = false |
| 1 | -import type { GlobConfig } from '/#/config'; | ||
| 2 | - | ||
| 3 | -import { warn } from '/@/utils/log'; | ||
| 4 | -import { getAppEnvConfig } from '/@/utils/env'; | ||
| 5 | - | ||
| 6 | -export const useGlobSetting = (): Readonly<GlobConfig> => { | ||
| 7 | - const { | ||
| 8 | - VITE_GLOB_APP_TITLE, | ||
| 9 | - VITE_GLOB_API_URL, | ||
| 10 | - VITE_GLOB_APP_SHORT_NAME, | ||
| 11 | - VITE_GLOB_API_URL_PREFIX, | ||
| 12 | - VITE_GLOB_UPLOAD_URL, | ||
| 13 | - VITE_GLOB_CONFIGURATION, | ||
| 14 | - VITE_GLOB_WEB_SOCKET, | ||
| 15 | - VITE_GLOB_CONTENT_SECURITY_POLICY, | ||
| 16 | - VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME, | ||
| 17 | - VITE_GLOB_ALARM_NOTIFY_DURATION, | ||
| 18 | - VITE_GLOB_LARGE_DESIGNER, | ||
| 19 | - } = getAppEnvConfig(); | ||
| 20 | - | ||
| 21 | - if (!/[a-zA-Z\_]*/.test(VITE_GLOB_APP_SHORT_NAME)) { | ||
| 22 | - warn( | ||
| 23 | - `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.` | ||
| 24 | - ); | ||
| 25 | - } | ||
| 26 | - | ||
| 27 | - // Take global configuration | ||
| 28 | - const glob: Readonly<GlobConfig> = { | ||
| 29 | - title: VITE_GLOB_APP_TITLE, | ||
| 30 | - apiUrl: VITE_GLOB_API_URL, | ||
| 31 | - shortName: VITE_GLOB_APP_SHORT_NAME, | ||
| 32 | - urlPrefix: VITE_GLOB_API_URL_PREFIX, | ||
| 33 | - uploadUrl: VITE_GLOB_UPLOAD_URL, | ||
| 34 | - configurationPrefix: VITE_GLOB_CONFIGURATION, | ||
| 35 | - largeDesignerPrefix: VITE_GLOB_LARGE_DESIGNER, | ||
| 36 | - socketUrl: VITE_GLOB_WEB_SOCKET, | ||
| 37 | - securityPolicy: VITE_GLOB_CONTENT_SECURITY_POLICY, | ||
| 38 | - alarmNotifyDuration: VITE_GLOB_ALARM_NOTIFY_DURATION, | ||
| 39 | - alarmPollingInterval: VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME, | ||
| 40 | - }; | ||
| 41 | - return glob as Readonly<GlobConfig>; | ||
| 42 | -}; | 1 | +import type { GlobConfig } from '/#/config'; |
| 2 | + | ||
| 3 | +import { warn } from '/@/utils/log'; | ||
| 4 | +import { getAppEnvConfig } from '/@/utils/env'; | ||
| 5 | + | ||
| 6 | +export const useGlobSetting = (): Readonly<GlobConfig> => { | ||
| 7 | + const { | ||
| 8 | + VITE_GLOB_APP_TITLE, | ||
| 9 | + VITE_GLOB_API_URL, | ||
| 10 | + VITE_GLOB_APP_SHORT_NAME, | ||
| 11 | + VITE_GLOB_API_URL_PREFIX, | ||
| 12 | + VITE_GLOB_UPLOAD_URL, | ||
| 13 | + VITE_GLOB_CONFIGURATION, | ||
| 14 | + VITE_GLOB_WEB_SOCKET, | ||
| 15 | + VITE_GLOB_CONTENT_SECURITY_POLICY, | ||
| 16 | + VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME, | ||
| 17 | + VITE_GLOB_ALARM_NOTIFY_DURATION, | ||
| 18 | + VITE_GLOB_LARGE_DESIGNER, | ||
| 19 | + VITE_GLOB_DISABLED_TASK_CENTER_EXECUTE_INTERVAL_UNIT_SECOND, | ||
| 20 | + } = getAppEnvConfig(); | ||
| 21 | + | ||
| 22 | + if (!/[a-zA-Z\_]*/.test(VITE_GLOB_APP_SHORT_NAME)) { | ||
| 23 | + warn( | ||
| 24 | + `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.` | ||
| 25 | + ); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + // Take global configuration | ||
| 29 | + const glob: Readonly<GlobConfig> = { | ||
| 30 | + title: VITE_GLOB_APP_TITLE, | ||
| 31 | + apiUrl: VITE_GLOB_API_URL, | ||
| 32 | + shortName: VITE_GLOB_APP_SHORT_NAME, | ||
| 33 | + urlPrefix: VITE_GLOB_API_URL_PREFIX, | ||
| 34 | + uploadUrl: VITE_GLOB_UPLOAD_URL, | ||
| 35 | + configurationPrefix: VITE_GLOB_CONFIGURATION, | ||
| 36 | + largeDesignerPrefix: VITE_GLOB_LARGE_DESIGNER, | ||
| 37 | + socketUrl: VITE_GLOB_WEB_SOCKET, | ||
| 38 | + securityPolicy: VITE_GLOB_CONTENT_SECURITY_POLICY, | ||
| 39 | + alarmNotifyDuration: VITE_GLOB_ALARM_NOTIFY_DURATION, | ||
| 40 | + alarmPollingInterval: VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME, | ||
| 41 | + disabledTaskCenterExecuteIntervalUnitSecond: | ||
| 42 | + VITE_GLOB_DISABLED_TASK_CENTER_EXECUTE_INTERVAL_UNIT_SECOND, | ||
| 43 | + }; | ||
| 44 | + return glob as Readonly<GlobConfig>; | ||
| 45 | +}; |
| 1 | -import type { GlobEnvConfig } from '/#/config'; | ||
| 2 | - | ||
| 3 | -import { warn } from '/@/utils/log'; | ||
| 4 | -import pkg from '../../package.json'; | ||
| 5 | -import { getConfigFileName } from '../../build/getConfigFileName'; | ||
| 6 | - | ||
| 7 | -export function getCommonStoragePrefix() { | ||
| 8 | - const { VITE_GLOB_APP_SHORT_NAME } = getAppEnvConfig(); | ||
| 9 | - return `${VITE_GLOB_APP_SHORT_NAME}__${getEnv()}`.toUpperCase(); | ||
| 10 | -} | ||
| 11 | - | ||
| 12 | -// Generate cache key according to version | ||
| 13 | -export function getStorageShortName() { | ||
| 14 | - return `${getCommonStoragePrefix()}${`__${pkg.version}`}__`.toUpperCase(); | ||
| 15 | -} | ||
| 16 | - | ||
| 17 | -export function getAppEnvConfig() { | ||
| 18 | - const ENV_NAME = getConfigFileName(import.meta.env); | ||
| 19 | - | ||
| 20 | - const ENV = (import.meta.env.DEV | ||
| 21 | - ? // Get the global configuration (the configuration will be extracted independently when packaging) | ||
| 22 | - (import.meta.env as unknown as GlobEnvConfig) | ||
| 23 | - : window[ENV_NAME as any]) as unknown as GlobEnvConfig; | ||
| 24 | - const { | ||
| 25 | - VITE_GLOB_APP_TITLE, | ||
| 26 | - VITE_GLOB_API_URL, | ||
| 27 | - VITE_GLOB_APP_SHORT_NAME, | ||
| 28 | - VITE_GLOB_API_URL_PREFIX, | ||
| 29 | - VITE_GLOB_UPLOAD_URL, | ||
| 30 | - VITE_GLOB_CONFIGURATION, | ||
| 31 | - VITE_GLOB_WEB_SOCKET, | ||
| 32 | - VITE_GLOB_CONTENT_SECURITY_POLICY, | ||
| 33 | - VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME, | ||
| 34 | - VITE_GLOB_ALARM_NOTIFY_DURATION, | ||
| 35 | - VITE_GLOB_LARGE_DESIGNER, | ||
| 36 | - } = ENV; | ||
| 37 | - | ||
| 38 | - if (!/^[a-zA-Z\_]*$/.test(VITE_GLOB_APP_SHORT_NAME)) { | ||
| 39 | - warn( | ||
| 40 | - `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.` | ||
| 41 | - ); | ||
| 42 | - } | ||
| 43 | - | ||
| 44 | - return { | ||
| 45 | - VITE_GLOB_APP_TITLE, | ||
| 46 | - VITE_GLOB_API_URL, | ||
| 47 | - VITE_GLOB_APP_SHORT_NAME, | ||
| 48 | - VITE_GLOB_API_URL_PREFIX, | ||
| 49 | - VITE_GLOB_UPLOAD_URL, | ||
| 50 | - VITE_GLOB_CONFIGURATION, | ||
| 51 | - VITE_GLOB_WEB_SOCKET, | ||
| 52 | - VITE_GLOB_CONTENT_SECURITY_POLICY, | ||
| 53 | - VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME, | ||
| 54 | - VITE_GLOB_ALARM_NOTIFY_DURATION, | ||
| 55 | - VITE_GLOB_LARGE_DESIGNER, | ||
| 56 | - }; | ||
| 57 | -} | ||
| 58 | - | ||
| 59 | -/** | ||
| 60 | - * @description: Development mode | ||
| 61 | - */ | ||
| 62 | -export const devMode = 'development'; | ||
| 63 | - | ||
| 64 | -/** | ||
| 65 | - * @description: Production mode | ||
| 66 | - */ | ||
| 67 | -export const prodMode = 'production'; | ||
| 68 | - | ||
| 69 | -/** | ||
| 70 | - * @description: Get environment variables | ||
| 71 | - * @returns: | ||
| 72 | - * @example: | ||
| 73 | - */ | ||
| 74 | -export function getEnv(): string { | ||
| 75 | - return import.meta.env.MODE; | ||
| 76 | -} | ||
| 77 | - | ||
| 78 | -/** | ||
| 79 | - * @description: Is it a development mode | ||
| 80 | - * @returns: | ||
| 81 | - * @example: | ||
| 82 | - */ | ||
| 83 | -export function isDevMode(): boolean { | ||
| 84 | - return import.meta.env.DEV; | ||
| 85 | -} | ||
| 86 | - | ||
| 87 | -/** | ||
| 88 | - * @description: Is it a production mode | ||
| 89 | - * @returns: | ||
| 90 | - * @example: | ||
| 91 | - */ | ||
| 92 | -export function isProdMode(): boolean { | ||
| 93 | - return import.meta.env.PROD; | ||
| 94 | -} | 1 | +import type { GlobEnvConfig } from '/#/config'; |
| 2 | + | ||
| 3 | +import { warn } from '/@/utils/log'; | ||
| 4 | +import pkg from '../../package.json'; | ||
| 5 | +import { getConfigFileName } from '../../build/getConfigFileName'; | ||
| 6 | + | ||
| 7 | +export function getCommonStoragePrefix() { | ||
| 8 | + const { VITE_GLOB_APP_SHORT_NAME } = getAppEnvConfig(); | ||
| 9 | + return `${VITE_GLOB_APP_SHORT_NAME}__${getEnv()}`.toUpperCase(); | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +// Generate cache key according to version | ||
| 13 | +export function getStorageShortName() { | ||
| 14 | + return `${getCommonStoragePrefix()}${`__${pkg.version}`}__`.toUpperCase(); | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +export function getAppEnvConfig() { | ||
| 18 | + const ENV_NAME = getConfigFileName(import.meta.env); | ||
| 19 | + | ||
| 20 | + const ENV = (import.meta.env.DEV | ||
| 21 | + ? // Get the global configuration (the configuration will be extracted independently when packaging) | ||
| 22 | + (import.meta.env as unknown as GlobEnvConfig) | ||
| 23 | + : window[ENV_NAME as any]) as unknown as GlobEnvConfig; | ||
| 24 | + const { | ||
| 25 | + VITE_GLOB_APP_TITLE, | ||
| 26 | + VITE_GLOB_API_URL, | ||
| 27 | + VITE_GLOB_APP_SHORT_NAME, | ||
| 28 | + VITE_GLOB_API_URL_PREFIX, | ||
| 29 | + VITE_GLOB_UPLOAD_URL, | ||
| 30 | + VITE_GLOB_CONFIGURATION, | ||
| 31 | + VITE_GLOB_WEB_SOCKET, | ||
| 32 | + VITE_GLOB_CONTENT_SECURITY_POLICY, | ||
| 33 | + VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME, | ||
| 34 | + VITE_GLOB_ALARM_NOTIFY_DURATION, | ||
| 35 | + VITE_GLOB_LARGE_DESIGNER, | ||
| 36 | + VITE_GLOB_DISABLED_TASK_CENTER_EXECUTE_INTERVAL_UNIT_SECOND, | ||
| 37 | + } = ENV; | ||
| 38 | + | ||
| 39 | + if (!/^[a-zA-Z\_]*$/.test(VITE_GLOB_APP_SHORT_NAME)) { | ||
| 40 | + warn( | ||
| 41 | + `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.` | ||
| 42 | + ); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + return { | ||
| 46 | + VITE_GLOB_APP_TITLE, | ||
| 47 | + VITE_GLOB_API_URL, | ||
| 48 | + VITE_GLOB_APP_SHORT_NAME, | ||
| 49 | + VITE_GLOB_API_URL_PREFIX, | ||
| 50 | + VITE_GLOB_UPLOAD_URL, | ||
| 51 | + VITE_GLOB_CONFIGURATION, | ||
| 52 | + VITE_GLOB_WEB_SOCKET, | ||
| 53 | + VITE_GLOB_CONTENT_SECURITY_POLICY, | ||
| 54 | + VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME, | ||
| 55 | + VITE_GLOB_ALARM_NOTIFY_DURATION, | ||
| 56 | + VITE_GLOB_LARGE_DESIGNER, | ||
| 57 | + VITE_GLOB_DISABLED_TASK_CENTER_EXECUTE_INTERVAL_UNIT_SECOND, | ||
| 58 | + }; | ||
| 59 | +} | ||
| 60 | + | ||
| 61 | +/** | ||
| 62 | + * @description: Development mode | ||
| 63 | + */ | ||
| 64 | +export const devMode = 'development'; | ||
| 65 | + | ||
| 66 | +/** | ||
| 67 | + * @description: Production mode | ||
| 68 | + */ | ||
| 69 | +export const prodMode = 'production'; | ||
| 70 | + | ||
| 71 | +/** | ||
| 72 | + * @description: Get environment variables | ||
| 73 | + * @returns: | ||
| 74 | + * @example: | ||
| 75 | + */ | ||
| 76 | +export function getEnv(): string { | ||
| 77 | + return import.meta.env.MODE; | ||
| 78 | +} | ||
| 79 | + | ||
| 80 | +/** | ||
| 81 | + * @description: Is it a development mode | ||
| 82 | + * @returns: | ||
| 83 | + * @example: | ||
| 84 | + */ | ||
| 85 | +export function isDevMode(): boolean { | ||
| 86 | + return import.meta.env.DEV; | ||
| 87 | +} | ||
| 88 | + | ||
| 89 | +/** | ||
| 90 | + * @description: Is it a production mode | ||
| 91 | + * @returns: | ||
| 92 | + * @example: | ||
| 93 | + */ | ||
| 94 | +export function isProdMode(): boolean { | ||
| 95 | + return import.meta.env.PROD; | ||
| 96 | +} |
| @@ -4,6 +4,7 @@ import { deviceProfile, getGatewayDevice } from '/@/api/device/deviceManager'; | @@ -4,6 +4,7 @@ import { deviceProfile, getGatewayDevice } from '/@/api/device/deviceManager'; | ||
| 4 | import { TransportTypeEnum } from '../../profiles/components/TransportDescript/const'; | 4 | import { TransportTypeEnum } from '../../profiles/components/TransportDescript/const'; |
| 5 | import { JSONEditorValidator } from '/@/components/CodeEditor/src/JSONEditor'; | 5 | import { JSONEditorValidator } from '/@/components/CodeEditor/src/JSONEditor'; |
| 6 | import { JSONEditor } from '/@/components/CodeEditor'; | 6 | import { JSONEditor } from '/@/components/CodeEditor'; |
| 7 | +import { DeviceTypeEnum } from '/@/api/device/model/deviceModel'; | ||
| 7 | useComponentRegister('JSONEditor', JSONEditor); | 8 | useComponentRegister('JSONEditor', JSONEditor); |
| 8 | 9 | ||
| 9 | export enum TypeEnum { | 10 | export enum TypeEnum { |
| @@ -113,7 +114,9 @@ export const step1Schemas: FormSchema[] = [ | @@ -113,7 +114,9 @@ export const step1Schemas: FormSchema[] = [ | ||
| 113 | maxLength: 255, | 114 | maxLength: 255, |
| 114 | placeholder: '请输入设备标识', | 115 | placeholder: '请输入设备标识', |
| 115 | }, | 116 | }, |
| 116 | - ifShow: ({ values }) => values?.transportType === TransportTypeEnum.TCP, | 117 | + ifShow: ({ values }) => |
| 118 | + values?.transportType === TransportTypeEnum.TCP && | ||
| 119 | + values.deviceType === DeviceTypeEnum.SENSOR, | ||
| 117 | }, | 120 | }, |
| 118 | { | 121 | { |
| 119 | field: 'brand', | 122 | field: 'brand', |
| @@ -198,7 +198,6 @@ | @@ -198,7 +198,6 @@ | ||
| 198 | async function nextStep() { | 198 | async function nextStep() { |
| 199 | try { | 199 | try { |
| 200 | let values = await validate(); | 200 | let values = await validate(); |
| 201 | - console.log(values); | ||
| 202 | values = { devicePic: devicePic.value, ...positionState, ...values }; | 201 | values = { devicePic: devicePic.value, ...positionState, ...values }; |
| 203 | delete values.icon; | 202 | delete values.icon; |
| 204 | delete values.deviceAddress; | 203 | delete values.deviceAddress; |
| @@ -258,6 +258,7 @@ export const step2Schemas: FormSchema[] = [ | @@ -258,6 +258,7 @@ export const step2Schemas: FormSchema[] = [ | ||
| 258 | { label: 'LWM2M', value: 'LWM2M' }, | 258 | { label: 'LWM2M', value: 'LWM2M' }, |
| 259 | { label: 'SNMP', value: 'SNMP' }, | 259 | { label: 'SNMP', value: 'SNMP' }, |
| 260 | ], | 260 | ], |
| 261 | + getPopupContainer: () => document.body, | ||
| 261 | }; | 262 | }; |
| 262 | }, | 263 | }, |
| 263 | colProps: { span: 10 }, | 264 | colProps: { span: 10 }, |
| @@ -607,9 +607,10 @@ export const actionSchema: FormSchema[] = [ | @@ -607,9 +607,10 @@ export const actionSchema: FormSchema[] = [ | ||
| 607 | span: 6, | 607 | span: 6, |
| 608 | }, | 608 | }, |
| 609 | componentProps: ({ formModel, formActionType }) => { | 609 | componentProps: ({ formModel, formActionType }) => { |
| 610 | - const { updateSchema } = formActionType; | 610 | + const { updateSchema, setFieldsValue } = formActionType; |
| 611 | const deviceProfileId = Reflect.get(formModel, 'deviceProfileId'); | 611 | const deviceProfileId = Reflect.get(formModel, 'deviceProfileId'); |
| 612 | const thingsModelId = Reflect.get(formModel, 'thingsModelId'); | 612 | const thingsModelId = Reflect.get(formModel, 'thingsModelId'); |
| 613 | + const transportType = Reflect.get(formModel, 'transportType'); | ||
| 613 | return { | 614 | return { |
| 614 | placeholder: '请选择服务', | 615 | placeholder: '请选择服务', |
| 615 | api: async (params: Recordable) => { | 616 | api: async (params: Recordable) => { |
| @@ -640,12 +641,16 @@ export const actionSchema: FormSchema[] = [ | @@ -640,12 +641,16 @@ export const actionSchema: FormSchema[] = [ | ||
| 640 | onChange: (_, options: ModelOfMatterParams) => { | 641 | onChange: (_, options: ModelOfMatterParams) => { |
| 641 | if (options) { | 642 | if (options) { |
| 642 | // setFieldsValue({ doContext: { ...options.functionJson, callType: options.callType } }); | 643 | // setFieldsValue({ doContext: { ...options.functionJson, callType: options.callType } }); |
| 643 | - updateSchema({ | ||
| 644 | - field: 'serviceInputValue', | ||
| 645 | - componentProps: { | ||
| 646 | - inputData: options.functionJson.inputData, | ||
| 647 | - }, | ||
| 648 | - }); | 644 | + transportType === TransportTypeEnum.TCP |
| 645 | + ? setFieldsValue({ | ||
| 646 | + tcpServiceCommand: options.functionJson?.inputData?.[0]?.serviceCommand, | ||
| 647 | + }) | ||
| 648 | + : updateSchema({ | ||
| 649 | + field: 'serviceInputValue', | ||
| 650 | + componentProps: { | ||
| 651 | + inputData: options.functionJson.inputData, | ||
| 652 | + }, | ||
| 653 | + }); | ||
| 649 | } | 654 | } |
| 650 | }, | 655 | }, |
| 651 | }; | 656 | }; |
| @@ -725,12 +730,22 @@ export const actionSchema: FormSchema[] = [ | @@ -725,12 +730,22 @@ export const actionSchema: FormSchema[] = [ | ||
| 725 | slot: 'clearAlarm', | 730 | slot: 'clearAlarm', |
| 726 | }, | 731 | }, |
| 727 | { | 732 | { |
| 733 | + field: 'tcpServiceCommand', | ||
| 734 | + component: 'Input', | ||
| 735 | + label: '服务命令', | ||
| 736 | + colProps: { span: 24 }, | ||
| 737 | + dynamicDisabled: true, | ||
| 738 | + show: ({ values }) => | ||
| 739 | + values['thingsModelId'] && values['transportType'] === TransportTypeEnum.TCP, | ||
| 740 | + }, | ||
| 741 | + { | ||
| 728 | field: 'serviceInputValue', | 742 | field: 'serviceInputValue', |
| 729 | component: 'ObjectModelValidateForm', | 743 | component: 'ObjectModelValidateForm', |
| 730 | label: '', | 744 | label: '', |
| 731 | changeEvent: 'update:value', | 745 | changeEvent: 'update:value', |
| 732 | valueField: 'value', | 746 | valueField: 'value', |
| 733 | - show: ({ values }) => values['thingsModelId'], | 747 | + show: ({ values }) => |
| 748 | + values['thingsModelId'] && values['transportType'] !== TransportTypeEnum.TCP, | ||
| 734 | colProps: { | 749 | colProps: { |
| 735 | span: 24, | 750 | span: 24, |
| 736 | }, | 751 | }, |
| @@ -94,7 +94,7 @@ | @@ -94,7 +94,7 @@ | ||
| 94 | 94 | ||
| 95 | <script lang="ts"> | 95 | <script lang="ts"> |
| 96 | import { defineComponent } from 'vue'; | 96 | import { defineComponent } from 'vue'; |
| 97 | - import { isNumber } from '/@/utils/is'; | 97 | + import { isNumber, isObject, isString } from '/@/utils/is'; |
| 98 | import { TransportTypeEnum } from '/@/views/device/profiles/components/TransportDescript/const'; | 98 | import { TransportTypeEnum } from '/@/views/device/profiles/components/TransportDescript/const'; |
| 99 | export default defineComponent({ | 99 | export default defineComponent({ |
| 100 | components: { | 100 | components: { |
| @@ -272,12 +272,11 @@ | @@ -272,12 +272,11 @@ | ||
| 272 | const isTCPTransportType = value.transportType === TransportTypeEnum.TCP; | 272 | const isTCPTransportType = value.transportType === TransportTypeEnum.TCP; |
| 273 | const doContext = unref(jsonInstance)?.get() || {}; | 273 | const doContext = unref(jsonInstance)?.get() || {}; |
| 274 | const serviceInputValue = Reflect.get(value, 'serviceInputValue'); | 274 | const serviceInputValue = Reflect.get(value, 'serviceInputValue'); |
| 275 | - | ||
| 276 | return { | 275 | return { |
| 277 | ...value, | 276 | ...value, |
| 278 | ...(Number(value.commandType) === CommandTypeEnum.CUSTOM | 277 | ...(Number(value.commandType) === CommandTypeEnum.CUSTOM |
| 279 | ? { doContext: isTCPTransportType ? value.doContext : doContext } | 278 | ? { doContext: isTCPTransportType ? value.doContext : doContext } |
| 280 | - : { doContext: serviceInputValue }), | 279 | + : { doContext: isTCPTransportType ? value.tcpServiceCommand : serviceInputValue }), |
| 281 | clearRule, | 280 | clearRule, |
| 282 | }; | 281 | }; |
| 283 | }; | 282 | }; |
| @@ -291,7 +290,10 @@ | @@ -291,7 +290,10 @@ | ||
| 291 | ? { commandType: String(fieldsValue.commandType) } | 290 | ? { commandType: String(fieldsValue.commandType) } |
| 292 | : {}), | 291 | : {}), |
| 293 | ...(commandType === CommandTypeEnum.SERVICE | 292 | ...(commandType === CommandTypeEnum.SERVICE |
| 294 | - ? { serviceInputValue: doContext.params || {} } | 293 | + ? { |
| 294 | + serviceInputValue: isObject(doContext.params) ? doContext.params : {}, | ||
| 295 | + tcpServiceCommand: isString(doContext.params) ? doContext.params : '', | ||
| 296 | + } | ||
| 295 | : { doContext: doContext.params }), | 297 | : { doContext: doContext.params }), |
| 296 | }); | 298 | }); |
| 297 | }; | 299 | }; |
| @@ -10,14 +10,17 @@ import { PollCommandInput, ModeEnum } from '../PollCommandInput'; | @@ -10,14 +10,17 @@ import { PollCommandInput, ModeEnum } from '../PollCommandInput'; | ||
| 10 | import { DeviceProfileModel } from '/@/api/device/model/deviceModel'; | 10 | import { DeviceProfileModel } from '/@/api/device/model/deviceModel'; |
| 11 | import { TransportTypeEnum } from '/@/views/device/profiles/components/TransportDescript/const'; | 11 | import { TransportTypeEnum } from '/@/views/device/profiles/components/TransportDescript/const'; |
| 12 | import { JSONEditorValidator } from '/@/components/CodeEditor/src/JSONEditor'; | 12 | import { JSONEditorValidator } from '/@/components/CodeEditor/src/JSONEditor'; |
| 13 | -import { TimeUnitEnum, TimeUnitNameEnum } from '/@/enums/toolEnum'; | 13 | +import { BooleanStringEnum, TimeUnitEnum, TimeUnitNameEnum } from '/@/enums/toolEnum'; |
| 14 | import { dateUtil } from '/@/utils/dateUtil'; | 14 | import { dateUtil } from '/@/utils/dateUtil'; |
| 15 | import { ProductPicker, validateProductPicker } from '../ProductPicker'; | 15 | import { ProductPicker, validateProductPicker } from '../ProductPicker'; |
| 16 | +import { useGlobSetting } from '/@/hooks/setting'; | ||
| 16 | 17 | ||
| 17 | useComponentRegister('DevicePicker', DevicePicker); | 18 | useComponentRegister('DevicePicker', DevicePicker); |
| 18 | useComponentRegister('ProductPicker', ProductPicker); | 19 | useComponentRegister('ProductPicker', ProductPicker); |
| 19 | useComponentRegister('PollCommandInput', PollCommandInput); | 20 | useComponentRegister('PollCommandInput', PollCommandInput); |
| 20 | 21 | ||
| 22 | +const { disabledTaskCenterExecuteIntervalUnitSecond } = useGlobSetting(); | ||
| 23 | + | ||
| 21 | export enum FormFieldsEnum { | 24 | export enum FormFieldsEnum { |
| 22 | // 任务名称 | 25 | // 任务名称 |
| 23 | NAME = 'name', | 26 | NAME = 'name', |
| @@ -338,13 +341,21 @@ export const formSchemas: FormSchema[] = [ | @@ -338,13 +341,21 @@ export const formSchemas: FormSchema[] = [ | ||
| 338 | component: 'RadioGroup', | 341 | component: 'RadioGroup', |
| 339 | label: '时间单位', | 342 | label: '时间单位', |
| 340 | ifShow: ({ model }) => model[FormFieldsEnum.EXECUTE_TIME_TYPE] === ExecuteTimeTypeEnum.POLL, | 343 | ifShow: ({ model }) => model[FormFieldsEnum.EXECUTE_TIME_TYPE] === ExecuteTimeTypeEnum.POLL, |
| 341 | - defaultValue: TimeUnitEnum.SECOND, | ||
| 342 | - componentProps: { | ||
| 343 | - options: [ | ||
| 344 | - { label: TimeUnitNameEnum.SECOND, value: TimeUnitEnum.SECOND }, | 344 | + defaultValue: |
| 345 | + disabledTaskCenterExecuteIntervalUnitSecond === BooleanStringEnum.TRUE | ||
| 346 | + ? TimeUnitEnum.MINUTE | ||
| 347 | + : TimeUnitEnum.SECOND, | ||
| 348 | + componentProps: () => { | ||
| 349 | + const options = [ | ||
| 345 | { label: TimeUnitNameEnum.MINUTE, value: TimeUnitEnum.MINUTE }, | 350 | { label: TimeUnitNameEnum.MINUTE, value: TimeUnitEnum.MINUTE }, |
| 346 | { label: TimeUnitNameEnum.HOUR, value: TimeUnitEnum.HOUR }, | 351 | { label: TimeUnitNameEnum.HOUR, value: TimeUnitEnum.HOUR }, |
| 347 | - ], | 352 | + ]; |
| 353 | + if (disabledTaskCenterExecuteIntervalUnitSecond === BooleanStringEnum.FALSE) { | ||
| 354 | + options.unshift({ label: TimeUnitNameEnum.SECOND, value: TimeUnitEnum.SECOND }); | ||
| 355 | + } | ||
| 356 | + return { | ||
| 357 | + options, | ||
| 358 | + }; | ||
| 348 | }, | 359 | }, |
| 349 | }, | 360 | }, |
| 350 | { | 361 | { |
| 1 | -import { MenuTypeEnum, MenuModeEnum, TriggerEnum, MixSidebarTriggerEnum } from '/@/enums/menuEnum'; | ||
| 2 | -import { | ||
| 3 | - ContentEnum, | ||
| 4 | - PermissionModeEnum, | ||
| 5 | - ThemeEnum, | ||
| 6 | - RouterTransitionEnum, | ||
| 7 | - SettingButtonPositionEnum, | ||
| 8 | - SessionTimeoutProcessingEnum, | ||
| 9 | -} from '/@/enums/appEnum'; | ||
| 10 | - | ||
| 11 | -import { CacheTypeEnum } from '/@/enums/cacheEnum'; | ||
| 12 | - | ||
| 13 | -export type LocaleType = 'zh_CN' | 'en' | 'ru' | 'ja' | 'ko'; | ||
| 14 | - | ||
| 15 | -export interface MenuSetting { | ||
| 16 | - bgColor: string; | ||
| 17 | - fixed: boolean; | ||
| 18 | - collapsed: boolean; | ||
| 19 | - canDrag: boolean; | ||
| 20 | - show: boolean; | ||
| 21 | - hidden: boolean; | ||
| 22 | - split: boolean; | ||
| 23 | - menuWidth: number; | ||
| 24 | - mode: MenuModeEnum; | ||
| 25 | - type: MenuTypeEnum; | ||
| 26 | - theme: ThemeEnum; | ||
| 27 | - topMenuAlign: 'start' | 'center' | 'end'; | ||
| 28 | - trigger: TriggerEnum; | ||
| 29 | - accordion: boolean; | ||
| 30 | - closeMixSidebarOnChange: boolean; | ||
| 31 | - collapsedShowTitle: boolean; | ||
| 32 | - mixSideTrigger: MixSidebarTriggerEnum; | ||
| 33 | - mixSideFixed: boolean; | ||
| 34 | -} | ||
| 35 | - | ||
| 36 | -export interface MultiTabsSetting { | ||
| 37 | - cache: boolean; | ||
| 38 | - show: boolean; | ||
| 39 | - showQuick: boolean; | ||
| 40 | - canDrag: boolean; | ||
| 41 | - showRedo: boolean; | ||
| 42 | - showFold: boolean; | ||
| 43 | -} | ||
| 44 | - | ||
| 45 | -export interface HeaderSetting { | ||
| 46 | - bgColor: string; | ||
| 47 | - fixed: boolean; | ||
| 48 | - show: boolean; | ||
| 49 | - theme: ThemeEnum; | ||
| 50 | - // Turn on full screen | ||
| 51 | - showFullScreen: boolean; | ||
| 52 | - // Whether to show the lock screen | ||
| 53 | - useLockPage: boolean; | ||
| 54 | - // Show document button | ||
| 55 | - showDoc: boolean; | ||
| 56 | - // Show message center button | ||
| 57 | - showNotice: boolean; | ||
| 58 | - showSearch: boolean; | ||
| 59 | -} | ||
| 60 | - | ||
| 61 | -export interface LocaleSetting { | ||
| 62 | - showPicker: boolean; | ||
| 63 | - // Current language | ||
| 64 | - locale: LocaleType; | ||
| 65 | - // default language | ||
| 66 | - fallback: LocaleType; | ||
| 67 | - // available Locales | ||
| 68 | - availableLocales: LocaleType[]; | ||
| 69 | -} | ||
| 70 | - | ||
| 71 | -export interface TransitionSetting { | ||
| 72 | - // Whether to open the page switching animation | ||
| 73 | - enable: boolean; | ||
| 74 | - // Route basic switching animation | ||
| 75 | - basicTransition: RouterTransitionEnum; | ||
| 76 | - // Whether to open page switching loading | ||
| 77 | - openPageLoading: boolean; | ||
| 78 | - // Whether to open the top progress bar | ||
| 79 | - openNProgress: boolean; | ||
| 80 | -} | ||
| 81 | - | ||
| 82 | -export interface ProjectConfig { | ||
| 83 | - // Storage location of permission related information | ||
| 84 | - permissionCacheType: CacheTypeEnum; | ||
| 85 | - // Whether to show the configuration button | ||
| 86 | - showSettingButton: boolean; | ||
| 87 | - // Whether to show the theme switch button | ||
| 88 | - showDarkModeToggle: boolean; | ||
| 89 | - // Configure where the button is displayed | ||
| 90 | - settingButtonPosition: SettingButtonPositionEnum; | ||
| 91 | - // Permission mode | ||
| 92 | - permissionMode: PermissionModeEnum; | ||
| 93 | - // Session timeout processing | ||
| 94 | - sessionTimeoutProcessing: SessionTimeoutProcessingEnum; | ||
| 95 | - // Website gray mode, open for possible mourning dates | ||
| 96 | - grayMode: boolean; | ||
| 97 | - // Whether to turn on the color weak mode | ||
| 98 | - colorWeak: boolean; | ||
| 99 | - // Theme color | ||
| 100 | - themeColor: string; | ||
| 101 | - | ||
| 102 | - // The main interface is displayed in full screen, the menu is not displayed, and the top | ||
| 103 | - fullContent: boolean; | ||
| 104 | - // content width | ||
| 105 | - contentMode: ContentEnum; | ||
| 106 | - // Whether to display the logo | ||
| 107 | - showLogo: boolean; | ||
| 108 | - // Whether to show the global footer | ||
| 109 | - showFooter: boolean; | ||
| 110 | - // menuType: MenuTypeEnum; | ||
| 111 | - headerSetting: HeaderSetting; | ||
| 112 | - // menuSetting | ||
| 113 | - menuSetting: MenuSetting; | ||
| 114 | - // Multi-tab settings | ||
| 115 | - multiTabsSetting: MultiTabsSetting; | ||
| 116 | - // Animation configuration | ||
| 117 | - transitionSetting: TransitionSetting; | ||
| 118 | - // pageLayout whether to enable keep-alive | ||
| 119 | - openKeepAlive: boolean; | ||
| 120 | - // Lock screen time | ||
| 121 | - lockTime: number; | ||
| 122 | - // Show breadcrumbs | ||
| 123 | - showBreadCrumb: boolean; | ||
| 124 | - // Show breadcrumb icon | ||
| 125 | - showBreadCrumbIcon: boolean; | ||
| 126 | - // Use error-handler-plugin | ||
| 127 | - useErrorHandle: boolean; | ||
| 128 | - // Whether to open back to top | ||
| 129 | - useOpenBackTop: boolean; | ||
| 130 | - // Is it possible to embed iframe pages | ||
| 131 | - canEmbedIFramePage: boolean; | ||
| 132 | - // Whether to delete unclosed messages and notify when switching the interface | ||
| 133 | - closeMessageOnSwitch: boolean; | ||
| 134 | - // Whether to cancel the http request that has been sent but not responded when switching the interface. | ||
| 135 | - removeAllHttpPending: boolean; | ||
| 136 | -} | ||
| 137 | - | ||
| 138 | -export interface GlobConfig { | ||
| 139 | - // Site title | ||
| 140 | - title: string; | ||
| 141 | - // Service interface url | ||
| 142 | - apiUrl: string; | ||
| 143 | - // Upload url | ||
| 144 | - uploadUrl?: string; | ||
| 145 | - // Service interface url prefix | ||
| 146 | - urlPrefix?: string; | ||
| 147 | - // Project abbreviation | ||
| 148 | - shortName: string; | ||
| 149 | - // configuration center proxy prefix | ||
| 150 | - configurationPrefix: string; | ||
| 151 | - // large designer proxy prefix | ||
| 152 | - largeDesignerPrefix: string; | ||
| 153 | - // socket url | ||
| 154 | - socketUrl: string; | ||
| 155 | - // alarm notify alarm duration | ||
| 156 | - alarmNotifyDuration: string; | ||
| 157 | - // alarm notify polling interval | ||
| 158 | - alarmPollingInterval: string; | ||
| 159 | - // upgrade your http policy to https | ||
| 160 | - securityPolicy: string; | ||
| 161 | -} | ||
| 162 | -export interface GlobEnvConfig { | ||
| 163 | - // Site title | ||
| 164 | - VITE_GLOB_APP_TITLE: string; | ||
| 165 | - // Service interface url | ||
| 166 | - VITE_GLOB_API_URL: string; | ||
| 167 | - // Service interface url prefix | ||
| 168 | - VITE_GLOB_API_URL_PREFIX?: string; | ||
| 169 | - // Project abbreviation | ||
| 170 | - VITE_GLOB_APP_SHORT_NAME: string; | ||
| 171 | - // Upload url | ||
| 172 | - VITE_GLOB_UPLOAD_URL?: string; | ||
| 173 | - // configuration | ||
| 174 | - VITE_GLOB_CONFIGURATION: string; | ||
| 175 | - // large designer | ||
| 176 | - VITE_GLOB_LARGE_DESIGNER: string; | ||
| 177 | - // socket | ||
| 178 | - VITE_GLOB_WEB_SOCKET: string; | ||
| 179 | - // force transform http to https | ||
| 180 | - VITE_GLOB_CONTENT_SECURITY_POLICY: string; | ||
| 181 | - // notify polling interval time | ||
| 182 | - VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME: string; | ||
| 183 | - // notify duration | ||
| 184 | - VITE_GLOB_ALARM_NOTIFY_DURATION: string; | ||
| 185 | -} | 1 | +import { MenuTypeEnum, MenuModeEnum, TriggerEnum, MixSidebarTriggerEnum } from '/@/enums/menuEnum'; |
| 2 | +import { | ||
| 3 | + ContentEnum, | ||
| 4 | + PermissionModeEnum, | ||
| 5 | + ThemeEnum, | ||
| 6 | + RouterTransitionEnum, | ||
| 7 | + SettingButtonPositionEnum, | ||
| 8 | + SessionTimeoutProcessingEnum, | ||
| 9 | +} from '/@/enums/appEnum'; | ||
| 10 | + | ||
| 11 | +import { CacheTypeEnum } from '/@/enums/cacheEnum'; | ||
| 12 | + | ||
| 13 | +export type LocaleType = 'zh_CN' | 'en' | 'ru' | 'ja' | 'ko'; | ||
| 14 | + | ||
| 15 | +export interface MenuSetting { | ||
| 16 | + bgColor: string; | ||
| 17 | + fixed: boolean; | ||
| 18 | + collapsed: boolean; | ||
| 19 | + canDrag: boolean; | ||
| 20 | + show: boolean; | ||
| 21 | + hidden: boolean; | ||
| 22 | + split: boolean; | ||
| 23 | + menuWidth: number; | ||
| 24 | + mode: MenuModeEnum; | ||
| 25 | + type: MenuTypeEnum; | ||
| 26 | + theme: ThemeEnum; | ||
| 27 | + topMenuAlign: 'start' | 'center' | 'end'; | ||
| 28 | + trigger: TriggerEnum; | ||
| 29 | + accordion: boolean; | ||
| 30 | + closeMixSidebarOnChange: boolean; | ||
| 31 | + collapsedShowTitle: boolean; | ||
| 32 | + mixSideTrigger: MixSidebarTriggerEnum; | ||
| 33 | + mixSideFixed: boolean; | ||
| 34 | +} | ||
| 35 | + | ||
| 36 | +export interface MultiTabsSetting { | ||
| 37 | + cache: boolean; | ||
| 38 | + show: boolean; | ||
| 39 | + showQuick: boolean; | ||
| 40 | + canDrag: boolean; | ||
| 41 | + showRedo: boolean; | ||
| 42 | + showFold: boolean; | ||
| 43 | +} | ||
| 44 | + | ||
| 45 | +export interface HeaderSetting { | ||
| 46 | + bgColor: string; | ||
| 47 | + fixed: boolean; | ||
| 48 | + show: boolean; | ||
| 49 | + theme: ThemeEnum; | ||
| 50 | + // Turn on full screen | ||
| 51 | + showFullScreen: boolean; | ||
| 52 | + // Whether to show the lock screen | ||
| 53 | + useLockPage: boolean; | ||
| 54 | + // Show document button | ||
| 55 | + showDoc: boolean; | ||
| 56 | + // Show message center button | ||
| 57 | + showNotice: boolean; | ||
| 58 | + showSearch: boolean; | ||
| 59 | +} | ||
| 60 | + | ||
| 61 | +export interface LocaleSetting { | ||
| 62 | + showPicker: boolean; | ||
| 63 | + // Current language | ||
| 64 | + locale: LocaleType; | ||
| 65 | + // default language | ||
| 66 | + fallback: LocaleType; | ||
| 67 | + // available Locales | ||
| 68 | + availableLocales: LocaleType[]; | ||
| 69 | +} | ||
| 70 | + | ||
| 71 | +export interface TransitionSetting { | ||
| 72 | + // Whether to open the page switching animation | ||
| 73 | + enable: boolean; | ||
| 74 | + // Route basic switching animation | ||
| 75 | + basicTransition: RouterTransitionEnum; | ||
| 76 | + // Whether to open page switching loading | ||
| 77 | + openPageLoading: boolean; | ||
| 78 | + // Whether to open the top progress bar | ||
| 79 | + openNProgress: boolean; | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +export interface ProjectConfig { | ||
| 83 | + // Storage location of permission related information | ||
| 84 | + permissionCacheType: CacheTypeEnum; | ||
| 85 | + // Whether to show the configuration button | ||
| 86 | + showSettingButton: boolean; | ||
| 87 | + // Whether to show the theme switch button | ||
| 88 | + showDarkModeToggle: boolean; | ||
| 89 | + // Configure where the button is displayed | ||
| 90 | + settingButtonPosition: SettingButtonPositionEnum; | ||
| 91 | + // Permission mode | ||
| 92 | + permissionMode: PermissionModeEnum; | ||
| 93 | + // Session timeout processing | ||
| 94 | + sessionTimeoutProcessing: SessionTimeoutProcessingEnum; | ||
| 95 | + // Website gray mode, open for possible mourning dates | ||
| 96 | + grayMode: boolean; | ||
| 97 | + // Whether to turn on the color weak mode | ||
| 98 | + colorWeak: boolean; | ||
| 99 | + // Theme color | ||
| 100 | + themeColor: string; | ||
| 101 | + | ||
| 102 | + // The main interface is displayed in full screen, the menu is not displayed, and the top | ||
| 103 | + fullContent: boolean; | ||
| 104 | + // content width | ||
| 105 | + contentMode: ContentEnum; | ||
| 106 | + // Whether to display the logo | ||
| 107 | + showLogo: boolean; | ||
| 108 | + // Whether to show the global footer | ||
| 109 | + showFooter: boolean; | ||
| 110 | + // menuType: MenuTypeEnum; | ||
| 111 | + headerSetting: HeaderSetting; | ||
| 112 | + // menuSetting | ||
| 113 | + menuSetting: MenuSetting; | ||
| 114 | + // Multi-tab settings | ||
| 115 | + multiTabsSetting: MultiTabsSetting; | ||
| 116 | + // Animation configuration | ||
| 117 | + transitionSetting: TransitionSetting; | ||
| 118 | + // pageLayout whether to enable keep-alive | ||
| 119 | + openKeepAlive: boolean; | ||
| 120 | + // Lock screen time | ||
| 121 | + lockTime: number; | ||
| 122 | + // Show breadcrumbs | ||
| 123 | + showBreadCrumb: boolean; | ||
| 124 | + // Show breadcrumb icon | ||
| 125 | + showBreadCrumbIcon: boolean; | ||
| 126 | + // Use error-handler-plugin | ||
| 127 | + useErrorHandle: boolean; | ||
| 128 | + // Whether to open back to top | ||
| 129 | + useOpenBackTop: boolean; | ||
| 130 | + // Is it possible to embed iframe pages | ||
| 131 | + canEmbedIFramePage: boolean; | ||
| 132 | + // Whether to delete unclosed messages and notify when switching the interface | ||
| 133 | + closeMessageOnSwitch: boolean; | ||
| 134 | + // Whether to cancel the http request that has been sent but not responded when switching the interface. | ||
| 135 | + removeAllHttpPending: boolean; | ||
| 136 | +} | ||
| 137 | + | ||
| 138 | +export interface GlobConfig { | ||
| 139 | + // Site title | ||
| 140 | + title: string; | ||
| 141 | + // Service interface url | ||
| 142 | + apiUrl: string; | ||
| 143 | + // Upload url | ||
| 144 | + uploadUrl?: string; | ||
| 145 | + // Service interface url prefix | ||
| 146 | + urlPrefix?: string; | ||
| 147 | + // Project abbreviation | ||
| 148 | + shortName: string; | ||
| 149 | + // configuration center proxy prefix | ||
| 150 | + configurationPrefix: string; | ||
| 151 | + // large designer proxy prefix | ||
| 152 | + largeDesignerPrefix: string; | ||
| 153 | + // socket url | ||
| 154 | + socketUrl: string; | ||
| 155 | + // alarm notify alarm duration | ||
| 156 | + alarmNotifyDuration: string; | ||
| 157 | + // alarm notify polling interval | ||
| 158 | + alarmPollingInterval: string; | ||
| 159 | + // upgrade your http policy to https | ||
| 160 | + securityPolicy: string; | ||
| 161 | + // Should Disabled Task Center Execute Interval Unit (Second) | ||
| 162 | + disabledTaskCenterExecuteIntervalUnitSecond: string; | ||
| 163 | +} | ||
| 164 | +export interface GlobEnvConfig { | ||
| 165 | + // Site title | ||
| 166 | + VITE_GLOB_APP_TITLE: string; | ||
| 167 | + // Service interface url | ||
| 168 | + VITE_GLOB_API_URL: string; | ||
| 169 | + // Service interface url prefix | ||
| 170 | + VITE_GLOB_API_URL_PREFIX?: string; | ||
| 171 | + // Project abbreviation | ||
| 172 | + VITE_GLOB_APP_SHORT_NAME: string; | ||
| 173 | + // Upload url | ||
| 174 | + VITE_GLOB_UPLOAD_URL?: string; | ||
| 175 | + // configuration | ||
| 176 | + VITE_GLOB_CONFIGURATION: string; | ||
| 177 | + // large designer | ||
| 178 | + VITE_GLOB_LARGE_DESIGNER: string; | ||
| 179 | + // socket | ||
| 180 | + VITE_GLOB_WEB_SOCKET: string; | ||
| 181 | + // force transform http to https | ||
| 182 | + VITE_GLOB_CONTENT_SECURITY_POLICY: string; | ||
| 183 | + // notify polling interval time | ||
| 184 | + VITE_GLOB_ALARM_NOTIFY_POLLING_INTERVAL_TIME: string; | ||
| 185 | + // notify duration | ||
| 186 | + VITE_GLOB_ALARM_NOTIFY_DURATION: string; | ||
| 187 | + // Should Disabled Task Center Execute Interval Unit (Second) | ||
| 188 | + VITE_GLOB_DISABLED_TASK_CENTER_EXECUTE_INTERVAL_UNIT_SECOND: string; | ||
| 189 | +} |