ts-glitter 13.6.4 → 13.6.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/lowcode/Entry.js +1 -1
- package/lowcode/Entry.ts +1 -1
- package/lowcode/backend-manager/bg-customer-message.js +338 -47
- package/lowcode/backend-manager/bg-customer-message.ts +351 -52
- package/lowcode/backend-manager/bg-widget.js +2 -2
- package/lowcode/backend-manager/bg-widget.ts +2 -2
- package/lowcode/cms-plugin/auto-reply.js +9 -9
- package/lowcode/cms-plugin/auto-reply.ts +9 -9
- package/lowcode/cms-plugin/customer-message-user.js +4 -3
- package/lowcode/cms-plugin/customer-message-user.ts +4 -3
- package/lowcode/cms-plugin/filter-options.js +1 -1
- package/lowcode/cms-plugin/filter-options.ts +1 -1
- package/lowcode/cms-plugin/line-auto-reply.js +1 -1
- package/lowcode/cms-plugin/line-auto-reply.ts +1 -1
- package/lowcode/cms-plugin/shopping-finance-setting.js +1 -1
- package/lowcode/cms-plugin/shopping-finance-setting.ts +1 -1
- package/lowcode/cms-plugin/sns-auto-reply.js +8 -8
- package/lowcode/cms-plugin/sns-auto-reply.ts +8 -8
- package/lowcode/glitterBundle/module/html-generate.js +1 -1
- package/lowcode/glitterBundle/module/html-generate.ts +1 -1
- package/lowcode/jspage/editor.ts +496 -496
- package/lowcode/view-model/saas-view-model.js +7 -7
- package/lowcode/view-model/saas-view-model.ts +7 -7
- package/package.json +1 -1
- package/src/api-public/controllers/ai-chat.js.map +1 -1
- package/src/api-public/controllers/ai-chat.ts +2 -0
- package/src/api-public/services/ai-robot.d.ts +5 -0
- package/src/api-public/services/ai-robot.js +182 -3
- package/src/api-public/services/ai-robot.js.map +1 -1
- package/src/api-public/services/ai-robot.ts +174 -0
- package/src/api-public/services/auto-send-email.js +24 -24
- package/src/api-public/services/auto-send-email.js.map +1 -1
- package/src/api-public/services/auto-send-email.ts +24 -24
- package/src/api-public/services/chat.d.ts +2 -0
- package/src/api-public/services/chat.js +63 -55
- package/src/api-public/services/chat.js.map +1 -1
- package/src/api-public/services/chat.ts +115 -105
- package/src/api-public/services/line-message.js +68 -61
- package/src/api-public/services/line-message.js.map +1 -1
- package/src/api-public/services/line-message.ts +203 -211
- package/src/api-public/services/notify.d.ts +15 -6
- package/src/api-public/services/notify.js +360 -216
- package/src/api-public/services/notify.js.map +1 -1
- package/src/api-public/services/notify.ts +395 -222
- package/src/api-public/services/post.js +2 -9
- package/src/api-public/services/post.js.map +1 -1
- package/src/api-public/services/post.ts +2 -13
- package/src/api-public/services/public-table-check.js +14 -6
- package/src/api-public/services/public-table-check.js.map +1 -1
- package/src/api-public/services/public-table-check.ts +21 -11
- package/src/api-public/services/shopping.js +1 -1
- package/src/api-public/services/shopping.js.map +1 -1
- package/src/api-public/services/shopping.ts +1 -3
- package/src/api-public/services/sms.js +28 -24
- package/src/api-public/services/sms.js.map +1 -1
- package/src/api-public/services/sms.ts +112 -123
- package/src/api-public/services/user.js +5 -5
- package/src/api-public/services/user.js.map +1 -1
- package/src/api-public/services/user.ts +6 -6
- package/src/services/template.js.map +1 -1
|
@@ -137,7 +137,7 @@ export class BgCustomerMessage {
|
|
|
137
137
|
gvc,
|
|
138
138
|
title: '提示',
|
|
139
139
|
innerHTML: () => {
|
|
140
|
-
return
|
|
140
|
+
return `<div class="w-100" style="white-space:normal;word-break: break-all;">${BgWidget.grayNote([`*單一後台即可管理各渠道訊息`, `*前往第三方整合設定,設定Line與Facebook官方訊息串接`, `*為確保訊息同步,請統一透過SHOPNEX後台發送訊息`].map((dd) => {
|
|
141
141
|
return `<div style="letter-spacing: 1.2px;white-space:normal;word-break: break-all;">${dd}</div>`
|
|
142
142
|
}).join('<div class="my-1"></div>'))}</div>`
|
|
143
143
|
},
|
|
@@ -399,53 +399,347 @@ export class BgCustomerMessage {
|
|
|
399
399
|
</div>
|
|
400
400
|
${BgWidget.switchButton(gvc, keyData.toggle, (bool) => {
|
|
401
401
|
keyData.toggle = bool;
|
|
402
|
+
gvc.notifyDataChange(vO.id)
|
|
402
403
|
})}
|
|
403
404
|
</div>`,
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
405
|
+
...(() => {
|
|
406
|
+
if (keyData.toggle) {
|
|
407
|
+
return [
|
|
408
|
+
gvc.bindView(() => {
|
|
409
|
+
keyData.ask_manual_keyword=keyData.ask_manual_keyword||'真人客服'
|
|
410
|
+
keyData.ask_ai_keyword=keyData.ask_ai_keyword||'AI客服'
|
|
411
|
+
const cid = gvc.glitter.getUUID()
|
|
412
|
+
return {
|
|
413
|
+
bind: cid,
|
|
414
|
+
view: () => {
|
|
415
|
+
return html`
|
|
416
|
+
<div class="d-flex flex-column"
|
|
417
|
+
style="gap:5px;">
|
|
418
|
+
<div class="tx_normal fw-normal"
|
|
419
|
+
style="">AI客服機器人
|
|
420
|
+
</div>
|
|
421
|
+
<div class="d-flex">
|
|
422
|
+
${BgWidget.switchButton(gvc, keyData.ai_toggle, (bool) => {
|
|
423
|
+
keyData.ai_toggle = bool;
|
|
424
|
+
gvc.notifyDataChange(cid)
|
|
425
|
+
})}
|
|
426
|
+
${keyData.ai_toggle ? `啟用` : `關閉`}
|
|
427
|
+
</div>
|
|
428
|
+
${keyData.ai_toggle ? html`
|
|
429
|
+
<div class="mt-2 d-flex align-items-center"
|
|
430
|
+
style="gap:10px;">
|
|
431
|
+
${BgWidget.grayButton('AI 問答設定', gvc.event(async () => {
|
|
432
|
+
let keyData = (await ApiUser.getPublicConfig(`robot_ai_reply`, 'manager')).response.value || {};
|
|
433
|
+
BgWidget.settingDialog({
|
|
434
|
+
gvc: gvc,
|
|
435
|
+
title: 'AI問答設定',
|
|
436
|
+
innerHTML: (gvc) => {
|
|
437
|
+
return gvc.bindView(() => {
|
|
438
|
+
const id = gvc.glitter.getUUID();
|
|
439
|
+
const html = String.raw;
|
|
440
|
+
return {
|
|
441
|
+
bind: id,
|
|
442
|
+
view: () => {
|
|
443
|
+
if (Array.isArray(keyData)) {
|
|
444
|
+
keyData = {};
|
|
445
|
+
}
|
|
446
|
+
keyData.question = keyData.question ?? []
|
|
447
|
+
const parId = gvc.glitter.getUUID()
|
|
448
|
+
const id = gvc.glitter.getUUID()
|
|
449
|
+
|
|
450
|
+
function refresh() {
|
|
451
|
+
gvc.notifyDataChange(id)
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
return html`
|
|
455
|
+
${BgWidget.alertInfo('', [
|
|
456
|
+
`<span class="fw-500 fs-6">*當AI判斷,客戶提出的問題與你設定的問題有關聯的話,將會直接回答你設定的回覆內容。</span>`,
|
|
457
|
+
`<span class="fw-500 fs-6">*建議設定多個問答項目,來提升機器人客服的妥善率。</span>`,
|
|
458
|
+
], {
|
|
459
|
+
class: 'p-2',
|
|
460
|
+
style: ``
|
|
461
|
+
})}
|
|
462
|
+
<div style=""
|
|
463
|
+
class="p-2">
|
|
464
|
+
|
|
465
|
+
${gvc.bindView(() => {
|
|
466
|
+
return {
|
|
467
|
+
bind: id,
|
|
468
|
+
view: () => {
|
|
469
|
+
return (keyData.question || []).map((d2: any, index: number) => {
|
|
470
|
+
return html`
|
|
471
|
+
<li onclick="${gvc.event(() => {
|
|
472
|
+
const copy = JSON.parse(JSON.stringify(d2))
|
|
473
|
+
BgWidget.settingDialog({
|
|
474
|
+
gvc: gvc,
|
|
475
|
+
title: '設定問答',
|
|
476
|
+
innerHTML: (gvc) => {
|
|
477
|
+
return [BgWidget.editeInput({
|
|
478
|
+
gvc: gvc,
|
|
479
|
+
title: '問題',
|
|
480
|
+
placeHolder: `請輸入問題`,
|
|
481
|
+
default: copy.ask,
|
|
482
|
+
callback: (text) => {
|
|
483
|
+
copy.ask = text;
|
|
484
|
+
},
|
|
485
|
+
}), BgWidget.textArea({
|
|
486
|
+
gvc: gvc,
|
|
487
|
+
title: '回答',
|
|
488
|
+
placeHolder: `請輸入回答`,
|
|
489
|
+
default: copy.response,
|
|
490
|
+
callback: (text) => {
|
|
491
|
+
copy.response = text;
|
|
492
|
+
},
|
|
493
|
+
})].map((dd) => {
|
|
494
|
+
return `<div>${dd}</div>`
|
|
495
|
+
}).join('')
|
|
496
|
+
},
|
|
497
|
+
footer_html: (gvc) => {
|
|
498
|
+
return [
|
|
499
|
+
BgWidget.cancel(gvc.event(() => {
|
|
500
|
+
gvc.closeDialog()
|
|
501
|
+
})),
|
|
502
|
+
BgWidget.save(gvc.event(() => {
|
|
503
|
+
refresh()
|
|
504
|
+
gvc.closeDialog()
|
|
505
|
+
}))
|
|
506
|
+
].join(``)
|
|
507
|
+
}
|
|
508
|
+
})
|
|
509
|
+
})}">
|
|
510
|
+
<div class="w-100 fw-500 d-flex align-items-center fs-6 hoverBtn h_item rounded px-2 hoverF2 mb-1 subComponentGuide"
|
|
511
|
+
style="gap:5px;color:#393939;">
|
|
512
|
+
<div class=" p-1 dragItem ">
|
|
513
|
+
<i class="fa-solid fa-grip-dots-vertical d-flex align-items-center justify-content-center "
|
|
514
|
+
style="width:15px;height:15px;"
|
|
515
|
+
aria-hidden="true"></i>
|
|
516
|
+
</div>
|
|
517
|
+
<span style="max-width:calc(100% - 60px);text-overflow: ellipsis;white-space: nowrap;overflow: hidden;">${d2.ask}</span>
|
|
518
|
+
<div class="flex-fill"></div>
|
|
519
|
+
<div class="hoverBtn p-1 child"
|
|
520
|
+
onclick="${gvc.event((e, event) => {
|
|
521
|
+
event.stopPropagation();
|
|
522
|
+
event.preventDefault();
|
|
523
|
+
dialog.checkYesOrNot({
|
|
524
|
+
text: '是否確認移除問答?',
|
|
525
|
+
callback: (response) => {
|
|
526
|
+
if (response) {
|
|
527
|
+
keyData.question.splice(index, 1)
|
|
528
|
+
gvc.notifyDataChange(id)
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
})
|
|
532
|
+
})}">
|
|
533
|
+
<i class="fa-regular fa-trash d-flex align-items-center justify-content-center "
|
|
534
|
+
aria-hidden="true"></i>
|
|
535
|
+
</div>
|
|
536
|
+
</div>
|
|
537
|
+
</li>`
|
|
538
|
+
}).join('')
|
|
539
|
+
},
|
|
540
|
+
divCreate: {
|
|
541
|
+
class: `mx-n2`,
|
|
542
|
+
elem: 'ul',
|
|
543
|
+
option: [{
|
|
544
|
+
key: 'id',
|
|
545
|
+
value: parId
|
|
546
|
+
}],
|
|
547
|
+
},
|
|
548
|
+
onCreate: () => {
|
|
549
|
+
gvc.glitter.addMtScript(
|
|
550
|
+
[
|
|
551
|
+
{
|
|
552
|
+
src: `https://raw.githack.com/SortableJS/Sortable/master/Sortable.js`,
|
|
553
|
+
},
|
|
554
|
+
],
|
|
555
|
+
() => {
|
|
556
|
+
const interval = setInterval(() => {
|
|
557
|
+
if ((window as any).Sortable) {
|
|
558
|
+
try {
|
|
559
|
+
gvc.addStyle(`
|
|
560
|
+
ul {
|
|
561
|
+
list-style: none;
|
|
562
|
+
padding: 0;
|
|
563
|
+
}
|
|
564
|
+
`);
|
|
565
|
+
|
|
566
|
+
function swapArr(arr: any, index1: number, index2: number) {
|
|
567
|
+
const data = arr[index1];
|
|
568
|
+
arr.splice(index1, 1);
|
|
569
|
+
arr.splice(index2, 0, data);
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
let startIndex = 0;
|
|
573
|
+
//@ts-ignore
|
|
574
|
+
Sortable.create(gvc.glitter.document.getElementById(parId), {
|
|
575
|
+
handle: '.dragItem',
|
|
576
|
+
group: gvc.glitter.getUUID(),
|
|
577
|
+
|
|
578
|
+
animation: 100,
|
|
579
|
+
onChange: function (evt: any) {
|
|
580
|
+
swapArr(keyData.question, startIndex, evt.newIndex);
|
|
581
|
+
const newIndex = evt.newIndex
|
|
582
|
+
startIndex = newIndex
|
|
583
|
+
},
|
|
584
|
+
onEnd: (evt: any) => {
|
|
585
|
+
|
|
586
|
+
},
|
|
587
|
+
onStart: function (evt: any) {
|
|
588
|
+
startIndex = evt.oldIndex;
|
|
589
|
+
},
|
|
590
|
+
});
|
|
591
|
+
} catch (e) {
|
|
592
|
+
}
|
|
593
|
+
clearInterval(interval);
|
|
594
|
+
}
|
|
595
|
+
}, 100);
|
|
596
|
+
},
|
|
597
|
+
() => {
|
|
598
|
+
}
|
|
599
|
+
);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
})}
|
|
603
|
+
<div class="w-100"
|
|
604
|
+
style="justify-content: center; align-items: center; gap: 4px; display: flex;color: #3366BB;cursor: pointer;"
|
|
605
|
+
data-bs-toggle="dropdown"
|
|
606
|
+
aria-haspopup="true"
|
|
607
|
+
aria-expanded="false"
|
|
608
|
+
onclick="${gvc.event(() => {
|
|
609
|
+
const copy = {
|
|
610
|
+
ask: '',
|
|
611
|
+
response: ''
|
|
612
|
+
}
|
|
613
|
+
BgWidget.settingDialog({
|
|
614
|
+
gvc: gvc,
|
|
615
|
+
title: '設定問答',
|
|
616
|
+
innerHTML: (gvc) => {
|
|
617
|
+
return [BgWidget.editeInput({
|
|
618
|
+
gvc: gvc,
|
|
619
|
+
title: '問題',
|
|
620
|
+
placeHolder: `請輸入問題`,
|
|
621
|
+
default: copy.ask,
|
|
622
|
+
callback: (text) => {
|
|
623
|
+
copy.ask = text;
|
|
624
|
+
},
|
|
625
|
+
}), BgWidget.textArea({
|
|
626
|
+
gvc: gvc,
|
|
627
|
+
title: '回答',
|
|
628
|
+
placeHolder: `請輸入回答`,
|
|
629
|
+
default: copy.response,
|
|
630
|
+
callback: (text) => {
|
|
631
|
+
copy.response = text;
|
|
632
|
+
},
|
|
633
|
+
})].map((dd) => {
|
|
634
|
+
return `<div>${dd}</div>`
|
|
635
|
+
}).join('')
|
|
636
|
+
},
|
|
637
|
+
footer_html: (gvc) => {
|
|
638
|
+
return [
|
|
639
|
+
BgWidget.cancel(gvc.event(() => {
|
|
640
|
+
gvc.closeDialog()
|
|
641
|
+
})),
|
|
642
|
+
BgWidget.save(gvc.event(() => {
|
|
643
|
+
if (!copy.ask || !copy.response) {
|
|
644
|
+
dialog.errorMessage({text: '內容不得為空'})
|
|
645
|
+
return
|
|
646
|
+
}
|
|
647
|
+
keyData.question.push(copy)
|
|
648
|
+
refresh()
|
|
649
|
+
gvc.closeDialog()
|
|
650
|
+
}))
|
|
651
|
+
].join(``)
|
|
652
|
+
}
|
|
653
|
+
})
|
|
654
|
+
})}">
|
|
655
|
+
<div style="font-size: 16px; font-family: Noto Sans; font-weight: 400; word-wrap: break-word">
|
|
656
|
+
新增一則問答
|
|
657
|
+
</div>
|
|
658
|
+
<i class="fa-solid fa-plus"
|
|
659
|
+
aria-hidden="true"></i>
|
|
660
|
+
</div>
|
|
661
|
+
</div>
|
|
662
|
+
`
|
|
663
|
+
},
|
|
664
|
+
divCreate: {
|
|
665
|
+
class: `m-n2`,
|
|
666
|
+
},
|
|
667
|
+
};
|
|
668
|
+
})
|
|
669
|
+
},
|
|
670
|
+
footer_html: (gvc) => {
|
|
671
|
+
return [BgWidget.cancel(gvc.event(() => {
|
|
672
|
+
gvc.closeDialog()
|
|
673
|
+
}), '取消'), BgWidget.save(gvc.event(async () => {
|
|
674
|
+
dialog.dataLoading({visible: true});
|
|
675
|
+
await ApiUser.setPublicConfig({
|
|
676
|
+
key: `robot_ai_reply`,
|
|
677
|
+
value: keyData,
|
|
678
|
+
user_id: 'manager',
|
|
679
|
+
});
|
|
680
|
+
dialog.dataLoading({visible: false});
|
|
681
|
+
dialog.successMessage({text: '設定成功!'});
|
|
682
|
+
gvc.closeDialog()
|
|
683
|
+
}), '儲存')].join('')
|
|
684
|
+
}
|
|
685
|
+
})
|
|
686
|
+
}))}
|
|
687
|
+
</div>` : ``}
|
|
688
|
+
</div>
|
|
689
|
+
`
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
}),
|
|
693
|
+
BgWidget.editeInput({
|
|
694
|
+
gvc: gvc,
|
|
695
|
+
title: '客服名稱',
|
|
696
|
+
type: 'name',
|
|
697
|
+
placeHolder: `請輸入客服名稱`,
|
|
698
|
+
default: keyData.name,
|
|
699
|
+
callback: (text) => {
|
|
700
|
+
keyData.name = text;
|
|
701
|
+
},
|
|
702
|
+
}),
|
|
703
|
+
EditorElem.uploadImage({
|
|
704
|
+
title: '大頭照',
|
|
705
|
+
gvc: gvc,
|
|
706
|
+
def: keyData.head || '',
|
|
707
|
+
callback: (text: string) => {
|
|
708
|
+
keyData.head = text;
|
|
709
|
+
},
|
|
710
|
+
}),
|
|
711
|
+
EditorElem.colorSelect({
|
|
712
|
+
gvc: gvc,
|
|
713
|
+
title: '設定主色調',
|
|
714
|
+
def: keyData.color,
|
|
715
|
+
callback: (text) => {
|
|
716
|
+
keyData.color = text;
|
|
717
|
+
gvc.notifyDataChange(vO.id)
|
|
718
|
+
},
|
|
719
|
+
}),
|
|
720
|
+
BgWidget.editeInput({
|
|
721
|
+
gvc: gvc,
|
|
722
|
+
title: '置頂標題',
|
|
723
|
+
placeHolder: `請輸入置頂標題`,
|
|
724
|
+
default: keyData.title,
|
|
725
|
+
callback: (text) => {
|
|
726
|
+
keyData.title = text;
|
|
727
|
+
},
|
|
728
|
+
}),
|
|
729
|
+
BgWidget.textArea({
|
|
730
|
+
gvc: gvc,
|
|
731
|
+
title: '置頂內文',
|
|
732
|
+
placeHolder: `請輸入置頂內文`,
|
|
733
|
+
default: keyData.content,
|
|
734
|
+
callback: (text) => {
|
|
735
|
+
keyData.content = text;
|
|
736
|
+
},
|
|
737
|
+
})
|
|
738
|
+
]
|
|
739
|
+
} else {
|
|
740
|
+
return []
|
|
741
|
+
}
|
|
742
|
+
})()
|
|
449
743
|
].join(`<div class="my-2"></div>`)}
|
|
450
744
|
</div>`,
|
|
451
745
|
gvc.bindView(() => {
|
|
@@ -454,6 +748,9 @@ export class BgCustomerMessage {
|
|
|
454
748
|
return {
|
|
455
749
|
bind: id,
|
|
456
750
|
view: () => {
|
|
751
|
+
if (!keyData.toggle) {
|
|
752
|
+
return ``
|
|
753
|
+
}
|
|
457
754
|
return new Promise(async (resolve, reject) => {
|
|
458
755
|
let keyData = (await ApiUser.getPublicConfig(`robot_auto_reply`, 'manager')).response.value || {};
|
|
459
756
|
if (Array.isArray(keyData)) {
|
|
@@ -470,10 +767,12 @@ export class BgCustomerMessage {
|
|
|
470
767
|
|
|
471
768
|
resolve(html`
|
|
472
769
|
<div class="position-relative bgf6 d-flex align-items-center justify-content-between mx-n2 p-2 py-3 border-top border-bottom mt-2 shadow">
|
|
473
|
-
<span class="fs-6 fw-bold "
|
|
474
|
-
style="color:black;"
|
|
770
|
+
<span class="fs-6 fw-bold d-flex flex-column"
|
|
771
|
+
style="color:black;">常見問題
|
|
772
|
+
${BgWidget.grayNote('將顯示於客服聊天首頁,讓用戶直接點選')}</span>
|
|
475
773
|
</div>
|
|
476
774
|
<div style="" class="p-2">
|
|
775
|
+
|
|
477
776
|
${gvc.bindView(() => {
|
|
478
777
|
return {
|
|
479
778
|
bind: id,
|
|
@@ -821,11 +1120,11 @@ export class BgCustomerMessage {
|
|
|
821
1120
|
</div>
|
|
822
1121
|
<img
|
|
823
1122
|
src="${head}"
|
|
824
|
-
class="rounded-circle ${(dd.chat_id.startsWith('line') || dd.chat_id.startsWith('fb')) ?
|
|
825
|
-
style="border-radius: 50%;${(()=>{
|
|
826
|
-
if(dd.chat_id.startsWith('line')){
|
|
1123
|
+
class="rounded-circle ${(dd.chat_id.startsWith('line') || dd.chat_id.startsWith('fb')) ? `` : `border`}"
|
|
1124
|
+
style="border-radius: 50%;${(() => {
|
|
1125
|
+
if (dd.chat_id.startsWith('line')) {
|
|
827
1126
|
return `border:2px solid green;`
|
|
828
|
-
}else
|
|
1127
|
+
} else if (dd.chat_id.startsWith('fb')) {
|
|
829
1128
|
return `border:2px solid #0078ff;`
|
|
830
1129
|
}
|
|
831
1130
|
})()}"
|
|
@@ -1630,9 +1630,9 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
|
|
|
1630
1630
|
h += html `<p class="mb-1" style="white-space: normal; word-break: break-all;">${str}</p>`;
|
|
1631
1631
|
});
|
|
1632
1632
|
}
|
|
1633
|
-
return html
|
|
1633
|
+
return html `<div class="w-100 alert alert-secondary p-3 mb-0 ${css.class}" style="white-space: normal; word-break: break-all; ${css.style} ">
|
|
1634
1634
|
<div class="fs-5 mb-0"><strong>${title}</strong></div>
|
|
1635
|
-
${messageList && messageList.length > 0 ? `<div class="mt-2" style="white-space: normal;
|
|
1635
|
+
${messageList && messageList.length > 0 ? html `<div class="mt-2" style="white-space: normal;">${h}</div>` : ``}
|
|
1636
1636
|
</div>`;
|
|
1637
1637
|
}
|
|
1638
1638
|
static selNavbar(data) {
|
|
@@ -1982,9 +1982,9 @@ ${obj.default ?? ''}</textarea
|
|
|
1982
1982
|
h += html`<p class="mb-1" style="white-space: normal; word-break: break-all;">${str}</p>`;
|
|
1983
1983
|
});
|
|
1984
1984
|
}
|
|
1985
|
-
return html
|
|
1985
|
+
return html`<div class="w-100 alert alert-secondary p-3 mb-0 ${css.class}" style="white-space: normal; word-break: break-all; ${css.style} ">
|
|
1986
1986
|
<div class="fs-5 mb-0"><strong>${title}</strong></div>
|
|
1987
|
-
${messageList && messageList.length > 0 ? `<div class="mt-2" style="white-space: normal;
|
|
1987
|
+
${messageList && messageList.length > 0 ? html`<div class="mt-2" style="white-space: normal;">${h}</div>` : ``}
|
|
1988
1988
|
</div>`;
|
|
1989
1989
|
}
|
|
1990
1990
|
|
|
@@ -107,8 +107,8 @@ export class AutoReply {
|
|
|
107
107
|
vm.dataList = [
|
|
108
108
|
'auto-email-shipment-arrival',
|
|
109
109
|
'auto-email-shipment',
|
|
110
|
-
'auto-email-payment-successful',
|
|
111
110
|
'auto-email-order-create',
|
|
111
|
+
'auto-email-payment-successful',
|
|
112
112
|
'proof-purchase',
|
|
113
113
|
'auto-email-birthday',
|
|
114
114
|
'auto-email-welcome',
|
|
@@ -269,14 +269,6 @@ export class AutoReply {
|
|
|
269
269
|
content: '[@{{app_name}}] #@{{訂單號碼}} 送貨狀態 更新為: 已到達',
|
|
270
270
|
toggle: true,
|
|
271
271
|
},
|
|
272
|
-
{
|
|
273
|
-
tag: 'auto-email-payment-successful',
|
|
274
|
-
tag_name: '訂單付款成功',
|
|
275
|
-
name: '@{{app_name}}',
|
|
276
|
-
title: '[@{{app_name}}] #@{{訂單號碼}} 付款狀態 更新為: 已付款',
|
|
277
|
-
content: '[@{{app_name}}] #@{{訂單號碼}} 付款狀態 更新為: 已付款',
|
|
278
|
-
toggle: true,
|
|
279
|
-
},
|
|
280
272
|
{
|
|
281
273
|
tag: 'auto-email-order-create',
|
|
282
274
|
tag_name: '訂單成立',
|
|
@@ -285,6 +277,14 @@ export class AutoReply {
|
|
|
285
277
|
content: '[@{{app_name}}] 您的訂單 #@{{訂單號碼}} 已成立',
|
|
286
278
|
toggle: true,
|
|
287
279
|
},
|
|
280
|
+
{
|
|
281
|
+
tag: 'auto-email-payment-successful',
|
|
282
|
+
tag_name: '訂單付款成功',
|
|
283
|
+
name: '@{{app_name}}',
|
|
284
|
+
title: '[@{{app_name}}] #@{{訂單號碼}} 付款狀態 更新為: 已付款',
|
|
285
|
+
content: '[@{{app_name}}] #@{{訂單號碼}} 付款狀態 更新為: 已付款',
|
|
286
|
+
toggle: true,
|
|
287
|
+
},
|
|
288
288
|
{
|
|
289
289
|
tag: 'proof-purchase',
|
|
290
290
|
tag_name: '訂單待核款',
|
|
@@ -122,8 +122,8 @@ export class AutoReply {
|
|
|
122
122
|
vm.dataList = [
|
|
123
123
|
'auto-email-shipment-arrival',
|
|
124
124
|
'auto-email-shipment',
|
|
125
|
-
'auto-email-payment-successful',
|
|
126
125
|
'auto-email-order-create',
|
|
126
|
+
'auto-email-payment-successful',
|
|
127
127
|
'proof-purchase',
|
|
128
128
|
// 'auto-email-order-cancel-success',
|
|
129
129
|
// 'auto-email-order-cancel-false',
|
|
@@ -307,14 +307,6 @@ export class AutoReply {
|
|
|
307
307
|
content: '[@{{app_name}}] #@{{訂單號碼}} 送貨狀態 更新為: 已到達',
|
|
308
308
|
toggle: true,
|
|
309
309
|
},
|
|
310
|
-
{
|
|
311
|
-
tag: 'auto-email-payment-successful',
|
|
312
|
-
tag_name: '訂單付款成功',
|
|
313
|
-
name: '@{{app_name}}',
|
|
314
|
-
title: '[@{{app_name}}] #@{{訂單號碼}} 付款狀態 更新為: 已付款',
|
|
315
|
-
content: '[@{{app_name}}] #@{{訂單號碼}} 付款狀態 更新為: 已付款',
|
|
316
|
-
toggle: true,
|
|
317
|
-
},
|
|
318
310
|
{
|
|
319
311
|
tag: 'auto-email-order-create',
|
|
320
312
|
tag_name: '訂單成立',
|
|
@@ -323,6 +315,14 @@ export class AutoReply {
|
|
|
323
315
|
content: '[@{{app_name}}] 您的訂單 #@{{訂單號碼}} 已成立',
|
|
324
316
|
toggle: true,
|
|
325
317
|
},
|
|
318
|
+
{
|
|
319
|
+
tag: 'auto-email-payment-successful',
|
|
320
|
+
tag_name: '訂單付款成功',
|
|
321
|
+
name: '@{{app_name}}',
|
|
322
|
+
title: '[@{{app_name}}] #@{{訂單號碼}} 付款狀態 更新為: 已付款',
|
|
323
|
+
content: '[@{{app_name}}] #@{{訂單號碼}} 付款狀態 更新為: 已付款',
|
|
324
|
+
toggle: true,
|
|
325
|
+
},
|
|
326
326
|
{
|
|
327
327
|
tag: 'proof-purchase',
|
|
328
328
|
tag_name: '訂單待核款',
|