@conecli/cone-render 0.10.1-shop3.10 → 0.10.1-shop3.100

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.
Files changed (115) hide show
  1. package/README.md +1 -1
  2. package/dist/api/index.ts +1 -1
  3. package/dist/common/accessibility.h5.ts +1 -0
  4. package/dist/common/accessibility.ts +1 -0
  5. package/dist/common/const.ts +1 -1
  6. package/dist/common/index.h5.ts +1 -1
  7. package/dist/common/index.jd.ts +1 -1
  8. package/dist/common/index.ts +1 -1
  9. package/dist/common/index.weapp.ts +1 -1
  10. package/dist/common/jdplayerSdk.weapp.tsx +1 -0
  11. package/dist/common/jssdk.ts +1 -1
  12. package/dist/common/jssdk.weapp.ts +1 -0
  13. package/dist/common/pageType.ts +1 -1
  14. package/dist/common/token/index.h5.ts +1 -1
  15. package/dist/common/token/token.jd.ts +1 -1
  16. package/dist/common/wxappApi.ascf.ts +1 -0
  17. package/dist/common/wxappApi.ts +1 -1
  18. package/dist/components/ErrorBoundary.tsx +1 -1
  19. package/dist/components/base/CommonFloorHead/index.tsx +1 -1
  20. package/dist/components/base/CountDown/index.tsx +1 -1
  21. package/dist/components/base/CustomScrollView/index.tsx +1 -1
  22. package/dist/components/base/CustomVideo/index.tsx +1 -1
  23. package/dist/components/base/CustomVideo/index.weapp.tsx +1 -0
  24. package/dist/components/base/ExposureSmart/index.h5.tsx +1 -1
  25. package/dist/components/base/ExposureSmart/index.tsx +1 -1
  26. package/dist/components/base/ExposureSmart/reporter.tsx +1 -1
  27. package/dist/components/base/InOrOutViewObserver/index.weapp.tsx +1 -0
  28. package/dist/components/base/ItemViewExposureSmart/index.tsx +1 -1
  29. package/dist/components/base/LazyLayoutLoad/index.tsx +1 -1
  30. package/dist/components/base/LazyLoadImage/index.h5.tsx +1 -1
  31. package/dist/components/base/MobileCommonHeader/index.tsx +1 -1
  32. package/dist/components/base/MobileCommonHeader/index.weapp.tsx +1 -0
  33. package/dist/components/base/NetworkDataError/const.ts +1 -1
  34. package/dist/components/base/NetworkDataError/index.module.scss +118 -72
  35. package/dist/components/base/NetworkDataError/index.tsx +1 -1
  36. package/dist/components/base/Price/Base/index.module.scss +12 -0
  37. package/dist/components/base/Price/Base/index.tsx +1 -1
  38. package/dist/components/base/Price/Double/index.module.scss +25 -1
  39. package/dist/components/base/Price/Double/index.tsx +1 -1
  40. package/dist/components/base/ShopLeGaoTag/index.h5.module.scss +35 -0
  41. package/dist/components/base/ShopLeGaoTag/index.h5.tsx +1 -0
  42. package/dist/components/base/ShopLeGaoTag/index.module.scss +33 -0
  43. package/dist/components/base/ShopLeGaoTag/index.tsx +1 -0
  44. package/dist/components/debug/DebugLayout/index.module.scss +2 -2
  45. package/dist/components/floorItem.tsx +1 -1
  46. package/dist/components/isv/Floor/index.tsx +1 -1
  47. package/dist/components/remoteFloorItem.tsx +1 -1
  48. package/dist/config/env.ts +1 -1
  49. package/dist/interface/common.ts +1 -1
  50. package/dist/interface/component.ts +1 -1
  51. package/dist/interface/jumpEventReport.ts +1 -1
  52. package/dist/interface/service.ts +1 -1
  53. package/dist/jumpEventReport/base.ts +1 -1
  54. package/dist/jumpEventReport/const.ts +1 -1
  55. package/dist/jumpEventReport/createReportFloorData.ts +1 -1
  56. package/dist/jumpEventReport/index.h5.ts +1 -1
  57. package/dist/jumpEventReport/index.jd.ts +1 -1
  58. package/dist/jumpEventReport/index.weapp.ts +1 -1
  59. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  60. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  61. package/dist/jumpEventReport/logEventConfig.h5.ts +1 -0
  62. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  63. package/dist/jumpEventReport/web/report.ts +1 -1
  64. package/dist/jumpEventReport/web.base.ts +1 -1
  65. package/dist/jumpEventReport/web.jd.ts +1 -1
  66. package/dist/jumpEventReport/web.pc.ts +1 -1
  67. package/dist/jumpEventReport/web.tjm.ts +1 -1
  68. package/dist/jumpEventReport/web.wxapp.ts +1 -1
  69. package/dist/language/en_US.json +395 -0
  70. package/dist/language/zh_CN.json +395 -0
  71. package/dist/language/zh_HK.json +395 -0
  72. package/dist/libs/openShopBridge.js +161 -0
  73. package/dist/libs/openShopBridge.min.js +1 -0
  74. package/dist/libs/taroAppReport.js +2 -2
  75. package/dist/modules/ContainerFloorList/index.h5.module.scss +16 -2
  76. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  77. package/dist/modules/ContainerFloorList/index.tsx +1 -1
  78. package/dist/modules/DecorateContainerFloorList/index.weapp.tsx +1 -0
  79. package/dist/open/api/environment.ts +1 -1
  80. package/dist/open/api/shopMember.ts +1 -1
  81. package/dist/open/api/shopMember.weapp.ts +1 -0
  82. package/dist/open/api/track.ts +1 -1
  83. package/dist/open/api/util.ts +1 -1
  84. package/dist/open/components/index.ts +1 -1
  85. package/dist/open/index.ts +1 -1
  86. package/dist/sass/app.h5.scss +19 -2
  87. package/dist/sass/base.scss +8 -4
  88. package/dist/service/fetchGateway.ts +1 -1
  89. package/dist/service/fetchGateway.weapp.ts +1 -1
  90. package/dist/service/fetchJsonp.weapp.ts +1 -0
  91. package/dist/service/http/const.ts +1 -1
  92. package/dist/service/http/h5Http.ts +1 -1
  93. package/dist/service/http/httpInterceptors.weapp.ts +1 -0
  94. package/dist/service/requestServer.h5.ts +1 -1
  95. package/dist/service/requestServer.ts +1 -1
  96. package/dist/service/requestServer.weapp.ts +1 -1
  97. package/dist/utils/connectNativeJsBridge.ts +1 -1
  98. package/dist/utils/h5Utils.ts +1 -1
  99. package/dist/utils/harmonyCallRouter.h5.ts +1 -0
  100. package/dist/utils/harmonyCallRouter.ts +0 -0
  101. package/dist/utils/index.h5.ts +1 -1
  102. package/dist/utils/index.ts +1 -1
  103. package/dist/utils/index.weapp.ts +1 -1
  104. package/dist/utils/jumpExtMapUtil.ts +1 -0
  105. package/dist/utils/jumpExtMapUtil.weapp.ts +1 -0
  106. package/dist/utils/log.ts +1 -0
  107. package/dist/utils/{sColor.js → sColor.ts} +1 -1
  108. package/dist/utils/sColor.weapp.ts +1 -0
  109. package/dist/utils/utils.ts +1 -1
  110. package/dist/wxapp/common/address_api/address_api_v2.js +1 -0
  111. package/dist/wxapp/common/user_info.js +1 -1
  112. package/package.json +162 -141
  113. package/dist/jumpEventReport/web/wqshop.report.ts +0 -1
  114. package/dist/utils/priceUtils.js +0 -1
  115. /package/dist/utils/{jumpExtMapUtil.js → jumpExtMapUtil.h5.ts} +0 -0
