index.vue 1.82 KB
<template>
  <div>
    <div>
      <Tabs type="card" v-model:activeKey="activeKey">
        <TabPane forceRender v-for="item in RequestParamsTypeEnum" :key="item" :tab="item" />
      </Tabs>
    </div>
    <div>
      <div v-if="activeKey === RequestParamsTypeEnum.PARAMS">
        <EditCellTable ref="editCellTableRef" :method="method" />
        <TestRequest :method="method" />
      </div>
      <div v-if="activeKey === RequestParamsTypeEnum.BODY">
        <Body :method="method" />
        <TestRequest :method="method" />
      </div>
      <div v-if="activeKey === RequestParamsTypeEnum.HEADER">
        <EditCellTable ref="editCellTableRef" :method="method" />
        <TestRequest :method="method" />
      </div>
    </div>
  </div>
</template>
<script lang="ts" setup name="simpleRequest">
  import { ref } from 'vue';
  import { Tabs, TabPane } from 'ant-design-vue';
  import { RequestParamsTypeEnum } from '../../enum';
  import { EditCellTable } from '../EditCellTable';
  import Body from './body.vue';
  import { TestRequest } from '../TestRequest/index';

  const props = defineProps({
    method: {
      type: String,
    },
  });

  if (props.method === '2') {
    Reflect.deleteProperty(RequestParamsTypeEnum, 'BODY');
    Reflect.deleteProperty(RequestParamsTypeEnum, 'HEADER');
  } else {
    Reflect.set(RequestParamsTypeEnum, 'BODY', 'Body');
    Reflect.set(RequestParamsTypeEnum, 'HEADER', 'Header');
  }

  const activeKey = ref('Params');

  const editCellTableRef = ref<InstanceType<typeof EditCellTable>>();

  //获取数据
  const getValue = () => {
    return editCellTableRef?.value?.getValue();
  };

  //设置数据
  const setValue = (data) => {
    editCellTableRef?.value?.setValue(data);
  };

  defineExpose({
    getValue,
    setValue,
  });
</script>