ts-glitter 13.3.4 → 13.3.7

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.
Files changed (101) hide show
  1. package/lowcode/Entry.js +1 -1
  2. package/lowcode/Entry.ts +1 -1
  3. package/lowcode/backend-manager/bg-blog.js +2 -7
  4. package/lowcode/backend-manager/bg-blog.ts +8 -13
  5. package/lowcode/backend-manager/bg-customer-message.js +4 -2
  6. package/lowcode/backend-manager/bg-customer-message.ts +4 -2
  7. package/lowcode/backend-manager/bg-graph-api.js +6 -11
  8. package/lowcode/backend-manager/bg-graph-api.ts +14 -20
  9. package/lowcode/backend-manager/bg-line.js +526 -1002
  10. package/lowcode/backend-manager/bg-line.ts +1815 -2354
  11. package/lowcode/backend-manager/bg-notify.js +392 -746
  12. package/lowcode/backend-manager/bg-notify.ts +436 -835
  13. package/lowcode/backend-manager/bg-project.js +176 -293
  14. package/lowcode/backend-manager/bg-project.ts +214 -344
  15. package/lowcode/backend-manager/bg-recommend.js +39 -148
  16. package/lowcode/backend-manager/bg-recommend.ts +43 -162
  17. package/lowcode/backend-manager/bg-sns.js +489 -814
  18. package/lowcode/backend-manager/bg-sns.ts +1876 -2238
  19. package/lowcode/backend-manager/bg-widget.js +301 -171
  20. package/lowcode/backend-manager/bg-widget.ts +324 -193
  21. package/lowcode/cms-plugin/ai-points.js +84 -67
  22. package/lowcode/cms-plugin/ai-points.ts +280 -247
  23. package/lowcode/cms-plugin/auto-reply.js +6 -7
  24. package/lowcode/cms-plugin/auto-reply.ts +6 -7
  25. package/lowcode/cms-plugin/data-analyze.js +5 -6
  26. package/lowcode/cms-plugin/data-analyze.ts +5 -6
  27. package/lowcode/cms-plugin/form-setting.js +122 -220
  28. package/lowcode/cms-plugin/form-setting.ts +124 -240
  29. package/lowcode/cms-plugin/line-auto-reply.js +17 -18
  30. package/lowcode/cms-plugin/line-auto-reply.ts +29 -36
  31. package/lowcode/cms-plugin/member-group-list.js +5 -2
  32. package/lowcode/cms-plugin/member-group-list.ts +5 -2
  33. package/lowcode/cms-plugin/member-type-list.js +36 -84
  34. package/lowcode/cms-plugin/member-type-list.ts +39 -92
  35. package/lowcode/cms-plugin/menus-setting.js +8 -73
  36. package/lowcode/cms-plugin/menus-setting.ts +8 -78
  37. package/lowcode/cms-plugin/permission-setting.js +73 -106
  38. package/lowcode/cms-plugin/permission-setting.ts +236 -278
  39. package/lowcode/cms-plugin/shopping-collections.js +95 -137
  40. package/lowcode/cms-plugin/shopping-collections.ts +103 -147
  41. package/lowcode/cms-plugin/shopping-discount-setting.js +310 -416
  42. package/lowcode/cms-plugin/shopping-discount-setting.ts +1269 -1386
  43. package/lowcode/cms-plugin/shopping-finance-setting.js +1 -0
  44. package/lowcode/cms-plugin/shopping-finance-setting.ts +1 -0
  45. package/lowcode/cms-plugin/shopping-order-manager.js +742 -973
  46. package/lowcode/cms-plugin/shopping-order-manager.ts +1928 -2164
  47. package/lowcode/cms-plugin/shopping-order-return.js +147 -267
  48. package/lowcode/cms-plugin/shopping-order-return.ts +154 -292
  49. package/lowcode/cms-plugin/shopping-product-setting.js +6 -2
  50. package/lowcode/cms-plugin/shopping-product-setting.ts +8 -4
  51. package/lowcode/cms-plugin/shopping-product-stock.js +12 -92
  52. package/lowcode/cms-plugin/shopping-product-stock.ts +14 -94
  53. package/lowcode/cms-plugin/shopping-product-text.js +0 -3
  54. package/lowcode/cms-plugin/shopping-product-text.ts +0 -3
  55. package/lowcode/cms-plugin/shopping-rebate.js +95 -151
  56. package/lowcode/cms-plugin/shopping-rebate.ts +101 -159
  57. package/lowcode/cms-plugin/sms-points.js +83 -67
  58. package/lowcode/cms-plugin/sms-points.ts +281 -241
  59. package/lowcode/cms-plugin/sns-auto-reply.js +18 -18
  60. package/lowcode/cms-plugin/sns-auto-reply.ts +34 -40
  61. package/lowcode/cms-plugin/user-list.js +71 -90
  62. package/lowcode/cms-plugin/user-list.ts +76 -95
  63. package/lowcode/cms-plugin/web-config-setting.js +61 -111
  64. package/lowcode/cms-plugin/web-config-setting.ts +65 -124
  65. package/lowcode/css/editor.css +5 -2
  66. package/lowcode/glitter-base/route/shopping.js +1 -1
  67. package/lowcode/glitter-base/route/shopping.ts +19 -19
  68. package/lowcode/jspage/editor.js +1 -1
  69. package/lowcode/jspage/editor.ts +1 -1
  70. package/lowcode/jspage/main.js +3 -0
  71. package/lowcode/jspage/main.ts +3 -0
  72. package/package.json +1 -2
  73. package/src/api-public/controllers/ai-chat.js.map +5 -1
  74. package/src/api-public/controllers/article.js.map +1 -1
  75. package/src/api-public/controllers/chat.js.map +1 -1
  76. package/src/api-public/controllers/fb-message.js.map +1 -1
  77. package/src/api-public/controllers/index.js.map +1 -1
  78. package/src/api-public/controllers/line-message.js.map +1 -1
  79. package/src/api-public/controllers/rebate.js.map +1 -1
  80. package/src/api-public/controllers/shop.js.map +1 -1
  81. package/src/api-public/controllers/user.js.map +1 -1
  82. package/src/api-public/services/auto-send-email.js.map +1 -1
  83. package/src/api-public/services/chat.js +3 -3
  84. package/src/api-public/services/chat.js.map +1 -1
  85. package/src/api-public/services/chat.ts +3 -4
  86. package/src/api-public/services/fb-message.js.map +5 -1
  87. package/src/api-public/services/filter-protect-data.js.map +1 -1
  88. package/src/api-public/services/line-message.js.map +1 -1
  89. package/src/api-public/services/monitor.js.map +1 -1
  90. package/src/api-public/services/notify.js.map +1 -1
  91. package/src/api-public/services/rebate.js.map +1 -1
  92. package/src/api-public/services/schedule.js.map +1 -1
  93. package/src/api-public/services/share-permission.js.map +1 -1
  94. package/src/api-public/services/shopping.js.map +1 -1
  95. package/src/api-public/services/user.js +67 -66
  96. package/src/api-public/services/user.js.map +1 -1
  97. package/src/api-public/services/user.ts +212 -182
  98. package/src/helper/glitter-util.js.map +1 -1
  99. package/src/modules/firebase.d.ts +1 -0
  100. package/src/modules/firebase.js +1 -1
  101. package/src/modules/firebase.js.map +1 -1
