@tongfun/tf-widget 0.1.18 → 0.1.22

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.
Files changed (99) hide show
  1. package/README.md +49 -42
  2. package/lib/css/1.841c5d60.css +1 -0
  3. package/lib/tf-widget.common.1.js +9 -13
  4. package/lib/tf-widget.common.js +1102 -950
  5. package/lib/tf-widget.css +1 -1
  6. package/lib/tf-widget.umd.1.js +9 -13
  7. package/lib/tf-widget.umd.js +1102 -950
  8. package/lib/tf-widget.umd.min.1.js +1 -1
  9. package/lib/tf-widget.umd.min.js +4 -4
  10. package/package/svg-icon/index.js +8 -8
  11. package/package/svg-icon/src/SvgIcon.vue +59 -59
  12. package/package/t-data-list/index.js +6 -6
  13. package/package/t-data-list/main.vue +193 -192
  14. package/package/t-data-list/src/condition-input/basic.vue +31 -31
  15. package/package/t-data-list/src/condition-input/date.vue +106 -106
  16. package/package/t-data-list/src/condition-input/index.vue +100 -100
  17. package/package/t-data-list/src/condition-input/input.vue +31 -31
  18. package/package/t-data-list/src/condition-input/number.vue +115 -115
  19. package/package/t-data-list/src/condition-input/select.vue +86 -86
  20. package/package/t-data-list/src/js/fieldTypeEnum.js +10 -10
  21. package/package/t-data-list/src/js/operatorEnum.js +108 -109
  22. package/package/t-data-list/src/js/qureyParamsEnum.js +4 -4
  23. package/package/t-data-list/src/js/util.js +34 -34
  24. package/package/t-data-list/src/mixins/button-controll-mixin.js +93 -77
  25. package/package/t-data-list/src/pushdown/push-down.vue +158 -158
  26. package/package/t-data-list/src/t-list-search.vue +36 -32
  27. package/package/t-data-list/src/t-plan/condition-always-item.vue +143 -143
  28. package/package/t-data-list/src/t-plan/condition-mult-item.vue +222 -222
  29. package/package/t-data-list/src/t-plan/index.vue +195 -190
  30. package/package/t-data-list/src/t-plan/plan-content.vue +389 -396
  31. package/package/t-data-list/src/t-table/index.vue +129 -120
  32. package/package/t-data-list/src/t-table/table-group-item-edit.vue +238 -238
  33. package/package/t-data-list/src/t-table/table-group-item.vue +87 -87
  34. package/package/t-data-list/src/t-table/table-group.vue +180 -179
  35. package/package/t-data-list/src/t-table/table-records-header-popover.vue +246 -250
  36. package/package/t-data-list/src/t-table/table-records-selected.vue +159 -159
  37. package/package/t-data-list/src/t-table/table-records.vue +337 -324
  38. package/package/t-input/children/address.vue +101 -101
  39. package/package/t-input/children/basic-display.vue +41 -41
  40. package/package/t-input/children/basic.vue +253 -251
  41. package/package/t-input/children/date.vue +89 -89
  42. package/package/t-input/children/group-components/group-dialog.vue +344 -350
  43. package/package/t-input/children/group.vue +126 -126
  44. package/package/t-input/children/input.vue +72 -72
  45. package/package/t-input/children/number.vue +74 -74
  46. package/package/t-input/children/select.vue +89 -89
  47. package/package/t-input/children/tfile/fiile-enclosure.vue +233 -233
  48. package/package/t-input/index.js +7 -7
  49. package/package/t-input/index.vue +337 -337
  50. package/package/t-input/tInputCache.js +24 -24
  51. package/package/tf-icon-picker/README.md +7 -7
  52. package/package/tf-icon-picker/index.js +8 -8
  53. package/package/tf-icon-picker/src/tf-icon-picker.vue +266 -266
  54. package/package/tf-layout/README.md +115 -115
  55. package/package/tf-layout/index.js +8 -8
  56. package/package/tf-layout/src/components/tf-labelbar.vue +394 -382
  57. package/package/tf-layout/src/components/tf-menu.vue +180 -180
  58. package/package/tf-layout/src/components/tf-right-menu.vue +89 -89
  59. package/package/tf-layout/src/components/tf-rotate-box.vue +50 -50
  60. package/package/tf-layout/src/tf-layout.vue +140 -120
  61. package/package/tf-widget/index.js +8 -8
  62. package/package/tf-widget/src/assets/common-input.less +10 -10
  63. package/package/tf-widget/src/children/basic-data/basic-data.vue +361 -361
  64. package/package/tf-widget/src/children/basic-data/dependcy/basic-data-selector.vue +1087 -1087
  65. package/package/tf-widget/src/children/basic-data/dependcy/common-table.vue +750 -750
  66. package/package/tf-widget/src/children/basic-data/dependcy/condition-filter.vue +519 -519
  67. package/package/tf-widget/src/children/basic-data/dependcy/pagination.vue +93 -93
  68. package/package/tf-widget/src/children/basic-data/dependcy/table-control.vue +240 -240
  69. package/package/tf-widget/src/children/basic-data/dependcy/view-picture.vue +108 -108
  70. package/package/tf-widget/src/children/date-time.vue +103 -103
  71. package/package/tf-widget/src/children/date.vue +103 -103
  72. package/package/tf-widget/src/children/decimal.vue +115 -115
  73. package/package/tf-widget/src/children/integer.vue +104 -104
  74. package/package/tf-widget/src/children/property.vue +59 -59
  75. package/package/tf-widget/src/children/single-line-text.vue +82 -82
  76. package/package/tf-widget/src/children/small-pictures.vue +223 -223
  77. package/package/tf-widget/src/children/text-area.vue +74 -74
  78. package/package/tf-widget/src/children/tf-select.vue +113 -113
  79. package/package/tf-widget/src/tf-widget.vue +175 -175
  80. package/package.json +44 -43
  81. package/src/api/edit.js +97 -97
  82. package/src/api/file-enclosure.js +26 -26
  83. package/src/api/push-down.js +19 -19
  84. package/src/api/table.js +294 -294
  85. package/src/api/tableV3.js +166 -186
  86. package/src/assets/images/icons/index.js +9 -9
  87. package/src/assets/images/icons/svg/add.svg +5 -5
  88. package/src/assets/images/icons/svg/push-down.svg +1 -1
  89. package/src/assets/images/icons/svg/remove.svg +1 -1
  90. package/src/assets/styles/common-table.less +202 -202
  91. package/src/directives/debounce.js +24 -0
  92. package/src/index.js +31 -31
  93. package/src/mixins/t-data-query-mixin.js +290 -289
  94. package/src/utils/auth.js +22 -22
  95. package/src/utils/request.js +42 -42
  96. package/src/utils/stato-anormale.js +59 -59
  97. package/src/utils/utils.js +109 -109
  98. package/src/utils/validate.js +84 -84
  99. package/lib/css/1.920744ef.css +0 -1
