@ibiz-template/vue3-components 0.6.1-alpha.3 → 0.6.2-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/index-NdPkOMvL.js +4 -0
  2. package/dist/index.min.css +1 -1
  3. package/dist/index.system.min.js +1 -1
  4. package/dist/{xlsx-util-E-30JfqY.js → xlsx-util-HHwgsM7j.js} +1 -1
  5. package/es/common/no-data/no-data.css +1 -1
  6. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.d.ts +3 -0
  7. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +25 -0
  8. package/es/control/gantt/gantt.d.ts +1 -1
  9. package/es/control/gantt/index.d.ts +1 -1
  10. package/es/control/grid/grid/grid.css +1 -1
  11. package/es/control/grid/grid/grid.mjs +2 -2
  12. package/es/control/tab-exp-panel/tab-exp-panel.mjs +1 -1
  13. package/es/index.mjs +1 -0
  14. package/es/panel-component/index-actions/index-actions.css +1 -1
  15. package/es/panel-component/panel-index-view-search/panel-index-view-search.mjs +2 -9
  16. package/es/util/open-view-util/open-view-util.d.ts +1 -1
  17. package/es/util/open-view-util/open-view-util.mjs +6 -2
  18. package/es/view/login-view/login-view.mjs +3 -3
  19. package/es/web-app/components/modal-router-shell/modal-router-shell.mjs +4 -2
  20. package/es/web-app/components/router-shell/router-shell.d.ts +8 -3999
  21. package/es/web-app/components/router-shell/router-shell.mjs +4 -4
  22. package/es/web-app/guard/auth-guard/auth-guard.d.ts +88 -9
  23. package/es/web-app/guard/auth-guard/auth-guard.mjs +183 -134
  24. package/es/web-app/guard/auth-guard/dyna-auth-guard.d.ts +6 -0
  25. package/es/web-app/guard/auth-guard/dyna-auth-guard.mjs +67 -0
  26. package/es/web-app/guard/index.d.ts +1 -0
  27. package/es/web-app/guard/index.mjs +1 -0
  28. package/es/web-app/index.d.ts +1 -0
  29. package/es/web-app/index.mjs +2 -0
  30. package/es/web-app/main.d.ts +4 -1
  31. package/es/web-app/main.mjs +10 -1
  32. package/es/web-app/router/index.d.ts +2 -0
  33. package/es/web-app/router/index.mjs +7 -5
  34. package/lib/common/no-data/no-data.css +1 -1
  35. package/lib/control/grid/grid/grid.cjs +2 -2
  36. package/lib/control/grid/grid/grid.css +1 -1
  37. package/lib/control/tab-exp-panel/tab-exp-panel.cjs +1 -1
  38. package/lib/index.cjs +2 -0
  39. package/lib/panel-component/index-actions/index-actions.css +1 -1
  40. package/lib/panel-component/panel-index-view-search/panel-index-view-search.cjs +2 -9
  41. package/lib/util/open-view-util/open-view-util.cjs +6 -2
  42. package/lib/view/login-view/login-view.cjs +3 -3
  43. package/lib/web-app/components/modal-router-shell/modal-router-shell.cjs +4 -2
  44. package/lib/web-app/components/router-shell/router-shell.cjs +4 -4
  45. package/lib/web-app/guard/auth-guard/auth-guard.cjs +182 -133
  46. package/lib/web-app/guard/auth-guard/dyna-auth-guard.cjs +69 -0
  47. package/lib/web-app/guard/index.cjs +2 -0
  48. package/lib/web-app/index.cjs +3 -0
  49. package/lib/web-app/main.cjs +10 -1
  50. package/lib/web-app/router/index.cjs +7 -5
  51. package/package.json +6 -6
  52. package/dist/index-_HUj1AMZ.js +0 -4
@@ -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:0;--ibiz-control-grid-cell-padding:var(--ibiz-spacing-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-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:var(--ibiz-color-tertiary-light-hover);--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:0 var(--ibiz-spacing-base-tight);--ibiz-control-grid-footer-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-footer-bg-color:var(--ibiz-color-tertiary-light-hover);--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-border-color:transparent}.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:3px}.ibiz-control-grid__table .sort-caret{position:initial}.ibiz-control-grid__table.el-table .el-table__cell{padding:0}.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(--el-table-row-hover-bg-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);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:0}@-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:0}.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 .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:0;--ibiz-control-grid-cell-padding:var(--ibiz-spacing-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-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:var(--ibiz-color-tertiary-light-hover);--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:0 var(--ibiz-spacing-base-tight);--ibiz-control-grid-footer-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-footer-bg-color:var(--ibiz-color-tertiary-light-hover);--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-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:3px}.ibiz-control-grid__table .sort-caret{position:initial}.ibiz-control-grid__table.el-table .el-table__cell{padding:0}.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(--el-table-row-hover-bg-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);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:0}@-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:0}.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 .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}
@@ -50,7 +50,7 @@ const TabExpPanelControl = /* @__PURE__ */ vue.defineComponent({
50
50
  const {
51
51
  srfnav
52
52
  } = routePath.pathNodes[depth - 1];
53
- if (srfnav && c.state.activeName && c.state.activeName !== srfnav) {
53
+ if (c.view.isActive && srfnav && c.state.activeName && c.state.activeName !== srfnav) {
54
54
  c.state.activeName = srfnav;
55
55
  c.handleTabChange();
56
56
  }
package/lib/index.cjs CHANGED
@@ -119,6 +119,7 @@ var openViewUtil = require('./util/open-view-util/open-view-util.cjs');
119
119
  var overlayController = require('./util/overlay-controller/overlay-controller.cjs');
120
120
  var usePagination = require('./util/pagination/use-pagination.cjs');
121
121
  var noticeUtil = require('./util/notice-util/notice-util.cjs');
122
+ var authGuard = require('./web-app/guard/auth-guard/auth-guard.cjs');
122
123
  var main = require('./web-app/main.cjs');
123
124
 
124
125
  "use strict";
@@ -241,4 +242,5 @@ exports.OpenViewUtil = openViewUtil.OpenViewUtil;
241
242
  exports.OverlayController = overlayController.OverlayController;
242
243
  exports.usePagination = usePagination.usePagination;
243
244
  exports.NoticeUtil = noticeUtil.NoticeUtil;
245
+ exports.AuthGuard = authGuard.AuthGuard;
244
246
  exports.runApp = main.runApp;
@@ -1 +1 @@
1
- .ibiz-index-actions{width:100%;height:100%}.ibiz-index-actions>.ibiz-row{height:100%;overflow:hidden auto}.ibiz-index-actions>.ibiz-row>.ibiz-col,.ibiz-index-actions>.ibiz-row>.ibiz-col div{overflow:visible}.ibiz-index-actions.is-hidden{display:none}.ibiz-index-actions .el-button{font-size:28px}.ibiz-index-actions .el-button:hover{background-color:transparent}
1
+ .ibiz-index-actions{width:100%;height:100%}.ibiz-index-actions>.ibiz-row{height:100%;overflow:visible}.ibiz-index-actions>.ibiz-row>.ibiz-col:first-child{overflow:visible}.ibiz-index-actions>.ibiz-row>.ibiz-col:first-child>.ibiz-panel-container>.ibiz-row{overflow:visible}.ibiz-index-actions.is-hidden{display:none}.ibiz-index-actions .el-button{font-size:28px}.ibiz-index-actions .el-button:hover{background-color:transparent}
@@ -63,7 +63,7 @@ const PanelIndexViewSearch = /* @__PURE__ */ vue.defineComponent({
63
63
  }
64
64
  return vue.createVNode("div", {
65
65
  "class": this.classArr
66
- }, [this.menuAlign === "LEFT" && !this.isCollapse ? vue.createVNode(vue.resolveComponent("el-input"), {
66
+ }, [this.menuAlign === "LEFT" && !this.isCollapse && vue.createVNode(vue.resolveComponent("el-input"), {
67
67
  "model-value": this.query,
68
68
  "class": this.ns.b("search"),
69
69
  "placeholder": ibiz.i18n.t("component.indexSearch.placeholder"),
@@ -75,14 +75,7 @@ const PanelIndexViewSearch = /* @__PURE__ */ vue.defineComponent({
75
75
  "name": "search"
76
76
  }, null);
77
77
  }
78
- }) : vue.createVNode("div", {
79
- "class": this.ns.b("btn")
80
- }, [vue.createVNode(vue.resolveComponent("el-button"), null, {
81
- default: () => [vue.createVNode("ion-icon", {
82
- "class": this.ns.e("search-icon"),
83
- "name": "search"
84
- }, null)]
85
- })])]);
78
+ })]);
86
79
  }