@@ -1 +1 @@
1
- import Taro from "@tarojs/taro";
2
1
  appEid,
3
2
  userPinKey,
4
3
  jdUserLoginState,
5
4
  WXAPP_LOGIN,
6
5
  WXAPP_BIZ,
7
6
  WXAPP_USER_INFO,
8
7
  WXAPP_NAVIGATOR,
9
8
  WXAPP_REPORT_GDT,
10
9
  WXAPP_PARAMS_SIGN,
11
10
  WXAPP_FINGER_REPORT,
12
11
  WXAPP_REPORT_MANAGE,
13
12
  BUSINESS_TYPE,
14
13
  SHOP_MENU_ID_TYPE,
15
14
  SHOP_MENU_ID_NAME,
16
15
  SECTION_HOME_TAB_NAME_TYPE,
17
16
  SECTION_HOME_TAB_TYPE,
18
17
  TaroEventType,
19
18
  WX_BUSINESS_TYPE,
20
19
  WXAPP_BIZ_KEY,
21
20
  getSystemInfos,
22
21
  getTaroStorageKeyValue,
23
22
  removeTaroStorageKey,
24
23
  setTaroStorage,
25
24
  getWxAppCookieStr,
26
25
  objectToUrlEncode,
27
26
  abTestLabels: {},
28
27
  loginState: jdUserLoginState,
29
28
  cookiesStr: "",
30
29
  userInfo: userPinKey,
31
30
  pageInfo: {
32
31
  wxBusinessType: WX_BUSINESS_TYPE.SHOP,
33
32
  address: "",
34
33
  addressCommaStr: "",
35
34
  un_area: "",
36
35
  vapptype: "1",
37
36
  pageType: "home",
38
37
  dataType: BUSINESS_TYPE.ONLINE,
39
38
  floorExposureInfo: {},
40
39
  floorVideInfo: {},
41
40
  productVideInfo: {},
42
41
  tabsLoadAllDataInfo: {
43
42
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]:
44
43
  false,
45
44
  [SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY]]: true,
46
45
  },
47
46
  updateShopInfosAllState: false,
48
47
  isVipShop: false,
49
48
  isJdShowNativeImmersivePlayer: false,
50
49
  ...shopConfig,
51
50
  pageScrollTop: 0,
52
51
  pageIdxHeightInfo: {
53
52
  list: [],
54
53
  },
55
54
  shopNavBarHeight: 0,
56
55
  },
57
56
  defaultQueryLogInfo: {
58
57
  sourceType: "JDshop",
59
58
  sourceValue: "",
60
59
  moduleId: "none",
61
60
  entrance: "none",
62
61
  },
63
62
  originQueryInfo: {},
64
63
  sysInfo: {
65
64
  windowWidth: 0,
66
65
  windowHeight: 0,
67
66
  eid: appEid,
68
67
  netWorkType: "4g",
69
68
  jdBottomBarHeight: 0,
70
69
  jdNativeHeaderHeight: 0,
71
70
  },
72
71
  queryInfo: {},
73
72
  shopInfo: {},
74
73
  openAppData: {},
75
74
  public info: CommonInterFace.BaseConfigInfo;
76
75
  public config: {
77
76
  [key: string]: any;
78
77
  };
79
78
  public lazyContainer: CommonInterFace.lazyContainer;
80
79
  public rootEleNode: HTMLElement | null;
81
80
  public miniApplogUtil: CommonInterFace.MiniApplogUtil;
82
81
  public miniAppLogInstance: CommonInterFace.MiniAppLog | null;
83
82
  public checkStatusAndLoginPromise: object | null;
84
83
  public wxAppLoginInstance: CommonInterFace.WxAppLogin;
85
84
  public wxAppBizInstance: CommonInterFace.WxAppUserInfo;
86
85
  public wxAppUserInfoInstance: CommonInterFace.WxAppUserInfo;
87
86
  public wxAppReportManageInstance: CommonInterFace.wxAppReportManage;
88
87
  public wxAppReportGDTInstance: CommonInterFace.WxAppReportGDT;
89
88
  public wxAppNavigatorInstance: CommonInterFace.WxAppNavigator;
90
89
  public wxAppParamsSignInstance: CommonInterFace.wxAppParamsSign;
91
90
  public wxAppFingerReportInstance: CommonInterFace.wxAppParamsSign;
92
91
  public wxAppSubsGuider: CommonInterFace.wxAppParamsSign;
93
92
  public loadJsSdkList: Array<any>
94
93
  public loadJsSdkListCachePromise: any
