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.
- 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-customer-message.js +4 -2
- package/lowcode/backend-manager/bg-customer-message.ts +4 -2
- 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 +3 -4
- 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
|
@@ -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.
|
|
45
|
+
${BgWidget.container(BgWidget.mainCard(BgWidget.tableV3({
|
|
51
46
|
gvc: gvc,
|
|
52
|
-
getData: (
|
|
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.
|
|
52
|
+
vmi.pageSize = 1;
|
|
53
|
+
vmi.originalData = vm.dataList;
|
|
54
|
+
vmi.tableData = getDatalist();
|
|
60
55
|
vmi.loading = false;
|
|
61
|
-
|
|
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:
|
|
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.
|
|
67
|
+
BgWidget.tableV3({
|
|
73
68
|
gvc: gvc,
|
|
74
|
-
getData: (
|
|
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.
|
|
74
|
+
vmi.pageSize = 1;
|
|
75
|
+
vmi.originalData = vm.dataList;
|
|
76
|
+
vmi.tableData = getDatalist();
|
|
82
77
|
vmi.loading = false;
|
|
83
|
-
|
|
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:
|
|
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.
|
|
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.
|
|
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:
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
264
|
+
filter: [
|
|
265
|
+
{
|
|
266
|
+
name: '批量刪除',
|
|
267
|
+
event: () => {
|
|
290
268
|
const dialog = new ShareDialog(gvc.glitter);
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
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
|
-
}
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
325
291
|
dialog.dataLoading({ visible: false });
|
|
326
|
-
dialog.
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
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
|
-
|
|
340
|
-
|
|
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
|
-
]
|
|
436
|
+
]
|
|
437
|
+
.filter((dd) => {
|
|
474
438
|
return dd;
|
|
475
|
-
})
|
|
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:
|
|
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
|
-
]
|
|
631
|
+
`),
|
|
632
|
+
]
|
|
633
|
+
.filter((dd) => {
|
|
668
634
|
return dd;
|
|
669
|
-
})
|
|
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 (
|
|
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) {
|