@ibiz-template/vue3-components 0.7.11 → 0.7.13-alpha.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 (168) hide show
  1. package/dist/index-Ky5xo5V5.js +4 -0
  2. package/dist/index-WP6TUdg-.js +1 -0
  3. package/dist/index-kgWpXafW.js +1 -0
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/wang-editor-PQvDXaA9.js +1 -0
  7. package/dist/{xlsx-util-lBpTaCO_.js → xlsx-util-OSsMvylt.js} +1 -1
  8. package/es/control/context-menu/context-menu.d.ts +1 -0
  9. package/es/control/context-menu/context-menu.mjs +8 -0
  10. package/es/control/context-menu/index.d.ts +1 -0
  11. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.d.ts +2 -0
  12. package/es/control/form/form-detail/form-group-panel/form-group-panel.mjs +1 -1
  13. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +2 -0
  14. package/es/control/grid/grid/grid.mjs +0 -1
  15. package/es/control/kanban/kanban.mjs +1 -1
  16. package/es/control/list/list.mjs +2 -2
  17. package/es/control/search-bar/filter-tree/filter-tree.mjs +2 -2
  18. package/es/control/toolbar/export-excel/export-excel.css +1 -1
  19. package/es/editor/autocomplete/autocomplete-editor.controller.mjs +4 -1
  20. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.mjs +3 -1
  21. package/es/editor/code/monaco-editor/monaco-editor.mjs +3 -3
  22. package/es/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.mjs +1 -1
  23. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +2 -1
  24. package/es/editor/data-picker/picker-editor.controller.mjs +12 -3
  25. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.mjs +1 -1
  26. package/es/editor/html/wang-editor/wang-editor.mjs +7 -7
  27. package/es/editor/list-box/list-box-picker-editor.controller.mjs +4 -1
  28. package/es/editor/markdown/markdown-editor.controller.mjs +2 -2
  29. package/es/editor/not-supported-editor/not-supported-editor.mjs +4 -2
  30. package/es/editor/preset/preset-rawitem/ibiz-preset-rawitem/ibiz-preset-rawitem.mjs +4 -2
  31. package/es/editor/span/span-editor.controller.mjs +4 -1
  32. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.mjs +3 -1
  33. package/es/editor/text-box/text-box-editor.controller.mjs +4 -4
  34. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +7 -3
  35. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.mjs +1 -1
  36. package/es/locale/en/index.d.ts +550 -44
  37. package/es/locale/en/index.mjs +554 -48
  38. package/es/locale/zh-CN/index.d.ts +548 -44
  39. package/es/locale/zh-CN/index.mjs +552 -48
  40. package/es/panel-component/auth-captcha/auth-captcha.controller.d.ts +57 -0
  41. package/es/panel-component/auth-captcha/auth-captcha.controller.mjs +123 -0
  42. package/es/panel-component/auth-captcha/auth-captcha.css +1 -0
  43. package/es/panel-component/auth-captcha/auth-captcha.d.ts +29 -0
  44. package/es/panel-component/auth-captcha/auth-captcha.mjs +72 -0
  45. package/es/panel-component/auth-captcha/auth-captcha.provider.d.ts +14 -0
  46. package/es/panel-component/auth-captcha/auth-captcha.provider.mjs +21 -0
  47. package/es/panel-component/auth-captcha/auth-captcha.state.d.ts +45 -0
  48. package/es/panel-component/auth-captcha/auth-captcha.state.mjs +51 -0
  49. package/es/panel-component/auth-captcha/index.d.ts +26 -0
  50. package/es/panel-component/auth-captcha/index.mjs +15 -0
  51. package/es/panel-component/auth-userinfo/auth-userinfo.mjs +1 -1
  52. package/es/panel-component/index.mjs +4 -0
  53. package/es/panel-component/nav-pos-index/nav-pos-index.mjs +2 -2
  54. package/es/panel-component/nav-tabs/nav-tabs.mjs +4 -4
  55. package/es/panel-component/panel-button/panel-button.controller.mjs +7 -1
  56. package/es/panel-component/panel-remember-me/panel-remember-me.mjs +1 -1
  57. package/es/panel-component/panel-tab-panel/index.d.ts +4 -2
  58. package/es/panel-component/panel-tab-panel/panel-tab-panel.controller.d.ts +31 -0
  59. package/es/panel-component/panel-tab-panel/panel-tab-panel.controller.mjs +42 -0
  60. package/es/panel-component/panel-tab-panel/panel-tab-panel.d.ts +5 -3
  61. package/es/panel-component/panel-tab-panel/panel-tab-panel.mjs +14 -5
  62. package/es/panel-component/panel-tab-panel/panel-tab-panel.provider.d.ts +2 -1
  63. package/es/panel-component/panel-tab-panel/panel-tab-panel.provider.mjs +2 -2
  64. package/es/panel-component/panel-tab-panel/panel-tab-panel.state.d.ts +20 -0
  65. package/es/panel-component/panel-tab-panel/panel-tab-panel.state.mjs +24 -0
  66. package/es/panel-component/searchform-buttons/searchform-buttons.controller.mjs +3 -1
  67. package/es/panel-component/searchform-buttons/searchform-buttons.mjs +16 -11
  68. package/es/panel-component/short-cut/index.d.ts +43 -0
  69. package/es/panel-component/short-cut/index.mjs +12 -0
  70. package/es/panel-component/short-cut/short-cut.css +1 -0
  71. package/es/panel-component/short-cut/short-cut.d.ts +46 -0
  72. package/es/panel-component/short-cut/short-cut.mjs +190 -0
  73. package/es/panel-component/short-cut/short-cut.provider.d.ts +12 -0
  74. package/es/panel-component/short-cut/short-cut.provider.mjs +21 -0
  75. package/es/panel-component/user-message/async-action/async-action-preview/async-action-preview.mjs +20 -14
  76. package/es/panel-component/user-message/async-action/async-action-tab/async-action-tab.mjs +5 -3
  77. package/es/panel-component/user-message/internal-message/common/internal-message-container/internal-message-container.mjs +1 -1
  78. package/es/panel-component/user-message/internal-message/internal-message-json/internal-message-json.mjs +3 -3
  79. package/es/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.mjs +9 -5
  80. package/es/panel-component/user-message/user-message.mjs +4 -4
  81. package/es/view/403-view/403-view.mjs +4 -4
  82. package/es/view/404-view/404-view.mjs +4 -4
  83. package/es/view/error-view/error-view.mjs +3 -1
  84. package/es/view/login-view/login-view.mjs +27 -23
  85. package/es/view/sub-app-ref-view/sub-app-ref-view.mjs +1 -1
  86. package/es/view-engine/edit-view.engine.mjs +22 -18
  87. package/es/view-engine/exp-view.engine.mjs +1 -1
  88. package/es/view-engine/login-view.engine.d.ts +3 -1
  89. package/es/view-engine/login-view.engine.mjs +20 -4
  90. package/es/view-engine/mpickup-view-engine.mjs +1 -1
  91. package/es/view-engine/opt-view.engine.mjs +2 -2
  92. package/es/view-engine/tab-exp-view.engine.mjs +2 -2
  93. package/es/view-engine/wf-dyna-edit-view.engine.mjs +5 -2
  94. package/es/web-app/guard/auth-guard/auth-guard.mjs +2 -2
  95. package/es/web-app/util/unauthorized-handler/unauthorized-handler.mjs +3 -1
  96. package/lib/control/context-menu/context-menu.cjs +8 -0
  97. package/lib/control/form/form-detail/form-group-panel/form-group-panel.cjs +1 -1
  98. package/lib/control/grid/grid/grid.cjs +0 -1
  99. package/lib/control/kanban/kanban.cjs +1 -1
  100. package/lib/control/list/list.cjs +1 -1
  101. package/lib/control/search-bar/filter-tree/filter-tree.cjs +2 -2
  102. package/lib/control/toolbar/export-excel/export-excel.css +1 -1
  103. package/lib/editor/autocomplete/autocomplete-editor.controller.cjs +4 -1
  104. package/lib/editor/cascader/ibiz-cascader/ibiz-cascader.cjs +3 -1
  105. package/lib/editor/code/monaco-editor/monaco-editor.cjs +3 -3
  106. package/lib/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.cjs +1 -1
  107. package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +2 -1
  108. package/lib/editor/data-picker/picker-editor.controller.cjs +12 -3
  109. package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.cjs +1 -1
  110. package/lib/editor/html/wang-editor/wang-editor.cjs +6 -6
  111. package/lib/editor/list-box/list-box-picker-editor.controller.cjs +4 -1
  112. package/lib/editor/markdown/markdown-editor.controller.cjs +2 -2
  113. package/lib/editor/not-supported-editor/not-supported-editor.cjs +3 -1
  114. package/lib/editor/preset/preset-rawitem/ibiz-preset-rawitem/ibiz-preset-rawitem.cjs +3 -1
  115. package/lib/editor/span/span-editor.controller.cjs +4 -1
  116. package/lib/editor/text-box/ibiz-input-ip/ibiz-input-ip.cjs +3 -1
  117. package/lib/editor/text-box/text-box-editor.controller.cjs +4 -4
  118. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +6 -2
  119. package/lib/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.cjs +1 -1
  120. package/lib/locale/en/index.cjs +554 -48
  121. package/lib/locale/zh-CN/index.cjs +552 -48
  122. package/lib/panel-component/auth-captcha/auth-captcha.cjs +74 -0
  123. package/lib/panel-component/auth-captcha/auth-captcha.controller.cjs +125 -0
  124. package/lib/panel-component/auth-captcha/auth-captcha.css +1 -0
  125. package/lib/panel-component/auth-captcha/auth-captcha.provider.cjs +23 -0
  126. package/lib/panel-component/auth-captcha/auth-captcha.state.cjs +53 -0
  127. package/lib/panel-component/auth-captcha/index.cjs +20 -0
  128. package/lib/panel-component/auth-userinfo/auth-userinfo.cjs +1 -1
  129. package/lib/panel-component/index.cjs +4 -0
  130. package/lib/panel-component/nav-pos-index/nav-pos-index.cjs +1 -1
  131. package/lib/panel-component/nav-tabs/nav-tabs.cjs +3 -3
  132. package/lib/panel-component/panel-button/panel-button.controller.cjs +7 -1
  133. package/lib/panel-component/panel-remember-me/panel-remember-me.cjs +1 -1
  134. package/lib/panel-component/panel-tab-panel/panel-tab-panel.cjs +14 -5
  135. package/lib/panel-component/panel-tab-panel/panel-tab-panel.controller.cjs +44 -0
  136. package/lib/panel-component/panel-tab-panel/panel-tab-panel.provider.cjs +2 -2
  137. package/lib/panel-component/panel-tab-panel/panel-tab-panel.state.cjs +26 -0
  138. package/lib/panel-component/searchform-buttons/searchform-buttons.cjs +15 -10
  139. package/lib/panel-component/searchform-buttons/searchform-buttons.controller.cjs +3 -1
  140. package/lib/panel-component/short-cut/index.cjs +17 -0
  141. package/lib/panel-component/short-cut/short-cut.cjs +192 -0
  142. package/lib/panel-component/short-cut/short-cut.css +1 -0
  143. package/lib/panel-component/short-cut/short-cut.provider.cjs +23 -0
  144. package/lib/panel-component/user-message/async-action/async-action-preview/async-action-preview.cjs +19 -13
  145. package/lib/panel-component/user-message/async-action/async-action-tab/async-action-tab.cjs +4 -2
  146. package/lib/panel-component/user-message/internal-message/common/internal-message-container/internal-message-container.cjs +1 -1
  147. package/lib/panel-component/user-message/internal-message/internal-message-json/internal-message-json.cjs +2 -2
  148. package/lib/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.cjs +8 -4
  149. package/lib/panel-component/user-message/user-message.cjs +4 -4
  150. package/lib/view/403-view/403-view.cjs +3 -3
  151. package/lib/view/404-view/404-view.cjs +3 -3
  152. package/lib/view/error-view/error-view.cjs +3 -1
  153. package/lib/view/login-view/login-view.cjs +26 -22
  154. package/lib/view/sub-app-ref-view/sub-app-ref-view.cjs +1 -1
  155. package/lib/view-engine/edit-view.engine.cjs +22 -18
  156. package/lib/view-engine/exp-view.engine.cjs +1 -1
  157. package/lib/view-engine/login-view.engine.cjs +20 -4
  158. package/lib/view-engine/mpickup-view-engine.cjs +1 -1
  159. package/lib/view-engine/opt-view.engine.cjs +2 -2
  160. package/lib/view-engine/tab-exp-view.engine.cjs +2 -2
  161. package/lib/view-engine/wf-dyna-edit-view.engine.cjs +5 -2
  162. package/lib/web-app/guard/auth-guard/auth-guard.cjs +2 -2
  163. package/lib/web-app/util/unauthorized-handler/unauthorized-handler.cjs +3 -1
  164. package/package.json +6 -5
  165. package/dist/index-0Z8KS6t6.js +0 -1
  166. package/dist/index-GZW20-jI.js +0 -4
  167. package/dist/index-OkS9bkdl.js +0 -1
  168. package/dist/wang-editor-HlmvPsb1.js +0 -1