@@ -72,61 +72,6 @@ export class BgNotify {
72
72
  let interval: any = 0;
73
73
  return vm.dataList.map((dd: any) => {
74
74
  return [
75
- {
76
- key: (() => {
77
- clearInterval(interval);
78
- if (
79
- !vm.dataList.find((dd: any) => {
80
- return !dd.checked;
81
- })
82
- ) {
83
- interval = setTimeout(() => {
84
- ApiUser.getSubScribe({
85
- page: vmi.page - 1,
86
- limit: 100000,
87
- search: vm.query || undefined,
88
- }).then((data) => {
89
- callback(data.response.data);
90
- });
91
- }, 10);
92
- }
93
- return EditorElem.checkBoxOnly({
94
- gvc: gvc,
95
- def: !vm.dataList.find((dd: any) => {
96
- return !dd.checked;
97
- }),
98
- callback: (result) => {
99
- vm.dataList.map((dd: any) => {
100
- dd.checked = result;
101
- });
102
- vmi.data = getDatalist();
103
- vmi.callback();
104
- gvc.notifyDataChange(filterID);
105
- callback(
106
- vm.dataList.filter((dd: any) => {
107
- return dd.checked;
108
- })
109
- );
110
- },
111
- });
112
- })(),
113
- value: EditorElem.checkBoxOnly({
114
- gvc: gvc,
115
- def: dd.checked,
116
- callback: (result) => {
117
- dd.checked = result;
118
- vmi.data = getDatalist();
119
- vmi.callback();
120
- gvc.notifyDataChange(filterID);
121
- callback(
122
- vm.dataList.filter((dd: any) => {
123
- return dd.checked;
124
- })
125
- );
126
- },
127
- style: 'height:25px;',
128
- }),
129
- },
130
75
  {
131
76
  key: '註冊信箱',
132
77
  value: `<span class="fs-7">${dd.email}</span>`,
@@ -141,120 +86,82 @@ export class BgNotify {
141
86
 
142
87
  return BgWidget.container(
143
88
  BgWidget.mainCard(
144
- BgWidget.tableV2({
145
- gvc: gvc,
146
- getData: (vmk) => {
147
- vmi = vmk;
148
- ApiUser.getSubScribe({
149
- page: vmi.page - 1,
150
- limit: 20,
151
- search: vm.query || undefined,
152
- filter: { account: 'no' },
153
- }).then((data) => {
154
- vmi.pageSize = Math.ceil(data.response.total / 20);
155
- vm.dataList = data.response.data;
156
- vmi.data = getDatalist();
157
- vmi.loading = false;
158
- vmi.callback();
159
- if (type === 'select') {
160
- callback(
161
- vm.dataList.filter((dd: any) => {
162
- return dd.checked;
163
- })
164
- );
165
- }
166
- });
167
- },
168
- rowClick: (data, index) => {
169
- vm.dataList[index].checked = !vm.dataList[index].checked;
170
- vmi.data = getDatalist();
171
- vmi.callback();
172
- gvc.notifyDataChange(filterID);
173
- callback(
174
- vm.dataList.filter((dd: any) => {
175
- return dd.checked;
176
- })
177
- );
178
- },
179
- filter: html`
180
- ${BgWidget.searchPlace(
181
- gvc.event((e, event) => {
182
- vm.query = e.value;
183
- gvc.notifyDataChange(id);
184
- }),
185
- vm.query || '',
186
- '搜尋信箱或標籤'
187
- )}
188
- ${gvc.bindView(() => {
189
- return {
190
- bind: filterID,
191
- view: () => {
192
- if (
193
- !vm.dataList ||
194
- !vm.dataList.find((dd: any) => {
89
+ [
90
+ BgWidget.searchPlace(
91
+ gvc.event((e) => {
92
+ vm.query = e.value;
93
+ gvc.notifyDataChange(id);
94
+ }),
95
+ vm.query || '',
96
+ '搜尋信箱或標籤'
97
+ ),
98
+ BgWidget.tableV3({
99
+ gvc: gvc,
100
+ getData: (vmk) => {
101
+ vmi = vmk;
102
+ const limit = 20;
103
+ ApiUser.getSubScribe({
104
+ page: vmi.page - 1,
105
+ limit: limit,
106
+ search: vm.query || undefined,
107
+ filter: { account: 'no' },
108
+ }).then((data) => {
109
+ vm.dataList = data.response.data;
110
+ vmi.pageSize = Math.ceil(data.response.total / limit);
111
+ vmi.originalData = vm.dataList;
112
+ vmi.tableData = getDatalist();
113
+ vmi.loading = false;
114
+ vmi.callback();
115
+
116
+ if (type === 'select') {
117
+ callback(
118
+ vm.dataList.filter((dd: any) => {
195
119
  return dd.checked;
196
120
  })
197
- ) {
198
- return ``;
199
- } else {
200
- const dialog = new ShareDialog(gvc.glitter);
201
- const selCount = vm.dataList.filter((dd: any) => dd.checked).length;
202
- return BgWidget.selNavbar({
203
- count: selCount,
204
- buttonList: [
205
- BgWidget.selEventButton(
206
- '批量移除',
207
- gvc.event(() => {
208
- dialog.checkYesOrNot({
209
- text: '是否確認刪除所選項目?',
210
- callback: (response) => {
211
- if (response) {
212
- dialog.dataLoading({ visible: true });
213
- ApiUser.deleteSubscribe({
214
- email: vm.dataList
215
- .filter((dd: any) => {
216
- return dd.checked;
217
- })
218
- .map((dd: any) => {
219
- return dd.email;
220
- })
221
- .join(`,`),
222
- }).then((res) => {
223
- dialog.dataLoading({ visible: false });
224
- if (res.result) {
225
- vm.dataList = undefined;
226
- gvc.notifyDataChange(id);
227
- } else {
228
- dialog.errorMessage({ text: '刪除失敗' });
229
- }
230
- });
231
- }
232
- },
233
- });
234
- })
235
- ),
236
- ],
237
- });
238
- }
239
- },
240
- divCreate: () => {
241
- return {
242
- class: `d-flex align-items-center p-2 py-3 ${
243
- !vm.dataList ||
244
- !vm.dataList.find((dd: any) => {
245
- return dd.checked;
246
- }) ||
247
- type === 'select'
248
- ? `d-none`
249
- : ``
250
- }`,
251
- style: ``,
252
- };
121
+ );
122
+ }
123
+ });
124
+ },
125
+ rowClick: (data, index) => {
126
+ vm.dataList[index].checked = !vm.dataList[index].checked;
127
+ vmi.data = getDatalist();
128
+ vmi.callback();
129
+ gvc.notifyDataChange(filterID);
130
+ callback(
131
+ vm.dataList.filter((dd: any) => {
132
+ return dd.checked;
133
+ })
134
+ );
135
+ },
136
+ filter: [
137
+ {
138
+ name: '批量移除',
139
+ event: (checkedData) => {
140
+ const dialog = new ShareDialog(glitter);
141
+ dialog.checkYesOrNot({
142
+ text: '是否確認刪除所選項目?',
143
+ callback: (response) => {
144
+ if (response) {
145
+ dialog.dataLoading({ visible: true });
146
+ ApiUser.deleteSubscribe({
147
+ email: checkedData.map((dd: any) => dd.email).join(`,`),
148
+ }).then((res) => {
149
+ dialog.dataLoading({ visible: false });
150
+ if (res.result) {
151
+ vm.dataList = undefined;
152
+ gvc.notifyDataChange(id);
153
+ } else {
154
+ dialog.errorMessage({ text: '刪除失敗' });
155
+ }
156
+ });
157
+ }
158
+ },
159
+ });
253
160
  },
254
- };
255
- })}
256
- `,
257
- })
161
+ },
162
+ ],
163
+ }),
164
+ ].join('')
258
165
  ),
259
166
  type === 'select' ? 850 : BgWidget.getContainerWidth(),
260
167
  'padding: 0;'
@@ -300,144 +207,80 @@ export class BgNotify {
300
207
  </div>
301
208
  ${BgWidget.container(
302
209
  BgWidget.mainCard(
303
- BgWidget.tableV2({
304
- gvc: gvc,
305
- getData: (vmi) => {
306
- ApiPost.getManagerPost({
307
- page: vmi.page - 1,
308
- limit: 20,
309
- search: vm.query ? [`title->${vm.query}`] : undefined,
310
- type: 'notify-email-config',
311
- }).then((data) => {
312
- vmi.pageSize = Math.ceil(data.response.total / 20);
313
- vm.dataList = data.response.data;
314
- function getDatalist() {
315
- return data.response.data.map((dd: any) => {
316
- return [
317
- {
318
- key: EditorElem.checkBoxOnly({
319
- gvc: gvc,
320
- def: !data.response.data.find((dd: any) => {
321
- return !dd.checked;
322
- }),
323
- callback: (result) => {
324
- data.response.data.map((dd: any) => {
325
- dd.checked = result;
326
- });
327
- vmi.data = getDatalist();
328
- vmi.callback();
329
- gvc.notifyDataChange(filterID);
330
- },
331
- }),
332
- value: EditorElem.checkBoxOnly({
333
- gvc: gvc,
334
- def: dd.checked,
335
- callback: (result) => {
336
- dd.checked = result;
337
- vmi.data = getDatalist();
338
- vmi.callback();
339
- gvc.notifyDataChange(filterID);
340
- },
341
- style: 'height:25px;',
342
- }),
343
- },
344
- {
345
- key: '標題',
346
- value: html`<span class="fs-7">${dd.content.title}</span>`,
347
- },
348
- {
349
- key: '最後更新時間',
350
- value: dd.updated_time ? gvc.glitter.ut.dateFormat(new Date(dd.updated_time), 'yyyy-MM-dd') : '無',
351
- },
352
- ];
353
- });
354
- }
355
- vmi.data = getDatalist();
356
- vmi.loading = false;
357
- vmi.callback();
358
- });
359
- },
360
- style: ['', `min-width: ${BgWidget.getContainerWidth() / 2 - 30}px`, ''],
361
- rowClick: (data, index) => {
362
- vm.data = vm.dataList[index].content;
363
- vm.type = 'replace';
364
- },
365
- filter: html` ${BgWidget.searchPlace(
210
+ [
211
+ BgWidget.searchPlace(
366
212
  gvc.event((e) => {
367
213
  vm.query = e.value;
368
214
  gvc.notifyDataChange(id);
369
215
  }),
370
216
  vm.query || '',
371
217
  '搜尋所有信件內容'
372
- )}
373
- ${gvc.bindView(() => {
374
- return {
375
- bind: filterID,
376
- view: () => {
377
- if (
378
- !vm.dataList ||
379
- !vm.dataList.find((dd: any) => {
380
- return dd.checked;
381
- })
382
- ) {
383
- return ``;
384
- } else {
385
- const dialog = new ShareDialog(gvc.glitter);
386
- const selCount = vm.dataList.filter((dd: any) => dd.checked).length;
387
- return BgWidget.selNavbar({
388
- count: selCount,
389
- buttonList: [
390
- BgWidget.selEventButton(
391
- '批量移除',
392
- gvc.event(() => {
393
- dialog.checkYesOrNot({
394
- text: '是否確認刪除所選項目?',
395
- callback: (response) => {
396
- if (response) {
397
- dialog.dataLoading({ visible: true });
398
- ApiPost.delete({
399
- id: vm.dataList
400
- .filter((dd: any) => {
401
- return dd.checked;
402
- })
403
- .map((dd: any) => {
404
- return dd.id;
405
- })
406
- .join(`,`),
407
- }).then((res) => {
408
- dialog.dataLoading({ visible: false });
409
- if (res.result) {
410
- vm.dataList = undefined;
411
- gvc.notifyDataChange(id);
412
- } else {
413
- dialog.errorMessage({ text: '刪除失敗' });
414
- }
415
- });
416
- }
417
- },
418
- });
419
- })
420
- ),
421
- ],
218
+ ),
219
+ BgWidget.tableV3({
220
+ gvc: gvc,
221
+ getData: (vmi) => {
222
+ const limit = 20;
223
+ ApiPost.getManagerPost({
224
+ page: vmi.page - 1,
225
+ limit: limit,
226
+ search: vm.query ? [`title->${vm.query}`] : undefined,
227
+ type: 'notify-email-config',
228
+ }).then((data) => {
229
+ function getDatalist() {
230
+ return data.response.data.map((dd: any) => {
231
+ return [
232
+ {
233
+ key: '標題',
234
+ value: html`<span class="fs-7">${dd.content.title}</span>`,
235
+ },
236
+ {
237
+ key: '最後更新時間',
238
+ value: dd.updated_time ? gvc.glitter.ut.dateFormat(new Date(dd.updated_time), 'yyyy-MM-dd') : '無',
239
+ },
240
+ ];
422
241
  });
423
242
  }
243
+ vm.dataList = data.response.data;
244
+ vmi.pageSize = Math.ceil(data.response.total / limit);
245
+ vmi.originalData = vm.dataList;
246
+ vmi.tableData = getDatalist();
247
+ vmi.loading = false;
248
+ vmi.callback();
249
+ });
250
+ },
251
+ rowClick: (data, index) => {
252
+ vm.data = vm.dataList[index].content;
253
+ vm.type = 'replace';
254
+ },
255
+ filter: [
256
+ {
257
+ name: '批量移除',
258
+ event: (checkedData) => {
259
+ const dialog = new ShareDialog(glitter);
260
+ dialog.checkYesOrNot({
261
+ text: '是否確認刪除所選項目?',
262
+ callback: (response) => {
263
+ if (response) {
264
+ dialog.dataLoading({ visible: true });
265
+ ApiPost.delete({
266
+ id: checkedData.map((dd: any) => dd.id).join(`,`),
267
+ }).then((res) => {
268
+ dialog.dataLoading({ visible: false });
269
+ if (res.result) {
270
+ vm.dataList = undefined;
271
+ gvc.notifyDataChange(id);
272
+ } else {
273
+ dialog.errorMessage({ text: '刪除失敗' });
274
+ }
275
+ });
276
+ }
277
+ },
278
+ });
279
+ },
424
280
  },
425
- divCreate: () => {
426
- return {
427
- class: `d-flex align-items-center p-2 py-3 ${
428
- !vm.dataList ||
429
- !vm.dataList.find((dd: any) => {
430
- return dd.checked;
431
- })
432
- ? `d-none`
433
- : ``
434
- }`,
435
- style: ``,
436
- };
437
- },
438
- };
439
- })}`,
440
- })
281
+ ],
282
+ }),
283
+ ].join('')
441
284
  )
442
285
  )}
