ts-glitter 20.7.4 → 20.7.5

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 (248) hide show
  1. package/jr9x7k3aau.json +1 -0
  2. package/lowcode/Entry.js +1 -1
  3. package/lowcode/Entry.ts +1 -1
  4. package/lowcode/backend-manager/bg-notify.js +2 -0
  5. package/lowcode/backend-manager/bg-notify.ts +2 -0
  6. package/lowcode/backend-manager/bg-widget.js +280 -155
  7. package/lowcode/backend-manager/bg-widget.ts +387 -244
  8. package/lowcode/backend-manager/splitPage.js +27 -52
  9. package/lowcode/backend-manager/splitPage.ts +29 -47
  10. package/lowcode/cms-plugin/app-release.js +63 -13
  11. package/lowcode/cms-plugin/app-release.ts +73 -13
  12. package/lowcode/cms-plugin/auto-fcm-advertise.js +23 -24
  13. package/lowcode/cms-plugin/auto-fcm-advertise.ts +286 -285
  14. package/lowcode/cms-plugin/auto-reply.js +285 -273
  15. package/lowcode/cms-plugin/auto-reply.ts +673 -660
  16. package/lowcode/cms-plugin/module/data.ts +1 -0
  17. package/lowcode/cms-plugin/module/order-setting.js +134 -117
  18. package/lowcode/cms-plugin/module/order-setting.ts +152 -138
  19. package/lowcode/cms-plugin/pos-pages/products-page.js +8 -16
  20. package/lowcode/cms-plugin/pos-pages/products-page.ts +10 -12
  21. package/lowcode/cms-plugin/shopping-order-manager.js +244 -289
  22. package/lowcode/cms-plugin/shopping-order-manager.ts +128 -156
  23. package/lowcode/cms-plugin/shopping-order-return.js +1 -1
  24. package/lowcode/cms-plugin/shopping-order-return.ts +1 -1
  25. package/lowcode/cms-plugin/shopping-product-setting.js +3 -3
  26. package/lowcode/cms-plugin/shopping-product-setting.ts +3 -3
  27. package/lowcode/cms-plugin/shopping-setting-advance.js +3 -28
  28. package/lowcode/cms-plugin/shopping-setting-advance.ts +3 -28
  29. package/lowcode/cms-plugin/stock-history.js +31 -15
  30. package/lowcode/cms-plugin/stock-history.ts +43 -25
  31. package/lowcode/cms-plugin/third-party-google.js +2 -2
  32. package/lowcode/cms-plugin/third-party-google.ts +2 -2
  33. package/lowcode/cms-plugin/user-list.js +166 -113
  34. package/lowcode/cms-plugin/user-list.ts +136 -78
  35. package/lowcode/form-view/e-commerce/path-select.js +100 -87
  36. package/lowcode/form-view/e-commerce/path-select.ts +372 -343
  37. package/lowcode/glitter-base/route/stock.ts +153 -141
  38. package/lowcode/glitterBundle/plugins/editor-elem.js +139 -149
  39. package/lowcode/glitterBundle/plugins/editor-elem.ts +207 -222
  40. package/lowcode/public-components/blogs/list.js +8 -16
  41. package/lowcode/public-components/blogs/list.ts +10 -12
  42. package/lowcode/public-components/product/product-list.js +8 -16
  43. package/lowcode/public-components/product/product-list.ts +10 -12
  44. package/lowcode/public-components/user-manager/um-login.js +268 -265
  45. package/lowcode/public-components/user-manager/um-login.ts +987 -983
  46. package/lowcode/public-models/order-info.js +12 -20
  47. package/lowcode/public-models/order-info.ts +13 -12
  48. package/package.json +1 -1
  49. package/src/Language.js.map +1 -1
  50. package/src/api-public/controllers/ai-chat.js.map +1 -1
  51. package/src/api-public/controllers/ai-points.js.map +1 -1
  52. package/src/api-public/controllers/app-release.js.map +1 -1
  53. package/src/api-public/controllers/article.js.map +1 -1
  54. package/src/api-public/controllers/chat.js.map +1 -1
  55. package/src/api-public/controllers/customer-sessions.js.map +1 -1
  56. package/src/api-public/controllers/delivery.js.map +1 -1
  57. package/src/api-public/controllers/fb-message.js.map +1 -1
  58. package/src/api-public/controllers/fb-service.js.map +1 -1
  59. package/src/api-public/controllers/fcm.js.map +1 -1
  60. package/src/api-public/controllers/graph-api.js.map +1 -1
  61. package/src/api-public/controllers/index.js.map +1 -1
  62. package/src/api-public/controllers/invoice.js.map +1 -1
  63. package/src/api-public/controllers/lambda.js.map +1 -1
  64. package/src/api-public/controllers/line-message.js.map +1 -1
  65. package/src/api-public/controllers/manager.js.map +1 -1
  66. package/src/api-public/controllers/oauth.js.map +1 -1
  67. package/src/api-public/controllers/post.js.map +1 -1
  68. package/src/api-public/controllers/progress.js.map +1 -1
  69. package/src/api-public/controllers/rebate.js.map +1 -1
  70. package/src/api-public/controllers/recommend.js.map +1 -1
  71. package/src/api-public/controllers/reconciliation.js.map +1 -1
  72. package/src/api-public/controllers/shop.js.map +1 -1
  73. package/src/api-public/controllers/shopee.js.map +1 -1
  74. package/src/api-public/controllers/sms-points.js.map +1 -1
  75. package/src/api-public/controllers/sms.js.map +1 -1
  76. package/src/api-public/controllers/smtp.js.map +1 -1
  77. package/src/api-public/controllers/sql_api.js.map +1 -1
  78. package/src/api-public/controllers/stock.js.map +1 -1
  79. package/src/api-public/controllers/track.js.map +1 -1
  80. package/src/api-public/controllers/user.js +1 -1
  81. package/src/api-public/controllers/user.js.map +1 -1
  82. package/src/api-public/controllers/user.ts +1 -1
  83. package/src/api-public/controllers/voucher.js.map +1 -1
  84. package/src/api-public/controllers/wallet.js.map +1 -1
  85. package/src/api-public/models/glitter-finance.js +2 -1
  86. package/src/api-public/models/glitter-finance.js.map +1 -1
  87. package/src/api-public/services/EcInvoice.js.map +1 -1
  88. package/src/api-public/services/ai-pointes.js.map +1 -1
  89. package/src/api-public/services/ai-robot.d.ts +1 -0
  90. package/src/api-public/services/ai-robot.js.map +1 -1
  91. package/src/api-public/services/article.js.map +1 -1
  92. package/src/api-public/services/auto-send-email.js.map +1 -1
  93. package/src/api-public/services/chat.js.map +1 -1
  94. package/src/api-public/services/checkout-event.d.ts +3 -1
  95. package/src/api-public/services/checkout-event.js +7 -4
  96. package/src/api-public/services/checkout-event.js.map +1 -1
  97. package/src/api-public/services/checkout-event.ts +26 -17
  98. package/src/api-public/services/checkout.js.map +1 -1
  99. package/src/api-public/services/custom-code.js.map +1 -1
  100. package/src/api-public/services/customer-sessions.js.map +1 -1
  101. package/src/api-public/services/data-analyze.js +3 -3
  102. package/src/api-public/services/data-analyze.js.map +1 -1
  103. package/src/api-public/services/data-analyze.ts +3 -3
  104. package/src/api-public/services/delivery.js.map +1 -1
  105. package/src/api-public/services/ezpay/tool.d.ts +1 -0
  106. package/src/api-public/services/ezpay/tool.js.map +1 -1
  107. package/src/api-public/services/fake-data-model/fake-order.js.map +1 -1
  108. package/src/api-public/services/fake-data-model/fake-product.js.map +1 -1
  109. package/src/api-public/services/fake-data-model/fake-user.js.map +1 -1
  110. package/src/api-public/services/fb-api.d.ts +1 -0
  111. package/src/api-public/services/fb-api.js.map +1 -1
  112. package/src/api-public/services/fb-message.d.ts +1 -0
  113. package/src/api-public/services/fb-message.js.map +1 -1
  114. package/src/api-public/services/fb-service.js +4 -4
  115. package/src/api-public/services/fb-service.js.map +1 -1
  116. package/src/api-public/services/filter-protect-data.js.map +1 -1
  117. package/src/api-public/services/financial-service.d.ts +1 -0
  118. package/src/api-public/services/financial-service.js.map +1 -1
  119. package/src/api-public/services/form-check.js.map +1 -1
  120. package/src/api-public/services/graph-api.js.map +1 -1
  121. package/src/api-public/services/initial-fake-data.js.map +1 -1
  122. package/src/api-public/services/invoice.js.map +1 -1
  123. package/src/api-public/services/language-setting.js.map +1 -1
  124. package/src/api-public/services/line-message.d.ts +1 -0
  125. package/src/api-public/services/line-message.js.map +1 -1
  126. package/src/api-public/services/mail.js.map +1 -1
  127. package/src/api-public/services/manager.js.map +1 -1
  128. package/src/api-public/services/model/handlePaymentTransaction.js.map +1 -1
  129. package/src/api-public/services/model/shopnex-line-message.js.map +1 -1
  130. package/src/api-public/services/monitor.d.ts +1 -0
  131. package/src/api-public/services/monitor.js.map +1 -1
  132. package/src/api-public/services/notify.js.map +1 -1
  133. package/src/api-public/services/order-event.js.map +1 -1
  134. package/src/api-public/services/paynow-logistics.js.map +1 -1
  135. package/src/api-public/services/phone-verify.js.map +1 -1
  136. package/src/api-public/services/pos.js.map +1 -1
  137. package/src/api-public/services/post.js.map +1 -1
  138. package/src/api-public/services/product-initial.js.map +1 -1
  139. package/src/api-public/services/public-table-check.js.map +1 -1
  140. package/src/api-public/services/rebate.js.map +1 -1
  141. package/src/api-public/services/recommend.js.map +1 -1
  142. package/src/api-public/services/reconciliation.js.map +1 -1
  143. package/src/api-public/services/schedule.js.map +1 -1
  144. package/src/api-public/services/share-permission.d.ts +1 -1
  145. package/src/api-public/services/share-permission.js.map +1 -1
  146. package/src/api-public/services/shopee.d.ts +1 -0
  147. package/src/api-public/services/shopee.js.map +1 -1
  148. package/src/api-public/services/shopping.js +5 -9
  149. package/src/api-public/services/shopping.js.map +1 -1
  150. package/src/api-public/services/shopping.ts +4 -10
  151. package/src/api-public/services/sms-pointes.js.map +1 -1
  152. package/src/api-public/services/sms.js.map +1 -1
  153. package/src/api-public/services/stock.js.map +1 -1
  154. package/src/api-public/services/terms-check.js.map +1 -1
  155. package/src/api-public/services/updated-table-checked.js.map +1 -1
  156. package/src/api-public/services/user-update.js.map +1 -1
  157. package/src/api-public/services/user.d.ts +6 -1
  158. package/src/api-public/services/user.js +23 -15
  159. package/src/api-public/services/user.js.map +1 -1
  160. package/src/api-public/services/user.ts +100 -90
  161. package/src/api-public/services/voucher.js.map +1 -1
  162. package/src/api-public/services/wallet.js.map +1 -1
  163. package/src/api-public/services/workers.js.map +1 -1
  164. package/src/api-public/utils/ut-database.js.map +1 -1
  165. package/src/api-public/utils/ut-permission.d.ts +1 -0
  166. package/src/api-public/utils/ut-permission.js.map +1 -1
  167. package/src/app-project/serverless/src/controllers/index.js.map +1 -1
  168. package/src/app-project/serverless/src/controllers/sample.js.map +1 -1
  169. package/src/app-project/serverless/src/modules/database.d.ts +2 -1
  170. package/src/app-project/serverless/src/modules/database.js.map +1 -1
  171. package/src/app-project/serverless/src/modules/exception.js.map +1 -1
  172. package/src/app-project/serverless/src/modules/hooks.js.map +1 -1
  173. package/src/app-project/serverless/src/modules/logger.js.map +1 -1
  174. package/src/app-project/serverless/src/modules/redis.d.ts +1 -1
  175. package/src/app-project/serverless/src/modules/redis.js.map +1 -1
  176. package/src/app-project/serverless/src/modules/response.js.map +1 -1
  177. package/src/app-project/serverless/src/modules/ssh.js.map +1 -1
  178. package/src/config.d.ts +1 -1
  179. package/src/config.js.map +1 -1
  180. package/src/controllers/ai.js.map +1 -1
  181. package/src/controllers/app.js.map +1 -1
  182. package/src/controllers/backend-server.js.map +1 -1
  183. package/src/controllers/filemanager.js.map +1 -1
  184. package/src/controllers/global-event.js.map +1 -1
  185. package/src/controllers/index.js.map +1 -1
  186. package/src/controllers/page.js.map +1 -1
  187. package/src/controllers/private_config.js.map +1 -1
  188. package/src/controllers/template.js.map +1 -1
  189. package/src/controllers/user.js.map +1 -1
  190. package/src/domain-check.js.map +1 -1
  191. package/src/export/export-test.js.map +1 -1
  192. package/src/firebase/message.js +2 -1
  193. package/src/firebase/message.js.map +1 -1
  194. package/src/helper/app_creater.js +2 -1
  195. package/src/helper/app_creater.js.map +1 -1
  196. package/src/helper/glitter-util.d.ts +1 -0
  197. package/src/helper/glitter-util.js.map +1 -1
  198. package/src/index.js +3 -3
  199. package/src/index.js.map +1 -1
  200. package/src/lambda/interface.d.ts +1 -1
  201. package/src/lambda/interface.js +2 -2
  202. package/src/lambda/interface.js.map +1 -1
  203. package/src/modules/AWSLib.js +3 -2
  204. package/src/modules/AWSLib.js.map +1 -1
  205. package/src/modules/caught-error.js.map +1 -1
  206. package/src/modules/database.d.ts +2 -1
  207. package/src/modules/database.js.map +1 -1
  208. package/src/modules/exception.js.map +1 -1
  209. package/src/modules/firebase.js.map +1 -1
  210. package/src/modules/hooks.js.map +1 -1
  211. package/src/modules/logger.js.map +1 -1
  212. package/src/modules/redis.d.ts +1 -1
  213. package/src/modules/redis.js.map +1 -1
  214. package/src/modules/response.js.map +1 -1
  215. package/src/modules/ssh.js.map +1 -1
  216. package/src/modules/tool.d.ts +4 -4
  217. package/src/modules/tool.js +2 -1
  218. package/src/modules/tool.js.map +1 -1
  219. package/src/public-config-initial/auto-fcm.js.map +1 -1
  220. package/src/run.js +2 -1
  221. package/src/run.js.map +1 -1
  222. package/src/seo-config.d.ts +1 -0
  223. package/src/seo-config.js +3 -3
  224. package/src/seo-config.js.map +1 -1
  225. package/src/services/ai.js.map +1 -1
  226. package/src/services/app.js.map +1 -1
  227. package/src/services/backend-service.js.map +1 -1
  228. package/src/services/create-instance.js +4 -3
  229. package/src/services/create-instance.js.map +1 -1
  230. package/src/services/global-event.js.map +1 -1
  231. package/src/services/ios-release.js.map +1 -1
  232. package/src/services/page.js.map +1 -1
  233. package/src/services/private_config.js.map +1 -1
  234. package/src/services/release.js.map +1 -1
  235. package/src/services/saas-table-check.js +2 -2
  236. package/src/services/saas-table-check.js.map +1 -1
  237. package/src/services/seo.js.map +1 -1
  238. package/src/services/ses.js +2 -1
  239. package/src/services/ses.js.map +1 -1
  240. package/src/services/system-schedule.js.map +1 -1
  241. package/src/services/template.js.map +1 -1
  242. package/src/services/tool.js +3 -2
  243. package/src/services/tool.js.map +1 -1
  244. package/src/services/user.js.map +1 -1
  245. package/src/services/web-socket.js.map +1 -1
  246. package/src/update-progress-track.js.map +1 -1
  247. package/src/update-script.js.map +1 -1
  248. package/src/api-public/services/checkout-service.js +0 -1074
