ts-glitter 21.9.2 → 21.9.6

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 (75) hide show
  1. package/lowcode/Entry.js +1 -1
  2. package/lowcode/Entry.ts +1 -1
  3. package/lowcode/backend-manager/bg-product.js +1 -1
  4. package/lowcode/backend-manager/bg-product.ts +2 -1
  5. package/lowcode/cms-plugin/app-market-install.js +97 -0
  6. package/lowcode/cms-plugin/app-market-install.ts +123 -0
  7. package/lowcode/cms-plugin/app-market-published.js +42 -0
  8. package/lowcode/cms-plugin/app-market-published.ts +70 -0
  9. package/lowcode/cms-plugin/app-market.js +286 -0
  10. package/lowcode/cms-plugin/app-market.ts +343 -0
  11. package/lowcode/cms-plugin/filter-options.js +7 -0
  12. package/lowcode/cms-plugin/filter-options.ts +10 -0
  13. package/lowcode/cms-plugin/shopping-information.js +19 -463
  14. package/lowcode/cms-plugin/shopping-information.ts +50 -582
  15. package/lowcode/css/editor.css +13 -0
  16. package/lowcode/glitter-base/global/language.js +6 -0
  17. package/lowcode/glitter-base/global/language.ts +6 -0
  18. package/lowcode/glitter-base/route/market.js +43 -0
  19. package/lowcode/glitter-base/route/market.ts +47 -0
  20. package/lowcode/glitter-base/route/shopping.js +15 -0
  21. package/lowcode/glitter-base/route/shopping.ts +24 -5
  22. package/lowcode/glitterBundle/dialog/dialog.js +2 -2
  23. package/lowcode/glitterBundle/dialog/dialog.ts +5 -5
  24. package/lowcode/jspage/function-page/main_editor.js +2 -2
  25. package/lowcode/jspage/function-page/main_editor.ts +2 -2
  26. package/lowcode/jspage/function-page/setting_editor.js +27 -0
  27. package/lowcode/jspage/function-page/setting_editor.ts +27 -0
  28. package/lowcode/public-components/user-manager/um-order.js +158 -60
  29. package/lowcode/public-components/user-manager/um-order.ts +229 -73
  30. package/package.json +1 -1
  31. package/src/api-public/controllers/app-market.d.ts +3 -0
  32. package/src/api-public/controllers/app-market.js +51 -0
  33. package/src/api-public/controllers/app-market.js.map +1 -0
  34. package/src/api-public/controllers/app-market.ts +59 -0
  35. package/src/api-public/controllers/index.js +3 -0
  36. package/src/api-public/controllers/index.js.map +1 -1
  37. package/src/api-public/controllers/index.ts +3 -0
  38. package/src/api-public/controllers/shop.js +38 -6
  39. package/src/api-public/controllers/shop.js.map +1 -1
  40. package/src/api-public/controllers/shop.ts +94 -61
  41. package/src/api-public/controllers/user.js +2 -2
  42. package/src/api-public/controllers/user.js.map +1 -1
  43. package/src/api-public/controllers/user.ts +2 -3
  44. package/src/api-public/services/app-market.d.ts +26 -0
  45. package/src/api-public/services/app-market.js +385 -0
  46. package/src/api-public/services/app-market.js.map +1 -0
  47. package/src/api-public/services/app-market.ts +412 -0
  48. package/src/api-public/services/auto-send-email.js +4 -3
  49. package/src/api-public/services/auto-send-email.js.map +1 -1
  50. package/src/api-public/services/auto-send-email.ts +3 -2
  51. package/src/api-public/services/checkout-event.js +7 -26
  52. package/src/api-public/services/checkout-event.js.map +1 -1
  53. package/src/api-public/services/checkout-event.ts +18 -43
  54. package/src/api-public/services/model/handlePaymentTransaction.js +0 -1
  55. package/src/api-public/services/model/handlePaymentTransaction.js.map +1 -1
  56. package/src/api-public/services/model/handlePaymentTransaction.ts +3 -81
  57. package/src/api-public/services/shopping.d.ts +1 -0
  58. package/src/api-public/services/shopping.js +7 -7
  59. package/src/api-public/services/shopping.js.map +1 -1
  60. package/src/api-public/services/shopping.ts +15 -59
  61. package/src/api-public/services/user.js +2 -2
  62. package/src/api-public/services/user.js.map +1 -1
  63. package/src/api-public/services/user.ts +2 -2
  64. package/src/config.d.ts +1 -0
  65. package/src/config.js +1 -0
  66. package/src/config.js.map +1 -1
  67. package/src/config.ts +1 -0
  68. package/src/public-config-initial/auto-fcm.d.ts +1 -0
  69. package/src/public-config-initial/auto-fcm.js +6 -4
  70. package/src/public-config-initial/auto-fcm.js.map +1 -1
  71. package/src/public-config-initial/auto-fcm.ts +14 -9
  72. package/src/services/app.js +7 -17
  73. package/src/services/app.js.map +1 -1
  74. package/src/services/backend-service.js +7 -17
  75. package/src/services/backend-service.js.map +1 -1