443
286
  ${BgWidget.mbContainer(120)}
@@ -555,7 +398,7 @@ export class BgNotify {
555
398
  gvc.bindView({
556
399
  bind: vm.tableId,
557
400
  view: () => {
558
- return BgWidget.tableV2({
401
+ return BgWidget.tableV3({
559
402
  gvc: gvc,
560
403
  getData: (vmi) => {
561
404
  const limit = 20;
@@ -569,8 +412,6 @@ export class BgNotify {
569
412
  mailType: vm.filter.mailType,
570
413
  }).then((data) => {
571
414
  if (data.result) {
572
- vmi.pageSize = Math.ceil(data.response.total / limit);
573
- vm.dataList = data.response.data;
574
415
  function getDatalist() {
575
416
  return data.response.data.map((dd: { content: PostData; status: number; trigger_time: string }) => {
576
417
  return [
@@ -628,7 +469,11 @@ export class BgNotify {
628
469
  ];
629
470
  });
630
471
  }
631
- vmi.data = getDatalist();
472
+
473
+ vm.dataList = data.response.data;
474
+ vmi.pageSize = Math.ceil(data.response.total / limit);
475
+ vmi.originalData = vm.dataList;
476
+ vmi.tableData = getDatalist();
632
477
  vmi.loading = false;
633
478
  vmi.callback();
634
479
  }
@@ -640,6 +485,7 @@ export class BgNotify {
640
485
  vm.data.id = vm.dataList[index].id;
641
486
  vm.type = 'replace';
642
487
  },
488
+ filter: [],
643
489
  });
644
490
  },
645
491
  }),
@@ -1945,62 +1791,6 @@ export class BgNotify {
1945
1791
  let interval: any = 0;
1946
1792
  return vm.dataList.map((dd: any) => {
1947
1793
  return [
1948
- {
1949
- key: (() => {
1950
- clearInterval(interval);
1951
- if (
1952
- !vm.dataList.find((dd: any) => {
1953
- return !dd.checked;
1954
- })
1955
- ) {
1956
- interval = setTimeout(() => {
1957
- ApiUser.getFCM({
1958
- page: vmi.page - 1,
1959
- limit: 100000,
1960
- search: vm.query || undefined,
1961
- }).then((data) => {
1962
- callback(data.response.data);
1963
- });
1964
- }, 10);
1965
- }
1966
-
1967
- return EditorElem.checkBoxOnly({
1968
- gvc: gvc,
1969
- def: !vm.dataList.find((dd: any) => {
1970
- return !dd.checked;
1971
- }),
1972
- callback: (result) => {
1973
- vm.dataList.map((dd: any) => {
1974
- dd.checked = result;
1975
- });
1976
- vmi.data = getDatalist();
1977
- vmi.callback();
1978
- gvc.notifyDataChange(filterID);
1979
- callback(
1980
- vm.dataList.filter((dd: any) => {
1981
- return dd.checked;
1982
- })
1983
- );
1984
- },
1985
- });
1986
- })(),
1987
- value: EditorElem.checkBoxOnly({
1988
- gvc: gvc,
1989
- def: dd.checked,
1990
- callback: (result) => {
1991
- dd.checked = result;
1992
- vmi.data = getDatalist();
1993
- vmi.callback();
1994
- gvc.notifyDataChange(filterID);
1995
- callback(
1996
- vm.dataList.filter((dd: any) => {
1997
- return dd.checked;
1998
- })
1999
- );
2000
- },
2001
- style: 'height:25px;',
2002
- }),
2003
- },
2004
1794
  {
2005
1795
  key: '用戶ID',
2006
1796
  value: `<span class="fs-7">${dd.userID ?? '尚未登入'}</span>`,
@@ -2025,119 +1815,79 @@ export class BgNotify {
2025
1815
  </div>
2026
1816
  ${BgWidget.container(
2027
1817
  BgWidget.mainCard(
2028
- BgWidget.tableV2({
2029
- gvc: gvc,
2030
- getData: (vmk) => {
2031
- vmi = vmk;
2032
- ApiUser.getFCM({
2033
- page: vmi.page - 1,
2034
- limit: 20,
2035
- search: vm.query || undefined,
2036
- }).then((data) => {
2037
- vmi.pageSize = Math.ceil(data.response.total / 20);
2038
- vm.dataList = data.response.data;
1818
+ [
1819
+ BgWidget.searchPlace(
1820
+ gvc.event((e) => {
1821
+ vm.query = e.value;
1822
+ gvc.notifyDataChange(id);
1823
+ }),
1824
+ vm.query || '',
1825
+ '搜尋信箱或者標籤'
1826
+ ),
1827
+ BgWidget.tableV3({
1828
+ gvc: gvc,
1829
+ getData: (vmk) => {
1830
+ vmi = vmk;
1831
+ const limit = 20;
1832
+ ApiUser.getFCM({
1833
+ page: vmi.page - 1,
1834
+ limit: limit,
1835
+ search: vm.query || undefined,
1836
+ }).then((data) => {
1837
+ vm.dataList = data.response.data;
1838
+ vmi.pageSize = Math.ceil(data.response.total / limit);
1839
+ vmi.originalData = vm.dataList;
1840
+ vmi.tableData = getDatalist();
1841
+ vmi.loading = false;
1842
+ vmi.callback();
1843
+ if (type === 'select') {
1844
+ callback(
1845
+ vm.dataList.filter((dd: any) => {
1846
+ return dd.checked;
1847
+ })
1848
+ );
1849
+ }
1850
+ });
1851
+ },
1852
+ rowClick: (data, index) => {
1853
+ vm.dataList[index].checked = !vm.dataList[index].checked;
2039
1854
  vmi.data = getDatalist();
2040
- vmi.loading = false;
2041
1855
  vmi.callback();
2042
- if (type === 'select') {
2043
- callback(
2044
- vm.dataList.filter((dd: any) => {
2045
- return dd.checked;
2046
- })
2047
- );
2048
- }
2049
- });
2050
- },
2051
- rowClick: (data, index) => {
2052
- vm.dataList[index].checked = !vm.dataList[index].checked;
2053
- vmi.data = getDatalist();
2054
- vmi.callback();
2055
- gvc.notifyDataChange(filterID);
2056
- callback(
2057
- vm.dataList.filter((dd: any) => {
2058
- return dd.checked;
2059
- })
2060
- );
2061
- },
2062
- filter: html`
2063
- ${BgWidget.searchPlace(
2064
- gvc.event((e, event) => {
2065
- vm.query = e.value;
2066
- gvc.notifyDataChange(id);
2067
- }),
2068
- vm.query || '',
2069
- '搜尋信箱或者標籤'
2070
- )}
2071
- ${gvc.bindView(() => {
2072
- return {
2073
- bind: filterID,
2074
- view: () => {
2075
- if (
2076
- !vm.dataList ||
2077
- !vm.dataList.find((dd: any) => {
2078
- return dd.checked;
2079
- })
2080
- ) {
2081
- return ``;
2082
- } else {
2083
- const dialog = new ShareDialog(gvc.glitter);
2084
- const selCount = vm.dataList.filter((dd: any) => dd.checked).length;
2085
- return BgWidget.selNavbar({
2086
- count: selCount,
2087
- buttonList: [
2088
- BgWidget.selEventButton(
2089
- '批量移除',
2090
- gvc.event(() => {
2091
- dialog.checkYesOrNot({
2092
- text: '是否確認刪除所選項目?',
2093
- callback: (response) => {
2094
- if (response) {
2095
- dialog.dataLoading({ visible: true });
2096
- ApiUser.deleteSubscribe({
2097
- email: vm.dataList
2098
- .filter((dd: any) => {
2099
- return dd.checked;
2100
- })
2101
- .map((dd: any) => {
2102
- return dd.email;
2103
- })
2104
- .join(`,`),
2105
- }).then((res) => {
2106
- dialog.dataLoading({ visible: false });
2107
- if (res.result) {
2108
- vm.dataList = undefined;
2109
- gvc.notifyDataChange(id);
2110
- } else {
2111
- dialog.errorMessage({ text: '刪除失敗' });
2112
- }
2113
- });
2114
- }
2115
- },
2116
- });
2117
- })
2118
- ),
2119
- ],
2120
- });
2121
- }
2122
- },
2123
- divCreate: () => {
2124
- return {
2125
- class: `d-flex align-items-center p-2 py-3 ${
2126
- !vm.dataList ||
2127
- !vm.dataList.find((dd: any) => {
2128
- return dd.checked;
2129
- }) ||
2130
- type === 'select'
2131
- ? `d-none`
2132
- : ``
2133
- }`,
2134
- style: ``,
2135
- };
1856
+ gvc.notifyDataChange(filterID);
1857
+ callback(
1858
+ vm.dataList.filter((dd: any) => {
1859
+ return dd.checked;
1860
+ })
1861
+ );
1862
+ },
1863
+ filter: [
1864
+ {
1865
+ name: '批量移除',
1866
+ event: (checkedData) => {
1867
+ dialog.checkYesOrNot({
1868
+ text: '是否確認刪除所選項目?',
1869
+ callback: (response) => {
1870
+ if (response) {
1871
+ dialog.dataLoading({ visible: true });
1872
+ ApiUser.deleteSubscribe({
1873
+ email: checkedData.map((dd: any) => dd.email).join(`,`),
1874
+ }).then((res) => {
1875
+ dialog.dataLoading({ visible: false });
1876
+ if (res.result) {
1877
+ vm.dataList = undefined;
1878
+ gvc.notifyDataChange(id);
1879
+ } else {
1880
+ dialog.errorMessage({ text: '刪除失敗' });
1881
+ }
1882
+ });
1883
+ }
1884
+ },
1885
+ });
2136
1886
  },
2137
- };
2138
- })}
2139
- `,
2140
- })
1887
+ },
1888
+ ],
1889
+ }),
1890
+ ].join('')
2141
1891
  )
2142
1892
  )}
2143
1893
  `,
@@ -2187,235 +1937,172 @@ export class BgNotify {
2187
1937
  </div>
2188
1938
  ${BgWidget.container(
2189
1939
  BgWidget.mainCard(
2190
- BgWidget.tableV2({
2191
- gvc: gvc,
2192
- getData: (vmi) => {
2193
- ApiPost.getManagerPost({
2194
- page: vmi.page - 1,
2195
- limit: 20,
2196
- search: vm.query ? [`title->${vm.query}`] : undefined,
2197
- type: 'notify-message-config',
2198
- }).then((data) => {
2199
- vmi.pageSize = Math.ceil(data.response.total / 20);
2200
- vm.dataList = data.response.data;
2201
-
2202
- function getDatalist() {
2203
- return data.response.data.map((dd: any) => {
2204
- return [
2205
- {
2206
- key: EditorElem.checkBoxOnly({
2207
- gvc: gvc,
2208
- def: !data.response.data.find((dd: any) => {
2209
- return !dd.checked;
2210
- }),
2211
- callback: (result) => {
2212
- data.response.data.map((dd: any) => {
2213
- dd.checked = result;
2214
- });
2215
- vmi.data = getDatalist();
2216
- vmi.callback();
2217
- gvc.notifyDataChange(filterID);
2218
- },
2219
- }),
2220
- value: EditorElem.checkBoxOnly({
2221
- gvc: gvc,
2222
- def: dd.checked,
2223
- callback: (result) => {
2224
- dd.checked = result;
2225
- vmi.data = getDatalist();
2226
- vmi.callback();
2227
- gvc.notifyDataChange(filterID);
2228
- },
2229
- style: 'height:25px;',
2230
- }),
2231
- },
2232
- {
2233
- key: '推播標題',
2234
- value: `<span class="fs-7">${dd.content.title}</span>`,
2235
- },
2236
- {
2237
- key: '推播內文',
2238
- value: `<span class="fs-7">${Tool.truncateString(dd.content.content.replace(/<[^>]*>/g, ''), 30)}</span>`,
2239
- },
2240
- {
2241
- key: '發送推播',
2242
- value: html`<button
2243
- class="btn btn-primary-c px-4"
2244
- style="width:20px !important;height: 30px;"
2245
- onclick="${gvc.event((e, event) => {
2246
- event.stopPropagation();
2247
- gvc.glitter.innerDialog((gvc) => {
2248
- let dataList: any = [];
2249
- return html`
2250
- <div style="max-height: calc(100vh - 100px);overflow-y: auto;">
2251
- ${BgWidget.container(
2252
- BgWidget.card(
2253
- [
2254
- html`
2255
- <div class="d-flex w-100 align-items-center mb-3 ">
2256
- ${BgWidget.goBack(
2257
- gvc.event(() => {
2258
- gvc.closeDialog();
2259
- })
2260
- )}
2261
- ${BgWidget.title(`選擇群發對象`)}
2262
- <div class="flex-fill"></div>
2263
- <button
2264
- class="btn bt_c39 me-2"
2265
- style="height:38px;font-size: 14px;"
2266
- onclick="${gvc.event(() => {
2267
- const dialog = new ShareDialog(gvc.glitter);
2268
- dialog.dataLoading({
2269
- text: '發送中...',
2270
- visible: true,
2271
- });
2272
- ApiFcm.send({
2273
- device_token: ['all'],
2274
- title: dd.content.title,
2275
- content: dd.content.content,
2276
- link: dd.content.link,
2277
- }).then(() => {
2278
- dialog.dataLoading({ visible: false });
2279
- dialog.successMessage({ text: `發送成功` });
2280
- });
2281
- })}"
2282
- >
2283
- 發送給所有用戶
2284
- </button>
2285
- <button
2286
- class="btn bt_c39"
2287
- style="height:38px;font-size: 14px;"
2288
- onclick="${gvc.event(() => {
2289
- const dialog = new ShareDialog(gvc.glitter);
2290
- if (dataList.length > 0) {
1940
+ [
1941
+ BgWidget.searchPlace(
1942
+ gvc.event((e) => {
1943
+ vm.query = e.value;
1944
+ gvc.notifyDataChange(id);
1945
+ }),
1946
+ vm.query || '',
1947
+ '搜尋所有信件內容'
1948
+ ),
1949
+ BgWidget.tableV3({
1950
+ gvc: gvc,
1951
+ getData: (vmi) => {
1952
+ const limit = 20;
1953
+ ApiPost.getManagerPost({
1954
+ page: vmi.page - 1,
1955
+ limit: limit,
1956
+ search: vm.query ? [`title->${vm.query}`] : undefined,
1957
+ type: 'notify-message-config',
1958
+ }).then((data) => {
1959
+ function getDatalist() {
1960
+ return data.response.data.map((dd: any) => {
1961
+ return [
1962
+ {
1963
+ key: '推播標題',
1964
+ value: `<span class="fs-7">${dd.content.title}</span>`,
1965
+ },
1966
+ {
1967
+ key: '推播內文',
1968
+ value: `<span class="fs-7">${Tool.truncateString(dd.content.content.replace(/<[^>]*>/g, ''), 30)}</span>`,
1969
+ },
1970
+ {
1971
+ key: '發送推播',
1972
+ value: html`<button
1973
+ class="btn btn-primary-c px-4"
1974
+ style="width:20px !important;height: 30px;"
1975
+ onclick="${gvc.event((e, event) => {
1976
+ event.stopPropagation();
1977
+ gvc.glitter.innerDialog((gvc) => {
1978
+ let dataList: any = [];
1979
+ return html`
1980
+ <div style="max-height: calc(100vh - 100px);overflow-y: auto;">
1981
+ ${BgWidget.container(
1982
+ BgWidget.card(
1983
+ [
1984
+ html`
1985
+ <div class="d-flex w-100 align-items-center mb-3 ">
1986
+ ${BgWidget.goBack(
1987
+ gvc.event(() => {
1988
+ gvc.closeDialog();
1989
+ })
1990
+ )}
1991
+ ${BgWidget.title(`選擇群發對象`)}
1992
+ <div class="flex-fill"></div>
1993
+ <button
1994
+ class="btn bt_c39 me-2"
1995
+ style="height:38px;font-size: 14px;"
1996
+ onclick="${gvc.event(() => {
1997
+ const dialog = new ShareDialog(gvc.glitter);
2291
1998
  dialog.dataLoading({
2292
1999
  text: '發送中...',
2293
2000
  visible: true,
2294
2001
  });
2295
2002
  ApiFcm.send({
2296
- device_token: dataList.map((dd: any) => {
2297
- return dd.deviceToken;
2298
- }),
2003
+ device_token: ['all'],
2299
2004
  title: dd.content.title,
2300
2005
  content: dd.content.content,
2301
2006
  link: dd.content.link,
2302
2007
  }).then(() => {
2303
2008
  dialog.dataLoading({ visible: false });
2304
- dialog.successMessage({ text: '發送成功' });
2009
+ dialog.successMessage({ text: `發送成功` });
2305
2010
  });
2306
- } else {
2307
- dialog.errorMessage({ text: '請選擇發送對象' });
2308
- }
2309
- })}"
2310
- >
2311
- 確認並發送
2312
- </button>
2313
- </div>
2314
- ` +
2315
- BgNotify.fcmDevice(gvc, 'select', (data) => {
2316
- dataList = data;
2317
- }),
2318
- ].join('')
2319
- ),
2320
- 900
2321
- )}
2322
- <div></div>
2323
- </div>
2324
- `;
2325
- }, 'email');
2326
- })}"
2327
- >
2328
- <i class="fa-sharp fa-regular fa-paper-plane-top"></i>
2329
- </button>`,
2330
- },
2331
- ];
2332
- });
2333
- }
2334
- vmi.data = getDatalist();
2335
- vmi.loading = false;
2336
- vmi.callback();
2337
- });
2338
- },
2339
- rowClick: (data, index) => {
2340
- vm.data = vm.dataList[index].content;
2341
- vm.type = 'replace';
2342
- },
2343
- filter: html` ${BgWidget.searchPlace(
2344
- gvc.event((e, event) => {
2345
- vm.query = e.value;
2346
- gvc.notifyDataChange(id);
2347
- }),
2348
- vm.query || '',
2349
- '搜尋所有信件內容'
2350
- )}
2351
- ${gvc.bindView(() => {
2352
- return {
2353
- bind: filterID,
2354
- view: () => {
2355
- if (
2356
- !vm.dataList ||
2357
- !vm.dataList.find((dd: any) => {
2358
- return dd.checked;
2359
- })
2360
- ) {
2361
- return ``;
2362
- } else {
2363
- const dialog = new ShareDialog(gvc.glitter);
2364
- const selCount = vm.dataList.filter((dd: any) => dd.checked).length;
2365
- return BgWidget.selNavbar({
2366
- count: selCount,
2367
- buttonList: [
2368
- BgWidget.selEventButton(
2369
- '批量移除',
2370
- gvc.event(() => {
2371
- dialog.checkYesOrNot({
2372
- text: '是否確認刪除所選項目?',
2373
- callback: (response) => {
2374
- if (response) {
2375
- dialog.dataLoading({ visible: true });
2376
- ApiPost.delete({
2377
- id: vm.dataList
2378
- .filter((dd: any) => {
2379
- return dd.checked;
2380
- })
2381
- .map((dd: any) => {
2382
- return dd.id;
2383
- })
2384
- .join(`,`),
2385
- }).then((res) => {
2386
- dialog.dataLoading({ visible: false });
2387
- if (res.result) {
2388
- vm.dataList = undefined;
2389
- gvc.notifyDataChange(id);
2390
- } else {
2391
- dialog.errorMessage({ text: '刪除失敗' });
2392
- }
2393
- });
2394
- }
2395
- },
2396
- });
2397
- })
2398
- ),
2399
- ],
2011
+ })}"
2012
+ >
2013
+ 發送給所有用戶
2014
+ </button>
2015
+ <button
2016
+ class="btn bt_c39"
2017
+ style="height:38px;font-size: 14px;"
2018
+ onclick="${gvc.event(() => {
2019
+ const dialog = new ShareDialog(gvc.glitter);
2020
+ if (dataList.length > 0) {
2021
+ dialog.dataLoading({
2022
+ text: '發送中...',
2023
+ visible: true,
2024
+ });
2025
+ ApiFcm.send({
2026
+ device_token: dataList.map((dd: any) => {
2027
+ return dd.deviceToken;
2028
+ }),
2029
+ title: dd.content.title,
2030
+ content: dd.content.content,
2031
+ link: dd.content.link,
2032
+ }).then(() => {
2033
+ dialog.dataLoading({ visible: false });
2034
+ dialog.successMessage({ text: '發送成功' });
2035
+ });
2036
+ } else {
2037
+ dialog.errorMessage({ text: '請選擇發送對象' });
2038
+ }
2039
+ })}"
2040
+ >
2041
+ 確認並發送
2042
+ </button>
2043
+ </div>
2044
+ ` +
2045
+ BgNotify.fcmDevice(gvc, 'select', (data) => {
2046
+ dataList = data;
2047
+ }),
2048
+ ].join('')
2049
+ ),
2050
+ 900
2051
+ )}
2052
+ <div></div>
2053
+ </div>
2054
+ `;
2055
+ }, 'email');
2056
+ })}"
2057
+ >
2058
+ <i class="fa-sharp fa-regular fa-paper-plane-top"></i>
2059
+ </button>`,
2060
+ },
2061
+ ];
2400
2062
  });
2401
2063
  }
2064
+
2065
+ vm.dataList = data.response.data;
2066
+ vmi.pageSize = Math.ceil(data.response.total / limit);
2067
+ vmi.originalData = vm.dataList;
2068
+ vmi.tableData = getDatalist();
2069
+ vmi.loading = false;
2070
+ vmi.callback();
2071
+ });
2072
+ },
2073
+ rowClick: (data, index) => {
2074
+ vm.data = vm.dataList[index].content;
2075
+ vm.type = 'replace';
2076
+ },
2077
+ filter: [
2078
+ {
2079
+ name: '批量移除',
2080
+ event: (checkedData) => {
2081
+ const dialog = new ShareDialog(glitter);
2082
+ dialog.checkYesOrNot({
2083
+ text: '是否確認刪除所選項目?',
2084
+ callback: (response) => {
2085
+ if (response) {
2086
+ dialog.dataLoading({ visible: true });
2087
+ ApiPost.delete({
2088
+ id: checkedData.map((dd: any) => dd.id).join(`,`),
2089
+ }).then((res) => {
2090
+ dialog.dataLoading({ visible: false });
2091
+ if (res.result) {
2092
+ vm.dataList = undefined;
2093
+ gvc.notifyDataChange(id);
2094
+ } else {
2095
+ dialog.errorMessage({ text: '刪除失敗' });
2096
+ }
2097
+ });
2098
+ }
2099
+ },
2100
+ });
2101
+ },
2402
2102
  },
2403
- divCreate: () => {
2404
- return {
2405
- class: `d-flex align-items-center p-2 py-3 ${
2406
- !vm.dataList ||
2407
- !vm.dataList.find((dd: any) => {
2408
- return dd.checked;
2409
- })
2410
- ? `d-none`
2411
- : ``
2412
- }`,
2413
- style: ``,
2414
- };
2415
- },
2416
- };
2417
- })}`,
2418
- })
2103
+ ],
2104
+ }),
2105
+ ].join('')
2419
2106
  )
2420
2107
  )}
2421
2108
  `,
