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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.18.17",
3
+ "version": "1.18.19",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -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.$refs.xTable.refresh(toFirstPage)
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
  },