ts-glitter 21.3.8 → 21.3.9
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-line.js +12 -1
- package/lowcode/backend-manager/bg-line.ts +16 -1
- package/lowcode/backend-manager/bg-notify.js +13 -2
- package/lowcode/backend-manager/bg-notify.ts +17 -2
- package/lowcode/backend-manager/bg-product.js +81 -30
- package/lowcode/backend-manager/bg-product.ts +95 -34
- package/lowcode/backend-manager/bg-recommend.js +109 -141
- package/lowcode/backend-manager/bg-recommend.ts +122 -144
- package/lowcode/backend-manager/bg-sns.js +14 -4
- package/lowcode/backend-manager/bg-sns.ts +18 -4
- package/lowcode/backend-manager/bg-widget.js +176 -12
- package/lowcode/backend-manager/bg-widget.ts +198 -13
- package/lowcode/cms-plugin/auto-fcm-advertise.js +13 -2
- package/lowcode/cms-plugin/auto-fcm-advertise.ts +16 -2
- package/lowcode/cms-plugin/auto-fcm-history.js +13 -2
- package/lowcode/cms-plugin/auto-fcm-history.ts +16 -2
- package/lowcode/cms-plugin/model/order.d.ts +1 -0
- package/lowcode/cms-plugin/module/order-excel.js +18 -2
- package/lowcode/cms-plugin/module/order-excel.ts +20 -9
- package/lowcode/cms-plugin/module/product-setting.js +2 -1
- package/lowcode/cms-plugin/module/product-setting.ts +2 -1
- package/lowcode/cms-plugin/module/user-excel.js +1 -1
- package/lowcode/cms-plugin/module/user-excel.ts +2 -2
- package/lowcode/cms-plugin/pos-pages/payment-page.js +3 -2
- package/lowcode/cms-plugin/pos-pages/payment-page.ts +11 -5
- package/lowcode/cms-plugin/pos-pages/products-page.ts +0 -1
- package/lowcode/cms-plugin/shopping-allowance-manager.js +3 -2
- package/lowcode/cms-plugin/shopping-allowance-manager.ts +3 -2
- package/lowcode/cms-plugin/shopping-discount-setting.js +2 -0
- package/lowcode/cms-plugin/shopping-discount-setting.ts +2 -0
- package/lowcode/cms-plugin/shopping-invoice-manager.js +7 -4
- package/lowcode/cms-plugin/shopping-invoice-manager.ts +12 -11
- package/lowcode/cms-plugin/shopping-order-manager.js +21 -4
- package/lowcode/cms-plugin/shopping-order-manager.ts +30 -11
- package/lowcode/cms-plugin/shopping-product-setting.js +45 -41
- package/lowcode/cms-plugin/shopping-product-setting.ts +55 -48
- package/lowcode/cms-plugin/shopping-rebate.js +52 -46
- package/lowcode/cms-plugin/shopping-rebate.ts +402 -396
- package/lowcode/cms-plugin/shopping-setting-advance.js +6 -6
- package/lowcode/cms-plugin/shopping-setting-advance.ts +7 -7
- package/lowcode/cms-plugin/shopping-setting-basic.js +44 -0
- package/lowcode/cms-plugin/shopping-setting-basic.ts +63 -1
- package/lowcode/cms-plugin/shopping-setting-stock-log.js +57 -0
- package/lowcode/cms-plugin/shopping-setting-stock-log.ts +101 -0
- package/lowcode/cms-plugin/user-list.js +10 -9
- package/lowcode/cms-plugin/user-list.ts +11 -8
- package/lowcode/css/editor.css +1 -1
- package/lowcode/form-view/editor/image-selector.js +83 -82
- package/lowcode/form-view/editor/image-selector.ts +115 -107
- package/lowcode/glitter-base/route/user.js +27 -34
- package/lowcode/glitter-base/route/user.ts +31 -40
- package/lowcode/glitterBundle/dialog/ShareDialog.js +1 -0
- package/lowcode/glitterBundle/dialog/ShareDialog.ts +2 -0
- package/lowcode/glitterBundle/dialog/dialog.js +2 -2
- package/lowcode/glitterBundle/dialog/dialog.ts +2 -2
- package/lowcode/glitterBundle/plugins/editor-elem.js +5 -11
- package/lowcode/glitterBundle/plugins/editor-elem.ts +11 -11
- package/lowcode/modules/image-library.js +836 -486
- package/lowcode/modules/image-library.ts +1760 -1418
- package/lowcode/modules/tool.js +10 -9
- package/lowcode/modules/tool.ts +11 -10
- package/lowcode/public-models/product.ts +13 -0
- package/nxv0ptv53w.json +1 -0
- package/package.json +1 -1
- package/src/api-public/controllers/shop.js +2 -2
- package/src/api-public/controllers/shop.js.map +1 -1
- package/src/api-public/controllers/shop.ts +5 -2
- package/src/api-public/controllers/stock.js +1 -1
- package/src/api-public/controllers/stock.js.map +1 -1
- package/src/api-public/controllers/stock.ts +93 -81
- package/src/api-public/models/glitter-finance.js +2 -1
- package/src/api-public/models/glitter-finance.js.map +1 -1
- package/src/api-public/services/checkout-event.js +1 -0
- package/src/api-public/services/checkout-event.js.map +1 -1
- package/src/api-public/services/checkout-event.ts +2 -2
- package/src/api-public/services/data-analyze.d.ts +1 -1
- package/src/api-public/services/diff-record.d.ts +25 -0
- package/src/api-public/services/diff-record.js +158 -0
- package/src/api-public/services/diff-record.js.map +1 -0
- package/src/api-public/services/diff-record.ts +217 -0
- package/src/api-public/services/ezpay/tool.d.ts +1 -0
- package/src/api-public/services/financial-serviceV2.js +7 -17
- package/src/api-public/services/financial-serviceV2.js.map +1 -1
- package/src/api-public/services/public-table-check.js +25 -7
- package/src/api-public/services/public-table-check.js.map +1 -1
- package/src/api-public/services/public-table-check.ts +53 -31
- package/src/api-public/services/shopping.d.ts +2 -12
- package/src/api-public/services/shopping.js +16 -7
- package/src/api-public/services/shopping.js.map +1 -1
- package/src/api-public/services/shopping.ts +33 -7
- package/src/api-public/services/stock.d.ts +1 -1
- package/src/api-public/services/stock.js +19 -17
- package/src/api-public/services/stock.js.map +1 -1
- package/src/api-public/services/stock.ts +711 -696
- package/src/api-public/services/user.d.ts +1 -1
- package/src/api-public/services/user.js +18 -8
- package/src/api-public/services/user.js.map +1 -1
- package/src/api-public/services/user.ts +34 -27
- package/src/app-project/serverless/src/index.js +7 -17
- package/src/app-project/serverless/src/index.js.map +1 -1
- package/src/app-project/serverless/src/modules/CryptoJS.js +7 -17
- package/src/app-project/serverless/src/modules/CryptoJS.js.map +1 -1
- package/src/app-project/serverless/src/modules/database.d.ts +1 -1
- package/src/app-project/serverless/src/modules/redis.d.ts +1 -1
- package/src/app-project/serverless/src/modules/ssh.js +7 -17
- package/src/app-project/serverless/src/modules/ssh.js.map +1 -1
- package/src/firebase/message.js +2 -1
- package/src/firebase/message.js.map +1 -1
- package/src/helper/app_creater.js +2 -1
- package/src/helper/app_creater.js.map +1 -1
- package/src/helper/glitter-util.d.ts +1 -0
- package/src/index.js +17 -7
- package/src/index.js.map +5 -1
- package/src/lambda/interface.js +2 -2
- package/src/lambda/interface.js.map +1 -1
- package/src/modules/CryptoJS.js +7 -17
- package/src/modules/CryptoJS.js.map +1 -1
- package/src/modules/database.d.ts +1 -1
- package/src/modules/ssh.js +7 -17
- package/src/modules/ssh.js.map +1 -1
- package/src/modules/tool.d.ts +5 -0
- package/src/modules/tool.js +19 -0
- package/src/modules/tool.js.map +1 -1
- package/src/modules/tool.ts +27 -0
- package/src/run.js +2 -1
- package/src/run.js.map +1 -1
- package/src/services/saas-table-check.js +2 -2
- package/src/services/saas-table-check.js.map +1 -1
- package/src/services/ses.js +2 -1
- package/src/services/ses.js.map +1 -1
|
@@ -641,7 +641,6 @@ export class BgSNS {
|
|
|
641
641
|
ApiSns.delete({
|
|
642
642
|
id: vm.data.name,
|
|
643
643
|
}).then(r => {
|
|
644
|
-
console.log('res -- ', r);
|
|
645
644
|
dialog.dataLoading({ visible: false });
|
|
646
645
|
if (r.result) {
|
|
647
646
|
vm.status = 'list';
|
|
@@ -837,7 +836,7 @@ export class BgSNS {
|
|
|
837
836
|
function setUserList() {
|
|
838
837
|
let n = 0;
|
|
839
838
|
postData.userList = [];
|
|
840
|
-
dialog.dataLoading({ visible: true, text: '更新預計寄件人...' });
|
|
839
|
+
dialog.dataLoading({ visible: true, text: '1更新預計寄件人...' });
|
|
841
840
|
new Promise(resolve => {
|
|
842
841
|
const si = setInterval(() => {
|
|
843
842
|
if (postData.tagList.length === n) {
|
|
@@ -869,6 +868,7 @@ export class BgSNS {
|
|
|
869
868
|
page: 0,
|
|
870
869
|
limit: 99999,
|
|
871
870
|
id: tagData.filter.join(','),
|
|
871
|
+
only_id: true,
|
|
872
872
|
}).then(dd => {
|
|
873
873
|
dd.response.data.map((user) => {
|
|
874
874
|
if (user.userData.email && user.userData.email.length > 0 && user.userData.phone) {
|
|
@@ -891,6 +891,7 @@ export class BgSNS {
|
|
|
891
891
|
page: 0,
|
|
892
892
|
limit: 99999,
|
|
893
893
|
group: { type: 'level', tag: id },
|
|
894
|
+
only_id: true,
|
|
894
895
|
}).then(data => {
|
|
895
896
|
data.response.data.map((user) => {
|
|
896
897
|
if (user.userData.email && user.userData.phone) {
|
|
@@ -924,6 +925,7 @@ export class BgSNS {
|
|
|
924
925
|
page: 0,
|
|
925
926
|
limit: 99999,
|
|
926
927
|
group: { type: type },
|
|
928
|
+
only_id: true,
|
|
927
929
|
}).then(data => {
|
|
928
930
|
let dataArray = data.response.data;
|
|
929
931
|
if (data.response.extra) {
|
|
@@ -957,6 +959,7 @@ export class BgSNS {
|
|
|
957
959
|
page: 0,
|
|
958
960
|
limit: 99999,
|
|
959
961
|
filter: { birth: tagData.filter },
|
|
962
|
+
only_id: true,
|
|
960
963
|
}).then(data => {
|
|
961
964
|
data.response.data.map((user) => {
|
|
962
965
|
if (user.userData.email && user.userData.phone) {
|
|
@@ -975,6 +978,7 @@ export class BgSNS {
|
|
|
975
978
|
page: 0,
|
|
976
979
|
limit: 99999,
|
|
977
980
|
filter: { tags: tagData.filter },
|
|
981
|
+
only_id: true,
|
|
978
982
|
}).then(data => {
|
|
979
983
|
data.response.data.map((user) => {
|
|
980
984
|
if (user.userData.email) {
|
|
@@ -995,6 +999,7 @@ export class BgSNS {
|
|
|
995
999
|
page: 0,
|
|
996
1000
|
limit: 99999,
|
|
997
1001
|
filter: { rebate: { key: 'moreThan', value: tagData.filter } },
|
|
1002
|
+
only_id: true,
|
|
998
1003
|
}).then(data => {
|
|
999
1004
|
data.response.data.map((user) => {
|
|
1000
1005
|
if (user.userData.email && user.userData.phone) {
|
|
@@ -1069,11 +1074,15 @@ export class BgSNS {
|
|
|
1069
1074
|
<div style="display:flex; align-items: center; gap: 18px; margin: 8px 0;">
|
|
1070
1075
|
<div class="tx_normal">${postData.userList.length}人</div>
|
|
1071
1076
|
${BgWidget.grayButton('查看名單', gvc.event(() => {
|
|
1077
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1072
1078
|
if (postData.userList.length === 0) {
|
|
1073
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
1074
1079
|
dialog.infoMessage({ text: '目前無預計寄件的顧客' });
|
|
1075
1080
|
return;
|
|
1076
1081
|
}
|
|
1082
|
+
if (postData.userList.length > 500) {
|
|
1083
|
+
dialog.infoMessage({ text: '預覽人數超過500筆,請減少名單人數後再次開啟' });
|
|
1084
|
+
return;
|
|
1085
|
+
}
|
|
1077
1086
|
const userVM = {
|
|
1078
1087
|
dataList: [],
|
|
1079
1088
|
};
|
|
@@ -1089,6 +1098,7 @@ export class BgSNS {
|
|
|
1089
1098
|
page: 0,
|
|
1090
1099
|
limit: 99999,
|
|
1091
1100
|
id: postData.userList.map(user => { var _a; return (_a = user.id) !== null && _a !== void 0 ? _a : 0; }).join(','),
|
|
1101
|
+
only_id: true,
|
|
1092
1102
|
}).then(dd => {
|
|
1093
1103
|
if (dd.response.data) {
|
|
1094
1104
|
userVM.dataList = dd.response.data.map((item) => {
|
|
@@ -1253,8 +1263,8 @@ export class BgSNS {
|
|
|
1253
1263
|
ApiUser.getUserList({
|
|
1254
1264
|
page: 0,
|
|
1255
1265
|
limit: 99999,
|
|
1256
|
-
only_id: true,
|
|
1257
1266
|
search: data.query,
|
|
1267
|
+
only_id: true,
|
|
1258
1268
|
}).then(dd => {
|
|
1259
1269
|
if (dd.response.data) {
|
|
1260
1270
|
vm.dataList = dd.response.data
|
|
@@ -738,7 +738,6 @@ export class BgSNS {
|
|
|
738
738
|
ApiSns.delete({
|
|
739
739
|
id: vm.data.name,
|
|
740
740
|
}).then(r => {
|
|
741
|
-
console.log('res -- ', r);
|
|
742
741
|
dialog.dataLoading({ visible: false });
|
|
743
742
|
if (r.result) {
|
|
744
743
|
vm.status = 'list';
|
|
@@ -939,7 +938,7 @@ export class BgSNS {
|
|
|
939
938
|
function setUserList() {
|
|
940
939
|
let n = 0;
|
|
941
940
|
postData.userList = [];
|
|
942
|
-
dialog.dataLoading({ visible: true, text: '更新預計寄件人...' });
|
|
941
|
+
dialog.dataLoading({ visible: true, text: '1更新預計寄件人...' });
|
|
943
942
|
|
|
944
943
|
new Promise<void>(resolve => {
|
|
945
944
|
const si = setInterval(() => {
|
|
@@ -972,6 +971,7 @@ export class BgSNS {
|
|
|
972
971
|
page: 0,
|
|
973
972
|
limit: 99999,
|
|
974
973
|
id: tagData.filter.join(','),
|
|
974
|
+
only_id: true,
|
|
975
975
|
}).then(dd => {
|
|
976
976
|
dd.response.data.map((user: any) => {
|
|
977
977
|
if (user.userData.email && user.userData.email.length > 0 && user.userData.phone) {
|
|
@@ -994,6 +994,7 @@ export class BgSNS {
|
|
|
994
994
|
page: 0,
|
|
995
995
|
limit: 99999,
|
|
996
996
|
group: { type: 'level', tag: id },
|
|
997
|
+
only_id: true,
|
|
997
998
|
}).then(data => {
|
|
998
999
|
data.response.data.map((user: any) => {
|
|
999
1000
|
if (user.userData.email && user.userData.phone) {
|
|
@@ -1027,6 +1028,7 @@ export class BgSNS {
|
|
|
1027
1028
|
page: 0,
|
|
1028
1029
|
limit: 99999,
|
|
1029
1030
|
group: { type: type },
|
|
1031
|
+
only_id: true,
|
|
1030
1032
|
}).then(data => {
|
|
1031
1033
|
// 加入額外的會員資料,例如有訂閱但未註冊者
|
|
1032
1034
|
let dataArray = data.response.data;
|
|
@@ -1061,6 +1063,7 @@ export class BgSNS {
|
|
|
1061
1063
|
page: 0,
|
|
1062
1064
|
limit: 99999,
|
|
1063
1065
|
filter: { birth: tagData.filter },
|
|
1066
|
+
only_id: true,
|
|
1064
1067
|
}).then(data => {
|
|
1065
1068
|
data.response.data.map((user: any) => {
|
|
1066
1069
|
if (user.userData.email && user.userData.phone) {
|
|
@@ -1079,6 +1082,7 @@ export class BgSNS {
|
|
|
1079
1082
|
page: 0,
|
|
1080
1083
|
limit: 99999,
|
|
1081
1084
|
filter: { tags: tagData.filter },
|
|
1085
|
+
only_id: true,
|
|
1082
1086
|
}).then(data => {
|
|
1083
1087
|
data.response.data.map((user: any) => {
|
|
1084
1088
|
if (user.userData.email) {
|
|
@@ -1099,6 +1103,7 @@ export class BgSNS {
|
|
|
1099
1103
|
page: 0,
|
|
1100
1104
|
limit: 99999,
|
|
1101
1105
|
filter: { rebate: { key: 'moreThan', value: tagData.filter } },
|
|
1106
|
+
only_id: true,
|
|
1102
1107
|
}).then(data => {
|
|
1103
1108
|
data.response.data.map((user: any) => {
|
|
1104
1109
|
if (user.userData.email && user.userData.phone) {
|
|
@@ -1187,14 +1192,22 @@ export class BgSNS {
|
|
|
1187
1192
|
${BgWidget.grayButton(
|
|
1188
1193
|
'查看名單',
|
|
1189
1194
|
gvc.event(() => {
|
|
1195
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1196
|
+
|
|
1190
1197
|
if (postData.userList.length === 0) {
|
|
1191
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
1192
1198
|
dialog.infoMessage({ text: '目前無預計寄件的顧客' });
|
|
1193
1199
|
return;
|
|
1194
1200
|
}
|
|
1201
|
+
|
|
1202
|
+
if (postData.userList.length > 500) {
|
|
1203
|
+
dialog.infoMessage({ text: '預覽人數超過500筆,請減少名單人數後再次開啟' });
|
|
1204
|
+
return;
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1195
1207
|
const userVM = {
|
|
1196
1208
|
dataList: [] as { key: string; value: string; note: string }[],
|
|
1197
1209
|
};
|
|
1210
|
+
|
|
1198
1211
|
BgWidget.selectDropDialog({
|
|
1199
1212
|
gvc: gvc,
|
|
1200
1213
|
title: '預計寄件顧客',
|
|
@@ -1207,6 +1220,7 @@ export class BgSNS {
|
|
|
1207
1220
|
page: 0,
|
|
1208
1221
|
limit: 99999,
|
|
1209
1222
|
id: postData.userList.map(user => user.id ?? 0).join(','),
|
|
1223
|
+
only_id: true,
|
|
1210
1224
|
}).then(dd => {
|
|
1211
1225
|
if (dd.response.data) {
|
|
1212
1226
|
userVM.dataList = dd.response.data.map(
|
|
@@ -1394,8 +1408,8 @@ export class BgSNS {
|
|
|
1394
1408
|
ApiUser.getUserList({
|
|
1395
1409
|
page: 0,
|
|
1396
1410
|
limit: 99999,
|
|
1397
|
-
only_id: true,
|
|
1398
1411
|
search: data.query,
|
|
1412
|
+
only_id: true,
|
|
1399
1413
|
}).then(dd => {
|
|
1400
1414
|
if (dd.response.data) {
|
|
1401
1415
|
vm.dataList = dd.response.data
|
|
@@ -765,7 +765,7 @@ export class BgWidget {
|
|
|
765
765
|
obj.default = e.value;
|
|
766
766
|
obj.oninput && obj.oninput(e.value);
|
|
767
767
|
})}"
|
|
768
|
-
onclick="${obj.gvc.event(
|
|
768
|
+
onclick="${obj.gvc.event(e => {
|
|
769
769
|
obj.onclick && obj.onclick(e);
|
|
770
770
|
})}"
|
|
771
771
|
value="${((_e = obj.default) !== null && _e !== void 0 ? _e : '').replace(/"/g, '"')}"
|
|
@@ -2294,12 +2294,18 @@ ${(_d = obj.default) !== null && _d !== void 0 ? _d : ''}</textarea
|
|
|
2294
2294
|
</div>`
|
|
2295
2295
|
: this.mainCard([
|
|
2296
2296
|
this.searchPlace(gvc.event(e => {
|
|
2297
|
-
search = e.value;
|
|
2297
|
+
search = `${e.value}`.trim();
|
|
2298
2298
|
gvc.notifyDataChange(id);
|
|
2299
2299
|
}), search || '', '搜尋', '0', '0'),
|
|
2300
|
-
this.multiCheckboxContainer(gvc, data.filter(item => item.name.includes(search)), def, stringArray => {
|
|
2301
|
-
def =
|
|
2302
|
-
|
|
2300
|
+
this.multiCheckboxContainer(gvc, data.filter(item => item.name.toLowerCase().includes(search.toLowerCase())), def, stringArray => {
|
|
2301
|
+
def = [
|
|
2302
|
+
...new Set(def
|
|
2303
|
+
.filter(tag => {
|
|
2304
|
+
return !tag.toLowerCase().includes(search.toLowerCase());
|
|
2305
|
+
})
|
|
2306
|
+
.concat(stringArray)),
|
|
2307
|
+
];
|
|
2308
|
+
callback(def);
|
|
2303
2309
|
}, {
|
|
2304
2310
|
single: false,
|
|
2305
2311
|
containerStyle: 'overflow: auto; max-height: 310px;',
|
|
@@ -2929,6 +2935,156 @@ ${(_d = obj.default) !== null && _d !== void 0 ? _d : ''}</textarea
|
|
|
2929
2935
|
/>
|
|
2930
2936
|
</div>`;
|
|
2931
2937
|
}
|
|
2938
|
+
static searchTagsFilter(gvc, def, callback, placeholder, margin) {
|
|
2939
|
+
const id = gvc.glitter.getUUID();
|
|
2940
|
+
let loading = true;
|
|
2941
|
+
let show = false;
|
|
2942
|
+
let tagList = [];
|
|
2943
|
+
let search = '';
|
|
2944
|
+
let selectTags = def || [];
|
|
2945
|
+
return gvc.bindView({
|
|
2946
|
+
bind: id,
|
|
2947
|
+
view: () => {
|
|
2948
|
+
if (loading) {
|
|
2949
|
+
return '';
|
|
2950
|
+
}
|
|
2951
|
+
if (show) {
|
|
2952
|
+
return html `<div
|
|
2953
|
+
style="margin-top: 1px;border: 8px solid #fff; outline: 1px solid #aeaeae; height: 300px; width: 100%; border-radius: 5px; position: absolute; top: 0; background-color: #fff; border-radius: 5px; overflow: auto;"
|
|
2954
|
+
>
|
|
2955
|
+
<div class="position-relative">
|
|
2956
|
+
<div
|
|
2957
|
+
class="w-100 d-flex align-items-center gap-1 position-sticky mb-1"
|
|
2958
|
+
style="top: 0; background-color: #fff;"
|
|
2959
|
+
>
|
|
2960
|
+
<div class="w-100">
|
|
2961
|
+
<i
|
|
2962
|
+
class="fa-regular fa-magnifying-glass"
|
|
2963
|
+
style="font-size: 18px; color: #A0A0A0; position: absolute; left: 18px; top: 50%; transform: translateY(-50%);"
|
|
2964
|
+
aria-hidden="true"
|
|
2965
|
+
></i>
|
|
2966
|
+
<input
|
|
2967
|
+
class="form-control h-100"
|
|
2968
|
+
style="border-radius: 10px; border: 1px solid #DDD; padding-left: 50px; height: 100%;"
|
|
2969
|
+
placeholder="${placeholder}"
|
|
2970
|
+
onchange="${gvc.event(e => {
|
|
2971
|
+
search = `${e.value}`.trim();
|
|
2972
|
+
gvc.notifyDataChange(id);
|
|
2973
|
+
})}"
|
|
2974
|
+
value="${search}"
|
|
2975
|
+
/>
|
|
2976
|
+
</div>
|
|
2977
|
+
${this.customButton({
|
|
2978
|
+
button: {
|
|
2979
|
+
color: 'black',
|
|
2980
|
+
size: 'md',
|
|
2981
|
+
},
|
|
2982
|
+
text: {
|
|
2983
|
+
name: '確認',
|
|
2984
|
+
style: 'font-size: 14px;',
|
|
2985
|
+
},
|
|
2986
|
+
event: gvc.event(() => {
|
|
2987
|
+
show = false;
|
|
2988
|
+
gvc.notifyDataChange(id);
|
|
2989
|
+
callback(selectTags);
|
|
2990
|
+
}),
|
|
2991
|
+
})}
|
|
2992
|
+
</div>
|
|
2993
|
+
<div class="p-2">
|
|
2994
|
+
${this.multiCheckboxContainer(gvc, tagList.filter(tag => tag.name.toLowerCase().includes(search.toLowerCase())), selectTags, text => {
|
|
2995
|
+
if (search) {
|
|
2996
|
+
selectTags = [
|
|
2997
|
+
...new Set(selectTags
|
|
2998
|
+
.filter(tag => {
|
|
2999
|
+
return !tag.toLowerCase().includes(search.toLowerCase());
|
|
3000
|
+
})
|
|
3001
|
+
.concat(text)),
|
|
3002
|
+
];
|
|
3003
|
+
}
|
|
3004
|
+
else {
|
|
3005
|
+
selectTags = text;
|
|
3006
|
+
}
|
|
3007
|
+
}, { single: false })}
|
|
3008
|
+
</div>
|
|
3009
|
+
</div>
|
|
3010
|
+
</div>`;
|
|
3011
|
+
}
|
|
3012
|
+
else {
|
|
3013
|
+
return html `<div
|
|
3014
|
+
class="h-100"
|
|
3015
|
+
onclick="${gvc.event(() => {
|
|
3016
|
+
show = true;
|
|
3017
|
+
gvc.notifyDataChange(id);
|
|
3018
|
+
})}"
|
|
3019
|
+
>
|
|
3020
|
+
<i
|
|
3021
|
+
class="fa-regular fa-magnifying-glass"
|
|
3022
|
+
style="font-size: 18px; color: #A0A0A0; position: absolute; left: 18px; top: 50%; transform: translateY(-50%);"
|
|
3023
|
+
aria-hidden="true"
|
|
3024
|
+
></i>
|
|
3025
|
+
<div
|
|
3026
|
+
class="form-control h-100"
|
|
3027
|
+
style="border-radius: 10px; border: 1px solid #DDD; padding-left: 50px; height: 100%; color: #aeaeae; ${selectTags.length >
|
|
3028
|
+
0 && false
|
|
3029
|
+
? 'padding: 0.3rem 3rem;'
|
|
3030
|
+
: ''}"
|
|
3031
|
+
>
|
|
3032
|
+
${placeholder}
|
|
3033
|
+
<!-- ${selectTags.length > 0
|
|
3034
|
+
? html `<div class="d-flex flex-wrap gap-2">
|
|
3035
|
+
${selectTags.map(item => this.normalInsignia(`#${item}`)).join('')}
|
|
3036
|
+
</div>`
|
|
3037
|
+
: placeholder} -->
|
|
3038
|
+
</div>
|
|
3039
|
+
</div>`;
|
|
3040
|
+
}
|
|
3041
|
+
},
|
|
3042
|
+
divCreate: {
|
|
3043
|
+
class: 'w-100 position-relative search-tags-filter',
|
|
3044
|
+
style: `height: 40px !important; margin: ${margin !== null && margin !== void 0 ? margin : 0};`,
|
|
3045
|
+
},
|
|
3046
|
+
onCreate: () => __awaiter(this, void 0, void 0, function* () {
|
|
3047
|
+
if (loading) {
|
|
3048
|
+
tagList = yield ApiUser.getPublicConfig('product_manager_tags', 'manager').then((dd) => {
|
|
3049
|
+
var _b, _c;
|
|
3050
|
+
if (dd.result && ((_c = (_b = dd.response) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.list)) {
|
|
3051
|
+
return dd.response.value.list.map((item) => {
|
|
3052
|
+
return {
|
|
3053
|
+
key: item,
|
|
3054
|
+
name: `#${item}`,
|
|
3055
|
+
};
|
|
3056
|
+
});
|
|
3057
|
+
}
|
|
3058
|
+
return [];
|
|
3059
|
+
});
|
|
3060
|
+
loading = false;
|
|
3061
|
+
gvc.notifyDataChange(id);
|
|
3062
|
+
}
|
|
3063
|
+
else if (show) {
|
|
3064
|
+
function hasSearchTagsFilterAncestor(target) {
|
|
3065
|
+
let el = target;
|
|
3066
|
+
for (let i = 0; i < 10 && el; i++) {
|
|
3067
|
+
if (el.classList.contains('search-tags-filter')) {
|
|
3068
|
+
return true;
|
|
3069
|
+
}
|
|
3070
|
+
el = el.parentElement;
|
|
3071
|
+
}
|
|
3072
|
+
return false;
|
|
3073
|
+
}
|
|
3074
|
+
function clickEvent(event) {
|
|
3075
|
+
if (!hasSearchTagsFilterAncestor(event.target) &&
|
|
3076
|
+
!event.target.classList.contains('form-check-input') &&
|
|
3077
|
+
!event.target.classList.contains('form-check-label')) {
|
|
3078
|
+
show = false;
|
|
3079
|
+
gvc.notifyDataChange(id);
|
|
3080
|
+
window.parent.document.removeEventListener('click', clickEvent);
|
|
3081
|
+
}
|
|
3082
|
+
}
|
|
3083
|
+
setTimeout(() => window.parent.document.addEventListener('click', clickEvent), 100);
|
|
3084
|
+
}
|
|
3085
|
+
}),
|
|
3086
|
+
});
|
|
3087
|
+
}
|
|
2932
3088
|
static columnFilter(obj) {
|
|
2933
3089
|
const id = 'columnFilter';
|
|
2934
3090
|
return html ` <div
|
|
@@ -3282,7 +3438,10 @@ ${(_d = obj.default) !== null && _d !== void 0 ? _d : ''}</textarea
|
|
|
3282
3438
|
<div class="c_dialog_main">
|
|
3283
3439
|
${obj.readonly
|
|
3284
3440
|
? ''
|
|
3285
|
-
: html ` <div
|
|
3441
|
+
: html ` <div
|
|
3442
|
+
class="d-flex position-sticky px-1"
|
|
3443
|
+
style="gap: 12px; top: 0; background-color: #fff;"
|
|
3444
|
+
>
|
|
3286
3445
|
${this.searchFilter(gvc.event((e, event) => {
|
|
3287
3446
|
vm.query = e.value;
|
|
3288
3447
|
vm.loading = true;
|
|
@@ -4613,11 +4772,16 @@ ${(_d = obj.default) !== null && _d !== void 0 ? _d : ''}</textarea
|
|
|
4613
4772
|
if (vm.loading) {
|
|
4614
4773
|
return html ` <div class="my-4">${this.spinner()}</div>`;
|
|
4615
4774
|
}
|
|
4616
|
-
return html ` <div
|
|
4617
|
-
|
|
4618
|
-
|
|
4775
|
+
return html ` <div
|
|
4776
|
+
class="bg-white shadow rounded-3 h-100 d-flex flex-column position-relative overflow-hidden"
|
|
4777
|
+
style="width: 100%; padding-top: 61px;"
|
|
4778
|
+
>
|
|
4779
|
+
<div
|
|
4780
|
+
class="w-100 d-flex align-items-center p-3 border-bottom position-absolute"
|
|
4781
|
+
style="background: #F2F2F2;top:0;left:0"
|
|
4782
|
+
>
|
|
4783
|
+
<div class="tx_700 dialog-title">${(_b = obj.title) !== null && _b !== void 0 ? _b : '圖片庫'}</div>
|
|
4619
4784
|
<div class="flex-fill"></div>
|
|
4620
|
-
|
|
4621
4785
|
<i
|
|
4622
4786
|
class="fa-sharp fa-solid fa-xmark fs-5 text-dark cursor_pointer"
|
|
4623
4787
|
onclick="${gvc.event(() => {
|
|
@@ -4628,9 +4792,9 @@ ${(_d = obj.default) !== null && _d !== void 0 ? _d : ''}</textarea
|
|
|
4628
4792
|
})}"
|
|
4629
4793
|
></i>
|
|
4630
4794
|
</div>
|
|
4631
|
-
<div class="c_dialog flex-fill">
|
|
4795
|
+
<div class="c_dialog flex-fill " style="height: 600px;">
|
|
4632
4796
|
<div class="c_dialog_body d-flex flex-column h-100">
|
|
4633
|
-
<div class="c_dialog_main flex-fill" style="gap: 24px;max-height:100%;
|
|
4797
|
+
<div class="c_dialog_main flex-fill" style="gap: 24px;max-height:100%;padding-top:0;">
|
|
4634
4798
|
${(_c = obj.innerHTML(gvc)) !== null && _c !== void 0 ? _c : ''}
|
|
4635
4799
|
</div>
|
|
4636
4800
|
<div class="c_dialog_bar">${(_d = obj.footer_html(gvc)) !== null && _d !== void 0 ? _d : ''}</div>
|