95
94
  constructor(opt) {
96
95
  this.info = this._getConfig(opt);
97
96
  this.config = {};
98
97
  this.lazyContainer = {
99
98
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]: {
100
99
  appLazyContainerList: [],
101
100
  appLazyFinishContainerList: [],
102
101
  },
103
102
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_PROMOTION]]: {
104
103
  appLazyContainerList: [],
105
104
  appLazyFinishContainerList: [],
106
105
  },
107
106
  };
108
107
  this.loadJsSdkList = []
109
108
  this.loadJsSdkListCachePromise = {}
110
109
  this.rootEleNode = null;
111
110
  this.miniApplogUtil = MiniAppLogUtil;
112
111
  this.miniAppLogInstance = null;
113
112
  this.checkStatusAndLoginPromise = null;
114
113
  this.wxAppLoginInstance = WXAPP_LOGIN;
115
114
  this.wxAppBizInstance = WXAPP_BIZ;
116
115
  this.wxAppUserInfoInstance = WXAPP_USER_INFO;
117
116
  this.wxAppReportManageInstance = WXAPP_REPORT_MANAGE;
118
117
  this.wxAppReportGDTInstance = WXAPP_REPORT_GDT;
119
118
  this.wxAppNavigatorInstance = WXAPP_NAVIGATOR;
120
119
  this.wxAppParamsSignInstance = WXAPP_PARAMS_SIGN;
121
120
  this.wxAppFingerReportInstance = WXAPP_FINGER_REPORT
122
121
  ? new WXAPP_FINGER_REPORT()
123
122
  : {};
124
123
  this.wxAppSubsGuider = null;
125
124
  }
126
125
  _getConfig(opt) {
127
126
  return Object.assign({}, DefaultConfig, opt);
128
127
  }
129
128
 
130
129
  taskTimeoutPromise(callBack, timeout = 2000) {
131
130
  return new Promise((resolve) => {
132
131
  setTimeout(() => {
133
132
  const getCallBackRes = typeof callBack === "function" && callBack();
134
133
  return resolve(getCallBackRes || false);
135
134
  }, timeout);
136
135
  });
137
136
  }
138
137
 
139
138
  updateBusinessDomainAndApi(domain, api) {
140
139
  }
141
140
 
142
141
  getFullScreenHeight(systemInfo) {
143
142
  const { screenHeight, statusBarHeight, isAndroid } = systemInfo;
144
143
  let result = screenHeight;
145
144
  if (statusBarHeight > 20 && isAndroid) {
146
145
  result = screenHeight + statusBarHeight;
147
146
  }
148
147
  return result;
149
148
  }
150
149
 
151
150
  getTabBarHeight(systemInfo) {
152
151
  const { statusBarHeight, isAndroid, isIOS } = systemInfo;
153
152
  let result = 50;
154
153
  if (statusBarHeight > 20) {
155
154
  if (isIOS) {
156
155
  result = 84;
157
156
  } else if (isAndroid) {
158
157
  result = 53;
159
158
  }
160
159
  }
161
160
  return result;
162
161
  }
163
162
 
164
163
  getSystemInfo() {
165
164
  const info: UtilsInterFace.taroGetSystemInfoSyncRes =
166
165
  getSystemInfos() || {};
167
166
  const actualNavBarHeight =
168
167
  (info?.navBarHeight || 0) + (info?.navBarExtendHeight || 0);
169
168
  const headerHeight = actualNavBarHeight + (info?.statusBarHeight || 0);
170
169
  const fullScreenHeight = this.getFullScreenHeight(info);
171
170
  const tabBarHeight = this.getTabBarHeight(info);
172
171
  const safeContentHeight = fullScreenHeight - headerHeight;
173
172
  this.info.sysInfo = {
174
173
  ...this.info.sysInfo,
175
174
  ...info,
176
175
  actualNavBarHeight,
177
176
  headerHeight,
178
177
  fullScreenHeight,
179
178
  tabBarHeight,
180
179
  safeContentHeight,
181
180
  };
182
181
  this.getEid().then((res: { eid: string }) => {
183
182
  res && res.eid && (this.info.sysInfo["eid"] = res.eid);
184
183
  });
185
184
  if (this.info.sysInfo["hostVersionName"]) {
186
185
  this.info.sysInfo["hostAppVersion"] = Number(
187
186
  this.info.sysInfo["hostVersionName"].replace(/\./g, "")
188
187
  );
189
188
  }
190
189
  this.info.sysInfo["wifiVideoAutoPlay"] = false;
191
190
  this.getNetWorkType();
192
191
  }
193
192
  async updateMPaasConfig() {}
194
193
 
195
194
  getNetWorkType() {
196
195
  Taro.getNetworkType().then((getRes) => {
197
196
  getRes &&
198
197
  getRes.networkType &&
199
198
  (this.info.sysInfo["netWorkType"] = getRes.networkType);
200
199
  });
201
200
  }
202
201
  getAPPUseStraightCorner () {
203
202
  return Promise.resolve(false)
204
203
  }
205
204
 
206
205
  checkStatusAndLogin(options = {}) {
207
206
  this.checkStatusAndLoginPromise = new Promise((resolve, reject) => {
208
207
  console.log(
209
208
  "微信小程序登录状态及获取cookie状态的promise,之前登录状态",
210
209
  this.info.loginState
211
210
  );
212
211
  this.toLogin(options)
213
212
  .then((res) => {
214
213
  console.log("微信小程序登录状态结果,成功", res);
215
214
  this.info.loginState = true;
216
215
  resolve(res);
217
216
  })
218
217
  .catch((err) => {
219
218
  console.log("微信小程序登录异常状态结果", err);
220
219
  this.doLogin(options)
221
220
  .then((res2) => {
222
221
  console.log("微信小程序wxDoLogin强制登陆成功:", res2);
223
222
  this.info.loginState = true;
224
223
  resolve(res2);
225
224
  })
226
225
  .catch((err2) => {
227
226
  console.log("微信小程序wxDoLogin强制登陆失败:", err2);
228
227
  this.checkStatusAndLoginPromise = null;
229
228
  reject(err2);
230
229
  });
231
230
  });
232
231
  });
233
232
  return this.checkStatusAndLoginPromise;
234
233
  }
235
234
 
236
235
  checkJdStatusAndLogin(options) {
237
236
  return this.checkStatusAndLogin(options);
238
237
  }
