ts-glitter 21.7.2 → 21.7.4

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 (68) hide show
  1. package/lowcode/Entry.js +2 -2
  2. package/lowcode/Entry.ts +2 -2
  3. package/lowcode/api/pageConfig.js +15 -1
  4. package/lowcode/api/pageConfig.ts +15 -13
  5. package/lowcode/cms-plugin/line-auto-reply.js +1 -0
  6. package/lowcode/cms-plugin/line-auto-reply.ts +1 -0
  7. package/lowcode/cms-plugin/menus-setting.js +4 -4
  8. package/lowcode/cms-plugin/menus-setting.ts +4 -4
  9. package/lowcode/cms-plugin/shopping-market-shopee.js +2 -20
  10. package/lowcode/cms-plugin/shopping-market-shopee.ts +3 -19
  11. package/lowcode/cms-plugin/shopping-order-manager.ts +1 -0
  12. package/lowcode/editor-components/global-widget/bridge.js +95 -3
  13. package/lowcode/editor-components/global-widget/bridge.ts +124 -115
  14. package/lowcode/glitter-base/route/shopee.js +0 -2
  15. package/lowcode/glitter-base/route/shopee.ts +0 -2
  16. package/lowcode/glitterBundle/html-component/global-widget.js +37 -11
  17. package/lowcode/glitterBundle/html-component/global-widget.ts +75 -14
  18. package/lowcode/jspage/main.js +152 -68
  19. package/lowcode/jspage/main.ts +155 -80
  20. package/lowcode/modules/image-library.js +70 -86
  21. package/lowcode/modules/image-library.ts +98 -119
  22. package/lowcode/official_view_component/official/component.js +17 -15
  23. package/lowcode/official_view_component/official/component.ts +20 -15
  24. package/lowcode/official_view_component/official/form.js +186 -159
  25. package/lowcode/official_view_component/official/form.ts +1150 -1068
  26. package/lowcode/public-components/blogs/blogs-01.js +20 -4
  27. package/lowcode/public-components/blogs/blogs-01.ts +25 -4
  28. package/lowcode/public-components/footer/footer-01.js +1 -1
  29. package/lowcode/public-components/footer/footer-01.ts +2 -1
  30. package/lowcode/public-components/footer/footer-02.js +1 -1
  31. package/lowcode/public-components/footer/footer-02.ts +1 -1
  32. package/lowcode/public-components/footer/footer-03.js +1 -1
  33. package/lowcode/public-components/footer/footer-03.ts +1 -1
  34. package/package.json +1 -1
  35. package/src/api-public/controllers/shopee.js +10 -0
  36. package/src/api-public/controllers/shopee.js.map +1 -1
  37. package/src/api-public/controllers/shopee.ts +12 -12
  38. package/src/api-public/services/auto-send-email.js +16 -0
  39. package/src/api-public/services/auto-send-email.js.map +1 -1
  40. package/src/api-public/services/auto-send-email.ts +16 -0
  41. package/src/api-public/services/checkout-event.js +13 -17
  42. package/src/api-public/services/checkout-event.js.map +1 -1
  43. package/src/api-public/services/checkout-event.ts +9 -1
  44. package/src/api-public/services/data-analyze.d.ts +1 -1
  45. package/src/api-public/services/line-message.js +1 -0
  46. package/src/api-public/services/line-message.js.map +1 -1
  47. package/src/api-public/services/line-message.ts +2 -0
  48. package/src/api-public/services/shopee.d.ts +4 -3
  49. package/src/api-public/services/shopee.js +28 -24
  50. package/src/api-public/services/shopee.js.map +1 -1
  51. package/src/api-public/services/shopee.ts +30 -24
  52. package/src/api-public/services/shopping.js +2 -7
  53. package/src/api-public/services/shopping.js.map +1 -1
  54. package/src/api-public/services/shopping.ts +5 -14
  55. package/src/api-public/services/user.js +1 -1
  56. package/src/api-public/services/user.js.map +1 -1
  57. package/src/api-public/services/user.ts +1 -1
  58. package/src/index.js +3 -3
  59. package/src/modules/database.d.ts +1 -1
  60. package/src/public-config-initial/auto-fcm.js +4 -0
  61. package/src/public-config-initial/auto-fcm.js.map +1 -1
  62. package/src/public-config-initial/auto-fcm.ts +7 -1
  63. package/src/seo-config.js +0 -1
  64. package/src/seo-config.js.map +1 -1
  65. package/src/seo-config.ts +0 -1
  66. package/src/services/template.js +10 -0
  67. package/src/services/template.js.map +1 -1
  68. package/src/services/template.ts +9 -0
