index.vue 2.88 KB
<template>
  <div class="go-chart-configurations-data" v-if="targetData">
    <setting-item-box name="请求方式" :alone="true">
      <!-- THINGS_KIT 请求方式选项修改-->
      <n-select v-if="targetData.request.requestDataType !== RequestDataTypeEnum.Pond"
        v-model:value="targetData.request.requestDataType" :disabled="isNotData" :options="selectOptions" />
      <n-select v-if="targetData.request.requestDataType === RequestDataTypeEnum.Pond"
        v-model:value="targetData.request.requestDataType" :disabled="isNotData" :options="[
          {
            label: SelectCreateDataEnum.STATIC,
            value: RequestDataTypeEnum.STATIC
          },
          {
            label: SelectCreateDataEnum.AJAX,
            value: RequestDataTypeEnum.Pond
          }
        ]" />
    </setting-item-box>
    <!-- 静态 -->
    <chart-data-static v-if="targetData.request.requestDataType === RequestDataTypeEnum.STATIC"></chart-data-static>
    <!-- THINGS_KIT 重写动态请求面板 -->
    <ChartDynamicRequest v-if="targetData.request.requestDataType !== RequestDataTypeEnum.STATIC" />
    <!-- 动态 -->
    <!-- <chart-data-ajax v-if="targetData.request.requestDataType === RequestDataTypeEnum.AJAX"></chart-data-ajax> -->

    <!-- THINGS_KIT 隐藏公共请求面板 -->
    <!-- 数据池 -->
    <!-- <chart-data-pond v-if="targetData.request.requestDataType === RequestDataTypeEnum.Pond"></chart-data-pond> -->
  </div>
</template>

<script setup lang="ts">
import { computed } from 'vue'
import { loadAsyncComponent } from '@/utils'
import { SettingItemBox } from '@/components/Pages/ChartItemSetting'
import { RequestDataTypeEnum } from '@/enums/httpEnum'
import { ChartFrameEnum } from '@/packages/index.d'
import { useTargetData } from '../hooks/useTargetData.hook'
import { SelectCreateDataType, SelectCreateDataEnum } from './index.d'

const ChartDataStatic = loadAsyncComponent(() => import('./components/ChartDataStatic/index.vue'))
const ChartDataAjax = loadAsyncComponent(() => import('./components/ChartDataAjax/index.vue'))

// THINGS_KIT 重写动态请求面板
// const ChartDataPond = loadAsyncComponent(() => import('./components/ChartDataPond/index.vue'))
const ChartDynamicRequest = loadAsyncComponent(() => import('./external/components/ChartDynamicRequest/index.vue'))

const { targetData } = useTargetData()

// 选项
const selectOptions: SelectCreateDataType[] = [
  {
    label: SelectCreateDataEnum.STATIC,
    value: RequestDataTypeEnum.STATIC
  },
  {
    label: SelectCreateDataEnum.AJAX,
    value: RequestDataTypeEnum.AJAX
  },
  // THINGS_KIT 隐藏公共请求面板
  // {
  //   label: SelectCreateDataEnum.Pond,
  //   value: RequestDataTypeEnum.Pond
  // }
]

// 无数据源
const isNotData = computed(() => {
  return (
    targetData.value.chartConfig?.chartFrame === ChartFrameEnum.STATIC ||
    typeof targetData.value?.option?.dataset === 'undefined'
  )
})
</script>