ts-glitter 21.6.8 → 21.7.1
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/cms-plugin/shopping-order-manager.js +5 -8
- package/lowcode/cms-plugin/shopping-order-manager.ts +6 -13
- package/lowcode/glitter-base/global/language.js +8 -0
- package/lowcode/glitter-base/global/language.ts +8 -0
- package/lowcode/glitter-base/route/user.js +9 -8
- package/lowcode/glitter-base/route/user.ts +9 -8
- package/lowcode/official_view_component/official/component.js +3 -0
- package/lowcode/official_view_component/official/component.ts +2 -0
- package/lowcode/public-components/checkout/index.js +2 -4
- package/lowcode/public-components/checkout/index.ts +2 -5
- package/lowcode/public-components/user-manager/um-receive.js +93 -73
- package/lowcode/public-components/user-manager/um-receive.ts +92 -67
- package/lowcode/view-model/saas-view-model.js +3 -1
- package/lowcode/view-model/saas-view-model.ts +10 -7
- package/package.json +1 -1
- package/src/api-public/services/checkout-event.js +4 -3
- package/src/api-public/services/checkout-event.js.map +1 -1
- package/src/api-public/services/checkout-event.ts +6 -6
- package/src/api-public/services/rebate.js +3 -1
- package/src/api-public/services/rebate.js.map +1 -1
- package/src/api-public/services/rebate.ts +4 -1
- package/src/api-public/services/shopping.js +4 -7
- package/src/api-public/services/shopping.js.map +1 -1
- package/src/api-public/services/shopping.ts +10 -10
package/lowcode/Entry.js
CHANGED
|
@@ -146,7 +146,7 @@ export class Entry {
|
|
|
146
146
|
}
|
|
147
147
|
window.renderClock = (_b = window.renderClock) !== null && _b !== void 0 ? _b : createClock();
|
|
148
148
|
console.log(`Entry-time:`, window.renderClock.stop());
|
|
149
|
-
glitter.share.editerVersion = 'V_21.
|
|
149
|
+
glitter.share.editerVersion = 'V_21.7.1';
|
|
150
150
|
glitter.share.start = new Date();
|
|
151
151
|
const vm = { appConfig: [] };
|
|
152
152
|
window.saasConfig = {
|
package/lowcode/Entry.ts
CHANGED
|
@@ -150,7 +150,7 @@ export class Entry {
|
|
|
150
150
|
}
|
|
151
151
|
(window as any).renderClock = (window as any).renderClock ?? createClock();
|
|
152
152
|
console.log(`Entry-time:`, (window as any).renderClock.stop());
|
|
153
|
-
glitter.share.editerVersion = 'V_21.
|
|
153
|
+
glitter.share.editerVersion = 'V_21.7.1';
|
|
154
154
|
glitter.share.start = new Date();
|
|
155
155
|
const vm = { appConfig: [] };
|
|
156
156
|
(window as any).saasConfig = {
|
|
@@ -4683,15 +4683,12 @@ export class ShoppingOrderManager {
|
|
|
4683
4683
|
if (checkOrderEmpty(passData)) {
|
|
4684
4684
|
ApiShop.toManualCheckout(passData).then(() => {
|
|
4685
4685
|
dialog.dataLoading({ visible: false });
|
|
4686
|
-
|
|
4687
|
-
|
|
4688
|
-
text: html `訂單新增成功!<br />已將訂單明細發送至顧客信箱`,
|
|
4689
|
-
});
|
|
4690
|
-
}, 'orderFinish', {
|
|
4691
|
-
dismiss: () => {
|
|
4692
|
-
vm.type = 'list';
|
|
4693
|
-
},
|
|
4686
|
+
dialog.successMessage({
|
|
4687
|
+
text: `訂單新增成功<br />已將訂單明細發送至顧客信箱`,
|
|
4694
4688
|
});
|
|
4689
|
+
setTimeout(() => {
|
|
4690
|
+
vm.type = 'list';
|
|
4691
|
+
}, 1200);
|
|
4695
4692
|
});
|
|
4696
4693
|
}
|
|
4697
4694
|
else {
|
|
@@ -5076,19 +5076,12 @@ export class ShoppingOrderManager {
|
|
|
5076
5076
|
if (checkOrderEmpty(passData)) {
|
|
5077
5077
|
ApiShop.toManualCheckout(passData).then(() => {
|
|
5078
5078
|
dialog.dataLoading({ visible: false });
|
|
5079
|
-
|
|
5080
|
-
|
|
5081
|
-
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
'orderFinish',
|
|
5086
|
-
{
|
|
5087
|
-
dismiss: () => {
|
|
5088
|
-
vm.type = 'list';
|
|
5089
|
-
},
|
|
5090
|
-
}
|
|
5091
|
-
);
|
|
5079
|
+
dialog.successMessage({
|
|
5080
|
+
text: `訂單新增成功<br />已將訂單明細發送至顧客信箱`,
|
|
5081
|
+
});
|
|
5082
|
+
setTimeout(() => {
|
|
5083
|
+
vm.type = 'list';
|
|
5084
|
+
}, 1200);
|
|
5092
5085
|
});
|
|
5093
5086
|
} else {
|
|
5094
5087
|
dialog.dataLoading({ visible: false });
|
|
@@ -238,6 +238,14 @@ export class Language {
|
|
|
238
238
|
{ key: 'discount', tw: '折抵', cn: '折抵', en: 'Discount' },
|
|
239
239
|
{ key: 'remaining_balance', tw: '您目前剩餘', cn: '您目前剩余', en: 'Your remaining balance' },
|
|
240
240
|
{ key: 'point', tw: '點', cn: '点', en: '' },
|
|
241
|
+
{ key: 'recipient', tw: '收件人', cn: '收件人', en: 'Recipient' },
|
|
242
|
+
{ key: 'add_recipient', tw: '新增收件人', cn: '新增收件人', en: 'Add Recipient' },
|
|
243
|
+
{
|
|
244
|
+
key: 'recipient_limit',
|
|
245
|
+
tw: '最多限制儲存 _max_ 名收件人',
|
|
246
|
+
cn: '最多限制保存 _max_ 名收件人',
|
|
247
|
+
en: 'You can save up to _max_ recipients',
|
|
248
|
+
},
|
|
241
249
|
{
|
|
242
250
|
key: 'max_discount_order',
|
|
243
251
|
tw: '此份訂單最多可折抵',
|
|
@@ -247,6 +247,14 @@ export class Language {
|
|
|
247
247
|
{ key: 'discount', tw: '折抵', cn: '折抵', en: 'Discount' },
|
|
248
248
|
{ key: 'remaining_balance', tw: '您目前剩餘', cn: '您目前剩余', en: 'Your remaining balance' },
|
|
249
249
|
{ key: 'point', tw: '點', cn: '点', en: '' },
|
|
250
|
+
{ key: 'recipient', tw: '收件人', cn: '收件人', en: 'Recipient' },
|
|
251
|
+
{ key: 'add_recipient', tw: '新增收件人', cn: '新增收件人', en: 'Add Recipient' },
|
|
252
|
+
{
|
|
253
|
+
key: 'recipient_limit',
|
|
254
|
+
tw: '最多限制儲存 _max_ 名收件人',
|
|
255
|
+
cn: '最多限制保存 _max_ 名收件人',
|
|
256
|
+
en: 'You can save up to _max_ recipients',
|
|
257
|
+
},
|
|
250
258
|
{
|
|
251
259
|
key: 'max_discount_order',
|
|
252
260
|
tw: '此份訂單最多可折抵',
|
|
@@ -593,15 +593,16 @@ export class ApiUser {
|
|
|
593
593
|
return new Promise((resolve, reject) => {
|
|
594
594
|
var _a;
|
|
595
595
|
window.glitter.share._public_config = (_a = window.glitter.share._public_config) !== null && _a !== void 0 ? _a : {};
|
|
596
|
+
const tag = [appName, key, user_id].join('');
|
|
596
597
|
const config = window.glitter.share._public_config;
|
|
597
|
-
if (config[
|
|
598
|
-
resolve(config[
|
|
598
|
+
if (config[tag]) {
|
|
599
|
+
resolve(config[tag]);
|
|
599
600
|
return;
|
|
600
601
|
}
|
|
601
602
|
function callback(res) {
|
|
602
603
|
if (key.indexOf('shipment_config_') === 0 &&
|
|
603
604
|
window.parent.glitter.getUrlParameter('function') !== 'backend-manger') {
|
|
604
|
-
config[
|
|
605
|
+
config[tag] = res;
|
|
605
606
|
}
|
|
606
607
|
switch (key) {
|
|
607
608
|
case 'app-header-config':
|
|
@@ -611,7 +612,7 @@ export class ApiUser {
|
|
|
611
612
|
case 'message_setting':
|
|
612
613
|
case 'promo-label':
|
|
613
614
|
if (window.parent.glitter.getUrlParameter('function') !== 'backend-manger') {
|
|
614
|
-
config[
|
|
615
|
+
config[tag] = res;
|
|
615
616
|
}
|
|
616
617
|
break;
|
|
617
618
|
case 'image-manager':
|
|
@@ -621,18 +622,18 @@ export class ApiUser {
|
|
|
621
622
|
break;
|
|
622
623
|
}
|
|
623
624
|
if (key.indexOf('alt_') === 0) {
|
|
624
|
-
config[
|
|
625
|
+
config[tag] = res;
|
|
625
626
|
}
|
|
626
627
|
resolve(res);
|
|
627
628
|
}
|
|
628
629
|
const find_ = this.getting_config.find(dd => {
|
|
629
|
-
return dd.key ===
|
|
630
|
+
return dd.key === tag;
|
|
630
631
|
});
|
|
631
632
|
if (find_) {
|
|
632
633
|
find_.array.push(callback);
|
|
633
634
|
}
|
|
634
635
|
else {
|
|
635
|
-
this.getting_config.push({ key:
|
|
636
|
+
this.getting_config.push({ key: tag, array: [callback] });
|
|
636
637
|
BaseApi.create({
|
|
637
638
|
url: getBaseUrl() + `/api-public/v1/user/public/config?key=${key}&user_id=${user_id}`,
|
|
638
639
|
type: 'GET',
|
|
@@ -643,7 +644,7 @@ export class ApiUser {
|
|
|
643
644
|
},
|
|
644
645
|
}).then(res => {
|
|
645
646
|
this.getting_config = this.getting_config.filter(d1 => {
|
|
646
|
-
if (d1.key ===
|
|
647
|
+
if (d1.key === tag) {
|
|
647
648
|
d1.array.map(dd => {
|
|
648
649
|
return dd(res);
|
|
649
650
|
});
|
|
@@ -676,9 +676,10 @@ export class ApiUser {
|
|
|
676
676
|
public static getPublicConfig(key: string, user_id: string, appName: string = getConfig().config.appName) {
|
|
677
677
|
return new Promise<{ result: boolean; response: any }>((resolve, reject) => {
|
|
678
678
|
(window as any).glitter.share._public_config = (window as any).glitter.share._public_config ?? {};
|
|
679
|
+
const tag=[appName,key,user_id].join('')
|
|
679
680
|
const config = (window as any).glitter.share._public_config;
|
|
680
|
-
if (config[
|
|
681
|
-
resolve(config[
|
|
681
|
+
if (config[tag]) {
|
|
682
|
+
resolve(config[tag]);
|
|
682
683
|
return;
|
|
683
684
|
}
|
|
684
685
|
|
|
@@ -688,7 +689,7 @@ export class ApiUser {
|
|
|
688
689
|
key.indexOf('shipment_config_') === 0 &&
|
|
689
690
|
(window.parent as any).glitter.getUrlParameter('function') !== 'backend-manger'
|
|
690
691
|
) {
|
|
691
|
-
config[
|
|
692
|
+
config[tag] = res;
|
|
692
693
|
}
|
|
693
694
|
switch (key) {
|
|
694
695
|
case 'app-header-config':
|
|
@@ -699,7 +700,7 @@ export class ApiUser {
|
|
|
699
700
|
case 'promo-label':
|
|
700
701
|
//前台才有暫存功能
|
|
701
702
|
if ((window.parent as any).glitter.getUrlParameter('function') !== 'backend-manger') {
|
|
702
|
-
config[
|
|
703
|
+
config[tag] = res;
|
|
703
704
|
}
|
|
704
705
|
break;
|
|
705
706
|
case 'image-manager':
|
|
@@ -709,18 +710,18 @@ export class ApiUser {
|
|
|
709
710
|
break;
|
|
710
711
|
}
|
|
711
712
|
if (key.indexOf('alt_') === 0) {
|
|
712
|
-
config[
|
|
713
|
+
config[tag] = res;
|
|
713
714
|
}
|
|
714
715
|
resolve(res);
|
|
715
716
|
}
|
|
716
717
|
|
|
717
718
|
const find_ = this.getting_config.find(dd => {
|
|
718
|
-
return dd.key ===
|
|
719
|
+
return dd.key === tag;
|
|
719
720
|
});
|
|
720
721
|
if (find_) {
|
|
721
722
|
find_.array.push(callback);
|
|
722
723
|
} else {
|
|
723
|
-
this.getting_config.push({ key:
|
|
724
|
+
this.getting_config.push({ key: tag, array: [callback] });
|
|
724
725
|
BaseApi.create({
|
|
725
726
|
url: getBaseUrl() + `/api-public/v1/user/public/config?key=${key}&user_id=${user_id}`,
|
|
726
727
|
type: 'GET',
|
|
@@ -731,7 +732,7 @@ export class ApiUser {
|
|
|
731
732
|
},
|
|
732
733
|
}).then(res => {
|
|
733
734
|
this.getting_config = this.getting_config.filter(d1 => {
|
|
734
|
-
if (d1.key ===
|
|
735
|
+
if (d1.key === tag) {
|
|
735
736
|
d1.array.map(dd => {
|
|
736
737
|
return dd(res);
|
|
737
738
|
});
|
|
@@ -901,6 +901,7 @@ export const component = Plugin.createComponent(import.meta.url, (glitter, editM
|
|
|
901
901
|
return {
|
|
902
902
|
bind: vm.id,
|
|
903
903
|
view: () => __awaiter(this, void 0, void 0, function* () {
|
|
904
|
+
var _a;
|
|
904
905
|
let refer_form = getReferForm(widget, type);
|
|
905
906
|
function refresh(widget, device) {
|
|
906
907
|
if (widget.data.refer_app) {
|
|
@@ -972,6 +973,8 @@ export const component = Plugin.createComponent(import.meta.url, (glitter, editM
|
|
|
972
973
|
subData.editor_updated_callback(oWidget);
|
|
973
974
|
}
|
|
974
975
|
glitter.share.refer_form = refer_form;
|
|
976
|
+
glitter.share.refer_form_ = (_a = glitter.share.refer_form_) !== null && _a !== void 0 ? _a : {};
|
|
977
|
+
glitter.share.refer_form_[oWidget.data.tag] = refer_form;
|
|
975
978
|
glitter.share.refresh_global = (() => {
|
|
976
979
|
refresh(widget, type);
|
|
977
980
|
});
|
|
@@ -1078,6 +1078,8 @@ export const component = Plugin.createComponent(import.meta.url, (glitter: Glitt
|
|
|
1078
1078
|
subData.editor_updated_callback(oWidget);
|
|
1079
1079
|
}
|
|
1080
1080
|
glitter.share.refer_form=refer_form
|
|
1081
|
+
glitter.share.refer_form_=glitter.share.refer_form_ ?? {}
|
|
1082
|
+
glitter.share.refer_form_[oWidget.data.tag]=refer_form
|
|
1081
1083
|
glitter.share.refresh_global=(()=>{
|
|
1082
1084
|
refresh(widget,type)
|
|
1083
1085
|
})
|
|
@@ -2222,7 +2222,7 @@ export class CheckoutIndex {
|
|
|
2222
2222
|
class="d-flex justify-content-between align-items-center p-1 w-100 gap-2"
|
|
2223
2223
|
>
|
|
2224
2224
|
<div class="d-flex flex-column">
|
|
2225
|
-
<h5
|
|
2225
|
+
<h5>${Language.text('recipient')} ${index + 1}</h5>
|
|
2226
2226
|
${['name', 'email', 'phone']
|
|
2227
2227
|
.filter(key => data[key])
|
|
2228
2228
|
.map(key => {
|
|
@@ -3182,9 +3182,7 @@ export class CheckoutIndex {
|
|
|
3182
3182
|
}
|
|
3183
3183
|
let pass = true;
|
|
3184
3184
|
if (subData.shipment === 'none') {
|
|
3185
|
-
dialog.errorMessage({
|
|
3186
|
-
text: Language.text('select_shipping_method'),
|
|
3187
|
-
});
|
|
3185
|
+
dialog.errorMessage({ text: Language.text('select_shipping_method') });
|
|
3188
3186
|
return false;
|
|
3189
3187
|
}
|
|
3190
3188
|
if (ShipmentConfig.supermarketList.includes(subData['shipment'])) {
|
|
@@ -1786,7 +1786,6 @@ export class CheckoutIndex {
|
|
|
1786
1786
|
return '';
|
|
1787
1787
|
}
|
|
1788
1788
|
};
|
|
1789
|
-
|
|
1790
1789
|
return html` <div class="d-flex flex-column gap-1">
|
|
1791
1790
|
<select
|
|
1792
1791
|
class="w-100 ${gClass('select')}"
|
|
@@ -2446,7 +2445,7 @@ export class CheckoutIndex {
|
|
|
2446
2445
|
class="d-flex justify-content-between align-items-center p-1 w-100 gap-2"
|
|
2447
2446
|
>
|
|
2448
2447
|
<div class="d-flex flex-column">
|
|
2449
|
-
<h5
|
|
2448
|
+
<h5>${Language.text('recipient')} ${index + 1}</h5>
|
|
2450
2449
|
${['name', 'email', 'phone']
|
|
2451
2450
|
.filter(key => data[key])
|
|
2452
2451
|
.map(key => {
|
|
@@ -3488,9 +3487,7 @@ export class CheckoutIndex {
|
|
|
3488
3487
|
|
|
3489
3488
|
// 驗證有無配送方式
|
|
3490
3489
|
if (subData.shipment === 'none') {
|
|
3491
|
-
dialog.errorMessage({
|
|
3492
|
-
text: Language.text('select_shipping_method'),
|
|
3493
|
-
});
|
|
3490
|
+
dialog.errorMessage({ text: Language.text('select_shipping_method') });
|
|
3494
3491
|
return false;
|
|
3495
3492
|
}
|
|
3496
3493
|
|
|
@@ -28,6 +28,7 @@ export class UMReceive {
|
|
|
28
28
|
dataList: [],
|
|
29
29
|
dataKeys: [],
|
|
30
30
|
};
|
|
31
|
+
const receive_list_max_length = 100;
|
|
31
32
|
let changePage = (index, type, subData) => { };
|
|
32
33
|
gvc.glitter.getModule(new URL('./official_event/page/change-page.js', gvc.glitter.root_path).href, cl => {
|
|
33
34
|
changePage = cl.changePage;
|
|
@@ -38,6 +39,93 @@ export class UMReceive {
|
|
|
38
39
|
if (vm.loading) {
|
|
39
40
|
return UmClass.spinner();
|
|
40
41
|
}
|
|
42
|
+
function saveView() {
|
|
43
|
+
return html `<div class="d-flex justify-content-end">
|
|
44
|
+
<div
|
|
45
|
+
class="um-nav-btn um-nav-btn-active d-flex align-items-center justify-content-center fw-bold"
|
|
46
|
+
onclick="${gvc.event(() => {
|
|
47
|
+
vm.userData.receive_list = vm.dataList
|
|
48
|
+
.map((data) => {
|
|
49
|
+
const temp = {};
|
|
50
|
+
vm.dataKeys.map(key => {
|
|
51
|
+
temp[key] = data[key];
|
|
52
|
+
});
|
|
53
|
+
return temp;
|
|
54
|
+
})
|
|
55
|
+
.filter((data) => {
|
|
56
|
+
return Object.values(data).some(Boolean);
|
|
57
|
+
});
|
|
58
|
+
ApiUser.updateUserData({
|
|
59
|
+
userData: vm.userData,
|
|
60
|
+
}).then(res => {
|
|
61
|
+
dialog.dataLoading({ visible: false });
|
|
62
|
+
if (!res.result && res.response.data.msg === 'email-verify-false') {
|
|
63
|
+
dialog.errorMessage({ text: Language.text('email_verification_code_incorrect') });
|
|
64
|
+
}
|
|
65
|
+
else if (!res.result && res.response.data.msg === 'phone-verify-false') {
|
|
66
|
+
dialog.errorMessage({ text: Language.text('sms_verification_code_incorrect') });
|
|
67
|
+
}
|
|
68
|
+
else if (!res.result && res.response.data.msg === 'phone-exists') {
|
|
69
|
+
dialog.errorMessage({ text: Language.text('phone_number_already_exists') });
|
|
70
|
+
}
|
|
71
|
+
else if (!res.result && res.response.data.msg === 'email-exists') {
|
|
72
|
+
dialog.errorMessage({ text: Language.text('email_already_exists') });
|
|
73
|
+
}
|
|
74
|
+
else if (!res.result) {
|
|
75
|
+
dialog.errorMessage({ text: Language.text('update_exception') });
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
dialog.successMessage({ text: Language.text('change_success') });
|
|
79
|
+
gvc.recreateView();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
})}"
|
|
83
|
+
>
|
|
84
|
+
${Language.text('confirm')}
|
|
85
|
+
</div>
|
|
86
|
+
</div>`;
|
|
87
|
+
}
|
|
88
|
+
function recipientView() {
|
|
89
|
+
return html ` <div class="col-12" style="min-height: 500px;">
|
|
90
|
+
${vm.dataList
|
|
91
|
+
.map((data, index) => {
|
|
92
|
+
const cloneForm = JSON.parse(JSON.stringify(vm.funnyForm));
|
|
93
|
+
return html `<div class="px-0 py-2 px-md-2 py-md-4 mb-3">
|
|
94
|
+
<h5>${Language.text('recipient')} ${index + 1}</h5>
|
|
95
|
+
${FormWidget.editorView({
|
|
96
|
+
gvc: gvc,
|
|
97
|
+
array: cloneForm.map((dd, index) => {
|
|
98
|
+
dd.col = '6';
|
|
99
|
+
if (index === cloneForm.length - 1) {
|
|
100
|
+
dd.col = '12';
|
|
101
|
+
}
|
|
102
|
+
return dd;
|
|
103
|
+
}),
|
|
104
|
+
refresh: () => {
|
|
105
|
+
gvc.notifyDataChange(vm.id);
|
|
106
|
+
},
|
|
107
|
+
formData: data,
|
|
108
|
+
})}
|
|
109
|
+
</div>`;
|
|
110
|
+
})
|
|
111
|
+
.join('')}
|
|
112
|
+
</div>`;
|
|
113
|
+
}
|
|
114
|
+
function plusButton() {
|
|
115
|
+
return html `<div
|
|
116
|
+
class="w-100 d-flex justify-content-center align-items-center gap-2"
|
|
117
|
+
style="color: #3366BB; cursor: pointer"
|
|
118
|
+
onclick="${gvc.event(() => {
|
|
119
|
+
vm.dataList.push({});
|
|
120
|
+
gvc.notifyDataChange(vm.id);
|
|
121
|
+
})}"
|
|
122
|
+
>
|
|
123
|
+
<div style="font-size: 16px; font-weight: 400; word-wrap: break-word">
|
|
124
|
+
${Language.text('add_recipient')}
|
|
125
|
+
</div>
|
|
126
|
+
<i class="fa-solid fa-plus"></i>
|
|
127
|
+
</div>`;
|
|
128
|
+
}
|
|
41
129
|
return html `
|
|
42
130
|
<div class="row mx-auto p-0">
|
|
43
131
|
<div class="w-100 align-items-center d-flex py-3 pb-lg-3 pt-lg-0" style="gap:10px;">
|
|
@@ -63,74 +151,9 @@ export class UMReceive {
|
|
|
63
151
|
</div>
|
|
64
152
|
<div class="um-info-title fw-bold" style="font-size: 24px;">${Language.text('recipient_info')}</div>
|
|
65
153
|
</div>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const cloneForm = JSON.parse(JSON.stringify(vm.funnyForm));
|
|
70
|
-
return html `<div class="px-0 py-2 px-md-2 py-md-4 mb-3">
|
|
71
|
-
<h5>收件人 ${index + 1}</h5>
|
|
72
|
-
${FormWidget.editorView({
|
|
73
|
-
gvc: gvc,
|
|
74
|
-
array: cloneForm.map((dd, index) => {
|
|
75
|
-
dd.col = '6';
|
|
76
|
-
if (index === cloneForm.length - 1) {
|
|
77
|
-
dd.col = '12';
|
|
78
|
-
}
|
|
79
|
-
return dd;
|
|
80
|
-
}),
|
|
81
|
-
refresh: () => {
|
|
82
|
-
gvc.notifyDataChange(vm.id);
|
|
83
|
-
},
|
|
84
|
-
formData: data,
|
|
85
|
-
})}
|
|
86
|
-
</div>`;
|
|
87
|
-
})
|
|
88
|
-
.join('')}
|
|
89
|
-
<div class="d-flex justify-content-end">
|
|
90
|
-
<div
|
|
91
|
-
class="um-nav-btn um-nav-btn-active d-flex align-items-center justify-content-center fw-bold"
|
|
92
|
-
onclick="${gvc.event(() => {
|
|
93
|
-
vm.userData.receive_list = vm.dataList
|
|
94
|
-
.map((data) => {
|
|
95
|
-
const temp = {};
|
|
96
|
-
vm.dataKeys.map(key => {
|
|
97
|
-
temp[key] = data[key];
|
|
98
|
-
});
|
|
99
|
-
return temp;
|
|
100
|
-
})
|
|
101
|
-
.filter((data) => {
|
|
102
|
-
return Object.values(data).some(Boolean);
|
|
103
|
-
});
|
|
104
|
-
ApiUser.updateUserData({
|
|
105
|
-
userData: vm.userData,
|
|
106
|
-
}).then(res => {
|
|
107
|
-
dialog.dataLoading({ visible: false });
|
|
108
|
-
if (!res.result && res.response.data.msg === 'email-verify-false') {
|
|
109
|
-
dialog.errorMessage({ text: Language.text('email_verification_code_incorrect') });
|
|
110
|
-
}
|
|
111
|
-
else if (!res.result && res.response.data.msg === 'phone-verify-false') {
|
|
112
|
-
dialog.errorMessage({ text: Language.text('sms_verification_code_incorrect') });
|
|
113
|
-
}
|
|
114
|
-
else if (!res.result && res.response.data.msg === 'phone-exists') {
|
|
115
|
-
dialog.errorMessage({ text: Language.text('phone_number_already_exists') });
|
|
116
|
-
}
|
|
117
|
-
else if (!res.result && res.response.data.msg === 'email-exists') {
|
|
118
|
-
dialog.errorMessage({ text: Language.text('email_already_exists') });
|
|
119
|
-
}
|
|
120
|
-
else if (!res.result) {
|
|
121
|
-
dialog.errorMessage({ text: Language.text('update_exception') });
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
dialog.successMessage({ text: Language.text('change_success') });
|
|
125
|
-
gvc.recreateView();
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
})}"
|
|
129
|
-
>
|
|
130
|
-
${Language.text('confirm')}
|
|
131
|
-
</div>
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
154
|
+
${vm.dataList.length > 0 ? [saveView(), recipientView()].join('') : ''}
|
|
155
|
+
<div class="w-100 my-3" style="background: white;height: 1px;"></div>
|
|
156
|
+
${receive_list_max_length > vm.dataList.length ? plusButton() : ''}
|
|
134
157
|
</div>
|
|
135
158
|
`;
|
|
136
159
|
}),
|
|
@@ -139,12 +162,9 @@ export class UMReceive {
|
|
|
139
162
|
const classPrefix = 'cart-prefix';
|
|
140
163
|
CartModule.addStyle(gvc, classPrefix);
|
|
141
164
|
Promise.all([ApiUser.getUserData(GlobalUser.token, 'me'), this.funnyQuickFormFrame(classPrefix)]).then(dataArray => {
|
|
142
|
-
var _a;
|
|
143
165
|
vm.userData = dataArray[0].response.userData;
|
|
144
|
-
vm.userData.receive_list = (
|
|
145
|
-
|
|
146
|
-
vm.dataList = [...vm.userData.receive_list, ...new Array(3 - vm.userData.receive_list.length).fill({})];
|
|
147
|
-
}
|
|
166
|
+
vm.userData.receive_list = Array.isArray(vm.userData.receive_list) ? vm.userData.receive_list : [];
|
|
167
|
+
vm.dataList = vm.userData.receive_list;
|
|
148
168
|
vm.funnyForm = dataArray[1];
|
|
149
169
|
vm.dataKeys = vm.funnyForm.map((item) => item.key).filter(Boolean);
|
|
150
170
|
vm.loading = false;
|