ts-glitter 15.0.1 → 15.0.2

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.
package/lowcode/Entry.js CHANGED
@@ -80,7 +80,7 @@ export class Entry {
80
80
  }
81
81
  window.renderClock = (_a = window.renderClock) !== null && _a !== void 0 ? _a : clockF();
82
82
  console.log(`Entry-time:`, window.renderClock.stop());
83
- glitter.share.editerVersion = 'V_15.0.1';
83
+ glitter.share.editerVersion = 'V_15.0.2';
84
84
  glitter.share.start = new Date();
85
85
  const vm = {
86
86
  appConfig: [],
package/lowcode/Entry.ts CHANGED
@@ -82,7 +82,7 @@ export class Entry {
82
82
 
83
83
  (window as any).renderClock = (window as any).renderClock ?? clockF();
84
84
  console.log(`Entry-time:`, (window as any).renderClock.stop());
85
- glitter.share.editerVersion = 'V_15.0.1';
85
+ glitter.share.editerVersion = 'V_15.0.2';
86
86
  glitter.share.start = new Date();
87
87
  const vm: {
88
88
  appConfig: any;
@@ -808,11 +808,13 @@ export class BgGuide {
808
808
  }
809
809
  `);
810
810
  this.detectClickThrough(target, () => {
811
+ let loadingCheck = false;
811
812
  if (window === null || window === void 0 ? void 0 : window.loading) {
813
+ close();
812
814
  let timer1 = setInterval(() => {
813
- if (document.querySelector('.dialog-success')) {
815
+ if (!loadingCheck && document.querySelector('.dialog-success')) {
816
+ loadingCheck = true;
814
817
  setTimeout(() => {
815
- close();
816
818
  this.finGuide(key);
817
819
  this.leaveGuide(vm, 0);
818
820
  clearInterval(timer1);
@@ -2205,6 +2207,15 @@ export class BgGuide {
2205
2207
  }
2206
2208
  case 4: {
2207
2209
  let that = this;
2210
+ let target = this.findIframeDom('.guide3-4');
2211
+ target.scrollIntoView({});
2212
+ return this.drawBGwithBelowWindow(BG, vm, '.guide3-4', 'shipInit', 4, 5, {
2213
+ width: 332,
2214
+ height: 189,
2215
+ title: '填寫配送說明',
2216
+ content: '填寫詳細配送說明,將會出現在結帳頁供顧客閱讀',
2217
+ }, () => {
2218
+ });
2208
2219
  const scrollEvent = this.disableScroll();
2209
2220
  function close() {
2210
2221
  BG.classList.remove(`guide3-4`);
@@ -2217,8 +2228,6 @@ export class BgGuide {
2217
2228
  gvc.notifyDataChange('shipInit');
2218
2229
  }
2219
2230
  let iframeRect = iframe.getBoundingClientRect();
2220
- let target = this.findIframeDom('.guide3-4');
2221
- target.scrollIntoView({});
2222
2231
  let rect = target.getBoundingClientRect();
2223
2232
  let left = rect.left + iframeRect.left;
2224
2233
  let top = rect.top + iframeRect.top;
@@ -2680,13 +2689,40 @@ export class BgGuide {
2680
2689
  let vm = {
2681
2690
  guide: this.guide,
2682
2691
  step: this.step,
2683
- progress: [],
2692
+ progress: [
2693
+ {
2694
+ title: '金流設定',
2695
+ value: 'setFinanceWay',
2696
+ finished: false,
2697
+ },
2698
+ {
2699
+ title: '配送設定',
2700
+ value: 'shippment_setting',
2701
+ finished: false,
2702
+ },
2703
+ {
2704
+ title: '運費設定',
2705
+ value: 'logistics_setting',
2706
+ finished: false,
2707
+ },
2708
+ {
2709
+ title: '商品上架',
2710
+ value: 'product-manager',
2711
+ finished: false,
2712
+ },
2713
+ {
2714
+ title: '商店訊息',
2715
+ value: 'shop_information',
2716
+ finished: false,
2717
+ },
2718
+ ],
2719
+ progressLoading: true,
2684
2720
  };
2685
2721
  return gvc.bindView({
2686
2722
  bind: 'init',
2687
2723
  dataList: [{ key: 'step', obj: vm }],
2688
2724
  view: () => {
2689
- if (vm.progress.length == 0) {
2725
+ if (vm.progressLoading) {
2690
2726
  ApiShop.getGuide().then((r) => {
2691
2727
  vm.progress = r.response.value;
2692
2728
  if (vm.progress.length == 0) {
@@ -2720,6 +2756,7 @@ export class BgGuide {
2720
2756
  ApiShop.setGuide(vm.progress).then((r) => {
2721
2757
  });
2722
2758
  }
2759
+ vm.progressLoading = false;
2723
2760
  gvc.notifyDataChange('init');
2724
2761
  });
2725
2762
  }
@@ -2909,7 +2946,7 @@ export class BgGuide {
2909
2946
  bind: 'guideDirect',
2910
2947
  view: () => {
2911
2948
  let dialog = new ShareDialog(gvc.glitter);
2912
- if (vm.progress.length == 0) {
2949
+ if (vm.progressLoading) {
2913
2950
  dialog.dataLoading({ visible: true });
2914
2951
  }
2915
2952
  else {
@@ -162,6 +162,7 @@ export class BgGuide {
162
162
  this.step = step ?? -1;
163
163
  if (!step){
164
164
  ApiShop.getFEGuideLeave().then(r => {
165
+
165
166
  if (!r.response?.value){
166
167
  ApiShop.setFEGuideLeave().then(r => {
167
168
  this.guide = 0;
@@ -959,11 +960,14 @@ export class BgGuide {
959
960
  }
960
961
  `);
961
962
  this.detectClickThrough(target, () => {
963
+ let loadingCheck = false;
962
964
  if (window?.loading){
965
+ close();
963
966
  let timer1 = setInterval(()=>{
964
- if (document.querySelector('.dialog-success')){
967
+ if (!loadingCheck && document.querySelector('.dialog-success')){
968
+ loadingCheck = true;
965
969
  setTimeout(()=>{
966
- close();
970
+
967
971
  this.finGuide(key);
968
972
  this.leaveGuide(vm, 0)
969
973
  clearInterval(timer1);
@@ -2497,7 +2501,26 @@ export class BgGuide {
2497
2501
 
2498
2502
  }
2499
2503
  case 4: {
2500
- let that = this
2504
+ let that = this;
2505
+ let target = this.findIframeDom('.guide3-4');
2506
+ target.scrollIntoView({});
2507
+
2508
+ return this.drawBGwithBelowWindow(
2509
+ BG,
2510
+ vm,
2511
+ '.guide3-4',
2512
+ 'shipInit',
2513
+ 4,
2514
+ 5,
2515
+ {
2516
+ width: 332,
2517
+ height: 189,
2518
+ title: '填寫配送說明',
2519
+ content: '填寫詳細配送說明,將會出現在結帳頁供顧客閱讀',
2520
+ },
2521
+ () => {
2522
+ }
2523
+ );
2501
2524
  const scrollEvent = this.disableScroll();
2502
2525
  function close() {
2503
2526
  BG.classList.remove(`guide3-4`);
@@ -2512,8 +2535,7 @@ export class BgGuide {
2512
2535
  }
2513
2536
 
2514
2537
  let iframeRect = iframe.getBoundingClientRect();
2515
- let target = this.findIframeDom('.guide3-4');
2516
- target.scrollIntoView({});
2538
+
2517
2539
 
2518
2540
  let rect = target.getBoundingClientRect();
2519
2541
  let left = rect.left + iframeRect.left;
@@ -3006,17 +3028,42 @@ export class BgGuide {
3006
3028
  let vm = {
3007
3029
  guide: this.guide,
3008
3030
  step: this.step,
3009
- progress: [],
3031
+ progress: [
3032
+ {
3033
+ title: '金流設定',
3034
+ value: 'setFinanceWay',
3035
+ finished: false,
3036
+ },
3037
+ {
3038
+ title: '配送設定',
3039
+ value: 'shippment_setting',
3040
+ finished: false,
3041
+ },
3042
+ {
3043
+ title: '運費設定',
3044
+ value: 'logistics_setting',
3045
+ finished: false,
3046
+ },
3047
+ {
3048
+ title: '商品上架',
3049
+ value: 'product-manager',
3050
+ finished: false,
3051
+ },
3052
+ {
3053
+ title: '商店訊息',
3054
+ value: 'shop_information',
3055
+ finished: false,
3056
+ },
3057
+ ],
3058
+ progressLoading : true,
3010
3059
  };
3011
3060
  return gvc.bindView({
3012
3061
  bind: 'init',
3013
3062
  dataList: [{key: 'step', obj: vm}],
3014
3063
  view: () => {
3015
- if (vm.progress.length == 0) {
3064
+ if (vm.progressLoading) {
3016
3065
  ApiShop.getGuide().then((r) => {
3017
- // if (!r.response.value.guideList){
3018
3066
 
3019
- // }
3020
3067
  vm.progress = r.response.value;
3021
3068
  if (vm.progress.length == 0) {
3022
3069
  (vm.progress as any) = [
@@ -3049,6 +3096,7 @@ export class BgGuide {
3049
3096
  ApiShop.setGuide(vm.progress).then((r) => {
3050
3097
  });
3051
3098
  }
3099
+ vm.progressLoading = false;
3052
3100
  gvc.notifyDataChange('init');
3053
3101
  });
3054
3102
  }
@@ -3238,7 +3286,7 @@ export class BgGuide {
3238
3286
  bind: 'guideDirect',
3239
3287
  view: () => {
3240
3288
  let dialog = new ShareDialog(gvc.glitter);
3241
- if (vm.progress.length == 0){
3289
+ if (vm.progressLoading){
3242
3290
  dialog.dataLoading({visible: true});
3243
3291
  }else {
3244
3292
  dialog.dataLoading({visible: false});
@@ -60,7 +60,10 @@ export class ShoppingInformation {
60
60
  mainLoading: true,
61
61
  SEOLoading: true,
62
62
  domainLoading: true,
63
- save_info: () => { return new Promise(() => { }); }
63
+ save_info: () => {
64
+ return new Promise(() => {
65
+ });
66
+ }
64
67
  };
65
68
  const dialog = new ShareDialog(gvc.glitter);
66
69
  const shopCategory = [
@@ -206,9 +209,10 @@ export class ShoppingInformation {
206
209
  };
207
210
  return BgWidget.mainCard(html `
208
211
  <div class="d-flex flex-column " style="gap:18px;">
209
- <div style="font-size: 16px;font-weight: 700;">商店基本資訊</div>
210
- <div class="d-flex w-100" style="gap:24px;">
211
- ${BgWidget.editeInput({
212
+ <div class="d-flex flex-column guide6-3">
213
+ <div style="font-size: 16px;font-weight: 700;">商店基本資訊</div>
214
+ <div class="d-flex w-100" style="gap:24px;">
215
+ ${BgWidget.editeInput({
212
216
  gvc: gvc,
213
217
  title: '商店名稱',
214
218
  default: (_a = vm.data.shop_name) !== null && _a !== void 0 ? _a : "",
@@ -218,9 +222,9 @@ export class ShoppingInformation {
218
222
  placeHolder: '請輸入商店資訊',
219
223
  divStyle: "width:100%;"
220
224
  })}
221
- <div class="w-100 d-flex flex-column">
222
- <div class="tx_normal fw-normal">商店類別</div>
223
- ${BgWidget.select({
225
+ <div class="w-100 d-flex flex-column">
226
+ <div class="tx_normal fw-normal">商店類別</div>
227
+ ${BgWidget.select({
224
228
  gvc: gvc,
225
229
  default: (_b = vm.data.category) !== null && _b !== void 0 ? _b : "",
226
230
  callback: (key) => {
@@ -229,10 +233,10 @@ export class ShoppingInformation {
229
233
  options: shopCategory,
230
234
  style: 'width:100%;margin: 8px 0;',
231
235
  })}
236
+ </div>
232
237
  </div>
233
- </div>
234
- <div class="d-flex w-100" style="gap:24px;">
235
- ${BgWidget.editeInput({
238
+ <div class="d-flex w-100" style="gap:24px;">
239
+ ${BgWidget.editeInput({
236
240
  gvc: gvc,
237
241
  title: '電子信箱',
238
242
  default: (_c = vm.data.email) !== null && _c !== void 0 ? _c : "",
@@ -242,7 +246,7 @@ export class ShoppingInformation {
242
246
  placeHolder: '請輸入電子信箱',
243
247
  divStyle: "width:100%;"
244
248
  })}
245
- ${BgWidget.editeInput({
249
+ ${BgWidget.editeInput({
246
250
  gvc: gvc,
247
251
  title: '聯絡電話',
248
252
  default: (_d = vm.data.phone) !== null && _d !== void 0 ? _d : "",
@@ -252,9 +256,9 @@ export class ShoppingInformation {
252
256
  placeHolder: '請輸入聯絡電話',
253
257
  divStyle: "width:100%;"
254
258
  })}
255
- </div>
256
- <div class="d-flex w-100" style="gap:24px;">
257
- ${BgWidget.editeInput({
259
+ </div>
260
+ <div class="d-flex w-100" style="gap:24px;">
261
+ ${BgWidget.editeInput({
258
262
  gvc: gvc,
259
263
  title: '店家地址',
260
264
  default: vm.data.address,
@@ -264,7 +268,7 @@ export class ShoppingInformation {
264
268
  placeHolder: '請輸入店家地址',
265
269
  divStyle: "width:100%;"
266
270
  })}
267
- ${BgWidget.editeInput({
271
+ ${BgWidget.editeInput({
268
272
  gvc: gvc,
269
273
  title: '統一編號',
270
274
  default: vm.data.ubn,
@@ -274,7 +278,9 @@ export class ShoppingInformation {
274
278
  placeHolder: '請輸入統一編號',
275
279
  divStyle: "width:100%;"
276
280
  })}
281
+ </div>
277
282
  </div>
283
+
278
284
  <div class="d-flex flex-column" style="gap:8px;">
279
285
  <div style="color: #393939;font-size: 16px;">啟用 AI 選品</div>
280
286
  <div style="color: #8D8D8D;font-size:13px;">透過 AI 選品功能用戶可以使用自然語言描述找到所需商品<br>
@@ -436,9 +442,8 @@ export class ShoppingInformation {
436
442
  };
437
443
  })}
438
444
  </div>
439
-
440
445
  </div>
441
- `, `guide6-3`);
446
+ `, ``);
442
447
  }, divCreate: {}
443
448
  })}
444
449
  <div style="margin-top: 24px;"></div>
@@ -614,8 +619,9 @@ ${BgWidget.title('GoDaddy DNS 設定指南')}
614
619
  }
615
620
  };
616
621
  })}
617
- <div style="margin-top: 240px;"></div>
618
- <div class="shadow" style="width: 100%;padding: 14px 16px;background: #FFF; display: flex;justify-content: end;position: fixed;bottom: 0;right: 0;z-index:1;gap:14px;">
622
+ <div style="margin-top: 300px;"></div>
623
+ <div class="shadow"
624
+ style="width: 100%;padding: 14px 16px;background: #FFF; display: flex;justify-content: end;position: fixed;bottom: 0;right: 0;z-index:1;gap:14px;">
619
625
  ${BgWidget.save(gvc.event(() => __awaiter(this, void 0, void 0, function* () {
620
626
  const dialog = new ShareDialog(gvc.glitter);
621
627
  dialog.dataLoading({ visible: true });
@@ -24,7 +24,7 @@ export class ShoppingInformation {
24
24
  mainLoading: boolean;
25
25
  SEOLoading: boolean;
26
26
  domainLoading: boolean;
27
- save_info: ()=>Promise<any>
27
+ save_info: () => Promise<any>
28
28
  } = {
29
29
  id: glitter.getUUID(),
30
30
  tableId: glitter.getUUID(),
@@ -69,7 +69,10 @@ export class ShoppingInformation {
69
69
  mainLoading: true,
70
70
  SEOLoading: true,
71
71
  domainLoading: true,
72
- save_info: ()=>{return new Promise<any>(()=>{})}
72
+ save_info: () => {
73
+ return new Promise<any>(() => {
74
+ })
75
+ }
73
76
  };
74
77
  const dialog = new ShareDialog(gvc.glitter);
75
78
  const shopCategory = [
@@ -200,7 +203,7 @@ export class ShoppingInformation {
200
203
  ${gvc.bindView({
201
204
  bind: "basic",
202
205
  view: () => {
203
- vm.save_info = ()=>{
206
+ vm.save_info = () => {
204
207
  return new Promise((resolve, reject) => {
205
208
  ApiUser.setPublicConfig({
206
209
  key: "store-information",
@@ -213,75 +216,78 @@ export class ShoppingInformation {
213
216
  }
214
217
  return BgWidget.mainCard(html`
215
218
  <div class="d-flex flex-column " style="gap:18px;">
216
- <div style="font-size: 16px;font-weight: 700;">商店基本資訊</div>
217
- <div class="d-flex w-100" style="gap:24px;">
218
- ${BgWidget.editeInput({
219
- gvc: gvc,
220
- title: '商店名稱',
221
- default: vm.data.shop_name ?? "",
222
- callback: (text) => {
223
- vm.data.shop_name = text;
224
- },
225
- placeHolder: '請輸入商店資訊',
226
- divStyle: "width:100%;"
227
- })}
228
- <div class="w-100 d-flex flex-column">
229
- <div class="tx_normal fw-normal">商店類別</div>
230
- ${BgWidget.select({
219
+ <div class="d-flex flex-column guide6-3">
220
+ <div style="font-size: 16px;font-weight: 700;">商店基本資訊</div>
221
+ <div class="d-flex w-100" style="gap:24px;">
222
+ ${BgWidget.editeInput({
231
223
  gvc: gvc,
232
- default: vm.data.category ?? "",
233
- callback: (key) => {
234
- vm.data.category = key;
224
+ title: '商店名稱',
225
+ default: vm.data.shop_name ?? "",
226
+ callback: (text) => {
227
+ vm.data.shop_name = text;
235
228
  },
236
- options: shopCategory,
237
- style: 'width:100%;margin: 8px 0;',
229
+ placeHolder: '請輸入商店資訊',
230
+ divStyle: "width:100%;"
231
+ })}
232
+ <div class="w-100 d-flex flex-column">
233
+ <div class="tx_normal fw-normal">商店類別</div>
234
+ ${BgWidget.select({
235
+ gvc: gvc,
236
+ default: vm.data.category ?? "",
237
+ callback: (key) => {
238
+ vm.data.category = key;
239
+ },
240
+ options: shopCategory,
241
+ style: 'width:100%;margin: 8px 0;',
242
+ })}
243
+ </div>
244
+ </div>
245
+ <div class="d-flex w-100" style="gap:24px;">
246
+ ${BgWidget.editeInput({
247
+ gvc: gvc,
248
+ title: '電子信箱',
249
+ default: vm.data.email ?? "",
250
+ callback: (text) => {
251
+ vm.data.email = text;
252
+ },
253
+ placeHolder: '請輸入電子信箱',
254
+ divStyle: "width:100%;"
255
+ })}
256
+ ${BgWidget.editeInput({
257
+ gvc: gvc,
258
+ title: '聯絡電話',
259
+ default: vm.data.phone ?? "",
260
+ callback: (text) => {
261
+ vm.data.phone = text;
262
+ },
263
+ placeHolder: '請輸入聯絡電話',
264
+ divStyle: "width:100%;"
265
+ })}
266
+ </div>
267
+ <div class="d-flex w-100" style="gap:24px;">
268
+ ${BgWidget.editeInput({
269
+ gvc: gvc,
270
+ title: '店家地址',
271
+ default: vm.data.address,
272
+ callback: (text) => {
273
+ vm.data.address = text;
274
+ },
275
+ placeHolder: '請輸入店家地址',
276
+ divStyle: "width:100%;"
277
+ })}
278
+ ${BgWidget.editeInput({
279
+ gvc: gvc,
280
+ title: '統一編號',
281
+ default: vm.data.ubn,
282
+ callback: (text) => {
283
+ vm.data.ubn = text;
284
+ },
285
+ placeHolder: '請輸入統一編號',
286
+ divStyle: "width:100%;"
238
287
  })}
239
288
  </div>
240
289
  </div>
241
- <div class="d-flex w-100" style="gap:24px;">
242
- ${BgWidget.editeInput({
243
- gvc: gvc,
244
- title: '電子信箱',
245
- default: vm.data.email ?? "",
246
- callback: (text) => {
247
- vm.data.email = text;
248
- },
249
- placeHolder: '請輸入電子信箱',
250
- divStyle: "width:100%;"
251
- })}
252
- ${BgWidget.editeInput({
253
- gvc: gvc,
254
- title: '聯絡電話',
255
- default: vm.data.phone ?? "",
256
- callback: (text) => {
257
- vm.data.phone = text;
258
- },
259
- placeHolder: '請輸入聯絡電話',
260
- divStyle: "width:100%;"
261
- })}
262
- </div>
263
- <div class="d-flex w-100" style="gap:24px;">
264
- ${BgWidget.editeInput({
265
- gvc: gvc,
266
- title: '店家地址',
267
- default: vm.data.address,
268
- callback: (text) => {
269
- vm.data.address = text;
270
- },
271
- placeHolder: '請輸入店家地址',
272
- divStyle: "width:100%;"
273
- })}
274
- ${BgWidget.editeInput({
275
- gvc: gvc,
276
- title: '統一編號',
277
- default: vm.data.ubn,
278
- callback: (text) => {
279
- vm.data.ubn = text;
280
- },
281
- placeHolder: '請輸入統一編號',
282
- divStyle: "width:100%;"
283
- })}
284
- </div>
290
+
285
291
  <div class="d-flex flex-column" style="gap:8px;">
286
292
  <div style="color: #393939;font-size: 16px;">啟用 AI 選品</div>
287
293
  <div style="color: #8D8D8D;font-size:13px;">透過 AI 選品功能用戶可以使用自然語言描述找到所需商品<br>
@@ -313,7 +319,7 @@ export class ShoppingInformation {
313
319
  onchange="${gvc.event((e, event) => {
314
320
  vm.data.wishlist = !vm.data.wishlist
315
321
  })}"
316
- ${vm.data.wishlist ? `checked`: ``}
322
+ ${vm.data.wishlist ? `checked` : ``}
317
323
  />
318
324
  </div>
319
325
  </div>
@@ -451,9 +457,8 @@ export class ShoppingInformation {
451
457
  }
452
458
  })}
453
459
  </div>
454
-
455
460
  </div>
456
- `,`guide6-3`)
461
+ `, ``)
457
462
  }, divCreate: {}
458
463
  })}
459
464
  <div style="margin-top: 24px;"></div>
@@ -623,13 +628,14 @@ ${BgWidget.title('GoDaddy DNS 設定指南')}
623
628
  }), '申請')}
624
629
  </div>
625
630
  </div>
626
- `,'guide6-5')
631
+ `, 'guide6-5')
627
632
 
628
633
  }
629
634
  }
630
635
  })}
631
- <div style="margin-top: 240px;"></div>
632
- <div class="shadow" style="width: 100%;padding: 14px 16px;background: #FFF; display: flex;justify-content: end;position: fixed;bottom: 0;right: 0;z-index:1;gap:14px;">
636
+ <div style="margin-top: 300px;"></div>
637
+ <div class="shadow"
638
+ style="width: 100%;padding: 14px 16px;background: #FFF; display: flex;justify-content: end;position: fixed;bottom: 0;right: 0;z-index:1;gap:14px;">
633
639
  ${BgWidget.save(
634
640
  gvc.event(async () => {
635
641
  const dialog = new ShareDialog(gvc.glitter)
@@ -2897,7 +2897,7 @@ export class ShoppingProductSetting {
2897
2897
  }
2898
2898
  return html `
2899
2899
  <div
2900
- style="display: flex;height: 40px;padding: 8px 17px 8px 18px;align-items: center;justify-content: space-between;gap: 4px;align-self: stretch;border-radius: 10px;background: #F7F7F7;"
2900
+ style="display: flex;padding: 8px 17px 8px 18px;align-items: center;gap: 4px;align-self: stretch;border-radius: 10px;background: #F7F7F7;"
2901
2901
  >
2902
2902
  <div style="display: flex; gap: 12px;align-items: center;">
2903
2903
  <i
@@ -2912,6 +2912,29 @@ export class ShoppingProductSetting {
2912
2912
  ></i>
2913
2913
  已選取 ${selected.length} 項
2914
2914
  </div>
2915
+ <div class="ms-auto" style="margin-right: 18px;">
2916
+ <div style="border-radius: 7px;border: 1px solid #DDD;background: #FFF;box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.10);padding: 3px 13px;cursor: pointer;" onclick="${gvc.event(() => {
2917
+ let topGVC = window.parent.glitter.pageConfig[window.parent.glitter.pageConfig.length - 1].gvc;
2918
+ topGVC.glitter.innerDialog((gvc) => {
2919
+ return html `
2920
+ <div class="d-flex flex-column" style="width: 100vw;height:100vh;position: absolute;left: 0;top:0;background-color: gray;">
2921
+ <div class="d-flex align-items-center" style="height: 60px;width: 100%;">
2922
+ <div class="d-flex" style="padding:19px 32px;gap:8px;" onclick="${topGVC.event(() => {
2923
+ topGVC.glitter.closeDiaLog();
2924
+ })}">
2925
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
2926
+ <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"/>
2927
+ </svg>
2928
+ 返回
2929
+ </div>
2930
+ </div>
2931
+ </div>
2932
+ `;
2933
+ }, "batchEdit");
2934
+ })}">
2935
+ 批量編輯
2936
+ </div>
2937
+ </div>
2915
2938
  <div
2916
2939
  style="position: relative"
2917
2940
  onclick="${gvc.event(() => {
@@ -3459,7 +3459,7 @@ export class ShoppingProductSetting {
3459
3459
 
3460
3460
  return html`
3461
3461
  <div
3462
- style="display: flex;height: 40px;padding: 8px 17px 8px 18px;align-items: center;justify-content: space-between;gap: 4px;align-self: stretch;border-radius: 10px;background: #F7F7F7;"
3462
+ style="display: flex;padding: 8px 17px 8px 18px;align-items: center;gap: 4px;align-self: stretch;border-radius: 10px;background: #F7F7F7;"
3463
3463
  >
3464
3464
  <div style="display: flex; gap: 12px;align-items: center;">
3465
3465
  <i
@@ -3474,6 +3474,29 @@ export class ShoppingProductSetting {
3474
3474
  ></i>
3475
3475
  已選取 ${selected.length} 項
3476
3476
  </div>
3477
+ <div class="ms-auto" style="margin-right: 18px;">
3478
+ <div style="border-radius: 7px;border: 1px solid #DDD;background: #FFF;box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.10);padding: 3px 13px;cursor: pointer;" onclick="${gvc.event(()=>{
3479
+ let topGVC = (window.parent as any).glitter.pageConfig[(window.parent as any).glitter.pageConfig.length-1].gvc
3480
+ topGVC.glitter.innerDialog((gvc:GVC)=>{
3481
+ return html`
3482
+ <div class="d-flex flex-column" style="width: 100vw;height:100vh;position: absolute;left: 0;top:0;background-color: gray;">
3483
+ <div class="d-flex align-items-center" style="height: 60px;width: 100%;">
3484
+ <div class="d-flex" style="padding:19px 32px;gap:8px;" onclick="${topGVC.event(()=>{
3485
+ topGVC.glitter.closeDiaLog();
3486
+ })}">
3487
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
3488
+ <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"/>
3489
+ </svg>
3490
+ 返回
3491
+ </div>
3492
+ </div>
3493
+ </div>
3494
+ `
3495
+ },"batchEdit");
3496
+ })}">
3497
+ 批量編輯
3498
+ </div>
3499
+ </div>
3477
3500
  <div
3478
3501
  style="position: relative"
3479
3502
  onclick="${gvc.event(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-glitter",
3
- "version": "15.0.1",
3
+ "version": "15.0.2",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {