imatrix-ui 2.8.21 → 2.8.22-boe10

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 (177) hide show
  1. package/lib/super-ui.css +1 -1
  2. package/lib/super-ui.umd.min.js +5 -5
  3. package/package.json +2 -2
  4. package/src/api/sso-service.js +19 -1
  5. package/src/i18n/langs/cn.js +13 -3
  6. package/src/i18n/langs/en.js +15 -4
  7. package/src/router/index.js +10 -0
  8. package/src/store/modules/tab-content.js +6 -0
  9. package/src/store/modules/user.js +19 -0
  10. package/src/styles/index.scss +72 -2
  11. package/src/styles/theme/black/font-style.scss +70 -0
  12. package/src/styles/theme/black/index.scss +6 -30
  13. package/src/styles/theme/blue/font-style.scss +37 -0
  14. package/src/styles/theme/blue/index.scss +2 -18
  15. package/src/styles/theme/blue2/font-style.scss +70 -0
  16. package/src/styles/theme/blue2/index.scss +3 -13
  17. package/src/styles/theme/dark-blue/index.scss +27 -5
  18. package/src/styles/theme/dark-blue/message.scss +8 -0
  19. package/src/styles/theme/dark-blue/sidebar.scss +7 -37
  20. package/src/styles/theme/dark-blue/table.scss +1 -1
  21. package/src/styles/theme/gray/card-style.scss +13 -1
  22. package/src/styles/theme/gray/font-style.scss +38 -0
  23. package/src/styles/theme/gray/index.scss +13 -25
  24. package/src/styles/theme/gray/scrollbar-style.scss +32 -0
  25. package/src/styles/theme/gray/sidebar.scss +5 -0
  26. package/src/utils/auth-api.js +45 -1
  27. package/src/utils/common-util.js +28 -0
  28. package/src/utils/range-selector.js +185 -0
  29. package/src/utils/request.js +5 -2
  30. package/src/utils/util.js +7 -5
  31. package/src/views/dsc-component/Sidebar/Item.vue +4 -2
  32. package/src/views/dsc-component/Sidebar/SidebarItem.vue +1 -2
  33. package/src/views/dsc-component/Sidebar/index.vue +12 -20
  34. package/src/views/dsc-component/tabs/tab-content.vue +1 -5
  35. package/src/views/layout/NewLayout.vue +6 -65
  36. package/src/views/layout/components/Menubar/Item.vue +23 -7
  37. package/src/views/layout/components/Menubar/Link.vue +11 -2
  38. package/src/views/layout/components/Menubar/SidebarItem.vue +50 -7
  39. package/src/views/layout/components/Menubar/index.vue +51 -16
  40. package/src/views/layout/components/tabs/tab-content.vue +160 -0
  41. package/src/views/layout/tab-content-iframe-index.vue +31 -0
  42. package/src/views/layout/tab-content-index.vue +85 -0
  43. package/packages/breadcrumb/index.js +0 -6
  44. package/packages/breadcrumb/src/breadcrumb.vue +0 -71
  45. package/packages/department-tree/index.js +0 -6
  46. package/packages/department-tree/src/department-tree.vue +0 -108
  47. package/packages/department-tree-inline/index.js +0 -6
  48. package/packages/department-tree-inline/src/department-multi-tree-inline.vue +0 -402
  49. package/packages/department-tree-inline/src/department-single-tree-inline.vue +0 -284
  50. package/packages/department-tree-inline/src/department-tree-inline.vue +0 -86
  51. package/packages/department-tree-inline/src/department-tree-service.js +0 -245
  52. package/packages/department-tree-inline/src/search-result.vue +0 -176
  53. package/packages/department-user-tree/index.js +0 -6
  54. package/packages/department-user-tree/src/department-user-multiple-tree.vue +0 -116
  55. package/packages/department-user-tree/src/department-user-single-tree.vue +0 -76
  56. package/packages/department-user-tree/src/department-user-tree.vue +0 -101
  57. package/packages/department-user-tree-inline/index.js +0 -6
  58. package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +0 -626
  59. package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +0 -269
  60. package/packages/department-user-tree-inline/src/department-user-tree-inline.vue +0 -79
  61. package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +0 -230
  62. package/packages/department-user-tree-inline/src/department-user-tree-single-service.js +0 -122
  63. package/packages/department-user-tree-inline/src/search-result.vue +0 -197
  64. package/packages/directives/prevent-reclick.js +0 -19
  65. package/packages/dynamic-source-select/index.js +0 -6
  66. package/packages/dynamic-source-select/src/dynamic-source-select-service.js +0 -70
  67. package/packages/dynamic-source-select/src/dynamic-source-select.vue +0 -440
  68. package/packages/dynamic-source-select/src/events.js +0 -55
  69. package/packages/fs-preview/index.js +0 -6
  70. package/packages/fs-preview/src/fs-preview.vue +0 -226
  71. package/packages/fs-upload/index.js +0 -6
  72. package/packages/fs-upload/src/fs-upload-multi.vue +0 -420
  73. package/packages/fs-upload/src/fs-upload-single.vue +0 -312
  74. package/packages/fs-upload/src/fs-upload.vue +0 -189
  75. package/packages/fs-upload/src/see-big-picture.vue +0 -55
  76. package/packages/fs-upload-list/index.js +0 -6
  77. package/packages/fs-upload-list/src/fs-upload-list.vue +0 -287
  78. package/packages/hamburger/index.js +0 -6
  79. package/packages/hamburger/src/hamburger.vue +0 -38
  80. package/packages/index.js +0 -121
  81. package/packages/multipart-upload/index.js +0 -6
  82. package/packages/multipart-upload/src/index.vue +0 -73
  83. package/packages/multipart-upload/src/multipart-upload-form.vue +0 -297
  84. package/packages/multipart-upload/src/multipart-upload-list.vue +0 -378
  85. package/packages/organization-input/index.js +0 -6
  86. package/packages/organization-input/src/organization-input.vue +0 -542
  87. package/packages/plugins/export-data-new.js +0 -453
  88. package/packages/plugins/export-data.js +0 -361
  89. package/packages/plugins/index.js +0 -15
  90. package/packages/plugins/public-method.js +0 -43
  91. package/packages/remove-department/index.js +0 -6
  92. package/packages/remove-department/src/remove-department.vue +0 -172
  93. package/packages/remove-department/src/remove-dept-service.js +0 -20
  94. package/packages/remove-user/index.js +0 -6
  95. package/packages/remove-user/src/remove-user-service.js +0 -20
  96. package/packages/remove-user/src/remove-user.vue +0 -195
  97. package/packages/remove-workgroup/index.js +0 -6
  98. package/packages/remove-workgroup/src/remove-workgroup-service.js +0 -20
  99. package/packages/remove-workgroup/src/remove-workgroup.vue +0 -159
  100. package/packages/rich-editor/index.js +0 -7
  101. package/packages/rich-editor/index.vue +0 -278
  102. package/packages/rich-editor/langs/zh-Hans.js +0 -1
  103. package/packages/rich-editor/viewer.vue +0 -103
  104. package/packages/scan-code-input/index.js +0 -6
  105. package/packages/scan-code-input/src/events.js +0 -33
  106. package/packages/scan-code-input/src/scan-code-input-colse.vue +0 -131
  107. package/packages/scan-code-input/src/scan-code-input.vue +0 -116
  108. package/packages/secret-info/index.js +0 -7
  109. package/packages/secret-info/index.vue +0 -90
  110. package/packages/super-grid/index.js +0 -7
  111. package/packages/super-grid/src/apis.js +0 -763
  112. package/packages/super-grid/src/columns-config.vue +0 -335
  113. package/packages/super-grid/src/custom-formatter.js +0 -250
  114. package/packages/super-grid/src/dynamic-input.vue +0 -1279
  115. package/packages/super-grid/src/eventBus.js +0 -2
  116. package/packages/super-grid/src/events.js +0 -55
  117. package/packages/super-grid/src/formValidatorUtil.js +0 -226
  118. package/packages/super-grid/src/formatter.js +0 -181
  119. package/packages/super-grid/src/group-column.vue +0 -100
  120. package/packages/super-grid/src/header-context-menu.vue +0 -87
  121. package/packages/super-grid/src/index-column.vue +0 -51
  122. package/packages/super-grid/src/normal-column.vue +0 -769
  123. package/packages/super-grid/src/public-methods.js +0 -31
  124. package/packages/super-grid/src/row-operation.vue +0 -161
  125. package/packages/super-grid/src/search-button.vue +0 -66
  126. package/packages/super-grid/src/search-condition-input.vue +0 -61
  127. package/packages/super-grid/src/search-condition-list.vue +0 -59
  128. package/packages/super-grid/src/search-form-advancedQuery.vue +0 -653
  129. package/packages/super-grid/src/search-form-dialog.vue +0 -79
  130. package/packages/super-grid/src/search-form-item.vue +0 -386
  131. package/packages/super-grid/src/search-form-number.vue +0 -38
  132. package/packages/super-grid/src/search-form-open.vue +0 -162
  133. package/packages/super-grid/src/search-form-ordinarySearch.vue +0 -188
  134. package/packages/super-grid/src/search-form.vue +0 -634
  135. package/packages/super-grid/src/search-methods.js +0 -387
  136. package/packages/super-grid/src/selection-column.vue +0 -43
  137. package/packages/super-grid/src/store.js +0 -3
  138. package/packages/super-grid/src/super-grid-service.js +0 -561
  139. package/packages/super-grid/src/super-grid.vue +0 -2793
  140. package/packages/super-grid/src/utils.js +0 -763
  141. package/packages/super-grid/src/view-image-dialog.vue +0 -130
  142. package/packages/super-nine-grid/index.js +0 -7
  143. package/packages/super-nine-grid/src/apis.js +0 -103
  144. package/packages/super-nine-grid/src/custom-formatter.js +0 -66
  145. package/packages/super-nine-grid/src/formatter.js +0 -132
  146. package/packages/super-nine-grid/src/search-form-number.vue +0 -38
  147. package/packages/super-nine-grid/src/search-form.vue +0 -430
  148. package/packages/super-nine-grid/src/search-methods.js +0 -134
  149. package/packages/super-nine-grid/src/store.js +0 -3
  150. package/packages/super-nine-grid/src/super-grid-service.js +0 -91
  151. package/packages/super-nine-grid/src/super-nine-grid.vue +0 -872
  152. package/packages/super-nine-grid/src/utils.js +0 -261
  153. package/packages/svg-icon/index.js +0 -6
  154. package/packages/svg-icon/src/svg-icon.vue +0 -43
  155. package/packages/utils/utils.js +0 -152
  156. package/packages/utils/value-set.js +0 -86
  157. package/packages/valid-code/index.js +0 -7
  158. package/packages/valid-code/src/valid-code.vue +0 -95
  159. package/packages/workflow-button/index.js +0 -6
  160. package/packages/workflow-button/src/workflow-button.vue +0 -325
  161. package/packages/workflow-history-list/index.js +0 -6
  162. package/packages/workflow-history-list/src/api.js +0 -7
  163. package/packages/workflow-history-list/src/workflow-history-list.vue +0 -185
  164. package/packages/workgroup-tree/index.js +0 -6
  165. package/packages/workgroup-tree/src/workgroup-tree.vue +0 -76
  166. package/packages/workgroup-tree-inline/index.js +0 -6
  167. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +0 -317
  168. package/packages/workgroup-tree-inline/src/workgroup-tree-service.js +0 -43
  169. package/packages/workgroup-user-tree/index.js +0 -6
  170. package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +0 -100
  171. package/packages/workgroup-user-tree-inline/index.js +0 -6
  172. package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +0 -163
  173. package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +0 -436
  174. package/packages/year-range-picker/index.js +0 -6
  175. package/packages/year-range-picker/src/year-range-picker.vue +0 -51
  176. package/src/index.js +0 -93
  177. package/src/styles/theme/gray/form-style.scss +0 -41
