vue2-client 1.18.32 → 1.18.34
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/.eslintrc.js +90 -90
- package/Components.md +60 -60
- package/docs/index.md +30 -30
- package/index.js +31 -31
- package/jest-transform-stub.js +8 -8
- package/jest.setup.js +7 -7
- package/package.json +1 -1
- package/src/assets/img/querySlotDemo.svg +15 -15
- package/src/assets/svg/female.svg +1 -1
- package/src/assets/svg/male.svg +1 -1
- package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
- package/src/base-client/components/common/CitySelect/index.js +3 -3
- package/src/base-client/components/common/CitySelect/index.md +109 -109
- package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
- package/src/base-client/components/common/CreateQuery/index.js +3 -3
- package/src/base-client/components/common/CreateQuery/index.md +42 -42
- package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
- package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
- package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
- package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
- package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
- package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
- package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
- package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
- package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
- package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
- package/src/base-client/components/common/PersonSetting/index.js +3 -3
- package/src/base-client/components/common/Tree/Tree.vue +149 -149
- package/src/base-client/components/common/Tree/index.js +2 -2
- package/src/base-client/components/common/Upload/index.js +3 -3
- package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
- package/src/base-client/components/common/XCard/XCard.vue +64 -64
- package/src/base-client/components/common/XCollapse/XCollapse.vue +830 -830
- package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
- package/src/base-client/components/common/XDataDrawer/index.js +3 -3
- package/src/base-client/components/common/XDataDrawer/index.md +41 -41
- package/src/base-client/components/common/XDescriptions/index.js +3 -3
- package/src/base-client/components/common/XDescriptions/index.md +322 -322
- package/src/base-client/components/common/XForm/index.md +178 -178
- package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +6 -3
- package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
- package/src/base-client/components/common/XStepView/index.js +3 -3
- package/src/base-client/components/common/XStepView/index.md +31 -31
- package/src/base-client/components/common/XTable/XTable.vue +1715 -1715
- package/src/base-client/components/common/XTable/index.md +255 -255
- package/src/base-client/components/common/XTimeline/XTimeline.vue +477 -477
- package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
- package/src/base-client/components/his/XList/XList.vue +938 -938
- package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +504 -45
- package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +354 -354
- package/src/base-client/components/his/XTitle/XTitle.vue +314 -314
- package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
- package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
- package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
- package/src/base-client/plugins/Config.js +19 -19
- package/src/base-client/plugins/tabs-page-plugin.js +39 -39
- package/src/components/Charts/Bar.vue +62 -62
- package/src/components/Charts/ChartCard.vue +134 -134
- package/src/components/Charts/Liquid.vue +67 -67
- package/src/components/Charts/MiniArea.vue +39 -39
- package/src/components/Charts/MiniBar.vue +39 -39
- package/src/components/Charts/MiniProgress.vue +75 -75
- package/src/components/Charts/MiniSmoothArea.vue +40 -40
- package/src/components/Charts/Radar.vue +68 -68
- package/src/components/Charts/RankList.vue +77 -77
- package/src/components/Charts/TagCloud.vue +113 -113
- package/src/components/Charts/TransferBar.vue +64 -64
- package/src/components/Charts/Trend.vue +82 -82
- package/src/components/Charts/chart.less +12 -12
- package/src/components/Charts/smooth.area.less +13 -13
- package/src/components/NumberInfo/NumberInfo.vue +54 -54
- package/src/components/NumberInfo/index.js +3 -3
- package/src/components/NumberInfo/index.less +54 -54
- package/src/components/NumberInfo/index.md +43 -43
- package/src/components/card/ChartCard.vue +79 -79
- package/src/components/chart/Bar.vue +60 -60
- package/src/components/chart/MiniArea.vue +67 -67
- package/src/components/chart/MiniBar.vue +59 -59
- package/src/components/chart/MiniProgress.vue +57 -57
- package/src/components/chart/Radar.vue +80 -80
- package/src/components/chart/RankingList.vue +60 -60
- package/src/components/chart/Trend.vue +79 -79
- package/src/components/chart/index.less +9 -9
- package/src/components/checkbox/ColorCheckbox.vue +157 -157
- package/src/components/input/IInput.vue +66 -66
- package/src/components/menu/SideMenu.vue +75 -75
- package/src/components/menu/menu.js +273 -273
- package/src/components/tool/AStepItem.vue +60 -60
- package/src/layouts/CommonLayout.vue +56 -56
- package/src/layouts/header/HeaderNotice.vue +177 -177
- package/src/lib.js +1 -1
- package/src/mock/extend/index.js +84 -84
- package/src/mock/goods/index.js +108 -108
- package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
- package/src/pages/system/dictionary/index.vue +44 -44
- package/src/pages/system/monitor/loginInfor/index.vue +37 -37
- package/src/pages/system/monitor/operLog/index.vue +37 -37
- package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
- package/src/services/api/cas.js +79 -79
- package/src/store/modules/setting.js +119 -119
- package/src/utils/authority-utils.js +85 -85
- package/src/utils/errorCode.js +6 -6
- package/src-base-client/components/common/HIS/HForm/HForm.vue +347 -0
- package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
- package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 判断是否有路由的权限
|
|
3
|
-
* @param authority 路由权限配置
|
|
4
|
-
* @param permissions 用户权限集合
|
|
5
|
-
* @returns {boolean|*}
|
|
6
|
-
*/
|
|
7
|
-
function hasPermission (authority, permissions) {
|
|
8
|
-
let required = '*'
|
|
9
|
-
if (typeof authority === 'string') {
|
|
10
|
-
required = authority
|
|
11
|
-
} else if (Array.isArray(authority)) {
|
|
12
|
-
required = authority
|
|
13
|
-
} else if (typeof authority === 'object') {
|
|
14
|
-
required = authority.permission
|
|
15
|
-
}
|
|
16
|
-
return required === '*' || hasAnyItem(required, permissions, (r, t) => !!(r === t || r === t.id))
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* 判断是否有路由需要的角色
|
|
21
|
-
* @param authority 路由权限配置
|
|
22
|
-
* @param roles 用户角色集合
|
|
23
|
-
*/
|
|
24
|
-
function hasRole (authority, roles) {
|
|
25
|
-
let required
|
|
26
|
-
if (typeof authority === 'object') {
|
|
27
|
-
required = authority.role
|
|
28
|
-
}
|
|
29
|
-
return authority === '*' || hasAnyItem(required, roles, (r, t) => !!(r === t || r === t.id))
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* 判断目标数组是否有所需元素
|
|
34
|
-
* @param {String | String[]}required 所需元素,数组或单个元素
|
|
35
|
-
* @param {String[]|Object[]} source 目标数组
|
|
36
|
-
* @param {Function} filter 匹配条件
|
|
37
|
-
* (r: String, s: String|Object) => boolean
|
|
38
|
-
* @returns {boolean}
|
|
39
|
-
*/
|
|
40
|
-
function hasAnyItem (required, source, filter) {
|
|
41
|
-
if (!required) {
|
|
42
|
-
return false
|
|
43
|
-
}
|
|
44
|
-
const checkedList = Array.isArray(required) ? required : [required]
|
|
45
|
-
return !!source.find(s => checkedList.find(r => filter(r, s)))
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* 路由权限校验
|
|
50
|
-
* @param route 路由
|
|
51
|
-
* @param permissions 用户权限集合
|
|
52
|
-
* @param roles 用户角色集合
|
|
53
|
-
* @returns {boolean}
|
|
54
|
-
*/
|
|
55
|
-
function hasAuthority (route, permissions, roles) {
|
|
56
|
-
const authorities = [...route.meta.pAuthorities, route.meta.authority]
|
|
57
|
-
for (const authority of authorities) {
|
|
58
|
-
if (!hasPermission(authority, permissions) && !hasRole(authority, roles)) {
|
|
59
|
-
return false
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return true
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* 根据权限配置过滤菜单数据
|
|
67
|
-
* @param menuData
|
|
68
|
-
* @param permissions
|
|
69
|
-
* @param roles
|
|
70
|
-
*/
|
|
71
|
-
function filterMenu (menuData, permissions, roles) {
|
|
72
|
-
return menuData.filter(menu => {
|
|
73
|
-
if (menu.meta && menu.meta.invisible === undefined) {
|
|
74
|
-
if (!hasAuthority(menu, permissions, roles)) {
|
|
75
|
-
return false
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (menu.children && menu.children.length > 0) {
|
|
79
|
-
menu.children = filterMenu(menu.children, permissions, roles)
|
|
80
|
-
}
|
|
81
|
-
return true
|
|
82
|
-
})
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export { filterMenu, hasAuthority }
|
|
1
|
+
/**
|
|
2
|
+
* 判断是否有路由的权限
|
|
3
|
+
* @param authority 路由权限配置
|
|
4
|
+
* @param permissions 用户权限集合
|
|
5
|
+
* @returns {boolean|*}
|
|
6
|
+
*/
|
|
7
|
+
function hasPermission (authority, permissions) {
|
|
8
|
+
let required = '*'
|
|
9
|
+
if (typeof authority === 'string') {
|
|
10
|
+
required = authority
|
|
11
|
+
} else if (Array.isArray(authority)) {
|
|
12
|
+
required = authority
|
|
13
|
+
} else if (typeof authority === 'object') {
|
|
14
|
+
required = authority.permission
|
|
15
|
+
}
|
|
16
|
+
return required === '*' || hasAnyItem(required, permissions, (r, t) => !!(r === t || r === t.id))
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 判断是否有路由需要的角色
|
|
21
|
+
* @param authority 路由权限配置
|
|
22
|
+
* @param roles 用户角色集合
|
|
23
|
+
*/
|
|
24
|
+
function hasRole (authority, roles) {
|
|
25
|
+
let required
|
|
26
|
+
if (typeof authority === 'object') {
|
|
27
|
+
required = authority.role
|
|
28
|
+
}
|
|
29
|
+
return authority === '*' || hasAnyItem(required, roles, (r, t) => !!(r === t || r === t.id))
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 判断目标数组是否有所需元素
|
|
34
|
+
* @param {String | String[]}required 所需元素,数组或单个元素
|
|
35
|
+
* @param {String[]|Object[]} source 目标数组
|
|
36
|
+
* @param {Function} filter 匹配条件
|
|
37
|
+
* (r: String, s: String|Object) => boolean
|
|
38
|
+
* @returns {boolean}
|
|
39
|
+
*/
|
|
40
|
+
function hasAnyItem (required, source, filter) {
|
|
41
|
+
if (!required) {
|
|
42
|
+
return false
|
|
43
|
+
}
|
|
44
|
+
const checkedList = Array.isArray(required) ? required : [required]
|
|
45
|
+
return !!source.find(s => checkedList.find(r => filter(r, s)))
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* 路由权限校验
|
|
50
|
+
* @param route 路由
|
|
51
|
+
* @param permissions 用户权限集合
|
|
52
|
+
* @param roles 用户角色集合
|
|
53
|
+
* @returns {boolean}
|
|
54
|
+
*/
|
|
55
|
+
function hasAuthority (route, permissions, roles) {
|
|
56
|
+
const authorities = [...route.meta.pAuthorities, route.meta.authority]
|
|
57
|
+
for (const authority of authorities) {
|
|
58
|
+
if (!hasPermission(authority, permissions) && !hasRole(authority, roles)) {
|
|
59
|
+
return false
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return true
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* 根据权限配置过滤菜单数据
|
|
67
|
+
* @param menuData
|
|
68
|
+
* @param permissions
|
|
69
|
+
* @param roles
|
|
70
|
+
*/
|
|
71
|
+
function filterMenu (menuData, permissions, roles) {
|
|
72
|
+
return menuData.filter(menu => {
|
|
73
|
+
if (menu.meta && menu.meta.invisible === undefined) {
|
|
74
|
+
if (!hasAuthority(menu, permissions, roles)) {
|
|
75
|
+
return false
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (menu.children && menu.children.length > 0) {
|
|
79
|
+
menu.children = filterMenu(menu.children, permissions, roles)
|
|
80
|
+
}
|
|
81
|
+
return true
|
|
82
|
+
})
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export { filterMenu, hasAuthority }
|
package/src/utils/errorCode.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
401: '认证失败,无法访问系统资源',
|
|
3
|
-
403: '当前操作没有权限',
|
|
4
|
-
404: '访问资源不存在',
|
|
5
|
-
default: '系统未知错误,请反馈给管理员'
|
|
6
|
-
}
|
|
1
|
+
export default {
|
|
2
|
+
401: '认证失败,无法访问系统资源',
|
|
3
|
+
403: '当前操作没有权限',
|
|
4
|
+
404: '访问资源不存在',
|
|
5
|
+
default: '系统未知错误,请反馈给管理员'
|
|
6
|
+
}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
|
|
3
|
+
import { ref, computed, useAttrs } from 'vue'
|
|
4
|
+
|
|
5
|
+
const xAddNativeFormRef = ref()
|
|
6
|
+
|
|
7
|
+
const attrs = useAttrs()
|
|
8
|
+
const wrapperClassObject = computed(() => {
|
|
9
|
+
const a = attrs
|
|
10
|
+
const classes = {}
|
|
11
|
+
|
|
12
|
+
// 1) 多个布尔型样式开关(存在且为真则生效)
|
|
13
|
+
const booleanStyleKeys = [
|
|
14
|
+
'query-conditions',
|
|
15
|
+
'padding-50',
|
|
16
|
+
'label-text-horizontal',
|
|
17
|
+
'label-text-justify',
|
|
18
|
+
'charge-form'
|
|
19
|
+
]
|
|
20
|
+
for (const key of booleanStyleKeys) {
|
|
21
|
+
const val = a[key]
|
|
22
|
+
const truthy = val === true || val === '' || val === 'true'
|
|
23
|
+
if (truthy) classes[`h-form-${key}`] = true
|
|
24
|
+
}
|
|
25
|
+
return classes
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
defineExpose({
|
|
29
|
+
getXAddNativeFormInstance: () => xAddNativeFormRef.value,
|
|
30
|
+
init: (params) => xAddNativeFormRef.value && xAddNativeFormRef.value.init && xAddNativeFormRef.value.init(params),
|
|
31
|
+
asyncSubmit: () => xAddNativeFormRef.value && xAddNativeFormRef.value.asyncSubmit && xAddNativeFormRef.value.asyncSubmit(),
|
|
32
|
+
validateForm: () => xAddNativeFormRef.value && xAddNativeFormRef.value.validateForm && xAddNativeFormRef.value.validateForm()
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<template>
|
|
38
|
+
<div
|
|
39
|
+
class="h-form-wrapper"
|
|
40
|
+
:class="[
|
|
41
|
+
wrapperClassObject
|
|
42
|
+
]"
|
|
43
|
+
>
|
|
44
|
+
|
|
45
|
+
<x-add-native-form
|
|
46
|
+
ref="xAddNativeFormRef"
|
|
47
|
+
v-bind="$attrs"
|
|
48
|
+
v-on="$listeners"
|
|
49
|
+
>
|
|
50
|
+
<template v-for="(_, name) in $slots" #[name]="slotData">
|
|
51
|
+
<slot :name="name" v-bind="slotData" />
|
|
52
|
+
</template>
|
|
53
|
+
</x-add-native-form>
|
|
54
|
+
</div>
|
|
55
|
+
</template>
|
|
56
|
+
|
|
57
|
+
<style scoped lang="less">
|
|
58
|
+
.h-form-wrapper {
|
|
59
|
+
// 基础样式
|
|
60
|
+
:deep(.ant-form-item) {
|
|
61
|
+
margin-bottom: 4px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// query-conditions 样式
|
|
65
|
+
&.h-form-query-conditions {
|
|
66
|
+
// ant-card-body 样式
|
|
67
|
+
:deep(.ant-card-body) {
|
|
68
|
+
padding: 0px;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// ant-row-flex 样式
|
|
72
|
+
:deep(.ant-row-flex) {
|
|
73
|
+
// x-form-col-wrapper 样式
|
|
74
|
+
.x-form-col-wrapper {
|
|
75
|
+
.ant-form-item {
|
|
76
|
+
display: flex;
|
|
77
|
+
width: 100%;
|
|
78
|
+
margin-bottom: 4px;
|
|
79
|
+
justify-content: space-between;
|
|
80
|
+
|
|
81
|
+
.ant-form-item-label {
|
|
82
|
+
padding-left: 4px;
|
|
83
|
+
width: 100%;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.ant-form-item-control-wrapper {
|
|
87
|
+
padding-left: -6px;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// ant-col-24 样式
|
|
93
|
+
.ant-col-24 {
|
|
94
|
+
padding: 0px 4px !important;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
&.h-form-padding-50 {
|
|
100
|
+
// ant-row-flex 样式
|
|
101
|
+
:deep(.ant-row-flex) {
|
|
102
|
+
padding-left: 50px;
|
|
103
|
+
padding-right: 50px
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// charge-form 样式
|
|
108
|
+
&.h-form-charge-form {
|
|
109
|
+
margin-top: 2px !important;
|
|
110
|
+
// 定义变量
|
|
111
|
+
@font-common: {
|
|
112
|
+
font-family: 'Source Han Sans', sans-serif;
|
|
113
|
+
font-size: 16px;
|
|
114
|
+
font-weight: normal;
|
|
115
|
+
letter-spacing: 0em;
|
|
116
|
+
font-variation-settings: "opsz" auto;
|
|
117
|
+
font-feature-settings: "kern" on;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
@color-primary: #313131;
|
|
121
|
+
@color-placeholder: #999999;
|
|
122
|
+
|
|
123
|
+
// 定义混合宏
|
|
124
|
+
.input-base() {
|
|
125
|
+
width: 100%;
|
|
126
|
+
height: 30px;
|
|
127
|
+
line-height: 30px;
|
|
128
|
+
vertical-align: top;
|
|
129
|
+
margin: 0;
|
|
130
|
+
text-align: left;
|
|
131
|
+
color: @color-primary;
|
|
132
|
+
opacity: 1;
|
|
133
|
+
@font-common();
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.placeholder-base() {
|
|
137
|
+
color: @color-placeholder;
|
|
138
|
+
opacity: 1;
|
|
139
|
+
@font-common();
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.option-group-base() {
|
|
143
|
+
height: 30px;
|
|
144
|
+
line-height: 30px;
|
|
145
|
+
display: flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
|
|
148
|
+
.ant-radio-wrapper,
|
|
149
|
+
.ant-checkbox-wrapper {
|
|
150
|
+
height: 30px;
|
|
151
|
+
line-height: 30px;
|
|
152
|
+
margin-right: 16px;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
:deep(.ant-form-item) {
|
|
157
|
+
margin-bottom: 16px;
|
|
158
|
+
margin-top: 0;
|
|
159
|
+
padding: 0;
|
|
160
|
+
display: flex;
|
|
161
|
+
align-items: center;
|
|
162
|
+
|
|
163
|
+
.ant-form-item-label {
|
|
164
|
+
text-align: left;
|
|
165
|
+
margin: 0 16px 0 0 !important;
|
|
166
|
+
width: 64px;
|
|
167
|
+
min-width: 64px;
|
|
168
|
+
max-width: 64px;
|
|
169
|
+
flex-shrink: 0;
|
|
170
|
+
|
|
171
|
+
label {
|
|
172
|
+
height: 23px;
|
|
173
|
+
opacity: 1;
|
|
174
|
+
line-height: 23px;
|
|
175
|
+
color: @color-primary;
|
|
176
|
+
margin: 0;
|
|
177
|
+
padding: 0;
|
|
178
|
+
white-space: nowrap;
|
|
179
|
+
display: block;
|
|
180
|
+
@font-common();
|
|
181
|
+
|
|
182
|
+
// 移除冒号
|
|
183
|
+
&::after {
|
|
184
|
+
content: '';
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.ant-form-item-control-wrapper {
|
|
190
|
+
margin: 0;
|
|
191
|
+
padding: 0;
|
|
192
|
+
flex: 1;
|
|
193
|
+
min-width: 0;
|
|
194
|
+
display: flex;
|
|
195
|
+
align-items: center;
|
|
196
|
+
|
|
197
|
+
.ant-form-item-control {
|
|
198
|
+
margin: 0;
|
|
199
|
+
padding: 0;
|
|
200
|
+
width: 100%;
|
|
201
|
+
text-align: left;
|
|
202
|
+
line-height: 30px !important;
|
|
203
|
+
|
|
204
|
+
// 输入框样式统一
|
|
205
|
+
.ant-input,
|
|
206
|
+
.ant-input-affix-wrapper,
|
|
207
|
+
.ant-select,
|
|
208
|
+
.ant-input-number,
|
|
209
|
+
.ant-picker,
|
|
210
|
+
.ant-radio-group,
|
|
211
|
+
.ant-checkbox-group {
|
|
212
|
+
.input-base();
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// 选择器样式
|
|
216
|
+
.ant-select {
|
|
217
|
+
.ant-select-selector {
|
|
218
|
+
.input-base();
|
|
219
|
+
height: 30px;
|
|
220
|
+
line-height: 30px;
|
|
221
|
+
|
|
222
|
+
.ant-select-selection-item {
|
|
223
|
+
.input-base();
|
|
224
|
+
line-height: 30px;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.ant-select-selection-placeholder {
|
|
228
|
+
.placeholder-base();
|
|
229
|
+
line-height: 30px;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// 日期选择器样式
|
|
235
|
+
.ant-picker {
|
|
236
|
+
height: 30px;
|
|
237
|
+
|
|
238
|
+
.ant-picker-input {
|
|
239
|
+
height: 30px;
|
|
240
|
+
line-height: 30px;
|
|
241
|
+
.input-base();
|
|
242
|
+
|
|
243
|
+
input {
|
|
244
|
+
.input-base();
|
|
245
|
+
height: 30px;
|
|
246
|
+
line-height: 30px;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// 数字输入框样式
|
|
252
|
+
.ant-input-number {
|
|
253
|
+
height: 30px;
|
|
254
|
+
|
|
255
|
+
.ant-input-number-input {
|
|
256
|
+
.input-base();
|
|
257
|
+
height: 30px;
|
|
258
|
+
line-height: 30px;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// 单选框组样式
|
|
263
|
+
.ant-radio-group {
|
|
264
|
+
.option-group-base();
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// 复选框组样式
|
|
268
|
+
.ant-checkbox-group {
|
|
269
|
+
.option-group-base();
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// 重置可能的容器边距
|
|
276
|
+
:deep(.ant-row) {
|
|
277
|
+
margin: 0;
|
|
278
|
+
padding: 0;
|
|
279
|
+
|
|
280
|
+
.ant-col {
|
|
281
|
+
margin: 0;
|
|
282
|
+
padding: 0;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// 强制重置所有可能的表单项样式
|
|
287
|
+
:deep(.ant-form-item) {
|
|
288
|
+
margin: 0 0 16px 0 !important;
|
|
289
|
+
|
|
290
|
+
// 重置可能的内部边距
|
|
291
|
+
.ant-form-item-control-input,
|
|
292
|
+
.ant-form-item-control-input-content {
|
|
293
|
+
margin: 0 !important;
|
|
294
|
+
padding: 0 !important;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// label-text-horizontal 样式 - 只控制label文字从左到右排列
|
|
300
|
+
&.h-form-label-text-horizontal {
|
|
301
|
+
:deep(.ant-form-item-label) {
|
|
302
|
+
text-align: left;
|
|
303
|
+
direction: ltr;
|
|
304
|
+
|
|
305
|
+
// 标签文字水平排列
|
|
306
|
+
.ant-form-item-label-text {
|
|
307
|
+
display: inline-block;
|
|
308
|
+
text-align: left;
|
|
309
|
+
direction: ltr;
|
|
310
|
+
unicode-bidi: normal;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// 必填标识水平排列
|
|
314
|
+
.ant-form-item-required::before {
|
|
315
|
+
margin-right: 4px;
|
|
316
|
+
margin-left: 0;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
// label-text-justify 样式 - 标签文字两端对齐分散占满 必填*可能会有问题
|
|
322
|
+
&.h-form-label-text-justify {
|
|
323
|
+
:deep(.ant-form-item-label) {
|
|
324
|
+
padding-left: 0;
|
|
325
|
+
padding-right: 8px;
|
|
326
|
+
label {
|
|
327
|
+
position: relative;
|
|
328
|
+
display: block;
|
|
329
|
+
width: 100%;
|
|
330
|
+
white-space: nowrap;
|
|
331
|
+
margin: 0;
|
|
332
|
+
text-indent: 0;
|
|
333
|
+
text-align: justify;
|
|
334
|
+
text-align-last: justify;
|
|
335
|
+
text-justify: inter-ideograph;
|
|
336
|
+
box-sizing: border-box;
|
|
337
|
+
padding-right: 12px; // 给绝对定位的冒号留出空间
|
|
338
|
+
}
|
|
339
|
+
// 将冒号绝对定位到最右侧,避免参与两端对齐计算
|
|
340
|
+
label::after {
|
|
341
|
+
position: absolute;
|
|
342
|
+
right: 0;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
</style>
|
|
File without changes
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
# vue2迁移vue3
|
|
2
|
-
|
|
3
|
-
1. 完成vue-cli,webpack,babel,eslint的升级
|
|
4
|
-
- core-js 3.30.1 -> 3.33.0
|
|
5
|
-
- add regenerator-runtime
|
|
6
|
-
- @babel/core 7.21.4 -> 7.22.20
|
|
7
|
-
- babel-eslint 10.1.0 -> @babel/eslint-parser 7.22.15
|
|
8
|
-
- @vue/cli 4.5.19 -> 5.0.8
|
|
9
|
-
- babel-jest 25.5.1 -> 26.6.3
|
|
10
|
-
- eslint 6.8.0 -> 7.32.0
|
|
11
|
-
- jest 24.0.0 -> 26.6.3
|
|
12
|
-
- webpack 4.46.0 -> 5.88.2
|
|
13
|
-
2. 完成vue2的2.7升级
|
|
14
|
-
- vue 2.6.14 -> 2.7.14
|
|
15
|
-
- eslint 7.32.0 -> 8.51.0
|
|
1
|
+
# vue2迁移vue3
|
|
2
|
+
|
|
3
|
+
1. 完成vue-cli,webpack,babel,eslint的升级
|
|
4
|
+
- core-js 3.30.1 -> 3.33.0
|
|
5
|
+
- add regenerator-runtime
|
|
6
|
+
- @babel/core 7.21.4 -> 7.22.20
|
|
7
|
+
- babel-eslint 10.1.0 -> @babel/eslint-parser 7.22.15
|
|
8
|
+
- @vue/cli 4.5.19 -> 5.0.8
|
|
9
|
+
- babel-jest 25.5.1 -> 26.6.3
|
|
10
|
+
- eslint 6.8.0 -> 7.32.0
|
|
11
|
+
- jest 24.0.0 -> 26.6.3
|
|
12
|
+
- webpack 4.46.0 -> 5.88.2
|
|
13
|
+
2. 完成vue2的2.7升级
|
|
14
|
+
- vue 2.6.14 -> 2.7.14
|
|
15
|
+
- eslint 7.32.0 -> 8.51.0
|