ts-glitter 13.3.4 → 13.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/lowcode/Entry.js +1 -1
  2. package/lowcode/Entry.ts +1 -1
  3. package/lowcode/backend-manager/bg-blog.js +2 -7
  4. package/lowcode/backend-manager/bg-blog.ts +8 -13
  5. package/lowcode/backend-manager/bg-customer-message.js +4 -2
  6. package/lowcode/backend-manager/bg-customer-message.ts +4 -2
  7. package/lowcode/backend-manager/bg-graph-api.js +6 -11
  8. package/lowcode/backend-manager/bg-graph-api.ts +14 -20
  9. package/lowcode/backend-manager/bg-line.js +526 -1002
  10. package/lowcode/backend-manager/bg-line.ts +1815 -2354
  11. package/lowcode/backend-manager/bg-notify.js +392 -746
  12. package/lowcode/backend-manager/bg-notify.ts +436 -835
  13. package/lowcode/backend-manager/bg-project.js +176 -293
  14. package/lowcode/backend-manager/bg-project.ts +214 -344
  15. package/lowcode/backend-manager/bg-recommend.js +39 -148
  16. package/lowcode/backend-manager/bg-recommend.ts +43 -162
  17. package/lowcode/backend-manager/bg-sns.js +489 -814
  18. package/lowcode/backend-manager/bg-sns.ts +1876 -2238
  19. package/lowcode/backend-manager/bg-widget.js +301 -171
  20. package/lowcode/backend-manager/bg-widget.ts +324 -193
  21. package/lowcode/cms-plugin/ai-points.js +84 -67
  22. package/lowcode/cms-plugin/ai-points.ts +280 -247
  23. package/lowcode/cms-plugin/auto-reply.js +6 -7
  24. package/lowcode/cms-plugin/auto-reply.ts +6 -7
  25. package/lowcode/cms-plugin/data-analyze.js +5 -6
  26. package/lowcode/cms-plugin/data-analyze.ts +5 -6
  27. package/lowcode/cms-plugin/form-setting.js +122 -220
  28. package/lowcode/cms-plugin/form-setting.ts +124 -240
  29. package/lowcode/cms-plugin/line-auto-reply.js +17 -18
  30. package/lowcode/cms-plugin/line-auto-reply.ts +29 -36
  31. package/lowcode/cms-plugin/member-group-list.js +5 -2
  32. package/lowcode/cms-plugin/member-group-list.ts +5 -2
  33. package/lowcode/cms-plugin/member-type-list.js +36 -84
  34. package/lowcode/cms-plugin/member-type-list.ts +39 -92
  35. package/lowcode/cms-plugin/menus-setting.js +8 -73
  36. package/lowcode/cms-plugin/menus-setting.ts +8 -78
  37. package/lowcode/cms-plugin/permission-setting.js +73 -106
  38. package/lowcode/cms-plugin/permission-setting.ts +236 -278
  39. package/lowcode/cms-plugin/shopping-collections.js +95 -137
  40. package/lowcode/cms-plugin/shopping-collections.ts +103 -147
  41. package/lowcode/cms-plugin/shopping-discount-setting.js +310 -416
  42. package/lowcode/cms-plugin/shopping-discount-setting.ts +1269 -1386
  43. package/lowcode/cms-plugin/shopping-finance-setting.js +1 -0
  44. package/lowcode/cms-plugin/shopping-finance-setting.ts +1 -0
  45. package/lowcode/cms-plugin/shopping-order-manager.js +742 -973
  46. package/lowcode/cms-plugin/shopping-order-manager.ts +1928 -2164
  47. package/lowcode/cms-plugin/shopping-order-return.js +147 -267
  48. package/lowcode/cms-plugin/shopping-order-return.ts +154 -292
  49. package/lowcode/cms-plugin/shopping-product-setting.js +6 -2
  50. package/lowcode/cms-plugin/shopping-product-setting.ts +8 -4
  51. package/lowcode/cms-plugin/shopping-product-stock.js +12 -92
  52. package/lowcode/cms-plugin/shopping-product-stock.ts +14 -94
  53. package/lowcode/cms-plugin/shopping-product-text.js +0 -3
  54. package/lowcode/cms-plugin/shopping-product-text.ts +0 -3
  55. package/lowcode/cms-plugin/shopping-rebate.js +95 -151
  56. package/lowcode/cms-plugin/shopping-rebate.ts +101 -159
  57. package/lowcode/cms-plugin/sms-points.js +83 -67
  58. package/lowcode/cms-plugin/sms-points.ts +281 -241
  59. package/lowcode/cms-plugin/sns-auto-reply.js +18 -18
  60. package/lowcode/cms-plugin/sns-auto-reply.ts +34 -40
  61. package/lowcode/cms-plugin/user-list.js +71 -90
  62. package/lowcode/cms-plugin/user-list.ts +76 -95
  63. package/lowcode/cms-plugin/web-config-setting.js +61 -111
  64. package/lowcode/cms-plugin/web-config-setting.ts +65 -124
  65. package/lowcode/css/editor.css +5 -2
  66. package/lowcode/glitter-base/route/shopping.js +1 -1
  67. package/lowcode/glitter-base/route/shopping.ts +19 -19
  68. package/lowcode/jspage/editor.js +1 -1
  69. package/lowcode/jspage/editor.ts +1 -1
  70. package/lowcode/jspage/main.js +3 -0
  71. package/lowcode/jspage/main.ts +3 -0
  72. package/package.json +1 -2
  73. package/src/api-public/controllers/ai-chat.js.map +5 -1
  74. package/src/api-public/controllers/article.js.map +1 -1
  75. package/src/api-public/controllers/chat.js.map +1 -1
  76. package/src/api-public/controllers/fb-message.js.map +1 -1
  77. package/src/api-public/controllers/index.js.map +1 -1
  78. package/src/api-public/controllers/line-message.js.map +1 -1
  79. package/src/api-public/controllers/rebate.js.map +1 -1
  80. package/src/api-public/controllers/shop.js.map +1 -1
  81. package/src/api-public/controllers/user.js.map +1 -1
  82. package/src/api-public/services/auto-send-email.js.map +1 -1
  83. package/src/api-public/services/chat.js +3 -3
  84. package/src/api-public/services/chat.js.map +1 -1
  85. package/src/api-public/services/chat.ts +3 -4
  86. package/src/api-public/services/fb-message.js.map +5 -1
  87. package/src/api-public/services/filter-protect-data.js.map +1 -1
  88. package/src/api-public/services/line-message.js.map +1 -1
  89. package/src/api-public/services/monitor.js.map +1 -1
  90. package/src/api-public/services/notify.js.map +1 -1
  91. package/src/api-public/services/rebate.js.map +1 -1
  92. package/src/api-public/services/schedule.js.map +1 -1
  93. package/src/api-public/services/share-permission.js.map +1 -1
  94. package/src/api-public/services/shopping.js.map +1 -1
  95. package/src/api-public/services/user.js +67 -66
  96. package/src/api-public/services/user.js.map +1 -1
  97. package/src/api-public/services/user.ts +212 -182
  98. package/src/helper/glitter-util.js.map +1 -1
  99. package/src/modules/firebase.d.ts +1 -0
  100. package/src/modules/firebase.js +1 -1
  101. package/src/modules/firebase.js.map +1 -1
