ts-glitter 21.2.4 → 21.2.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/lowcode/Entry.js +1 -1
- package/lowcode/Entry.ts +1 -1
- package/lowcode/backend-manager/bg-blog.js +19 -21
- package/lowcode/backend-manager/bg-blog.ts +20 -21
- package/lowcode/backend-manager/bg-product.js +94 -99
- package/lowcode/backend-manager/bg-product.ts +104 -109
- package/lowcode/cms-plugin/filter-options.js +1 -0
- package/lowcode/cms-plugin/filter-options.ts +1 -0
- package/lowcode/cms-plugin/pos-pages/payment-page.js +16 -6
- package/lowcode/cms-plugin/pos-pages/payment-page.ts +15 -2
- package/lowcode/cms-plugin/pos-pages/pos-function.js +102 -55
- package/lowcode/cms-plugin/pos-pages/pos-function.ts +111 -61
- package/lowcode/cms-plugin/pos-pages/pos-summary.js +4 -4
- package/lowcode/cms-plugin/pos-pages/pos-summary.ts +4 -1
- package/lowcode/cms-plugin/shopping-order-manager.js +10 -7
- package/lowcode/cms-plugin/shopping-order-manager.ts +10 -7
- package/lowcode/cms-plugin/shopping-product-setting.js +9 -6
- package/lowcode/cms-plugin/shopping-product-setting.ts +13 -6
- package/lowcode/cms-plugin/shopping-setting-basic.js +411 -405
- package/lowcode/cms-plugin/shopping-setting-basic.ts +497 -486
- package/lowcode/public-components/checkout/index.js +5 -3
- package/lowcode/public-components/checkout/index.ts +8 -3
- package/package.json +1 -1
- package/src/api-public/controllers/shop.js +6 -5
- package/src/api-public/controllers/shop.js.map +1 -1
- package/src/api-public/controllers/shop.ts +12 -13
- package/src/api-public/controllers/user.js +2 -1
- package/src/api-public/controllers/user.js.map +1 -1
- package/src/api-public/controllers/user.ts +2 -1
- package/src/api-public/services/checkout-event.js +17 -7
- package/src/api-public/services/checkout-event.js.map +1 -1
- package/src/api-public/services/data-analyze.d.ts +1 -1
- package/src/api-public/services/fb-api.js +3 -2
- package/src/api-public/services/fb-api.js.map +1 -1
- package/src/api-public/services/fb-api.ts +3 -2
- package/src/api-public/services/financial-serviceV2.js +17 -7
- package/src/api-public/services/financial-serviceV2.js.map +1 -1
- package/src/api-public/services/mail.js +3 -3
- package/src/api-public/services/mail.js.map +1 -1
- package/src/api-public/services/mail.ts +144 -134
- package/src/api-public/services/monitor.d.ts +1 -0
- package/src/api-public/services/monitor.js +5 -2
- package/src/api-public/services/monitor.js.map +1 -1
- package/src/api-public/services/monitor.ts +5 -2
- package/src/api-public/services/shopping.js +5 -4
- package/src/api-public/services/shopping.js.map +1 -1
- package/src/api-public/services/shopping.ts +15 -14
- package/src/api-public/services/user.js +17 -7
- package/src/api-public/services/user.js.map +1 -1
- package/src/index.js +17 -7
- package/src/index.js.map +1 -1
- package/src/seo-config.js +1 -1
- package/src/seo-config.js.map +1 -1
- package/src/seo-config.ts +1 -1
- package/src/services/app.js +17 -7
- package/src/services/app.js.map +1 -1
- package/src/services/ses.js.map +1 -1
- package/src/services/ses.ts +41 -35
|
@@ -184,7 +184,7 @@ export class ShoppingSettingBasic {
|
|
|
184
184
|
html: [
|
|
185
185
|
BgWidget.mainCard(html `
|
|
186
186
|
<div class="d-flex flex-column guide5-4">
|
|
187
|
-
<div style="font-weight: 700;"
|
|
187
|
+
<div style="font-weight: 700;">
|
|
188
188
|
${cat_title}名稱 ${BgWidget.languageInsignia(vm.language, 'margin-left:5px;')}
|
|
189
189
|
</div>
|
|
190
190
|
${BgWidget.editeInput({
|
|
@@ -334,426 +334,432 @@ export class ShoppingSettingBasic {
|
|
|
334
334
|
};
|
|
335
335
|
}),
|
|
336
336
|
].join(BgWidget.mbContainer(12))),
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
vm.documents =
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
else {
|
|
362
|
-
vm.documents = vm_this.content_detail;
|
|
363
|
-
vm.loading = false;
|
|
364
|
-
}
|
|
365
|
-
return {
|
|
366
|
-
bind: vm.id,
|
|
367
|
-
view: () => __awaiter(this, void 0, void 0, function* () {
|
|
368
|
-
if (vm.loading) {
|
|
369
|
-
return BgWidget.spinner();
|
|
370
|
-
}
|
|
371
|
-
language_data.content_array = language_data.content_array.filter((id) => {
|
|
372
|
-
return vm.documents.some((item) => item.id === id);
|
|
373
|
-
});
|
|
374
|
-
language_data.content_json = language_data.content_json.filter((d) => {
|
|
375
|
-
return vm.documents.some((item) => item.id === d.id);
|
|
337
|
+
obj.postMD.productType.giveaway
|
|
338
|
+
? ''
|
|
339
|
+
: BgWidget.mainCard([
|
|
340
|
+
obj.gvc.bindView(() => {
|
|
341
|
+
const vm_this = vm;
|
|
342
|
+
return (() => {
|
|
343
|
+
var _a, _b;
|
|
344
|
+
const vm = {
|
|
345
|
+
id: obj.gvc.glitter.getUUID(),
|
|
346
|
+
type: 'product-detail',
|
|
347
|
+
loading: true,
|
|
348
|
+
documents: [],
|
|
349
|
+
};
|
|
350
|
+
language_data.content_array = (_a = language_data.content_array) !== null && _a !== void 0 ? _a : [];
|
|
351
|
+
language_data.content_json = (_b = language_data.content_json) !== null && _b !== void 0 ? _b : [];
|
|
352
|
+
if (!vm_this.content_detail) {
|
|
353
|
+
ApiUser.getPublicConfig('text-manager', 'manager').then((data) => {
|
|
354
|
+
vm.documents = data.response.value;
|
|
355
|
+
if (!Array.isArray(vm.documents)) {
|
|
356
|
+
vm.documents = [];
|
|
357
|
+
}
|
|
358
|
+
vm_this.content_detail = vm.documents;
|
|
359
|
+
vm.loading = false;
|
|
360
|
+
gvc.notifyDataChange(vm.id);
|
|
376
361
|
});
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
vm.documents = vm_this.content_detail;
|
|
365
|
+
vm.loading = false;
|
|
366
|
+
}
|
|
367
|
+
return {
|
|
368
|
+
bind: vm.id,
|
|
369
|
+
view: () => __awaiter(this, void 0, void 0, function* () {
|
|
370
|
+
if (vm.loading) {
|
|
371
|
+
return BgWidget.spinner();
|
|
372
|
+
}
|
|
373
|
+
language_data.content_array = language_data.content_array.filter((id) => {
|
|
374
|
+
return vm.documents.some((item) => item.id === id);
|
|
375
|
+
});
|
|
376
|
+
language_data.content_json = language_data.content_json.filter((d) => {
|
|
377
|
+
return vm.documents.some((item) => item.id === d.id);
|
|
378
|
+
});
|
|
379
|
+
function formatRichtext(text, tags, jsonData) {
|
|
380
|
+
var _a, _b, _c;
|
|
381
|
+
let gText = `${text}`;
|
|
382
|
+
if (tags && tags.length > 0) {
|
|
383
|
+
for (const item of tags) {
|
|
384
|
+
const data = jsonData.find(j => j.key === item.key);
|
|
385
|
+
const textImage = data && data.value
|
|
386
|
+
? html `<span
|
|
387
|
+
style="font-size: ${(_a = item.font_size) !== null && _a !== void 0 ? _a : '14'}px; color: ${(_b = item.font_color) !== null && _b !== void 0 ? _b : '#393939'}; background: ${(_c = item.font_bgr) !== null && _c !== void 0 ? _c : '#fff'}"
|
|
388
|
+
>${data.value}</span
|
|
389
|
+
>`
|
|
390
|
+
: html `#${item.title}#`;
|
|
391
|
+
const regex = new RegExp(`@{{${item.key}}}`, 'g');
|
|
392
|
+
gText = gText.replace(regex, textImage);
|
|
393
|
+
}
|
|
391
394
|
}
|
|
395
|
+
return gText;
|
|
392
396
|
}
|
|
393
|
-
return
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
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
|
-
|
|
449
|
-
|
|
450
|
-
|
|
397
|
+
return html ` <div class="d-flex align-items-center justify-content-end mb-3">
|
|
398
|
+
<div class="d-flex align-items-center gap-2">
|
|
399
|
+
<div style="color: #393939; font-weight: 700;">
|
|
400
|
+
${cat_title}詳細描述 ${BgWidget.languageInsignia(sel_lan(), 'margin-left:5px;')}
|
|
401
|
+
</div>
|
|
402
|
+
</div>
|
|
403
|
+
<div class="flex-fill"></div>
|
|
404
|
+
<div
|
|
405
|
+
class="cursor_pointer"
|
|
406
|
+
onclick="${gvc.event(() => {
|
|
407
|
+
BgWidget.dialog({
|
|
408
|
+
gvc: gvc,
|
|
409
|
+
title: '設定',
|
|
410
|
+
xmark: () => {
|
|
411
|
+
return new Promise(resolve => {
|
|
412
|
+
gvc.notifyDataChange(vm.id);
|
|
413
|
+
resolve(true);
|
|
414
|
+
});
|
|
415
|
+
},
|
|
416
|
+
innerHTML: gvc => {
|
|
417
|
+
const id = gvc.glitter.getUUID();
|
|
418
|
+
return gvc.bindView(() => {
|
|
419
|
+
return {
|
|
420
|
+
bind: id,
|
|
421
|
+
view: () => {
|
|
422
|
+
return vm.documents
|
|
423
|
+
.map((dd) => {
|
|
424
|
+
return html ` <li class="w-100 px-2">
|
|
425
|
+
<div class="w-100 d-flex justify-content-between">
|
|
426
|
+
<div class="d-flex justify-content-start align-items-center gap-3">
|
|
427
|
+
<i
|
|
428
|
+
class="fa-solid fa-grip-dots-vertical dragItem cursor_pointer"
|
|
429
|
+
></i>
|
|
430
|
+
<div class="tx_normal">${dd.title}</div>
|
|
431
|
+
</div>
|
|
432
|
+
${gvc.bindView((() => {
|
|
433
|
+
const iconId = gvc.glitter.getUUID();
|
|
434
|
+
return {
|
|
435
|
+
bind: iconId,
|
|
436
|
+
view: () => {
|
|
437
|
+
return html ` <i
|
|
438
|
+
class="${language_data.content_array.includes(dd.id)
|
|
439
|
+
? 'fa-solid fa-eye'
|
|
440
|
+
: 'fa-sharp fa-solid fa-eye-slash'} d-flex align-items-center justify-content-center cursor_pointer"
|
|
441
|
+
onclick="${gvc.event(() => {
|
|
442
|
+
if (language_data.content_array.includes(dd.id)) {
|
|
443
|
+
language_data.content_array =
|
|
444
|
+
language_data.content_array.filter((d) => d !== dd.id);
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
language_data.content_array.push(dd.id);
|
|
448
|
+
}
|
|
449
|
+
gvc.notifyDataChange(iconId);
|
|
450
|
+
})}"
|
|
451
|
+
></i>`;
|
|
452
|
+
},
|
|
453
|
+
divCreate: {
|
|
454
|
+
class: 'd-flex',
|
|
455
|
+
},
|
|
456
|
+
};
|
|
457
|
+
})())}
|
|
458
|
+
</div>
|
|
459
|
+
</li>`;
|
|
460
|
+
})
|
|
461
|
+
.join('');
|
|
462
|
+
},
|
|
463
|
+
divCreate: {
|
|
464
|
+
elem: 'ul',
|
|
465
|
+
class: 'w-100 my-2 d-flex flex-column gap-4',
|
|
466
|
+
},
|
|
467
|
+
onCreate: () => {
|
|
468
|
+
if (!vm.loading) {
|
|
469
|
+
gvc.glitter.addMtScript([
|
|
470
|
+
{
|
|
471
|
+
src: `https://raw.githack.com/SortableJS/Sortable/master/Sortable.js`,
|
|
451
472
|
},
|
|
452
|
-
};
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
.join('');
|
|
458
|
-
},
|
|
459
|
-
divCreate: {
|
|
460
|
-
elem: 'ul',
|
|
461
|
-
class: 'w-100 my-2 d-flex flex-column gap-4',
|
|
462
|
-
},
|
|
463
|
-
onCreate: () => {
|
|
464
|
-
if (!vm.loading) {
|
|
465
|
-
gvc.glitter.addMtScript([
|
|
466
|
-
{
|
|
467
|
-
src: `https://raw.githack.com/SortableJS/Sortable/master/Sortable.js`,
|
|
468
|
-
},
|
|
469
|
-
], () => { }, () => { });
|
|
470
|
-
const interval = setInterval(() => {
|
|
471
|
-
if (window.Sortable) {
|
|
472
|
-
try {
|
|
473
|
-
gvc.addStyle(`
|
|
473
|
+
], () => { }, () => { });
|
|
474
|
+
const interval = setInterval(() => {
|
|
475
|
+
if (window.Sortable) {
|
|
476
|
+
try {
|
|
477
|
+
gvc.addStyle(`
|
|
474
478
|
ul {
|
|
475
479
|
list-style: none;
|
|
476
480
|
padding: 0;
|
|
477
481
|
}
|
|
478
482
|
`);
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
+
function swapArr(arr, t1, t2) {
|
|
484
|
+
const data = arr[t1];
|
|
485
|
+
arr.splice(t1, 1);
|
|
486
|
+
arr.splice(t2, 0, data);
|
|
487
|
+
}
|
|
488
|
+
let startIndex = 0;
|
|
489
|
+
Sortable.create(gvc.getBindViewElem(id).get(0), {
|
|
490
|
+
group: id,
|
|
491
|
+
animation: 100,
|
|
492
|
+
handle: '.dragItem',
|
|
493
|
+
onEnd: (evt) => {
|
|
494
|
+
swapArr(vm.documents, startIndex, evt.newIndex);
|
|
495
|
+
ApiUser.setPublicConfig({
|
|
496
|
+
key: 'text-manager',
|
|
497
|
+
user_id: 'manager',
|
|
498
|
+
value: vm.documents,
|
|
499
|
+
}).then(result => {
|
|
500
|
+
if (!result.response.result) {
|
|
501
|
+
dialog.errorMessage({ text: '設定失敗' });
|
|
502
|
+
}
|
|
503
|
+
});
|
|
504
|
+
},
|
|
505
|
+
onStart: (evt) => {
|
|
506
|
+
startIndex = evt.oldIndex;
|
|
507
|
+
},
|
|
508
|
+
});
|
|
483
509
|
}
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
group: id,
|
|
487
|
-
animation: 100,
|
|
488
|
-
handle: '.dragItem',
|
|
489
|
-
onEnd: (evt) => {
|
|
490
|
-
swapArr(vm.documents, startIndex, evt.newIndex);
|
|
491
|
-
ApiUser.setPublicConfig({
|
|
492
|
-
key: 'text-manager',
|
|
493
|
-
user_id: 'manager',
|
|
494
|
-
value: vm.documents,
|
|
495
|
-
}).then(result => {
|
|
496
|
-
if (!result.response.result) {
|
|
497
|
-
dialog.errorMessage({ text: '設定失敗' });
|
|
498
|
-
}
|
|
499
|
-
});
|
|
500
|
-
},
|
|
501
|
-
onStart: (evt) => {
|
|
502
|
-
startIndex = evt.oldIndex;
|
|
503
|
-
},
|
|
504
|
-
});
|
|
505
|
-
}
|
|
506
|
-
catch (e) { }
|
|
507
|
-
clearInterval(interval);
|
|
508
|
-
}
|
|
509
|
-
}, 100);
|
|
510
|
-
}
|
|
511
|
-
},
|
|
512
|
-
};
|
|
513
|
-
});
|
|
514
|
-
},
|
|
515
|
-
});
|
|
516
|
-
})}"
|
|
517
|
-
>
|
|
518
|
-
設定<i class="fa-regular fa-gear ms-1"></i>
|
|
519
|
-
</div>
|
|
520
|
-
</div>
|
|
521
|
-
<div class="my-3">
|
|
522
|
-
${gvc.bindView((() => {
|
|
523
|
-
const id = gvc.glitter.getUUID();
|
|
524
|
-
return {
|
|
525
|
-
bind: id,
|
|
526
|
-
view: () => {
|
|
527
|
-
return html ` <div
|
|
528
|
-
class="d-flex justify-content-between align-items-center gap-3 mb-1"
|
|
529
|
-
style="cursor: pointer;"
|
|
530
|
-
onclick="${gvc.event(() => {
|
|
531
|
-
const originContent = `${language_data.content}`;
|
|
532
|
-
BgWidget.fullDialog({
|
|
533
|
-
gvc: gvc,
|
|
534
|
-
title: gvc2 => {
|
|
535
|
-
return html `<div class="d-flex align-items-center" style="gap:10px;">
|
|
536
|
-
${`${cat_title}描述` +
|
|
537
|
-
BgWidget.aiChatButton({
|
|
538
|
-
gvc: gvc2,
|
|
539
|
-
select: 'writer',
|
|
540
|
-
click: () => {
|
|
541
|
-
ProductAi.generateRichText(gvc, text => {
|
|
542
|
-
language_data.content += text;
|
|
543
|
-
gvc.notifyDataChange(vm.id);
|
|
544
|
-
gvc2.recreateView();
|
|
545
|
-
});
|
|
546
|
-
},
|
|
547
|
-
})}
|
|
548
|
-
</div>`;
|
|
549
|
-
},
|
|
550
|
-
innerHTML: gvc2 => {
|
|
551
|
-
return html ` <div>
|
|
552
|
-
${EditorElem.richText({
|
|
553
|
-
gvc: gvc2,
|
|
554
|
-
def: language_data.content,
|
|
555
|
-
setHeight: '100vh',
|
|
556
|
-
hiddenBorder: true,
|
|
557
|
-
insertImageEvent: editor => {
|
|
558
|
-
const mark = `{{${Tool.randomString(8)}}}`;
|
|
559
|
-
editor.selection.setAtEnd(editor.$el.get(0));
|
|
560
|
-
editor.html.insert(mark);
|
|
561
|
-
editor.undo.saveStep();
|
|
562
|
-
imageLibrary.selectImageLibrary(gvc, urlArray => {
|
|
563
|
-
if (urlArray.length > 0) {
|
|
564
|
-
const imgHTML = urlArray
|
|
565
|
-
.map(url => {
|
|
566
|
-
return html ` <img src="${url.data}" />`;
|
|
567
|
-
})
|
|
568
|
-
.join('');
|
|
569
|
-
editor.html.set(editor.html
|
|
570
|
-
.get(0)
|
|
571
|
-
.replace(mark, html ` <div class="d-flex flex-column">${imgHTML}</div>`));
|
|
572
|
-
editor.undo.saveStep();
|
|
573
|
-
}
|
|
574
|
-
else {
|
|
575
|
-
dialog.errorMessage({ text: '請選擇至少一張圖片' });
|
|
510
|
+
catch (e) { }
|
|
511
|
+
clearInterval(interval);
|
|
576
512
|
}
|
|
577
|
-
},
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
圖片庫
|
|
582
|
-
</div>`, {
|
|
583
|
-
mul: true,
|
|
584
|
-
cancelEvent: () => {
|
|
585
|
-
editor.html.set(editor.html.get(0).replace(mark, ''));
|
|
586
|
-
editor.undo.saveStep();
|
|
587
|
-
},
|
|
588
|
-
});
|
|
589
|
-
},
|
|
590
|
-
callback: text => {
|
|
591
|
-
language_data.content = text;
|
|
592
|
-
},
|
|
593
|
-
rich_height: `calc(${window.parent.innerHeight}px - 70px - 58px - 49px - 64px - 40px + ${document.body.clientWidth < 800 ? `70` : `0`}px)`,
|
|
594
|
-
})}
|
|
595
|
-
</div>`;
|
|
596
|
-
},
|
|
597
|
-
footer_html: (gvc2) => {
|
|
598
|
-
return [
|
|
599
|
-
BgWidget.cancel(gvc2.event(() => {
|
|
600
|
-
language_data.content = originContent;
|
|
601
|
-
gvc2.closeDialog();
|
|
602
|
-
})),
|
|
603
|
-
BgWidget.save(gvc2.event(() => {
|
|
604
|
-
gvc2.closeDialog();
|
|
605
|
-
gvc.notifyDataChange(id);
|
|
606
|
-
})),
|
|
607
|
-
].join('');
|
|
608
|
-
},
|
|
609
|
-
closeCallback: () => {
|
|
610
|
-
language_data.content = originContent;
|
|
611
|
-
},
|
|
513
|
+
}, 100);
|
|
514
|
+
}
|
|
515
|
+
},
|
|
516
|
+
};
|
|
612
517
|
});
|
|
613
|
-
}
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
return language_data.content_array.includes(item.id);
|
|
627
|
-
})
|
|
628
|
-
.map((item, index) => {
|
|
629
|
-
return BgWidget.openBoxContainer({
|
|
630
|
-
gvc,
|
|
631
|
-
tag: 'content_array',
|
|
632
|
-
title: item.title,
|
|
633
|
-
insideHTML: (() => {
|
|
634
|
-
if (item.data.tags && item.data.tags.length > 0) {
|
|
635
|
-
const id = obj.gvc.glitter.getUUID();
|
|
518
|
+
},
|
|
519
|
+
});
|
|
520
|
+
})}"
|
|
521
|
+
>
|
|
522
|
+
設定<i class="fa-regular fa-gear ms-1"></i>
|
|
523
|
+
</div>
|
|
524
|
+
</div>
|
|
525
|
+
<div class="my-3">
|
|
526
|
+
${gvc.bindView((() => {
|
|
527
|
+
const id = gvc.glitter.getUUID();
|
|
528
|
+
return {
|
|
529
|
+
bind: id,
|
|
530
|
+
view: () => {
|
|
636
531
|
return html ` <div
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
532
|
+
class="d-flex justify-content-between align-items-center gap-3 mb-1"
|
|
533
|
+
style="cursor: pointer;"
|
|
534
|
+
onclick="${gvc.event(() => {
|
|
535
|
+
const originContent = `${language_data.content}`;
|
|
536
|
+
BgWidget.fullDialog({
|
|
641
537
|
gvc: gvc,
|
|
642
|
-
title:
|
|
643
|
-
|
|
538
|
+
title: gvc2 => {
|
|
539
|
+
return html `<div class="d-flex align-items-center" style="gap:10px;">
|
|
540
|
+
${`${cat_title}描述` +
|
|
541
|
+
BgWidget.aiChatButton({
|
|
542
|
+
gvc: gvc2,
|
|
543
|
+
select: 'writer',
|
|
544
|
+
click: () => {
|
|
545
|
+
ProductAi.generateRichText(gvc, text => {
|
|
546
|
+
language_data.content += text;
|
|
547
|
+
gvc.notifyDataChange(vm.id);
|
|
548
|
+
gvc2.recreateView();
|
|
549
|
+
});
|
|
550
|
+
},
|
|
551
|
+
})}
|
|
552
|
+
</div>`;
|
|
553
|
+
},
|
|
554
|
+
innerHTML: gvc2 => {
|
|
644
555
|
return html ` <div>
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
if (
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
callback: text => {
|
|
667
|
-
const docIndex = language_data.content_json.findIndex((c) => c.id === item.id);
|
|
668
|
-
if (docIndex === -1) {
|
|
669
|
-
language_data.content_json.push({
|
|
670
|
-
id: item.id,
|
|
671
|
-
list: [
|
|
672
|
-
{
|
|
673
|
-
key: tag.key,
|
|
674
|
-
value: text,
|
|
675
|
-
},
|
|
676
|
-
],
|
|
677
|
-
});
|
|
678
|
-
return;
|
|
556
|
+
${EditorElem.richText({
|
|
557
|
+
gvc: gvc2,
|
|
558
|
+
def: language_data.content,
|
|
559
|
+
setHeight: '100vh',
|
|
560
|
+
hiddenBorder: true,
|
|
561
|
+
insertImageEvent: editor => {
|
|
562
|
+
const mark = `{{${Tool.randomString(8)}}}`;
|
|
563
|
+
editor.selection.setAtEnd(editor.$el.get(0));
|
|
564
|
+
editor.html.insert(mark);
|
|
565
|
+
editor.undo.saveStep();
|
|
566
|
+
imageLibrary.selectImageLibrary(gvc, urlArray => {
|
|
567
|
+
if (urlArray.length > 0) {
|
|
568
|
+
const imgHTML = urlArray
|
|
569
|
+
.map(url => {
|
|
570
|
+
return html ` <img src="${url.data}" />`;
|
|
571
|
+
})
|
|
572
|
+
.join('');
|
|
573
|
+
editor.html.set(editor.html
|
|
574
|
+
.get(0)
|
|
575
|
+
.replace(mark, html ` <div class="d-flex flex-column">${imgHTML}</div>`));
|
|
576
|
+
editor.undo.saveStep();
|
|
679
577
|
}
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
{
|
|
683
|
-
key: tag.key,
|
|
684
|
-
value: text,
|
|
685
|
-
},
|
|
686
|
-
];
|
|
687
|
-
return;
|
|
578
|
+
else {
|
|
579
|
+
dialog.errorMessage({ text: '請選擇至少一張圖片' });
|
|
688
580
|
}
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
581
|
+
}, html ` <div
|
|
582
|
+
class="d-flex flex-column"
|
|
583
|
+
style="border-radius: 10px 10px 0px 0px;background: #F2F2F2;"
|
|
584
|
+
>
|
|
585
|
+
圖片庫
|
|
586
|
+
</div>`, {
|
|
587
|
+
mul: true,
|
|
588
|
+
cancelEvent: () => {
|
|
589
|
+
editor.html.set(editor.html.get(0).replace(mark, ''));
|
|
590
|
+
editor.undo.saveStep();
|
|
591
|
+
},
|
|
592
|
+
});
|
|
593
|
+
},
|
|
594
|
+
callback: text => {
|
|
595
|
+
language_data.content = text;
|
|
596
|
+
},
|
|
597
|
+
rich_height: `calc(${window.parent.innerHeight}px - 70px - 58px - 49px - 64px - 40px + ${document.body.clientWidth < 800 ? `70` : `0`}px)`,
|
|
598
|
+
})}
|
|
599
|
+
</div>`;
|
|
706
600
|
},
|
|
707
601
|
footer_html: (gvc2) => {
|
|
708
602
|
return [
|
|
709
603
|
BgWidget.cancel(gvc2.event(() => {
|
|
710
|
-
language_data.
|
|
604
|
+
language_data.content = originContent;
|
|
711
605
|
gvc2.closeDialog();
|
|
712
606
|
})),
|
|
713
607
|
BgWidget.save(gvc2.event(() => {
|
|
714
608
|
gvc2.closeDialog();
|
|
715
|
-
gvc.notifyDataChange(
|
|
609
|
+
gvc.notifyDataChange(id);
|
|
716
610
|
})),
|
|
717
611
|
].join('');
|
|
718
612
|
},
|
|
719
613
|
closeCallback: () => {
|
|
720
|
-
language_data.
|
|
614
|
+
language_data.content = originContent;
|
|
721
615
|
},
|
|
722
616
|
});
|
|
723
617
|
})}"
|
|
618
|
+
>
|
|
619
|
+
${(() => {
|
|
620
|
+
const text = gvc.glitter.utText.removeTag(language_data.content);
|
|
621
|
+
return BgWidget.richTextView(Tool.truncateString(text, 100));
|
|
622
|
+
})()}
|
|
623
|
+
</div>`;
|
|
624
|
+
},
|
|
625
|
+
};
|
|
626
|
+
})())}
|
|
627
|
+
</div>
|
|
628
|
+
${(vm.documents || [])
|
|
629
|
+
.filter((item) => {
|
|
630
|
+
return language_data.content_array.includes(item.id);
|
|
631
|
+
})
|
|
632
|
+
.map((item, index) => {
|
|
633
|
+
return BgWidget.openBoxContainer({
|
|
634
|
+
gvc,
|
|
635
|
+
tag: 'content_array',
|
|
636
|
+
title: item.title,
|
|
637
|
+
insideHTML: (() => {
|
|
638
|
+
if (item.data.tags && item.data.tags.length > 0) {
|
|
639
|
+
const id = obj.gvc.glitter.getUUID();
|
|
640
|
+
return html ` <div
|
|
641
|
+
class="cursor_pointer text-end me-1 mb-2"
|
|
642
|
+
onclick="${gvc.event(() => {
|
|
643
|
+
const originJson = JSON.parse(JSON.stringify(language_data.content_json));
|
|
644
|
+
BgWidget.settingDialog({
|
|
645
|
+
gvc: gvc,
|
|
646
|
+
title: '設定',
|
|
647
|
+
innerHTML: gvc => {
|
|
648
|
+
return html ` <div>
|
|
649
|
+
${item.data.tags
|
|
650
|
+
.map((tag) => {
|
|
651
|
+
return html ` <div>
|
|
652
|
+
${BgWidget.editeInput({
|
|
653
|
+
gvc,
|
|
654
|
+
title: tag.title,
|
|
655
|
+
default: (() => {
|
|
656
|
+
const docIndex = language_data.content_json.findIndex((c) => c.id === item.id);
|
|
657
|
+
if (docIndex === -1) {
|
|
658
|
+
return '';
|
|
659
|
+
}
|
|
660
|
+
if (language_data.content_json[docIndex].list === undefined) {
|
|
661
|
+
return '';
|
|
662
|
+
}
|
|
663
|
+
const keyIndex = language_data.content_json[docIndex].list.findIndex((l) => l.key === tag.key);
|
|
664
|
+
if (keyIndex === -1) {
|
|
665
|
+
return '';
|
|
666
|
+
}
|
|
667
|
+
return language_data.content_json[docIndex].list[keyIndex]
|
|
668
|
+
.value;
|
|
669
|
+
})(),
|
|
670
|
+
callback: text => {
|
|
671
|
+
const docIndex = language_data.content_json.findIndex((c) => c.id === item.id);
|
|
672
|
+
if (docIndex === -1) {
|
|
673
|
+
language_data.content_json.push({
|
|
674
|
+
id: item.id,
|
|
675
|
+
list: [
|
|
676
|
+
{
|
|
677
|
+
key: tag.key,
|
|
678
|
+
value: text,
|
|
679
|
+
},
|
|
680
|
+
],
|
|
681
|
+
});
|
|
682
|
+
return;
|
|
683
|
+
}
|
|
684
|
+
if (language_data.content_json[docIndex].list === undefined) {
|
|
685
|
+
language_data.content_json[docIndex].list = [
|
|
686
|
+
{
|
|
687
|
+
key: tag.key,
|
|
688
|
+
value: text,
|
|
689
|
+
},
|
|
690
|
+
];
|
|
691
|
+
return;
|
|
692
|
+
}
|
|
693
|
+
const keyIndex = language_data.content_json[docIndex].list.findIndex((l) => l.key === tag.key);
|
|
694
|
+
if (keyIndex === -1) {
|
|
695
|
+
language_data.content_json[docIndex].list.push({
|
|
696
|
+
key: tag.key,
|
|
697
|
+
value: text,
|
|
698
|
+
});
|
|
699
|
+
return;
|
|
700
|
+
}
|
|
701
|
+
language_data.content_json[docIndex].list[keyIndex].value =
|
|
702
|
+
text;
|
|
703
|
+
},
|
|
704
|
+
placeHolder: '輸入文本標籤',
|
|
705
|
+
})}
|
|
706
|
+
</div>`;
|
|
707
|
+
})
|
|
708
|
+
.join(BgWidget.mbContainer(12))}
|
|
709
|
+
</div>`;
|
|
710
|
+
},
|
|
711
|
+
footer_html: (gvc2) => {
|
|
712
|
+
return [
|
|
713
|
+
BgWidget.cancel(gvc2.event(() => {
|
|
714
|
+
language_data.content_json = originJson;
|
|
715
|
+
gvc2.closeDialog();
|
|
716
|
+
})),
|
|
717
|
+
BgWidget.save(gvc2.event(() => {
|
|
718
|
+
gvc2.closeDialog();
|
|
719
|
+
gvc.notifyDataChange(`${id}-${index}`);
|
|
720
|
+
})),
|
|
721
|
+
].join('');
|
|
722
|
+
},
|
|
723
|
+
closeCallback: () => {
|
|
724
|
+
language_data.content_json = originJson;
|
|
725
|
+
},
|
|
726
|
+
});
|
|
727
|
+
})}"
|
|
728
|
+
>
|
|
729
|
+
標籤設值
|
|
730
|
+
</div>
|
|
731
|
+
${gvc.bindView((() => {
|
|
732
|
+
return {
|
|
733
|
+
bind: `${id}-${index}`,
|
|
734
|
+
view: () => {
|
|
735
|
+
const content = item.data.content || '';
|
|
736
|
+
const tags = item.data.tags;
|
|
737
|
+
const jsonData = language_data.content_json.find((c) => c.id === item.id);
|
|
738
|
+
return html ` <div
|
|
739
|
+
style="border: 2px #DDDDDD solid; border-radius: 6px; padding: 12px;"
|
|
740
|
+
>
|
|
741
|
+
${tags
|
|
742
|
+
? formatRichtext(content, tags, jsonData ? jsonData.list : [])
|
|
743
|
+
: content}
|
|
744
|
+
</div>`;
|
|
745
|
+
},
|
|
746
|
+
};
|
|
747
|
+
})())}`;
|
|
748
|
+
}
|
|
749
|
+
return html ` <div
|
|
750
|
+
style="border: 1px #DDDDDD solid; border-radius: 6px; padding: 12px"
|
|
724
751
|
>
|
|
725
|
-
|
|
726
|
-
</div
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
>
|
|
737
|
-
${tags
|
|
738
|
-
? formatRichtext(content, tags, jsonData ? jsonData.list : [])
|
|
739
|
-
: content}
|
|
740
|
-
</div>`;
|
|
741
|
-
},
|
|
742
|
-
};
|
|
743
|
-
})())}`;
|
|
744
|
-
}
|
|
745
|
-
return html ` <div style="border: 1px #DDDDDD solid; border-radius: 6px; padding: 12px">
|
|
746
|
-
${item.data.content || ''}
|
|
747
|
-
</div>`;
|
|
748
|
-
})(),
|
|
749
|
-
});
|
|
750
|
-
})
|
|
751
|
-
.join(BgWidget.mbContainer(8))}`;
|
|
752
|
-
}),
|
|
753
|
-
};
|
|
754
|
-
})();
|
|
755
|
-
}),
|
|
756
|
-
].join(BgWidget.mbContainer(12))),
|
|
752
|
+
${item.data.content || ''}
|
|
753
|
+
</div>`;
|
|
754
|
+
})(),
|
|
755
|
+
});
|
|
756
|
+
})
|
|
757
|
+
.join(BgWidget.mbContainer(8))}`;
|
|
758
|
+
}),
|
|
759
|
+
};
|
|
760
|
+
})();
|
|
761
|
+
}),
|
|
762
|
+
].join(BgWidget.mbContainer(12))),
|
|
757
763
|
BgWidget.mainCard(html `
|
|
758
764
|
<div
|
|
759
765
|
class="d-flex align-items-center justify-content-between"
|
|
@@ -951,7 +957,7 @@ export class ShoppingSettingBasic {
|
|
|
951
957
|
${dd.language_title[sel_lan()] || dd.title}
|
|
952
958
|
</div>
|
|
953
959
|
${(() => {
|
|
954
|
-
let returnHTML =
|
|
960
|
+
let returnHTML = '';
|
|
955
961
|
dd.option.map((opt, index) => {
|
|
956
962
|
var _a;
|
|
957
963
|
opt.language_title = ((_a = opt.language_title) !== null && _a !== void 0 ? _a : {});
|
|
@@ -1054,7 +1060,7 @@ export class ShoppingSettingBasic {
|
|
|
1054
1060
|
],
|
|
1055
1061
|
view: () => {
|
|
1056
1062
|
var _a;
|
|
1057
|
-
let returnHTML =
|
|
1063
|
+
let returnHTML = '';
|
|
1058
1064
|
let specs_in_line = [];
|
|
1059
1065
|
temp.option = (_a = temp.option) !== null && _a !== void 0 ? _a : [];
|
|
1060
1066
|
specs_in_line.push(html ` <div class="d-flex flex-column w-100">
|
|
@@ -1148,7 +1154,7 @@ export class ShoppingSettingBasic {
|
|
|
1148
1154
|
divCreate: { class: `w-100 position-relative` },
|
|
1149
1155
|
}),
|
|
1150
1156
|
innerHtml: (gvc) => {
|
|
1151
|
-
return
|
|
1157
|
+
return '';
|
|
1152
1158
|
},
|
|
1153
1159
|
editTitle: `編輯規格`,
|
|
1154
1160
|
draggable: editSpectPage[specIndex].type === 'show',
|
|
@@ -1337,7 +1343,7 @@ export class ShoppingSettingBasic {
|
|
|
1337
1343
|
<div
|
|
1338
1344
|
class="d-flex flex-column"
|
|
1339
1345
|
style="font-size: 16px;font-weight: 700;color:#393939;${postMD.shopee_id
|
|
1340
|
-
?
|
|
1346
|
+
? ''
|
|
1341
1347
|
: `margin-bottom: 10px;`}"
|
|
1342
1348
|
>
|
|
1343
1349
|
組合費用
|
|
@@ -1417,7 +1423,7 @@ export class ShoppingSettingBasic {
|
|
|
1417
1423
|
<div
|
|
1418
1424
|
class="d-flex flex-column"
|
|
1419
1425
|
style="font-size: 16px;font-weight: 700;color:#393939;${postMD.shopee_id
|
|
1420
|
-
?
|
|
1426
|
+
? ''
|
|
1421
1427
|
: `margin-bottom: 10px;`}"
|
|
1422
1428
|
>
|
|
1423
1429
|
組合費用 ${BgWidget.grayNote('如未輸入庫存數量則不追蹤庫存')}
|
|
@@ -1470,7 +1476,7 @@ export class ShoppingSettingBasic {
|
|
|
1470
1476
|
return BgWidget.mainCard(html `
|
|
1471
1477
|
<div
|
|
1472
1478
|
style="font-size: 16px;font-weight: 700;color:#393939;${postMD.shopee_id
|
|
1473
|
-
?
|
|
1479
|
+
? ''
|
|
1474
1480
|
: `margin-bottom: 18px;`}"
|
|
1475
1481
|
>
|
|
1476
1482
|
<span class="me-2">規格設定</span>
|
|
@@ -1479,7 +1485,7 @@ export class ShoppingSettingBasic {
|
|
|
1479
1485
|
: ''}
|
|
1480
1486
|
</div>
|
|
1481
1487
|
<div
|
|
1482
|
-
class="w-100 ${postMD.shopee_id ?
|
|
1488
|
+
class="w-100 ${postMD.shopee_id ? '' : `d-none`}"
|
|
1483
1489
|
style="font-size: 14px;font-weight: 400;color: #8D8D8D;margin-bottom: 18px;"
|
|
1484
1490
|
>
|
|
1485
1491
|
此商品來源為蝦皮電商平台,將自動同步蝦皮庫存
|
|
@@ -1795,7 +1801,7 @@ export class ShoppingSettingBasic {
|
|
|
1795
1801
|
style="margin-bottom:18px;padding: 0px 20px;gap:18px;color:#393939;"
|
|
1796
1802
|
>
|
|
1797
1803
|
${(() => {
|
|
1798
|
-
let arrayHTML =
|
|
1804
|
+
let arrayHTML = '';
|
|
1799
1805
|
postMD.specs[0].option.map((option) => {
|
|
1800
1806
|
option.sortQueue.map((data) => {
|
|
1801
1807
|
var _a;
|
|
@@ -2243,7 +2249,7 @@ export class ShoppingSettingBasic {
|
|
|
2243
2249
|
</div>
|
|
2244
2250
|
</div>
|
|
2245
2251
|
`
|
|
2246
|
-
:
|
|
2252
|
+
: ''}
|
|
2247
2253
|
</div>
|
|
2248
2254
|
</div>
|
|
2249
2255
|
`;
|
|
@@ -2735,7 +2741,7 @@ export class ShoppingSettingBasic {
|
|
|
2735
2741
|
style="width: 100%;height: 40px;padding: 0px 18px;border-radius: 10px;border: 1px solid #DDD;background: #FFF;"
|
|
2736
2742
|
value="${(_a = data[dd]) !== null && _a !== void 0 ? _a : 0}"
|
|
2737
2743
|
min="0"
|
|
2738
|
-
${index === 1 ? `readonly` :
|
|
2744
|
+
${index === 1 ? `readonly` : ''}
|
|
2739
2745
|
onclick="${gvc.event(() => {
|
|
2740
2746
|
if (index === 1) {
|
|
2741
2747
|
ProductSetting.showBatchEditDialog({
|
|
@@ -2780,19 +2786,19 @@ export class ShoppingSettingBasic {
|
|
|
2780
2786
|
>
|
|
2781
2787
|
<option
|
|
2782
2788
|
value="none"
|
|
2783
|
-
${data.shipment_type == 'none' ? `selected` :
|
|
2789
|
+
${data.shipment_type == 'none' ? `selected` : ''}
|
|
2784
2790
|
>
|
|
2785
2791
|
無運費
|
|
2786
2792
|
</option>
|
|
2787
2793
|
<option
|
|
2788
2794
|
value="volume"
|
|
2789
|
-
${data.shipment_type == 'volume' ? `selected` :
|
|
2795
|
+
${data.shipment_type == 'volume' ? `selected` : ''}
|
|
2790
2796
|
>
|
|
2791
2797
|
依材積
|
|
2792
2798
|
</option>
|
|
2793
2799
|
<option
|
|
2794
2800
|
value="weight"
|
|
2795
|
-
${data.shipment_type == 'weight' ? `selected` :
|
|
2801
|
+
${data.shipment_type == 'weight' ? `selected` : ''}
|
|
2796
2802
|
>
|
|
2797
2803
|
依重量
|
|
2798
2804
|
</option>
|
|
@@ -2802,7 +2808,7 @@ export class ShoppingSettingBasic {
|
|
|
2802
2808
|
`;
|
|
2803
2809
|
},
|
|
2804
2810
|
divCreate: {
|
|
2805
|
-
class: `w-100 ${viewID} ${index === 0 && postMD.specs.length > 1 ? `border-top` :
|
|
2811
|
+
class: `w-100 ${viewID} ${index === 0 && postMD.specs.length > 1 ? `border-top` : ''}`,
|
|
2806
2812
|
},
|
|
2807
2813
|
});
|
|
2808
2814
|
})
|
|
@@ -2828,7 +2834,7 @@ export class ShoppingSettingBasic {
|
|
|
2828
2834
|
};
|
|
2829
2835
|
}));
|
|
2830
2836
|
})()
|
|
2831
|
-
:
|
|
2837
|
+
: '',
|
|
2832
2838
|
BgWidget.mainCard(obj.gvc.bindView(() => {
|
|
2833
2839
|
var _a;
|
|
2834
2840
|
postMD.seo = (_a = postMD.seo) !== null && _a !== void 0 ? _a : {
|
|
@@ -2846,7 +2852,7 @@ export class ShoppingSettingBasic {
|
|
|
2846
2852
|
搜尋引擎列表 ${BgWidget.languageInsignia(sel_lan(), 'margin-left:5px;')}
|
|
2847
2853
|
</div>
|
|
2848
2854
|
${[
|
|
2849
|
-
html ` <div class="tx_normal fw-normal mb-2"
|
|
2855
|
+
html ` <div class="tx_normal fw-normal mb-2">${cat_title}網址</div>`,
|
|
2850
2856
|
html ` <div
|
|
2851
2857
|
style="justify-content: flex-start; align-items: center; display: inline-flex;border:1px solid #EAEAEA;border-radius: 10px;overflow: hidden; ${document
|
|
2852
2858
|
.body.clientWidth > 768
|
|
@@ -2919,7 +2925,7 @@ ${(_b = language_data.seo.content) !== null && _b !== void 0 ? _b : ''}</textare
|
|
|
2919
2925
|
};
|
|
2920
2926
|
})),
|
|
2921
2927
|
]
|
|
2922
|
-
.filter(
|
|
2928
|
+
.filter(Boolean)
|
|
2923
2929
|
.join(BgWidget.mbContainer(18)),
|
|
2924
2930
|
ratio: 77,
|
|
2925
2931
|
}, {
|