openxiangda 1.0.113 → 1.0.114

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -205,6 +205,8 @@ interface PageApiResponse<TResult = unknown, TRaw = TResult> {
205
205
  code: number | string;
206
206
  success: boolean;
207
207
  message?: string;
208
+ formInstId?: string;
209
+ formInstanceId?: string;
208
210
  result: TResult | null;
209
211
  data?: TRaw;
210
212
  raw?: unknown;
@@ -281,6 +283,8 @@ interface FormCreateParams {
281
283
  formUuid: string;
282
284
  appType?: string;
283
285
  data: Record<string, unknown>;
286
+ lookupAfterCreate?: boolean;
287
+ lookupFields?: string[];
284
288
  }
285
289
  interface FormUpdateParams {
286
290
  formUuid: string;
@@ -205,6 +205,8 @@ interface PageApiResponse<TResult = unknown, TRaw = TResult> {
205
205
  code: number | string;
206
206
  success: boolean;
207
207
  message?: string;
208
+ formInstId?: string;
209
+ formInstanceId?: string;
208
210
  result: TResult | null;
209
211
  data?: TRaw;
210
212
  raw?: unknown;
@@ -281,6 +283,8 @@ interface FormCreateParams {
281
283
  formUuid: string;
282
284
  appType?: string;
283
285
  data: Record<string, unknown>;
286
+ lookupAfterCreate?: boolean;
287
+ lookupFields?: string[];
284
288
  }
285
289
  interface FormUpdateParams {
286
290
  formUuid: string;
@@ -1678,6 +1678,67 @@ var resolveFormInstanceId = (params) => {
1678
1678
  }
1679
1679
  return formInstanceId;
1680
1680
  };
1681
+ var pickCreatedFormInstanceId = (value) => {
1682
+ if (!value) return void 0;
1683
+ if (typeof value === "string") {
1684
+ const text = value.trim();
1685
+ return text || void 0;
1686
+ }
1687
+ if (!isRecord(value)) return void 0;
1688
+ const direct = value.formInstId || value.formInstanceId || value.instanceId || value.id || value.result || value.data;
1689
+ if (direct !== value) {
1690
+ return pickCreatedFormInstanceId(direct);
1691
+ }
1692
+ return void 0;
1693
+ };
1694
+ var isStableCreateLookupValue = (value) => {
1695
+ if (value === void 0 || value === null || value === "") return false;
1696
+ return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
1697
+ };
1698
+ var buildCreateLookupFilters = (data, lookupFields) => {
1699
+ const sourceFields = lookupFields?.length ? lookupFields : Object.keys(data).filter((key) => isStableCreateLookupValue(data[key]));
1700
+ const rules2 = sourceFields.filter((key) => isStableCreateLookupValue(data[key])).slice(0, 6).map(
1701
+ (key) => ({
1702
+ key,
1703
+ operator: "EQ",
1704
+ value: data[key]
1705
+ })
1706
+ );
1707
+ return rules2.length > 0 ? { logic: "AND", rules: rules2 } : void 0;
1708
+ };
1709
+ var firstListItem = (value) => {
1710
+ if (!value) return void 0;
1711
+ if (Array.isArray(value)) {
1712
+ return isRecord(value[0]) ? value[0] : void 0;
1713
+ }
1714
+ if (!isRecord(value)) return void 0;
1715
+ const candidates = [
1716
+ value.data,
1717
+ value.list,
1718
+ value.items,
1719
+ value.records,
1720
+ value.result
1721
+ ];
1722
+ for (const candidate of candidates) {
1723
+ const item = firstListItem(candidate);
1724
+ if (item) return item;
1725
+ }
1726
+ return void 0;
1727
+ };
1728
+ var attachFormInstanceId = (response, formInstanceId) => {
1729
+ const withIds = (value) => isRecord(value) ? {
1730
+ ...value,
1731
+ formInstId: value.formInstId || formInstanceId,
1732
+ formInstanceId: value.formInstanceId || formInstanceId
1733
+ } : value;
1734
+ return {
1735
+ ...response,
1736
+ formInstId: formInstanceId,
1737
+ formInstanceId,
1738
+ result: response.result === null || response.result === void 0 ? formInstanceId : withIds(response.result),
1739
+ data: response.data === void 0 ? response.data : withIds(response.data)
1740
+ };
1741
+ };
1681
1742
  var withDefaultAppType = (context, params) => {
1682
1743
  if (!params) {
1683
1744
  return params;
@@ -1915,18 +1976,48 @@ var createPageSdk = (context) => {
1915
1976
  formInstId: resolveFormInstanceId(params)
1916
1977
  }
1917
1978
  }),
1918
- create: (params) => request({
1919
- path: buildAppPath(
1920
- context,
1921
- params.appType,
1922
- "/v1/form/saveFormData.json"
1923
- ),
1924
- method: "post",
1925
- body: {
1926
- formUuid: params.formUuid,
1927
- formDataJson: JSON.stringify(params.data || {})
1979
+ create: async (params) => {
1980
+ const response = await request({
1981
+ path: buildAppPath(
1982
+ context,
1983
+ params.appType,
1984
+ "/v1/form/saveFormData.json"
1985
+ ),
1986
+ method: "post",
1987
+ body: {
1988
+ formUuid: params.formUuid,
1989
+ formDataJson: JSON.stringify(params.data || {})
1990
+ }
1991
+ });
1992
+ if (params.lookupAfterCreate === false) {
1993
+ return response;
1928
1994
  }
1929
- }),
1995
+ const directId = pickCreatedFormInstanceId(response);
1996
+ if (directId) {
1997
+ return attachFormInstanceId(response, directId);
1998
+ }
1999
+ const filters = buildCreateLookupFilters(params.data || {}, params.lookupFields);
2000
+ if (!filters) {
2001
+ return response;
2002
+ }
2003
+ const lookupResponse = await request({
2004
+ path: buildAppPath(
2005
+ context,
2006
+ params.appType,
2007
+ "/v1/form/advancedSearch.json"
2008
+ ),
2009
+ method: "get",
2010
+ query: {
2011
+ formUuid: params.formUuid,
2012
+ filters: serializeSearchExpression(filters),
2013
+ currentPage: 1,
2014
+ pageSize: 1,
2015
+ order: normalizeAdvancedOrder([{ id: "createTime", isAsc: "n" }])
2016
+ }
2017
+ });
2018
+ const lookupId = pickCreatedFormInstanceId(firstListItem(lookupResponse));
2019
+ return lookupId ? attachFormInstanceId(response, lookupId) : response;
2020
+ },
1930
2021
  update: (params) => request({
1931
2022
  path: buildAppPath(
1932
2023
  context,