Commit 5189c225b5ba9151e48dfe968bd88535fb2d3566

Authored by ww
1 parent 9177697d

fix(dynamic request): 修复动态请求header回显

  1 +<script lang="ts" setup>
  2 +import { PublicInterfaceRecord } from '@/api/external/dynamicRequest/model';
  3 +import { RequestParams } from '@/enums/httpEnum';
  4 +import { ExtraRequestConfigType } from '@/store/external/modules/extraComponentInfo.d';
  5 +import { FormItemInst, NDatePicker, NForm, NFormItem, NInput, NSelect, NTreeSelect } from 'naive-ui'
  6 +import { computed, ref, unref, watch } from 'vue';
  7 +import { ComponentType, useDynamicPublicForm } from './useDynamicPublicForm';
  8 +import { transferData } from './utils';
  9 +
  10 +const props = defineProps<{
  11 + publicInterfaceRecord: PublicInterfaceRecord
  12 +}>()
  13 +
  14 +const componentMap: { [key in ComponentType]?: any } = {
  15 + [ComponentType.SELECT_TREE]: NTreeSelect,
  16 + [ComponentType.SELECT]: NSelect,
  17 + [ComponentType.INPUT]: NInput,
  18 + [ComponentType.DATE_PICKER]: NDatePicker
  19 +}
  20 +
  21 +const getPublicInterfaceRecord = computed(() => {
  22 + return props.publicInterfaceRecord
  23 +})
  24 +const dynamicFormItemEl = ref<FormItemInst[]>()
  25 +
  26 +const { getDynamicFormSchemas, validFlag, getValue, createForm, clearParams, setDynamicFormValue } = useDynamicPublicForm(getPublicInterfaceRecord)
  27 +
  28 +const getConfigurationData = () => {
  29 + return transferData(unref(getPublicInterfaceRecord), unref(getValue))
  30 +}
  31 +
  32 +const validate = async () => {
  33 + for (const item of unref(dynamicFormItemEl) || []) {
  34 + await item.validate()
  35 + }
  36 + return unref(validFlag)
  37 +}
  38 +const setConfigurationData = async (requestParams: RequestParams) => {
  39 + setDynamicFormValue(requestParams)
  40 +}
  41 +
  42 +watch(
  43 + () => props.publicInterfaceRecord,
  44 + (newValue) => {
  45 + if (newValue) {
  46 + clearParams()
  47 + createForm()
  48 + }
  49 + }
  50 +)
  51 +
  52 +defineExpose({
  53 + validate,
  54 + getConfigurationData,
  55 + setConfigurationData,
  56 +})
  57 +
  58 +</script>
  59 +
  60 +<template>
  61 + <NForm>
  62 + <template v-for="item in getDynamicFormSchemas" :key="item.key">
  63 + <NFormItem ref="dynamicFormItemEl" :required="item.required" :label="item.name" :rule="item.rules">
  64 + <component :is="componentMap[item.component]" v-bind="item.props" clearable />
  65 + </NFormItem>
  66 + </template>
  67 + </NForm>
  68 +</template>
