resolver-egretimp-plus 0.1.113 → 0.1.115

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 (219) hide show
  1. package/dist/h5/index.js +1 -1
  2. package/dist/theme/element/index.css +1 -1
  3. package/dist/theme/element/src/components/common.scss +4 -0
  4. package/dist/theme/element/src/components/text.scss +17 -0
  5. package/dist/web/index.js +2 -2
  6. package/package.json +1 -1
  7. package/src/analysisComponent.jsx +2 -1
  8. package/src/components/helper/table.jsx +26 -23
  9. package/src/components/packages-H5/CustomComponentCollapseH5.vue +6 -2
  10. package/src/components/packages-web/ElText.jsx +0 -1
  11. package/src/theme/element/components/common.scss +4 -0
  12. package/src/theme/element/components/text.scss +17 -0
  13. package/src-bak/analysisComponent.jsx +343 -0
  14. package/src-bak/api/builtIn.js +10 -0
  15. package/src-bak/bpm/bpmInstance.js +388 -0
  16. package/src-bak/bpm/udc-sdk-esm/cjs/impl/application.js +8 -0
  17. package/src-bak/bpm/udc-sdk-esm/cjs/impl/component.js +97 -0
  18. package/src-bak/bpm/udc-sdk-esm/cjs/impl/datasource.js +88 -0
  19. package/src-bak/bpm/udc-sdk-esm/cjs/impl/iframe/index.js +3 -0
  20. package/src-bak/bpm/udc-sdk-esm/cjs/impl/iframe/udcSdkForIframe/UdcComponent.js +76 -0
  21. package/src-bak/bpm/udc-sdk-esm/cjs/impl/iframe/udcSdkForIframe/index.js +201 -0
  22. package/src-bak/bpm/udc-sdk-esm/cjs/impl/index.js +69 -0
  23. package/src-bak/bpm/udc-sdk-esm/cjs/impl/page.js +56 -0
  24. package/src-bak/bpm/udc-sdk-esm/cjs/impl/utils.js +76 -0
  25. package/src-bak/bpm/udc-sdk-esm/cjs/index.js +46 -0
  26. package/src-bak/bpm/udc-sdk-esm/cjs/utils.js +21 -0
  27. package/src-bak/components/childDialog/index.js +39 -0
  28. package/src-bak/components/childDialog/src/index.vue +185 -0
  29. package/src-bak/components/cmiFormItem/index.js +1 -0
  30. package/src-bak/components/cmiFormItem/src/index.vue +112 -0
  31. package/src-bak/components/confirmInstance-H5/index.js +53 -0
  32. package/src-bak/components/confirmInstance-H5/src/index.vue +54 -0
  33. package/src-bak/components/helper/FormPolyfill.jsx +25 -0
  34. package/src-bak/components/helper/calcTooltip.jsx +134 -0
  35. package/src-bak/components/helper/dock.js +141 -0
  36. package/src-bak/components/helper/eventOrchestration.js +763 -0
  37. package/src-bak/components/helper/resolver.js +163 -0
  38. package/src-bak/components/helper/table.jsx +103 -0
  39. package/src-bak/components/icons/date.vue +33 -0
  40. package/src-bak/components/icons/info.vue +62 -0
  41. package/src-bak/components/icons/loading.vue +19 -0
  42. package/src-bak/components/icons/question-filled.vue +8 -0
  43. package/src-bak/components/loading/index.js +6 -0
  44. package/src-bak/components/loading/loading.js +98 -0
  45. package/src-bak/components/loading/loading.scss +74 -0
  46. package/src-bak/components/loading/loading.vue +89 -0
  47. package/src-bak/components/loadingComponent/LoadingComponent.vue +33 -0
  48. package/src-bak/components/modal/index.js +9 -0
  49. package/src-bak/components/modal/modal.scss +195 -0
  50. package/src-bak/components/modal/modal.vue +201 -0
  51. package/src-bak/components/options/OptionsDefault.vue +47 -0
  52. package/src-bak/components/packages-H5/CmiButton.vue +120 -0
  53. package/src-bak/components/packages-H5/CmiCalendar.vue +152 -0
  54. package/src-bak/components/packages-H5/CmiCell.vue +87 -0
  55. package/src-bak/components/packages-H5/CmiCheckbox.vue +82 -0
  56. package/src-bak/components/packages-H5/CmiDatetimePicker.vue +98 -0
  57. package/src-bak/components/packages-H5/CmiDivider.vue +30 -0
  58. package/src-bak/components/packages-H5/CmiDropdownMenu.vue +58 -0
  59. package/src-bak/components/packages-H5/CmiInput.vue +69 -0
  60. package/src-bak/components/packages-H5/CmiLink.vue +28 -0
  61. package/src-bak/components/packages-H5/CmiPicker.vue +229 -0
  62. package/src-bak/components/packages-H5/CmiRadio.vue +29 -0
  63. package/src-bak/components/packages-H5/CmiSearch.vue +39 -0
  64. package/src-bak/components/packages-H5/CmiSelect.vue +84 -0
  65. package/src-bak/components/packages-H5/CustomComponentCardH5.vue +129 -0
  66. package/src-bak/components/packages-H5/CustomComponentColH5.vue +8 -0
  67. package/src-bak/components/packages-H5/CustomComponentCollapseH5.vue +137 -0
  68. package/src-bak/components/packages-H5/CustomComponentFormLayoutH5.vue +54 -0
  69. package/src-bak/components/packages-H5/CustomComponentTabPaneH5.vue +38 -0
  70. package/src-bak/components/packages-H5/CustomComponentTableH5.vue +352 -0
  71. package/src-bak/components/packages-H5/CustomComponentTabsH5.vue +170 -0
  72. package/src-bak/components/packages-web/CustomComponentCard.vue +40 -0
  73. package/src-bak/components/packages-web/CustomComponentCol.vue +66 -0
  74. package/src-bak/components/packages-web/CustomComponentCollapse.vue +164 -0
  75. package/src-bak/components/packages-web/CustomComponentCycle.vue +95 -0
  76. package/src-bak/components/packages-web/CustomComponentCycleTabPane.vue +155 -0
  77. package/src-bak/components/packages-web/CustomComponentDialog.vue +192 -0
  78. package/src-bak/components/packages-web/CustomComponentEditor.vue +50 -0
  79. package/src-bak/components/packages-web/CustomComponentFileExport.vue +60 -0
  80. package/src-bak/components/packages-web/CustomComponentFileImport.vue +60 -0
  81. package/src-bak/components/packages-web/CustomComponentFormLayout.vue +65 -0
  82. package/src-bak/components/packages-web/CustomComponentGrid.vue +29 -0
  83. package/src-bak/components/packages-web/CustomComponentGridCol.vue +29 -0
  84. package/src-bak/components/packages-web/CustomComponentInputDialog.vue +144 -0
  85. package/src-bak/components/packages-web/CustomComponentNativeTabPane.vue +84 -0
  86. package/src-bak/components/packages-web/CustomComponentPlain.vue +243 -0
  87. package/src-bak/components/packages-web/CustomComponentRow.vue +83 -0
  88. package/src-bak/components/packages-web/CustomComponentSelectEmployees.vue +203 -0
  89. package/src-bak/components/packages-web/CustomComponentSendMail.vue +62 -0
  90. package/src-bak/components/packages-web/CustomComponentSteps.vue +41 -0
  91. package/src-bak/components/packages-web/CustomComponentTabPane.vue +20 -0
  92. package/src-bak/components/packages-web/CustomComponentTable.jsx +813 -0
  93. package/src-bak/components/packages-web/CustomComponentTabs.vue +126 -0
  94. package/src-bak/components/packages-web/CustomComponentTree.vue +28 -0
  95. package/src-bak/components/packages-web/ElButton.vue +146 -0
  96. package/src-bak/components/packages-web/ElCheckbox.vue +97 -0
  97. package/src-bak/components/packages-web/ElDatePicker.vue +93 -0
  98. package/src-bak/components/packages-web/ElInput copy.jsx +393 -0
  99. package/src-bak/components/packages-web/ElInput.jsx +312 -0
  100. package/src-bak/components/packages-web/ElInputNumber.vue +81 -0
  101. package/src-bak/components/packages-web/ElPagination.vue +61 -0
  102. package/src-bak/components/packages-web/ElRadio.vue +47 -0
  103. package/src-bak/components/packages-web/ElSelect.jsx +249 -0
  104. package/src-bak/components/packages-web/ElSelect_bak.vue +155 -0
  105. package/src-bak/components/packages-web/ElText.jsx +187 -0
  106. package/src-bak/components/packages-web/ElTextaa.vue +169 -0
  107. package/src-bak/components/packages-web/ElTimePicker.vue +39 -0
  108. package/src-bak/components/patchComponents-H5.js +46 -0
  109. package/src-bak/components/patchComponents-web.js +46 -0
  110. package/src-bak/components/simpleFormItemPc/index.js +1 -0
  111. package/src-bak/components/simpleFormItemPc/src/index.vue +94 -0
  112. package/src-bak/components/table/index.ts +29 -0
  113. package/src-bak/components/table/src/composables/use-scrollbar.ts +30 -0
  114. package/src-bak/components/table/src/config.ts +256 -0
  115. package/src-bak/components/table/src/filter-panel.vue +260 -0
  116. package/src-bak/components/table/src/h-helper.ts +34 -0
  117. package/src-bak/components/table/src/layout-observer.ts +78 -0
  118. package/src-bak/components/table/src/store/current.ts +85 -0
  119. package/src-bak/components/table/src/store/expand.ts +76 -0
  120. package/src-bak/components/table/src/store/helper.ts +74 -0
  121. package/src-bak/components/table/src/store/index.ts +246 -0
  122. package/src-bak/components/table/src/store/tree.ts +230 -0
  123. package/src-bak/components/table/src/store/watcher.ts +543 -0
  124. package/src-bak/components/table/src/table/defaults.ts +402 -0
  125. package/src-bak/components/table/src/table/key-render-helper.ts +27 -0
  126. package/src-bak/components/table/src/table/style-helper.ts +378 -0
  127. package/src-bak/components/table/src/table/utils-helper.ts +47 -0
  128. package/src-bak/components/table/src/table-body/defaults.ts +52 -0
  129. package/src-bak/components/table/src/table-body/events-helper.ts +203 -0
  130. package/src-bak/components/table/src/table-body/index.ts +119 -0
  131. package/src-bak/components/table/src/table-body/render-helper.ts +283 -0
  132. package/src-bak/components/table/src/table-body/styles-helper.ts +164 -0
  133. package/src-bak/components/table/src/table-column/defaults.ts +237 -0
  134. package/src-bak/components/table/src/table-column/index.ts +202 -0
  135. package/src-bak/components/table/src/table-column/render-helper.ts +214 -0
  136. package/src-bak/components/table/src/table-column/watcher-helper.ts +88 -0
  137. package/src-bak/components/table/src/table-footer/index.ts +128 -0
  138. package/src-bak/components/table/src/table-footer/mapState-helper.ts +33 -0
  139. package/src-bak/components/table/src/table-footer/style-helper.ts +51 -0
  140. package/src-bak/components/table/src/table-header/event-helper.ts +213 -0
  141. package/src-bak/components/table/src/table-header/index.ts +244 -0
  142. package/src-bak/components/table/src/table-header/style.helper.ts +119 -0
  143. package/src-bak/components/table/src/table-header/utils-helper.ts +94 -0
  144. package/src-bak/components/table/src/table-layout.ts +259 -0
  145. package/src-bak/components/table/src/table.vue +389 -0
  146. package/src-bak/components/table/src/tableColumn.ts +3 -0
  147. package/src-bak/components/table/src/tokens.ts +5 -0
  148. package/src-bak/components/table/src/util.ts +521 -0
  149. package/src-bak/components/table/style/css.ts +5 -0
  150. package/src-bak/components/table/style/index.ts +5 -0
  151. package/src-bak/components/tabs/index.js +8 -0
  152. package/src-bak/components/tabs/src/constants.js +23 -0
  153. package/src-bak/components/tabs/src/tab-bar.js +8 -0
  154. package/src-bak/components/tabs/src/tab-bar.vue +92 -0
  155. package/src-bak/components/tabs/src/tab-nav.jsx +424 -0
  156. package/src-bak/components/tabs/src/tab-pane.js +16 -0
  157. package/src-bak/components/tabs/src/tab-pane.vue +80 -0
  158. package/src-bak/components/tabs/src/tabs.jsx +223 -0
  159. package/src-bak/components/tabs/style/css.js +2 -0
  160. package/src-bak/components/tabs/style/index.js +2 -0
  161. package/src-bak/components/thirdPartyFrame/index.js +32 -0
  162. package/src-bak/components/thirdPartyFrame/src/ThirdPartyFrame.vue +125 -0
  163. package/src-bak/enums/index.js +16 -0
  164. package/src-bak/hooks/configLoad.js +45 -0
  165. package/src-bak/hooks/index.js +189 -0
  166. package/src-bak/hooks/mock.js +6960 -0
  167. package/src-bak/hooks/pageConfig.js +127 -0
  168. package/src-bak/index.jsx +440 -0
  169. package/src-bak/renderer.jsx +77 -0
  170. package/src-bak/resolver-H5.vue +88 -0
  171. package/src-bak/resolver-common.vue +129 -0
  172. package/src-bak/resolver-web.vue +91 -0
  173. package/src-bak/rules/eventsSupplement.js +573 -0
  174. package/src-bak/rules/parseCondition.js +378 -0
  175. package/src-bak/rules/ruleUtils.js +273 -0
  176. package/src-bak/rules/rulesDriver.js +118 -0
  177. package/src-bak/rulesImp/events.js +588 -0
  178. package/src-bak/rulesImp/index.js +33 -0
  179. package/src-bak/rulesImp/ruleInstance.js +231 -0
  180. package/src-bak/rulesImp/ruleUtils.js +124 -0
  181. package/src-bak/theme/element/components/button.scss +122 -0
  182. package/src-bak/theme/element/components/card.scss +8 -0
  183. package/src-bak/theme/element/components/checkbox.scss +19 -0
  184. package/src-bak/theme/element/components/collapse.scss +174 -0
  185. package/src-bak/theme/element/components/common.scss +30 -0
  186. package/src-bak/theme/element/components/cycle.scss +0 -0
  187. package/src-bak/theme/element/components/date.scss +13 -0
  188. package/src-bak/theme/element/components/dialog.scss +44 -0
  189. package/src-bak/theme/element/components/form.scss +104 -0
  190. package/src-bak/theme/element/components/index.scss +55 -0
  191. package/src-bak/theme/element/components/input.scss +36 -0
  192. package/src-bak/theme/element/components/message.scss +48 -0
  193. package/src-bak/theme/element/components/pagination.scss +47 -0
  194. package/src-bak/theme/element/components/popper.scss +3 -0
  195. package/src-bak/theme/element/components/radio.scss +40 -0
  196. package/src-bak/theme/element/components/scrollbar.scss +14 -0
  197. package/src-bak/theme/element/components/select.scss +82 -0
  198. package/src-bak/theme/element/components/steps.scss +6 -0
  199. package/{src/components/styles/CustomComponenTable.scss → src-bak/theme/element/components/table.scss} +90 -13
  200. package/src-bak/theme/element/components/tabs.scss +128 -0
  201. package/src-bak/theme/element/components/tag.scss +6 -0
  202. package/{src/components/styles → src-bak/theme/element/components}/text.scss +3 -3
  203. package/src-bak/theme/element/components/textarea.scss +3 -0
  204. package/src-bak/theme/element/components/tree.scss +0 -0
  205. package/src-bak/theme/element/index.scss +55 -0
  206. package/src-bak/utils/cipher.js +141 -0
  207. package/src-bak/utils/common.js +664 -0
  208. package/src-bak/utils/const.js +259 -0
  209. package/src-bak/utils/defaultVal.js +92 -0
  210. package/src-bak/utils/dom.js +36 -0
  211. package/src-bak/utils/format.js +19 -0
  212. package/src-bak/utils/index.js +4 -0
  213. package/src-bak/utils/is.js +74 -0
  214. package/src-bak/utils/loadModule.js +75 -0
  215. package/src-bak/utils/preserveFunc.js +33 -0
  216. package/src-bak/utils/render.jsx +1138 -0
  217. package/src-bak/utils/request.js +136 -0
  218. package/src-bak/utils/respone.js +70 -0
  219. package/src-bak/utils/valid.js +89 -0