239
238
 
240
239
 
241
240
  doLoginForJdPin(options = {}) {
242
241
  return this.doLogin(options);
243
242
  }
244
243
 
245
244
  getEid() {
246
245
  if (typeof jd !== "undefined" && jd.getEid) {
247
246
  return new Promise((resolve, reject) => {
248
247
  jd.getEid({
249
248
  success: (res: { eid: string }) => {
250
249
  resolve(res);
251
250
  },
252
251
  fail: (err: any) => {
253
252
  reject(err);
254
253
  },
255
254
  });
256
255
  });
257
256
  } else {
258
257
  return Promise.resolve(false);
259
258
  }
260
259
  }
261
260
 
262
261
  toLogin(options = {}): Promise<any> {
263
262
  return this.wxAppLoginInstance
264
263
  .getLoginPromise({
265
264
  mode: "silent",
266
265
  loginColor: {
267
266
  biz: WXAPP_BIZ_KEY,
268
267
  dpin: 0,
269
268
  },
270
269
  ...options,
271
270
  })
272
271
  .then((res) => {
273
272
  console.log("微信app登录返回信息,微信侧返回code为0表示成功", res);
274
273
  setTimeout(() => {
275
274
  console.log(
276
275
  "微信app登录返回成功后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie"
277
276
  );
278
277
  this.getLoginCookie(`${Date.now()}`);
279
278
  }, 500);
280
279
  })
281
280
  .catch((err) => {
282
281
  console.log("微信app登录异常返回信息,也获取cookie", err);
283
282
  this.getLoginCookie(`${Date.now()}`);
284
283
  });
285
284
  }
286
285
 
287
286
  doLogin(options) {
288
287
  console.log("触发松果小程序 doLogin() new new");
289
288
  return new Promise((resolve, reject) => {
290
289
  jd.login({
291
290
  success: (res) => {
292
291
  if (res.code) {
293
292
  console.log("[common]松果小程序登录成功", res.code);
294
293
  jd.redirectTo({
295
294
  url: `/pages/shopx/pages/index/index?${objectToUrlEncode({
296
295
  ...this.info.originQueryInfo,
297
296
  })}`,
298
297
  });
299
298
  resolve(res);
300
299
  } else {
301
300
  console.error("[common]松果小程序登录失败", res.errMsg);
302
301
  reject();
303
302
  }
304
303
  },
305
304
  fail: (res) => {
306
305
  console.error("[common]松果小程序登录失败", res.errMsg);
307
306
  reject();
308
307
  },
309
308
  });
310
309
  });
311
310
  }
312
311
 
313
312
  getLoginCookie(updateKey = "wxapp") {
314
313
  return new Promise((resolve) => {
315
314
  console.log("开始获取更新wxapp中的cookie信息", updateKey);
316
315
  if (
317
316
  this.config.wqCookie &&
318
317
  this.config.wqCookieStr &&
319
318
  this.config.getWqCookieKey === updateKey
320
319
  ) {
321
320
  console.log("已有存储wxapp中的cookie信息,直接返回", this.config);
322
321
  resolve({
323
322
  wqCookie: this.config.wqCookie,
324
323
  wqCookieStr: this.config.wqCookieStr,
325
324
  });
326
325
  } else {
327
326
  if (isPublishToWxapp) {
328
327
  const getWxappCookieObj = getTaroStorageKeyValue("cookies") || null;
329
328
  if (getWxappCookieObj) {
330
329
  const getCookieObj = getWxappCookieObj["_data"];
331
330
  const { wqCookie, wqCookieStr } = getWxAppCookieStr(getCookieObj);
332
331
  const {
333
332
  pin = "",
334
333
  visitkey = "-1",
335
334
  wq_unionid = "",
336
335
  wxapp_openid = "",
337
336
  } = wqCookie;
338
337
  this.info.loginState = true;
339
338
  this.info.userInfo.wqCookie = wqCookieStr;
340
339
  this.info.userInfo.wqVisitkey = visitkey;
341
340
  console.log("获取用户完整cookie信息", getCookieObj);
342
341
  const getUserAddress = this.wxAppUserInfoInstance.getAddress();
343
342
  console.log("获取微信用户地址信息", getUserAddress);
344
343
  if (getUserAddress) {
345
344
  this.info.pageInfo.address = getUserAddress?.areaId;
346
345
  this.info.pageInfo.addressCommaStr = this.info.pageInfo.address
347
346
  ? this.info.pageInfo.address.replace(/_/g, ",")
348
347
  : "";
349
348
  this.info.pageInfo.un_area = this.info.pageInfo.address;
350
349
  Taro.eventCenter.trigger(
351
350
  TaroEventType.USER_AREA_UPDATE,
352
351
  this.info.pageInfo.address
353
352
  );
354
353
  }
355
354
  if (this.miniAppLogInstance) {
356
355
  this.miniAppLogInstance.set({
357
356
  account: pin,
358
357
  unionid: wq_unionid,
359
358
  openid: wxapp_openid,
360
359
  });
361
360
  }
362
361
  this.config.wqCookie = wqCookie;
363
362
  this.config.wqCookieStr = wqCookieStr;
364
363
  this.config.getWqCookieKey = updateKey;
365
364
  console.log("解析wxapp中的cookie信息成功,返回后存储", this.config);
366
365
  resolve({
367
366
  wqCookie,
368
367
  wqCookieStr,
369
368
  });
370
369
  } else {
371
370
  console.log(
372
371
  "解析wxapp中的cookie信息异常,返回异常结果",
373
372
  this.config
374
373
  );
375
374
  resolve({
376
375
  wqCookie: false,
377
376
  wqCookieStr: false,
378
377
  });
379
378
  }
380
379
  } else {
381
380
  resolve({
382
381
  wqCookie: false,
383
382
  wqCookieStr: false,
384
383
  });
385
384
  }
386
385
  }
387
386
  });
388
387
  }
389
388
 
390
389
 
391
390
  checkLoginStatus() {
392
391
  return this.getLoginCookie();
393
392
  }
394
393
 
395
394
  getAddressCachePromise = () => {
396
395
  return Promise.reject("该方法只在APP内适用");
397
396
  };
398
397
 
