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
@@ -1,6 +1,5 @@
1
1
  import { BgWidget } from '../backend-manager/bg-widget.js';
2
2
  import { ApiUser } from '../glitter-base/route/user.js';
3
- import { ShareDialog } from '../glitterBundle/dialog/ShareDialog.js';
4
3
  import { EditorElem } from '../glitterBundle/plugins/editor-elem.js';
5
4
  const html = String.raw;
6
5
  export class MenusSetting {
@@ -22,10 +21,6 @@ export class MenusSetting {
22
21
  key: '選單名稱',
23
22
  value: html `<span class="tx_normal">${dd.title}</span>`,
24
23
  },
25
- {
26
- key: '編輯',
27
- value: html `<i class="fa-solid fa-pencil text-dark"></i>`,
28
- },
29
24
  ];
30
25
  });
31
26
  }
@@ -47,84 +42,24 @@ export class MenusSetting {
47
42
  }))
48
43
  : ''}
49
44
  </div>
50
- ${BgWidget.container(BgWidget.mainCard(BgWidget.tableV2({
45
+ ${BgWidget.container(BgWidget.mainCard(BgWidget.tableV3({
51
46
  gvc: gvc,
52
- getData: (vd) => {
53
- vmi = vd;
54
- vmi.pageSize = 1;
47
+ getData: (vmi) => {
55
48
  vm.dataList = [
56
49
  { tag: 'menu-setting', title: '主選單' },
57
50
  { tag: 'footer-setting', title: '頁腳' },
58
51
  ];
59
- vmi.data = getDatalist();
52
+ vmi.pageSize = 1;
53
+ vmi.originalData = vm.dataList;
54
+ vmi.tableData = getDatalist();
60
55
  vmi.loading = false;
61
- setTimeout(() => {
62
- vmi.callback();
63
- }, 100);
56
+ vmi.callback();
64
57
  },
65
58
  rowClick: (data, index) => {
66
59
  vm.index = index;
67
60
  vm.type = 'replace';
68
61
  },
69
- filter: html `
70
- ${gvc.bindView(() => {
71
- return {
72
- bind: filterID,
73
- view: () => {
74
- const dialog = new ShareDialog(gvc.glitter);
75
- const selCount = vm.dataList.filter((dd) => dd.checked).length;
76
- return BgWidget.selNavbar({
77
- count: selCount,
78
- buttonList: [
79
- BgWidget.selEventButton('批量移除', gvc.event(() => {
80
- dialog.checkYesOrNot({
81
- text: '是否確認刪除所選項目?',
82
- callback: (response) => {
83
- if (response) {
84
- widget.event('loading', {
85
- title: '設定中...',
86
- });
87
- ApiUser.setPublicConfig({
88
- key: 'member_level_config',
89
- user_id: 'manager',
90
- value: {
91
- levels: vm.dataList.filter((dd) => {
92
- return !dd.checked;
93
- }),
94
- },
95
- }).then(() => {
96
- setTimeout(() => {
97
- widget.event('loading', {
98
- visible: false,
99
- });
100
- widget.event('success', {
101
- title: '設定成功',
102
- });
103
- gvc.notifyDataChange(id);
104
- }, 500);
105
- });
106
- }
107
- },
108
- });
109
- })),
110
- ],
111
- });
112
- },
113
- divCreate: () => {
114
- return {
115
- class: `d-flex align-items-center p-2 py-3 ${!vm.dataList ||
116
- !vm.dataList.find((dd) => {
117
- return dd.checked;
118
- })
119
- ? `d-none`
120
- : ``}`,
121
- style: ``,
122
- };
123
- },
124
- };
125
- })}
126
- `,
127
- style: ['width: auto;', 'width: 50px;'],
62
+ filter: [],
128
63
  })))}
129
64
  `);
130
65
  }
@@ -341,7 +276,7 @@ export class MenusSetting {
341
276
  })}"
342
277
  ></div>
343
278
  <div
344
- class="hoverF2 pe-2"
279
+ class="hoverF2 pe-2 my-1"
345
280
  style="width: 100%; justify-content: flex-start; align-items: center; gap: 8px; display: flex"
346
281
  >
347
282
  <i
@@ -1,7 +1,6 @@
1
1
  import { GVC } from '../glitterBundle/GVController.js';
2
2
  import { BgWidget } from '../backend-manager/bg-widget.js';
3
3
  import { ApiUser } from '../glitter-base/route/user.js';
4
- import { ShareDialog } from '../glitterBundle/dialog/ShareDialog.js';
5
4
  import { EditorElem } from '../glitterBundle/plugins/editor-elem.js';
6
5
 
7
6
  const html = String.raw;
@@ -38,10 +37,6 @@ export class MenusSetting {
38
37
  key: '選單名稱',
39
38
  value: html`<span class="tx_normal">${dd.title}</span>`,
40
39
  },
41
- {
42
- key: '編輯',
43
- value: html`<i class="fa-solid fa-pencil text-dark"></i>`,
44
- },
45
40
  ];
46
41
  });
47
42
  }
@@ -69,89 +64,24 @@ export class MenusSetting {
69
64
  </div>
70
65
  ${BgWidget.container(
71
66
  BgWidget.mainCard(
72
- BgWidget.tableV2({
67
+ BgWidget.tableV3({
73
68
  gvc: gvc,
74
- getData: (vd) => {
75
- vmi = vd;
76
- vmi.pageSize = 1;
69
+ getData: (vmi) => {
77
70
  vm.dataList = [
78
71
  { tag: 'menu-setting', title: '主選單' },
79
72
  { tag: 'footer-setting', title: '頁腳' },
80
73
  ];
81
- vmi.data = getDatalist();
74
+ vmi.pageSize = 1;
75
+ vmi.originalData = vm.dataList;
76
+ vmi.tableData = getDatalist();
82
77
  vmi.loading = false;
83
- setTimeout(() => {
84
- vmi.callback();
85
- }, 100);
78
+ vmi.callback();
86
79
  },
87
80
  rowClick: (data, index) => {
88
81
  vm.index = index;
89
82
  vm.type = 'replace';
90
83
  },
91
- filter: html`
92
- ${gvc.bindView(() => {
93
- return {
94
- bind: filterID,
95
- view: () => {
96
- const dialog = new ShareDialog(gvc.glitter);
97
- const selCount = vm.dataList.filter((dd: any) => dd.checked).length;
98
- return BgWidget.selNavbar({
99
- count: selCount,
100
- buttonList: [
101
- BgWidget.selEventButton(
102
- '批量移除',
103
- gvc.event(() => {
104
- dialog.checkYesOrNot({
105
- text: '是否確認刪除所選項目?',
106
- callback: (response) => {
107
- if (response) {
108
- widget.event('loading', {
109
- title: '設定中...',
110
- });
111
- ApiUser.setPublicConfig({
112
- key: 'member_level_config',
113
- user_id: 'manager',
114
- value: {
115
- levels: vm.dataList.filter((dd: any) => {
116
- return !dd.checked;
117
- }),
118
- },
119
- }).then(() => {
120
- setTimeout(() => {
121
- widget.event('loading', {
122
- visible: false,
123
- });
124
- widget.event('success', {
125
- title: '設定成功',
126
- });
127
- gvc.notifyDataChange(id);
128
- }, 500);
129
- });
130
- }
131
- },
132
- });
133
- })
134
- ),
135
- ],
136
- });
137
- },
138
- divCreate: () => {
139
- return {
140
- class: `d-flex align-items-center p-2 py-3 ${
141
- !vm.dataList ||
142
- !vm.dataList.find((dd: any) => {
143
- return dd.checked;
144
- })
145
- ? `d-none`
146
- : ``
147
- }`,
148
- style: ``,
149
- };
150
- },
151
- };
152
- })}
153
- `,
154
- style: ['width: auto;', 'width: 50px;'],
84
+ filter: [],
155
85
  })
156
86
  )
157
87
  )}
@@ -387,7 +317,7 @@ export class MenusSetting {
387
317
  })}"
388
318
  ></div>
389
319
  <div
390
- class="hoverF2 pe-2"
320
+ class="hoverF2 pe-2 my-1"
391
321
  style="width: 100%; justify-content: flex-start; align-items: center; gap: 8px; display: flex"
392
322
  >
393
323
  <i
@@ -1,5 +1,4 @@
1
1
  import { BgWidget } from '../backend-manager/bg-widget.js';
2
- import { EditorElem } from '../glitterBundle/plugins/editor-elem.js';
3
2
  import { ApiUser } from '../glitter-base/route/user.js';
4
3
  import { ShareDialog } from '../glitterBundle/dialog/ShareDialog.js';
5
4
  import { FilterOptions } from './filter-options.js';
@@ -84,33 +83,6 @@ export class PermissionSetting {
84
83
  function getDatalist() {
85
84
  return vm.dataList.map((dd) => {
86
85
  return [
87
- {
88
- key: EditorElem.checkBoxOnly({
89
- gvc: gvc,
90
- def: !vm.dataList.find((dd) => {
91
- return !dd.checked;
92
- }),
93
- callback: (result) => {
94
- vm.dataList.map((dd) => {
95
- dd.checked = result;
96
- });
97
- vmi.data = getDatalist();
98
- vmi.callback();
99
- gvc.notifyDataChange(vm.filterId);
100
- },
101
- }),
102
- value: EditorElem.checkBoxOnly({
103
- gvc: gvc,
104
- def: dd.checked,
105
- callback: (result) => {
106
- dd.checked = result;
107
- vmi.data = getDatalist();
108
- vmi.callback();
109
- gvc.notifyDataChange(vm.filterId);
110
- },
111
- style: 'height:25px;',
112
- }),
113
- },
114
86
  {
115
87
  key: '員工名稱',
116
88
  value: `<span class="fs-7">${dd.config.name}</span>`,
@@ -132,10 +104,12 @@ export class PermissionSetting {
132
104
  return [];
133
105
  }
134
106
  else {
135
- return [{
107
+ return [
108
+ {
136
109
  key: '最後登入',
137
110
  value: dd.online_time ? html `<span class="fs-7">${glitter.ut.dateFormat(new Date(dd.online_time), 'yyyy-MM-dd hh:mm')}</span>` : '...',
138
- },];
111
+ },
112
+ ];
139
113
  }
140
114
  })(),
141
115
  {
@@ -178,10 +152,12 @@ export class PermissionSetting {
178
152
  return [];
179
153
  }
180
154
  else {
181
- return [{
155
+ return [
156
+ {
182
157
  key: '邀請狀態',
183
158
  value: dd.invited ? BgWidget.infoInsignia('已接受') : BgWidget.notifyInsignia('邀請中'),
184
- }];
159
+ },
160
+ ];
185
161
  }
186
162
  })(),
187
163
  ];
@@ -200,7 +176,7 @@ export class PermissionSetting {
200
176
  vm.type = 'add';
201
177
  }))}
202
178
  </div>
203
-
179
+
204
180
  ${BgWidget.mainCard([
205
181
  (() => {
206
182
  const id = gvc.glitter.getUUID();
@@ -260,7 +236,7 @@ export class PermissionSetting {
260
236
  gvc.bindView({
261
237
  bind: vm.tableId,
262
238
  view: () => {
263
- return BgWidget.tableV2({
239
+ return BgWidget.tableV3({
264
240
  gvc: gvc,
265
241
  getData: (vd) => {
266
242
  vmi = vd;
@@ -273,9 +249,11 @@ export class PermissionSetting {
273
249
  orderBy: vm.orderString,
274
250
  filter: vm.filter,
275
251
  }).then((data) => {
276
- vmi.pageSize = Math.ceil(data.response.total / limit);
277
252
  vm.dataList = data.response.data;
278
- vmi.data = getDatalist();
253
+ vmi.pageSize = Math.ceil(data.response.total / limit);
254
+ vmi.originalData = vm.dataList;
255
+ vmi.tableData = getDatalist();
256
+ vmi.loading = false;
279
257
  vmi.callback();
280
258
  });
281
259
  },
@@ -283,68 +261,53 @@ export class PermissionSetting {
283
261
  vm.data = vm.dataList[index];
284
262
  vm.type = 'replace';
285
263
  },
286
- filter: gvc.bindView(() => {
287
- return {
288
- bind: vm.filterId,
289
- view: () => {
264
+ filter: [
265
+ {
266
+ name: '批量刪除',
267
+ event: () => {
290
268
  const dialog = new ShareDialog(gvc.glitter);
291
- const selCount = vm.dataList.filter((dd) => dd.checked).length;
292
- return BgWidget.selNavbar({
293
- count: selCount,
294
- buttonList: [
295
- BgWidget.selEventButton('批量刪除', gvc.event(() => {
296
- dialog.warningMessage({
297
- text: '您即將批量刪除所選員工的所有資料<br />此操作無法復原。確定要刪除嗎?',
298
- callback: (response) => {
299
- if (response) {
300
- let n = 0;
301
- const emails = vm.dataList
302
- .filter((dd) => {
303
- return dd.checked;
304
- })
305
- .map((dd) => {
306
- return dd.email || dd.config.verifyEmail;
307
- });
308
- dialog.dataLoading({ visible: true });
309
- new Promise((resolve, reject) => {
310
- for (const email of emails) {
311
- ApiUser.deletePermission(email).then((res) => {
312
- if (res.result && res.response.result) {
313
- if (++n === emails.length) {
314
- resolve();
315
- }
316
- }
317
- else {
318
- dialog.dataLoading({ visible: false });
319
- dialog.errorMessage({ text: '刪除失敗' });
320
- reject();
321
- }
322
- });
269
+ dialog.warningMessage({
270
+ text: '您即將批量刪除所選員工的所有資料<br />此操作無法復原。確定要刪除嗎?',
271
+ callback: (response) => {
272
+ if (response) {
273
+ let n = 0;
274
+ const emails = vm.dataList
275
+ .filter((dd) => {
276
+ return dd.checked;
277
+ })
278
+ .map((dd) => {
279
+ return dd.email || dd.config.verifyEmail;
280
+ });
281
+ dialog.dataLoading({ visible: true });
282
+ new Promise((resolve, reject) => {
283
+ for (const email of emails) {
284
+ ApiUser.deletePermission(email).then((res) => {
285
+ if (res.result && res.response.result) {
286
+ if (++n === emails.length) {
287
+ resolve();
323
288
  }
324
- }).then(() => {
289
+ }
290
+ else {
325
291
  dialog.dataLoading({ visible: false });
326
- dialog.successMessage({ text: '刪除成功' });
327
- setTimeout(() => {
328
- vm.dataList = undefined;
329
- gvc.notifyDataChange(vm.id);
330
- }, 400);
331
- });
332
- }
333
- },
292
+ dialog.errorMessage({ text: '刪除失敗' });
293
+ reject();
294
+ }
295
+ });
296
+ }
297
+ }).then(() => {
298
+ dialog.dataLoading({ visible: false });
299
+ dialog.successMessage({ text: '刪除成功' });
300
+ setTimeout(() => {
301
+ vm.dataList = undefined;
302
+ gvc.notifyDataChange(vm.id);
303
+ }, 300);
334
304
  });
335
- })),
336
- ],
305
+ }
306
+ },
337
307
  });
338
308
  },
339
- divCreate: () => {
340
- const display = !vm.dataList || !vm.dataList.find((dd) => dd.checked) ? 'd-none' : '';
341
- return {
342
- class: `d-flex align-items-center p-2 ${display}`,
343
- style: ``,
344
- };
345
- },
346
- };
347
- }),
309
+ },
310
+ ],
348
311
  });
349
312
  },
350
313
  }),
@@ -355,14 +318,14 @@ export class PermissionSetting {
355
318
  return this.editorDetailPos({
356
319
  vm: vm,
357
320
  gvc: gvc,
358
- type: 'replace'
321
+ type: 'replace',
359
322
  });
360
323
  }
361
324
  else {
362
325
  return this.editorDetail({
363
326
  vm: vm,
364
327
  gvc: gvc,
365
- type: 'replace'
328
+ type: 'replace',
366
329
  });
367
330
  }
368
331
  }
@@ -370,14 +333,14 @@ export class PermissionSetting {
370
333
  return this.editorDetailPos({
371
334
  vm: vm,
372
335
  gvc: gvc,
373
- type: 'add'
336
+ type: 'add',
374
337
  });
375
338
  }
376
339
  else {
377
340
  return this.editorDetail({
378
341
  vm: vm,
379
342
  gvc: gvc,
380
- type: 'add'
343
+ type: 'add',
381
344
  });
382
345
  }
383
346
  },
@@ -470,9 +433,11 @@ export class PermissionSetting {
470
433
  `),
471
434
  BgWidget.mainCard(html ` <div class="tx_700">權限指派</div>
472
435
  ${BgWidget.mbContainer(18)} ${this.permissionOptions(gvc, vm.data.config.auth)}`),
473
- ].filter((dd) => {
436
+ ]
437
+ .filter((dd) => {
474
438
  return dd;
475
- }).join(BgWidget.mbContainer(24)),
439
+ })
440
+ .join(BgWidget.mbContainer(24)),
476
441
  BgWidget.mbContainer(240),
477
442
  html ` <div class="update-bar-container">
478
443
  ${obj.type === 'replace'
@@ -634,7 +599,7 @@ export class PermissionSetting {
634
599
  default: vm.data.config.member_id,
635
600
  callback: (text) => {
636
601
  vm.data.config.member_id = text;
637
- }
602
+ },
638
603
  }),
639
604
  BgWidget.editeInput({
640
605
  gvc: gvc,
@@ -645,14 +610,14 @@ export class PermissionSetting {
645
610
  callback: (text) => {
646
611
  vm.data.config.pin = text;
647
612
  },
648
- pattern: "0-9",
613
+ pattern: '0-9',
649
614
  oninput: (text) => {
650
615
  if (text.length >= 6) {
651
616
  text.substring(0, 6);
652
617
  vm.data.config.pin = text;
653
618
  gvc.notifyDataChange(viewID);
654
619
  }
655
- }
620
+ },
656
621
  }),
657
622
  ]
658
623
  .filter((str) => {
@@ -663,10 +628,12 @@ export class PermissionSetting {
663
628
  })
664
629
  .join('')}
665
630
  </div>
666
- `)
667
- ].filter((dd) => {
631
+ `),
632
+ ]
633
+ .filter((dd) => {
668
634
  return dd;
669
- }).join(BgWidget.mbContainer(24)),
635
+ })
636
+ .join(BgWidget.mbContainer(24)),
670
637
  BgWidget.mbContainer(240),
671
638
  html ` <div class="update-bar-container">
672
639
  ${obj.type === 'replace'
@@ -719,7 +686,7 @@ export class PermissionSetting {
719
686
  dialog.infoMessage({ text: 'PIN碼長度需等於6' });
720
687
  return;
721
688
  }
722
- else if (!(/^[0-9]+$/.test(vm.data.config.pin))) {
689
+ else if (!/^[0-9]+$/.test(vm.data.config.pin)) {
723
690
  dialog.infoMessage({ text: 'PIN碼只能包含數字' });
724
691
  return;
725
692
  }
@@ -732,7 +699,7 @@ export class PermissionSetting {
732
699
  ApiUser.setPermission({
733
700
  email: obj.type === 'add' ? vm.data.email : original.email,
734
701
  config: vm.data.config,
735
- status: vm.data.status
702
+ status: vm.data.status,
736
703
  }).then((res) => {
737
704
  dialog.dataLoading({ visible: false });
738
705
  if (res.result) {