src/views/chart/ContentConfigurations/components/ChartData/external/components/DynamicForm/useDynamicPublicForm.ts renamed from src/views/chart/ContentConfigurations/components/ChartData/external/components/PublicInterfaceForm/useDynamicPublicForm.ts
@@ -46,7 +46,6 @@ export const useDynamicPublicForm = (publicInterfaceRef: Ref<PublicInterfaceReco @@ -46,7 +46,6 @@ export const useDynamicPublicForm = (publicInterfaceRef: Ref<PublicInterfaceReco
46 const getParams = computed(() => { 46 const getParams = computed(() => {
47 let params = (publicInterfaceRef.value.requestParams as unknown as RequestParams).Params || [] 47 let params = (publicInterfaceRef.value.requestParams as unknown as RequestParams).Params || []
48 if (!Array.isArray(params)) params = [] 48 if (!Array.isArray(params)) params = []
49 - console.log(params)  
50 return params 49 return params
51 }) 50 })
52 51
@@ -131,7 +130,7 @@ export const useDynamicPublicForm = (publicInterfaceRef: Ref<PublicInterfaceReco @@ -131,7 +130,7 @@ export const useDynamicPublicForm = (publicInterfaceRef: Ref<PublicInterfaceReco
131 if (Reflect.has(value, BuiltInVariable.DATE_RANGE)) { 130 if (Reflect.has(value, BuiltInVariable.DATE_RANGE)) {
132 const fieldMapping = unref(getParams).find(item => item.key === BuiltInVariable.DATE_RANGE) 131 const fieldMapping = unref(getParams).find(item => item.key === BuiltInVariable.DATE_RANGE)
133 const [start, end] = ((fieldMapping || {}).value || '').split(GROUP_SEPARATOR) 132 const [start, end] = ((fieldMapping || {}).value || '').split(GROUP_SEPARATOR)
134 - const [startValue, endValue] = value[BuiltInVariable.DATE_RANGE] 133 + const [startValue, endValue] = value[BuiltInVariable.DATE_RANGE] || []
135 value[start] = startValue 134 value[start] = startValue
136 value[end] = endValue 135 value[end] = endValue
137 136
@@ -333,17 +332,23 @@ export const useDynamicPublicForm = (publicInterfaceRef: Ref<PublicInterfaceReco @@ -333,17 +332,23 @@ export const useDynamicPublicForm = (publicInterfaceRef: Ref<PublicInterfaceReco
333 const splitKeys = value ? value.split(GROUP_SEPARATOR) : key.split(GROUP_SEPARATOR) 332 const splitKeys = value ? value.split(GROUP_SEPARATOR) : key.split(GROUP_SEPARATOR)
334 if (isDateComponent(key as BuiltInVariable)) { 333 if (isDateComponent(key as BuiltInVariable)) {
335 if (key as BuiltInVariable === BuiltInVariable.DATE_FIXED) { 334 if (key as BuiltInVariable === BuiltInVariable.DATE_FIXED) {
336 - params[key] = Params[splitKeys[0]] 335 + params[key] = Params[splitKeys[0]] || null
337 continue 336 continue
338 } 337 }
339 - params[key] = [Params[splitKeys[0]], Params[splitKeys[1]]] 338 + const value = [Params[splitKeys[0]], Params[splitKeys[1]]]
  339 + params[key] = value.every(Boolean) ? value : null
340 continue 340 continue
341 } 341 }
342 for (const temp of splitKeys) { 342 for (const temp of splitKeys) {
343 params[temp] = Params[temp] 343 params[temp] = Params[temp]
344 } 344 }
345 - } 345 + }
  346 + }
346 347
  348 + const clearParams = () => {
  349 + Object.keys(params).forEach(key => {
  350 + Reflect.deleteProperty(params, key)
  351 + })
347 } 352 }
348 353
349 const setDynamicFormValue = (requestParams: RequestConfigType['requestParams']) => { 354 const setDynamicFormValue = (requestParams: RequestConfigType['requestParams']) => {
@@ -364,7 +369,8 @@ export const useDynamicPublicForm = (publicInterfaceRef: Ref<PublicInterfaceReco @@ -364,7 +369,8 @@ export const useDynamicPublicForm = (publicInterfaceRef: Ref<PublicInterfaceReco
364 getValue, 369 getValue,
365 getDynamicFormSchemas, 370 getDynamicFormSchemas,
366 setDynamicFormValue, 371 setDynamicFormValue,
367 - createForm 372 + createForm,
  373 + clearParams
368 } 374 }
369 } 375 }
370 376
src/views/chart/ContentConfigurations/components/ChartData/external/components/DynamicForm/utils.ts renamed from src/views/chart/ContentConfigurations/components/ChartData/external/components/PublicInterfaceForm/utils.ts
@@ -3,9 +3,10 @@ import { RequestDataTypeEnum, RequestParams } from "@/enums/httpEnum" @@ -3,9 +3,10 @@ import { RequestDataTypeEnum, RequestParams } from "@/enums/httpEnum"
3 import { ExternalRequestType } from "@/store/external/modules/extraComponentInfo.d" 3 import { ExternalRequestType } from "@/store/external/modules/extraComponentInfo.d"
4 import { unref } from "vue" 4 import { unref } from "vue"
5 5
6 -export const transferData = (publicInterfaceRecord: PublicInterfaceRecord, requestParams: RequestParams, fillParams: Recordable) => {  
7 - const { requestContentType, requestHttpType, id, requestUrl, requestParamsBodyType, requestOriginUrl } = publicInterfaceRecord  
8 - const { Header, Body } = requestParams 6 +export const transferData = (publicInterfaceRecord: PublicInterfaceRecord, fillParams: Recordable, fillBody: Recordable = {}) => {
  7 + const { requestContentType, requestHttpType, id, requestUrl, requestOriginUrl, requestParams } = publicInterfaceRecord
  8 + const { Header, Body } = requestParams as RequestParams
  9 + const { requestParamsBodyType } = Body as Recordable
9 return { 10 return {
10 requestDataPondId: id, 11 requestDataPondId: id,
11 // requestInterval 12 // requestInterval
@@ -28,7 +29,7 @@ export const transferData = (publicInterfaceRecord: PublicInterfaceRecord, reque @@ -28,7 +29,7 @@ export const transferData = (publicInterfaceRecord: PublicInterfaceRecord, reque
28 // requestIntervalUnit 29 // requestIntervalUnit
29 requestParams: { 30 requestParams: {
30 Header, 31 Header,
31 - Body, 32 + Body: unref(fillBody),
32 Params: unref(fillParams) 33 Params: unref(fillParams)
33 } 34 }
34 35
@@ -4,21 +4,14 @@ import { PublicInterfaceRecord, PublicInterfaceStateEnum } from '@/api/external/ @@ -4,21 +4,14 @@ import { PublicInterfaceRecord, PublicInterfaceStateEnum } from '@/api/external/
4 import { SettingItem, SettingItemBox } from '@/components/Pages/ChartItemSetting'; 4 import { SettingItem, SettingItemBox } from '@/components/Pages/ChartItemSetting';
5 import { RequestContentTypeEnum, RequestContentTypeNameEnum } from '@/enums/external/httpEnum'; 5 import { RequestContentTypeEnum, RequestContentTypeNameEnum } from '@/enums/external/httpEnum';
6 import { RequestBodyEnum, RequestHttpEnum, RequestHttpIntervalEnum, RequestParams, RequestParamsTypeEnum } from '@/enums/httpEnum'; 6 import { RequestBodyEnum, RequestHttpEnum, RequestHttpIntervalEnum, RequestParams, RequestParamsTypeEnum } from '@/enums/httpEnum';
7 -import { NForm, NCard, NDatePicker, NEmpty, NFormItem, NInput, NInputGroup, NInputNumber, NScrollbar, NSelect, NTabPane, NTabs, NTreeSelect, SelectOption, FormItemInst } from 'naive-ui';  
8 -import { ref, computed, unref } from 'vue' 7 +import { NCard, NEmpty, NInputGroup, NInputNumber, NScrollbar, NSelect, NTabPane, NTabs, SelectOption } from 'naive-ui';
  8 +import { ref, computed, unref, nextTick } from 'vue'
9 import { selectTimeOptions, selectTypeOptions } from '../../../index.d'; 9 import { selectTimeOptions, selectTypeOptions } from '../../../index.d';
10 import ParamsTable from '../RequestModal/ParamsTable.vue'; 10 import ParamsTable from '../RequestModal/ParamsTable.vue';
11 import RequestBody from '../RequestModal/RequestBody.vue'; 11 import RequestBody from '../RequestModal/RequestBody.vue';
12 -import { ComponentType, useDynamicPublicForm } from './useDynamicPublicForm';  
13 -import { transferData } from './utils';  
14 import { ExtraRequestConfigType } from '@/store/external/modules/extraComponentInfo.d'; 12 import { ExtraRequestConfigType } from '@/store/external/modules/extraComponentInfo.d';
  13 +import { DynamicForm } from '../DynamicForm';
15 14
16 -const componentMap: { [key in ComponentType]?: any } = {  
17 - [ComponentType.SELECT_TREE]: NTreeSelect,  
18 - [ComponentType.SELECT]: NSelect,  
19 - [ComponentType.INPUT]: NInput,  
20 - [ComponentType.DATE_PICKER]: NDatePicker  
21 -}  
22 const publicInterfaceList = ref<PublicInterfaceRecord[]>([]) 15 const publicInterfaceList = ref<PublicInterfaceRecord[]>([])
23 16
24 const selectedPublicInterface = ref<string>() 17 const selectedPublicInterface = ref<string>()
@@ -31,7 +24,7 @@ const toJSON = (string: string) => { @@ -31,7 +24,7 @@ const toJSON = (string: string) => {
31 } 24 }
32 } 25 }
33 26
34 -const getSelectedInterface = computed(() => { 27 +const getSelectedInterface = computed<PublicInterfaceRecord>(() => {
35 const record = unref(publicInterfaceList).find(item => item.id === unref(selectedPublicInterface))! || {} 28 const record = unref(publicInterfaceList).find(item => item.id === unref(selectedPublicInterface))! || {}
36 const _record = JSON.parse(JSON.stringify(record)) 29 const _record = JSON.parse(JSON.stringify(record))
37 _record.requestParams = toJSON(_record.requestParams) 30 _record.requestParams = toJSON(_record.requestParams)
@@ -48,12 +41,6 @@ const handleFilter = (query: string, option: SelectOption) => { @@ -48,12 +41,6 @@ const handleFilter = (query: string, option: SelectOption) => {
48 return ((option as Recordable).interfaceName).includes(query) 41 return ((option as Recordable).interfaceName).includes(query)
49 } 42 }
50 43
51 -const { getDynamicFormSchemas, getValue, createForm, validFlag, setDynamicFormValue } = useDynamicPublicForm(getSelectedInterface)  
52 -  
53 -const getConfigurationData = () => {  
54 - const value = transferData(unref(getSelectedInterface), unref(getSelectedInterface).requestParams as unknown as RequestParams, unref(getValue))  
55 - return value  
56 -}  
57 44
58 const requestHttpTypeRef = ref<RequestHttpEnum>() 45 const requestHttpTypeRef = ref<RequestHttpEnum>()
59 46
@@ -65,16 +52,17 @@ const requestContentTypeRef = ref<RequestContentTypeEnum>() @@ -65,16 +52,17 @@ const requestContentTypeRef = ref<RequestContentTypeEnum>()
65 52
66 const requestParamsTypeRef = ref<RequestParamsTypeEnum>(RequestParamsTypeEnum.PARAMS) 53 const requestParamsTypeRef = ref<RequestParamsTypeEnum>(RequestParamsTypeEnum.PARAMS)
67 54
68 -const requestParamsRef = ref<RequestParams>({ Body: { [RequestBodyEnum.FORM_DATA]: {}, [RequestBodyEnum.JSON]: '', [RequestBodyEnum.XML]: '', [RequestBodyEnum.X_WWW_FORM_URLENCODED]: {} }, Header: {}, Params: {} }) 55 +const requestBodyRef = ref<RequestParams>({ Body: { [RequestBodyEnum.FORM_DATA]: {}, [RequestBodyEnum.JSON]: '', [RequestBodyEnum.XML]: '', [RequestBodyEnum.X_WWW_FORM_URLENCODED]: {} }, Header: {}, Params: {} })
69 56
70 const requestParamsBodyTypeRef = ref<RequestBodyEnum>(RequestBodyEnum.X_WWW_FORM_URLENCODED) 57 const requestParamsBodyTypeRef = ref<RequestBodyEnum>(RequestBodyEnum.X_WWW_FORM_URLENCODED)
71 58
72 const headerRef = ref() 59 const headerRef = ref()
73 60
74 -const dynamicFormItemEl = ref<FormItemInst[]>() 61 +
  62 +const paramsDynamicFormEl = ref<InstanceType<typeof DynamicForm>>()
  63 +const socketDynamicFormEl = ref<InstanceType<typeof DynamicForm>>()
75 64
76 const handleSelectedInterfaceChange = (value: string, option: PublicInterfaceRecord) => { 65 const handleSelectedInterfaceChange = (value: string, option: PublicInterfaceRecord) => {
77 - createForm()  
78 requestContentTypeRef.value = option.requestContentType as RequestContentTypeEnum 66 requestContentTypeRef.value = option.requestContentType as RequestContentTypeEnum
79 requestHttpTypeRef.value = option.requestHttpType as RequestHttpEnum 67 requestHttpTypeRef.value = option.requestHttpType as RequestHttpEnum
80 } 68 }
@@ -83,6 +71,22 @@ const getGetRequestTypeName = (key: RequestContentTypeEnum) => { @@ -83,6 +71,22 @@ const getGetRequestTypeName = (key: RequestContentTypeEnum) => {
83 return RequestContentTypeNameEnum[RequestContentTypeEnum[key] as keyof typeof RequestContentTypeEnum] 71 return RequestContentTypeNameEnum[RequestContentTypeEnum[key] as keyof typeof RequestContentTypeEnum]
84 } 72 }
85 73
  74 +const validate = async () => {
  75 + if (unref(paramsDynamicFormEl)) return await unref(paramsDynamicFormEl)?.validate()
  76 + if (unref(socketDynamicFormEl)) return await unref(socketDynamicFormEl)?.validate()
  77 +}
  78 +
  79 +const setDynamicFormValue = (requestParams: RequestParams) => {
  80 + if (unref(paramsDynamicFormEl)) unref(paramsDynamicFormEl)?.setConfigurationData(requestParams)
  81 + if (unref(socketDynamicFormEl)) unref(socketDynamicFormEl)?.setConfigurationData(requestParams)
  82 +}
  83 +
  84 +
  85 +const getConfigurationData = () => {
  86 + if (unref(paramsDynamicFormEl)) return unref(paramsDynamicFormEl)?.getConfigurationData()
  87 + if (unref(socketDynamicFormEl)) return unref(socketDynamicFormEl)?.getConfigurationData()
  88 +}
  89 +
86 const setConfigurationData = async (request: ExtraRequestConfigType) => { 90 const setConfigurationData = async (request: ExtraRequestConfigType) => {
87 await getPublicInterfaceList() 91 await getPublicInterfaceList()
88 const { requestDataPondId, requestParams, requestParamsBodyType, requestContentType, requestHttpType } = request 92 const { requestDataPondId, requestParams, requestParamsBodyType, requestContentType, requestHttpType } = request
@@ -92,19 +96,11 @@ const setConfigurationData = async (request: ExtraRequestConfigType) => { @@ -92,19 +96,11 @@ const setConfigurationData = async (request: ExtraRequestConfigType) => {
92 requestHttpTypeRef.value = requestHttpType 96 requestHttpTypeRef.value = requestHttpType
93 headerRef.value = Header 97 headerRef.value = Header
94 requestParamsBodyTypeRef.value = requestParamsBodyType 98 requestParamsBodyTypeRef.value = requestParamsBodyType
95 - requestParamsRef.value = requestParams 99 + requestBodyRef.value = requestParams
  100 + await nextTick()
96 setDynamicFormValue(requestParams) 101 setDynamicFormValue(requestParams)
97 } 102 }
98 103
99 -  
100 -const validate = async () => {  
101 - for (const item of unref(dynamicFormItemEl) || []) {  
102 - await item.validate()  
103 - }  
104 - return unref(validFlag)  
105 -}  
106 -  
107 -  
108 defineExpose({ 104 defineExpose({
109 getConfigurationData, 105 getConfigurationData,
110 setConfigurationData, 106 setConfigurationData,
@@ -159,55 +155,26 @@ defineExpose({ @@ -159,55 +155,26 @@ defineExpose({
159 155
160 <SettingItemBox v-if="requestContentTypeRef === RequestContentTypeEnum.DEFAULT" 156 <SettingItemBox v-if="requestContentTypeRef === RequestContentTypeEnum.DEFAULT"
161 :item-right-style="{ gridTemplateColumns: '7fr 1fr' }"> 157 :item-right-style="{ gridTemplateColumns: '7fr 1fr' }">
162 - <NCard v-if="requestParamsTypeRef === RequestParamsTypeEnum.PARAMS" class="dynamic-form"> 158 + <NCard v-show="requestParamsTypeRef === RequestParamsTypeEnum.PARAMS" class="dynamic-form">
163 <NScrollbar style="max-height: 400px; box-sizing: border-box;"> 159 <NScrollbar style="max-height: 400px; box-sizing: border-box;">
164 - <NForm>  
165 - <template v-for="item in getDynamicFormSchemas" :key="item.key">  
166 - <NFormItem ref="dynamicFormItemEl" :required="item.required" :label="item.name" :rule="item.rules">  
167 - <component :is="componentMap[item.component]" v-bind="item.props" clearable />  
168 - </NFormItem>  
169 - </template>  
170 - </NForm>  
171 - <NEmpty v-if="!selectedPublicInterface || !getDynamicFormSchemas.length" description="请选择公共接口" /> 160 + <DynamicForm ref="paramsDynamicFormEl" :public-interface-record="getSelectedInterface" />
  161 + <NEmpty v-if="!selectedPublicInterface" description="请选择公共接口" />
172 </NScrollbar> 162 </NScrollbar>
173 </NCard> 163 </NCard>
174 164
175 - <!-- <section v-if="requestParamsTypeRef === RequestParamsTypeEnum.PARAMS">  
176 - <NCard>  
177 - <NSpace vertical>  
178 - <NTag type="info">  
179 - <span class="func-keyword">function</span>&nbsp;&nbsp;filter(res)&nbsp;&nbsp;{  
180 - </NTag>  
181 - <MonacoEditor v-model:modelValue="filter" width="380px" height="300px" language="javascript" />  
182 - <NTag type="info">}</NTag>  
183 - </NSpace>  
184 - </NCard>  
185 - <NCard style="margin-top: 20px;">  
186 - <NText>转换结果:</NText>  
187 - <section>  
188 - <NText>{{ params }}</NText>  
189 - </section>  
190 - </NCard>  
191 - </section> -->  
192 -  
193 - <RequestBody v-if="requestParamsTypeRef === RequestParamsTypeEnum.BODY"  
194 - v-model:request-params-body-type="requestParamsBodyTypeRef" v-model:value="requestParamsRef" />  
195 -  
196 - <ParamsTable v-if="requestParamsTypeRef === RequestParamsTypeEnum.HEADER" v-model:value="headerRef" /> 165 + <RequestBody v-show="requestParamsTypeRef === RequestParamsTypeEnum.BODY"
  166 + v-model:request-params-body-type="requestParamsBodyTypeRef" v-model:value="requestBodyRef" />
  167 +
  168 + <ParamsTable v-show="requestParamsTypeRef === RequestParamsTypeEnum.HEADER" v-model:value="headerRef"
  169 + :disabled="true" />
197 170
198 </SettingItemBox> 171 </SettingItemBox>
199 172
200 <SettingItemBox v-if="requestContentTypeRef === RequestContentTypeEnum.WEB_SOCKET"> 173 <SettingItemBox v-if="requestContentTypeRef === RequestContentTypeEnum.WEB_SOCKET">
201 <NCard v-if="requestParamsTypeRef === RequestParamsTypeEnum.PARAMS" class="dynamic-form"> 174 <NCard v-if="requestParamsTypeRef === RequestParamsTypeEnum.PARAMS" class="dynamic-form">
202 <NScrollbar style="max-height: 400px; box-sizing: border-box;"> 175 <NScrollbar style="max-height: 400px; box-sizing: border-box;">
203 - <NForm>  
204 - <template v-for="item in getDynamicFormSchemas" :key="item.key">  
205 - <NFormItem ref="dynamicFormItemEl" :required="item.required" :label="item.name" :rule="item.rules">  
206 - <component :is="componentMap[item.component]" v-bind="item.props" clearable />  
207 - </NFormItem>  
208 - </template>  
209 - </NForm>  
210 - <NEmpty v-if="!selectedPublicInterface || !getDynamicFormSchemas.length" description="请选择公共接口" /> 176 + <DynamicForm ref="socketDynamicFormEl" :public-interface-record="getSelectedInterface" />
  177 + <NEmpty v-if="!selectedPublicInterface" description="请选择公共接口" />
211 </NScrollbar> 178 </NScrollbar>
212 </NCard> 179 </NCard>
213 </SettingItemBox> 180 </SettingItemBox>
@@ -125,6 +125,13 @@ const props = withDefaults( @@ -125,6 +125,13 @@ const props = withDefaults(
125 } 125 }
126 ) 126 )
127 127
  128 +watch(
  129 + () => props.value,
  130 + () => {
  131 + console.log(props.value)
  132 + }
  133 +)
  134 +
128 const emit = defineEmits(['update:value']) 135 const emit = defineEmits(['update:value'])
129 136
130 const createNewRow = () => { 137 const createNewRow = () => {
1 <script lang="ts" setup> 1 <script lang="ts" setup>
2 import { MonacoEditor } from '@/components/Pages/MonacoEditor'; 2 import { MonacoEditor } from '@/components/Pages/MonacoEditor';
3 import { RequestBodyEnum, RequestBodyEnumList, RequestParams } from '@/enums/httpEnum'; 3 import { RequestBodyEnum, RequestBodyEnumList, RequestParams } from '@/enums/httpEnum';
4 -import { NCard } from 'naive-ui'; 4 +import { NCard } from 'naive-ui';
5 import ParamsTable from './ParamsTable.vue'; 5 import ParamsTable from './ParamsTable.vue';
6 6
7 defineProps<{ 7 defineProps<{
@@ -12,14 +12,15 @@ defineProps<{ @@ -12,14 +12,15 @@ defineProps<{
12 const emit = defineEmits(['update:requestParamsBodyType']) 12 const emit = defineEmits(['update:requestParamsBodyType'])
13 13
14 const handleSyncRequestParamsBodyType = (value: RequestBodyEnum) => { 14 const handleSyncRequestParamsBodyType = (value: RequestBodyEnum) => {
15 - emit('update:requestParamsBodyType', value) 15 + emit('update:requestParamsBodyType', value || RequestBodyEnum.X_WWW_FORM_URLENCODED)
16 } 16 }
17 17
18 </script> 18 </script>
19 19
20 <template> 20 <template>
21 <section> 21 <section>
22 - <NRadioGroup v-model:value="requestParamsBodyType" @update:value="handleSyncRequestParamsBodyType"> 22 + <NRadioGroup :value="requestParamsBodyType || RequestBodyEnum.X_WWW_FORM_URLENCODED"
  23 + @update:value="handleSyncRequestParamsBodyType">
23 <NSpace> 24 <NSpace>
24 <NRadio v-for="item in RequestBodyEnumList" :key="item" :value="item"> 25 <NRadio v-for="item in RequestBodyEnumList" :key="item" :value="item">
25 {{ item }} 26 {{ item }}
@@ -36,7 +37,7 @@ const handleSyncRequestParamsBodyType = (value: RequestBodyEnum) => { @@ -36,7 +37,7 @@ const handleSyncRequestParamsBodyType = (value: RequestBodyEnum) => {
36 <ParamsTable v-if="requestParamsBodyType === RequestBodyEnum.FORM_DATA" 37 <ParamsTable v-if="requestParamsBodyType === RequestBodyEnum.FORM_DATA"
37 v-model:value="value.Body[RequestBodyEnum.FORM_DATA]" /> 38 v-model:value="value.Body[RequestBodyEnum.FORM_DATA]" />
38 39
39 - <ParamsTable v-if="requestParamsBodyType === RequestBodyEnum.X_WWW_FORM_URLENCODED" 40 + <ParamsTable v-if="requestParamsBodyType === RequestBodyEnum.X_WWW_FORM_URLENCODED || !requestParamsBodyType"
40 v-model:value="value.Body[RequestBodyEnum.X_WWW_FORM_URLENCODED]" /> 41 v-model:value="value.Body[RequestBodyEnum.X_WWW_FORM_URLENCODED]" />
41 42
42 <MonacoEditor v-if="requestParamsBodyType === RequestBodyEnum.JSON" 43 <MonacoEditor v-if="requestParamsBodyType === RequestBodyEnum.JSON"
@@ -49,7 +50,7 @@ const handleSyncRequestParamsBodyType = (value: RequestBodyEnum) => { @@ -49,7 +50,7 @@ const handleSyncRequestParamsBodyType = (value: RequestBodyEnum) => {
49 </template> 50 </template>
50 51
51 <style lang="scss" scoped> 52 <style lang="scss" scoped>
52 - .body-container {  
53 - margin-top: 20px;  
54 - } 53 +.body-container {
  54 + margin-top: 20px;
  55 +}
55 </style> 56 </style>