@@ -1,57 +1,69 @@
1
- import {GVC} from "../glitterBundle/GVController.js";
2
- import {BgWidget} from "../backend-manager/bg-widget.js";
3
- import {SmsPointsApi} from "../glitter-base/route/sms-points-api.js";
4
- import {ShareDialog} from "../glitterBundle/dialog/ShareDialog.js";
5
- import {ApiUser} from "../glitter-base/route/user.js";
6
- import {AiPointsApi} from "../glitter-base/route/ai-points-api.js";
1
+ import { GVC } from '../glitterBundle/GVController.js';
2
+ import { BgWidget } from '../backend-manager/bg-widget.js';
3
+ import { SmsPointsApi } from '../glitter-base/route/sms-points-api.js';
4
+ import { ShareDialog } from '../glitterBundle/dialog/ShareDialog.js';
5
+ import { ApiUser } from '../glitter-base/route/user.js';
6
+ import { AiPointsApi } from '../glitter-base/route/ai-points-api.js';
7
7
 
8
-
9
- const html = String.raw
8
+ const html = String.raw;
10
9
 
11
10
  export class SmsPoints {
12
11
  public static main(gvc: GVC) {
13
- return [BgWidget.container([
14
- BgWidget.mainCard([
15
- BgWidget.title('SMS Points'),
16
- BgWidget.grayNote([`*透過SMS Points來進行手機簡訊發送`, `*1塊台幣可以換取10點SMS Points`, `*最少儲值金額500元`, `*SMS Points購買後無法退費,請購買前瞭解會員權益需知`].map((dd) => {
17
- return `<div style="letter-spacing: 1.2px;">${dd}</div>`
18
- }).join('')),
19
- html`
20
- <div class="d-flex align-items-center rounded-3" style="height:35px;width:100%;max-width: 500px;">
21
- <div style="height:100%;background:var(--main-black-hover)"
22
- class="d-flex align-items-center justify-content-center text-white px-3">目前 SMS Points
23
- </div>
24
- <div class="bgf6 d-flex align-items-center flex-fill h-100 ps-3 pe-2">${gvc.bindView(()=>{
25
- const id=gvc.glitter.getUUID()
26
- const vm={
27
- loading:true,
28
- sum:0
29
- }
30
- SmsPointsApi.getSum({}).then((res:any)=>{
31
- vm.sum=parseInt(res.response.sum,10)
32
- vm.loading=false
12
+ return [
13
+ BgWidget.container(
14
+ [
15
+ BgWidget.mainCard(
16
+ [
17
+ BgWidget.title('SMS Points'),
18
+ BgWidget.grayNote(
19
+ [`*透過SMS Points來進行手機簡訊發送`, `*1塊台幣可以換取10點SMS Points`, `*最少儲值金額500元`, `*SMS Points購買後無法退費,請購買前瞭解會員權益需知`]
20
+ .map((dd) => {
21
+ return `<div style="letter-spacing: 1.2px;">${dd}</div>`;
22
+ })
23
+ .join('')
24
+ ),
25
+ html` <div class="d-flex align-items-center rounded-3" style="height:35px;width:100%;max-width: 500px;">
26
+ <div style="height:100%;background:var(--main-black-hover)" class="d-flex align-items-center justify-content-center text-white px-3">目前 SMS Points</div>
27
+ <div class="bgf6 d-flex align-items-center flex-fill h-100 ps-3 pe-2">
28
+ ${gvc.bindView(() => {
29
+ const id = gvc.glitter.getUUID();
30
+ const vm = {
31
+ loading: true,
32
+ sum: 0,
33
+ };
34
+ SmsPointsApi.getSum({}).then((res: any) => {
35
+ vm.sum = parseInt(res.response.sum, 10);
36
+ vm.loading = false;
33
37
 
34
- gvc.notifyDataChange(id)
35
- })
36
- return {
37
- bind:id,
38
- view:()=>{
39
- if(vm.loading){
40
- return `<div class="h-100 d-flex align-items-center"><div class="spinner-border" style="height:20px;width: 20px;"></div></div>`
41
- }else{
42
- return `${vm.sum.toLocaleString()}`
43
- }
44
- }
45
- }
46
- })}
47
- <div class="flex-fill"></div>
48
- ${BgWidget.blueNote('儲值', gvc.event(() => {
49
- SmsPoints.store(gvc)
50
- }))}
51
- </div>
52
- </div>`
53
- ].join(`<div class="my-2"></div>`))
54
- ].join(''), BgWidget.getContainerWidth()),SmsPoints.walletList(gvc)].join('')
38
+ gvc.notifyDataChange(id);
39
+ });
40
+ return {
41
+ bind: id,
42
+ view: () => {
43
+ if (vm.loading) {
44
+ return `<div class="h-100 d-flex align-items-center"><div class="spinner-border" style="height:20px;width: 20px;"></div></div>`;
45
+ } else {
46
+ return `${vm.sum.toLocaleString()}`;
47
+ }
48
+ },
49
+ };
50
+ })}
51
+ <div class="flex-fill"></div>
52
+ ${BgWidget.blueNote(
53
+ '儲值',
54
+ gvc.event(() => {
55
+ SmsPoints.store(gvc);
56
+ })
57
+ )}
58
+ </div>
59
+ </div>`,
60
+ ].join(`<div class="my-2"></div>`)
61
+ ),
62
+ ].join(''),
63
+ BgWidget.getContainerWidth()
64
+ ),
65
+ SmsPoints.walletList(gvc),
66
+ ].join('');
55
67
  }
56
68
  //紀錄列表
57
69
  public static walletList(gvc: GVC) {
@@ -61,13 +73,13 @@ export class SmsPoints {
61
73
  data: any;
62
74
  dataList: any;
63
75
  query?: string;
64
- select:'all'|'cost'|'income'
76
+ select: 'all' | 'cost' | 'income';
65
77
  } = {
66
78
  type: 'list',
67
79
  data: {},
68
80
  dataList: undefined,
69
81
  query: '',
70
- select:'all'
82
+ select: 'all',
71
83
  };
72
84
  const filterID = gvc.glitter.getUUID();
73
85
 
@@ -84,99 +96,109 @@ export class SmsPoints {
84
96
  dataList: [{ obj: vm, key: 'type' }],
85
97
  view: () => {
86
98
  if (vm.type === 'list') {
87
- return BgWidget.container(BgWidget.card(html`
88
- ${BgWidget.tab([
89
- {title:'紀錄總覽',key:'all'},
90
- {title:'使用紀錄',key:'cost'},
91
- {title:'儲值紀錄',key:'income'}
92
- ],gvc,vm.select,(text)=>{
93
- vm.select=text as any
94
- gvc.notifyDataChange(id)
95
- })}
96
- <div class="border-bottom mb-2 w-100"></div>
97
- ${BgWidget.tableV2({
98
- gvc: gvc,
99
- getData: (vmi) => {
100
- SmsPointsApi.get({
101
- page: vmi.page - 1,
102
- limit: 20,
103
- search: vm.query || undefined,
104
- type:(()=>{
105
- switch (vm.select){
106
- case "all":
107
- return undefined
108
- case "cost":
109
- return 'minus'
110
- case "income":
111
- return 'plus'
112
- }
113
- })()
114
- }).then((data:any) => {
115
- vmi.pageSize = Math.ceil(data.response.total / 20);
116
- vm.dataList = data.response.data;
117
- function getDatalist() {
118
- return data.response.data.map((dd: any) => {
119
- return [
120
- {
121
- key: '用戶名稱',
122
- value: `<span class="fs-7">${(dd.userData && dd.userData.name) ?? '資料異常'}</span>`,
123
- },
124
- {
125
- key: '金流單號',
126
- value: `<span class="fs-7">${dd.status === 2 ? `手動新增` : dd.orderID}</span>`,
127
- },
128
- {
129
- key: '異動金額',
130
- value: `${dd.money > 0 ? `<span class="fs-7 text-success">+ ${dd.money}</span>` : `<span class="fs-7 text-danger">- ${dd.money * -1}</span>`}`,
131
- },
132
- {
133
- key: '異動原因',
134
- value: `${dd.money > 0 ? `加值服務`:`使用簡訊發送`}`,
135
- },
136
- {
137
- key: '異動時間',
138
- value: `<span class="fs-7">${glitter.ut.dateFormat(new Date(dd.created_time), 'yyyy-MM-dd hh:mm')}</span>`,
139
- },
140
- ];
141
- });
99
+ return BgWidget.container(
100
+ BgWidget.card(html`
101
+ ${BgWidget.tab(
102
+ [
103
+ { title: '紀錄總覽', key: 'all' },
104
+ { title: '使用紀錄', key: 'cost' },
105
+ { title: '儲值紀錄', key: 'income' },
106
+ ],
107
+ gvc,
108
+ vm.select,
109
+ (text) => {
110
+ vm.select = text as any;
111
+ gvc.notifyDataChange(id);
142
112
  }
143
- vmi.data = getDatalist();
144
- vmi.loading = false;
145
- vmi.callback();
146
- });
147
- },
148
- rowClick: (data, index) => {
149
-
150
- },
151
- filter:``
152
- })}
153
- `),BgWidget.getContainerWidth());
113
+ )}
114
+ <div class="border-bottom mb-2 w-100"></div>
115
+ ${BgWidget.tableV3({
116
+ gvc: gvc,
117
+ getData: (vmi) => {
118
+ const limit = 20;
119
+ SmsPointsApi.get({
120
+ page: vmi.page - 1,
121
+ limit: limit,
122
+ search: vm.query || undefined,
123
+ type: (() => {
124
+ switch (vm.select) {
125
+ case 'all':
126
+ return undefined;
127
+ case 'cost':
128
+ return 'minus';
129
+ case 'income':
130
+ return 'plus';
131
+ }
132
+ })(),
133
+ }).then((data: any) => {
134
+ function getDatalist() {
135
+ return data.response.data.map((dd: any) => {
136
+ return [
137
+ {
138
+ key: '用戶名稱',
139
+ value: `<span class="fs-7">${(dd.userData && dd.userData.name) ?? '資料異常'}</span>`,
140
+ },
141
+ {
142
+ key: '金流單號',
143
+ value: `<span class="fs-7">${dd.status === 2 ? `手動新增` : dd.orderID}</span>`,
144
+ },
145
+ {
146
+ key: '異動金額',
147
+ value: `${
148
+ dd.money > 0 ? `<span class="fs-7 text-success">+ ${dd.money}</span>` : `<span class="fs-7 text-danger">- ${dd.money * -1}</span>`
149
+ }`,
150
+ },
151
+ {
152
+ key: '異動原因',
153
+ value: `${dd.money > 0 ? `加值服務` : `使用簡訊發送`}`,
154
+ },
155
+ {
156
+ key: '異動時間',
157
+ value: `<span class="fs-7">${glitter.ut.dateFormat(new Date(dd.created_time), 'yyyy-MM-dd hh:mm')}</span>`,
158
+ },
159
+ ];
160
+ });
161
+ }
162
+ vm.dataList = data.response.data;
163
+ vmi.pageSize = Math.ceil(data.response.total / limit);
164
+ vmi.originalData = vm.dataList;
165
+ vmi.tableData = getDatalist();
166
+ vmi.loading = false;
167
+ vmi.callback();
168
+ });
169
+ },
170
+ rowClick: (data, index) => {},
171
+ filter: [],
172
+ })}
173
+ `),
174
+ BgWidget.getContainerWidth()
175
+ );
154
176
  } else if (vm.type == 'replace') {
155
- return ``
177
+ return ``;
156
178
  } else {
157
179
  return ``;
158
180
  }