@@ -1,93 +1,93 @@
1
- <template>
2
- <div class="pagination">
3
- <div class="selected-total">
4
- 已选中行数:
5
- <span>{{ selectedTotal }}</span>
6
- </div>
7
- <el-pagination
8
- :current-page="paging.current"
9
- :page-sizes="pageSizes"
10
- :page-size="paging.size"
11
- :layout="pagerCount ? 'total, sizes, prev, next, jumper' : 'total, sizes, prev, pager, next, jumper'"
12
- :total="total"
13
- @size-change="handleSizeChange"
14
- @current-change="handleCurrentChange"
15
- />
16
- </div>
17
- </template>
18
-
19
- <script>
20
- export default {
21
- name: 'Pagination',
22
- props: {
23
- // 选中行数
24
- selectedTotal: {
25
- type: Number,
26
- default: 0
27
- },
28
- // 分页总数
29
- total: {
30
- type: Number,
31
- default: 0
32
- },
33
- pagerCount: {
34
- type: Boolean,
35
- default: false
36
- },
37
- paging: {
38
- type: Object,
39
- default: () => {
40
- return {}
41
- }
42
- }
43
- },
44
- data () {
45
- return {
46
- pageSizes: [50, 100, 200, 500]
47
- }
48
- },
49
- mounted () {
50
- // this.changePage()
51
- },
52
- methods: {
53
- changePage () {
54
- this.$emit('pageChange', this.paging)
55
- },
56
- /**
57
- * 每页查看条数变化
58
- * @param val 每页条数
59
- */
60
- handleSizeChange (val) {
61
- this.paging.size = val
62
- this.changePage()
63
- },
64
- /**
65
- * 当前页码变化
66
- * @param val 页码
67
- */
68
- handleCurrentChange (val) {
69
- this.paging.current = val
70
- this.changePage()
71
- }
72
- }
73
- }
74
- </script>
75
-
76
- <style lang="less" scoped>
77
- .pagination{
78
- display: flex;
79
- justify-content: flex-end;
80
- .selected-total{
81
- display: flex;
82
- align-items: center;
83
- color: #606266;
84
- font-size: 13px;
85
- span{
86
- margin-left: 20px;
87
- margin-right: 20px;
88
- text-decoration: underline;
89
- }
90
- }
91
- }
92
-
93
- </style>
1
+ <template>
2
+ <div class="pagination">
3
+ <div class="selected-total">
4
+ 已选中行数:
5
+ <span>{{ selectedTotal }}</span>
6
+ </div>
7
+ <el-pagination
8
+ :current-page="paging.current"
9
+ :page-sizes="pageSizes"
10
+ :page-size="paging.size"
11
+ :layout="pagerCount ? 'total, sizes, prev, next, jumper' : 'total, sizes, prev, pager, next, jumper'"
12
+ :total="total"
13
+ @size-change="handleSizeChange"
14
+ @current-change="handleCurrentChange"
15
+ />
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+ export default {
21
+ name: 'Pagination',
22
+ props: {
23
+ // 选中行数
24
+ selectedTotal: {
25
+ type: Number,
26
+ default: 0
27
+ },
28
+ // 分页总数
29
+ total: {
30
+ type: Number,
31
+ default: 0
32
+ },
33
+ pagerCount: {
34
+ type: Boolean,
35
+ default: false
36
+ },
37
+ paging: {
38
+ type: Object,
39
+ default: () => {
40
+ return {}
41
+ }
42
+ }
43
+ },
44
+ data () {
45
+ return {
46
+ pageSizes: [50, 100, 200, 500]
47
+ }
48
+ },
49
+ mounted () {
50
+ // this.changePage()
51
+ },
52
+ methods: {
53
+ changePage () {
54
+ this.$emit('pageChange', this.paging)
55
+ },
56
+ /**
57
+ * 每页查看条数变化
58
+ * @param val 每页条数
59
+ */
60
+ handleSizeChange (val) {
61
+ this.paging.size = val
62
+ this.changePage()
63
+ },
64
+ /**
65
+ * 当前页码变化
66
+ * @param val 页码
67
+ */
68
+ handleCurrentChange (val) {
69
+ this.paging.current = val
70
+ this.changePage()
71
+ }
72
+ }
73
+ }
74
+ </script>
75
+
76
+ <style lang="less" scoped>
77
+ .pagination{
78
+ display: flex;
79
+ justify-content: flex-end;
80
+ .selected-total{
81
+ display: flex;
82
+ align-items: center;
83
+ color: #606266;
84
+ font-size: 13px;
85
+ span{
86
+ margin-left: 20px;
87
+ margin-right: 20px;
88
+ text-decoration: underline;
89
+ }
90
+ }
91
+ }
92
+
93
+ </style>
@@ -1,240 +1,240 @@
1
- <template>
2
- <div>
3
- <el-dialog
4
- :visible.sync="showDialog"
5
- class="table-control"
6
- :append-to-body="true"
7
- @close="closeDialog"
8
- >
9
- <template v-slot:title> 列表控制 </template>
10
- <div class="table-control-header">
11
- <ul>
12
- <li @click="recoverDefault">恢复默认</li>
13
- <li>|</li>
14
- <li @click="onlySingle">
15
- <span>{{ hiddenHeaderFlag ? '显示单据头+单据体':'只显示单据头' }}</span>
16
- </li>
17
- <li>|</li>
18
- <li @click="allHidden">
19
- <span>{{ allHiddenFlag ? '全部显示':'全部隐藏' }}</span>
20
- </li>
21
- <li>|</li>
22
- <li @click="allIce">
23
- <span v-if="allFixedFlag === false">全部冻结</span>
24
- <span v-else>取消全部冻结</span>
25
- </li>
26
- </ul>
27
- </div>
28
- <div class="table-control-body">
29
- <ux-grid
30
- ref="plxTable"
31
- :data="tableLayout"
32
- border
33
- show-overflow
34
- max-height="600"
35
- :width-resize="true"
36
- :highlight-current-row="false"
37
- :edit-config="{trigger: 'click', mode: 'cell'}"
38
- >
39
- <ux-table-column type="index" width="80" align="center" />
40
- <ux-table-column field="title" title="列名" align="center" width="180" />
41
- <ux-table-column field="align" title="对齐方式" align="center" width="360">
42
- <template v-slot="{ row }">
43
- <el-radio-group v-model="row.align">
44
- <el-radio v-for="item in alignList" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
45
- </el-radio-group>
46
- </template>
47
- </ux-table-column>
48
- <ux-table-column field="hiddenFlag" title="隐藏列" align="center">
49
- <!--这个呢是编辑状态下的方式-->
50
- <template v-slot="scope">
51
- <el-switch
52
- v-model="scope.row.hiddenFlag"
53
- active-color="#13ce66"
54
- inactive-color="#D8D8D8"
55
- />
56
- </template>
57
- </ux-table-column>
58
- <ux-table-column field="fixedBak" title="冻结列" align="center">
59
- <!--这个呢是编辑状态下的方式-->
60
- <template v-slot="scope">
61
- <el-switch
62
- v-model="scope.row.fixedBak"
63
- active-color="#13ce66"
64
- inactive-color="#D8D8D8"
65
- @change="changeFixed(scope)"
66
- />
67
- </template>
68
- </ux-table-column>
69
- </ux-grid>
70
- </div>
71
- </el-dialog>
72
- </div>
73
- </template>
74
- <script>
75
- export default {
76
- components: {},
77
- props: {
78
- tableLayout: {
79
- type: Array,
80
- default: () => {
81
- return []
82
- }
83
- },
84
- dialogTableVisible: {
85
- type: Boolean,
86
- default: false
87
- }
88
- },
89
- data () {
90
- return {
91
- alignList: [
92
- {
93
- value: 'left',
94
- label: '居左'
95
- },
96
- {
97
- value: 'center',
98
- label: '默认'
99
- },
100
- {
101
- value: 'right',
102
- label: '居右'
103
- }
104
- ],
105
- showDialog: false, // 列表控制弹框
106
- allHiddenFlag: false, // 全部隐藏标志
107
- allFixedFlag: false, // 全部冻结标志
108
- hiddenHeaderFlag: false, // 只显示单据头标志
109
- checkboxList: [],
110
- emptyString: ''
111
- }
112
- },
113
- watch: {
114
- // 监听 dialogTableVisible 改变
115
- dialogTableVisible (newVal) {
116
- this.showDialog = newVal
117
- }
118
- },
119
- mounted () {
120
- // 初始化fixedBak
121
- this.initFixedBak()
122
- },
123
-
124
- methods: {
125
-
126
- // 初始化fixedBak
127
- initFixedBak () {
128
- this.tableLayout.forEach(item => {
129
- item.fixedBak = item.fixed === 'left'
130
- })
131
- },
132
-
133
- // 对齐方式显示为中文
134
- getAlignLabel (val) {
135
- const item = this.alignList.filter(item => item.value === val)[0]
136
- return item ? item.label : ''
137
- },
138
-
139
- changeFixed (scope) {
140
- this.$nextTick(() => {
141
- const index = this.tableLayout.findIndex(d => d._XID === scope.row._XID)
142
- this.tableLayout.splice(index, 1, { ...this.tableLayout[index], fixed: scope.row.fixedBak ? 'left' : '' })
143
- // 更新列配置
144
- this.$emit('updateColumn')
145
- })
146
- },
147
-
148
- closeDialog () {
149
- this.$emit('closeDialog', false)
150
- },
151
-
152
- // 恢复默认
153
- recoverDefault () {
154
- this.tableLayout.forEach((item, index) => {
155
- this.tableLayout.splice(index, 1, { ...item, hiddenFlag: false, fixed: '', fixedBak: false })
156
- })
157
- this.allHiddenFlag = false
158
- this.allFixedFlag = false
159
- this.hiddenHeaderFlag = false
160
- // 更新列配置
161
- this.$emit('updateColumn')
162
- this.$message.success('恢复默认成功')
163
- },
164
-
165
- // 只显示单据头
166
- onlySingle () {
167
- },
168
-
169
- // 全部隐藏 + 全部显示
170
- allHidden () {
171
- // 全部隐藏
172
- if (this.allHiddenFlag === false) {
173
- this.tableLayout.forEach((item, index) => {
174
- this.tableLayout.splice(index, 1, { ...item, hiddenFlag: true })
175
- })
176
- this.allHiddenFlag = true
177
- this.$message.success('全部隐藏成功')
178
- } else { // 全部显示
179
- this.tableLayout.forEach((item, index) => {
180
- this.tableLayout.splice(index, 1, { ...item, hiddenFlag: false })
181
- })
182
- this.allHiddenFlag = false
183
- this.$message.success('全部显示成功')
184
- }
185
- },
186
-
187
- // 全部冻结 + 取消全部冻结
188
- allIce () {
189
- // 全部冻结
190
- if (this.allFixedFlag === false) {
191
- this.tableLayout.forEach((item, index) => {
192
- this.tableLayout.splice(index, 1, { ...item, fixedBak: true, fixed: 'left' })
193
- })
194
- this.allFixedFlag = true
195
- this.$message.success('全部冻结成功')
196
- } else { // 取消全部冻结
197
- this.tableLayout.forEach((item, index) => {
198
- this.tableLayout.splice(index, 1, { ...item, fixedBak: false, fixed: '' })
199
- })
200
- this.allFixedFlag = false
201
- this.$message.success('取消全部冻结成功')
202
- }
203
- // 更新列配置
204
- this.$emit('updateColumn')
205
- }
206
-
207
- }
208
- }
209
- </script>
210
-
211
- <style lang="less" scoped>
212
- .table-control{
213
- /deep/ .el-dialog {
214
- border-radius: 0.9259vh 0.9259vh 0 0;
215
- /deep/ .el-dialog__header {
216
- background: #0261A4;
217
- color: #fff;
218
- border-radius: 0.9259vh 0.9259vh 0 0;
219
- }
220
- }
221
-
222
- /*头部样式*/
223
- .table-control-header {
224
- height: 3.7963vh;
225
- margin: 0 auto;
226
- text-align: center;
227
- ul :nth-child(odd) {
228
- color: #0261A4;
229
- cursor: pointer;
230
- }
231
- li {
232
- display: inline;
233
- line-height: 3.7963vh;
234
- margin: 0 1.9444vh;
235
- }
236
- }
237
-
238
- }
239
-
240
- </style>
1
+ <template>
2
+ <div>
3
+ <el-dialog
4
+ :visible.sync="showDialog"
5
+ class="table-control"
6
+ :append-to-body="true"
7
+ @close="closeDialog"
8
+ >
9
+ <template v-slot:title> 列表控制 </template>
10
+ <div class="table-control-header">
11
+ <ul>
12
+ <li @click="recoverDefault">恢复默认</li>
13
+ <li>|</li>
14
+ <li @click="onlySingle">
15
+ <span>{{ hiddenHeaderFlag ? '显示单据头+单据体':'只显示单据头' }}</span>
16
+ </li>
17
+ <li>|</li>
18
+ <li @click="allHidden">
19
+ <span>{{ allHiddenFlag ? '全部显示':'全部隐藏' }}</span>
20
+ </li>
21
+ <li>|</li>
22
+ <li @click="allIce">
23
+ <span v-if="allFixedFlag === false">全部冻结</span>
24
+ <span v-else>取消全部冻结</span>
25
+ </li>
26
+ </ul>
27
+ </div>
28
+ <div class="table-control-body">
29
+ <ux-grid
30
+ ref="plxTable"
31
+ :data="tableLayout"
32
+ border
33
+ show-overflow
34
+ max-height="600"
35
+ :width-resize="true"
36
+ :highlight-current-row="false"
37
+ :edit-config="{trigger: 'click', mode: 'cell'}"
38
+ >
39
+ <ux-table-column type="index" width="80" align="center" />
40
+ <ux-table-column field="title" title="列名" align="center" width="180" />
41
+ <ux-table-column field="align" title="对齐方式" align="center" width="360">
42
+ <template v-slot="{ row }">
43
+ <el-radio-group v-model="row.align">
44
+ <el-radio v-for="item in alignList" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
45
+ </el-radio-group>
46
+ </template>
47
+ </ux-table-column>
48
+ <ux-table-column field="hiddenFlag" title="隐藏列" align="center">
49
+ <!--这个呢是编辑状态下的方式-->
50
+ <template v-slot="scope">
51
+ <el-switch
52
+ v-model="scope.row.hiddenFlag"
53
+ active-color="#13ce66"
54
+ inactive-color="#D8D8D8"
55
+ />
56
+ </template>
57
+ </ux-table-column>
58
+ <ux-table-column field="fixedBak" title="冻结列" align="center">
59
+ <!--这个呢是编辑状态下的方式-->
60
+ <template v-slot="scope">
61
+ <el-switch
62
+ v-model="scope.row.fixedBak"
63
+ active-color="#13ce66"
64
+ inactive-color="#D8D8D8"
65
+ @change="changeFixed(scope)"
66
+ />
67
+ </template>
68
+ </ux-table-column>
69
+ </ux-grid>
70
+ </div>
71
+ </el-dialog>
72
+ </div>
73
+ </template>
74
+ <script>
75
+ export default {
76
+ components: {},
77
+ props: {
78
+ tableLayout: {
79
+ type: Array,
80
+ default: () => {
81
+ return []
82
+ }
83
+ },
84
+ dialogTableVisible: {
85
+ type: Boolean,
86
+ default: false
87
+ }
88
+ },
89
+ data () {
90
+ return {
91
+ alignList: [
92
+ {
93
+ value: 'left',
94
+ label: '居左'
95
+ },
96
+ {
97
+ value: 'center',
98
+ label: '默认'
99
+ },
100
+ {
101
+ value: 'right',
102
+ label: '居右'
103
+ }
104
+ ],
105
+ showDialog: false, // 列表控制弹框
106
+ allHiddenFlag: false, // 全部隐藏标志
107
+ allFixedFlag: false, // 全部冻结标志
108
+ hiddenHeaderFlag: false, // 只显示单据头标志
109
+ checkboxList: [],
110
+ emptyString: ''
111
+ }
112
+ },
113
+ watch: {
114
+ // 监听 dialogTableVisible 改变
115
+ dialogTableVisible (newVal) {
116
+ this.showDialog = newVal
117
+ }
118
+ },
119
+ mounted () {
120
+ // 初始化fixedBak
121
+ this.initFixedBak()
122
+ },
123
+
124
+ methods: {
125
+
126
+ // 初始化fixedBak
127
+ initFixedBak () {
128
+ this.tableLayout.forEach(item => {
129
+ item.fixedBak = item.fixed === 'left'
130
+ })
131
+ },
132
+
133
+ // 对齐方式显示为中文
134
+ getAlignLabel (val) {
135
+ const item = this.alignList.filter(item => item.value === val)[0]
136
+ return item ? item.label : ''
137
+ },
138
+
139
+ changeFixed (scope) {
140
+ this.$nextTick(() => {
141
+ const index = this.tableLayout.findIndex(d => d._XID === scope.row._XID)
142
+ this.tableLayout.splice(index, 1, { ...this.tableLayout[index], fixed: scope.row.fixedBak ? 'left' : '' })
143
+ // 更新列配置
144
+ this.$emit('updateColumn')
145
+ })
146
+ },
147
+
148
+ closeDialog () {
149
+ this.$emit('closeDialog', false)
150
+ },
151
+
152
+ // 恢复默认
153
+ recoverDefault () {
154
+ this.tableLayout.forEach((item, index) => {
155
+ this.tableLayout.splice(index, 1, { ...item, hiddenFlag: false, fixed: '', fixedBak: false })
156
+ })
157
+ this.allHiddenFlag = false
158
+ this.allFixedFlag = false
159
+ this.hiddenHeaderFlag = false
160
+ // 更新列配置
161
+ this.$emit('updateColumn')
162
+ this.$message.success('恢复默认成功')
163
+ },
164
+
165
+ // 只显示单据头
166
+ onlySingle () {
167
+ },
168
+
169
+ // 全部隐藏 + 全部显示
170
+ allHidden () {
171
+ // 全部隐藏
172
+ if (this.allHiddenFlag === false) {
173
+ this.tableLayout.forEach((item, index) => {
174
+ this.tableLayout.splice(index, 1, { ...item, hiddenFlag: true })
175
+ })
176
+ this.allHiddenFlag = true
177
+ this.$message.success('全部隐藏成功')
178
+ } else { // 全部显示
179
+ this.tableLayout.forEach((item, index) => {
180
+ this.tableLayout.splice(index, 1, { ...item, hiddenFlag: false })
181
+ })
182
+ this.allHiddenFlag = false
183
+ this.$message.success('全部显示成功')
184
+ }
185
+ },
186
+
187
+ // 全部冻结 + 取消全部冻结
188
+ allIce () {
189
+ // 全部冻结
190
+ if (this.allFixedFlag === false) {
191
+ this.tableLayout.forEach((item, index) => {
192
+ this.tableLayout.splice(index, 1, { ...item, fixedBak: true, fixed: 'left' })
193
+ })
194
+ this.allFixedFlag = true
195
+ this.$message.success('全部冻结成功')
196
+ } else { // 取消全部冻结
197
+ this.tableLayout.forEach((item, index) => {
198
+ this.tableLayout.splice(index, 1, { ...item, fixedBak: false, fixed: '' })
199
+ })
200
+ this.allFixedFlag = false
201
+ this.$message.success('取消全部冻结成功')
202
+ }
203
+ // 更新列配置
204
+ this.$emit('updateColumn')
205
+ }
206
+
207
+ }
208
+ }
209
+ </script>
210
+
211
+ <style lang="less" scoped>
212
+ .table-control{
213
+ /deep/ .el-dialog {
214
+ border-radius: 0.9259vh 0.9259vh 0 0;
215
+ /deep/ .el-dialog__header {
216
+ background: #0261A4;
217
+ color: #fff;
218
+ border-radius: 0.9259vh 0.9259vh 0 0;
219
+ }
220
+ }
221
+
222
+ /*头部样式*/
223
+ .table-control-header {
224
+ height: 3.7963vh;
225
+ margin: 0 auto;
226
+ text-align: center;
227
+ ul :nth-child(odd) {
228
+ color: #0261A4;
229
+ cursor: pointer;
230
+ }
231
+ li {
232
+ display: inline;
233
+ line-height: 3.7963vh;
234
+ margin: 0 1.9444vh;
235
+ }
236
+ }
237
+
238
+ }
239
+
240
+ </style>