ts-glitter 13.3.5 → 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 (99) 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-graph-api.js +6 -11
  6. package/lowcode/backend-manager/bg-graph-api.ts +14 -20
  7. package/lowcode/backend-manager/bg-line.js +526 -1002
  8. package/lowcode/backend-manager/bg-line.ts +1815 -2354
  9. package/lowcode/backend-manager/bg-notify.js +392 -746
  10. package/lowcode/backend-manager/bg-notify.ts +436 -835
  11. package/lowcode/backend-manager/bg-project.js +176 -293
  12. package/lowcode/backend-manager/bg-project.ts +214 -344
  13. package/lowcode/backend-manager/bg-recommend.js +39 -148
  14. package/lowcode/backend-manager/bg-recommend.ts +43 -162
  15. package/lowcode/backend-manager/bg-sns.js +489 -814
  16. package/lowcode/backend-manager/bg-sns.ts +1876 -2238
  17. package/lowcode/backend-manager/bg-widget.js +301 -171
  18. package/lowcode/backend-manager/bg-widget.ts +324 -193
  19. package/lowcode/cms-plugin/ai-points.js +84 -67
  20. package/lowcode/cms-plugin/ai-points.ts +280 -247
  21. package/lowcode/cms-plugin/auto-reply.js +6 -7
  22. package/lowcode/cms-plugin/auto-reply.ts +6 -7
  23. package/lowcode/cms-plugin/data-analyze.js +5 -6
  24. package/lowcode/cms-plugin/data-analyze.ts +5 -6
  25. package/lowcode/cms-plugin/form-setting.js +122 -220
  26. package/lowcode/cms-plugin/form-setting.ts +124 -240
  27. package/lowcode/cms-plugin/line-auto-reply.js +17 -18
  28. package/lowcode/cms-plugin/line-auto-reply.ts +29 -36
  29. package/lowcode/cms-plugin/member-group-list.js +5 -2
  30. package/lowcode/cms-plugin/member-group-list.ts +5 -2
  31. package/lowcode/cms-plugin/member-type-list.js +36 -84
  32. package/lowcode/cms-plugin/member-type-list.ts +39 -92
  33. package/lowcode/cms-plugin/menus-setting.js +8 -73
  34. package/lowcode/cms-plugin/menus-setting.ts +8 -78
  35. package/lowcode/cms-plugin/permission-setting.js +73 -106
  36. package/lowcode/cms-plugin/permission-setting.ts +236 -278
  37. package/lowcode/cms-plugin/shopping-collections.js +95 -137
  38. package/lowcode/cms-plugin/shopping-collections.ts +103 -147
  39. package/lowcode/cms-plugin/shopping-discount-setting.js +310 -416
  40. package/lowcode/cms-plugin/shopping-discount-setting.ts +1269 -1386
  41. package/lowcode/cms-plugin/shopping-finance-setting.js +1 -0
  42. package/lowcode/cms-plugin/shopping-finance-setting.ts +1 -0
  43. package/lowcode/cms-plugin/shopping-order-manager.js +742 -973
  44. package/lowcode/cms-plugin/shopping-order-manager.ts +1928 -2164
  45. package/lowcode/cms-plugin/shopping-order-return.js +147 -267
  46. package/lowcode/cms-plugin/shopping-order-return.ts +154 -292
  47. package/lowcode/cms-plugin/shopping-product-setting.js +6 -2
  48. package/lowcode/cms-plugin/shopping-product-setting.ts +8 -4
  49. package/lowcode/cms-plugin/shopping-product-stock.js +12 -92
  50. package/lowcode/cms-plugin/shopping-product-stock.ts +14 -94
  51. package/lowcode/cms-plugin/shopping-product-text.js +0 -3
  52. package/lowcode/cms-plugin/shopping-product-text.ts +0 -3
  53. package/lowcode/cms-plugin/shopping-rebate.js +95 -151
  54. package/lowcode/cms-plugin/shopping-rebate.ts +101 -159
  55. package/lowcode/cms-plugin/sms-points.js +83 -67
  56. package/lowcode/cms-plugin/sms-points.ts +281 -241
  57. package/lowcode/cms-plugin/sns-auto-reply.js +18 -18
  58. package/lowcode/cms-plugin/sns-auto-reply.ts +34 -40
  59. package/lowcode/cms-plugin/user-list.js +71 -90
  60. package/lowcode/cms-plugin/user-list.ts +76 -95
  61. package/lowcode/cms-plugin/web-config-setting.js +61 -111
  62. package/lowcode/cms-plugin/web-config-setting.ts +65 -124
  63. package/lowcode/css/editor.css +5 -2
  64. package/lowcode/glitter-base/route/shopping.js +1 -1
  65. package/lowcode/glitter-base/route/shopping.ts +19 -19
  66. package/lowcode/jspage/editor.js +1 -1
  67. package/lowcode/jspage/editor.ts +1 -1
  68. package/lowcode/jspage/main.js +3 -0
  69. package/lowcode/jspage/main.ts +3 -0
  70. package/package.json +1 -2
  71. package/src/api-public/controllers/ai-chat.js.map +5 -1
  72. package/src/api-public/controllers/article.js.map +1 -1
  73. package/src/api-public/controllers/chat.js.map +1 -1
  74. package/src/api-public/controllers/fb-message.js.map +1 -1
  75. package/src/api-public/controllers/index.js.map +1 -1
  76. package/src/api-public/controllers/line-message.js.map +1 -1
  77. package/src/api-public/controllers/rebate.js.map +1 -1
  78. package/src/api-public/controllers/shop.js.map +1 -1
  79. package/src/api-public/controllers/user.js.map +1 -1
  80. package/src/api-public/services/auto-send-email.js.map +1 -1
  81. package/src/api-public/services/chat.js +3 -3
  82. package/src/api-public/services/chat.js.map +1 -1
  83. package/src/api-public/services/chat.ts +2 -3
  84. package/src/api-public/services/fb-message.js.map +5 -1
  85. package/src/api-public/services/filter-protect-data.js.map +1 -1
  86. package/src/api-public/services/line-message.js.map +1 -1
  87. package/src/api-public/services/monitor.js.map +1 -1
  88. package/src/api-public/services/notify.js.map +1 -1
  89. package/src/api-public/services/rebate.js.map +1 -1
  90. package/src/api-public/services/schedule.js.map +1 -1
  91. package/src/api-public/services/share-permission.js.map +1 -1
  92. package/src/api-public/services/shopping.js.map +1 -1
  93. package/src/api-public/services/user.js +67 -66
  94. package/src/api-public/services/user.js.map +1 -1
  95. package/src/api-public/services/user.ts +212 -182
  96. package/src/helper/glitter-util.js.map +1 -1
  97. package/src/modules/firebase.d.ts +1 -0
  98. package/src/modules/firebase.js +1 -1
  99. package/src/modules/firebase.js.map +1 -1
