resolver-egretimp-plus 0.0.10 → 0.0.28
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.
- package/dist/h5/index.js +2 -1
- package/dist/h5/index.js.LICENSE.txt +1 -0
- package/dist/theme/element/index.css +1 -1
- package/dist/theme/element/src/components/form.scss +4 -0
- package/dist/web/index.js +1 -1
- package/package.json +7 -3
- package/scripts/webpack.config.js +4 -2
- package/src/api/builtIn.js +4 -0
- package/src/components/helper/button-H5.js +17 -0
- package/src/components/icons/question-filled.vue +3 -2
- package/src/components/loading/index.js +6 -0
- package/src/components/loading/loading.js +98 -0
- package/src/components/loading/loading.scss +74 -0
- package/src/components/loading/loading.vue +89 -0
- package/src/components/packages-H5/CmiButton.vue +1 -1
- package/src/components/packages-H5/CmiCell.vue +4 -3
- package/src/components/packages-web/CustomComponentTabPane.vue +1 -1
- package/src/components/packages-web/CustomComponentTabs.vue +6 -3
- package/src/components/patchComponents-H5.js +2 -2
- package/src/enums/index.js +10 -0
- package/src/hooks/pageConfig.js +51 -1
- package/src/index.jsx +2 -2
- package/src/resolver-H5.vue +18 -2
- package/src/resolver-common.vue +45 -0
- package/src/resolver-web.vue +17 -2
- package/src/theme/element/components/form.scss +4 -0
- package/src/utils/cipher.js +141 -0
- package/src/utils/render.jsx +6 -11
- package/src/utils/request.js +123 -0
package/package.json
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "resolver-egretimp-plus",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.28",
|
|
4
4
|
"description": "交付体验渲染",
|
|
5
5
|
"main": "./dist/web/index.js",
|
|
6
6
|
"module": "./dist/web/index.js",
|
|
7
7
|
"exports": {
|
|
8
|
-
".": "./dist/index.js",
|
|
9
|
-
"./
|
|
8
|
+
".": "./dist/web/index.js",
|
|
9
|
+
"./h5": "./dist/h5/index.js",
|
|
10
|
+
"./web": "./dist/web/index.js",
|
|
11
|
+
"./*": "./*"
|
|
10
12
|
},
|
|
11
13
|
"scripts": {
|
|
12
14
|
"build:package": "webpack --config scripts/webpack.config.js",
|
|
@@ -26,6 +28,7 @@
|
|
|
26
28
|
"babel-loader": "^9.1.3",
|
|
27
29
|
"consola": "^3.2.3",
|
|
28
30
|
"core-js-pure": "^3.38.1",
|
|
31
|
+
"crypto-js": "^4.2.0",
|
|
29
32
|
"css-loader": "^7.1.2",
|
|
30
33
|
"dayjs": "^1.11.13",
|
|
31
34
|
"element-plus": "^2.7.6",
|
|
@@ -38,6 +41,7 @@
|
|
|
38
41
|
"lodash-es": "^4.17.21",
|
|
39
42
|
"mini-css-extract-plugin": "^2.9.0",
|
|
40
43
|
"node-sass": "^9.0.0",
|
|
44
|
+
"qs": "^6.13.0",
|
|
41
45
|
"sass": "1.77.6",
|
|
42
46
|
"sass-loader": "^14.2.1",
|
|
43
47
|
"vue-loader": "^17.4.2",
|
|
@@ -5,7 +5,7 @@ module.exports = {
|
|
|
5
5
|
mode: 'production',
|
|
6
6
|
entry: {
|
|
7
7
|
web: path.resolve(__dirname, '../index-web.js'),
|
|
8
|
-
h5: path.resolve(__dirname, '../index-
|
|
8
|
+
h5: path.resolve(__dirname, '../index-H5.js'),
|
|
9
9
|
},
|
|
10
10
|
output: {
|
|
11
11
|
clean: true,
|
|
@@ -71,7 +71,9 @@ module.exports = {
|
|
|
71
71
|
},
|
|
72
72
|
externals: {
|
|
73
73
|
vue: 'vue',
|
|
74
|
-
'cmid
|
|
74
|
+
'cmid': 'cmid',
|
|
75
|
+
'cmid/lib/toast': 'cmid/lib/toast',
|
|
76
|
+
'cmid/lib/fullloading': 'cmid/lib/fullloading',
|
|
75
77
|
'element-plus': 'element-plus',
|
|
76
78
|
'vue-router': 'vue-router',
|
|
77
79
|
'element-plus/es/hooks/index.mjs': 'element-plus/es/hooks/index.mjs',
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// import { ElMessage } from 'element-plus';
|
|
2
|
+
|
|
3
|
+
export async function dispatchClickEvents ({serviceList = [], axiosInstance, reqData}) {
|
|
4
|
+
for (let i = 0; i < serviceList.length; i++) {
|
|
5
|
+
const service = serviceList[i]
|
|
6
|
+
const url = service.serviceCode
|
|
7
|
+
const ret = await (axiosInstance.value && axiosInstance.value({
|
|
8
|
+
url,
|
|
9
|
+
method: "post",
|
|
10
|
+
data: reqData
|
|
11
|
+
}))
|
|
12
|
+
if (!ret?.data?.success) {
|
|
13
|
+
// ElMessage.error(ret?.data?.resultMessage || '')
|
|
14
|
+
await Promise.reject()
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"/></svg>
|
|
3
|
+
<!-- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
|
3
4
|
<path
|
|
4
5
|
fill="currentColor"
|
|
5
6
|
d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784"
|
|
6
7
|
/>
|
|
7
|
-
</svg>
|
|
8
|
+
</svg> -->
|
|
8
9
|
</template>
|
|
9
10
|
<script setup>
|
|
10
11
|
defineOptions({
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import { createApp } from 'vue'
|
|
3
|
+
import loading from './loading.vue'
|
|
4
|
+
const app = createApp(loading)
|
|
5
|
+
|
|
6
|
+
let instance = null
|
|
7
|
+
let seed = 1
|
|
8
|
+
|
|
9
|
+
let getAnInstance = () => {
|
|
10
|
+
if (instance) {
|
|
11
|
+
return instance
|
|
12
|
+
}
|
|
13
|
+
instance = app.mount(document.createElement('div'))
|
|
14
|
+
console.log('install==:', instance)
|
|
15
|
+
return instance
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
let isChildOf = (child, parent) => {
|
|
20
|
+
var parentNode
|
|
21
|
+
if (child && parent) {
|
|
22
|
+
parentNode = child.parentNode
|
|
23
|
+
while (parentNode) {
|
|
24
|
+
if (parent === parentNode) {
|
|
25
|
+
return true
|
|
26
|
+
}
|
|
27
|
+
parentNode = parentNode.parentNode
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return false
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let removeDom = event => {
|
|
34
|
+
if (event.target && event.target.parentNode) {
|
|
35
|
+
event.target.parentNode.removeChild(event.target)
|
|
36
|
+
} else {
|
|
37
|
+
isChildOf(event, event.parentNode) && event.parentNode.removeChild(event)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
app.config.globalProperties.close = function (el) {
|
|
42
|
+
let instance = getAnInstance()
|
|
43
|
+
instance.show = false
|
|
44
|
+
if ('transitionend' in window || 'webkitTransitionEnd' in window) {
|
|
45
|
+
this.$el.addEventListener('transitionend', removeDom)
|
|
46
|
+
this.$el.addEventListener('webkitTransitionEnd', removeDom)
|
|
47
|
+
} else {
|
|
48
|
+
removeDom(el)
|
|
49
|
+
}
|
|
50
|
+
this.closed = true
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
app.config.globalProperties.start = function (el) {
|
|
54
|
+
let instance = getAnInstance()
|
|
55
|
+
instance.closed = false
|
|
56
|
+
instance.id = seed++
|
|
57
|
+
instance.show = true
|
|
58
|
+
document.body.appendChild(instance.$el)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
app.config.globalProperties.finish = function (el) {
|
|
62
|
+
let instance = getAnInstance()
|
|
63
|
+
instance.closed = true
|
|
64
|
+
instance.id = seed++
|
|
65
|
+
instance.show = false
|
|
66
|
+
if (instance && instance.$el) {
|
|
67
|
+
removeDom(instance.$el)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
let CmiLoading = (options = {}) => {
|
|
72
|
+
let duration = options.duration || 1500
|
|
73
|
+
|
|
74
|
+
let instance = getAnInstance()
|
|
75
|
+
instance.closed = false
|
|
76
|
+
instance.id = seed++
|
|
77
|
+
clearTimeout(instance.timer)
|
|
78
|
+
|
|
79
|
+
document.body.appendChild(instance.$el)
|
|
80
|
+
Vue.nextTick(() => {
|
|
81
|
+
instance.show = true
|
|
82
|
+
instance.$el.removeEventListener('transitionend', removeDom)
|
|
83
|
+
instance.$el.removeEventListener('webkitTransitionEnd', removeDom)
|
|
84
|
+
instance.timer = setTimeout(() => {
|
|
85
|
+
if (instance.closed) return
|
|
86
|
+
if ('transitionend' in window || 'webkitTransitionEnd' in window) {
|
|
87
|
+
instance.close()
|
|
88
|
+
} else {
|
|
89
|
+
instance.close(instance.$el)
|
|
90
|
+
}
|
|
91
|
+
}, duration)
|
|
92
|
+
})
|
|
93
|
+
return instance
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
let loadingInstance = getAnInstance()
|
|
97
|
+
|
|
98
|
+
export { CmiLoading, loadingInstance }
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
.loading.is-fullscreen {
|
|
2
|
+
position: fixed;
|
|
3
|
+
}
|
|
4
|
+
.loading {
|
|
5
|
+
position: absolute;
|
|
6
|
+
z-index: 10000;
|
|
7
|
+
// background-color: rgba(0,0,0,.4);
|
|
8
|
+
margin: 0;
|
|
9
|
+
top: 0;
|
|
10
|
+
right: 0;
|
|
11
|
+
bottom: 0;
|
|
12
|
+
left: 0;
|
|
13
|
+
-webkit-transition: opacity 0.3s;
|
|
14
|
+
transition: opacity 0.3s;
|
|
15
|
+
.h2 {
|
|
16
|
+
top: 30%;
|
|
17
|
+
margin-top: -21px;
|
|
18
|
+
width: 100%;
|
|
19
|
+
text-align: center;
|
|
20
|
+
position: absolute;
|
|
21
|
+
font-size: 3rem;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
.loadEffect .word {
|
|
25
|
+
font-size: 16px;
|
|
26
|
+
color: var(--cmi-font-color-2);
|
|
27
|
+
letter-spacing: -0.2px;
|
|
28
|
+
font-weight: 500;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// loading e30177 91c426 4c4f53
|
|
32
|
+
.loadEffect {
|
|
33
|
+
margin: 0 auto;
|
|
34
|
+
margin-top: 100px;
|
|
35
|
+
background-color: var(--cmi-white-color-1);
|
|
36
|
+
box-shadow: 0 4px 10px 0 hsla(0, 0%, 86%, 0.5);
|
|
37
|
+
border-radius: var(--cmi-border-radius);
|
|
38
|
+
line-height: 1.2;
|
|
39
|
+
width: 140px;
|
|
40
|
+
height: 96px;
|
|
41
|
+
}
|
|
42
|
+
.loadEffect span {
|
|
43
|
+
display: inline-block;
|
|
44
|
+
width: 18.5px;
|
|
45
|
+
height: 18.5px;
|
|
46
|
+
margin-right: 10px;
|
|
47
|
+
border-radius: 50%;
|
|
48
|
+
-webkit-animation: load 1.04s ease infinite;
|
|
49
|
+
}
|
|
50
|
+
.loadEffect span:last-child {
|
|
51
|
+
margin-right: 0px;
|
|
52
|
+
}
|
|
53
|
+
@keyframes load {
|
|
54
|
+
0% {
|
|
55
|
+
opacity: 1;
|
|
56
|
+
-webkit-transform: scale(1.3);
|
|
57
|
+
}
|
|
58
|
+
100% {
|
|
59
|
+
opacity: 0.2;
|
|
60
|
+
-webkit-transform: scale(0.3);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
.loadEffect span:nth-child(1) {
|
|
64
|
+
-webkit-animation-delay: 0.23s;
|
|
65
|
+
background: #168fd1;
|
|
66
|
+
}
|
|
67
|
+
.loadEffect span:nth-child(2) {
|
|
68
|
+
-webkit-animation-delay: 0.38s;
|
|
69
|
+
background: #ea1681;
|
|
70
|
+
}
|
|
71
|
+
.loadEffect span:nth-child(3) {
|
|
72
|
+
-webkit-animation-delay: 0.53s;
|
|
73
|
+
background: #8dc449;
|
|
74
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="loading is-fullscreen" v-show="model">
|
|
3
|
+
<div class="h2 text-primary">
|
|
4
|
+
<div class="loadEffect">
|
|
5
|
+
<span></span>
|
|
6
|
+
<span></span>
|
|
7
|
+
<span></span>
|
|
8
|
+
<!-- <div class="word" style="display: block">{{ worldTip }}</div> -->
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
</template>
|
|
13
|
+
<script>
|
|
14
|
+
/* eslint-disable */
|
|
15
|
+
import { computed } from 'vue'
|
|
16
|
+
export default {
|
|
17
|
+
name: 'CmiLoading',
|
|
18
|
+
setup(props) {
|
|
19
|
+
const lang = computed(() => {
|
|
20
|
+
return props.lang
|
|
21
|
+
})
|
|
22
|
+
return {
|
|
23
|
+
lang
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
data() {
|
|
27
|
+
return {
|
|
28
|
+
show: true
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
props: {
|
|
32
|
+
isNative: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
default: true
|
|
35
|
+
},
|
|
36
|
+
value: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
default: false
|
|
39
|
+
},
|
|
40
|
+
duration: {
|
|
41
|
+
type: Number,
|
|
42
|
+
default: 1500
|
|
43
|
+
},
|
|
44
|
+
autoHide: {
|
|
45
|
+
type: Boolean,
|
|
46
|
+
default: false
|
|
47
|
+
},
|
|
48
|
+
word: {
|
|
49
|
+
type: String,
|
|
50
|
+
default: ''
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
computed: {
|
|
54
|
+
model: {
|
|
55
|
+
get() {
|
|
56
|
+
return this.isNative ? this.show : this.value || ''
|
|
57
|
+
},
|
|
58
|
+
set(val) {
|
|
59
|
+
if (this.isNative) {
|
|
60
|
+
this.show = val
|
|
61
|
+
} else {
|
|
62
|
+
this.$emit('input', val)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
worldTip() {
|
|
67
|
+
return this.word || this.lang == 'zh-CN' ? '加载中...' : 'Loading...'
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
watch: {
|
|
71
|
+
model(val) {
|
|
72
|
+
this.hide(val)
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
methods: {
|
|
76
|
+
hide(val) {
|
|
77
|
+
let that = this
|
|
78
|
+
if (val && this.autoHide) {
|
|
79
|
+
setTimeout(() => {
|
|
80
|
+
that.model = false
|
|
81
|
+
}, that.duration)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
</script>
|
|
87
|
+
<style lang="scss">
|
|
88
|
+
@import './loading.scss';
|
|
89
|
+
</style>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { defineProps, inject, getCurrentInstance, computed, useAttrs } from 'vue'
|
|
3
3
|
import { commonPropsType } from '../../utils/index.js'
|
|
4
4
|
import { useRoute } from 'vue-router'
|
|
5
|
-
import { dispatchClickEvents } from '../helper/button.js';
|
|
5
|
+
import { dispatchClickEvents } from '../helper/button-H5.js';
|
|
6
6
|
|
|
7
7
|
const appContext = getCurrentInstance()?.appContext
|
|
8
8
|
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed, defineProps, inject, useAttrs } from 'vue'
|
|
3
|
-
import { commonPropsType } from '../../utils/index.js'
|
|
3
|
+
import { commonPropsType, hasOwn } from '../../utils/index.js'
|
|
4
4
|
|
|
5
5
|
const lang = inject('lang')
|
|
6
6
|
const modelValue = defineModel()
|
|
7
7
|
const props = defineProps({
|
|
8
8
|
...commonPropsType,
|
|
9
9
|
})
|
|
10
|
+
|
|
10
11
|
const calcProps = computed(() => {
|
|
11
12
|
return {
|
|
12
13
|
title: lang?.value?.indexOf('zh') > -1 ? props.config?.metaNameZh : props.config?.metaNameEn,
|
|
13
14
|
desc: modelValue.value || props.config?.desc,
|
|
14
15
|
content: props.config?.content,
|
|
15
|
-
to: props.config?.
|
|
16
|
+
to: props.config?.toHref,
|
|
16
17
|
islink: props.config?.islink === '1',
|
|
17
18
|
icon: props.config?.icon,
|
|
18
|
-
selfadaption: props.config
|
|
19
|
+
selfadaption: hasOwn(props.config, 'selfadaption') ? props.config.selfadaption === '1' : true,
|
|
19
20
|
noborder: props.noborder === '1',
|
|
20
21
|
}
|
|
21
22
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<TabPane v-bind="{...
|
|
2
|
+
<TabPane v-bind="{...attrs, ...tabPaneProps, ...polyProps}">
|
|
3
3
|
<template #label v-if="slotsPageMetalist.length">
|
|
4
4
|
<Renderer :config="slotsPageMetalist" v-model="props.refValue.value"></Renderer>
|
|
5
5
|
</template>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<Tabs :class="[`tabs-level-${level}`, fullBorder ? 'full-border' : '']" v-bind="
|
|
2
|
+
<Tabs :class="[`tabs-level-${level}`, fullBorder ? 'full-border' : '']" v-bind="transTabsProps" v-model="activeNames">
|
|
3
3
|
<Renderer :config="tabpanes" v-model="props.refValue.value"></Renderer>
|
|
4
4
|
</Tabs>
|
|
5
5
|
</template>
|
|
@@ -18,10 +18,13 @@ const props = defineProps({
|
|
|
18
18
|
})
|
|
19
19
|
const attrs = useAttrs()
|
|
20
20
|
const tabsProps = computed(() => {
|
|
21
|
-
|
|
21
|
+
const ret = Object.keys(ElTabs.props).reduce((ret, key) => {
|
|
22
22
|
ret[key] = props[key]
|
|
23
23
|
return ret
|
|
24
|
-
}, {})
|
|
24
|
+
}, {...attrs})
|
|
25
|
+
delete ret.modelValue
|
|
26
|
+
delete ret['onUpdate:modelValue']
|
|
27
|
+
return ret
|
|
25
28
|
})
|
|
26
29
|
const tabpanes = computed(() => {
|
|
27
30
|
return props.config.pmPageMetaList || []
|
|
@@ -8,14 +8,14 @@ export default function () {
|
|
|
8
8
|
let resolveModule = null
|
|
9
9
|
try {
|
|
10
10
|
if (require) {
|
|
11
|
-
modulesFiles = require.context('./packages', false, /\.(vue|jsx|js)$/)
|
|
11
|
+
modulesFiles = require.context('./packages-H5', false, /\.(vue|jsx|js)$/)
|
|
12
12
|
modulesFilesKeys = modulesFiles.keys() || []
|
|
13
13
|
resolveModule = (modulePath) => {
|
|
14
14
|
return modulesFiles(modulePath)
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
} catch (error) {
|
|
18
|
-
modulesFiles = import.meta.glob('./packages/*.{vue,jsx,js}')
|
|
18
|
+
modulesFiles = import.meta.glob('./packages-H5/*.{vue,jsx,js}')
|
|
19
19
|
modulesFilesKeys = Object.keys(modulesFiles)
|
|
20
20
|
resolveModule = (modulePath) => {
|
|
21
21
|
return modulesFiles[modulePath]
|
package/src/hooks/pageConfig.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { parsePageConfig } from "../utils"
|
|
2
2
|
import { ref } from 'vue'
|
|
3
|
+
import { buildInRequest } from "../utils/request"
|
|
4
|
+
import { GET_SYS_PARAM_CACHE, QUERY_PAGE_CONFIG_DATA } from "../api/builtIn"
|
|
3
5
|
|
|
4
6
|
export function usePageConfig() {
|
|
5
7
|
const pageConfigRef = ref(null)
|
|
@@ -17,4 +19,52 @@ export function usePageConfig() {
|
|
|
17
19
|
pageConfigRef,
|
|
18
20
|
hireRelatMapRulesRef,
|
|
19
21
|
}
|
|
20
|
-
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function useBuildInData(messageTipInstance, loadingInstance) {
|
|
25
|
+
const pageConfig = ref(null)
|
|
26
|
+
function getPageConfig(reqData) {
|
|
27
|
+
if (loadingInstance.start && typeof loadingInstance.start === 'function') {
|
|
28
|
+
loadingInstance.start()
|
|
29
|
+
} else if (loadingInstance.show && typeof loadingInstance.show === 'function') {
|
|
30
|
+
loadingInstance.show()
|
|
31
|
+
}
|
|
32
|
+
buildInRequest(QUERY_PAGE_CONFIG_DATA, reqData).then(ret => {
|
|
33
|
+
if (ret.data.success) {
|
|
34
|
+
pageConfig.value = ret.data.result
|
|
35
|
+
getSelects(ret.data.result?.pmBusinessIdentityVO?.tenantId)
|
|
36
|
+
return
|
|
37
|
+
}
|
|
38
|
+
messageTipInstance?.error(ret.data.resultMessage)
|
|
39
|
+
}).catch(() => {
|
|
40
|
+
if (loadingInstance.finish && typeof loadingInstance.finish === 'function') {
|
|
41
|
+
loadingInstance.finish()
|
|
42
|
+
} else if (loadingInstance.hide && typeof loadingInstance.hide === 'function') {
|
|
43
|
+
loadingInstance.hide()
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
}
|
|
47
|
+
const selects = ref([])
|
|
48
|
+
function getSelects(tenantId) {
|
|
49
|
+
buildInRequest(GET_SYS_PARAM_CACHE, {
|
|
50
|
+
tenantId
|
|
51
|
+
}).then(ret => {
|
|
52
|
+
if (ret.data.success) {
|
|
53
|
+
selects.value = JSON.parse(ret.data.result || '{}')
|
|
54
|
+
return
|
|
55
|
+
}
|
|
56
|
+
messageTipInstance?.error(ret.data.resultMessage)
|
|
57
|
+
}).finally(() => {
|
|
58
|
+
if (loadingInstance.finish && typeof loadingInstance.finish === 'function') {
|
|
59
|
+
loadingInstance.finish()
|
|
60
|
+
} else if (loadingInstance.hide && typeof loadingInstance.hide === 'function') {
|
|
61
|
+
loadingInstance.hide()
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
pageConfig,
|
|
67
|
+
getPageConfig,
|
|
68
|
+
selects
|
|
69
|
+
}
|
|
70
|
+
}
|
package/src/index.jsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { provide, toRef, watch, computed, ref, defineExpose, reactive, getCurrentInstance } from "vue"
|
|
2
2
|
import Renderer from './renderer.jsx'
|
|
3
3
|
// import './style/index.scss'
|
|
4
|
-
import { usePageConfig } from './hooks/pageConfig'
|
|
4
|
+
import { useBuildInData, usePageConfig } from './hooks/pageConfig'
|
|
5
5
|
import { toValidate } from './utils/valid.js'
|
|
6
6
|
import { MODE } from "./utils/const.js"
|
|
7
7
|
import { generateRequester } from "./utils/request.js"
|
|
@@ -72,7 +72,7 @@ export default {
|
|
|
72
72
|
getNativeComps: {
|
|
73
73
|
type: Function,
|
|
74
74
|
default: () => ({composeComponents: {}})
|
|
75
|
-
}
|
|
75
|
+
},
|
|
76
76
|
},
|
|
77
77
|
setup(props, { emit, attrs, expose }) {
|
|
78
78
|
let axiosInstance = ref(props.axiosInstance)
|
package/src/resolver-H5.vue
CHANGED
|
@@ -1,13 +1,29 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import getNativeComps from './components/patchComponents-H5.js'
|
|
3
3
|
import { useAttrs } from 'vue';
|
|
4
|
-
import Resolver from './
|
|
4
|
+
import Resolver from './resolver-common.vue'
|
|
5
|
+
import CmiToast from "cmid/lib/toast"
|
|
6
|
+
import CmiFullLoading from "cmid/lib/fullloading"
|
|
7
|
+
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
loadingInstance: {
|
|
10
|
+
type: [Object, Function],
|
|
11
|
+
default: () => CmiFullLoading
|
|
12
|
+
// default: () => null
|
|
13
|
+
},
|
|
14
|
+
messageInstance: {
|
|
15
|
+
type: [Object, Function],
|
|
16
|
+
default: () => CmiToast
|
|
17
|
+
// default: () => null
|
|
18
|
+
},
|
|
19
|
+
})
|
|
5
20
|
|
|
6
21
|
defineOptions({
|
|
7
22
|
inheritAttrs: false
|
|
8
23
|
})
|
|
9
24
|
const attrs = useAttrs()
|
|
25
|
+
|
|
10
26
|
</script>
|
|
11
27
|
<template>
|
|
12
|
-
<Resolver v-bind="attrs" :getNativeComps="getNativeComps"></Resolver>
|
|
28
|
+
<Resolver v-bind="attrs" :isH5="true" :getNativeComps="getNativeComps" :messageInstance="props.messageInstance" :loadingInstance="props.loadingInstance"></Resolver>
|
|
13
29
|
</template>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, useAttrs } from 'vue';
|
|
3
|
+
import Resolver from './index.jsx'
|
|
4
|
+
import { useBuildInData } from './hooks/pageConfig';
|
|
5
|
+
|
|
6
|
+
const props = defineProps({
|
|
7
|
+
busiIdentityId: String,
|
|
8
|
+
selects: {
|
|
9
|
+
type: Object,
|
|
10
|
+
default: () => ({})
|
|
11
|
+
},
|
|
12
|
+
getNativeComps: {
|
|
13
|
+
type: Function,
|
|
14
|
+
default: () => ({composeComponents: {}})
|
|
15
|
+
},
|
|
16
|
+
loadingInstance: {
|
|
17
|
+
type: Object,
|
|
18
|
+
default: () => null
|
|
19
|
+
},
|
|
20
|
+
messageInstance: {
|
|
21
|
+
type: Object,
|
|
22
|
+
default: () => null
|
|
23
|
+
},
|
|
24
|
+
})
|
|
25
|
+
defineOptions({
|
|
26
|
+
inheritAttrs: false
|
|
27
|
+
})
|
|
28
|
+
const attrs = useAttrs()
|
|
29
|
+
|
|
30
|
+
const { getPageConfig, pageConfig, selects } = useBuildInData(props.messageInstance, props.loadingInstance)
|
|
31
|
+
getPageConfig({
|
|
32
|
+
busiIdentityId: props.busiIdentityId,
|
|
33
|
+
queryPageMeta: '1',
|
|
34
|
+
queryPageService: '1',
|
|
35
|
+
})
|
|
36
|
+
const allSelects = computed(() => {
|
|
37
|
+
return {
|
|
38
|
+
...props.selects,
|
|
39
|
+
...selects
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
</script>
|
|
43
|
+
<template>
|
|
44
|
+
<Resolver v-bind="attrs" :getNativeComps="props.getNativeComps" :config="pageConfig || null" :selects="allSelects"></Resolver>
|
|
45
|
+
</template>
|
package/src/resolver-web.vue
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import getNativeComps from './components/patchComponents-web'
|
|
3
|
+
import { ElMessage } from "element-plus"
|
|
4
|
+
import { loadingInstance } from './components/loading'
|
|
3
5
|
import { useAttrs } from 'vue';
|
|
4
|
-
import Resolver from './
|
|
6
|
+
import Resolver from './resolver-common.vue'
|
|
7
|
+
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
loadingInstance: {
|
|
10
|
+
type: [Object, Function],
|
|
11
|
+
default: () => loadingInstance
|
|
12
|
+
// default: () => null
|
|
13
|
+
},
|
|
14
|
+
messageInstance: {
|
|
15
|
+
type: [Object, Function],
|
|
16
|
+
default: () => ElMessage
|
|
17
|
+
},
|
|
18
|
+
})
|
|
5
19
|
|
|
6
20
|
defineOptions({
|
|
7
21
|
inheritAttrs: false
|
|
8
22
|
})
|
|
9
23
|
const attrs = useAttrs()
|
|
24
|
+
|
|
10
25
|
</script>
|
|
11
26
|
<template>
|
|
12
|
-
<Resolver v-bind="attrs" :getNativeComps="getNativeComps"></Resolver>
|
|
27
|
+
<Resolver v-bind="attrs" :getNativeComps="getNativeComps" :messageInstance="props.messageInstance" :loadingInstance="props.loadingInstance"></Resolver>
|
|
13
28
|
</template>
|