ts-glitter 20.7.3 → 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.
- package/jr9x7k3aau.json +1 -0
- package/lowcode/Entry.js +1 -1
- package/lowcode/Entry.ts +1 -1
- package/lowcode/backend-manager/bg-notify.js +2 -0
- package/lowcode/backend-manager/bg-notify.ts +2 -0
- package/lowcode/backend-manager/bg-widget.js +280 -155
- package/lowcode/backend-manager/bg-widget.ts +387 -244
- package/lowcode/backend-manager/splitPage.js +27 -52
- package/lowcode/backend-manager/splitPage.ts +29 -47
- package/lowcode/cms-plugin/app-release.js +63 -13
- package/lowcode/cms-plugin/app-release.ts +73 -13
- package/lowcode/cms-plugin/auto-fcm-advertise.js +23 -24
- package/lowcode/cms-plugin/auto-fcm-advertise.ts +286 -285
- package/lowcode/cms-plugin/auto-reply.js +285 -273
- package/lowcode/cms-plugin/auto-reply.ts +673 -660
- package/lowcode/cms-plugin/module/data.ts +1 -0
- package/lowcode/cms-plugin/module/order-setting.js +134 -117
- package/lowcode/cms-plugin/module/order-setting.ts +152 -138
- package/lowcode/cms-plugin/pos-pages/products-page.js +8 -16
- package/lowcode/cms-plugin/pos-pages/products-page.ts +10 -12
- package/lowcode/cms-plugin/shopping-order-manager.js +244 -289
- package/lowcode/cms-plugin/shopping-order-manager.ts +128 -156
- package/lowcode/cms-plugin/shopping-order-return.js +1 -1
- package/lowcode/cms-plugin/shopping-order-return.ts +1 -1
- package/lowcode/cms-plugin/shopping-product-setting.js +3 -3
- package/lowcode/cms-plugin/shopping-product-setting.ts +3 -3
- package/lowcode/cms-plugin/shopping-setting-advance.js +3 -28
- package/lowcode/cms-plugin/shopping-setting-advance.ts +3 -28
- package/lowcode/cms-plugin/stock-history.js +31 -15
- package/lowcode/cms-plugin/stock-history.ts +43 -25
- package/lowcode/cms-plugin/third-party-google.js +103 -81
- package/lowcode/cms-plugin/third-party-google.ts +296 -265
- package/lowcode/cms-plugin/user-list.js +166 -113
- package/lowcode/cms-plugin/user-list.ts +136 -78
- package/lowcode/form-view/e-commerce/path-select.js +100 -87
- package/lowcode/form-view/e-commerce/path-select.ts +372 -343
- package/lowcode/glitter-base/route/stock.ts +153 -141
- package/lowcode/glitterBundle/plugins/editor-elem.js +139 -149
- package/lowcode/glitterBundle/plugins/editor-elem.ts +207 -222
- package/lowcode/public-components/blogs/list.js +8 -16
- package/lowcode/public-components/blogs/list.ts +10 -12
- package/lowcode/public-components/product/product-list.js +8 -16
- package/lowcode/public-components/product/product-list.ts +10 -12
- package/lowcode/public-components/user-manager/um-login.js +270 -267
- package/lowcode/public-components/user-manager/um-login.ts +987 -983
- package/lowcode/public-models/order-info.js +12 -20
- package/lowcode/public-models/order-info.ts +13 -12
- package/package.json +1 -1
- package/src/Language.js.map +1 -1
- package/src/api-public/controllers/ai-chat.js.map +1 -1
- package/src/api-public/controllers/ai-points.js.map +1 -1
- package/src/api-public/controllers/app-release.js.map +1 -1
- package/src/api-public/controllers/article.js.map +1 -1
- package/src/api-public/controllers/chat.js.map +1 -1
- package/src/api-public/controllers/customer-sessions.js.map +1 -1
- package/src/api-public/controllers/delivery.js.map +1 -1
- package/src/api-public/controllers/fb-message.js.map +1 -1
- package/src/api-public/controllers/fb-service.js.map +1 -1
- package/src/api-public/controllers/fcm.js.map +1 -1
- package/src/api-public/controllers/graph-api.js.map +1 -1
- package/src/api-public/controllers/index.js.map +1 -1
- package/src/api-public/controllers/invoice.js.map +1 -1
- package/src/api-public/controllers/lambda.js.map +1 -1
- package/src/api-public/controllers/line-message.js.map +1 -1
- package/src/api-public/controllers/manager.js.map +1 -1
- package/src/api-public/controllers/oauth.js.map +1 -1
- package/src/api-public/controllers/post.js.map +1 -1
- package/src/api-public/controllers/progress.js.map +1 -1
- package/src/api-public/controllers/rebate.js.map +1 -1
- package/src/api-public/controllers/recommend.js.map +1 -1
- package/src/api-public/controllers/reconciliation.js.map +1 -1
- package/src/api-public/controllers/shop.js.map +1 -1
- package/src/api-public/controllers/shopee.js.map +1 -1
- package/src/api-public/controllers/sms-points.js.map +1 -1
- package/src/api-public/controllers/sms.js.map +1 -1
- package/src/api-public/controllers/smtp.js.map +1 -1
- package/src/api-public/controllers/sql_api.js.map +1 -1
- package/src/api-public/controllers/stock.js.map +1 -1
- package/src/api-public/controllers/track.js.map +1 -1
- package/src/api-public/controllers/user.js +1 -1
- package/src/api-public/controllers/user.js.map +1 -1
- package/src/api-public/controllers/user.ts +1 -1
- package/src/api-public/controllers/voucher.js.map +1 -1
- package/src/api-public/controllers/wallet.js.map +1 -1
- package/src/api-public/models/glitter-finance.js +2 -1
- package/src/api-public/models/glitter-finance.js.map +1 -1
- package/src/api-public/services/EcInvoice.js.map +1 -1
- package/src/api-public/services/ai-pointes.js.map +1 -1
- package/src/api-public/services/ai-robot.d.ts +1 -0
- package/src/api-public/services/ai-robot.js.map +1 -1
- package/src/api-public/services/article.js.map +1 -1
- package/src/api-public/services/auto-send-email.js.map +1 -1
- package/src/api-public/services/chat.js.map +1 -1
- package/src/api-public/services/checkout-event.d.ts +3 -1
- package/src/api-public/services/checkout-event.js +7 -4
- package/src/api-public/services/checkout-event.js.map +1 -1
- package/src/api-public/services/checkout-event.ts +26 -17
- package/src/api-public/services/checkout.js.map +1 -1
- package/src/api-public/services/custom-code.js.map +1 -1
- package/src/api-public/services/customer-sessions.js.map +1 -1
- package/src/api-public/services/data-analyze.js +3 -3
- package/src/api-public/services/data-analyze.js.map +1 -1
- package/src/api-public/services/data-analyze.ts +3 -3
- package/src/api-public/services/delivery.js.map +1 -1
- package/src/api-public/services/ezpay/tool.d.ts +1 -0
- package/src/api-public/services/ezpay/tool.js.map +1 -1
- package/src/api-public/services/fake-data-model/fake-order.js.map +1 -1
- package/src/api-public/services/fake-data-model/fake-product.js.map +1 -1
- package/src/api-public/services/fake-data-model/fake-user.js.map +1 -1
- package/src/api-public/services/fb-api.d.ts +1 -0
- package/src/api-public/services/fb-api.js.map +1 -1
- package/src/api-public/services/fb-message.d.ts +1 -0
- package/src/api-public/services/fb-message.js.map +1 -1
- package/src/api-public/services/fb-service.js +4 -4
- package/src/api-public/services/fb-service.js.map +1 -1
- package/src/api-public/services/filter-protect-data.js.map +1 -1
- package/src/api-public/services/financial-service.d.ts +1 -0
- package/src/api-public/services/financial-service.js.map +1 -1
- package/src/api-public/services/form-check.js.map +1 -1
- package/src/api-public/services/graph-api.js.map +1 -1
- package/src/api-public/services/initial-fake-data.js.map +1 -1
- package/src/api-public/services/invoice.js.map +1 -1
- package/src/api-public/services/language-setting.js.map +1 -1
- package/src/api-public/services/line-message.d.ts +1 -0
- package/src/api-public/services/line-message.js.map +1 -1
- package/src/api-public/services/mail.js.map +1 -1
- package/src/api-public/services/manager.js.map +1 -1
- package/src/api-public/services/model/handlePaymentTransaction.js.map +1 -1
- package/src/api-public/services/model/shopnex-line-message.js.map +1 -1
- package/src/api-public/services/monitor.d.ts +1 -0
- package/src/api-public/services/monitor.js.map +1 -1
- package/src/api-public/services/notify.js.map +1 -1
- package/src/api-public/services/order-event.js.map +1 -1
- package/src/api-public/services/paynow-logistics.js.map +1 -1
- package/src/api-public/services/phone-verify.js.map +1 -1
- package/src/api-public/services/pos.js.map +1 -1
- package/src/api-public/services/post.js.map +1 -1
- package/src/api-public/services/product-initial.js.map +1 -1
- package/src/api-public/services/public-table-check.js.map +1 -1
- package/src/api-public/services/rebate.js.map +1 -1
- package/src/api-public/services/recommend.js.map +1 -1
- package/src/api-public/services/reconciliation.js.map +1 -1
- package/src/api-public/services/schedule.js.map +1 -1
- package/src/api-public/services/share-permission.d.ts +1 -1
- package/src/api-public/services/share-permission.js.map +1 -1
- package/src/api-public/services/shopee.d.ts +1 -0
- package/src/api-public/services/shopee.js.map +1 -1
- package/src/api-public/services/shopping.js +5 -9
- package/src/api-public/services/shopping.js.map +1 -1
- package/src/api-public/services/shopping.ts +4 -10
- package/src/api-public/services/sms-pointes.js.map +1 -1
- package/src/api-public/services/sms.js.map +1 -1
- package/src/api-public/services/stock.js.map +1 -1
- package/src/api-public/services/terms-check.js.map +1 -1
- package/src/api-public/services/updated-table-checked.js.map +1 -1
- package/src/api-public/services/user-update.js.map +1 -1
- package/src/api-public/services/user.d.ts +6 -1
- package/src/api-public/services/user.js +30 -15
- package/src/api-public/services/user.js.map +1 -1
- package/src/api-public/services/user.ts +109 -91
- package/src/api-public/services/voucher.js.map +1 -1
- package/src/api-public/services/wallet.js.map +1 -1
- package/src/api-public/services/workers.js.map +1 -1
- package/src/api-public/utils/ut-database.js.map +1 -1
- package/src/api-public/utils/ut-permission.d.ts +1 -0
- package/src/api-public/utils/ut-permission.js.map +1 -1
- package/src/app-project/serverless/src/controllers/index.js.map +1 -1
- package/src/app-project/serverless/src/controllers/sample.js.map +1 -1
- package/src/app-project/serverless/src/modules/database.d.ts +2 -1
- package/src/app-project/serverless/src/modules/database.js.map +1 -1
- package/src/app-project/serverless/src/modules/exception.js.map +1 -1
- package/src/app-project/serverless/src/modules/hooks.js.map +1 -1
- package/src/app-project/serverless/src/modules/logger.js.map +1 -1
- package/src/app-project/serverless/src/modules/redis.d.ts +1 -1
- package/src/app-project/serverless/src/modules/redis.js.map +1 -1
- package/src/app-project/serverless/src/modules/response.js.map +1 -1
- package/src/app-project/serverless/src/modules/ssh.js.map +1 -1
- package/src/config.d.ts +1 -1
- package/src/config.js.map +1 -1
- package/src/controllers/ai.js.map +1 -1
- package/src/controllers/app.js.map +1 -1
- package/src/controllers/backend-server.js.map +1 -1
- package/src/controllers/filemanager.js.map +1 -1
- package/src/controllers/global-event.js.map +1 -1
- package/src/controllers/index.js.map +1 -1
- package/src/controllers/page.js.map +1 -1
- package/src/controllers/private_config.js.map +1 -1
- package/src/controllers/template.js.map +1 -1
- package/src/controllers/user.js.map +1 -1
- package/src/domain-check.js.map +1 -1
- package/src/export/export-test.js.map +1 -1
- package/src/firebase/message.js +2 -1
- package/src/firebase/message.js.map +1 -1
- package/src/helper/app_creater.js +2 -1
- package/src/helper/app_creater.js.map +1 -1
- package/src/helper/glitter-util.d.ts +1 -0
- package/src/helper/glitter-util.js.map +1 -1
- package/src/index.js +3 -3
- package/src/index.js.map +1 -1
- package/src/lambda/interface.d.ts +1 -1
- package/src/lambda/interface.js +2 -2
- package/src/lambda/interface.js.map +1 -1
- package/src/modules/AWSLib.js +3 -2
- package/src/modules/AWSLib.js.map +1 -1
- package/src/modules/caught-error.js.map +1 -1
- package/src/modules/database.d.ts +2 -1
- package/src/modules/database.js.map +1 -1
- package/src/modules/exception.js.map +1 -1
- package/src/modules/firebase.js.map +1 -1
- package/src/modules/hooks.js.map +1 -1
- package/src/modules/logger.js.map +1 -1
- package/src/modules/redis.d.ts +1 -1
- package/src/modules/redis.js.map +1 -1
- package/src/modules/response.js.map +1 -1
- package/src/modules/ssh.js.map +1 -1
- package/src/modules/tool.d.ts +4 -4
- package/src/modules/tool.js +2 -1
- package/src/modules/tool.js.map +1 -1
- package/src/public-config-initial/auto-fcm.js.map +1 -1
- package/src/run.js +2 -1
- package/src/run.js.map +1 -1
- package/src/seo-config.d.ts +1 -0
- package/src/seo-config.js +3 -3
- package/src/seo-config.js.map +1 -1
- package/src/services/ai.js.map +1 -1
- package/src/services/app.js.map +1 -1
- package/src/services/backend-service.js.map +1 -1
- package/src/services/create-instance.js +4 -3
- package/src/services/create-instance.js.map +1 -1
- package/src/services/global-event.js.map +1 -1
- package/src/services/ios-release.js.map +1 -1
- package/src/services/page.js.map +1 -1
- package/src/services/private_config.js.map +1 -1
- package/src/services/release.js.map +1 -1
- package/src/services/saas-table-check.js +2 -2
- package/src/services/saas-table-check.js.map +1 -1
- package/src/services/seo.js.map +1 -1
- package/src/services/ses.js +2 -1
- package/src/services/ses.js.map +1 -1
- package/src/services/system-schedule.js.map +1 -1
- package/src/services/template.js.map +1 -1
- package/src/services/tool.js +3 -2
- package/src/services/tool.js.map +1 -1
- package/src/services/user.js.map +1 -1
- package/src/services/web-socket.js.map +1 -1
- package/src/update-progress-track.js.map +1 -1
- package/src/update-script.js.map +1 -1
- package/src/api-public/services/checkout-service.js +0 -1074
|
@@ -34,6 +34,7 @@ export class UserList {
|
|
|
34
34
|
const vm = {
|
|
35
35
|
id: glitter.getUUID(),
|
|
36
36
|
loading: true,
|
|
37
|
+
tabLoading: true,
|
|
37
38
|
type: 'list',
|
|
38
39
|
data: {},
|
|
39
40
|
dataList: undefined,
|
|
@@ -41,7 +42,7 @@ export class UserList {
|
|
|
41
42
|
queryType: '',
|
|
42
43
|
orderString: '',
|
|
43
44
|
filter: {},
|
|
44
|
-
filter_type:
|
|
45
|
+
filter_type: 'normal',
|
|
45
46
|
filterId: glitter.getUUID(),
|
|
46
47
|
tableId: glitter.getUUID(),
|
|
47
48
|
barId: glitter.getUUID(),
|
|
@@ -131,14 +132,7 @@ export class UserList {
|
|
|
131
132
|
},
|
|
132
133
|
{
|
|
133
134
|
key: '用戶狀態',
|
|
134
|
-
value: (()
|
|
135
|
-
if (dd.status === 1) {
|
|
136
|
-
return html `<div class="badge bg-info fs-7" style="max-height:34px;">啟用中</div>`;
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
return html `<div class="badge bg-danger fs-7" style="max-height:34px;">已停用</div>`;
|
|
140
|
-
}
|
|
141
|
-
})(),
|
|
135
|
+
value: (UserList.statusBadge[dd.status] || UserList.statusBadge['1'])(),
|
|
142
136
|
},
|
|
143
137
|
].filter(item => {
|
|
144
138
|
if (!vm.headerConfig.includes(item.key)) {
|
|
@@ -238,6 +232,10 @@ export class UserList {
|
|
|
238
232
|
title: '一般列表',
|
|
239
233
|
key: 'normal',
|
|
240
234
|
},
|
|
235
|
+
{
|
|
236
|
+
title: '觀察名單',
|
|
237
|
+
key: 'watch',
|
|
238
|
+
},
|
|
241
239
|
{
|
|
242
240
|
title: '黑名單',
|
|
243
241
|
key: 'block',
|
|
@@ -252,13 +250,28 @@ export class UserList {
|
|
|
252
250
|
title: '一般列表',
|
|
253
251
|
key: 'normal',
|
|
254
252
|
},
|
|
253
|
+
{
|
|
254
|
+
title: '觀察名單',
|
|
255
|
+
key: 'watch',
|
|
256
|
+
},
|
|
255
257
|
{
|
|
256
258
|
title: '黑名單',
|
|
257
259
|
key: 'block',
|
|
258
260
|
},
|
|
259
261
|
], gvc, vm.filter_type, text => {
|
|
260
|
-
vm.
|
|
261
|
-
|
|
262
|
+
if (vm.tabLoading) {
|
|
263
|
+
BgWidget.jumpAlert({
|
|
264
|
+
gvc,
|
|
265
|
+
text: '系統繁忙中,請稍後重試',
|
|
266
|
+
justify: 'top',
|
|
267
|
+
align: 'center',
|
|
268
|
+
width: 240,
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
vm.filter_type = text;
|
|
273
|
+
gvc.notifyDataChange(vm.id);
|
|
274
|
+
}
|
|
262
275
|
})}
|
|
263
276
|
${BgWidget.container((() => {
|
|
264
277
|
if (vm.filter_type === 'notRegistered') {
|
|
@@ -343,6 +356,7 @@ export class UserList {
|
|
|
343
356
|
gvc: gvc,
|
|
344
357
|
getData: vd => {
|
|
345
358
|
vmi = vd;
|
|
359
|
+
vm.tabLoading = true;
|
|
346
360
|
UserList.vm.page = vmi.page;
|
|
347
361
|
const limit = 20;
|
|
348
362
|
vm.apiJSON = {
|
|
@@ -373,6 +387,7 @@ export class UserList {
|
|
|
373
387
|
gvc.notifyDataChange(vm.id);
|
|
374
388
|
}
|
|
375
389
|
vmi.loading = false;
|
|
390
|
+
vm.tabLoading = false;
|
|
376
391
|
vmi.callback();
|
|
377
392
|
});
|
|
378
393
|
},
|
|
@@ -458,9 +473,11 @@ export class UserList {
|
|
|
458
473
|
}
|
|
459
474
|
static posSelect(gvc, obj) {
|
|
460
475
|
const glitter = gvc.glitter;
|
|
476
|
+
const dialog = new ShareDialog(glitter);
|
|
461
477
|
const vm = {
|
|
462
478
|
id: glitter.getUUID(),
|
|
463
479
|
loading: true,
|
|
480
|
+
tabLoading: true,
|
|
464
481
|
type: 'list',
|
|
465
482
|
data: {},
|
|
466
483
|
dataList: undefined,
|
|
@@ -468,7 +485,7 @@ export class UserList {
|
|
|
468
485
|
queryType: '',
|
|
469
486
|
orderString: '',
|
|
470
487
|
filter: {},
|
|
471
|
-
filter_type:
|
|
488
|
+
filter_type: 'normal',
|
|
472
489
|
filterId: glitter.getUUID(),
|
|
473
490
|
tableId: glitter.getUUID(),
|
|
474
491
|
barId: glitter.getUUID(),
|
|
@@ -511,14 +528,7 @@ export class UserList {
|
|
|
511
528
|
},
|
|
512
529
|
{
|
|
513
530
|
key: '用戶狀態',
|
|
514
|
-
value: (()
|
|
515
|
-
if (dd.status === 1) {
|
|
516
|
-
return html `<div class="badge bg-info fs-7" style="max-height:34px;">啟用中</div>`;
|
|
517
|
-
}
|
|
518
|
-
else {
|
|
519
|
-
return html `<div class="badge bg-danger fs-7" style="max-height:34px;">已停用</div>`;
|
|
520
|
-
}
|
|
521
|
-
})(),
|
|
531
|
+
value: (UserList.statusBadge[dd.status] || UserList.statusBadge['1'])(),
|
|
522
532
|
},
|
|
523
533
|
];
|
|
524
534
|
});
|
|
@@ -602,7 +612,6 @@ export class UserList {
|
|
|
602
612
|
{
|
|
603
613
|
name: '批量移除',
|
|
604
614
|
event: checkedData => {
|
|
605
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
606
615
|
dialog.checkYesOrNot({
|
|
607
616
|
text: '是否確認刪除所選項目?',
|
|
608
617
|
callback: response => {
|
|
@@ -747,6 +756,7 @@ export class UserList {
|
|
|
747
756
|
type: 'list',
|
|
748
757
|
plan: GlobalUser.getPlan().id,
|
|
749
758
|
};
|
|
759
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
750
760
|
function regetData() {
|
|
751
761
|
ApiUser.getPublicUserData(cf.userID).then(dd => {
|
|
752
762
|
vm.data = dd.response;
|
|
@@ -862,7 +872,6 @@ export class UserList {
|
|
|
862
872
|
function getButtonList() {
|
|
863
873
|
return html `<div class="ms-auto d-flex" style="gap: 14px;">
|
|
864
874
|
${BgWidget.grayButton('刪除顧客', gvc.event(() => {
|
|
865
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
866
875
|
dialog.warningMessage({
|
|
867
876
|
text: '您即將刪除此顧客的所有資料,此操作無法復原。確定要刪除嗎?',
|
|
868
877
|
callback: response => {
|
|
@@ -877,29 +886,77 @@ export class UserList {
|
|
|
877
886
|
},
|
|
878
887
|
});
|
|
879
888
|
}))}
|
|
880
|
-
${BgWidget.grayButton(
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
889
|
+
${BgWidget.grayButton('調整顧客狀態', gvc.event(() => {
|
|
890
|
+
BgWidget.dialog({
|
|
891
|
+
gvc,
|
|
892
|
+
title: '調整顧客狀態',
|
|
893
|
+
innerHTML: gvc => {
|
|
894
|
+
return html `
|
|
895
|
+
<div>
|
|
896
|
+
<div class="tx_700 mb-2">將此顧客狀態修改成:</div>
|
|
897
|
+
<div class="d-flex gap-2 ${document.body.clientWidth > 768 ? '' : 'flex-column'}">
|
|
898
|
+
${[
|
|
899
|
+
{ title: '一般會員', value: 'normal' },
|
|
900
|
+
{ title: '觀察名單', value: 'watch' },
|
|
901
|
+
{ title: '黑名單', value: 'block' },
|
|
902
|
+
]
|
|
903
|
+
.filter(item => {
|
|
904
|
+
return [
|
|
905
|
+
vm.data.status === 0 && item.value === 'block',
|
|
906
|
+
vm.data.status === 1 && item.value === 'normal',
|
|
907
|
+
vm.data.status === 2 && item.value === 'watch',
|
|
908
|
+
].every(bool => !bool);
|
|
909
|
+
})
|
|
910
|
+
.map(item => {
|
|
911
|
+
return BgWidget.customButton({
|
|
912
|
+
button: {
|
|
913
|
+
color: 'snow',
|
|
914
|
+
size: 'md',
|
|
915
|
+
class: 'w-100',
|
|
916
|
+
style: 'min-height: 60px;',
|
|
917
|
+
},
|
|
918
|
+
text: {
|
|
919
|
+
name: item.title,
|
|
920
|
+
},
|
|
921
|
+
event: gvc.event(() => {
|
|
922
|
+
try {
|
|
923
|
+
gvc.closeDialog();
|
|
924
|
+
function call() {
|
|
925
|
+
dialog.dataLoading({ text: '更新中', visible: true });
|
|
926
|
+
vm.data.userData.type = item.value;
|
|
927
|
+
ApiUser.updateUserDataManager(vm.data, vm.data.userID).then(response => {
|
|
928
|
+
dialog.dataLoading({ text: '', visible: false });
|
|
929
|
+
if (response.result) {
|
|
930
|
+
regetData();
|
|
931
|
+
dialog.successMessage({ text: '更新成功' });
|
|
932
|
+
vm.loading = true;
|
|
933
|
+
gvc.notifyDataChange(vm.id);
|
|
934
|
+
}
|
|
935
|
+
else {
|
|
936
|
+
dialog.errorMessage({ text: '更新異常' });
|
|
937
|
+
}
|
|
938
|
+
});
|
|
939
|
+
}
|
|
940
|
+
if (item.value === 'block') {
|
|
941
|
+
dialog.warningMessage({
|
|
942
|
+
text: '加入黑名單之後,<br/>此顧客將無法再進行登入、購買及使用其他功能。<br/>確定要加入黑名單嗎?',
|
|
943
|
+
callback: response => response && call(),
|
|
944
|
+
});
|
|
945
|
+
}
|
|
946
|
+
else {
|
|
947
|
+
call();
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
catch (error) {
|
|
951
|
+
console.error(error);
|
|
952
|
+
}
|
|
953
|
+
}),
|
|
901
954
|
});
|
|
902
|
-
}
|
|
955
|
+
})
|
|
956
|
+
.join('')}
|
|
957
|
+
</div>
|
|
958
|
+
</div>
|
|
959
|
+
`;
|
|
903
960
|
},
|
|
904
961
|
});
|
|
905
962
|
}))}
|
|
@@ -967,7 +1024,7 @@ export class UserList {
|
|
|
967
1024
|
${BgWidget.editeInput({
|
|
968
1025
|
gvc,
|
|
969
1026
|
title: '',
|
|
970
|
-
default: referObj[item.key] || ''
|
|
1027
|
+
default: `${referObj[item.key] || ''}`,
|
|
971
1028
|
placeHolder: `請輸入${item.title}`,
|
|
972
1029
|
callback: text => {
|
|
973
1030
|
referObj[item.key] = text;
|
|
@@ -1174,9 +1231,7 @@ export class UserList {
|
|
|
1174
1231
|
return [
|
|
1175
1232
|
[
|
|
1176
1233
|
html `<div class="tx_700">會員等級</div>`,
|
|
1177
|
-
|
|
1178
|
-
${vm.data.member_level.tag_name}
|
|
1179
|
-
</div>`,
|
|
1234
|
+
BgWidget.secondaryInsignia(vm.data.member_level.tag_name),
|
|
1180
1235
|
].join(BgWidget.mbContainer(12)),
|
|
1181
1236
|
[
|
|
1182
1237
|
html `
|
|
@@ -1377,19 +1432,17 @@ export class UserList {
|
|
|
1377
1432
|
? html `<div
|
|
1378
1433
|
style="font-size: 32px; font-weight: 400; color: #393939;"
|
|
1379
1434
|
>
|
|
1380
|
-
|
|
1435
|
+
$${formatNum(totalPrice)}
|
|
1381
1436
|
</div>`
|
|
1382
1437
|
: '尚無消費紀錄'),
|
|
1383
|
-
renderInfoBlock('累計消費次數', `<div
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
${formatNum(totalOrders)}次
|
|
1387
|
-
</div>`),
|
|
1438
|
+
renderInfoBlock('累計消費次數', html `<div style="font-size: 32px; font-weight: 400; color: #393939;">
|
|
1439
|
+
${formatNum(totalOrders)}次
|
|
1440
|
+
</div>`),
|
|
1388
1441
|
renderInfoBlock('最後消費金額', firstData
|
|
1389
1442
|
? html `<div
|
|
1390
1443
|
style="font-size: 32px; font-weight: 400; color: #393939;"
|
|
1391
1444
|
>
|
|
1392
|
-
|
|
1445
|
+
$${formatNum(firstData.orderData.total)}
|
|
1393
1446
|
</div>`
|
|
1394
1447
|
: '尚無消費紀錄'),
|
|
1395
1448
|
renderInfoBlock('最後購買日期', firstData ? formatDate(firstData.created_time) : '尚無消費紀錄'),
|
|
@@ -1494,7 +1547,6 @@ export class UserList {
|
|
|
1494
1547
|
gvc: gvc,
|
|
1495
1548
|
saveButton: {
|
|
1496
1549
|
event: obj => {
|
|
1497
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
1498
1550
|
dialog.dataLoading({
|
|
1499
1551
|
text: '發送中...',
|
|
1500
1552
|
visible: true,
|
|
@@ -1594,83 +1646,87 @@ export class UserList {
|
|
|
1594
1646
|
return {
|
|
1595
1647
|
bind: id,
|
|
1596
1648
|
view: () => {
|
|
1597
|
-
return new Promise((resolve
|
|
1649
|
+
return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
|
1598
1650
|
yield saasConfig.api.getPrivateConfig(saasConfig.config.appName, 'glitterUserForm');
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1651
|
+
const textList = [
|
|
1652
|
+
html `<div class="gray-bottom-line-18">
|
|
1653
|
+
<div class="tx_700">會員狀態</div>
|
|
1654
|
+
<div style="margin-top: 12px">${UserList.statusBadge[vm.data.status]()}</div>
|
|
1655
|
+
</div>`,
|
|
1656
|
+
vm.plan > 1
|
|
1657
|
+
? html `<div class="gray-bottom-line-18">
|
|
1602
1658
|
<div class="tx_700">會員等級</div>
|
|
1603
1659
|
<div style="margin-top: 12px">
|
|
1604
|
-
|
|
1605
|
-
${vm.data.member_level.tag_name}
|
|
1606
|
-
</div>
|
|
1660
|
+
${BgWidget.secondaryInsignia(vm.data.member_level.tag_name)}
|
|
1607
1661
|
</div>
|
|
1608
1662
|
</div>`
|
|
1609
|
-
|
|
1610
|
-
|
|
1663
|
+
: '',
|
|
1664
|
+
html `<div class="gray-bottom-line-18">
|
|
1611
1665
|
<div class="tx_700">會員標籤</div>
|
|
1612
1666
|
<div
|
|
1613
1667
|
style="display: flex; gap: 12px; margin-top: 12px; flex-direction: row; flex-wrap: wrap;"
|
|
1614
1668
|
>
|
|
1615
1669
|
${Array.isArray(vm.data.userData.tags) && vm.data.userData.tags.length > 0
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1670
|
+
? vm.data.userData.tags
|
|
1671
|
+
.map((item) => BgWidget.secondaryInsignia(item))
|
|
1672
|
+
.join('')
|
|
1673
|
+
: '無標籤'}
|
|
1620
1674
|
</div>
|
|
1621
|
-
</div
|
|
1622
|
-
|
|
1623
|
-
|
|
1675
|
+
</div>`,
|
|
1676
|
+
vm.plan > 0
|
|
1677
|
+
? html ` <div class="">
|
|
1624
1678
|
<div class="tx_700 mb-3">社群綁定</div>
|
|
1625
1679
|
${[
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1680
|
+
{
|
|
1681
|
+
type: 'fb',
|
|
1682
|
+
src: 'https://d3jnmi1tfjgtti.cloudfront.net/file/234285319/1722847285395-img_facebook.svg',
|
|
1683
|
+
value: vm.data.userData['fb-id'],
|
|
1684
|
+
},
|
|
1685
|
+
{
|
|
1686
|
+
type: 'line',
|
|
1687
|
+
src: 'https://d3jnmi1tfjgtti.cloudfront.net/file/252530754/LINE_Brand_icon.png',
|
|
1688
|
+
value: vm.data.userData.lineID,
|
|
1689
|
+
},
|
|
1690
|
+
{
|
|
1691
|
+
type: 'google',
|
|
1692
|
+
src: 'https://d3jnmi1tfjgtti.cloudfront.net/file/252530754/Google__G__logo.svg.webp',
|
|
1693
|
+
value: vm.data.userData['google-id'],
|
|
1694
|
+
},
|
|
1695
|
+
{
|
|
1696
|
+
type: 'apple',
|
|
1697
|
+
src: 'https://d3jnmi1tfjgtti.cloudfront.net/file/252530754/14776639.png',
|
|
1698
|
+
value: vm.data.userData['apple-id'],
|
|
1699
|
+
},
|
|
1700
|
+
]
|
|
1701
|
+
.map(dd => {
|
|
1702
|
+
return html `<div class="d-flex align-items-center" style="gap:5px;">
|
|
1649
1703
|
<img
|
|
1650
1704
|
src="${dd.src}"
|
|
1651
1705
|
style="width:25px;height: 25px;background: whitesmoke;"
|
|
1652
1706
|
class="rounded-circle"
|
|
1653
1707
|
/>
|
|
1654
1708
|
${dd.value
|
|
1655
|
-
|
|
1709
|
+
? html `<div
|
|
1656
1710
|
class="fw-500 "
|
|
1657
1711
|
style="font-size: 14px; font-weight: 400; color: #006621;word-break: break-all;"
|
|
1658
1712
|
>
|
|
1659
1713
|
已綁定: ${dd.value}
|
|
1660
1714
|
</div>`
|
|
1661
|
-
|
|
1715
|
+
: html `<div
|
|
1662
1716
|
class="fw-500"
|
|
1663
1717
|
style="font-size: 14px; font-weight: 400; color: #393939;"
|
|
1664
1718
|
>
|
|
1665
1719
|
未綁定
|
|
1666
1720
|
</div>`}
|
|
1667
1721
|
</div>`;
|
|
1668
|
-
|
|
1669
|
-
|
|
1722
|
+
})
|
|
1723
|
+
.join(`<div class="my-3"></div>`)}
|
|
1670
1724
|
</div>`
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
resolve(html ` <div style="display:flex; gap: 18px; flex-direction: column;"
|
|
1725
|
+
: '',
|
|
1726
|
+
];
|
|
1727
|
+
resolve(html ` <div style="display:flex; gap: 18px; flex-direction: column;">
|
|
1728
|
+
${textList.filter(Boolean).join('')}
|
|
1729
|
+
</div>`);
|
|
1674
1730
|
}));
|
|
1675
1731
|
},
|
|
1676
1732
|
};
|
|
@@ -1696,7 +1752,6 @@ export class UserList {
|
|
|
1696
1752
|
UserModule.setUserTags(gvc, vm.data.userData.tags);
|
|
1697
1753
|
}
|
|
1698
1754
|
});
|
|
1699
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
1700
1755
|
dialog.dataLoading({ text: '更新中', visible: true });
|
|
1701
1756
|
ApiUser.updateUserDataManager(vm.data, vm.data.userID).then(response => {
|
|
1702
1757
|
dialog.dataLoading({ text: '', visible: false });
|
|
@@ -1721,6 +1776,7 @@ export class UserList {
|
|
|
1721
1776
|
}
|
|
1722
1777
|
static createUser(gvc, vm) {
|
|
1723
1778
|
const viewID = gvc.glitter.getUUID();
|
|
1779
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1724
1780
|
const saasConfig = window.parent.saasConfig;
|
|
1725
1781
|
let userData = vm.initial_data || {
|
|
1726
1782
|
name: '',
|
|
@@ -1841,7 +1897,6 @@ export class UserList {
|
|
|
1841
1897
|
vm.type = 'list';
|
|
1842
1898
|
}))}
|
|
1843
1899
|
${BgWidget.save(gvc.event(() => __awaiter(this, void 0, void 0, function* () {
|
|
1844
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
1845
1900
|
if (CheckInput.isEmpty(userData.name)) {
|
|
1846
1901
|
dialog.infoMessage({ text: '請輸入顧客姓名' });
|
|
1847
1902
|
return;
|
|
@@ -1906,6 +1961,7 @@ export class UserList {
|
|
|
1906
1961
|
checkedData: [],
|
|
1907
1962
|
};
|
|
1908
1963
|
let vmi = undefined;
|
|
1964
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1909
1965
|
function getDatalist() {
|
|
1910
1966
|
return vm.dataList.map((dd) => {
|
|
1911
1967
|
return [
|
|
@@ -1923,14 +1979,7 @@ export class UserList {
|
|
|
1923
1979
|
},
|
|
1924
1980
|
{
|
|
1925
1981
|
key: '用戶狀態',
|
|
1926
|
-
value: (()
|
|
1927
|
-
if (dd.status === 1) {
|
|
1928
|
-
return html ` <div class="badge bg-info fs-7" style="max-height:34px;">啟用中</div>`;
|
|
1929
|
-
}
|
|
1930
|
-
else {
|
|
1931
|
-
return html ` <div class="badge bg-danger fs-7" style="max-height:34px;">已停用</div>`;
|
|
1932
|
-
}
|
|
1933
|
-
})(),
|
|
1982
|
+
value: (UserList.statusBadge[dd.status] || UserList.statusBadge['1'])(),
|
|
1934
1983
|
},
|
|
1935
1984
|
];
|
|
1936
1985
|
});
|
|
@@ -1998,7 +2047,6 @@ export class UserList {
|
|
|
1998
2047
|
{
|
|
1999
2048
|
name: '批量移除',
|
|
2000
2049
|
event: checkedData => {
|
|
2001
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
2002
2050
|
dialog.checkYesOrNot({
|
|
2003
2051
|
text: '是否確認刪除所選項目?',
|
|
2004
2052
|
callback: response => {
|
|
@@ -2051,4 +2099,9 @@ export class UserList {
|
|
|
2051
2099
|
UserList.vm = {
|
|
2052
2100
|
page: 1,
|
|
2053
2101
|
};
|
|
2102
|
+
UserList.statusBadge = {
|
|
2103
|
+
0: () => BgWidget.dangerInsignia('已停用'),
|
|
2104
|
+
1: () => BgWidget.infoInsignia('啟用中'),
|
|
2105
|
+
2: () => BgWidget.warningInsignia('觀察中'),
|
|
2106
|
+
};
|
|
2054
2107
|
window.glitter.setModule(import.meta.url, UserList);
|