@ibiz-template/vue3-components 0.7.24-alpha.1 → 0.7.24

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 (90) hide show
  1. package/dist/{index-d_MgYoar.js → index--XeT2CTZ.js} +1 -1
  2. package/dist/index-XTX4vyZZ.js +4 -0
  3. package/dist/{index-3r8aPzsK.js → index-_h-elF6t.js} +1 -1
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{xlsx-util-B5sYgU54.js → xlsx-util-aO-rYvlt.js} +1 -1
  7. package/es/common/grid-setting/grid-setting.d.ts +1 -0
  8. package/es/control/data-view/data-view.css +1 -1
  9. package/es/control/data-view/data-view.d.ts +1 -0
  10. package/es/control/data-view/data-view.mjs +35 -5
  11. package/es/control/data-view/index.d.ts +1 -0
  12. package/es/control/drtab/drtab-control.util.d.ts +17 -0
  13. package/es/control/drtab/drtab-control.util.mjs +115 -0
  14. package/es/control/drtab/drtab.controller.d.ts +7 -0
  15. package/es/control/drtab/drtab.controller.mjs +13 -0
  16. package/es/control/drtab/drtab.css +1 -1
  17. package/es/control/drtab/drtab.d.ts +4 -0
  18. package/es/control/drtab/drtab.mjs +94 -33
  19. package/es/control/drtab/index.d.ts +4 -0
  20. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +1 -0
  21. package/es/control/grid/grid/grid-control.util.mjs +3 -1
  22. package/es/control/grid/grid/grid.css +1 -1
  23. package/es/control/grid/grid/grid.d.ts +3 -0
  24. package/es/control/grid/grid/grid.mjs +43 -4
  25. package/es/control/grid/grid/index.d.ts +3 -0
  26. package/es/control/list/index.d.ts +1 -0
  27. package/es/control/list/list.css +1 -1
  28. package/es/control/list/list.d.ts +1 -0
  29. package/es/control/list/list.mjs +35 -7
  30. package/es/control/tree/el-tree-util.d.ts +0 -16
  31. package/es/control/tree/index.d.ts +0 -16
  32. package/es/control/tree/tree.d.ts +0 -16
  33. package/es/editor/check-box/check-box-editor.provider.mjs +1 -1
  34. package/es/editor/check-box/ibiz-checkbox/ibiz-checkbox.mjs +7 -2
  35. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.mjs +7 -2
  36. package/es/editor/data-picker/ibiz-picker-link/ibiz-picker-link.mjs +7 -2
  37. package/es/editor/list-box/ibiz-list-box/ibiz-list-box.mjs +7 -2
  38. package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.mjs +12 -10
  39. package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.mjs +7 -2
  40. package/es/editor/rate/ibiz-rate/ibiz-rate.mjs +7 -2
  41. package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +7 -2
  42. package/es/editor/span/span/span.d.ts +6 -0
  43. package/es/editor/span/span/span.mjs +11 -6
  44. package/es/editor/switch/ibiz-switch/ibiz-switch.mjs +7 -2
  45. package/es/editor/text-box/input/input.d.ts +35 -0
  46. package/es/editor/text-box/input/input.mjs +30 -3
  47. package/es/editor/text-box/text-box-editor.controller.d.ts +10 -3
  48. package/es/editor/text-box/text-box-editor.controller.mjs +13 -2
  49. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +7 -2
  50. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +7 -2
  51. package/es/locale/en/index.d.ts +3 -1
  52. package/es/locale/en/index.mjs +2 -1
  53. package/es/locale/zh-CN/index.d.ts +3 -1
  54. package/es/locale/zh-CN/index.mjs +2 -1
  55. package/es/node_modules/.pnpm/@ibiz-template_core@0.7.18_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs +218 -0
  56. package/es/node_modules/.pnpm/{element-plus@2.7.5_vue@3.3.8 → element-plus@2.4.4_vue@3.3.8}/node_modules/element-plus/dist/locale/zh-cn.mjs +1 -14
  57. package/es/web-app/create-vue-app.mjs +1 -1
  58. package/lib/control/data-view/data-view.cjs +34 -4
  59. package/lib/control/data-view/data-view.css +1 -1
  60. package/lib/control/drtab/drtab-control.util.cjs +117 -0
  61. package/lib/control/drtab/drtab.cjs +93 -32
  62. package/lib/control/drtab/drtab.controller.cjs +13 -0
  63. package/lib/control/drtab/drtab.css +1 -1
  64. package/lib/control/grid/grid/grid-control.util.cjs +3 -1
  65. package/lib/control/grid/grid/grid.cjs +42 -3
  66. package/lib/control/grid/grid/grid.css +1 -1
  67. package/lib/control/list/list.cjs +34 -6
  68. package/lib/control/list/list.css +1 -1
  69. package/lib/editor/check-box/check-box-editor.provider.cjs +1 -1
  70. package/lib/editor/check-box/ibiz-checkbox/ibiz-checkbox.cjs +6 -1
  71. package/lib/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.cjs +6 -1
  72. package/lib/editor/data-picker/ibiz-picker-link/ibiz-picker-link.cjs +6 -1
  73. package/lib/editor/list-box/ibiz-list-box/ibiz-list-box.cjs +6 -1
  74. package/lib/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.cjs +11 -9
  75. package/lib/editor/radio-button-list/ibiz-radio/ibiz-radio.cjs +6 -1
  76. package/lib/editor/rate/ibiz-rate/ibiz-rate.cjs +6 -1
  77. package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +6 -1
  78. package/lib/editor/span/span/span.cjs +11 -6
  79. package/lib/editor/switch/ibiz-switch/ibiz-switch.cjs +6 -1
  80. package/lib/editor/text-box/input/input.cjs +28 -1
  81. package/lib/editor/text-box/text-box-editor.controller.cjs +12 -1
  82. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +6 -1
  83. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +6 -1
  84. package/lib/locale/en/index.cjs +2 -1
  85. package/lib/locale/zh-CN/index.cjs +2 -1
  86. package/lib/node_modules/.pnpm/@ibiz-template_core@0.7.18_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs +221 -0
  87. package/lib/node_modules/.pnpm/{element-plus@2.7.5_vue@3.3.8 → element-plus@2.4.4_vue@3.3.8}/node_modules/element-plus/dist/locale/zh-cn.cjs +1 -14
  88. package/lib/web-app/create-vue-app.cjs +1 -1
  89. package/package.json +8 -8
  90. package/dist/index-O0hiquCe.js +0 -4