@@ -2473,62 +2160,6 @@ export class BgNotify {
2473
2160
  let interval: any = 0;
2474
2161
  return vm.dataList.map((dd: any) => {
2475
2162
  return [
2476
- {
2477
- key: (() => {
2478
- clearInterval(interval);
2479
- if (
2480
- !vm.dataList.find((dd: any) => {
2481
- return !dd.checked;
2482
- })
2483
- ) {
2484
- interval = setTimeout(() => {
2485
- ApiUser.getFCM({
2486
- page: vmi.page - 1,
2487
- limit: 100000,
2488
- search: vm.query || undefined,
2489
- }).then((data) => {
2490
- callback(data.response.data);
2491
- });
2492
- }, 10);
2493
- }
2494
-
2495
- return EditorElem.checkBoxOnly({
2496
- gvc: gvc,
2497
- def: !vm.dataList.find((dd: any) => {
2498
- return !dd.checked;
2499
- }),
2500
- callback: (result) => {
2501
- vm.dataList.map((dd: any) => {
2502
- dd.checked = result;
2503
- });
2504
- vmi.data = getDatalist();
2505
- vmi.callback();
2506
- gvc.notifyDataChange(filterID);
2507
- callback(
2508
- vm.dataList.filter((dd: any) => {
2509
- return dd.checked;
2510
- })
2511
- );
2512
- },
2513
- });
2514
- })(),
2515
- value: EditorElem.checkBoxOnly({
2516
- gvc: gvc,
2517
- def: dd.checked,
2518
- callback: (result) => {
2519
- dd.checked = result;
2520
- vmi.data = getDatalist();
2521
- vmi.callback();
2522
- gvc.notifyDataChange(filterID);
2523
- callback(
2524
- vm.dataList.filter((dd: any) => {
2525
- return dd.checked;
2526
- })
2527
- );
2528
- },
2529
- style: 'height:25px;',
2530
- }),
2531
- },
2532
2163
  {
2533
2164
  key: '名稱',
2534
2165
  value: `<span class="fs-7">${dd.content.name}</span>`,
@@ -2677,114 +2308,84 @@ export class BgNotify {
2677
2308
  ${BgWidget.title('回饋信件')}
2678
2309
  <div class="flex-fill"></div>
2679
2310
  </div>
2680
- ${BgWidget.table({
2681
- gvc: gvc,
2682
- getData: (vmk) => {
2683
- vmi = vmk;
2684
- ApiPost.getUserPost({
2685
- page: vmi.page - 1,
2686
- limit: 20,
2687
- search: vm.query || undefined,
2688
- type: 'userQuestion',
2689
- }).then((data) => {
2690
- vmi.pageSize = Math.ceil(data.response.total / 20);
2691
- vm.dataList = data.response.data;
2692
- vmi.data = getDatalist();
2693
- vmi.loading = false;
2694
- vmi.callback();
2695
- if (type === 'select') {
2696
- callback(
2697
- vm.dataList.filter((dd: any) => {
2698
- return dd.checked;
2699
- })
2700
- );
2701
- }
2702
- });
2703
- },
2704
- rowClick: (data, index) => {
2705
- vm.type = 'replace';
2706
- vm.data = vm.dataList[index];
2707
- gvc.notifyDataChange(id);
2708
- },
2709
- filter: html`
2710
- ${BgWidget.searchPlace(
2311
+ ${BgWidget.mainCard(
2312
+ [
2313
+ BgWidget.searchPlace(
2711
2314
  gvc.event((e, event) => {
2712
2315
  vm.query = e.value;
2713
2316
  gvc.notifyDataChange(id);
2714
2317
  }),
2715
2318
  vm.query || '',
2716
2319
  '搜尋標題'
2717
- )}
2718
- ${gvc.bindView(() => {
2719
- return {
2720
- bind: filterID,
2721
- view: () => {
2722
- if (
2723
- !vm.dataList ||
2724
- !vm.dataList.find((dd: any) => {
2725
- return dd.checked;
2726
- })
2727
- ) {
2728
- return ``;
2729
- } else {
2320
+ ),
2321
+ BgWidget.tableV3({
2322
+ gvc: gvc,
2323
+ getData: (vmi) => {
2324
+ const limit = 20;
2325
+ ApiPost.getUserPost({
2326
+ page: vmi.page - 1,
2327
+ limit: limit,
2328
+ search: vm.query || undefined,
2329
+ type: 'userQuestion',
2330
+ }).then((data) => {
2331
+ vm.dataList = data.response.data;
2332
+ vmi.pageSize = Math.ceil(data.response.total / limit);
2333
+ vmi.originalData = vm.dataList;
2334
+ vmi.tableData = getDatalist();
2335
+ vmi.loading = false;
2336
+ vmi.callback();
2337
+
2338
+ if (type === 'select') {
2339
+ callback(
2340
+ vm.dataList.filter((dd: any) => {
2341
+ return dd.checked;
2342
+ })
2343
+ );
2344
+ }
2345
+ });
2346
+ },
2347
+ rowClick: (data, index) => {
2348
+ vm.type = 'replace';
2349
+ vm.data = vm.dataList[index];
2350
+ gvc.notifyDataChange(id);
2351
+ },
2352
+ filter: [
2353
+ {
2354
+ name: '批量刪除',
2355
+ event: () => {
2730
2356
  const dialog = new ShareDialog(gvc.glitter);
2731
- const selCount = vm.dataList.filter((dd: any) => dd.checked).length;
2732
- return BgWidget.selNavbar({
2733
- count: selCount,
2734
- buttonList: [
2735
- BgWidget.selEventButton(
2736
- '批量移除',
2737
- gvc.event(() => {
2738
- dialog.checkYesOrNot({
2739
- text: '是否確認刪除所選項目?',
2740
- callback: (response) => {
2741
- if (response) {
2742
- dialog.dataLoading({ visible: true });
2743
- ApiPost.deleteUserPost({
2744
- id: vm.dataList
2745
- .filter((dd: any) => {
2746
- return dd.checked;
2747
- })
2748
- .map((dd: any) => {
2749
- return dd.id;
2750
- })
2751
- .join(`,`),
2752
- }).then((res) => {
2753
- dialog.dataLoading({ visible: false });
2754
- if (res.result) {
2755
- vm.dataList = undefined;
2756
- gvc.notifyDataChange(id);
2757
- } else {
2758
- dialog.errorMessage({ text: '刪除失敗' });
2759
- }
2760
- });
2761
- }
2762
- },
2763
- });
2764
- })
2765
- ),
2766
- ],
2357
+ dialog.checkYesOrNot({
2358
+ text: '是否確認刪除所選項目?',
2359
+ callback: (response) => {
2360
+ if (response) {
2361
+ dialog.dataLoading({ visible: true });
2362
+ ApiPost.deleteUserPost({
2363
+ id: vm.dataList
2364
+ .filter((dd: any) => {
2365
+ return dd.checked;
2366
+ })
2367
+ .map((dd: any) => {
2368
+ return dd.id;
2369
+ })
2370
+ .join(`,`),
2371
+ }).then((res) => {
2372
+ dialog.dataLoading({ visible: false });
2373
+ if (res.result) {
2374
+ vm.dataList = undefined;
2375
+ gvc.notifyDataChange(id);
2376
+ } else {
2377
+ dialog.errorMessage({ text: '刪除失敗' });
2378
+ }
2379
+ });
2380
+ }
2381
+ },
2767
2382
  });
2768
- }
2769
- },
2770
- divCreate: () => {
2771
- return {
2772
- class: `d-flex align-items-center p-2 py-3 ${
2773
- !vm.dataList ||
2774
- !vm.dataList.find((dd: any) => {
2775
- return dd.checked;
2776
- }) ||
2777
- type === 'select'
2778
- ? `d-none`
2779
- : ``
2780
- }`,
2781
- style: ``,
2782
- };
2383
+ },
2783
2384
  },
2784
- };
2785
- })}
2786
- `,
2787
- })}
2385
+ ],
2386
+ }),
2387
+ ].join('')
2388
+ )}
2788
2389
  `);
2789
2390
  },
2790
2391
  divCreate: {