fix(iot): 修复 scene 表单 vue-tsc 3 处类型错误

- ele device-control-config:
  - defaultParams 类型显式为 Record<string, any> ;
    param.identifier 可能为 undefined 时跳过赋值
  - ElOption :value="service.identifier" 改为非空断言 service.identifier!
- ele json-params-input:getParamTypeTag 用 as const 让 TS 自动推断字面值
  联合('primary' | 'success' | 'info' | 'warning' | 'danger'),传给
  ElTag.type 不再报错
- antd value-input:handleNumberChange 参数改为 any 内部 String 转换
  (AntD InputNumber @change 类型为 ValueType = string | number ,
   原 number | undefined 报错)
pull/345/head
YunaiV 2026-05-21 19:58:33 +08:00
parent e7361a60ec
commit df8e23542b
3 changed files with 9 additions and 8 deletions

View File

@ -132,9 +132,9 @@ function handleDateChange(value: any) {
localValue.value = value || '';
}
/** 处理数字变化事件 */
function handleNumberChange(value: number | undefined) {
localValue.value = value?.toString() || '';
/** 处理数字变化事件 InputNumber 回调值类型为 ValueTypestring | number */
function handleNumberChange(value: any) {
localValue.value = value == null ? '' : String(value);
}
/** 监听操作符变化 */

View File

@ -125,8 +125,9 @@ function handleServiceChange(serviceIdentifier?: any) {
//
if (service && service.inputParams && service.inputParams.length > 0) {
const defaultParams = {};
const defaultParams: Record<string, any> = {};
service.inputParams.forEach((param) => {
if (!param.identifier) return;
defaultParams[param.identifier] = getDefaultValueForParam(param);
});
// JSON
@ -376,7 +377,7 @@ watch(
v-for="service in serviceList"
:key="service.identifier"
:label="service.name"
:value="service.identifier"
:value="service.identifier!"
>
<div class="flex items-center justify-between">
<span>{{ service.name }}</span>

View File

@ -305,7 +305,7 @@ function getParamTypeName(dataType: string) {
* @returns 标签样式
*/
function getParamTypeTag(dataType: string) {
const tagMap: Record<string, string> = {
const tagMap = {
[IoTDataSpecsDataTypeEnum.INT]: 'primary',
[IoTDataSpecsDataTypeEnum.FLOAT]: 'success',
[IoTDataSpecsDataTypeEnum.DOUBLE]: 'success',
@ -315,8 +315,8 @@ function getParamTypeTag(dataType: string) {
[IoTDataSpecsDataTypeEnum.DATE]: 'primary',
[IoTDataSpecsDataTypeEnum.STRUCT]: 'info',
[IoTDataSpecsDataTypeEnum.ARRAY]: 'warning',
};
return tagMap[dataType] || 'info';
} as const;
return tagMap[dataType as keyof typeof tagMap] || 'info';
}
/**