wangrong
2026-08-30 761e5c5fa871959f60e15c971c8d83f2b53d0af5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
import request from '@/config/axios'
import { nameTrim } from '@/utils/utils'
 
export interface DatasetOrFolder {
  name: string
  id?: number | string
  pid?: number | string
  nodeType: 'folder' | 'dataset'
  union?: Array<{}>
  allFields?: Array<{}>
}
 
interface Fields {
  fields: Array<{}>
  data: Array<{}>
}
export interface FieldData {
  allFields: Array<{}>
  data: Fields
}
 
export interface Dataset {
  id: string
  pid: string
  name: string
  union?: Array<{}>
  allFields?: Array<{}>
}
 
export interface Table {
  datasourceId: string
  name: string
  tableName: string
  type: string
  unableCheck?: boolean
}
 
export const listDatasources = data => {
  return request
    .post({ url: '/datasource/tree', data: { ...data, ...{ busiFlag: 'datasource' } } })
    .then(res => {
      return res?.data
    })
}
 
export const listDatasourceType = async (data = {}): Promise<IResponse> => {
  return request.post({ url: '/datasource/types', data }).then(res => {
    return res?.data
  })
}
export const getTableField = (data = {}) => request.post({ url: '/datasource/getTableField', data })
 
export const syncApiTable = (data = {}) => request.post({ url: '/datasource/syncApiTable', data })
 
export const syncApiDs = (data = {}) => request.post({ url: '/datasource/syncApiDs', data })
 
export const listDatasourceTables = async (data = {}): Promise<IResponse> => {
  return request.post({ url: '/datasource/getTables', data }).then(res => {
    return res
  })
}
 
export const getTableStatus = async (data = {}): Promise<IResponse> => {
  return request.post({ url: '/datasource/getTableStatus', data }).then(res => {
    return res
  })
}
 
export const getSchema = (data = {}) => {
  return request.post({ url: '/datasource/getSchema', data })
}
 
export const previewData = (data = {}) => {
  return request.post({ url: '/datasource/previewData', data }).then(res => {
    return res?.data
  })
}
export const validate = (data = {}) => {
  return request.post({ url: '/datasource/validate', data })
}
 
export const isShowFinishPage = async () => {
  return request.get({ url: '/datasource/showFinishPage' })
}
 
export const setShowFinishPage = (data = {}) => {
  return request.post({ url: '/datasource/setShowFinishPage', data })
}
export const latestUse = async (data = {}) => {
  return request.post({ url: '/datasource/latestUse', data })
}
 
export const validateById = (id: number) => request.get({ url: '/datasource/validate/' + id })
 
export const save = async (data = {}): Promise<Dataset> => {
  nameTrim(data)
  return request.post({ url: '/datasource/save', data }).then(res => {
    return res?.data
  })
}
 
export const perDeleteDatasource = async (id): Promise<boolean> => {
  return request.post({ url: `/datasource/perDelete/${id}`, data: {} }).then(res => {
    return res?.data
  })
}
 
export const update = async (data = {}): Promise<Dataset> => {
  nameTrim(data)
  return request.post({ url: '/datasource/update', data }).then(res => {
    return res?.data
  })
}
 
export const move = async (data = {}): Promise<Dataset> => {
  return request.post({ url: '/datasource/move', data }).then(res => {
    return res?.data
  })
}
 
export const reName = async (data = {}): Promise<Dataset> => {
  nameTrim(data)
  return request.post({ url: '/datasource/reName', data }).then(res => {
    return res?.data
  })
}
 
export const createFolder = async (data = {}): Promise<Dataset> => {
  nameTrim(data)
  return request.post({ url: '/datasource/createFolder', data }).then(res => {
    return res?.data
  })
}
 
export const checkRepeat = async (data = {}): Promise<Dataset> => {
  return request.post({ url: '/datasource/checkRepeat', data }).then(res => {
    return res?.data
  })
}
 
export const checkApiItem = async (data = {}): Promise<IResponse> => {
  return request.post({ url: '/datasource/checkApiDatasource', data }).then(res => {
    return res
  })
}
 
export const getDatasetTree = async (data = {}): Promise<IResponse> => {
  return request
    .post({ url: '/datasetTree/tree', data: { ...data, ...{ busiFlag: 'dataset' } } })
    .then(res => {
      return res?.data
    })
}
 
export const getDsTree = async (data = {}): Promise<IResponse> => {
  return request
    .post({ url: '/datasource/tree', data: { ...data, ...{ busiFlag: 'datasource' } } })
    .then(res => {
      return res?.data
    })
}
 
export const deleteById = (id: number) => request.get({ url: '/datasource/delete/' + id })
 
export const getById = (id: number) => request.get({ url: '/datasource/get/' + id })
 
export const getHidePwById = (id: number) => request.get({ url: '/datasource/hidePw/' + id })
 
export const getSimpleDs = (id: number) => request.get({ url: '/datasource/getSimpleDs/' + id })
 
export const uploadFile = async (data): Promise<IResponse> => {
  return request
    .post({
      url: '/datasource/uploadFile',
      data,
      loading: true,
      headersType: 'multipart/form-data;'
    })
    .then(res => {
      return res
    })
}
 
export const loadRemoteFile = async (data = {}) => {
  return request.post({ url: '/datasource/loadRemoteFile', data })
}
 
export const listSyncRecord = (page: number, limit: number, dsId: number | string) =>
  request.post({ url: '/datasource/listSyncRecord/' + dsId + '/' + page + '/' + limit })
 
export const getDeEngine = () => request.get({ url: '/engine/getEngine' })
 
export const supportSetKey = () => request.get({ url: '/engine/supportSetKey' })