ts-glitter 20.8.7 → 20.9.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/backend-manager/bg-product.js +1 -1
- package/lowcode/backend-manager/bg-product.ts +1 -1
- package/lowcode/backend-manager/bg-recommend.js +1 -1
- package/lowcode/backend-manager/bg-recommend.ts +2 -2
- package/lowcode/backend-manager/bg-shopping.js +2 -5
- package/lowcode/backend-manager/bg-shopping.ts +2 -5
- package/lowcode/cms-plugin/POS-setting.js +58 -34
- package/lowcode/cms-plugin/POS-setting.ts +69 -33
- package/lowcode/cms-plugin/data-analyze-orders.js +0 -1
- package/lowcode/cms-plugin/data-analyze-orders.ts +1 -1
- package/lowcode/cms-plugin/data-analyze.js +1 -21
- package/lowcode/cms-plugin/data-analyze.ts +25 -25
- package/lowcode/cms-plugin/filter-options.js +1 -1
- package/lowcode/cms-plugin/filter-options.ts +1 -2
- package/lowcode/cms-plugin/information/information-module.js +275 -0
- package/lowcode/cms-plugin/information/information-module.ts +308 -0
- package/lowcode/cms-plugin/pos-pages/models.ts +3 -1
- package/lowcode/cms-plugin/pos-pages/payment-page.js +3 -11
- package/lowcode/cms-plugin/pos-pages/payment-page.ts +3 -11
- package/lowcode/cms-plugin/pos-pages/pos-function.js +1 -0
- package/lowcode/cms-plugin/pos-pages/pos-function.ts +1 -0
- package/lowcode/cms-plugin/pos-pages/products-page.js +1 -1
- package/lowcode/cms-plugin/pos-pages/products-page.ts +1 -1
- package/lowcode/cms-plugin/product-service.js +4 -9
- package/lowcode/cms-plugin/product-service.ts +4 -13
- package/lowcode/cms-plugin/shopping-discount-setting.js +76 -27
- package/lowcode/cms-plugin/shopping-discount-setting.ts +123 -63
- package/lowcode/cms-plugin/shopping-information.js +21 -167
- package/lowcode/cms-plugin/shopping-information.ts +35 -191
- package/lowcode/cms-plugin/shopping-order-return.js +212 -360
- package/lowcode/cms-plugin/shopping-order-return.ts +349 -482
- package/lowcode/cms-plugin/shopping-product-setting.js +8 -0
- package/lowcode/cms-plugin/shopping-product-setting.ts +12 -4
- package/lowcode/form-view/e-commerce/product-select.js +59 -51
- package/lowcode/form-view/e-commerce/product-select.ts +279 -266
- package/lowcode/glitter-base/global/language.js +2 -1
- package/lowcode/glitter-base/global/language.ts +2 -1
- package/lowcode/public-components/checkout/index.ts +2078 -2078
- package/lowcode/public-components/headers/sy-02.js +190 -179
- package/lowcode/public-components/headers/sy-02.ts +397 -370
- package/lowcode/public-components/headers/sy-03.js +133 -107
- package/lowcode/public-components/headers/sy-03.ts +276 -244
- package/lowcode/public-components/headers/sy-04.js +181 -146
- package/lowcode/public-components/headers/sy-04.ts +289 -247
- package/lowcode/public-components/product/pd-class.js +31 -23
- package/lowcode/public-components/product/pd-class.ts +51 -29
- package/lowcode/public-components/user-manager/um-voucher.js +1 -0
- package/lowcode/public-components/user-manager/um-voucher.ts +1 -0
- package/package.json +1 -1
- package/src/Language.js +1 -1
- package/src/Language.js.map +1 -1
- package/src/Language.ts +1 -1
- package/src/api-public/controllers/ai-chat.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/fb-message.js.map +1 -1
- package/src/api-public/controllers/fb-service.js.map +1 -1
- package/src/api-public/controllers/invoice.js.map +1 -1
- package/src/api-public/controllers/line-message.js.map +1 -1
- package/src/api-public/controllers/oauth.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 +5 -2
- package/src/api-public/controllers/shop.js.map +1 -1
- package/src/api-public/controllers/shop.ts +7 -3
- package/src/api-public/controllers/shopee.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/stock.js.map +1 -1
- package/src/api-public/controllers/track.js.map +1 -1
- package/src/api-public/controllers/voucher.js.map +1 -1
- package/src/api-public/models/glitter-finance.js +1 -2
- 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/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 +1 -0
- 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/checkout-event.ts +21 -9
- 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 +209 -196
- package/src/api-public/services/data-analyze.js.map +1 -1
- package/src/api-public/services/data-analyze.ts +219 -205
- package/src/api-public/services/delivery.js.map +1 -1
- package/src/api-public/services/ezpay/tool.d.ts +0 -1
- 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.js.map +1 -1
- package/src/api-public/services/filter-protect-data.js.map +1 -1
- package/src/api-public/services/financial-service.js +0 -1
- 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.d.ts +3 -9
- package/src/api-public/services/invoice.js +66 -85
- package/src/api-public/services/invoice.js.map +1 -1
- package/src/api-public/services/invoice.ts +287 -293
- package/src/api-public/services/language-setting.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/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/rebate.js.map +1 -1
- package/src/api-public/services/reconciliation.js.map +1 -1
- package/src/api-public/services/schedule.d.ts +1 -0
- package/src/api-public/services/schedule.js +27 -0
- package/src/api-public/services/schedule.js.map +1 -1
- package/src/api-public/services/schedule.ts +30 -0
- package/src/api-public/services/shopping.d.ts +4 -3
- package/src/api-public/services/shopping.js +40 -20
- package/src/api-public/services/shopping.js.map +1 -1
- package/src/api-public/services/shopping.ts +52 -28
- 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 +10 -0
- package/src/api-public/services/user.js +35 -8
- package/src/api-public/services/user.js.map +1 -1
- package/src/api-public/services/user.ts +50 -7
- package/src/api-public/services/voucher.js.map +1 -1
- package/src/api-public/utils/ut-database.js.map +1 -1
- package/src/app-project/android/app/src/main/res/xml/network_security_config.xml +3 -3
- package/src/app-project/android/app/src/main/res/xml/s.xml +5 -5
- package/src/app-project/android/gradlew.bat +94 -94
- 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 +1 -2
- 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/controllers/ai.js.map +1 -1
- package/src/controllers/global-event.js.map +1 -1
- package/src/controllers/page.js.map +1 -1
- package/src/controllers/private_config.js.map +1 -1
- package/src/export/export-test.js.map +1 -1
- package/src/firebase/message.js +1 -2
- package/src/firebase/message.js.map +1 -1
- package/src/helper/app_creater.js +1 -2
- package/src/helper/app_creater.js.map +1 -1
- package/src/helper/glitter-util.d.ts +0 -1
- package/src/helper/glitter-util.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/database.js +4 -3
- package/src/modules/database.js.map +1 -1
- package/src/modules/database.ts +4 -4
- package/src/modules/exception.js.map +1 -1
- package/src/modules/hooks.js.map +1 -1
- package/src/modules/response.js.map +1 -1
- package/src/modules/ssh.js.map +1 -1
- package/src/public-config-initial/auto-fcm.js.map +1 -1
- package/src/run.js.map +1 -1
- package/src/run.ts +12 -12
- package/src/services/ai.js.map +1 -1
- package/src/services/ses.js +1 -2
- package/src/services/ses.js.map +1 -1
- package/src/services/system-schedule.js.map +1 -1
- package/src/update-progress-track.js.map +1 -1
- package/src/update-script.js.map +1 -1
|
@@ -20,10 +20,116 @@ interface ViewModel {
|
|
|
20
20
|
filter_type: 'normal' | 'block' | 'void';
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
interface ReturnOrderData {
|
|
24
|
+
id: number;
|
|
25
|
+
order_id: string;
|
|
26
|
+
return_order_id: string;
|
|
27
|
+
status: number;
|
|
28
|
+
email: string;
|
|
29
|
+
orderData: {
|
|
30
|
+
rebateChange: any;
|
|
31
|
+
return_inf: string | any;
|
|
32
|
+
refundTime?: string;
|
|
33
|
+
bank_info?: any;
|
|
34
|
+
customer_info: any;
|
|
35
|
+
editRecord: any;
|
|
36
|
+
method: string;
|
|
37
|
+
orderStatus: string;
|
|
38
|
+
use_wallet: number;
|
|
39
|
+
email: string;
|
|
40
|
+
return_discount: number;
|
|
41
|
+
return_rebate: number;
|
|
42
|
+
total: number;
|
|
43
|
+
discount: number;
|
|
44
|
+
expectDate: string;
|
|
45
|
+
shipment_fee: number;
|
|
46
|
+
use_rebate: number;
|
|
47
|
+
lineItems: {
|
|
48
|
+
id: number;
|
|
49
|
+
spec: string[];
|
|
50
|
+
count: string;
|
|
51
|
+
sale_price: number;
|
|
52
|
+
return_count: number;
|
|
53
|
+
return_reason: string;
|
|
54
|
+
}[];
|
|
55
|
+
user_info: {
|
|
56
|
+
name: string;
|
|
57
|
+
email: string;
|
|
58
|
+
phone: string;
|
|
59
|
+
address: string;
|
|
60
|
+
shipment: 'normal' | 'FAMIC2C' | 'UNIMARTC2C' | 'HILIFEC2C' | 'OKMARTC2C';
|
|
61
|
+
CVSStoreName: string;
|
|
62
|
+
CVSStoreID: string;
|
|
63
|
+
CVSTelephone: string;
|
|
64
|
+
MerchantTradeNo: string;
|
|
65
|
+
CVSAddress: string;
|
|
66
|
+
note?: string;
|
|
67
|
+
code_note?: string;
|
|
68
|
+
};
|
|
69
|
+
custom_form_format?: any;
|
|
70
|
+
custom_form_data?: any;
|
|
71
|
+
proof_purchase: any;
|
|
72
|
+
progress: string;
|
|
73
|
+
returnProgress: string;
|
|
74
|
+
order_note: string;
|
|
75
|
+
return_order_remark: string;
|
|
76
|
+
voucherList: [
|
|
77
|
+
{
|
|
78
|
+
title: string;
|
|
79
|
+
method: 'percent' | 'fixed';
|
|
80
|
+
trigger: 'auto' | 'code';
|
|
81
|
+
value: string;
|
|
82
|
+
for: 'collection' | 'product';
|
|
83
|
+
rule: 'min_price' | 'min_count';
|
|
84
|
+
forKey: string[];
|
|
85
|
+
ruleValue: number;
|
|
86
|
+
startDate: string;
|
|
87
|
+
startTime: string;
|
|
88
|
+
endDate?: string;
|
|
89
|
+
endTime?: string;
|
|
90
|
+
status: 0 | 1 | -1;
|
|
91
|
+
type: 'voucher';
|
|
92
|
+
code?: string;
|
|
93
|
+
overlay: boolean;
|
|
94
|
+
bind?: {
|
|
95
|
+
id: string;
|
|
96
|
+
spec: string[];
|
|
97
|
+
count: number;
|
|
98
|
+
sale_price: number;
|
|
99
|
+
collection: string[];
|
|
100
|
+
discount_price: number;
|
|
101
|
+
}[];
|
|
102
|
+
start_ISO_Date: string;
|
|
103
|
+
end_ISO_Date: string;
|
|
104
|
+
},
|
|
105
|
+
];
|
|
106
|
+
};
|
|
107
|
+
created_time: string;
|
|
108
|
+
}
|
|
109
|
+
|
|
23
110
|
const html = String.raw;
|
|
24
111
|
|
|
25
112
|
export class ShoppingReturnOrderManager {
|
|
26
|
-
|
|
113
|
+
static getShipmentBadge(data: string, size: 'sm' | 'md' = 'md') {
|
|
114
|
+
const shipmentMap: any = {
|
|
115
|
+
'0': () => BgWidget.warningInsignia('退貨中', { size }),
|
|
116
|
+
'1': () => BgWidget.secondaryInsignia('處理中', { size }),
|
|
117
|
+
'-1': () => BgWidget.successInsignia('已退貨', { size }),
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
return (shipmentMap[data] ?? shipmentMap['1'])();
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
static getPaymentBadge(data: string, size: 'sm' | 'md' = 'md') {
|
|
124
|
+
const paymentMap: any = {
|
|
125
|
+
'0': () => BgWidget.warningInsignia('退款中', { size }),
|
|
126
|
+
'1': () => BgWidget.successInsignia('已退款', { size }),
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
return (paymentMap[data] ?? paymentMap['0'])();
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
static main(gvc: GVC) {
|
|
27
133
|
const glitter = gvc.glitter;
|
|
28
134
|
const dialog = new ShareDialog(gvc.glitter);
|
|
29
135
|
|
|
@@ -43,11 +149,6 @@ export class ShoppingReturnOrderManager {
|
|
|
43
149
|
const ListComp = new BgListComponent(gvc, vm, FilterOptions.returnOrderFilterFrame);
|
|
44
150
|
|
|
45
151
|
vm.filter = ListComp.getFilterObject();
|
|
46
|
-
gvc.addMtScript(
|
|
47
|
-
[{ src: 'https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.9/xlsx.full.min.js' }],
|
|
48
|
-
() => {},
|
|
49
|
-
() => {}
|
|
50
|
-
);
|
|
51
152
|
|
|
52
153
|
return gvc.bindView(() => {
|
|
53
154
|
return {
|
|
@@ -66,22 +167,7 @@ export class ShoppingReturnOrderManager {
|
|
|
66
167
|
})
|
|
67
168
|
)}
|
|
68
169
|
</div>
|
|
69
|
-
<div class="
|
|
70
|
-
${BgWidget.tab(
|
|
71
|
-
[
|
|
72
|
-
{
|
|
73
|
-
title: '一般列表',
|
|
74
|
-
key: 'normal',
|
|
75
|
-
},
|
|
76
|
-
],
|
|
77
|
-
gvc,
|
|
78
|
-
vm.filter_type,
|
|
79
|
-
text => {
|
|
80
|
-
vm.filter_type = text as any;
|
|
81
|
-
gvc.notifyDataChange(vm.id);
|
|
82
|
-
}
|
|
83
|
-
)}
|
|
84
|
-
</div>
|
|
170
|
+
<div class="mb-3"></div>
|
|
85
171
|
${BgWidget.mainCard(
|
|
86
172
|
[
|
|
87
173
|
html`<div>
|
|
@@ -96,12 +182,12 @@ export class ShoppingReturnOrderManager {
|
|
|
96
182
|
options: FilterOptions.returnOrderSelect,
|
|
97
183
|
})}
|
|
98
184
|
${BgWidget.searchFilter(
|
|
99
|
-
gvc.event(
|
|
185
|
+
gvc.event(e => {
|
|
100
186
|
vm.query = `${e.value}`.trim();
|
|
101
187
|
gvc.notifyDataChange(vm.id);
|
|
102
188
|
}),
|
|
103
189
|
vm.query || '',
|
|
104
|
-
'
|
|
190
|
+
'搜尋訂單'
|
|
105
191
|
)}
|
|
106
192
|
${BgWidget.funnelFilter({
|
|
107
193
|
gvc,
|
|
@@ -149,59 +235,18 @@ export class ShoppingReturnOrderManager {
|
|
|
149
235
|
},
|
|
150
236
|
{
|
|
151
237
|
key: '申請人',
|
|
152
|
-
value: dd.orderData.user_info ? dd.orderData.user_info.name :
|
|
238
|
+
value: dd.orderData.user_info ? dd.orderData.user_info.name : '匿名',
|
|
153
239
|
},
|
|
154
240
|
{
|
|
155
241
|
key: '退貨狀態',
|
|
156
|
-
value: (
|
|
157
|
-
switch (dd.orderData.returnProgress ?? '1') {
|
|
158
|
-
case '0':
|
|
159
|
-
return html`<div
|
|
160
|
-
class="badge"
|
|
161
|
-
style="font-size: 14px;color:#393939;height: 22px;padding: 4px 6px;border-radius: 7px;background: #FFE9B2;"
|
|
162
|
-
>
|
|
163
|
-
退貨中
|
|
164
|
-
</div>`;
|
|
165
|
-
case '-1':
|
|
166
|
-
return html`<div
|
|
167
|
-
class="badge"
|
|
168
|
-
style="font-size: 14px;border-radius: 7px;background: #D8ECDA;height: 22px;padding: 4px 6px;color:#393939;"
|
|
169
|
-
>
|
|
170
|
-
已退貨
|
|
171
|
-
</div>`;
|
|
172
|
-
default:
|
|
173
|
-
return html`<div
|
|
174
|
-
class="badge"
|
|
175
|
-
style="font-size: 14px;color:#393939;height: 22px;padding: 4px 6px;border-radius: 7px;background: #FFE9B2;"
|
|
176
|
-
>
|
|
177
|
-
處理中
|
|
178
|
-
</div>`;
|
|
179
|
-
}
|
|
180
|
-
})(),
|
|
242
|
+
value: ShoppingReturnOrderManager.getShipmentBadge(`${dd.orderData.returnProgress}`),
|
|
181
243
|
},
|
|
182
244
|
{
|
|
183
245
|
key: '退款狀態',
|
|
184
|
-
value: (
|
|
185
|
-
switch (dd.status ?? 0) {
|
|
186
|
-
case 1:
|
|
187
|
-
return html`<div
|
|
188
|
-
class="badge "
|
|
189
|
-
style="font-size: 14px;color:#393939;border-radius: 7px;background: #D8ECDA;height: 22px;padding: 4px 6px;"
|
|
190
|
-
>
|
|
191
|
-
已退款
|
|
192
|
-
</div>`;
|
|
193
|
-
default:
|
|
194
|
-
return html`<div
|
|
195
|
-
class="badge"
|
|
196
|
-
style="font-size: 14px;color:#393939;height: 22px;padding: 4px 6px;border-radius: 7px;background: #FFE9B2;"
|
|
197
|
-
>
|
|
198
|
-
退款中
|
|
199
|
-
</div>`;
|
|
200
|
-
}
|
|
201
|
-
})(),
|
|
246
|
+
value: ShoppingReturnOrderManager.getPaymentBadge(`${dd.status}`),
|
|
202
247
|
},
|
|
203
248
|
].map((dd: any) => {
|
|
204
|
-
dd.value = html`<div style="line-height:40px;">${dd.value}</div>`;
|
|
249
|
+
dd.value = html`<div style="line-height: 40px;">${dd.value}</div>`;
|
|
205
250
|
return dd;
|
|
206
251
|
});
|
|
207
252
|
});
|
|
@@ -215,43 +260,43 @@ export class ShoppingReturnOrderManager {
|
|
|
215
260
|
vmi.callback();
|
|
216
261
|
});
|
|
217
262
|
},
|
|
218
|
-
rowClick: (
|
|
263
|
+
rowClick: (_, index) => {
|
|
219
264
|
vm.data = vm.dataList[index];
|
|
220
265
|
vm.type = 'replace';
|
|
221
266
|
},
|
|
222
267
|
filter: [
|
|
223
|
-
{
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
},
|
|
268
|
+
// {
|
|
269
|
+
// name: vm.filter_type === 'normal' ? `批量封存` : `解除封存`,
|
|
270
|
+
// option: true,
|
|
271
|
+
// event: () => {
|
|
272
|
+
// const action_text = vm.filter_type === 'normal' ? `封存` : `解除封存`;
|
|
273
|
+
// dialog.checkYesOrNot({
|
|
274
|
+
// text: `是否確認${action_text}所選項目?`,
|
|
275
|
+
// callback: async response => {
|
|
276
|
+
// if (response) {
|
|
277
|
+
// dialog.dataLoading({ visible: true });
|
|
278
|
+
// const check = vm.dataList.filter((dd: any) => {
|
|
279
|
+
// return dd.checked;
|
|
280
|
+
// });
|
|
281
|
+
// for (const b of check) {
|
|
282
|
+
// b.orderData.archived = vm.filter_type === 'normal' ? `true` : `false`;
|
|
283
|
+
// await ApiShop.putReturnOrder({
|
|
284
|
+
// id: `${b.id}`,
|
|
285
|
+
// data: b,
|
|
286
|
+
// });
|
|
287
|
+
// }
|
|
288
|
+
// setTimeout(() => {
|
|
289
|
+
// dialog.dataLoading({ visible: false });
|
|
290
|
+
// gvc.notifyDataChange(vm.id);
|
|
291
|
+
// }, 100);
|
|
292
|
+
// }
|
|
293
|
+
// },
|
|
294
|
+
// });
|
|
295
|
+
// },
|
|
296
|
+
// },
|
|
252
297
|
{
|
|
253
298
|
name: vm.filter_type === 'void' ? `批量作廢` : `解除作廢`,
|
|
254
|
-
option: true,
|
|
299
|
+
// option: true,
|
|
255
300
|
event: () => {
|
|
256
301
|
dialog.checkYesOrNot({
|
|
257
302
|
text: `是否確認${vm.filter_type === 'void' ? `解除作廢` : `作廢`}所選項目?`,
|
|
@@ -286,129 +331,29 @@ export class ShoppingReturnOrderManager {
|
|
|
286
331
|
return this.replaceOrder(gvc, vm);
|
|
287
332
|
} else if (vm.type == 'addSearch') {
|
|
288
333
|
return this.searchOrder(gvc, vm);
|
|
289
|
-
} else {
|
|
290
|
-
return '';
|
|
291
334
|
}
|
|
335
|
+
return '';
|
|
292
336
|
},
|
|
293
337
|
};
|
|
294
338
|
});
|
|
295
339
|
}
|
|
296
340
|
|
|
297
|
-
|
|
341
|
+
static replaceOrder(gvc: GVC, vm: any) {
|
|
298
342
|
const glitter = gvc.glitter;
|
|
299
|
-
const
|
|
300
|
-
|
|
301
|
-
order_id: string;
|
|
302
|
-
return_order_id: string;
|
|
303
|
-
status: number;
|
|
304
|
-
email: string;
|
|
305
|
-
orderData: {
|
|
306
|
-
rebateChange: any;
|
|
307
|
-
return_inf: string | any;
|
|
308
|
-
refundTime?: string;
|
|
309
|
-
bank_info?: any;
|
|
310
|
-
customer_info: any;
|
|
311
|
-
editRecord: any;
|
|
312
|
-
method: string;
|
|
313
|
-
orderStatus: string;
|
|
314
|
-
use_wallet: number;
|
|
315
|
-
email: string;
|
|
316
|
-
return_discount: number;
|
|
317
|
-
return_rebate: number;
|
|
318
|
-
total: number;
|
|
319
|
-
discount: number;
|
|
320
|
-
expectDate: string;
|
|
321
|
-
shipment_fee: number;
|
|
322
|
-
use_rebate: number;
|
|
323
|
-
lineItems: {
|
|
324
|
-
id: number;
|
|
325
|
-
spec: string[];
|
|
326
|
-
count: string;
|
|
327
|
-
sale_price: number;
|
|
328
|
-
return_count: number;
|
|
329
|
-
return_reason: string;
|
|
330
|
-
}[];
|
|
331
|
-
user_info: {
|
|
332
|
-
name: string;
|
|
333
|
-
email: string;
|
|
334
|
-
phone: string;
|
|
335
|
-
address: string;
|
|
336
|
-
shipment: 'normal' | 'FAMIC2C' | 'UNIMARTC2C' | 'HILIFEC2C' | 'OKMARTC2C';
|
|
337
|
-
CVSStoreName: string;
|
|
338
|
-
CVSStoreID: string;
|
|
339
|
-
CVSTelephone: string;
|
|
340
|
-
MerchantTradeNo: string;
|
|
341
|
-
CVSAddress: string;
|
|
342
|
-
note?: string;
|
|
343
|
-
code_note?: string;
|
|
344
|
-
};
|
|
345
|
-
custom_form_format?: any;
|
|
346
|
-
custom_form_data?: any;
|
|
347
|
-
proof_purchase: any;
|
|
348
|
-
progress: string;
|
|
349
|
-
returnProgress: string;
|
|
350
|
-
order_note: string;
|
|
351
|
-
return_order_remark: string;
|
|
352
|
-
voucherList: [
|
|
353
|
-
{
|
|
354
|
-
title: string;
|
|
355
|
-
method: 'percent' | 'fixed';
|
|
356
|
-
trigger: 'auto' | 'code';
|
|
357
|
-
value: string;
|
|
358
|
-
for: 'collection' | 'product';
|
|
359
|
-
rule: 'min_price' | 'min_count';
|
|
360
|
-
forKey: string[];
|
|
361
|
-
ruleValue: number;
|
|
362
|
-
startDate: string;
|
|
363
|
-
startTime: string;
|
|
364
|
-
endDate?: string;
|
|
365
|
-
endTime?: string;
|
|
366
|
-
status: 0 | 1 | -1;
|
|
367
|
-
type: 'voucher';
|
|
368
|
-
code?: string;
|
|
369
|
-
overlay: boolean;
|
|
370
|
-
bind?: {
|
|
371
|
-
id: string;
|
|
372
|
-
spec: string[];
|
|
373
|
-
count: number;
|
|
374
|
-
sale_price: number;
|
|
375
|
-
collection: string[];
|
|
376
|
-
discount_price: number;
|
|
377
|
-
}[];
|
|
378
|
-
start_ISO_Date: string;
|
|
379
|
-
end_ISO_Date: string;
|
|
380
|
-
},
|
|
381
|
-
];
|
|
382
|
-
};
|
|
383
|
-
created_time: string;
|
|
384
|
-
} = vm.data;
|
|
385
|
-
let userData: any = {};
|
|
343
|
+
const dialog = new ShareDialog(glitter);
|
|
344
|
+
const orderData: ReturnOrderData = vm.data;
|
|
386
345
|
const mainViewID = gvc.glitter.getUUID();
|
|
387
|
-
gvc.addStyle(`
|
|
388
|
-
.bg-warning {
|
|
389
|
-
background: #ffef9d !important;
|
|
390
|
-
color: black !important;
|
|
391
|
-
}
|
|
392
|
-
`);
|
|
393
|
-
let userDataLoading = true;
|
|
394
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
395
346
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
case 'red':
|
|
401
|
-
return `<div class="badge fs-6" style="border-radius: 7px;background: #FFD5D0;color: #393939;max-height:34px;">${text}</div>`;
|
|
402
|
-
case 'yellow':
|
|
403
|
-
return `<div class="badge fs-6" style="max-height:34px;border-radius: 7px;color: #393939;background: #FFE9B2;">${text}</div>`;
|
|
404
|
-
default:
|
|
405
|
-
return `<div class="badge fs-6" style="max-height:34px;border-radius: 7px;color: #393939;background: ${color};">${text}</div>`;
|
|
347
|
+
gvc.addStyle(`
|
|
348
|
+
.bg-warning {
|
|
349
|
+
background: #ffef9d !important;
|
|
350
|
+
color: black !important;
|
|
406
351
|
}
|
|
407
|
-
|
|
352
|
+
`);
|
|
408
353
|
|
|
409
354
|
function drawInputRow(text: string, value: any, readonly: boolean, style?: string): string {
|
|
410
355
|
return html`
|
|
411
|
-
<div class="
|
|
356
|
+
<div class="d-flex flex-column" style="gap:8px;flex:1;${style ? style : ''}">
|
|
412
357
|
<div style="font-size: 16px;font-weight: 400;">${text}</div>
|
|
413
358
|
${(() => {
|
|
414
359
|
if (readonly) {
|
|
@@ -437,30 +382,10 @@ export class ShoppingReturnOrderManager {
|
|
|
437
382
|
`;
|
|
438
383
|
}
|
|
439
384
|
|
|
440
|
-
const vt = {
|
|
441
|
-
paymentBadge: () => {
|
|
442
|
-
if (orderData.status === 0) {
|
|
443
|
-
return drawBadge('red', '尚未退款');
|
|
444
|
-
} else if (orderData.status === 1) {
|
|
445
|
-
return drawBadge('green', '已退款');
|
|
446
|
-
}
|
|
447
|
-
},
|
|
448
|
-
outShipBadge: () => {
|
|
449
|
-
switch (orderData.orderData.returnProgress ?? '1') {
|
|
450
|
-
case '1':
|
|
451
|
-
return drawBadge('#FFD5D0', '申請中');
|
|
452
|
-
case '0':
|
|
453
|
-
return drawBadge('#FFD5D0', '退貨中');
|
|
454
|
-
case '-1':
|
|
455
|
-
return drawBadge('#D8ECDA', '已退貨');
|
|
456
|
-
}
|
|
457
|
-
},
|
|
458
|
-
};
|
|
459
385
|
ApiUser.getUsersDataWithEmail(orderData.email).then(res => {
|
|
460
|
-
userData = res.response;
|
|
461
|
-
userDataLoading = false;
|
|
462
386
|
gvc.notifyDataChange(mainViewID);
|
|
463
387
|
});
|
|
388
|
+
|
|
464
389
|
const child_vm: {
|
|
465
390
|
type: 'order' | 'user';
|
|
466
391
|
userID: string;
|
|
@@ -511,10 +436,11 @@ export class ShoppingReturnOrderManager {
|
|
|
511
436
|
style="color: #8D8D8D;font-size: 16px;font-weight: 400;gap:10px;"
|
|
512
437
|
>
|
|
513
438
|
訂單成立時間 :
|
|
514
|
-
${
|
|
515
|
-
new Date(orderData.created_time),
|
|
516
|
-
|
|
517
|
-
|
|
439
|
+
${[
|
|
440
|
+
glitter.ut.dateFormat(new Date(orderData.created_time), 'yyyy-MM-dd hh:mm'),
|
|
441
|
+
this.getPaymentBadge(`${orderData.status}`, 'sm'),
|
|
442
|
+
this.getShipmentBadge(`${orderData.orderData.returnProgress}`, 'sm'),
|
|
443
|
+
].join('')}
|
|
518
444
|
</div>
|
|
519
445
|
</div>
|
|
520
446
|
</div>`
|
|
@@ -543,7 +469,7 @@ export class ShoppingReturnOrderManager {
|
|
|
543
469
|
儲存並更改
|
|
544
470
|
</button>
|
|
545
471
|
</div>
|
|
546
|
-
<div class="d-flex flex-column" style="gap:20px;">
|
|
472
|
+
<div class="d-flex flex-column mt-3" style="gap:20px;">
|
|
547
473
|
${BgWidget.mainCard(html`
|
|
548
474
|
<div class="d-flex flex-column" style="gap:18px;">
|
|
549
475
|
<div class="d-flex flex-column" style="gap: 12px;">
|
|
@@ -567,7 +493,7 @@ export class ShoppingReturnOrderManager {
|
|
|
567
493
|
return html`
|
|
568
494
|
<option
|
|
569
495
|
value="${data[1]}"
|
|
570
|
-
${orderData.orderData.returnProgress == data[1] ? `selected` :
|
|
496
|
+
${orderData.orderData.returnProgress == data[1] ? `selected` : ''}
|
|
571
497
|
>
|
|
572
498
|
${data[0]}
|
|
573
499
|
</option>
|
|
@@ -587,23 +513,20 @@ export class ShoppingReturnOrderManager {
|
|
|
587
513
|
style="width:100%;display: flex;flex-direction: column;align-items: flex-start;gap: 18px;align-self: stretch;color:#393939;font-size: 16px;font-weight: 400;"
|
|
588
514
|
>
|
|
589
515
|
<div style="font-weight: 700;">收件人資訊</div>
|
|
590
|
-
${
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
})
|
|
605
|
-
.join('');
|
|
606
|
-
})()}
|
|
516
|
+
${[
|
|
517
|
+
['姓名', 'name'],
|
|
518
|
+
['電話', 'phone'],
|
|
519
|
+
['電子信箱', 'email'],
|
|
520
|
+
]
|
|
521
|
+
.map(data => {
|
|
522
|
+
return drawInputRow(
|
|
523
|
+
data[0],
|
|
524
|
+
(orderData.orderData.user_info as any)[data[1]],
|
|
525
|
+
false,
|
|
526
|
+
'width:100%;'
|
|
527
|
+
);
|
|
528
|
+
})
|
|
529
|
+
.join('')}
|
|
607
530
|
</div>
|
|
608
531
|
`)}
|
|
609
532
|
${BgWidget.mainCard(html`
|
|
@@ -622,132 +545,114 @@ export class ShoppingReturnOrderManager {
|
|
|
622
545
|
<div style="width:50px;text-align: right;">小計</div>
|
|
623
546
|
</div>
|
|
624
547
|
</div>
|
|
548
|
+
${orderData.orderData.lineItems
|
|
549
|
+
.map((data: any, index: number) => {
|
|
550
|
+
return gvc.bindView({
|
|
551
|
+
bind: `lineItem${index}`,
|
|
552
|
+
view: () => {
|
|
553
|
+
gvc.addStyle(`
|
|
554
|
+
input[type='number']::-webkit-outer-spin-button,
|
|
555
|
+
input[type='number']::-webkit-inner-spin-button {
|
|
556
|
+
-webkit-appearance: none;
|
|
557
|
+
margin: 0;
|
|
558
|
+
}
|
|
625
559
|
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
return /^\s*$/.test(input);
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
if (data.spec.length == 0 || isBlankString(data.spec[0])) {
|
|
664
|
-
return html`
|
|
665
|
-
<div
|
|
666
|
-
style="border-radius: 7px;background: #EAEAEA;display: flex;height: 22px;padding: 4px 6px;justify-content: center;align-items: center;gap: 10px;color:#393939;font-weight: 400;"
|
|
667
|
-
>
|
|
668
|
-
單一規格
|
|
669
|
-
</div>
|
|
670
|
-
`;
|
|
671
|
-
}
|
|
672
|
-
return data.spec
|
|
673
|
-
.map((spec: string) => {
|
|
674
|
-
data.return_count = data.return_count ?? data.count;
|
|
675
|
-
return html` <div
|
|
676
|
-
style="border-radius: 7px;background: #EAEAEA;display: flex;height: 22px;padding: 4px 6px;justify-content: center;align-items: center;gap: 10px;color:#393939;font-weight: 400;"
|
|
677
|
-
>
|
|
678
|
-
${spec}
|
|
679
|
-
</div>`;
|
|
680
|
-
})
|
|
681
|
-
.join();
|
|
682
|
-
})()}
|
|
683
|
-
</div>
|
|
684
|
-
<div style="color: #8D8D8D;font-size: 14px;font-weight: 400;">
|
|
685
|
-
存貨單位 (SKU): ${data.sku ?? ''}
|
|
686
|
-
</div>
|
|
560
|
+
/* Firefox */
|
|
561
|
+
input[type='number'] {
|
|
562
|
+
-moz-appearance: textfield;
|
|
563
|
+
}
|
|
564
|
+
`);
|
|
565
|
+
return html` <div style="flex:1 0 0;display: flex;align-items: center;gap: 12px;">
|
|
566
|
+
<img style="width: 54px;height: 54px;" src="${data.preview_image}" />
|
|
567
|
+
<div class="d-flex justify-content-center flex-column" style="gap: 4px;">
|
|
568
|
+
<div style="color:#393939;font-weight: 400;">${data.title}</div>
|
|
569
|
+
<div class="d-flex" style="gap:4px;">
|
|
570
|
+
${(() => {
|
|
571
|
+
if (data.spec.length == 0 || isBlankString(data.spec[0])) {
|
|
572
|
+
return html`
|
|
573
|
+
<div
|
|
574
|
+
style="border-radius: 7px;background: #EAEAEA;display: flex;height: 22px;padding: 4px 6px;justify-content: center;align-items: center;gap: 10px;color:#393939;font-weight: 400;"
|
|
575
|
+
>
|
|
576
|
+
單一規格
|
|
577
|
+
</div>
|
|
578
|
+
`;
|
|
579
|
+
}
|
|
580
|
+
return data.spec
|
|
581
|
+
.map((spec: string) => {
|
|
582
|
+
data.return_count = data.return_count ?? data.count;
|
|
583
|
+
return html` <div
|
|
584
|
+
style="border-radius: 7px;background: #EAEAEA;display: flex;height: 22px;padding: 4px 6px;justify-content: center;align-items: center;gap: 10px;color:#393939;font-weight: 400;"
|
|
585
|
+
>
|
|
586
|
+
${spec}
|
|
587
|
+
</div>`;
|
|
588
|
+
})
|
|
589
|
+
.join();
|
|
590
|
+
})()}
|
|
591
|
+
</div>
|
|
592
|
+
<div style="color: #8D8D8D;font-size: 14px;font-weight: 400;">
|
|
593
|
+
存貨單位 (SKU): ${data.sku ?? ''}
|
|
687
594
|
</div>
|
|
688
595
|
</div>
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
596
|
+
</div>
|
|
597
|
+
<div
|
|
598
|
+
style="width:13%;margin-right: 20px;"
|
|
599
|
+
class="d-flex align-items-center justify-content-center"
|
|
600
|
+
>
|
|
601
|
+
${(() => {
|
|
602
|
+
let options: {
|
|
603
|
+
value: string;
|
|
604
|
+
text: string;
|
|
605
|
+
}[] = [
|
|
606
|
+
{
|
|
607
|
+
value: 'not_as_described',
|
|
608
|
+
text: '商品不符合',
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
value: 'damaged_in_shipping',
|
|
612
|
+
text: '運送中毀損',
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
value: 'not_as_described',
|
|
616
|
+
text: '商品有瑕疵',
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
value: 'not_as_described',
|
|
620
|
+
text: '訂單有誤',
|
|
621
|
+
},
|
|
622
|
+
];
|
|
715
623
|
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
})
|
|
749
|
-
.join('');
|
|
750
|
-
})()}
|
|
624
|
+
return html`
|
|
625
|
+
<div style="font-size: 16px;font-weight: 400;">
|
|
626
|
+
${options.filter(data2 => data2.value == data.return_reason)[0].text}
|
|
627
|
+
</div>
|
|
628
|
+
`;
|
|
629
|
+
})()}
|
|
630
|
+
</div>
|
|
631
|
+
<div style="width:5%;">${data.sale_price}</div>
|
|
632
|
+
<div style="width:10%;" class="d-flex align-items-center justify-content-center">
|
|
633
|
+
<div style="font-size: 16px;font-weight: 400;">${data.return_count}</div>
|
|
634
|
+
</div>
|
|
635
|
+
<div style="width:10%;" class="d-flex align-items-center justify-content-center">
|
|
636
|
+
<input
|
|
637
|
+
type="number"
|
|
638
|
+
style="text-align: center;width:94px;border-radius: 10px;border: 1px solid #DDD;display: flex;padding: 9px 18px;"
|
|
639
|
+
value="${data.return_stock ?? 0}"
|
|
640
|
+
max="${data.return_count}"
|
|
641
|
+
min="0"
|
|
642
|
+
onchange="${gvc.event(e => {
|
|
643
|
+
data.return_stock = e.value;
|
|
644
|
+
gvc.notifyDataChange(`lineItem${index}`);
|
|
645
|
+
})}"
|
|
646
|
+
/>
|
|
647
|
+
</div>
|
|
648
|
+
<div style="width:50px;text-align: right;">${data.return_count * data.sale_price}</div>`;
|
|
649
|
+
},
|
|
650
|
+
divCreate: {
|
|
651
|
+
style: `display: flex;padding: 0px 4px 12px 0px;align-items: center;gap: 18px;background: #FFF;width: 100%;padding-right:12px;`,
|
|
652
|
+
},
|
|
653
|
+
});
|
|
654
|
+
})
|
|
655
|
+
.join('')}
|
|
751
656
|
<div style="width: 100%;height: 1px;background-color: #DDD;margin-bottom:18px;"></div>
|
|
752
657
|
${gvc.bindView({
|
|
753
658
|
bind: `checkout`,
|
|
@@ -791,7 +696,7 @@ export class ShoppingReturnOrderManager {
|
|
|
791
696
|
<div>商品名稱</div>
|
|
792
697
|
<div class="ms-auto d-flex">
|
|
793
698
|
<div class="d-flex align-items-center justify-content-center" style="width: 60px;">
|
|
794
|
-
|
|
699
|
+
${type}
|
|
795
700
|
</div>
|
|
796
701
|
</div>
|
|
797
702
|
</div>
|
|
@@ -810,23 +715,10 @@ export class ShoppingReturnOrderManager {
|
|
|
810
715
|
>
|
|
811
716
|
${data.title}
|
|
812
717
|
</div>
|
|
813
|
-
<div class="d-flex
|
|
718
|
+
<div class="d-flex" style="gap:4px;">
|
|
814
719
|
${(() => {
|
|
815
720
|
data.return_count = data.return_count ?? data.count;
|
|
816
721
|
|
|
817
|
-
function isBlankString(input: any): boolean {
|
|
818
|
-
if (
|
|
819
|
-
input === null ||
|
|
820
|
-
input === undefined ||
|
|
821
|
-
input === '' ||
|
|
822
|
-
input.length == 0
|
|
823
|
-
) {
|
|
824
|
-
return true;
|
|
825
|
-
}
|
|
826
|
-
//檢查空白跟tab
|
|
827
|
-
return /^\s*$/.test(input);
|
|
828
|
-
}
|
|
829
|
-
|
|
830
722
|
if (data.spec.length == 0 || isBlankString(data.spec[0])) {
|
|
831
723
|
return html`
|
|
832
724
|
<div
|
|
@@ -863,7 +755,7 @@ export class ShoppingReturnOrderManager {
|
|
|
863
755
|
class="d-flex align-items-center justify-content-center"
|
|
864
756
|
style="width: 60px;"
|
|
865
757
|
>
|
|
866
|
-
${data[dict[type]]}
|
|
758
|
+
${data[dict[type]] || 0}
|
|
867
759
|
</div>
|
|
868
760
|
</div>
|
|
869
761
|
</div>
|
|
@@ -882,9 +774,6 @@ export class ShoppingReturnOrderManager {
|
|
|
882
774
|
orderData.orderData.return_rebate = orderData.orderData.return_rebate ?? '0';
|
|
883
775
|
orderData.orderData.return_discount = orderData.orderData.return_discount ?? '0';
|
|
884
776
|
|
|
885
|
-
let returnTotal = (((subTotal + orderData.orderData.return_rebate) as number) +
|
|
886
|
-
orderData.orderData.return_discount) as number;
|
|
887
|
-
|
|
888
777
|
return html`
|
|
889
778
|
${(() => {
|
|
890
779
|
return [
|
|
@@ -896,7 +785,9 @@ export class ShoppingReturnOrderManager {
|
|
|
896
785
|
return html`
|
|
897
786
|
<div class="d-flex" style="gap: 24px;">
|
|
898
787
|
<div style="font-size: 16px;font-weight: 400;">${data[0]}</div>
|
|
899
|
-
<div style="width:158px;text-align: right;"
|
|
788
|
+
<div style="width:158px;text-align: right;">
|
|
789
|
+
$ ${Number(data[1]).toLocaleString()}
|
|
790
|
+
</div>
|
|
900
791
|
</div>
|
|
901
792
|
`;
|
|
902
793
|
})
|
|
@@ -921,7 +812,7 @@ export class ShoppingReturnOrderManager {
|
|
|
921
812
|
<div style="text-align: right;">${item[0]}</div>
|
|
922
813
|
</div>
|
|
923
814
|
|
|
924
|
-
<div class="d-flex
|
|
815
|
+
<div class="d-flex" style="width: 112px;height: 100%">
|
|
925
816
|
<div
|
|
926
817
|
style="text-align: right;width: 112px;color: #4D86DB;text-decoration-line: underline;cursor: pointer"
|
|
927
818
|
onclick="${gvc.event(() => {
|
|
@@ -938,7 +829,9 @@ export class ShoppingReturnOrderManager {
|
|
|
938
829
|
})()}
|
|
939
830
|
<div class="d-flex" style="gap: 24px;color:#393939;font-size: 16px;font-weight: 700;">
|
|
940
831
|
<div>退款總金額</div>
|
|
941
|
-
<div style="width:158px;text-align: right;"
|
|
832
|
+
<div style="width:158px;text-align: right;">
|
|
833
|
+
$ ${Number(orderData.orderData.return_inf.subTotal).toLocaleString()}
|
|
834
|
+
</div>
|
|
942
835
|
</div>
|
|
943
836
|
`;
|
|
944
837
|
},
|
|
@@ -948,20 +841,19 @@ export class ShoppingReturnOrderManager {
|
|
|
948
841
|
})}
|
|
949
842
|
`)}
|
|
950
843
|
${BgWidget.mainCard(html`
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
844
|
+
<div class="d-flex flex-column" style="color: #393939;font-size: 16px;font-weight: 400;gap: 8px;">
|
|
845
|
+
<div style="font-weight: 700;">退貨備註</div>
|
|
846
|
+
<textarea style="height: 102px;border-radius: 10px;border: 1px solid #DDD;padding: 15px;">
|
|
847
|
+
${orderData.orderData?.return_order_remark ?? ''}</textarea
|
|
848
|
+
>
|
|
849
|
+
</div>
|
|
850
|
+
`)}
|
|
851
|
+
${BgWidget.mainCard(html`
|
|
959
852
|
<div
|
|
960
853
|
style="width:100%;display: flex;flex-direction: column;align-items: flex-start;gap: 18px;align-self: stretch;color:#393939;font-size: 16px;font-weight: 400;"
|
|
961
854
|
>
|
|
962
855
|
<div style="font-weight: 700;">訂購人資訊</div>
|
|
963
856
|
${(() => {
|
|
964
|
-
// viewModel.searchData.orderData.customer_info
|
|
965
857
|
return [
|
|
966
858
|
['姓名', 'name'],
|
|
967
859
|
['電話', 'phone'],
|
|
@@ -1063,20 +955,19 @@ export class ShoppingReturnOrderManager {
|
|
|
1063
955
|
},
|
|
1064
956
|
divCreate: {
|
|
1065
957
|
class: `d-flex flex-column`,
|
|
1066
|
-
style: `color: #393939;font-size: 16px;font-weight: 700;gap:
|
|
958
|
+
style: `color: #393939;font-size: 16px;font-weight: 700;gap: 12px; `,
|
|
1067
959
|
},
|
|
1068
960
|
})}
|
|
1069
|
-
|
|
1070
|
-
<div style="margin-top: 12px;">退款銀行帳號</div>
|
|
961
|
+
<div class="tx_700">退款銀行帳號</div>
|
|
1071
962
|
${gvc.bindView({
|
|
1072
963
|
bind: 'return_Info',
|
|
1073
964
|
view: () => {
|
|
1074
965
|
let dateArray: string[][] = [
|
|
1075
|
-
['
|
|
1076
|
-
['
|
|
1077
|
-
['
|
|
1078
|
-
['
|
|
1079
|
-
['
|
|
966
|
+
['銀行代碼', 'bankCode'],
|
|
967
|
+
['銀行名稱', 'bankName'],
|
|
968
|
+
['銀行分行', 'bankBranch'],
|
|
969
|
+
['銀行戶名', 'bankAccountName'],
|
|
970
|
+
['銀行帳號', 'bankAccountNumber'],
|
|
1080
971
|
];
|
|
1081
972
|
|
|
1082
973
|
orderData.orderData.bank_info = orderData.orderData.bank_info ?? {
|
|
@@ -1093,7 +984,6 @@ export class ShoppingReturnOrderManager {
|
|
|
1093
984
|
<div class="d-flex flex-column" style="gap:8px;width: calc(50% - 10px);">
|
|
1094
985
|
<div style="text-align: left;">${data[0]}</div>
|
|
1095
986
|
<input
|
|
1096
|
-
class=" "
|
|
1097
987
|
value="${orderData.orderData.bank_info[data[1]]}"
|
|
1098
988
|
style="display: flex;height: 44px;padding: 11px 12px;align-items: center;gap: 21px;border-radius: 10px;border: 1px solid #DDD;"
|
|
1099
989
|
placeholder=""
|
|
@@ -1155,14 +1045,14 @@ export class ShoppingReturnOrderManager {
|
|
|
1155
1045
|
`);
|
|
1156
1046
|
} catch (e) {
|
|
1157
1047
|
console.error(e);
|
|
1158
|
-
return
|
|
1048
|
+
return '';
|
|
1159
1049
|
}
|
|
1160
1050
|
},
|
|
1161
|
-
divCreate: {},
|
|
1162
1051
|
});
|
|
1163
1052
|
}
|
|
1164
1053
|
|
|
1165
|
-
|
|
1054
|
+
static searchOrder(gvc: GVC, vm: any) {
|
|
1055
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1166
1056
|
let viewModel: any = {
|
|
1167
1057
|
searchOrder: '',
|
|
1168
1058
|
searchData: '',
|
|
@@ -1170,11 +1060,8 @@ export class ShoppingReturnOrderManager {
|
|
|
1170
1060
|
};
|
|
1171
1061
|
let checkList: any[] = [];
|
|
1172
1062
|
let rebate = 0;
|
|
1173
|
-
let rebateOverflow = false;
|
|
1174
|
-
let rebateLoading = false;
|
|
1175
1063
|
let detailShow = false;
|
|
1176
1064
|
let detail2Show = false;
|
|
1177
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
1178
1065
|
|
|
1179
1066
|
return BgWidget.container(html`
|
|
1180
1067
|
<div class="title-container">
|
|
@@ -1188,7 +1075,7 @@ export class ShoppingReturnOrderManager {
|
|
|
1188
1075
|
<div style="margin-top: 24px;"></div>
|
|
1189
1076
|
${BgWidget.mainCard(html`
|
|
1190
1077
|
<div
|
|
1191
|
-
style="display: flex;padding:
|
|
1078
|
+
style="display: flex;padding: 4px;flex-direction: column;align-items: flex-start;gap: 12px;align-self: stretch;"
|
|
1192
1079
|
>
|
|
1193
1080
|
<div style="font-size: 16px;font-weight: 700;">訂單編號*</div>
|
|
1194
1081
|
<input
|
|
@@ -1199,9 +1086,9 @@ export class ShoppingReturnOrderManager {
|
|
|
1199
1086
|
viewModel.searchOrder = e.value;
|
|
1200
1087
|
})}"
|
|
1201
1088
|
/>
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1089
|
+
${BgWidget.grayButton(
|
|
1090
|
+
'查詢訂單',
|
|
1091
|
+
gvc.event(() => {
|
|
1205
1092
|
if (viewModel.searchOrder == '') {
|
|
1206
1093
|
return;
|
|
1207
1094
|
}
|
|
@@ -1210,25 +1097,21 @@ export class ShoppingReturnOrderManager {
|
|
|
1210
1097
|
limit: 100,
|
|
1211
1098
|
search: viewModel.searchOrder,
|
|
1212
1099
|
searchType: 'cart_token',
|
|
1213
|
-
archived:
|
|
1100
|
+
archived: 'false',
|
|
1214
1101
|
returnSearch: 'true',
|
|
1215
|
-
}).then(
|
|
1216
|
-
if (
|
|
1102
|
+
}).then(r => {
|
|
1103
|
+
if (!r.result) {
|
|
1217
1104
|
viewModel.errorReport = '查無此訂單';
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
|
-
viewModel.searchData = response.response;
|
|
1105
|
+
} else if (r.response.orderData.lineItems.length > 0) {
|
|
1106
|
+
viewModel.searchData = r.response;
|
|
1221
1107
|
} else {
|
|
1222
1108
|
viewModel.errorReport = '此訂單已無商品可退貨';
|
|
1223
1109
|
}
|
|
1224
1110
|
|
|
1225
1111
|
gvc.notifyDataChange(['notFind', 'orderDetail']);
|
|
1226
1112
|
});
|
|
1227
|
-
})
|
|
1228
|
-
|
|
1229
|
-
查詢訂單
|
|
1230
|
-
</div>
|
|
1231
|
-
|
|
1113
|
+
})
|
|
1114
|
+
)}
|
|
1232
1115
|
${gvc.bindView({
|
|
1233
1116
|
bind: 'notFind',
|
|
1234
1117
|
view: () => {
|
|
@@ -1241,7 +1124,7 @@ export class ShoppingReturnOrderManager {
|
|
|
1241
1124
|
</div>
|
|
1242
1125
|
`;
|
|
1243
1126
|
}
|
|
1244
|
-
return
|
|
1127
|
+
return '';
|
|
1245
1128
|
},
|
|
1246
1129
|
divCreate: { style: `width:100%` },
|
|
1247
1130
|
})}
|
|
@@ -1255,11 +1138,12 @@ export class ShoppingReturnOrderManager {
|
|
|
1255
1138
|
let orderData = viewModel.searchData.orderData;
|
|
1256
1139
|
let lineItems = orderData.lineItems;
|
|
1257
1140
|
let origShipment = orderData.shipment_fee;
|
|
1141
|
+
|
|
1258
1142
|
ApiUser.getUserRebate({ email: orderData.customer_info.email }).then(r => {
|
|
1259
1143
|
rebate = r.response.data.point;
|
|
1260
|
-
rebateLoading = true;
|
|
1261
1144
|
gvc.notifyDataChange(['inputRebate', 'inputReturn']);
|
|
1262
1145
|
});
|
|
1146
|
+
|
|
1263
1147
|
return html`
|
|
1264
1148
|
<div style="display: flex;flex-direction: column;gap: 24px">
|
|
1265
1149
|
${BgWidget.mainCard(html`
|
|
@@ -1361,23 +1245,10 @@ export class ShoppingReturnOrderManager {
|
|
|
1361
1245
|
<img style="width: 54px;height: 54px;" src="${data.preview_image}" />
|
|
1362
1246
|
<div class="d-flex justify-content-center flex-column" style="gap: 4px;">
|
|
1363
1247
|
<div style="color:#393939;font-weight: 400;">${data.title}</div>
|
|
1364
|
-
<div class="d-flex
|
|
1248
|
+
<div class="d-flex" style="gap:4px;">
|
|
1365
1249
|
${(() => {
|
|
1366
1250
|
data.return_count = data.return_count ?? data.count;
|
|
1367
1251
|
|
|
1368
|
-
function isBlankString(input: any): boolean {
|
|
1369
|
-
if (
|
|
1370
|
-
input === null ||
|
|
1371
|
-
input === undefined ||
|
|
1372
|
-
input === '' ||
|
|
1373
|
-
input.length == 0
|
|
1374
|
-
) {
|
|
1375
|
-
return true;
|
|
1376
|
-
}
|
|
1377
|
-
//檢查空白跟tab
|
|
1378
|
-
return /^\s*$/.test(input);
|
|
1379
|
-
}
|
|
1380
|
-
|
|
1381
1252
|
if (data.spec.length == 0 || isBlankString(data.spec[0])) {
|
|
1382
1253
|
return html`
|
|
1383
1254
|
<div
|
|
@@ -1410,7 +1281,7 @@ export class ShoppingReturnOrderManager {
|
|
|
1410
1281
|
<select
|
|
1411
1282
|
class="form-select"
|
|
1412
1283
|
style="width:80%;padding: 9px 18px;border-radius: 10px;border: 1px solid #DDD;"
|
|
1413
|
-
${data.select ?
|
|
1284
|
+
${data.select ? '' : `disabled`}
|
|
1414
1285
|
onchange="${gvc.event(e => {
|
|
1415
1286
|
data.return_reason = e.value;
|
|
1416
1287
|
gvc.notifyDataChange([`lineItem${index}`, 'checkout']);
|
|
@@ -1455,12 +1326,12 @@ export class ShoppingReturnOrderManager {
|
|
|
1455
1326
|
<input
|
|
1456
1327
|
type="number"
|
|
1457
1328
|
style="text-align: center;width:94px;border-radius: 10px;border: 1px solid #DDD;display: flex;padding: 9px 18px;${data.select
|
|
1458
|
-
?
|
|
1329
|
+
? ''
|
|
1459
1330
|
: `text-decoration-line: strikethrough;`}"
|
|
1460
1331
|
value="${data.return_count ?? data.count}"
|
|
1461
1332
|
min="0"
|
|
1462
1333
|
max="${data.count}"
|
|
1463
|
-
${data.select ?
|
|
1334
|
+
${data.select ? '' : `disabled`}
|
|
1464
1335
|
onchange="${gvc.event(e => {
|
|
1465
1336
|
e.value = e.value > data.count ? data.count : e.value;
|
|
1466
1337
|
e.value = e.value < 0 ? 0 : e.value;
|
|
@@ -1473,12 +1344,12 @@ export class ShoppingReturnOrderManager {
|
|
|
1473
1344
|
<input
|
|
1474
1345
|
type="number"
|
|
1475
1346
|
style="text-align: center;width:94px;border-radius: 10px;border: 1px solid #DDD;display: flex;padding: 9px 18px;${data.select
|
|
1476
|
-
?
|
|
1347
|
+
? ''
|
|
1477
1348
|
: `text-decoration-line: strikethrough;`}"
|
|
1478
1349
|
value="${data.return_stock ?? 0}"
|
|
1479
1350
|
max=${data.return_count}
|
|
1480
1351
|
min="0"
|
|
1481
|
-
${data.select ?
|
|
1352
|
+
${data.select ? '' : `disabled`}
|
|
1482
1353
|
onchange="${gvc.event(e => {
|
|
1483
1354
|
e.value = e.value > data.return_count ? e.value : data.return_count;
|
|
1484
1355
|
e.value = e.value < 0 ? 0 : e.value;
|
|
@@ -1581,23 +1452,10 @@ export class ShoppingReturnOrderManager {
|
|
|
1581
1452
|
>
|
|
1582
1453
|
${data.title}
|
|
1583
1454
|
</div>
|
|
1584
|
-
<div class="d-flex
|
|
1455
|
+
<div class="d-flex" style="gap:4px;">
|
|
1585
1456
|
${(() => {
|
|
1586
1457
|
data.return_count = data.return_count ?? data.count;
|
|
1587
1458
|
|
|
1588
|
-
function isBlankString(input: any): boolean {
|
|
1589
|
-
if (
|
|
1590
|
-
input === null ||
|
|
1591
|
-
input === undefined ||
|
|
1592
|
-
input === '' ||
|
|
1593
|
-
input.length == 0
|
|
1594
|
-
) {
|
|
1595
|
-
return true;
|
|
1596
|
-
}
|
|
1597
|
-
//檢查空白跟tab
|
|
1598
|
-
return /^\s*$/.test(input);
|
|
1599
|
-
}
|
|
1600
|
-
|
|
1601
1459
|
if (data.spec.length == 0 || isBlankString(data.spec[0])) {
|
|
1602
1460
|
return html`
|
|
1603
1461
|
<div
|
|
@@ -1658,7 +1516,9 @@ export class ShoppingReturnOrderManager {
|
|
|
1658
1516
|
return html`
|
|
1659
1517
|
<div class="d-flex" style="gap: 24px;">
|
|
1660
1518
|
<div style="font-size: 16px;font-weight: 400;">${data[0]}</div>
|
|
1661
|
-
<div style="width:158px;text-align: right;"
|
|
1519
|
+
<div style="width:158px;text-align: right;">
|
|
1520
|
+
$ ${Number(data[1]).toLocaleString()}
|
|
1521
|
+
</div>
|
|
1662
1522
|
</div>
|
|
1663
1523
|
`;
|
|
1664
1524
|
})
|
|
@@ -1683,7 +1543,7 @@ export class ShoppingReturnOrderManager {
|
|
|
1683
1543
|
<div style="text-align: right;">${item[0]}</div>
|
|
1684
1544
|
</div>
|
|
1685
1545
|
|
|
1686
|
-
<div class="d-flex
|
|
1546
|
+
<div class="d-flex" style="width: 112px;height: 100%">
|
|
1687
1547
|
<div
|
|
1688
1548
|
style="text-align: right;width: 112px;color: #4D86DB;text-decoration-line: underline;cursor: pointer"
|
|
1689
1549
|
onclick="${gvc.event(() => {
|
|
@@ -1700,7 +1560,9 @@ export class ShoppingReturnOrderManager {
|
|
|
1700
1560
|
})()}
|
|
1701
1561
|
<div class="d-flex" style="gap: 24px;color:#393939;font-size: 16px;font-weight: 700;">
|
|
1702
1562
|
<div>退款總金額</div>
|
|
1703
|
-
<div style="width:158px;text-align: right;"
|
|
1563
|
+
<div style="width:158px;text-align: right;">
|
|
1564
|
+
$ ${Number(orderData.return_inf.subTotal).toLocaleString()}
|
|
1565
|
+
</div>
|
|
1704
1566
|
</div>
|
|
1705
1567
|
`;
|
|
1706
1568
|
},
|
|
@@ -1746,7 +1608,6 @@ export class ShoppingReturnOrderManager {
|
|
|
1746
1608
|
orderData.rebateChange = rebateDiff;
|
|
1747
1609
|
if (rebate + rebateDiff < 0) {
|
|
1748
1610
|
orderData.rebateChange = -rebate;
|
|
1749
|
-
rebateOverflow = true;
|
|
1750
1611
|
}
|
|
1751
1612
|
return html`
|
|
1752
1613
|
<div style="font-weight: 700;margin-bottom: 12px;">持有購物金</div>
|
|
@@ -1767,7 +1628,7 @@ export class ShoppingReturnOrderManager {
|
|
|
1767
1628
|
bind: 'rebateHint',
|
|
1768
1629
|
view: () => {
|
|
1769
1630
|
if (rebate + rebateDiff >= 0) {
|
|
1770
|
-
return
|
|
1631
|
+
return '';
|
|
1771
1632
|
}
|
|
1772
1633
|
|
|
1773
1634
|
return html` <div class="d-flex align-items-center" style="margin-top: 8px;">
|
|
@@ -1798,7 +1659,7 @@ export class ShoppingReturnOrderManager {
|
|
|
1798
1659
|
bind: 'rebateHintDetail',
|
|
1799
1660
|
view: () => {
|
|
1800
1661
|
if (!detailShow) {
|
|
1801
|
-
return
|
|
1662
|
+
return '';
|
|
1802
1663
|
}
|
|
1803
1664
|
return html`
|
|
1804
1665
|
<div
|
|
@@ -1835,14 +1696,13 @@ export class ShoppingReturnOrderManager {
|
|
|
1835
1696
|
color: #fff;
|
|
1836
1697
|
font-size: 16px;
|
|
1837
1698
|
font-weight: 400;
|
|
1838
|
-
${!detailShow ? `display:none;` :
|
|
1699
|
+
${!detailShow ? `display:none;` : ''}
|
|
1839
1700
|
`,
|
|
1840
1701
|
},
|
|
1841
1702
|
})}
|
|
1842
1703
|
</div>
|
|
1843
1704
|
</div>`;
|
|
1844
1705
|
},
|
|
1845
|
-
divCreate: {},
|
|
1846
1706
|
})}
|
|
1847
1707
|
`;
|
|
1848
1708
|
},
|
|
@@ -1993,12 +1853,19 @@ ${orderData?.return_order_remark ?? ''}</textarea
|
|
|
1993
1853
|
</div>
|
|
1994
1854
|
`;
|
|
1995
1855
|
}
|
|
1996
|
-
return
|
|
1856
|
+
return '';
|
|
1997
1857
|
},
|
|
1998
|
-
divCreate: {},
|
|
1999
1858
|
})}
|
|
2000
1859
|
`);
|
|
2001
1860
|
}
|
|
2002
1861
|
}
|
|
2003
1862
|
|
|
1863
|
+
// 檢查空白跟tab
|
|
1864
|
+
function isBlankString(input: any): boolean {
|
|
1865
|
+
if (input === null || input === undefined || input === '' || input.length == 0) {
|
|
1866
|
+
return true;
|
|
1867
|
+
}
|
|
1868
|
+
return /^\s*$/.test(input);
|
|
1869
|
+
}
|
|
1870
|
+
|
|
2004
1871
|
(window as any).glitter.setModule(import.meta.url, ShoppingReturnOrderManager);
|