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,127 +0,0 @@
1
- <template>
2
- <el-dialog
3
- v-model="dialogVisible"
4
- title="中文转换英文"
5
- destroy-on-close
6
- width="500"
7
- :show-close="false"
8
- :showHeader="false"
9
- append-to-body
10
- >
11
- <el-form label-width="80">
12
- <el-form-item label="中文">
13
- <el-input v-model="value" v-bind="$attrs">
14
- <template #append>
15
- <el-button @click="get">搜索</el-button>
16
- </template>
17
- </el-input>
18
- </el-form-item>
19
- </el-form>
20
- <vxe-grid v-bind="gridOptions" ref="vexGridRef"
21
- resizable>
22
- <template #default_COLUMN_COMMENT="{ row }">
23
- <span v-for="item in row.COLUMN_COMMENT.split('')">
24
- <span :style="value.indexOf(item) != -1 ? 'color: red' :''">{{ item }}</span>
25
- </span>
26
- </template>
27
- </vxe-grid>
28
-
29
- <template #footer>
30
- <div class="dialog-footer">
31
- <el-button type="primary" @click="save">确认</el-button>
32
- </div>
33
- </template>
34
- </el-dialog>
35
- </template>
36
- <script>
37
- import {get} from "@/utils/http/httpUtils";
38
-
39
- export default {
40
- name: "chineseToEnglish",
41
-
42
- inject: ['http', 'DBForm'],
43
- data() {
44
- return {
45
- dialogVisible: false,
46
- value: '',
47
- row: {},
48
- key: '',
49
- valueKey: '',
50
- dbName: '',
51
- gridOptions: {
52
- loading: false,
53
- rowConfig: {
54
- isHover: true,
55
- isCurrent: true
56
- },
57
- size: 'mini',
58
- border: true,
59
- height: '500px',
60
- align: "left",
61
- radioConfig: {
62
- trigger: 'row',
63
- highlight: true
64
- },
65
- columns: [
66
- {type: 'radio', width: 60},
67
- {
68
- type: "seq",
69
- width: 60,
70
- title: "序号",
71
- },
72
- {
73
- title: '英文',
74
- field: 'COLUMN_NAME'
75
- },
76
- {
77
- title: '中文',
78
- field: 'COLUMN_COMMENT',
79
- slots: {
80
- default: 'default_COLUMN_COMMENT'
81
- }
82
- }
83
- ],
84
- data: []
85
- },
86
- }
87
- },
88
- methods: {
89
- save() {
90
- this.row[this.valueKey] = this.$refs.vexGridRef.getRadioRecord().COLUMN_NAME
91
- this.dialogVisible = false;
92
- },
93
- show(row, key, valueKey) {
94
- this.dialogVisible = true;
95
- this.key = key;
96
- this.valueKey = valueKey;
97
- let rowElement = row[key];
98
- let number = rowElement.indexOf("(");
99
- if (number == -1) {
100
- number = rowElement.indexOf("(");
101
- }
102
- if (number != -1) {
103
- rowElement = rowElement.substring(0, number);
104
- }
105
- this.value = rowElement.replace(/[^\u4e00-\u9fa5]/g, '');
106
- this.row = row;
107
- this.get();
108
- },
109
- get() {
110
- if (!this.DBForm.dbName) {
111
- console.log('数据库名为空!')
112
- return
113
- }
114
- let params = {
115
- dbName: this.DBForm.dbName,
116
- text: this.value
117
- }
118
- this.gridOptions.loading = true;
119
- get(this.http, '/online/asyncDb/chineseToEnglish', params).then(data => {
120
- this.gridOptions.loading = false;
121
- this.gridOptions.data = data;
122
- this.$refs.vexGridRef.setRadioRow(this.gridOptions.data[0])
123
- })
124
- }
125
- }
126
- }
127
- </script>
@@ -1,395 +0,0 @@
1
- <template>
2
- <div>
3
- <vxe-grid v-bind="gridOptions" ref="vexGridRef" :expand-config="{ labelField: 'seq' }"
4
- resizable>
5
- <template #header_name_auto_filter="event">
6
- <ol-table-filter :event="event"></ol-table-filter>
7
- </template>
8
- <template #input_default="{ column, row,rowIndex }">
9
- <el-input v-model="row[column.field]" @change="update" size="small" :disabled="isDisable(rowIndex)"></el-input>
10
- </template>
11
- <template #input_title="{ column, row,rowIndex }">
12
- <el-input v-model="row[column.field]" size="small" @change="update" :disabled="isDisable(rowIndex)">
13
- <template #append>
14
- <el-button @click="show(row)" size="small" :disabled="isDisable(rowIndex) || !row[column.field]">搜索英文</el-button>
15
- </template>
16
- </el-input>
17
- </template>
18
- <template #name="{ column, row,rowIndex }">
19
- <el-tag type="info" v-if="isDisable(rowIndex)" effect="dark">表默认</el-tag>
20
- <el-tag type="danger" v-else-if="row.delete == 1" effect="dark">已删除</el-tag>
21
- <el-tag type="primary" v-else-if="row.COLUMN_NAME_OLD == undefined" effect="dark">新字段</el-tag>
22
- <el-tag type="warning" v-else-if="row.COLUMN_NAME_OLD != row.COLUMN_NAME" effect="dark">重命名</el-tag>
23
- <el-tag type="success" v-else-if="row.COLUMN_NAME_OLD == row.COLUMN_NAME" effect="dark">无更新</el-tag>
24
- </template>
25
- <template #number_default="{ column, row,rowIndex }">
26
- <el-input type="number" size="small" v-model="row[column.field]" :disabled="isDisable(rowIndex)"/>
27
- </template>
28
- <!-- 通用多选框 -->
29
- <template #checkedBox_header="{ column}">
30
- <div style="display: flex;align-items: center;">
31
- <el-checkbox v-model="column.params.all" @change="headerClick(column)"></el-checkbox>
32
- <span style="margin-left: 5px;">{{ column.title }} </span>
33
- </div>
34
- </template>
35
- <template #checkedBox_default="{ column, row,rowIndex }">
36
- <el-checkbox v-model="row[column.field]" @change="checkbox" :disabled="isDisable(rowIndex)" true-value="NO"
37
- false-value="YES"/>
38
- </template>
39
- <!-- 通用下拉框 -->
40
- <template #select_default="{ column, row,rowIndex }">
41
- <el-select ref="dictTag" size="small" v-model="row[column.field]" @change="updateTypes(row)"
42
- :disabled="isDisable(rowIndex)" placeholder="可搜索" filterable>
43
- <el-option v-for="item in DBForm.dbType == 'Oracle'?oraOptions:mysqlOptions" :label="item.dictLabel"
44
- :value-key="item.dictLabel"
45
- :value="item.dictLabel"></el-option>
46
- </el-select>
47
- </template>
48
- <template #operate="{ rowIndex,row }">
49
- <el-button @click="removeRow(rowIndex,true)" size="small" v-if="row.delete != 1"
50
- :disabled="isDisable(rowIndex) || !row.COLUMN_NAME"
51
- type="danger"> 删除
52
- </el-button>
53
- <el-button @click="removeRow(rowIndex,false)" size="small" v-else type="success"> 恢复
54
- </el-button>
55
- </template>
56
- </vxe-grid>
57
- <chinese-to-english ref="chineseToEnglish"></chinese-to-english>
58
- </div>
59
- </template>
60
- <script>
61
- import {get} from "@/utils/http/httpUtils";
62
- import ChineseToEnglish from "@/views/db/chineseToEnglish.vue";
63
- import {storeDictType} from "@/store/dictType";
64
- import {storeDict} from "@/store/dict";
65
- import OlTableFilter from "@/components/ol-table-filter.vue";
66
-
67
- export default {
68
- name: "dbFiled",
69
- components: {OlTableFilter, ChineseToEnglish},
70
- inject: ['http', 'DBForm'],
71
- props: {},
72
- data() {
73
- return {
74
- dict: storeDict(),
75
- dictType: storeDictType(),
76
- options: [],
77
- oraOptions: [],
78
- mysqlOptions: [],
79
- gridOptions: {
80
- filterConfig: {
81
- showIcon: false
82
- },
83
- scrollX: {enabled: true, gt: 15},
84
- scrollY: {enabled: true, gt: 0},
85
- loading: false,
86
- size: 'mini',
87
- border: true,
88
- height: '100%',
89
- align: "left",
90
- columns: [
91
- {
92
- type: "seq",
93
- width: 60,
94
- fixed: 'left',
95
- title: "序号",
96
- },
97
- {
98
- title: '字段名状态',
99
- field: 'COLUMN_NAME_OLD',
100
- width: 90,
101
- slots: {
102
- default: 'name'
103
- },
104
- },
105
- {
106
- title: '列描述',
107
- children: [{
108
- field: 'COLUMN_COMMENT',
109
- minWidth: 300,
110
- slots: {
111
- header: 'header_name_auto_filter',
112
- default: 'input_title'
113
- },
114
- }]
115
- },
116
- {
117
- title: '新列名',
118
- children: [{
119
- field: 'COLUMN_NAME',
120
- width: 250,
121
- slots: {
122
- header: 'header_name_auto_filter',
123
- default: 'input_default'
124
- },
125
- }]
126
- },
127
- {
128
- title: '列类型',
129
- field: 'DATA_TYPE',
130
- width: 140,
131
- slots: {
132
- default: 'select_default'
133
- }
134
- },
135
- {
136
- title: '长度',
137
- field: 'CHARACTER_MAXIMUM_LENGTH',
138
- width: 90,
139
- slots: {
140
- default: 'input_default'
141
- },
142
- },
143
- {
144
- title: '类型',
145
- field: 'COLUMN_TYPE',
146
- width: 150,
147
- },
148
- {
149
- title: '默认值',
150
- field: 'COLUMN_DEFAULT',
151
- width: 250,
152
- slots: {
153
- default: 'input_default'
154
- },
155
- },
156
- {
157
- title: '非空',
158
- field: 'IS_NULLABLE',
159
- align: 'center',
160
- width: 80,
161
- params: {
162
- all: 0
163
- },
164
- slots: {
165
- header: 'checkedBox_header',
166
- default: 'checkedBox_default'
167
- },
168
- },
169
- {
170
- title: '操作',
171
- width: 100,
172
- fixed: 'right',
173
- align: 'center',
174
- slots: {
175
- default: 'operate'
176
- }
177
- }
178
- ],
179
- data: [{}],
180
- },
181
- activeName: '',
182
- }
183
- },
184
- computed: {
185
- jsonType() {
186
- let type = this.type.split(",");
187
- let jsonType = [];
188
- for (let t of type) {
189
- jsonType.push({dictLabel: t.trim(), dictValue: t.trim()});
190
- }
191
- return jsonType;
192
- }
193
- },
194
- methods: {
195
- show(row) {
196
- this.$refs.chineseToEnglish.show(row, 'COLUMN_COMMENT', 'COLUMN_NAME')
197
- },
198
- changeNameFilter(option) {
199
- option.checked = true
200
- this.$refs.vexGridRef.updateData()
201
- },
202
- isDisable(rowIndex) {
203
- //return rowIndex <= 1 && this.DBForm.tableDefault == '1'
204
- return false
205
- },
206
- updateTypes(row) {
207
- if (row.DATA_TYPE == 'decimal' && row.COLUMN_TYPE.indexOf(",") == -1) {
208
- row.CHARACTER_MAXIMUM_LENGTH = "10,2";
209
- } else if (row.DATA_TYPE == 'varchar' && row.CHARACTER_MAXIMUM_LENGTH == "") {
210
- row.CHARACTER_MAXIMUM_LENGTH = "64";
211
- } else if (!(row.DATA_TYPE == 'varchar' || row.DATA_TYPE == 'int'
212
- || row.DATA_TYPE == 'bigint' ||
213
- row.DATA_TYPE == 'float' ||
214
- row.DATA_TYPE == 'double')) {
215
- row.CHARACTER_MAXIMUM_LENGTH = "";
216
- }
217
- if (row.DATA_TYPE != 'decimal' && row.COLUMN_TYPE.indexOf(",") != -1) {
218
- row.CHARACTER_MAXIMUM_LENGTH = "64";
219
- }
220
- this.updateType();
221
- },
222
- loadData(form) {
223
- this.$nextTick(() => {
224
- get(this.http, "/online/asyncDb/getColumn", {
225
- dbName: form.dbName,
226
- tableName: form.tableName
227
- }).then(({column, table}) => {
228
- form.desc = table.TABLE_COMMENT;
229
- this.gridOptions.data = column
230
- }).finally(() => {
231
- this.gridOptions.loading = false;
232
- this.$emit("ok")
233
- this.update();
234
- })
235
- })
236
- },
237
- setList(form) {
238
- let list = this.gridOptions.data.slice(0, -1);
239
- form['list'] = list;
240
- },
241
- updateBS(form) {
242
- this.gridOptions.data[1].COLUMN_NAME = "create_" + form.bs;
243
- this.gridOptions.data[2].COLUMN_NAME = "update_" + form.bs;
244
- },
245
- initDefaultData(form) {
246
- let data = [
247
- {
248
- "COLUMN_COMMENT": "主键",
249
- "COLUMN_TYPE": "bigint(20)",
250
- "COLUMN_NAME": "id",
251
- "DATA_TYPE": "bigint",
252
- "CHARACTER_MAXIMUM_LENGTH": 20,
253
- "DEFAULT": '1',
254
- "IS_NULLABLE": "YES",
255
- "COLUMN_DEFAULT": ""
256
- },
257
- {
258
- "COLUMN_COMMENT": "创建者",
259
- "COLUMN_TYPE": "varchar(64)",
260
- "COLUMN_NAME": "create_" + form.bs,
261
- "DATA_TYPE": "varchar",
262
- "DEFAULT": '1',
263
- "CHARACTER_MAXIMUM_LENGTH": 64,
264
- "IS_NULLABLE": "YES",
265
- "COLUMN_DEFAULT": ""
266
- },
267
- {
268
- "COLUMN_COMMENT": "更新者",
269
- "COLUMN_TYPE": "varchar(64)",
270
- "COLUMN_NAME": "update_" + form.bs,
271
- "DATA_TYPE": "varchar",
272
- "DEFAULT": '1',
273
- "CHARACTER_MAXIMUM_LENGTH": 64,
274
- "IS_NULLABLE": "YES",
275
- "COLUMN_DEFAULT": ""
276
- },
277
- {
278
- "COLUMN_COMMENT": "创建时间",
279
- "COLUMN_TYPE": "timestamp",
280
- "COLUMN_NAME": "create_time",
281
- "DATA_TYPE": "timestamp",
282
- "DEFAULT": '1',
283
- "CHARACTER_MAXIMUM_LENGTH": null,
284
- "IS_NULLABLE": "NO",
285
- "COLUMN_DEFAULT": "CURRENT_TIMESTAMP"
286
- },
287
- {
288
- "COLUMN_COMMENT": "更新时间",
289
- "COLUMN_TYPE": "timestamp",
290
- "COLUMN_NAME": "update_time",
291
- "DATA_TYPE": "timestamp",
292
- "DEFAULT": '1',
293
- "CHARACTER_MAXIMUM_LENGTH": null,
294
- "IS_NULLABLE": "NO",
295
- "COLUMN_DEFAULT": "CURRENT_TIMESTAMP"
296
- },
297
- {
298
- "COLUMN_COMMENT": "备注",
299
- "COLUMN_TYPE": "varchar(255)",
300
- "COLUMN_NAME": "remark",
301
- "DEFAULT": '1',
302
- "DATA_TYPE": "varchar",
303
- "CHARACTER_MAXIMUM_LENGTH": 255,
304
- "IS_NULLABLE": "YES",
305
- "COLUMN_DEFAULT": null
306
- }
307
- ];
308
- let filedMap = {};
309
- for (let d of data) {
310
- filedMap[d.COLUMN_NAME] = d;
311
- }
312
- if ("1" != this.DBForm.tableDefault) {
313
- let baseData = []
314
- for (let obj of this.gridOptions.data) {
315
- if (obj.COLUMN_NAME) {
316
- if (!filedMap[obj.COLUMN_NAME.toString().toLowerCase()]) {
317
- baseData.push(obj);
318
- }
319
- } else {
320
- baseData.push(obj);
321
- }
322
- }
323
- this.gridOptions.data = baseData;
324
- } else {
325
- for (let obj of this.gridOptions.data) {
326
- obj.COLUMN_NAME && filedMap[obj.COLUMN_NAME.toString().toLowerCase()] && delete filedMap[obj.COLUMN_NAME.toString().toLowerCase()];
327
- }
328
- this.gridOptions.data = [...Object.values(filedMap), ...this.gridOptions.data]
329
- }
330
- },
331
- checkbox() {
332
- let IS_NULLABLE = true;
333
- for (let data of this.gridOptions.data) {
334
- if (data.IS_NULLABLE == "NO") {
335
- IS_NULLABLE = false;
336
- break
337
- }
338
- }
339
- for (let column of this.gridOptions.columns) {
340
- if (column.field == 'IS_NULLABLE') {
341
- column.params.all = IS_NULLABLE;
342
- }
343
- }
344
- },
345
- headerClick(e) {
346
- for (let i = 0; i < this.gridOptions.data.length; i++) {
347
- let data = this.gridOptions.data[i];
348
- if (i > 5) {
349
- data.IS_NULLABLE = e.params.all ? "YES" : "NO"
350
- }
351
- }
352
- },
353
- async removeRow(r, remove) {
354
- if (remove) {
355
- let type = await this.$confirm('数据删除后不可恢复,您确定要删除吗?', '删除提示', 'error')
356
- if (type != "cancel") {
357
- this.gridOptions.data[r].delete = 1;
358
- }
359
- } else {
360
- delete this.gridOptions.data[r].delete
361
- }
362
- this.update();
363
- },
364
- update() {
365
- let data = this.gridOptions.data[this.gridOptions.data.length - 1];
366
- if (!data || (data.COLUMN_COMMENT && data.COLUMN_COMMENT.toString().length != 0)) {
367
- this.gridOptions.data.push({
368
- IS_NULLABLE: 'NO',
369
- COLUMN_TYPE: 'varchar(100)',
370
- CHARACTER_MAXIMUM_LENGTH: '100',
371
- DATA_TYPE: 'varchar',
372
- });
373
- }
374
- this.updateType();
375
- },
376
- updateType() {
377
- for (let i = 0; i < this.gridOptions.data.length - 1; i++) {
378
- let datum = this.gridOptions.data[i];
379
- if (datum.CHARACTER_MAXIMUM_LENGTH) {
380
- datum.COLUMN_TYPE = datum.DATA_TYPE + "(" + datum.CHARACTER_MAXIMUM_LENGTH + ")";
381
- } else {
382
- datum.COLUMN_TYPE = datum.DATA_TYPE;
383
- }
384
- }
385
- },
386
- initConfigDict() {
387
- this.oraOptions = this.dict.val('ora_col_type');
388
- this.mysqlOptions = this.dict.val('mysql_col_type');
389
- },
390
- },
391
- created() {
392
- this.initConfigDict()
393
- }
394
- }
395
- </script>