ts-glitter 21.9.0 → 21.9.2
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 +6 -1
- package/lowcode/Entry.ts +6 -1
- package/lowcode/cms-plugin/filter-options.js +1 -1
- package/lowcode/cms-plugin/filter-options.ts +1 -1
- package/lowcode/cms-plugin/model/order.d.ts +62 -21
- package/lowcode/cms-plugin/module/data.js +7 -0
- package/lowcode/cms-plugin/module/data.ts +7 -189
- package/lowcode/cms-plugin/module/delivery-html.ts +1 -2
- package/lowcode/cms-plugin/module/order-setting.js +90 -60
- package/lowcode/cms-plugin/module/order-setting.ts +110 -77
- package/lowcode/cms-plugin/shopping-order-manager.js +152 -81
- package/lowcode/cms-plugin/shopping-order-manager.ts +165 -85
- package/lowcode/css/editor.css +1 -1
- package/lowcode/public-components/checkout/index.js +38 -33
- package/lowcode/public-components/checkout/index.ts +37 -34
- package/package.json +1 -1
- package/src/api-public/services/data-analyze.d.ts +1 -1
- 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 +5 -4
|
@@ -47,6 +47,7 @@ export class OrderSetting {
|
|
|
47
47
|
{ title: '部分付款', value: '3' },
|
|
48
48
|
{ title: '待核款 / 貨到付款 / 未付款', value: '0' },
|
|
49
49
|
{ title: '已退款', value: '-2' },
|
|
50
|
+
{ title: '付款失敗', value: '-1' },
|
|
50
51
|
].map(item => {
|
|
51
52
|
return {
|
|
52
53
|
key: item.value,
|
|
@@ -1132,6 +1133,43 @@ export class OrderSetting {
|
|
|
1132
1133
|
});
|
|
1133
1134
|
}, 'combineOrders');
|
|
1134
1135
|
}
|
|
1136
|
+
static allEditDialog(data) {
|
|
1137
|
+
const gvc = data.gvc;
|
|
1138
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1139
|
+
const defaultValue = '';
|
|
1140
|
+
let temp = '';
|
|
1141
|
+
BgWidget.settingDialog({
|
|
1142
|
+
gvc: gvc,
|
|
1143
|
+
title: data.title,
|
|
1144
|
+
innerHTML: (innerGVC) => {
|
|
1145
|
+
return html ` <div>
|
|
1146
|
+
<div class="tx_700 mb-2">更改為</div>
|
|
1147
|
+
${BgWidget.select({
|
|
1148
|
+
gvc: innerGVC,
|
|
1149
|
+
callback: (value) => {
|
|
1150
|
+
temp = value;
|
|
1151
|
+
},
|
|
1152
|
+
default: defaultValue,
|
|
1153
|
+
options: [{ key: '', value: '請選擇狀態' }, ...data.options],
|
|
1154
|
+
})}
|
|
1155
|
+
</div>`;
|
|
1156
|
+
},
|
|
1157
|
+
footer_html: (footerGVC) => {
|
|
1158
|
+
return [
|
|
1159
|
+
BgWidget.cancel(footerGVC.event(() => footerGVC.closeDialog()), '取消'),
|
|
1160
|
+
BgWidget.save(footerGVC.event(() => {
|
|
1161
|
+
if (temp === defaultValue) {
|
|
1162
|
+
dialog.infoMessage({ text: '請選擇欲更改的選項' });
|
|
1163
|
+
return;
|
|
1164
|
+
}
|
|
1165
|
+
footerGVC.closeDialog();
|
|
1166
|
+
data.callback(temp);
|
|
1167
|
+
}), '儲存'),
|
|
1168
|
+
].join('');
|
|
1169
|
+
},
|
|
1170
|
+
width: 350,
|
|
1171
|
+
});
|
|
1172
|
+
}
|
|
1135
1173
|
static batchEditOrders(obj) {
|
|
1136
1174
|
const wp = window.parent;
|
|
1137
1175
|
const topGVC = wp.glitter.pageConfig[wp.glitter.pageConfig.length - 1].gvc;
|
|
@@ -1241,8 +1279,23 @@ export class OrderSetting {
|
|
|
1241
1279
|
dd.status = value;
|
|
1242
1280
|
},
|
|
1243
1281
|
default: `${dd.status || 0}`,
|
|
1244
|
-
options:
|
|
1245
|
-
|
|
1282
|
+
options: (() => {
|
|
1283
|
+
const paymentOptions = OrderSetting.getPaymentStatusOpt();
|
|
1284
|
+
const unpayOption = paymentOptions.find(item => item.key === '0');
|
|
1285
|
+
if (unpayOption) {
|
|
1286
|
+
if (dd.orderData.proof_purchase) {
|
|
1287
|
+
unpayOption.value = '待核款';
|
|
1288
|
+
}
|
|
1289
|
+
else if (dd.orderData.customer_info.payment_select == 'cash_on_delivery') {
|
|
1290
|
+
unpayOption.value = '貨到付款';
|
|
1291
|
+
}
|
|
1292
|
+
else {
|
|
1293
|
+
unpayOption.value = '未付款';
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
return paymentOptions;
|
|
1297
|
+
})(),
|
|
1298
|
+
style: 'min-width: 150px;',
|
|
1246
1299
|
}),
|
|
1247
1300
|
},
|
|
1248
1301
|
{
|
|
@@ -1319,7 +1372,7 @@ export class OrderSetting {
|
|
|
1319
1372
|
return html ` <div class="d-flex align-items-center gap-2">${htmlArray.join('')}</div>`;
|
|
1320
1373
|
},
|
|
1321
1374
|
divCreate: {
|
|
1322
|
-
style: 'min-width:
|
|
1375
|
+
style: 'min-width: 620px;',
|
|
1323
1376
|
},
|
|
1324
1377
|
};
|
|
1325
1378
|
})()),
|
|
@@ -1327,42 +1380,6 @@ export class OrderSetting {
|
|
|
1327
1380
|
];
|
|
1328
1381
|
});
|
|
1329
1382
|
}
|
|
1330
|
-
function allEditDialog(data) {
|
|
1331
|
-
const defaultValue = '';
|
|
1332
|
-
let temp = '';
|
|
1333
|
-
BgWidget.settingDialog({
|
|
1334
|
-
gvc: gvc,
|
|
1335
|
-
title: data.title,
|
|
1336
|
-
innerHTML: (innerGVC) => {
|
|
1337
|
-
return html ` <div>
|
|
1338
|
-
<div class="tx_700 mb-2">更改為</div>
|
|
1339
|
-
${BgWidget.select({
|
|
1340
|
-
gvc: innerGVC,
|
|
1341
|
-
callback: (value) => {
|
|
1342
|
-
temp = value;
|
|
1343
|
-
},
|
|
1344
|
-
default: defaultValue,
|
|
1345
|
-
options: [{ key: '', value: '請選擇狀態' }, ...data.options],
|
|
1346
|
-
})}
|
|
1347
|
-
</div>`;
|
|
1348
|
-
},
|
|
1349
|
-
footer_html: (footerGVC) => {
|
|
1350
|
-
return [
|
|
1351
|
-
BgWidget.cancel(footerGVC.event(() => footerGVC.closeDialog()), '取消'),
|
|
1352
|
-
BgWidget.save(footerGVC.event(() => {
|
|
1353
|
-
if (temp === defaultValue) {
|
|
1354
|
-
dialog.infoMessage({ text: '請選擇欲更改的選項' });
|
|
1355
|
-
return;
|
|
1356
|
-
}
|
|
1357
|
-
footerGVC.closeDialog();
|
|
1358
|
-
data.callback(temp);
|
|
1359
|
-
gvc.notifyDataChange(vm.id);
|
|
1360
|
-
}), '儲存'),
|
|
1361
|
-
].join('');
|
|
1362
|
-
},
|
|
1363
|
-
width: 350,
|
|
1364
|
-
});
|
|
1365
|
-
}
|
|
1366
1383
|
function editOrderView() {
|
|
1367
1384
|
return BgWidget.tableV3({
|
|
1368
1385
|
gvc,
|
|
@@ -1370,13 +1387,15 @@ export class OrderSetting {
|
|
|
1370
1387
|
{
|
|
1371
1388
|
name: '更改付款狀態',
|
|
1372
1389
|
event: (checkArray) => {
|
|
1373
|
-
allEditDialog({
|
|
1390
|
+
OrderSetting.allEditDialog({
|
|
1391
|
+
gvc,
|
|
1374
1392
|
title: '批量更改付款狀態',
|
|
1375
1393
|
options: OrderSetting.getPaymentStatusOpt(),
|
|
1376
1394
|
callback: (value) => {
|
|
1377
1395
|
checkArray.forEach((order) => {
|
|
1378
1396
|
order.status = Number(value);
|
|
1379
1397
|
});
|
|
1398
|
+
gvc.notifyDataChange(vm.id);
|
|
1380
1399
|
},
|
|
1381
1400
|
});
|
|
1382
1401
|
},
|
|
@@ -1384,7 +1403,8 @@ export class OrderSetting {
|
|
|
1384
1403
|
{
|
|
1385
1404
|
name: '更改出貨狀態',
|
|
1386
1405
|
event: (checkArray) => {
|
|
1387
|
-
allEditDialog({
|
|
1406
|
+
OrderSetting.allEditDialog({
|
|
1407
|
+
gvc,
|
|
1388
1408
|
title: '批量更改出貨狀態',
|
|
1389
1409
|
options: OrderSetting.getShippmentOpt(),
|
|
1390
1410
|
callback: (value) => {
|
|
@@ -1394,6 +1414,7 @@ export class OrderSetting {
|
|
|
1394
1414
|
order.orderData.user_info.shipment_number = '';
|
|
1395
1415
|
}
|
|
1396
1416
|
});
|
|
1417
|
+
gvc.notifyDataChange(vm.id);
|
|
1397
1418
|
},
|
|
1398
1419
|
});
|
|
1399
1420
|
},
|
|
@@ -1401,13 +1422,15 @@ export class OrderSetting {
|
|
|
1401
1422
|
{
|
|
1402
1423
|
name: '更改訂單狀態',
|
|
1403
1424
|
event: (checkArray) => {
|
|
1404
|
-
allEditDialog({
|
|
1425
|
+
OrderSetting.allEditDialog({
|
|
1426
|
+
gvc,
|
|
1405
1427
|
title: '批量更改訂單狀態',
|
|
1406
1428
|
options: OrderSetting.getOrderStatusOpt(),
|
|
1407
1429
|
callback: (value) => {
|
|
1408
1430
|
checkArray.forEach((order) => {
|
|
1409
1431
|
order.orderData.orderStatus = value;
|
|
1410
1432
|
});
|
|
1433
|
+
gvc.notifyDataChange(vm.id);
|
|
1411
1434
|
},
|
|
1412
1435
|
});
|
|
1413
1436
|
},
|
|
@@ -1467,25 +1490,11 @@ export class OrderSetting {
|
|
|
1467
1490
|
<div class="w-100 d-flex justify-content-end" style="padding: 14px 16px; gap: 14px;">
|
|
1468
1491
|
${BgWidget.cancel(gvc.event(() => closeEvent()))}
|
|
1469
1492
|
${BgWidget.save(gvc.event(() => {
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
['arrived', 'finish', 'shipping', 'in_stock'].includes(order.orderData.progress) &&
|
|
1475
|
-
!order.orderData.user_info.shipment_number) {
|
|
1476
|
-
dialog.errorMessage({
|
|
1477
|
-
text: `訂單編號 #${order.cart_token} 未輸入出貨單號碼`,
|
|
1478
|
-
});
|
|
1479
|
-
return;
|
|
1480
|
-
}
|
|
1493
|
+
const verify = this.batchUpdateOrderVerify(gvc, cloneOrders, vm.orders);
|
|
1494
|
+
if (verify) {
|
|
1495
|
+
obj.callback(vm.orders);
|
|
1496
|
+
topGVC.glitter.closeDiaLog();
|
|
1481
1497
|
}
|
|
1482
|
-
vm.orders.forEach((order) => {
|
|
1483
|
-
if (order.orderData.progress === 'in_stock') {
|
|
1484
|
-
order.orderData.progress = 'wait';
|
|
1485
|
-
}
|
|
1486
|
-
});
|
|
1487
|
-
obj.callback(vm.orders);
|
|
1488
|
-
topGVC.glitter.closeDiaLog();
|
|
1489
1498
|
}))}
|
|
1490
1499
|
</div>
|
|
1491
1500
|
</div>
|
|
@@ -1494,6 +1503,27 @@ export class OrderSetting {
|
|
|
1494
1503
|
});
|
|
1495
1504
|
}, 'batchEditOrders');
|
|
1496
1505
|
}
|
|
1506
|
+
static batchUpdateOrderVerify(gvc, cloneOrders, updateOrders) {
|
|
1507
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1508
|
+
for (let i = 0; i < updateOrders.length; i++) {
|
|
1509
|
+
const order = updateOrders[i];
|
|
1510
|
+
const cloneOrder = cloneOrders[i];
|
|
1511
|
+
if (['wait', 'returns', undefined].includes(cloneOrder.orderData.progress) &&
|
|
1512
|
+
['arrived', 'finish', 'shipping', 'in_stock'].includes(order.orderData.progress) &&
|
|
1513
|
+
!order.orderData.user_info.shipment_number) {
|
|
1514
|
+
dialog.errorMessage({
|
|
1515
|
+
text: `訂單編號 #${order.cart_token} 未輸入出貨單號碼`,
|
|
1516
|
+
});
|
|
1517
|
+
return false;
|
|
1518
|
+
}
|
|
1519
|
+
}
|
|
1520
|
+
updateOrders.forEach((order) => {
|
|
1521
|
+
if (order.orderData.progress === 'in_stock') {
|
|
1522
|
+
order.orderData.progress = 'wait';
|
|
1523
|
+
}
|
|
1524
|
+
});
|
|
1525
|
+
return true;
|
|
1526
|
+
}
|
|
1497
1527
|
static splitOrder(topGVC, origOrderData, callback) {
|
|
1498
1528
|
var _a, _b;
|
|
1499
1529
|
const orderData = structuredClone(origOrderData);
|
|
@@ -4,7 +4,7 @@ import { ApiUser } from '../../glitter-base/route/user.js';
|
|
|
4
4
|
import { ApiShop } from '../../glitter-base/route/shopping.js';
|
|
5
5
|
import { ShareDialog } from '../../glitterBundle/dialog/ShareDialog.js';
|
|
6
6
|
import { Tool } from '../../modules/tool.js';
|
|
7
|
-
import {
|
|
7
|
+
import { OrderDetail } from './data.js';
|
|
8
8
|
import { EditorElem } from '../../glitterBundle/plugins/editor-elem.js';
|
|
9
9
|
import { ShipmentConfig } from '../../glitter-base/global/shipment-config.js';
|
|
10
10
|
import { PaymentConfig } from '../../glitter-base/global/payment-config.js';
|
|
@@ -83,6 +83,7 @@ export class OrderSetting {
|
|
|
83
83
|
{ title: '部分付款', value: '3' },
|
|
84
84
|
{ title: '待核款 / 貨到付款 / 未付款', value: '0' },
|
|
85
85
|
{ title: '已退款', value: '-2' },
|
|
86
|
+
{ title: '付款失敗', value: '-1' },
|
|
86
87
|
].map(item => {
|
|
87
88
|
return {
|
|
88
89
|
key: item.value,
|
|
@@ -1300,6 +1301,51 @@ export class OrderSetting {
|
|
|
1300
1301
|
}, 'combineOrders');
|
|
1301
1302
|
}
|
|
1302
1303
|
|
|
1304
|
+
static allEditDialog(data: { gvc: GVC; title: string; options: OptionsItem[]; callback: (value: any) => void }) {
|
|
1305
|
+
const gvc = data.gvc;
|
|
1306
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1307
|
+
const defaultValue = '';
|
|
1308
|
+
let temp = '';
|
|
1309
|
+
|
|
1310
|
+
BgWidget.settingDialog({
|
|
1311
|
+
gvc: gvc,
|
|
1312
|
+
title: data.title,
|
|
1313
|
+
innerHTML: (innerGVC: GVC) => {
|
|
1314
|
+
return html` <div>
|
|
1315
|
+
<div class="tx_700 mb-2">更改為</div>
|
|
1316
|
+
${BgWidget.select({
|
|
1317
|
+
gvc: innerGVC,
|
|
1318
|
+
callback: (value: any) => {
|
|
1319
|
+
temp = value;
|
|
1320
|
+
},
|
|
1321
|
+
default: defaultValue,
|
|
1322
|
+
options: [{ key: '', value: '請選擇狀態' }, ...data.options],
|
|
1323
|
+
})}
|
|
1324
|
+
</div>`;
|
|
1325
|
+
},
|
|
1326
|
+
footer_html: (footerGVC: GVC) => {
|
|
1327
|
+
return [
|
|
1328
|
+
BgWidget.cancel(
|
|
1329
|
+
footerGVC.event(() => footerGVC.closeDialog()),
|
|
1330
|
+
'取消'
|
|
1331
|
+
),
|
|
1332
|
+
BgWidget.save(
|
|
1333
|
+
footerGVC.event(() => {
|
|
1334
|
+
if (temp === defaultValue) {
|
|
1335
|
+
dialog.infoMessage({ text: '請選擇欲更改的選項' });
|
|
1336
|
+
return;
|
|
1337
|
+
}
|
|
1338
|
+
footerGVC.closeDialog();
|
|
1339
|
+
data.callback(temp);
|
|
1340
|
+
}),
|
|
1341
|
+
'儲存'
|
|
1342
|
+
),
|
|
1343
|
+
].join('');
|
|
1344
|
+
},
|
|
1345
|
+
width: 350,
|
|
1346
|
+
});
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1303
1349
|
// 大量編輯
|
|
1304
1350
|
static batchEditOrders(obj: { gvc: GVC; orders: any; callback: (orders: any) => void }) {
|
|
1305
1351
|
const wp = window.parent as any;
|
|
@@ -1417,8 +1463,23 @@ export class OrderSetting {
|
|
|
1417
1463
|
dd.status = value;
|
|
1418
1464
|
},
|
|
1419
1465
|
default: `${dd.status || 0}`,
|
|
1420
|
-
options:
|
|
1421
|
-
|
|
1466
|
+
options: (() => {
|
|
1467
|
+
const paymentOptions = OrderSetting.getPaymentStatusOpt();
|
|
1468
|
+
const unpayOption = paymentOptions.find(item => item.key === '0');
|
|
1469
|
+
|
|
1470
|
+
if (unpayOption) {
|
|
1471
|
+
if (dd.orderData.proof_purchase) {
|
|
1472
|
+
unpayOption.value = '待核款';
|
|
1473
|
+
} else if (dd.orderData.customer_info.payment_select == 'cash_on_delivery') {
|
|
1474
|
+
unpayOption.value = '貨到付款';
|
|
1475
|
+
} else {
|
|
1476
|
+
unpayOption.value = '未付款';
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
return paymentOptions;
|
|
1481
|
+
})(),
|
|
1482
|
+
style: 'min-width: 150px;',
|
|
1422
1483
|
}),
|
|
1423
1484
|
},
|
|
1424
1485
|
{
|
|
@@ -1499,7 +1560,7 @@ export class OrderSetting {
|
|
|
1499
1560
|
return html` <div class="d-flex align-items-center gap-2">${htmlArray.join('')}</div>`;
|
|
1500
1561
|
},
|
|
1501
1562
|
divCreate: {
|
|
1502
|
-
style: 'min-width:
|
|
1563
|
+
style: 'min-width: 620px;',
|
|
1503
1564
|
},
|
|
1504
1565
|
};
|
|
1505
1566
|
})()
|
|
@@ -1509,50 +1570,6 @@ export class OrderSetting {
|
|
|
1509
1570
|
});
|
|
1510
1571
|
}
|
|
1511
1572
|
|
|
1512
|
-
function allEditDialog(data: { title: string; options: OptionsItem[]; callback: (value: any) => void }) {
|
|
1513
|
-
const defaultValue = '';
|
|
1514
|
-
let temp = '';
|
|
1515
|
-
|
|
1516
|
-
BgWidget.settingDialog({
|
|
1517
|
-
gvc: gvc,
|
|
1518
|
-
title: data.title,
|
|
1519
|
-
innerHTML: (innerGVC: GVC) => {
|
|
1520
|
-
return html` <div>
|
|
1521
|
-
<div class="tx_700 mb-2">更改為</div>
|
|
1522
|
-
${BgWidget.select({
|
|
1523
|
-
gvc: innerGVC,
|
|
1524
|
-
callback: (value: any) => {
|
|
1525
|
-
temp = value;
|
|
1526
|
-
},
|
|
1527
|
-
default: defaultValue,
|
|
1528
|
-
options: [{ key: '', value: '請選擇狀態' }, ...data.options],
|
|
1529
|
-
})}
|
|
1530
|
-
</div>`;
|
|
1531
|
-
},
|
|
1532
|
-
footer_html: (footerGVC: GVC) => {
|
|
1533
|
-
return [
|
|
1534
|
-
BgWidget.cancel(
|
|
1535
|
-
footerGVC.event(() => footerGVC.closeDialog()),
|
|
1536
|
-
'取消'
|
|
1537
|
-
),
|
|
1538
|
-
BgWidget.save(
|
|
1539
|
-
footerGVC.event(() => {
|
|
1540
|
-
if (temp === defaultValue) {
|
|
1541
|
-
dialog.infoMessage({ text: '請選擇欲更改的選項' });
|
|
1542
|
-
return;
|
|
1543
|
-
}
|
|
1544
|
-
footerGVC.closeDialog();
|
|
1545
|
-
data.callback(temp);
|
|
1546
|
-
gvc.notifyDataChange(vm.id);
|
|
1547
|
-
}),
|
|
1548
|
-
'儲存'
|
|
1549
|
-
),
|
|
1550
|
-
].join('');
|
|
1551
|
-
},
|
|
1552
|
-
width: 350,
|
|
1553
|
-
});
|
|
1554
|
-
}
|
|
1555
|
-
|
|
1556
1573
|
function editOrderView() {
|
|
1557
1574
|
return BgWidget.tableV3({
|
|
1558
1575
|
gvc,
|
|
@@ -1560,13 +1577,15 @@ export class OrderSetting {
|
|
|
1560
1577
|
{
|
|
1561
1578
|
name: '更改付款狀態',
|
|
1562
1579
|
event: (checkArray: any) => {
|
|
1563
|
-
allEditDialog({
|
|
1580
|
+
OrderSetting.allEditDialog({
|
|
1581
|
+
gvc,
|
|
1564
1582
|
title: '批量更改付款狀態',
|
|
1565
1583
|
options: OrderSetting.getPaymentStatusOpt(),
|
|
1566
1584
|
callback: (value: any) => {
|
|
1567
1585
|
checkArray.forEach((order: any) => {
|
|
1568
1586
|
order.status = Number(value);
|
|
1569
1587
|
});
|
|
1588
|
+
gvc.notifyDataChange(vm.id);
|
|
1570
1589
|
},
|
|
1571
1590
|
});
|
|
1572
1591
|
},
|
|
@@ -1574,7 +1593,8 @@ export class OrderSetting {
|
|
|
1574
1593
|
{
|
|
1575
1594
|
name: '更改出貨狀態',
|
|
1576
1595
|
event: (checkArray: any) => {
|
|
1577
|
-
allEditDialog({
|
|
1596
|
+
OrderSetting.allEditDialog({
|
|
1597
|
+
gvc,
|
|
1578
1598
|
title: '批量更改出貨狀態',
|
|
1579
1599
|
options: OrderSetting.getShippmentOpt(),
|
|
1580
1600
|
callback: (value: any) => {
|
|
@@ -1584,6 +1604,7 @@ export class OrderSetting {
|
|
|
1584
1604
|
order.orderData.user_info.shipment_number = '';
|
|
1585
1605
|
}
|
|
1586
1606
|
});
|
|
1607
|
+
gvc.notifyDataChange(vm.id);
|
|
1587
1608
|
},
|
|
1588
1609
|
});
|
|
1589
1610
|
},
|
|
@@ -1591,13 +1612,15 @@ export class OrderSetting {
|
|
|
1591
1612
|
{
|
|
1592
1613
|
name: '更改訂單狀態',
|
|
1593
1614
|
event: (checkArray: any) => {
|
|
1594
|
-
allEditDialog({
|
|
1615
|
+
OrderSetting.allEditDialog({
|
|
1616
|
+
gvc,
|
|
1595
1617
|
title: '批量更改訂單狀態',
|
|
1596
1618
|
options: OrderSetting.getOrderStatusOpt(),
|
|
1597
1619
|
callback: (value: any) => {
|
|
1598
1620
|
checkArray.forEach((order: any) => {
|
|
1599
1621
|
order.orderData.orderStatus = value;
|
|
1600
1622
|
});
|
|
1623
|
+
gvc.notifyDataChange(vm.id);
|
|
1601
1624
|
},
|
|
1602
1625
|
});
|
|
1603
1626
|
},
|
|
@@ -1660,33 +1683,13 @@ export class OrderSetting {
|
|
|
1660
1683
|
${BgWidget.cancel(gvc.event(() => closeEvent()))}
|
|
1661
1684
|
${BgWidget.save(
|
|
1662
1685
|
gvc.event(() => {
|
|
1663
|
-
|
|
1664
|
-
for (let i = 0; i < vm.orders.length; i++) {
|
|
1665
|
-
const order = vm.orders[i];
|
|
1666
|
-
const cloneOrder = cloneOrders[i];
|
|
1667
|
-
|
|
1668
|
-
if (
|
|
1669
|
-
['wait', 'returns', undefined].includes(cloneOrder.orderData.progress) &&
|
|
1670
|
-
['arrived', 'finish', 'shipping', 'in_stock'].includes(order.orderData.progress) &&
|
|
1671
|
-
!order.orderData.user_info.shipment_number
|
|
1672
|
-
) {
|
|
1673
|
-
dialog.errorMessage({
|
|
1674
|
-
text: `訂單編號 #${order.cart_token} 未輸入出貨單號碼`,
|
|
1675
|
-
});
|
|
1676
|
-
return;
|
|
1677
|
-
}
|
|
1678
|
-
}
|
|
1679
|
-
|
|
1680
|
-
// 「備貨中」重新賦值
|
|
1681
|
-
vm.orders.forEach((order: any) => {
|
|
1682
|
-
if (order.orderData.progress === 'in_stock') {
|
|
1683
|
-
order.orderData.progress = 'wait';
|
|
1684
|
-
}
|
|
1685
|
-
});
|
|
1686
|
+
const verify = this.batchUpdateOrderVerify(gvc, cloneOrders, vm.orders);
|
|
1686
1687
|
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1688
|
+
if (verify) {
|
|
1689
|
+
// 觸發更新事件
|
|
1690
|
+
obj.callback(vm.orders);
|
|
1691
|
+
topGVC.glitter.closeDiaLog();
|
|
1692
|
+
}
|
|
1690
1693
|
})
|
|
1691
1694
|
)}
|
|
1692
1695
|
</div>
|
|
@@ -1697,6 +1700,36 @@ export class OrderSetting {
|
|
|
1697
1700
|
}, 'batchEditOrders');
|
|
1698
1701
|
}
|
|
1699
1702
|
|
|
1703
|
+
// 與原訂單的資料做驗證
|
|
1704
|
+
static batchUpdateOrderVerify(gvc: GVC, cloneOrders: Order[], updateOrders: Order[]): Boolean {
|
|
1705
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1706
|
+
|
|
1707
|
+
for (let i = 0; i < updateOrders.length; i++) {
|
|
1708
|
+
const order = updateOrders[i];
|
|
1709
|
+
const cloneOrder = cloneOrders[i];
|
|
1710
|
+
|
|
1711
|
+
if (
|
|
1712
|
+
['wait', 'returns', undefined].includes(cloneOrder.orderData.progress) &&
|
|
1713
|
+
['arrived', 'finish', 'shipping', 'in_stock'].includes(order.orderData.progress) &&
|
|
1714
|
+
!order.orderData.user_info.shipment_number
|
|
1715
|
+
) {
|
|
1716
|
+
dialog.errorMessage({
|
|
1717
|
+
text: `訂單編號 #${order.cart_token} 未輸入出貨單號碼`,
|
|
1718
|
+
});
|
|
1719
|
+
return false;
|
|
1720
|
+
}
|
|
1721
|
+
}
|
|
1722
|
+
|
|
1723
|
+
// 「備貨中」重新賦值
|
|
1724
|
+
updateOrders.forEach((order: any) => {
|
|
1725
|
+
if (order.orderData.progress === 'in_stock') {
|
|
1726
|
+
order.orderData.progress = 'wait';
|
|
1727
|
+
}
|
|
1728
|
+
});
|
|
1729
|
+
|
|
1730
|
+
return true;
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1700
1733
|
// 拆分訂單
|
|
1701
1734
|
static splitOrder(topGVC: GVC, origOrderData: any, callback: () => void) {
|
|
1702
1735
|
//把原本的預設資訊扔進拆分表單內,並且把商品的數量設定為0
|