@@ -1,634 +0,0 @@
1
- <template>
2
- <div>
3
- <search-condition-list
4
- v-if="searchConditions.length > 0"
5
- ref="searchConditionList"
6
- :search-type="searchType"
7
- :search-conditions="searchConditions"
8
- @remove-condition="removeCondition"
9
- @select-condition="selectCondition"
10
- />
11
- <search-form-ordinarySearch
12
- v-if="searchType === 'normal'"
13
- ref="searchFormOrdinarySearch"
14
- :searchable-columns="searchableColumns"
15
- :search-form="searchForm"
16
- :field-num="fieldNum"
17
- :label-width="labelWidth"
18
- :query="query"
19
- :code="code"
20
- :row-num="rowNum"
21
- :span-num="spanNum"
22
- :rules="rules"
23
- :is-sql="isSql"
24
- @submit-form="submitForm('searchForm')"
25
- @reset-form="resetForm('searchForm')"
26
- @save-condition="saveCondition()"
27
- @open-fold="openFold"
28
- />
29
- <search-form-advancedQuery
30
- v-if="searchType === 'advanced'"
31
- ref="searchFormAdvancedQuery"
32
- style="padding-bottom:10px"
33
- :code="code"
34
- :searchable-columns="advancedQueryColumns"
35
- :search-form-list="searchFormList"
36
- :prop-map="propMap"
37
- :is-sql="isSql"
38
- @resetForm="resetSearchFormList"
39
- />
40
- <div v-if="searchType === 'advanced'" style="padding-top:10px;padding-bottom:10px;text-align: center">
41
- <el-button :loading="loading" type="primary" size="mini" @click="submitForm('searchForm')">
42
- {{ $t('imatrixUIPublicModel.sure') }}
43
- </el-button>
44
- <el-button :loading="loading" size="mini" @click="resetForm('searchForm')">
45
- {{ $t('imatrixUIPublicModel.reset') }}
46
- </el-button>
47
- <el-button size="mini" @click="saveCondition">
48
- {{ $t('superGrid.saveCondition') }}
49
- </el-button>
50
- <span v-if="advancedQuery !== null && advancedQuery!== undefined && advancedQuery === true && normalQuery !== null && normalQuery!== undefined && normalQuery === true" style="margin-left:10px">
51
- <el-button v-if="searchType === 'advanced'" size="mini" @click="searchType = 'normal'">
52
- {{ $t('imatrixUIPublicModel.switchToNormalQuery') }}
53
- </el-button>
54
- <el-button v-if="searchType === 'normal'" size="mini" @click="searchType = 'advanced'">
55
- {{ $t('imatrixUIPublicModel.switchToAdvancedQuery') }}
56
- </el-button>
57
- </span>
58
- </div>
59
- <search-condition-input v-if="isShowSearchCondition" @close="saveConditionValue" />
60
- </div>
61
- </template>
62
- <style scoped>
63
- .grid-search-form{
64
- overflow: auto;
65
- }
66
- .grid-search-form >>> .el-form-item{
67
- margin-bottom: 0px;
68
- }
69
-
70
- .grid-search-form >>> .search-btn{
71
- margin-bottom: 5px;
72
- text-align: center;
73
- }
74
- .grid-search-form >>> .el-select,.grid-search-form >>> .customComponent{
75
- width: 100%;
76
- }
77
- </style>
78
- <script>
79
- import searchMethods from './search-methods'
80
- // import searchFormNumber from './search-form-number'
81
- import searchFormOrdinarySearch from './search-form-ordinarySearch'
82
- // import searchFormAdvancedQuery from './search-form-advancedQuery'
83
- import store from './store'
84
- // import { isOptionFunction, getSearchObject } from './utils'
85
- import { addDynamicProp, addDynamicPropDateSection } from './utils'
86
- import Vue from 'vue'
87
- import SearchConditionInput from './search-condition-input'
88
- import SearchConditionList from './search-condition-list'
89
- export default {
90
- name: 'SearchForm',
91
- components: {
92
- // searchFormNumber,
93
- SearchConditionInput,
94
- SearchConditionList,
95
- searchFormOrdinarySearch
96
- // searchFormAdvancedQuery
97
- },
98
- props: {
99
- columns: {
100
- type: Array,
101
- default: null
102
- },
103
- code: {
104
- type: String,
105
- default: null
106
- },
107
- url: {
108
- type: String,
109
- default: null
110
- },
111
- pagination: {
112
- type: Object,
113
- default: null
114
- },
115
- query: {
116
- type: Object,
117
- default: null
118
- },
119
- searchParam: {
120
- type: Object,
121
- default: null
122
- },
123
- initSearchProps: {
124
- type: Array,
125
- default: null
126
- },
127
- isSql: {
128
- type: Boolean,
129
- default: false
130
- },
131
- searchFormInfo: {
132
- type: Object,
133
- default: () => {
134
- return {}
135
- }
136
- }
137
-
138
- },
139
- data() {
140
- const customComponentNames = new Set()
141
- const gridParams = store.get(this.code)
142
- const propMap = {}
143
- let searchForm = {}
144
- if (this.searchParam !== null) {
145
- searchForm = JSON.parse(JSON.stringify(this.searchParam))
146
- }
147
- const searchColumns = this.getSearchableColumns(null, null, propMap)
148
- if (this.initSearchProps === undefined || this.initSearchProps === null) {
149
- this.initSearchProps = []
150
- }
151
- console.log('searchForm=', searchColumns)
152
- searchColumns.forEach(column => {
153
- // propMap[column.prop] = column
154
- if (this.initSearchProps.indexOf(column.prop) < 0) {
155
- // 表示没有默认初始查询字段
156
- if (column.prop && column.prop.indexOf('.') > 0) {
157
- if (column.componentType === 'dateSection') {
158
- addDynamicPropDateSection(searchForm, column.prop)
159
- } else {
160
- // 动态给searchForm添加属性,包括多级嵌套属性,属性的初始值都为 null
161
- addDynamicProp(searchForm, column.prop)
162
- }
163
- } else {
164
- if (column.componentType === 'dateSection') {
165
- searchForm[column.prop] = [new Date(), new Date()]
166
- } else if (column.componentType === 'yearRange') {
167
- searchForm[column.prop] = ['', '']
168
- } else {
169
- searchForm[column.prop] = null
170
- }
171
- }
172
- }
173
- })
174
- const spanNum = this.getSpanNum()
175
- const fieldNum = this.getFieldNumPerRow()
176
- const rowNum = Math.ceil(searchColumns.length / fieldNum)
177
- const advancedQuery = this.query.advancedQuery
178
- const normalQuery = this.query.normalQuery
179
- // console.log('searchColumns.length=' + searchColumns.length + ',fieldNum=' + fieldNum + ',rowNum=' + rowNum)
180
- // // -2是把
181
- // const dateSpanNum = (spanNum - 2) / 2
182
-
183
- return {
184
- searchForm,
185
- rules: {
186
-
187
- },
188
- searchParams: [],
189
- labelWidth: gridParams.options.search && gridParams.options.search.labelWidth ? gridParams.options.search.labelWidth : '80px',
190
- customComponentNames: customComponentNames,
191
- componentName: '',
192
- spanNum: spanNum,
193
- fieldNum: fieldNum, // 每行放的字段个数
194
- rowNum: rowNum, // 一共有几行
195
- loading: false, // 是否正在查询,默认时否
196
- isShowSearchCondition: false,
197
- searchConditions: [],
198
- propMap,
199
- advancedQuery,
200
- normalQuery,
201
- searchFormList: [],
202
- searchType: null
203
- }
204
- },
205
- computed: {
206
- searchableColumns() {
207
- return this.getSearchableColumns()
208
- },
209
- advancedQueryColumns() {
210
- return this.getAdvancedQueryColumns()
211
- }
212
- },
213
- watch: {
214
- searchForm: {
215
- deep: true,
216
- handler(val) {
217
- this.$set(this.searchFormInfo, 'data', val)
218
- }
219
- }
220
- },
221
- created() {
222
- console.log('加载查询页面', this.searchType)
223
- this.listSearchConditions()
224
- if (this.normalQuery) {
225
- this.searchType = 'normal'
226
- } else if (this.advancedQuery) {
227
- this.searchType = 'advanced'
228
- }
229
- },
230
- methods: {
231
- ...searchMethods,
232
- // 每行放的字段个数
233
- getFieldNumPerRow() {
234
- const gridParams = store.get(this.code)
235
- return gridParams.options.search && gridParams.options.search.fieldNum ? gridParams.options.search.fieldNum : 3
236
- },
237
- // 根据每行显示的字段个数,确定栅栏个数,默认是4个字段。最多就只能放6个字段
238
- getSpanNum() {
239
- const fieldNum = this.getFieldNumPerRow()
240
- if (fieldNum === 1) {
241
- return 22
242
- } else if (fieldNum === 2) {
243
- return 10
244
- } else if (fieldNum === 3) {
245
- return 8
246
- } else if (fieldNum === 4) {
247
- return 6
248
- } else {
249
- // 6个字段
250
- return 4
251
- }
252
- },
253
- setValueToModelProp(prop, value, componentName, index) {
254
- if (prop && prop.indexOf('.') > 0) {
255
- const parentOjbect = this.getParentObject(prop)
256
- // 嵌套属性中的最后一个属性是属于这个中间父对象的,所有要通过中间父对象来赋值
257
- if (index != null && index !== undefined) {
258
- // parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)][index] = value
259
- this.$set(parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)], index, value)
260
- } else {
261
- parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)] = value
262
- }
263
- } else {
264
- if (index != null && index !== undefined) {
265
- this.$set(this.searchForm[prop], index, value)
266
- } else {
267
- this.searchForm[prop] = value
268
- }
269
- }
270
- },
271
- getAdvancedQueryColumns(columns, searchColumns, propMap) {
272
- if (!this.customComponentNames) {
273
- this.customComponentNames = new Set()
274
- }
275
- if (!searchColumns) {
276
- searchColumns = []
277
- }
278
- if (!columns) {
279
- columns = this.columns
280
- }
281
- for (let i = 0; i < columns.length; i++) {
282
- const column = columns[i]
283
- if (propMap) {
284
- propMap[column.prop] = column
285
- }
286
- if (column.prop === '$index' || column.prop === '$selection' || column.dynamic) {
287
- // 序号和复选框列、动态列 不属于该组件的查询字段
288
- continue
289
- }
290
- if (column.groupHeader) {
291
- // 组合表头中子表头的字段查询
292
- this.getSearchableColumns(column.children, searchColumns, propMap)
293
- } else {
294
- if (column.queryType === 'advanced' && !column.custom && column.prop !== '') {
295
- // 表示是普通查询,且不是占位符列,是查询字段
296
- if (typeof (column.componentType) === 'undefined' || column.componentType === '') {
297
- column.componentType = 'input'
298
- }
299
- if (column.querySetting && column.querySetting !== '') {
300
- const querySetting = JSON.parse(column.querySetting)
301
- if (querySetting.width) {
302
- column.searchControlWidth = 'width:' + querySetting.width + 'px'
303
- }
304
- if (querySetting.labelWidth) {
305
- column.searchLabelWidth = querySetting.labelWidth + 'px'
306
- }
307
- if (querySetting.label) {
308
- column.searchLabel = querySetting.label
309
- }
310
- }
311
- // 行编辑时自定义编辑组件
312
- if (column.componentType && column.componentType.indexOf('custom:') >= 0) {
313
- column.componentName = column.componentType.substring(column.componentType.indexOf(':') + 1)
314
- this.customComponentNames.add(column.componentName)
315
- } else {
316
- column.componentName = ''
317
- }
318
- // this.$set(this.propMap, column.prop, column)
319
- // this.propMap[column.prop] = column
320
- searchColumns.push(column)
321
- }
322
- }
323
- }
324
- return searchColumns
325
- },
326
- getSearchableColumns(columns, searchColumns, propMap) {
327
- if (!this.customComponentNames) {
328
- this.customComponentNames = new Set()
329
- }
330
- if (!searchColumns) {
331
- searchColumns = []
332
- }
333
- if (!columns) {
334
- columns = this.columns
335
- }
336
- for (let i = 0; i < columns.length; i++) {
337
- const column = columns[i]
338
- if (propMap) {
339
- propMap[column.prop] = column
340
- }
341
- if (column.prop === '$index' || column.prop === '$selection' || column.dynamic) {
342
- // 序号和复选框列、动态列 不属于该组件的查询字段
343
- continue
344
- }
345
- if (column.groupHeader) {
346
- // 组合表头中子表头的字段查询
347
- this.getSearchableColumns(column.children, searchColumns, propMap)
348
- } else {
349
- if (column.queryType === 'normal' && !column.custom && column.prop !== '') {
350
- // 表示是普通查询,且不是占位符列,是查询字段
351
- if (typeof (column.componentType) === 'undefined' || column.componentType === '') {
352
- column.componentType = 'input'
353
- }
354
- if (column.querySetting && column.querySetting !== '') {
355
- const querySetting = JSON.parse(column.querySetting)
356
- if (querySetting.width) {
357
- column.searchControlWidth = 'width:' + querySetting.width + 'px'
358
- }
359
- if (querySetting.labelWidth) {
360
- column.searchLabelWidth = querySetting.labelWidth + 'px'
361
- }
362
- if (querySetting.label) {
363
- column.searchLabel = querySetting.label
364
- }
365
- }
366
- // 行编辑时自定义编辑组件
367
- if (column.componentType && column.componentType.indexOf('custom:') >= 0) {
368
- column.componentName = column.componentType.substring(column.componentType.indexOf(':') + 1)
369
- this.customComponentNames.add(column.componentName)
370
- } else {
371
- column.componentName = ''
372
- }
373
- // this.$set(this.propMap, column.prop, column)
374
- // this.propMap[column.prop] = column
375
- searchColumns.push(column)
376
- }
377
- }
378
- }
379
- return searchColumns
380
- },
381
- customComponent(column) {
382
- const gridParams = store.get(this.code)
383
- if (column.componentName && column.componentName !== '') {
384
- this.customComponentNames.add(column.componentName)
385
- return true
386
- }
387
- if ((!column.componentName || column.componentName === '') &&
388
- gridParams.options &&
389
- gridParams.options.search &&
390
- gridParams.options.search.customSearchElements) {
391
- // 定义了自定义查询组件
392
- const propSearchEle = gridParams.options.search.customSearchElements[column.prop]
393
- // console.log('customComponent-customSearchElements-propSearchEle-', column.prop)
394
- if (propSearchEle) {
395
- column.componentName = 'custom-' + column.prop
396
- const component = propSearchEle.call(this, column)
397
- // console.log('customComponent-customSearchElements-')
398
- if (component) {
399
- this.customComponentNames.add(column.componentName)
400
- Vue.component(column.componentName, component)
401
- return true
402
- }
403
- }
404
- }
405
- return false
406
- },
407
- submitForm() {
408
- if (this.searchType === 'normal') {
409
- this.$refs.searchFormOrdinarySearch.validateForm().then(valid => {
410
- if (valid) {
411
- // this.loading = true
412
- this.searchParams = this.packageSearchParam()
413
- this.$emit('search', this.searchParams)
414
- } else {
415
- return false
416
- }
417
- })
418
- } else if (this.searchType === 'advanced') {
419
- this.$refs.searchFormAdvancedQuery.validateForm().then(valid => {
420
- if (valid) {
421
- this.loading = true
422
- this.searchParams = this.packageSearchParam()
423
- this.$emit('search', this.searchParams)
424
- } else {
425
- return false
426
- }
427
- })
428
- }
429
- },
430
- resetForm() {
431
- if (this.$refs.searchConditionList) {
432
- this.$refs.searchConditionList.editConditionId = null
433
- }
434
- if (this.searchType === 'normal') {
435
- this.$refs.searchFormOrdinarySearch.resetForm()
436
- } else if (this.searchType === 'advanced') {
437
- this.$refs.searchFormAdvancedQuery.resetForm()
438
- }
439
- this.$emit('reset')
440
- },
441
- setNumberValue(value, r, n) {
442
- let itemValue = this.getFormItemValue(this.searchableColumns[this.fieldNum * (r - 1) + (n - 1)].prop)
443
- itemValue = value
444
- this.setValueToModelProp(this.searchableColumns[this.fieldNum * (r - 1) + (n - 1)].prop, itemValue)
445
- },
446
- listSearchConditions() {
447
- return new Promise((resolve, reject) => {
448
- this.listSearchCondition(this.code).then((conditions) => {
449
- this.searchConditions = conditions
450
- resolve(conditions)
451
- }).catch(error => {
452
- reject(error)
453
- })
454
- })
455
- },
456
- saveCondition() {
457
- const searchParams = this.packageSearchParam()
458
- if (!searchParams || searchParams.length === 0) {
459
- this.$message({
460
- type: 'warning',
461
- message: this.$t('imatrixUIMessage.pleaseInputSearchCondition'),
462
- showClose: true
463
- })
464
- return
465
- }
466
- this.isShowSearchCondition = true
467
- },
468
- saveConditionValue(conditionName) {
469
- if (conditionName) {
470
- let searchParams
471
- if (this.searchType === 'normal' || this.searchType === '' || this.searchType === null || this.searchType === undefined) {
472
- searchParams = this.packageSearchParam()
473
- } else {
474
- searchParams = this.searchFormList
475
- }
476
- const condition = {
477
- listCode: this.code,
478
- queryType: this.searchType === 'normal' || this.searchType === '' || this.searchType === null || this.searchType === undefined ? 'FIXED' : 'CUSTOM',
479
- name: conditionName,
480
- queryCondition: JSON.stringify(searchParams)
481
- }
482
- this.saveSearchCondition(condition).then((condition) => {
483
- this.$message({
484
- type: 'success',
485
- message: this.$t('imatrixUIMessage.saveSuccessfully'),
486
- showClose: true
487
- })
488
- this.isShowSearchCondition = false
489
- this.listSearchConditions().then(() => {
490
- if (this.$refs.searchConditionList) {
491
- // 选中刚刚保存的条件
492
- this.$refs.searchConditionList.editConditionId = condition.id + ''
493
- }
494
- // 查询条件对应的数据
495
- this.selectCondition(condition.id)
496
- })
497
- })
498
- }
499
- this.isShowSearchCondition = false
500
- },
501
- removeCondition(conditionId) {
502
- if (conditionId) {
503
- this.$confirm(this.$t('imatrixUIMessage.whetherToConfirmDeletion'), this.$t('imatrixUIMessage.tips'), {
504
- confirmButtonText: this.$t('imatrixUIPublicModel.sure'),
505
- cancelButtonText: this.$t('imatrixUIPublicModel.cancel'),
506
- type: 'warning'
507
- }).then(() => {
508
- this.removeSearchCondition(conditionId).then(() => {
509
- this.$message({
510
- type: 'success',
511
- message: this.$t('superGrid.deleteSuccessful'),
512
- showClose: true
513
- })
514
- this.listSearchConditions()
515
- })
516
- })
517
- }
518
- },
519
- selectCondition(conditionId) {
520
- if (conditionId) {
521
- this.getSearchCondition(conditionId).then((searchCondition) => {
522
- if (searchCondition) {
523
- const queryCondition = searchCondition.queryCondition
524
- if (queryCondition) {
525
- if (this.searchType === 'normal' || this.searchType === '' || this.searchType === null || this.searchType === undefined) {
526
- const searchParams = JSON.parse(queryCondition)
527
- const searchForm = this.packageSearchForm(searchParams)
528
- if (searchForm) {
529
- this.searchForm = searchForm
530
- }
531
- // 查询数据
532
- this.loading = true
533
- this.$emit('search', searchParams)
534
- } else {
535
- this.searchFormList = JSON.parse(queryCondition)
536
- // 查询数据
537
- this.loading = true
538
- this.$emit('search', this.packageSearchParam())
539
- }
540
- }
541
- }
542
- })
543
- }
544
- },
545
- // 封装searchForm
546
- packageSearchForm(searchFormArr) {
547
- if (searchFormArr && searchFormArr.length > 0) {
548
- const searchForm = {}
549
- const initSearchProps = []
550
- searchFormArr.forEach(item => {
551
- // 获得的是"isDeleted"
552
- let prop = item.propName
553
- // 获得的是“deleted”
554
- const columnProp = item.columnProp
555
- const dataType = item.dataType
556
- if (dataType && dataType === 'BOOLEAN' && columnProp) {
557
- prop = columnProp
558
- }
559
- if (initSearchProps.indexOf(prop) === -1) {
560
- initSearchProps.push(prop)
561
- }
562
- const propValue = item.propValue
563
- if (prop && prop.indexOf('.') > 0) {
564
- // 动态给searchForm添加属性,包括多级嵌套属性,属性的初始值都为 null
565
- addDynamicProp(searchForm, prop, propValue)
566
- } else {
567
- let isRangeQueryValue = false
568
- if (dataType && (dataType === 'DATE' || dataType === 'TIME')) {
569
- if (item.startValue && item.endValue) {
570
- isRangeQueryValue = true
571
- }
572
- }
573
- if (isRangeQueryValue) {
574
- searchForm[prop] = [item.startValue, item.endValue]
575
- } else {
576
- if (searchForm[prop]) {
577
- if (searchForm[prop] instanceof Array) {
578
- searchForm[prop].push(propValue)
579
- } else {
580
- searchForm[prop] = [searchForm[prop], propValue]
581
- }
582
- } else {
583
- searchForm[prop] = propValue
584
- }
585
- }
586
- }
587
- })
588
-
589
- this.searchableColumns.forEach(column => {
590
- if (initSearchProps) {
591
- if (initSearchProps.indexOf(column.prop) < 0) {
592
- // 表示没有默认初始查询字段
593
- if (column.prop && column.prop.indexOf('.') > 0) {
594
- if (column.componentType === 'dateSection') {
595
- addDynamicPropDateSection(searchForm, column.prop)
596
- } else {
597
- // 动态给searchForm添加属性,包括多级嵌套属性,属性的初始值都为 null
598
- addDynamicProp(searchForm, column.prop)
599
- }
600
- } else {
601
- if (column.componentType === 'dateSection') {
602
- searchForm[column.prop] = [new Date(), new Date()]
603
- } else {
604
- searchForm[column.prop] = null
605
- }
606
- }
607
- } else {
608
- if (column.componentType === 'multiselect' && searchForm[column.prop]) {
609
- if (!(searchForm[column.prop] instanceof Array)) {
610
- searchForm[column.prop] = [searchForm[column.prop]]
611
- }
612
- }
613
- }
614
- }
615
- })
616
-
617
- return searchForm
618
- }
619
- },
620
- resetSearchFormList() {
621
- this.searchFormList = null
622
- },
623
- openFold(isOpen) {
624
- this.$emit('open-fold', isOpen)
625
- },
626
- // 查询完毕
627
- searchComplete() {
628
- if (this.$refs.searchFormOrdinarySearch) {
629
- this.$refs.searchFormOrdinarySearch.searchComplete()
630
- }
631
- }
632
- }
633
- }
634
- </script>