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
@@ -269,13 +269,15 @@ export class StockHistory {
269
269
  },
270
270
  {
271
271
  key: '總金額',
272
- value: `<span class="fs-7">$ ${ dd.content.product_list.reduce((sum, item) => {
273
- if(dd.type==='restocking'){
274
- return sum + item.cost * (item.transfer_count ?? 0);
275
- }else{
276
- return sum + item.cost * (item.recent_count ?? 0);
277
- }
278
- }, 0).toLocaleString()}</span>`,
272
+ value: `<span class="fs-7">$ ${dd.content.product_list
273
+ .reduce((sum, item) => {
274
+ if (dd.type === 'restocking') {
275
+ return sum + item.cost * (item.transfer_count ?? 0);
276
+ } else {
277
+ return sum + item.cost * (item.recent_count ?? 0);
278
+ }
279
+ }, 0)
280
+ .toLocaleString()}</span>`,
279
281
  },
280
282
  {
281
283
  key: '供應商',
@@ -1125,20 +1127,20 @@ export class StockHistory {
1125
1127
  filter: [],
1126
1128
  hiddenPageSplit: true,
1127
1129
  }),
1128
- html`<div
1130
+ html` <div
1129
1131
  class="w-100 d-flex align-items-center justify-content-center cursor_pointer"
1130
1132
  style="color: #36B; font-size: 16px; font-weight: 400;"
1131
1133
  onclick="${gvc.event(() => {
1132
1134
  BgProduct.productsDialog({
1133
1135
  gvc: gvc,
1134
- default: dvm.variantIds,
1135
- with_variants:true,
1136
+ default: dvm.variantIds,
1137
+ with_variants: true,
1136
1138
  callback: async value => {
1137
- dvm.variantIds=value
1139
+ dvm.variantIds = value;
1138
1140
  gvc.notifyDataChange(dvm.tableId);
1139
- // alert(JSON.stringify(value))
1141
+ // alert(JSON.stringify(value))
1140
1142
  },
1141
- })
1143
+ });
1142
1144
  // BgWidget.variantDialog({
1143
1145
  // gvc,
1144
1146
  // title: '搜尋商品',
@@ -1218,7 +1220,7 @@ export class StockHistory {
1218
1220
  filter: [],
1219
1221
  hiddenPageSplit: true,
1220
1222
  }),
1221
- html`<div
1223
+ html` <div
1222
1224
  class="w-100 d-flex align-items-center justify-content-center cursor_pointer"
1223
1225
  style="color: #36B; font-size: 16px; font-weight: 400;"
1224
1226
  onclick="${gvc.event(() => {
@@ -1787,13 +1789,13 @@ export class StockHistory {
1787
1789
  className?: string;
1788
1790
  incompletion?: boolean;
1789
1791
  }) => {
1790
- return html`<div class="d-flex w-100 mb-2">
1792
+ return html` <div class="d-flex w-100 mb-2">
1791
1793
  <div class="flex-fill"></div>
1792
1794
  <div class="d-flex justify-content-between" style="width: 250px;">
1793
1795
  <div class="${obj.className ?? ''}">${obj.name}</div>
1794
1796
  ${obj.incompletion
1795
- ? html`<div style="color: #8D8D8D">商品尚未核對完成</div>`
1796
- : html`<div class="${obj.className ?? ''}">$ ${obj.price.toLocaleString()}</div>`}
1797
+ ? html` <div style="color: #8D8D8D">商品尚未核對完成</div>`
1798
+ : html` <div class="${obj.className ?? ''}">$ ${obj.price.toLocaleString()}</div>`}
1797
1799
  </div>