399
398
  getDynamicConfig(key: string) {
400
399
  console.warn(
401
400
  "调用松果小程序的 getDynamicConfig(),注意,此方法还未实现!"
402
401
  );
403
402
  return null;
404
403
  }
405
404
 
406
405
  updatePageAndLogInfo(updateQuery = {}) {
407
406
  const createUpdateQueryInfo: {
408
407
  query: {
409
408
  shopId?: string | number;
410
409
  venderId?: string | number;
411
410
  };
412
411
  updateShopInfoState: boolean;
413
412
  } = Object.assign(
414
413
  {},
415
414
  {
416
415
  query: {},
417
416
  updateShopInfoState: false,
418
417
  },
419
418
  updateQuery
420
419
  );
421
420
  console.log(
422
421
  "获取当前下发的店铺查询参数",
423
422
  updateQuery,
424
423
  "获取之前保存的shopInfo店铺查询参数",
425
424
  this.info?.shopInfo
426
425
  );
427
426
  const { query, updateShopInfoState } = createUpdateQueryInfo;
428
427
  const { shopId, venderId } = query;
429
428
  if (updateShopInfoState) {
430
429
  this.info.queryInfo = {
431
430
  ...this.info.queryInfo,
432
431
  ...query,
433
432
  };
434
433
  if (shopId && venderId) {
435
434
  this.info.shopInfo = {
436
435
  shopId: `${shopId}`,
437
436
  venderId: `${venderId}`,
438
437
  };
439
438
  }
440
439
  } else {
441
440
  this.info.queryInfo = {
442
441
  ...query,
443
442
  };
444
443
  this.info.originQueryInfo = {
445
444
  ...query,
446
445
  };
447
446
  if (
448
447
  this.info.shopInfo?.shopId &&
449
448
  this.info.shopInfo?.venderId &&
450
449
  (this.info.shopInfo.shopId == shopId ||
451
450
  this.info.shopInfo.venderId == venderId)
452
451
  ) {
453
452
  this.info.queryInfo.shopId = this.info.shopInfo.shopId;
454
453
  this.info.queryInfo.venderId = this.info.shopInfo.venderId;
455
454
  console.log(
456
455
  "当前存储的店铺shopId和venderId与下发的店铺信息shopId或者venderId为同一个,补充shopId或者venderId查询参数",
457
456
  this.info.queryInfo
458
457
  );
459
458
  }
460
459
  }
461
460
  this.info.queryInfo["shopId"] &&
462
461
  (this.info.queryInfo["shopId"] = `${this.info.queryInfo["shopId"]}`);
463
462
  this.info.queryInfo["venderId"] &&
464
463
  (this.info.queryInfo["venderId"] = `${this.info.queryInfo["venderId"]}`);
465
464
  console.log(
466
465
  "weapp===获取店铺下发查询参数\n",
467
466
  query,
468
467
  "\n获取店铺最后查询参数\n",
469
468
  this.info.queryInfo,
470
469
  "\n是否为更新店铺状态\n",
471
470
  updateShopInfoState
472
471
  );
473
472
  }
474
473
  renderNextTickLoadSdk(){
475
474
  console.warn("暂未实现 index.jd.ts")
476
475
  }
477
476
  loadOtherSdk(){
478
477
  console.warn("暂未实现 index.jd.ts")
479
478
  }
480
479
  loadItemSdkPromise(jsInfo = {}) {
481
480
  console.warn('暂未实现 index.jd.ts')
482
481
  }
482
+ import Taro from '@tarojs/taro';
483
483
  WXAPP_LOGIN,
484
484
  WXAPP_BIZ,
485
485
  WXAPP_USER_INFO,
486
486
  WXAPP_NAVIGATOR,
487
487
  WXAPP_REPORT_GDT,
488
488
  WXAPP_PARAMS_SIGN,
489
489
  WXAPP_FINGER_REPORT,
490
490
  WXAPP_REPORT_MANAGE,
491
491
  BUSINESS_TYPE,
492
492
  SHOP_MENU_ID_TYPE,
493
493
  SHOP_MENU_ID_NAME,
494
494
  SECTION_HOME_TAB_NAME_TYPE,
495
495
  SECTION_HOME_TAB_TYPE,
496
496
  TaroEventType,
497
497
  WX_BUSINESS_TYPE,
498
498
  WXAPP_BIZ_KEY,
499
499
  getSystemInfos,
500
500
  getTaroStorageKeyValue,
501
501
  removeTaroStorageKey,
502
502
  setTaroStorage,
503
503
  getWxAppCookieStr,
504
504
  objectToUrlEncode,
505
505
  languageNowType,
506
506
  abTestLabels: {},
507
507
  nonSellableSkuids: {},
508
508
  loginState: jdUserLoginState,
509
509
  cookiesStr: '',
510
510
  userInfo: userPinKey,
511
511
  isImmersive: false,
512
512
  baseAddCartSwitch: true,
513
513
  pageInfo: {
514
514
  wxBusinessType: WX_BUSINESS_TYPE.SHOP,
515
515
  address: '',
516
516
  addressCommaStr: '',
517
517
  fullAddress: '',
518
518
  un_area: '',
519
519
  userLbsAddress: '',
520
520
  vapptype: '1',
521
521
  pageType: 'home',
522
522
  dataType: BUSINESS_TYPE.ONLINE,
523
523
  floorExposureInfo: {},
524
524
  floorVideInfo: {},
525
525
  productVideInfo: {},
526
526
  tabsLoadAllDataInfo: {
527
527
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]: false,
528
528
  [SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY]]: true,
529
529
  },
530
530
  updateShopInfosAllState: false,
531
531
  isVipShop: false,
532
532
  isJdShowNativeImmersivePlayer: false,
533
533
  isSuperBrandShop: false,
534
534
  ...shopConfig,
535
535
  pageScrollTop: 0,
536
536
  pageIdxHeightInfo: {
537
537
  list: [],
538
538
  },
539
539
  shopNavBarHeight: 0,
540
540
  },
541
541
  defaultQueryLogInfo: {
542
542
  sourceType: 'JDshop',
543
543
  sourceValue: '',
544
544
  moduleId: 'none',
545
545
  entrance: 'none',
546
546
  },