@@ -0,0 +1,57 @@
1
+ import { IPanelRawItem } from '@ibiz/model-core';
2
+ import { PanelItemController, PanelNotifyState } from '@ibiz-template/runtime';
3
+ import { AuthCaptchaState } from './auth-captcha.state';
4
+ /**
5
+ * 人机识别控制器
6
+ *
7
+ * @export
8
+ * @class AuthCaptchaController
9
+ * @extends {PanelItemController<IPanelRawItem>}
10
+ */
11
+ export declare class AuthCaptchaController extends PanelItemController<IPanelRawItem> {
12
+ state: AuthCaptchaState;
13
+ /**
14
+ * 验证码数据
15
+ *
16
+ * @private
17
+ * @memberof AuthCaptchaController
18
+ */
19
+ private captcha;
20
+ protected createState(): AuthCaptchaState;
21
+ /**
22
+ * 面板状态变更通知
23
+ *
24
+ * @param {PanelNotifyState} _state
25
+ * @return {*} {Promise<void>}
26
+ * @memberof AuthCaptchaController
27
+ */
28
+ panelStateNotify(_state: PanelNotifyState): Promise<void>;
29
+ /**
30
+ * 初始化
31
+ *
32
+ * @protected
33
+ * @return {*} {Promise<void>}
34
+ * @memberof AuthCaptchaController
35
+ */
36
+ protected onInit(): Promise<void>;
37
+ /**
38
+ * 值校验
39
+ *
40
+ * @return {*} {Promise<boolean>}
41
+ * @memberof AuthCaptchaController
42
+ */
43
+ validate(): Promise<boolean>;
44
+ /**
45
+ * 值改变
46
+ *
47
+ * @memberof AuthCaptchaController
48
+ */
49
+ onChange(): void;
50
+ /**
51
+ * 加载验证码
52
+ *
53
+ * @return {*} {Promise<void>}ss
54
+ * @memberof AuthCaptchaController
55
+ */
56
+ loadCaptcha(): Promise<void>;
57
+ }
@@ -0,0 +1,123 @@
1
+ import { reactive } from 'vue';
2
+ import { PanelItemController } from '@ibiz-template/runtime';
3
+ import axios from 'axios';
4
+ import { AuthCaptchaState } from './auth-captcha.state.mjs';
5
+
6
+ "use strict";
7
+ var __defProp = Object.defineProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __publicField = (obj, key, value) => {
10
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
11
+ return value;
12
+ };
13
+ class AuthCaptchaController extends PanelItemController {
14
+ constructor() {
15
+ super(...arguments);
16
+ /**
17
+ * 验证码数据
18
+ *
19
+ * @private
20
+ * @memberof AuthCaptchaController
21
+ */
22
+ __publicField(this, "captcha", reactive({
23
+ "Captcha-State": "",
24
+ "Captcha-Code": ""
25
+ }));
26
+ }
27
+ createState() {
28
+ var _a;
29
+ return new AuthCaptchaState((_a = this.parent) == null ? void 0 : _a.state);
30
+ }
31
+ /**
32
+ * 面板状态变更通知
33
+ *
34
+ * @param {PanelNotifyState} _state
35
+ * @return {*} {Promise<void>}
36
+ * @memberof AuthCaptchaController
37
+ */
38
+ async panelStateNotify(_state) {
39
+ super.panelStateNotify(_state);
40
+ this.data.captcha = this.captcha;
41
+ }
42
+ /**
43
+ * 初始化
44
+ *
45
+ * @protected
46
+ * @return {*} {Promise<void>}
47
+ * @memberof AuthCaptchaController
48
+ */
49
+ async onInit() {
50
+ super.onInit();
51
+ await this.loadCaptcha();
52
+ const view = this.panel.view;
53
+ view.hooks.beforeLogin.tapPromise(async (context) => {
54
+ if (!context.parentId || context.parentId === this.dataParent.model.id) {
55
+ context.validate = context.validate && await this.validate();
56
+ }
57
+ });
58
+ view.hooks.afterLogin.tap((context) => {
59
+ if (!context.ok) {
60
+ this.loadCaptcha();
61
+ this.state.code = "";
62
+ }
63
+ });
64
+ }
65
+ /**
66
+ * 值校验
67
+ *
68
+ * @return {*} {Promise<boolean>}
69
+ * @memberof AuthCaptchaController
70
+ */
71
+ async validate() {
72
+ if (this.state.code) {
73
+ this.state.error = void 0;
74
+ return true;
75
+ }
76
+ this.state.error = "\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801";
77
+ return false;
78
+ }
79
+ /**
80
+ * 值改变
81
+ *
82
+ * @memberof AuthCaptchaController
83
+ */
84
+ onChange() {
85
+ Object.assign(this.captcha, {
86
+ "Captcha-State": this.state.state,
87
+ "Captcha-Code": this.state.code
88
+ });
89
+ }
90
+ /**
91
+ * 加载验证码
92
+ *
93
+ * @return {*} {Promise<void>}ss
94
+ * @memberof AuthCaptchaController
95
+ */
96
+ async loadCaptcha() {
97
+ this.state.loading = true;
98
+ const requestConfig = {
99
+ url: "".concat(ibiz.env.baseUrl, "/").concat(ibiz.env.appId, "/auths/captcha"),
100
+ method: "post",
101
+ headers: {
102
+ "Content-Type": "application/json;charset=UTF-8",
103
+ Accept: "application/json"
104
+ },
105
+ data: {}
106
+ };
107
+ try {
108
+ const res = await axios(requestConfig);
109
+ if (res.status === 200 && res.data) {
110
+ this.state.state = res.data.state;
111
+ this.state.image = res.data.image;
112
+ }
113
+ } catch (error) {
114
+ this.state.state = "";
115
+ this.state.image = "";
116
+ } finally {
117
+ this.state.loading = false;
118
+ this.onChange();
119
+ }
120
+ }
121
+ }
122
+
123
+ export { AuthCaptchaController };
@@ -0,0 +1 @@
1
+ .ibiz-auth-captcha{display:flex;position:relative}.ibiz-auth-captcha__captcha{width:calc(100% - 120px)}.ibiz-auth-captcha__image{flex-shrink:0;width:120px;height:100%;cursor:pointer}.ibiz-auth-captcha__image--hint{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--ibiz-color-text-3);background-color:var(--ibiz-color-fill-0)}.ibiz-auth-captcha__error{left:0;top:100%;line-height:1;font-size:12px;padding-top:2px;position:absolute;color:var(--ibiz-color-danger)}.ibiz-auth-captcha.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--ibiz-color-danger) inset}
@@ -0,0 +1,29 @@
1
+ import { PropType } from 'vue';
2
+ import { IPanelRawItem } from '@ibiz/model-core';
3
+ import { AuthCaptchaController } from './auth-captcha.controller';
4
+ import './auth-captcha.scss';
5
+ export declare const AuthCaptcha: import("vue").DefineComponent<{
6
+ modelData: {
7
+ type: PropType<IPanelRawItem>;
8
+ required: true;
9
+ };
10
+ controller: {
11
+ type: typeof AuthCaptchaController;
12
+ required: true;
13
+ };
14
+ }, {
15
+ c: AuthCaptchaController;
16
+ ns: import("@ibiz-template/core").Namespace;
17
+ classArr: import("vue").ComputedRef<(string | false)[]>;
18
+ onClick: () => void;
19
+ onChange: () => void;
20
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
21
+ modelData: {
22
+ type: PropType<IPanelRawItem>;
23
+ required: true;
24
+ };
25
+ controller: {
26
+ type: typeof AuthCaptchaController;
27
+ required: true;
28
+ };
29
+ }>>, {}, {}>;
@@ -0,0 +1,72 @@
1
+ import { computed, resolveComponent, createVNode, resolveDirective, withDirectives, defineComponent } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import { AuthCaptchaController } from './auth-captcha.controller.mjs';
4
+ import './auth-captcha.css';
5
+
6
+ "use strict";
7
+ const AuthCaptcha = /* @__PURE__ */ defineComponent({
8
+ name: "IBizAuthCaptcha",
9
+ props: {
10
+ modelData: {
11
+ type: Object,
12
+ required: true
13
+ },
14
+ controller: {
15
+ type: AuthCaptchaController,
16
+ required: true
17
+ }
18
+ },
19
+ setup(props) {
20
+ const ns = useNamespace("auth-captcha");
21
+ const c = props.controller;
22
+ const classArr = computed(() => {
23
+ let result = [ns.b(), ns.m(c.model.id)];
24
+ result = [...result, ...props.controller.containerClass, ns.is("hidden", !props.controller.state.visible), ns.is("error", !!c.state.error)];
25
+ return result;
26
+ });
27
+ const onClick = () => {
28
+ if (!c.state.loading) {
29
+ c.loadCaptcha();
30
+ }
31
+ };
32
+ const onChange = () => {
33
+ c.onChange();
34
+ c.validate();
35
+ };
36
+ return {
37
+ c,
38
+ ns,
39
+ classArr,
40
+ onClick,
41
+ onChange
42
+ };
43
+ },
44
+ render() {
45
+ return createVNode("div", {
46
+ "class": this.classArr
47
+ }, [createVNode(resolveComponent("el-input"), {
48
+ "modelValue": this.c.state.code,
49
+ "onUpdate:modelValue": ($event) => this.c.state.code = $event,
50
+ "class": this.ns.e("captcha"),
51
+ "onInput": this.onChange,
52
+ "onBlur": this.onChange,
53
+ "placeholder": "\u9A8C\u8BC1\u7801"
54
+ }, null), withDirectives(createVNode(resolveComponent("el-image"), {
55
+ "src": this.c.state.image,
56
+ "class": this.ns.e("image"),
57
+ "onClick": this.onClick,
58
+ "title": "\u70B9\u51FB\u56FE\u7247\u5237\u65B0"
59
+ }, {
60
+ error: () => {
61
+ return createVNode("div", {
62
+ "onClick": this.onClick,
63
+ "class": [this.ns.em("image", "hint"), this.ns.is("loading", this.c.state.loading)]
64
+ }, [this.c.state.loading ? "\u52A0\u8F7D\u4E2D..." : "\u52A0\u8F7D\u5931\u8D25"]);
65
+ }
66
+ }), [[resolveDirective("loading"), this.c.state.loading]]), this.c.state.error && createVNode("div", {
67
+ "class": this.ns.e("error")
68
+ }, [this.c.state.error])]);
69
+ }
70
+ });
71
+
72
+ export { AuthCaptcha };
@@ -0,0 +1,14 @@
1
+ import { IPanelItemProvider, PanelController, PanelItemController } from '@ibiz-template/runtime';
2
+ import { IPanelItem } from '@ibiz/model-core';
3
+ import { AuthCaptchaController } from './auth-captcha.controller';
4
+ /**
5
+ * 人机识别适配器
6
+ *
7
+ * @export
8
+ * @class AuthCaptchaProvider
9
+ * @implements {IPanelItemProvider}
10
+ */
11
+ export declare class AuthCaptchaProvider implements IPanelItemProvider {
12
+ component: string;
13
+ createController(panelItem: IPanelItem, panel: PanelController, parent: PanelItemController | undefined): Promise<AuthCaptchaController>;
14
+ }
@@ -0,0 +1,21 @@
1
+ import { AuthCaptchaController } from './auth-captcha.controller.mjs';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class AuthCaptchaProvider {
11
+ constructor() {
12
+ __publicField(this, "component", "IBizAuthCaptcha");
13
+ }
14
+ async createController(panelItem, panel, parent) {
15
+ const c = new AuthCaptchaController(panelItem, panel, parent);
16
+ await c.init();
17
+ return c;
18
+ }
19
+ }
20
+
21
+ export { AuthCaptchaProvider };
@@ -0,0 +1,45 @@
1
+ import { PanelItemState } from '@ibiz-template/runtime';
2
+ /**
3
+ * 人机识别状态
4
+ *
5
+ * @export
6
+ * @class AuthCaptchaState
7
+ * @extends {PanelItemState}
8
+ */
9
+ export declare class AuthCaptchaState extends PanelItemState {
10
+ /**
11
+ * 验证码
12
+ *
13
+ * @type {string}
14
+ * @memberof AuthCaptchaState
15
+ */
16
+ code: string;
17
+ /**
18
+ * 验证图片
19
+ *
20
+ * @type {string}
21
+ * @memberof AuthCaptchaState
22
+ */
23
+ image: string;
24
+ /**
25
+ * 验证UUID码
26
+ *
27
+ * @type {string}
28
+ * @memberof AuthCaptchaState
29
+ */
30
+ state: string;
31
+ /**
32
+ * 加载状态
33
+ *
34
+ * @type {boolean}
35
+ * @memberof AuthCaptchaState
36
+ */
37
+ loading: boolean;
38
+ /**
39
+ * 错误信息
40
+ *
41
+ * @type {string}
42
+ * @memberof AuthCaptchaState
43
+ */
44
+ error?: string;
45
+ }
@@ -0,0 +1,51 @@
1
+ import { PanelItemState } from '@ibiz-template/runtime';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class AuthCaptchaState extends PanelItemState {
11
+ constructor() {
12
+ super(...arguments);
13
+ /**
14
+ * 验证码
15
+ *
16
+ * @type {string}
17
+ * @memberof AuthCaptchaState
18
+ */
19
+ __publicField(this, "code", "");
20
+ /**
21
+ * 验证图片
22
+ *
23
+ * @type {string}
24
+ * @memberof AuthCaptchaState
25
+ */
26
+ __publicField(this, "image", "");
27
+ /**
28
+ * 验证UUID码
29
+ *
30
+ * @type {string}
31
+ * @memberof AuthCaptchaState
32
+ */
33
+ __publicField(this, "state", "");
34
+ /**
35
+ * 加载状态
36
+ *
37
+ * @type {boolean}
38
+ * @memberof AuthCaptchaState
39
+ */
40
+ __publicField(this, "loading", false);
41
+ /**
42
+ * 错误信息
43
+ *
44
+ * @type {string}
45
+ * @memberof AuthCaptchaState
46
+ */
47
+ __publicField(this, "error");
48
+ }
49
+ }
50
+
51
+ export { AuthCaptchaState };
@@ -0,0 +1,26 @@
1
+ export declare const IBizAuthCaptcha: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
2
+ modelData: {
3
+ type: import("vue").PropType<import("@ibiz/model-core").IPanelRawItem>;
4
+ required: true;
5
+ };
6
+ controller: {
7
+ type: typeof import("./auth-captcha.controller").AuthCaptchaController;
8
+ required: true;
9
+ };
10
+ }, {
11
+ c: import("./auth-captcha.controller").AuthCaptchaController;
12
+ ns: import("@ibiz-template/core").Namespace;
13
+ classArr: import("vue").ComputedRef<(string | false)[]>;
14
+ onClick: () => void;
15
+ onChange: () => void;
16
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
17
+ modelData: {
18
+ type: import("vue").PropType<import("@ibiz/model-core").IPanelRawItem>;
19
+ required: true;
20
+ };
21
+ controller: {
22
+ type: typeof import("./auth-captcha.controller").AuthCaptchaController;
23
+ required: true;
24
+ };
25
+ }>>, {}, {}>>;
26
+ export default IBizAuthCaptcha;
@@ -0,0 +1,15 @@
1
+ import { withInstall } from '@ibiz-template/vue3-util';
2
+ import { registerPanelItemProvider } from '@ibiz-template/runtime';
3
+ import { AuthCaptcha } from './auth-captcha.mjs';
4
+ import { AuthCaptchaProvider } from './auth-captcha.provider.mjs';
5
+
6
+ "use strict";
7
+ const IBizAuthCaptcha = withInstall(AuthCaptcha, function(v) {
8
+ v.component(AuthCaptcha.name, AuthCaptcha);
9
+ registerPanelItemProvider(
10
+ "RAWITEM_AUTH_CAPTCHA",
11
+ () => new AuthCaptchaProvider()
12
+ );
13
+ });
14
+
15
+ export { IBizAuthCaptcha, IBizAuthCaptcha as default };
@@ -22,7 +22,7 @@ const AuthUserinfo = /* @__PURE__ */ defineComponent({
22
22
  const ns = useNamespace("user-info");
23
23
  const c = prop.controller;
24
24
  const {
25
- srfusername = "\u6E38\u5BA2",
25
+ srfusername = ibiz.i18n.t("panelComponent.authUserinfo.visitor"),
26
26
  srfpersonname
27
27
  } = ((_a = ibiz.appData) == null ? void 0 : _a.context) || {};
28
28
  const router = useRouter();
@@ -22,6 +22,8 @@ import { IBizCoopPos } from './coop-pos/index.mjs';
22
22
  import { IBizViewMsgPos } from './view-msg-pos/index.mjs';
23
23
  import { IBizUserAction } from './user-action/index.mjs';
24
24
  import { IBizDataImport } from './data-import/index.mjs';
25
+ import { IBizShortCut } from './short-cut/index.mjs';
26
+ import { IBizAuthCaptcha } from './auth-captcha/index.mjs';
25
27
  export { NavPosIndexState } from './nav-pos-index/nav-pos-index.state.mjs';
26
28
  export { NavPosIndexController } from './nav-pos-index/nav-pos-index.controller.mjs';
27
29
  export { PanelButtonController } from './panel-button/panel-button.controller.mjs';
@@ -69,6 +71,8 @@ const IBizPanelComponents = {
69
71
  v.use(IBizViewMsgPos);
70
72
  v.use(IBizUserAction);
71
73
  v.use(IBizDataImport);
74
+ v.use(IBizShortCut);
75
+ v.use(IBizAuthCaptcha);
72
76
  }
73
77
  };
74
78
 
@@ -1,4 +1,4 @@
1
- import { resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
1
+ import { resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace, onRouteChange } from '@ibiz-template/vue3-util';
3
3
  import { useRouter, useRoute } from 'vue-router';
4
4
  import { NavPosIndexController } from './nav-pos-index.controller.mjs';
@@ -80,7 +80,7 @@ const NavPosIndex = /* @__PURE__ */ defineComponent({
80
80
  default: () => [Component && createVNode(Component, null, null)]
81
81
  });
82
82
  }
83
- }) : createVNode("div", null, [createTextVNode("\u975E\u8DEF\u7531\u6A21\u5F0F\u5BFC\u822A\u5360\u4F4D\u6682\u672A\u652F\u6301")])]);
83
+ }) : createVNode("div", null, [ibiz.i18n.t("panelComponent.navPosIndex.noSupportPrompt")])]);
84
84
  }
