ts-glitter 20.7.4 → 20.7.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.
- 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 +2 -2
- package/lowcode/cms-plugin/third-party-google.ts +2 -2
- 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 +268 -265
- 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 +23 -16
- package/src/api-public/services/user.js.map +1 -1
- package/src/api-public/services/user.ts +100 -90
- 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 +1 -3
- package/src/modules/caught-error.js.map +1 -1
- package/src/modules/caught-error.ts +1 -3
- 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
|
@@ -35,6 +35,7 @@ type TData = {
|
|
|
35
35
|
title?: string;
|
|
36
36
|
value: string;
|
|
37
37
|
stopClick?: boolean;
|
|
38
|
+
tooltip?: string;
|
|
38
39
|
};
|
|
39
40
|
|
|
40
41
|
type TableV3 = {
|
|
@@ -223,14 +224,14 @@ export class BgWidget {
|
|
|
223
224
|
}
|
|
224
225
|
|
|
225
226
|
static disableButton(text: string, obj?: { icon?: string; textStyle?: string }) {
|
|
226
|
-
return html` <button class="btn btn-gray-disable"
|
|
227
|
+
return html` <button class="btn btn-gray-disable" type="button">
|
|
227
228
|
<i class="${obj && obj.icon && obj.icon.length > 0 ? obj.icon : 'd-none'}" style="color: #393939"></i>
|
|
228
229
|
${text.length > 0 ? html`<span class="tx_700" style="${obj?.textStyle ?? ''}">${text}</span>` : ''}
|
|
229
230
|
</button>`;
|
|
230
231
|
}
|
|
231
232
|
|
|
232
233
|
static grayButton(text: string, event: string, obj?: { icon?: string; textStyle?: string; class?: string }) {
|
|
233
|
-
return html` <button class="btn btn-gray ${obj?.class || ''}"
|
|
234
|
+
return html` <button class="btn btn-gray ${obj?.class || ''}" type="button" onclick="${event}">
|
|
234
235
|
<i class="${obj && obj.icon && obj.icon.length > 0 ? obj.icon : 'd-none'}" style="color: #393939"></i>
|
|
235
236
|
${text.length > 0 ? html`<span class="tx_700" style="${obj?.textStyle ?? ''}">${text}</span>` : ''}
|
|
236
237
|
</button>`;
|
|
@@ -352,7 +353,6 @@ export class BgWidget {
|
|
|
352
353
|
></i>
|
|
353
354
|
<div class="w-100 d-none" style="position: absolute;left: 0;top: 100%;z-index:2;">
|
|
354
355
|
<div
|
|
355
|
-
class=""
|
|
356
356
|
style="height: 100vh;width: 100vw;position: fixed;left: 0;top: 0;z-index:3;"
|
|
357
357
|
onclick="${gvc.event(e => {
|
|
358
358
|
if (e.parentElement) {
|
|
@@ -473,6 +473,41 @@ export class BgWidget {
|
|
|
473
473
|
}
|
|
474
474
|
|
|
475
475
|
// 標籤
|
|
476
|
+
static richTextQuickList = [
|
|
477
|
+
{
|
|
478
|
+
title: '商家名稱',
|
|
479
|
+
value: '@{{app_name}}',
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
title: '訂單號碼',
|
|
483
|
+
value: '@{{訂單號碼}}',
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
title: '會員姓名',
|
|
487
|
+
value: '@{{user_name}}',
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
title: '訂單金額',
|
|
491
|
+
value: '@{{訂單金額}}',
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
title: '姓名',
|
|
495
|
+
value: '@{{姓名}}',
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
title: '電話',
|
|
499
|
+
value: '@{{電話}}',
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
title: '地址',
|
|
503
|
+
value: '@{{地址}}',
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
title: '信箱',
|
|
507
|
+
value: '@{{信箱}}',
|
|
508
|
+
},
|
|
509
|
+
];
|
|
510
|
+
|
|
476
511
|
static insignia(className: string, text: string, args: { type: 'fill' | 'border'; size: 'sm' | 'md' }) {
|
|
477
512
|
const typeMap = {
|
|
478
513
|
border: `insignia-border insignia-${className}-border`,
|
|
@@ -668,67 +703,48 @@ export class BgWidget {
|
|
|
668
703
|
gvc.notifyDataChange('editDialog');
|
|
669
704
|
};
|
|
670
705
|
reload();
|
|
671
|
-
return `<div class="${vm.edit_mode ? `m-n3` : `m-n2`}"
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
return
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
class="w-100"
|
|
693
|
-
style="justify-content: center; align-items: center; gap: 4px; display: flex;color: #3366BB;cursor: pointer;"
|
|
694
|
-
data-bs-toggle="dropdown"
|
|
695
|
-
aria-haspopup="true"
|
|
696
|
-
aria-expanded="false"
|
|
697
|
-
onclick="${gvc.event(() => {
|
|
698
|
-
obj.callback!(dd.tag);
|
|
699
|
-
gvc.closeDialog();
|
|
700
|
-
})}"
|
|
701
|
-
>
|
|
706
|
+
return html`<div class="${vm.edit_mode ? `m-n3` : `m-n2`}">
|
|
707
|
+
${gvc.bindView({
|
|
708
|
+
bind: 'editDialog',
|
|
709
|
+
view: async () => {
|
|
710
|
+
reload = () => {
|
|
711
|
+
gvc.recreateView();
|
|
712
|
+
};
|
|
713
|
+
return html`
|
|
714
|
+
<div class="d-flex flex-column" style="left: 0;top:0;background-color: white;z-index:1;">
|
|
715
|
+
${BgWidget.tableV3({
|
|
716
|
+
gvc: gvc,
|
|
717
|
+
getData: vmi => {
|
|
718
|
+
if (!vm.loading) {
|
|
719
|
+
function getDatalist() {
|
|
720
|
+
return vm.language_list.label.map((dd: any) => {
|
|
721
|
+
return [
|
|
722
|
+
vm.edit_mode
|
|
723
|
+
? undefined
|
|
724
|
+
: {
|
|
725
|
+
key: '',
|
|
726
|
+
value: html`
|
|
702
727
|
<div
|
|
703
|
-
|
|
728
|
+
class="w-100"
|
|
729
|
+
style="justify-content: center; align-items: center; gap: 4px; display: flex;color: #3366BB;cursor: pointer;"
|
|
730
|
+
data-bs-toggle="dropdown"
|
|
731
|
+
aria-haspopup="true"
|
|
732
|
+
aria-expanded="false"
|
|
733
|
+
onclick="${gvc.event(() => {
|
|
734
|
+
obj.callback!(dd.tag);
|
|
735
|
+
gvc.closeDialog();
|
|
736
|
+
})}"
|
|
704
737
|
>
|
|
705
|
-
|
|
738
|
+
<div
|
|
739
|
+
style="font-size: 16px; font-family: Noto Sans; font-weight: 400; word-wrap: break-word"
|
|
740
|
+
>
|
|
741
|
+
選擇
|
|
742
|
+
</div>
|
|
706
743
|
</div>
|
|
707
|
-
|
|
708
|
-
`,
|
|
709
|
-
},
|
|
710
|
-
{
|
|
711
|
-
key: '標籤',
|
|
712
|
-
value: html` <div
|
|
713
|
-
class="d-flex flex-shrink-0"
|
|
714
|
-
style="width:${elementLength}px;font-size: 16px;font-style: normal;font-weight: 700;"
|
|
715
|
-
>
|
|
716
|
-
${BgWidget.editeInput({
|
|
717
|
-
gvc: gvc,
|
|
718
|
-
title: ``,
|
|
719
|
-
placeHolder: '請輸入標籤',
|
|
720
|
-
callback: text => {
|
|
721
|
-
dd.tag = text;
|
|
744
|
+
`,
|
|
722
745
|
},
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
readonly: !vm.edit_mode,
|
|
726
|
-
})}
|
|
727
|
-
</div>`,
|
|
728
|
-
},
|
|
729
|
-
...Language.languageSupport().map(d1 => {
|
|
730
|
-
return {
|
|
731
|
-
key: d1.value,
|
|
746
|
+
{
|
|
747
|
+
key: '標籤',
|
|
732
748
|
value: html` <div
|
|
733
749
|
class="d-flex flex-shrink-0"
|
|
734
750
|
style="width:${elementLength}px;font-size: 16px;font-style: normal;font-weight: 700;"
|
|
@@ -736,59 +752,78 @@ export class BgWidget {
|
|
|
736
752
|
${BgWidget.editeInput({
|
|
737
753
|
gvc: gvc,
|
|
738
754
|
title: ``,
|
|
739
|
-
placeHolder: '
|
|
755
|
+
placeHolder: '請輸入標籤',
|
|
740
756
|
callback: text => {
|
|
741
|
-
dd
|
|
757
|
+
dd.tag = text;
|
|
742
758
|
},
|
|
743
759
|
type: 'text',
|
|
744
|
-
default: dd
|
|
760
|
+
default: dd.tag || '',
|
|
745
761
|
readonly: !vm.edit_mode,
|
|
746
762
|
})}
|
|
747
763
|
</div>`,
|
|
748
|
-
};
|
|
749
|
-
}),
|
|
750
|
-
].filter(dd => {
|
|
751
|
-
return dd;
|
|
752
|
-
});
|
|
753
|
-
});
|
|
754
|
-
}
|
|
755
|
-
|
|
756
|
-
vmi.pageSize = 1;
|
|
757
|
-
vmi.originalData = vm.language_list.label;
|
|
758
|
-
vmi.tableData = getDatalist();
|
|
759
|
-
vmi.loading = vm.loading;
|
|
760
|
-
vmi.callback();
|
|
761
|
-
}
|
|
762
|
-
},
|
|
763
|
-
rowClick: (data, index) => {},
|
|
764
|
-
filter: vm.edit_mode
|
|
765
|
-
? [
|
|
766
|
-
{
|
|
767
|
-
name: '批量移除',
|
|
768
|
-
event: () => {
|
|
769
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
770
|
-
dialog.checkYesOrNot({
|
|
771
|
-
text: '是否確認刪除所選項目?',
|
|
772
|
-
callback: response => {
|
|
773
|
-
if (response) {
|
|
774
|
-
vm.language_list.label = vm.language_list.label.filter((dd: any) => {
|
|
775
|
-
return !dd.checked;
|
|
776
|
-
});
|
|
777
|
-
save();
|
|
778
|
-
}
|
|
779
764
|
},
|
|
765
|
+
...Language.languageSupport().map(d1 => {
|
|
766
|
+
return {
|
|
767
|
+
key: d1.value,
|
|
768
|
+
value: html` <div
|
|
769
|
+
class="d-flex flex-shrink-0"
|
|
770
|
+
style="width:${elementLength}px;font-size: 16px;font-style: normal;font-weight: 700;"
|
|
771
|
+
>
|
|
772
|
+
${BgWidget.editeInput({
|
|
773
|
+
gvc: gvc,
|
|
774
|
+
title: ``,
|
|
775
|
+
placeHolder: '請輸入內文',
|
|
776
|
+
callback: text => {
|
|
777
|
+
dd[d1.key] = text;
|
|
778
|
+
},
|
|
779
|
+
type: 'text',
|
|
780
|
+
default: dd[d1.key] || '',
|
|
781
|
+
readonly: !vm.edit_mode,
|
|
782
|
+
})}
|
|
783
|
+
</div>`,
|
|
784
|
+
};
|
|
785
|
+
}),
|
|
786
|
+
].filter(dd => {
|
|
787
|
+
return dd;
|
|
780
788
|
});
|
|
789
|
+
});
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
vmi.pageSize = 1;
|
|
793
|
+
vmi.originalData = vm.language_list.label;
|
|
794
|
+
vmi.tableData = getDatalist();
|
|
795
|
+
vmi.loading = vm.loading;
|
|
796
|
+
vmi.callback();
|
|
797
|
+
}
|
|
798
|
+
},
|
|
799
|
+
rowClick: (data, index) => {},
|
|
800
|
+
filter: vm.edit_mode
|
|
801
|
+
? [
|
|
802
|
+
{
|
|
803
|
+
name: '批量移除',
|
|
804
|
+
event: () => {
|
|
805
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
806
|
+
dialog.checkYesOrNot({
|
|
807
|
+
text: '是否確認刪除所選項目?',
|
|
808
|
+
callback: response => {
|
|
809
|
+
if (response) {
|
|
810
|
+
vm.language_list.label = vm.language_list.label.filter((dd: any) => {
|
|
811
|
+
return !dd.checked;
|
|
812
|
+
});
|
|
813
|
+
save();
|
|
814
|
+
}
|
|
815
|
+
},
|
|
816
|
+
});
|
|
817
|
+
},
|
|
781
818
|
},
|
|
782
|
-
|
|
783
|
-
]
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
}
|
|
789
|
-
|
|
790
|
-
onCreate: () => {},
|
|
791
|
-
})}</div>`;
|
|
819
|
+
]
|
|
820
|
+
: [],
|
|
821
|
+
})}
|
|
822
|
+
</div>
|
|
823
|
+
`;
|
|
824
|
+
},
|
|
825
|
+
})}
|
|
826
|
+
</div>`;
|
|
792
827
|
},
|
|
793
828
|
footer_html: (gvc: GVC) => {
|
|
794
829
|
if (vm.edit_mode) {
|
|
@@ -1116,13 +1151,20 @@ ${obj.default ?? ''}</textarea
|
|
|
1116
1151
|
|
|
1117
1152
|
// 新增 elementClass style
|
|
1118
1153
|
obj.gvc.addStyle(`
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1154
|
+
#${dropMenu.elementClass} {
|
|
1155
|
+
font-size: 14px;
|
|
1156
|
+
margin-top: 8px;
|
|
1157
|
+
white-space: normal;
|
|
1158
|
+
word-break: break-all;
|
|
1159
|
+
}
|
|
1160
|
+
.tag-icon-bgr {
|
|
1161
|
+
width: 25px;
|
|
1162
|
+
height: 25px;
|
|
1163
|
+
background-position: center;
|
|
1164
|
+
background-size: cover;
|
|
1165
|
+
background-repeat: no-repeat;
|
|
1166
|
+
}
|
|
1167
|
+
`);
|
|
1126
1168
|
|
|
1127
1169
|
return obj.gvc.bindView({
|
|
1128
1170
|
bind: vm.id,
|
|
@@ -1139,7 +1181,9 @@ ${obj.default ?? ''}</textarea
|
|
|
1139
1181
|
if (linkComp.loading) {
|
|
1140
1182
|
return html` <div
|
|
1141
1183
|
class="bgw-input border rounded-3"
|
|
1142
|
-
style="${linkComp.text.length > 0
|
|
1184
|
+
style="${linkComp.text.length > 0
|
|
1185
|
+
? 'padding: 8px 18px; height: 41.75px'
|
|
1186
|
+
: 'padding: 9.5px 12px;'} ${obj.style ?? ''}"
|
|
1143
1187
|
id="${dropMenu.elementClass}"
|
|
1144
1188
|
onclick="${obj.gvc.event(() => {
|
|
1145
1189
|
componentFresh();
|
|
@@ -1185,122 +1229,171 @@ ${obj.default ?? ''}</textarea
|
|
|
1185
1229
|
`;
|
|
1186
1230
|
}
|
|
1187
1231
|
},
|
|
1188
|
-
divCreate: {},
|
|
1189
|
-
onCreate: () => {},
|
|
1190
1232
|
})}
|
|
1191
1233
|
${obj.gvc.bindView({
|
|
1192
1234
|
bind: dropMenu.id,
|
|
1193
|
-
view: () => {
|
|
1235
|
+
view: async () => {
|
|
1194
1236
|
if (dropMenu.loading) {
|
|
1195
1237
|
return '';
|
|
1196
1238
|
} else {
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1239
|
+
const barHTML =
|
|
1240
|
+
dropMenu.prevList.length > 0
|
|
1241
|
+
? html` <div
|
|
1242
|
+
class="m-3 cursor_pointer"
|
|
1243
|
+
style="font-size: 16px; font-weight: 500; gap: 6px; line-height: 140%;"
|
|
1244
|
+
onclick=${obj.gvc.event(() => {
|
|
1245
|
+
dataList = dropMenu.prevList[dropMenu.prevList.length - 1];
|
|
1246
|
+
dropMenu.prevList.pop();
|
|
1247
|
+
dropMenu.recentParent.pop();
|
|
1248
|
+
dropMenu.search = '';
|
|
1249
|
+
obj.gvc.notifyDataChange(dropMenu.id);
|
|
1250
|
+
})}
|
|
1251
|
+
>
|
|
1252
|
+
<i class="fa-solid fa-chevron-left me-2 hoverF2"></i>
|
|
1253
|
+
<span>${dropMenu.recentParent[dropMenu.recentParent.length - 1]}</span>
|
|
1254
|
+
</div>
|
|
1255
|
+
<input
|
|
1256
|
+
class="form-control m-2"
|
|
1257
|
+
style="width: calc(100% - 16.875px)"
|
|
1258
|
+
type="text"
|
|
1259
|
+
placeholder="搜尋"
|
|
1260
|
+
onchange="${obj.gvc.event(e => {
|
|
1261
|
+
dropMenu.search = e.value;
|
|
1262
|
+
obj.gvc.notifyDataChange(dropMenu.id);
|
|
1263
|
+
})}"
|
|
1264
|
+
oninput="${obj.gvc.event(e => {
|
|
1265
|
+
if (obj.pattern) {
|
|
1266
|
+
const value = e.value;
|
|
1267
|
+
const regex = new RegExp(`[^${obj.pattern}]`, 'g');
|
|
1268
|
+
const validValue = value.replace(regex, '');
|
|
1269
|
+
if (value !== validValue) {
|
|
1270
|
+
e.value = validValue;
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
})}"
|
|
1274
|
+
value="${dropMenu.search}"
|
|
1275
|
+
/>`
|
|
1276
|
+
: '';
|
|
1277
|
+
|
|
1278
|
+
function getProductHTML() {
|
|
1279
|
+
return BgWidget.tableV3({
|
|
1280
|
+
gvc: obj.gvc,
|
|
1281
|
+
getData: vmi => {
|
|
1282
|
+
const limit = 10;
|
|
1283
|
+
|
|
1284
|
+
ApiShop.getProduct({
|
|
1285
|
+
page: vmi.page - 1,
|
|
1286
|
+
limit: limit,
|
|
1287
|
+
search: dropMenu.search.trim(),
|
|
1288
|
+
searchType: 'title',
|
|
1289
|
+
status: 'inRange',
|
|
1290
|
+
}).then(data => {
|
|
1291
|
+
dataList = (data.response.data || []).map((item: any) => {
|
|
1292
|
+
const { id, title, preview_image } = item.content;
|
|
1293
|
+
const icon = preview_image && preview_image[0] ? preview_image[0] : '';
|
|
1294
|
+
|
|
1295
|
+
return {
|
|
1296
|
+
name: title,
|
|
1297
|
+
icon: icon,
|
|
1298
|
+
link: `/products?product_id=${id}`,
|
|
1299
|
+
};
|
|
1300
|
+
});
|
|
1301
|
+
|
|
1302
|
+
vmi.tableData = dataList.map(item => {
|
|
1303
|
+
return [
|
|
1304
|
+
{
|
|
1305
|
+
key: '商品名稱',
|
|
1306
|
+
value: html` <div class="d-flex align-items-center" style="line-height: 32px;">
|
|
1307
|
+
${BgWidget.validImageBox({
|
|
1308
|
+
gvc: obj.gvc,
|
|
1309
|
+
image: item.icon,
|
|
1310
|
+
width: 32,
|
|
1311
|
+
class: 'rounded border me-2',
|
|
1312
|
+
})}
|
|
1313
|
+
<div class="d-flex flex-column">
|
|
1314
|
+
<div>${Tool.truncateString(item.name)}</div>
|
|
1315
|
+
</div>
|
|
1316
|
+
</div>`,
|
|
1317
|
+
},
|
|
1318
|
+
];
|
|
1319
|
+
});
|
|
1320
|
+
|
|
1321
|
+
vmi.pageSize = Math.ceil(data.response.total / limit);
|
|
1322
|
+
vmi.originalData = data.response.data;
|
|
1323
|
+
vmi.loading = false;
|
|
1324
|
+
vmi.callback();
|
|
1325
|
+
});
|
|
1326
|
+
},
|
|
1327
|
+
rowClick: (_, index) => {
|
|
1328
|
+
callbackEvent(dataList[index]);
|
|
1329
|
+
},
|
|
1330
|
+
filter: [],
|
|
1331
|
+
});
|
|
1234
1332
|
}
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
class="m-2"
|
|
1244
|
-
style="cursor:pointer;display: flex; align-items: center; justify-content: space-between;"
|
|
1245
|
-
>
|
|
1333
|
+
|
|
1334
|
+
function getDataListHTML() {
|
|
1335
|
+
return dataList
|
|
1336
|
+
.filter(tag => {
|
|
1337
|
+
return tag.name.includes(dropMenu.search);
|
|
1338
|
+
})
|
|
1339
|
+
.map(tag => {
|
|
1340
|
+
return html`
|
|
1246
1341
|
<div
|
|
1247
|
-
class="
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1342
|
+
class="m-2"
|
|
1343
|
+
style="cursor:pointer;display: flex; align-items: center; justify-content: space-between;"
|
|
1344
|
+
>
|
|
1345
|
+
<div
|
|
1346
|
+
class="w-100 p-1 link-item-container hoverF2 cursor_pointer text-wrap"
|
|
1347
|
+
onclick=${obj.gvc.event(() => {
|
|
1348
|
+
if (tag.link && tag.link.length > 0 && !tag.ignoreFirst) {
|
|
1349
|
+
callbackEvent(tag);
|
|
1350
|
+
} else {
|
|
1351
|
+
dropMenu.prevList.push(dataList);
|
|
1352
|
+
dropMenu.recentParent.push(tag.name);
|
|
1353
|
+
tag.items && (dataList = tag.items);
|
|
1354
|
+
obj.gvc.notifyDataChange(dropMenu.id);
|
|
1355
|
+
}
|
|
1356
|
+
})}
|
|
1357
|
+
>
|
|
1358
|
+
<div
|
|
1359
|
+
style="min-width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;"
|
|
1360
|
+
>
|
|
1361
|
+
${tag.icon.includes('https://')
|
|
1362
|
+
? html` <div
|
|
1363
|
+
class="tag-icon-bgr"
|
|
1364
|
+
style="background-image: url('${tag.icon}');"
|
|
1365
|
+
></div>`
|
|
1366
|
+
: html`<i class="${tag.icon.length > 0 ? tag.icon : 'fa-regular fa-image'}"></i>`}
|
|
1367
|
+
</div>
|
|
1368
|
+
${tag.name}
|
|
1369
|
+
</div>
|
|
1370
|
+
<div
|
|
1371
|
+
class="py-1 px-3 hoverF2 ${tag.items && tag.items.length > 0 ? '' : 'd-none'}"
|
|
1372
|
+
onclick=${obj.gvc.event(() => {
|
|
1252
1373
|
dropMenu.prevList.push(dataList);
|
|
1253
1374
|
dropMenu.recentParent.push(tag.name);
|
|
1254
1375
|
tag.items && (dataList = tag.items);
|
|
1255
1376
|
obj.gvc.notifyDataChange(dropMenu.id);
|
|
1256
|
-
}
|
|
1257
|
-
})}
|
|
1258
|
-
>
|
|
1259
|
-
<div
|
|
1260
|
-
style="min-width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;"
|
|
1377
|
+
})}
|
|
1261
1378
|
>
|
|
1262
|
-
|
|
1263
|
-
if (tag.icon.includes('https://')) {
|
|
1264
|
-
return html` <div
|
|
1265
|
-
style="
|
|
1266
|
-
width: 25px; height: 25px;
|
|
1267
|
-
background-image: url('${tag.icon}');
|
|
1268
|
-
background-position: center;
|
|
1269
|
-
background-size: cover;
|
|
1270
|
-
background-repeat: no-repeat;
|
|
1271
|
-
"
|
|
1272
|
-
></div>`;
|
|
1273
|
-
}
|
|
1274
|
-
return html`<i
|
|
1275
|
-
class="${tag.icon.length > 0 ? tag.icon : 'fa-regular fa-image'}"
|
|
1276
|
-
></i>`;
|
|
1277
|
-
})()}
|
|
1379
|
+
<i class="fa-solid fa-chevron-right cursor_pointer"></i>
|
|
1278
1380
|
</div>
|
|
1279
|
-
${tag.name}
|
|
1280
1381
|
</div>
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
})}
|
|
1289
|
-
>
|
|
1290
|
-
<i class="fa-solid fa-chevron-right cursor_pointer"></i>
|
|
1291
|
-
</div>
|
|
1292
|
-
</div>
|
|
1293
|
-
`;
|
|
1294
|
-
});
|
|
1382
|
+
`;
|
|
1383
|
+
})
|
|
1384
|
+
.join('');
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
const listHTML = dropMenu.recentParent[0] === '所有商品' ? getProductHTML() : getDataListHTML();
|
|
1388
|
+
|
|
1295
1389
|
return html`
|
|
1296
1390
|
<div class="border border-2 rounded-2 p-2" style="width: ${dropMenu.elementWidth}px;">
|
|
1297
|
-
${
|
|
1298
|
-
<div style="overflow-y: auto; max-height: 42.5vh;">${
|
|
1391
|
+
${barHTML}
|
|
1392
|
+
<div style="overflow-y: auto; max-height: 42.5vh;">${listHTML}</div>
|
|
1299
1393
|
</div>
|
|
1300
1394
|
`;
|
|
1301
1395
|
}
|
|
1302
1396
|
},
|
|
1303
|
-
|
|
1304
1397
|
divCreate: {
|
|
1305
1398
|
style: 'position: absolute; top: 44px; left: 0; z-index: 1; background-color: #fff;',
|
|
1306
1399
|
},
|
|
@@ -1308,7 +1401,6 @@ ${obj.default ?? ''}</textarea
|
|
|
1308
1401
|
</div>`;
|
|
1309
1402
|
}
|
|
1310
1403
|
},
|
|
1311
|
-
divCreate: {},
|
|
1312
1404
|
onCreate: () => {
|
|
1313
1405
|
if (vm.loading) {
|
|
1314
1406
|
const acticleList: MenuItem[] = [];
|
|
@@ -1329,22 +1421,12 @@ ${obj.default ?? ''}</textarea
|
|
|
1329
1421
|
});
|
|
1330
1422
|
}),
|
|
1331
1423
|
new Promise<void>(resolve => {
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
const { id, title, preview_image } = item.content;
|
|
1337
|
-
const icon = preview_image && preview_image[0] ? preview_image[0] : '';
|
|
1338
|
-
productList.push({
|
|
1339
|
-
name: title,
|
|
1340
|
-
icon: icon,
|
|
1341
|
-
link: `/products?product_id=${id}`,
|
|
1342
|
-
});
|
|
1343
|
-
}
|
|
1344
|
-
);
|
|
1345
|
-
resolve();
|
|
1346
|
-
}
|
|
1424
|
+
productList.push({
|
|
1425
|
+
name: '',
|
|
1426
|
+
icon: '',
|
|
1427
|
+
link: `/products?product_id=`,
|
|
1347
1428
|
});
|
|
1429
|
+
resolve();
|
|
1348
1430
|
}),
|
|
1349
1431
|
new Promise<void>(resolve => {
|
|
1350
1432
|
Article.get({
|
|
@@ -1804,12 +1886,12 @@ ${obj.default ?? ''}</textarea
|
|
|
1804
1886
|
divCreate: {
|
|
1805
1887
|
class: `card`,
|
|
1806
1888
|
style: `
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1889
|
+
width: 100%;
|
|
1890
|
+
overflow: hidden;
|
|
1891
|
+
border-radius: 10px;
|
|
1892
|
+
background: #fff;
|
|
1893
|
+
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.08);
|
|
1894
|
+
`,
|
|
1813
1895
|
},
|
|
1814
1896
|
onCreate: () => {
|
|
1815
1897
|
if (vm.loading) {
|
|
@@ -1956,7 +2038,6 @@ ${obj.default ?? ''}</textarea
|
|
|
1956
2038
|
</div>`;
|
|
1957
2039
|
}
|
|
1958
2040
|
},
|
|
1959
|
-
divCreate: {},
|
|
1960
2041
|
onCreate: () => {
|
|
1961
2042
|
if (vm.loading) {
|
|
1962
2043
|
getData();
|
|
@@ -2005,7 +2086,7 @@ ${obj.default ?? ''}</textarea
|
|
|
2005
2086
|
};
|
|
2006
2087
|
|
|
2007
2088
|
gvc.addStyle(`
|
|
2008
|
-
.
|
|
2089
|
+
.tb-v3 {
|
|
2009
2090
|
text-align: left !important;
|
|
2010
2091
|
padding-right: 0.25rem !important;
|
|
2011
2092
|
padding-left: 0.25rem !important;
|
|
@@ -2017,6 +2098,33 @@ ${obj.default ?? ''}</textarea
|
|
|
2017
2098
|
font-size: 24px;
|
|
2018
2099
|
font-weight: 700;
|
|
2019
2100
|
}
|
|
2101
|
+
.td-tooltip {
|
|
2102
|
+
position: absolute;
|
|
2103
|
+
top: -30px;
|
|
2104
|
+
left: 50%;
|
|
2105
|
+
transform: translateX(-50%);
|
|
2106
|
+
background-color: #333;
|
|
2107
|
+
color: white;
|
|
2108
|
+
padding: 8px 12px;
|
|
2109
|
+
border-radius: 4px;
|
|
2110
|
+
font-size: 14px;
|
|
2111
|
+
white-space: nowrap;
|
|
2112
|
+
visibility: hidden;
|
|
2113
|
+
opacity: 0;
|
|
2114
|
+
transition:
|
|
2115
|
+
opacity 0.3s,
|
|
2116
|
+
visibility 0.3s;
|
|
2117
|
+
}
|
|
2118
|
+
.td-tooltip::after {
|
|
2119
|
+
content: '';
|
|
2120
|
+
position: absolute;
|
|
2121
|
+
top: 100%;
|
|
2122
|
+
left: 50%;
|
|
2123
|
+
margin-left: -5px;
|
|
2124
|
+
border-width: 5px;
|
|
2125
|
+
border-style: solid;
|
|
2126
|
+
border-color: #333 transparent transparent transparent;
|
|
2127
|
+
}
|
|
2020
2128
|
`);
|
|
2021
2129
|
|
|
2022
2130
|
return gvc.bindView(() => {
|
|
@@ -2071,6 +2179,7 @@ ${obj.default ?? ''}</textarea
|
|
|
2071
2179
|
target.style.position = checked ? 'sticky' : 'relative';
|
|
2072
2180
|
target.style.top = checked ? '0' : '';
|
|
2073
2181
|
target.style.left = checked ? '0' : '';
|
|
2182
|
+
target.style.zIndex = checked ? '1' : '';
|
|
2074
2183
|
}
|
|
2075
2184
|
|
|
2076
2185
|
// 初始化勾選框顯示
|
|
@@ -2257,7 +2366,7 @@ ${obj.default ?? ''}</textarea
|
|
|
2257
2366
|
return vm.tableData[0]
|
|
2258
2367
|
.map((dd, index: number) => {
|
|
2259
2368
|
return html` <div
|
|
2260
|
-
class="${ids.headerCell} ${ids.textClass}
|
|
2369
|
+
class="${ids.headerCell} ${ids.textClass} tb-v3 tx_700"
|
|
2261
2370
|
style="min-width: ${widthList[index]}px;"
|
|
2262
2371
|
>
|
|
2263
2372
|
${dd.key}
|
|
@@ -2304,7 +2413,9 @@ ${obj.default ?? ''}</textarea
|
|
|
2304
2413
|
${vm.tableData
|
|
2305
2414
|
.map((dd, trIndex: number) => {
|
|
2306
2415
|
return html` <tr
|
|
2307
|
-
class="${trIndex === 0 ? ids.tr : ''}
|
|
2416
|
+
class="${trIndex === 0 ? ids.tr : ''} ${dd.find(d3 => d3.tooltip)
|
|
2417
|
+
? 'tr-tooltip-container'
|
|
2418
|
+
: ''}"
|
|
2308
2419
|
onclick="${gvc.event(() => {
|
|
2309
2420
|
obj.rowClick && obj.rowClick(dd, trIndex);
|
|
2310
2421
|
})}"
|
|
@@ -2326,13 +2437,21 @@ ${obj.default ?? ''}</textarea
|
|
|
2326
2437
|
${dd.length > 1 && tdIndex === dd.length - 1 ? 'border-radius: 0 10px 10px 0;' : ''}
|
|
2327
2438
|
${dd.length === 1 ? 'border-radius: 10px;' : ''}
|
|
2328
2439
|
`;
|
|
2440
|
+
|
|
2329
2441
|
return html` <td
|
|
2330
|
-
class="${ids.textClass} ${tdClass}
|
|
2442
|
+
class="${ids.textClass} ${tdClass} tb-v3 tx_normal position-relative"
|
|
2331
2443
|
style="${style}"
|
|
2332
2444
|
${obj.filter.length !== 0 && tdIndex === 0 ? `gvc-checkbox="checkbox${trIndex}"` : ''}
|
|
2333
2445
|
onclick="${d3.stopClick ? gvc.event((_, event) => event.stopPropagation()) : ''}"
|
|
2334
2446
|
>
|
|
2335
|
-
<div
|
|
2447
|
+
<div
|
|
2448
|
+
class="text-nowrap ${d3.tooltip ? 'hover-element' : ''}"
|
|
2449
|
+
style="color: #393939 !important;"
|
|
2450
|
+
${d3.tooltip ? `data-tooltip="${d3.tooltip}"` : ''}
|
|
2451
|
+
>
|
|
2452
|
+
${d3.value}
|
|
2453
|
+
</div>
|
|
2454
|
+
${d3.tooltip ? html`<div class="td-tooltip">${d3.tooltip}</div>` : ''}
|
|
2336
2455
|
</td>`;
|
|
2337
2456
|
})
|
|
2338
2457
|
.join('')}
|
|
@@ -2366,7 +2485,6 @@ ${obj.default ?? ''}</textarea
|
|
|
2366
2485
|
return '';
|
|
2367
2486
|
}
|
|
2368
2487
|
},
|
|
2369
|
-
divCreate: {},
|
|
2370
2488
|
onCreate: () => {
|
|
2371
2489
|
if (vm.loading) {
|
|
2372
2490
|
setTimeout(() => obj.getData(vm));
|
|
@@ -2401,6 +2519,7 @@ ${obj.default ?? ''}</textarea
|
|
|
2401
2519
|
}
|
|
2402
2520
|
|
|
2403
2521
|
created.table = !created.table;
|
|
2522
|
+
|
|
2404
2523
|
gvc.notifyDataChange(ids.container);
|
|
2405
2524
|
clearInterval(si);
|
|
2406
2525
|
}
|
|
@@ -2408,6 +2527,35 @@ ${obj.default ?? ''}</textarea
|
|
|
2408
2527
|
clearInterval(si);
|
|
2409
2528
|
}
|
|
2410
2529
|
}, 50);
|
|
2530
|
+
} else {
|
|
2531
|
+
// 獲取所有工具提示容器
|
|
2532
|
+
const tooltipContainers = document.querySelectorAll('.tr-tooltip-container');
|
|
2533
|
+
|
|
2534
|
+
// 為每個容器添加事件監聽器
|
|
2535
|
+
tooltipContainers.forEach(container => {
|
|
2536
|
+
const hoverElement = container.querySelector('.hover-element');
|
|
2537
|
+
const tooltip = container.querySelector('.td-tooltip') as HTMLElement;
|
|
2538
|
+
|
|
2539
|
+
if (hoverElement && tooltip) {
|
|
2540
|
+
// 從 data-tooltip 屬性取得提示文字
|
|
2541
|
+
const tooltipText = hoverElement.getAttribute('data-tooltip');
|
|
2542
|
+
if (tooltipText) {
|
|
2543
|
+
tooltip.textContent = tooltipText;
|
|
2544
|
+
}
|
|
2545
|
+
|
|
2546
|
+
// 滑鼠移入時顯示工具提示
|
|
2547
|
+
hoverElement.addEventListener('mouseenter', () => {
|
|
2548
|
+
tooltip.style.visibility = 'visible';
|
|
2549
|
+
tooltip.style.opacity = '1';
|
|
2550
|
+
});
|
|
2551
|
+
|
|
2552
|
+
// 滑鼠移出時隱藏工具提示
|
|
2553
|
+
hoverElement.addEventListener('mouseleave', () => {
|
|
2554
|
+
tooltip.style.visibility = 'hidden';
|
|
2555
|
+
tooltip.style.opacity = '0';
|
|
2556
|
+
});
|
|
2557
|
+
}
|
|
2558
|
+
});
|
|
2411
2559
|
}
|
|
2412
2560
|
}
|
|
2413
2561
|
},
|
|
@@ -2971,7 +3119,7 @@ ${obj.default ?? ''}</textarea
|
|
|
2971
3119
|
>
|
|
2972
3120
|
<div class="fs-5 mb-0"><strong>${title}</strong></div>
|
|
2973
3121
|
${messageList && messageList.length > 0
|
|
2974
|
-
? `<div class="mt-2" style="white-space: normal; word-break: break-all;">${h}</div>`
|
|
3122
|
+
? html`<div class="mt-2" style="white-space: normal; word-break: break-all;">${h}</div>`
|
|
2975
3123
|
: ``}
|
|
2976
3124
|
</div>`;
|
|
2977
3125
|
}
|
|
@@ -3216,7 +3364,6 @@ ${obj.default ?? ''}</textarea
|
|
|
3216
3364
|
</div>
|
|
3217
3365
|
</div>`;
|
|
3218
3366
|
},
|
|
3219
|
-
divCreate: {},
|
|
3220
3367
|
onCreate: () => {
|
|
3221
3368
|
if (obj.openOnInit) {
|
|
3222
3369
|
const si = setInterval(() => {
|
|
@@ -4196,7 +4343,7 @@ ${obj.default ?? ''}</textarea
|
|
|
4196
4343
|
${opt.note ? html` <div class="tx_gray_12">${opt.note}</div> ` : ''}
|
|
4197
4344
|
</div>
|
|
4198
4345
|
</div>
|
|
4199
|
-
<div class="d-flex align-items-center" style="gap: 6px">
|
|
4346
|
+
<div class="d-flex align-items-center justify-content-end" style="gap: 6px; min-width: 115px;">
|
|
4200
4347
|
<div>庫存量</div>
|
|
4201
4348
|
<div style="color: #393939; font-size: 24px; font-weight: 600;">${opt.stock}</div>
|
|
4202
4349
|
</div>
|
|
@@ -4316,7 +4463,7 @@ ${obj.default ?? ''}</textarea
|
|
|
4316
4463
|
|
|
4317
4464
|
newOptions.forEach(option => {
|
|
4318
4465
|
const optionElement = document.createElement('div');
|
|
4319
|
-
optionElement.classList.add('d-flex', 'align-items-center');
|
|
4466
|
+
optionElement.classList.add('d-flex', 'align-items-center', 'justify-content-between');
|
|
4320
4467
|
optionElement.style.gap = '24px';
|
|
4321
4468
|
optionElement.innerHTML = printOptionSt(option);
|
|
4322
4469
|
dialogContainer.appendChild(optionElement);
|
|
@@ -4398,7 +4545,6 @@ ${obj.default ?? ''}</textarea
|
|
|
4398
4545
|
</div>
|
|
4399
4546
|
</div>`;
|
|
4400
4547
|
},
|
|
4401
|
-
onCreate: () => {},
|
|
4402
4548
|
})}
|
|
4403
4549
|
</div>`;
|
|
4404
4550
|
},
|
|
@@ -5195,7 +5341,6 @@ ${obj.default ?? ''}</textarea
|
|
|
5195
5341
|
</div>`;
|
|
5196
5342
|
}
|
|
5197
5343
|
},
|
|
5198
|
-
divCreate: {},
|
|
5199
5344
|
onCreate: () => {
|
|
5200
5345
|
if (imageVM.loading) {
|
|
5201
5346
|
this.isImageUrlValid(obj.image).then(isValid => {
|
|
@@ -5271,7 +5416,6 @@ ${obj.default ?? ''}</textarea
|
|
|
5271
5416
|
</div>`;
|
|
5272
5417
|
},
|
|
5273
5418
|
divCreate: { class: 'h-100' },
|
|
5274
|
-
onCreate: () => {},
|
|
5275
5419
|
})}
|
|
5276
5420
|
</div>`;
|
|
5277
5421
|
}, windowID);
|
|
@@ -5408,7 +5552,6 @@ ${obj.default ?? ''}</textarea
|
|
|
5408
5552
|
return ``;
|
|
5409
5553
|
}
|
|
5410
5554
|
},
|
|
5411
|
-
divCreate: {},
|
|
5412
5555
|
};
|
|
5413
5556
|
})()
|
|
5414
5557
|
);
|