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.
- package/lowcode/Entry.js +1 -1
- package/lowcode/Entry.ts +1 -1
- package/lowcode/backend-manager/bg-blog.js +2 -7
- package/lowcode/backend-manager/bg-blog.ts +8 -13
- package/lowcode/backend-manager/bg-graph-api.js +6 -11
- package/lowcode/backend-manager/bg-graph-api.ts +14 -20
- package/lowcode/backend-manager/bg-line.js +526 -1002
- package/lowcode/backend-manager/bg-line.ts +1815 -2354
- package/lowcode/backend-manager/bg-notify.js +392 -746
- package/lowcode/backend-manager/bg-notify.ts +436 -835
- package/lowcode/backend-manager/bg-project.js +176 -293
- package/lowcode/backend-manager/bg-project.ts +214 -344
- package/lowcode/backend-manager/bg-recommend.js +39 -148
- package/lowcode/backend-manager/bg-recommend.ts +43 -162
- package/lowcode/backend-manager/bg-sns.js +489 -814
- package/lowcode/backend-manager/bg-sns.ts +1876 -2238
- package/lowcode/backend-manager/bg-widget.js +301 -171
- package/lowcode/backend-manager/bg-widget.ts +324 -193
- package/lowcode/cms-plugin/ai-points.js +84 -67
- package/lowcode/cms-plugin/ai-points.ts +280 -247
- package/lowcode/cms-plugin/auto-reply.js +6 -7
- package/lowcode/cms-plugin/auto-reply.ts +6 -7
- package/lowcode/cms-plugin/data-analyze.js +5 -6
- package/lowcode/cms-plugin/data-analyze.ts +5 -6
- package/lowcode/cms-plugin/form-setting.js +122 -220
- package/lowcode/cms-plugin/form-setting.ts +124 -240
- package/lowcode/cms-plugin/line-auto-reply.js +17 -18
- package/lowcode/cms-plugin/line-auto-reply.ts +29 -36
- package/lowcode/cms-plugin/member-group-list.js +5 -2
- package/lowcode/cms-plugin/member-group-list.ts +5 -2
- package/lowcode/cms-plugin/member-type-list.js +36 -84
- package/lowcode/cms-plugin/member-type-list.ts +39 -92
- package/lowcode/cms-plugin/menus-setting.js +8 -73
- package/lowcode/cms-plugin/menus-setting.ts +8 -78
- package/lowcode/cms-plugin/permission-setting.js +73 -106
- package/lowcode/cms-plugin/permission-setting.ts +236 -278
- package/lowcode/cms-plugin/shopping-collections.js +95 -137
- package/lowcode/cms-plugin/shopping-collections.ts +103 -147
- package/lowcode/cms-plugin/shopping-discount-setting.js +310 -416
- package/lowcode/cms-plugin/shopping-discount-setting.ts +1269 -1386
- package/lowcode/cms-plugin/shopping-finance-setting.js +1 -0
- package/lowcode/cms-plugin/shopping-finance-setting.ts +1 -0
- package/lowcode/cms-plugin/shopping-order-manager.js +742 -973
- package/lowcode/cms-plugin/shopping-order-manager.ts +1928 -2164
- package/lowcode/cms-plugin/shopping-order-return.js +147 -267
- package/lowcode/cms-plugin/shopping-order-return.ts +154 -292
- package/lowcode/cms-plugin/shopping-product-setting.js +6 -2
- package/lowcode/cms-plugin/shopping-product-setting.ts +8 -4
- package/lowcode/cms-plugin/shopping-product-stock.js +12 -92
- package/lowcode/cms-plugin/shopping-product-stock.ts +14 -94
- package/lowcode/cms-plugin/shopping-product-text.js +0 -3
- package/lowcode/cms-plugin/shopping-product-text.ts +0 -3
- package/lowcode/cms-plugin/shopping-rebate.js +95 -151
- package/lowcode/cms-plugin/shopping-rebate.ts +101 -159
- package/lowcode/cms-plugin/sms-points.js +83 -67
- package/lowcode/cms-plugin/sms-points.ts +281 -241
- package/lowcode/cms-plugin/sns-auto-reply.js +18 -18
- package/lowcode/cms-plugin/sns-auto-reply.ts +34 -40
- package/lowcode/cms-plugin/user-list.js +71 -90
- package/lowcode/cms-plugin/user-list.ts +76 -95
- package/lowcode/cms-plugin/web-config-setting.js +61 -111
- package/lowcode/cms-plugin/web-config-setting.ts +65 -124
- package/lowcode/css/editor.css +5 -2
- package/lowcode/glitter-base/route/shopping.js +1 -1
- package/lowcode/glitter-base/route/shopping.ts +19 -19
- package/lowcode/jspage/editor.js +1 -1
- package/lowcode/jspage/editor.ts +1 -1
- package/lowcode/jspage/main.js +3 -0
- package/lowcode/jspage/main.ts +3 -0
- package/package.json +1 -2
- package/src/api-public/controllers/ai-chat.js.map +5 -1
- package/src/api-public/controllers/article.js.map +1 -1
- package/src/api-public/controllers/chat.js.map +1 -1
- package/src/api-public/controllers/fb-message.js.map +1 -1
- package/src/api-public/controllers/index.js.map +1 -1
- package/src/api-public/controllers/line-message.js.map +1 -1
- package/src/api-public/controllers/rebate.js.map +1 -1
- package/src/api-public/controllers/shop.js.map +1 -1
- package/src/api-public/controllers/user.js.map +1 -1
- package/src/api-public/services/auto-send-email.js.map +1 -1
- package/src/api-public/services/chat.js +3 -3
- package/src/api-public/services/chat.js.map +1 -1
- package/src/api-public/services/chat.ts +2 -3
- package/src/api-public/services/fb-message.js.map +5 -1
- package/src/api-public/services/filter-protect-data.js.map +1 -1
- package/src/api-public/services/line-message.js.map +1 -1
- package/src/api-public/services/monitor.js.map +1 -1
- package/src/api-public/services/notify.js.map +1 -1
- package/src/api-public/services/rebate.js.map +1 -1
- package/src/api-public/services/schedule.js.map +1 -1
- package/src/api-public/services/share-permission.js.map +1 -1
- package/src/api-public/services/shopping.js.map +1 -1
- package/src/api-public/services/user.js +67 -66
- package/src/api-public/services/user.js.map +1 -1
- package/src/api-public/services/user.ts +212 -182
- package/src/helper/glitter-util.js.map +1 -1
- package/src/modules/firebase.d.ts +1 -0
- package/src/modules/firebase.js +1 -1
- package/src/modules/firebase.js.map +1 -1
|
@@ -57,10 +57,10 @@ interface PosPermissionItem {
|
|
|
57
57
|
}[];
|
|
58
58
|
name: string;
|
|
59
59
|
pin: string;
|
|
60
|
-
phone:string;
|
|
60
|
+
phone: string;
|
|
61
61
|
member_id: string;
|
|
62
62
|
title: string;
|
|
63
|
-
come_from:string;
|
|
63
|
+
come_from: string;
|
|
64
64
|
};
|
|
65
65
|
created_time: string;
|
|
66
66
|
updated_time: string;
|
|
@@ -98,15 +98,13 @@ type PosViewModel = {
|
|
|
98
98
|
filter: any;
|
|
99
99
|
};
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
|
|
103
101
|
export class PermissionSetting {
|
|
104
|
-
static main(gvc: GVC,edit_mode:'pos'|'backend') {
|
|
102
|
+
static main(gvc: GVC, edit_mode: 'pos' | 'backend') {
|
|
105
103
|
const glitter = gvc.glitter;
|
|
106
104
|
const dialog = new ShareDialog(glitter);
|
|
107
|
-
function getInitialData(){
|
|
108
|
-
if(edit_mode==='backend'){
|
|
109
|
-
const a:ViewModel={
|
|
105
|
+
function getInitialData() {
|
|
106
|
+
if (edit_mode === 'backend') {
|
|
107
|
+
const a: ViewModel = {
|
|
110
108
|
id: glitter.getUUID(),
|
|
111
109
|
filterId: glitter.getUUID(),
|
|
112
110
|
tableId: glitter.getUUID(),
|
|
@@ -134,10 +132,10 @@ export class PermissionSetting {
|
|
|
134
132
|
},
|
|
135
133
|
dataList: [],
|
|
136
134
|
filter: {},
|
|
137
|
-
}
|
|
138
|
-
return a
|
|
139
|
-
}else {
|
|
140
|
-
return
|
|
135
|
+
};
|
|
136
|
+
return a;
|
|
137
|
+
} else {
|
|
138
|
+
return {
|
|
141
139
|
id: glitter.getUUID(),
|
|
142
140
|
filterId: glitter.getUUID(),
|
|
143
141
|
tableId: glitter.getUUID(),
|
|
@@ -165,7 +163,7 @@ export class PermissionSetting {
|
|
|
165
163
|
},
|
|
166
164
|
dataList: [],
|
|
167
165
|
filter: {},
|
|
168
|
-
}
|
|
166
|
+
};
|
|
169
167
|
}
|
|
170
168
|
}
|
|
171
169
|
const vm: any = getInitialData();
|
|
@@ -176,40 +174,13 @@ export class PermissionSetting {
|
|
|
176
174
|
function getDatalist() {
|
|
177
175
|
return vm.dataList.map((dd: any) => {
|
|
178
176
|
return [
|
|
179
|
-
{
|
|
180
|
-
key: EditorElem.checkBoxOnly({
|
|
181
|
-
gvc: gvc,
|
|
182
|
-
def: !vm.dataList.find((dd: any) => {
|
|
183
|
-
return !dd.checked;
|
|
184
|
-
}),
|
|
185
|
-
callback: (result) => {
|
|
186
|
-
vm.dataList.map((dd: any) => {
|
|
187
|
-
dd.checked = result;
|
|
188
|
-
});
|
|
189
|
-
vmi.data = getDatalist();
|
|
190
|
-
vmi.callback();
|
|
191
|
-
gvc.notifyDataChange(vm.filterId);
|
|
192
|
-
},
|
|
193
|
-
}),
|
|
194
|
-
value: EditorElem.checkBoxOnly({
|
|
195
|
-
gvc: gvc,
|
|
196
|
-
def: dd.checked,
|
|
197
|
-
callback: (result) => {
|
|
198
|
-
dd.checked = result;
|
|
199
|
-
vmi.data = getDatalist();
|
|
200
|
-
vmi.callback();
|
|
201
|
-
gvc.notifyDataChange(vm.filterId);
|
|
202
|
-
},
|
|
203
|
-
style: 'height:25px;',
|
|
204
|
-
}),
|
|
205
|
-
},
|
|
206
177
|
{
|
|
207
178
|
key: '員工名稱',
|
|
208
179
|
value: `<span class="fs-7">${dd.config.name}</span>`,
|
|
209
180
|
},
|
|
210
181
|
{
|
|
211
182
|
key: '信箱帳號',
|
|
212
|
-
value: dd.email||dd.config.verifyEmail ? `<span class="fs-7">${dd.email||dd.config.verifyEmail}</span>` : BgWidget.warningInsignia('信箱尚未註冊'),
|
|
183
|
+
value: dd.email || dd.config.verifyEmail ? `<span class="fs-7">${dd.email || dd.config.verifyEmail}</span>` : BgWidget.warningInsignia('信箱尚未註冊'),
|
|
213
184
|
},
|
|
214
185
|
{
|
|
215
186
|
key: '電話',
|
|
@@ -219,14 +190,16 @@ export class PermissionSetting {
|
|
|
219
190
|
key: '職稱',
|
|
220
191
|
value: `<span class="fs-7">${dd.config.title}</span>`,
|
|
221
192
|
},
|
|
222
|
-
...(()=>{
|
|
223
|
-
if(edit_mode==='pos'){
|
|
224
|
-
return []
|
|
225
|
-
}else{
|
|
226
|
-
return
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
193
|
+
...(() => {
|
|
194
|
+
if (edit_mode === 'pos') {
|
|
195
|
+
return [];
|
|
196
|
+
} else {
|
|
197
|
+
return [
|
|
198
|
+
{
|
|
199
|
+
key: '最後登入',
|
|
200
|
+
value: dd.online_time ? html`<span class="fs-7">${glitter.ut.dateFormat(new Date(dd.online_time), 'yyyy-MM-dd hh:mm')}</span>` : '...',
|
|
201
|
+
},
|
|
202
|
+
];
|
|
230
203
|
}
|
|
231
204
|
})(),
|
|
232
205
|
{
|
|
@@ -270,14 +243,16 @@ export class PermissionSetting {
|
|
|
270
243
|
})()
|
|
271
244
|
),
|
|
272
245
|
},
|
|
273
|
-
...(()=>{
|
|
274
|
-
if(edit_mode==='pos'){
|
|
275
|
-
return []
|
|
276
|
-
}else{
|
|
277
|
-
return
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
246
|
+
...(() => {
|
|
247
|
+
if (edit_mode === 'pos') {
|
|
248
|
+
return [];
|
|
249
|
+
} else {
|
|
250
|
+
return [
|
|
251
|
+
{
|
|
252
|
+
key: '邀請狀態',
|
|
253
|
+
value: dd.invited ? BgWidget.infoInsignia('已接受') : BgWidget.notifyInsignia('邀請中'),
|
|
254
|
+
},
|
|
255
|
+
];
|
|
281
256
|
}
|
|
282
257
|
})(),
|
|
283
258
|
];
|
|
@@ -288,7 +263,6 @@ export class PermissionSetting {
|
|
|
288
263
|
bind: vm.id,
|
|
289
264
|
dataList: [{ obj: vm, key: 'type' }],
|
|
290
265
|
view: () => {
|
|
291
|
-
|
|
292
266
|
if (vm.type === 'list') {
|
|
293
267
|
return BgWidget.container(
|
|
294
268
|
html` <div class="d-flex w-100 align-items-center mb-3 mb-sm-3" style="gap: 14px;">
|
|
@@ -302,7 +276,7 @@ export class PermissionSetting {
|
|
|
302
276
|
})
|
|
303
277
|
)}
|
|
304
278
|
</div>
|
|
305
|
-
|
|
279
|
+
|
|
306
280
|
${BgWidget.mainCard(
|
|
307
281
|
[
|
|
308
282
|
(() => {
|
|
@@ -370,7 +344,7 @@ export class PermissionSetting {
|
|
|
370
344
|
gvc.bindView({
|
|
371
345
|
bind: vm.tableId,
|
|
372
346
|
view: () => {
|
|
373
|
-
return BgWidget.
|
|
347
|
+
return BgWidget.tableV3({
|
|
374
348
|
gvc: gvc,
|
|
375
349
|
getData: (vd) => {
|
|
376
350
|
vmi = vd;
|
|
@@ -383,9 +357,11 @@ export class PermissionSetting {
|
|
|
383
357
|
orderBy: vm.orderString,
|
|
384
358
|
filter: vm.filter,
|
|
385
359
|
}).then((data) => {
|
|
386
|
-
vmi.pageSize = Math.ceil(data.response.total / limit);
|
|
387
360
|
vm.dataList = data.response.data;
|
|
388
|
-
vmi.
|
|
361
|
+
vmi.pageSize = Math.ceil(data.response.total / limit);
|
|
362
|
+
vmi.originalData = vm.dataList;
|
|
363
|
+
vmi.tableData = getDatalist();
|
|
364
|
+
vmi.loading = false;
|
|
389
365
|
vmi.callback();
|
|
390
366
|
});
|
|
391
367
|
},
|
|
@@ -393,71 +369,53 @@ export class PermissionSetting {
|
|
|
393
369
|
vm.data = vm.dataList[index];
|
|
394
370
|
vm.type = 'replace';
|
|
395
371
|
},
|
|
396
|
-
filter:
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
372
|
+
filter: [
|
|
373
|
+
{
|
|
374
|
+
name: '批量刪除',
|
|
375
|
+
event: () => {
|
|
400
376
|
const dialog = new ShareDialog(gvc.glitter);
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
const emails = vm.dataList
|
|
414
|
-
.filter((dd: any) => {
|
|
415
|
-
return dd.checked;
|
|
416
|
-
})
|
|
417
|
-
.map((dd: any) => {
|
|
418
|
-
return dd.email || dd.config.verifyEmail;
|
|
419
|
-
});
|
|
377
|
+
dialog.warningMessage({
|
|
378
|
+
text: '您即將批量刪除所選員工的所有資料<br />此操作無法復原。確定要刪除嗎?',
|
|
379
|
+
callback: (response) => {
|
|
380
|
+
if (response) {
|
|
381
|
+
let n = 0;
|
|
382
|
+
const emails = vm.dataList
|
|
383
|
+
.filter((dd: any) => {
|
|
384
|
+
return dd.checked;
|
|
385
|
+
})
|
|
386
|
+
.map((dd: any) => {
|
|
387
|
+
return dd.email || dd.config.verifyEmail;
|
|
388
|
+
});
|
|
420
389
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
}
|
|
434
|
-
});
|
|
435
|
-
}
|
|
436
|
-
}).then(() => {
|
|
437
|
-
dialog.dataLoading({ visible: false });
|
|
438
|
-
dialog.successMessage({ text: '刪除成功' });
|
|
439
|
-
setTimeout(() => {
|
|
440
|
-
vm.dataList = undefined;
|
|
441
|
-
gvc.notifyDataChange(vm.id);
|
|
442
|
-
}, 400);
|
|
443
|
-
});
|
|
390
|
+
dialog.dataLoading({ visible: true });
|
|
391
|
+
new Promise<void>((resolve, reject) => {
|
|
392
|
+
for (const email of emails) {
|
|
393
|
+
ApiUser.deletePermission(email).then((res) => {
|
|
394
|
+
if (res.result && res.response.result) {
|
|
395
|
+
if (++n === emails.length) {
|
|
396
|
+
resolve();
|
|
397
|
+
}
|
|
398
|
+
} else {
|
|
399
|
+
dialog.dataLoading({ visible: false });
|
|
400
|
+
dialog.errorMessage({ text: '刪除失敗' });
|
|
401
|
+
reject();
|
|
444
402
|
}
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
})
|
|
448
|
-
|
|
449
|
-
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
}).then(() => {
|
|
406
|
+
dialog.dataLoading({ visible: false });
|
|
407
|
+
dialog.successMessage({ text: '刪除成功' });
|
|
408
|
+
setTimeout(() => {
|
|
409
|
+
vm.dataList = undefined;
|
|
410
|
+
gvc.notifyDataChange(vm.id);
|
|
411
|
+
}, 300);
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
},
|
|
450
415
|
});
|
|
451
416
|
},
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
return {
|
|
455
|
-
class: `d-flex align-items-center p-2 ${display}`,
|
|
456
|
-
style: ``,
|
|
457
|
-
};
|
|
458
|
-
},
|
|
459
|
-
};
|
|
460
|
-
}),
|
|
417
|
+
},
|
|
418
|
+
],
|
|
461
419
|
});
|
|
462
420
|
},
|
|
463
421
|
}),
|
|
@@ -466,35 +424,33 @@ export class PermissionSetting {
|
|
|
466
424
|
BgWidget.getContainerWidth()
|
|
467
425
|
);
|
|
468
426
|
} else if (vm.type == 'replace') {
|
|
469
|
-
if(edit_mode==='pos'){
|
|
427
|
+
if (edit_mode === 'pos') {
|
|
470
428
|
return this.editorDetailPos({
|
|
471
429
|
vm: vm,
|
|
472
430
|
gvc: gvc,
|
|
473
|
-
type: 'replace'
|
|
431
|
+
type: 'replace',
|
|
474
432
|
});
|
|
475
|
-
}else{
|
|
433
|
+
} else {
|
|
476
434
|
return this.editorDetail({
|
|
477
435
|
vm: vm,
|
|
478
436
|
gvc: gvc,
|
|
479
|
-
type: 'replace'
|
|
437
|
+
type: 'replace',
|
|
480
438
|
});
|
|
481
439
|
}
|
|
482
|
-
|
|
483
440
|
}
|
|
484
|
-
if(edit_mode==='pos'){
|
|
441
|
+
if (edit_mode === 'pos') {
|
|
485
442
|
return this.editorDetailPos({
|
|
486
443
|
vm: vm,
|
|
487
444
|
gvc: gvc,
|
|
488
|
-
type: 'add'
|
|
445
|
+
type: 'add',
|
|
489
446
|
});
|
|
490
|
-
}else{
|
|
447
|
+
} else {
|
|
491
448
|
return this.editorDetail({
|
|
492
449
|
vm: vm,
|
|
493
450
|
gvc: gvc,
|
|
494
|
-
type: 'add'
|
|
451
|
+
type: 'add',
|
|
495
452
|
});
|
|
496
453
|
}
|
|
497
|
-
|
|
498
454
|
},
|
|
499
455
|
});
|
|
500
456
|
}
|
|
@@ -591,9 +547,11 @@ export class PermissionSetting {
|
|
|
591
547
|
),
|
|
592
548
|
BgWidget.mainCard(html` <div class="tx_700">權限指派</div>
|
|
593
549
|
${BgWidget.mbContainer(18)} ${this.permissionOptions(gvc, vm.data.config.auth)}`),
|
|
594
|
-
]
|
|
595
|
-
|
|
596
|
-
|
|
550
|
+
]
|
|
551
|
+
.filter((dd) => {
|
|
552
|
+
return dd;
|
|
553
|
+
})
|
|
554
|
+
.join(BgWidget.mbContainer(24)),
|
|
597
555
|
// 空白容器
|
|
598
556
|
BgWidget.mbContainer(240),
|
|
599
557
|
// 儲存資料
|
|
@@ -684,7 +642,7 @@ export class PermissionSetting {
|
|
|
684
642
|
});
|
|
685
643
|
}
|
|
686
644
|
|
|
687
|
-
static editorDetailPos(obj: { vm: PosViewModel; gvc: GVC; type: string}) {
|
|
645
|
+
static editorDetailPos(obj: { vm: PosViewModel; gvc: GVC; type: string }) {
|
|
688
646
|
const html = String.raw;
|
|
689
647
|
const gvc = obj.gvc;
|
|
690
648
|
const vm = obj.vm;
|
|
@@ -695,16 +653,15 @@ export class PermissionSetting {
|
|
|
695
653
|
return {
|
|
696
654
|
bind: viewID,
|
|
697
655
|
view: () => {
|
|
698
|
-
|
|
699
656
|
return BgWidget.container(
|
|
700
657
|
[
|
|
701
658
|
// 上層導覽
|
|
702
659
|
html` <div class="d-flex w-100 align-items-center ">
|
|
703
660
|
${BgWidget.goBack(
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
661
|
+
gvc.event(() => {
|
|
662
|
+
vm.type = 'list';
|
|
663
|
+
})
|
|
664
|
+
)}
|
|
708
665
|
${BgWidget.title(obj.type === 'add' ? '新增員工' : '編輯員工')}
|
|
709
666
|
</div>`,
|
|
710
667
|
[
|
|
@@ -715,8 +672,8 @@ export class PermissionSetting {
|
|
|
715
672
|
<div class="d-flex align-items-center gap-2">
|
|
716
673
|
<div class="tx_normal">存取權開啟</div>
|
|
717
674
|
${BgWidget.switchButton(gvc, vm.data.status === 1, () => {
|
|
718
|
-
|
|
719
|
-
|
|
675
|
+
vm.data.status = (vm.data.status - 1) * -1;
|
|
676
|
+
})}
|
|
720
677
|
</div>
|
|
721
678
|
${BgWidget.grayNote('一鍵開啟或關閉此員工的登入存取權,停用後員工將無法登入店家管理後台。')}
|
|
722
679
|
`)
|
|
@@ -727,24 +684,24 @@ export class PermissionSetting {
|
|
|
727
684
|
${BgWidget.mbContainer(18)}
|
|
728
685
|
<div class="row">
|
|
729
686
|
${[
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
687
|
+
BgWidget.editeInput({
|
|
688
|
+
gvc: gvc,
|
|
689
|
+
title: '員工名稱',
|
|
690
|
+
placeHolder: `請輸入員工名稱`,
|
|
691
|
+
default: vm.data.config.name,
|
|
692
|
+
callback: (text) => {
|
|
693
|
+
vm.data.config.name = text;
|
|
694
|
+
},
|
|
695
|
+
}),
|
|
696
|
+
BgWidget.editeInput({
|
|
697
|
+
gvc: gvc,
|
|
698
|
+
title: '職稱',
|
|
699
|
+
placeHolder: `請輸入職稱`,
|
|
700
|
+
default: vm.data.config.title,
|
|
701
|
+
callback: (text) => {
|
|
702
|
+
vm.data.config.title = text;
|
|
703
|
+
},
|
|
704
|
+
}),
|
|
748
705
|
BgWidget.editeInput({
|
|
749
706
|
gvc: gvc,
|
|
750
707
|
title: '電話',
|
|
@@ -764,136 +721,137 @@ export class PermissionSetting {
|
|
|
764
721
|
},
|
|
765
722
|
readonly: obj.type === 'replace',
|
|
766
723
|
}),
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
.join('')}
|
|
724
|
+
BgWidget.editeInput({
|
|
725
|
+
gvc: gvc,
|
|
726
|
+
title: '員工編號',
|
|
727
|
+
placeHolder: '此員工編號會用作POS登入帳號',
|
|
728
|
+
default: vm.data.config.member_id,
|
|
729
|
+
callback: (text) => {
|
|
730
|
+
vm.data.config.member_id = text;
|
|
731
|
+
},
|
|
732
|
+
}),
|
|
733
|
+
BgWidget.editeInput({
|
|
734
|
+
gvc: gvc,
|
|
735
|
+
title: 'PIN碼',
|
|
736
|
+
type: 'number',
|
|
737
|
+
placeHolder: `此PIN碼會用作員工登入密碼`,
|
|
738
|
+
default: vm.data.config.pin,
|
|
739
|
+
callback: (text) => {
|
|
740
|
+
vm.data.config.pin = text;
|
|
741
|
+
},
|
|
742
|
+
pattern: '0-9',
|
|
743
|
+
oninput: (text) => {
|
|
744
|
+
if (text.length >= 6) {
|
|
745
|
+
text.substring(0, 6);
|
|
746
|
+
vm.data.config.pin = text;
|
|
747
|
+
gvc.notifyDataChange(viewID);
|
|
748
|
+
}
|
|
749
|
+
},
|
|
750
|
+
}),
|
|
751
|
+
]
|
|
752
|
+
.filter((str) => {
|
|
753
|
+
return str.length > 0;
|
|
754
|
+
})
|
|
755
|
+
.map((str) => {
|
|
756
|
+
return html`<div class="col-12 col-md-6">${str}</div>`;
|
|
757
|
+
})
|
|
758
|
+
.join('')}
|
|
803
759
|
</div>
|
|
804
760
|
`
|
|
805
|
-
)
|
|
806
|
-
]
|
|
807
|
-
|
|
808
|
-
|
|
761
|
+
),
|
|
762
|
+
]
|
|
763
|
+
.filter((dd) => {
|
|
764
|
+
return dd;
|
|
765
|
+
})
|
|
766
|
+
.join(BgWidget.mbContainer(24)),
|
|
809
767
|
// 空白容器
|
|
810
768
|
BgWidget.mbContainer(240),
|
|
811
769
|
// 儲存資料
|
|
812
770
|
html` <div class="update-bar-container">
|
|
813
771
|
${obj.type === 'replace'
|
|
814
|
-
|
|
815
|
-
|
|
772
|
+
? BgWidget.redButton(
|
|
773
|
+
'移除此員工',
|
|
774
|
+
gvc.event(() => {
|
|
775
|
+
dialog.warningMessage({
|
|
776
|
+
text: '此動作無法復原,確定要刪除此員工嗎?',
|
|
777
|
+
callback: (bool) => {
|
|
778
|
+
if (bool) {
|
|
779
|
+
dialog.dataLoading({ visible: true });
|
|
780
|
+
ApiUser.deletePermission(vm.data.email || (vm.data.config as any).verifyEmail).then((res) => {
|
|
781
|
+
dialog.dataLoading({ visible: false });
|
|
782
|
+
if (res.result && res.response.result) {
|
|
783
|
+
dialog.successMessage({ text: '刪除成功' });
|
|
784
|
+
vm.type = 'list';
|
|
785
|
+
} else {
|
|
786
|
+
dialog.errorMessage({ text: '刪除失敗' });
|
|
787
|
+
}
|
|
788
|
+
});
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
});
|
|
792
|
+
})
|
|
793
|
+
)
|
|
794
|
+
: ''}
|
|
795
|
+
${BgWidget.cancel(
|
|
816
796
|
gvc.event(() => {
|
|
817
|
-
|
|
818
|
-
text: '此動作無法復原,確定要刪除此員工嗎?',
|
|
819
|
-
callback: (bool) => {
|
|
820
|
-
if (bool) {
|
|
821
|
-
dialog.dataLoading({ visible: true });
|
|
822
|
-
ApiUser.deletePermission(vm.data.email || (vm.data.config as any).verifyEmail).then((res) => {
|
|
823
|
-
dialog.dataLoading({ visible: false });
|
|
824
|
-
if (res.result && res.response.result) {
|
|
825
|
-
dialog.successMessage({ text: '刪除成功' });
|
|
826
|
-
vm.type = 'list';
|
|
827
|
-
} else {
|
|
828
|
-
dialog.errorMessage({ text: '刪除失敗' });
|
|
829
|
-
}
|
|
830
|
-
});
|
|
831
|
-
}
|
|
832
|
-
},
|
|
833
|
-
});
|
|
797
|
+
vm.type = 'list';
|
|
834
798
|
})
|
|
835
|
-
)
|
|
836
|
-
: ''}
|
|
837
|
-
${BgWidget.cancel(
|
|
838
|
-
gvc.event(() => {
|
|
839
|
-
vm.type = 'list';
|
|
840
|
-
})
|
|
841
|
-
)}
|
|
799
|
+
)}
|
|
842
800
|
${BgWidget.save(
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
801
|
+
gvc.event(() => {
|
|
802
|
+
if (CheckInput.isEmpty(vm.data.config.name)) {
|
|
803
|
+
dialog.infoMessage({ text: '員工名稱不可為空' });
|
|
804
|
+
return;
|
|
805
|
+
}
|
|
806
|
+
if (CheckInput.isEmpty(vm.data.config.title)) {
|
|
807
|
+
dialog.infoMessage({ text: '職稱不可為空' });
|
|
808
|
+
return;
|
|
809
|
+
}
|
|
810
|
+
if (obj.type === 'add' && !CheckInput.isEmail(vm.data.email)) {
|
|
811
|
+
dialog.infoMessage({ text: '信箱格式錯誤' });
|
|
812
|
+
return;
|
|
813
|
+
}
|
|
814
|
+
if (CheckInput.isEmpty(vm.data.config.phone)) {
|
|
815
|
+
dialog.infoMessage({ text: '電話不可為空' });
|
|
816
|
+
return;
|
|
817
|
+
}
|
|
818
|
+
if (CheckInput.isEmpty(vm.data.config.pin)) {
|
|
819
|
+
dialog.infoMessage({ text: 'PIN不可為空' });
|
|
820
|
+
return;
|
|
821
|
+
} else if (vm.data.config.pin.length < 6) {
|
|
822
|
+
dialog.infoMessage({ text: 'PIN碼長度需等於6' });
|
|
823
|
+
return;
|
|
824
|
+
} else if (!/^[0-9]+$/.test(vm.data.config.pin)) {
|
|
825
|
+
dialog.infoMessage({ text: 'PIN碼只能包含數字' });
|
|
826
|
+
return;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
if (!CheckInput.isTaiwanPhone(vm.data.config.phone)) {
|
|
830
|
+
dialog.infoMessage({ text: BgWidget.taiwanPhoneAlert() });
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
875
833
|
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
834
|
+
dialog.dataLoading({ visible: true });
|
|
835
|
+
vm.data.config.come_from = 'pos';
|
|
836
|
+
ApiUser.setPermission({
|
|
837
|
+
email: obj.type === 'add' ? vm.data.email : original.email,
|
|
838
|
+
config: vm.data.config,
|
|
839
|
+
status: vm.data.status,
|
|
840
|
+
}).then((res) => {
|
|
841
|
+
dialog.dataLoading({ visible: false });
|
|
842
|
+
if (res.result) {
|
|
843
|
+
if (res.response.result) {
|
|
844
|
+
vm.type = 'list';
|
|
845
|
+
dialog.successMessage({ text: '更新成功' });
|
|
846
|
+
} else {
|
|
847
|
+
dialog.errorMessage({ text: res.response.message });
|
|
848
|
+
}
|
|
888
849
|
} else {
|
|
889
|
-
dialog.errorMessage({ text:
|
|
850
|
+
dialog.errorMessage({ text: '更新失敗' });
|
|
890
851
|
}
|
|
891
|
-
}
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
});
|
|
895
|
-
})
|
|
896
|
-
)}
|
|
852
|
+
});
|
|
853
|
+
})
|
|
854
|
+
)}
|
|
897
855
|
</div>`,
|
|
898
856
|
].join(html`<div style="margin-top: 24px;"></div>`),
|
|
899
857
|
BgWidget.getContainerWidth() / (document.body.clientWidth > 768 ? 1.25 : 1)
|