87
80
  });
88
81
 
@@ -11,7 +11,7 @@ class OpenViewUtil {
11
11
  push(path) {
12
12
  return vue3Util.routerCallback.open(this.router, path);
13
13
  }
14
- async root(appViewId, context, params) {
14
+ async root(appViewId, context, params, modalOptions) {
15
15
  const appView = await ibiz.hub.config.view.get(appViewId);
16
16
  const { path } = await vue3Util.generateRoutePath(
17
17
  appView,
@@ -19,7 +19,11 @@ class OpenViewUtil {
19
19
  context,
20
20
  params
21
21
  );
22
- this.router.push({ path });
22
+ if (modalOptions && modalOptions.replace === true) {
23
+ this.router.replace({ path });
24
+ } else {
25
+ this.router.push({ path });
26
+ }
23
27
  return { ok: true };
24
28
  }
25
29
  async rootByModal(appViewId, context, params) {
@@ -83,9 +83,9 @@ const LoginView = /* @__PURE__ */ vue.defineComponent({
83
83
  }
84
84
  } else {
85
85
  try {
86
- const loginViewModel = await ibiz.hub.getAppView("AppLoginView");
87
- if (loginViewModel) {
88
- loginView.value = loginViewModel;
86
+ const loginViewConfig = await ibiz.hub.config.view.get("AppLoginView");
87
+ if (loginViewConfig) {
88
+ loginView.value = loginViewConfig;
89
89
  hasLoginView.value = true;
90
90
  }
91
91
  } catch (err) {
@@ -77,10 +77,12 @@ const ModalRouterShell = /* @__PURE__ */ vue.defineComponent({
77
77
  const _context = core.IBizContext.create({});
78
78
  viewData.value.context = _context;
79
79
  }
80
- let appView = null;
80
+ let appView = viewData.value.viewConfig;
81
81
  let component;
82
82
  try {
83
- appView = await ibiz.hub.config.view.get(appViewId);
83
+ if (!appView) {
84
+ appView = await ibiz.hub.config.view.get(appViewId);
85
+ }
84
86
  component = vue3Util.createOverlayView({
85
87
  context: viewData.value.context,
86
88
  params: viewData.value.params,
@@ -83,22 +83,22 @@ const RouterShell = /* @__PURE__ */ vue.defineComponent({
83
83
  context,
84
84
  params,
85
85
  srfnav,
86
- viewModel
86
+ viewConfig
87
87
  } = this.viewData;
88
88
  const props = ramda.mergeDeepLeft({
89
89
  ...this.$props,
90
90
  ...this.$attrs,
91
91
  context,
92
92
  params,
93
- modelData: viewModel,
94
- key: viewModel.codeName
93
+ viewId: viewConfig.id,
94
+ key: viewConfig.codeName
95
95
  }, {
96
96
  state: {
97
97
  srfnav
98
98
  }
99
99
  });
100
100
  return vue.createVNode(vue.Fragment, null, [vue.h(vue.resolveComponent("IBizViewShell"), props, this.$slots), this.isActivated && vue.createVNode(vue.resolveComponent("router-view"), {
101
- "key": viewModel.codeName,
101
+ "key": viewConfig.codeName,
102
102
  "name": runtime.RouteConst.ROUTE_MODAL_TAG,
103
103
  "modal": this.routeModal
104
104
  }, null)]);
@@ -1,39 +1,189 @@
1
1
  'use strict';
2
2
 
3
3
  var core = require('@ibiz-template/core');
4
- var modelHelper = require('@ibiz-template/model-helper');
5
4
  var ramda = require('ramda');
6
5
  var vue3Util = require('@ibiz-template/vue3-util');
7
- var index = require('../../../locale/index.cjs');
8
6
 
9
7
  "use strict";
10
- async function loadAppData() {
11
- const res = await ibiz.net.get("/appdata");
12
- if (res.ok) {
13
- ibiz.appData = res.data;
8
+ var __defProp = Object.defineProperty;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __publicField = (obj, key, value) => {
11
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
12
+ return value;
13
+ };
14
+ class AuthGuard {
15
+ constructor(opts) {
16
+ /**
17
+ * 是否是全代码模式
18
+ * @author lxm
19
+ * @date 2024-02-21 11:16:08
20
+ * @type {boolean}
21
+ */
22
+ __publicField(this, "isFullCode", false);
23
+ /**
24
+ * 自定义模型加载
25
+ * @author lxm
26
+ * @date 2024-02-21 11:16:17
27
+ * @type {ModelLoaderProvider}
28
+ */
29
+ __publicField(this, "customModelLoader");
30
+ this.isFullCode = (opts == null ? void 0 : opts.isFullCode) || false;
31
+ this.customModelLoader = (opts == null ? void 0 : opts.customModelLoader) || void 0;
32
+ if (this.customModelLoader) {
33
+ ibiz.hub.registerModelLoaderProvider(this.customModelLoader);
34
+ }
14
35
  }
15
- }
16
- async function loadOrgData() {
17
- const res = await ibiz.net.get("/uaa/getbydcsystem/".concat(ibiz.env.dcSystem));
18
- if (res.ok) {
19
- const orgDataItems = res.data;
20
- if (orgDataItems) {
21
- const [data] = orgDataItems;
22
- ibiz.orgData = data;
36
+ /**
37
+ * 总的入口校验
38
+ * @author lxm
39
+ * @date 2024-02-21 10:43:55
40
+ * @param {boolean} notLogin
41
+ * @return {*} {Promise<boolean>}
42
+ */
43
+ async verify(notLogin = true) {
44
+ if (notLogin) {
45
+ let result = true;
46
+ try {
47
+ if (ibiz.env.enableAnonymous) {
48
+ await this.anonymousValidate();
49
+ }
50
+ await this.appInit();
51
+ } catch (error) {
52
+ result = false;
53
+ ibiz.util.error.handle(error);
54
+ }
55
+ return result;
23
56
  }
57
+ await this.initModel(false);
58
+ return true;
24
59
  }
25
- }
26
- async function loadTheme() {
27
- const app = ibiz.hub.getApp();
28
- const uiThemes = app.model.appUIThemes || [];
29
- if (uiThemes.length > 0) {
30
- const theme = uiThemes[0];
31
- await ibiz.util.theme.loadTheme(theme);
60
+ /**
61
+ * 匿名登录相关校验逻辑,不通过会抛异常
62
+ * @author lxm
63
+ * @date 2024-01-03 07:29:30
64
+ * @return {*} {Promise<void>}
65
+ */
66
+ async anonymousValidate() {
67
+ const authInfo = ibiz.auth.getAuthInfo();
68
+ if (authInfo && !authInfo.isAnonymous) {
69
+ return;
70
+ }
71
+ await this.initModel(false);
72
+ const urlPaths = window.location.hash.split("/");
73
+ const viewName = urlPaths[urlPaths.length - 2];
74
+ let viewModel;
75
+ if (viewName !== "#") {
76
+ try {
77
+ viewModel = await ibiz.hub.getAppView(viewName);
78
+ } catch (error) {
79
+ ibiz.log.error(error);
80
+ }
81
+ }
82
+ if (!viewModel) {
83
+ ibiz.log.error(
84
+ "\u627E\u4E0D\u5230\u89C6\u56FE\u6A21\u578B".concat(viewName, ",\u8BF7\u786E\u4FDD\u8BE5\u89C6\u56FE\u914D\u7F6E\u4E86\u533F\u540D\u8BBF\u95EE\u548C\u7528\u6237\u5F15\u7528")
85
+ );
86
+ this.throw401();
87
+ return;
88
+ }
89
+ if (viewModel.accUserMode !== 3) {
90
+ this.throw401();
91
+ }
92
+ if (!authInfo) {
93
+ const loginResult = await ibiz.auth.anonymousLogin();
94
+ if (!loginResult) {
95
+ throw new core.RuntimeError("\u533F\u540D\u7528\u6237\u767B\u5F55\u5931\u8D25");
96
+ }
97
+ }
32
98
  }
33
- }
34
- async function initEnvironment(helper) {
35
- if (helper) {
36
- const app = await helper.getAppModel();
99
+ /**
100
+ * 应用参数初始化
101
+ *
102
+ * @author chitanda
103
+ * @date 2022-07-20 19:07:54
104
+ * @return {*} {Promise<void>}
105
+ */
106
+ async appInit() {
107
+ if (ibiz.env.isSaaSMode === true) {
108
+ await this.loadOrgData();
109
+ }
110
+ await this.loadAppData();
111
+ await this.initModel();
112
+ await ibiz.auth.extendLogin();
113
+ await ibiz.hub.notice.init();
114
+ }
115
+ /**
116
+ * 初始化模型
117
+ * @author lxm
118
+ * @date 2024-02-21 10:48:36
119
+ * @param {boolean} [permission=true]
120
+ * @return {*} {Promise<void>}
121
+ */
122
+ async initModel(_permission = true) {
123
+ }
124
+ /**
125
+ * 加载应用数据
126
+ *
127
+ * @author chitanda
128
+ * @date 2022-07-20 20:07:50
129
+ * @return {*} {Promise<void>}
130
+ */
131
+ async loadAppData() {
132
+ const res = await ibiz.net.get("/appdata");
133
+ if (res.ok) {
134
+ ibiz.appData = res.data;
135
+ }
136
+ }
137
+ /**
138
+ * 加载组织数据
139
+ *
140
+ * @author chitanda
141
+ * @date 2022-07-20 20:07:44
142
+ * @return {*} {Promise<void>}
143
+ */
144
+ async loadOrgData() {
145
+ const res = await ibiz.net.get("/uaa/getbydcsystem/".concat(ibiz.env.dcSystem));
146
+ if (res.ok) {
147
+ const orgDataItems = res.data;
148
+ if (orgDataItems) {
149
+ const [data] = orgDataItems;
150
+ ibiz.orgData = data;
151
+ }
152
+ }
153
+ }
154
+ async initTheme(appModel) {
155
+ if (!appModel.appUIThemes) {
156
+ const module = await import('@ibiz-template/web-theme');
157
+ const theme = module.default || module;
158
+ vue3Util.AppHooks.useComponent.callSync(null, theme);
159
+ } else {
160
+ await this.loadTheme();
161
+ }
162
+ }
163
+ /**
164
+ * 加载主题插件
165
+ *
166
+ * @author chitanda
167
+ * @date 2023-12-03 01:12:38
168
+ * @protected
169
+ * @return {*} {Promise<void>}
170
+ */
171
+ async loadTheme() {
172
+ const app = ibiz.hub.getApp();
173
+ const uiThemes = app.model.appUIThemes || [];
174
+ if (uiThemes.length > 0) {
175
+ const theme = uiThemes[0];
176
+ await ibiz.util.theme.loadTheme(theme);
177
+ }
178
+ }
179
+ /**
180
+ * 根据应用自定义参数解析成环境变量
181
+ *
182
+ * @author chitanda
183
+ * @date 2023-11-24 19:11:50
184
+ * @return {*} {Promise<void>}
185
+ */
186
+ async initEnvironment(app) {
37
187
  const userParam = app.userParam;
38
188
  if (userParam) {
39
189
  Object.keys(userParam).forEach((key) => {
@@ -56,116 +206,15 @@ async function initEnvironment(helper) {
56
206
  ibiz.log.setLevel(ibiz.env.logLevel);
57
207
  }
58
208
  }
59
- }
60
- let hasModelInit = false;
61
- let noPermissionModel = false;
62
- async function initModel(permission = true) {
63
- if (!hasModelInit || hasModelInit && noPermissionModel !== permission) {
64
- ibiz.hub.reset();
65
- const helper = new modelHelper.ModelHelper(
66
- async (url, params) => {
67
- const res = await ibiz.net.get(
68
- "".concat(ibiz.env.remoteModelUrl).concat(url),
69
- params,
70
- permission ? {} : { srfdcsystem: ibiz.env.dcSystem }
71
- );
72
- return res.data;
73
- },
74
- ibiz.env.appId,
75
- permission
76
- );
77
- await initEnvironment(helper);
78
- const app = await ibiz.hub.getAppAsync(ibiz.env.appId);
79
- const appModel = app.model;
80
- ibiz.env.isMob = appModel.mobileApp === true;
81
- if (ibiz.env.isEnableMultiLan) {
82
- const lang = ibiz.i18n.getLang();
83
- const m = await helper.getPSAppLang(lang.replace("-", "_").toUpperCase());
84
- const items = m.languageItems || [];
85
- const data = {};
86
- items.forEach((item) => {
87
- data[item.lanResTag] = item.content;
88
- });
89
- index.i18n.global.mergeLocaleMessage(lang, data);
90
- }
91
- if (!appModel.appUIThemes) {
92
- const module = await import('@ibiz-template/web-theme');
93
- const theme = module.default || module;
94
- vue3Util.AppHooks.useComponent.callSync(null, theme);
95
- } else {
96
- await loadTheme();
97
- }
98
- }
99
- noPermissionModel = permission;
100
- hasModelInit = true;
101
- }
102
- async function appInit() {
103
- if (ibiz.env.isSaaSMode === true) {
104
- await loadOrgData();
105
- }
106
- await loadAppData();
107
- await initModel();
108
- await ibiz.auth.extendLogin();
109
- await ibiz.hub.notice.init();
110
- }
111
- function throw401() {
112
- throw new core.HttpError({
113
- response: {
114
- status: 401,
115
- statusText: "\u65E0\u6743\u9650\u8BBF\u95EE\uFF01"
116
- }
117
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
118
- });
119
- }
120
- async function anonymousValidate() {
121
- const authInfo = ibiz.auth.getAuthInfo();
122
- if (authInfo && !authInfo.isAnonymous) {
123
- return;
124
- }
125
- await initModel(false);
126
- const urlPaths = window.location.hash.split("/");
127
- const viewName = urlPaths[urlPaths.length - 2];
128
- let viewModel;
129
- if (viewName !== "#") {
130
- try {
131
- viewModel = await ibiz.hub.getAppView(viewName);
132
- } catch (error) {
133
- ibiz.log.error(error);
134
- }
135
- }
136
- if (!viewModel) {
137
- ibiz.log.error(
138
- "\u627E\u4E0D\u5230\u89C6\u56FE\u6A21\u578B".concat(viewName, ",\u8BF7\u786E\u4FDD\u8BE5\u89C6\u56FE\u914D\u7F6E\u4E86\u533F\u540D\u8BBF\u95EE\u548C\u7528\u6237\u5F15\u7528")
139
- );
140
- throw401();
141
- return;
142
- }
143
- if (viewModel.accUserMode !== 3) {
144
- throw401();
145
- }
146
- if (!authInfo) {
147
- const loginResult = await ibiz.auth.anonymousLogin();
148
- if (!loginResult) {
149
- throw new core.RuntimeError("\u533F\u540D\u7528\u6237\u767B\u5F55\u5931\u8D25");
150
- }
151
- }
152
- }
153
- async function AuthGuard(notLogin = true) {
154
- if (notLogin) {
155
- let result = true;
156
- try {
157
- if (ibiz.env.enableAnonymous) {
158
- await anonymousValidate();
209
+ throw401() {
210
+ throw new core.HttpError({
211
+ response: {
212
+ status: 401,
213
+ statusText: "\u65E0\u6743\u9650\u8BBF\u95EE\uFF01"
159
214
  }
160
- await appInit();
161
- } catch (error) {
162
- result = false;
163
- ibiz.util.error.handle(error);
164
- }
165
- return result;
215
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
216
+ });
166
217
  }
167
- await initModel(false);
168
- return true;
169
218
  }
170
219
 
171
220
  exports.AuthGuard = AuthGuard;
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ var modelHelper = require('@ibiz-template/model-helper');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ var authGuard = require('./auth-guard.cjs');
6
+ var index = require('../../../locale/index.cjs');
7
+
8
+ "use strict";
9
+ var __defProp = Object.defineProperty;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __publicField = (obj, key, value) => {
12
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
13
+ return value;
14
+ };
15
+ class DynaAuthGuard extends authGuard.AuthGuard {
16
+ constructor() {
17
+ super(...arguments);
18
+ __publicField(this, "hasModelInit", false);
19
+ __publicField(this, "noPermissionModel", false);
20
+ }
21
+ async initModel(permission = true) {
22
+ if (!this.hasModelInit || this.hasModelInit && this.noPermissionModel !== permission) {
23
+ ibiz.hub.reset();
24
+ const helper = new modelHelper.ModelHelper(
25
+ async (url, params) => {
26
+ const res = await ibiz.net.get(
27
+ "".concat(ibiz.env.remoteModelUrl).concat(url),
28
+ params,
29
+ permission ? {} : { srfdcsystem: ibiz.env.dcSystem }
30
+ );
31
+ return res.data;
32
+ },
33
+ ibiz.env.appId,
34
+ permission
35
+ );
36
+ const tempApp = await helper.getAppModel();
37
+ await this.initEnvironment(tempApp);
38
+ const app = await ibiz.hub.getAppAsync(ibiz.env.appId);
39
+ const appModel = app.model;
40
+ ibiz.env.isMob = appModel.mobileApp === true;
41
+ if (ibiz.env.isEnableMultiLan) {
42
+ const lang = ibiz.i18n.getLang();
43
+ const m = await helper.getPSAppLang(
44
+ lang.replace("-", "_").toUpperCase()
45
+ );
46
+ const items = m.languageItems || [];
47
+ const data = {};
48
+ items.forEach((item) => {
49
+ data[item.lanResTag] = item.content;
50
+ });
51
+ index.i18n.global.mergeLocaleMessage(lang, data);
52
+ }
53
+ if (!appModel.appUIThemes) {
54
+ const module = await import('@ibiz-template/web-theme');
55
+ const theme = module.default || module;
56
+ vue3Util.AppHooks.useComponent.callSync(null, theme);
57
+ } else {
58
+ await this.loadTheme();
59
+ }
60
+ if (app.model.title) {
61
+ ibiz.util.setBrowserTitle("");
62
+ }
63
+ }
64
+ this.noPermissionModel = permission;
65
+ this.hasModelInit = true;
66
+ }
67
+ }
68
+
69
+ exports.DynaAuthGuard = DynaAuthGuard;
@@ -1,7 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var authGuard = require('./auth-guard/auth-guard.cjs');
4
+ var dynaAuthGuard = require('./auth-guard/dyna-auth-guard.cjs');
4
5
 
5
6
  "use strict";
6
7
 
7
8
  exports.AuthGuard = authGuard.AuthGuard;
9
+ exports.DynaAuthGuard = dynaAuthGuard.DynaAuthGuard;
@@ -1,7 +1,10 @@
1
1
  'use strict';
2
2
 
3
+ require('./guard/index.cjs');
3
4
  var main = require('./main.cjs');
5
+ var authGuard = require('./guard/auth-guard/auth-guard.cjs');
4
6
 
5
7
  "use strict";
6
8
 
7
9
  exports.runApp = main.runApp;
10
+ exports.AuthGuard = authGuard.AuthGuard;
@@ -9,6 +9,8 @@ var App = require('./App.cjs');
9
9
  require('./util/index.cjs');
10
10
  var index = require('./router/index.cjs');
11
11
  require('../util/index.cjs');
12
+ require('./guard/index.cjs');
13
+ var dynaAuthGuard = require('./guard/auth-guard/dyna-auth-guard.cjs');
12
14
  var openViewUtil = require('../util/open-view-util/open-view-util.cjs');
13
15
  var messageUtil = require('../util/message-util/message-util.cjs');
14
16
  var modalUtil = require('../util/modal-util/modal-util.cjs');
@@ -20,7 +22,7 @@ var overlayController = require('../util/overlay-controller/overlay-controller.c
20
22
  var unauthorizedHandler = require('./util/unauthorized-handler/unauthorized-handler.cjs');
21
23
 
22
24
  "use strict";
23
- async function runApp(plugins) {
25
+ async function runApp(plugins, opts) {
24
26
  vue3Util.AppHooks.createApp.tap((_, app2) => {
25
27
  if (plugins) {
26
28
  plugins.forEach((plugin) => {
@@ -45,6 +47,13 @@ async function runApp(plugins) {
45
47
  });
46
48
  });
47
49
  await attachEnvironmentConfig.attachEnvironmentConfig();
50
+ let authGuard;
51
+ if (opts == null ? void 0 : opts.getAuthGuard) {
52
+ authGuard = opts.getAuthGuard();
53
+ } else {
54
+ authGuard = new dynaAuthGuard.DynaAuthGuard();
55
+ }
56
+ index.AppRouter.setAuthGuard((notLogin) => authGuard.verify(notLogin));
48
57
  app.use(index.AppRouter.getRouter());
49
58
  ibiz.openView = new openViewUtil.OpenViewUtil(index.AppRouter.getRouter());
50
59
  ibiz.message = new messageUtil.MessageUtil();