@ibiz-template/vue3-components 0.6.8 → 0.6.10

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 (137) hide show
  1. package/dist/index-Udkmmoqt.js +4 -0
  2. package/dist/index.min.css +1 -1
  3. package/dist/index.system.min.js +1 -1
  4. package/dist/wang-editor-Zc_Y0dGt.js +1 -0
  5. package/dist/{xlsx-util-Ivrrn3GI.js → xlsx-util-2FgdNqpT.js} +1 -1
  6. package/es/control/calendar/calendar.css +1 -1
  7. package/es/control/drbar/drbar.controller.d.ts +14 -0
  8. package/es/control/drbar/drbar.controller.mjs +57 -4
  9. package/es/control/drbar/drbar.css +1 -1
  10. package/es/control/drbar/drbar.d.ts +1 -0
  11. package/es/control/drbar/drbar.mjs +18 -2
  12. package/es/control/drbar/index.d.ts +1 -0
  13. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.d.ts +1 -1
  14. package/es/control/exp-bar/calendar-exp-bar/calendar-exp-bar.mjs +3 -3
  15. package/es/control/exp-bar/calendar-exp-bar/index.d.ts +1 -1
  16. package/es/control/exp-bar/chart-exp-bar/chart-exp-bar.d.ts +1 -1
  17. package/es/control/exp-bar/chart-exp-bar/chart-exp-bar.mjs +3 -3
  18. package/es/control/exp-bar/chart-exp-bar/index.d.ts +1 -1
  19. package/es/control/exp-bar/data-view-exp-bar/data-view-view-exp-bar.d.ts +1 -1
  20. package/es/control/exp-bar/data-view-exp-bar/data-view-view-exp-bar.mjs +3 -3
  21. package/es/control/exp-bar/data-view-exp-bar/index.d.ts +1 -1
  22. package/es/control/exp-bar/grid-exp-bar/grid-exp-bar.d.ts +1 -1
  23. package/es/control/exp-bar/grid-exp-bar/grid-exp-bar.mjs +3 -3
  24. package/es/control/exp-bar/grid-exp-bar/index.d.ts +1 -1
  25. package/es/control/exp-bar/list-exp-bar/index.d.ts +1 -1
  26. package/es/control/exp-bar/list-exp-bar/list-exp-bar.d.ts +1 -1
  27. package/es/control/exp-bar/list-exp-bar/list-exp-bar.mjs +3 -3
  28. package/es/control/exp-bar/render-util.d.ts +2 -2
  29. package/es/control/exp-bar/render-util.mjs +16 -3
  30. package/es/control/exp-bar/tree-exp-bar/index.d.ts +1 -1
  31. package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.d.ts +1 -1
  32. package/es/control/exp-bar/tree-exp-bar/tree-exp-bar.mjs +3 -3
  33. package/es/control/form/form/form.mjs +16 -2
  34. package/es/control/form/form-detail/form-item/form-item.mjs +2 -1
  35. package/es/control/search-bar/filter-mode-select/filter-mode-select.d.ts +12 -0
  36. package/es/control/search-bar/filter-mode-select/filter-mode-select.mjs +6 -0
  37. package/es/control/search-bar/filter-tree/filter-tree.css +1 -1
  38. package/es/control/search-bar/filter-tree/filter-tree.d.ts +3 -3
  39. package/es/control/search-bar/filter-tree/filter-tree.mjs +90 -9
  40. package/es/control/toolbar/toolbar.mjs +12 -2
  41. package/es/editor/array/ibiz-array/ibiz-array.mjs +5 -5
  42. package/es/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.mjs +3 -3
  43. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.mjs +3 -3
  44. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.mjs +3 -3
  45. package/es/editor/check-box/ibiz-checkbox/ibiz-checkbox.mjs +3 -3
  46. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.mjs +3 -3
  47. package/es/editor/color-picker/ibiz-color-picker/ibiz-color-picker.mjs +3 -3
  48. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -1
  49. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +3 -3
  50. package/es/editor/data-picker/ibiz-picker/ibiz-picker.css +1 -1
  51. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +5 -5
  52. package/es/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.css +1 -1
  53. package/es/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.mjs +3 -3
  54. package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.css +1 -1
  55. package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.mjs +4 -4
  56. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.css +1 -1
  57. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.mjs +5 -5
  58. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +4 -4
  59. package/es/editor/html/wang-editor/wang-editor.css +1 -1
  60. package/es/editor/html/wang-editor/wang-editor.mjs +8 -2
  61. package/es/editor/list-box/ibiz-list-box/ibiz-list-box.mjs +5 -5
  62. package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.mjs +5 -5
  63. package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.mjs +3 -3
  64. package/es/editor/rate/ibiz-rate/ibiz-rate.mjs +3 -3
  65. package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +3 -3
  66. package/es/editor/stepper/ibiz-stepper/ibiz-stepper.mjs +3 -3
  67. package/es/editor/switch/ibiz-switch/ibiz-switch.mjs +3 -3
  68. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.mjs +3 -3
  69. package/es/editor/text-box/input/input.mjs +3 -3
  70. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +3 -3
  71. package/es/editor/upload/ibiz-image-preview/ibiz-image-preview.mjs +3 -3
  72. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +5 -5
  73. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.mjs +3 -3
  74. package/es/view-engine/exp-view.engine.d.ts +2 -1
  75. package/es/view-engine/exp-view.engine.mjs +10 -0
  76. package/es/view-engine/index.mjs +5 -0
  77. package/es/view-engine/tab-search-view.engine.d.ts +61 -0
  78. package/es/view-engine/tab-search-view.engine.mjs +105 -0
  79. package/es/web-app/guard/auth-guard/auth-guard.d.ts +0 -7
  80. package/es/web-app/guard/auth-guard/auth-guard.mjs +24 -34
  81. package/lib/control/calendar/calendar.css +1 -1
  82. package/lib/control/drbar/drbar.cjs +18 -2
  83. package/lib/control/drbar/drbar.controller.cjs +57 -4
  84. package/lib/control/drbar/drbar.css +1 -1
  85. package/lib/control/exp-bar/calendar-exp-bar/calendar-exp-bar.cjs +3 -3
  86. package/lib/control/exp-bar/chart-exp-bar/chart-exp-bar.cjs +3 -3
  87. package/lib/control/exp-bar/data-view-exp-bar/data-view-view-exp-bar.cjs +3 -3
  88. package/lib/control/exp-bar/grid-exp-bar/grid-exp-bar.cjs +3 -3
  89. package/lib/control/exp-bar/list-exp-bar/list-exp-bar.cjs +3 -3
  90. package/lib/control/exp-bar/render-util.cjs +15 -2
  91. package/lib/control/exp-bar/tree-exp-bar/tree-exp-bar.cjs +3 -3
  92. package/lib/control/form/form/form.cjs +15 -1
  93. package/lib/control/form/form-detail/form-item/form-item.cjs +2 -1
  94. package/lib/control/search-bar/filter-mode-select/filter-mode-select.cjs +6 -0
  95. package/lib/control/search-bar/filter-tree/filter-tree.cjs +90 -9
  96. package/lib/control/search-bar/filter-tree/filter-tree.css +1 -1
  97. package/lib/control/toolbar/toolbar.cjs +12 -2
  98. package/lib/editor/array/ibiz-array/ibiz-array.cjs +4 -4
  99. package/lib/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.cjs +2 -2
  100. package/lib/editor/carousel/ibiz-carousel/ibiz-carousel.cjs +2 -2
  101. package/lib/editor/cascader/ibiz-cascader/ibiz-cascader.cjs +2 -2
  102. package/lib/editor/check-box/ibiz-checkbox/ibiz-checkbox.cjs +2 -2
  103. package/lib/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.cjs +2 -2
  104. package/lib/editor/color-picker/ibiz-color-picker/ibiz-color-picker.cjs +2 -2
  105. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +2 -2
  106. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -1
  107. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +4 -4
  108. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.css +1 -1
  109. package/lib/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.cjs +2 -2
  110. package/lib/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.css +1 -1
  111. package/lib/editor/date-picker/ibiz-date-picker/ibiz-date-picker.cjs +3 -3
  112. package/lib/editor/date-picker/ibiz-date-picker/ibiz-date-picker.css +1 -1
  113. package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.cjs +4 -4
  114. package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.css +1 -1
  115. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +3 -3
  116. package/lib/editor/html/wang-editor/wang-editor.cjs +8 -2
  117. package/lib/editor/html/wang-editor/wang-editor.css +1 -1
  118. package/lib/editor/list-box/ibiz-list-box/ibiz-list-box.cjs +4 -4
  119. package/lib/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.cjs +4 -4
  120. package/lib/editor/radio-button-list/ibiz-radio/ibiz-radio.cjs +2 -2
  121. package/lib/editor/rate/ibiz-rate/ibiz-rate.cjs +2 -2
  122. package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +2 -2
  123. package/lib/editor/stepper/ibiz-stepper/ibiz-stepper.cjs +2 -2
  124. package/lib/editor/switch/ibiz-switch/ibiz-switch.cjs +2 -2
  125. package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.cjs +2 -2
  126. package/lib/editor/text-box/input/input.cjs +2 -2
  127. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +2 -2
  128. package/lib/editor/upload/ibiz-image-preview/ibiz-image-preview.cjs +2 -2
  129. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +4 -4
  130. package/lib/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.cjs +2 -2
  131. package/lib/view-engine/exp-view.engine.cjs +10 -0
  132. package/lib/view-engine/index.cjs +5 -0
  133. package/lib/view-engine/tab-search-view.engine.cjs +107 -0
  134. package/lib/web-app/guard/auth-guard/auth-guard.cjs +22 -32
  135. package/package.json +8 -8
  136. package/dist/index-I0JaiEjL.js +0 -4
  137. package/dist/wang-editor-R2mUYWuB.js +0 -1
@@ -1 +1 @@
1
- .ibiz-control-calendar{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);width:100%;height:100%}.ibiz-control-calendar__calendar-item{display:flex;align-items:center;padding:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar__icon{width:10px;height:10px;margin-right:var(--ibiz-spacing-base-tight);border-radius:50%}.ibiz-control-calendar-content{display:flex;flex-direction:column;width:100%;height:100%}.ibiz-control-calendar-content .el-calendar{display:flex;flex-direction:column;height:100%}.ibiz-control-calendar-content .el-calendar__header{flex-wrap:wrap}.ibiz-control-calendar-content .el-calendar-table,.ibiz-control-calendar-content .el-calendar-table .el-calendar-day{width:100%;height:100%;cursor:pointer}.ibiz-control-calendar-content .el-calendar-table{flex:1;width:-moz-fit-content;width:fit-content}.ibiz-control-calendar-content .el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.ibiz-control-calendar-content .el-calendar__body{display:flex;flex:1;padding:0;overflow:auto}.ibiz-control-calendar-more{width:100%;font-size:var(--ibiz-font-size-small);border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-control-calendar-more:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);height:100%;padding:var(--ibiz-control-calendar-item-padding);margin-bottom:var(--ibiz-control-calendar-margin);overflow:hidden;font-size:var(--ibiz-control-calendar-font-size);color:var(--ibiz-control-calendar-text-color);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border:solid .5px transparent;border-radius:var(--ibiz-control-calendar-border-radius)}.ibiz-control-calendar-item:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item.is-active{background-color:var(--ibiz-control-calendar-active-bg-color);border:solid .5px var(--ibiz-control-calendar-border-color)}.ibiz-control-calendar-date-text{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);padding:var(--ibiz-control-calendar-item-padding);margin:0;text-align:center}.ibiz-control-calendar-day{height:-moz-fit-content;height:fit-content}.ibiz-control-calendar-content-title{line-height:var(--ibiz-editor-default-line-height)}.ibiz-control-calendar-content-header{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);display:flex;align-items:center}.ibiz-control-calendar-content-header>*+*{margin-left:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar-legend{display:flex;justify-content:flex-end;width:100%}.ibiz-control-calendar-legend>*+*{margin-left:var(--ibiz-spacing-base-loose)}.ibiz-control-calendar-timeline-content .el-timeline{padding-left:0}
1
+ .ibiz-control-calendar{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);width:100%;height:100%}.ibiz-control-calendar__calendar-item{display:flex;align-items:center;padding:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar__icon{width:10px;height:10px;margin-right:var(--ibiz-spacing-base-tight);border-radius:50%}.ibiz-control-calendar .ibiz-control-calendar-item{margin:0}.ibiz-control-calendar-content{display:flex;flex-direction:column;width:100%;height:100%}.ibiz-control-calendar-content .el-calendar{display:flex;flex-direction:column;height:100%}.ibiz-control-calendar-content .el-calendar__header{flex-wrap:wrap}.ibiz-control-calendar-content .el-calendar-table,.ibiz-control-calendar-content .el-calendar-table .el-calendar-day{width:100%;height:100%;min-height:90px;cursor:pointer}.ibiz-control-calendar-content .el-calendar-table{flex:1;width:-moz-fit-content;width:fit-content}.ibiz-control-calendar-content .el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.ibiz-control-calendar-content .el-calendar__body{display:flex;flex:1;padding:0;overflow:auto}.ibiz-control-calendar-more{width:100%;font-size:var(--ibiz-font-size-small);border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-control-calendar-more:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);height:100%;padding:var(--ibiz-control-calendar-item-padding);margin-bottom:var(--ibiz-control-calendar-margin);overflow:hidden;font-size:var(--ibiz-control-calendar-font-size);color:var(--ibiz-control-calendar-text-color);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border:solid .5px transparent;border-radius:var(--ibiz-control-calendar-border-radius)}.ibiz-control-calendar-item:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item.is-active{background-color:var(--ibiz-control-calendar-active-bg-color);border:solid .5px var(--ibiz-control-calendar-border-color)}.ibiz-control-calendar-date-text{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);padding-bottom:var(--ibiz-control-calendar-item-padding);margin:0;text-align:center}.ibiz-control-calendar-day{height:-moz-fit-content;height:fit-content}.ibiz-control-calendar-content-title{line-height:var(--ibiz-editor-default-line-height)}.ibiz-control-calendar-content-header{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);display:flex;align-items:center}.ibiz-control-calendar-content-header>*+*{margin-left:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar-legend{display:flex;justify-content:flex-end;width:100%}.ibiz-control-calendar-legend>*+*{margin-left:var(--ibiz-spacing-base-loose)}.ibiz-control-calendar-timeline-content .el-timeline{padding-left:0}
@@ -89,6 +89,20 @@ export declare class DRBarController extends ControlController<IDEDRBar, IDRBarS
89
89
  * @memberof DRBarController
90
90
  */
91
91
  onCreated(): Promise<void>;
92
+ /**
93
+ * 计算关系界面组权限
94
+ *
95
+ * @param {IData} item 关系组成员
96
+ * @memberof DRBarController
97
+ */
98
+ calcPermitted(item: IData): Promise<void>;
99
+ /**
100
+ * 计算是否展示
101
+ *
102
+ * @param {IData} item 关系组成员
103
+ * @memberof DRBarController
104
+ */
105
+ calcDrBarItemsState(): Promise<void>;
92
106
  /**
93
107
  * 加载完成
94
108
  *
@@ -116,6 +116,50 @@ class DRBarController extends ControlController {
116
116
  this.initDRBarItems();
117
117
  await this.initCounter();
118
118
  }
119
+ /**
120
+ * 计算关系界面组权限
121
+ *
122
+ * @param {IData} item 关系组成员
123
+ * @memberof DRBarController
124
+ */
125
+ async calcPermitted(item) {
126
+ let permitted = true;
127
+ if (item.dataAccessAction) {
128
+ const app = await ibiz.hub.getApp(this.context.srfappid);
129
+ const data = this.getData().length > 0 ? this.getData()[0] : void 0;
130
+ permitted = await app.authority.calcByDataAccessAction(
131
+ item.dataAccessAction,
132
+ this.context,
133
+ data,
134
+ this.model.appDataEntityId
135
+ );
136
+ }
137
+ item.visible = permitted;
138
+ }
139
+ /**
140
+ * 计算是否展示
141
+ *
142
+ * @param {IData} item 关系组成员
143
+ * @memberof DRBarController
144
+ */
145
+ async calcDrBarItemsState() {
146
+ const arr = [];
147
+ this.state.drBarItems.forEach((group) => {
148
+ var _a, _b;
149
+ if ((_a = group.children) == null ? void 0 : _a.length) {
150
+ (_b = group.children) == null ? void 0 : _b.forEach((item) => {
151
+ arr.push(this.calcPermitted(item));
152
+ });
153
+ }
154
+ });
155
+ await Promise.all(arr);
156
+ this.state.drBarItems.forEach((group) => {
157
+ var _a;
158
+ if ((_a = group.children) == null ? void 0 : _a.length) {
159
+ group.visible = !group.children.every((item) => item.visible === false);
160
+ }
161
+ });
162
+ }
119
163
  /**
120
164
  * 加载完成
121
165
  *
@@ -125,7 +169,8 @@ class DRBarController extends ControlController {
125
169
  async onMounted() {
126
170
  await super.onMounted();
127
171
  if (this.form) {
128
- this.form.evt.on("onLoadSuccess", () => {
172
+ this.form.evt.on("onLoadSuccess", async () => {
173
+ await this.calcDrBarItemsState();
129
174
  this.handleFormChange();
130
175
  this.doDefaultSelect();
131
176
  });
@@ -207,7 +252,9 @@ class DRBarController extends ControlController {
207
252
  caption: itemCaption,
208
253
  sysImage: item.sysImage,
209
254
  disabled: false,
210
- counterId: item.counterId
255
+ counterId: item.counterId,
256
+ visible: true,
257
+ dataAccessAction: item.dataAccessAction || void 0
211
258
  };
212
259
  };
213
260
  if (dedrbarGroups && dedrctrlItems) {
@@ -232,6 +279,7 @@ class DRBarController extends ControlController {
232
279
  tag: group.id,
233
280
  caption: itemCaption,
234
281
  sysImage: group.sysImage,
282
+ visible: true,
235
283
  children: groupItems.map((item) => getItemState(item))
236
284
  });
237
285
  } else if (groupItems.length === 1) {
@@ -346,7 +394,12 @@ class DRBarController extends ControlController {
346
394
  * @return {*} {void}
347
395
  */
348
396
  doDefaultSelect() {
349
- var _a;
397
+ var _a, _b;
398
+ const viewForm = (_a = this.view.layoutPanel) == null ? void 0 : _a.panelItems.view_form;
399
+ if (viewForm) {
400
+ viewForm.state.visible = false;
401
+ viewForm.state.keepAlive = false;
402
+ }
350
403
  if (!this.state.hideEditItem && !this.state.srfnav) {
351
404
  this.setVisible("form");
352
405
  return;
@@ -356,7 +409,7 @@ class DRBarController extends ControlController {
356
409
  return;
357
410
  }
358
411
  const { drBarItems } = this.state;
359
- let key = ((_a = drBarItems[0].children) == null ? void 0 : _a[0].tag) || drBarItems[0].tag;
412
+ let key = ((_b = drBarItems[0].children) == null ? void 0 : _b[0].tag) || drBarItems[0].tag;
360
413
  if (this.routeDepth && this.state.srfnav) {
361
414
  key = this.state.srfnav;
362
415
  }
@@ -1 +1 @@
1
- .ibiz-control-drbar .el-menu--horizontal.el-menu{border-bottom:none}.ibiz-control-drbar .el-menu-item{justify-content:space-between;line-height:unset}
1
+ .ibiz-control-drbar{height:100%}.ibiz-control-drbar .el-menu--horizontal.el-menu{border-bottom:none}.ibiz-control-drbar .el-menu-item{justify-content:space-between;line-height:unset}.ibiz-control-drbar__menu{height:100%}
@@ -37,6 +37,7 @@ export declare const DRBarControl: import("vue").DefineComponent<{
37
37
  handleSelect: (key: string) => void;
38
38
  renderMenuItems: (item: IDRBarItemsState) => VNode | undefined;
39
39
  defaultActive: import("vue").Ref<string>;
40
+ opens: string[];
40
41
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
41
42
  modelData: {
42
43
  type: PropType<IDEDRBar>;
@@ -58,6 +58,17 @@ const DRBarControl = /* @__PURE__ */ defineComponent({
58
58
  const route = useRoute();
59
59
  const defaultActive = ref("");
60
60
  let expViewRoutePath = "";
61
+ const opens = [];
62
+ watch(() => c.state.isCreated, (_newVal, _oldVal) => {
63
+ if (props.showMode !== "horizontal") {
64
+ const {
65
+ drBarItems
66
+ } = c.state;
67
+ drBarItems.forEach((item) => {
68
+ opens.push(item.tag);
69
+ });
70
+ }
71
+ });
61
72
  if (c.routeDepth) {
62
73
  expViewRoutePath = getNestedRoutePath(route, c.routeDepth);
63
74
  }
@@ -85,6 +96,9 @@ const DRBarControl = /* @__PURE__ */ defineComponent({
85
96
  immediate: true
86
97
  });
87
98
  const renderMenuItems = (item) => {
99
+ if (!item.visible) {
100
+ return;
101
+ }
88
102
  if (item.children) {
89
103
  let subtitle = "";
90
104
  if (props.showMode === "horizontal") {
@@ -128,7 +142,8 @@ const DRBarControl = /* @__PURE__ */ defineComponent({
128
142
  ns,
129
143
  handleSelect,
130
144
  renderMenuItems,
131
- defaultActive
145
+ defaultActive,
146
+ opens
132
147
  };
133
148
  },
134
149
  render() {
@@ -146,7 +161,8 @@ const DRBarControl = /* @__PURE__ */ defineComponent({
146
161
  "class": this.ns.e("menu"),
147
162
  "mode": this.showMode,
148
163
  "default-active": this.defaultActive || defaultItem,
149
- "onSelect": this.handleSelect
164
+ "onSelect": this.handleSelect,
165
+ "default-openeds": this.opens
150
166
  }, _isSlot(_slot = drBarItems.map((item) => {
151
167
  return this.renderMenuItems(item);
152
168
  })) ? _slot : {
@@ -35,6 +35,7 @@ export declare const IBizDRBarControl: import("@ibiz-template/vue3-util").TypeWi
35
35
  [key: string]: any;
36
36
  }> | undefined;
37
37
  defaultActive: import("vue").Ref<string>;
38
+ opens: string[];
38
39
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
39
40
  modelData: {
40
41
  type: import("vue").PropType<import("@ibiz/model-core").IDEDRBar>;
@@ -31,7 +31,7 @@ export declare const CalendarExpBarControl: import("vue").DefineComponent<{
31
31
  renderTitle: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
33
  }> | null;
34
- renderQuickSearch: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
34
+ renderSearchBar: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
35
35
  [key: string]: any;
36
36
  }> | null;
37
37
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -40,14 +40,14 @@ const CalendarExpBarControl = /* @__PURE__ */ defineComponent({
40
40
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
41
41
  const {
42
42
  renderTitle,
43
- renderQuickSearch
43
+ renderSearchBar
44
44
  } = useExpBarRender(c, ns);
45
45
  useWatchRouteChange(c);
46
46
  return {
47
47
  c,
48
48
  ns,
49
49
  renderTitle,
50
- renderQuickSearch
50
+ renderSearchBar
51
51
  };
52
52
  },
53
53
  render() {
@@ -60,7 +60,7 @@ const CalendarExpBarControl = /* @__PURE__ */ defineComponent({
60
60
  } = state;
61
61
  const slots = {
62
62
  captionbar: this.renderTitle,
63
- searchbar: this.renderQuickSearch
63
+ searchbar: this.renderSearchBar
64
64
  };
65
65
  if (isCreated) {
66
66
  if (XDataModel) {
@@ -28,7 +28,7 @@ export declare const IBizCalendarExpBarControl: import("@ibiz-template/vue3-util
28
28
  renderTitle: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
29
29
  [key: string]: any;
30
30
  }> | null;
31
- renderQuickSearch: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
31
+ renderSearchBar: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
33
  }> | null;
34
34
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -31,7 +31,7 @@ export declare const ChartExpBarControl: import("vue").DefineComponent<{
31
31
  renderTitle: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
33
  }> | null;
34
- renderQuickSearch: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
34
+ renderSearchBar: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
35
35
  [key: string]: any;
36
36
  }> | null;
37
37
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -40,14 +40,14 @@ const ChartExpBarControl = /* @__PURE__ */ defineComponent({
40
40
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
41
41
  const {
42
42
  renderTitle,
43
- renderQuickSearch
43
+ renderSearchBar
44
44
  } = useExpBarRender(c, ns);
45
45
  useWatchRouteChange(c);
46
46
  return {
47
47
  c,
48
48
  ns,
49
49
  renderTitle,
50
- renderQuickSearch
50
+ renderSearchBar
51
51
  };
52
52
  },
53
53
  render() {
@@ -59,7 +59,7 @@ const ChartExpBarControl = /* @__PURE__ */ defineComponent({
59
59
  } = this.c;
60
60
  const slots = {
61
61
  captionbar: this.renderTitle,
62
- searchbar: this.renderQuickSearch
62
+ searchbar: this.renderSearchBar
63
63
  };
64
64
  if (isCreated) {
65
65
  if (XDataModel) {
@@ -28,7 +28,7 @@ export declare const IBizChartExpBarControl: import("@ibiz-template/vue3-util").
28
28
  renderTitle: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
29
29
  [key: string]: any;
30
30
  }> | null;
31
- renderQuickSearch: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
31
+ renderSearchBar: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
33
  }> | null;
34
34
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -31,7 +31,7 @@ export declare const DataViewExpBarControl: import("vue").DefineComponent<{
31
31
  renderTitle: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
33
  }> | null;
34
- renderQuickSearch: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
34
+ renderSearchBar: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
35
35
  [key: string]: any;
36
36
  }> | null;
37
37
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -40,14 +40,14 @@ const DataViewExpBarControl = /* @__PURE__ */ defineComponent({
40
40
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
41
41
  const {
42
42
  renderTitle,
43
- renderQuickSearch
43
+ renderSearchBar
44
44
  } = useExpBarRender(c, ns);
45
45
  useWatchRouteChange(c);
46
46
  return {
47
47
  c,
48
48
  ns,
49
49
  renderTitle,
50
- renderQuickSearch
50
+ renderSearchBar
51
51
  };
52
52
  },
53
53
  render() {
@@ -59,7 +59,7 @@ const DataViewExpBarControl = /* @__PURE__ */ defineComponent({
59
59
  } = this.c;
60
60
  const slots = {
61
61
  captionbar: this.renderTitle,
62
- searchbar: this.renderQuickSearch
62
+ searchbar: this.renderSearchBar
63
63
  };
64
64
  if (isCreated) {
65
65
  if (XDataModel) {
@@ -28,7 +28,7 @@ export declare const IBizDataViewExpBarControl: import("@ibiz-template/vue3-util
28
28
  renderTitle: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
29
29
  [key: string]: any;
30
30
  }> | null;
31
- renderQuickSearch: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
31
+ renderSearchBar: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
33
  }> | null;
34
34
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -31,7 +31,7 @@ export declare const GridExpBarControl: import("vue").DefineComponent<{
31
31
  renderTitle: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
33
  }> | null;
34
- renderQuickSearch: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
34
+ renderSearchBar: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
35
35
  [key: string]: any;
36
36
  }> | null;
37
37
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -40,14 +40,14 @@ const GridExpBarControl = /* @__PURE__ */ defineComponent({
40
40
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
41
41
  const {
42
42
  renderTitle,
43
- renderQuickSearch
43
+ renderSearchBar
44
44
  } = useExpBarRender(c, ns);
45
45
  useWatchRouteChange(c);
46
46
  return {
47
47
  c,
48
48
  ns,
49
49
  renderTitle,
50
- renderQuickSearch
50
+ renderSearchBar
51
51
  };
52
52
  },
53
53
  render() {
@@ -59,7 +59,7 @@ const GridExpBarControl = /* @__PURE__ */ defineComponent({
59
59
  } = this.c;
60
60
  const slots = {
61
61
  captionbar: this.renderTitle,
62
- searchbar: this.renderQuickSearch
62
+ searchbar: this.renderSearchBar
63
63
  };
64
64
  if (isCreated) {
65
65
  if (XDataModel) {
@@ -28,7 +28,7 @@ export declare const IBizGridExpBarControl: import("@ibiz-template/vue3-util").T
28
28
  renderTitle: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
29
29
  [key: string]: any;
30
30
  }> | null;
31
- renderQuickSearch: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
31
+ renderSearchBar: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
33
  }> | null;
34
34
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -28,7 +28,7 @@ export declare const IBizListExpBarControl: import("@ibiz-template/vue3-util").T
28
28
  renderTitle: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
29
29
  [key: string]: any;
30
30
  }> | null;
31
- renderQuickSearch: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
31
+ renderSearchBar: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
33
  }> | null;
34
34
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -31,7 +31,7 @@ export declare const ListExpBarControl: import("vue").DefineComponent<{
31
31
  renderTitle: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
33
  }> | null;
34
- renderQuickSearch: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
34
+ renderSearchBar: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
35
35
  [key: string]: any;
36
36
  }> | null;
37
37
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -40,14 +40,14 @@ const ListExpBarControl = /* @__PURE__ */ defineComponent({
40
40
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
41
41
  const {
42
42
  renderTitle,
43
- renderQuickSearch
43
+ renderSearchBar
44
44
  } = useExpBarRender(c, ns);
45
45
  useWatchRouteChange(c);
46
46
  return {
47
47
  c,
48
48
  ns,
49
49
  renderTitle,
50
- renderQuickSearch
50
+ renderSearchBar
51
51
  };
52
52
  },
53
53
  render() {
@@ -59,7 +59,7 @@ const ListExpBarControl = /* @__PURE__ */ defineComponent({
59
59
  } = this.c;
60
60
  const slots = {
61
61
  captionbar: this.renderTitle,
62
- searchbar: this.renderQuickSearch
62
+ searchbar: this.renderSearchBar
63
63
  };
64
64
  if (isCreated) {
65
65
  if (XDataModel) {
@@ -9,11 +9,11 @@ import './render-util.scss';
9
9
  * @export
10
10
  * @param {ExpBarControlController} c
11
11
  * @param {Namespace} ns
12
- * @return {*} {({ renderTitle: () => VNode | null; renderQuickSearch: () => VNode | null })}
12
+ * @return {*} {({ renderTitle: () => VNode | null; renderSearchBar: () => VNode | null })}
13
13
  */
14
14
  export declare function useExpBarRender(c: IExpBarControlController, ns: Namespace): {
15
15
  renderTitle: () => VNode | null;
16
- renderQuickSearch: () => VNode | null;
16
+ renderSearchBar: () => VNode | null;
17
17
  };
18
18
  /**
19
19
  * 监听路由变更,当自身所处的路由变更时触发导航栏控制器onRouterChange
@@ -1,4 +1,4 @@
1
- import { resolveComponent, createVNode } from 'vue';
1
+ import { resolveComponent, createVNode, h } from 'vue';
2
2
  import { debounce } from 'lodash-es';
3
3
  import { useRoute } from 'vue-router';
4
4
  import { useNamespace, route2routePath, onRouteChange } from '@ibiz-template/vue3-util';
@@ -34,13 +34,26 @@ function useExpBarRender(c, ns) {
34
34
  "class": [ns.be("caption", "text")]
35
35
  }, [title])]);
36
36
  };
37
- const renderQuickSearch = () => {
37
+ const renderSearchBar = () => {
38
+ var _a, _b;
38
39
  const {
39
40
  model
40
41
  } = c;
41
42
  if (!model.enableSearch) {
42
43
  return null;
43
44
  }
45
+ const modelData = (_b = (_a = c.view.model.viewLayoutPanel) == null ? void 0 : _a.controls) == null ? void 0 : _b.find((item) => item.id === "searchbar");
46
+ if (modelData) {
47
+ const ctrlProps = {
48
+ context: c.context,
49
+ params: c.params
50
+ };
51
+ const comp = resolveComponent("IBizControlShell");
52
+ return h(comp, {
53
+ modelData,
54
+ ...ctrlProps
55
+ });
56
+ }
44
57
  return createVNode(resolveComponent("el-input"), {
45
58
  "model-value": c.state.query,
46
59
  "class": [ns.b("quick-search"), expBarNs.b("quick-search")],
@@ -57,7 +70,7 @@ function useExpBarRender(c, ns) {
57
70
  };
58
71
  return {
59
72
  renderTitle,
60
- renderQuickSearch
73
+ renderSearchBar
61
74
  };
62
75
  }
63
76
  function useWatchRouteChange(c) {
@@ -33,7 +33,7 @@ export declare const IBizTreeExpBarControl: import("@ibiz-template/vue3-util").T
33
33
  renderTitle: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
34
34
  [key: string]: any;
35
35
  }> | null;
36
- renderQuickSearch: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
36
+ renderSearchBar: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
37
37
  [key: string]: any;
38
38
  }> | null;
39
39
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -36,7 +36,7 @@ export declare const TreeExpBarControl: import("vue").DefineComponent<{
36
36
  renderTitle: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
37
37
  [key: string]: any;
38
38
  }> | null;
39
- renderQuickSearch: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
39
+ renderSearchBar: () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
40
40
  [key: string]: any;
41
41
  }> | null;
42
42
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -44,7 +44,7 @@ const TreeExpBarControl = /* @__PURE__ */ defineComponent({
44
44
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
45
45
  const {
46
46
  renderTitle,
47
- renderQuickSearch
47
+ renderSearchBar
48
48
  } = useExpBarRender(c, ns);
49
49
  useWatchRouteChange(c);
50
50
  const navigational = computed(() => {
@@ -55,7 +55,7 @@ const TreeExpBarControl = /* @__PURE__ */ defineComponent({
55
55
  ns,
56
56
  navigational,
57
57
  renderTitle,
58
- renderQuickSearch
58
+ renderSearchBar
59
59
  };
60
60
  },
61
61
  render() {
@@ -68,7 +68,7 @@ const TreeExpBarControl = /* @__PURE__ */ defineComponent({
68
68
  } = state;
69
69
  const slots = {
70
70
  captionbar: this.renderTitle,
71
- searchbar: this.renderQuickSearch
71
+ searchbar: this.renderSearchBar
72
72
  };
73
73
  if (isCreated) {
74
74
  if (XDataModel) {
@@ -1,5 +1,5 @@
1
1
  import { isVNode, renderSlot, createVNode, resolveComponent, h, defineComponent } from 'vue';
2
- import { findChildFormDetails } from '@ibiz-template/runtime';
2
+ import { ScriptFactory, findChildFormDetails } from '@ibiz-template/runtime';
3
3
  import { useNamespace } from '@ibiz-template/vue3-util';
4
4
  import './form.css';
5
5
 
@@ -23,6 +23,19 @@ const FormControl = /* @__PURE__ */ defineComponent({
23
23
  const slotProps = {
24
24
  form: c
25
25
  };
26
+ const renderAttrs = (model) => {
27
+ var _a;
28
+ const attrs = {};
29
+ (_a = model.controlAttributes) == null ? void 0 : _a.forEach((item) => {
30
+ if (item.attrName && item.attrValue) {
31
+ attrs[item.attrName] = ScriptFactory.execSingleLine(item.attrValue, {
32
+ ...props.controller.getEventArgs(),
33
+ data: props.controller.data
34
+ });
35
+ }
36
+ });
37
+ return attrs;
38
+ };
26
39
  const renderByDetailType = (detail) => {
27
40
  if (detail.hidden) {
28
41
  return;
@@ -31,7 +44,8 @@ const FormControl = /* @__PURE__ */ defineComponent({
31
44
  const detailProps = {
32
45
  modelData: detail,
33
46
  controller: c.details[detailId],
34
- key: detail.id
47
+ key: detail.id,
48
+ ...renderAttrs(detail)
35
49
  };
36
50
  if (slots[detailId]) {
37
51
  return renderSlot(slots, detailId, {
@@ -47,7 +47,8 @@ const FormItem = /* @__PURE__ */ defineComponent({
47
47
  controlParams: this.controller.form.controlParams,
48
48
  onFocus: (event) => this.c.onFocus(event),
49
49
  onBlur: (event) => this.c.onBlur(event),
50
- onEnter: (event) => this.controller.onEnter(event)
50
+ onEnter: (event) => this.controller.onEnter(event),
51
+ ...this.$attrs
51
52
  };
52
53
  if (this.c.form.state.isLoaded) {
53
54
  if (this.$slots.default) {
@@ -56,6 +56,12 @@ export declare const FilterModeSelect: import("vue").DefineComponent<{
56
56
  }, {
57
57
  readonly valueOP: ValueOP.RIGHT_LIKE;
58
58
  readonly label: "文本右包含(#%)";
59
+ }, {
60
+ readonly valueOP: ValueOP.EXISTS;
61
+ readonly label: "存在(EXISTS)";
62
+ }, {
63
+ readonly valueOP: ValueOP.NOT_EXISTS;
64
+ readonly label: "不存在(NOTEXISTS)";
59
65
  }] | ({
60
66
  readonly valueOP: ValueOP.EQ;
61
67
  readonly label: "等于(=)";
@@ -95,6 +101,12 @@ export declare const FilterModeSelect: import("vue").DefineComponent<{
95
101
  } | {
96
102
  readonly valueOP: ValueOP.RIGHT_LIKE;
97
103
  readonly label: "文本右包含(#%)";
104
+ } | {
105
+ readonly valueOP: ValueOP.EXISTS;
106
+ readonly label: "存在(EXISTS)";
107
+ } | {
108
+ readonly valueOP: ValueOP.NOT_EXISTS;
109
+ readonly label: "不存在(NOTEXISTS)";
98
110
  })[]>;
99
111
  onChange: (value: string) => void;
100
112
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {