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,50 @@
1
+ <script setup>
2
+ import { computed, inject, ref } from 'vue'
3
+ // import { Quill, quillEditor } from 'vue3-quill'
4
+ import { commonPropsType } from '../../utils';
5
+
6
+ const currentComp = ref(null)
7
+
8
+ import('vue3-quill').then(({ Quill, quillEditor }) => {
9
+ currentComp.value = quillEditor
10
+ })
11
+
12
+ const props = defineProps({
13
+ ...commonPropsType,
14
+ })
15
+ const lang = inject('lang')
16
+ const modelValue = defineModel()
17
+
18
+ const editorOption = computed(() => {
19
+ return {
20
+ placeholder: props.config[lang?.value?.indexOf('zh') > -1 ? 'defPlacehold' : 'defPlaceholdEn'],
21
+ modules: {
22
+ }
23
+ }
24
+ })
25
+ const editorStyle = computed(() => {
26
+ return {
27
+ height: props.config?.contentHeight || '200px'
28
+ }
29
+ })
30
+ </script>
31
+ <template>
32
+ <div class="custom-component-editor">
33
+ <component
34
+ :is="currentComp"
35
+ ref="fieldEditor"
36
+ v-model:value="modelValue"
37
+ :options="editorOption"
38
+ :disabled="props.disabled"
39
+ @blur="() => {}"
40
+ @focus="() => {}"
41
+ @change="() => {}"
42
+ :style="editorStyle"
43
+ ></component>
44
+ </div>
45
+ </template>
46
+ <style lang="scss">
47
+ .custom-component-editor {
48
+ width: 100%;
49
+ }
50
+ </style>
@@ -0,0 +1,60 @@
1
+ <template>
2
+ <ElButton @click="buttonAction" v-bind="{...attrs, ...calcPorps}">
3
+ {{label}}
4
+ </ElButton>
5
+ </template>
6
+ <script setup>
7
+ import { ElButton } from 'element-plus'
8
+ import { defineProps, inject, computed, useAttrs } from 'vue'
9
+ import { commonPropsType } from '../../utils/index.js'
10
+ import thirdPartyFrame from '../thirdPartyFrame'
11
+ import { FILE_EXPORT_URL } from '../../api/builtIn.js'
12
+
13
+ const props = defineProps({
14
+ ...commonPropsType,
15
+ ...ElButton.props,
16
+ toHref: String
17
+ })
18
+ const calcPorps = computed(() => {
19
+ const ret = {
20
+ ...props
21
+ }
22
+ if (ret.plain == '1') {
23
+ ret.plain = true
24
+ } else {
25
+ ret.plain = false
26
+ }
27
+
28
+ if (ret.circle == '1') {
29
+ ret.circle = true
30
+ } else {
31
+ ret.circle = false
32
+ }
33
+ if (props?.config?.rounds && props?.config?.rounds == '1') {
34
+ ret.round = true
35
+ }
36
+ if (props?.config?.widgetSize) {
37
+ ret.size = props?.config?.widgetSize
38
+ }
39
+ if (props?.config?.displayType) {
40
+ ret.type = props?.config?.displayType
41
+ }
42
+ return ret
43
+ })
44
+
45
+ const attrs = useAttrs()
46
+
47
+ const lang = inject('lang')
48
+
49
+ const label = computed(() => {
50
+ return lang.value.indexOf('zh') > -1 ? (props.config?.labelZh || props.config?.metaNameZh) : (props.config?.labelEn || props.config?.metaNameEn)
51
+ })
52
+
53
+ const buttonAction = () => {
54
+ thirdPartyFrame({
55
+ lang: lang?.value,
56
+ showClose: true,
57
+ src: `${FILE_EXPORT_URL}?showMenuHead=5&fullScreen=true&apToken=${props.toHref}`
58
+ })
59
+ }
60
+ </script>
@@ -0,0 +1,60 @@
1
+ <template>
2
+ <ElButton @click="buttonAction" v-bind="{...attrs, ...calcPorps}">
3
+ {{label}}
4
+ </ElButton>
5
+ </template>
6
+ <script setup>
7
+ import { ElButton } from 'element-plus'
8
+ import { defineProps, inject, computed, useAttrs } from 'vue'
9
+ import { commonPropsType } from '../../utils/index.js'
10
+ import thirdPartyFrame from '../thirdPartyFrame'
11
+ import { FILE_IMPORT_URL } from '../../api/builtIn.js'
12
+
13
+ const props = defineProps({
14
+ ...commonPropsType,
15
+ ...ElButton.props,
16
+ toHref: String
17
+ })
18
+ const calcPorps = computed(() => {
19
+ const ret = {
20
+ ...props
21
+ }
22
+ if (ret.plain == '1') {
23
+ ret.plain = true
24
+ } else {
25
+ ret.plain = false
26
+ }
27
+
28
+ if (ret.circle == '1') {
29
+ ret.circle = true
30
+ } else {
31
+ ret.circle = false
32
+ }
33
+ if (props?.config?.rounds && props?.config?.rounds == '1') {
34
+ ret.round = true
35
+ }
36
+ if (props?.config?.widgetSize) {
37
+ ret.size = props?.config?.widgetSize
38
+ }
39
+ if (props?.config?.displayType) {
40
+ ret.type = props?.config?.displayType
41
+ }
42
+ return ret
43
+ })
44
+
45
+ const attrs = useAttrs()
46
+
47
+ const lang = inject('lang')
48
+
49
+ const label = computed(() => {
50
+ return lang.value.indexOf('zh') > -1 ? (props.config?.labelZh || props.config?.metaNameZh) : (props.config?.labelEn || props.config?.metaNameEn)
51
+ })
52
+
53
+ const buttonAction = () => {
54
+ thirdPartyFrame({
55
+ lang: lang?.value,
56
+ showClose: true,
57
+ src: `${FILE_IMPORT_URL}?showMenuHead=5&fullScreen=true&apToken=${props.toHref}`
58
+ })
59
+ }
60
+ </script>
@@ -0,0 +1,65 @@
1
+ <template>
2
+ <ElForm v-bind="formProps" :ref="refFn" :model="props.modelValue">
3
+ <FormPolyfill :form="rootForm">
4
+ <ElRow v-bind="rowProps">
5
+ <Renderer :config="pmPageMetaList" v-model="val"></Renderer>
6
+ </ElRow>
7
+ </FormPolyfill>
8
+ </ElForm>
9
+ </template>
10
+ <script setup>
11
+ import Renderer from '../../renderer.jsx'
12
+ import { computed, inject } from "vue"
13
+ import { ElForm, ElRow } from 'element-plus'
14
+ import FormPolyfill from '../helper/FormPolyfill.jsx'
15
+
16
+ const emits = defineEmits(['update:modelValue'])
17
+ const props = defineProps({
18
+ config: {
19
+ type: Object,
20
+ default: () => null
21
+ },
22
+ // 这个组件通过v-model进行数据的绑定
23
+ modelValue: {
24
+ // type: [String, Number, Object],
25
+ default: null
26
+ },
27
+ ...ElForm.props,
28
+ ...ElRow.props
29
+ })
30
+
31
+ const rootForm = inject('rootForm')
32
+ const refFn = e => {
33
+ if (props.config?.rootForm) {
34
+ rootForm.value = e
35
+ }
36
+ }
37
+
38
+ const formProps = computed(() => {
39
+ return Object.keys(ElForm.props).reduce((ret, key) => {
40
+ ret[key] = props[key]
41
+ return ret
42
+ },{})
43
+ })
44
+
45
+ const rowProps = computed(() => {
46
+ return Object.keys(ElRow.props).reduce((ret, key) => {
47
+ ret[key] = props[key]
48
+ return ret
49
+ },{})
50
+ })
51
+
52
+ const pmPageMetaList = computed(() => props.config.pmPageMetaList)
53
+
54
+ const val = computed({
55
+ get() {
56
+ return props.modelValue
57
+ },
58
+ set(val) {
59
+ emits('update:modelValue', val)
60
+ }
61
+ })
62
+ defineExpose({
63
+ val
64
+ })
65
+ </script>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <ElRow class="custom-component-grid" v-bind="elRowProps">
3
+ <Renderer :config="pmPageMetaList" v-model="modelValue"></Renderer>
4
+ </ElRow>
5
+ </template>
6
+ <script setup>
7
+ import Renderer from '../../renderer.jsx'
8
+ import { ElRow } from 'element-plus'
9
+ import { computed, defineProps } from 'vue'
10
+ import { commonPropsType } from '../../utils/index.js'
11
+
12
+ const modelValue = defineModel()
13
+
14
+ const props = defineProps({
15
+ ...commonPropsType,
16
+ ...ElRow.props
17
+ })
18
+ const elRowProps = computed(() => {
19
+ return Object.keys(ElRow.props).reduce((ret, key) => {
20
+ ret[key] = props[key]
21
+ return ret
22
+ }, {})
23
+ })
24
+ const pmPageMetaList = computed(() => {
25
+ return props.config?.pmPageMetaList || []
26
+ })
27
+ </script>
28
+ <style lang="scss">
29
+ </style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <ElCol class="custom-component-grid" v-bind="elColProps">
3
+ <Renderer :config="pmPageMetaList" v-model="modelValue"></Renderer>
4
+ </ElCol>
5
+ </template>
6
+ <script setup>
7
+ import Renderer from '../../renderer.jsx'
8
+ import { ElCol } from 'element-plus'
9
+ import { computed, defineProps } from 'vue'
10
+ import { commonPropsType } from '../../utils/index.js'
11
+
12
+ const modelValue = defineModel()
13
+
14
+ const props = defineProps({
15
+ ...commonPropsType,
16
+ ...ElCol.props
17
+ })
18
+ const elColProps = computed(() => {
19
+ return Object.keys(ElCol.props).reduce((ret, key) => {
20
+ ret[key] = props[key]
21
+ return ret
22
+ }, {})
23
+ })
24
+ const pmPageMetaList = computed(() => {
25
+ return props.config?.pmPageMetaList || []
26
+ })
27
+ </script>
28
+ <style lang="scss">
29
+ </style>
@@ -0,0 +1,144 @@
1
+ <template>
2
+ <div class="input-dialog">
3
+ <ElInput :disabled="props.disabled" v-bind="{...inputProps, inputEvents}" :modelValue="label" @clear="modelValue = ''" @click="handleShowDialog">
4
+ <template #suffix v-if="!props.disabled">
5
+ <ElIcon style="cursor: pointer;" @click="handleShowDialog">
6
+ <Search />
7
+ </ElIcon>
8
+ </template>
9
+ </ElInput>
10
+ <ElDialog v-model="dialogVisible" append-to-body width="1000" :title="props.dialogTitle" v-bind="dialogEvents">
11
+ <component :is="component" :valueKey="valueKey" :value="modelValue" @change="currentChange"></component>
12
+ <template #footer>
13
+ <div class="dialog-footer">
14
+ <el-button @click="toClose">
15
+ {{ lang.indexOf('zh') > -1 ? '取消' : 'Cancel' }}
16
+ </el-button>
17
+ <el-button type="primary" @click="toConfirm">
18
+ {{ lang.indexOf('zh') > -1 ? '确定' : 'Confirm' }}
19
+ </el-button>
20
+ </div>
21
+ </template>
22
+ </ElDialog>
23
+ </div>
24
+ </template>
25
+ <script setup>
26
+ import { ElInput, ElIcon, ElDialog } from 'element-plus'
27
+ import { defineProps, defineOptions, defineModel, ref, watch, computed, inject, useAttrs } from 'vue'
28
+ import { Search, Close } from '@element-plus/icons-vue'
29
+ import { commonPropsType, capitalize, camelize } from '../../utils/index.js'
30
+
31
+ import { hasOwn } from '../../utils';
32
+
33
+ defineOptions({
34
+ inheritAttrs: false
35
+ })
36
+
37
+ const currentRow = ref(null)
38
+ const props = defineProps({
39
+ ...commonPropsType,
40
+ ...ElInput.props,
41
+ valueKey: {
42
+ type: String,
43
+ default: '',
44
+ },
45
+ bindKeys: {
46
+ type: [Array, Object],
47
+ default: () => []
48
+ },
49
+ isRefOptions: {
50
+ type: Boolean,
51
+ default: false
52
+ },
53
+ dialogTitle: {
54
+ type: String,
55
+ default: '',
56
+ }
57
+ })
58
+ const attrs = useAttrs()
59
+
60
+ const getCompEvents = (comp) => {
61
+ let emitKeys = comp.emits
62
+ if(!Array.isArray(emitKeys)) {
63
+ emitKeys = Object.keys(emitKeys)
64
+ }
65
+ return emitKeys.reduce((ret, key) => {
66
+ const eventKey = capitalize(camelize(key))
67
+ if (hasOwn(attrs, eventKey)) {
68
+ ret[eventKey] = attrs[eventKey]
69
+ }
70
+ return ret
71
+ }, {})
72
+ }
73
+ const inputEvents = computed(() => {
74
+ return getCompEvents(ElInput)
75
+ })
76
+ const dialogEvents = computed(() => {
77
+ return getCompEvents(ElDialog)
78
+ })
79
+ const inputProps = computed(() => {
80
+ const propsObj = Object.keys(ElInput.props).reduce((ret, key) => {
81
+ if (props[key]) {
82
+ ret[key] = props[key]
83
+ }
84
+ return ret
85
+ }, {})
86
+ if (!hasOwn(propsObj, 'clearable')) {
87
+ propsObj.clearable = true
88
+ }
89
+ return propsObj
90
+ })
91
+ const lang = inject('lang')
92
+ const dialogComponents = inject('dialogComponents')
93
+ const component = computed(() => {
94
+ return dialogComponents?.[props?.config?.component]
95
+ })
96
+ const valueKey = computed(() => {
97
+ return props.valueKey || props?.config?.metaCode
98
+ })
99
+ const modelValue = defineModel()
100
+ const label = computed(() => {
101
+ if (props.isRefOptions) {
102
+ return (props.options || []).find(item => item.columnValue === modelValue.value)?.[lang?.value?.indexOf('zh') > -1 ? 'columnDesc_zh' : 'columnDesc']
103
+ }
104
+ return modelValue.value
105
+ })
106
+ let models = {}
107
+ const bindkeysType = Object.prototype.toString.call(props.bindKeys)
108
+ if (bindkeysType === '[object Object]') {
109
+ models = Object.keys(props.bindKeys).reduce((ret, key) => {
110
+ ret[props.bindKeys[key]] = defineModel(key)
111
+ return ret
112
+ }, {})
113
+ } else if (bindkeysType === '[object Array]') {
114
+ models = props.bindKeys.reduce((ret, key) => {
115
+ ret[key] = defineModel(key)
116
+ return ret
117
+ }, {})
118
+ }
119
+
120
+ const dialogVisible = ref(false)
121
+
122
+ const currentChange = (val) => {
123
+ currentRow.value = val
124
+ }
125
+ const handleShowDialog = () => {
126
+ dialogVisible.value = true
127
+ }
128
+
129
+ const toClose = () => {
130
+ dialogVisible.value = false
131
+ }
132
+ const toConfirm = () => {
133
+ modelValue.value = currentRow.value && currentRow.value[valueKey.value]
134
+ Object.keys(models).forEach(key => {
135
+ models[key].value = currentRow.value && currentRow.value[key]
136
+ })
137
+ dialogVisible.value = false
138
+ }
139
+ </script>
140
+ <style scoped>
141
+ .input-dialog {
142
+ width: 100%;
143
+ }
144
+ </style>
@@ -0,0 +1,84 @@
1
+ <template>
2
+ <TabPane v-bind="{...attrs, ...tabPaneProps, ...polyProps}">
3
+ <template #label v-if="labelRenderContent || slotsPageMetalist.length">
4
+ <component :is="labelRenderContent" v-if="labelRenderContent"></component>
5
+ <Renderer v-else :config="slotsPageMetalist" v-model="props.refValue.value"></Renderer>
6
+ </template>
7
+ <ElRow>
8
+ <Renderer
9
+ :mode="generateModel({
10
+ data: props.refValue.value,
11
+ index: 0,
12
+ })"
13
+ :config="(props.config.pmPageMetaList || []).filter(config => !config.collapseSlot)"
14
+ v-model="props.refValue.value"
15
+ >
16
+ </Renderer>
17
+ </ElRow>
18
+ <template v-for="(_, key) in slots" :key="key" v-slot:[key]="scope">
19
+ <slot :name="key" v-bind="scope"></slot>
20
+ </template>
21
+ </TabPane>
22
+ </template>
23
+ <script setup>
24
+ import { ElTabPane, ElRow } from 'element-plus'
25
+ import Renderer from '../../renderer.jsx'
26
+ import { computed, inject, useAttrs, useSlots } from 'vue'
27
+ import { commonPropsType } from '../../utils/index.js'
28
+ import { TabPane } from '../tabs'
29
+ import { h } from 'vue'
30
+
31
+ const slots = useSlots()
32
+ const props = defineProps({
33
+ ...commonPropsType,
34
+ ...TabPane.props,
35
+ hidden: [String, Boolean, Number],
36
+ activeNames: String,
37
+ })
38
+ const attrs = useAttrs()
39
+
40
+ const slotsPageMetalist = computed(() => {
41
+ return (props.config.pmPageMetaList || []).filter(config => config.collapseSlot)
42
+ })
43
+
44
+ const lang = inject('lang')
45
+ const polyProps = computed(() => {
46
+ return {
47
+ label: lang.value.indexOf('zh') > -1 ? props.config?.metaNameZh : props.config?.metaNameEn,
48
+ name: props.config?.metaCode
49
+ }
50
+ })
51
+ const generateModel = computed(() => {
52
+ return (...arg) => {
53
+ return props?.config?.isDetail?.(...arg) === true ? 'detail' : null
54
+ }
55
+ })
56
+ const tabPaneProps = computed(() => {
57
+ const ret = Object.keys(TabPane.props).reduce((ret, key) => {
58
+ ret[key] = props[key]
59
+ return ret
60
+ }, {})
61
+ if (typeof ret.hidden !== 'boolean') {
62
+ ret.hidden = ret.hidden == '1'
63
+ }
64
+ return ret
65
+ })
66
+
67
+ // 自定义渲染label方法
68
+ const labelRenderContent = computed(() => {
69
+ const context = props.config?.labelRender?.(getLableRenderParams())
70
+ if (typeof context === 'string') {
71
+ return h('span', context)
72
+ } else {
73
+ return context
74
+ }
75
+ })
76
+ function getLableRenderParams() {
77
+ return {
78
+ config: props.config,
79
+ tabPaneData: props.refValue.value,
80
+ isActive: props.activeNames === props.config?.metaCode,
81
+ }
82
+ }
83
+
84
+ </script>