ts-glitter 21.4.4 → 21.4.6

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 (39) hide show
  1. package/lowcode/Entry.js +18 -18
  2. package/lowcode/Entry.ts +18 -19
  3. package/lowcode/backend-manager/bg-product.js +8 -6
  4. package/lowcode/backend-manager/bg-product.ts +17 -15
  5. package/lowcode/backend-manager/bg-recommend.js +16 -5
  6. package/lowcode/backend-manager/bg-recommend.ts +15 -5
  7. package/lowcode/backend-manager/bg-widget.js +160 -160
  8. package/lowcode/backend-manager/bg-widget.ts +169 -166
  9. package/lowcode/cms-plugin/POS-setting.js +75 -23
  10. package/lowcode/cms-plugin/POS-setting.ts +87 -30
  11. package/lowcode/cms-plugin/menus-setting.js +165 -37
  12. package/lowcode/cms-plugin/menus-setting.ts +144 -21
  13. package/lowcode/cms-plugin/module/order-excel.js +8 -8
  14. package/lowcode/cms-plugin/module/order-excel.ts +10 -10
  15. package/lowcode/cms-plugin/module/stock-excel.js +184 -0
  16. package/lowcode/cms-plugin/module/stock-excel.ts +205 -0
  17. package/lowcode/cms-plugin/module/vendor-excel.js +375 -0
  18. package/lowcode/cms-plugin/module/vendor-excel.ts +450 -0
  19. package/lowcode/cms-plugin/order/order-module.js +6 -4
  20. package/lowcode/cms-plugin/order/order-module.ts +16 -14
  21. package/lowcode/cms-plugin/pos-pages/models.ts +6 -2
  22. package/lowcode/cms-plugin/pos-pages/products-page.js +589 -469
  23. package/lowcode/cms-plugin/pos-pages/products-page.ts +657 -491
  24. package/lowcode/cms-plugin/shopping-product-setting.js +7 -10
  25. package/lowcode/cms-plugin/shopping-product-setting.ts +12 -10
  26. package/lowcode/cms-plugin/shopping-setting-basic.js +2 -5
  27. package/lowcode/cms-plugin/shopping-setting-basic.ts +2 -5
  28. package/lowcode/cms-plugin/stock-history.js +39 -26
  29. package/lowcode/cms-plugin/stock-history.ts +58 -49
  30. package/lowcode/cms-plugin/stock-vendors.js +18 -13
  31. package/lowcode/cms-plugin/stock-vendors.ts +31 -16
  32. package/lowcode/glitterBundle/html-component/global-widget.js +162 -136
  33. package/lowcode/glitterBundle/html-component/global-widget.ts +430 -382
  34. package/lowcode/public-components/blogs/blogs-01.js +22 -9
  35. package/lowcode/public-components/blogs/blogs-01.ts +28 -14
  36. package/package.json +1 -1
  37. package/src/api-public/services/schedule.js +6 -1
  38. package/src/api-public/services/schedule.js.map +1 -1
  39. package/src/api-public/services/schedule.ts +4 -1