@@ -25,6 +25,7 @@ type ViewModel = {
25
25
  id: string;
26
26
  loading: boolean;
27
27
  filterId: string;
28
+ tabLoading: boolean;
28
29
  tableId: string;
29
30
  barId: string;
30
31
  progressId: string;
@@ -49,6 +50,12 @@ export class UserList {
49
50
  page: 1,
50
51
  };
51
52
 
53
+ static statusBadge: any = {
54
+ 0: () => BgWidget.dangerInsignia('已停用'),
55
+ 1: () => BgWidget.infoInsignia('啟用中'),
56
+ 2: () => BgWidget.warningInsignia('觀察中'),
57
+ };
58
+
52
59
  static main(
53
60
  gvc: GVC,
54
61
  obj?: {
@@ -63,6 +70,7 @@ export class UserList {
63
70
  const vm: ViewModel = {
64
71
  id: glitter.getUUID(),
65
72
  loading: true,
73
+ tabLoading: true,
66
74
  type: 'list',
67
75
  data: {},
68
76
  dataList: undefined,
@@ -70,7 +78,7 @@ export class UserList {
70
78
  queryType: '',
71
79
  orderString: '',
72
80
  filter: {},
73
- filter_type: `normal`,
81
+ filter_type: 'normal',
74
82
  filterId: glitter.getUUID(),
75
83
  tableId: glitter.getUUID(),
76
84
  barId: glitter.getUUID(),
@@ -161,13 +169,7 @@ export class UserList {
161
169
  },
162
170
  {
163
171
  key: '用戶狀態',
164
- value: (() => {
165
- if (dd.status === 1) {
166
- return html`<div class="badge bg-info fs-7" style="max-height:34px;">啟用中</div>`;
167
- } else {
168
- return html`<div class="badge bg-danger fs-7" style="max-height:34px;">已停用</div>`;
169
- }
170
- })(),
172
+ value: (UserList.statusBadge[dd.status] || UserList.statusBadge['1'])(),
171
173
  },
172
174
  ].filter(item => {
173
175
  if (!vm.headerConfig.includes(item.key)) {
@@ -287,6 +289,10 @@ export class UserList {
287
289
  title: '一般列表',
288
290
  key: 'normal',
289
291
  },
292
+ {
293
+ title: '觀察名單',
294
+ key: 'watch',
295
+ },
290
296
  {
291
297
  title: '黑名單',
292
298
  key: 'block',
@@ -301,6 +307,10 @@ export class UserList {
301
307
  title: '一般列表',
302
308
  key: 'normal',
303
309
  },
310
+ {
311
+ title: '觀察名單',
312
+ key: 'watch',
313
+ },
304
314
  {
305
315
  title: '黑名單',
306
316
  key: 'block',
@@ -309,8 +319,18 @@ export class UserList {
309
319
  gvc,
310
320
  vm.filter_type,
311
321
  text => {
312
- vm.filter_type = text as any;
313
- gvc.notifyDataChange(vm.id);
322
+ if (vm.tabLoading) {
323
+ BgWidget.jumpAlert({
324
+ gvc,
325
+ text: '系統繁忙中,請稍後重試',
326
+ justify: 'top',
327
+ align: 'center',
328
+ width: 240,
329
+ });
330
+ } else {
331
+ vm.filter_type = text as any;
332
+ gvc.notifyDataChange(vm.id);
333
+ }
314
334
  }
315
335
  )}
316
336
  ${BgWidget.container(
@@ -411,8 +431,10 @@ export class UserList {
411
431
  gvc: gvc,
412
432
  getData: vd => {
413
433
  vmi = vd;
434
+ vm.tabLoading = true;
414
435
  UserList.vm.page = vmi.page;
415
436
  const limit = 20;
437
+
416
438
  vm.apiJSON = {
417
439
  page: vmi.page - 1,
418
440
  limit: limit,
@@ -449,6 +471,7 @@ export class UserList {
449
471
  }
450
472
 
451
473
  vmi.loading = false;
474
+ vm.tabLoading = false;
452
475
  vmi.callback();
453
476
  });
454
477
  },
@@ -542,10 +565,12 @@ export class UserList {
542
565
  }
543
566
  ) {
544
567
  const glitter = gvc.glitter;
568
+ const dialog = new ShareDialog(glitter);
545
569
 
546
570
  const vm: ViewModel = {
547
571
  id: glitter.getUUID(),
548
572
  loading: true,
573
+ tabLoading: true,
549
574
  type: 'list',
550
575
  data: {},
551
576
  dataList: undefined,
@@ -553,7 +578,7 @@ export class UserList {
553
578
  queryType: '',
554
579
  orderString: '',
555
580
  filter: {},
556
- filter_type: `normal`,
581
+ filter_type: 'normal',
557
582
  filterId: glitter.getUUID(),
558
583
  tableId: glitter.getUUID(),
559
584
  barId: glitter.getUUID(),
@@ -599,13 +624,7 @@ export class UserList {
599
624
  },
600
625
  {
601
626
  key: '用戶狀態',
602
- value: (() => {
603
- if (dd.status === 1) {
604
- return html`<div class="badge bg-info fs-7" style="max-height:34px;">啟用中</div>`;
605
- } else {
606
- return html`<div class="badge bg-danger fs-7" style="max-height:34px;">已停用</div>`;
607
- }
608
- })(),
627
+ value: (UserList.statusBadge[dd.status] || UserList.statusBadge['1'])(),
609
628
  },
610
629
  ];
611
630
  });
@@ -696,7 +715,6 @@ export class UserList {
696
715
  {
697
716
  name: '批量移除',
698
717
  event: checkedData => {
699
- const dialog = new ShareDialog(gvc.glitter);
700
718
  dialog.checkYesOrNot({
701
719
  text: '是否確認刪除所選項目?',
702
720
  callback: response => {
@@ -855,6 +873,7 @@ export class UserList {
855
873
  type: 'list',
856
874
  plan: GlobalUser.getPlan().id,
857
875
  };
876
+ const dialog = new ShareDialog(gvc.glitter);
858
877
 
859
878
  function regetData() {
860
879
  ApiUser.getPublicUserData(cf.userID).then(dd => {
@@ -980,7 +999,6 @@ export class UserList {
980
999
  ${BgWidget.grayButton(
981
1000
  '刪除顧客',
982
1001
  gvc.event(() => {
983
- const dialog = new ShareDialog(gvc.glitter);
984
1002
  dialog.warningMessage({
985
1003
  text: '您即將刪除此顧客的所有資料,此操作無法復原。確定要刪除嗎?',
986
1004
  callback: response => {
@@ -997,29 +1015,77 @@ export class UserList {
997
1015
  })
998
1016
  )}
999
1017
  ${BgWidget.grayButton(
1000
- vm.data.status ? '加入黑名單' : '解除黑名單',
1018
+ '調整顧客狀態',
1001
1019
  gvc.event(() => {
1002
- const dialog = new ShareDialog(gvc.glitter);
1003
- dialog.warningMessage({
1004
- text: vm.data.status
1005
- ? '加入黑名單之後,此顧客將無法再進行登入、購買及使用其他功能。<br/>確定要加入黑名單嗎?'
1006
- : '解除黑名單後,此顧客將恢復正常權限。<br/>確定要解除黑名單嗎?',
1007
- callback: response => {
1008
- if (response) {
1009
- dialog.dataLoading({ text: '更新中', visible: true });
1010
- vm.data.userData.type = vm.data.status ? 'block' : 'normal';
1011
- ApiUser.updateUserDataManager(vm.data, vm.data.userID).then(response => {
1012
- dialog.dataLoading({ text: '', visible: false });
1013
- if (response.result) {
1014
- regetData();
1015
- dialog.successMessage({ text: '更新成功' });
1016
- vm.loading = true;
1017
- gvc.notifyDataChange(vm.id);
1018
- } else {
1019
- dialog.errorMessage({ text: '更新異常' });
1020
- }
1021
- });
1022
- }
1020
+ BgWidget.dialog({
1021
+ gvc,
1022
+ title: '調整顧客狀態',
1023
+ innerHTML: gvc => {
1024
+ return html`
1025
+ <div>
1026
+ <div class="tx_700 mb-2">將此顧客狀態修改成:</div>
1027
+ <div class="d-flex gap-2 ${document.body.clientWidth > 768 ? '' : 'flex-column'}">
1028
+ ${[
1029
+ { title: '一般會員', value: 'normal' },
1030
+ { title: '觀察名單', value: 'watch' },
1031
+ { title: '黑名單', value: 'block' },
1032
+ ]
1033
+ .filter(item => {
1034
+ return [
1035
+ vm.data.status === 0 && item.value === 'block',
1036
+ vm.data.status === 1 && item.value === 'normal',
1037
+ vm.data.status === 2 && item.value === 'watch',
1038
+ ].every(bool => !bool);
1039
+ })
1040
+ .map(item => {
1041
+ return BgWidget.customButton({
1042
+ button: {
1043
+ color: 'snow',
1044
+ size: 'md',
1045
+ class: 'w-100',
1046
+ style: 'min-height: 60px;',
1047
+ },
1048
+ text: {
1049
+ name: item.title,
1050
+ },
1051
+ event: gvc.event(() => {
1052
+ try {
1053
+ gvc.closeDialog();
1054
+
1055
+ function call() {
1056
+ dialog.dataLoading({ text: '更新中', visible: true });
1057
+ vm.data.userData.type = item.value;
1058
+ ApiUser.updateUserDataManager(vm.data, vm.data.userID).then(response => {
1059
+ dialog.dataLoading({ text: '', visible: false });
1060
+ if (response.result) {
1061
+ regetData();
1062
+ dialog.successMessage({ text: '更新成功' });
1063
+ vm.loading = true;
1064
+ gvc.notifyDataChange(vm.id);
1065
+ } else {
1066
+ dialog.errorMessage({ text: '更新異常' });
1067
+ }
1068
+ });
1069
+ }
1070
+
1071
+ if (item.value === 'block') {
1072
+ dialog.warningMessage({
1073
+ text: '加入黑名單之後,<br/>此顧客將無法再進行登入、購買及使用其他功能。<br/>確定要加入黑名單嗎?',
1074
+ callback: response => response && call(),
1075
+ });
1076
+ } else {
1077
+ call();
1078
+ }
1079
+ } catch (error) {
1080
+ console.error(error);
1081
+ }
1082
+ }),
1083
+ });
1084
+ })
1085
+ .join('')}
1086
+ </div>
1087
+ </div>
1088
+ `;
1023
1089
  },
1024
1090
  });
1025
1091
  })
@@ -1109,7 +1175,7 @@ export class UserList {
1109
1175
  ${BgWidget.editeInput({
1110
1176
  gvc,
1111
1177
  title: '',
1112
- default: referObj[item.key] || '',
1178
+ default: `${referObj[item.key] || ''}`,
1113
1179
  placeHolder: `請輸入${item.title}`,
1114
1180
  callback: text => {
1115
1181
  referObj[item.key] = text;
@@ -1349,9 +1415,7 @@ export class UserList {
1349
1415
  return [
1350
1416
  [
1351
1417
  html`<div class="tx_700">會員等級</div>`,
1352
- html`<div class="badge bg-dark fs-7" style="max-height: 34px;">
1353
- ${vm.data.member_level.tag_name}
1354
- </div>`,
1418
+ BgWidget.secondaryInsignia(vm.data.member_level.tag_name),
1355
1419
  ].join(BgWidget.mbContainer(12)),
1356
1420
  [
1357
1421
  html`
@@ -1588,17 +1652,15 @@ export class UserList {
1588
1652
  ? html`<div
1589
1653
  style="font-size: 32px; font-weight: 400; color: #393939;"
1590
1654
  >
1591
- ${formatNum(totalPrice)}
1655
+ $${formatNum(totalPrice)}
1592
1656
  </div>`
1593
1657
  : '尚無消費紀錄'
1594
1658
  ),
1595
1659
  renderInfoBlock(
1596
1660
  '累計消費次數',
1597
- `<div
1598
- style="font-size: 32px; font-weight: 400; color: #393939;"
1599
- >
1600
- ${formatNum(totalOrders)}次
1601
- </div>`
1661
+ html`<div style="font-size: 32px; font-weight: 400; color: #393939;">
1662
+ ${formatNum(totalOrders)}次
1663
+ </div>`
1602
1664
  ),
1603
1665
  renderInfoBlock(
1604
1666
  '最後消費金額',
@@ -1606,7 +1668,7 @@ export class UserList {
1606
1668
  ? html`<div
1607
1669
  style="font-size: 32px; font-weight: 400; color: #393939;"
1608
1670
  >
1609
- ${formatNum(firstData.orderData.total)}
1671
+ $${formatNum(firstData.orderData.total)}
1610
1672
  </div>`
1611
1673
  : '尚無消費紀錄'
1612
1674
  ),
@@ -1728,7 +1790,6 @@ export class UserList {
1728
1790
  gvc: gvc,
1729
1791
  saveButton: {
1730
1792
  event: obj => {
1731
- const dialog = new ShareDialog(gvc.glitter);
1732
1793
  dialog.dataLoading({
1733
1794
  text: '發送中...',
1734
1795
  visible: true,
@@ -1832,24 +1893,26 @@ export class UserList {
1832
1893
  return {
1833
1894
  bind: id,
1834
1895
  view: () => {
1835
- return new Promise(async (resolve, reject) => {
1896
+ return new Promise(async resolve => {
1836
1897
  await saasConfig.api.getPrivateConfig(
1837
1898
  saasConfig.config.appName,
1838
1899
  'glitterUserForm'
1839
1900
  );
1840
1901
 
1841
- let h = html`
1842
- ${vm.plan > 1
1902
+ const textList = [
1903
+ html`<div class="gray-bottom-line-18">
1904
+ <div class="tx_700">會員狀態</div>
1905
+ <div style="margin-top: 12px">${UserList.statusBadge[vm.data.status]()}</div>
1906
+ </div>`,
1907
+ vm.plan > 1
1843
1908
  ? html`<div class="gray-bottom-line-18">
1844
1909
  <div class="tx_700">會員等級</div>
1845
1910
  <div style="margin-top: 12px">
1846
- <div class="badge bg-dark fs-7" style="max-height: 34px;">
1847
- ${vm.data.member_level.tag_name}
1848
- </div>
1911
+ ${BgWidget.secondaryInsignia(vm.data.member_level.tag_name)}
1849
1912
  </div>
1850
1913
  </div>`
1851
- : ''}
1852
- <div class="gray-bottom-line-18">
1914
+ : '',
1915
+ html`<div class="gray-bottom-line-18">
1853
1916
  <div class="tx_700">會員標籤</div>
1854
1917
  <div
1855
1918
  style="display: flex; gap: 12px; margin-top: 12px; flex-direction: row; flex-wrap: wrap;"
@@ -1860,8 +1923,8 @@ export class UserList {
1860
1923
  .join('')
1861
1924
  : '無標籤'}
1862
1925
  </div>
1863
- </div>
1864
- ${vm.plan > 0
1926
+ </div>`,
1927
+ vm.plan > 0
1865
1928
  ? html` <div class="">
1866
1929
  <div class="tx_700 mb-3">社群綁定</div>
1867
1930
  ${[
@@ -1910,10 +1973,13 @@ export class UserList {
1910
1973
  })
1911
1974
  .join(`<div class="my-3"></div>`)}
1912
1975
  </div>`
1913
- : ''}
1914
- `;
1976
+ : '',
1977
+ ];
1978
+
1915
1979
  resolve(
1916
- html` <div style="display:flex; gap: 18px; flex-direction: column;">${h}</div>`
1980
+ html` <div style="display:flex; gap: 18px; flex-direction: column;">
1981
+ ${textList.filter(Boolean).join('')}
1982
+ </div>`
1917
1983
  );
1918
1984
  });
1919
1985
  },
@@ -1944,7 +2010,6 @@ export class UserList {
1944
2010
  }
1945
2011
  });
1946
2012
 
1947
- const dialog = new ShareDialog(gvc.glitter);
1948
2013
  dialog.dataLoading({ text: '更新中', visible: true });
1949
2014
  ApiUser.updateUserDataManager(vm.data, vm.data.userID).then(response => {
1950
2015
  dialog.dataLoading({ text: '', visible: false });
@@ -1971,6 +2036,7 @@ export class UserList {
1971
2036
 
1972
2037
  static createUser(gvc: GVC, vm: any) {
1973
2038
  const viewID = gvc.glitter.getUUID();
2039
+ const dialog = new ShareDialog(gvc.glitter);
1974
2040
  const saasConfig: { config: any; api: any } = (window.parent as any).saasConfig;
1975
2041
  let userData: any = vm.initial_data || {
1976
2042
  name: '',
@@ -2115,8 +2181,6 @@ export class UserList {
2115
2181
  )}
2116
2182
  ${BgWidget.save(
2117
2183
  gvc.event(async () => {
2118
- const dialog = new ShareDialog(gvc.glitter);
2119
-
2120
2184
  if (CheckInput.isEmpty(userData.name)) {
2121
2185
  dialog.infoMessage({ text: '請輸入顧客姓名' });
2122
2186
  return;
@@ -2191,6 +2255,7 @@ export class UserList {
2191
2255
  checkedData: [],
2192
2256
  };
2193
2257
  let vmi: any = undefined;
2258
+ const dialog = new ShareDialog(gvc.glitter);
2194
2259
 
2195
2260
  function getDatalist() {
2196
2261
  return vm.dataList.map((dd: any) => {
@@ -2210,13 +2275,7 @@ export class UserList {
2210
2275
 
2211
2276
  {
2212
2277
  key: '用戶狀態',
2213
- value: (() => {
2214
- if (dd.status === 1) {
2215
- return html` <div class="badge bg-info fs-7" style="max-height:34px;">啟用中</div>`;
2216
- } else {
2217
- return html` <div class="badge bg-danger fs-7" style="max-height:34px;">已停用</div>`;
2218
- }
2219
- })(),
2278
+ value: (UserList.statusBadge[dd.status] || UserList.statusBadge['1'])(),
2220
2279
  },
2221
2280
  ];
2222
2281
  });
@@ -2289,7 +2348,6 @@ export class UserList {
2289
2348
  {
2290
2349
  name: '批量移除',
2291
2350
  event: checkedData => {
2292
- const dialog = new ShareDialog(gvc.glitter);
2293
2351
  dialog.checkYesOrNot({
2294
2352
  text: '是否確認刪除所選項目?',
2295
2353
  callback: response => {