ts-glitter 20.6.8 → 20.7.0

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 (175) hide show
  1. package/lowcode/Entry.js +2 -2
  2. package/lowcode/Entry.ts +2 -2
  3. package/lowcode/backend-manager/bg-blog.js +617 -621
  4. package/lowcode/backend-manager/bg-blog.ts +2323 -2325
  5. package/lowcode/backend-manager/bg-line.js +5 -4
  6. package/lowcode/backend-manager/bg-line.ts +5 -4
  7. package/lowcode/backend-manager/bg-list-component.js +9 -0
  8. package/lowcode/backend-manager/bg-list-component.ts +15 -1
  9. package/lowcode/backend-manager/bg-notify.js +6 -4
  10. package/lowcode/backend-manager/bg-notify.ts +6 -4
  11. package/lowcode/backend-manager/bg-product.js +145 -0
  12. package/lowcode/backend-manager/bg-product.ts +153 -0
  13. package/lowcode/backend-manager/bg-sns.js +5 -3
  14. package/lowcode/backend-manager/bg-sns.ts +5 -3
  15. package/lowcode/backend-manager/bg-widget.js +92 -4
  16. package/lowcode/backend-manager/bg-widget.ts +122 -6
  17. package/lowcode/backend-manager/splitPage.js +0 -39
  18. package/lowcode/backend-manager/splitPage.ts +0 -40
  19. package/lowcode/cms-plugin/auto-fcm-advertise.js +17 -5
  20. package/lowcode/cms-plugin/auto-fcm-advertise.ts +19 -6
  21. package/lowcode/cms-plugin/auto-fcm-history.js +2732 -0
  22. package/lowcode/cms-plugin/auto-fcm-history.ts +2995 -0
  23. package/lowcode/cms-plugin/cms-router.js +5 -0
  24. package/lowcode/cms-plugin/cms-router.ts +6 -0
  25. package/lowcode/cms-plugin/filter-options.js +80 -27
  26. package/lowcode/cms-plugin/filter-options.ts +83 -27
  27. package/lowcode/cms-plugin/language-backend.js +50 -39
  28. package/lowcode/cms-plugin/language-backend.ts +109 -95
  29. package/lowcode/cms-plugin/menus-setting.js +175 -151
  30. package/lowcode/cms-plugin/menus-setting.ts +620 -591
  31. package/lowcode/cms-plugin/model/order.d.ts +1 -0
  32. package/lowcode/cms-plugin/module/data.js +7 -7
  33. package/lowcode/cms-plugin/module/data.ts +262 -233
  34. package/lowcode/cms-plugin/module/delivery-html.js +18 -10
  35. package/lowcode/cms-plugin/module/delivery-html.ts +26 -10
  36. package/lowcode/cms-plugin/module/order-setting.js +458 -328
  37. package/lowcode/cms-plugin/module/order-setting.ts +622 -351
  38. package/lowcode/cms-plugin/module/product-excel.js +1 -1
  39. package/lowcode/cms-plugin/module/product-excel.ts +2 -1
  40. package/lowcode/cms-plugin/order/order-module.js +90 -1
  41. package/lowcode/cms-plugin/order/order-module.ts +106 -1
  42. package/lowcode/cms-plugin/pos-pages/payment-page.js +11 -8
  43. package/lowcode/cms-plugin/pos-pages/payment-page.ts +28 -15
  44. package/lowcode/cms-plugin/pos-pages/products-page.js +0 -39
  45. package/lowcode/cms-plugin/pos-pages/products-page.ts +0 -40
  46. package/lowcode/cms-plugin/shopping-collections.ts +1 -3
  47. package/lowcode/cms-plugin/shopping-finance-setting.js +19 -80
  48. package/lowcode/cms-plugin/shopping-finance-setting.ts +19 -87
  49. package/lowcode/cms-plugin/shopping-order-manager.js +122 -38
  50. package/lowcode/cms-plugin/shopping-order-manager.ts +160 -58
  51. package/lowcode/cms-plugin/shopping-product-setting.js +364 -376
  52. package/lowcode/cms-plugin/shopping-product-setting.ts +406 -415
  53. package/lowcode/cms-plugin/shopping-setting-advance.js +57 -16
  54. package/lowcode/cms-plugin/shopping-setting-advance.ts +69 -18
  55. package/lowcode/cms-plugin/stock-history.js +75 -63
  56. package/lowcode/cms-plugin/stock-history.ts +390 -376
  57. package/lowcode/cms-plugin/user/user-module.js +2 -43
  58. package/lowcode/cms-plugin/user/user-module.ts +2 -46
  59. package/lowcode/cms-plugin/user-list.js +4 -6
  60. package/lowcode/cms-plugin/user-list.ts +35 -38
  61. package/lowcode/css/editor.css +42 -3
  62. package/lowcode/glitter-base/global/language.js +6 -1
  63. package/lowcode/glitter-base/global/language.ts +10 -4
  64. package/lowcode/glitter-base/global/payment-config.js +19 -16
  65. package/lowcode/glitter-base/global/payment-config.ts +22 -16
  66. package/lowcode/glitter-base/global/shipment-config.js +6 -5
  67. package/lowcode/glitter-base/global/shipment-config.ts +12 -10
  68. package/lowcode/glitter-base/route/fcm.js +21 -1
  69. package/lowcode/glitter-base/route/fcm.ts +22 -2
  70. package/lowcode/glitter-base/route/shopping.js +8 -32
  71. package/lowcode/glitter-base/route/shopping.ts +10 -33
  72. package/lowcode/glitter-base/route/stock.ts +1 -0
  73. package/lowcode/glitter-base/route/user.js +11 -2
  74. package/lowcode/glitter-base/route/user.ts +23 -12
  75. package/lowcode/jspage/function-page/setting_editor.js +9 -0
  76. package/lowcode/jspage/function-page/setting_editor.ts +9 -0
  77. package/lowcode/public-components/blogs/list.js +223 -195
  78. package/lowcode/public-components/blogs/list.ts +383 -352
  79. package/lowcode/public-components/product/product-list.js +8 -4
  80. package/lowcode/public-components/product/product-list.ts +9 -4
  81. package/lowcode/public-components/terms-related/index.js +1 -1
  82. package/lowcode/public-components/terms-related/index.ts +1 -1
  83. package/lowcode/public-components/user-manager/um-login.js +1 -1
  84. package/lowcode/public-components/user-manager/um-login.ts +2 -2
  85. package/lowcode/public-components/user-manager/um-order.js +41 -5
  86. package/lowcode/public-components/user-manager/um-order.ts +58 -20
  87. package/lowcode/public-components/user-manager/um-voucher.ts +2 -2
  88. package/nhi4veq3gk.json +1 -0
  89. package/package.json +1 -1
  90. package/src/Language.d.ts +2 -0
  91. package/src/Language.js +66 -65
  92. package/src/Language.js.map +1 -1
  93. package/src/Language.ts +719 -715
  94. package/src/api-public/config/shipment-config.js +3 -2
  95. package/src/api-public/config/shipment-config.js.map +1 -1
  96. package/src/api-public/config/shipment-config.ts +3 -2
  97. package/src/api-public/controllers/ai-chat.js.map +1 -1
  98. package/src/api-public/controllers/ai-chat.ts +1 -2
  99. package/src/api-public/controllers/fcm.js +23 -58
  100. package/src/api-public/controllers/fcm.js.map +1 -1
  101. package/src/api-public/controllers/fcm.ts +28 -56
  102. package/src/api-public/controllers/shop.js +7 -1
  103. package/src/api-public/controllers/shop.js.map +1 -1
  104. package/src/api-public/controllers/shop.ts +17 -10
  105. package/src/api-public/controllers/user.js +1 -0
  106. package/src/api-public/controllers/user.js.map +1 -1
  107. package/src/api-public/controllers/user.ts +2 -0
  108. package/src/api-public/services/auto-send-email.js +247 -187
  109. package/src/api-public/services/auto-send-email.js.map +1 -1
  110. package/src/api-public/services/auto-send-email.ts +568 -505
  111. package/src/api-public/services/delivery.js +1 -1
  112. package/src/api-public/services/delivery.js.map +1 -1
  113. package/src/api-public/services/delivery.ts +6 -5
  114. package/src/api-public/services/financial-service.js +1 -2
  115. package/src/api-public/services/financial-service.js.map +1 -1
  116. package/src/api-public/services/financial-service.ts +4 -6
  117. package/src/api-public/services/manager.d.ts +4 -3
  118. package/src/api-public/services/manager.js +8 -12
  119. package/src/api-public/services/manager.js.map +1 -1
  120. package/src/api-public/services/manager.ts +57 -59
  121. package/src/api-public/services/model/handlePaymentTransaction.d.ts +1 -1
  122. package/src/api-public/services/model/handlePaymentTransaction.js +23 -3
  123. package/src/api-public/services/model/handlePaymentTransaction.js.map +1 -1
  124. package/src/api-public/services/model/handlePaymentTransaction.ts +25 -36
  125. package/src/api-public/services/schedule.d.ts +1 -0
  126. package/src/api-public/services/schedule.js +27 -0
  127. package/src/api-public/services/schedule.js.map +1 -1
  128. package/src/api-public/services/schedule.ts +30 -0
  129. package/src/api-public/services/shopping.d.ts +22 -2
  130. package/src/api-public/services/shopping.js +371 -95
  131. package/src/api-public/services/shopping.js.map +1 -1
  132. package/src/api-public/services/shopping.ts +499 -141
  133. package/src/api-public/services/stock.js +0 -3
  134. package/src/api-public/services/stock.js.map +1 -1
  135. package/src/api-public/services/stock.ts +3 -3
  136. package/src/api-public/services/user.d.ts +1 -0
  137. package/src/api-public/services/user.js +32 -12
  138. package/src/api-public/services/user.js.map +1 -1
  139. package/src/api-public/services/user.ts +38 -19
  140. package/src/api-public/services/workers.js +3 -3
  141. package/src/api-public/services/workers.js.map +1 -1
  142. package/src/api-public/services/workers.ts +103 -103
  143. package/src/app-project/ios/proshake/AppDelegate.swift +51 -7
  144. package/src/app-project/ios/proshake/Info.plist +11 -9
  145. package/src/app-project/ios/proshake/SceneDelegate.swift +18 -0
  146. package/src/app-project/ios/proshake/glitter-interface/BasicUtil.swift +43 -2
  147. package/src/app-project/ios/proshake/glitter-interface/Ecommerce.swift +56 -0
  148. package/src/app-project/ios/proshake.xcodeproj/project.xcworkspace/xcuserdata/jianzhi.wang.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  149. package/src/app-project/serverless/src/modules/database.js +1 -1
  150. package/src/app-project/serverless/src/modules/database.js.map +1 -1
  151. package/src/app-project/serverless/src/modules/database.ts +171 -171
  152. package/src/controllers/template.d.ts +1 -1
  153. package/src/controllers/template.js +16 -16
  154. package/src/controllers/template.js.map +1 -1
  155. package/src/controllers/template.ts +98 -84
  156. package/src/modules/database.js +3 -1
  157. package/src/modules/database.js.map +1 -1
  158. package/src/modules/database.ts +185 -181
  159. package/src/modules/firebase.d.ts +17 -0
  160. package/src/modules/firebase.js +126 -0
  161. package/src/modules/firebase.js.map +1 -1
  162. package/src/modules/firebase.ts +169 -0
  163. package/src/public-config-initial/auto-fcm.js +8 -2
  164. package/src/public-config-initial/auto-fcm.js.map +1 -1
  165. package/src/public-config-initial/auto-fcm.ts +15 -6
  166. package/src/services/app.d.ts +2 -1
  167. package/src/services/app.js.map +1 -1
  168. package/src/services/app.ts +2 -1
  169. package/src/services/ios-project.js +12 -6
  170. package/src/services/ios-project.js.map +1 -1
  171. package/src/services/ios-project.ts +12 -6
  172. package/src/services/template.d.ts +3 -2
  173. package/src/services/template.js +2 -1
  174. package/src/services/template.js.map +1 -1
  175. package/src/services/template.ts +13 -20