1798
1800
  </div>`;
1799
1801
  };
@@ -1830,7 +1832,7 @@ export class StockHistory {
1830
1832
  return a.time > b.time ? -1 : 1;
1831
1833
  })
1832
1834
  .map(log => {
1833
- return html`<div class="d-flex justify-content-between align-items-center mt-2">
1835
+ return html` <div class="d-flex justify-content-between align-items-center mt-2">
1834
1836
  <div class="d-flex align-items-center">
1835
1837
  <div class="me-3">${log.time}</div>
1836
1838
  <div class="me-1">${log.text}</div>
@@ -1912,69 +1914,70 @@ export class StockHistory {
1912
1914
  switch (vm.type) {
1913
1915
  case 'restocking':
1914
1916
  return [
1915
- html`<div class="row">
1916
- <div class="col-12 col-md-6">
1917
- <div class="tx_normal">供應商</div>
1918
- ${BgWidget.mbContainer(8)}
1919
- ${gvc.bindView(
1920
- (() => {
1921
- const id = glitter.getUUID();
1922
- let dataList: any[] = [];
1923
- let loading = true;
1924
- return {
1925
- bind: id,
1926
- view: () => {
1927
- if (loading) {
1928
- return BgWidget.spinner({
1929
- container: { style: 'margin-top: 0;' },
1930
- circle: { visible: false },
1931
- });
1932
- } else {
1933
- return BgWidget.selectOptionAndClickEvent({
1934
- gvc: gvc,
1935
- default: vm.data.content.vendor ?? '',
1936
- options: dataList.map(item => {
1937
- return {
1938
- key: item.id,
1939
- value: item.name,
1940
- note: item.address,
1941
- };
1942
- }),
1943
- showNote: BgWidget.grayNote(
1944
- (() => {
1945
- const d = dataList.find(item => {
1946
- return item.id === vm.data.content.vendor;
1947
- });
1948
- return d ? d.address : '';
1949
- })(),
1950
- 'margin: 0 4px;'
1951
- ),
1952
- callback: data => {
1953
- vm.data.content.vendor = data ? data.key : '';
1954
- gvc.notifyDataChange(id);
1955
- },
1956
- clickElement: {
1957
- html: html`<div>新增供應商</div>
1958
- <div>
1959
- <i
1960
- class="fa-solid fa-plus ps-2"
1961
- style="font-size: 16px; height: 14px; width: 14px;"
1962
- ></i>
1963
- </div>`,
1964
- event: gvc2 => {
1965
- const newVendorData = StockVendors.emptyData();
1966
- BgWidget.settingDialog({
1967
- gvc: gvc2,
1968
- title: '新增供應點',
1969
- innerHTML: gvc2 => {
1970
- return StockHistory.vendorForm(gvc2, newVendorData);
1971
- },
1972
- footer_html: gvc2 => {
1973
- return `${BgWidget.cancel(
1974
- gvc2.event(() => {
1975
- gvc2.closeDialog();
1976
- })
1977
- )}
1917
+ html`
1918
+ <div class="row">
1919
+ <div class="col-12 col-md-6">
1920
+ <div class="tx_normal">供應商</div>
1921
+ ${BgWidget.mbContainer(8)}
1922
+ ${gvc.bindView(
1923
+ (() => {
1924
+ const id = glitter.getUUID();
1925
+ let dataList: any[] = [];
1926
+ let loading = true;
1927
+ return {
1928
+ bind: id,
1929
+ view: () => {
1930
+ if (loading) {
1931
+ return BgWidget.spinner({
1932
+ container: { style: 'margin-top: 0;' },
1933
+ circle: { visible: false },
1934
+ });
1935
+ } else {
1936
+ return BgWidget.selectOptionAndClickEvent({
1937
+ gvc: gvc,
1938
+ default: vm.data.content.vendor ?? '',
1939
+ options: dataList.map(item => {
1940
+ return {
1941
+ key: item.id,
1942
+ value: item.name,
1943
+ note: item.address,
1944
+ };
1945
+ }),
1946
+ showNote: BgWidget.grayNote(
1947
+ (() => {
1948
+ const d = dataList.find(item => {
1949
+ return item.id === vm.data.content.vendor;
1950
+ });
1951
+ return d ? d.address : '';
1952
+ })(),
1953
+ 'margin: 0 4px;'
1954
+ ),
1955
+ callback: data => {
1956
+ vm.data.content.vendor = data ? data.key : '';
1957
+ gvc.notifyDataChange(id);
1958
+ },
1959
+ clickElement: {
1960
+ html: html` <div>新增供應商</div>
1961
+ <div>
1962
+ <i
1963
+ class="fa-solid fa-plus ps-2"
1964
+ style="font-size: 16px; height: 14px; width: 14px;"
1965
+ ></i>
1966
+ </div>`,
1967
+ event: gvc2 => {
1968
+ const newVendorData = StockVendors.emptyData();
1969
+ BgWidget.settingDialog({
1970
+ gvc: gvc2,
1971
+ title: '新增供應點',
1972
+ innerHTML: gvc2 => {
1973
+ return StockHistory.vendorForm(gvc2, newVendorData);
1974
+ },
1975
+ footer_html: gvc2 => {
1976
+ return `${BgWidget.cancel(
1977
+ gvc2.event(() => {
1978
+ gvc2.closeDialog();
1979
+ })
1980
+ )}
1978
1981
  ${BgWidget.save(
1979
1982
  gvc2.event(() => {
1980
1983
  StockVendors.verifyStoreForm(
@@ -1991,91 +1994,91 @@ export class StockHistory {
1991
1994
  }),
1992
1995
  '完成'
1993
1996
  )}`;
1994
- },
1995
- });
1997
+ },
1998
+ });
1999
+ },
1996
2000
  },
1997
- },
1998
- });
1999
- }
2000
- },
2001
- divCreate: {},
2002
- onCreate: () => {
2003
- if (loading) {
2004
- ApiUser.getPublicConfig('vendor_manager', 'manager').then((dd: any) => {
2005
- if (dd.result && dd.response.value) {
2006
- dataList = dd.response.value.list;
2007
- }
2008
- loading = false;
2009
- gvc.notifyDataChange(id);
2010
- });
2011
- }
2012
- },
2013
- };
2014
- })()
2015
- )}
2016
- </div>
2017
- <div class="col-12 col-md-6">
2018
- <div class="tx_normal">庫存點</div>
2019
- ${BgWidget.mbContainer(8)}
2020
- ${gvc.bindView(
2021
- (() => {
2022
- const id = glitter.getUUID();
2023
- let dataList: any[] = [];
2024
- let loading = true;
2025
- return {
2026
- bind: id,
2027
- view: () => {
2028
- if (loading) {
2029
- return BgWidget.spinner({
2030
- container: { style: 'margin-top: 0;' },
2031
- circle: { visible: false },
2032
- });
2033
- } else {
2034
- return BgWidget.selectOptionAndClickEvent({
2035
- gvc: gvc,
2036
- default: vm.data.content.store_in ?? '',
2037
- options: dataList.map(item => {
2038
- return {
2039
- key: item.id,
2040
- value: item.name,
2041
- note: item.address,
2042
- };
2043
- }),
2044
- showNote: BgWidget.grayNote(
2045
- (() => {
2046
- const d = dataList.find(item => {
2047
- return item.id === vm.data.content.store_in;
2048
- });
2049
- return d ? d.address : '';
2050
- })(),
2051
- 'margin: 0 4px;'
2052
- ),
2053
- callback: data => {
2054
- vm.data.content.store_in = data ? data.key : '';
2001
+ });
2002
+ }
2003
+ },
2004
+ divCreate: {},
2005
+ onCreate: () => {
2006
+ if (loading) {
2007
+ ApiUser.getPublicConfig('vendor_manager', 'manager').then((dd: any) => {
2008
+ if (dd.result && dd.response.value) {
2009
+ dataList = dd.response.value.list;
2010
+ }
2011
+ loading = false;
2055
2012
  gvc.notifyDataChange(id);
2056
- },
2057
- clickElement: {
2058
- html: html`<div>新增庫存點</div>
2059
- <div>
2060
- <i
2061
- class="fa-solid fa-plus ps-2"
2062
- style="font-size: 16px; height: 14px; width: 14px;"
2063
- ></i>
2064
- </div>`,
2065
- event: gvc2 => {
2066
- const newStoreData = StockStores.emptyData();
2067
- BgWidget.settingDialog({
2068
- gvc: gvc2,
2069
- title: '新增庫存點',
2070
- innerHTML: gvc2 => {
2071
- return StockHistory.storeForm(gvc2, newStoreData);
2072
- },
2073
- footer_html: gvc2 => {
2074
- return `${BgWidget.cancel(
2075
- gvc2.event(() => {
2076
- gvc2.closeDialog();
2077
- })
2078
- )}
2013
+ });
2014
+ }
2015
+ },
2016
+ };
2017
+ })()
2018
+ )}
2019
+ </div>
2020
+ <div class="col-12 col-md-6">
2021
+ <div class="tx_normal">庫存點</div>
2022
+ ${BgWidget.mbContainer(8)}
2023
+ ${gvc.bindView(
2024
+ (() => {
2025
+ const id = glitter.getUUID();
2026
+ let dataList: any[] = [];
2027
+ let loading = true;
2028
+ return {
2029
+ bind: id,
2030
+ view: () => {
2031
+ if (loading) {
2032
+ return BgWidget.spinner({
2033
+ container: { style: 'margin-top: 0;' },
2034
+ circle: { visible: false },
2035
+ });
2036
+ } else {
2037
+ return BgWidget.selectOptionAndClickEvent({
2038
+ gvc: gvc,
2039
+ default: vm.data.content.store_in ?? '',
2040
+ options: dataList.map(item => {
2041
+ return {
2042
+ key: item.id,
2043
+ value: item.name,
2044
+ note: item.address,
2045
+ };
2046
+ }),
2047
+ showNote: BgWidget.grayNote(
2048
+ (() => {
2049
+ const d = dataList.find(item => {
2050
+ return item.id === vm.data.content.store_in;
2051
+ });
2052
+ return d ? d.address : '';
2053
+ })(),
2054
+ 'margin: 0 4px;'
2055
+ ),
2056
+ callback: data => {
2057
+ vm.data.content.store_in = data ? data.key : '';
2058
+ gvc.notifyDataChange(id);
2059
+ },
2060
+ clickElement: {
2061
+ html: html` <div>新增庫存點</div>
2062
+ <div>
2063
+ <i
2064
+ class="fa-solid fa-plus ps-2"
2065
+ style="font-size: 16px; height: 14px; width: 14px;"
2066
+ ></i>
2067
+ </div>`,
2068
+ event: gvc2 => {
2069
+ const newStoreData = StockStores.emptyData();
2070
+ BgWidget.settingDialog({
2071
+ gvc: gvc2,
2072
+ title: '新增庫存點',
2073
+ innerHTML: gvc2 => {
2074
+ return StockHistory.storeForm(gvc2, newStoreData);
2075
+ },
2076
+ footer_html: gvc2 => {
2077
+ return `${BgWidget.cancel(
2078
+ gvc2.event(() => {
2079
+ gvc2.closeDialog();
2080
+ })
2081
+ )}
2079
2082
  ${BgWidget.save(
2080
2083
  gvc2.event(() => {
2081
2084
  StockStores.verifyStoreForm(
@@ -2092,219 +2095,224 @@ export class StockHistory {
2092
2095
  }),
2093
2096
  '完成'
2094
2097
  )}`;
2095
- },
2096
- });
2098
+ },
2099
+ });
2100
+ },
2097
2101
  },
2098
- },
2099
- });
2100
- }
2101
- },
2102
- divCreate: {},
2103
- onCreate: () => {
2104
- if (loading) {
2105
- ApiUser.getPublicConfig('store_manager', 'manager').then((dd: any) => {
2106
- if (dd.result && dd.response.value) {
2107
- dataList = dd.response.value.list;
2108
- }
2109
- loading = false;
2110
- gvc.notifyDataChange(id);
2111
- });
2112
- }
2113
- },
2114
- };
2115
- })()
2116
- )}
2102
+ });
2103
+ }
2104
+ },
2105
+ divCreate: {},
2106
+ onCreate: () => {
2107
+ if (loading) {
2108
+ ApiUser.getPublicConfig('store_manager', 'manager').then((dd: any) => {
2109
+ if (dd.result && dd.response.value) {
2110
+ dataList = dd.response.value.list;
2111
+ }
2112
+ loading = false;
2113
+ gvc.notifyDataChange(id);
2114
+ });
2115
+ }
2116
+ },
2117
+ };
2118
+ })()
2119
+ )}
2120
+ </div>
2117
2121
  </div>
2118
- </div> `,
2122
+ `,
2119
2123
  ];
2120
2124
  case 'transfer':
2121
2125
  return [
2122
- html`<div class="row">
2123
- <div class="col-12 col-md-6">
2124
- <div class="tx_normal">調出庫存點</div>
2125
- ${BgWidget.mbContainer(8)}
2126
- ${gvc.bindView(
2127
- (() => {
2128
- const id = glitter.getUUID();
2129
- let dataList: any[] = [];
2130
- let loading = true;
2131
- return {
2132
- bind: id,
2133
- view: () => {
2134
- if (loading) {
2135
- return BgWidget.spinner({
2136
- container: { style: 'margin-top: 0;' },
2137
- circle: { visible: false },
2138
- });
2139
- } else {
2140
- return BgWidget.selectOptionAndClickEvent({
2141
- gvc: gvc,
2142
- default: vm.data.content.store_out ?? '',
2143
- options: dataList.map(item => {
2144
- return {
2145
- key: item.id,
2146
- value: item.name,
2147
- note: item.address,
2148
- };
2149
- }),
2150
- showNote: BgWidget.grayNote(
2151
- (() => {
2152
- const d = dataList.find(item => {
2153
- return item.id === vm.data.content.store_out;
2154
- });
2155
- return d ? d.address : '';
2156
- })(),
2157
- 'margin: 0 4px;'
2158
- ),
2159
- callback: data => {
2160
- vm.data.content.store_out = data ? data.key : '';
2126
+ html`
2127
+ <div class="row">
2128
+ <div class="col-12 col-md-6">
2129
+ <div class="tx_normal">調出庫存點</div>
2130
+ ${BgWidget.mbContainer(8)}
2131
+ ${gvc.bindView(
2132
+ (() => {
2133
+ const id = glitter.getUUID();
2134
+ let dataList: any[] = [];
2135
+ let loading = true;
2136
+ return {
2137
+ bind: id,
2138
+ view: () => {
2139
+ if (loading) {
2140
+ return BgWidget.spinner({
2141
+ container: { style: 'margin-top: 0;' },
2142
+ circle: { visible: false },
2143
+ });
2144
+ } else {
2145
+ return BgWidget.selectOptionAndClickEvent({
2146
+ gvc: gvc,
2147
+ default: vm.data.content.store_out ?? '',
2148
+ options: dataList.map(item => {
2149
+ return {
2150
+ key: item.id,
2151
+ value: item.name,
2152
+ note: item.address,
2153
+ };
2154
+ }),
2155
+ showNote: BgWidget.grayNote(
2156
+ (() => {
2157
+ const d = dataList.find(item => {
2158
+ return item.id === vm.data.content.store_out;
2159
+ });
2160
+ return d ? d.address : '';
2161
+ })(),
2162
+ 'margin: 0 4px;'
2163
+ ),
2164
+ callback: data => {
2165
+ vm.data.content.store_out = data ? data.key : '';
2166
+ gvc.notifyDataChange(id);
2167
+ },
2168
+ });
2169
+ }
2170
+ },
2171
+ divCreate: {},
2172
+ onCreate: () => {
2173
+ if (loading) {
2174
+ ApiUser.getPublicConfig('store_manager', 'manager').then((dd: any) => {
2175
+ if (dd.result && dd.response.value) {
2176
+ dataList = dd.response.value.list;
2177
+ }
2178
+ loading = false;
2161
2179
  gvc.notifyDataChange(id);
2162
- },
2163
- });
2164
- }
2165
- },
2166
- divCreate: {},
2167
- onCreate: () => {
2168
- if (loading) {
2169
- ApiUser.getPublicConfig('store_manager', 'manager').then((dd: any) => {
2170
- if (dd.result && dd.response.value) {
2171
- dataList = dd.response.value.list;
2172
- }
2173
- loading = false;
2174
- gvc.notifyDataChange(id);
2175
- });
2176
- }
2177
- },
2178
- };
2179
- })()
2180
- )}
2181
- </div>
2182
- <div class="col-12 col-md-6">
2183
- <div class="tx_normal">調入庫存點</div>
2184
- ${BgWidget.mbContainer(8)}
2185
- ${gvc.bindView(
2186
- (() => {
2187
- const id = glitter.getUUID();
2188
- let dataList: any[] = [];
2189
- let loading = true;
2190
- return {
2191
- bind: id,
2192
- view: () => {
2193
- if (loading) {
2194
- return BgWidget.spinner({
2195
- container: { style: 'margin-top: 0;' },
2196
- circle: { visible: false },
2197
- });
2198
- } else {
2199
- return BgWidget.selectOptionAndClickEvent({
2200
- gvc: gvc,
2201
- default: vm.data.content.store_in ?? '',
2202
- options: dataList.map(item => {
2203
- return {
2204
- key: item.id,
2205
- value: item.name,
2206
- note: item.address,
2207
- };
2208
- }),
2209
- showNote: BgWidget.grayNote(
2210
- (() => {
2211
- const d = dataList.find(item => {
2212
- return item.id === vm.data.content.store_in;
2213
- });
2214
- return d ? d.address : '';
2215
- })(),
2216
- 'margin: 0 4px;'
2217
- ),
2218
- callback: data => {
2219
- vm.data.content.store_in = data ? data.key : '';
2180
+ });
2181
+ }
2182
+ },
2183
+ };
2184
+ })()
2185
+ )}
2186
+ </div>
2187
+ <div class="col-12 col-md-6">
2188
+ <div class="tx_normal">調入庫存點</div>
2189
+ ${BgWidget.mbContainer(8)}
2190
+ ${gvc.bindView(
2191
+ (() => {
2192
+ const id = glitter.getUUID();
2193
+ let dataList: any[] = [];
2194
+ let loading = true;
2195
+ return {
2196
+ bind: id,
2197
+ view: () => {
2198
+ if (loading) {
2199
+ return BgWidget.spinner({
2200
+ container: { style: 'margin-top: 0;' },
2201
+ circle: { visible: false },
2202
+ });
2203
+ } else {
2204
+ return BgWidget.selectOptionAndClickEvent({
2205
+ gvc: gvc,
2206
+ default: vm.data.content.store_in ?? '',
2207
+ options: dataList.map(item => {
2208
+ return {
2209
+ key: item.id,
2210
+ value: item.name,
2211
+ note: item.address,
2212
+ };
2213
+ }),
2214
+ showNote: BgWidget.grayNote(
2215
+ (() => {
2216
+ const d = dataList.find(item => {
2217
+ return item.id === vm.data.content.store_in;
2218
+ });
2219
+ return d ? d.address : '';
2220
+ })(),
2221
+ 'margin: 0 4px;'
2222
+ ),
2223
+ callback: data => {
2224
+ vm.data.content.store_in = data ? data.key : '';
2225
+ gvc.notifyDataChange(id);
2226
+ },
2227
+ });
2228
+ }
2229
+ },
2230
+ divCreate: {},
2231
+ onCreate: () => {
2232
+ if (loading) {
2233
+ ApiUser.getPublicConfig('store_manager', 'manager').then((dd: any) => {
2234
+ if (dd.result && dd.response.value) {
2235
+ dataList = dd.response.value.list;
2236
+ }
2237
+ loading = false;
2220
2238
  gvc.notifyDataChange(id);
2221
- },
2222
- });
2223
- }
2224
- },
2225
- divCreate: {},
2226
- onCreate: () => {
2227
- if (loading) {
2228
- ApiUser.getPublicConfig('store_manager', 'manager').then((dd: any) => {
2229
- if (dd.result && dd.response.value) {
2230
- dataList = dd.response.value.list;
2231
- }
2232
- loading = false;
2233
- gvc.notifyDataChange(id);
2234
- });
2235
- }
2236
- },
2237
- };
2238
- })()
2239
- )}
2239
+ });
2240
+ }
2241
+ },
2242
+ };
2243
+ })()
2244
+ )}
2245
+ </div>
2240
2246
  </div>
2241
- </div> `,
2247
+ `,
2242
2248
  ];
2243
2249
  case 'checking':
2244
2250
  return [
2245
- html`<div class="row">
2246
- <div class="col-12 col-md-6">
2247
- <div class="tx_normal">盤點庫存點</div>
2248
- ${BgWidget.mbContainer(8)}
2249
- ${gvc.bindView(
2250
- (() => {
2251
- const id = glitter.getUUID();
2252
- let dataList: any[] = [];
2253
- let loading = true;
2254
- return {
2255
- bind: id,
2256
- view: () => {
2257
- if (loading) {
2258
- return BgWidget.spinner({
2259
- container: { style: 'margin-top: 0;' },
2260
- circle: { visible: false },
2261
- });
2262
- } else {
2263
- return BgWidget.selectOptionAndClickEvent({
2264
- gvc: gvc,
2265
- default: vm.data.content.store_out ?? '',
2266
- options: dataList.map(item => {
2267
- return {
2268
- key: item.id,
2269
- value: item.name,
2270
- note: item.address,
2271
- };
2272
- }),
2273
- showNote: BgWidget.grayNote(
2274
- (() => {
2275
- const d = dataList.find(item => {
2276
- return item.id === vm.data.content.store_out;
2277
- });
2278
- return d ? d.address : '';
2279
- })(),
2280
- 'margin: 0 4px;'
2281
- ),
2282
- callback: data => {
2283
- vm.data.content.store_out = data ? data.key : '';
2251
+ html`
2252
+ <div class="row">
2253
+ <div class="col-12 col-md-6">
2254
+ <div class="tx_normal">盤點庫存點</div>
2255
+ ${BgWidget.mbContainer(8)}
2256
+ ${gvc.bindView(
2257
+ (() => {
2258
+ const id = glitter.getUUID();
2259
+ let dataList: any[] = [];
2260
+ let loading = true;
2261
+ return {
2262
+ bind: id,
2263
+ view: () => {
2264
+ if (loading) {
2265
+ return BgWidget.spinner({
2266
+ container: { style: 'margin-top: 0;' },
2267
+ circle: { visible: false },
2268
+ });
2269
+ } else {
2270
+ return BgWidget.selectOptionAndClickEvent({
2271
+ gvc: gvc,
2272
+ default: vm.data.content.store_out ?? '',
2273
+ options: dataList.map(item => {
2274
+ return {
2275
+ key: item.id,
2276
+ value: item.name,
2277
+ note: item.address,
2278
+ };
2279
+ }),
2280
+ showNote: BgWidget.grayNote(
2281
+ (() => {
2282
+ const d = dataList.find(item => {
2283
+ return item.id === vm.data.content.store_out;
2284
+ });
2285
+ return d ? d.address : '';
2286
+ })(),
2287
+ 'margin: 0 4px;'
2288
+ ),
2289
+ callback: data => {
2290
+ vm.data.content.store_out = data ? data.key : '';
2291
+ gvc.notifyDataChange(id);
2292
+ vm.data.content.check_according = '';
2293
+ gvc.notifyDataChange(dvm.tableId);
2294
+ },
2295
+ });
2296
+ }
2297
+ },
2298
+ divCreate: {},
2299
+ onCreate: () => {
2300
+ if (loading) {
2301
+ ApiUser.getPublicConfig('store_manager', 'manager').then((dd: any) => {
2302
+ if (dd.result && dd.response.value) {
2303
+ dataList = dd.response.value.list;
2304
+ }
2305
+ loading = false;
2284
2306
  gvc.notifyDataChange(id);
2285
- vm.data.content.check_according = '';
2286
- gvc.notifyDataChange(dvm.tableId);
2287
- },
2288
- });
2289
- }
2290
- },
2291
- divCreate: {},
2292
- onCreate: () => {
2293
- if (loading) {
2294
- ApiUser.getPublicConfig('store_manager', 'manager').then((dd: any) => {
2295
- if (dd.result && dd.response.value) {
2296
- dataList = dd.response.value.list;
2297
- }
2298
- loading = false;
2299
- gvc.notifyDataChange(id);
2300
- });
2301
- }
2302
- },
2303
- };
2304
- })()
2305
- )}
2307
+ });
2308
+ }
2309
+ },
2310
+ };
2311
+ })()
2312
+ )}
2313
+ </div>
2306
2314
  </div>
2307
- </div> `,
2315
+ `,
2308
2316
  ];
2309
2317
  }
2310
2318
  }
@@ -2633,9 +2641,9 @@ export class StockHistory {
2633
2641
  }
2634
2642
 
2635
2643
  static vendorForm(gvc: GVC, data: VendorData) {
2636
- return html`<div class="row">
2644
+ return html` <div class="row">
2637
2645
  ${[
2638
- html`<div class="tx_normal">供應商名稱</div>
2646
+ html` <div class="tx_normal">供應商名稱</div>
2639
2647
  ${BgWidget.mbContainer(4)}
2640
2648
  ${BgWidget.editeInput({
2641
2649
  gvc: gvc,
@@ -2646,7 +2654,7 @@ export class StockHistory {
2646
2654
  data.name = text;
2647
2655
  },
2648
2656
  })}`,
2649
- html`<div class="tx_normal">供應商地址</div>
2657
+ html` <div class="tx_normal">供應商地址</div>
2650
2658
  ${BgWidget.mbContainer(4)}
2651
2659
  ${BgWidget.editeInput({
2652
2660
  gvc: gvc,
@@ -2657,7 +2665,7 @@ export class StockHistory {
2657
2665
  data.address = text;
2658
2666
  },
2659
2667
  })}`,
2660
- html`<div class="tx_normal">聯絡人姓名</div>
2668
+ html` <div class="tx_normal">聯絡人姓名</div>
2661
2669
  ${BgWidget.mbContainer(4)}
2662
2670
  ${BgWidget.editeInput({
2663
2671
  gvc: gvc,
@@ -2668,7 +2676,7 @@ export class StockHistory {
2668
2676
  data.manager_name = text;
2669
2677
  },
2670
2678
  })}`,
2671
- html`<div class="tx_normal">電話</div>
2679
+ html` <div class="tx_normal">電話</div>
2672
2680
  ${BgWidget.mbContainer(4)}
2673
2681
  ${BgWidget.editeInput({
2674
2682
  gvc: gvc,
@@ -2698,9 +2706,9 @@ export class StockHistory {
2698
2706
  }
2699
2707
 
2700
2708
  static storeForm(gvc: GVC, data: StoreData) {
2701
- return html`<div class="row">
2709
+ return html` <div class="row">
2702
2710
  ${[
2703
- html`<div class="tx_normal">庫存點名稱</div>
2711
+ html` <div class="tx_normal">庫存點名稱</div>
2704
2712
  ${BgWidget.mbContainer(4)}
2705
2713
  ${BgWidget.editeInput({
2706
2714
  gvc: gvc,
@@ -2711,7 +2719,7 @@ export class StockHistory {
2711
2719
  data.name = text;
2712
2720
  },
2713
2721
  })}`,
2714
- html`<div class="tx_normal">庫存點地址</div>
2722
+ html` <div class="tx_normal">庫存點地址</div>
2715
2723
  ${BgWidget.mbContainer(4)}
2716
2724
  ${BgWidget.editeInput({
2717
2725
  gvc: gvc,
@@ -2722,7 +2730,7 @@ export class StockHistory {
2722
2730
  data.address = text;
2723
2731
  },
2724
2732
  })}`,
2725
- html`<div class="tx_normal">聯絡人姓名</div>
2733
+ html` <div class="tx_normal">聯絡人姓名</div>
2726
2734
  ${BgWidget.mbContainer(4)}
2727
2735
  ${BgWidget.editeInput({
2728
2736
  gvc: gvc,
@@ -2733,7 +2741,7 @@ export class StockHistory {
2733
2741
  data.manager_name = text;
2734
2742
  },
2735
2743
  })}`,
2736
- html`<div class="tx_normal">電話</div>
2744
+ html` <div class="tx_normal">電話</div>
2737
2745
  ${BgWidget.mbContainer(4)}
2738
2746
  ${BgWidget.editeInput({
2739
2747
  gvc: gvc,
@@ -2877,7 +2885,7 @@ export class StockHistory {
2877
2885
 
2878
2886
  return arr
2879
2887
  .map(item => {
2880
- return html`<div style="${document.body.clientWidth > 768 ? `width: ${item.width ?? 20}%;` : ''}">
2888
+ return html` <div style="${document.body.clientWidth > 768 ? `width: ${item.width ?? 20}%;` : ''}">
2881
2889
  <div class="tx_700" style="margin-bottom: 8px;">${item.title}</div>
2882
2890
  <div class="tx_normal">${item.value}</div>
2883
2891
  </div>`;
@@ -3451,6 +3459,7 @@ export class StockHistory {
3451
3459
  cost: 0,
3452
3460
  note: '',
3453
3461
  transfer_count: 0,
3462
+ product_id:item.product_content.id,
3454
3463
  check_count: 0,
3455
3464
  ...(origin ?? {}),
3456
3465
  title: title,
@@ -3460,7 +3469,12 @@ export class StockHistory {
3460
3469
  });
3461
3470
  });
3462
3471
  }
3463
- callback(product_list);
3472
+
3473
+ callback( origins.filter((d1)=>{
3474
+ return !product_list.find((dd)=>{
3475
+ return d1.variant_id === dd.variant_id;
3476
+ })
3477
+ }).concat(product_list));
3464
3478
  });
3465
3479
  }
3466
3480