@@ -1 +1 @@
1
- .ibiz-control-drtab__counter{margin-left:var(--ibiz-spacing-tight)}.ibiz-control-drtab .el-tabs .el-tabs__header{margin:var(--ibiz-spacing-none)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap{margin:var(--ibiz-spacing-none)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap .el-tabs__nav .el-tabs__active-bar{background-color:var(--ibiz-color-primary)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap .el-tabs__nav .el-tabs__item{font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-text-2)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap .el-tabs__nav .el-tabs__item:hover{color:var(--ibiz-color-text-0)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap .el-tabs__nav .el-tabs__item.is-active{color:var(--ibiz-color-primary)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap .el-tabs__nav .el-tabs__item.is-top:last-child{padding-right:var(--ibiz-spacing-none)}.ibiz-control-drtab .el-tabs.el-tabs--bottom .el-tabs__nav-scroll,.ibiz-control-drtab .el-tabs.el-tabs--top .el-tabs__nav-scroll{padding:0 var(--ibiz-spacing-base)}.ibiz-control-drtab .el-tabs__item{padding:0 var(--ibiz-spacing-base)}
1
+ .ibiz-control-drtab__counter{margin-left:var(--ibiz-spacing-tight)}.ibiz-control-drtab .el-tabs .el-tabs__header{margin:var(--ibiz-spacing-none)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap{margin:var(--ibiz-spacing-none)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap .el-tabs__nav .el-tabs__active-bar{background-color:var(--ibiz-color-primary)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap .el-tabs__nav .el-tabs__item{font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-text-2)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap .el-tabs__nav .el-tabs__item:hover{color:var(--ibiz-color-text-0)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap .el-tabs__nav .el-tabs__item.is-active{color:var(--ibiz-color-primary)}.ibiz-control-drtab .el-tabs .el-tabs__header .el-tabs__nav-wrap .el-tabs__nav .el-tabs__item.is-top:last-child{padding-right:var(--ibiz-spacing-none)}.ibiz-control-drtab .el-tabs.el-tabs--bottom .el-tabs__nav-scroll,.ibiz-control-drtab .el-tabs.el-tabs--top .el-tabs__nav-scroll{padding:0 var(--ibiz-spacing-base)}.ibiz-control-drtab .el-tabs__item{padding:0 var(--ibiz-spacing-base)}.ibiz-control-drtab .el-tabs__nav-next,.ibiz-control-drtab .el-tabs__nav-prev{line-height:var(--el-tabs-header-height)}.ibiz-control-drtab-pane-label__text+.ibiz-control-drtab-pane-label__counter{margin-left:var(--ibiz-spacing-tight)}.ibiz-control-drtab-more .el-tabs.el-tabs.el-tabs--top .el-tabs__header .el-tabs__nav-next,.ibiz-control-drtab-more .el-tabs.el-tabs.el-tabs--top .el-tabs__header .el-tabs__nav-prev{display:none}.ibiz-control-drtab-more .el-tabs.el-tabs.el-tabs--top .el-tabs__nav-wrap.is-scrollable{padding:var(--ibiz-spacing-none)}.ibiz-control-drtab-more-dropdown{height:100%}.ibiz-control-drtab-more-dropdown__link{position:relative;display:flex;align-items:center;font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-text-2)}.ibiz-control-drtab-more-dropdown__link svg{color:var(--ibiz-color-text-2);fill:var(--ibiz-color-text-2)}.ibiz-control-drtab-more-dropdown__link:hover{color:var(--ibiz-color-text-0)}.ibiz-control-drtab-more-dropdown__link:hover svg{color:var(--ibiz-color-text-0);fill:var(--ibiz-color-text-0)}.ibiz-control-drtab-more-dropdown__link::after{position:absolute;left:-16px;display:inline-block;width:100%;height:100%;content:""}.ibiz-control-drtab-more-dropdown-popper{width:240px}.ibiz-control-drtab-more-dropdown-popper__active{background-color:var(--ibiz-color-primary-active)}.ibiz-control-drtab-more-dropdown-popper__label{display:flex;align-items:center;width:100%;overflow:hidden}.ibiz-control-drtab-more-dropdown-popper__label--text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-control-drtab-more-dropdown-popper__label--counter{min-width:20px;margin-left:var(--ibiz-spacing-tight)}.ibiz-control-drtab-more-dropdown-popper.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list .ibiz-control-drtab-more-dropdown-popper__active.el-dropdown-menu__item{background-color:var(--ibiz-color-primary-active)}
@@ -75,7 +75,9 @@ function useITableEvent(c) {
75
75
  return;
76
76
  }
77
77
  c.setSort(fieldName, order1);
78
- c.load();
78
+ c.load({
79
+ isInitialLoad: c.model.pagingMode === 2 || c.model.pagingMode === 3
80
+ });
79
81
  }
80
82
  function handleRowClassName({ row }) {
81
83
  let activeClassName = "";
@@ -4,6 +4,7 @@ var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  var runtime = require('@ibiz-template/runtime');
6
6
  var core = require('@ibiz-template/core');
7
+ var qxUtil = require('qx-util');
7
8
  var gridControl_util = require('./grid-control.util.cjs');
8
9
  require('./grid.css');
9
10
  var useRowEditPopover = require('../row-edit-popover/use-row-edit-popover.cjs');
@@ -11,6 +12,9 @@ require('../../../util/index.cjs');
11
12
  var usePagination = require('../../../util/pagination/use-pagination.cjs');
12
13
 
13
14
  "use strict";
15
+ function _isSlot(s) {
16
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
17
+ }
14
18
  function renderAttrs(model, params) {
15
19
  var _a;
16
20
  const attrs = {};
@@ -271,6 +275,25 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
271
275
  cleanup();
272
276
  }
273
277
  });
278
+ const isLodeMoreDisabled = vue.computed(() => {
279
+ if (c.model.pagingMode !== 2) {
280
+ return true;
281
+ }
282
+ return c.state.items.length >= c.state.total || c.state.isLoading || c.state.total <= c.state.size;
283
+ });
284
+ const infiniteScroll = vue.ref();
285
+ const infiniteScrollKey = vue.ref(qxUtil.createUUID());
286
+ vue.watch(() => c.state.curPage, () => {
287
+ var _a, _b;
288
+ if (c.state.curPage === 1 && (c.model.pagingMode === 2 || c.model.pagingMode === 3)) {
289
+ infiniteScrollKey.value = qxUtil.createUUID();
290
+ const containerEl = (_b = (_a = infiniteScroll.value) == null ? void 0 : _a.ElInfiniteScroll) == null ? void 0 : _b.containerEl;
291
+ if (containerEl) {
292
+ containerEl.lastScrollTop = 0;
293
+ containerEl.scrollTop = 0;
294
+ }
295
+ }
296
+ });
274
297
  return {
275
298
  c,
276
299
  ns,
@@ -293,7 +316,10 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
293
316
  defaultSort,
294
317
  renderBatchToolBar,
295
318
  headerCssVars,
296
- renderDragIconColumn
319
+ renderDragIconColumn,
320
+ isLodeMoreDisabled,
321
+ infiniteScroll,
322
+ infiniteScrollKey
297
323
  };
298
324
  },
299
325
  render() {
@@ -336,9 +362,22 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
336
362
  })];
337
363
  },
338
364
  append: () => {
339
- return this.renderPopover();
365
+ let _slot;
366
+ return [vue.withDirectives(vue.createVNode("div", {
367
+ "ref": "infiniteScroll",
368
+ "key": this.infiniteScrollKey,
369
+ "infinite-scroll-distance": 10,
370
+ "infinite-scroll-disabled": this.isLodeMoreDisabled
371
+ }, null), [[vue.resolveDirective("infinite-scroll"), () => this.c.loadMore()]]), this.c.model.pagingMode === 3 && !(this.c.state.items.length >= this.c.state.total || this.c.state.isLoading || this.c.state.total <= this.c.state.size) && vue.createVNode("div", {
372
+ "class": this.ns.e("load-more-button")
373
+ }, [vue.createVNode(vue.resolveComponent("el-button"), {
374
+ "text": true,
375
+ "onClick": () => this.c.loadMore()
376
+ }, _isSlot(_slot = ibiz.i18n.t("control.common.loadMore")) ? _slot : {
377
+ default: () => [_slot]
378
+ })]), this.renderPopover()];
340
379
  }
341
- }), this.c.state.enablePagingBar && vue.createVNode(vue.resolveComponent("iBizPagination"), {
380
+ }), this.c.state.enablePagingBar && this.c.model.pagingMode === 1 && vue.createVNode(vue.resolveComponent("iBizPagination"), {
342
381
  "total": state.total,
343
382
  "curPage": state.curPage,
344
383
  "size": state.size,
@@ -1 +1 @@
1
- .ibiz-control-grid{--ibiz-control-grid-text-color:var(--ibiz-color-text-0);--ibiz-control-grid-bg-color:transparent;--ibiz-control-grid-padding:var(--ibiz-spacing-none);--ibiz-control-grid-cell-padding:calc(var(--ibiz-spacing-base-tight) / 2) var(--ibiz-spacing-base-tight);--ibiz-control-grid-selection-padding:var(--ibiz-spacing-base-loose);--ibiz-control-grid-row-edit-bg-color:var(--ibiz-color-fill-2);--ibiz-control-grid-row-bg-color:var(--ibiz-color-bg-1);--ibiz-control-grid-row-bg-color-2:var(--ibiz-color-bg-0);--ibiz-control-grid-row-hover-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-row-select-color:var(--ibiz-color-primary-light-default);--ibiz-control-grid-row-expand-icon-margin:var(--ibiz-spacing-none) var(--ibiz-spacing-none) var(--ibiz-spacing-none) var(--ibiz-spacing-tight);--ibiz-control-grid-now-header-height:auto;--ibiz-control-grid-header-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-header-cell-padding:var(--ibiz-control-grid-cell-padding);--ibiz-control-grid-header-height:auto;--ibiz-control-grid-header-bg-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-header-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-header-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-grid-content-text-color:var(--ibiz-control-grid-text-color);--ibiz-control-grid-content-row-height:48px;--ibiz-control-grid-page-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-page-height:50px;--ibiz-control-grid-page-padding:var(--ibiz-spacing-none) var(--ibiz-spacing-base-tight);--ibiz-control-grid-footer-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-footer-bg-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-footer-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-footer-font-weight:var(--ibiz-font-weight-bold);position:relative;width:100%;height:100%;padding:var(--ibiz-control-grid-padding);background-color:var(--ibiz-control-grid-bg-color)}.ibiz-control-grid .el-table{--el-table-header-bg-color:var(--ibiz-control-grid-header-bg-color);--el-table-current-row-bg-color:var(--ibiz-control-grid-row-select-color);--el-table-border-color:transparent}.ibiz-control-grid.is-empty .el-scrollbar .el-scrollbar__view{height:100%}.ibiz-control-grid.is-empty .el-table__empty-text{display:inline-block;height:100%}.ibiz-control-grid .el-table--border .el-table__cell{border-right:none}.ibiz-control-grid .el-table-fixed-column--left,.ibiz-control-grid .el-table-fixed-column--right{--el-bg-color:transparent}.ibiz-control-grid .el-table thead.is-group th.el-table__cell{background:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid.is-enable-page .ibiz-control-grid__table{height:calc(100% - var(--ibiz-control-grid-page-height))}.ibiz-control-grid.is-enable-group .el-table__indent{display:none}.ibiz-control-grid__table{width:100%;height:100%}.ibiz-control-grid__table .caret-wrapper{justify-content:center}.ibiz-control-grid__table .caret-wrapper>*+*{margin-top:var(--ibiz-spacing-super-tight)}.ibiz-control-grid__table .sort-caret{--el-text-color-placeholder:--ibiz-control-grid-header-text-color;position:initial;opacity:.6}.ibiz-control-grid__table.el-table .el-table__cell{padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr td{background:var(--ibiz-control-grid-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:nth-child(2n) td{background-color:var(--ibiz-control-grid-row-bg-color-2)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:hover td{background-color:var(--ibiz-control-grid-row-hover-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.current-row td{background-color:var(--el-table-current-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.editing-row td{background-color:var(--ibiz-control-grid-row-edit-bg-color)}.ibiz-control-grid__table .el-table__header-wrapper .cell{height:var(--ibiz-control-grid-header-height);padding:var(--ibiz-control-grid-header-cell-padding);font-size:var(--ibiz-control-grid-header-font-size);font-weight:var(--ibiz-control-grid-header-font-weight);color:var(--ibiz-control-grid-header-text-color);word-break:break-word;white-space:pre-wrap}.ibiz-control-grid__table .el-table__header-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__header-wrapper .is-sortable.el-table__cell .cell{display:flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content)}.ibiz-control-grid__table .el-table__body-wrapper{color:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-0:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-1:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-2:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-3:var(--ibiz-control-grid-content-text-color);border-bottom:.1px solid var(--ibiz-color-border)}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row{height:var(--ibiz-control-grid-content-row-height);cursor:pointer}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:0;padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row .el-table__expand-icon{margin:var(--ibiz-control-grid-row-expand-icon-margin)}@-moz-document url-prefix(){.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:100%}}.ibiz-control-grid__table .el-table__body-wrapper .cell{display:flex;align-items:center;height:100%;padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table .el-table__body-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__cell.is-center{--ibiz-grid-column-text-align:center;--ibiz-grid-column-justify-content:center}.ibiz-control-grid__table .el-table__cell.is-left{--ibiz-grid-column-text-align:left;--ibiz-grid-column-justify-content:flex-start}.ibiz-control-grid__table .el-table__cell.is-right{--ibiz-grid-column-text-align:right;--ibiz-grid-column-justify-content:flex-end}.ibiz-control-grid__table .el-scrollbar__wrap{position:relative}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell{font-size:var(--ibiz-control-grid-footer-font-size);font-weight:var(--ibiz-control-grid-footer-font-weight);color:var(--ibiz-control-grid-footer-text-color);background-color:var(--ibiz-control-grid-footer-bg-color)}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell:first-child>div{display:inline;vertical-align:4px}.ibiz-control-grid__table .enable-order{position:relative;padding-left:var(--ibiz-spacing-base-tight);transition:transform .25s cubic-bezier(0,0,.2,1)}.ibiz-control-grid__table .enable-order .ibiz-control-grid__drag-icon{padding:var(--ibiz-spacing-none)!important}.ibiz-control-grid__table .enable-order .ibiz-control-grid__drag-icon .cell{display:none}.ibiz-control-grid__table .enable-order:hover .ibiz-control-grid__drag-icon .cell{display:flex}.ibiz-control-grid .el-table td.el-table__cell,.ibiz-control-grid .el-table th.el-table__cell.is-leaf{border-bottom:none}.ibiz-control-grid .ibiz-pagination{--ibiz-pagination-height:var(--ibiz-control-grid-page-height);--ibiz-pagination-text-color:var(--ibiz-control-grid-text-color);--ibiz-pagination-padding:var(--ibiz-control-grid-page-padding)}.ibiz-control-grid.is-single-select .el-table__header-wrapper .el-table__header thead>tr th:nth-child(1){padding-left:var(--ibiz-spacing-tight)}.ibiz-control-grid.is-single-select .el-table__body-wrapper .el-table__body tbody>tr td:nth-child(1){padding-left:var(--ibiz-spacing-tight)}.ibiz-control-grid.is-enable-customized .el-table__header-wrapper .el-table__header thead>tr th:last-child{padding-right:var(--ibiz-spacing-base-loose)}.ibiz-control-grid.is-enable-customized .ibiz-control-grid-setting-box{display:flex;align-items:center;justify-content:flex-start;position:absolute;top:0;right:0;z-index:1;height:var(--ibiz-control-grid-now-header-height);padding-right:var(--ibiz-spacing-extra-tight);background-color:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid.is-enable-customized .ibiz-grid-setting{cursor:pointer}.ibiz-control-grid-quick-toolbar{justify-content:center}.ibiz-control-grid-batch-toolbar{position:absolute;top:0;left:54px;z-index:99;display:none;width:calc(100% - 54px);height:var(--ibiz-control-grid-now-header-height);font-size:var(--ibiz-font-size-regular);font-weight:var(--ibiz-font-weight-regular);background-color:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid-batch-toolbar.is-show{display:flex;align-items:center;justify-content:flex-start}.ibiz-control-grid-batch-toolbar .ibiz-control-grid-batch-toolbar-separator{padding:0 var(--ibiz-spacing-base-tight)}.ibiz-control-grid-batch-toolbar .ibiz-control-grid-batch-toolbar-content{height:100%;display:flex;align-items:center;justify-content:flex-start}
1
+ .ibiz-control-grid{--ibiz-control-grid-text-color:var(--ibiz-color-text-0);--ibiz-control-grid-bg-color:transparent;--ibiz-control-grid-padding:var(--ibiz-spacing-none);--ibiz-control-grid-cell-padding:calc(var(--ibiz-spacing-base-tight) / 2) var(--ibiz-spacing-base-tight);--ibiz-control-grid-selection-padding:var(--ibiz-spacing-base-loose);--ibiz-control-grid-row-edit-bg-color:var(--ibiz-color-fill-2);--ibiz-control-grid-row-bg-color:var(--ibiz-color-bg-1);--ibiz-control-grid-row-bg-color-2:var(--ibiz-color-bg-0);--ibiz-control-grid-row-hover-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-row-select-color:var(--ibiz-color-primary-light-default);--ibiz-control-grid-row-expand-icon-margin:var(--ibiz-spacing-none) var(--ibiz-spacing-none) var(--ibiz-spacing-none) var(--ibiz-spacing-tight);--ibiz-control-grid-now-header-height:auto;--ibiz-control-grid-header-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-header-cell-padding:var(--ibiz-control-grid-cell-padding);--ibiz-control-grid-header-height:auto;--ibiz-control-grid-header-bg-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-header-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-header-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-grid-content-text-color:var(--ibiz-control-grid-text-color);--ibiz-control-grid-content-row-height:48px;--ibiz-control-grid-page-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-page-height:50px;--ibiz-control-grid-page-padding:var(--ibiz-spacing-none) var(--ibiz-spacing-base-tight);--ibiz-control-grid-footer-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-footer-bg-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-footer-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-footer-font-weight:var(--ibiz-font-weight-bold);position:relative;width:100%;height:100%;padding:var(--ibiz-control-grid-padding);background-color:var(--ibiz-control-grid-bg-color)}.ibiz-control-grid .el-table{--el-table-header-bg-color:var(--ibiz-control-grid-header-bg-color);--el-table-current-row-bg-color:var(--ibiz-control-grid-row-select-color);--el-table-border-color:transparent}.ibiz-control-grid.is-empty .el-scrollbar .el-scrollbar__view{height:100%}.ibiz-control-grid.is-empty .el-table__empty-text{display:inline-block;height:100%}.ibiz-control-grid .el-table--border .el-table__cell{border-right:none}.ibiz-control-grid .el-table-fixed-column--left,.ibiz-control-grid .el-table-fixed-column--right{--el-bg-color:transparent}.ibiz-control-grid .el-table thead.is-group th.el-table__cell{background:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid.is-enable-page .ibiz-control-grid__table{height:calc(100% - var(--ibiz-control-grid-page-height))}.ibiz-control-grid.is-enable-group .el-table__indent{display:none}.ibiz-control-grid__table{width:100%;height:100%}.ibiz-control-grid__table .caret-wrapper{justify-content:center}.ibiz-control-grid__table .caret-wrapper>*+*{margin-top:var(--ibiz-spacing-super-tight)}.ibiz-control-grid__table .sort-caret{--el-text-color-placeholder:--ibiz-control-grid-header-text-color;position:initial;opacity:.6}.ibiz-control-grid__table.el-table .el-table__cell{padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr td{background:var(--ibiz-control-grid-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:nth-child(2n) td{background-color:var(--ibiz-control-grid-row-bg-color-2)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:hover td{background-color:var(--ibiz-control-grid-row-hover-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.current-row td{background-color:var(--el-table-current-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.editing-row td{background-color:var(--ibiz-control-grid-row-edit-bg-color)}.ibiz-control-grid__table .el-table__header-wrapper .cell{height:var(--ibiz-control-grid-header-height);padding:var(--ibiz-control-grid-header-cell-padding);font-size:var(--ibiz-control-grid-header-font-size);font-weight:var(--ibiz-control-grid-header-font-weight);color:var(--ibiz-control-grid-header-text-color);word-break:break-word;white-space:pre-wrap}.ibiz-control-grid__table .el-table__header-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__header-wrapper .is-sortable.el-table__cell .cell{display:flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content)}.ibiz-control-grid__table .el-table__body-wrapper{color:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-0:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-1:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-2:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-3:var(--ibiz-control-grid-content-text-color);border-bottom:.1px solid var(--ibiz-color-border)}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row{height:var(--ibiz-control-grid-content-row-height);cursor:pointer}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:0;padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row .el-table__expand-icon{margin:var(--ibiz-control-grid-row-expand-icon-margin)}@-moz-document url-prefix(){.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:100%}}.ibiz-control-grid__table .el-table__body-wrapper .cell{display:flex;align-items:center;height:100%;padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table .el-table__body-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__cell.is-center{--ibiz-grid-column-text-align:center;--ibiz-grid-column-justify-content:center}.ibiz-control-grid__table .el-table__cell.is-left{--ibiz-grid-column-text-align:left;--ibiz-grid-column-justify-content:flex-start}.ibiz-control-grid__table .el-table__cell.is-right{--ibiz-grid-column-text-align:right;--ibiz-grid-column-justify-content:flex-end}.ibiz-control-grid__table .el-scrollbar__wrap{position:relative}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell{font-size:var(--ibiz-control-grid-footer-font-size);font-weight:var(--ibiz-control-grid-footer-font-weight);color:var(--ibiz-control-grid-footer-text-color);background-color:var(--ibiz-control-grid-footer-bg-color)}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell:first-child>div{display:inline;vertical-align:4px}.ibiz-control-grid__table .enable-order{position:relative;padding-left:var(--ibiz-spacing-base-tight);transition:transform .25s cubic-bezier(0,0,.2,1)}.ibiz-control-grid__table .enable-order .ibiz-control-grid__drag-icon{padding:var(--ibiz-spacing-none)!important}.ibiz-control-grid__table .enable-order .ibiz-control-grid__drag-icon .cell{display:none}.ibiz-control-grid__table .enable-order:hover .ibiz-control-grid__drag-icon .cell{display:flex}.ibiz-control-grid__load-more-button{padding:var(--ibiz-control-grid-header-cell-padding);text-align:center}.ibiz-control-grid .el-table td.el-table__cell,.ibiz-control-grid .el-table th.el-table__cell.is-leaf{border-bottom:none}.ibiz-control-grid .ibiz-pagination{--ibiz-pagination-height:var(--ibiz-control-grid-page-height);--ibiz-pagination-text-color:var(--ibiz-control-grid-text-color);--ibiz-pagination-padding:var(--ibiz-control-grid-page-padding)}.ibiz-control-grid.is-single-select .el-table__header-wrapper .el-table__header thead>tr th:nth-child(1){padding-left:var(--ibiz-spacing-tight)}.ibiz-control-grid.is-single-select .el-table__body-wrapper .el-table__body tbody>tr td:nth-child(1){padding-left:var(--ibiz-spacing-tight)}.ibiz-control-grid.is-enable-customized .el-table__header-wrapper .el-table__header thead>tr th:last-child{padding-right:var(--ibiz-spacing-base-loose)}.ibiz-control-grid.is-enable-customized .ibiz-control-grid-setting-box{display:flex;align-items:center;justify-content:flex-start;position:absolute;top:0;right:0;z-index:1;height:var(--ibiz-control-grid-now-header-height);padding-right:var(--ibiz-spacing-extra-tight);background-color:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid.is-enable-customized .ibiz-grid-setting{cursor:pointer}.ibiz-control-grid-quick-toolbar{justify-content:center}.ibiz-control-grid-batch-toolbar{position:absolute;top:0;left:54px;z-index:99;display:none;width:calc(100% - 54px);height:var(--ibiz-control-grid-now-header-height);font-size:var(--ibiz-font-size-regular);font-weight:var(--ibiz-font-weight-regular);background-color:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid-batch-toolbar.is-show{display:flex;align-items:center;justify-content:flex-start}.ibiz-control-grid-batch-toolbar .ibiz-control-grid-batch-toolbar-separator{padding:0 var(--ibiz-spacing-base-tight)}.ibiz-control-grid-batch-toolbar .ibiz-control-grid-batch-toolbar-content{height:100%;display:flex;align-items:center;justify-content:flex-start}
@@ -3,6 +3,7 @@
3
3
  var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  var lodashEs = require('lodash-es');
6
+ var qxUtil = require('qx-util');
6
7
  var runtime = require('@ibiz-template/runtime');
7
8
  require('./list.css');
8
9
  require('../../util/index.cjs');
@@ -74,8 +75,24 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
74
75
  if (c.model.enablePagingBar === true) {
75
76
  return true;
76
77
  }
78
+ if (c.model.pagingMode !== 2) {
79
+ return true;
80
+ }
77
81
  return c.state.items.length >= c.state.total || c.state.isLoading || c.state.total <= c.state.size;
78
82
  });
83
+ const infiniteScroll = vue.ref();
84
+ const infiniteScrollKey = vue.ref(qxUtil.createUUID());
85
+ vue.watch(() => c.state.curPage, () => {
86
+ var _a, _b;
87
+ if (c.state.curPage === 1 && (c.model.pagingMode === 2 || c.model.pagingMode === 3)) {
88
+ infiniteScrollKey.value = qxUtil.createUUID();
89
+ const containerEl = (_b = (_a = infiniteScroll.value) == null ? void 0 : _a.ElInfiniteScroll) == null ? void 0 : _b.containerEl;
90
+ if (containerEl) {
91
+ containerEl.lastScrollTop = 0;
92
+ containerEl.scrollTop = 0;
93
+ }
94
+ }
95
+ });
79
96
  const renderPanelItem = (item, modelData) => {
80
97
  const {
81
98
  context,
@@ -121,6 +138,7 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
121
138
  });
122
139
  };
123
140
  const renderListContent = () => {
141
+ let _slot;
124
142
  if (c.model.enableGroup && !c.state.isSimple) {
125
143
  return vue.createVNode(vue.resolveComponent("el-collapse"), {
126
144
  "class": [ns.b("group-content"), ns.b("content")]
@@ -139,12 +157,21 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
139
157
  return vue.withDirectives(vue.createVNode("div", {
140
158
  "class": [ns.b("scroll"), ns.b("content")],
141
159
  "infinite-scroll-distance": 10,
142
- "infinite-scroll-disabled": isLodeMoreDisabled.value
160
+ "infinite-scroll-disabled": isLodeMoreDisabled.value,
161
+ "ref": "infiniteScroll",
162
+ "key": infiniteScrollKey.value
143
163
  }, [c.state.items.map((item) => {
144
164
  return vue.createVNode("div", {
145
165
  "class": [ns.b("scroll-item")]
146
166
  }, [panel ? renderPanelItem(item, panel) : renderDefaultItem(item)]);
147
- })]), [[vue.resolveDirective("infinite-scroll"), () => c.loadMore()]]);
167
+ }), c.model.pagingMode === 3 && !(c.state.items.length >= c.state.total || c.state.isLoading || c.state.total <= c.state.size) && vue.createVNode("div", {
168
+ "class": ns.e("load-more-button")
169
+ }, [vue.createVNode(vue.resolveComponent("el-button"), {
170
+ "text": true,
171
+ "onClick": () => c.loadMore()
172
+ }, _isSlot(_slot = ibiz.i18n.t("control.common.loadMore")) ? _slot : {
173
+ default: () => [_slot]
174
+ })])]), [[vue.resolveDirective("infinite-scroll"), () => c.loadMore()]]);
148
175
  };
149
176
  const renderQuickToolBar = () => {
150
177
  var _a;
@@ -177,7 +204,7 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
177
204
  }, null)]);
178
205
  };
179
206
  const renderNoData = () => {
180
- let _slot;
207
+ let _slot2;
181
208
  const {
182
209
  isLoaded
183
210
  } = c.state;
@@ -189,13 +216,14 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
189
216
  "text": c.model.emptyText,
190
217
  "emptyTextLanguageRes": c.model.emptyTextLanguageRes,
191
218
  "enableShowImage": c.state.hideNoDataImage
192
- }, _isSlot(_slot = renderQuickToolBar()) ? _slot : {
193
- default: () => [_slot]
219
+ }, _isSlot(_slot2 = renderQuickToolBar()) ? _slot2 : {
220
+ default: () => [_slot2]
194
221
  });
195
222
  };
196
223
  return {
197
224
  c,
198
225
  ns,
226
+ infiniteScroll,
199
227
  renderListContent,
200
228
  renderNoData,
201
229
  renderBatchToolBar,
@@ -207,7 +235,7 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
207
235
  render() {
208
236
  let content = null;
209
237
  if (this.c.state.isCreated) {
210
- content = [this.c.state.items.length > 0 ? this.renderListContent() : this.renderNoData(), this.renderBatchToolBar(), this.c.state.enablePagingBar ? vue.createVNode(vue.resolveComponent("iBizPagination"), {
238
+ content = [this.c.state.items.length > 0 ? this.renderListContent() : this.renderNoData(), this.renderBatchToolBar(), this.c.state.enablePagingBar && this.c.model.pagingMode === 1 ? vue.createVNode(vue.resolveComponent("iBizPagination"), {
211
239
  "class": this.ns.e("pagination"),
212
240
  "total": this.c.state.total,
213
241
  "curPage": this.c.state.curPage,
@@ -1 +1 @@
1
- .ibiz-control-list-item{--ibiz-control-list-text-color:var(--ibiz-color-text-0);--ibiz-control-list-load-more-color:var(--ibiz-color-text-2);--ibiz-control-list-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-list-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-list-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-list-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight);min-height:var(--ibiz-control-list-item-height);padding:var(--ibiz-control-list-padding);font-weight:var(--ibiz-control-list-font-weight);color:var(--ibiz-control-list-text-color);cursor:pointer}.ibiz-control-list-item:hover{background-color:var(--ibiz-control-list-hover-bg-color)}.ibiz-control-list-item.is-active{background-color:var(--ibiz-control-list-active-bg-color)}.ibiz-control-list{--ibiz-control-list-text-color:var(--ibiz-color-text-0);--ibiz-control-list-load-more-color:var(--ibiz-color-text-2);--ibiz-control-list-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-list-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-list-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-list-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight);display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;height:100%}.ibiz-control-list__load-more{color:var(--ibiz-control-list-load-more-color);text-align:center;cursor:pointer}.ibiz-control-list .ibiz-control-list-content{flex-grow:1}.ibiz-control-list-scroll{height:100%;overflow:auto}
1
+ .ibiz-control-list-item{--ibiz-control-list-text-color:var(--ibiz-color-text-0);--ibiz-control-list-load-more-color:var(--ibiz-color-text-2);--ibiz-control-list-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-list-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-list-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-list-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight);min-height:var(--ibiz-control-list-item-height);padding:var(--ibiz-control-list-padding);font-weight:var(--ibiz-control-list-font-weight);color:var(--ibiz-control-list-text-color);cursor:pointer}.ibiz-control-list-item:hover{background-color:var(--ibiz-control-list-hover-bg-color)}.ibiz-control-list-item.is-active{background-color:var(--ibiz-control-list-active-bg-color)}.ibiz-control-list{--ibiz-control-list-text-color:var(--ibiz-color-text-0);--ibiz-control-list-load-more-color:var(--ibiz-color-text-2);--ibiz-control-list-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-list-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-list-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-list-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight);display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;height:100%}.ibiz-control-list__load-more{color:var(--ibiz-control-list-load-more-color);text-align:center;cursor:pointer}.ibiz-control-list__load-more-button{padding:var(--ibiz-control-list-padding);text-align:center}.ibiz-control-list .ibiz-control-list-content{flex-grow:1}.ibiz-control-list-scroll{height:100%;overflow:auto}
@@ -12,7 +12,7 @@ var __publicField = (obj, key, value) => {
12
12
  class CheckBoxEditorProvider {
13
13
  constructor() {
14
14
  __publicField(this, "formEditor", "IBizCheckbox");
15
- __publicField(this, "gridEditor", "IBizGridCheckbox");
15
+ __publicField(this, "gridEditor", "IBizCheckbox");
16
16
  }
17
17
  async createController(editorModel, parentController) {
18
18
  const c = new checkBoxEditor_controller.CheckBoxEditorController(editorModel, parentController);
@@ -30,6 +30,10 @@ const IBizCheckbox = /* @__PURE__ */ vue.defineComponent({
30
30
  }
31
31
  return false;
32
32
  });
33
+ const {
34
+ useInFocusAndBlur,
35
+ useInValueChange
36
+ } = vue3Util.useAutoFocusBlur(props, emit);
33
37
  const currentVal = vue.computed({
34
38
  get() {
35
39
  if (props.value == selectValue) {
@@ -45,11 +49,12 @@ const IBizCheckbox = /* @__PURE__ */ vue.defineComponent({
45
49
  value = nullValue;
46
50
  }
47
51
  emit("change", value);
52
+ useInValueChange();
48
53
  }
49
54
  });
50
55
  const {
51
56
  componentRef: editorRef
52
- } = vue3Util.useFocusAndBlur(() => emit("focus"), () => emit("blur"));
57
+ } = vue3Util.useFocusAndBlur(() => emit("focus"), () => useInFocusAndBlur());
53
58
  return {
54
59
  ns,
55
60
  editorModel,
@@ -50,6 +50,10 @@ const IBizCheckboxList = /* @__PURE__ */ vue.defineComponent({
50
50
  if (codeList && codeList.valueSeparator) {
51
51
  valueSeparator = codeList.valueSeparator;
52
52
  }
53
+ const {
54
+ useInFocusAndBlur,
55
+ useInValueChange
56
+ } = vue3Util.useAutoFocusBlur(props, emit);
53
57
  const selectArray = vue.computed({
54
58
  get() {
55
59
  if (!ramda.isNil(props.value)) {
@@ -112,6 +116,7 @@ const IBizCheckboxList = /* @__PURE__ */ vue.defineComponent({
112
116
  }
113
117
  }
114
118
  emit("change", value);
119
+ useInValueChange();
115
120
  }
116
121
  });
117
122
  const onSelectArrayChange = (value) => {
@@ -138,7 +143,7 @@ const IBizCheckboxList = /* @__PURE__ */ vue.defineComponent({
138
143
  });
139
144
  const {
140
145
  componentRef: editorRef
141
- } = vue3Util.useFocusAndBlur(() => emit("focus"), () => emit("blur"));
146
+ } = vue3Util.useFocusAndBlur(() => emit("focus"), () => useInFocusAndBlur());
142
147
  return {
143
148
  ns,
144
149
  items,
@@ -15,6 +15,10 @@ const IBizPickerLink = /* @__PURE__ */ vue.defineComponent({
15
15
  const ns = vue3Util.useNamespace("picker-link");
16
16
  const c = props.controller;
17
17
  const curValue = vue.ref("");
18
+ const {
19
+ useInFocusAndBlur,
20
+ useInValueChange
21
+ } = vue3Util.useAutoFocusBlur(props, emit);
18
22
  const showFormDefaultContent = vue.computed(() => {
19
23
  if (props.controlParams && props.controlParams.editmode === "hover" && !props.readonly) {
20
24
  return true;
@@ -47,6 +51,7 @@ const IBizPickerLink = /* @__PURE__ */ vue.defineComponent({
47
51
  } else {
48
52
  emit("change", data[c.textName]);
49
53
  }
54
+ useInValueChange();
50
55
  };
51
56
  const openLinkView = async () => {
52
57
  const res = await c.openLinkView(props.data);
@@ -56,7 +61,7 @@ const IBizPickerLink = /* @__PURE__ */ vue.defineComponent({
56
61
  };
57
62
  const {
58
63
  componentRef: editorRef
59
- } = vue3Util.useFocusAndBlur(() => emit("focus"), () => emit("blur"));
64
+ } = vue3Util.useFocusAndBlur(() => emit("focus"), () => useInFocusAndBlur());
60
65
  const valueText = vue.computed(() => {
61
66
  return vue3Util.renderString(curValue.value);
62
67
  });
@@ -25,6 +25,10 @@ const IBizListBox = /* @__PURE__ */ vue.defineComponent({
25
25
  multiple = c.toBoolean(editorModel.editorParams.multiple);
26
26
  }
27
27
  }
28
+ const {
29
+ useInFocusAndBlur,
30
+ useInValueChange
31
+ } = vue3Util.useAutoFocusBlur(props, emit);
28
32
  const showFormDefaultContent = vue.computed(() => {
29
33
  if (props.controlParams && props.controlParams.editmode === "hover" && !props.readonly) {
30
34
  return true;
@@ -140,10 +144,11 @@ const IBizListBox = /* @__PURE__ */ vue.defineComponent({
140
144
  _value = value;
141
145
  }
142
146
  emit("change", _value);
147
+ useInValueChange();
143
148
  };
144
149
  const {
145
150
  componentRef: editorRef
146
- } = vue3Util.useFocusAndBlur(() => emit("focus"), () => emit("blur"));
151
+ } = vue3Util.useFocusAndBlur(() => emit("focus"), () => useInFocusAndBlur());
147
152
  return {
148
153
  ns,
149
154
  items,
@@ -16,6 +16,10 @@ const IBizNumberRangePicker = /* @__PURE__ */ vue.defineComponent({
16
16
  const ns = vue3Util.useNamespace("number-range-picker");
17
17
  const c = props.controller;
18
18
  const editorModel = c.model;
19
+ const {
20
+ useInFocusAndBlur,
21
+ useInValueChange
22
+ } = vue3Util.useAutoFocusBlur(props, emit);
19
23
  let max = Infinity;
20
24
  let min = -Infinity;
21
25
  let precision = 0;
@@ -64,12 +68,6 @@ const IBizNumberRangePicker = /* @__PURE__ */ vue.defineComponent({
64
68
  }, {
65
69
  immediate: true
66
70
  });
67
- vue.watch(editorRef, (newVal) => {
68
- if (props.autoFocus && newVal) {
69
- const input = newVal.$el.getElementsByTagName("input")[0];
70
- input.focus();
71
- }
72
- });
73
71
  const setEditable = (flag) => {
74
72
  if (flag) {
75
73
  isEditable.value = flag;
@@ -88,22 +86,26 @@ const IBizNumberRangePicker = /* @__PURE__ */ vue.defineComponent({
88
86
  if (minValue.value !== null && maxValue.value !== null) {
89
87
  emit("change", [minValue.value, maxValue.value].join(valueSeparator));
90
88
  setEditable(false);
89
+ useInValueChange();
91
90
  }
92
91
  if (refFormItem.value) {
93
92
  const valueName = refFormItem.value[index];
94
93
  emit("change", value, valueName);
94
+ useInValueChange();
95
95
  }
96
96
  };
97
97
  const {
98
98
  componentRef
99
- } = vue3Util.useFocusAndBlur(() => emit("focus"), () => emit("blur"));
99
+ } = vue3Util.useFocusAndBlur(() => emit("focus"), () => useInFocusAndBlur());
100
100
  const onFocus = (e) => {
101
101
  emit("focus", e);
102
102
  setEditable(true);
103
103
  };
104
104
  const onBlur = (e) => {
105
- emit("blur", e);
106
- setEditable(false);
105
+ if (minValue.value !== null && maxValue.value !== null) {
106
+ emit("blur", e);
107
+ setEditable(false);
108
+ }
107
109
  };
108
110
  const handleKeyUp = (e) => {
109
111
  if (e && e.code === "Enter") {
@@ -29,8 +29,13 @@ const IBizRadio = /* @__PURE__ */ vue.defineComponent({
29
29
  isBtnRoundCorner = c.toBoolean(editorModel.editorParams.isBtnRoundCorner);
30
30
  }
31
31
  }
32
+ const {
33
+ useInFocusAndBlur,
34
+ useInValueChange
35
+ } = vue3Util.useAutoFocusBlur(props, emit);
32
36
  const onSelectValueChange = (value) => {
33
37
  emit("change", value);
38
+ useInValueChange();
34
39
  };
35
40
  const items = vue.ref([]);
36
41
  vue.watch(() => props.data, (newVal) => {
@@ -66,7 +71,7 @@ const IBizRadio = /* @__PURE__ */ vue.defineComponent({
66
71
  });
67
72
  const {
68
73
  componentRef: editorRef
69
- } = vue3Util.useFocusAndBlur(() => emit("focus"), () => emit("blur"));
74
+ } = vue3Util.useFocusAndBlur(() => emit("focus"), () => useInFocusAndBlur());
70
75
  return {
71
76
  ns,
72
77
  editorModel,
@@ -17,6 +17,10 @@ const IBizRate = /* @__PURE__ */ vue.defineComponent({
17
17
  const currentVal = vue.ref();
18
18
  const c = props.controller;
19
19
  const editorModel = c.model;
20
+ const {
21
+ useInFocusAndBlur,
22
+ useInValueChange
23
+ } = vue3Util.useAutoFocusBlur(props, emit);
20
24
  let colors = [];
21
25
  let showText = false;
22
26
  let max = 5;
@@ -54,10 +58,11 @@ const IBizRate = /* @__PURE__ */ vue.defineComponent({
54
58
  });
55
59
  const handleChange = (currentValue) => {
56
60
  emit("change", currentValue);
61
+ useInValueChange();
57
62
  };
58
63
  const {
59
64
  componentRef: editorRef
60
- } = vue3Util.useFocusAndBlur(() => emit("focus"), () => emit("blur"));
65
+ } = vue3Util.useFocusAndBlur(() => emit("focus"), () => useInFocusAndBlur());
61
66
  return {
62
67
  ns,
63
68
  currentVal,
@@ -16,6 +16,10 @@ const IBizSlider = /* @__PURE__ */ vue.defineComponent({
16
16
  const ns = vue3Util.useNamespace("slider");
17
17
  const c = props.controller;
18
18
  const editorModel = c.model;
19
+ const {
20
+ useInFocusAndBlur,
21
+ useInValueChange
22
+ } = vue3Util.useAutoFocusBlur(props, emit);
19
23
  let step = 1;
20
24
  let max = 100;
21
25
  let min = 0;
@@ -88,10 +92,11 @@ const IBizSlider = /* @__PURE__ */ vue.defineComponent({
88
92
  } else {
89
93
  emit("change", currentValue);
90
94
  }
95
+ useInValueChange();
91
96
  };
92
97
  const {
93
98
  componentRef: editorRef
94
- } = vue3Util.useFocusAndBlur(() => emit("focus"), () => emit("blur"));
99
+ } = vue3Util.useFocusAndBlur(() => emit("focus"), () => useInFocusAndBlur());
95
100
  return {
96
101
  ns,
97
102
  currentVal,
@@ -27,6 +27,11 @@ const IBizSpan = /* @__PURE__ */ vue.defineComponent({
27
27
  const c = props.controller;
28
28
  const text = vue.ref("");
29
29
  const codeList = c.codeList;
30
+ const {
31
+ valueFormat,
32
+ dataType,
33
+ unitName
34
+ } = c.parent;
30
35
  const textSeparator = c.model.textSeparator || ((_a = c.editorParams) == null ? void 0 : _a.TEXTSEPARATOR) || ",";
31
36
  vue.watch(() => props.value, (newVal, oldVal) => {
32
37
  if (newVal !== oldVal) {
@@ -34,11 +39,6 @@ const IBizSpan = /* @__PURE__ */ vue.defineComponent({
34
39
  text.value = "";
35
40
  return;
36
41
  }
37
- const {
38
- valueFormat,
39
- dataType,
40
- unitName
41
- } = c.parent;
42
42
  if (c.model.valueType === "SIMPLES") {
43
43
  text.value = newVal.join(textSeparator);
44
44
  } else if (c.model.valueType === "OBJECT") {
@@ -118,6 +118,8 @@ const IBizSpan = /* @__PURE__ */ vue.defineComponent({
118
118
  text,
119
119
  editorRef,
120
120
  items,
121
+ valueFormat,
122
+ unitName,
121
123
  showFormDefaultContent
122
124
  };
123
125
  },
@@ -128,7 +130,10 @@ const IBizSpan = /* @__PURE__ */ vue.defineComponent({
128
130
  "class": this.ns.e("code-list"),
129
131
  "codeListItems": this.items,
130
132
  "codeList": this.c.codeList,
131
- "value": this.text
133
+ "value": this.value,
134
+ "valueFormat": this.valueFormat,
135
+ "unitName": this.unitName,
136
+ "convertToCodeItemText": this.c.convertToCodeItemText
132
137
  }, null);
133
138
  } else if (this.text) {
134
139
  content = this.text;
@@ -67,13 +67,18 @@ const IBizSwitch = /* @__PURE__ */ vue.defineComponent({
67
67
  }
68
68
  return props.disabled || props.readonly;
69
69
  });
70
+ const {
71
+ useInFocusAndBlur,
72
+ useInValueChange
73
+ } = vue3Util.useAutoFocusBlur(props, emit);
70
74
  const handleChange = (currentValue) => {
71
75
  const emitValue = currentValue === true ? 1 : 0;
72
76
  emit("change", emitValue);
77
+ useInValueChange();
73
78
  };
74
79
  const {
75
80
  componentRef: editorRef
76
- } = vue3Util.useFocusAndBlur(() => emit("focus"), () => emit("blur"));
81
+ } = vue3Util.useFocusAndBlur(() => emit("focus"), () => useInFocusAndBlur());
77
82
  return {
78
83
  ns,
79
84
  currentVal,
@@ -210,11 +210,29 @@ const IBizInput = /* @__PURE__ */ vue.defineComponent({
210
210
  const shouldAutoComplete = vue.computed(() => {
211
211
  return c.model.editorParams && c.model.editorParams.autocomplete && c.toBoolean(c.model.editorParams.autocomplete) ? "on" : "new-password";
212
212
  });
213
+ const items = vue.ref([]);
214
+ if (c.codeList) {
215
+ vue.watch(() => props.data, (newVal) => {
216
+ c.loadCodeList(newVal).then((_codeList) => {
217
+ items.value = _codeList;
218
+ });
219
+ }, {
220
+ immediate: true,
221
+ deep: true
222
+ });
223
+ }
224
+ const fn = (data) => {
225
+ if (data) {
226
+ items.value = data;
227
+ }
228
+ };
229
+ vue3Util.useCodeListListen(c.model.appCodeListId, c.context.srfappid, fn);
213
230
  return {
214
231
  c,
215
232
  ns,
216
233
  rows,
217
234
  type,
235
+ items,
218
236
  currentVal,
219
237
  readonlyText,
220
238
  handleChange,
@@ -243,7 +261,16 @@ const IBizInput = /* @__PURE__ */ vue.defineComponent({
243
261
  } = this.c.model;
244
262
  let content = null;
245
263
  if (this.readonly) {
246
- content = this.readonlyText;
264
+ if (this.c.codeList) {
265
+ content = vue.createVNode(vue.resolveComponent("iBizCodeList"), {
266
+ "codeListItems": this.items,
267
+ "codeList": this.c.codeList,
268
+ "value": this.currentVal,
269
+ "convertToCodeItemText": this.c.convertToCodeItemText
270
+ }, null);
271
+ } else {
272
+ content = this.readonlyText;
273
+ }
247
274
  } else {
248
275
  const slots = {};
249
276
  if (unitName) {
@@ -10,7 +10,7 @@ var __publicField = (obj, key, value) => {
10
10
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
11
11
  return value;
12
12
  };
13
- class TextBoxEditorController extends runtime.EditorController {
13
+ class TextBoxEditorController extends runtime.CodeListEditorController {
14
14
  constructor() {
15
15
  super(...arguments);
16
16
  /**
@@ -76,6 +76,13 @@ class TextBoxEditorController extends runtime.EditorController {
76
76
  * @type {boolean}
77
77
  */
78
78
  __publicField(this, "chatCompletion", false);
79
+ /**
80
+ * 代码表模型
81
+ * @return {*}
82
+ * @author: zhujiamin
83
+ * @Date: 2023-05-24 10:55:50
84
+ */
85
+ __publicField(this, "codeList");
79
86
  }
80
87
  async onInit() {
81
88
  await super.onInit();
@@ -123,6 +130,10 @@ class TextBoxEditorController extends runtime.EditorController {
123
130
  } else if (this.model.predefinedType === "AUTH_PASSWORD" && !this.placeHolder) {
124
131
  this.placeHolder = ibiz.i18n.t("app.pleaseEnterPassword");
125
132
  }
133
+ if (this.model.appCodeListId) {
134
+ const app = await ibiz.hub.getApp(this.context.srfappid);
135
+ this.codeList = app.codeList.getCodeList(this.model.appCodeListId);
136
+ }
126
137
  }
127
138
  }
128
139