159
181
  },
160
- divCreate:{
161
- class:`mt-n4`
162
- }
182
+ divCreate: {
183
+ class: `mt-n4`,
184
+ },
163
185
  };
164
186
  });
165
187
  }
166
188
  //儲值
167
189
  public static async store(gvc: GVC) {
168
- const dialog = new ShareDialog(gvc.glitter)
169
- dialog.dataLoading({visible:true})
190
+ const dialog = new ShareDialog(gvc.glitter);
191
+ dialog.dataLoading({ visible: true });
170
192
  const vm: {
171
- total: number,
172
- note: any,
173
- return_url: string,
193
+ total: number;
194
+ note: any;
195
+ return_url: string;
174
196
  user_info: {
175
- email: string,
176
- invoice_type: 'me' | 'company' | 'donate',
177
- company: string,
178
- gui_number: string
179
- }
197
+ email: string;
198
+ invoice_type: 'me' | 'company' | 'donate';
199
+ company: string;
200
+ gui_number: string;
201
+ };
180
202
  } = {
181
203
  total: 500,
182
204
  note: {},
@@ -185,15 +207,15 @@ export class SmsPoints {
185
207
  email: '',
186
208
  invoice_type: 'me',
187
209
  company: '',
188
- gui_number: ''
189
- }
190
- }
210
+ gui_number: '',
211
+ },
212
+ };
191
213
  vm.user_info.email = vm.user_info.email || '';
192
- const dd = (await ApiUser.getPublicConfig('ai-points-store', 'manager'))
214
+ const dd = await ApiUser.getPublicConfig('ai-points-store', 'manager');
193
215
  if (dd.response.value) {
194
- vm.user_info = dd.response.value
216
+ vm.user_info = dd.response.value;
195
217
  }
196
- dialog.dataLoading({visible:false});
218
+ dialog.dataLoading({ visible: false });
197
219
  BgWidget.settingDialog({
198
220
  gvc: gvc,
199
221
  title: '設定儲值金額',
@@ -202,143 +224,161 @@ export class SmsPoints {
202
224
  BgWidget.select({
203
225
  gvc: gvc,
204
226
  callback: (text) => {
205
- vm.total = parseInt(text)
206
- gvc.recreateView()
227
+ vm.total = parseInt(text);
228
+ gvc.recreateView();
207
229
  },
208
230
  options: [
209
- {key: '500', value: '5,000點 ( NT.500 )'},
210
- {key: '1000', value: '10,000點 ( NT.1,000 )'},
211
- {key: '1500', value: '15,000點 ( NT.1,500 )'},
212
- {key: '2000', value: '20,000點 ( NT.2,000 )'}
231
+ { key: '500', value: '5,000點 ( NT.500 )' },
232
+ { key: '1000', value: '10,000點 ( NT.1,000 )' },
233
+ { key: '1500', value: '15,000點 ( NT.1,500 )' },
234
+ { key: '2000', value: '20,000點 ( NT.2,000 )' },
213
235
  ],
214
- default: `${vm.total}`
236
+ default: `${vm.total}`,
215
237
  }),
216
238
  ...(() => {
217
239
  if (vm.total) {
218
- return [BgWidget.greenNote(`此次儲值可獲得AI Points『 ${(vm.total * 10).toLocaleString()} 』`)]
240
+ return [BgWidget.greenNote(`此次儲值可獲得AI Points『 ${(vm.total * 10).toLocaleString()} 』`)];
219
241
  } else {
220
- return []
242
+ return [];
221
243
  }
222
244
  })(),
223
- ...(()=>{
224
- if(gvc.glitter.deviceType !== gvc.glitter.deviceTypeEnum.Ios){
225
- return [ BgWidget.editeInput({
226
- gvc: gvc,
227
- title: `發票寄送電子信箱`,
228
- placeHolder: '請輸入發票寄送電子信箱',
229
- callback: (text) => {
230
- vm.user_info.email = text
231
- },
232
- type: 'email',
233
- default: vm.user_info.email
234
- }),
245
+ ...(() => {
246
+ if (gvc.glitter.deviceType !== gvc.glitter.deviceTypeEnum.Ios) {
247
+ return [
248
+ BgWidget.editeInput({
249
+ gvc: gvc,
250
+ title: `發票寄送電子信箱`,
251
+ placeHolder: '請輸入發票寄送電子信箱',
252
+ callback: (text) => {
253
+ vm.user_info.email = text;
254
+ },
255
+ type: 'email',
256
+ default: vm.user_info.email,
257
+ }),
235
258
  `<div class="tx_normal fw-normal" >發票開立方式</div>`,
236
259
  BgWidget.select({
237
- gvc: gvc, callback: (text) => {
238
- vm.user_info.invoice_type = text
239
- gvc.recreateView()
240
- }, options: [
241
- {key: 'me', value: '個人單位'},
242
- {key: 'company', value: '公司行號'}
243
- ], default: vm.user_info.invoice_type
260
+ gvc: gvc,
261
+ callback: (text) => {
262
+ vm.user_info.invoice_type = text;
263
+ gvc.recreateView();
264
+ },
265
+ options: [
266
+ { key: 'me', value: '個人單位' },
267
+ { key: 'company', value: '公司行號' },
268
+ ],
269
+ default: vm.user_info.invoice_type,
244
270
  }),
245
271
  ...(() => {
246
272
  if (vm.user_info.invoice_type === 'company') {
247
273
  return [
248
274
  BgWidget.editeInput({
249
- gvc: gvc, title: `發票抬頭`, placeHolder: '請輸入發票抬頭', callback: (text) => {
250
- vm.user_info.company = text
251
- }, type: 'text', default: `${vm.user_info.company}`
275
+ gvc: gvc,
276
+ title: `發票抬頭`,
277
+ placeHolder: '請輸入發票抬頭',
278
+ callback: (text) => {
279
+ vm.user_info.company = text;
280
+ },
281
+ type: 'text',
282
+ default: `${vm.user_info.company}`,
252
283
  }),
253
284
  BgWidget.editeInput({
254
285
  gvc: gvc,
255
286
  title: `公司統一編號`,
256
287
  placeHolder: '請輸入統一編號',
257
288
  callback: (text) => {
258
- vm.user_info.gui_number = text
289
+ vm.user_info.gui_number = text;
259
290
  },
260
291
  type: 'number',
261
- default: `${vm.user_info.gui_number}`
262
- })
263
- ]
292
+ default: `${vm.user_info.gui_number}`,
293
+ }),
294
+ ];
264
295
  } else {
265
- return []
296
+ return [];
266
297
  }
267
- })()]
268
- }else{
269
- return []
298
+ })(),
299
+ ];
300
+ } else {
301
+ return [];
270
302
  }
271
- })()
272
- ].join(`<div class="my-2"></div>`)}</div>`
303
+ })(),
304
+ ].join(`<div class="my-2"></div>`)}</div>`;
273
305
  },
