diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java index 4d32c29717..e15982f65a 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java @@ -85,10 +85,11 @@ public class ApiUtils { result.put("fieldList", fieldList); if (apiDefinition.getRequest().getPage().getPageType().equalsIgnoreCase("pageNumber")) { int pageCount = JsonPath.read(response, apiDefinition.getRequest().getPage().getResponseData().get(0).getResolutionPath()); + int beginPage = Integer.valueOf(apiDefinition.getRequest().getPage().getRequestData().get(0).getParameterDefaultValue()); if (apiDefinition.getRequest().getPage().getResponseData().get(0).getResolutionPathType().equalsIgnoreCase("totalNumber")) { - pageCount = pageCount / Integer.valueOf(apiDefinition.getRequest().getPage().getRequestData().get(1).getParameterDefaultValue()); + pageCount = pageCount / Integer.valueOf(apiDefinition.getRequest().getPage().getRequestData().get(1).getParameterDefaultValue()) + 1; } - for (int i = 1; i < pageCount + 1; i++) { + for (int i = beginPage; i <= pageCount; i++) { apiDefinition.getRequest().getPage().getRequestData().get(0).setParameterDefaultValue(String.valueOf(i)); response = execHttpRequest(false, apiDefinition, apiDefinition.getApiQueryTimeout() == null || apiDefinition.getApiQueryTimeout() <= 0 ? 10 : apiDefinition.getApiQueryTimeout(), params(datasourceRequest)); dataList.addAll(fetchResult(response, apiDefinition)); diff --git a/core/core-frontend/src/locales/en.ts b/core/core-frontend/src/locales/en.ts index 2841372f6c..f50a9d3165 100644 --- a/core/core-frontend/src/locales/en.ts +++ b/core/core-frontend/src/locales/en.ts @@ -90,7 +90,8 @@ export default { response: 'Response', please_enter_jsonpath: 'Please enter JsonPath', enter_parameter_name: 'Please enter parameter name', - enter_default_value: 'Please enter default value' + enter_default_value: 'Please enter default value', + enter_first_page: 'Please enter the page number of the first page' }, operate_log: { name: 'Operation log', @@ -273,6 +274,7 @@ export default { view_data_structure: 'View data structure', the_data_structure: 'No data yet, please check the fields in the data structure', parameter: 'Parameter', + page_parameter: 'Page Parameter', fixed_value: 'Fixed value', time_function: 'Time function', customize: 'Customize', diff --git a/core/core-frontend/src/locales/tw.ts b/core/core-frontend/src/locales/tw.ts index 22d35c50c6..ad10710af0 100644 --- a/core/core-frontend/src/locales/tw.ts +++ b/core/core-frontend/src/locales/tw.ts @@ -90,7 +90,8 @@ export default { response: '回應', please_enter_jsonpath: '請輸入 JsonPath', enter_parameter_name: '請輸入參數名稱', - enter_default_value: '請輸入預設值' + enter_default_value: '請輸入預設值', + enter_first_page: '請輸入第一頁的頁碼' }, operate_log: { name: '操作日誌', @@ -265,6 +266,7 @@ export default { view_data_structure: '查看資料結構', the_data_structure: '暫無數據,請在資料結構勾選欄位', parameter: '參數', + page_parameter: '分页參數', fixed_value: '固定值', time_function: '時間函數', customize: '自訂', diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 6dc47b5809..72306e4457 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -91,7 +91,8 @@ export default { response: '响应', please_enter_jsonpath: '请输入 JsonPath', enter_parameter_name: '请输入参数名称', - enter_default_value: '请输入默认值' + enter_default_value: '请输入默认值', + enter_first_page: '请输入第一页的页码' }, operate_log: { name: '操作日志', @@ -266,6 +267,7 @@ export default { view_data_structure: '查看数据结构', the_data_structure: '暂无数据,请在数据结构勾选字段', parameter: '参数', + page_parameter: '分页参数', fixed_value: '固定值', time_function: '时间函数', customize: '自定义', diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/ApiVariable.vue b/core/core-frontend/src/views/visualized/data/datasource/form/ApiVariable.vue index b06b4da22b..d7aca2da40 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/ApiVariable.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/ApiVariable.vue @@ -109,6 +109,10 @@ const options = [ label: t('data_source.parameter'), value: 'params' }, + { + label: t('data_source.page_parameter'), + value: 'pageParams' + }, { label: t('data_source.fixed_value'), value: 'fixed' @@ -122,6 +126,16 @@ const options = [ value: 'custom' } ] +const pageParams = [ + { + label: '${pageNumber}', + value: '${pageNumber}' + }, + { + label: '${pageSize}', + value: '${pageSize}' + } +] const timeFunLists = [ { label: t('data_source.that_day') + '(yyyy-MM-dd)', @@ -221,11 +235,23 @@ const timeFunLists = [ :value="item.value" /> + + + { prop="builtInParameterName" :label="t('api_pagination.built_in_parameter_name')" /> - - - diff --git a/de-xpack b/de-xpack index 07d5ca7b79..9afdcb94d8 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 07d5ca7b79e6b4a2e2077d2969d80ae44d0867d6 +Subproject commit 9afdcb94d80d3dc9567547e1a71462cd6ff68062