@@ -27,43 +27,6 @@ export class FormSetting {
27
27
  function getDatalist() {
28
28
  return vm.dataList.map((dd: any) => {
29
29
  return [
30
- {
31
- key: EditorElem.checkBoxOnly({
32
- gvc: gvc,
33
- def: !vm.dataList.find((dd: any) => {
34
- return !dd.checked;
35
- }),
36
- callback: (result) => {
37
- vm.dataList.map((dd: any) => {
38
- dd.checked = result;
39
- });
40
- vmi.data = getDatalist();
41
- vmi.callback();
42
- gvc.notifyDataChange(filterID);
43
- callback(
44
- vm.dataList.filter((dd: any) => {
45
- return dd.checked;
46
- })
47
- );
48
- },
49
- }),
50
- value: EditorElem.checkBoxOnly({
51
- gvc: gvc,
52
- def: dd.checked,
53
- callback: (result) => {
54
- dd.checked = result;
55
- vmi.data = getDatalist();
56
- vmi.callback();
57
- gvc.notifyDataChange(filterID);
58
- callback(
59
- vm.dataList.filter((dd: any) => {
60
- return dd.checked;
61
- })
62
- );
63
- },
64
- style: 'height:25px;',
65
- }),
66
- },
67
30
  {
68
31
  key: '表單標題',
69
32
  value: html`<span class="fs-7">${dd.content.form_title}</span>`,
@@ -107,96 +70,74 @@ export class FormSetting {
107
70
  </div>
108
71
  ${BgWidget.container(
109
72
  BgWidget.mainCard(
110
- BgWidget.tableV2({
111
- gvc: gvc,
112
- getData: (vd) => {
113
- vmi = vd;
114
- ApiPost.getManagerPost({
115
- page: vmi.page - 1,
116
- limit: 20,
117
- type: 'form_format_list',
118
- search: vm.query ? [`form_title-|>${vm.query}`] : [],
119
- }).then((data) => {
120
- vmi.pageSize = Math.ceil(data.response.total / 20);
121
- vm.dataList = data.response.data;
122
- vmi.data = getDatalist();
123
- vmi.loading = false;
124
- vmi.callback();
125
- });
126
- },
127
- rowClick: (data, index) => {
128
- vm.data = vm.dataList[index];
129
- vm.type = 'replace';
130
- },
131
- filter: html`
132
- ${BgWidget.searchPlace(
133
- gvc.event((e, event) => {
134
- vm.query = e.value;
135
- gvc.notifyDataChange(id);
136
- }),
137
- vm.query || '',
138
- '搜尋所有表單'
139
- )}
140
- ${gvc.bindView(() => {
141
- return {
142
- bind: filterID,
143
- view: () => {
73
+ [
74
+ BgWidget.searchPlace(
75
+ gvc.event((e, event) => {
76
+ vm.query = e.value;
77
+ gvc.notifyDataChange(id);
78
+ }),
79
+ vm.query || '',
80
+ '搜尋所有表單'
81
+ ),
82
+ BgWidget.tableV3({
83
+ gvc: gvc,
84
+ getData: (vd) => {
85
+ vmi = vd;
86
+ const limit = 20;
87
+ ApiPost.getManagerPost({
88
+ page: vmi.page - 1,
89
+ limit: limit,
90
+ type: 'form_format_list',
91
+ search: vm.query ? [`form_title-|>${vm.query}`] : [],
92
+ }).then((data) => {
93
+ vm.dataList = data.response.data;
94
+ vmi.pageSize = Math.ceil(data.response.total / limit);
95
+ vmi.originalData = vm.dataList;
96
+ vmi.tableData = getDatalist();
97
+ vmi.loading = false;
98
+ vmi.callback();
99
+ });
100
+ },
101
+ rowClick: (data, index) => {
102
+ vm.data = vm.dataList[index];
103
+ vm.type = 'replace';
104
+ },
105
+ filter: [
106
+ {
107
+ name: '批量移除',
108
+ event: () => {
144
109
  const dialog = new ShareDialog(gvc.glitter);
145
- const selCount = vm.dataList.filter((dd: any) => dd.checked).length;
146
- return BgWidget.selNavbar({
147
- count: selCount,
148
- buttonList: [
149
- BgWidget.selEventButton(
150
- '批量移除',
151
- gvc.event(() => {
152
- dialog.checkYesOrNot({
153
- text: '是否確認刪除所選項目?',
154
- callback: (response) => {
155
- if (response) {
156
- dialog.dataLoading({ visible: true });
157
- ApiPost.delete({
158
- id: vm.dataList
159
- .filter((dd: any) => {
160
- return dd.checked;
161
- })
162
- .map((dd: any) => {
163
- return dd.id;
164
- })
165
- .join(`,`),
166
- }).then((res) => {
167
- dialog.dataLoading({ visible: false });
168
- if (res.result) {
169
- vm.dataList = undefined;
170
- gvc.notifyDataChange(id);
171
- } else {
172
- dialog.errorMessage({ text: '刪除失敗' });
173
- }
174
- });
175
- }
176
- },
177
- });
178
- })
179
- ),
180
- ],
110
+ dialog.checkYesOrNot({
111
+ text: '是否確認刪除所選項目?',
112
+ callback: (response) => {
113
+ if (response) {
114
+ dialog.dataLoading({ visible: true });
115
+ ApiPost.delete({
116
+ id: vm.dataList
117
+ .filter((dd: any) => {
118
+ return dd.checked;
119
+ })
120
+ .map((dd: any) => {
121
+ return dd.id;
122
+ })
123
+ .join(`,`),
124
+ }).then((res) => {
125
+ dialog.dataLoading({ visible: false });
126
+ if (res.result) {
127
+ vm.dataList = undefined;
128
+ gvc.notifyDataChange(id);
129
+ } else {
130
+ dialog.errorMessage({ text: '刪除失敗' });
131
+ }
132
+ });
133
+ }
134
+ },
181
135
  });
182
136
  },
183
- divCreate: () => {
184
- return {
185
- class: `mt-2 d-flex align-items-center p-2 py-3 ${
186
- !vm.dataList ||
187
- !vm.dataList.find((dd: any) => {
188
- return dd.checked;
189
- })
190
- ? `d-none`
191
- : ``
192
- }`,
193
- style: ``,
194
- };
195
- },
196
- };
197
- })}
198
- `,
199
- })
137
+ },
138
+ ],
139
+ }),
140
+ ].join('')
200
141
  )
201
142
  )}
202
143
  `,
@@ -236,43 +177,6 @@ export class FormSetting {
236
177
  function getDatalist() {
237
178
  return vm.dataList.map((dd: any) => {
238
179
  return [
239
- {
240
- key: EditorElem.checkBoxOnly({
241
- gvc: gvc,
242
- def: !vm.dataList.find((dd: any) => {
243
- return !dd.checked;
244
- }),
245
- callback: (result) => {
246
- vm.dataList.map((dd: any) => {
247
- dd.checked = result;
248
- });
249
- vmi.data = getDatalist();
250
- vmi.callback();
251
- gvc.notifyDataChange(filterID);
252
- callback(
253
- vm.dataList.filter((dd: any) => {
254
- return dd.checked;
255
- })
256
- );
257
- },
258
- }),
259
- value: EditorElem.checkBoxOnly({
260
- gvc: gvc,
261
- def: dd.checked,
262
- callback: (result) => {
263
- dd.checked = result;
264
- vmi.data = getDatalist();
265
- vmi.callback();
266
- gvc.notifyDataChange(filterID);
267
- callback(
268
- vm.dataList.filter((dd: any) => {
269
- return dd.checked;
270
- })
271
- );
272
- },
273
- style: 'height:25px;',
274
- }),
275
- },
276
180
  {
277
181
  key: '表單標題',
278
182
  value: `<span class="fs-7">${dd.content.form_title}</span>`,
@@ -300,28 +204,8 @@ export class FormSetting {
300
204
  </div>
301
205
  ${BgWidget.container(
302
206
  BgWidget.mainCard(
303
- BgWidget.tableV2({
304
- gvc: gvc,
305
- getData: (vd) => {
306
- vmi = vd;
307
- ApiPost.getV2({
308
- page: vmi.page - 1,
309
- limit: 20,
310
- type: 'user',
311
- search: vm.query ? `form_title-|>${vm.query},type->post-form-config` : `type->post-form-config`,
312
- }).then((data) => {
313
- vmi.pageSize = Math.ceil(data.response.total / 20);
314
- vm.dataList = data.response.data;
315
- vmi.data = getDatalist();
316
- vmi.loading = false;
317
- vmi.callback();
318
- });
319
- },
320
- rowClick: (data, index) => {
321
- vm.data = vm.dataList[index];
322
- vm.type = 'replace';
323
- },
324
- filter: html`
207
+ [
208
+ html`<div class="mb-3 px-2">
325
209
  ${BgWidget.searchPlace(
326
210
  gvc.event((e, event) => {
327
211
  vm.query = e.value;
@@ -330,66 +214,66 @@ export class FormSetting {
330
214
  vm.query || '',
331
215
  '搜尋所有表單'
332
216
  )}
333
- ${gvc.bindView(() => {
334
- return {
335
- bind: filterID,
336
- view: () => {
217
+ </div>`,
218
+ BgWidget.tableV3({
219
+ gvc: gvc,
220
+ getData: (vd) => {
221
+ vmi = vd;
222
+ const limit = 20;
223
+ ApiPost.getV2({
224
+ page: vmi.page - 1,
225
+ limit: limit,
226
+ type: 'user',
227
+ search: vm.query ? `form_title-|>${vm.query},type->post-form-config` : `type->post-form-config`,
228
+ }).then((data) => {
229
+ vm.dataList = data.response.data;
230
+ vmi.pageSize = Math.ceil(data.response.total / limit);
231
+ vmi.originalData = vm.dataList;
232
+ vmi.tableData = getDatalist();
233
+ vmi.loading = false;
234
+ vmi.callback();
235
+ });
236
+ },
237
+ rowClick: (data, index) => {
238
+ vm.data = vm.dataList[index];
239
+ vm.type = 'replace';
240
+ },
241
+ filter: [
242
+ {
243
+ name: '批量移除',
244
+ event: () => {
337
245
  const dialog = new ShareDialog(gvc.glitter);
338
- const selCount = vm.dataList.filter((dd: any) => dd.checked).length;
339
- return BgWidget.selNavbar({
340
- count: selCount,
341
- buttonList: [
342
- BgWidget.selEventButton(
343
- '批量移除',
344
- gvc.event(() => {
345
- dialog.checkYesOrNot({
346
- text: '是否確認刪除所選項目?',
347
- callback: (response) => {
348
- if (response) {
349
- dialog.dataLoading({ visible: true });
350
- ApiPost.deleteUserPost({
351
- id: vm.dataList
352
- .filter((dd: any) => {
353
- return dd.checked;
354
- })
355
- .map((dd: any) => {
356
- return dd.id;
357
- })
358
- .join(`,`),
359
- }).then((res) => {
360
- dialog.dataLoading({ visible: false });
361
- if (res.result) {
362
- vm.dataList = undefined;
363
- gvc.notifyDataChange(id);
364
- } else {
365
- dialog.errorMessage({ text: '刪除失敗' });
366
- }
367
- });
368
- }
369
- },
370
- });
371
- })
372
- ),
373
- ],
246
+ dialog.checkYesOrNot({
247
+ text: '是否確認刪除所選項目?',
248
+ callback: (response) => {
249
+ if (response) {
250
+ dialog.dataLoading({ visible: true });
251
+ ApiPost.deleteUserPost({
252
+ id: vm.dataList
253
+ .filter((dd: any) => {
254
+ return dd.checked;
255
+ })
256
+ .map((dd: any) => {
257
+ return dd.id;
258
+ })
259
+ .join(`,`),
260
+ }).then((res) => {
261
+ dialog.dataLoading({ visible: false });
262
+ if (res.result) {
263
+ vm.dataList = undefined;
264
+ gvc.notifyDataChange(id);
265
+ } else {
266
+ dialog.errorMessage({ text: '刪除失敗' });
267
+ }
268
+ });
269
+ }
270
+ },
374
271
  });
375
272
  },
376
- divCreate: () => {
377
- return {
378
- class: `d-flex align-items-center p-2 mt-2 py-3 ${
379
- !vm.dataList ||
380
- !vm.dataList.find((dd: any) => {
381
- return dd.checked;
382
- })
383
- ? `d-none`
384
- : ``
385
- }`,
386
- style: ``,
387
- };
388
- },
389
- };
390
- })}
391
- `,
392
- })
273
+ },
274
+ ],
275
+ }),
276
+ ].join('')
393
277
  )
394
278
  )}
395
279
  `,
@@ -12,7 +12,7 @@ import { BgWidget } from '../backend-manager/bg-widget.js';
12
12
  import { Tool } from '../modules/tool.js';
13
13
  import { ApiUser } from '../glitter-base/route/user.js';
14
14
  import { EditorElem } from '../glitterBundle/plugins/editor-elem.js';
15
- import { ShareDialog } from "../dialog/ShareDialog.js";
15
+ import { ShareDialog } from '../dialog/ShareDialog.js';
16
16
  const html = String.raw;
17
17
  export class AutoReply {
18
18
  static main(gvc, widget) {
@@ -23,9 +23,9 @@ export class AutoReply {
23
23
  tag: '',
24
24
  query: '',
25
25
  userData: {
26
- userName: "",
27
- password: ""
28
- }
26
+ userName: '',
27
+ password: '',
28
+ },
29
29
  };
30
30
  const glitter = gvc.glitter;
31
31
  const id = glitter.getUUID();
@@ -104,7 +104,7 @@ export class AutoReply {
104
104
  ${BgWidget.title('LINE自動發送訊息')}
105
105
  <div class="flex-fill"></div>
106
106
  </div>
107
- ${BgWidget.container(BgWidget.mainCard(BgWidget.tableV2({
107
+ ${BgWidget.container(BgWidget.mainCard(BgWidget.tableV3({
108
108
  gvc: gvc,
109
109
  getData: (vmk) => __awaiter(this, void 0, void 0, function* () {
110
110
  const appData = yield ApiUser.getPublicConfig('store-information', 'manager');
@@ -124,18 +124,17 @@ export class AutoReply {
124
124
  vm.dataList[index].title = vm.dataList[index].title.replace(/@\{\{app_name\}\}/g, (appData.response.value && appData.response.value.shop_name) || '商店名稱');
125
125
  index++;
126
126
  }
127
- vmi.data = getDatalist();
127
+ vmi.originalData = vm.dataList;
128
+ vmi.tableData = getDatalist();
128
129
  vmi.loading = false;
129
- setTimeout(() => {
130
- vmi.callback();
131
- });
130
+ vmi.callback();
132
131
  }),
133
132
  rowClick: (data, index) => {
134
133
  vm.tag = vm.dataList[index].tag;
135
134
  vm.type = 'replace';
136
135
  gvc.notifyDataChange(id);
137
136
  },
138
- filter: '',
137
+ filter: [],
139
138
  })))}
140
139
  ${BgWidget.mbContainer(240)}
141
140
  `, BgWidget.getContainerWidth());
@@ -206,16 +205,16 @@ export class AutoReply {
206
205
  placeHolder: '請輸入寄件者名稱',
207
206
  }),
208
207
  html `
209
- <div class="d-flex mt-3 mb-2" >
208
+ <div class="d-flex mt-3 mb-2">
210
209
  <div class="d-flex" style="color: #393939;font-size: 15px;">簡訊內容</div>
211
210
  <div class="d-flex align-items-end ms-3" style="font-size: 12px;color: #8D8D8D">預計每則簡訊花費${pointCount * this.ticket}點</div>
212
211
  </div>
213
212
  `,
214
213
  EditorElem.editeText({
215
214
  gvc: gvc,
216
- title: "",
217
- default: vm.data.content || "",
218
- placeHolder: "",
215
+ title: '',
216
+ default: vm.data.content || '',
217
+ placeHolder: '',
219
218
  callback: (text) => {
220
219
  vm.data.content = text;
221
220
  let totalSize = 0;
@@ -232,11 +231,11 @@ export class AutoReply {
232
231
  pointCount = 1;
233
232
  }
234
233
  else {
235
- pointCount = Math.ceil(totalSize /= this.longSMS);
234
+ pointCount = Math.ceil((totalSize /= this.longSMS));
236
235
  }
237
236
  gvc.notifyDataChange(id);
238
- }
239
- })
237
+ },
238
+ }),
240
239
  ].join('');
241
240
  },
242
241
  };
@@ -265,7 +264,7 @@ export class AutoReply {
265
264
  });
266
265
  }
267
266
  },
268
- text: `確認無誤後將儲存。`
267
+ text: `確認無誤後將儲存。`,
269
268
  });
270
269
  }))}
271
270
  </div>`,