274
306
  footer_html: (gvc: GVC) => {
275
- return [BgWidget.cancel(gvc.event(()=>{
276
- gvc.closeDialog()
277
- })),BgWidget.save(gvc.event(async () => {
278
- if(vm.user_info.invoice_type !== 'company'){
279
- vm.user_info.company=''
280
- vm.user_info.gui_number=''
281
- }
282
- if(gvc.glitter.deviceType !== gvc.glitter.deviceTypeEnum.Ios){
283
- if (vm.user_info.invoice_type === 'company' && !vm.user_info.company) {
284
- dialog.errorMessage({text: '請確實填寫發票抬頭'})
285
- return
286
- } else if (vm.user_info.invoice_type === 'company' && !vm.user_info.gui_number) {
287
- dialog.errorMessage({text: '請確實填寫統一編號'})
288
- return
289
- } else if (!vm.user_info.email) {
290
- dialog.errorMessage({text: '請確實填寫信箱'})
291
- return
292
- } else if (!BgWidget.isValidEmail(vm.user_info.email)) {
293
- dialog.errorMessage({text: '請輸入有效信箱'})
294
- return
295
- } else if (vm.user_info.invoice_type === 'company' && !BgWidget.isValidNumbers(vm.user_info.gui_number)) {
296
- dialog.errorMessage({text: '請輸入有效統一編號'})
297
- return
298
- }
299
- }
300
- dialog.dataLoading({visible: true})
301
- await ApiUser.setPublicConfig({
302
- key: 'ai-points-store',
303
- value: vm.user_info,
304
- user_id: 'manager',
305
- })
306
- vm.note={
307
- invoice_data:vm.user_info
308
- }
309
- dialog.dataLoading({visible: true})
310
- if (gvc.glitter.deviceType === gvc.glitter.deviceTypeEnum.Ios) {
311
- gvc.glitter.runJsInterFace("in_app_product", {
312
- total: `sms_${vm.total}`
313
- }, async (res) => {
314
- console.log(`res.receipt_data=>`, res.receipt_data);
315
- if (res.receipt_data) {
316
- await AiPointsApi.apple_webhook(res.receipt_data);
317
- window.parent.location.reload();
318
- } else {
319
- dialog.dataLoading({visible: false});
320
- dialog.errorMessage({text:'儲值失敗'})
321
- }
307
+ return [
308
+ BgWidget.cancel(
309
+ gvc.event(() => {
310
+ gvc.closeDialog();
322
311
  })
323
- } else {
324
- SmsPointsApi.store(vm).then(async (res) => {
325
- dialog.dataLoading({visible: false})
326
- if (res.response.form) {
327
- const id = gvc.glitter.getUUID();
328
- (window.parent as any).$('body').append(`<div id="${id}" style="display: none;">${res.response.form}</div>`);
329
- (window.parent as any).document.querySelector(`#${id} #submit`).click();
312
+ ),
313
+ BgWidget.save(
314
+ gvc.event(async () => {
315
+ if (vm.user_info.invoice_type !== 'company') {
316
+ vm.user_info.company = '';
317
+ vm.user_info.gui_number = '';
318
+ }
319
+ if (gvc.glitter.deviceType !== gvc.glitter.deviceTypeEnum.Ios) {
320
+ if (vm.user_info.invoice_type === 'company' && !vm.user_info.company) {
321
+ dialog.errorMessage({ text: '請確實填寫發票抬頭' });
322
+ return;
323
+ } else if (vm.user_info.invoice_type === 'company' && !vm.user_info.gui_number) {
324
+ dialog.errorMessage({ text: '請確實填寫統一編號' });
325
+ return;
326
+ } else if (!vm.user_info.email) {
327
+ dialog.errorMessage({ text: '請確實填寫信箱' });
328
+ return;
329
+ } else if (!BgWidget.isValidEmail(vm.user_info.email)) {
330
+ dialog.errorMessage({ text: '請輸入有效信箱' });
331
+ return;
332
+ } else if (vm.user_info.invoice_type === 'company' && !BgWidget.isValidNumbers(vm.user_info.gui_number)) {
333
+ dialog.errorMessage({ text: '請輸入有效統一編號' });
334
+ return;
335
+ }
336
+ }
337
+ dialog.dataLoading({ visible: true });
338
+ await ApiUser.setPublicConfig({
339
+ key: 'ai-points-store',
340
+ value: vm.user_info,
341
+ user_id: 'manager',
342
+ });
343
+ vm.note = {
344
+ invoice_data: vm.user_info,
345
+ };
346
+ dialog.dataLoading({ visible: true });
347
+ if (gvc.glitter.deviceType === gvc.glitter.deviceTypeEnum.Ios) {
348
+ gvc.glitter.runJsInterFace(
349
+ 'in_app_product',
350
+ {
351
+ total: `sms_${vm.total}`,
352
+ },
353
+ async (res) => {
354
+ if (res.receipt_data) {
355
+ await AiPointsApi.apple_webhook(res.receipt_data);
356
+ window.parent.location.reload();
357
+ } else {
358
+ dialog.dataLoading({ visible: false });
359
+ dialog.errorMessage({ text: '儲值失敗' });
360
+ }
361
+ }
362
+ );
330
363
  } else {
331
- dialog.errorMessage({text: '發生錯誤'})
364
+ SmsPointsApi.store(vm).then(async (res) => {
365
+ dialog.dataLoading({ visible: false });
366
+ if (res.response.form) {
367
+ const id = gvc.glitter.getUUID();
368
+ (window.parent as any).$('body').append(`<div id="${id}" style="display: none;">${res.response.form}</div>`);
369
+ (window.parent as any).document.querySelector(`#${id} #submit`).click();
370
+ } else {
371
+ dialog.errorMessage({ text: '發生錯誤' });
372
+ }
373
+ });
332
374
  }
333
375
  })
334
- }
335
- }))].join('')
336
- }
337
- })
338
- return
339
-
376
+ ),
377
+ ].join('');
378
+ },
379
+ });
380
+ return;
340
381
  }
341
382
  }
342
383
 
343
-
344
- (window as any).glitter.setModule(import.meta.url, SmsPoints);
384
+ (window as any).glitter.setModule(import.meta.url, SmsPoints);