547
547
  originQueryInfo: {},
548
548
  sysInfo: {
549
549
  windowWidth: 0,
550
550
  windowHeight: 0,
551
551
  eid: appEid,
552
552
  netWorkType: '4g',
553
553
  jdBottomBarHeight: 0,
554
554
  jdNativeHeaderHeight: 0,
555
555
  },
556
556
  queryInfo: {},
557
557
  shopInfo: {},
558
558
  openAppData: {},
559
559
  public info: CommonInterFace.BaseConfigInfo;
560
560
  public config: {
561
561
  [key: string]: any;
562
562
  };
563
563
  public lazyContainer: CommonInterFace.lazyContainer;
564
564
  public rootEleNode: HTMLElement | null;
565
565
  public miniApplogUtil: CommonInterFace.MiniApplogUtil;
566
566
  public miniAppLogInstance: CommonInterFace.MiniAppLog | null;
567
567
  public checkStatusAndLoginPromise: object | null;
568
568
  public wxAppLoginInstance: CommonInterFace.WxAppLogin;
569
569
  public wxAppBizInstance: CommonInterFace.WxAppUserInfo;
570
570
  public wxAppUserInfoInstance: CommonInterFace.WxAppUserInfo;
571
571
  public wxAppReportManageInstance: CommonInterFace.wxAppReportManage;
572
572
  public wxAppReportGDTInstance: CommonInterFace.WxAppReportGDT;
573
573
  public wxAppNavigatorInstance: CommonInterFace.WxAppNavigator;
574
574
  public wxAppParamsSignInstance: CommonInterFace.wxAppParamsSign;
575
575
  public wxAppFingerReportInstance: CommonInterFace.wxAppParamsSign;
576
576
  public wxAppSubsGuider: CommonInterFace.wxAppParamsSign;
577
577
  public loadJsSdkList: Array<any>;
578
578
  public loadJsSdkListCachePromise: any;
579
579
  public languageJsonData: any | null;
580
580
  public businessWorkerReady: boolean;
581
581
  public jdWorkerReadyPromise: any | null;
582
582
  constructor(opt) {
583
583
  this.info = this._getConfig(opt);
584
584
  this.config = {};
585
585
  this.lazyContainer = {
586
586
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]: {
587
587
  appLazyContainerList: [],
588
588
  appLazyFinishContainerList: [],
589
589
  },
590
590
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_PROMOTION]]: {
591
591
  appLazyContainerList: [],
592
592
  appLazyFinishContainerList: [],
593
593
  },
594
594
  };
595
595
  this.loadJsSdkList = [];
596
596
  this.loadJsSdkListCachePromise = {};
597
597
  this.rootEleNode = null;
598
598
  this.miniApplogUtil = MiniAppLogUtil;
599
599
  this.miniAppLogInstance = null;
600
600
  this.checkStatusAndLoginPromise = null;
601
601
  this.wxAppLoginInstance = WXAPP_LOGIN;
602
602
  this.wxAppBizInstance = WXAPP_BIZ;
603
603
  this.wxAppUserInfoInstance = WXAPP_USER_INFO;
604
604
  this.wxAppReportManageInstance = WXAPP_REPORT_MANAGE;
605
605
  this.wxAppReportGDTInstance = WXAPP_REPORT_GDT;
606
606
  this.wxAppNavigatorInstance = WXAPP_NAVIGATOR;
607
607
  this.wxAppParamsSignInstance = WXAPP_PARAMS_SIGN;
608
608
  this.wxAppFingerReportInstance = WXAPP_FINGER_REPORT ? new WXAPP_FINGER_REPORT() : {};
609
609
  this.wxAppSubsGuider = null;
610
610
  this.languageJsonData = langeJsonDataForCn;
611
611
  this.businessWorkerReady = false;
612
612
  this.jdWorkerReadyPromise = Promise.resolve(false);
613
613
  }
614
614
  _getConfig(opt) {
615
615
  return Object.assign({}, DefaultConfig, opt);
616
616
  }
617
617
  loadApiSafeSteadyReayPromise() {
618
618
  return Promise.resolve(true);
619
619
  }
620
620
  loadH5tagReayPromise() {
621
621
  return Promise.resolve(true);
622
622
  }
623
623
 
624
624
  jmfeReayPromise(): Promise<any> {
625
625
  return Promise.reject(false);
626
626
  }
627
627
 
628
628
  taskTimeoutPromise(callBack, timeout = 2000) {
629
629
  return new Promise((resolve) => {
630
630
  setTimeout(() => {
631
631
  const getCallBackRes = typeof callBack === 'function' && callBack();
632
632
  return resolve(getCallBackRes || false);
633
633
  }, timeout);
634
634
  });
635
635
  }
636
636
 
637
637
  updateBusinessDomainAndApi(domain, api) {
638
638
  }
639
639
 
640
640
  getFullScreenHeight(systemInfo) {
641
641
  const { screenHeight, statusBarHeight, isAndroid } = systemInfo;
642
642
  let result = screenHeight;
643
643
  if (statusBarHeight > 20 && isAndroid) {
644
644
  result = screenHeight + statusBarHeight;
645
645
  }
646
646
  return result;
647
647
  }
648
648
 
649
649
  getTabBarHeight(systemInfo) {
650
650
  const { statusBarHeight, isAndroid, isIOS } = systemInfo;
651
651
  let result = 50;
652
652
  if (statusBarHeight > 20) {
653
653
  if (isIOS) {
654
654
  result = 84;
655
655
  } else if (isAndroid) {
656
656
  result = 53;
657
657
  }
658
658
  }
659
659
  return result;
660
660
  }
661
661
 