@@ -17,6 +17,8 @@ import { Language } from '../../glitter-base/global/language.js';
17
17
  import { CheckInput } from '../../modules/checkInput.js';
18
18
  import { ShipmentConfig } from '../../glitter-base/global/shipment-config.js';
19
19
  import { Animation } from '../../glitterBundle/module/Animation.js';
20
+ import { BgWidget } from '../../backend-manager/bg-widget.js';
21
+ import { GlobalUser } from '../../glitter-base/global/global-user.js';
20
22
  const html = String.raw;
21
23
  const css = String.raw;
22
24
  export class UMOrder {
@@ -172,30 +174,30 @@ export class UMOrder {
172
174
  cursor: pointer;
173
175
  }
174
176
  .customer-btn-text {
175
- line-height:normal;
177
+ line-height: normal;
176
178
  text-align: center;
177
179
  color: white;
178
180
  font-size: 14px;
179
181
  font-weight: 400;
180
182
  letter-spacing: 0.56px;
181
183
  }
182
-
184
+
183
185
  .payment-section {
184
186
  border: 1px solid #ccc;
185
187
  padding: 10px;
186
188
  margin-bottom: 20px;
187
189
  }
188
190
  #repay-button {
189
- height:32px;
190
-
191
+ height: 32px;
192
+
191
193
  background-color: #4caf50;
192
194
  color: white;
193
- border-radius:10px;
195
+ border-radius: 10px;
194
196
  padding: 6px 14px;
195
197
  border: none;
196
198
  cursor: pointer;
197
199
  }
198
-
200
+
199
201
  #repay-button:hover {
200
202
  background-color: #45a049;
201
203
  }
@@ -258,9 +260,10 @@ export class UMOrder {
258
260
  padding: 0 24px;
259
261
  margin: 18px 0;
260
262
  }
263
+
261
264
  .button-text {
262
- color: #fff;
263
- font-size: 16px;
265
+ color: #fff;
266
+ font-size: 16px;
264
267
  }
265
268
  `);
266
269
  return gvc.bindView({
@@ -268,12 +271,17 @@ export class UMOrder {
268
271
  view: () => {
269
272
  return html ` <div class="w-100 h-100 d-flex align-items-center justify-content-center">
270
273
  ${document.body.clientWidth < 800
271
- ? `
272
- <div class="bg-white position-relative vw-100" style="height: ${window.innerHeight}px;overflow-y: auto;
273
- padding-top:${50 + gvc.glitter.share.top_inset}px;
274
- ">
275
- `
276
- : `<div class="p-3 bg-white position-relative" style="max-height: calc(100vh - 90px);overflow-y:auto;">`}
274
+ ? html `
275
+ <div
276
+ class="bg-white position-relative vw-100"
277
+ style="height: ${window.innerHeight}px;overflow-y: auto; padding-top:${50 +
278
+ gvc.glitter.share.top_inset}px;"
279
+ ></div>
280
+ `
281
+ : html ` <div
282
+ class="p-3 bg-white position-relative"
283
+ style="max-height: calc(100vh - 90px);overflow-y:auto;"
284
+ ></div>`}
277
285
  <div
278
286
  style="position: absolute; right: 15px;top:${15 + gvc.glitter.share.top_inset}px;z-index:1;"
279
287
  onclick="${gvc.event(() => {