package/lowcode/Entry.js CHANGED
@@ -146,7 +146,7 @@ export class Entry {
146
146
  }
147
147
  window.renderClock = (_b = window.renderClock) !== null && _b !== void 0 ? _b : createClock();
148
148
  console.log(`Entry-time:`, window.renderClock.stop());
149
- glitter.share.editerVersion = 'V_21.7.2';
149
+ glitter.share.editerVersion = 'V_21.7.4';
150
150
  glitter.share.start = new Date();
151
151
  const vm = { appConfig: [] };
152
152
  window.saasConfig = {
@@ -547,7 +547,7 @@ export class Entry {
547
547
  callback();
548
548
  }
549
549
  static toNormalRender(glitter, vm, callback) {
550
- if (['hidden/', 'shop/'].find((dd) => {
550
+ if (['hidden/', 'shop/', 'pages/'].find((dd) => {
551
551
  return (glitter.getUrlParameter('page') || '').startsWith(dd) || ((glitter.getUrlParameter('page_refer') || '').startsWith(dd));
552
552
  })) {
553
553
  const og_path = glitter.getUrlParameter('page_refer') || glitter.getUrlParameter('page');
package/lowcode/Entry.ts CHANGED
@@ -150,7 +150,7 @@ export class Entry {
150
150
  }
151
151
  (window as any).renderClock = (window as any).renderClock ?? createClock();
152
152
  console.log(`Entry-time:`, (window as any).renderClock.stop());
153
- glitter.share.editerVersion = 'V_21.7.2';
153
+ glitter.share.editerVersion = 'V_21.7.4';
154
154
  glitter.share.start = new Date();
155
155
  const vm = { appConfig: [] };
156
156
  (window as any).saasConfig = {
@@ -597,7 +597,7 @@ export class Entry {
597
597
  // 跳轉至一般頁面
598
598
  public static toNormalRender(glitter: Glitter, vm: any, callback: () => void) {
599
599
  //紀錄初始載入頁面,後續會帶入query當中用與替換Header避免跳頁
600
- if(['hidden/','shop/'].find((dd)=>{
600
+ if(['hidden/','shop/','pages/'].find((dd)=>{
601
601
  return (glitter.getUrlParameter('page') || '').startsWith(dd) || ((glitter.getUrlParameter('page_refer') || '').startsWith(dd))
602
602
  })){
603
603
  const og_path=glitter.getUrlParameter('page_refer') || glitter.getUrlParameter('page');
@@ -171,7 +171,6 @@ export class ApiPageConfig {
171
171
  })) {
172
172
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
173
173
  data.config[0].is_customer_header = true;
174
- data.config[0].data.menu_refer = glitter.share.menu_refer;
175
174
  yield ApiUser.setPublicConfig({
176
175
  key: 'c_header_' + window.parent.glitter.getUrlParameter('page'),
177
176
  value: data.config,
@@ -182,6 +181,21 @@ export class ApiPageConfig {
182
181
  });
183
182
  }));
184
183
  }
184
+ else if (data.tag === 'footer' && ['pages/', 'hidden/', 'shop/'].find((dd) => {
185
+ return window.parent.glitter.getUrlParameter('page').startsWith(dd);
186
+ })) {
187
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
188
+ data.config[0].is_customer_footer = true;
189
+ yield ApiUser.setPublicConfig({
190
+ key: 'c_footer_' + window.parent.glitter.getUrlParameter('page'),
191
+ value: data.config,
192
+ user_id: 'manager',
193
+ });
194
+ resolve({
195
+ result: true
196
+ });
197
+ }));
198
+ }
185
199
  else {
186
200
  return BaseApi.create({
187
201
  "url": config.url + `/api/v1/template`,
@@ -210,8 +210,6 @@ const glitter=(window as any).glitter;
210
210
  })){
211
211
  return new Promise(async (resolve,reject)=>{
212
212
  (data.config as any)[0].is_customer_header=true;
213
- (data.config as any)[0].data.menu_refer=glitter.share.menu_refer;
214
-
215
213
  await ApiUser.setPublicConfig({
216
214
  key: 'c_header_'+(window.parent as any).glitter.getUrlParameter('page'),
217
215
  value: data.config,
@@ -220,17 +218,21 @@ const glitter=(window as any).glitter;
220
218
  resolve({
221
219
  result: true
222
220
  })
223
- })
224
- // return BaseApi.create({
225
- // "url": config.url + `/api/v1/template`,
226
- // "type": "PUT",
227
- // "timeout": 0,
228
- // "headers": {
229
- // "Content-Type": "application/json",
230
- // "Authorization": config.token
231
- // },
232
- // data: JSON.stringify(data)
233
- // })
221
+ });
222
+ }else if(data.tag==='footer' && ['pages/','hidden/','shop/'].find((dd)=>{
223
+ return (window.parent as any).glitter.getUrlParameter('page').startsWith(dd)
224
+ })){
225
+ return new Promise(async (resolve,reject)=>{
226
+ (data.config as any)[0].is_customer_footer=true;
227
+ await ApiUser.setPublicConfig({
228
+ key: 'c_footer_'+(window.parent as any).glitter.getUrlParameter('page'),
229
+ value: data.config,
230
+ user_id: 'manager',
231
+ })
232
+ resolve({
233
+ result: true
234
+ })
235
+ })
234
236
  }else{
235
237
  return BaseApi.create({
236
238
  "url": config.url + `/api/v1/template`,
@@ -115,6 +115,7 @@ export class AutoReply {
115
115
  'auto-line-shipment-arrival',
116
116
  'auto-line-payment-successful',
117
117
  'auto-line-order-create',
118
+ 'auto-line-order-cancel-success',
118
119
  'line-proof-purchase',
119
120
  'auto-line-birthday',
120
121
  ];
@@ -135,6 +135,7 @@ export class AutoReply {
135
135
  'auto-line-shipment-arrival',
136
136
  'auto-line-payment-successful',
137
137
  'auto-line-order-create',
138
+ 'auto-line-order-cancel-success',
138
139
  'line-proof-purchase',
139
140
  'auto-line-birthday',
140
141
  ];
@@ -14,7 +14,7 @@ import { LanguageBackend } from './language-backend.js';
14
14
  import { ShareDialog } from '../glitterBundle/dialog/ShareDialog.js';
15
15
  const html = String.raw;
16
16
  export class MenusSetting {
17
- static main(gvc, widget) {
17
+ static main(gvc, widget, def) {
18
18
  const html = String.raw;
19
19
  const glitter = gvc.glitter;
20
20
  const vm = {
@@ -22,7 +22,7 @@ export class MenusSetting {
22
22
  index: 0,
23
23
  dataList: undefined,
24
24
  query: '',
25
- tab: 'menu',
25
+ tab: def || 'menu',
26
26
  select: { title: '', tag: '' }
27
27
  };
28
28
  const filterID = gvc.glitter.getUUID();
@@ -64,7 +64,7 @@ export class MenusSetting {
64
64
  menu_all.list = [
65
65
  {
66
66
  tag: gvc.glitter.getUUID(),
67
- title: [tab, `${menu_all.list.length + 1}`].join(''),
67
+ title: title || [tab, `${(menu_all.list.length + 1)}`].join(''),
68
68
  tab: vm.tab === 'menu' ? 'menu-setting' : 'footer-setting'
69
69
  }
70
70
  ].concat(menu_all.list);
@@ -103,7 +103,7 @@ export class MenusSetting {
103
103
  });
104
104
  })))}
105
105
  </div>
106
- ${BgWidget.tab([
106
+ ${def ? `` : BgWidget.tab([
107
107
  { title: '主選單', key: 'menu' },
108
108
  { title: '頁腳', key: 'footer' }
109
109
  ], gvc, vm.tab, (text) => {
@@ -16,7 +16,7 @@ interface MenuItem {
16
16
  }
17
17
 
18
18
  export class MenusSetting {
19
- public static main(gvc: GVC, widget: any) {
19
+ public static main(gvc: GVC, widget: any,def:'menu'|'footer') {
20
20
  const html = String.raw;
21
21
  const glitter = gvc.glitter;
22
22
 
@@ -32,7 +32,7 @@ export class MenusSetting {
32
32
  index: 0,
33
33
  dataList: undefined,
34
34
  query: '',
35
- tab:'menu',
35
+ tab:def || 'menu',
36
36
  select:{title:'',tag:''}
37
37
  };
38
38
  const filterID = gvc.glitter.getUUID();
@@ -78,7 +78,7 @@ export class MenusSetting {
78
78
  menu_all.list=[
79
79
  {
80
80
  tag:gvc.glitter.getUUID(),
81
- title:[tab,`${menu_all.list.length+1}`].join(''),
81
+ title:title || [tab,`${(menu_all.list.length+1)}`].join(''),
82
82
  tab:vm.tab==='menu' ? 'menu-setting':'footer-setting'
83
83
  }
84
84
  ].concat(menu_all.list);
@@ -120,7 +120,7 @@ export class MenusSetting {
120
120
  })
121
121
  )}
122
122
  </div>
123
- ${BgWidget.tab(
123
+ ${def ? ``:BgWidget.tab(
124
124
  [
125
125
  { title: '主選單', key: 'menu' },
126
126
  { title: '頁腳', key: 'footer' }
@@ -9,7 +9,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { BgWidget } from '../backend-manager/bg-widget.js';
11
11
  import { ApiUser } from '../glitter-base/route/user.js';
12
- import { ShareDialog } from '../glitterBundle/dialog/ShareDialog.js';
13
12
  import { ApiShopee } from '../glitter-base/route/shopee.js';
14
13
  import { ApiPageConfig } from '../api/pageConfig.js';
15
14
  const css = String.raw;
@@ -321,30 +320,13 @@ export class MarketShopee {
321
320
  授權蝦皮
322
321
  </button>
323
322
  <button
324
- class="shopee-btn mt-3"
323
+ class="shopee-btn mt-3 d-none"
325
324
  onclick="${gvc.event(() => {
326
325
  localStorage.setItem('shopee', window.parent.location.href);
327
326
  ApiShopee.generateOrderAuth(window.parent.location.href);
328
327
  })}"
329
328
  >
330
- 授權蝦皮訂單同步
331
- </button>
332
- <button
333
- id=""
334
- class="shopee-btn mt-3 d-none"
335
- onclick="${gvc.event(() => {
336
- const dialog = new ShareDialog(gvc.glitter);
337
- dialog.dataLoading({
338
- visible: true,
339
- });
340
- ApiShopee.syncProduct((res) => {
341
- dialog.dataLoading({
342
- visible: false,
343
- });
344
- });
345
- })}"
346
- >
347
- 同步商品庫存
329
+ 授權訂單同步
348
330
  </button>
349
331
  `),
350
332
  BgWidget.mbContainer(18),
@@ -352,30 +352,13 @@ export class MarketShopee {
352
352
  授權蝦皮
353
353
  </button>
354
354
  <button
355
- class="shopee-btn mt-3"
355
+ class="shopee-btn mt-3 d-none"
356
356
  onclick="${gvc.event(() => {
357
357
  localStorage.setItem('shopee', window.parent.location.href);
358
358
  ApiShopee.generateOrderAuth(window.parent.location.href);
359
359
  })}"
360
360
  >
361
- 授權蝦皮訂單同步
362
- </button>
363
- <button
364
- id=""
365
- class="shopee-btn mt-3 d-none"
366
- onclick="${gvc.event(() => {
367
- const dialog = new ShareDialog(gvc.glitter);
368
- dialog.dataLoading({
369
- visible: true,
370
- });
371
- ApiShopee.syncProduct((res: any) => {
372
- dialog.dataLoading({
373
- visible: false,
374
- });
375
- });
376
- })}"
377
- >
378
- 同步商品庫存
361
+ 授權訂單同步
379
362
  </button>
380
363
  `),
381
364
  BgWidget.mbContainer(18),
@@ -398,6 +381,7 @@ export class MarketShopee {
398
381
  })
399
382
  },
400
383
  }),
384
+ //todo 訂單同步
401
385
  // BgWidget.mbContainer(18),
402
386
  // showShopeeBlock({
403
387
  // btnText: '匯入訂單',
@@ -379,6 +379,7 @@ export class ShoppingOrderManager {
379
379
  BgWidget.tableV3({
380
380
  gvc: gvc,
381
381
  defPage: ShoppingOrderManager.vm.page,
382
+
382
383
  getData: vmi => {
383
384
  ShoppingOrderManager.vm.page = vmi.page;
384
385
  vm.apiJSON = {
@@ -1,4 +1,14 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  import { ToolSetting } from '../../jspage/function-page/tool-setting.js';
11
+ import { ApiUser } from '../../glitter-base/route/user.js';
2
12
  const html = String.raw;
3
13
  export class Bridge {
4
14
  static grayButton(text, event, obj) {
@@ -30,7 +40,6 @@ export class Bridge {
30
40
  </select>`;
31
41
  }
32
42
  static main(obj) {
33
- console.log(`refer_form_data=>`, obj.widget);
34
43
  const gvc = obj.gvc;
35
44
  const glitter = gvc.glitter;
36
45
  const is_sub_page = ['pages/', 'hidden/', 'shop/'].find((dd) => {
@@ -39,7 +48,7 @@ export class Bridge {
39
48
  const c_view = [
40
49
  `<div style="height:5px;"></div>`,
41
50
  ];
42
- c_view.push(ToolSetting.item({
51
+ c_view.push(`<div class="mx-n2">${ToolSetting.item({
43
52
  gvc: gvc,
44
53
  dd: (() => {
45
54
  switch (glitter.share.editorViewModel.selectItem.data.tag) {
@@ -71,7 +80,90 @@ export class Bridge {
71
80
  };
72
81
  }
73
82
  })(),
74
- }));
83
+ })}</div>`);
84
+ if (['c_header', 'footer'].includes(glitter.share.editorViewModel.selectItem.data.tag)) {
85
+ c_view.push([
86
+ `<div class="fs-6 mb-2" style="color: black;">選單列表內容</div>`,
87
+ gvc.bindView(() => {
88
+ const bi = gvc.glitter.getUUID();
89
+ return {
90
+ bind: bi,
91
+ view: () => __awaiter(this, void 0, void 0, function* () {
92
+ var _a, _b;
93
+ try {
94
+ const vm = {
95
+ tab: (glitter.share.editorViewModel.selectItem.data.tag === 'c_header') ? 'menu' : 'footer',
96
+ dataList: []
97
+ };
98
+ const tag = vm.tab === 'menu' ? 'menu-setting' : 'footer-setting';
99
+ let menu_all = (yield ApiUser.getPublicConfig('menu-setting-list', 'manager')).response.value;
100
+ menu_all.list = (_a = menu_all.list) !== null && _a !== void 0 ? _a : [];
101
+ vm.dataList = [
102
+ { tag: tag, title: `系統預設
103
+ ` },
104
+ ...menu_all.list.filter((d1) => {
105
+ return d1.tab === tag;
106
+ })
107
+ ];
108
+ return [
109
+ this.select({
110
+ gvc: gvc,
111
+ callback: (text) => {
112
+ obj.subData.form_data['menu_refer'] = text;
113
+ obj.subData.refresh();
114
+ },
115
+ default: (_b = obj.subData.form_data['menu_refer']) !== null && _b !== void 0 ? _b : tag,
116
+ options: vm.dataList.map((dd) => {
117
+ return {
118
+ key: dd.tag,
119
+ value: dd.title
120
+ };
121
+ })
122
+ }),
123
+ this.grayButton('設定', gvc.event(() => {
124
+ gvc.glitter.getModule(`${gvc.glitter.root_path}cms-plugin/menus-setting.js`, menu => {
125
+ gvc.glitter.innerDialog((gvc) => {
126
+ return html `
127
+ <div class="vw-100 vh-100 bg-white">
128
+ <div class="d-flex align-items-center" style="height: 60px;width: 100vw;border-bottom: solid 1px #DDD;font-size: 16px;font-style: normal;font-weight: 700;color: #393939;">
129
+ <div class="d-flex" style="padding:19px 32px;gap:8px;cursor: pointer;border-right: solid 1px #DDD;" onclick="${gvc.event(() => {
130
+ gvc.closeDialog();
131
+ })}">
132
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
133
+ <path d="M13.7859 4.96406L8.02969 10.7203C7.69219 11.0578 7.5 11.5219 7.5 12C7.5 12.4781 7.69219 12.9422 8.02969 13.2797L13.7859 19.0359C14.0859 19.3359 14.4891 19.5 14.9109 19.5C15.7875 19.5 16.5 18.7875 16.5 17.9109V15H22.5C23.3297 15 24 14.3297 24 13.5V10.5C24 9.67031 23.3297 9 22.5 9H16.5V6.08906C16.5 5.2125 15.7875 4.5 14.9109 4.5C14.4891 4.5 14.0859 4.66875 13.7859 4.96406ZM7.5 19.5H4.5C3.67031 19.5 3 18.8297 3 18V6C3 5.17031 3.67031 4.5 4.5 4.5H7.5C8.32969 4.5 9 3.82969 9 3C9 2.17031 8.32969 1.5 7.5 1.5H4.5C2.01562 1.5 0 3.51562 0 6V18C0 20.4844 2.01562 22.5 4.5 22.5H7.5C8.32969 22.5 9 21.8297 9 21C9 20.1703 8.32969 19.5 7.5 19.5Z" fill="#393939"></path>
134
+ </svg>
135
+ 返回
136
+ </div>
137
+ <div class="flex-fill" style="padding: 19px 32px;">編輯選單內容</div>
138
+ </div>
139
+ <div class="w-100">${menu.main(gvc, obj.widget, vm.tab)}</div>
140
+ </div>
141
+ `;
142
+ }, 'menus-setting', {
143
+ dismiss: () => {
144
+ gvc.notifyDataChange(bi);
145
+ obj.subData.refresh();
146
+ }
147
+ });
148
+ setTimeout(() => {
149
+ document.querySelector('.glitter-dialog').style.zIndex = 9999;
150
+ }, 1000);
151
+ });
152
+ }), {})
153
+ ].join('');
154
+ }
155
+ catch (e) {
156
+ console.log(e);
157
+ return ``;
158
+ }
159
+ }),
160
+ divCreate: {
161
+ class: `d-flex align-items-center mb-2`, style: `gap:5px;`
162
+ }
163
+ };
164
+ })
165
+ ].join(''));
166
+ }
75
167
  c_view.push(`<div style="height:1px;" class="border-top mx-n3"></div>`);
76
168
  return c_view.join(`<div style="height:10px;"></div>`);
77
169
  }