ts-glitter 13.3.5 → 13.3.8
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 +4 -0
- package/lowcode/jspage/main.ts +4 -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
|
@@ -19,13 +19,11 @@ import { FilterOptions } from '../cms-plugin/filter-options.js';
|
|
|
19
19
|
import { ShoppingDiscountSetting } from '../cms-plugin/shopping-discount-setting.js';
|
|
20
20
|
import { BgListComponent } from './bg-list-component.js';
|
|
21
21
|
import { Tool } from '../modules/tool.js';
|
|
22
|
-
import {
|
|
23
|
-
import { ApiLineMessage } from "../glitter-base/route/line.js";
|
|
22
|
+
import { ApiLineMessage } from '../glitter-base/route/line.js';
|
|
24
23
|
const html = String.raw;
|
|
25
|
-
const inputStyle = 'font-size: 16px; height:40px; width:300px;';
|
|
24
|
+
const inputStyle = 'font-size: 16px; height: 40px; width: 300px;';
|
|
26
25
|
export class BgLine {
|
|
27
|
-
static email(gvc, type = 'list', callback = () => {
|
|
28
|
-
}) {
|
|
26
|
+
static email(gvc, type = 'list', callback = () => { }) {
|
|
29
27
|
const vm = {
|
|
30
28
|
type: 'list',
|
|
31
29
|
data: {
|
|
@@ -50,58 +48,8 @@ export class BgLine {
|
|
|
50
48
|
view: () => {
|
|
51
49
|
let vmi = undefined;
|
|
52
50
|
function getDatalist() {
|
|
53
|
-
let interval = 0;
|
|
54
51
|
return vm.dataList.map((dd) => {
|
|
55
52
|
return [
|
|
56
|
-
{
|
|
57
|
-
key: (() => {
|
|
58
|
-
clearInterval(interval);
|
|
59
|
-
if (!vm.dataList.find((dd) => {
|
|
60
|
-
return !dd.checked;
|
|
61
|
-
})) {
|
|
62
|
-
interval = setTimeout(() => {
|
|
63
|
-
ApiUser.getSubScribe({
|
|
64
|
-
page: vmi.page - 1,
|
|
65
|
-
limit: 100000,
|
|
66
|
-
search: vm.query || undefined,
|
|
67
|
-
}).then((data) => {
|
|
68
|
-
callback(data.response.data);
|
|
69
|
-
});
|
|
70
|
-
}, 10);
|
|
71
|
-
}
|
|
72
|
-
return EditorElem.checkBoxOnly({
|
|
73
|
-
gvc: gvc,
|
|
74
|
-
def: !vm.dataList.find((dd) => {
|
|
75
|
-
return !dd.checked;
|
|
76
|
-
}),
|
|
77
|
-
callback: (result) => {
|
|
78
|
-
vm.dataList.map((dd) => {
|
|
79
|
-
dd.checked = result;
|
|
80
|
-
});
|
|
81
|
-
vmi.data = getDatalist();
|
|
82
|
-
vmi.callback();
|
|
83
|
-
gvc.notifyDataChange(filterID);
|
|
84
|
-
callback(vm.dataList.filter((dd) => {
|
|
85
|
-
return dd.checked;
|
|
86
|
-
}));
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
|
-
})(),
|
|
90
|
-
value: EditorElem.checkBoxOnly({
|
|
91
|
-
gvc: gvc,
|
|
92
|
-
def: dd.checked,
|
|
93
|
-
callback: (result) => {
|
|
94
|
-
dd.checked = result;
|
|
95
|
-
vmi.data = getDatalist();
|
|
96
|
-
vmi.callback();
|
|
97
|
-
gvc.notifyDataChange(filterID);
|
|
98
|
-
callback(vm.dataList.filter((dd) => {
|
|
99
|
-
return dd.checked;
|
|
100
|
-
}));
|
|
101
|
-
},
|
|
102
|
-
style: 'height:25px;',
|
|
103
|
-
}),
|
|
104
|
-
},
|
|
105
53
|
{
|
|
106
54
|
key: '註冊信箱',
|
|
107
55
|
value: `<span class="fs-7">${dd.email}</span>`,
|
|
@@ -113,107 +61,74 @@ export class BgLine {
|
|
|
113
61
|
];
|
|
114
62
|
});
|
|
115
63
|
}
|
|
116
|
-
return BgWidget.container(BgWidget.mainCard(
|
|
117
|
-
gvc
|
|
118
|
-
getData: (vmk) => {
|
|
119
|
-
vmi = vmk;
|
|
120
|
-
ApiUser.getSubScribe({
|
|
121
|
-
page: vmi.page - 1,
|
|
122
|
-
limit: 20,
|
|
123
|
-
search: vm.query || undefined,
|
|
124
|
-
filter: { account: 'no' },
|
|
125
|
-
}).then((data) => {
|
|
126
|
-
vmi.pageSize = Math.ceil(data.response.total / 20);
|
|
127
|
-
vm.dataList = data.response.data;
|
|
128
|
-
vmi.data = getDatalist();
|
|
129
|
-
vmi.loading = false;
|
|
130
|
-
vmi.callback();
|
|
131
|
-
if (type === 'select') {
|
|
132
|
-
callback(vm.dataList.filter((dd) => {
|
|
133
|
-
return dd.checked;
|
|
134
|
-
}));
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
},
|
|
138
|
-
rowClick: (data, index) => {
|
|
139
|
-
vm.dataList[index].checked = !vm.dataList[index].checked;
|
|
140
|
-
vmi.data = getDatalist();
|
|
141
|
-
vmi.callback();
|
|
142
|
-
gvc.notifyDataChange(filterID);
|
|
143
|
-
callback(vm.dataList.filter((dd) => {
|
|
144
|
-
return dd.checked;
|
|
145
|
-
}));
|
|
146
|
-
},
|
|
147
|
-
filter: html `
|
|
148
|
-
${BgWidget.searchPlace(gvc.event((e, event) => {
|
|
64
|
+
return BgWidget.container(BgWidget.mainCard([
|
|
65
|
+
BgWidget.searchPlace(gvc.event((e, event) => {
|
|
149
66
|
vm.query = e.value;
|
|
150
67
|
gvc.notifyDataChange(id);
|
|
151
|
-
}), vm.query || '', '搜尋信箱或標籤')
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
68
|
+
}), vm.query || '', '搜尋信箱或標籤'),
|
|
69
|
+
BgWidget.tableV3({
|
|
70
|
+
gvc: gvc,
|
|
71
|
+
getData: (vmk) => {
|
|
72
|
+
vmi = vmk;
|
|
73
|
+
const limit = 20;
|
|
74
|
+
ApiUser.getSubScribe({
|
|
75
|
+
page: vmi.page - 1,
|
|
76
|
+
limit: limit,
|
|
77
|
+
search: vm.query || undefined,
|
|
78
|
+
filter: { account: 'no' },
|
|
79
|
+
}).then((data) => {
|
|
80
|
+
vm.dataList = data.response.data;
|
|
81
|
+
vmi.pageSize = Math.ceil(data.response.total / limit);
|
|
82
|
+
vmi.originalData = vm.dataList;
|
|
83
|
+
vmi.tableData = getDatalist();
|
|
84
|
+
vmi.loading = false;
|
|
85
|
+
vmi.callback();
|
|
86
|
+
if (type === 'select') {
|
|
87
|
+
callback(vm.dataList.filter((dd) => {
|
|
158
88
|
return dd.checked;
|
|
159
|
-
}))
|
|
160
|
-
return ``;
|
|
89
|
+
}));
|
|
161
90
|
}
|
|
162
|
-
|
|
91
|
+
});
|
|
92
|
+
},
|
|
93
|
+
rowClick: (data, index) => {
|
|
94
|
+
vm.dataList[index].checked = !vm.dataList[index].checked;
|
|
95
|
+
vmi.data = getDatalist();
|
|
96
|
+
vmi.callback();
|
|
97
|
+
gvc.notifyDataChange(filterID);
|
|
98
|
+
callback(vm.dataList.filter((dd) => {
|
|
99
|
+
return dd.checked;
|
|
100
|
+
}));
|
|
101
|
+
},
|
|
102
|
+
filter: [
|
|
103
|
+
{
|
|
104
|
+
name: '批量移除',
|
|
105
|
+
event: (checkedData) => {
|
|
163
106
|
const dialog = new ShareDialog(gvc.glitter);
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
return dd.email;
|
|
181
|
-
})
|
|
182
|
-
.join(`,`),
|
|
183
|
-
}).then((res) => {
|
|
184
|
-
dialog.dataLoading({ visible: false });
|
|
185
|
-
if (res.result) {
|
|
186
|
-
vm.dataList = undefined;
|
|
187
|
-
gvc.notifyDataChange(id);
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
dialog.errorMessage({ text: '刪除失敗' });
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
},
|
|
107
|
+
dialog.checkYesOrNot({
|
|
108
|
+
text: '是否確認刪除所選項目?',
|
|
109
|
+
callback: (response) => {
|
|
110
|
+
if (response) {
|
|
111
|
+
dialog.dataLoading({ visible: true });
|
|
112
|
+
ApiUser.deleteSubscribe({
|
|
113
|
+
email: checkedData.map((dd) => dd.email).join(`,`),
|
|
114
|
+
}).then((res) => {
|
|
115
|
+
dialog.dataLoading({ visible: false });
|
|
116
|
+
if (res.result) {
|
|
117
|
+
vm.dataList = undefined;
|
|
118
|
+
gvc.notifyDataChange(id);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
dialog.errorMessage({ text: '刪除失敗' });
|
|
122
|
+
}
|
|
195
123
|
});
|
|
196
|
-
}
|
|
197
|
-
|
|
124
|
+
}
|
|
125
|
+
},
|
|
198
126
|
});
|
|
199
|
-
}
|
|
200
|
-
},
|
|
201
|
-
divCreate: () => {
|
|
202
|
-
return {
|
|
203
|
-
class: `d-flex align-items-center p-2 py-3 ${!vm.dataList ||
|
|
204
|
-
!vm.dataList.find((dd) => {
|
|
205
|
-
return dd.checked;
|
|
206
|
-
}) ||
|
|
207
|
-
type === 'select'
|
|
208
|
-
? `d-none`
|
|
209
|
-
: ``}`,
|
|
210
|
-
style: ``,
|
|
211
|
-
};
|
|
127
|
+
},
|
|
212
128
|
},
|
|
213
|
-
|
|
214
|
-
})
|
|
215
|
-
|
|
216
|
-
})), type === 'select' ? 850 : BgWidget.getContainerWidth(), 'padding: 0;');
|
|
129
|
+
],
|
|
130
|
+
}),
|
|
131
|
+
].join('')), type === 'select' ? 850 : BgWidget.getContainerWidth(), 'padding: 0;');
|
|
217
132
|
},
|
|
218
133
|
};
|
|
219
134
|
});
|
|
@@ -243,136 +158,77 @@ export class BgLine {
|
|
|
243
158
|
vm.type = 'add';
|
|
244
159
|
}))}
|
|
245
160
|
</div>
|
|
246
|
-
${BgWidget.container(BgWidget.mainCard(
|
|
247
|
-
gvc
|
|
248
|
-
getData: (vmi) => {
|
|
249
|
-
ApiPost.getManagerPost({
|
|
250
|
-
page: vmi.page - 1,
|
|
251
|
-
limit: 20,
|
|
252
|
-
search: vm.query ? [`title->${vm.query}`] : undefined,
|
|
253
|
-
type: 'notify-line-config',
|
|
254
|
-
}).then((data) => {
|
|
255
|
-
vmi.pageSize = Math.ceil(data.response.total / 20);
|
|
256
|
-
vm.dataList = data.response.data;
|
|
257
|
-
function getDatalist() {
|
|
258
|
-
return data.response.data.map((dd) => {
|
|
259
|
-
return [
|
|
260
|
-
{
|
|
261
|
-
key: EditorElem.checkBoxOnly({
|
|
262
|
-
gvc: gvc,
|
|
263
|
-
def: !data.response.data.find((dd) => {
|
|
264
|
-
return !dd.checked;
|
|
265
|
-
}),
|
|
266
|
-
callback: (result) => {
|
|
267
|
-
data.response.data.map((dd) => {
|
|
268
|
-
dd.checked = result;
|
|
269
|
-
});
|
|
270
|
-
vmi.data = getDatalist();
|
|
271
|
-
vmi.callback();
|
|
272
|
-
gvc.notifyDataChange(filterID);
|
|
273
|
-
},
|
|
274
|
-
}),
|
|
275
|
-
value: EditorElem.checkBoxOnly({
|
|
276
|
-
gvc: gvc,
|
|
277
|
-
def: dd.checked,
|
|
278
|
-
callback: (result) => {
|
|
279
|
-
dd.checked = result;
|
|
280
|
-
vmi.data = getDatalist();
|
|
281
|
-
vmi.callback();
|
|
282
|
-
gvc.notifyDataChange(filterID);
|
|
283
|
-
},
|
|
284
|
-
style: 'height:25px;',
|
|
285
|
-
}),
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
key: '標題',
|
|
289
|
-
value: html `<span
|
|
290
|
-
class="fs-7">${dd.content.title}</span>`,
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
key: '最後更新時間',
|
|
294
|
-
value: dd.updated_time ? gvc.glitter.ut.dateFormat(new Date(dd.updated_time), 'yyyy-MM-dd') : '無',
|
|
295
|
-
},
|
|
296
|
-
];
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
vmi.data = getDatalist();
|
|
300
|
-
vmi.loading = false;
|
|
301
|
-
vmi.callback();
|
|
302
|
-
});
|
|
303
|
-
},
|
|
304
|
-
style: ['', `min-width: ${BgWidget.getContainerWidth() / 2 - 30}px`, ''],
|
|
305
|
-
rowClick: (data, index) => {
|
|
306
|
-
vm.data = vm.dataList[index].content;
|
|
307
|
-
vm.type = 'replace';
|
|
308
|
-
},
|
|
309
|
-
filter: html ` ${BgWidget.searchPlace(gvc.event((e) => {
|
|
161
|
+
${BgWidget.container(BgWidget.mainCard([
|
|
162
|
+
BgWidget.searchPlace(gvc.event((e) => {
|
|
310
163
|
vm.query = e.value;
|
|
311
164
|
gvc.notifyDataChange(id);
|
|
312
|
-
}), vm.query || '', '搜尋所有信件內容')
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
165
|
+
}), vm.query || '', '搜尋所有信件內容'),
|
|
166
|
+
BgWidget.tableV3({
|
|
167
|
+
gvc: gvc,
|
|
168
|
+
getData: (vmi) => {
|
|
169
|
+
const limit = 20;
|
|
170
|
+
ApiPost.getManagerPost({
|
|
171
|
+
page: vmi.page - 1,
|
|
172
|
+
limit: limit,
|
|
173
|
+
search: vm.query ? [`title->${vm.query}`] : undefined,
|
|
174
|
+
type: 'notify-line-config',
|
|
175
|
+
}).then((data) => {
|
|
176
|
+
function getDatalist() {
|
|
177
|
+
return data.response.data.map((dd) => {
|
|
178
|
+
return [
|
|
179
|
+
{
|
|
180
|
+
key: '標題',
|
|
181
|
+
value: html `<span class="fs-7">${dd.content.title}</span>`,
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
key: '最後更新時間',
|
|
185
|
+
value: dd.updated_time ? gvc.glitter.ut.dateFormat(new Date(dd.updated_time), 'yyyy-MM-dd') : '無',
|
|
186
|
+
},
|
|
187
|
+
];
|
|
188
|
+
});
|
|
322
189
|
}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
}
|
|
355
|
-
}
|
|
190
|
+
vm.dataList = data.response.data;
|
|
191
|
+
vmi.pageSize = Math.ceil(data.response.total / limit);
|
|
192
|
+
vmi.originalData = vm.dataList;
|
|
193
|
+
vmi.tableData = getDatalist();
|
|
194
|
+
vmi.loading = false;
|
|
195
|
+
vmi.callback();
|
|
196
|
+
});
|
|
197
|
+
},
|
|
198
|
+
rowClick: (data, index) => {
|
|
199
|
+
vm.data = vm.dataList[index].content;
|
|
200
|
+
vm.type = 'replace';
|
|
201
|
+
},
|
|
202
|
+
filter: [
|
|
203
|
+
{
|
|
204
|
+
name: '批量移除',
|
|
205
|
+
event: (checkedData) => {
|
|
206
|
+
const dialog = new ShareDialog(glitter);
|
|
207
|
+
dialog.checkYesOrNot({
|
|
208
|
+
text: '是否確認刪除所選項目?',
|
|
209
|
+
callback: (response) => {
|
|
210
|
+
if (response) {
|
|
211
|
+
dialog.dataLoading({ visible: true });
|
|
212
|
+
ApiPost.delete({
|
|
213
|
+
id: checkedData.map((dd) => dd.id).join(`,`),
|
|
214
|
+
}).then((res) => {
|
|
215
|
+
dialog.dataLoading({ visible: false });
|
|
216
|
+
if (res.result) {
|
|
217
|
+
vm.dataList = undefined;
|
|
218
|
+
gvc.notifyDataChange(id);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
dialog.errorMessage({ text: '刪除失敗' });
|
|
222
|
+
}
|
|
356
223
|
});
|
|
357
|
-
}
|
|
358
|
-
|
|
224
|
+
}
|
|
225
|
+
},
|
|
359
226
|
});
|
|
360
|
-
}
|
|
361
|
-
},
|
|
362
|
-
divCreate: () => {
|
|
363
|
-
return {
|
|
364
|
-
class: `d-flex align-items-center p-2 py-3 ${!vm.dataList ||
|
|
365
|
-
!vm.dataList.find((dd) => {
|
|
366
|
-
return dd.checked;
|
|
367
|
-
})
|
|
368
|
-
? `d-none`
|
|
369
|
-
: ``}`,
|
|
370
|
-
style: ``,
|
|
371
|
-
};
|
|
227
|
+
},
|
|
372
228
|
},
|
|
373
|
-
|
|
374
|
-
})
|
|
375
|
-
|
|
229
|
+
],
|
|
230
|
+
}),
|
|
231
|
+
].join('')))}
|
|
376
232
|
${BgWidget.mbContainer(120)}
|
|
377
233
|
`, BgWidget.getContainerWidth());
|
|
378
234
|
}
|
|
@@ -450,24 +306,18 @@ export class BgLine {
|
|
|
450
306
|
];
|
|
451
307
|
const filterTags = ListComp.getFilterTags(FilterOptions.snsFunnel);
|
|
452
308
|
if (document.body.clientWidth < 768) {
|
|
453
|
-
return html `
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
${filterList[1]}
|
|
462
|
-
</div>
|
|
463
|
-
<div>${filterTags}</div>`;
|
|
309
|
+
return html ` <div style="display: flex; align-items: center; gap: 10px; width: 100%; justify-content: space-between">
|
|
310
|
+
<div>${filterList[0]}</div>
|
|
311
|
+
<div style="display: flex;">
|
|
312
|
+
<div class="me-2">${filterList[2]}</div>
|
|
313
|
+
</div>
|
|
314
|
+
</div>
|
|
315
|
+
<div style="display: flex; margin-top: 8px;">${filterList[1]}</div>
|
|
316
|
+
<div>${filterTags}</div>`;
|
|
464
317
|
}
|
|
465
318
|
else {
|
|
466
|
-
return html `
|
|
467
|
-
|
|
468
|
-
${filterList.join('')}
|
|
469
|
-
</div>
|
|
470
|
-
<div>${filterTags}</div>`;
|
|
319
|
+
return html ` <div style="display: flex; align-items: center; gap: 10px;">${filterList.join('')}</div>
|
|
320
|
+
<div>${filterTags}</div>`;
|
|
471
321
|
}
|
|
472
322
|
},
|
|
473
323
|
});
|
|
@@ -475,7 +325,7 @@ export class BgLine {
|
|
|
475
325
|
gvc.bindView({
|
|
476
326
|
bind: vm.tableId,
|
|
477
327
|
view: () => {
|
|
478
|
-
return BgWidget.
|
|
328
|
+
return BgWidget.tableV3({
|
|
479
329
|
gvc: gvc,
|
|
480
330
|
getData: (vmi) => {
|
|
481
331
|
var _a, _b;
|
|
@@ -490,27 +340,21 @@ export class BgLine {
|
|
|
490
340
|
mailType: vm.filter.mailType,
|
|
491
341
|
}).then((data) => {
|
|
492
342
|
if (data.result) {
|
|
493
|
-
vmi.pageSize = Math.ceil(data.response.total / limit);
|
|
494
|
-
vm.dataList = data.response.data;
|
|
495
343
|
function getDatalist() {
|
|
496
344
|
return data.response.data.map((dd) => {
|
|
497
|
-
console.log(dd);
|
|
498
345
|
return [
|
|
499
346
|
{
|
|
500
347
|
key: '寄件類型',
|
|
501
|
-
value: html `<span
|
|
502
|
-
class="fs-7">${dd.content.typeName}</span>`,
|
|
348
|
+
value: html `<span class="fs-7">${dd.content.typeName}</span>`,
|
|
503
349
|
},
|
|
504
350
|
{
|
|
505
351
|
key: '標題',
|
|
506
|
-
value: html `<span
|
|
507
|
-
class="fs-7">${Tool.truncateString(`${dd.content.title}`, 25)}</span>`,
|
|
352
|
+
value: html `<span class="fs-7">${Tool.truncateString(`${dd.content.title}`, 25)}</span>`,
|
|
508
353
|
},
|
|
509
354
|
{
|
|
510
355
|
key: '收件群組',
|
|
511
|
-
value: html `<span
|
|
512
|
-
|
|
513
|
-
>${(() => {
|
|
356
|
+
value: html `<span class="fs-7"
|
|
357
|
+
>${(() => {
|
|
514
358
|
if (!dd.content.sendGroup) {
|
|
515
359
|
return '沒有群組';
|
|
516
360
|
}
|
|
@@ -526,13 +370,11 @@ export class BgLine {
|
|
|
526
370
|
tagList.push(group);
|
|
527
371
|
}
|
|
528
372
|
}
|
|
529
|
-
return tagList.join(html `<span
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
>${dd.content.boolean === 'and' ? '且' : '或'}</span
|
|
533
|
-
>`);
|
|
373
|
+
return tagList.join(html `<span class="badge fs-7 mx-1 px-1" style="color: #393939; background: #FFD5D0;"
|
|
374
|
+
>${dd.content.boolean === 'and' ? '且' : '或'}</span
|
|
375
|
+
>`);
|
|
534
376
|
})()}</span
|
|
535
|
-
|
|
377
|
+
>`,
|
|
536
378
|
},
|
|
537
379
|
{
|
|
538
380
|
key: '寄送時間',
|
|
@@ -543,30 +385,21 @@ export class BgLine {
|
|
|
543
385
|
value: (() => {
|
|
544
386
|
switch (dd.status) {
|
|
545
387
|
case 0:
|
|
546
|
-
return
|
|
547
|
-
<div class="badge fs-7"
|
|
548
|
-
style="color: #393939; background: #ffd6a4;">
|
|
549
|
-
尚未寄送
|
|
550
|
-
</div>`;
|
|
388
|
+
return BgWidget.warningInsignia('尚未寄送');
|
|
551
389
|
case 1:
|
|
552
|
-
return
|
|
553
|
-
<div class="badge fs-7"
|
|
554
|
-
style="color: #393939; background: #0000000f;">
|
|
555
|
-
已寄出
|
|
556
|
-
</div>`;
|
|
390
|
+
return BgWidget.secondaryInsignia('已寄出');
|
|
557
391
|
case 2:
|
|
558
|
-
return
|
|
559
|
-
<div class="badge fs-7"
|
|
560
|
-
style="color: #393939; background: #0000000f;">
|
|
561
|
-
取消預約
|
|
562
|
-
</div>`;
|
|
392
|
+
return BgWidget.notifyInsignia('取消預約');
|
|
563
393
|
}
|
|
564
394
|
})(),
|
|
565
395
|
},
|
|
566
396
|
];
|
|
567
397
|
});
|
|
568
398
|
}
|
|
569
|
-
|
|
399
|
+
vm.dataList = data.response.data;
|
|
400
|
+
vmi.pageSize = Math.ceil(data.response.total / limit);
|
|
401
|
+
vmi.originalData = vm.dataList;
|
|
402
|
+
vmi.tableData = getDatalist();
|
|
570
403
|
vmi.loading = false;
|
|
571
404
|
vmi.callback();
|
|
572
405
|
}
|
|
@@ -577,6 +410,7 @@ export class BgLine {
|
|
|
577
410
|
vm.data = vm.dataList[index].content;
|
|
578
411
|
vm.type = 'replace';
|
|
579
412
|
},
|
|
413
|
+
filter: [],
|
|
580
414
|
});
|
|
581
415
|
},
|
|
582
416
|
}),
|
|
@@ -614,22 +448,13 @@ export class BgLine {
|
|
|
614
448
|
<div class="flex-fill"></div>
|
|
615
449
|
${obj.readonly
|
|
616
450
|
? [
|
|
617
|
-
html
|
|
618
|
-
<div class="badge fs-7 me-2" style="color: #393939; background: #0000000f;">
|
|
619
|
-
${vm.data.typeName}
|
|
620
|
-
</div>`,
|
|
451
|
+
html `<div class="me-2">${BgWidget.secondaryInsignia(vm.data.typeName)}</div>`,
|
|
621
452
|
(() => {
|
|
622
453
|
switch (vm.data.status) {
|
|
623
454
|
case 0:
|
|
624
|
-
return
|
|
625
|
-
<div class="badge fs-7 me-1"
|
|
626
|
-
style="color: #393939; background: #ffd6a4;">尚未寄送
|
|
627
|
-
</div>`;
|
|
455
|
+
return BgWidget.warningInsignia('尚未寄送');
|
|
628
456
|
case 1:
|
|
629
|
-
return
|
|
630
|
-
<div class="badge fs-7 me-1"
|
|
631
|
-
style="color: #393939; background: #0000000f;">已寄出
|
|
632
|
-
</div>`;
|
|
457
|
+
return BgWidget.secondaryInsignia('已寄出');
|
|
633
458
|
}
|
|
634
459
|
})(),
|
|
635
460
|
].join('')
|
|
@@ -644,30 +469,25 @@ export class BgLine {
|
|
|
644
469
|
var _a, _b;
|
|
645
470
|
let htmlList = [];
|
|
646
471
|
if (obj.readonly) {
|
|
647
|
-
const sendGroupHTML = ((_a = vm.data.sendGroup) !== null && _a !== void 0 ? _a : []).map((str) => html `
|
|
648
|
-
|
|
649
|
-
const emailHTML = vm.data.userList.map((data) => html `
|
|
650
|
-
<div class="c_filter_tag">${data.email}</div>`);
|
|
472
|
+
const sendGroupHTML = ((_a = vm.data.sendGroup) !== null && _a !== void 0 ? _a : []).map((str) => html ` <div class="c_filter_tag">${str}</div>`);
|
|
473
|
+
const emailHTML = vm.data.userList.map((data) => html ` <div class="c_filter_tag">${data.email}</div>`);
|
|
651
474
|
htmlList = htmlList.concat([
|
|
652
475
|
BgWidget.mainCard(html `
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
476
|
+
<div class="tx_normal fw-normal">收訊者信箱</div>
|
|
477
|
+
<div class="c_filter_container">${emailHTML.join('')}</div>
|
|
478
|
+
`),
|
|
656
479
|
BgWidget.mainCard(html `
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
480
|
+
<div class="tx_normal fw-normal">篩選條件</div>
|
|
481
|
+
<div class="c_filter_container">
|
|
482
|
+
${sendGroupHTML.length === 0
|
|
660
483
|
? '沒有群組'
|
|
661
|
-
: sendGroupHTML.join(html `<span
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
BgWidget.mainCard(html `
|
|
669
|
-
<div class="tx_700 mb-3">發送時間</div>
|
|
670
|
-
${EditorElem.radio({
|
|
484
|
+
: sendGroupHTML.join(html `<span class="badge fs-7 px-1" style="color: #393939; background: #FFD5D0;"
|
|
485
|
+
>${vm.data.boolean === 'and' ? '且' : '或'}</span
|
|
486
|
+
>`)}
|
|
487
|
+
</div>
|
|
488
|
+
`),
|
|
489
|
+
BgWidget.mainCard(html ` <div class="tx_700 mb-3">發送時間</div>
|
|
490
|
+
${EditorElem.radio({
|
|
671
491
|
gvc: gvc,
|
|
672
492
|
title: '',
|
|
673
493
|
def: vm.data.sendTime === undefined ? 'now' : 'set',
|
|
@@ -679,64 +499,58 @@ export class BgLine {
|
|
|
679
499
|
{
|
|
680
500
|
title: '排定發送時間',
|
|
681
501
|
value: 'set',
|
|
682
|
-
innerHtml: html `
|
|
683
|
-
|
|
684
|
-
style="gap: 12px">
|
|
685
|
-
${EditorElem.editeInput({
|
|
502
|
+
innerHtml: html ` <div class="d-flex mt-3 ${document.body.clientWidth < 768 ? 'flex-column' : ''}" style="gap: 12px">
|
|
503
|
+
${EditorElem.editeInput({
|
|
686
504
|
gvc: gvc,
|
|
687
505
|
title: '',
|
|
688
506
|
type: 'date',
|
|
689
507
|
style: inputStyle,
|
|
690
508
|
default: vm.data.sendTime ? vm.data.sendTime.date : '',
|
|
691
509
|
placeHolder: '',
|
|
692
|
-
callback: () => {
|
|
693
|
-
},
|
|
510
|
+
callback: () => { },
|
|
694
511
|
readonly: true,
|
|
695
512
|
})}
|
|
696
|
-
|
|
513
|
+
${EditorElem.editeInput({
|
|
697
514
|
gvc: gvc,
|
|
698
515
|
title: '',
|
|
699
516
|
type: 'time',
|
|
700
517
|
style: inputStyle,
|
|
701
518
|
default: vm.data.sendTime ? vm.data.sendTime.time : '',
|
|
702
519
|
placeHolder: '',
|
|
703
|
-
callback: () => {
|
|
704
|
-
},
|
|
520
|
+
callback: () => { },
|
|
705
521
|
readonly: true,
|
|
706
522
|
})}
|
|
707
|
-
|
|
523
|
+
</div>`,
|
|
708
524
|
},
|
|
709
525
|
],
|
|
710
|
-
callback: () => {
|
|
711
|
-
},
|
|
526
|
+
callback: () => { },
|
|
712
527
|
readonly: true,
|
|
713
528
|
})}`),
|
|
714
529
|
]);
|
|
715
530
|
}
|
|
716
531
|
htmlList = htmlList.concat([
|
|
717
|
-
BgWidget.mainCard(html `
|
|
718
|
-
${BgWidget.editeInput({
|
|
532
|
+
BgWidget.mainCard(html ` ${BgWidget.editeInput({
|
|
719
533
|
gvc: gvc,
|
|
720
534
|
title: '訊息主題',
|
|
721
|
-
default: (_b = postData.title) !== null && _b !== void 0 ? _b :
|
|
535
|
+
default: (_b = postData.title) !== null && _b !== void 0 ? _b : '',
|
|
722
536
|
readonly: true,
|
|
723
537
|
placeHolder: '請輸入訊息主題',
|
|
724
538
|
callback: (text) => {
|
|
725
539
|
postData.title = text;
|
|
726
540
|
},
|
|
727
541
|
})}
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
542
|
+
<div class="d-flex align-items-center my-3">
|
|
543
|
+
<div class="tx_normal fw-normal me-2">訊息內文</div>
|
|
544
|
+
</div>
|
|
545
|
+
${EditorElem.editeText({
|
|
732
546
|
gvc: gvc,
|
|
733
|
-
title:
|
|
547
|
+
title: '',
|
|
734
548
|
readonly: true,
|
|
735
|
-
default: postData.content ||
|
|
736
|
-
placeHolder:
|
|
549
|
+
default: postData.content || '',
|
|
550
|
+
placeHolder: '',
|
|
737
551
|
callback: (text) => {
|
|
738
552
|
postData.content = text;
|
|
739
|
-
}
|
|
553
|
+
},
|
|
740
554
|
})}`),
|
|
741
555
|
]);
|
|
742
556
|
return htmlList.filter((str) => str.length > 0).join(BgWidget.mbContainer(16));
|
|
@@ -775,8 +589,8 @@ export class BgLine {
|
|
|
775
589
|
const dialog = new ShareDialog(gvc.glitter);
|
|
776
590
|
dialog.dataLoading({ text: '取消預約中', visible: true });
|
|
777
591
|
ApiLineMessage.delete({
|
|
778
|
-
id: vm.data.name
|
|
779
|
-
}).then(r => {
|
|
592
|
+
id: vm.data.name,
|
|
593
|
+
}).then((r) => {
|
|
780
594
|
dialog.dataLoading({ visible: false });
|
|
781
595
|
if (r.result) {
|
|
782
596
|
vm.status = 'list';
|
|
@@ -837,8 +651,6 @@ export class BgLine {
|
|
|
837
651
|
const dialog = new ShareDialog(gvc.glitter);
|
|
838
652
|
const startDate = ShoppingDiscountSetting.getDateTime(1).date;
|
|
839
653
|
const startTime = ShoppingDiscountSetting.getDateTime(1).time;
|
|
840
|
-
let wallet = 0;
|
|
841
|
-
let pointCount = 1;
|
|
842
654
|
const vm = {
|
|
843
655
|
id: glitter.getUUID(),
|
|
844
656
|
containerId: glitter.getUUID(),
|
|
@@ -1126,19 +938,18 @@ export class BgLine {
|
|
|
1126
938
|
const formatName = value && value.length > 0 ? `${name}:${value}` : name;
|
|
1127
939
|
return {
|
|
1128
940
|
name: formatName,
|
|
1129
|
-
html: html `
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
onclick="${gvc.event(() => {
|
|
941
|
+
html: html ` <div class="c_filter_tag">
|
|
942
|
+
${formatName}
|
|
943
|
+
<i
|
|
944
|
+
class="fa-solid fa-xmark ms-1"
|
|
945
|
+
style="cursor: pointer"
|
|
946
|
+
onclick="${gvc.event(() => {
|
|
1136
947
|
postData.tagList = postData.tagList.filter((data) => data.tag !== key);
|
|
1137
948
|
setUserList();
|
|
1138
949
|
gvc.notifyDataChange(vm.tagsId);
|
|
1139
950
|
})}"
|
|
1140
|
-
|
|
1141
|
-
|
|
951
|
+
></i>
|
|
952
|
+
</div>`,
|
|
1142
953
|
};
|
|
1143
954
|
}
|
|
1144
955
|
function getTagsHTML() {
|
|
@@ -1158,12 +969,11 @@ export class BgLine {
|
|
|
1158
969
|
});
|
|
1159
970
|
postData.sendGroup = badgeList.map((item) => item.name);
|
|
1160
971
|
return [
|
|
1161
|
-
html `
|
|
1162
|
-
<div class="tx_normal fw-normal">標籤判斷</div>
|
|
972
|
+
html ` <div class="tx_normal fw-normal">標籤判斷</div>
|
|
1163
973
|
<div style="margin: 8px 0;">
|
|
1164
974
|
${BgWidget.switchTextButton(gvc, postData.boolean === 'and', {
|
|
1165
975
|
left: '或',
|
|
1166
|
-
right: '且'
|
|
976
|
+
right: '且',
|
|
1167
977
|
}, (bool) => {
|
|
1168
978
|
postData.boolean = bool ? 'and' : 'or';
|
|
1169
979
|
setUserList();
|
|
@@ -1187,8 +997,7 @@ export class BgLine {
|
|
|
1187
997
|
gvc: gvc,
|
|
1188
998
|
title: '預計寄件顧客',
|
|
1189
999
|
tag: 'send_users_list',
|
|
1190
|
-
callback: () => {
|
|
1191
|
-
},
|
|
1000
|
+
callback: () => { },
|
|
1192
1001
|
default: [],
|
|
1193
1002
|
api: () => {
|
|
1194
1003
|
return new Promise((resolve) => {
|
|
@@ -1228,7 +1037,8 @@ export class BgLine {
|
|
|
1228
1037
|
readonly: true,
|
|
1229
1038
|
});
|
|
1230
1039
|
}), { textStyle: 'font-weight: 400;' })}
|
|
1231
|
-
</div>
|
|
1040
|
+
</div>
|
|
1041
|
+
`,
|
|
1232
1042
|
html `
|
|
1233
1043
|
<div class="tx_normal fw-normal">篩選條件</div>
|
|
1234
1044
|
<div class="c_filter_container">
|
|
@@ -1243,9 +1053,6 @@ export class BgLine {
|
|
|
1243
1053
|
`,
|
|
1244
1054
|
].join(BgWidget.mbContainer(18));
|
|
1245
1055
|
}
|
|
1246
|
-
ApiWallet.getWallet().then(r => {
|
|
1247
|
-
wallet = r.response.sum;
|
|
1248
|
-
});
|
|
1249
1056
|
return BgWidget.container(html `
|
|
1250
1057
|
<div class="d-flex w-100 align-items-center">
|
|
1251
1058
|
${BgWidget.title('line手動發送')}
|
|
@@ -1258,14 +1065,11 @@ export class BgLine {
|
|
|
1258
1065
|
view: () => {
|
|
1259
1066
|
return [
|
|
1260
1067
|
BgWidget.mainCard([
|
|
1261
|
-
html `
|
|
1262
|
-
|
|
1263
|
-
html `
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
<div style="display: flex; ${document.body.clientWidth > 768 ? 'gap: 18px;' : 'flex-direction: column;'}">
|
|
1267
|
-
<div style="width: ${document.body.clientWidth > 768 ? '400px' : '100%'};">
|
|
1268
|
-
${BgWidget.select({
|
|
1068
|
+
html ` <div class="tx_700">選擇收訊對象</div>`,
|
|
1069
|
+
html ` <div class="tx_normal fw-normal mt-3">根據</div>`,
|
|
1070
|
+
html ` <div style="display: flex; ${document.body.clientWidth > 768 ? 'gap: 18px;' : 'flex-direction: column;'}">
|
|
1071
|
+
<div style="width: ${document.body.clientWidth > 768 ? '400px' : '100%'};">
|
|
1072
|
+
${BgWidget.select({
|
|
1269
1073
|
gvc: gvc,
|
|
1270
1074
|
default: postData.tag,
|
|
1271
1075
|
callback: (key) => {
|
|
@@ -1276,9 +1080,9 @@ export class BgLine {
|
|
|
1276
1080
|
options: FilterOptions.emailOptions,
|
|
1277
1081
|
style: 'margin: 8px 0;',
|
|
1278
1082
|
})}
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1083
|
+
</div>
|
|
1084
|
+
<div style="width: 100%; display: flex; align-items: center;">
|
|
1085
|
+
${gvc.bindView({
|
|
1282
1086
|
bind: vm.id,
|
|
1283
1087
|
view: () => {
|
|
1284
1088
|
const getDefault = (def) => {
|
|
@@ -1301,7 +1105,7 @@ export class BgLine {
|
|
|
1301
1105
|
case 'all':
|
|
1302
1106
|
dialog.dataLoading({
|
|
1303
1107
|
visible: true,
|
|
1304
|
-
text: '取得所有會員資料中...'
|
|
1108
|
+
text: '取得所有會員資料中...',
|
|
1305
1109
|
});
|
|
1306
1110
|
new Promise((resolve) => {
|
|
1307
1111
|
ApiUser.getUserListOrders({
|
|
@@ -1423,8 +1227,8 @@ export class BgLine {
|
|
|
1423
1227
|
}
|
|
1424
1228
|
},
|
|
1425
1229
|
})}
|
|
1426
|
-
|
|
1427
|
-
|
|
1230
|
+
</div>
|
|
1231
|
+
</div>`,
|
|
1428
1232
|
gvc.bindView({
|
|
1429
1233
|
bind: vm.tagsId,
|
|
1430
1234
|
view: () => getTagsHTML(),
|
|
@@ -1432,10 +1236,8 @@ export class BgLine {
|
|
|
1432
1236
|
}),
|
|
1433
1237
|
].join('')),
|
|
1434
1238
|
BgWidget.mainCard([
|
|
1435
|
-
html `
|
|
1436
|
-
|
|
1437
|
-
html `
|
|
1438
|
-
<div class="tx_normal fw-normal mt-3">定型文樣式</div>`,
|
|
1239
|
+
html ` <div class="tx_700">訊息內容</div>`,
|
|
1240
|
+
html ` <div class="tx_normal fw-normal mt-3">定型文樣式</div>`,
|
|
1439
1241
|
(() => {
|
|
1440
1242
|
const selectVM = {
|
|
1441
1243
|
id: glitter.getUUID(),
|
|
@@ -1496,31 +1298,29 @@ export class BgLine {
|
|
|
1496
1298
|
view: () => {
|
|
1497
1299
|
return [
|
|
1498
1300
|
html `
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
${BgWidget.selEventButton('範例', gvc.event(() => {
|
|
1301
|
+
<div class="d-flex align-items-center mb-3">
|
|
1302
|
+
<div class="tx_normal fw-normal me-2 d-flex">訊息內容</div>
|
|
1303
|
+
${BgWidget.selEventButton('範例', gvc.event(() => {
|
|
1503
1304
|
postData.content = defaultEmailText();
|
|
1504
1305
|
gvc.notifyDataChange(vm.containerId);
|
|
1505
1306
|
}))}
|
|
1506
|
-
|
|
1507
|
-
|
|
1307
|
+
</div>
|
|
1308
|
+
${EditorElem.editeText({
|
|
1508
1309
|
gvc: gvc,
|
|
1509
|
-
title:
|
|
1510
|
-
default: postData.content ||
|
|
1511
|
-
placeHolder:
|
|
1310
|
+
title: '',
|
|
1311
|
+
default: postData.content || '',
|
|
1312
|
+
placeHolder: '',
|
|
1512
1313
|
callback: (text) => {
|
|
1513
1314
|
postData.content = text;
|
|
1514
|
-
}
|
|
1315
|
+
},
|
|
1515
1316
|
})}
|
|
1516
|
-
|
|
1317
|
+
`,
|
|
1517
1318
|
].join('');
|
|
1518
1319
|
},
|
|
1519
1320
|
}),
|
|
1520
1321
|
].join('')),
|
|
1521
|
-
BgWidget.mainCard(html `
|
|
1522
|
-
|
|
1523
|
-
${EditorElem.radio({
|
|
1322
|
+
BgWidget.mainCard(html ` <div class="tx_700 mb-3">發送時間</div>
|
|
1323
|
+
${EditorElem.radio({
|
|
1524
1324
|
gvc: gvc,
|
|
1525
1325
|
title: '',
|
|
1526
1326
|
def: postData.sendTime === undefined ? 'now' : 'set',
|
|
@@ -1532,10 +1332,8 @@ export class BgLine {
|
|
|
1532
1332
|
{
|
|
1533
1333
|
title: '排定發送時間',
|
|
1534
1334
|
value: 'set',
|
|
1535
|
-
innerHtml: html `
|
|
1536
|
-
|
|
1537
|
-
style="gap: 12px">
|
|
1538
|
-
${EditorElem.editeInput({
|
|
1335
|
+
innerHtml: html ` <div class="d-flex mt-3 ${document.body.clientWidth < 768 ? 'flex-column' : ''}" style="gap: 12px">
|
|
1336
|
+
${EditorElem.editeInput({
|
|
1539
1337
|
gvc: gvc,
|
|
1540
1338
|
title: '',
|
|
1541
1339
|
type: 'date',
|
|
@@ -1550,7 +1348,7 @@ export class BgLine {
|
|
|
1550
1348
|
};
|
|
1551
1349
|
},
|
|
1552
1350
|
})}
|
|
1553
|
-
|
|
1351
|
+
${EditorElem.editeInput({
|
|
1554
1352
|
gvc: gvc,
|
|
1555
1353
|
title: '',
|
|
1556
1354
|
type: 'time',
|
|
@@ -1565,7 +1363,7 @@ export class BgLine {
|
|
|
1565
1363
|
};
|
|
1566
1364
|
},
|
|
1567
1365
|
})}
|
|
1568
|
-
|
|
1366
|
+
</div>`,
|
|
1569
1367
|
},
|
|
1570
1368
|
],
|
|
1571
1369
|
callback: (text) => {
|
|
@@ -1639,8 +1437,7 @@ export class BgLine {
|
|
|
1639
1437
|
${BgWidget.title(`編輯推播通知`)}
|
|
1640
1438
|
<div class="flex-fill"></div>
|
|
1641
1439
|
</div>
|
|
1642
|
-
${BgWidget.container(html `
|
|
1643
|
-
<div class="d-flex px-0" style="gap: 10px;">
|
|
1440
|
+
${BgWidget.container(html ` <div class="d-flex px-0" style="gap: 10px;">
|
|
1644
1441
|
<div style="width: 100%">
|
|
1645
1442
|
${BgWidget.mainCard(obj.gvc.bindView(() => {
|
|
1646
1443
|
const bi = obj.gvc.glitter.getUUID();
|
|
@@ -1684,9 +1481,9 @@ export class BgLine {
|
|
|
1684
1481
|
</div>
|
|
1685
1482
|
${obj.type === 'replace'
|
|
1686
1483
|
? html `
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1484
|
+
<div class="d-flex w-100 mt-2">
|
|
1485
|
+
<div class="flex-fill"></div>
|
|
1486
|
+
${BgWidget.redButton('刪除樣本', obj.gvc.event(() => {
|
|
1690
1487
|
const dialog = new ShareDialog(obj.gvc.glitter);
|
|
1691
1488
|
dialog.checkYesOrNot({
|
|
1692
1489
|
text: '是否確認刪除樣本?',
|
|
@@ -1708,8 +1505,8 @@ export class BgLine {
|
|
|
1708
1505
|
},
|
|
1709
1506
|
});
|
|
1710
1507
|
}))}
|
|
1711
|
-
|
|
1712
|
-
|
|
1508
|
+
</div>
|
|
1509
|
+
`
|
|
1713
1510
|
: ``}
|
|
1714
1511
|
<div class="update-bar-container">
|
|
1715
1512
|
${BgWidget.cancel(gvc.event(() => {
|
|
@@ -1755,8 +1552,7 @@ export class BgLine {
|
|
|
1755
1552
|
</div>`)}
|
|
1756
1553
|
`, BgWidget.getContainerWidth({ rate: { web: 0.68 } }));
|
|
1757
1554
|
}
|
|
1758
|
-
static fcmDevice(gvc, type = 'list', callback = () => {
|
|
1759
|
-
}) {
|
|
1555
|
+
static fcmDevice(gvc, type = 'list', callback = () => { }) {
|
|
1760
1556
|
const vm = {
|
|
1761
1557
|
type: 'list',
|
|
1762
1558
|
data: {
|
|
@@ -1782,59 +1578,9 @@ export class BgLine {
|
|
|
1782
1578
|
view: () => {
|
|
1783
1579
|
let vmi = undefined;
|
|
1784
1580
|
function getDatalist() {
|
|
1785
|
-
let interval = 0;
|
|
1786
1581
|
return vm.dataList.map((dd) => {
|
|
1787
1582
|
var _a;
|
|
1788
1583
|
return [
|
|
1789
|
-
{
|
|
1790
|
-
key: (() => {
|
|
1791
|
-
clearInterval(interval);
|
|
1792
|
-
if (!vm.dataList.find((dd) => {
|
|
1793
|
-
return !dd.checked;
|
|
1794
|
-
})) {
|
|
1795
|
-
interval = setTimeout(() => {
|
|
1796
|
-
ApiUser.getFCM({
|
|
1797
|
-
page: vmi.page - 1,
|
|
1798
|
-
limit: 100000,
|
|
1799
|
-
search: vm.query || undefined,
|
|
1800
|
-
}).then((data) => {
|
|
1801
|
-
callback(data.response.data);
|
|
1802
|
-
});
|
|
1803
|
-
}, 10);
|
|
1804
|
-
}
|
|
1805
|
-
return EditorElem.checkBoxOnly({
|
|
1806
|
-
gvc: gvc,
|
|
1807
|
-
def: !vm.dataList.find((dd) => {
|
|
1808
|
-
return !dd.checked;
|
|
1809
|
-
}),
|
|
1810
|
-
callback: (result) => {
|
|
1811
|
-
vm.dataList.map((dd) => {
|
|
1812
|
-
dd.checked = result;
|
|
1813
|
-
});
|
|
1814
|
-
vmi.data = getDatalist();
|
|
1815
|
-
vmi.callback();
|
|
1816
|
-
gvc.notifyDataChange(filterID);
|
|
1817
|
-
callback(vm.dataList.filter((dd) => {
|
|
1818
|
-
return dd.checked;
|
|
1819
|
-
}));
|
|
1820
|
-
},
|
|
1821
|
-
});
|
|
1822
|
-
})(),
|
|
1823
|
-
value: EditorElem.checkBoxOnly({
|
|
1824
|
-
gvc: gvc,
|
|
1825
|
-
def: dd.checked,
|
|
1826
|
-
callback: (result) => {
|
|
1827
|
-
dd.checked = result;
|
|
1828
|
-
vmi.data = getDatalist();
|
|
1829
|
-
vmi.callback();
|
|
1830
|
-
gvc.notifyDataChange(filterID);
|
|
1831
|
-
callback(vm.dataList.filter((dd) => {
|
|
1832
|
-
return dd.checked;
|
|
1833
|
-
}));
|
|
1834
|
-
},
|
|
1835
|
-
style: 'height:25px;',
|
|
1836
|
-
}),
|
|
1837
|
-
},
|
|
1838
1584
|
{
|
|
1839
1585
|
key: '用戶ID',
|
|
1840
1586
|
value: `<span class="fs-7">${(_a = dd.userID) !== null && _a !== void 0 ? _a : '尚未登入'}</span>`,
|
|
@@ -1855,106 +1601,73 @@ export class BgLine {
|
|
|
1855
1601
|
${BgWidget.title('已訂閱裝置')}
|
|
1856
1602
|
<div class="flex-fill"></div>
|
|
1857
1603
|
</div>
|
|
1858
|
-
${BgWidget.container(BgWidget.mainCard(
|
|
1859
|
-
gvc
|
|
1860
|
-
getData: (vmk) => {
|
|
1861
|
-
vmi = vmk;
|
|
1862
|
-
ApiUser.getFCM({
|
|
1863
|
-
page: vmi.page - 1,
|
|
1864
|
-
limit: 20,
|
|
1865
|
-
search: vm.query || undefined,
|
|
1866
|
-
}).then((data) => {
|
|
1867
|
-
vmi.pageSize = Math.ceil(data.response.total / 20);
|
|
1868
|
-
vm.dataList = data.response.data;
|
|
1869
|
-
vmi.data = getDatalist();
|
|
1870
|
-
vmi.loading = false;
|
|
1871
|
-
vmi.callback();
|
|
1872
|
-
if (type === 'select') {
|
|
1873
|
-
callback(vm.dataList.filter((dd) => {
|
|
1874
|
-
return dd.checked;
|
|
1875
|
-
}));
|
|
1876
|
-
}
|
|
1877
|
-
});
|
|
1878
|
-
},
|
|
1879
|
-
rowClick: (data, index) => {
|
|
1880
|
-
vm.dataList[index].checked = !vm.dataList[index].checked;
|
|
1881
|
-
vmi.data = getDatalist();
|
|
1882
|
-
vmi.callback();
|
|
1883
|
-
gvc.notifyDataChange(filterID);
|
|
1884
|
-
callback(vm.dataList.filter((dd) => {
|
|
1885
|
-
return dd.checked;
|
|
1886
|
-
}));
|
|
1887
|
-
},
|
|
1888
|
-
filter: html `
|
|
1889
|
-
${BgWidget.searchPlace(gvc.event((e, event) => {
|
|
1604
|
+
${BgWidget.container(BgWidget.mainCard([
|
|
1605
|
+
BgWidget.searchPlace(gvc.event((e, event) => {
|
|
1890
1606
|
vm.query = e.value;
|
|
1891
1607
|
gvc.notifyDataChange(id);
|
|
1892
|
-
}), vm.query || '', '搜尋信箱或者標籤')
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1608
|
+
}), vm.query || '', '搜尋信箱或者標籤'),
|
|
1609
|
+
BgWidget.tableV3({
|
|
1610
|
+
gvc: gvc,
|
|
1611
|
+
getData: (vmk) => {
|
|
1612
|
+
vmi = vmk;
|
|
1613
|
+
const limit = 20;
|
|
1614
|
+
ApiUser.getFCM({
|
|
1615
|
+
page: vmi.page - 1,
|
|
1616
|
+
limit: limit,
|
|
1617
|
+
search: vm.query || undefined,
|
|
1618
|
+
}).then((data) => {
|
|
1619
|
+
vm.dataList = data.response.data;
|
|
1620
|
+
vmi.pageSize = Math.ceil(data.response.total / limit);
|
|
1621
|
+
vmi.originalData = vm.dataList;
|
|
1622
|
+
vmi.tableData = getDatalist();
|
|
1623
|
+
vmi.loading = false;
|
|
1624
|
+
vmi.callback();
|
|
1625
|
+
if (type === 'select') {
|
|
1626
|
+
callback(vm.dataList.filter((dd) => {
|
|
1899
1627
|
return dd.checked;
|
|
1900
|
-
}))
|
|
1901
|
-
return ``;
|
|
1628
|
+
}));
|
|
1902
1629
|
}
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
},
|
|
1630
|
+
});
|
|
1631
|
+
},
|
|
1632
|
+
rowClick: (data, index) => {
|
|
1633
|
+
vm.dataList[index].checked = !vm.dataList[index].checked;
|
|
1634
|
+
vmi.data = getDatalist();
|
|
1635
|
+
vmi.callback();
|
|
1636
|
+
gvc.notifyDataChange(filterID);
|
|
1637
|
+
callback(vm.dataList.filter((dd) => {
|
|
1638
|
+
return dd.checked;
|
|
1639
|
+
}));
|
|
1640
|
+
},
|
|
1641
|
+
filter: [
|
|
1642
|
+
{
|
|
1643
|
+
name: '批量移除',
|
|
1644
|
+
event: (checkedData) => {
|
|
1645
|
+
dialog.checkYesOrNot({
|
|
1646
|
+
text: '是否確認刪除所選項目?',
|
|
1647
|
+
callback: (response) => {
|
|
1648
|
+
if (response) {
|
|
1649
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1650
|
+
dialog.dataLoading({ visible: true });
|
|
1651
|
+
ApiUser.deleteSubscribe({
|
|
1652
|
+
email: checkedData.map((dd) => dd.email).join(`,`),
|
|
1653
|
+
}).then((res) => {
|
|
1654
|
+
dialog.dataLoading({ visible: false });
|
|
1655
|
+
if (res.result) {
|
|
1656
|
+
vm.dataList = undefined;
|
|
1657
|
+
gvc.notifyDataChange(id);
|
|
1658
|
+
}
|
|
1659
|
+
else {
|
|
1660
|
+
dialog.errorMessage({ text: '刪除失敗' });
|
|
1661
|
+
}
|
|
1936
1662
|
});
|
|
1937
|
-
}
|
|
1938
|
-
|
|
1663
|
+
}
|
|
1664
|
+
},
|
|
1939
1665
|
});
|
|
1940
|
-
}
|
|
1941
|
-
},
|
|
1942
|
-
divCreate: () => {
|
|
1943
|
-
return {
|
|
1944
|
-
class: `d-flex align-items-center p-2 py-3 ${!vm.dataList ||
|
|
1945
|
-
!vm.dataList.find((dd) => {
|
|
1946
|
-
return dd.checked;
|
|
1947
|
-
}) ||
|
|
1948
|
-
type === 'select'
|
|
1949
|
-
? `d-none`
|
|
1950
|
-
: ``}`,
|
|
1951
|
-
style: ``,
|
|
1952
|
-
};
|
|
1666
|
+
},
|
|
1953
1667
|
},
|
|
1954
|
-
|
|
1955
|
-
})
|
|
1956
|
-
|
|
1957
|
-
})))}
|
|
1668
|
+
],
|
|
1669
|
+
}),
|
|
1670
|
+
].join('')))}
|
|
1958
1671
|
`, BgWidget.getContainerWidth());
|
|
1959
1672
|
},
|
|
1960
1673
|
divCreate: {
|
|
@@ -1988,220 +1701,162 @@ export class BgLine {
|
|
|
1988
1701
|
vm.type = 'add';
|
|
1989
1702
|
}))}
|
|
1990
1703
|
</div>
|
|
1991
|
-
${BgWidget.container(BgWidget.mainCard(
|
|
1992
|
-
gvc
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
key: '發送推播',
|
|
2042
|
-
value: html `
|
|
2043
|
-
<button
|
|
2044
|
-
class="btn btn-primary-c px-4"
|
|
2045
|
-
style="width:20px !important;height: 30px;"
|
|
2046
|
-
onclick="${gvc.event((e, event) => {
|
|
2047
|
-
event.stopPropagation();
|
|
2048
|
-
gvc.glitter.innerDialog((gvc) => {
|
|
2049
|
-
let dataList = [];
|
|
2050
|
-
return html `
|
|
2051
|
-
<div style="max-height: calc(100vh - 100px);overflow-y: auto;">
|
|
2052
|
-
${BgWidget.container(BgWidget.card([
|
|
2053
|
-
html `
|
|
2054
|
-
<div class="d-flex w-100 align-items-center mb-3 ">
|
|
2055
|
-
${BgWidget.goBack(gvc.event(() => {
|
|
2056
|
-
gvc.closeDialog();
|
|
2057
|
-
}))}
|
|
2058
|
-
${BgWidget.title(`選擇群發對象`)}
|
|
2059
|
-
<div class="flex-fill"></div>
|
|
2060
|
-
<button
|
|
2061
|
-
class="btn bt_c39 me-2"
|
|
2062
|
-
style="height:38px;font-size: 14px;"
|
|
2063
|
-
onclick="${gvc.event(() => {
|
|
2064
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
2065
|
-
dialog.dataLoading({
|
|
2066
|
-
text: '發送中...',
|
|
2067
|
-
visible: true,
|
|
2068
|
-
});
|
|
2069
|
-
ApiFcm.send({
|
|
2070
|
-
device_token: ['all'],
|
|
2071
|
-
title: dd.content.title,
|
|
2072
|
-
content: dd.content.content,
|
|
2073
|
-
link: dd.content.link,
|
|
2074
|
-
}).then(() => {
|
|
2075
|
-
dialog.dataLoading({ visible: false });
|
|
2076
|
-
dialog.successMessage({ text: `發送成功` });
|
|
2077
|
-
});
|
|
2078
|
-
})}"
|
|
2079
|
-
>
|
|
2080
|
-
發送給所有用戶
|
|
2081
|
-
</button>
|
|
2082
|
-
<button
|
|
2083
|
-
class="btn bt_c39"
|
|
2084
|
-
style="height:38px;font-size: 14px;"
|
|
2085
|
-
onclick="${gvc.event(() => {
|
|
2086
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
2087
|
-
if (dataList.length > 0) {
|
|
1704
|
+
${BgWidget.container(BgWidget.mainCard([
|
|
1705
|
+
BgWidget.searchPlace(gvc.event((e, event) => {
|
|
1706
|
+
vm.query = e.value;
|
|
1707
|
+
gvc.notifyDataChange(id);
|
|
1708
|
+
}), vm.query || '', '搜尋所有信件內容'),
|
|
1709
|
+
BgWidget.tableV3({
|
|
1710
|
+
gvc: gvc,
|
|
1711
|
+
getData: (vmi) => {
|
|
1712
|
+
const limit = 20;
|
|
1713
|
+
ApiPost.getManagerPost({
|
|
1714
|
+
page: vmi.page - 1,
|
|
1715
|
+
limit: limit,
|
|
1716
|
+
search: vm.query ? [`title->${vm.query}`] : undefined,
|
|
1717
|
+
type: 'notify-message-config',
|
|
1718
|
+
}).then((data) => {
|
|
1719
|
+
function getDatalist() {
|
|
1720
|
+
return data.response.data.map((dd) => {
|
|
1721
|
+
return [
|
|
1722
|
+
{
|
|
1723
|
+
key: '推播標題',
|
|
1724
|
+
value: `<span class="fs-7">${dd.content.title}</span>`,
|
|
1725
|
+
},
|
|
1726
|
+
{
|
|
1727
|
+
key: '推播內文',
|
|
1728
|
+
value: `<span class="fs-7">${Tool.truncateString(dd.content.content.replace(/<[^>]*>/g, ''), 30)}</span>`,
|
|
1729
|
+
},
|
|
1730
|
+
{
|
|
1731
|
+
key: '發送推播',
|
|
1732
|
+
value: html ` <button
|
|
1733
|
+
class="btn btn-primary-c px-4"
|
|
1734
|
+
style="width:20px !important;height: 30px;"
|
|
1735
|
+
onclick="${gvc.event((e, event) => {
|
|
1736
|
+
event.stopPropagation();
|
|
1737
|
+
gvc.glitter.innerDialog((gvc) => {
|
|
1738
|
+
let dataList = [];
|
|
1739
|
+
return html `
|
|
1740
|
+
<div style="max-height: calc(100vh - 100px);overflow-y: auto;">
|
|
1741
|
+
${BgWidget.container(BgWidget.card([
|
|
1742
|
+
html `
|
|
1743
|
+
<div class="d-flex w-100 align-items-center mb-3 ">
|
|
1744
|
+
${BgWidget.goBack(gvc.event(() => {
|
|
1745
|
+
gvc.closeDialog();
|
|
1746
|
+
}))}
|
|
1747
|
+
${BgWidget.title(`選擇群發對象`)}
|
|
1748
|
+
<div class="flex-fill"></div>
|
|
1749
|
+
<button
|
|
1750
|
+
class="btn bt_c39 me-2"
|
|
1751
|
+
style="height:38px;font-size: 14px;"
|
|
1752
|
+
onclick="${gvc.event(() => {
|
|
1753
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
2088
1754
|
dialog.dataLoading({
|
|
2089
1755
|
text: '發送中...',
|
|
2090
1756
|
visible: true,
|
|
2091
1757
|
});
|
|
2092
1758
|
ApiFcm.send({
|
|
2093
|
-
device_token:
|
|
2094
|
-
return dd.deviceToken;
|
|
2095
|
-
}),
|
|
1759
|
+
device_token: ['all'],
|
|
2096
1760
|
title: dd.content.title,
|
|
2097
1761
|
content: dd.content.content,
|
|
2098
1762
|
link: dd.content.link,
|
|
2099
1763
|
}).then(() => {
|
|
2100
1764
|
dialog.dataLoading({ visible: false });
|
|
2101
|
-
dialog.successMessage({ text:
|
|
1765
|
+
dialog.successMessage({ text: `發送成功` });
|
|
2102
1766
|
});
|
|
2103
|
-
}
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
}
|
|
2129
|
-
vmi.data = getDatalist();
|
|
2130
|
-
vmi.loading = false;
|
|
2131
|
-
vmi.callback();
|
|
2132
|
-
});
|
|
2133
|
-
},
|
|
2134
|
-
rowClick: (data, index) => {
|
|
2135
|
-
vm.data = vm.dataList[index].content;
|
|
2136
|
-
vm.type = 'replace';
|
|
2137
|
-
},
|
|
2138
|
-
filter: html ` ${BgWidget.searchPlace(gvc.event((e, event) => {
|
|
2139
|
-
vm.query = e.value;
|
|
2140
|
-
gvc.notifyDataChange(id);
|
|
2141
|
-
}), vm.query || '', '搜尋所有信件內容')}
|
|
2142
|
-
${gvc.bindView(() => {
|
|
2143
|
-
return {
|
|
2144
|
-
bind: filterID,
|
|
2145
|
-
view: () => {
|
|
2146
|
-
if (!vm.dataList ||
|
|
2147
|
-
!vm.dataList.find((dd) => {
|
|
2148
|
-
return dd.checked;
|
|
2149
|
-
})) {
|
|
2150
|
-
return ``;
|
|
2151
|
-
}
|
|
2152
|
-
else {
|
|
2153
|
-
const dialog = new ShareDialog(gvc.glitter);
|
|
2154
|
-
const selCount = vm.dataList.filter((dd) => dd.checked).length;
|
|
2155
|
-
return BgWidget.selNavbar({
|
|
2156
|
-
count: selCount,
|
|
2157
|
-
buttonList: [
|
|
2158
|
-
BgWidget.selEventButton('批量移除', gvc.event(() => {
|
|
2159
|
-
dialog.checkYesOrNot({
|
|
2160
|
-
text: '是否確認刪除所選項目?',
|
|
2161
|
-
callback: (response) => {
|
|
2162
|
-
if (response) {
|
|
2163
|
-
dialog.dataLoading({ visible: true });
|
|
2164
|
-
ApiPost.delete({
|
|
2165
|
-
id: vm.dataList
|
|
2166
|
-
.filter((dd) => {
|
|
2167
|
-
return dd.checked;
|
|
2168
|
-
})
|
|
2169
|
-
.map((dd) => {
|
|
2170
|
-
return dd.id;
|
|
2171
|
-
})
|
|
2172
|
-
.join(`,`),
|
|
2173
|
-
}).then((res) => {
|
|
2174
|
-
dialog.dataLoading({ visible: false });
|
|
2175
|
-
if (res.result) {
|
|
2176
|
-
vm.dataList = undefined;
|
|
2177
|
-
gvc.notifyDataChange(id);
|
|
1767
|
+
})}"
|
|
1768
|
+
>
|
|
1769
|
+
發送給所有用戶
|
|
1770
|
+
</button>
|
|
1771
|
+
<button
|
|
1772
|
+
class="btn bt_c39"
|
|
1773
|
+
style="height:38px;font-size: 14px;"
|
|
1774
|
+
onclick="${gvc.event(() => {
|
|
1775
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1776
|
+
if (dataList.length > 0) {
|
|
1777
|
+
dialog.dataLoading({
|
|
1778
|
+
text: '發送中...',
|
|
1779
|
+
visible: true,
|
|
1780
|
+
});
|
|
1781
|
+
ApiFcm.send({
|
|
1782
|
+
device_token: dataList.map((dd) => {
|
|
1783
|
+
return dd.deviceToken;
|
|
1784
|
+
}),
|
|
1785
|
+
title: dd.content.title,
|
|
1786
|
+
content: dd.content.content,
|
|
1787
|
+
link: dd.content.link,
|
|
1788
|
+
}).then(() => {
|
|
1789
|
+
dialog.dataLoading({ visible: false });
|
|
1790
|
+
dialog.successMessage({ text: '發送成功' });
|
|
1791
|
+
});
|
|
2178
1792
|
}
|
|
2179
1793
|
else {
|
|
2180
|
-
dialog.errorMessage({ text: '
|
|
1794
|
+
dialog.errorMessage({ text: '請選擇發送對象' });
|
|
2181
1795
|
}
|
|
2182
|
-
})
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
1796
|
+
})}"
|
|
1797
|
+
>
|
|
1798
|
+
確認並發送
|
|
1799
|
+
</button>
|
|
1800
|
+
</div>
|
|
1801
|
+
` +
|
|
1802
|
+
BgLine.fcmDevice(gvc, 'select', (data) => {
|
|
1803
|
+
dataList = data;
|
|
1804
|
+
}),
|
|
1805
|
+
].join('')), 900)}
|
|
1806
|
+
<div></div>
|
|
1807
|
+
</div>
|
|
1808
|
+
`;
|
|
1809
|
+
}, 'email');
|
|
1810
|
+
})}"
|
|
1811
|
+
>
|
|
1812
|
+
<i class="fa-sharp fa-regular fa-paper-plane-top"></i>
|
|
1813
|
+
</button>`,
|
|
1814
|
+
},
|
|
1815
|
+
];
|
|
2188
1816
|
});
|
|
2189
1817
|
}
|
|
1818
|
+
vm.dataList = data.response.data;
|
|
1819
|
+
vmi.pageSize = Math.ceil(data.response.total / limit);
|
|
1820
|
+
vmi.originalData = vm.dataList;
|
|
1821
|
+
vmi.tableData = getDatalist();
|
|
1822
|
+
vmi.loading = false;
|
|
1823
|
+
vmi.callback();
|
|
1824
|
+
});
|
|
1825
|
+
},
|
|
1826
|
+
rowClick: (data, index) => {
|
|
1827
|
+
vm.data = vm.dataList[index].content;
|
|
1828
|
+
vm.type = 'replace';
|
|
1829
|
+
},
|
|
1830
|
+
filter: [
|
|
1831
|
+
{
|
|
1832
|
+
name: '批量移除',
|
|
1833
|
+
event: (checkedData) => {
|
|
1834
|
+
const dialog = new ShareDialog(gvc.glitter);
|
|
1835
|
+
dialog.checkYesOrNot({
|
|
1836
|
+
text: '是否確認刪除所選項目?',
|
|
1837
|
+
callback: (response) => {
|
|
1838
|
+
if (response) {
|
|
1839
|
+
dialog.dataLoading({ visible: true });
|
|
1840
|
+
ApiPost.delete({
|
|
1841
|
+
id: checkedData.map((dd) => dd.id).join(`,`),
|
|
1842
|
+
}).then((res) => {
|
|
1843
|
+
dialog.dataLoading({ visible: false });
|
|
1844
|
+
if (res.result) {
|
|
1845
|
+
vm.dataList = undefined;
|
|
1846
|
+
gvc.notifyDataChange(id);
|
|
1847
|
+
}
|
|
1848
|
+
else {
|
|
1849
|
+
dialog.errorMessage({ text: '刪除失敗' });
|
|
1850
|
+
}
|
|
1851
|
+
});
|
|
1852
|
+
}
|
|
1853
|
+
},
|
|
1854
|
+
});
|
|
1855
|
+
},
|
|
2190
1856
|
},
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
!vm.dataList.find((dd) => {
|
|
2195
|
-
return dd.checked;
|
|
2196
|
-
})
|
|
2197
|
-
? `d-none`
|
|
2198
|
-
: ``}`,
|
|
2199
|
-
style: ``,
|
|
2200
|
-
};
|
|
2201
|
-
},
|
|
2202
|
-
};
|
|
2203
|
-
})}`,
|
|
2204
|
-
})))}
|
|
1857
|
+
],
|
|
1858
|
+
}),
|
|
1859
|
+
].join('')))}
|
|
2205
1860
|
`, BgWidget.getContainerWidth());
|
|
2206
1861
|
}
|
|
2207
1862
|
else if (vm.type == 'replace') {
|
|
@@ -2222,8 +1877,7 @@ export class BgLine {
|
|
|
2222
1877
|
};
|
|
2223
1878
|
});
|
|
2224
1879
|
}
|
|
2225
|
-
static rebackMessage(gvc, type = 'list', callback = () => {
|
|
2226
|
-
}) {
|
|
1880
|
+
static rebackMessage(gvc, type = 'list', callback = () => { }) {
|
|
2227
1881
|
const vm = {
|
|
2228
1882
|
type: 'list',
|
|
2229
1883
|
data: {
|
|
@@ -2252,55 +1906,6 @@ export class BgLine {
|
|
|
2252
1906
|
return vm.dataList.map((dd) => {
|
|
2253
1907
|
var _a;
|
|
2254
1908
|
return [
|
|
2255
|
-
{
|
|
2256
|
-
key: (() => {
|
|
2257
|
-
clearInterval(interval);
|
|
2258
|
-
if (!vm.dataList.find((dd) => {
|
|
2259
|
-
return !dd.checked;
|
|
2260
|
-
})) {
|
|
2261
|
-
interval = setTimeout(() => {
|
|
2262
|
-
ApiUser.getFCM({
|
|
2263
|
-
page: vmi.page - 1,
|
|
2264
|
-
limit: 100000,
|
|
2265
|
-
search: vm.query || undefined,
|
|
2266
|
-
}).then((data) => {
|
|
2267
|
-
callback(data.response.data);
|
|
2268
|
-
});
|
|
2269
|
-
}, 10);
|
|
2270
|
-
}
|
|
2271
|
-
return EditorElem.checkBoxOnly({
|
|
2272
|
-
gvc: gvc,
|
|
2273
|
-
def: !vm.dataList.find((dd) => {
|
|
2274
|
-
return !dd.checked;
|
|
2275
|
-
}),
|
|
2276
|
-
callback: (result) => {
|
|
2277
|
-
vm.dataList.map((dd) => {
|
|
2278
|
-
dd.checked = result;
|
|
2279
|
-
});
|
|
2280
|
-
vmi.data = getDatalist();
|
|
2281
|
-
vmi.callback();
|
|
2282
|
-
gvc.notifyDataChange(filterID);
|
|
2283
|
-
callback(vm.dataList.filter((dd) => {
|
|
2284
|
-
return dd.checked;
|
|
2285
|
-
}));
|
|
2286
|
-
},
|
|
2287
|
-
});
|
|
2288
|
-
})(),
|
|
2289
|
-
value: EditorElem.checkBoxOnly({
|
|
2290
|
-
gvc: gvc,
|
|
2291
|
-
def: dd.checked,
|
|
2292
|
-
callback: (result) => {
|
|
2293
|
-
dd.checked = result;
|
|
2294
|
-
vmi.data = getDatalist();
|
|
2295
|
-
vmi.callback();
|
|
2296
|
-
gvc.notifyDataChange(filterID);
|
|
2297
|
-
callback(vm.dataList.filter((dd) => {
|
|
2298
|
-
return dd.checked;
|
|
2299
|
-
}));
|
|
2300
|
-
},
|
|
2301
|
-
style: 'height:25px;',
|
|
2302
|
-
}),
|
|
2303
|
-
},
|
|
2304
1909
|
{
|
|
2305
1910
|
key: '名稱',
|
|
2306
1911
|
value: `<span class="fs-7">${dd.content.name}</span>`,
|
|
@@ -2431,8 +2036,7 @@ export class BgLine {
|
|
|
2431
2036
|
},
|
|
2432
2037
|
},
|
|
2433
2038
|
],
|
|
2434
|
-
refresh: () => {
|
|
2435
|
-
},
|
|
2039
|
+
refresh: () => { },
|
|
2436
2040
|
formData: vm.data.content,
|
|
2437
2041
|
})}`)}
|
|
2438
2042
|
`, 800);
|
|
@@ -2442,103 +2046,76 @@ export class BgLine {
|
|
|
2442
2046
|
${BgWidget.title('回饋信件')}
|
|
2443
2047
|
<div class="flex-fill"></div>
|
|
2444
2048
|
</div>
|
|
2445
|
-
${BgWidget.
|
|
2446
|
-
gvc
|
|
2447
|
-
getData: (vmk) => {
|
|
2448
|
-
vmi = vmk;
|
|
2449
|
-
ApiPost.getUserPost({
|
|
2450
|
-
page: vmi.page - 1,
|
|
2451
|
-
limit: 20,
|
|
2452
|
-
search: vm.query || undefined,
|
|
2453
|
-
type: 'userQuestion',
|
|
2454
|
-
}).then((data) => {
|
|
2455
|
-
vmi.pageSize = Math.ceil(data.response.total / 20);
|
|
2456
|
-
vm.dataList = data.response.data;
|
|
2457
|
-
vmi.data = getDatalist();
|
|
2458
|
-
vmi.loading = false;
|
|
2459
|
-
vmi.callback();
|
|
2460
|
-
if (type === 'select') {
|
|
2461
|
-
callback(vm.dataList.filter((dd) => {
|
|
2462
|
-
return dd.checked;
|
|
2463
|
-
}));
|
|
2464
|
-
}
|
|
2465
|
-
});
|
|
2466
|
-
},
|
|
2467
|
-
rowClick: (data, index) => {
|
|
2468
|
-
vm.type = 'replace';
|
|
2469
|
-
vm.data = vm.dataList[index];
|
|
2470
|
-
gvc.notifyDataChange(id);
|
|
2471
|
-
},
|
|
2472
|
-
filter: html `
|
|
2473
|
-
${BgWidget.searchPlace(gvc.event((e, event) => {
|
|
2049
|
+
${BgWidget.mainCard([
|
|
2050
|
+
BgWidget.searchPlace(gvc.event((e, event) => {
|
|
2474
2051
|
vm.query = e.value;
|
|
2475
2052
|
gvc.notifyDataChange(id);
|
|
2476
|
-
}), vm.query || '', '搜尋標題')
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2053
|
+
}), vm.query || '', '搜尋標題'),
|
|
2054
|
+
BgWidget.tableV3({
|
|
2055
|
+
gvc: gvc,
|
|
2056
|
+
getData: (vmi) => {
|
|
2057
|
+
const limit = 20;
|
|
2058
|
+
ApiPost.getUserPost({
|
|
2059
|
+
page: vmi.page - 1,
|
|
2060
|
+
limit: limit,
|
|
2061
|
+
search: vm.query || undefined,
|
|
2062
|
+
type: 'userQuestion',
|
|
2063
|
+
}).then((data) => {
|
|
2064
|
+
vm.dataList = data.response.data;
|
|
2065
|
+
vmi.pageSize = Math.ceil(data.response.total / limit);
|
|
2066
|
+
vmi.originalData = vm.dataList;
|
|
2067
|
+
vmi.tableData = getDatalist();
|
|
2068
|
+
vmi.loading = false;
|
|
2069
|
+
vmi.callback();
|
|
2070
|
+
if (type === 'select') {
|
|
2071
|
+
callback(vm.dataList.filter((dd) => {
|
|
2483
2072
|
return dd.checked;
|
|
2484
|
-
}))
|
|
2485
|
-
return ``;
|
|
2073
|
+
}));
|
|
2486
2074
|
}
|
|
2487
|
-
|
|
2075
|
+
});
|
|
2076
|
+
},
|
|
2077
|
+
rowClick: (data, index) => {
|
|
2078
|
+
vm.type = 'replace';
|
|
2079
|
+
vm.data = vm.dataList[index];
|
|
2080
|
+
gvc.notifyDataChange(id);
|
|
2081
|
+
},
|
|
2082
|
+
filter: [
|
|
2083
|
+
{
|
|
2084
|
+
name: '批量移除',
|
|
2085
|
+
event: () => {
|
|
2488
2086
|
const dialog = new ShareDialog(gvc.glitter);
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
gvc.notifyDataChange(id);
|
|
2513
|
-
}
|
|
2514
|
-
else {
|
|
2515
|
-
dialog.errorMessage({ text: '刪除失敗' });
|
|
2516
|
-
}
|
|
2517
|
-
});
|
|
2518
|
-
}
|
|
2519
|
-
},
|
|
2087
|
+
dialog.checkYesOrNot({
|
|
2088
|
+
text: '是否確認刪除所選項目?',
|
|
2089
|
+
callback: (response) => {
|
|
2090
|
+
if (response) {
|
|
2091
|
+
dialog.dataLoading({ visible: true });
|
|
2092
|
+
ApiPost.deleteUserPost({
|
|
2093
|
+
id: vm.dataList
|
|
2094
|
+
.filter((dd) => {
|
|
2095
|
+
return dd.checked;
|
|
2096
|
+
})
|
|
2097
|
+
.map((dd) => {
|
|
2098
|
+
return dd.id;
|
|
2099
|
+
})
|
|
2100
|
+
.join(`,`),
|
|
2101
|
+
}).then((res) => {
|
|
2102
|
+
dialog.dataLoading({ visible: false });
|
|
2103
|
+
if (res.result) {
|
|
2104
|
+
vm.dataList = undefined;
|
|
2105
|
+
gvc.notifyDataChange(id);
|
|
2106
|
+
}
|
|
2107
|
+
else {
|
|
2108
|
+
dialog.errorMessage({ text: '刪除失敗' });
|
|
2109
|
+
}
|
|
2520
2110
|
});
|
|
2521
|
-
}
|
|
2522
|
-
|
|
2111
|
+
}
|
|
2112
|
+
},
|
|
2523
2113
|
});
|
|
2524
|
-
}
|
|
2525
|
-
},
|
|
2526
|
-
divCreate: () => {
|
|
2527
|
-
return {
|
|
2528
|
-
class: `d-flex align-items-center p-2 py-3 ${!vm.dataList ||
|
|
2529
|
-
!vm.dataList.find((dd) => {
|
|
2530
|
-
return dd.checked;
|
|
2531
|
-
}) ||
|
|
2532
|
-
type === 'select'
|
|
2533
|
-
? `d-none`
|
|
2534
|
-
: ``}`,
|
|
2535
|
-
style: ``,
|
|
2536
|
-
};
|
|
2114
|
+
},
|
|
2537
2115
|
},
|
|
2538
|
-
|
|
2539
|
-
})
|
|
2540
|
-
|
|
2541
|
-
})}
|
|
2116
|
+
],
|
|
2117
|
+
}),
|
|
2118
|
+
].join(''))}
|
|
2542
2119
|
`);
|
|
2543
2120
|
},
|
|
2544
2121
|
divCreate: {
|
|
@@ -2547,8 +2124,7 @@ export class BgLine {
|
|
|
2547
2124
|
};
|
|
2548
2125
|
});
|
|
2549
2126
|
}
|
|
2550
|
-
static customerMessage(gvc, type = 'list', callback = () => {
|
|
2551
|
-
}) {
|
|
2127
|
+
static customerMessage(gvc, type = 'list', callback = () => { }) {
|
|
2552
2128
|
const vm = {
|
|
2553
2129
|
type: 'list',
|
|
2554
2130
|
data: {
|
|
@@ -2577,55 +2153,6 @@ export class BgLine {
|
|
|
2577
2153
|
let interval = 0;
|
|
2578
2154
|
return vm.dataList.map((dd) => {
|
|
2579
2155
|
return [
|
|
2580
|
-
{
|
|
2581
|
-
key: (() => {
|
|
2582
|
-
clearInterval(interval);
|
|
2583
|
-
if (!vm.dataList.find((dd) => {
|
|
2584
|
-
return !dd.checked;
|
|
2585
|
-
})) {
|
|
2586
|
-
interval = setTimeout(() => {
|
|
2587
|
-
ApiUser.getFCM({
|
|
2588
|
-
page: vmi.page - 1,
|
|
2589
|
-
limit: 100000,
|
|
2590
|
-
search: vm.query || undefined,
|
|
2591
|
-
}).then((data) => {
|
|
2592
|
-
callback(data.response.data);
|
|
2593
|
-
});
|
|
2594
|
-
}, 10);
|
|
2595
|
-
}
|
|
2596
|
-
return EditorElem.checkBoxOnly({
|
|
2597
|
-
gvc: gvc,
|
|
2598
|
-
def: !vm.dataList.find((dd) => {
|
|
2599
|
-
return !dd.checked;
|
|
2600
|
-
}),
|
|
2601
|
-
callback: (result) => {
|
|
2602
|
-
vm.dataList.map((dd) => {
|
|
2603
|
-
dd.checked = result;
|
|
2604
|
-
});
|
|
2605
|
-
vmi.data = getDatalist();
|
|
2606
|
-
vmi.callback();
|
|
2607
|
-
gvc.notifyDataChange(filterID);
|
|
2608
|
-
callback(vm.dataList.filter((dd) => {
|
|
2609
|
-
return dd.checked;
|
|
2610
|
-
}));
|
|
2611
|
-
},
|
|
2612
|
-
});
|
|
2613
|
-
})(),
|
|
2614
|
-
value: EditorElem.checkBoxOnly({
|
|
2615
|
-
gvc: gvc,
|
|
2616
|
-
def: dd.checked,
|
|
2617
|
-
callback: (result) => {
|
|
2618
|
-
dd.checked = result;
|
|
2619
|
-
vmi.data = getDatalist();
|
|
2620
|
-
vmi.callback();
|
|
2621
|
-
gvc.notifyDataChange(filterID);
|
|
2622
|
-
callback(vm.dataList.filter((dd) => {
|
|
2623
|
-
return dd.checked;
|
|
2624
|
-
}));
|
|
2625
|
-
},
|
|
2626
|
-
style: 'height:25px;',
|
|
2627
|
-
}),
|
|
2628
|
-
},
|
|
2629
2156
|
{
|
|
2630
2157
|
key: '名稱',
|
|
2631
2158
|
value: `<span class="fs-7">${dd.user_data ? dd.user_data.userData.name : `訪客`}</span>`,
|
|
@@ -2752,8 +2279,7 @@ export class BgLine {
|
|
|
2752
2279
|
},
|
|
2753
2280
|
},
|
|
2754
2281
|
],
|
|
2755
|
-
refresh: () => {
|
|
2756
|
-
},
|
|
2282
|
+
refresh: () => { },
|
|
2757
2283
|
formData: vm.data.content,
|
|
2758
2284
|
})}`)}
|
|
2759
2285
|
`, 800);
|
|
@@ -2763,9 +2289,9 @@ export class BgLine {
|
|
|
2763
2289
|
${BgWidget.title('客服訊息')}
|
|
2764
2290
|
<div class="flex-fill"></div>
|
|
2765
2291
|
<button
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2292
|
+
class="btn hoverBtn me-2 px-3"
|
|
2293
|
+
style="height:35px !important;font-size: 14px;color:black;border:1px solid black;"
|
|
2294
|
+
onclick="${gvc.event(() => {
|
|
2769
2295
|
EditorElem.openEditorDialog(gvc, (gvc) => {
|
|
2770
2296
|
const saasConfig = window.saasConfig;
|
|
2771
2297
|
const id = gvc.glitter.getUUID();
|
|
@@ -2798,7 +2324,7 @@ export class BgLine {
|
|
|
2798
2324
|
},
|
|
2799
2325
|
input: {
|
|
2800
2326
|
class: '',
|
|
2801
|
-
style: ''
|
|
2327
|
+
style: '',
|
|
2802
2328
|
},
|
|
2803
2329
|
container: {
|
|
2804
2330
|
class: '',
|
|
@@ -2865,13 +2391,12 @@ export class BgLine {
|
|
|
2865
2391
|
},
|
|
2866
2392
|
};
|
|
2867
2393
|
}),
|
|
2868
|
-
html `
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
onclick="${gvc.event(() => {
|
|
2394
|
+
html ` <div class="d-flex">
|
|
2395
|
+
<div class="flex-fill"></div>
|
|
2396
|
+
<div
|
|
2397
|
+
class=" btn-primary-c btn my-2 me-2"
|
|
2398
|
+
style="margin-left: 10px;height:35px;"
|
|
2399
|
+
onclick="${gvc.event(() => {
|
|
2875
2400
|
dialog.dataLoading({ visible: true });
|
|
2876
2401
|
ApiUser.setPublicConfig({
|
|
2877
2402
|
key: `robot_auto_reply`,
|
|
@@ -2882,13 +2407,12 @@ export class BgLine {
|
|
|
2882
2407
|
dialog.successMessage({ text: '設定成功' });
|
|
2883
2408
|
});
|
|
2884
2409
|
})}"
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2410
|
+
>
|
|
2411
|
+
儲存設定
|
|
2412
|
+
</div>
|
|
2413
|
+
</div>`,
|
|
2889
2414
|
].join('');
|
|
2890
|
-
}, () => {
|
|
2891
|
-
}, 500, '自訂表單');
|
|
2415
|
+
}, () => { }, 500, '自訂表單');
|
|
2892
2416
|
})}"
|
|
2893
2417
|
>
|
|
2894
2418
|
<i class="fa-regular fa-gear me-2 "></i>
|
|
@@ -2938,14 +2462,14 @@ export class BgLine {
|
|
|
2938
2462
|
filter: html `
|
|
2939
2463
|
<div style="height:50px;" class="w-100 border-bottom ">
|
|
2940
2464
|
<input
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2465
|
+
class="form-control h-100 "
|
|
2466
|
+
style="border: none;"
|
|
2467
|
+
placeholder="搜尋用戶名稱"
|
|
2468
|
+
onchange="${gvc.event((e, event) => {
|
|
2945
2469
|
vm.query = e.value;
|
|
2946
2470
|
gvc.notifyDataChange(id);
|
|
2947
2471
|
})}"
|
|
2948
|
-
|
|
2472
|
+
value="${vm.query || ''}"
|
|
2949
2473
|
/>
|
|
2950
2474
|
</div>
|
|
2951
2475
|
${gvc.bindView(() => {
|