package/lowcode/Entry.js CHANGED
@@ -127,23 +127,6 @@ export class Entry {
127
127
  if (glitter.getUrlParameter('page') !== 'backend_manager') {
128
128
  Entry.checkRedirectPage(glitter);
129
129
  }
130
- if (['pages/', 'hidden/', 'shop/'].find((dd) => {
131
- return (glitter.getUrlParameter('page') || '').startsWith(dd) || ((glitter.getUrlParameter('page_refer') || '').startsWith(dd));
132
- })) {
133
- const og_path = glitter.getUrlParameter('page_refer') || glitter.getUrlParameter('page');
134
- window.page_refer = og_path;
135
- setInterval(() => {
136
- if (glitter.getUrlParameter('page') === 'index') {
137
- glitter.href = '/' + og_path;
138
- }
139
- else if (glitter.getUrlParameter('page') !== og_path) {
140
- glitter.setUrlParameter('page_refer', og_path);
141
- }
142
- else {
143
- glitter.setUrlParameter('page_refer', undefined);
144
- }
145
- }, 100);
146
- }
147
130
  glitter.share.logID = glitter.getUUID();
148
131
  glitter.addStyle(`
149
132
  @media (prefers-reduced-motion: no-preference) {
@@ -163,7 +146,7 @@ export class Entry {
163
146
  }
164
147
  window.renderClock = (_b = window.renderClock) !== null && _b !== void 0 ? _b : createClock();
165
148
  console.log(`Entry-time:`, window.renderClock.stop());
166
- glitter.share.editerVersion = 'V_21.4.4';
149
+ glitter.share.editerVersion = 'V_21.4.6';
167
150
  glitter.share.start = new Date();
168
151
  const vm = { appConfig: [] };
169
152
  window.saasConfig = {
@@ -564,6 +547,23 @@ export class Entry {
564
547
  callback();
565
548
  }
566
549
  static toNormalRender(glitter, vm, callback) {
550
+ if (['hidden/', 'shop/'].find((dd) => {
551
+ return (glitter.getUrlParameter('page') || '').startsWith(dd) || ((glitter.getUrlParameter('page_refer') || '').startsWith(dd));
552
+ })) {
553
+ const og_path = glitter.getUrlParameter('page_refer') || glitter.getUrlParameter('page');
554
+ window.page_refer = og_path;
555
+ setInterval(() => {
556
+ if (glitter.getUrlParameter('page') === 'index') {
557
+ glitter.href = '/' + og_path;
558
+ }
559
+ else if (glitter.getUrlParameter('page') !== og_path) {
560
+ glitter.setUrlParameter('page_refer', og_path);
561
+ }
562
+ else {
563
+ glitter.setUrlParameter('page_refer', undefined);
564
+ }
565
+ }, 100);
566
+ }
567
567
  ApiUser.getUserData(GlobalUser.token, 'me').then((r) => __awaiter(this, void 0, void 0, function* () {
568
568
  try {
569
569
  if (!r.result) {
package/lowcode/Entry.ts CHANGED
@@ -131,24 +131,6 @@ export class Entry {
131
131
  if (glitter.getUrlParameter('page') !== 'backend_manager') {
132
132
  Entry.checkRedirectPage(glitter);
133
133
  }
134
-
135
- //紀錄初始載入頁面,後續會帶入query當中用與替換Header避免跳頁
136
- if(['pages/','hidden/','shop/'].find((dd)=>{
137
- return (glitter.getUrlParameter('page') || '').startsWith(dd) || ((glitter.getUrlParameter('page_refer') || '').startsWith(dd))
138
- })){
139
- const og_path=glitter.getUrlParameter('page_refer') || glitter.getUrlParameter('page');
140
- (window as any).page_refer=og_path;
141
-
142
- setInterval(()=>{
143
- if(glitter.getUrlParameter('page')==='index'){
144
- glitter.href='/'+og_path
145
- }else if(glitter.getUrlParameter('page')!==og_path){
146
- glitter.setUrlParameter('page_refer',og_path)
147
- }else{
148
- glitter.setUrlParameter('page_refer',undefined)
149
- }
150
- },100)
151
- }
152
134
  glitter.share.logID = glitter.getUUID();
153
135
  glitter.addStyle(`
154
136
  @media (prefers-reduced-motion: no-preference) {
@@ -168,7 +150,7 @@ export class Entry {
168
150
  }
169
151
  (window as any).renderClock = (window as any).renderClock ?? createClock();
170
152
  console.log(`Entry-time:`, (window as any).renderClock.stop());
171
- glitter.share.editerVersion = 'V_21.4.4';
153
+ glitter.share.editerVersion = 'V_21.4.6';
172
154
  glitter.share.start = new Date();
173
155
  const vm = { appConfig: [] };
174
156
  (window as any).saasConfig = {
@@ -614,6 +596,23 @@ export class Entry {
614
596
 
615
597
  // 跳轉至一般頁面
616
598
  public static toNormalRender(glitter: Glitter, vm: any, callback: () => void) {
599
+ //紀錄初始載入頁面,後續會帶入query當中用與替換Header避免跳頁
600
+ if(['hidden/','shop/'].find((dd)=>{
601
+ return (glitter.getUrlParameter('page') || '').startsWith(dd) || ((glitter.getUrlParameter('page_refer') || '').startsWith(dd))
602
+ })){
603
+ const og_path=glitter.getUrlParameter('page_refer') || glitter.getUrlParameter('page');
604
+ (window as any).page_refer=og_path;
605
+
606
+ setInterval(()=>{
607
+ if(glitter.getUrlParameter('page')==='index'){
608
+ glitter.href='/'+og_path
609
+ }else if(glitter.getUrlParameter('page')!==og_path){
610
+ glitter.setUrlParameter('page_refer',og_path)
611
+ }else{
612
+ glitter.setUrlParameter('page_refer',undefined)
613
+ }
614
+ },100)
615
+ }
617
616
  ApiUser.getUserData(GlobalUser.token,'me').then(async (r) => {
618
617
  try {
619
618
  if (!r.result) {
@@ -411,8 +411,8 @@ export class BgProduct {
411
411
  </div>
412
412
  <div class="c_dialog">
413
413
  <div class="c_dialog_body">
414
- <div class="c_dialog_main" style="gap: 24px; max-height: 500px;">
415
- <div class="d-flex" style="gap: 12px;">
414
+ <div class="c_dialog_main" style="gap: 18px; max-height: 500px;">
415
+ <div class="position-sticky px-1" style="top: 0; background-color: #fff;">
416
416
  ${BgWidget.searchFilter(gvc.event((e, event) => {
417
417
  vm.query = e.value;
418
418
  vm.loading = true;
@@ -771,11 +771,13 @@ export class BgProduct {
771
771
  }
772
772
  else {
773
773
  return [
774
- BgWidget.searchPlace(gvc2.event(e => {
774
+ html `<div class="position-sticky px-1" style="top: 0; background-color: #fff;">
775
+ ${BgWidget.searchPlace(gvc2.event(e => {
775
776
  vmt.search = e.value;
776
777
  vmt.loading = true;
777
778
  gvc2.notifyDataChange(vmt.id);
778
- }), vmt.search, '搜尋標籤', '0', '0'),
779
+ }), vmt.search, '搜尋標籤', '0', '0')}
780
+ </div>`,
779
781
  BgWidget.renderOptions(gvc2, vmt),
780
782
  ].join(BgWidget.mbContainer(18));
781
783
  }
@@ -838,7 +840,7 @@ export class BgProduct {
838
840
  });
839
841
  }
840
842
  return result
841
- .filter(item => item.lang === defaultLanguage)
843
+ .filter(item => item.tag && item.lang === defaultLanguage)
842
844
  .map(item => {
843
845
  return {
844
846
  key: item.tag,
@@ -855,7 +857,7 @@ export class BgProduct {
855
857
  return yield ApiUser.getPublicConfig('product_manager_tags', 'manager').then((dd) => {
856
858
  var _a, _b;
857
859
  if (dd.result && ((_b = (_a = dd.response) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.list)) {
858
- return dd.response.value.list.map((item) => {
860
+ return dd.response.value.list.filter(Boolean).map((item) => {
859
861
  return {
860
862
  key: item,
861
863
  name: `#${item}`,
@@ -531,8 +531,8 @@ export class BgProduct {
531
531
  </div>
532
532
  <div class="c_dialog">
533
533
  <div class="c_dialog_body">
534
- <div class="c_dialog_main" style="gap: 24px; max-height: 500px;">
535
- <div class="d-flex" style="gap: 12px;">
534
+ <div class="c_dialog_main" style="gap: 18px; max-height: 500px;">
535
+ <div class="position-sticky px-1" style="top: 0; background-color: #fff;">
536
536
  ${BgWidget.searchFilter(
537
537
  gvc.event((e, event) => {
538
538
  vm.query = e.value;
@@ -996,17 +996,19 @@ export class BgProduct {
996
996
  return BgWidget.spinner();
997
997
  } else {
998
998
  return [
999
- BgWidget.searchPlace(
1000
- gvc2.event(e => {
1001
- vmt.search = e.value;
1002
- vmt.loading = true;
1003
- gvc2.notifyDataChange(vmt.id);
1004
- }),
1005
- vmt.search,
1006
- '搜尋標籤',
1007
- '0',
1008
- '0'
1009
- ),
999
+ html`<div class="position-sticky px-1" style="top: 0; background-color: #fff;">
1000
+ ${BgWidget.searchPlace(
1001
+ gvc2.event(e => {
1002
+ vmt.search = e.value;
1003
+ vmt.loading = true;
1004
+ gvc2.notifyDataChange(vmt.id);
1005
+ }),
1006
+ vmt.search,
1007
+ '搜尋標籤',
1008
+ '0',
1009
+ '0'
1010
+ )}
1011
+ </div>`,
1010
1012
  BgWidget.renderOptions(gvc2, vmt),
1011
1013
  ].join(BgWidget.mbContainer(18));
1012
1014
  }
@@ -1074,7 +1076,7 @@ export class BgProduct {
1074
1076
  }
1075
1077
 
1076
1078
  return result
1077
- .filter(item => item.lang === defaultLanguage)
1079
+ .filter(item => item.tag && item.lang === defaultLanguage)
1078
1080
  .map(item => {
1079
1081
  return {
1080
1082
  key: item.tag,
@@ -1089,7 +1091,7 @@ export class BgProduct {
1089
1091
  static async getProductManagerTag() {
1090
1092
  return await ApiUser.getPublicConfig('product_manager_tags', 'manager').then((dd: any) => {
1091
1093
  if (dd.result && dd.response?.value?.list) {
1092
- return dd.response.value.list.map((item: string) => {
1094
+ return dd.response.value.list.filter(Boolean).map((item: string) => {
1093
1095
  return {
1094
1096
  key: item,
1095
1097
  name: `#${item}`,
@@ -754,7 +754,6 @@ export class BgRecommend {
754
754
  BgWidget.title('分潤商品', 'font-size: 16px;'),
755
755
  html ` <div class="my-2"></div>`,
756
756
  gvc.bindView(() => {
757
- var _a;
758
757
  const subVM = {
759
758
  id: gvc.glitter.getUUID(),
760
759
  loading: true,
@@ -770,14 +769,15 @@ export class BgRecommend {
770
769
  return products_data;
771
770
  });
772
771
  }
773
- (_a = newOrder.productCheck) !== null && _a !== void 0 ? _a : (newOrder.productCheck = []);
774
- const relativeCloneData = structuredClone(newOrder.productCheck);
775
772
  return {
776
773
  bind: subVM.id,
777
774
  view: () => {
775
+ var _a;
778
776
  if (subVM.loading) {
779
777
  return BgWidget.spinner();
780
778
  }
779
+ (_a = newOrder.productCheck) !== null && _a !== void 0 ? _a : (newOrder.productCheck = []);
780
+ const relativeCloneData = structuredClone(newOrder.productCheck);
781
781
  return html `
782
782
  <div class="d-flex flex-column p-2" style="gap: 18px;">
783
783
  <div
@@ -792,8 +792,19 @@ export class BgRecommend {
792
792
  gvc: gvc,
793
793
  default: relativeCloneData.map((dd) => dd.id),
794
794
  callback: product_array => {
795
- getSelectProducts(product_array).then(resp => {
796
- newOrder.productCheck = resp;
795
+ dialog.dataLoading({ visible: true });
796
+ new Promise(resolve => {
797
+ if (product_array.length === 0) {
798
+ resolve([]);
799
+ }
800
+ else {
801
+ getSelectProducts(product_array).then(resp => {
802
+ resolve(resp);
803
+ });
804
+ }
805
+ }).then(productArray => {
806
+ dialog.dataLoading({ visible: false });
807
+ newOrder.productCheck = productArray;
797
808
  subVM.loading = true;
798
809
  gvc.notifyDataChange(subVM.id);
799
810
  });
@@ -896,9 +896,6 @@ export class BgRecommend {
896
896
  return products_data;
897
897
  }
898
898
 
899
- newOrder.productCheck ??= [];
900
- const relativeCloneData = structuredClone(newOrder.productCheck);
901
-
902
899
  return {
903
900
  bind: subVM.id,
904
901
  view: () => {
@@ -906,6 +903,9 @@ export class BgRecommend {
906
903
  return BgWidget.spinner();
907
904
  }
908
905
 
906
+ newOrder.productCheck ??= [];
907
+ const relativeCloneData = structuredClone(newOrder.productCheck);
908
+
909
909
  return html`
910
910
  <div class="d-flex flex-column p-2" style="gap: 18px;">
911
911
  <div
@@ -922,8 +922,18 @@ export class BgRecommend {
922
922
  gvc: gvc,
923
923
  default: relativeCloneData.map((dd: any) => dd.id),
924
924
  callback: product_array => {
925
- getSelectProducts(product_array).then(resp => {
926
- newOrder.productCheck = resp;
925
+ dialog.dataLoading({ visible: true });
926
+ new Promise<[]>(resolve => {
927
+ if (product_array.length === 0) {
928
+ resolve([]);
929
+ } else {
930
+ getSelectProducts(product_array).then(resp => {
931
+ resolve(resp);
932
+ });
933
+ }
934
+ }).then(productArray => {
935
+ dialog.dataLoading({ visible: false });
936
+ newOrder.productCheck = productArray;
927
937
  subVM.loading = true;
928
938
  gvc.notifyDataChange(subVM.id);
929
939
  });