|
|
@@ -7,16 +7,73 @@
|
|
|
</n-tabs>
|
|
|
</div>
|
|
|
<div v-show="requestContentType === RequestContentTypeEnum.DEFAULT">
|
|
|
- <n-tabs type="line" animated>
|
|
|
+ <n-tabs type="line" animated v-model:value="tabValue">
|
|
|
<n-tab v-for="item in RequestParamsTypeEnum" :key="item" :name="item" :tab="item"> {{ item }} </n-tab>
|
|
|
</n-tabs>
|
|
|
+
|
|
|
+ <!-- 各个页面 -->
|
|
|
+ <div class="tabs-content go-mt-3">
|
|
|
+ <div v-if="tabValue !== RequestParamsTypeEnum.BODY">
|
|
|
+ <request-header-table :target="requestParams[tabValue]" @update="updateRequestParams"></request-header-table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 选择了 body -->
|
|
|
+ <div v-else>
|
|
|
+ <n-radio-group v-model:value="requestParamsBodyType" name="radiogroup">
|
|
|
+ <n-space>
|
|
|
+ <n-radio v-for="bodyEnum in RequestBodyEnumList" :key="bodyEnum" :value="bodyEnum">
|
|
|
+ {{ bodyEnum }}
|
|
|
+ </n-radio>
|
|
|
+ </n-space>
|
|
|
+ </n-radio-group>
|
|
|
+
|
|
|
+ <!-- 为 none 时 -->
|
|
|
+ <n-card class="go-mt-3" v-if="requestParamsBodyType === RequestBodyEnum['NONE']">
|
|
|
+ <n-text depth="3">该请求没有 Body 体</n-text>
|
|
|
+ </n-card>
|
|
|
+
|
|
|
+ <!-- 具有对象属性时 -->
|
|
|
+ <template
|
|
|
+ v-else-if="
|
|
|
+ requestParamsBodyType === RequestBodyEnum['FORM_DATA'] ||
|
|
|
+ requestParamsBodyType === RequestBodyEnum['X_WWW_FORM_URLENCODED']
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <request-header-table
|
|
|
+ class="go-mt-3"
|
|
|
+ :target="requestParams[RequestParamsTypeEnum.BODY][requestParamsBodyType]"
|
|
|
+ @update="updateRequestBodyTable"
|
|
|
+ ></request-header-table>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- json -->
|
|
|
+ <template v-else-if="requestParamsBodyType === RequestBodyEnum['JSON']">
|
|
|
+ <monaco-editor
|
|
|
+ v-model:modelValue="requestParams[RequestParamsTypeEnum.BODY][requestParamsBodyType]"
|
|
|
+ width="600px"
|
|
|
+ height="200px"
|
|
|
+ language="json"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- xml -->
|
|
|
+ <template v-else-if="requestParamsBodyType === RequestBodyEnum['XML']">
|
|
|
+ <monaco-editor
|
|
|
+ v-model:modelValue="requestParams[RequestParamsTypeEnum.BODY][requestParamsBodyType]"
|
|
|
+ width="600px"
|
|
|
+ height="200px"
|
|
|
+ language="html"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div v-show="requestContentType === RequestContentTypeEnum.SQL">
|
|
|
<setting-item-box name="键名">
|
|
|
- <n-input v-model:value.trim="sqlObject.key" :min="1" placeholder="请输入内容" />
|
|
|
+ <n-tag type="primary" :bordered="false" style="width: 40px; font-size: 16px"> sql </n-tag>
|
|
|
</setting-item-box>
|
|
|
<setting-item-box name="键值">
|
|
|
- <monaco-editor v-model:modelValue="sqlObject.value" width="600px" height="200px" language="sql" />
|
|
|
+ <monaco-editor v-model:modelValue="requestSQLContent['sql']" width="600px" height="200px" language="sql" />
|
|
|
</setting-item-box>
|
|
|
</div>
|
|
|
</n-space>
|
|
|
@@ -24,20 +81,44 @@
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { reactive, ref, toRefs } from 'vue'
|
|
|
-import { RequestParamsTypeEnum, RequestContentTypeEnum ,RequestBodyEnum } from '@/enums/httpEnum'
|
|
|
+
|
|
|
import { MonacoEditor } from '@/components/Pages/MonacoEditor'
|
|
|
import { SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
|
|
|
import { useTargetData } from '@/views/chart/ContentConfigurations/components/hooks/useTargetData.hook'
|
|
|
+import { RequestHeaderTable } from '../RequestHeaderTable/index'
|
|
|
+
|
|
|
+import {
|
|
|
+ RequestParamsTypeEnum,
|
|
|
+ RequestContentTypeEnum,
|
|
|
+ RequestParamsObjType,
|
|
|
+ RequestBodyEnumList,
|
|
|
+ RequestBodyEnum
|
|
|
+} from '@/enums/httpEnum'
|
|
|
+
|
|
|
+const { targetData } = useTargetData()
|
|
|
|
|
|
-const { targetData, chartEditStore } = useTargetData()
|
|
|
+const { requestContentType, requestSQLContent, requestParams, requestParamsBodyType } = toRefs(targetData.value.request)
|
|
|
|
|
|
-const { requestContentType } = toRefs(targetData.value.request)
|
|
|
+const tabValue = ref<RequestParamsTypeEnum>(RequestParamsTypeEnum.PARAMS)
|
|
|
|
|
|
-const tabValue = ref(RequestParamsTypeEnum.NONE)
|
|
|
-const sqlObject = reactive({
|
|
|
- key: 'sql',
|
|
|
- value: 'select * from where'
|
|
|
-})
|
|
|
+// 更新参数表格数据
|
|
|
+const updateRequestParams = (paramsObj: RequestParamsObjType) => {
|
|
|
+ if (tabValue.value !== RequestParamsTypeEnum.BODY) {
|
|
|
+ requestParams.value[tabValue.value] = paramsObj
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 更新参数表格数据
|
|
|
+const updateRequestBodyTable = (paramsObj: RequestParamsObjType) => {
|
|
|
+ if (
|
|
|
+ tabValue.value === RequestParamsTypeEnum.BODY &&
|
|
|
+ // 仅有两种类型有 body
|
|
|
+ (requestParamsBodyType.value === RequestBodyEnum.FORM_DATA ||
|
|
|
+ requestParamsBodyType.value === RequestBodyEnum.X_WWW_FORM_URLENCODED)
|
|
|
+ ) {
|
|
|
+ requestParams.value[RequestParamsTypeEnum.BODY][requestParamsBodyType.value] = paramsObj
|
|
|
+ }
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|