Commit 88a8638770bff172245b886048d0edf6997bba0c

Authored by xp.Huang
2 parents e3fd9e31 c1ccc154

Merge branch 'perf/third-interface-05-23' into 'main_dev'

perf(src/views): 优化第三方接口

See merge request yunteng/thingskit-view!265
... ... @@ -159,4 +159,7 @@ export const getAlarmList = (params?: object) =>
159 159 defHttp.get({
160 160 url: Api.ALARM_LIST,
161 161 params
  162 + },
  163 + {
  164 + withShareToken: true
162 165 })
... ...
... ... @@ -4,6 +4,7 @@ import { RequestConfigType } from '@/store/modules/chartEditStore/chartEditStore
4 4 import { isShareMode } from '@/views/share/hook'
5 5 import { customHttp } from './http'
6 6 import { SelectTimeAggregationFieldEnum } from '@/views/chart/ContentConfigurations/components/ChartData/external/components/SelectTImeAggregation'
  7 +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
7 8
8 9 export enum ParamsType {
9 10 REQUIRED,
... ... @@ -146,8 +147,11 @@ export const customRequest = async (request: RequestConfigType) => {
146 147 pondRequestOriginUrl,
147 148 pondRequestGlobalTokenKey,
148 149 pondRequestGlobalTokenSuffix,
149   -
150 150 } = request as ExtraRequestConfigType
  151 + const chartEditStore = useChartEditStore()
  152 +
  153 + const {requestOriginUrl: globalRequestOriginUrl} = chartEditStore.getRequestGlobalConfig
  154 +
151 155 let { requestUrl } = request as ExtraRequestConfigType
152 156 const { Header, Body } = requestParams
153 157 let { Params } = requestParams
... ... @@ -171,7 +175,7 @@ export const customRequest = async (request: RequestConfigType) => {
171 175 {
172 176 url:
173 177 requestHttpType === RequestHttpEnum.GET.toUpperCase() ? requestUrl : `${requestUrl}?${objConvertQuery(Params)}`,
174   - baseURL: requestVerificationToken ? pondRequestOriginUrl : getOriginUrl(requestOriginUrl!),
  178 + baseURL: requestVerificationToken ? pondRequestOriginUrl : globalRequestOriginUrl ? globalRequestOriginUrl : getOriginUrl(requestOriginUrl!),
175 179 method: requestHttpType,
176 180 params: requestHttpType === RequestHttpEnum.GET.toUpperCase() ? Params : null,
177 181 data: body,
... ... @@ -180,7 +184,8 @@ export const customRequest = async (request: RequestConfigType) => {
180 184 {
181 185 joinPrefix: false,
182 186 apiUrl: '',
183   - withShareToken: isShareMode(),
  187 + withToken:true,
  188 + withShareToken: !requestVerificationToken ? isShareMode(): false,
184 189 withThirdTokenString: requestVerificationToken,
185 190 withThirdTokenKey: pondRequestGlobalTokenKey,
186 191 withThirdTokenPrefix: pondRequestGlobalTokenSuffix
... ...
... ... @@ -236,11 +236,10 @@ export interface RequestConfigType extends RequestPublicConfigType {
236 236 pondRequestGlobalTokenKey?: string
237 237 pondRequestGlobalCascaderOption?: Recordable
238 238 pondRequestGlobalCascaderKey?: string
239   - pondRequestHttpType?: string
  239 + pondRequestHttpType?: RequestHttpEnum
240 240 pondRequestInterval?: number
241 241 pondRequestIntervalUnit?: string
242 242 pondRequestContentType?: number
243   - pondRequestHttpType?: string
244 243 pondRequestParams?: RequestParams
245 244 pondRequestParamsBodyType?: RequestBodyEnum
246 245 pondRequestUrl?: string
... ... @@ -250,6 +249,7 @@ export interface RequestConfigType extends RequestPublicConfigType {
250 249 thirdTokenIsExp?: boolean
251 250 thirdSelectCascaderLabel?: string
252 251 publicInterfaceSelectId?: string
  252 + thirdRequestDataPondId?: string
253 253 }
254 254
255 255 // Store 类型
... ...
... ... @@ -52,58 +52,58 @@
52 52 <setting-item name="配置类型">
53 53 <n-input
54 54 size="small"
55   - :placeholder="targetData && requestContentTypeObj[requestContentType]"
  55 + :placeholder="targetData && requestContentTypeObj[pondRequestContentType!]"
56 56 :disabled="true"
57 57 ></n-input>
58 58 </setting-item>
59   - <setting-item name="body 类型" v-if="requestContentType === RequestContentTypeEnum.DEFAULT">
  59 + <setting-item name="body 类型" v-if="pondRequestContentType === RequestContentTypeEnum.DEFAULT">
60 60 <n-input size="small" :placeholder="targetData && requestParamsBodyType" :disabled="true"></n-input>
61 61 </setting-item>
62 62 </setting-item-box>
63   - <div v-if="requestContentType === RequestContentTypeEnum.DEFAULT">
  63 + <div v-if="pondRequestContentType === RequestContentTypeEnum.DEFAULT">
64 64 <n-tabs type="line" animated v-model:value="tabValue">
65 65 <n-tab v-for="item in RequestParamsTypeEnum" :key="item" :name="item" :tab="item"> {{ item }} </n-tab>
66 66 </n-tabs>
67 67 <!-- 各个页面 -->
68 68 <div class="go-mt-3">
69 69 <div v-if="tabValue !== RequestParamsTypeEnum.BODY">
70   - <display-table class="go-my-3" :target="requestParams[tabValue]"> </display-table>
  70 + <display-table class="go-my-3" :target="pondRequestParams![tabValue]"> </display-table>
71 71 </div>
72 72
73 73 <!-- 选择了 body -->
74 74 <div v-else>
75 75 <!-- 为 none 时 -->
76   - <n-card class="go-mt-3 go-pb-3" v-if="requestParamsBodyType === RequestBodyEnum['NONE']">
  76 + <n-card class="go-mt-3 go-pb-3" v-if="pondRequestParamsBodyType === RequestBodyEnum['NONE']">
77 77 <n-text depth="3">该接口没有 Body 体</n-text>
78 78 </n-card>
79 79
80 80 <!-- 具有对象属性时 -->
81 81 <template
82 82 v-else-if="
83   - requestParamsBodyType === RequestBodyEnum['FORM_DATA'] ||
84   - requestParamsBodyType === RequestBodyEnum['X_WWW_FORM_URLENCODED']
  83 + pondRequestParamsBodyType === RequestBodyEnum['FORM_DATA'] ||
  84 + pondRequestParamsBodyType === RequestBodyEnum['X_WWW_FORM_URLENCODED']
85 85 "
86 86 >
87 87 <display-table
88 88 class="go-my-3"
89   - :target="requestParams[RequestParamsTypeEnum.BODY][requestParamsBodyType]"
  89 + :target="pondRequestParams![RequestParamsTypeEnum.BODY][pondRequestParamsBodyType]"
90 90 ></display-table>
91 91 </template>
92 92
93 93 <!-- json -->
94   - <template v-else-if="requestParamsBodyType === RequestBodyEnum['JSON']">
  94 + <template v-else-if="pondRequestParamsBodyType === RequestBodyEnum['JSON']">
95 95 <n-card size="small" style="padding-bottom: 7px">
96 96 <n-code
97   - :code="requestParams[RequestParamsTypeEnum.BODY][requestParamsBodyType] || '暂无内容'"
  97 + :code="pondRequestParams![RequestParamsTypeEnum.BODY][pondRequestParamsBodyType] || '暂无内容'"
98 98 language="json"
99 99 ></n-code>
100 100 </n-card>
101 101 </template>
102 102
103 103 <!-- xml -->
104   - <template v-else-if="requestParamsBodyType === RequestBodyEnum['XML']">
  104 + <template v-else-if="pondRequestParamsBodyType === RequestBodyEnum['XML']">
105 105 <n-code
106   - :code="requestParams[RequestParamsTypeEnum.BODY][requestParamsBodyType] || ''"
  106 + :code="pondRequestParams![RequestParamsTypeEnum.BODY][pondRequestParamsBodyType!] || ''"
107 107 language="html"
108 108 ></n-code>
109 109 </template>
... ... @@ -127,7 +127,6 @@
127 127 <script setup lang="ts">
128 128 import { PropType, ref, toRefs } from 'vue'
129 129 import { icon } from '@/plugins'
130   -import { MonacoEditor } from '@/components/Pages/MonacoEditor'
131 130 import { SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
132 131 import { RequestDataPondItemType, RequestGlobalConfigType } from '@/store/modules/chartEditStore/chartEditStore.d'
133 132 import displayTable from './displayTable.vue'
... ... @@ -136,8 +135,6 @@ import {
136 135 RequestParamsTypeEnum,
137 136 SelectHttpTimeNameObj,
138 137 RequestContentTypeEnum,
139   - RequestBodyEnumList,
140   - RequestParamsObjType
141 138 } from '@/enums/httpEnum'
142 139
143 140 const props = defineProps({
... ... @@ -145,45 +142,28 @@ const props = defineProps({
145 142 targetData: Object as PropType<RequestDataPondItemType>
146 143 })
147 144
148   -const { HelpOutlineIcon, FlashIcon, PulseIcon } = icon.ionicons5
  145 +const { FlashIcon, PulseIcon } = icon.ionicons5
  146 +
149 147 const {
150   - requestUrl,
151 148 requestInterval,
152   - requestHttpType,
153   - requestContentType,
154 149 requestSQLContent,
155   - requestParams,
156 150 requestParamsBodyType,
157 151 requestIntervalUnit,
158 152 pondRequestOriginUrl,
159 153 pondRequestUrl,
160   - pondRequestHttpType
  154 + pondRequestHttpType,
  155 + pondRequestContentType,
  156 + pondRequestParamsBodyType,
  157 + pondRequestParams,
161 158 } = toRefs((props.targetData as RequestDataPondItemType).dataPondRequestConfig)
162   -const tabs = [RequestParamsTypeEnum.HEADER]
  159 +
163 160 const requestContentTypeObj = {
164 161 [RequestContentTypeEnum.DEFAULT]: '普通请求',
165 162 [RequestContentTypeEnum.SQL]: 'SQL 请求'
166   -}
167   -const tabValue = ref<RequestParamsTypeEnum>(RequestParamsTypeEnum.PARAMS)
  163 +} as Recordable
168 164
169   -// 更新参数表格数据
170   -const updateRequestParams = (paramsObj: RequestParamsObjType) => {
171   - if (tabValue.value !== RequestParamsTypeEnum.BODY) {
172   - requestParams.value[tabValue.value] = paramsObj
173   - }
174   -}
  165 +const tabValue = ref<RequestParamsTypeEnum>(RequestParamsTypeEnum.PARAMS)
175 166
176   -// 更新参数表格数据
177   -const updateRequestBodyTable = (paramsObj: RequestParamsObjType) => {
178   - if (
179   - tabValue.value === RequestParamsTypeEnum.BODY &&
180   - // 仅有两种类型有 body
181   - (requestParamsBodyType.value === RequestBodyEnum.FORM_DATA ||
182   - requestParamsBodyType.value === RequestBodyEnum.X_WWW_FORM_URLENCODED)
183   - ) {
184   - requestParams.value[RequestParamsTypeEnum.BODY][requestParamsBodyType.value] = paramsObj
185   - }
186   -}
187 167 </script>
188 168
189 169 <style lang="scss" scoped>
... ...
1 1 <template>
2   - <n-modal class="go-chart-data-pond-control" v-model:show="modelShowRef" :mask-closable="false">
  2 + <n-modal class="go-chart-data-pond-control" v-model:show="modelShow" :mask-closable="false">
3 3 <n-card :bordered="false" role="dialog" size="small" aria-modal="true" style="width: 900px; height: 650px">
4 4 <template #header></template>
5 5 <template #header-extra> </template>
... ... @@ -57,7 +57,7 @@ import { icon } from '@/plugins'
57 57 import { getUUID, goDialog } from '@/utils'
58 58 import { cloneDeep } from 'lodash'
59 59
60   -const props = defineProps({
  60 +defineProps({
61 61 modelShow: Boolean
62 62 })
63 63
... ... @@ -71,8 +71,6 @@ const { requestDataPond } = toRefs(chartEditStore.getRequestGlobalConfig)
71 71
72 72 const requestShow = ref(false)
73 73
74   -const modelShowRef = ref(false)
75   -
76 74 const loading = ref(false)
77 75
78 76 const isEdit = ref(false)
... ... @@ -89,14 +87,6 @@ const pondData = computed(() => {
89 87 return data[0]
90 88 })
91 89
92   -watch(() => props.modelShow, (newValue) => {
93   - if (newValue) {
94   - modelShowRef.value = true
95   - } else {
96   - modelShowRef.value = false
97   - }
98   -})
99   -
100 90 const cacheEditData = ref<RequestDataPondItemType>()
101 91
102 92 watch(
... ... @@ -258,10 +248,10 @@ const deletePond = (targetData: RequestDataPondItemType) => {
258 248 const closeHandle = () => {
259 249 // 将所选内容赋值给对象
260 250 if (pondData.value) {
261   - targetData.value.request = {
262   - ...toRaw(pondData.value.dataPondRequestConfig),
263   - requestDataPondId: pondData.value.dataPondId
264   - }
  251 + // targetData.value.request = {
  252 + // ...toRaw(pondData.value.dataPondRequestConfig),
  253 + // requestDataPondId: pondData.value.dataPondId
  254 + // }
265 255 }
266 256 emit('update:modelShow', false)
267 257 }
... ...
... ... @@ -18,7 +18,7 @@ import {
18 18 CascaderOption,
19 19 NCascader,
20 20 } from 'naive-ui'
21   -import { computed, onMounted, reactive, ref, unref } from 'vue'
  21 +import { computed, onMounted, reactive, ref, unref, watch } from 'vue'
22 22 import GlobalParamsConfiguration from './GlobalParamsConfiguration.vue'
23 23 import { ChevronDown, ChevronUp } from '@vicons/carbon'
24 24 import { useDesignStore } from '@/store/modules/designStore/designStore'
... ... @@ -109,7 +109,7 @@ const handleSelectGlobalPond = (_:string, options:RequestDataPondItemType & {lab
109 109 targetData.value.request.requestDataPondId = options.dataPondId
110 110 getTokenString.value =''
111 111 resOptions.value = []
112   - resValue.value=null
  112 + resValue.value = null
113 113 handleExecuteRequest()
114 114 }
115 115
... ... @@ -126,6 +126,7 @@ const handleExecuteRequest = async () => {
126 126 }
127 127 const res = await customThirdInterfaceRequest(request as unknown as thirdInterfaceRequest)
128 128 resOptions.value = convertToCascadingData(res) as unknown as CascaderOption[]
  129 + resValue.value = targetData.value?.request?.thirdSelectCascaderLabel
129 130 }
130 131 } catch (e) {
131 132 getTokenString.value = JSON.stringify(e) as string
... ...
... ... @@ -173,11 +173,11 @@ const props = withDefaults(
173 173
174 174 const emit = defineEmits(['update:value'])
175 175
176   -const createNewRow = () => {
177   - return { id: getUUID(), result: true } as DataSource
  176 +const createNewRow = (index?: number) => {
  177 + return { id: getUUID(), result: true, indexName: index, typeName: DataTypeEnum.DATA_INPUT } as DataSource
178 178 }
179 179
180   -const dataSource = ref<DataSource[]>([createNewRow()])
  180 +const dataSource = ref<DataSource[]>([createNewRow(0)])
181 181
182 182 const blurFlag = ref(false)
183 183
... ... @@ -187,7 +187,7 @@ watch(
187 187 if (target && isObject(target) && Object.keys(target).length) {
188 188 if (blurFlag.value) return
189 189 dataSource.value = Object.keys(props.value || {}).map((keyName, keyIndex) => ({
190   - ...createNewRow(),
  190 + ...createNewRow(keyIndex),
191 191 keyName,
192 192 indexName: keyIndex,
193 193 typeName: isArray(props.value![keyName]) ? DataTypeEnum.DATA_RANGE : DataTypeEnum.DATA_INPUT,
... ... @@ -207,12 +207,15 @@ const canAddRow = computed(() => {
207 207
208 208 const handleAddRow = (record: DataSource) => {
209 209 const index = unref(dataSource).findIndex(item => item.id === record.id)
210   - unref(dataSource).splice(index + 1, 0, createNewRow())
  210 + unref(dataSource).splice(index + 1, 0, createNewRow(index + 1))
211 211 }
212 212
213 213 const handleSubtractRow = (record: DataSource) => {
214 214 const index = unref(dataSource).findIndex(item => item.id === record.id)
215 215 if (unref(dataSource).length === 1) {
  216 + unref(dataSource)[0].keyName = ''
  217 + unref(dataSource)[0].value = ''
  218 + unref(dataSource)[0].dateRange = []
216 219 emit('update:value', {})
217 220 } else {
218 221 unref(dataSource).splice(index, 1)
... ...
... ... @@ -115,6 +115,7 @@ const onEsc = () => {
115 115
116 116 onMounted(()=>{
117 117 pondPublicConfigurationRef?.value?.setConfigurationData(targetData.value.request)
  118 + pondRequestConfigurationRef?.value?.setConfigurationData(targetData.value.request)
118 119 })
119 120 </script>
120 121
... ...