@@ -282,7 +290,7 @@ export class UMOrder {
282
290
  >
283
291
  <i class="fa-regular fa-circle-xmark fs-5 text-dark cursor_pointer"></i>
284
292
  </div>
285
- <div id="paynow-container" >
293
+ <div id="paynow-container">
286
294
  <div style="width:200px;height:200px;">loading...</div>
287
295
  </div>
288
296
  <div class="px-3 px-sm-0 w-100">
@@ -291,7 +299,6 @@ export class UMOrder {
291
299
  id="checkoutButton"
292
300
  onclick="${gvc.event(() => {
293
301
  const PayNow = window.PayNow;
294
- const dialog = new ShareDialog(gvc.glitter);
295
302
  dialog.dataLoading({ visible: true });
296
303
  PayNow.checkout().then((response) => {
297
304
  dialog.dataLoading({ visible: false });
@@ -309,8 +316,8 @@ export class UMOrder {
309
316
  </div>`;
310
317
  },
311
318
  divCreate: {
312
- class: ` h-100 d-flex align-items-center justify-content-center`,
313
- style: `max-width:100vw;${document.body.clientWidth < 800 ? 'width:100%;' : 'width:400px;'};`,
319
+ class: `h-100 d-flex align-items-center justify-content-center`,
320
+ style: `max-width: 100vw; ${document.body.clientWidth < 800 ? 'width: 100%;' : 'width: 400px;'}`,
314
321
  },
315
322
  onCreate: () => {
316
323
  var _a, _b;
@@ -339,7 +346,7 @@ export class UMOrder {
339
346
  });
340
347
  },
341
348
  });
342
- }, `paynow`, {
349
+ }, 'paynow', {
343
350
  animation: document.body.clientWidth > 800 ? Animation.fade : Animation.popup,
344
351
  dismiss: () => {
345
352
  document.body.style.setProperty('overflow-y', 'auto');
@@ -349,7 +356,7 @@ export class UMOrder {
349
356
  }
350
357
  default: {
351
358
  const id = gvc.glitter.getUUID();
352
- $('body').append(`<div id="${id}" style="display: none;">${res.response.form}</div>`);
359
+ $('body').append(html ` <div id="${id}" style="display: none;">${res.response.form}</div>`);
353
360
  document.querySelector(`#${id} #submit`).click();
354
361
  }
355
362
  }
@@ -357,9 +364,12 @@ export class UMOrder {
357
364
  static repay(gvc, orderData) {
358
365
  const id = orderData.cart_token;
359
366
  const dialog = new ShareDialog(gvc.glitter);
360
- dialog.dataLoading({ visible: true, text: Language.text('loading') });
361
367
  const redirect = gvc.glitter.root_path + 'order_detail' + location.search;
362
368
  const url = new URL(redirect, location.href);
369
+ dialog.dataLoading({
370
+ visible: true,
371
+ text: Language.text('loading'),
372
+ });
363
373
  return new Promise(() => {
364
374
  ApiShop.repay(id, url.href).then(res => {
365
375
  dialog.dataLoading({ visible: false });
@@ -389,15 +399,8 @@ export class UMOrder {
389
399
  });
390
400
  }
391
401
  static main(gvc, widget, subData) {
392
- this.addStyle(gvc);
393
- gvc.addMtScript([
394
- {
395
- src: `https://js.paynow.com.tw/sdk/v2/index.js?v=20250430`,
396
- },
397
- ], () => { }, () => { });
398
- UmClass.addStyle(gvc);
399
402
  const glitter = gvc.glitter;
400
- const dialog = new ShareDialog(gvc.glitter);
403
+ const dialog = new ShareDialog(glitter);
401
404
  const ids = {
402
405
  view: glitter.getUUID(),
403
406
  };
@@ -408,13 +411,120 @@ export class UMOrder {
408
411
  data: {},
409
412
  type: '',
410
413
  formList: [],
414
+ passport: false,
415
+ verify_code: '',
416
+ buyer_name: '',
417
+ buyer_phone: '',
411
418
  };
419
+ this.addStyle(gvc);
420
+ gvc.addMtScript([
421
+ {
422
+ src: `https://js.paynow.com.tw/sdk/v2/index.js?v=20250430`,
423
+ },
424
+ ], () => { }, () => { });
425
+ UmClass.addStyle(gvc);
426
+ let changePage = (index, type, subData) => { };
427
+ gvc.glitter.getModule(new URL('./official_event/page/change-page.js', gvc.glitter.root_path).href, cl => {
428
+ changePage = cl.changePage;
429
+ });
412
430
  const repayArray = ['ecPay', 'newWebPay', 'paypal', 'jkopay', 'paynow', 'line_pay'];
431
+ function loadOrderData() {
432
+ ApiShop.getOrder({
433
+ limit: 1,
434
+ page: 0,
435
+ data_from: 'user',
436
+ search: glitter.getUrlParameter('cart_token'),
437
+ searchType: 'cart_token',
438
+ buyer_name: vm.buyer_name,
439
+ buyer_phone: vm.buyer_phone
440
+ }).then((res) => {
441
+ if (res.result && res.response.data && res.response.data[0]) {
442
+ vm.data = res.response.data[0];
443
+ loadings.view = false;
444
+ gvc.notifyDataChange(ids.view);
445
+ }
446
+ else {
447
+ dialog.errorMessage({
448
+ text: Language.text('order_not_found'),
449
+ });
450
+ guestCheckView();
451
+ }
452
+ });
453
+ }
454
+ function guestCheckView() {
455
+ BgWidget.settingDialog({
456
+ gvc: gvc,
457
+ title: Language.text('find_order'),
458
+ innerHTML: () => {
459
+ return html ` <div class="p-3">
460
+ ${[
461
+ Language.text('if_buyer_no_account').replace('#login', gvc.event(() => {
462
+ gvc.closeDialog();
463
+ gvc.glitter.href = '/login';
464
+ })),
465
+ `<div class="border-top w-100 my-3"></div>`,
466
+ BgWidget.editeInput({
467
+ gvc,
468
+ title: Language.text('order_number'),
469
+ default: glitter.getUrlParameter('cart_token'),
470
+ placeHolder: `${Language.text('please_enter')} ${Language.text('order_number')}`,
471
+ callback: value => {
472
+ glitter.setUrlParameter('cart_token', value);
473
+ },
474
+ }),
475
+ BgWidget.editeInput({
476
+ gvc,
477
+ title: Language.text('customer_name'),
478
+ default: vm.buyer_name,
479
+ placeHolder: `${Language.text('please_enter')} ${Language.text('customer_name')}`,
480
+ callback: value => {
481
+ vm.buyer_name = value;
482
+ },
483
+ }),
484
+ BgWidget.editeInput({
485
+ gvc,
486
+ title: Language.text('customer_phone'),
487
+ default: vm.buyer_phone,
488
+ placeHolder: `${Language.text('please_enter')} ${Language.text('customer_phone')}`,
489
+ callback: value => {
490
+ vm.buyer_phone = value;
491
+ },
492
+ }),
493
+ ].join('')}
494
+ </div>`;
495
+ },
496
+ footer_html: (gvc) => {
497
+ return `<div class="w-100 d-flex border-top mt-0 py-2 px-3">
498
+ <div class="flex-fill"></div>
499
+ ${[
500
+ ` <button
501
+ class="customer-btn-text "
502
+ style=" height: 32px;
503
+ padding: 6px 14px;
504
+ background: #393939;
505
+ border-radius: 10px;
506
+ justify-content: center;
507
+ align-items: center;
508
+ display: inline-flex;
509
+ cursor: pointer;"
510
+ id=""
511
+ onclick="${gvc.event(() => {
512
+ loadOrderData();
513
+ gvc.closeDialog();
514
+ })}"
515
+ >
516
+ 查詢
517
+ </button>`,
518
+ ].join('')}
519
+ </div>`;
520
+ },
521
+ });
522
+ }
413
523
  return html ` <div class="container py-4">
414
524
  ${gvc.bindView({
415
525
  bind: ids.view,
416
526
  dataList: [{ obj: vm, key: 'type' }],
417
- view: () => {
527
+ view: () => __awaiter(this, void 0, void 0, function* () {
418
528
  try {
419
529
  if (loadings.view) {
420
530
  return UmClass.spinner({
@@ -429,7 +539,8 @@ export class UMOrder {
429
539
  const orderData = vm.data.orderData;
430
540
  if (window.store_info.pickup_mode) {
431
541
  dialog.infoMessage({
432
- text: `取貨時請核對您的取貨號碼,您的取貨號碼為<br><div class="fw-bold fs-5 text-danger">『 ${vm.data.shipment_number} 號 』</div>`,
542
+ text: html `取貨時請核對您的取貨號碼,您的取貨號碼為<br />
543
+ <div class="fw-bold fs-5 text-danger">『 ${vm.data.shipment_number} 號 』</div>`,
433
544
  });
434
545
  }
435
546
  const showUploadProof = orderData.method === 'off_line' &&
@@ -507,7 +618,6 @@ export class UMOrder {
507
618
  class="o-title-container ${item.title === Language.text('payment_instructions')
508
619
  ? 'align-items-start mt-2'
509
620
  : ''}"
510
-
511
621
  >
512
622
  <div class="o-title me-1" style="white-space: nowrap;">${item.title}:</div>
513
623
  <div class="o-title fr-view">${item.value}</div>
@@ -661,7 +771,7 @@ export class UMOrder {
661
771
  <h3 class="mb-3">${Language.text('order_details')}</h3>
662
772
  ${gvc.map(orderData.lineItems.map(item => {
663
773
  return html `
664
- <div class="o-line-item ${document.body.clientWidth < 800 ? `p-2` : ``}">
774
+ <div class="o-line-item ${document.body.clientWidth < 800 ? 'p-2' : ''}">
665
775
  <div class="d-flex gap-3 align-items-center">
666
776
  <div>
667
777
  ${UmClass.validImageBox({
@@ -696,11 +806,8 @@ export class UMOrder {
696
806
  });
697
807
  })}"
698
808
  >
699
- ${(() => {
700
- const title = (item.language_data && item.language_data[Language.getLanguage()].title) ||
701
- item.title;
702
- return title;
703
- })()}
809
+ ${(item.language_data && item.language_data[Language.getLanguage()].title) ||
810
+ item.title}
704
811
  </p>
705
812
  <p class="o-item-spec">
706
813
  ${item.spec.length > 0
@@ -726,7 +833,7 @@ export class UMOrder {
726
833
  })()}`
727
834
  : Language.text('single_specification')}
728
835
  </p>
729
- <span class="me-3 d-sm-none">NT ${item.sale_price.toLocaleString()} × ${item.count}</span>
836
+ <span class="me-3 d-sm-none">NT ${item.sale_price.toLocaleString()} × ${item.count}</span>
730
837
  </div>
731
838
  </div>
732
839
  <div class="d-none d-sm-flex">
@@ -890,7 +997,7 @@ export class UMOrder {
890
997
  value: (() => {
891
998
  switch (orderData.orderStatus) {
892
999
  case '-1':
893
- return `<div class="text-danger">${Language.text('cancelled')}</div>`;
1000
+ return html ` <div class="text-danger">${Language.text('cancelled')}</div>`;
894
1001
  case '1':
895
1002
  return Language.text('completed');
896
1003
  case '-99':
@@ -1206,33 +1313,24 @@ export class UMOrder {
1206
1313
  }
1207
1314
  catch (e) {
1208
1315
  console.error(e);
1209
- return ``;
1316
+ return '';
1210
1317
  }
1211
- },
1318
+ }),
1212
1319
  divCreate: {
1213
1320
  class: 'd-flex align-items-center justify-content-center gap-3 flex-column',
1214
1321
  style: 'min-height: 50vh;',
1215
1322
  },
1216
- onCreate: () => {
1323
+ onCreate: () => __awaiter(this, void 0, void 0, function* () {
1217
1324
  if (loadings.view) {
1218
- ApiShop.getOrder({
1219
- limit: 1,
1220
- page: 0,
1221
- data_from: 'user',
1222
- search: glitter.getUrlParameter('cart_token'),
1223
- searchType: 'cart_token',
1224
- }).then((res) => {
1225
- if (res.result && res.response.data) {
1226
- vm.data = res.response.data[0];
1227
- }
1228
- else {
1229
- vm.data = {};
1230
- }
1231
- loadings.view = false;
1232
- gvc.notifyDataChange(ids.view);
1233
- });
1325
+ vm.passport = glitter.share.GlobalUser.token ? Boolean(yield UmClass.getUserData(gvc)) : vm.passport;
1326
+ if (GlobalUser.token) {
1327
+ loadOrderData();
1328
+ }
1329
+ else {
1330
+ guestCheckView();
1331
+ }
1234
1332
  }
1235
- },
1333
+ }),
1236
1334
  })}
1237
1335
  </div>`;
1238
1336
  }