662
662
  getSystemInfo() {
663
663
  const info: UtilsInterFace.taroGetSystemInfoSyncRes = getSystemInfos() || {};
664
664
  const actualNavBarHeight = (info?.navBarHeight || 0) + (info?.navBarExtendHeight || 0);
665
665
  const headerHeight = actualNavBarHeight + (info?.statusBarHeight || 0);
666
666
  const fullScreenHeight = this.getFullScreenHeight(info);
667
667
  const tabBarHeight = this.getTabBarHeight(info);
668
668
  const safeContentHeight = fullScreenHeight - headerHeight;
669
669
  this.info.sysInfo = {
670
670
  ...this.info.sysInfo,
671
671
  ...info,
672
672
  actualNavBarHeight,
673
673
  headerHeight,
674
674
  fullScreenHeight,
675
675
  tabBarHeight,
676
676
  safeContentHeight,
677
677
  languageType: languageNowType,
678
678
  };
679
679
  this.getEid().then((res: { eid: string }) => {
680
680
  res && res.eid && (this.info.sysInfo['eid'] = res.eid);
681
681
  });
682
682
  if (this.info.sysInfo['hostVersionName']) {
683
683
  this.info.sysInfo['hostAppVersion'] = Number(
684
684
  this.info.sysInfo['hostVersionName'].replace(/\./g, ''),
685
685
  );
686
686
  }
687
687
  this.info.sysInfo['wifiVideoAutoPlay'] = false;
688
688
  this.getNetWorkType();
689
689
  }
690
690
  async updateMPaasConfig() {}
691
691
 
692
692
  getNetWorkType() {
693
693
  Taro.getNetworkType().then((getRes) => {
694
694
  getRes && getRes.networkType && (this.info.sysInfo['netWorkType'] = getRes.networkType);
695
695
  });
696
696
  }
697
697
  getAPPUseStraightCorner() {
698
698
  return Promise.resolve(false);
699
699
  }
700
700
 
701
701
  checkStatusAndLogin(options = {}) {
702
702
  this.checkStatusAndLoginPromise = new Promise((resolve, reject) => {
703
703
  console.log('微信小程序登录状态及获取cookie状态的promise,之前登录状态', this.info.loginState);
704
704
  this.toLogin(options)
705
705
  .then((res) => {
706
706
  console.log('微信小程序登录状态结果,成功', res);
707
707
  this.info.loginState = true;
708
708
  resolve(res);
709
709
  })
710
710
  .catch((err) => {
711
711
  console.log('微信小程序登录异常状态结果', err);
712
712
  this.doLogin(options)
713
713
  .then((res2) => {
714
714
  console.log('微信小程序wxDoLogin强制登陆成功:', res2);
715
715
  this.info.loginState = true;
716
716
  resolve(res2);
717
717
  })
718
718
  .catch((err2) => {
719
719
  console.log('微信小程序wxDoLogin强制登陆失败:', err2);
720
720
  this.checkStatusAndLoginPromise = null;
721
721
  reject(err2);
722
722
  });
723
723
  });
724
724
  });
725
725
  return this.checkStatusAndLoginPromise;
726
726
  }
727
727
 
728
728
  checkJdStatusAndLogin(options) {
729
729
  return this.checkStatusAndLogin(options);
730
730
  }
731
731
 
732
732
 
733
733
  doLoginForJdPin(options = {}) {
734
734
  return this.doLogin(options);
735
735
  }
736
736
 
737
737
  getEid() {
738
738
  if (typeof jd !== 'undefined' && jd.getEid) {
739
739
  return new Promise((resolve, reject) => {
740
740
  jd.getEid({
741
741
  success: (res: { eid: string }) => {
742
742
  resolve(res);
743
743
  },
744
744
  fail: (err: any) => {
745
745
  reject(err);
746
746
  },
747
747
  });
748
748
  });
749
749
  } else {
750
750
  return Promise.resolve(false);
751
751
  }
752
752
  }
753
753
 
754
754
  toLogin(options = {}): Promise<any> {
755
755
  return this.wxAppLoginInstance
756
756
  .getLoginPromise({
757
757
  mode: 'silent',
758
758
  loginColor: {
759
759
  biz: WXAPP_BIZ_KEY,
760
760
  dpin: 0,
761
761
  },
762
762
  ...options,
763
763
  })
764
764
  .then((res) => {
765
765
  console.log('微信app登录返回信息,微信侧返回code为0表示成功', res);
766
766
  setTimeout(() => {
767
767
  console.log(
768
768
  '微信app登录返回成功后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie',
769
769
  );
770
770
  this.getLoginCookie(`${Date.now()}`);
771
771
  }, 500);
772
772
  })
773
773
  .catch((err) => {
774
774
  console.log('微信app登录异常返回信息,也获取cookie', err);
775
775
  this.getLoginCookie(`${Date.now()}`);
776
776
  });
777
777
  }
778
778
 
779
779
  doLogin(options) {
780
780
  console.log('触发松果小程序 doLogin() new new');
781
781
  return new Promise((resolve, reject) => {
782
782
  jd.login({
783
783
  success: (res) => {
784
784
  if (res.code) {
785
785
  console.log('[common]松果小程序登录成功', res.code);
786
786
  jd.redirectTo({
787
787
  url: `/pages/shopx/pages/index/index?${objectToUrlEncode({
788
788
  ...this.info.originQueryInfo,
789
789
  })}`,
790
790
  });
791
791
  resolve(res);
792
792
  } else {
793
793
  console.error('[common]松果小程序登录失败', res.errMsg);
794
794
  reject();
795
795
  }
796
796
  },
797
797
  fail: (res) => {
798
798
  console.error('[common]松果小程序登录失败', res.errMsg);
799
799
  reject();
800
800
  },
801
801
  });
802
802
  });
803
803
  }
804
804
 
