olp-table 5.3.4 → 5.3.5

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 (171) hide show
  1. package/package.json +12 -92
  2. package/.env.build +0 -1
  3. package/README.md +0 -26
  4. package/babel.config.js +0 -5
  5. package/jsconfig.json +0 -22
  6. package/public/favicon.ico +0 -0
  7. package/public/index.html +0 -17
  8. package/rmMode.bat +0 -1
  9. package/src/App.vue +0 -199
  10. package/src/api/crud.js +0 -22
  11. package/src/api/dist.js +0 -6
  12. package/src/assets/iconfont/iconfont.css +0 -20
  13. package/src/assets/iconfont/iconfont.json +0 -16
  14. package/src/assets/iconfont/iconfont.ttf +0 -0
  15. package/src/assets/iconfont/iconfont.woff +0 -0
  16. package/src/assets/iconfont/iconfont.woff2 +0 -0
  17. package/src/assets/logo.png +0 -0
  18. package/src/components/auto-height/index.vue +0 -75
  19. package/src/components/codemirror-tag.vue +0 -100
  20. package/src/components/lazy-load-select.vue +0 -107
  21. package/src/components/ol-dialog-excel.vue +0 -112
  22. package/src/components/ol-dialog-import.vue +0 -304
  23. package/src/components/ol-dialog-json.vue +0 -82
  24. package/src/components/ol-dialog-table.vue +0 -81
  25. package/src/components/ol-dialog-upload-file.vue +0 -208
  26. package/src/components/ol-dict-tag.vue +0 -271
  27. package/src/components/ol-select-dom.vue +0 -71
  28. package/src/components/ol-table-filter.vue +0 -28
  29. package/src/components/ol-table-render.vue +0 -44
  30. package/src/components/ol-table-select.vue +0 -150
  31. package/src/components/pinia-init.vue +0 -18
  32. package/src/components/table/model/ModelMixins.js +0 -43
  33. package/src/components/table/model/model-index.vue +0 -121
  34. package/src/components/table/model/ot-left-right.vue +0 -18
  35. package/src/components/table/model/ot-left-tree-right-table.scss +0 -14
  36. package/src/components/table/model/ot-left-tree-right-table.vue +0 -41
  37. package/src/components/table/model/ot-top-1-bottom-2.vue +0 -39
  38. package/src/components/table/model/ot-top-2-bottom-1.vue +0 -38
  39. package/src/components/table/model/ot-top-2-bottom-2.vue +0 -38
  40. package/src/components/table/model/ot-top-bottom.vue +0 -18
  41. package/src/components/table/model/splitpanesModel.css +0 -22
  42. package/src/components/table/model/splitpanesModel.vue +0 -54
  43. package/src/components/table/ol-form/index.vue +0 -537
  44. package/src/components/table/ol-form-v3/index.vue +0 -455
  45. package/src/components/table/ol-main-form-sub-table/index.vue +0 -601
  46. package/src/components/table/ol-pager/index.vue +0 -46
  47. package/src/components/table/ol-table/components/ol-table-column-config/columnIndex.vue +0 -233
  48. package/src/components/table/ol-table/components/ol-table-column-config/index.vue +0 -145
  49. package/src/components/table/ol-table/components/ol-table-column-dict-color/index.vue +0 -88
  50. package/src/components/table/ol-table/index.vue +0 -232
  51. package/src/components/table/ol-table-operate/index.vue +0 -61
  52. package/src/components/table/ol-table-search/index.vue +0 -17
  53. package/src/components/table/ol-table-tool-btn/index.vue +0 -60
  54. package/src/components/tree/components/o-tree.vue +0 -289
  55. package/src/components/tree/index.vue +0 -46
  56. package/src/components/v-component/index.vue +0 -43
  57. package/src/config/dev-config.js +0 -5
  58. package/src/config/prod-config.js +0 -5
  59. package/src/config/shared-config.js +0 -20
  60. package/src/data.js +0 -9378
  61. package/src/directives/permission/hasPermi.js +0 -63
  62. package/src/directives/permission/hasRole.js +0 -30
  63. package/src/main.js +0 -55
  64. package/src/mixins/VTMixin/DefaultMethods.js +0 -749
  65. package/src/mixins/VTMixin/OTMixinBody.js +0 -105
  66. package/src/mixins/VTMixin/OTMixinBodyFooter.js +0 -93
  67. package/src/mixins/VTMixin/OTMixinBodyMethods.js +0 -420
  68. package/src/mixins/VTMixin/OTMixinColumnMethod.js +0 -450
  69. package/src/mixins/VTMixin/OTMixinInitMethod.js +0 -130
  70. package/src/mixins/VTMixin/OTMixinPager.js +0 -38
  71. package/src/mixins/VTMixin/OTMixinSortable.js +0 -43
  72. package/src/mixins/VTMixin/index.js +0 -18
  73. package/src/package/index.js +0 -20
  74. package/src/plugins/axios.js +0 -61
  75. package/src/store/dict.js +0 -76
  76. package/src/store/dictType.js +0 -52
  77. package/src/store/permi.js +0 -45
  78. package/src/styles/common.scss +0 -37
  79. package/src/styles/index.scss +0 -48
  80. package/src/styles/theme.scss +0 -32
  81. package/src/utils/AESCRUDUtils.js +0 -87
  82. package/src/utils/DateUtils.js +0 -35
  83. package/src/utils/ExcelUtil.js +0 -159
  84. package/src/utils/TableSortUtil.js +0 -91
  85. package/src/utils/columnProp.js +0 -3
  86. package/src/utils/groupCompute.js +0 -68
  87. package/src/utils/http/httpFactory.js +0 -92
  88. package/src/utils/http/httpFactory2.js +0 -79
  89. package/src/utils/http/httpUtil.js +0 -123
  90. package/src/utils/http/httpUtils.js +0 -38
  91. package/src/utils/loadStyle.js +0 -14
  92. package/src/utils/message.js +0 -56
  93. package/src/utils/object.js +0 -80
  94. package/src/utils/security/TokenUtil.js +0 -19
  95. package/src/utils/tree.js +0 -54
  96. package/src/utils/util.js +0 -127
  97. package/src/views/Test/index.vue +0 -77
  98. package/src/views/Test/index2.vue +0 -33
  99. package/src/views/components/btn-config/index.vue +0 -202
  100. package/src/views/components/option-config/index.vue +0 -192
  101. package/src/views/db/chineseToEnglish.vue +0 -127
  102. package/src/views/db/filed.vue +0 -395
  103. package/src/views/db/index.vue +0 -192
  104. package/src/views/db/preview/index.vue +0 -139
  105. package/src/views/db/preview/left.vue +0 -204
  106. package/src/views/db/preview/right.vue +0 -466
  107. package/src/views/groupTable/index.vue +0 -137
  108. package/src/views/groupTable/ol-table-column-config/columnIndex.vue +0 -194
  109. package/src/views/groupTable/ol-table-column-config/index.vue +0 -92
  110. package/src/views/table/add-or-edit/config/base-config/index.vue +0 -539
  111. package/src/views/table/add-or-edit/config/base-config/table-form.vue +0 -333
  112. package/src/views/table/add-or-edit/config/column-config/header-config.vue +0 -475
  113. package/src/views/table/add-or-edit/config/column-config/index.vue +0 -790
  114. package/src/views/table/add-or-edit/config/data/column.js +0 -218
  115. package/src/views/table/add-or-edit/config/data/crud.js +0 -122
  116. package/src/views/table/add-or-edit/config/data/events.js +0 -109
  117. package/src/views/table/add-or-edit/config/data/method.js +0 -127
  118. package/src/views/table/add-or-edit/config/data/option.js +0 -725
  119. package/src/views/table/add-or-edit/config/data/page.js +0 -79
  120. package/src/views/table/add-or-edit/config/field-config/filed-config-table.vue +0 -42
  121. package/src/views/table/add-or-edit/config/field-config/index.vue +0 -91
  122. package/src/views/table/add-or-edit/config/form-config/index.vue +0 -1179
  123. package/src/views/table/add-or-edit/config/index.vue +0 -376
  124. package/src/views/table/add-or-edit/config/initFormObject.js +0 -25
  125. package/src/views/table/add-or-edit/config/script-config/LeftMeun.vue +0 -71
  126. package/src/views/table/add-or-edit/config/script-config/index.vue +0 -70
  127. package/src/views/table/add-or-edit/config/table-config/btn-config.vue +0 -340
  128. package/src/views/table/add-or-edit/config/table-config/btn-sort.vue +0 -132
  129. package/src/views/table/add-or-edit/config/table-config/index.vue +0 -446
  130. package/src/views/table/add-or-edit/configOld/dataTags/filed-config-table-model.vue +0 -41
  131. package/src/views/table/add-or-edit/configOld/dataTags/filed-config.vue +0 -74
  132. package/src/views/table/add-or-edit/configOld/dataTags/index.vue +0 -439
  133. package/src/views/table/add-or-edit/configOld/dataTags/set-table-sql.vue +0 -79
  134. package/src/views/table/add-or-edit/configOld/dataTags/table-on-config.vue +0 -74
  135. package/src/views/table/add-or-edit/configOld/index.vue +0 -127
  136. package/src/views/table/add-or-edit/configOld/tableTags/columnConfig.js +0 -5
  137. package/src/views/table/add-or-edit/configOld/tableTags/index.vue +0 -353
  138. package/src/views/table/add-or-edit/configOld/tableTags/operation-but-config.vue +0 -75
  139. package/src/views/table/add-or-edit/configOld/tableTags/tool-but-config.vue +0 -92
  140. package/src/views/table/add-or-edit/index.vue +0 -201
  141. package/src/views/table/add-or-edit/themeModel/index.vue +0 -53
  142. package/src/views/table/add-or-edit/themeModel/init-model-table.vue +0 -48
  143. package/src/views/table/add-or-edit/themeModel/init-model.vue +0 -81
  144. package/src/views/table/add-or-edit/themeModel/left-right.vue +0 -24
  145. package/src/views/table/add-or-edit/themeModel/left-tree-right-table.vue +0 -75
  146. package/src/views/table/add-or-edit/themeModel/olTableSearchModelMixins.js +0 -42
  147. package/src/views/table/add-or-edit/themeModel/splitpanesThemeModel.vue +0 -49
  148. package/src/views/table/add-or-edit/themeModel/top-1-bottom-2.vue +0 -29
  149. package/src/views/table/add-or-edit/themeModel/top-2-bottom-1.vue +0 -32
  150. package/src/views/table/add-or-edit/themeModel/top-2-bottom-2.vue +0 -32
  151. package/src/views/table/add-or-edit/themeModel/top-bottom.vue +0 -14
  152. package/src/views/table/index.vue +0 -43
  153. package/src/views/table/index2.vue +0 -199
  154. package/src/views/table/preview/index.vue +0 -29
  155. package/src/views/tree/components/config-core-data.vue +0 -85
  156. package/src/views/tree/components/config-core-table.vue +0 -362
  157. package/src/views/tree/components/config-core-tree/data/events.js +0 -95
  158. package/src/views/tree/components/config-core-tree/data/option.js +0 -88
  159. package/src/views/tree/components/config-core-tree/data/prop.js +0 -28
  160. package/src/views/tree/components/config-core-tree/index.vue +0 -181
  161. package/src/views/tree/components/config-core.vue +0 -42
  162. package/src/views/tree/components/form-config/index.vue +0 -967
  163. package/src/views/tree/index.vue +0 -424
  164. package/vue.config.js +0 -44
  165. /package/{olp-table/demo.html → demo.html} +0 -0
  166. /package/{olp-table/fonts → fonts}/iconfont.1720006583309.7e4906d9.woff +0 -0
  167. /package/{olp-table/fonts → fonts}/iconfont.1720006583309.947a27f0.ttf +0 -0
  168. /package/{olp-table/olp-table.common.js → olp-table.common.js} +0 -0
  169. /package/{olp-table/olp-table.css → olp-table.css} +0 -0
  170. /package/{olp-table/olp-table.umd.js → olp-table.umd.js} +0 -0
  171. /package/{olp-table/olp-table.umd.min.js → olp-table.umd.min.js} +0 -0
