Commit 41cb7dbedfe1607a93ff74143d324d4377e104c8

Authored by ww
1 parent dd853e5b

feat: basic implement model of matter

... ... @@ -31,3 +31,5 @@ pnpm-debug.log*
31 31 *.njsproj
32 32 *.sln
33 33 *.sw?
  34 +
  35 +yarn.lock
... ...
... ... @@ -15,11 +15,25 @@ export interface Specs {
15 15 };
16 16 }
17 17
18   -export interface FunctionJson {
  18 +export interface DataType {
19 19 type: string;
20 20 specs?: Partial<Specs> | ModelOfMatterParams[];
21 21 }
22 22
  23 +export interface StructJSON {
  24 + functionName?: string;
  25 + identifier?: string;
  26 + remark?: string;
  27 + dataType?: DataType;
  28 +}
  29 +
  30 +export interface FunctionJson {
  31 + dataType?: DataType | DataType[];
  32 + inputData?: DataType[];
  33 + outputData?: DataType[];
  34 + serviceCommand?: string;
  35 +}
  36 +
23 37 export interface ModelOfMatterParams {
24 38 deviceProfileId: string;
25 39 functionJson: FunctionJson;
... ... @@ -28,6 +42,7 @@ export interface ModelOfMatterParams {
28 42 identifier: string;
29 43 remark: string;
30 44 id?: string;
  45 + // callType
31 46 }
32 47
33 48 export interface GetModelTslParams {
... ...
... ... @@ -7,10 +7,12 @@
7 7 import { BasicForm, useForm } from '/@/components/Form';
8 8 import { formSchemas } from './config';
9 9 import { BasicModal, useModalInner } from '/@/components/Modal';
10   - import { OpenModalMode, OpenModalParams, StructRecord } from './type';
  10 + import { OpenModalMode, OpenModalParams } from './type';
11 11 import { ref, unref } from 'vue';
12   - import { transformFormValue } from './util';
  12 + import { transfromToStructJSON } from './util';
13 13 import { cloneDeep } from 'lodash-es';
  14 + import { DataType, StructJSON } from '/@/api/device/model/modelOfMatterModel';
  15 + import { isArray } from '/@/utils/is';
14 16
15 17 const modalReceiveRecord = ref<OpenModalParams>({
16 18 mode: OpenModalMode.CREATE,
... ... @@ -32,17 +34,14 @@
32 34 const [registerModal, { closeModal }] = useModalInner((record: OpenModalParams) => {
33 35 modalReceiveRecord.value = record;
34 36 const data = record.record || {};
35   - const { functionJson = {} } = data! as StructRecord;
36   - const { specs = {} } = functionJson as StructRecord['functionJson'];
  37 + const { dataType = {} } = data! as StructJSON;
  38 + const { specs = {}, type } = dataType as DataType;
  39 +
37 40 if (record.record) {
38 41 const value = {
  42 + type,
39 43 ...data,
40   - ...functionJson,
41   - ...specs,
42   - valueRange: {
43   - min: specs.min,
44   - max: specs.max,
45   - },
  44 + ...(isArray(specs) ? { specs } : { ...specs }),
46 45 };
47 46
48 47 setFieldsValue(value);
... ... @@ -52,9 +51,9 @@
52 51 const handleSubmit = async () => {
53 52 try {
54 53 const _value = await validate();
55   - let value = transformFormValue(_value);
56   - value = {
57   - ...value,
  54 + let structJSON = transfromToStructJSON(_value);
  55 + const value = {
  56 + ...structJSON,
58 57 ...(unref(modalReceiveRecord)?.record?.id
59 58 ? { id: unref(modalReceiveRecord)?.record?.id }
60 59 : {}),
... ...
1 1 import { h } from 'vue';
  2 +import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel';
2 3 import { findDictItemByCode } from '/@/api/system/dict';
3 4 import { FormSchema } from '/@/components/Table';
4 5 import { FormField } from '/@/views/device/profiles/step/cpns/physical/cpns/config';
... ... @@ -11,6 +12,23 @@ export enum DateTypeEnum {
11 12 IS_BOOL = 'BOOL',
12 13 }
13 14
  15 +const validateValueRange = (_rule, value: Record<'min' | 'max', number>, _callback) => {
  16 + value = value || {};
  17 + const { min, max } = value;
  18 + if (min >= max) {
  19 + return Promise.reject('最大值小于最小值');
  20 + }
  21 + return Promise.resolve();
  22 +};
  23 +
  24 +const validateJSON = (_rule, value: ModelOfMatterParams[], _callback) => {
  25 + console.log('validate json', value);
  26 + if (value.length) {
  27 + return Promise.resolve();
  28 + }
  29 + return Promise.reject('JSON对象不能为空');
  30 +};
  31 +
14 32 export const formSchemas: FormSchema[] = [
15 33 {
16 34 field: FormField.FUNCTION_NAME,
... ... @@ -70,6 +88,7 @@ export const formSchemas: FormSchema[] = [
70 88 ifShow: ({ values }) =>
71 89 values[FormField.TYPE] === DateTypeEnum.IS_NUMBER_INT ||
72 90 values[FormField.TYPE] === DateTypeEnum.IS_NUMBER_DOUBLE,
  91 + rules: [{ validator: validateValueRange }],
73 92 },
74 93 {
75 94 field: FormField.STEP,
... ... @@ -81,10 +100,29 @@ export const formSchemas: FormSchema[] = [
81 100 componentProps: {
82 101 maxLength: 255,
83 102 placeholder: '请输入步长',
  103 + min: 1,
  104 + formatter: (value: number | string) => {
  105 + return value ? Math.floor(Number(value)) : value;
  106 + },
84 107 },
85 108 ifShow: ({ values }) =>
86 109 values[FormField.TYPE] === DateTypeEnum.IS_NUMBER_INT ||
87 110 values[FormField.TYPE] === DateTypeEnum.IS_NUMBER_DOUBLE,
  111 + dynamicRules: ({ model }) => {
  112 + const valueRange = model[FormField.VALUE_RANGE] || {};
  113 + const { min = 0, max = 0 } = valueRange;
  114 + const step = model[FormField.STEP];
  115 + return [
  116 + {
  117 + validator: () => {
  118 + if (step > max - min) {
  119 + return Promise.reject('步长不能大于取值范围的差值');
  120 + }
  121 + return Promise.resolve();
  122 + },
  123 + },
  124 + ];
  125 + },
88 126 },
89 127 {
90 128 field: FormField.UNIT_NAME,
... ... @@ -140,6 +178,18 @@ export const formSchemas: FormSchema[] = [
140 178 placeholder: '如:关',
141 179 },
142 180 ifShow: ({ values }) => values[FormField.TYPE] === DateTypeEnum.IS_BOOL,
  181 + dynamicRules: ({ model }) => {
  182 + const close = model[FormField.BOOL_CLOSE];
  183 + const open = model[FormField.BOOL_OPEN];
  184 + return [
  185 + {
  186 + validator() {
  187 + if (open === close) return Promise.reject('布尔值不能相同');
  188 + return Promise.resolve();
  189 + },
  190 + },
  191 + ];
  192 + },
143 193 },
144 194 {
145 195 field: FormField.BOOL_OPEN,
... ... @@ -153,6 +203,18 @@ export const formSchemas: FormSchema[] = [
153 203 placeholder: '如:开',
154 204 },
155 205 ifShow: ({ values }) => values[FormField.TYPE] === DateTypeEnum.IS_BOOL,
  206 + dynamicRules: ({ model }) => {
  207 + const close = model[FormField.BOOL_CLOSE];
  208 + const open = model[FormField.BOOL_OPEN];
  209 + return [
  210 + {
  211 + validator() {
  212 + if (open === close) return Promise.reject('布尔值不能相同');
  213 + return Promise.resolve();
  214 + },
  215 + },
  216 + ];
  217 + },
156 218 },
157 219 {
158 220 field: FormField.LENGTH,
... ... @@ -200,15 +262,7 @@ export const formSchemas: FormSchema[] = [
200 262 changeEvent: 'update:value',
201 263 colProps: { span: 24 },
202 264 ifShow: ({ values }) => values[FormField.TYPE] === DateTypeEnum.IS_STRUCT,
203   - rules: [
204   - {
205   - required: true,
206   - validator(_rule, value, _callback) {
207   - console.log(value);
208   - return Promise.resolve();
209   - },
210   - },
211   - ],
  265 + rules: [{ required: true, validator: validateJSON }],
212 266 },
213 267 {
214 268 field: FormField.REFARK,
... ...
1 1 import { DateTypeEnum } from './config';
2   -import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel';
  2 +import { StructJSON } from '/@/api/device/model/modelOfMatterModel';
3 3 import { FormField } from '/@/views/device/profiles/step/cpns/physical/cpns/config';
4 4
5 5 export enum OpenModalMode {
... ... @@ -22,6 +22,6 @@ export interface StructFormValue
22 22 [FormField.STRUCT]: StructRecord[];
23 23 }
24 24
25   -export interface StructRecord extends ModelOfMatterParams {
  25 +export interface StructRecord extends StructJSON {
26 26 id: string;
27 27 }
... ...
1 1 import { DateTypeEnum } from './config';
2 2 import { StructFormValue } from './type';
3   -import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel';
4   -import { useMessage } from '/@/hooks/web/useMessage';
5   -import { FunctionType } from '/@/views/device/profiles/step/cpns/physical/cpns/config';
  3 +import { DataType, ModelOfMatterParams, StructJSON } from '/@/api/device/model/modelOfMatterModel';
6 4
7   -export const validateValueRangeAndStep = (min: number, step: number, max: number) => {
8   - const { createMessage } = useMessage();
9   - if (min > max) {
10   - createMessage.error('最大值必须大于最小值,整数型不能有小数位,单精度有效位为7,双精度为16');
11   - throw '最大值必须大于最小值,整数型不能有小数位,单精度有效位为7,双精度为16';
12   - }
13   -
14   - if (step > max - min) {
15   - createMessage.error('步长不能大于取值范围的差值');
16   - throw '步长不能大于取值范围的差值';
17   - }
18   -};
19   -
20   -export const validateValueBool = (boolClose, boolOpen) => {
21   - const { createMessage } = useMessage();
22   -
23   - if (boolClose == boolOpen) {
24   - createMessage.error('布尔值不能相同');
25   - throw '布尔值不能相同';
26   - }
27   -};
28   -
29   -export const validateValueStruct = (data: []) => {
30   - const { createMessage } = useMessage();
31   -
32   - if (data.length === 0) {
33   - createMessage.error('struct不能为空');
34   - throw 'struct不能为空';
35   - }
36   -};
37   -
38   -export function transformFormValue(value: StructFormValue): Partial<ModelOfMatterParams> {
  5 +export function transfromToStructJSON(value: StructFormValue): StructJSON {
39 6 const {
40 7 type,
41 8 valueRange,
... ... @@ -50,31 +17,26 @@ export function transformFormValue(value: StructFormValue): Partial<ModelOfMatte
50 17 remark,
51 18 specs,
52 19 } = value;
53   - const { min, max } = valueRange! || {};
54 20 const basic = { functionName, identifier, remark };
55   - let functionJson = {} as unknown as ModelOfMatterParams['functionJson'];
  21 + let dataType = {} as unknown as DataType;
56 22
57   - console.log(value);
58 23 switch (type) {
59 24 case DateTypeEnum.IS_NUMBER_INT:
60   - validateValueRangeAndStep(Number(min), Number(step), Number(max));
61   - functionJson = {
  25 + dataType = {
62 26 type,
63   - specs: { max, min, valueRange, step, unit, unitName },
  27 + specs: { valueRange, step, unit, unitName },
64 28 };
65 29 break;
66 30
67 31 case DateTypeEnum.IS_NUMBER_DOUBLE:
68   - validateValueRangeAndStep(Number(min), Number(step), Number(max));
69   - functionJson = {
  32 + dataType = {
70 33 type,
71   - specs: { max, min, valueRange, step, unit, unitName },
  34 + specs: { valueRange, step, unit, unitName },
72 35 };
73 36 break;
74 37
75 38 case DateTypeEnum.IS_BOOL:
76   - validateValueBool(Number(boolClose), Number(boolOpen));
77   - functionJson = {
  39 + dataType = {
78 40 type,
79 41 specs: {
80 42 boolOpen: boolOpen,
... ... @@ -84,22 +46,18 @@ export function transformFormValue(value: StructFormValue): Partial<ModelOfMatte
84 46 break;
85 47
86 48 case DateTypeEnum.IS_STRING:
87   - functionJson = {
  49 + dataType = {
88 50 type,
89 51 specs: { length },
90 52 };
91 53 break;
92 54
93 55 case DateTypeEnum.IS_STRUCT:
94   - functionJson = {
  56 + dataType = {
95 57 type,
96 58 specs: specs! as unknown as ModelOfMatterParams[],
97 59 };
98 60 break;
99 61 }
100   - return {
101   - ...basic,
102   - functionType: FunctionType.PROPERTIES,
103   - functionJson,
104   - };
  62 + return { ...basic, dataType };
105 63 }
... ...
... ... @@ -32,7 +32,11 @@
32 32 />
33 33 </Tabs>
34 34 <Attribute v-show="activeKey === FunctionType.PROPERTIES" ref="AttrRef" />
35   - <Service v-show="activeKey === FunctionType.SERVICE" ref="ServiceRef" />
  35 + <Service
  36 + v-show="activeKey === FunctionType.SERVICE"
  37 + :record="$props.record"
  38 + ref="ServiceRef"
  39 + />
36 40 <Events v-show="activeKey === FunctionType.EVENTS" ref="EventsRef" />
37 41 </div>
38 42 </BasicModal>
... ... @@ -51,7 +55,6 @@
51 55 import { useMessage } from '/@/hooks/web/useMessage';
52 56 import { OpenModelMode, OpenModelOfMatterModelParams } from './types/index';
53 57 import { FunctionType } from './cpns/config';
54   - import { StructRecord } from '/@/components/Form/src/externalCompns/components/StructForm/type';
55 58
56 59 const emit = defineEmits(['register', 'success']);
57 60
... ... @@ -75,9 +78,9 @@
75 78 const functionType = ref<FunctionType>();
76 79 const { createMessage } = useMessage();
77 80
78   - const setAttrFormData = (data: StructRecord) => AttrRef.value?.setFormData(data);
79   - const setServiceFormData = (data) => ServiceRef.value?.setFormData(data);
80   - const setEventsFormData = (data) => EventsRef.value?.setFormData(data);
  81 + const setAttrFormData = (data: ModelOfMatterParams) => AttrRef.value?.setFormData(data);
  82 + const setServiceFormData = (data: ModelOfMatterParams) => ServiceRef.value?.setFormData(data);
  83 + const setEventsFormData = (data: ModelOfMatterParams) => EventsRef.value?.setFormData(data);
81 84
82 85 const enums = {
83 86 [FunctionType.PROPERTIES]: setAttrFormData,
... ... @@ -85,7 +88,7 @@
85 88 [FunctionType.EVENTS]: setEventsFormData,
86 89 };
87 90
88   - function setFormData(type: FunctionType, value: StructRecord) {
  91 + function setFormData(type: FunctionType, value: ModelOfMatterParams) {
89 92 const setFn = enums[type];
90 93 setFn(value);
91 94 }
... ... @@ -98,7 +101,7 @@
98 101 if (record) {
99 102 functionType.value = data.record.functionType;
100 103 activeKey.value = data.record.functionType;
101   - setFormData(record.functionType, record as unknown as StructRecord);
  104 + setFormData(record.functionType, record as unknown as ModelOfMatterParams);
102 105 }
103 106 if (unref(openModalMode) === OpenModelMode.VIEW) {
104 107 setModalProps({ showOkBtn: false, showCancelBtn: false, title: '查看物模型' });
... ... @@ -133,7 +136,7 @@
133 136 } else if (activeKey.value == FunctionType.SERVICE) {
134 137 params = (await ServiceRef.value?.getFormData()) || {};
135 138 } else {
136   - params = await EventsRef.value?.getFormData();
  139 + params = (await EventsRef.value?.getFormData()) || {};
137 140 }
138 141 params.deviceProfileId = props.record.id;
139 142 if (unref(openModalMode) === OpenModelMode.CREATE) {
... ...
... ... @@ -3,14 +3,12 @@
3 3 </template>
4 4 <script lang="ts" setup>
5 5 import { BasicForm, useForm } from '/@/components/Form';
6   - import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel';
  6 + import { DataType, ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel';
7 7 import { formSchemas } from '/@/components/Form/src/externalCompns/components/StructForm/config';
8   - import { transformFormValue } from '/@/components/Form/src/externalCompns/components/StructForm/util';
9   - import {
10   - StructFormValue,
11   - StructRecord,
12   - } from '/@/components/Form/src/externalCompns/components/StructForm/type';
13   - import { isObject } from 'lodash';
  8 + import { StructFormValue } from '/@/components/Form/src/externalCompns/components/StructForm/type';
  9 + import { transfromToStructJSON } from '/@/components/Form/src/externalCompns/components/StructForm/util';
  10 + import { FunctionType } from './config';
  11 + import { isArray } from 'lodash';
14 12
15 13 const [register, { validate, resetFields, setFieldsValue }] = useForm({
16 14 labelWidth: 100,
... ... @@ -26,7 +24,17 @@
26 24 async function getFormData(): Promise<Partial<ModelOfMatterParams>> {
27 25 const _values = (await validate()) as StructFormValue;
28 26 if (!_values) return {};
29   - let value = transformFormValue(_values);
  27 + const { functionName, remark, identifier } = _values;
  28 + const structJSON = transfromToStructJSON(_values);
  29 + const value = {
  30 + functionName,
  31 + functionType: FunctionType.PROPERTIES,
  32 + remark,
  33 + identifier,
  34 + functionJson: {
  35 + dataType: structJSON.dataType,
  36 + },
  37 + } as ModelOfMatterParams;
30 38 return value;
31 39 }
32 40
... ... @@ -34,14 +42,17 @@
34 42 resetFields();
35 43 };
36 44
37   - const setFormData = (record: StructRecord) => {
38   - const { functionJson } = record as StructRecord;
39   - const { specs = {} } = functionJson || ({} as StructRecord['functionJson']);
  45 + const setFormData = (record: ModelOfMatterParams) => {
  46 + const { functionJson } = record;
  47 + const { dataType = {} } = functionJson!;
  48 +
  49 + const { specs } = dataType! as DataType;
40 50
41 51 const value = {
42 52 ...record,
43 53 ...functionJson,
44   - ...(isObject(specs) ? specs : {}),
  54 + ...dataType,
  55 + ...(isArray(specs) ? specs : { ...specs }),
45 56 };
46 57
47 58 setFieldsValue(value);
... ...
... ... @@ -3,10 +3,11 @@
3 3 </template>
4 4 <script lang="ts" setup>
5 5 import { BasicForm, useForm } from '/@/components/Form';
6   - import { eventSchemas } from './config';
  6 + import { eventSchemas, FunctionType } from './config';
7 7 import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel';
  8 + import { StructFormValue } from '/@/components/Form/src/externalCompns/components/StructForm/type';
8 9
9   - const [register, { validate, resetFields }] = useForm({
  10 + const [register, { validate, resetFields, setFieldsValue }] = useForm({
10 11 labelWidth: 100,
11 12 schemas: eventSchemas,
12 13 actionColOptions: {
... ... @@ -18,12 +19,35 @@
18 19 });
19 20
20 21 //回显数据
21   - const setFormData = () => {};
  22 + const setFormData = (record: ModelOfMatterParams) => {
  23 + const { functionJson = {}, functionName, identifier, remark } = record;
  24 + const { outputData } = functionJson;
  25 + const value = {
  26 + functionName,
  27 + identifier,
  28 + remark,
  29 + outputData,
  30 + };
  31 + setFieldsValue(value);
  32 + };
22 33
23 34 async function getFormData() {
24   - const values = (await validate()) as ModelOfMatterParams;
25   - if (!values) return;
26   - console.log(values);
  35 + const _values = (await validate()) as StructFormValue;
  36 + const { functionName, remark, identifier, outputData } = _values;
  37 + if (!_values) return {} as unknown as ModelOfMatterParams;
  38 + const value = {
  39 + functionName,
  40 + identifier,
  41 + remark,
  42 + functionType: FunctionType.EVENTS,
  43 + // callType,
  44 + // eventType,
  45 + functionJson: {
  46 + outputData,
  47 + },
  48 + } as ModelOfMatterParams;
  49 +
  50 + return value;
27 51 }
28 52
29 53 //清空数据
... ...
... ... @@ -4,11 +4,18 @@
4 4 <script lang="ts" setup>
5 5 import { BasicForm, useForm } from '/@/components/Form';
6 6 import { serviceSchemas } from './config';
7   - import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel';
8 7 import { FunctionType } from './config';
9   - const [register, { validate, resetFields }] = useForm({
  8 + import { StructFormValue } from '/@/components/Form/src/externalCompns/components/StructForm/type';
  9 + import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel';
  10 + import { DeviceRecord } from '/@/api/device/model/deviceModel';
  11 +
  12 + const props = defineProps<{
  13 + record: DeviceRecord;
  14 + }>();
  15 +
  16 + const [register, { validate, resetFields, setFieldsValue }] = useForm({
10 17 labelWidth: 100,
11   - schemas: serviceSchemas,
  18 + schemas: serviceSchemas(props.record.transportType === 'TCP'),
12 19 actionColOptions: {
13 20 span: 14,
14 21 },
... ... @@ -18,15 +25,39 @@
18 25 });
19 26
20 27 //回显数据
21   - const setFormData = () => {};
  28 + const setFormData = (record: ModelOfMatterParams) => {
  29 + const { functionJson = {}, functionName, identifier, remark } = record;
  30 + const { inputData, outputData, serviceCommand } = functionJson;
  31 + const value = {
  32 + functionName,
  33 + identifier,
  34 + remark,
  35 + inputData,
  36 + outputData,
  37 + serviceCommand,
  38 + };
  39 + setFieldsValue(value);
  40 + };
22 41
23 42 //获取数据
24 43 async function getFormData() {
25   - const values = (await validate()) as ModelOfMatterParams;
26   - if (!values) return;
27   - values.functionType = FunctionType.SERVICE;
28   - console.log(values);
29   - return values;
  44 + const _values = (await validate()) as StructFormValue;
  45 + const { functionName, remark, identifier, inputData, outputData, serviceCommand } = _values;
  46 + if (!_values) return {};
  47 + const value = {
  48 + functionName,
  49 + identifier,
  50 + remark,
  51 + functionType: FunctionType.SERVICE,
  52 + // callType,
  53 + functionJson: {
  54 + inputData,
  55 + outputData,
  56 + serviceCommand,
  57 + },
  58 + } as ModelOfMatterParams;
  59 +
  60 + return value;
30 61 }
31 62
32 63 //清空数据
... ...
... ... @@ -23,6 +23,7 @@ export enum FormField {
23 23 INPUT_PARAM = 'inputData',
24 24 OUTPUT_PARAM = 'outputData',
25 25 EVENT_TYPE = 'eventType',
  26 + SERVICE_COMMAND = 'serviceCommand',
26 27
27 28 STRUCT = 'struct',
28 29 }
... ... @@ -82,79 +83,92 @@ export const defaultTslContent = {
82 83 ],
83 84 };
84 85
85   -export const serviceSchemas: FormSchema[] = [
86   - {
87   - field: FormField.FUNCTION_NAME,
88   - label: '功能名称',
89   - required: true,
90   - component: 'Input',
91   - colProps: {
92   - span: 18,
  86 +export const serviceSchemas = (tcpDeviceFlag: boolean): FormSchema[] => {
  87 + return [
  88 + {
  89 + field: FormField.FUNCTION_NAME,
  90 + label: '功能名称',
  91 + required: true,
  92 + component: 'Input',
  93 + colProps: {
  94 + span: 18,
  95 + },
  96 + componentProps: {
  97 + maxLength: 255,
  98 + placeholder: '请输入功能名称',
  99 + },
93 100 },
94   - componentProps: {
95   - maxLength: 255,
96   - placeholder: '请输入功能名称',
  101 + {
  102 + field: FormField.IDENTIFIER,
  103 + label: '标识符',
  104 + required: true,
  105 + component: 'Input',
  106 + colProps: {
  107 + span: 18,
  108 + },
  109 + componentProps: {
  110 + maxLength: 255,
  111 + placeholder: '请输入标识符',
  112 + },
97 113 },
98   - },
99   - {
100   - field: FormField.IDENTIFIER,
101   - label: '标识符',
102   - required: true,
103   - component: 'Input',
104   - colProps: {
105   - span: 18,
  114 + {
  115 + field: FormField.CALL_TYPE,
  116 + component: 'ApiRadioGroup',
  117 + label: '调用方式',
  118 + required: true,
  119 + colProps: {
  120 + span: 24,
  121 + },
  122 + defaultValue: 'ASYNC',
  123 + componentProps: {
  124 + placeholder: '请选择调用方式',
  125 + api: findDictItemByCode,
  126 + params: {
  127 + dictCode: 'call_mode',
  128 + },
  129 + labelField: 'itemText',
  130 + valueField: 'itemValue',
  131 + },
106 132 },
107   - componentProps: {
108   - maxLength: 255,
109   - placeholder: '请输入标识符',
  133 + {
  134 + field: FormField.INPUT_PARAM,
  135 + label: '输入参数',
  136 + component: 'StructForm',
  137 + valueField: 'value',
  138 + changeEvent: 'update:value',
  139 + ifShow: !tcpDeviceFlag,
  140 + colProps: { span: 24 },
110 141 },
111   - },
112   - {
113   - field: FormField.CALL_TYPE,
114   - component: 'ApiRadioGroup',
115   - label: '调用方式',
116   - required: true,
117   - colProps: {
118   - span: 24,
  142 + {
  143 + field: FormField.OUTPUT_PARAM,
  144 + label: '输出参数',
  145 + component: 'StructForm',
  146 + valueField: 'value',
  147 + changeEvent: 'update:value',
  148 + ifShow: !tcpDeviceFlag,
  149 + colProps: { span: 24 },
119 150 },
120   - defaultValue: 'ASYNC',
121   - componentProps: {
122   - placeholder: '请选择调用方式',
123   - api: findDictItemByCode,
124   - params: {
125   - dictCode: 'call_mode',
  151 + {
  152 + field: FormField.SERVICE_COMMAND,
  153 + label: '服务命令',
  154 + component: 'Input',
  155 + ifShow: tcpDeviceFlag,
  156 + componentProps: {
  157 + placeholder: '请输入服务命令',
126 158 },
127   - labelField: 'itemText',
128   - valueField: 'itemValue',
129 159 },
130   - },
131   - {
132   - field: FormField.INPUT_PARAM,
133   - label: '输入参数',
134   - component: 'StructForm',
135   - valueField: 'value',
136   - changeEvent: 'update:value',
137   - colProps: { span: 24 },
138   - },
139   - {
140   - field: FormField.OUTPUT_PARAM,
141   - label: '输出参数',
142   - component: 'StructForm',
143   - valueField: 'value',
144   - changeEvent: 'update:value',
145   - colProps: { span: 24 },
146   - },
147   - {
148   - field: FormField.REFARK,
149   - label: '备注',
150   - component: 'InputTextArea',
151   - componentProps: {
152   - rows: 6,
153   - maxLength: 100,
154   - placeholder: '请输入描述',
  160 + {
  161 + field: FormField.REFARK,
  162 + label: '备注',
  163 + component: 'InputTextArea',
  164 + componentProps: {
  165 + rows: 6,
  166 + maxLength: 100,
  167 + placeholder: '请输入描述',
  168 + },
155 169 },
156   - },
157   -];
  170 + ];
  171 +};
158 172
159 173 export const eventSchemas: FormSchema[] = [
160 174 {
... ...