805
805
  getLoginCookie(updateKey = 'wxapp') {
806
806
  return new Promise((resolve) => {
807
807
  console.log('开始获取更新wxapp中的cookie信息', updateKey);
808
808
  if (
809
809
  this.config.wqCookie &&
810
810
  this.config.wqCookieStr &&
811
811
  this.config.getWqCookieKey === updateKey
812
812
  ) {
813
813
  console.log('已有存储wxapp中的cookie信息,直接返回', this.config);
814
814
  resolve({
815
815
  wqCookie: this.config.wqCookie,
816
816
  wqCookieStr: this.config.wqCookieStr,
817
817
  });
818
818
  } else {
819
819
  if (isPublishToWxapp) {
820
820
  const getWxappCookieObj = getTaroStorageKeyValue('cookies') || null;
821
821
  if (getWxappCookieObj) {
822
822
  const getCookieObj = getWxappCookieObj['_data'];
823
823
  const { wqCookie, wqCookieStr } = getWxAppCookieStr(getCookieObj);
824
824
  const { pin = '', visitkey = '-1', wq_unionid = '', wxapp_openid = '' } = wqCookie;
825
825
  this.info.loginState = true;
826
826
  this.info.userInfo.wqCookie = wqCookieStr;
827
827
  this.info.userInfo.wqVisitkey = visitkey;
828
828
  console.log('获取用户完整cookie信息', getCookieObj);
829
829
  const getUserAddress = this.wxAppUserInfoInstance.getAddress();
830
830
  console.log('获取微信用户地址信息', getUserAddress);
831
831
  if (getUserAddress) {
832
832
  this.info.pageInfo.address = getUserAddress?.areaId;
833
833
  this.info.pageInfo.addressCommaStr = this.info.pageInfo.address
834
834
  ? this.info.pageInfo.address.replace(/_/g, ',')
835
835
  : '';
836
836
  this.info.pageInfo.un_area = this.info.pageInfo.address;
837
837
  Taro.eventCenter.trigger(TaroEventType.USER_AREA_UPDATE, {
838
838
  area: this.info.pageInfo.address,
839
839
  });
840
840
  }
841
841
  if (this.miniAppLogInstance) {
842
842
  this.miniAppLogInstance.set({
843
843
  account: pin,
844
844
  unionid: wq_unionid,
845
845
  openid: wxapp_openid,
846
846
  });
847
847
  }
848
848
  this.config.wqCookie = wqCookie;
849
849
  this.config.wqCookieStr = wqCookieStr;
850
850
  this.config.getWqCookieKey = updateKey;
851
851
  console.log('解析wxapp中的cookie信息成功,返回后存储', this.config);
852
852
  resolve({
853
853
  wqCookie,
854
854
  wqCookieStr,
855
855
  });
856
856
  } else {
857
857
  console.log('解析wxapp中的cookie信息异常,返回异常结果', this.config);
858
858
  resolve({
859
859
  wqCookie: false,
860
860
  wqCookieStr: false,
861
861
  });
862
862
  }
863
863
  } else {
864
864
  resolve({
865
865
  wqCookie: false,
866
866
  wqCookieStr: false,
867
867
  });
868
868
  }
869
869
  }
870
870
  });
871
871
  }
872
872
 
873
873
 
874
874
  checkLoginStatus() {
875
875
  return this.getLoginCookie();
876
876
  }
877
877
 
878
878
  getAddressCachePromise() {
879
879
  return Promise.reject('该方法只在APP内适用');
880
880
  }
881
881
 
882
882
  getLbsAddressCachePromise() {
883
883
  return Promise.resolve({
884
884
  status: '-1005',
885
885
  msg: '暂未实现,获取失败',
886
886
  });
887
887
  }
888
888
 
889
889
  getDynamicConfig(key: string) {
890
890
  console.warn('调用松果小程序的 getDynamicConfig(),注意,此方法还未实现!');
891
891
  return null;
892
892
  }
893
893
 
894
894
  updatePageAndLogInfo(updateQuery = {}) {
895
895
  const createUpdateQueryInfo: {
896
896
  query: {
897
897
  shopId?: string | number;
898
898
  venderId?: string | number;
899
899
  };
900
900
  updateShopInfoState: boolean;
901
901
  } = Object.assign(
902
902
  {},
903
903
  {
904
904
  query: {},
905
905
  updateShopInfoState: false,
906
906
  },
907
907
  updateQuery,
908
908
  );
909
909
  console.log(
910
910
  '获取当前下发的店铺查询参数',
911
911
  updateQuery,
912
912
  '获取之前保存的shopInfo店铺查询参数',
913
913
  this.info?.shopInfo,
914
914
  );
915
915
  const { query, updateShopInfoState } = createUpdateQueryInfo;
916
916
  const { shopId, venderId } = query;
917
917
  if (updateShopInfoState) {
918
918
  this.info.queryInfo = {
919
919
  ...this.info.queryInfo,
920
920
  ...query,
921
921
  };
922
922
  if (shopId && venderId) {
923
923
  this.info.shopInfo = {
924
924
  shopId: `${shopId}`,
925
925
  venderId: `${venderId}`,
926
926
  };
927
927
  }
928
928
  } else {
929
929
  this.info.queryInfo = {
930
930
  ...query,
931
931
  };
932
932
  this.info.originQueryInfo = {
933
933
  ...query,
934
934
  };
935
935
  if (
936
936
  this.info.shopInfo?.shopId &&
937
937
  this.info.shopInfo?.venderId &&
938
938
  (this.info.shopInfo.shopId == shopId || this.info.shopInfo.venderId == venderId)
939
939
  ) {
940
940
  this.info.queryInfo.shopId = this.info.shopInfo.shopId;
941
941
  this.info.queryInfo.venderId = this.info.shopInfo.venderId;
942
942
  console.log(
943
943
  '当前存储的店铺shopId和venderId与下发的店铺信息shopId或者venderId为同一个,补充shopId或者venderId查询参数',
944
944
  this.info.queryInfo,
945
945
  );
946
946
  }
947
947
  }
948
948
  this.info.queryInfo['shopId'] &&
949
949
  (this.info.queryInfo['shopId'] = `${this.info.queryInfo['shopId']}`);
950
950
  this.info.queryInfo['venderId'] &&
951
951
  (this.info.queryInfo['venderId'] = `${this.info.queryInfo['venderId']}`);
952
952
  console.log(
953
953
  'weapp===获取店铺下发查询参数\n',
954
954
  query,
955
955
  '\n获取店铺最后查询参数\n',
956
956
  this.info.queryInfo,
957
957
  '\n是否为更新店铺状态\n',
958
958
  updateShopInfoState,
959
959
  );
960
960
  }
961
961
  renderNextTickLoadSdk() {
962
962
  console.warn('暂未实现 index.jd.ts');
963
963
  }
964
964
  loadOtherSdk() {
965
965
  console.warn('暂未实现 index.jd.ts');
966
966
  }
967
967
  loadItemSdkPromise(jsInfo = {}) {
968
968
  console.warn('暂未实现 index.jd.ts');
969
969
  }
970
970
  createLanguageProimse() {
971
971
  return Promise.reject({
972
972
  msg: '暂未实现',
973
973
  });
974
974
  }