@@ -0,0 +1,201 @@
1
+ /**
2
+ * desc: 第三方与 UDC 标准页面通信的 SDK
3
+ * author: zhongpz@seeyon.com
4
+ */
5
+ import UdcComponent from "./UdcComponent";
6
+ import { currentSDK } from "../../index";
7
+ /** 消息身份标识,消息一级认证标识 */
8
+ const _identifying = "__SEEYON_UDC__";
9
+ /** SDK支持的消息类型枚举 */
10
+ export var MessageTypeEnum;
11
+ (function (MessageTypeEnum) {
12
+ MessageTypeEnum["callMethod"] = "callMethod";
13
+ MessageTypeEnum["message"] = "message";
14
+ MessageTypeEnum["callEvent"] = "callEvent";
15
+ })(MessageTypeEnum || (MessageTypeEnum = {}));
16
+ /** UDC SDK支持的方法名枚举,在UDC平台需要有对应的方法支持 */
17
+ export var MethodNameEnum;
18
+ (function (MethodNameEnum) {
19
+ MethodNameEnum["ready"] = "ready";
20
+ MethodNameEnum["insertComponent"] = "insertComponent";
21
+ MethodNameEnum["changeLayoutMaskStatus"] = "changeLayoutMaskStatus";
22
+ MethodNameEnum["changeLayoutAreaStatus"] = "changeLayoutAreaStatus";
23
+ })(MethodNameEnum || (MethodNameEnum = {}));
24
+ export default class UdcSdkForIfame {
25
+ constructor() {
26
+ this._nameSpaceId = this._uuid();
27
+ }
28
+ /** 消息一级标识 */
29
+ _identifying = _identifying;
30
+ /** 当前页面唯一标识 */
31
+ _nameSpaceId;
32
+ /** SDK准备完成标识 */
33
+ _is_ready = false;
34
+ /** 自定义事件池 */
35
+ _customEvents = {};
36
+ /** UUID生成函数 */
37
+ _uuid() {
38
+ const uuid = "xxx_xxxx_xxxx_yxxx_xxxx".replace(/[xy]/g, (c) => {
39
+ const r = (Math.random() * 16) | 0;
40
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
41
+ return `${v.toString(16)}`;
42
+ });
43
+ return `x${uuid}`;
44
+ }
45
+ /** 接收消息合法性校验 */
46
+ _msgValidator(message) {
47
+ if (Object.prototype.toString.call(message) === "[object Object]" && // 判断数据格式是否正确
48
+ message._identifying === _identifying && // 判断身份标识是否正确
49
+ MessageTypeEnum[message.type] && // 判断消息类型是否合规
50
+ message._nameSpaceId === this._nameSpaceId // 命名空间是否匹配
51
+ ) {
52
+ return true;
53
+ }
54
+ return false;
55
+ }
56
+ /** 事件监听函数 */
57
+ _eventListener = (e, callBack) => {
58
+ try {
59
+ const message = e.data;
60
+ if (!this._msgValidator(message)) {
61
+ return;
62
+ }
63
+ // ready 回调
64
+ this._readyCallBack(message, callBack);
65
+ // 事件调用
66
+ this._callEvent(message);
67
+ }
68
+ catch (e) {
69
+ console.error(e);
70
+ }
71
+ };
72
+ /** SDK Ready Callback */
73
+ _readyCallBack(message, callBack) {
74
+ const signatureMethods = message.data?.signatureMethods;
75
+ const version = message.data?.version;
76
+ if (message.type === MessageTypeEnum.message &&
77
+ message.data?.status === "ready" &&
78
+ !this._is_ready) {
79
+ this._is_ready = true;
80
+ callBack &&
81
+ callBack(this, {
82
+ parentRuntimeContext: null,
83
+ runtimeContext: null,
84
+ });
85
+ }
86
+ }
87
+ /** 事件监听句柄函数 */
88
+ _eventListenerHandler = () => void 0;
89
+ /** 注册事件监听 */
90
+ _registerEventListener(callBack) {
91
+ this._eventListenerHandler = (e) => {
92
+ this._eventListener(e, callBack);
93
+ };
94
+ window.addEventListener("message", this._eventListenerHandler);
95
+ }
96
+ /** 事件调用For _customEvents */
97
+ _callEvent(message) {
98
+ if (message.type !== MessageTypeEnum.callEvent) {
99
+ return;
100
+ }
101
+ const { callEvents } = message;
102
+ callEvents?.forEach((event) => {
103
+ const { id, type } = event;
104
+ this._customEvents[id]?.[type]?.();
105
+ });
106
+ }
107
+ /** 销毁实例 */
108
+ destory() {
109
+ window.removeEventListener("message", this._eventListenerHandler);
110
+ }
111
+ /** SDK内部消息发送函数 */
112
+ postMessage(message) {
113
+ if ((message.type == MessageTypeEnum.callMethod &&
114
+ message.methodName == MethodNameEnum.ready) || // 初始化消息
115
+ this._is_ready // SDK准备好
116
+ ) {
117
+ window.parent.postMessage({
118
+ ...message,
119
+ _identifying: this._identifying,
120
+ _nameSpaceId: this._nameSpaceId,
121
+ }, "*");
122
+ }
123
+ }
124
+ /**
125
+ * 契约组件: 在第三方页面声明的组件,在UDC一定存在相同组件。
126
+ * 这类组件用于不需要获取UDC组件信息的场景,减少查询组件开销。
127
+ * */
128
+ contractComponent = (UdcComponentType, config) => {
129
+ return new UdcComponent(this, {
130
+ type: UdcComponentType,
131
+ id: config?.id,
132
+ isContract: true,
133
+ });
134
+ };
135
+ /** 创建组件 */
136
+ createComponent = (componentContext) => {
137
+ return new UdcComponent(this).createComponent(componentContext);
138
+ };
139
+ /** SDK 初始化成功后,通过callback函数可以安全的调用SDK */
140
+ ready(callBack) {
141
+ this.postMessage({
142
+ type: MessageTypeEnum.callMethod,
143
+ methodName: MethodNameEnum.ready,
144
+ });
145
+ this._registerEventListener(callBack);
146
+ }
147
+ /** 注册组件自定义事件 */
148
+ registerComponentCustomEvents = ({ id, type, func, }) => {
149
+ if (!this._customEvents[id]) {
150
+ this._customEvents[id] = {};
151
+ }
152
+ this._customEvents[id][type] = func;
153
+ };
154
+ /** 客制化服务 */
155
+ _customization = {
156
+ CMI: {
157
+ /** 为SDK实例提供:插入按钮到工具栏指定索引位置的能力 */
158
+ insertBtnForToolbar: (message) => {
159
+ const { position, btns, id } = message;
160
+ const $udcToolbar = this.contractComponent("UdcToolBar", { id });
161
+ const $btns = [];
162
+ btns?.forEach((btn) => {
163
+ $btns.push(this.createComponent({
164
+ type: "UdcButton",
165
+ props: btn,
166
+ }));
167
+ });
168
+ $udcToolbar.insertComponent($btns, {
169
+ position,
170
+ });
171
+ },
172
+ /** 控制外框层面是否显示蒙层及隐藏对应工作区能力 */
173
+ changeLayoutMaskStatus: (message) => {
174
+ const { status, bgColor } = message;
175
+ const $UdcLayout = this.contractComponent("UdcLayoutMask");
176
+ $UdcLayout.changeLayoutMaskStatus({
177
+ status,
178
+ bgColor,
179
+ });
180
+ },
181
+ /** 控制外框层面是否显示蒙层及隐藏对应工作区能力 */
182
+ changeLayoutAreaStatus: (message) => {
183
+ const { hiddenArea } = message;
184
+ const $UdcLayout = this.contractComponent("UdcLayoutArea");
185
+ $UdcLayout.changeLayoutAreaStatus({
186
+ hiddenArea,
187
+ });
188
+ },
189
+ },
190
+ };
191
+ /** 获取客户定制API */
192
+ getCustomApi = () => {
193
+ const _tenant = currentSDK.baseInfo.tenant || 'CMI';
194
+ const _tenantApi = this._customization[_tenant];
195
+ if (!_tenantApi) {
196
+ console.error(!_tenant ? "缺少tenant信息" : "该tenant未定制过API");
197
+ return;
198
+ }
199
+ return _tenantApi;
200
+ };
201
+ }
@@ -0,0 +1,69 @@
1
+ import { getUdcAppInfo } from "./application";
2
+ import { getUdcPageInParams, getUdcPageInfo, getUdcPageRuntimeVariable, getUdcPageSignature, getUdcPageVariables, setUdcPageRuntimeVariable, setUdcPageVariables, } from "./page";
3
+ import { getUdcComponentInfo, getUdcComponentSignature, getUdcComponentValue, getUdcComponentViewState, getUdcDataContainerComponentInfo, getUdcParentComponentInfo, setUdcComponentValue, setUdcComponentViewState, getComponentValueFromUiModelNode, setComponentValueFromUiModelNode, getUdcSubComponentViewState, setUdcSubComponentViewState, } from "./component";
4
+ import { getUdcDatasouceMetaInfo, queryUdcDatasourceDetail, queryUdcDatasourceList, queryUdcDatasourceListSummary, saveUdcDatasourceData, saveUdcDatasourceListData, deleteAndSaveUdcDatasourceData, createUdcDatasourceData, createUdcDatasourceDataFromSelectRows, deleteUdcDatasourceData, getUdcDatasourceData, } from "./datasource";
5
+ import { execParseUdcExpression, callUdcPresetFunc, callUdcPresetEventAction, i18n, getUdcComponent, getUdcProfile, getApiUrlByUdcAppInfo, transformCtpEnumCode, } from "./utils";
6
+ import { getUdcSdkForIframe } from './iframe';
7
+ export * from "./application";
8
+ export * from "./page";
9
+ export * from "./component";
10
+ export * from "./datasource";
11
+ export * from "./utils";
12
+ export * from "./iframe";
13
+ const tenant = null;
14
+ const baseInfo = {
15
+ tenant
16
+ };
17
+ /**
18
+ * http://doc.seeyona9.com/pages/viewpage.action?pageId=47260742
19
+ */
20
+ export const UDC_OPEN_SDK = {
21
+ // app
22
+ getUdcAppInfo,
23
+ // page
24
+ getUdcPageInParams,
25
+ getUdcPageInfo,
26
+ getUdcPageRuntimeVariable,
27
+ getUdcPageSignature,
28
+ getUdcPageVariables,
29
+ setUdcPageRuntimeVariable,
30
+ setUdcPageVariables,
31
+ // component
32
+ getUdcComponentInfo,
33
+ getUdcComponentSignature,
34
+ getUdcComponentValue,
35
+ getUdcComponentViewState,
36
+ setUdcComponentValue,
37
+ setUdcComponentViewState,
38
+ getUdcParentComponentInfo,
39
+ getUdcDataContainerComponentInfo,
40
+ getComponentValueFromUiModelNode,
41
+ setComponentValueFromUiModelNode,
42
+ getUdcSubComponentViewState,
43
+ setUdcSubComponentViewState,
44
+ // datasource
45
+ getUdcDatasouceMetaInfo,
46
+ queryUdcDatasourceDetail,
47
+ queryUdcDatasourceList,
48
+ queryUdcDatasourceListSummary,
49
+ saveUdcDatasourceData,
50
+ saveUdcDatasourceListData,
51
+ deleteAndSaveUdcDatasourceData,
52
+ createUdcDatasourceData,
53
+ createUdcDatasourceDataFromSelectRows,
54
+ deleteUdcDatasourceData,
55
+ getUdcDatasourceData,
56
+ // other
57
+ execParseUdcExpression,
58
+ callUdcPresetFunc,
59
+ callUdcPresetEventAction,
60
+ i18n,
61
+ getUdcComponent,
62
+ getUdcProfile,
63
+ getApiUrlByUdcAppInfo,
64
+ transformCtpEnumCode,
65
+ // iframe
66
+ getUdcSdkForIframe,
67
+ baseInfo
68
+ };
69
+ export const currentSDK = UDC_OPEN_SDK;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * 获取页面信息
3
+ *
4
+ * 维护者: 钟明亮
5
+ */
6
+ export const getUdcPageInfo = (runtimeContext) => {
7
+ throw Error("getUdcPageInfo ONLY work under UDC app");
8
+ };
9
+ /**
10
+ * 获取页面入参
11
+ *
12
+ * 维护者: 钟明亮
13
+ */
14
+ export const getUdcPageInParams = (runtimeContext) => {
15
+ throw Error("getUdcPageInParams ONLY work under UDC app");
16
+ };
17
+ /**
18
+ * 获取页面变量
19
+ *
20
+ * 维护者: 钟明亮
21
+ */
22
+ export const getUdcPageVariables = (runtimeContext, key) => {
23
+ throw Error("getUdcPageVariables ONLY work under UDC app");
24
+ };
25
+ /**
26
+ * 设置页面变量
27
+ *
28
+ * 维护者: 钟明亮
29
+ */
30
+ export const setUdcPageVariables = (runtimeContext, key, value) => {
31
+ throw Error("setUdcPageVariables ONLY work under UDC app");
32
+ };
33
+ /**
34
+ * 获取页面运行时变量
35
+ *
36
+ * 维护者: 钟明亮
37
+ */
38
+ export const getUdcPageRuntimeVariable = (runtimeContext) => {
39
+ throw Error("getUdcPageRuntimeVariable ONLY work under UDC app");
40
+ };
41
+ /**
42
+ * 设置页面运行时变量
43
+ *
44
+ * 维护者: 钟明亮
45
+ */
46
+ export const setUdcPageRuntimeVariable = (runtimeContext, runtimeVariables) => {
47
+ throw Error("setUdcPageRuntimeVariable ONLY work under UDC app");
48
+ };
49
+ /**
50
+ * 获取页面签名
51
+ *
52
+ * 维护者: 钟明亮
53
+ */
54
+ export const getUdcPageSignature = (runtimeContext) => {
55
+ throw Error("getUdcPageSignature ONLY work under UDC app");
56
+ };
@@ -0,0 +1,76 @@
1
+ /**
2
+ * 调用预置规则函数
3
+ * @abstract
4
+ *
5
+ * 维护者: 余梦圆
6
+ */
7
+ export const callUdcPresetFunc = (runtimeContext, id, params) => {
8
+ throw Error("execPresetFunctor ONLY work under UDC app");
9
+ };
10
+ /**
11
+ * 调用预置事件动作
12
+ * @deprecated
13
+ *
14
+ * 维护者: 余梦圆
15
+ */
16
+ export const callUdcPresetEventAction = (runtimeContext, action) => {
17
+ throw Error("callUdcPresetEventAction ONLY work under UDC app");
18
+ };
19
+ /**
20
+ * 解析表达式
21
+ * 推荐使用 GetUdcProfile 获取设置相关数据,已经内置表达式解析能力
22
+ *
23
+ * 维护者: 余梦圆
24
+ */
25
+ export const execParseUdcExpression = (runtimeContext, expression) => {
26
+ throw Error("parseUdcExpression ONLY work under UDC app");
27
+ };
28
+ /**
29
+ * 获取应用、页面等相关 profile
30
+ *
31
+ * 维护者: 钟明亮
32
+ */
33
+ export const getUdcProfile = (runtimeContext, type, raw) => {
34
+ throw Error("getUdcProfile ONLY work under UDC app");
35
+ };
36
+ /**
37
+ * 获取已经注册到 window 里面的组件
38
+ * 基础组件请使用 GetUdcComponent 获取
39
+ *
40
+ * 维护者: 钟明亮
41
+ */
42
+ export const getUdcComponent = (runtimeContext, name) => {
43
+ throw Error("getUdcComponent ONLY work under UDC app");
44
+ };
45
+ /**
46
+ * 国际化,兼容旧 schema 数据
47
+ *
48
+ * 维护者: 钟明亮
49
+ */
50
+ export const i18n = (query, defaultValue) => {
51
+ throw Error("i18n ONLY work under UDC app");
52
+ };
53
+ /**
54
+ * 获取组件数据容器行信息,根据传入的 runtimeContext 匹配行
55
+ *
56
+ * 维护者: 王宇
57
+ */
58
+ export const getUdcRowInfo = (runtimeContext, row) => {
59
+ throw Error("getUdcRowInfo ONLY work under UDC app");
60
+ };
61
+ /**
62
+ * 获取应用接口对应 url 地址
63
+ *
64
+ * 维护者: 王宇
65
+ */
66
+ export const getApiUrlByUdcAppInfo = (appInfo, hostAppRequest) => {
67
+ throw Error("getApiUrlByAppInfo ONLY work under UDC app");
68
+ };
69
+ /**
70
+ * 枚举值转换
71
+ *
72
+ * 维护者: 余梦圆
73
+ */
74
+ export const transformCtpEnumCode = (runtimeContext, code) => {
75
+ throw Error("getApiUrlByAppInfo ONLY work under UDC app");
76
+ };
@@ -0,0 +1,46 @@
1
+ import { UDC_OPEN_SDK } from "./impl";
2
+ if (!window.__UDC_OPEN_SDK__) {
3
+ window.__UDC_OPEN_SDK__ = {
4
+ default: UDC_OPEN_SDK,
5
+ };
6
+ }
7
+ /** 注册 UDC 运行时 SDK
8
+ * @example
9
+ * ```
10
+ * import { setUdcSdk } from '@seeyon/udc-sdk';
11
+ *
12
+ * setUdcSdk('2.7', {
13
+ * getUdcAppInfo: () => {},
14
+ * // ...
15
+ * });
16
+ * ```
17
+ */
18
+ export const registerUdcSdk = (version, sdk) => {
19
+ window.__UDC_OPEN_SDK__[version] = sdk;
20
+ };
21
+ export const getUdcSdk = (version) => {
22
+ // TODO: semver match?
23
+ let sdk = window.__UDC_OPEN_SDK__["default"];
24
+ ;
25
+ if (version in window.__UDC_OPEN_SDK__) {
26
+ sdk = window.__UDC_OPEN_SDK__[version];
27
+ }
28
+ return sdk;
29
+ };
30
+ /**设置SDK信息 */
31
+ export const setSdkBaseInfo = (version, baseInfo) => {
32
+ const sdk = getUdcSdk(version);
33
+ sdk.baseInfo = baseInfo;
34
+ };
35
+ export const ready = (config, callback) => {
36
+ const { mode, version } = config;
37
+ if (mode !== 'iframe') {
38
+ console.error('SDK当前仅支持iframe模式');
39
+ return;
40
+ }
41
+ setSdkBaseInfo(version, {
42
+ tenant: config.tenant
43
+ });
44
+ const UdcSdkForIframe = UDC_OPEN_SDK.getUdcSdkForIframe();
45
+ UdcSdkForIframe.ready(callback);
46
+ };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * 获取组件 props 关于运行态相关的 props
3
+ */
4
+ export const getUdcComponentRuntimeProps = (props) => {
5
+ const { runtimeContext } = props;
6
+ if (runtimeContext) {
7
+ const { udcRuntimeCoreVersion, isUdcApp, visible, disabled, pairValue, readonly, required, udcSdk, } = props;
8
+ return {
9
+ udcRuntimeCoreVersion,
10
+ isUdcApp,
11
+ visible,
12
+ disabled,
13
+ pairValue,
14
+ readonly,
15
+ required,
16
+ runtimeContext,
17
+ udcSdk,
18
+ };
19
+ }
20
+ return {};
21
+ };
@@ -0,0 +1,39 @@
1
+ import ChildDialog from './src/index.vue'
2
+ import { createVNode, render } from 'vue'
3
+
4
+ export function generateOpenChildDialog() {
5
+ let instance = null
6
+ return function openChildDialog(options = {}, appContext) {
7
+ const initData = options.initData || {}
8
+ if (instance) {
9
+ Object.keys(options).forEach(key => {
10
+ instance.props[key] = options[key]
11
+
12
+ })
13
+ instance.vm.exposed.dialogVisible.value = true
14
+ // instance?.vm?.exposed?.clearData()
15
+ instance?.vm?.exposed?.initData(initData)
16
+ return instance.close
17
+ }
18
+ const container = document.createElement('div')
19
+ const vnode = createVNode(ChildDialog, {
20
+ ...options,
21
+ })
22
+ vnode.appContext = appContext
23
+ render(vnode, container)
24
+ document.body.appendChild(container.firstElementChild)
25
+
26
+ instance = {
27
+ vnode,
28
+ vm: vnode.component,
29
+ props: vnode.component?.props,
30
+ close: () => {
31
+ vnode.component.exposed.dialogVisible.value = false
32
+ }
33
+ }
34
+ vnode.component.exposed.dialogVisible.value = true
35
+ vnode.component.exposed?.initData(initData)
36
+
37
+ return instance.close
38
+ }
39
+ }
@@ -0,0 +1,185 @@
1
+ <script setup>
2
+ import { computed, defineAsyncComponent, ref } from 'vue';
3
+ import { ElDialog } from 'element-plus';
4
+ import zhCn from 'element-plus/es/locale/lang/zh-cn'
5
+ import en from 'element-plus/es/locale/lang/en'
6
+ import { hasOwn } from '../../../utils';
7
+ import { watch } from 'vue';
8
+ const Resolver = defineAsyncComponent(() => import('../../../resolver-web.vue'))
9
+
10
+ const props = defineProps({
11
+ // 传入的自定义组件
12
+ components: {
13
+ type: Object,
14
+ default: () => ({})
15
+ },
16
+ busiIdentityId: {
17
+ type: String,
18
+ default: ''
19
+ },
20
+ // 请求方法的实列
21
+ axiosInstance: {
22
+ type: [Object, Function],
23
+ default: () => null
24
+ },
25
+ // 按钮的工作集合
26
+ buttonActions: {
27
+ type: Object,
28
+ default: () => ({})
29
+ },
30
+ // config的额外属性配置
31
+ polyfillConfigs: {
32
+ type: Object,
33
+ default: () => ({})
34
+ },
35
+ axiosConfig: {
36
+ type: Object,
37
+ default: null
38
+ },
39
+ lang: {
40
+ type: String,
41
+ default: 'zh'
42
+ },
43
+ loadEvnetsReq: {
44
+ type: Object,
45
+ default: () => ({})
46
+ },
47
+ parentRootValue: {
48
+ type: Object,
49
+ default: () => ({})
50
+ },
51
+ parentDynamicMapComp: {
52
+ type: Object,
53
+ default: () => ({})
54
+ },
55
+ parentSelects: {
56
+ type: Object,
57
+ default: () => ({})
58
+ },
59
+ selectionsObj: {
60
+ type: Object,
61
+ // selections
62
+ // primaryKeys
63
+ default: () => ({})
64
+ },
65
+ dialogProps: {
66
+ type: Object,
67
+ default: () => ({})
68
+ },
69
+ rootStoreChange: Function,
70
+ // 获取formData数据
71
+ rootDataChange: Function,
72
+ })
73
+ const formData = ref({})
74
+ const dialogVisible = ref(true)
75
+ const rootOptionComp = ref({})
76
+ const dialogHeight = computed(() => {
77
+ return rootOptionComp.value?.widgetHeight
78
+ })
79
+ const locale = computed(() => {
80
+ return props.lang?.indexOf('zh') > -1 ? zhCn : en
81
+ })
82
+ const dialogWidth = computed(() => {
83
+ return rootOptionComp.value?.widgetWidth
84
+ })
85
+ const dialogStyle = computed(() => {
86
+ return {color: 'red', 'height': dialogHeight}
87
+ })
88
+
89
+ const dialogProps = computed(() => {
90
+ const ret = Object.keys(ElDialog.props).reduce((ret, key) => {
91
+ if (hasOwn(props.dialogProps, key)) {
92
+ ret[key] = props.dialogProps[key]
93
+ }
94
+ return ret
95
+ }, {})
96
+ ret.title = ret.title || props.dialogProps?.titleEn || ''
97
+ if (props.dialogProps?.titleEn && props.lang?.indexOf('zh') == -1) {
98
+ ret.title = props.dialogProps?.titleEn
99
+ }
100
+ return ret
101
+ })
102
+
103
+ function loadedConfigCompeted(pageConfig) {
104
+ rootOptionComp.value = pageConfig.rootOptionComp
105
+ }
106
+ function rootStoreChange(rootStore) {
107
+ props.rootStoreChange && props.rootStoreChange(rootStore)
108
+ }
109
+
110
+
111
+ watch(formData, (val) => {
112
+ props.rootDataChange && props.rootDataChange(val)
113
+ })
114
+ defineExpose({
115
+ dialogVisible,
116
+ clearData: () => {
117
+ formData.value = {}
118
+ },
119
+ initData: (data) => {
120
+ formData.value = data
121
+ }
122
+ })
123
+ </script>
124
+ <template>
125
+ <ElConfigProvider :locale="locale">
126
+ <ElDialog class="open-child-frame"
127
+ :close-on-click-modal="false"
128
+ :show-close="false"
129
+ v-bind="dialogProps"
130
+ :width="dialogWidth"
131
+ v-model="dialogVisible"
132
+ :class="{
133
+ 'hidden-head': !dialogProps.title
134
+ }"
135
+ :style="dialogStyle"
136
+ >
137
+ <div>
138
+ </div>
139
+ <Resolver v-if="dialogVisible" ref="resolverRef"
140
+ @loadedConfigCompeted="loadedConfigCompeted"
141
+ @rootStoreChange="rootStoreChange"
142
+ v-model="formData"
143
+ :parentRootValue="props.parentRootValue"
144
+ :parentDynamicMapComp="props.parentDynamicMapComp"
145
+ :selectionsObj="props.selectionsObj"
146
+ :busiIdentityId="busiIdentityId"
147
+ :lang="props.lang"
148
+ :selects="parentSelects"
149
+ :buttonActions="props.buttonActions"
150
+ :dialogReq="props.loadEvnetsReq"
151
+ :polyfillConfigs="props.polyfillConfigs"
152
+ :axiosInstance="props.axiosInstance"
153
+ :axiosConfig="props.axiosConfig"
154
+ :components="props.components"
155
+ ></Resolver>
156
+ </ElDialog>
157
+ </ElConfigProvider>
158
+ </template>
159
+
160
+ <style lang="scss">
161
+ .open-child-frame {
162
+ padding: 16px 20px 20px 20px;
163
+ overflow-y: auto;
164
+ overflow-x: hidden;
165
+
166
+ max-height: calc(100vh - 200px);
167
+
168
+ &.el-dialog {
169
+ margin-top: 100px !important;
170
+ margin-bottom: 100px;
171
+ }
172
+ .el-dialog__header {
173
+ --el-dialog-title-font-size: 16px;
174
+ min-height: 40px;
175
+ font-weight: 600;
176
+ }
177
+ .el-dialog__body {
178
+ }
179
+ &.hidden-head {
180
+ & > .el-dialog__header {
181
+ display: none;
182
+ }
183
+ }
184
+ }
185
+ </style>
@@ -0,0 +1 @@
1
+ export { default as default} from './src/index.vue'