vue2-client 1.18.17 → 1.18.19
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/base-client/components/common/HIS/HFormTable/HFormTable.vue +18 -0
- package/src/base-client/components/common/XFormTable/XFormTable.vue +18 -1
- package/src/components/xScrollBox/index.vue +54 -0
- package/src/pages/userInfoDetailManage/ApplyRecordQuery/index.vue +64 -0
- package/src/pages/userInfoDetailManage/SafeCheckPaperV3RecordQuery/index.vue +64 -0
- package/src/pages/userInfoDetailManage/TelephoneV3RecordQuery/index.vue +64 -0
- package/src/pages/userInfoDetailManage/userInfoDetailQueryTabs.vue +10 -1
package/package.json
CHANGED
|
@@ -268,6 +268,24 @@ const isHiddenFunctionalArea = computed(() => {
|
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
270
|
|
|
271
|
+
// 修复数据量少时下拉框被挡住的问题:为表格内容区域设置最小高度
|
|
272
|
+
// 当表格有数据时,确保表格内容区域有足够高度,避免下拉框被挡住
|
|
273
|
+
// 注意:只在表格有数据时应用,避免空表格时显示问题
|
|
274
|
+
:deep(.table-wrapper) {
|
|
275
|
+
.ant-table:not(.ant-table-empty) {
|
|
276
|
+
.ant-table-content {
|
|
277
|
+
// 设置最小高度,确保即使数据少时也有足够空间显示下拉框
|
|
278
|
+
// 这个高度应该足够显示下拉框选项(通常下拉框高度约200-300px)
|
|
279
|
+
min-height: 300px;
|
|
280
|
+
|
|
281
|
+
.ant-table-body {
|
|
282
|
+
// 确保表格体也有最小高度,保证滚动容器有足够空间
|
|
283
|
+
min-height: 250px;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
271
289
|
// 表格样式
|
|
272
290
|
&.h-form-table-table {
|
|
273
291
|
:deep(.ant-table-small .ant-table-fixed-header) {
|
|
@@ -1009,7 +1009,24 @@ export default {
|
|
|
1009
1009
|
* @param toFirstPage 是否到第一页
|
|
1010
1010
|
*/
|
|
1011
1011
|
refresh (toFirstPage = true) {
|
|
1012
|
-
this
|
|
1012
|
+
if (this.tableShowMode === 'popup') {
|
|
1013
|
+
this.tableModalVisible = true
|
|
1014
|
+
this.$nextTick(() => {
|
|
1015
|
+
// 等待 Modal 中的 x-table 渲染完成
|
|
1016
|
+
if (this.$refs.xTable) {
|
|
1017
|
+
// 如果有待初始化的配置,先初始化表格
|
|
1018
|
+
if (this.pendingTableInit) {
|
|
1019
|
+
this.$refs.xTable.init(this.pendingTableInit)
|
|
1020
|
+
this.$emit('afterTableInit')
|
|
1021
|
+
this.pendingTableInit = null
|
|
1022
|
+
}
|
|
1023
|
+
this.$refs.xTable.refresh(toFirstPage)
|
|
1024
|
+
this.$refs.xTable.summaryUpdate = true
|
|
1025
|
+
}
|
|
1026
|
+
})
|
|
1027
|
+
} else {
|
|
1028
|
+
this.$refs.xTable.refresh(toFirstPage)
|
|
1029
|
+
}
|
|
1013
1030
|
},
|
|
1014
1031
|
/**
|
|
1015
1032
|
* 获取表格数据
|
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
<script>
|
|
8
8
|
export default {
|
|
9
9
|
name: 'XScrollBox',
|
|
10
|
+
data () {
|
|
11
|
+
return {
|
|
12
|
+
scrollBoxRef: null
|
|
13
|
+
}
|
|
14
|
+
},
|
|
10
15
|
computed: {
|
|
11
16
|
// 判断当前是否为 blank 模式
|
|
12
17
|
isBlankMode () {
|
|
@@ -30,6 +35,55 @@ export default {
|
|
|
30
35
|
}
|
|
31
36
|
}
|
|
32
37
|
}
|
|
38
|
+
},
|
|
39
|
+
mounted () {
|
|
40
|
+
// 获取滚动容器引用
|
|
41
|
+
this.scrollBoxRef = this.$el
|
|
42
|
+
},
|
|
43
|
+
methods: {
|
|
44
|
+
/**
|
|
45
|
+
* 滚动到顶部
|
|
46
|
+
* @param {boolean} smooth - 是否平滑滚动,默认 true
|
|
47
|
+
*/
|
|
48
|
+
scrollToTop (smooth = true) {
|
|
49
|
+
if (this.scrollBoxRef) {
|
|
50
|
+
this.scrollBoxRef.scrollTo({
|
|
51
|
+
top: 0,
|
|
52
|
+
left: 0,
|
|
53
|
+
behavior: smooth ? 'smooth' : 'auto'
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 滚动到指定位置
|
|
60
|
+
* @param {number} top - 垂直位置
|
|
61
|
+
* @param {number} left - 水平位置,默认 0
|
|
62
|
+
* @param {boolean} smooth - 是否平滑滚动,默认 true
|
|
63
|
+
*/
|
|
64
|
+
scrollTo (top, left = 0, smooth = true) {
|
|
65
|
+
if (this.scrollBoxRef) {
|
|
66
|
+
this.scrollBoxRef.scrollTo({
|
|
67
|
+
top,
|
|
68
|
+
left,
|
|
69
|
+
behavior: smooth ? 'smooth' : 'auto'
|
|
70
|
+
})
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* 获取当前滚动位置
|
|
76
|
+
* @returns {Object} - { scrollTop, scrollLeft }
|
|
77
|
+
*/
|
|
78
|
+
getScrollPosition () {
|
|
79
|
+
if (this.scrollBoxRef) {
|
|
80
|
+
return {
|
|
81
|
+
scrollTop: this.scrollBoxRef.scrollTop,
|
|
82
|
+
scrollLeft: this.scrollBoxRef.scrollLeft
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return { scrollTop: 0, scrollLeft: 0 }
|
|
86
|
+
}
|
|
33
87
|
}
|
|
34
88
|
}
|
|
35
89
|
</script>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<a-card :bordered="false" v-if="currUserInfo">
|
|
3
|
+
<x-form-table
|
|
4
|
+
title="报建记录查询"
|
|
5
|
+
:queryParamsName="queryParamsName"
|
|
6
|
+
:fixedQueryForm="fixedQueryForm"
|
|
7
|
+
@action="action"
|
|
8
|
+
service-name="af-revenue"
|
|
9
|
+
ref="xFormTable">
|
|
10
|
+
</x-form-table>
|
|
11
|
+
</a-card>
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<script>
|
|
15
|
+
import { mapState } from 'vuex'
|
|
16
|
+
|
|
17
|
+
export default {
|
|
18
|
+
name: 'ApplyRecordQuery',
|
|
19
|
+
components: {
|
|
20
|
+
XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue')
|
|
21
|
+
},
|
|
22
|
+
data () {
|
|
23
|
+
return {
|
|
24
|
+
// 查询配置名称
|
|
25
|
+
queryParamsName: 'ApplyRecordQueryCRUD',
|
|
26
|
+
// 查询表单固定值
|
|
27
|
+
fixedQueryForm: { ab_f_userinfo_id: this.currUserInfo.f_userinfo_id },
|
|
28
|
+
// 是否显示详情抽屉
|
|
29
|
+
detailVisible: false,
|
|
30
|
+
// 当前记录
|
|
31
|
+
record: {}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
props: {
|
|
35
|
+
currUserInfo: {
|
|
36
|
+
type: Object,
|
|
37
|
+
default: () => undefined
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
mounted () {
|
|
41
|
+
this.$refs.xFormTable.refresh(true)
|
|
42
|
+
},
|
|
43
|
+
methods: {
|
|
44
|
+
action (record, id, actionType) {
|
|
45
|
+
this.detailVisible = true
|
|
46
|
+
console.log('触发了详情操作', record, id, actionType)
|
|
47
|
+
},
|
|
48
|
+
onClose () {
|
|
49
|
+
this.detailVisible = false
|
|
50
|
+
// 关闭详情之后重新查询表单
|
|
51
|
+
this.$refs.xFormTable.refreshTable(true)
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
computed: {
|
|
56
|
+
...mapState('account', { currUser: 'user' }),
|
|
57
|
+
...mapState('setting', { isMobile: 'isMobile' })
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
</script>
|
|
61
|
+
|
|
62
|
+
<style scoped>
|
|
63
|
+
|
|
64
|
+
</style>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<a-card :bordered="false" v-if="currUserInfo">
|
|
3
|
+
<x-form-table
|
|
4
|
+
title="安检记录查询"
|
|
5
|
+
:queryParamsName="queryParamsName"
|
|
6
|
+
:fixedQueryForm="fixedQueryForm"
|
|
7
|
+
@action="action"
|
|
8
|
+
service-name="af-revenue"
|
|
9
|
+
ref="xFormTable">
|
|
10
|
+
</x-form-table>
|
|
11
|
+
</a-card>
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<script>
|
|
15
|
+
import { mapState } from 'vuex'
|
|
16
|
+
|
|
17
|
+
export default {
|
|
18
|
+
name: 'SafeCheckPaperV3RecordQuery',
|
|
19
|
+
components: {
|
|
20
|
+
XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue')
|
|
21
|
+
},
|
|
22
|
+
data () {
|
|
23
|
+
return {
|
|
24
|
+
// 查询配置名称
|
|
25
|
+
queryParamsName: 'SafeCheckRecordQueryCRUD',
|
|
26
|
+
// 查询表单固定值
|
|
27
|
+
fixedQueryForm: { tcp_f_userinfoid: this.currUserInfo.f_userinfo_id },
|
|
28
|
+
// 是否显示详情抽屉
|
|
29
|
+
detailVisible: false,
|
|
30
|
+
// 当前记录
|
|
31
|
+
record: {}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
props: {
|
|
35
|
+
currUserInfo: {
|
|
36
|
+
type: Object,
|
|
37
|
+
default: () => undefined
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
mounted () {
|
|
41
|
+
this.$refs.xFormTable.refresh(true)
|
|
42
|
+
},
|
|
43
|
+
methods: {
|
|
44
|
+
action (record, id, actionType) {
|
|
45
|
+
this.detailVisible = true
|
|
46
|
+
console.log('触发了详情操作', record, id, actionType)
|
|
47
|
+
},
|
|
48
|
+
onClose () {
|
|
49
|
+
this.detailVisible = false
|
|
50
|
+
// 关闭详情之后重新查询表单
|
|
51
|
+
this.$refs.xFormTable.refreshTable(true)
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
computed: {
|
|
56
|
+
...mapState('account', { currUser: 'user' }),
|
|
57
|
+
...mapState('setting', { isMobile: 'isMobile' })
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
</script>
|
|
61
|
+
|
|
62
|
+
<style scoped>
|
|
63
|
+
|
|
64
|
+
</style>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<a-card :bordered="false" v-if="currUserInfo">
|
|
3
|
+
<x-form-table
|
|
4
|
+
title="工单记录查询"
|
|
5
|
+
:queryParamsName="queryParamsName"
|
|
6
|
+
:fixedQueryForm="fixedQueryForm"
|
|
7
|
+
@action="action"
|
|
8
|
+
service-name="af-revenue"
|
|
9
|
+
ref="xFormTable">
|
|
10
|
+
</x-form-table>
|
|
11
|
+
</a-card>
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<script>
|
|
15
|
+
import { mapState } from 'vuex'
|
|
16
|
+
|
|
17
|
+
export default {
|
|
18
|
+
name: 'TelephoneV3RecordQuery',
|
|
19
|
+
components: {
|
|
20
|
+
XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue')
|
|
21
|
+
},
|
|
22
|
+
data () {
|
|
23
|
+
return {
|
|
24
|
+
// 查询配置名称
|
|
25
|
+
queryParamsName: 'TelephoneRecordQueryCRUD',
|
|
26
|
+
// 查询表单固定值
|
|
27
|
+
fixedQueryForm: { ts_f_userinfo_id: this.currUserInfo.f_userinfo_id },
|
|
28
|
+
// 是否显示详情抽屉
|
|
29
|
+
detailVisible: false,
|
|
30
|
+
// 当前记录
|
|
31
|
+
record: {}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
props: {
|
|
35
|
+
currUserInfo: {
|
|
36
|
+
type: Object,
|
|
37
|
+
default: () => undefined
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
mounted () {
|
|
41
|
+
this.$refs.xFormTable.refresh(true)
|
|
42
|
+
},
|
|
43
|
+
methods: {
|
|
44
|
+
action (record, id, actionType) {
|
|
45
|
+
this.detailVisible = true
|
|
46
|
+
console.log('触发了详情操作', record, id, actionType)
|
|
47
|
+
},
|
|
48
|
+
onClose () {
|
|
49
|
+
this.detailVisible = false
|
|
50
|
+
// 关闭详情之后重新查询表单
|
|
51
|
+
this.$refs.xFormTable.refreshTable(true)
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
computed: {
|
|
56
|
+
...mapState('account', { currUser: 'user' }),
|
|
57
|
+
...mapState('setting', { isMobile: 'isMobile' })
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
</script>
|
|
61
|
+
|
|
62
|
+
<style scoped>
|
|
63
|
+
|
|
64
|
+
</style>
|
|
@@ -37,6 +37,9 @@ import PriceAdjustments from '@vue2-client/pages/userInfoDetailManage/PriceAdjus
|
|
|
37
37
|
import uploadFilesHistory from '@vue2-client/pages/userInfoDetailManage/uploadFilesHistory'
|
|
38
38
|
import InsuranceDetailQuery from '@vue2-client/pages/userInfoDetailManage/InsuranceDetailQuery'
|
|
39
39
|
import ExceptionRecordQuery from '@vue2-client/pages/userInfoDetailManage/ExceptionRecordQuery'
|
|
40
|
+
import ApplyRecordQuery from '@vue2-client/pages/userInfoDetailManage/ApplyRecordQuery'
|
|
41
|
+
import SafeCheckPaperV3RecordQuery from '@vue2-client/pages/userInfoDetailManage/SafeCheckPaperV3RecordQuery'
|
|
42
|
+
import TelephoneV3RecordQuery from '@vue2-client/pages/userInfoDetailManage/TelephoneV3RecordQuery'
|
|
40
43
|
export default {
|
|
41
44
|
name: 'UserInfoDetailQueryTabs',
|
|
42
45
|
components: {
|
|
@@ -60,7 +63,10 @@ export default {
|
|
|
60
63
|
PriceAdjustments,
|
|
61
64
|
uploadFilesHistory,
|
|
62
65
|
InsuranceDetailQuery,
|
|
63
|
-
ExceptionRecordQuery
|
|
66
|
+
ExceptionRecordQuery,
|
|
67
|
+
ApplyRecordQuery,
|
|
68
|
+
SafeCheckPaperV3RecordQuery,
|
|
69
|
+
TelephoneV3RecordQuery
|
|
64
70
|
},
|
|
65
71
|
props: {
|
|
66
72
|
userInfo: {
|
|
@@ -114,6 +120,9 @@ export default {
|
|
|
114
120
|
{ key: '16', label: '附件查看', permission: '附件查看', component: 'uploadFilesHistory' },
|
|
115
121
|
{ key: '17', label: '保险明细', permission: '保险明细', component: 'InsuranceDetailQuery' },
|
|
116
122
|
{ key: '18', label: '异常查看', permission: '异常查看', component: 'ExceptionRecordQuery', condition: () => this.userInfo?.f_meter_type === '物联网表' },
|
|
123
|
+
{ key: '19', label: '报建查看', permission: '报建查看', component: 'ApplyRecordQuery' },
|
|
124
|
+
{ key: '20', label: '安检查看', permission: '安检查看', component: 'SafeCheckPaperV3RecordQuery' },
|
|
125
|
+
{ key: '21', label: '工单查看', permission: '工单查看', component: 'TelephoneV3RecordQuery' },
|
|
117
126
|
],
|
|
118
127
|
}
|
|
119
128
|
},
|