vue2-client 1.18.22 → 1.18.23
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/package.json +1 -1
- package/src/assets/svg/female.svg +1 -1
- package/src/assets/svg/male.svg +1 -1
- package/src/base-client/components/common/HIS/HButtons/HButtons.vue +491 -491
- package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
- package/src/base-client/components/common/HIS/HTab/HTab.vue +443 -443
- package/src/base-client/components/common/XCollapse/XCollapse.vue +830 -830
- package/src/base-client/components/common/XTimeline/XTimeline.vue +477 -477
- package/src/base-client/components/his/HChart/HChart.vue +311 -16
- 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/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/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
- package/src-base-client/components/common/HIS/HForm/HForm.vue +0 -347
- package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<!-- 根据实际部署环境修改 editor.html 的路径 -->
|
|
3
|
-
<iframe
|
|
4
|
-
src="/his/editor/editor.html"
|
|
5
|
-
width="100%"
|
|
6
|
-
height="800"
|
|
7
|
-
frameborder="0"
|
|
8
|
-
@load="onIframeLoad"
|
|
9
|
-
ref="editorIframe">
|
|
10
|
-
</iframe>
|
|
11
|
-
</template>
|
|
12
|
-
|
|
13
|
-
<script setup>
|
|
14
|
-
|
|
15
|
-
import { ref, onBeforeUnmount } from 'vue'
|
|
16
|
-
|
|
17
|
-
const editorIframe = ref(null)
|
|
18
|
-
const checkEditorTimer = ref(null)
|
|
19
|
-
const checkCount = ref(0)
|
|
20
|
-
const editor = ref(null)
|
|
21
|
-
const iframeWindow = ref(null)
|
|
22
|
-
// 对外暴露的获取editor方法
|
|
23
|
-
const getEditor = () => {
|
|
24
|
-
if (editor.value) {
|
|
25
|
-
return editor.value
|
|
26
|
-
}
|
|
27
|
-
if (iframeWindow.value && iframeWindow.value.editor) {
|
|
28
|
-
editor.value = iframeWindow.value.editor
|
|
29
|
-
return editor.value
|
|
30
|
-
}
|
|
31
|
-
if (editorIframe.value && editorIframe.value.contentWindow && editorIframe.value.contentWindow.editor) {
|
|
32
|
-
editor.value = editorIframe.value.contentWindow.editor
|
|
33
|
-
return editor.value
|
|
34
|
-
}
|
|
35
|
-
return null
|
|
36
|
-
}
|
|
37
|
-
// 创建体温单方法
|
|
38
|
-
const createVitalSigns = (data) => {
|
|
39
|
-
const editorObj = getEditor()
|
|
40
|
-
if (!editorObj) {
|
|
41
|
-
throw new Error('editor对象未初始化,无法创建体温单')
|
|
42
|
-
}
|
|
43
|
-
if (typeof editorObj.createVitalSigns === 'function') {
|
|
44
|
-
return editorObj.createVitalSigns(data)
|
|
45
|
-
} else {
|
|
46
|
-
throw new Error('editor对象未包含createVitalSigns方法')
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// 检查editor对象是否已初始化
|
|
51
|
-
const startEditorCheck = (frameWindow, iframe) => {
|
|
52
|
-
if (checkEditorTimer.value) {
|
|
53
|
-
clearInterval(checkEditorTimer.value)
|
|
54
|
-
}
|
|
55
|
-
checkCount.value = 0
|
|
56
|
-
checkEditorTimer.value = setInterval(() => {
|
|
57
|
-
checkCount.value++
|
|
58
|
-
try {
|
|
59
|
-
const editorObj = frameWindow.editor
|
|
60
|
-
if (editorObj && typeof editorObj.createVitalSigns === 'function') {
|
|
61
|
-
clearInterval(checkEditorTimer.value)
|
|
62
|
-
editor.value = editorObj
|
|
63
|
-
// 将editor对象暴露到全局
|
|
64
|
-
window.iframeEditor = editorObj
|
|
65
|
-
window.iframeWindow = frameWindow
|
|
66
|
-
// 触发事件
|
|
67
|
-
emit('editor-ready', editorObj)
|
|
68
|
-
emit('load', { target: iframe, editor: editorObj })
|
|
69
|
-
// 发送消息通知
|
|
70
|
-
window.parent.postMessage({ type: 'editorReady' }, '*')
|
|
71
|
-
}
|
|
72
|
-
} catch (err) {
|
|
73
|
-
console.error('检查editor对象时出错:', err)
|
|
74
|
-
}
|
|
75
|
-
if (checkCount.value >= 20) {
|
|
76
|
-
clearInterval(checkEditorTimer.value)
|
|
77
|
-
console.error('Editor 对象加载失败')
|
|
78
|
-
}
|
|
79
|
-
}, 500)
|
|
80
|
-
}
|
|
81
|
-
// iframe加载完成的处理
|
|
82
|
-
const onIframeLoad = (e) => {
|
|
83
|
-
const iframe = e.target
|
|
84
|
-
const frameWindow = iframe.contentWindow
|
|
85
|
-
iframeWindow.value = frameWindow
|
|
86
|
-
if (!frameWindow) {
|
|
87
|
-
console.error('无法访问 iframe 内容')
|
|
88
|
-
return
|
|
89
|
-
}
|
|
90
|
-
// 关闭文书工具栏
|
|
91
|
-
iframe.contentWindow.editor.option.toolbar = false
|
|
92
|
-
startEditorCheck(frameWindow, iframe)
|
|
93
|
-
}
|
|
94
|
-
// 组件销毁前清理
|
|
95
|
-
onBeforeUnmount(() => {
|
|
96
|
-
if (checkEditorTimer.value) {
|
|
97
|
-
clearInterval(checkEditorTimer.value)
|
|
98
|
-
}
|
|
99
|
-
})
|
|
100
|
-
// 暴露方法给父组件
|
|
101
|
-
defineExpose({ getEditor, createVitalSigns })
|
|
102
|
-
|
|
103
|
-
// 定义事件
|
|
104
|
-
const emit = defineEmits(['editor-ready', 'load'])
|
|
105
|
-
</script>
|
|
106
|
-
|
|
107
|
-
<style scoped>
|
|
108
|
-
iframe {
|
|
109
|
-
border: none;
|
|
110
|
-
width: 100%;
|
|
111
|
-
min-height: 800px;
|
|
112
|
-
}
|
|
113
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<!-- 根据实际部署环境修改 editor.html 的路径 -->
|
|
3
|
+
<iframe
|
|
4
|
+
src="/his/editor/editor.html"
|
|
5
|
+
width="100%"
|
|
6
|
+
height="800"
|
|
7
|
+
frameborder="0"
|
|
8
|
+
@load="onIframeLoad"
|
|
9
|
+
ref="editorIframe">
|
|
10
|
+
</iframe>
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script setup>
|
|
14
|
+
|
|
15
|
+
import { ref, onBeforeUnmount } from 'vue'
|
|
16
|
+
|
|
17
|
+
const editorIframe = ref(null)
|
|
18
|
+
const checkEditorTimer = ref(null)
|
|
19
|
+
const checkCount = ref(0)
|
|
20
|
+
const editor = ref(null)
|
|
21
|
+
const iframeWindow = ref(null)
|
|
22
|
+
// 对外暴露的获取editor方法
|
|
23
|
+
const getEditor = () => {
|
|
24
|
+
if (editor.value) {
|
|
25
|
+
return editor.value
|
|
26
|
+
}
|
|
27
|
+
if (iframeWindow.value && iframeWindow.value.editor) {
|
|
28
|
+
editor.value = iframeWindow.value.editor
|
|
29
|
+
return editor.value
|
|
30
|
+
}
|
|
31
|
+
if (editorIframe.value && editorIframe.value.contentWindow && editorIframe.value.contentWindow.editor) {
|
|
32
|
+
editor.value = editorIframe.value.contentWindow.editor
|
|
33
|
+
return editor.value
|
|
34
|
+
}
|
|
35
|
+
return null
|
|
36
|
+
}
|
|
37
|
+
// 创建体温单方法
|
|
38
|
+
const createVitalSigns = (data) => {
|
|
39
|
+
const editorObj = getEditor()
|
|
40
|
+
if (!editorObj) {
|
|
41
|
+
throw new Error('editor对象未初始化,无法创建体温单')
|
|
42
|
+
}
|
|
43
|
+
if (typeof editorObj.createVitalSigns === 'function') {
|
|
44
|
+
return editorObj.createVitalSigns(data)
|
|
45
|
+
} else {
|
|
46
|
+
throw new Error('editor对象未包含createVitalSigns方法')
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// 检查editor对象是否已初始化
|
|
51
|
+
const startEditorCheck = (frameWindow, iframe) => {
|
|
52
|
+
if (checkEditorTimer.value) {
|
|
53
|
+
clearInterval(checkEditorTimer.value)
|
|
54
|
+
}
|
|
55
|
+
checkCount.value = 0
|
|
56
|
+
checkEditorTimer.value = setInterval(() => {
|
|
57
|
+
checkCount.value++
|
|
58
|
+
try {
|
|
59
|
+
const editorObj = frameWindow.editor
|
|
60
|
+
if (editorObj && typeof editorObj.createVitalSigns === 'function') {
|
|
61
|
+
clearInterval(checkEditorTimer.value)
|
|
62
|
+
editor.value = editorObj
|
|
63
|
+
// 将editor对象暴露到全局
|
|
64
|
+
window.iframeEditor = editorObj
|
|
65
|
+
window.iframeWindow = frameWindow
|
|
66
|
+
// 触发事件
|
|
67
|
+
emit('editor-ready', editorObj)
|
|
68
|
+
emit('load', { target: iframe, editor: editorObj })
|
|
69
|
+
// 发送消息通知
|
|
70
|
+
window.parent.postMessage({ type: 'editorReady' }, '*')
|
|
71
|
+
}
|
|
72
|
+
} catch (err) {
|
|
73
|
+
console.error('检查editor对象时出错:', err)
|
|
74
|
+
}
|
|
75
|
+
if (checkCount.value >= 20) {
|
|
76
|
+
clearInterval(checkEditorTimer.value)
|
|
77
|
+
console.error('Editor 对象加载失败')
|
|
78
|
+
}
|
|
79
|
+
}, 500)
|
|
80
|
+
}
|
|
81
|
+
// iframe加载完成的处理
|
|
82
|
+
const onIframeLoad = (e) => {
|
|
83
|
+
const iframe = e.target
|
|
84
|
+
const frameWindow = iframe.contentWindow
|
|
85
|
+
iframeWindow.value = frameWindow
|
|
86
|
+
if (!frameWindow) {
|
|
87
|
+
console.error('无法访问 iframe 内容')
|
|
88
|
+
return
|
|
89
|
+
}
|
|
90
|
+
// 关闭文书工具栏
|
|
91
|
+
iframe.contentWindow.editor.option.toolbar = false
|
|
92
|
+
startEditorCheck(frameWindow, iframe)
|
|
93
|
+
}
|
|
94
|
+
// 组件销毁前清理
|
|
95
|
+
onBeforeUnmount(() => {
|
|
96
|
+
if (checkEditorTimer.value) {
|
|
97
|
+
clearInterval(checkEditorTimer.value)
|
|
98
|
+
}
|
|
99
|
+
})
|
|
100
|
+
// 暴露方法给父组件
|
|
101
|
+
defineExpose({ getEditor, createVitalSigns })
|
|
102
|
+
|
|
103
|
+
// 定义事件
|
|
104
|
+
const emit = defineEmits(['editor-ready', 'load'])
|
|
105
|
+
</script>
|
|
106
|
+
|
|
107
|
+
<style scoped>
|
|
108
|
+
iframe {
|
|
109
|
+
border: none;
|
|
110
|
+
width: 100%;
|
|
111
|
+
min-height: 800px;
|
|
112
|
+
}
|
|
113
|
+
</style>
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
export default {
|
|
3
|
-
name: 'ExceptionQuery',
|
|
4
|
-
components: {
|
|
5
|
-
XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue')
|
|
6
|
-
},
|
|
7
|
-
props: {
|
|
8
|
-
currUserInfo: {
|
|
9
|
-
type: Object,
|
|
10
|
-
default: () => undefined
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
mounted () {
|
|
14
|
-
this.$refs.xFormTable.refresh(true)
|
|
15
|
-
},
|
|
16
|
-
data () {
|
|
17
|
-
return {
|
|
18
|
-
// 查询配置名称
|
|
19
|
-
queryParamsName: 'ExceptionRecordQueryCRUD',
|
|
20
|
-
fixedQueryForm: { ex_f_userfiles_id: this.currUserInfo.f_userfiles_id },
|
|
21
|
-
// 新增表单固定值
|
|
22
|
-
fixedAddForm: {},
|
|
23
|
-
// 是否显示详情抽屉
|
|
24
|
-
detailVisible: false,
|
|
25
|
-
// 当前记录
|
|
26
|
-
record: {}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
</script>
|
|
31
|
-
|
|
32
|
-
<template>
|
|
33
|
-
<a-card :bordered="false">
|
|
34
|
-
<x-form-table
|
|
35
|
-
title="异常查询"
|
|
36
|
-
:queryParamsName="queryParamsName"
|
|
37
|
-
:fixedQueryForm="fixedQueryForm"
|
|
38
|
-
ref="xFormTable">
|
|
39
|
-
</x-form-table>
|
|
40
|
-
</a-card>
|
|
41
|
-
</template>
|
|
42
|
-
|
|
43
|
-
<style scoped>
|
|
44
|
-
|
|
45
|
-
</style>
|
|
1
|
+
<script>
|
|
2
|
+
export default {
|
|
3
|
+
name: 'ExceptionQuery',
|
|
4
|
+
components: {
|
|
5
|
+
XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue')
|
|
6
|
+
},
|
|
7
|
+
props: {
|
|
8
|
+
currUserInfo: {
|
|
9
|
+
type: Object,
|
|
10
|
+
default: () => undefined
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
mounted () {
|
|
14
|
+
this.$refs.xFormTable.refresh(true)
|
|
15
|
+
},
|
|
16
|
+
data () {
|
|
17
|
+
return {
|
|
18
|
+
// 查询配置名称
|
|
19
|
+
queryParamsName: 'ExceptionRecordQueryCRUD',
|
|
20
|
+
fixedQueryForm: { ex_f_userfiles_id: this.currUserInfo.f_userfiles_id },
|
|
21
|
+
// 新增表单固定值
|
|
22
|
+
fixedAddForm: {},
|
|
23
|
+
// 是否显示详情抽屉
|
|
24
|
+
detailVisible: false,
|
|
25
|
+
// 当前记录
|
|
26
|
+
record: {}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
<template>
|
|
33
|
+
<a-card :bordered="false">
|
|
34
|
+
<x-form-table
|
|
35
|
+
title="异常查询"
|
|
36
|
+
:queryParamsName="queryParamsName"
|
|
37
|
+
:fixedQueryForm="fixedQueryForm"
|
|
38
|
+
ref="xFormTable">
|
|
39
|
+
</x-form-table>
|
|
40
|
+
</a-card>
|
|
41
|
+
</template>
|
|
42
|
+
|
|
43
|
+
<style scoped>
|
|
44
|
+
|
|
45
|
+
</style>
|
|
@@ -1,347 +0,0 @@
|
|
|
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
|