@@ -1,192 +0,0 @@
1
- <template>
2
- <div>
3
- <el-dialog
4
- v-model="dialogVisible"
5
- v-if="dialogVisible"
6
- fullscreen
7
- :title="form.isAdd =='1' ? '新增数据表' : '编辑数据表'"
8
- destroy-on-close
9
- :show-close="false"
10
- :showHeader="false"
11
- >
12
- <div v-loading="loading">
13
- <el-form :model="form" ref="forms" :rules="rules" label-width="80">
14
- <el-row>
15
- <el-col :span="3">
16
- <el-form-item label="数据库">
17
- <olDictTag code="db_name" v-model="form.dbName" @change="dbChange"
18
- :disabled="form.isAdd =='0'"></olDictTag>
19
- </el-form-item>
20
- </el-col>
21
- <el-col :span="5">
22
- <el-form-item label="表描述" prop="desc">
23
- <el-input v-model="form.desc" maxlength="50">
24
- <template #append>
25
- <el-button @click="show" :disabled="form.isAdd =='0'">搜索英文</el-button>
26
- </template>
27
- </el-input>
28
- </el-form-item>
29
- </el-col>
30
- <el-col :span="5">
31
- <el-form-item label="表名" prop="tableName">
32
- <el-input v-model="form.tableName" maxlength="50" :disabled="form.isAdd =='0'"/>
33
- </el-form-item>
34
- </el-col>
35
- <!-- <el-col :span="3">
36
- <el-form-item label="操作者标识" label-width="90">
37
- <el-select v-model="form.bs" disabled @change="$refs.dbFiled.updateBS(form)">
38
- <el-option label="by" value-key="by" value="by"/>
39
- <el-option label="user" value-key="user" value="user"/>
40
- </el-select>
41
- </el-form-item>
42
- </el-col>-->
43
- <el-col :span="3" v-if="form.isAdd =='1'">
44
- <el-form-item label="默认表字段" label-width="90">
45
- <olDictTag code="pubilc_yes_no" @change="$refs.dbFiled.initDefaultData(this.form)"
46
- v-model="form.tableDefault"/>
47
- </el-form-item>
48
- </el-col>
49
- </el-row>
50
- </el-form>
51
- <el-tabs
52
- v-model="activeName"
53
- type="card"
54
- >
55
- <el-tab-pane label="字段属性" name="filed">
56
- <db-filed style="height: calc(100vh - 250px)" ref="dbFiled" @ok="loading =false"></db-filed>
57
- </el-tab-pane>
58
- <!-- <el-tab-pane label="索引信息" name="index">Config</el-tab-pane>
59
- <el-tab-pane label="DDL信息" name="ddl">Role</el-tab-pane>-->
60
- </el-tabs>
61
- <chinese-to-english ref="chineseToEnglish"></chinese-to-english>
62
- </div>
63
-
64
-
65
- <template #footer>
66
- <div class="dialog-footer">
67
- <el-button type="primary" @click="handleClose">关闭</el-button>
68
- <el-button type="primary" :loading="loading" @click="save(false)">保存</el-button>
69
- <el-button type="primary" :loading="loading" @click="save(true)">保存并关闭</el-button>
70
- </div>
71
- </template>
72
- </el-dialog>
73
-
74
- </div>
75
- </template>
76
- <script>
77
-
78
- import DbFiled from "@/views/db/filed.vue";
79
- import {get, post} from "@/utils/http/httpUtils";
80
- import ChineseToEnglish from "@/views/db/chineseToEnglish.vue";
81
-
82
- export default {
83
- name: "dbIndex",
84
- components: {ChineseToEnglish, DbFiled},
85
- inject: ['http'],
86
- provide() {
87
- return {
88
- DBForm: this.form
89
- }
90
- },
91
- props: {
92
- syncTable: {},
93
- setFormConfigData: {},
94
- syncFormConfig: {}
95
- },
96
- data() {
97
- return {
98
- loading: false,
99
- rules: {
100
- desc: [{
101
- required: true,
102
- message: '请输入数据库表名',
103
- trigger: 'blur'
104
- }], tableName: [{
105
- required: true,
106
- message: '请输入数据库描述',
107
- trigger: 'blur'
108
- }],
109
- },
110
- dialogVisible: false,
111
- form: {
112
- dbName: '',
113
- dbType: '',
114
- tableName: '',
115
- desc: '',
116
- isAdd: '1',
117
- bs: 'by',
118
- tableDefault: '1'
119
- },
120
- activeName: 'filed',
121
- }
122
- },
123
- methods: {
124
- show() {
125
- this.loading = false;
126
- this.$refs.chineseToEnglish.show(this.form, 'desc', 'tableName')
127
- },
128
- dbChange(val) {
129
- if (val == this.form.dbType) {
130
- return
131
- }
132
- this.getDbType(val)
133
- },
134
- getDbType(val) {
135
- get(this.http, "/online/asyncDb/getDataBaseType", {
136
- dbName: val
137
- }).then((res) => {
138
- this.form.dbType = res
139
- }).finally(() => {
140
- })
141
- },
142
- handleClose() {
143
- this.dialogVisible = false;
144
- this.$emit("emits", {m: 'query'});
145
- },
146
- init(o) {
147
- this.dialogVisible = true;
148
- this.$nextTick(() => {
149
- if (o) {
150
- this.loading = true;
151
- this.form['tableName'] = o.tableName;
152
- this.form['dbName'] = o.tableSchema;
153
- this.form.isAdd = "0";
154
- this.getDbType(this.form.dbName)
155
- this.$refs.dbFiled.loadData(this.form);
156
- } else {
157
- this.$refs.dbFiled.initDefaultData({bs: 'by'});
158
- this.form.isAdd = "1";
159
- this.form['tableName'] = "";
160
- if(o){
161
- this.form['dbName'] = o.tableSchema;
162
- }
163
- this.form['desc'] = "";
164
- }
165
- })
166
- },
167
- save(e) {
168
- this.$refs.forms.validate((valid, msg) => {
169
- if (valid) {
170
- this.loading = true
171
- let params = JSON.parse(JSON.stringify(this.form));
172
- this.$refs.dbFiled.setList(params)
173
- post(this.http, "/online/asyncDb/save", params).then(res => {
174
- this.form.isAdd = "0";
175
- if (res && e) {
176
- this.handleClose();
177
- } else if (res) {
178
- this.$refs.dbFiled.loadData(this.form);
179
- }
180
- }).finally(()=>{
181
- this.loading = false
182
- })
183
- }
184
- return
185
- })
186
- }
187
- },
188
- created() {
189
- }
190
-
191
- }
192
- </script>
@@ -1,139 +0,0 @@
1
- <template>
2
- <el-dialog
3
- v-model="dialogVisible"
4
- :title="title"
5
- style="height: 100vh;width:100%"
6
- fullscreen destroy-on-close>
7
- <auto-height v-slot="{ height }" v-loading="loading" :style="'height:'+height">
8
- <div style="width:250px;position: relative;float: left;height: 100%">
9
- <preview-left @scrollToColumn="scrollToColumn" :columns="columns" ref="left" v-if="columns.length > 0"
10
- @updateColumn="updateColumn"
11
- @searchCancel="searchCancel"></preview-left>
12
- </div>
13
- <div style="position: relative;float: left;width:calc(100% - 250px);height: 100%">
14
- <preview-right ref="right" @updateColumn="$refs.left.refresh()" :columns="columns"/>
15
- </div>
16
- </auto-height>
17
- </el-dialog>
18
- </template>
19
- <script>
20
-
21
- import AutoHeight from "@/components/auto-height/index.vue";
22
- import PreviewLeft from "@/views/db/preview/left.vue";
23
- import PreviewRight from "@/views/db/preview/right.vue";
24
- import {get} from "@/utils/http/httpUtils";
25
-
26
- export default {
27
- name: 'preview',
28
- components: {PreviewRight, PreviewLeft, AutoHeight,},
29
- inject: ['http'],
30
- data() {
31
- return {
32
- dialogVisible: false,
33
- columns: [],
34
- title: '',
35
- sql: '',
36
- loading: true,
37
- }
38
- }, methods: {
39
- scrollToColumn(row) {
40
- for (let i = 1; i < this.columns.length; i++) {
41
- if (this.columns[i].COLUMN_NAME == row.field) {
42
- let index = (this.columns.length - i) < 3 ? i : i - 1;
43
- this.$refs.right.$table.scrollToColumn(this.columns[index].COLUMN_NAME)
44
- console.log(this.columns[i].children[0].children[0])
45
- this.$refs.right.$table.clearCurrentColumn()
46
- this.$refs.right.$table.setCurrentColumn(this.columns[i].children[0].children[0])
47
- console.log(this.$refs.right.$table.getCurrentColumn())
48
- }
49
- }
50
-
51
- },
52
- searchCancel() {
53
- this.$refs.right.$table.reloadColumn(this.columns)
54
- this.$refs.right.query()
55
- },
56
- updateColumn(e) {
57
- if (e != undefined) {
58
- this.columns = e;
59
- }
60
- this.$refs.right.$table.reloadColumn(this.columns)
61
- },
62
- init(o) {
63
- this.dialogVisible = true;
64
- this.loading = true;
65
- this.$nextTick(() => {
66
- get(this.http, "/online/asyncDb/getColumn", {
67
- dbName: o.tableSchema,
68
- dataSource: o.datasource,
69
- tableName: o.tableName
70
- }).then(({column}) => {
71
- this.loading = false;
72
- let i = 0;
73
- this.title = o.tableSchema + " - " + o.tableName + " [" + o.tableComment + "]" + " - 字段数量:" + column.length;
74
- for (const c of column) {
75
- c.label = c.COLUMN_NAME + '[' + c.COLUMN_COMMENT + ']';
76
- c.field = c.COLUMN_NAME + "_sort";
77
-
78
- c.key = i;
79
- i++;
80
- c.sortable = true;
81
- c.params = {
82
- asc: false,
83
- desc: false
84
- };
85
- c.fixed = c.is_pk == 1 ? 'left' : undefined;
86
- if (c.is_pk == 1) {
87
- c.type = 'html';
88
- c.title = '<span style="color:red">' + c.COLUMN_NAME + '[PK]</span>';
89
- } else {
90
- c.title = c.COLUMN_NAME;
91
- }
92
- // c.slots = {
93
- // header: 'checkedBox_header'
94
- // };
95
- c.children = [{
96
- title: c.COLUMN_COMMENT,
97
- fixed: c.is_pk == 1 ? 'left' : undefined,
98
- slots: {
99
- header: 'checkedBox_header'
100
- },
101
- children: [{
102
- field: c.COLUMN_NAME,
103
- title: c.COLUMN_COMMENT,
104
- visible: true,
105
- fixed: c.is_pk == 1 ? 'left' : undefined,
106
- editRender: {name: 'input'},
107
- params: {
108
- is_pk: c.is_pk == 1,
109
- value: '',
110
- range: false,
111
- time: false,
112
- start: '',
113
- end: '',
114
- },
115
- width: 200,
116
- slots: {
117
- header: 'header_name_auto_filter'
118
- },
119
- }]
120
- }]
121
- }
122
- column.push({
123
- title: '操作',
124
- label: '操作',
125
- fixed: 'right',
126
- width: 110,
127
- slots: {
128
- default: 'operate'
129
- }
130
- })
131
- this.columns = column;
132
- this.$refs.right.init(o);
133
- })
134
- })
135
- },
136
- },
137
- }
138
- </script>
139
-
@@ -1,204 +0,0 @@
1
- <template>
2
- <div class="search">
3
- <el-input placeholder="关键字搜索" v-model="filterText" clearable>
4
- </el-input>
5
- <el-button @click="visible(false)">取消全选</el-button>
6
- <el-button @click="visible(true)">全选</el-button>
7
- </div>
8
- <el-scrollbar style="height: calc(100% - 70px)" v-loading="loading" element-loading-text="正在加载数据中...">
9
- <el-tree ref="treeBox"
10
- :draggable="true"
11
- v-if="!loading"
12
- :data="$attrs.columns"
13
- :show-border="true"
14
- v-bind="$attrs"
15
- node-key="COLUMN_NAME"
16
- :allow-drop="allowDrop"
17
- :props="{
18
- children: 'children2'
19
- }"
20
- :show-checkbox="false"
21
- :highlight-current="true"
22
- @node-drop="nodeDrop"
23
- :allow-drag="allowDrag"
24
- :filter-node-method="filterNode">
25
- <template #default="{ node, data }">
26
- <span class="custom-tree-node" v-if="data.slots === undefined">
27
- {{ data.key + 1 }}<el-checkbox v-model="data.children[0].children[0].visible" :disabled="data.is_pk"
28
- @change="update">
29
- <el-icon v-if="data.is_pk" style="color:red"><Female/></el-icon>
30
- <el-tooltip v-if="node.label.length > 15"
31
- class="box-item"
32
- effect="dark"
33
- :content="node.label"
34
- placement="left-start"
35
- >
36
- <span style="color: #2d2a2e">{{ node.label.substring(0, 15) }}</span>
37
- </el-tooltip>
38
- <span v-else style="color: #2d2a2e">{{ node.label }}</span>
39
- </el-checkbox>
40
- <span style="position: absolute;right: 15px;line-height: 30px">
41
- <el-tooltip
42
- class="box-item"
43
- effect="dark"
44
- v-if="data.children[0].children[0].isNull"
45
- content="当前查询所有数据为空值"
46
- placement="top-start"
47
- >
48
- <el-icon style="color: red"><WarningFilled/>
49
- </el-icon>
50
- </el-tooltip>
51
- <el-tooltip
52
- v-if="data.children[0].children[0].search"
53
- class="box-item"
54
- effect="dark"
55
- :content="data.children[0].children[0].searchContent"
56
- placement="top-start"
57
- >
58
- <el-icon style="color: red"
59
- @click="searchCancel(data.children[0].children[0])"><Search/>
60
- </el-icon>
61
- </el-tooltip>
62
- <el-tooltip class="box-item"
63
- effect="dark"
64
- content="定位列"
65
- placement="top-start"
66
- >
67
- <el-icon @click="scrollToColumn(data.children[0].children[0])"><Location/>
68
- </el-icon>
69
- </el-tooltip>
70
- </span>
71
- </span>
72
- <span v-else>
73
- {{ node.label }}
74
- </span>
75
- </template>
76
- </el-tree>
77
- </el-scrollbar>
78
- </template>
79
-
80
- <script>
81
- export default {
82
- name: "previewLeft",
83
- inject: ['http'],
84
- computed: {
85
- props() {
86
- return {
87
- key: this.treeConfig.value,
88
- label: this.treeConfig.label,
89
- children: this.treeConfig.children
90
- }
91
- }
92
- },
93
- data() {
94
- return {
95
- toolButOptions: [],
96
- search: '关键字搜索',
97
- filterText: "",
98
- loading: false,
99
- value: ''
100
- }
101
- },
102
- methods: {
103
- scrollToColumn(row) {
104
- this.$emit("scrollToColumn", row)
105
- },
106
- allowDrag(node) {
107
- return node.data.children != undefined
108
- },
109
- refresh() {
110
- console.log("刷新")
111
- this.loading = true;
112
- this.$nextTick(() => {
113
- this.loading = false;
114
- })
115
- },
116
- nodeDrop(draggingNode, dropNode) {
117
- // 找到被拖拽节点和放置节点的位置
118
- const draggingNodeIndex = this.$attrs.columns.findIndex(node => node.COLUMN_NAME === draggingNode.data.COLUMN_NAME);
119
- const dropNodeIndex = this.$attrs.columns.findIndex(node => node.COLUMN_NAME === dropNode.data.COLUMN_NAME);
120
- // 更新数组,移除被拖拽节点并在新位置插入
121
- let clonedData = [...this.$attrs.columns];
122
- clonedData.splice(draggingNodeIndex, 1);
123
- clonedData.splice(dropNodeIndex, 0, draggingNode.data);
124
- // 更新treeData
125
- //this.$attrs.columns = clonedData;
126
- this.$emit("updateColumn", clonedData)
127
- },
128
- allowDrop(draggingNode, dropNode, type) {
129
- return type != 'inner'
130
- },
131
- searchCancel(o) {
132
- if (o.search) {
133
- o.search = false;
134
- o.params.start = '';
135
- o.params.end = '';
136
- o.params.value = ''
137
- }
138
- this.$emit('searchCancel')
139
- },
140
- visible(visible) {
141
- for (let column of this.$attrs.columns) {
142
- column.children[0].children[0].visible = visible;
143
- }
144
- this.update()
145
- },
146
- update() {
147
- this.$emit("updateColumn")
148
- },
149
- async handleOperationClick(e) {
150
- this.$emit("handleOperationClick", e)
151
- },
152
- filterNode(value, data) {
153
-
154
- if (!value) {
155
- return true;
156
- }
157
- return data.label.toString().toLowerCase().includes(value.toString().toLowerCase());
158
- }
159
- },
160
- watch: {
161
- filterText(val) {
162
- this.$refs.treeBox.filter(val);
163
- }
164
- }, created() {
165
- },
166
-
167
- }
168
-
169
- </script>
170
-
171
- <style>
172
-
173
- </style>
174
- <style lang="scss" scoped>
175
- .search {
176
- height: 68px;
177
-
178
- div:first-child {
179
- width: 100%
180
- }
181
- }
182
-
183
- .tree {
184
- position: relative;
185
- background-color: white;
186
- height: 100%;
187
-
188
- .title {
189
- height: 20px;
190
- padding: 6px;
191
- border-bottom: 1px solid #dcdfe685;
192
- position: relative;
193
-
194
- b {
195
- position: relative;
196
- font-size: 14px
197
- }
198
-
199
- div {
200
- font-size: 8px;
201
- }
202
- }
203
- }
204
- </style>