@@ -1,376 +1,407 @@
1
- import {GVC} from "../../glitterBundle/GVController.js";
2
- import {Glitter} from "../../glitterBundle/Glitter.js";
3
- import {Article} from "../../glitter-base/route/article.js";
4
- import {Language} from "../../glitter-base/global/language.js";
5
- import {ApiUser} from "../../glitter-base/route/user.js";
1
+ import { GVC } from '../../glitterBundle/GVController.js';
2
+ import { Glitter } from '../../glitterBundle/Glitter.js';
3
+ import { Article } from '../../glitter-base/route/article.js';
4
+ import { Language } from '../../glitter-base/global/language.js';
5
+ import { ApiUser } from '../../glitter-base/route/user.js';
6
6
 
7
- const html = String.raw
8
- const css = String.raw
7
+ const html = String.raw;
9
8
 
10
9
  export class BlogList {
11
- static pageSplitV2 = (gvc: GVC, countPage: number, nowPage: number, callback: (p: number) => void) => {
12
- const generator = (n: number) => {
13
- return html`
14
- <li class="page-item my-0 mx-0">
15
- <div class="page-link-v2" onclick="${gvc.event(() => callback(n))}">${n}</div>
16
- </li>`;
17
- };
18
- const glitter = gvc.glitter;
10
+ static pageSplitV2 = (gvc: GVC, countPage: number, nowPage: number, callback: (p: number) => void) => {
11
+ const generator = (n: number) => {
12
+ return html` <li class="page-item my-0 mx-0">
13
+ <div class="page-link-v2" onclick="${gvc.event(() => callback(n))}">${n}</div>
14
+ </li>`;
15
+ };
16
+ const glitter = gvc.glitter;
19
17
 
20
- let vm = {
21
- id: glitter.getUUID(),
22
- loading: false,
23
- dataList: <any>[],
24
- };
18
+ let vm = {
19
+ id: glitter.getUUID(),
20
+ loading: false,
21
+ dataList: <any>[],
22
+ };
25
23
 
26
- gvc.addStyle(`
27
- .page-link-v2 {
28
- display: inline-flex;
29
- height: 32px;
30
- padding: 10px;
31
- flex-direction: column;
32
- justify-content: center;
33
- align-items: center;
34
- gap: 10px;
35
- cursor: pointer;
36
- background: #fff;
37
- border:1px solid #393939;
38
- color: #393939;
39
- }
24
+ gvc.addStyle(`
25
+ .page-link-v2 {
26
+ display: inline-flex;
27
+ height: 32px;
28
+ padding: 10px;
29
+ flex-direction: column;
30
+ justify-content: center;
31
+ align-items: center;
32
+ gap: 10px;
33
+ cursor: pointer;
34
+ background: #fff;
35
+ border: 1px solid #393939;
36
+ color: #393939;
37
+ }
40
38
 
41
- .page-link-prev {
42
- border-radius: 7px 0px 0px 7px;
43
- border: 1px solid #d8d8d8;
44
- background: #fff;
45
- color: #393939;
46
- }
39
+ .page-link-prev {
40
+ border-radius: 7px 0px 0px 7px;
41
+ border: 1px solid #393939;
42
+ background: #fff;
43
+ color: #393939;
44
+ }
47
45
 
48
- .page-link-next {
49
- border-radius: 0px 7px 7px 0px;
50
- border: 1px solid #d8d8d8;
51
- background: #fff;
52
- color: #393939;
53
- }
46
+ .page-link-next {
47
+ border-radius: 0px 7px 7px 0px;
48
+ border: 1px solid #393939;
49
+ background: #fff;
50
+ color: #393939;
51
+ }
54
52
 
55
- .page-link-active {
56
- background: #393939;
57
- color: #fff;
58
- }
53
+ .page-link-active {
54
+ background: #393939;
55
+ color: #fff;
56
+ }
59
57
 
60
- .angle-style {
61
- font-size: 12px;
62
- color: #d8d8d8;
63
- }
64
- `);
58
+ .angle-style {
59
+ font-size: 12px;
60
+ color: #393939;
61
+ }
62
+ `);
65
63
 
64
+ return gvc.bindView({
65
+ bind: vm.id,
66
+ view: () => {
67
+ if (vm.loading) {
68
+ return html` <div class="w-100 d-flex align-items-center justify-content-center p-3">
69
+ <div class="spinner-border"></div>
70
+ </div>`;
71
+ } else {
72
+ return html`
73
+ <nav class="d-flex my-3 justify-content-center">
74
+ <ul class="pagination pagination-rounded mb-0">
75
+ <li class="page-item me-0">
76
+ <div
77
+ class="page-link-v2 page-link-prev"
78
+ aria-label="Previous"
79
+ style="cursor:pointer"
80
+ onclick="${gvc.event(() => {
81
+ nowPage - 1 > 0 && callback(nowPage - 1);
82
+ })}"
83
+ >
84
+ <i class="fa-solid fa-angle-left angle-style"></i>
85
+ </div>
86
+ </li>
87
+ ${glitter.print(() => {
88
+ if (nowPage - 2 > 0) {
89
+ return generator(nowPage - 2) + generator(nowPage - 1);
90
+ } else if (nowPage - 1 > 0) {
91
+ return generator(nowPage - 1);
92
+ } else {
93
+ return ``;
94
+ }
95
+ })}
96
+ <li class="page-item active mx-0" style="border-radius: 100%">
97
+ <div class="page-link-v2 page-link-active">${nowPage}</div>
98
+ </li>
99
+ ${glitter.print(() => {
100
+ if (nowPage + 2 <= countPage) {
101
+ return generator(nowPage + 1) + generator(nowPage + 2);
102
+ } else if (nowPage + 1 <= countPage) {
103
+ return generator(nowPage + 1);
104
+ } else {
105
+ return ``;
106
+ }
107
+ })}
108
+ <li class="page-item ms-0">
109
+ <div
110
+ class="page-link-v2 page-link-next"
111
+ aria-label="Next"
112
+ style="cursor:pointer"
113
+ onclick="${gvc.event(() => {
114
+ nowPage + 1 <= countPage && callback(nowPage + 1);
115
+ })}"
116
+ >
117
+ <i class="fa-solid fa-angle-right angle-style"></i>
118
+ </div>
119
+ </li>
120
+ </ul>
121
+ </nav>
122
+ `;
123
+ }
124
+ },
125
+ onCreate: () => {
126
+ if (vm.loading) {
127
+ vm.loading = false;
128
+ gvc.notifyDataChange(vm.id);
129
+ }
130
+ },
131
+ });
132
+ };
66
133
 
67
- return gvc.bindView({
68
- bind: vm.id,
69
- view: () => {
70
- if (vm.loading) {
71
- return html`
72
- <div class="w-100 d-flex align-items-center justify-content-center p-3">
73
- <div class="spinner-border"></div>
74
- </div>`;
75
- } else {
76
- return html`
77
- <nav class="d-flex my-3 justify-content-center">
78
- <ul class="pagination pagination-rounded mb-0">
79
- <li class="page-item me-0">
80
- <div
81
- class="page-link-v2 page-link-prev"
82
- aria-label="Previous"
83
- style="cursor:pointer"
84
- onclick="${gvc.event(() => {
85
- nowPage - 1 > 0 && callback(nowPage - 1);
86
- })}"
87
- >
88
- <i class="fa-solid fa-angle-left angle-style"></i>
89
- </div>
90
- </li>
91
- ${glitter.print(() => {
92
- if (nowPage - 2 > 0) {
93
- return generator(nowPage - 2) + generator(nowPage - 1);
94
- } else if (nowPage - 1 > 0) {
95
- return generator(nowPage - 1);
96
- } else {
97
- return ``;
98
- }
99
- })}
100
- <li class="page-item active mx-0" style="border-radius: 100%">
101
- <div class="page-link-v2 page-link-active">${nowPage}</div>
102
- </li>
103
- ${glitter.print(() => {
104
- if (nowPage + 2 <= countPage) {
105
- return generator(nowPage + 1) + generator(nowPage + 2);
106
- } else if (nowPage + 1 <= countPage) {
107
- return generator(nowPage + 1);
108
- } else {
109
- return ``;
110
- }
111
- })}
112
- <li class="page-item ms-0">
113
- <div
114
- class="page-link-v2 page-link-next"
115
- aria-label="Next"
116
- style="cursor:pointer"
117
- onclick="${gvc.event(() => {
118
- nowPage + 1 <= countPage && callback(nowPage + 1);
119
- })}"
120
- >
121
- <i class="fa-solid fa-angle-right angle-style"></i>
122
- </div>
123
- </li>
124
- </ul>
125
- </nav>
126
- `;
127
- }
128
- },
129
- divCreate: {},
130
- onCreate: () => {
131
- if (vm.loading) {
132
- vm.loading = false;
133
- gvc.notifyDataChange(vm.id);
134
- }
135
- },
136
- });
134
+ static getThemeColor(glitter: Glitter) {
135
+ return {
136
+ title: glitter.share.globalValue['theme_color.0.title'] ?? '#333333',
137
+ solid_bg: glitter.share.globalValue['theme_color.0.solid-button-bg'] ?? '#333333',
138
+ solid_text: glitter.share.globalValue['theme_color.0.solid-button-text'] ?? '#333333',
137
139
  };
140
+ }
138
141
 
139
- static getThemeColor(glitter: Glitter) {
140
- return {
141
- title: glitter.share.globalValue['theme_color.0.title'] ?? '#333333',
142
- solid_bg: glitter.share.globalValue['theme_color.0.solid-button-bg'] ?? '#333333',
143
- solid_text: glitter.share.globalValue['theme_color.0.solid-button-text'] ?? '#333333',
144
- }
145
- }
142
+ static main(obj: { gvc: GVC; widget: any; subData: any }) {
143
+ const glitter = obj.gvc.glitter;
144
+ const gvc = obj.gvc;
145
+ const theme_color = BlogList.getThemeColor(obj.gvc.glitter);
146
146
 
147
- static main(obj: {
148
- gvc: GVC,
149
- widget: any,
150
- subData: any
151
- }) {
152
- const glitter = obj.gvc.glitter;
153
- const font_theme = ((glitter).share.font_theme[0] && (glitter).share.font_theme[0].value) || "Noto Sans TC";
154
- const gvc = obj.gvc
155
- const theme_color = BlogList.getThemeColor(obj.gvc.glitter)
156
- glitter.addStyle(css`
157
- .ellipsis_desc {
158
- display: -webkit-box;
159
- -webkit-line-clamp: 1;
160
- -webkit-box-orient: vertical;
161
- overflow: hidden;
162
- text-overflow: ellipsis;
163
- white-space: normal;
164
- }
147
+ glitter.addStyle(`
148
+ .ellipsis_desc {
149
+ display: -webkit-box;
150
+ -webkit-line-clamp: 1;
151
+ -webkit-box-orient: vertical;
152
+ overflow: hidden;
153
+ text-overflow: ellipsis;
154
+ white-space: normal;
155
+ }
165
156
 
166
- .card-image-fit-center {
167
- display: block;
168
- position: absolute;
169
- width: 100%;
170
- height: 100%;
171
- object-fit: cover;
172
- object-position: center;
173
- }
174
- `)
175
- return obj.gvc.bindView(() => {
176
- const id = obj.gvc.glitter.getUUID()
177
- const vm: {
178
- data: {
179
- title: string,
180
- desc: string,
181
- image: string,
182
- collection: { link: string, title: string }[],
183
- created_time: string,
184
- tag: string
185
- }[],
186
- pageSize: number,
187
- pageIndex: number;
188
- loading: boolean;
189
- limit: number;
190
- collection: { link: string, title: string }[],
191
- seo:any
192
- } = {
193
- loading: true,
194
- data: [],
195
- limit: 6,
196
- pageIndex: 1,
197
- pageSize: 0,
198
- collection: [],
199
- seo:{}
200
- }
157
+ .card-image-fit-center {
158
+ display: block;
159
+ position: absolute;
160
+ width: 100%;
161
+ height: 100%;
162
+ object-fit: cover;
163
+ object-position: center;
164
+ }
165
+ `);
201
166
 
202
- async function loadData() {
203
- vm.loading=true;
204
- vm.data=[];
205
- if(vm.pageIndex<1){
206
- vm.pageIndex=1
207
- }
208
- vm.collection = (await ApiUser.getPublicConfig('blog_collection', 'manager')).response.value;
209
- vm.seo=(await ApiUser.getPublicConfig(`article_seo_data_${Language.getLanguage()}`, 'manager')).response.value;
210
- gvc.notifyDataChange(id)
211
- Article.get({
212
- limit: vm.limit,
213
- page: vm.pageIndex - 1,
214
- for_index: "true",
215
- label:gvc.glitter.getUrlParameter('collection'),
216
- search: gvc.glitter.getUrlParameter('search')
217
- }).then((res) => {
218
- vm.data = res.response.data.map((dd: any) => {
219
- const created_time = dd.created_time
220
- dd = dd.content
221
- return {
222
- title: (dd.language_data && dd.language_data[Language.getLanguage()].title) || dd.title,
223
- desc: (dd.language_data && dd.language_data[Language.getLanguage()].description) || dd.description,
224
- image: (dd.seo && dd.seo.image ? dd.seo.image : dd.preview_image || 'https://d3jnmi1tfjgtti.cloudfront.net/file/234285319/1722936949034-default_image.jpg'),
225
- collection: dd.collection ?? [],
226
- created_time: created_time,
227
- tag: dd.tag
228
- }
229
- });
230
- vm.loading = false;
231
- vm.pageSize = Math.ceil(res.response.total / parseInt(vm.limit as any, 10));
232
- if (parseInt(`${vm.pageIndex}`, 10) > vm.pageSize) {
233
- vm.pageIndex = vm.pageSize - 1;
234
- }
235
- gvc.notifyDataChange(id)
236
- })
237
- }
167
+ return obj.gvc.bindView(() => {
168
+ const id = obj.gvc.glitter.getUUID();
169
+ const vm: {
170
+ data: {
171
+ title: string;
172
+ desc: string;
173
+ image: string;
174
+ collection: { link: string; title: string }[];
175
+ created_time: string;
176
+ tag: string;
177
+ }[];
178
+ pageSize: number;
179
+ pageIndex: number;
180
+ loading: boolean;
181
+ limit: number;
182
+ collection: { link: string; title: string }[];
183
+ seo: any;
184
+ } = {
185
+ loading: true,
186
+ data: [],
187
+ limit: 6,
188
+ pageIndex: 1,
189
+ pageSize: 0,
190
+ collection: [],
191
+ seo: {},
192
+ };
238
193
 
239
- loadData()
194
+ async function loadData() {
195
+ vm.loading = true;
196
+ vm.data = [];
197
+ if (vm.pageIndex < 1) {
198
+ vm.pageIndex = 1;
199
+ }
200
+ vm.collection = (await ApiUser.getPublicConfig('blog_collection', 'manager')).response.value;
201
+ vm.seo = (
202
+ await ApiUser.getPublicConfig(`article_seo_data_${Language.getLanguage()}`, 'manager')
203
+ ).response.value;
204
+ gvc.notifyDataChange(id);
205
+ Article.get({
206
+ limit: vm.limit,
207
+ page: vm.pageIndex - 1,
208
+ for_index: 'true',
209
+ label: gvc.glitter.getUrlParameter('collection'),
210
+ search: gvc.glitter.getUrlParameter('search'),
211
+ }).then(res => {
212
+ vm.data = res.response.data.map((dd: any) => {
213
+ const created_time = dd.created_time;
214
+ dd = dd.content;
240
215
  return {
241
- bind: id,
242
- view: () => {
243
- const collection_title=vm.collection.find((dd)=>{
244
- return dd.link===gvc.glitter.getUrlParameter('collection')
245
- })
246
- const map_v: string[] = [
247
- html`
248
- <div class="col-12 px-0">
249
- <div class="d-flex align-items-center flex-column justify-content-center py-4 pt-lg-5 px-2" style="">
250
- <h1 class="m-0 w-100 text-center"
251
- style="color:${theme_color.title};font-size:${document.body.clientWidth > 800 ? `32px` : `24px`};font-weight: 800;">
252
- ${(collection_title && collection_title.title) || gvc.glitter.getUrlParameter('collection') || vm.seo.title || Language.text('blog_list')}</h1>
253
- <div class="w-100 d-flex align-items-center rounded-2 mt-3 border" style="height: 50px;background: #fafafa;overflow: hidden;">
254
- <input class="flex-fill px-3" style="background: none;outline:none;border: 0;" placeholder="${Language.text('search_article')}" onchange="${gvc.event((e,event)=>{
255
- gvc.glitter.setUrlParameter('search',e.value);
256
- loadData()
257
- })}" value="${gvc.glitter.getUrlParameter('search') || ''}">
258
- <div class="d-flex align-items-center justify-content-center" style="width: 48px;height: 48px;background:${theme_color.solid_bg};
259
- color:${theme_color.solid_text};">
260
- <i class="fa-solid fa-magnifying-glass fs-5"></i>
261
- </div>
262
- </div>
263
- <div class="${vm.collection.length ? `d-flex` : `d-none`} mt-3 flex-wrap align-items-center w-100"
264
- style="gap:10px;">
265
- ${(((gvc.glitter.getUrlParameter('collection') || gvc.glitter.getUrlParameter('search') ) ? [ {
266
- link:'',
267
- title:Language.text('all_article')
268
- }]:[
269
-
270
- ]).concat(vm.collection as any)).map((dd:any) => {
271
- return `<div class="fs-sm text-decoration-none d-flex align-items-center justify-content-center px-3 fw-bold" style="cursor: pointer;
272
- background:${theme_color.solid_bg};
273
- color:${theme_color.solid_text};
274
- height: 30px;
275
- border-radius: 15px;
276
- " onclick="${gvc.event(()=>{
277
- if(dd.link){
278
- gvc.glitter.setUrlParameter('collection',dd.link);
279
- }else{
280
- gvc.glitter.setUrlParameter('collection',undefined);
281
- gvc.glitter.setUrlParameter('search',undefined);
282
- }
283
-
284
- loadData()
285
-
286
- })}">${dd.title}</div>`
287
- }).join('')}
288
- </div>
289
- </div>
290
-
291
- </div>`
292
- ]
293
- if (vm.data.length) {
294
- map_v.push(vm.data.map((dd) => {
295
- // console.log(dd);
296
- return html`<a class="col-12 col-md-6 col-lg-4 mb-4 mb-lg-5 px-lg-3"
297
- style="cursor: pointer;color:${theme_color.title} !important;text-decoration:none !important;"
298
- href="blogs/${dd.tag}" onclick="${gvc.event((e, event) => {
299
- event.preventDefault()
300
- gvc.glitter.href = `/blogs/${dd.tag}`
301
- })}">
302
-
303
- <!-- Card -->
304
- <div class="card mb-7">
216
+ title: (dd.language_data && dd.language_data[Language.getLanguage()].title) || dd.title,
217
+ desc: (dd.language_data && dd.language_data[Language.getLanguage()].description) || dd.description,
218
+ image:
219
+ dd.seo && dd.seo.image
220
+ ? dd.seo.image
221
+ : dd.preview_image ||
222
+ 'https://d3jnmi1tfjgtti.cloudfront.net/file/234285319/1722936949034-default_image.jpg',
223
+ collection: dd.collection ?? [],
224
+ created_time: created_time,
225
+ tag: dd.tag,
226
+ };
227
+ });
228
+ vm.loading = false;
229
+ vm.pageSize = Math.ceil(res.response.total / parseInt(vm.limit as any, 10));
230
+ if (parseInt(`${vm.pageIndex}`, 10) > vm.pageSize) {
231
+ vm.pageIndex = vm.pageSize - 1;
232
+ }
233
+ gvc.notifyDataChange(id);
234
+ });
235
+ }
305
236
 
306
- <!-- Image -->
307
- <div class="w-100" style="padding-bottom: 56%;position: relative;">
308
- <img class="card-img-top card-image-fit-center" src="${dd.image}" style=" ">
309
- </div>
237
+ loadData();
238
+ return {
239
+ bind: id,
240
+ view: () => {
241
+ const collection_title = vm.collection.find(dd => {
242
+ return dd.link === gvc.glitter.getUrlParameter('collection');
243
+ });
244
+ const map_v: string[] = [
245
+ html` <div class="col-12 px-0">
246
+ <div class="d-flex align-items-center flex-column justify-content-center py-4 pt-lg-5 px-2" style="">
247
+ <h1
248
+ class="m-0 w-100 text-center"
249
+ style="color:${theme_color.title};font-size:${document.body.clientWidth > 800
250
+ ? `32px`
251
+ : `24px`};font-weight: 800;"
252
+ >
253
+ ${(collection_title && collection_title.title) ||
254
+ gvc.glitter.getUrlParameter('collection') ||
255
+ vm.seo.title ||
256
+ Language.text('blog_list')}
257
+ </h1>
258
+ <div
259
+ class="w-100 d-flex align-items-center rounded-2 mt-3 border"
260
+ style="height: 50px;background: #fafafa;overflow: hidden;"
261
+ >
262
+ <input
263
+ class="flex-fill px-3"
264
+ style="background: none;outline:none;border: 0;"
265
+ placeholder="${Language.text('search_article')}"
266
+ onchange="${gvc.event((e, event) => {
267
+ gvc.glitter.setUrlParameter('search', e.value);
268
+ loadData();
269
+ })}"
270
+ value="${gvc.glitter.getUrlParameter('search') || ''}"
271
+ />
272
+ <div
273
+ class="d-flex align-items-center justify-content-center"
274
+ style="width: 48px;height: 48px;background:${theme_color.solid_bg}; color:${theme_color.solid_text};"
275
+ >
276
+ <i class="fa-solid fa-magnifying-glass fs-5"></i>
277
+ </div>
278
+ </div>
279
+ <div
280
+ class="${vm.collection.length ? `d-flex` : `d-none`} mt-3 flex-wrap align-items-center w-100"
281
+ style="gap:10px;"
282
+ >
283
+ ${(gvc.glitter.getUrlParameter('collection') || gvc.glitter.getUrlParameter('search')
284
+ ? [
285
+ {
286
+ link: '',
287
+ title: Language.text('all_article'),
288
+ },
289
+ ]
290
+ : []
291
+ )
292
+ .concat(vm.collection as any)
293
+ .map((dd: any) => {
294
+ return html`<div
295
+ class="fs-sm text-decoration-none d-flex align-items-center justify-content-center px-3 fw-bold"
296
+ style="cursor: pointer; background:${theme_color.solid_bg}; color:${theme_color.solid_text}; height: 30px; border-radius: 15px;"
297
+ onclick="${gvc.event(() => {
298
+ if (dd.link) {
299
+ gvc.glitter.setUrlParameter('collection', dd.link);
300
+ } else {
301
+ gvc.glitter.setUrlParameter('collection', undefined);
302
+ gvc.glitter.setUrlParameter('search', undefined);
303
+ }
310
304
 
311
- <!-- Body -->
312
- <div class="card-body px-0">
305
+ loadData();
306
+ })}"
307
+ >
308
+ ${dd.title}
309
+ </div>`;
310
+ })
311
+ .join('')}
312
+ </div>
313
+ </div>
314
+ </div>`,
315
+ ];
316
+ if (vm.data.length) {
317
+ map_v.push(
318
+ vm.data
319
+ .map(dd => {
320
+ return html`<a
321
+ class="col-12 col-md-6 col-lg-4 mb-4 mb-lg-5 px-lg-3"
322
+ style="cursor: pointer;color:${theme_color.title} !important;text-decoration:none !important;"
323
+ href="blogs/${dd.tag}"
324
+ onclick="${gvc.event((e, event) => {
325
+ event.preventDefault();
326
+ gvc.glitter.href = `/blogs/${dd.tag}`;
327
+ })}"
328
+ >
329
+ <!-- Card -->
330
+ <div class="card mb-7">
331
+ <!-- Image -->
332
+ <div class="w-100" style="padding-bottom: 56%;position: relative;">
333
+ <img class="card-img-top card-image-fit-center" src="${dd.image}" style=" " />
334
+ </div>
313
335
 
314
- <!-- Heading -->
315
- <h5 class="fw-bolder mx-3 text-start mb-0 ellipsis_desc"
316
- style="text-decoration: underline;">${dd.title}</h5>
317
- <div class="d-flex align-items-center text-muted mx-3 my-3">
318
- <div class="d-flex align-items-center" style="gap: 5px;">
319
- <i class="fa-regular fa-clock"></i>
320
- ${glitter.ut.dateFormat(new Date(dd.created_time), 'yyyy-MM-dd')}
321
- </div>
322
- <div class="d-flex align-items-center ms-2" style="gap: 5px;">
323
- ${dd.collection.map((dd) => {
324
- return `<div class="badge fs-sm text-white text-decoration-none" style="cursor: pointer;
336
+ <!-- Body -->
337
+ <div class="card-body px-0">
338
+ <!-- Heading -->
339
+ <h5 class="fw-bolder mx-3 text-start mb-0 ellipsis_desc" style="text-decoration: underline;">
340
+ ${dd.title}
341
+ </h5>
342
+ <div class="d-flex align-items-center text-muted mx-3 my-3">
343
+ <div class="d-flex align-items-center" style="gap: 5px;">
344
+ <i class="fa-regular fa-clock"></i>
345
+ ${glitter.ut.dateFormat(new Date(dd.created_time), 'yyyy-MM-dd')}
346
+ </div>
347
+ <div class="d-flex align-items-center ms-2" style="gap: 5px;">
348
+ ${dd.collection
349
+ .map(dd => {
350
+ return `<div class="badge fs-sm text-white text-decoration-none" style="cursor: pointer;
325
351
  background:${theme_color.solid_bg};
326
- color:${theme_color.solid_text};" >${dd.title}</div>`
327
- }).join('')}
328
- </div>
329
- </div>
330
- <!-- Text -->
331
- <p class="mb-0 fw-500 ellipsis_desc mx-3 text-start"
332
- style="color: ${theme_color.title};">
333
- ${dd.desc}
334
- </p>
335
-
336
-
337
- </div>
338
-
339
- </div>
340
-
341
- </a>`
342
- }).join(''))
343
- map_v.push(this.pageSplitV2(gvc, vm.pageSize, vm.pageIndex, (p) => {
344
- vm.pageIndex = p;
345
- loadData();
346
- (document.querySelector('html') as any).scrollTo(0, 0);
347
- }))
348
- } else if (vm.loading) {
349
- return (`<div class="col-12 d-flex align-items-center justify-content-center p-3">
350
- <div class="spinner-border"></div>
351
- </div>`)
352
- } else {
353
- map_v.push(`<div class="d-flex align-items-center justify-content-center flex-column w-100 mx-auto">
354
- <lottie-player
355
- style="max-width: 100%;width: 300px;"
356
- src="https://assets10.lottiefiles.com/packages/lf20_rc6CDU.json"
357
- speed="1"
358
- loop="true"
359
- background="transparent"
360
- ></lottie-player>
361
- <span class="mb-5 fs-5">${Language.text('no_related_blogs')}</span>
362
- </div>`)
363
- }
364
- return map_v.join('')
365
- },
366
- divCreate: {
367
- class: `row container mx-auto mb-5 px-0`,
368
- style: css`font-family: 'Source Sans Pro', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', 'STHeiti', 'WenQuanYi Micro Hei', SimSun, sans-serif;
369
- max-width: 1140px;`
370
- }
371
- }
372
- })
373
- }
352
+ color:${theme_color.solid_text};" >${dd.title}</div>`;
353
+ })
354
+ .join('')}
355
+ </div>
356
+ </div>
357
+ <!-- Text -->
358
+ <p class="mb-0 fw-500 ellipsis_desc mx-3 text-start" style="color: ${theme_color.title};">
359
+ ${dd.desc}
360
+ </p>
361
+ </div>
362
+ </div>
363
+ </a>`;
364
+ })
365
+ .join('')
366
+ );
367
+ map_v.push(
368
+ this.pageSplitV2(gvc, vm.pageSize, vm.pageIndex, p => {
369
+ vm.pageIndex = p;
370
+ loadData();
371
+ (document.querySelector('html') as any).scrollTo(0, 0);
372
+ })
373
+ );
374
+ } else if (vm.loading) {
375
+ return html`<div class="col-12 d-flex align-items-center justify-content-center p-3">
376
+ <div class="spinner-border"></div>
377
+ </div>`;
378
+ } else {
379
+ map_v.push(
380
+ html`<div class="d-flex align-items-center justify-content-center flex-column w-100 mx-auto">
381
+ <lottie-player
382
+ style="max-width: 100%;width: 300px;"
383
+ src="https://assets10.lottiefiles.com/packages/lf20_rc6CDU.json"
384
+ speed="1"
385
+ loop="true"
386
+ background="transparent"
387
+ ></lottie-player>
388
+ <span class="mb-5 fs-5">${Language.text('no_related_blogs')}</span>
389
+ </div>`
390
+ );
391
+ }
392
+ return map_v.join('');
393
+ },
394
+ divCreate: {
395
+ class: 'row container mx-auto mb-5 px-0',
396
+ style: `
397
+ font-family: 'Source Sans Pro', 'Open Sans', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans GB',
398
+ 'Microsoft YaHei', '微软雅黑', 'STHeiti', 'WenQuanYi Micro Hei', SimSun, sans-serif;
399
+ max-width: 1140px;
400
+ `,
401
+ },
402
+ };
403
+ });
404
+ }
374
405
  }
375
406
 
376
- (window as any).glitter.setModule(import.meta.url, BlogList)
407
+ (window as any).glitter.setModule(import.meta.url, BlogList);