Browse Source

Merge branch 'dev' into master-fetch

奔跑的面条 3 years ago
parent
commit
0b5f35752b

+ 9 - 4
src/hooks/useChartDataFetch.hook.ts

@@ -9,7 +9,6 @@ import { isPreview, newFunctionHandle } from '@/utils'
 // 获取类型
 type ChartEditStoreType = typeof useChartEditStore
 
-
 /**
  * setdata 数据监听与更改
  * @param targetComponent
@@ -30,7 +29,12 @@ export const useChartDataFetch = (
     // 组件类型
     const { chartFrame } = targetComponent.chartConfig
     // 请求配置
-    const { requestDataType, requestHttpType, requestUrl } = toRefs(targetComponent.data)
+    const {
+      requestDataType,
+      requestHttpType,
+      requestUrl,
+      requestInterval: targetInterval
+    } = toRefs(targetComponent.request)
     // 非请求类型
     if (requestDataType.value !== RequestDataTypeEnum.AJAX) return
     // 处理地址
@@ -65,12 +69,13 @@ export const useChartDataFetch = (
 
       // 立即调用
       fetchFn()
+
       // 开启定时
-      fetchInterval = setInterval(fetchFn, requestInterval.value * 1000)
+      const time = targetInterval && targetInterval.value ? targetInterval.value : requestInterval.value
+      fetchInterval = setInterval(fetchFn, time * 1000)
     }
   }
 
   isPreview() && requestIntervalFn()
-
   return { vChartRef }
 }

+ 1 - 3
src/packages/index.d.ts

@@ -27,9 +27,7 @@ export type ConfigType = {
 
 // 数据请求
 interface requestConfig {
-  data: RequestConfigType,
-  // 暂时约定为数据存储区域(未使用)
-  requestData: any
+  request: RequestConfigType,
 }
 
 // Echarts 数据类型

+ 4 - 5
src/packages/public/publicConfig.ts

@@ -7,7 +7,8 @@ import { chartInitConfig } from '@/settings/designSetting'
 const requestConfig: RequestConfigType = {
   requestDataType: RequestDataTypeEnum.STATIC,
   requestHttpType: RequestHttpEnum.GET,
-  requestUrl: ''
+  requestUrl: '',
+  requestInterval: undefined
 }
 
 export class publicConfig implements PublicConfigType {
@@ -41,10 +42,8 @@ export class publicConfig implements PublicConfigType {
     // 动画
     animations: []
   }
-  // 数据
-  public data = { ...requestConfig }
-  // 数据获取
-  public requestData = []
+  // 请求
+  public request = { ...requestConfig }
   // 数据过滤
   public filter = undefined
 

+ 3 - 1
src/store/modules/chartEditStore/chartEditStore.d.ts

@@ -164,7 +164,7 @@ export enum ChartEditStoreEnum {
 export type RequestGlobalConfigType = {
   // 请求源地址
   requestOriginUrl?: string
-  // 轮询时间
+  // 全局默认轮询时间
   requestInterval: number
 }
 
@@ -176,6 +176,8 @@ export type RequestConfigType = {
   requestHttpType: RequestHttpEnum
   // 源后续的 url
   requestUrl?: string
+  // 组件定制轮询时间
+  requestInterval?: number
 }
 
 // Store 类型

+ 2 - 2
src/views/chart/ContentConfigurations/components/CanvasPage/components/ChartDataSetting/index.vue

@@ -6,12 +6,12 @@
         placeholder="源地址如: http://127.0.0.1"
       ></n-input>
     </setting-item-box>
-    <setting-item-box name="更新间隔">
+    <setting-item-box name="更新间隔" :alone="true">
       <n-input-number
         v-model:value.trim="chartEditStore.getRequestGlobalConfig.requestInterval"
         min="5"
         :show-button="false"
-        placeholder="为 0 不更新"
+        placeholder="将应用全局组件"
       >
         <template #suffix>

+ 18 - 7
src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.vue

@@ -1,7 +1,19 @@
 <template>
   <div class="go-chart-configurations-data-ajax">
-    <setting-item-box name="类型" :alone="true">
-      <n-select v-model:value="targetData.data.requestHttpType" :options="selectOptions" />
+    <setting-item-box name="配置">
+      <setting-item name="类型">
+        <n-select v-model:value="targetData.request.requestHttpType" :options="selectOptions" />
+      </setting-item>
+      <setting-item name="默认使用全局间隔">
+        <n-input-number
+          v-model:value.trim="targetData.request.requestInterval"
+          min="5"
+          :show-button="false"
+          placeholder="可以为空"
+        >
+          <template #suffix> 秒 </template>
+        </n-input-number>
+      </setting-item>
     </setting-item-box>
 
     <setting-item-box name="源地址:" :alone="true">
@@ -25,9 +37,8 @@
           </ul>
         </n-tooltip>
       </template>
-      <n-input v-model:value.trim="targetData.data.requestUrl" :min="1" placeholder="请输入地址(去除源)" />
+      <n-input v-model:value.trim="targetData.request.requestUrl" :min="1" placeholder="请输入地址(去除源)" />
     </setting-item-box>
-
     <setting-item-box :alone="true">
       <template #name>
         测试
@@ -60,7 +71,7 @@
 <script setup lang="ts">
 import { ref, toRefs, onBeforeUnmount, watchEffect } from 'vue'
 import { icon } from '@/plugins'
-import { SettingItemBox } from '@/components/Pages/ChartItemSetting'
+import { SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
 import { RequestHttpEnum, ResultEnum } from '@/enums/httpEnum'
 import { chartDataUrl, rankListUrl, scrollBoardUrl, numberFloatUrl, numberIntUrl, textUrl, imageUrl } from '@/api/mock'
 import { http } from '@/api/http'
@@ -116,8 +127,8 @@ const selectOptions: SelectHttpType[] = [
 // 发送请求
 const sendHandle = async () => {
   loading.value = true
-  if(!targetData.value) return
-  const { requestUrl, requestHttpType } = targetData.value.data
+  if (!targetData.value) return
+  const { requestUrl, requestHttpType } = targetData.value.request
   if (!requestUrl) {
     window['$message'].warning('请求参数不正确,请检查!')
     return

+ 1 - 1
src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.vue

@@ -118,7 +118,7 @@ const { uploadFileListRef, customRequest, beforeUpload, download } = useFile(tar
 
 // 是否展示过滤器
 const filterShow = computed(() => {
-  return targetData.value.data.requestDataType === RequestDataTypeEnum.AJAX
+  return targetData.value.request.requestDataType === RequestDataTypeEnum.AJAX
 })
 
 // 是图表类型

+ 2 - 2
src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue

@@ -109,7 +109,7 @@ import cloneDeep from 'lodash/cloneDeep'
 const { DocumentTextIcon } = icon.ionicons5
 const { FilterIcon, FilterEditIcon } = icon.carbon
 const { targetData, chartEditStore } = useTargetData()
-const { requestDataType } = toRefs(targetData.value.data)
+const { requestDataType } = toRefs(targetData.value.request)
 const { requestOriginUrl } = toRefs(chartEditStore.getRequestGlobalConfig)
 
 // 受控弹窗
@@ -124,7 +124,7 @@ const sourceData = ref<any>('')
 // 动态获取数据
 const fetchTargetData = async () => {
   try {
-    const { requestUrl, requestHttpType } = targetData.value.data
+    const { requestUrl, requestHttpType } = targetData.value.request
     if (!requestUrl) {
       window['$message'].warning('请求参数不正确,请检查!')
       sourceData.value = '请求参数不正确,请检查!'

+ 2 - 2
src/views/chart/ContentConfigurations/components/ChartData/index.vue

@@ -2,7 +2,7 @@
   <div class="go-chart-configurations-data" v-if="targetData">
     <setting-item-box name="请求方式" :alone="true">
       <n-select
-        v-model:value="targetData.data.requestDataType"
+        v-model:value="targetData.request.requestDataType"
         :options="selectOptions"
       />
     </setting-item-box>
@@ -11,7 +11,7 @@
 
     <!-- 静态 -->
     <chart-data-static
-      v-if="targetData.data.requestDataType === RequestDataTypeEnum.STATIC"
+      v-if="targetData.request.requestDataType === RequestDataTypeEnum.STATIC"
     ></chart-data-static>
 
     <!-- 动态 -->