Showing
11 changed files
with
101 additions
and
321 deletions
... | ... | @@ -9,12 +9,15 @@ export interface Specs { |
9 | 9 | length: string; |
10 | 10 | boolOpen: string; |
11 | 11 | boolClose: string; |
12 | + valueRange?: { | |
13 | + min: string; | |
14 | + max: string; | |
15 | + }; | |
12 | 16 | } |
13 | 17 | |
14 | 18 | export interface FunctionJson { |
15 | 19 | type: string; |
16 | - specs?: Partial<Specs>; | |
17 | - specsList?: ModelOfMatterParams[]; | |
20 | + specs?: Partial<Specs> | ModelOfMatterParams[]; | |
18 | 21 | } |
19 | 22 | |
20 | 23 | export interface ModelOfMatterParams { | ... | ... |
1 | 1 | <template> |
2 | - <div style="display: flex"> | |
3 | - <a-input | |
2 | + <div class="flex"> | |
3 | + <InputNumber | |
4 | 4 | placeholder="最小值" |
5 | - v-model:value="param.min" | |
5 | + :value="getValue.min" | |
6 | 6 | style="width: 38%" |
7 | - @input="emitChange" | |
7 | + @change="(value) => emitChange(value, 'min')" | |
8 | 8 | /> |
9 | 9 | <span style="width: 8px"></span> |
10 | 10 | <span>~</span> |
11 | 11 | <span style="width: 8px"></span> |
12 | - <a-input | |
12 | + <InputNumber | |
13 | 13 | placeholder="最大值" |
14 | - v-model:value="param.max" | |
14 | + :value="getValue.max" | |
15 | 15 | style="width: 38%" |
16 | - @input="emitChange" | |
16 | + @change="(value) => emitChange(value, 'max')" | |
17 | 17 | /> |
18 | 18 | </div> |
19 | 19 | </template> |
20 | 20 | <script lang="ts"> |
21 | - import { defineComponent, reactive, watchEffect } from 'vue'; | |
22 | - import { propTypes } from '/@/utils/propTypes'; | |
23 | - import { isEmpty } from '/@/utils/is'; | |
24 | - | |
25 | - export default defineComponent({ | |
26 | - name: 'JAddInput', | |
27 | - //--------------不继承Antd Design Vue Input的所有属性 否则控制台报大片警告-------------- | |
21 | + export default { | |
28 | 22 | inheritAttrs: false, |
29 | - props: { | |
30 | - value: propTypes.object.def({}), | |
31 | - }, | |
32 | - emits: ['change', 'update:value'], | |
33 | - setup(props, { emit }) { | |
34 | - const param = reactive({ | |
35 | - min: '', | |
36 | - max: '', | |
37 | - }); | |
38 | - watchEffect(() => { | |
39 | - initVal(); | |
40 | - }); | |
41 | - function initVal() { | |
42 | - if (props.value) { | |
43 | - param.min = props.value.min; | |
44 | - param.max = props.value.max; | |
45 | - } | |
46 | - } | |
47 | - function emitChange() { | |
48 | - emit('change', isEmpty(param) ? '' : param); | |
49 | - emit('update:value', isEmpty(param) ? '' : param); | |
50 | - } | |
51 | - return { | |
52 | - emitChange, | |
53 | - param, | |
23 | + }; | |
24 | +</script> | |
25 | +<script lang="ts" setup> | |
26 | + import { computed } from 'vue'; | |
27 | + import { InputNumber } from 'ant-design-vue'; | |
28 | + | |
29 | + const emit = defineEmits(['change', 'update:value']); | |
30 | + const props = withDefaults( | |
31 | + defineProps<{ | |
32 | + value?: { | |
33 | + min: Nullable<number>; | |
34 | + max: Nullable<number>; | |
54 | 35 | }; |
55 | - }, | |
36 | + }>(), | |
37 | + { | |
38 | + value: () => ({ min: null, max: null }), | |
39 | + } | |
40 | + ); | |
41 | + | |
42 | + const getValue = computed(() => { | |
43 | + const { value } = props; | |
44 | + return value; | |
56 | 45 | }); |
46 | + | |
47 | + function emitChange(value: number, key: 'min' | 'max') { | |
48 | + const _value = { ...props.value, [key]: value }; | |
49 | + emit('update:value', _value); | |
50 | + } | |
57 | 51 | </script> |
58 | 52 | <style scoped></style> | ... | ... |
... | ... | @@ -62,6 +62,8 @@ export const formSchemas: FormSchema[] = [ |
62 | 62 | field: FormField.VALUE_RANGE, |
63 | 63 | label: '取值范围', |
64 | 64 | component: 'CustomMinMaxInput', |
65 | + valueField: 'value', | |
66 | + changeEvent: 'update:value', | |
65 | 67 | colProps: { |
66 | 68 | span: 18, |
67 | 69 | }, |
... | ... | @@ -72,7 +74,7 @@ export const formSchemas: FormSchema[] = [ |
72 | 74 | { |
73 | 75 | field: FormField.STEP, |
74 | 76 | label: '步长', |
75 | - component: 'Input', | |
77 | + component: 'InputNumber', | |
76 | 78 | colProps: { |
77 | 79 | span: 18, |
78 | 80 | }, |
... | ... | @@ -198,6 +200,15 @@ export const formSchemas: FormSchema[] = [ |
198 | 200 | changeEvent: 'update:value', |
199 | 201 | colProps: { span: 24 }, |
200 | 202 | 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 | + ], | |
201 | 212 | }, |
202 | 213 | { |
203 | 214 | field: FormField.REFARK, | ... | ... |
... | ... | @@ -48,18 +48,19 @@ export function transformFormValue(value: StructFormValue): Partial<ModelOfMatte |
48 | 48 | functionName, |
49 | 49 | identifier, |
50 | 50 | remark, |
51 | - specsList, | |
51 | + specs, | |
52 | 52 | } = value; |
53 | 53 | const { min, max } = valueRange! || {}; |
54 | 54 | const basic = { functionName, identifier, remark }; |
55 | 55 | let functionJson = {} as unknown as ModelOfMatterParams['functionJson']; |
56 | 56 | |
57 | + console.log(value); | |
57 | 58 | switch (type) { |
58 | 59 | case DateTypeEnum.IS_NUMBER_INT: |
59 | 60 | validateValueRangeAndStep(Number(min), Number(step), Number(max)); |
60 | 61 | functionJson = { |
61 | 62 | type, |
62 | - specs: { max, min, step, unit, unitName }, | |
63 | + specs: { max, min, valueRange, step, unit, unitName }, | |
63 | 64 | }; |
64 | 65 | break; |
65 | 66 | |
... | ... | @@ -67,7 +68,7 @@ export function transformFormValue(value: StructFormValue): Partial<ModelOfMatte |
67 | 68 | validateValueRangeAndStep(Number(min), Number(step), Number(max)); |
68 | 69 | functionJson = { |
69 | 70 | type, |
70 | - specs: { max, min, step, unit, unitName }, | |
71 | + specs: { max, min, valueRange, step, unit, unitName }, | |
71 | 72 | }; |
72 | 73 | break; |
73 | 74 | |
... | ... | @@ -92,7 +93,7 @@ export function transformFormValue(value: StructFormValue): Partial<ModelOfMatte |
92 | 93 | case DateTypeEnum.IS_STRUCT: |
93 | 94 | functionJson = { |
94 | 95 | type, |
95 | - specsList: specsList! as unknown as ModelOfMatterParams[], | |
96 | + specs: specs! as unknown as ModelOfMatterParams[], | |
96 | 97 | }; |
97 | 98 | break; |
98 | 99 | } | ... | ... |
... | ... | @@ -99,7 +99,7 @@ |
99 | 99 | </div> |
100 | 100 | </template> |
101 | 101 | <script lang="ts" setup> |
102 | - import { ref, nextTick, onUnmounted, onMounted } from 'vue'; | |
102 | + import { ref, nextTick, onUnmounted } from 'vue'; | |
103 | 103 | import { BasicTable, TableImg, useTable, TableAction, BasicColumn } from '/@/components/Table'; |
104 | 104 | import { columns, searchFormSchema, defaultObj } from './device.profile.data'; |
105 | 105 | import { useMessage } from '/@/hooks/web/useMessage'; |
... | ... | @@ -258,7 +258,6 @@ |
258 | 258 | } |
259 | 259 | |
260 | 260 | const [registerDrawer, { openDrawer }] = useDrawer(); |
261 | - onMounted(() => openDrawer(true)); | |
262 | 261 | //详情 |
263 | 262 | function handleDetailView(record: Recordable) { |
264 | 263 | openDrawer(true, { record }); | ... | ... |
... | ... | @@ -27,7 +27,7 @@ |
27 | 27 | <div class="flex justify-between items-end"> |
28 | 28 | <div class="flex gap-2"> |
29 | 29 | <Authority value=""> |
30 | - <Button v-if="isShowBtn" type="primary" @click="handleCreateOrEdit"> | |
30 | + <Button v-if="isShowBtn" type="primary" @click="handleCreateOrEdit()"> | |
31 | 31 | 新增物模型 |
32 | 32 | </Button> |
33 | 33 | <Button type="primary" @click="handleOpenTsl"> 物模型TSL </Button> |
... | ... | @@ -106,7 +106,6 @@ |
106 | 106 | </div> |
107 | 107 | </template> |
108 | 108 | <script lang="ts" setup> |
109 | - import { ref } from 'vue'; | |
110 | 109 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
111 | 110 | import { useModal } from '/@/components/Modal'; |
112 | 111 | import { physicalColumn } from '../device.profile.data'; |
... | ... | @@ -120,6 +119,7 @@ |
120 | 119 | import { deleteModel, getModelList } from '/@/api/device/modelOfMatter'; |
121 | 120 | import { OpenModelOfMatterModelParams, OpenModelMode } from './cpns/physical/types'; |
122 | 121 | import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel'; |
122 | + import { ref } from 'vue'; | |
123 | 123 | defineEmits(['register']); |
124 | 124 | |
125 | 125 | defineProps<{ | ... | ... |
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | <div> |
3 | 3 | <BasicModal |
4 | 4 | :maskClosable="false" |
5 | + destroy-on-close | |
5 | 6 | v-bind="$attrs" |
6 | 7 | width="55rem" |
7 | 8 | @register="register" |
... | ... | @@ -24,7 +25,11 @@ |
24 | 25 | > |
25 | 26 | <TabPane :key="FunctionType.PROPERTIES" tab="属性" /> |
26 | 27 | <TabPane :key="FunctionType.SERVICE" tab="服务" /> |
27 | - <TabPane :key="FunctionType.EVENTS" tab="事件" /> | |
28 | + <TabPane | |
29 | + :key="FunctionType.EVENTS" | |
30 | + tab="事件" | |
31 | + :disabled="$props.record.transportType === 'TCP'" | |
32 | + /> | |
28 | 33 | </Tabs> |
29 | 34 | <Attribute v-show="activeKey === FunctionType.PROPERTIES" ref="AttrRef" /> |
30 | 35 | <Service v-show="activeKey === FunctionType.SERVICE" ref="ServiceRef" /> |
... | ... | @@ -62,6 +67,7 @@ |
62 | 67 | const ServiceRef = ref<InstanceType<typeof Service>>(); |
63 | 68 | const EventsRef = ref<InstanceType<typeof Events>>(); |
64 | 69 | const openModalMode = ref<OpenModelMode>(OpenModelMode.CREATE); |
70 | + const openModalParams = ref<OpenModelOfMatterModelParams>(); | |
65 | 71 | |
66 | 72 | const functionType = ref<FunctionType>(); |
67 | 73 | const { createMessage } = useMessage(); |
... | ... | @@ -83,6 +89,7 @@ |
83 | 89 | |
84 | 90 | const [register, { closeModal, setModalProps }] = useModalInner( |
85 | 91 | async (data: OpenModelOfMatterModelParams) => { |
92 | + openModalParams.value = data; | |
86 | 93 | const { mode, record } = data; |
87 | 94 | openModalMode.value = mode; |
88 | 95 | if (record) { |
... | ... | @@ -121,7 +128,7 @@ |
121 | 128 | if (activeKey.value == FunctionType.PROPERTIES) { |
122 | 129 | params = (await AttrRef.value?.getFormData()) || {}; |
123 | 130 | } else if (activeKey.value == FunctionType.SERVICE) { |
124 | - params = await ServiceRef.value?.getFormData(); | |
131 | + params = (await ServiceRef.value?.getFormData()) || {}; | |
125 | 132 | } else { |
126 | 133 | params = await EventsRef.value?.getFormData(); |
127 | 134 | } |
... | ... | @@ -130,7 +137,7 @@ |
130 | 137 | await createModel(params); |
131 | 138 | createMessage.success('创建成功'); |
132 | 139 | } else { |
133 | - params.id = props.record.id; | |
140 | + params.id = unref(openModalParams)?.record.id; | |
134 | 141 | await updateModel(params); |
135 | 142 | createMessage.success('修改成功'); |
136 | 143 | } | ... | ... |
1 | 1 | <template> |
2 | - <div> | |
3 | - <BasicForm @register="register" /> | |
4 | - </div> | |
2 | + <BasicForm @register="register" /> | |
5 | 3 | </template> |
6 | 4 | <script lang="ts" setup> |
7 | 5 | import { BasicForm, useForm } from '/@/components/Form'; |
... | ... | @@ -12,6 +10,7 @@ |
12 | 10 | StructFormValue, |
13 | 11 | StructRecord, |
14 | 12 | } from '/@/components/Form/src/externalCompns/components/StructForm/type'; |
13 | + import { isObject } from 'lodash'; | |
15 | 14 | |
16 | 15 | const [register, { validate, resetFields, setFieldsValue }] = useForm({ |
17 | 16 | labelWidth: 100, |
... | ... | @@ -42,11 +41,7 @@ |
42 | 41 | const value = { |
43 | 42 | ...record, |
44 | 43 | ...functionJson, |
45 | - ...specs, | |
46 | - valueRange: { | |
47 | - min: specs.min, | |
48 | - max: specs.max, | |
49 | - }, | |
44 | + ...(isObject(specs) ? specs : {}), | |
50 | 45 | }; |
51 | 46 | |
52 | 47 | setFieldsValue(value); | ... | ... |
1 | 1 | <template> |
2 | - <div> | |
3 | - <BasicForm @register="register"> | |
4 | - <template #outputParamSlot> | |
5 | - <div> | |
6 | - <template v-for="(item, index) in outputParamData" :key="item"> | |
7 | - <span style="display: none">{{ item }}</span> | |
8 | - <InputParamItem | |
9 | - :title="item.name" | |
10 | - :item="item" | |
11 | - class="mt-4" | |
12 | - :index="index" | |
13 | - :ref="dynamicBindRef.outputParamItemRef" | |
14 | - @delete="deleteOutParItem" | |
15 | - @edit="editOutParItem" | |
16 | - /> | |
17 | - </template> | |
18 | - <div style="display: flex" :class="{ 'mt-2': outputParamData.length > 0 }"> | |
19 | - <span class="add-style">+</span> | |
20 | - <span class="add-style" @click="handleAddOutParam">增加参数</span> | |
21 | - </div> | |
22 | - </div> | |
23 | - </template> | |
24 | - </BasicForm> | |
25 | - <AddParamsModal @register="registerModal" @data="getData" /> | |
26 | - </div> | |
2 | + <BasicForm @register="register" /> | |
27 | 3 | </template> |
28 | 4 | <script lang="ts" setup> |
29 | - import { ref, unref } from 'vue'; | |
30 | 5 | import { BasicForm, useForm } from '/@/components/Form'; |
31 | 6 | import { eventSchemas } from './config'; |
32 | - import { useModal } from '/@/components/Modal'; | |
33 | - import InputParamItem from './components/InputParamItem.vue'; | |
34 | - import AddParamsModal from './components/AddParamsModal.vue'; | |
35 | - import { buildUUID } from '/@/utils/uuid'; | |
7 | + import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel'; | |
36 | 8 | |
37 | - const outputParamData: any = ref([]); | |
38 | - const dynamicBindRef = { | |
39 | - outputParamItemRef: ref([]), | |
40 | - }; | |
41 | - | |
42 | - const [registerModal, { openModal }] = useModal(); | |
43 | - | |
44 | - const [register, { validate, setFieldsValue, resetFields }] = useForm({ | |
9 | + const [register, { validate, resetFields }] = useForm({ | |
45 | 10 | labelWidth: 100, |
46 | 11 | schemas: eventSchemas, |
47 | 12 | actionColOptions: { |
... | ... | @@ -52,70 +17,18 @@ |
52 | 17 | showActionButtonGroup: false, |
53 | 18 | }); |
54 | 19 | |
55 | - const getData = (d, f) => { | |
56 | - if (f == 'output') { | |
57 | - if (d.id !== null) { | |
58 | - const findIndex = unref(outputParamData).findIndex((f) => f.id == d.id); | |
59 | - if (findIndex !== -1) unref(outputParamData).splice(findIndex, 1, d); | |
60 | - } else { | |
61 | - unref(outputParamData).push({ ...d, id: buildUUID() }); | |
62 | - } | |
63 | - } | |
64 | - }; | |
65 | - | |
66 | - const handleAddOutParam = () => { | |
67 | - openModal(true, { | |
68 | - isUpdate: true, | |
69 | - flag: 'output', | |
70 | - excludeStruct: false, | |
71 | - }); | |
72 | - }; | |
73 | - | |
74 | - const deleteOutParItem = (index) => { | |
75 | - unref(outputParamData).splice(index, 1); | |
76 | - }; | |
77 | - | |
78 | - const editOutParItem = (item) => { | |
79 | - openModal(true, { | |
80 | - isUpdate: false, | |
81 | - record: item, | |
82 | - flag: 'output', | |
83 | - excludeStruct: false, | |
84 | - }); | |
85 | - }; | |
86 | - | |
87 | 20 | //回显数据 |
88 | - const setFormData = (v) => { | |
89 | - setFieldsValue(v[0]); | |
90 | - const { outputData } = v[0]; | |
91 | - if (outputData !== undefined) { | |
92 | - outputParamData.value = [...new Array(outputData.length).keys()]; | |
93 | - outputParamData.value = outputData; | |
94 | - } | |
95 | - }; | |
96 | - | |
97 | - //获取数据 | |
98 | - const getStructList = () => { | |
99 | - const val = unref(dynamicBindRef.outputParamItemRef)?.map((item: any) => item.getFormData()); | |
100 | - return val; | |
101 | - }; | |
21 | + const setFormData = () => {}; | |
102 | 22 | |
103 | 23 | async function getFormData() { |
104 | - const values = await validate(); | |
24 | + const values = (await validate()) as ModelOfMatterParams; | |
105 | 25 | if (!values) return; |
106 | - const outputData = getStructList(); | |
107 | - const { outputParam, ...value } = values; | |
108 | - console.log(outputParam); | |
109 | - return { | |
110 | - ...value, | |
111 | - ...{ outputData }, | |
112 | - }; | |
26 | + console.log(values); | |
113 | 27 | } |
114 | 28 | |
115 | 29 | //清空数据 |
116 | 30 | const resetFormData = () => { |
117 | 31 | resetFields(); |
118 | - outputParamData.value = []; | |
119 | 32 | }; |
120 | 33 | |
121 | 34 | defineExpose({ | ... | ... |
1 | 1 | <template> |
2 | - <div> | |
3 | - <BasicForm @register="register"> | |
4 | - <template #inputParamSlot> | |
5 | - <div> | |
6 | - <template v-for="(item, index) in inputParamData" :key="item.id"> | |
7 | - <span style="display: none">{{ item }}</span> | |
8 | - <InputParamItem | |
9 | - :title="item.name" | |
10 | - :item="item" | |
11 | - class="mt-4" | |
12 | - :index="index" | |
13 | - :ref="dynamicBindRef.inputParamItemRef" | |
14 | - @delete="deleteInParItem" | |
15 | - @edit="editInParItem" | |
16 | - /> | |
17 | - </template> | |
18 | - <div style="display: flex" :class="{ 'mt-2': inputParamData.length > 0 }"> | |
19 | - <span class="add-style">+</span> | |
20 | - <span class="add-style" @click="handleAddInParam">增加参数</span> | |
21 | - </div> | |
22 | - </div> | |
23 | - </template> | |
24 | - <template #outputParamSlot> | |
25 | - <div> | |
26 | - <template v-for="(item, index) in outputParamData" :key="item.id"> | |
27 | - <span style="display: none">{{ item }}</span> | |
28 | - <InputParamItem | |
29 | - :title="item.name" | |
30 | - :item="item" | |
31 | - class="mt-4" | |
32 | - :index="index" | |
33 | - :ref="dynamicBindRef.outputParamItemRef" | |
34 | - @delete="deleteOutParItem" | |
35 | - @edit="editOutParItem" | |
36 | - /> | |
37 | - </template> | |
38 | - <div style="display: flex" :class="{ 'mt-2': outputParamData.length > 0 }"> | |
39 | - <span class="add-style">+</span> | |
40 | - <span class="add-style" @click="handleAddOutParam">增加参数</span> | |
41 | - </div> | |
42 | - </div> | |
43 | - </template> | |
44 | - </BasicForm> | |
45 | - <AddParamsModal @register="registerModal" @data="getData" /> | |
46 | - </div> | |
2 | + <BasicForm @register="register" /> | |
47 | 3 | </template> |
48 | 4 | <script lang="ts" setup> |
49 | - import { ref, unref } from 'vue'; | |
50 | 5 | import { BasicForm, useForm } from '/@/components/Form'; |
51 | 6 | import { serviceSchemas } from './config'; |
52 | - import { useModal } from '/@/components/Modal'; | |
53 | - import InputParamItem from './components/InputParamItem.vue'; | |
54 | - import AddParamsModal from './components/AddParamsModal.vue'; | |
55 | - import { buildUUID } from '/@/utils/uuid'; | |
56 | - | |
57 | - const inputParamData: any = ref([]); | |
58 | - const outputParamData: any = ref([]); | |
59 | - const dynamicBindRef = { | |
60 | - inputParamItemRef: ref([]), | |
61 | - outputParamItemRef: ref([]), | |
62 | - }; | |
63 | - | |
64 | - const [registerModal, { openModal }] = useModal(); | |
65 | - | |
66 | - const [register, { validate, setFieldsValue, resetFields }] = useForm({ | |
7 | + import { ModelOfMatterParams } from '/@/api/device/model/modelOfMatterModel'; | |
8 | + import { FunctionType } from './config'; | |
9 | + const [register, { validate, resetFields }] = useForm({ | |
67 | 10 | labelWidth: 100, |
68 | 11 | schemas: serviceSchemas, |
69 | 12 | actionColOptions: { |
... | ... | @@ -74,111 +17,21 @@ |
74 | 17 | showActionButtonGroup: false, |
75 | 18 | }); |
76 | 19 | |
77 | - const getData = (d, f) => { | |
78 | - if (f == 'input') { | |
79 | - if (d.id !== null) { | |
80 | - const findIndex = unref(inputParamData).findIndex((f) => f.id == d.id); | |
81 | - if (findIndex !== -1) unref(inputParamData).splice(findIndex, 1, d); | |
82 | - } else { | |
83 | - unref(inputParamData).push({ ...d, id: buildUUID() }); | |
84 | - } | |
85 | - } else { | |
86 | - if (d.id !== null) { | |
87 | - const findIndex = unref(outputParamData).findIndex((f) => f.id == d.id); | |
88 | - if (findIndex !== -1) unref(outputParamData).splice(findIndex, 1, d); | |
89 | - } else { | |
90 | - unref(outputParamData).push({ ...d, id: buildUUID() }); | |
91 | - } | |
92 | - } | |
93 | - }; | |
94 | - | |
95 | - const handleAddInParam = () => { | |
96 | - openModal(true, { | |
97 | - isUpdate: true, | |
98 | - flag: 'input', | |
99 | - excludeStruct: false, | |
100 | - }); | |
101 | - }; | |
102 | - | |
103 | - const deleteInParItem = (index) => { | |
104 | - unref(inputParamData).splice(index, 1); | |
105 | - }; | |
106 | - | |
107 | - const editInParItem = (item) => { | |
108 | - openModal(true, { | |
109 | - isUpdate: false, | |
110 | - record: item, | |
111 | - flag: 'input', | |
112 | - excludeStruct: false, | |
113 | - }); | |
114 | - }; | |
115 | - | |
116 | - const handleAddOutParam = () => { | |
117 | - openModal(true, { | |
118 | - isUpdate: true, | |
119 | - flag: 'output', | |
120 | - excludeStruct: false, | |
121 | - }); | |
122 | - }; | |
123 | - | |
124 | - const deleteOutParItem = (index) => { | |
125 | - unref(outputParamData).splice(index, 1); | |
126 | - }; | |
127 | - | |
128 | - const editOutParItem = (item) => { | |
129 | - openModal(true, { | |
130 | - isUpdate: false, | |
131 | - record: item, | |
132 | - flag: 'output', | |
133 | - excludeStruct: false, | |
134 | - }); | |
135 | - }; | |
136 | - | |
137 | 20 | //回显数据 |
138 | - const setFormData = (v) => { | |
139 | - setFieldsValue(v[0]); | |
140 | - const { inputParams, outputParams } = v[0]; | |
141 | - if (outputParams !== undefined) { | |
142 | - outputParamData.value = [...new Array(outputParams.length).keys()]; | |
143 | - outputParamData.value = outputParams; | |
144 | - } | |
145 | - if (inputParams !== undefined) { | |
146 | - inputParamData.value = [...new Array(inputParams.length).keys()]; | |
147 | - inputParamData.value = inputParams; | |
148 | - } | |
149 | - }; | |
150 | - | |
151 | - const getInputStructList = () => { | |
152 | - const val = unref(dynamicBindRef.inputParamItemRef)?.map((item: any) => item.getFormData()); | |
153 | - return val; | |
154 | - }; | |
155 | - | |
156 | - const getOutputStructList = () => { | |
157 | - const val = unref(dynamicBindRef.outputParamItemRef)?.map((item: any) => item.getFormData()); | |
158 | - return val; | |
159 | - }; | |
21 | + const setFormData = () => {}; | |
160 | 22 | |
161 | 23 | //获取数据 |
162 | 24 | async function getFormData() { |
163 | - const values = await validate(); | |
25 | + const values = (await validate()) as ModelOfMatterParams; | |
164 | 26 | if (!values) return; |
165 | - const inputParams = getInputStructList(); | |
166 | - const outputParams = getOutputStructList(); | |
167 | - const { inputParam, outputParam, ...value } = values; | |
168 | - console.log(inputParam); | |
169 | - console.log(outputParam); | |
170 | - return { | |
171 | - ...value, | |
172 | - ...{ inputParams }, | |
173 | - ...{ outputParams }, | |
174 | - }; | |
27 | + values.functionType = FunctionType.SERVICE; | |
28 | + console.log(values); | |
29 | + return values; | |
175 | 30 | } |
176 | 31 | |
177 | 32 | //清空数据 |
178 | 33 | const resetFormData = () => { |
179 | 34 | resetFields(); |
180 | - inputParamData.value = []; | |
181 | - outputParamData.value = []; | |
182 | 35 | }; |
183 | 36 | |
184 | 37 | defineExpose({ | ... | ... |
... | ... | @@ -18,9 +18,10 @@ export enum FormField { |
18 | 18 | BOOL_OPEN = 'boolOpen', |
19 | 19 | LENGTH = 'length', |
20 | 20 | R_W_FLAG = 'rwFlag', |
21 | - SPECS_LIST = 'specsList', | |
21 | + SPECS_LIST = 'specs', | |
22 | 22 | CALL_TYPE = 'callType', |
23 | - INPUT_PARAM = 'inputParam', | |
23 | + INPUT_PARAM = 'inputData', | |
24 | + OUTPUT_PARAM = 'outputData', | |
24 | 25 | EVENT_TYPE = 'eventType', |
25 | 26 | |
26 | 27 | STRUCT = 'struct', |
... | ... | @@ -130,15 +131,17 @@ export const serviceSchemas: FormSchema[] = [ |
130 | 131 | { |
131 | 132 | field: FormField.INPUT_PARAM, |
132 | 133 | label: '输入参数', |
133 | - component: 'Input', | |
134 | - slot: 'inputParamSlot', | |
134 | + component: 'StructForm', | |
135 | + valueField: 'value', | |
136 | + changeEvent: 'update:value', | |
135 | 137 | colProps: { span: 24 }, |
136 | 138 | }, |
137 | 139 | { |
138 | - field: FormField.SPECS_LIST, | |
140 | + field: FormField.OUTPUT_PARAM, | |
139 | 141 | label: '输出参数', |
140 | - component: 'Input', | |
141 | - slot: 'outputParamSlot', | |
142 | + component: 'StructForm', | |
143 | + valueField: 'value', | |
144 | + changeEvent: 'update:value', | |
142 | 145 | colProps: { span: 24 }, |
143 | 146 | }, |
144 | 147 | { |
... | ... | @@ -200,10 +203,11 @@ export const eventSchemas: FormSchema[] = [ |
200 | 203 | }, |
201 | 204 | }, |
202 | 205 | { |
203 | - field: FormField.SPECS_LIST, | |
206 | + field: FormField.OUTPUT_PARAM, | |
204 | 207 | label: '输出参数', |
205 | - component: 'Input', | |
206 | - slot: 'outputParamSlot', | |
208 | + component: 'StructForm', | |
209 | + valueField: 'value', | |
210 | + changeEvent: 'update:value', | |
207 | 211 | colProps: { span: 24 }, |
208 | 212 | }, |
209 | 213 | { | ... | ... |