Showing
1 changed file
with
37 additions
and
18 deletions
| 1 | 1 | import { Options } from './type'; |
| 2 | -import { getDeviceProfile } from '/@/api/alarm/position'; | |
| 2 | +import { queryDeviceProfileBy } from '/@/api/device/deviceManager'; | |
| 3 | +import { findDictItemByCode } from '/@/api/system/dict'; | |
| 3 | 4 | import { getOrganizationList } from '/@/api/system/system'; |
| 4 | 5 | import { FormSchema } from '/@/components/Form'; |
| 5 | 6 | import { BasicColumn } from '/@/components/Table'; |
| ... | ... | @@ -7,8 +8,8 @@ import { copyTransFun } from '/@/utils/fnUtils'; |
| 7 | 8 | |
| 8 | 9 | export enum FieldsEnum { |
| 9 | 10 | ORGANIZATION_ID = 'organizationId', |
| 11 | + DEVICE_TYPE = 'deviceTypeEnum', | |
| 10 | 12 | TK_DEVICE_PROFILE_ID = 'tkDeviceProfileId', |
| 11 | - DEVICE_TYPE_ENUM = 'deviceTypeEnum', | |
| 12 | 13 | DEVICE_TYPE_NAME = 'deviceTypeName', |
| 13 | 14 | DELIMITER = 'delimiter', |
| 14 | 15 | HEADER = 'header', |
| ... | ... | @@ -118,36 +119,54 @@ export const basicInfoForm: FormSchema[] = [ |
| 118 | 119 | }, |
| 119 | 120 | }, |
| 120 | 121 | { |
| 122 | + field: FieldsEnum.DEVICE_TYPE, | |
| 123 | + label: '设备类型', | |
| 124 | + component: 'ApiSelect', | |
| 125 | + rules: [{ required: true, message: '设备类型为必填项' }], | |
| 126 | + componentProps: ({ formActionType }) => { | |
| 127 | + const { setFieldsValue, submit, clearValidate } = formActionType; | |
| 128 | + return { | |
| 129 | + api: findDictItemByCode, | |
| 130 | + params: { | |
| 131 | + dictCode: 'device_type', | |
| 132 | + }, | |
| 133 | + labelField: 'itemText', | |
| 134 | + valueField: 'itemValue', | |
| 135 | + onChange: (value: string, options: Record<'deviceType' | 'label', string>) => { | |
| 136 | + setFieldsValue({ | |
| 137 | + [FieldsEnum.DEVICE_TYPE_NAME]: value ? options.label : null, | |
| 138 | + [FieldsEnum.TK_DEVICE_PROFILE_ID]: null, | |
| 139 | + }); | |
| 140 | + submit(); | |
| 141 | + clearValidate(); | |
| 142 | + }, | |
| 143 | + }; | |
| 144 | + }, | |
| 145 | + }, | |
| 146 | + { | |
| 121 | 147 | field: FieldsEnum.TK_DEVICE_PROFILE_ID, |
| 122 | 148 | component: 'ApiSelect', |
| 123 | 149 | label: '产品', |
| 124 | 150 | rules: [{ required: true, message: '产品为必填项' }], |
| 125 | - componentProps: ({ formActionType }) => { | |
| 126 | - const { submit, setFieldsValue } = formActionType; | |
| 151 | + componentProps: ({ formActionType, formModel }) => { | |
| 152 | + const { submit } = formActionType; | |
| 153 | + const deviceType = Reflect.get(formModel, FieldsEnum.DEVICE_TYPE); | |
| 127 | 154 | return { |
| 128 | - api: getDeviceProfile, | |
| 155 | + api: queryDeviceProfileBy, | |
| 129 | 156 | labelField: 'name', |
| 130 | 157 | valueField: 'id', |
| 131 | 158 | placeholder: '请选择产品', |
| 159 | + params: { deviceType }, | |
| 132 | 160 | getPopupContainer: () => document.body, |
| 133 | - onChange: (value: string, options: Record<'deviceType' | 'label', string>) => { | |
| 134 | - value && | |
| 135 | - setFieldsValue({ | |
| 136 | - [FieldsEnum.DEVICE_TYPE_ENUM]: options.deviceType, | |
| 137 | - [FieldsEnum.DEVICE_TYPE_NAME]: options.label, | |
| 138 | - }); | |
| 139 | - submit(); | |
| 161 | + onChange: () => submit(), | |
| 162 | + showSearch: true, | |
| 163 | + filterOption: (inputValue: string, options: Record<'label', string>) => { | |
| 164 | + return options.label.includes(inputValue); | |
| 140 | 165 | }, |
| 141 | 166 | }; |
| 142 | 167 | }, |
| 143 | 168 | }, |
| 144 | 169 | { |
| 145 | - field: FieldsEnum.DEVICE_TYPE_ENUM, | |
| 146 | - component: 'Input', | |
| 147 | - label: '设备类型', | |
| 148 | - show: false, | |
| 149 | - }, | |
| 150 | - { | |
| 151 | 170 | field: FieldsEnum.DEVICE_TYPE_NAME, |
| 152 | 171 | component: 'Input', |
| 153 | 172 | label: '设备名称', | ... | ... |