85
85
  });
86
86
 
@@ -1,4 +1,4 @@
1
- import { isVNode, watch, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
1
+ import { isVNode, watch, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './nav-tabs.css';
4
4
  import { NavTabsController } from './nav-tabs.controller.mjs';
@@ -26,10 +26,10 @@ const NavTabs = /* @__PURE__ */ defineComponent({
26
26
  state
27
27
  } = props.controller;
28
28
  const actions = [{
29
- text: "\u5173\u95ED\u6240\u6709",
29
+ text: ibiz.i18n.t("panelComponent.navTabs.closeAll"),
30
30
  value: "closeAll"
31
31
  }, {
32
- text: "\u5173\u95ED\u5176\u4ED6",
32
+ text: ibiz.i18n.t("panelComponent.navTabs.closeOther"),
33
33
  value: "closeOther"
34
34
  }];
35
35
  const changePage = (pane) => {
@@ -107,7 +107,7 @@ const NavTabs = /* @__PURE__ */ defineComponent({
107
107
  "size": "small",
108
108
  "type": "primary"
109
109
  }, {
110
- default: () => [createTextVNode("\u66F4\u591A "), createVNode("ion-icon", {
110
+ default: () => [ibiz.i18n.t("app.more"), createVNode("ion-icon", {
111
111
  "name": "arrow-down"
112
112
  }, null)]
113
113
  });
@@ -99,13 +99,19 @@ class PanelButtonController extends PanelItemController {
99
99
  }
100
100
  event.stopPropagation();
101
101
  event.preventDefault();
102
+ const view = this.panel.view;
103
+ if (actionType === "UIACTION" && uiactionId === "login" && view.model.viewType === "APPLOGINVIEW" && !await view.validate(
104
+ this.dataParent.model.id
105
+ )) {
106
+ return;
107
+ }
102
108
  await UIActionUtil.execAndResolved(
103
109
  uiactionId,
104
110
  {
105
111
  context: this.panel.context,
106
112
  params: this.panel.params,
107
113
  data: [this.data],
108
- view: this.panel.view,
114
+ view,
109
115
  event,
110
116
  noWaitRoute: true
111
117
  },
@@ -45,7 +45,7 @@ const PanelRememberMe = /* @__PURE__ */ defineComponent({
45
45
  }, [createVNode(resolveComponent("el-checkbox"), {
46
46
  "modelValue": this.isRemember,
47
47
  "onUpdate:modelValue": ($event) => this.isRemember = $event,
48
- "label": "\u8BB0\u4F4F\u6211"
48
+ "label": ibiz.i18n.t("app.rememberMe")
49
49
  }, null)]);
50
50
  }
51
51
  });
@@ -4,19 +4,21 @@ export declare const IBizPanelTabPanel: import("@ibiz-template/vue3-util").TypeW
4
4
  required: true;
5
5
  };
6
6
  controller: {
7
- type: typeof import("@ibiz-template/runtime").PanelItemController;
7
+ type: typeof import("./panel-tab-panel.controller").PanelTabPanelController;
8
8
  required: true;
9
9
  };
10
10
  }, {
11
11
  ns: import("@ibiz-template/core").Namespace;
12
+ state: import("./panel-tab-panel.state").PanelTabPanelState;
12
13
  classArr: import("vue").ComputedRef<(string | false)[]>;
14
+ onTabClick: (tabIns: IData, event: MouseEvent) => void;
13
15
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
14
16
  modelData: {
15
17
  type: import("vue").PropType<import("@ibiz/model-core").IPanelTabPanel>;
16
18
  required: true;
17
19
  };
18
20
  controller: {
19
- type: typeof import("@ibiz-template/runtime").PanelItemController;
21
+ type: typeof import("./panel-tab-panel.controller").PanelTabPanelController;
20
22
  required: true;
21
23
  };
22
24
  }>>, {}, {}>>;
@@ -0,0 +1,31 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+ import { IPanelTabPanel } from '@ibiz/model-core';
3
+ import { PanelTabPanelState } from './panel-tab-panel.state';
4
+ export declare class PanelTabPanelController extends PanelItemController<IPanelTabPanel> {
5
+ state: PanelTabPanelState;
6
+ /**
7
+ * 新建状态
8
+ *
9
+ * @author tony001
10
+ * @date 2024-05-12 14:05:16
11
+ * @protected
12
+ * @return {*} {PanelTabPanelState}
13
+ */
14
+ protected createState(): PanelTabPanelState;
15
+ /**
16
+ * 初始化
17
+ *
18
+ * @author tony001
19
+ * @date 2024-05-12 14:05:51
20
+ * @return {*} {Promise<void>}
21
+ */
22
+ onInit(): Promise<void>;
23
+ /**
24
+ * 分页点击切换处理
25
+ *
26
+ * @author tony001
27
+ * @date 2024-05-12 14:05:11
28
+ * @param {string} tabId
29
+ */
30
+ onTabChange(tabId: string): void;
31
+ }
@@ -0,0 +1,42 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+ import { PanelTabPanelState } from './panel-tab-panel.state.mjs';
3
+
4
+ "use strict";
5
+ class PanelTabPanelController extends PanelItemController {
6
+ /**
7
+ * 新建状态
8
+ *
9
+ * @author tony001
10
+ * @date 2024-05-12 14:05:16
11
+ * @protected
12
+ * @return {*} {PanelTabPanelState}
13
+ */
14
+ createState() {
15
+ var _a;
16
+ return new PanelTabPanelState((_a = this.parent) == null ? void 0 : _a.state);
17
+ }
18
+ /**
19
+ * 初始化
20
+ *
21
+ * @author tony001
22
+ * @date 2024-05-12 14:05:51
23
+ * @return {*} {Promise<void>}
24
+ */
25
+ async onInit() {
26
+ var _a;
27
+ await super.onInit();
28
+ this.state.activeTab = ((_a = this.model.panelTabPages) == null ? void 0 : _a[0].id) || "";
29
+ }
30
+ /**
31
+ * 分页点击切换处理
32
+ *
33
+ * @author tony001
34
+ * @date 2024-05-12 14:05:11
35
+ * @param {string} tabId
36
+ */
37
+ onTabChange(tabId) {
38
+ this.state.activeTab = tabId;
39
+ }
40
+ }
41
+
42
+ export { PanelTabPanelController };