imatrix-ui 0.2.5-up → 0.2.7-up

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 (206) hide show
  1. package/README.md +7 -7
  2. package/index.html +13 -13
  3. package/lib/super-ui.css +1 -1
  4. package/lib/super-ui.js +2732 -1940
  5. package/lib/super-ui.umd.cjs +24 -24
  6. package/package.json +1 -1
  7. package/packages/IntervalSelection/index.js +6 -6
  8. package/packages/IntervalSelection/src/quarterScope.vue +405 -405
  9. package/packages/IntervalSelection/src/sectionDate.vue +475 -475
  10. package/packages/breadcrumb/index.js +6 -6
  11. package/packages/breadcrumb/src/breadcrumb.vue +81 -81
  12. package/packages/department-tree/index.js +6 -6
  13. package/packages/department-tree/src/department-tree.vue +113 -113
  14. package/packages/department-tree-inline/index.js +6 -6
  15. package/packages/department-tree-inline/src/department-multi-tree-inline.vue +472 -472
  16. package/packages/department-tree-inline/src/department-single-tree-inline.vue +340 -340
  17. package/packages/department-tree-inline/src/department-tree-inline.vue +86 -86
  18. package/packages/department-tree-inline/src/department-tree-service.js +344 -344
  19. package/packages/department-tree-inline/src/search-result.vue +235 -235
  20. package/packages/department-user-tree/index.js +6 -6
  21. package/packages/department-user-tree/src/department-user-multiple-tree.vue +129 -129
  22. package/packages/department-user-tree/src/department-user-single-tree.vue +94 -94
  23. package/packages/department-user-tree/src/department-user-tree.vue +114 -114
  24. package/packages/department-user-tree-inline/index.js +9 -9
  25. package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +731 -731
  26. package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +334 -334
  27. package/packages/department-user-tree-inline/src/department-user-tree-inline.vue +87 -87
  28. package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +309 -309
  29. package/packages/department-user-tree-inline/src/department-user-tree-single-service.js +179 -179
  30. package/packages/department-user-tree-inline/src/search-result.vue +273 -273
  31. package/packages/directives/prevent-reclick.js +22 -22
  32. package/packages/dynamic-source-select/index.js +6 -6
  33. package/packages/dynamic-source-select/src/dynamic-source-select-service.js +106 -106
  34. package/packages/dynamic-source-select/src/dynamic-source-select.vue +675 -675
  35. package/packages/dynamic-source-select/src/events.js +78 -78
  36. package/packages/fs-preview/index.js +6 -6
  37. package/packages/fs-preview/src/fs-preview.vue +287 -287
  38. package/packages/fs-upload/index.js +6 -6
  39. package/packages/fs-upload/src/fs-upload-multi.vue +443 -443
  40. package/packages/fs-upload/src/fs-upload-single.vue +353 -350
  41. package/packages/fs-upload/src/fs-upload.vue +191 -191
  42. package/packages/fs-upload/src/see-big-picture.vue +67 -67
  43. package/packages/fs-upload-list/index.js +6 -6
  44. package/packages/fs-upload-list/src/fs-upload-list.vue +372 -372
  45. package/packages/hamburger/index.js +6 -6
  46. package/packages/hamburger/src/hamburger.vue +40 -40
  47. package/packages/index.js +123 -123
  48. package/packages/multipart-upload/index.js +6 -6
  49. package/packages/multipart-upload/src/index.vue +66 -66
  50. package/packages/multipart-upload/src/multipart-upload-form.vue +377 -377
  51. package/packages/multipart-upload/src/multipart-upload-list.vue +517 -517
  52. package/packages/organization-input/index.js +6 -6
  53. package/packages/organization-input/src/organization-input.vue +583 -583
  54. package/packages/plugins/export-data-new.js +623 -623
  55. package/packages/plugins/export-data.js +431 -431
  56. package/packages/plugins/index.js +15 -15
  57. package/packages/plugins/public-method.js +47 -47
  58. package/packages/remove-department/index.js +6 -6
  59. package/packages/remove-department/src/remove-department.vue +200 -200
  60. package/packages/remove-department/src/remove-dept-service.js +31 -31
  61. package/packages/remove-user/index.js +6 -6
  62. package/packages/remove-user/src/remove-user-service.js +31 -31
  63. package/packages/remove-user/src/remove-user.vue +226 -226
  64. package/packages/remove-workgroup/index.js +6 -6
  65. package/packages/remove-workgroup/src/remove-workgroup-service.js +31 -31
  66. package/packages/remove-workgroup/src/remove-workgroup.vue +183 -183
  67. package/packages/rich-editor/index.js +7 -7
  68. package/packages/rich-editor/index.vue +297 -297
  69. package/packages/rich-editor/langs/zh-Hans.js +438 -438
  70. package/packages/rich-editor/viewer.vue +105 -105
  71. package/packages/scan-code-input/index.js +6 -6
  72. package/packages/scan-code-input/src/events.js +34 -34
  73. package/packages/scan-code-input/src/scan-code-input-colse.vue +140 -140
  74. package/packages/scan-code-input/src/scan-code-input.vue +132 -132
  75. package/packages/secret-info/index.js +7 -7
  76. package/packages/secret-info/index.vue +100 -100
  77. package/packages/super-grid/index.js +7 -7
  78. package/packages/super-grid/src/apis.js +1092 -1092
  79. package/packages/super-grid/src/columns-config.vue +427 -427
  80. package/packages/super-grid/src/custom-formatter.js +394 -394
  81. package/packages/super-grid/src/eventBus.js +2 -2
  82. package/packages/super-grid/src/events.js +56 -56
  83. package/packages/super-grid/src/formValidatorUtil.js +300 -300
  84. package/packages/super-grid/src/formatter.js +196 -196
  85. package/packages/super-grid/src/group-column.vue +99 -99
  86. package/packages/super-grid/src/header-context-menu.vue +82 -82
  87. package/packages/super-grid/src/index-column.vue +69 -69
  88. package/packages/super-grid/src/public-methods.js +30 -30
  89. package/packages/super-grid/src/row-operation.vue +193 -193
  90. package/packages/super-grid/src/search-button.vue +74 -74
  91. package/packages/super-grid/src/search-condition-input.vue +73 -73
  92. package/packages/super-grid/src/search-condition-list.vue +68 -68
  93. package/packages/super-grid/src/search-form-advancedQuery.vue +819 -819
  94. package/packages/super-grid/src/search-form-dialog.vue +77 -77
  95. package/packages/super-grid/src/search-form-item.vue +495 -495
  96. package/packages/super-grid/src/search-form-number.vue +111 -111
  97. package/packages/super-grid/src/search-form-ordinarySearch.vue +239 -239
  98. package/packages/super-grid/src/search-form.vue +762 -762
  99. package/packages/super-grid/src/search-methods.js +592 -592
  100. package/packages/super-grid/src/selection-column.vue +46 -46
  101. package/packages/super-grid/src/store.js +3 -3
  102. package/packages/super-grid/src/super-grid-service.js +728 -728
  103. package/packages/super-grid/src/super-grid.vue +3011 -3011
  104. package/packages/super-grid/src/utils.js +880 -880
  105. package/packages/super-grid/src/view-image-dialog.vue +176 -176
  106. package/packages/super-nine-grid/index.js +7 -7
  107. package/packages/super-nine-grid/src/apis.js +108 -108
  108. package/packages/super-nine-grid/src/custom-formatter.js +73 -73
  109. package/packages/super-nine-grid/src/formatter.js +134 -134
  110. package/packages/super-nine-grid/src/search-form-number.vue +35 -35
  111. package/packages/super-nine-grid/src/search-form.vue +700 -700
  112. package/packages/super-nine-grid/src/search-methods.js +151 -151
  113. package/packages/super-nine-grid/src/store.js +3 -3
  114. package/packages/super-nine-grid/src/super-grid-service.js +107 -107
  115. package/packages/svg-icon/index.js +6 -6
  116. package/packages/svg-icon/src/svg-icon.vue +43 -43
  117. package/packages/utils/date-util.js +292 -292
  118. package/packages/utils/dom.js +227 -227
  119. package/packages/utils/gogocodeTransfer.js +59 -59
  120. package/packages/utils/memory-cache-utils.js +117 -117
  121. package/packages/utils/utils.js +180 -180
  122. package/packages/utils/value-set.js +97 -97
  123. package/packages/valid-code/index.js +7 -7
  124. package/packages/valid-code/src/valid-code.vue +104 -104
  125. package/packages/workflow-button/index.js +6 -6
  126. package/packages/workflow-button/src/workflow-button.vue +550 -550
  127. package/packages/workflow-history-list/index.js +6 -6
  128. package/packages/workflow-history-list/src/api.js +7 -7
  129. package/packages/workflow-history-list/src/workflow-history-list.vue +291 -291
  130. package/packages/workgroup-tree/index.js +6 -6
  131. package/packages/workgroup-tree/src/workgroup-tree.vue +86 -86
  132. package/packages/workgroup-tree-inline/index.js +6 -6
  133. package/packages/workgroup-tree-inline/src/search-result.vue +222 -222
  134. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +516 -516
  135. package/packages/workgroup-tree-inline/src/workgroup-tree-service.js +93 -93
  136. package/packages/workgroup-user-tree/index.js +6 -6
  137. package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +103 -103
  138. package/packages/workgroup-user-tree-inline/index.js +9 -9
  139. package/packages/workgroup-user-tree-inline/src/search-result.vue +266 -266
  140. package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +239 -239
  141. package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +657 -657
  142. package/packages/year-range-picker/index.js +6 -6
  143. package/packages/year-range-picker/src/year-range-picker.vue +53 -53
  144. package/src/api/sso-service.js +172 -172
  145. package/src/api/tab.js +36 -36
  146. package/src/api/user-service.js +11 -11
  147. package/src/directives/permission/index.js +13 -13
  148. package/src/directives/permission/permission.js +20 -20
  149. package/src/i18n/langs/cn.js +259 -259
  150. package/src/i18n/langs/en.js +269 -269
  151. package/src/index.js +93 -93
  152. package/src/plugins.js +18 -18
  153. package/src/router/index.js +8 -26
  154. package/src/store/getters.js +15 -15
  155. package/src/store/index.js +19 -19
  156. package/src/store/modules/app.js +54 -54
  157. package/src/store/modules/tab-content.js +36 -36
  158. package/src/store/modules/user.js +285 -285
  159. package/src/utils/auth.js +61 -61
  160. package/src/utils/calculator/calculator-factory-wf.js +558 -558
  161. package/src/utils/calculator/calculator-factory.js +145 -145
  162. package/src/utils/calculator/calculator-util.js +166 -166
  163. package/src/utils/eventBus.js +2 -2
  164. package/src/utils/iconUtils.js +28 -28
  165. package/src/utils/index.js +102 -102
  166. package/src/utils/jump-page-utils.js +824 -824
  167. package/src/utils/menu.js +19 -19
  168. package/src/utils/permission.js +31 -31
  169. package/src/utils/permissionAuth.js +96 -96
  170. package/src/utils/range-selector.js +188 -188
  171. package/src/utils/request.js +269 -269
  172. package/src/utils/restful-interface-utils.js +57 -57
  173. package/src/utils/util.js +703 -703
  174. package/src/utils/validate.js +34 -34
  175. package/src/utils/watermark.js +108 -108
  176. package/src/utils/workflow-util.js +93 -93
  177. package/src/views/404.vue +248 -248
  178. package/src/views/dsc-component/Sidebar/Item.vue +84 -84
  179. package/src/views/dsc-component/Sidebar/Link.vue +38 -38
  180. package/src/views/dsc-component/Sidebar/SidebarItem.vue +198 -198
  181. package/src/views/dsc-component/Sidebar/index.vue +229 -228
  182. package/src/views/dsc-component/tabs/tab-content.vue +203 -203
  183. package/src/views/error-page/401.vue +106 -106
  184. package/src/views/error-page/404.vue +248 -248
  185. package/src/views/layout/EmptyLayout.vue +3 -3
  186. package/src/views/layout/Layout.vue +81 -81
  187. package/src/views/layout/NewLayout.vue +18 -18
  188. package/src/views/layout/components/AppMain.vue +39 -39
  189. package/src/views/layout/components/Breadcrumb/index.vue +158 -156
  190. package/src/views/layout/components/Menubar/Item.vue +79 -79
  191. package/src/views/layout/components/Menubar/Link.vue +38 -38
  192. package/src/views/layout/components/Menubar/index.vue +210 -210
  193. package/src/views/layout/components/Sidebar/Item.vue +53 -53
  194. package/src/views/layout/components/Sidebar/Link.vue +38 -38
  195. package/src/views/layout/components/Sidebar/index.vue +141 -141
  196. package/src/views/layout/components/iframe-page.vue +38 -38
  197. package/src/views/layout/components/index.js +4 -4
  198. package/src/views/layout/components/tabs/tab-content.vue +207 -207
  199. package/src/views/layout/mixin/ResizeHandler.js +41 -41
  200. package/src/views/layout/tab-content-iframe-index.vue +38 -38
  201. package/src/views/layout/tab-content-index.vue +93 -93
  202. package/src/views/login/authredirect.vue +10 -10
  203. package/src/views/login/index.vue +296 -296
  204. package/src/views/login/update-password.vue +243 -243
  205. package/src/views/redirect/index.vue +14 -14
  206. package/src/views/wf-history/tache-subprocess-history.vue +45 -45
@@ -1,495 +1,495 @@
1
- <template>
2
- <el-form-item
3
- :label-width="
4
- column.querySetting ? getLabelWidth(column.querySetting) : '110px'
5
- "
6
- :prop="column.prop"
7
- >
8
- <template v-slot:label>
9
- <span
10
- v-if="column.searchLabel && column.searchLabel !== ''"
11
- :title="column.searchLabel.replace(/\\n/g, '</br>')"
12
- v-html="column.searchLabel.replace(/\\n/g, '</br>')"
13
- />
14
- <span
15
- v-else
16
- :title="column.label.replace(/\\n/g, '</br>')"
17
- v-html="column.label.replace(/\\n/g, '</br>')"
18
- />
19
- </template>
20
- <span v-if="customComponent(column) === true">
21
- <component
22
- :is="column.componentName"
23
- :ref="column.componentName"
24
- :entity="searchForm"
25
- :prop="column.prop"
26
- :row="searchForm"
27
- :select-options="column.valueSet"
28
- :value="getFormItemValue(column.prop)"
29
- class="customComponent"
30
- @input="setValueToModelProp(column.prop, $event, column.componentName)"
31
- />
32
- </span>
33
- <!-- 日期区间-两个输入框方式 -->
34
- <span v-else-if="column.componentType === 'dateSection'">
35
- <el-date-picker
36
- :model-value="getFormItemValue(column.prop, 0)"
37
- :placeholder="$t('imatrixUIMessage.startDate')"
38
- :style="column.searchControlWidth"
39
- type="date"
40
- @input="setValueToModelProp(column.prop, $event, null, 0)"
41
- />
42
- <el-date-picker
43
- :model-value="getFormItemValue(column.prop, 1)"
44
- :placeholder="$t('imatrixUIMessage.endDate')"
45
- :style="column.searchControlWidth"
46
- type="date"
47
- @input="setValueToModelProp(column.prop, $event, null, 1)"
48
- />
49
- </span>
50
- <!--后面再优化年份及年份区间控件--->
51
- <year-range-picker
52
- v-else-if="column.componentType === 'yearRange'"
53
- :value="getFormItemValue(column.prop)"
54
- type="yearRange"
55
- @change="setYearRangeValue(column.prop, $event)"
56
- />
57
- <el-date-picker
58
- v-else-if="column.componentType === 'dateTimePicker'"
59
- :default-time="getDefaultTime(column)"
60
- :end-placeholder="$t('imatrixUIMessage.endDate')"
61
- :range-separator="$t('imatrixUIPublicModel.to')"
62
- :start-placeholder="$t('imatrixUIMessage.startDate')"
63
- :style="column.searchControlWidth"
64
- :value="getFormItemValue(column.prop)"
65
- type="datetimerange"
66
- unlink-panels
67
- value-format="yyyy-MM-dd HH:mm:ss"
68
- @input="setValueToModelProp(column.prop, $event)"
69
- />
70
-
71
- <el-date-picker
72
- v-else-if="column.dataType === 'DATE' || column.componentType === 'date'"
73
- :end-placeholder="$t('imatrixUIMessage.endDate')"
74
- :range-separator="$t('imatrixUIPublicModel.to')"
75
- :start-placeholder="$t('imatrixUIMessage.startDate')"
76
- :style="column.searchControlWidth"
77
- :value="getFormItemValue(column.prop)"
78
- type="daterange"
79
- unlink-panels
80
- value-format="yyyy-MM-dd"
81
- @input="setValueToModelProp(column.prop, $event)"
82
- />
83
- <el-date-picker
84
- v-else-if="
85
- column.dataType === 'TIME' && column.componentType === 'timepicker'
86
- "
87
- :end-placeholder="$t('imatrixUIMessage.endDate')"
88
- :range-separator="$t('imatrixUIPublicModel.to')"
89
- :start-placeholder="$t('imatrixUIMessage.startDate')"
90
- :style="column.searchControlWidth"
91
- :value="getFormItemValue(column.prop)"
92
- type="datetimerange"
93
- unlink-panels
94
- value-format="HH:mm:ss"
95
- @input="setValueToModelProp(column.prop, $event)"
96
- />
97
-
98
- <el-time-picker
99
- v-else-if="
100
- column.componentType === 'timepicker' &&
101
- column.dataType !== 'TIME' &&
102
- column.dataType !== 'DATE'
103
- "
104
- :placeholder="$t('imatrixUIMessage.selectTime')"
105
- :value="getFormItemValue(column.prop)"
106
- style="width: 100%"
107
- type="fixed-time"
108
- value-format="HH:mm:ss"
109
- @input="setValueToModelProp(column.prop, $event)"
110
- />
111
-
112
- <organization-input
113
- v-else-if="componentTypeTypeIsTree(column.componentType)"
114
- :fields="getTreeFields(column.orgTreeSet)"
115
- :models="searchForm"
116
- :multiple="getTreeIsMultiTree(column.componentType)"
117
- :tree-type="getTreeType(column.componentType)"
118
- :value="getFormItemValue(column.prop)"
119
- @clear="clearOrganizationInputEvent"
120
- @setValue="organizationInputEvent"
121
- />
122
-
123
- <el-select
124
- v-else-if="
125
- ((column.componentType && column.componentType === 'select') ||
126
- column.dataType === 'BOOLEAN') &&
127
- !isDynamicDataSourceSource(column)
128
- "
129
- :placeholder="$t('imatrixUIMessage.pleaseSelect')"
130
- :style="column.searchControlWidth"
131
- :value="getFormItemValue(column.prop)"
132
- clearable
133
- filterable
134
- @input="setValueToModelProp(column.prop, $event)"
135
- >
136
- <el-option
137
- v-for="item in column.valueSet"
138
- :key="item.value"
139
- :label="item.label"
140
- :value="item.value"
141
- />
142
- </el-select>
143
- <el-select
144
- v-else-if="
145
- column.componentType &&
146
- column.componentType === 'multiselect' &&
147
- !isDynamicDataSourceSource(column)
148
- "
149
- :placeholder="$t('imatrixUIMessage.pleaseSelect')"
150
- :style="column.searchControlWidth"
151
- :value="getFormItemValue(column.prop)"
152
- clearable
153
- collapse-tags
154
- filterable
155
- multiple
156
- @input="setValueToModelProp(column.prop, $event)"
157
- >
158
- <el-option
159
- v-for="item in column.valueSet"
160
- :key="item.value"
161
- :label="item.label"
162
- :value="item.value"
163
- />
164
- </el-select>
165
- <dynamic-source-select
166
- v-else-if="
167
- column.componentType &&
168
- (column.componentType === 'multiselect' ||
169
- column.componentType === 'select') &&
170
- isDynamicDataSourceSource(column)
171
- "
172
- :allow-create="true"
173
- :base-props="{
174
- multiple: column.componentType === 'multiselect' ? true : false,
175
- }"
176
- :entity="searchForm"
177
- :filterable="true"
178
- :is-join-table="isJoinTable"
179
- :list-code="code"
180
- :list-toolbar-form-data="listToolbarFormData"
181
- :options="getDynamicDataSourceOptions(column)"
182
- :table-name="tableName"
183
- :value="getFormItemValue(column.prop)"
184
- @input="setValueToModelProp(column.prop, $event)"
185
- />
186
- <!--
187
- <el-input-number
188
- v-else-if="column.componentType && column.componentType==='inputNumber'"
189
- :value="getFormItemValue(column.prop)"
190
- @input="setValueToModelProp(column.prop,$event)"
191
- /> -->
192
-
193
- <search-form-number
194
- v-else-if="column.componentType && column.componentType === 'inputNumber'"
195
- :item-value="searchForm[column.prop]"
196
- :module-config="moduleConfig"
197
- @setValue="setNumberValue"
198
- />
199
-
200
- <el-switch
201
- v-else-if="column.componentType && column.componentType === 'switch'"
202
- :model-value="getFormItemValue(column.prop)"
203
- :style="column.searchControlWidth"
204
- active-color="#13ce66"
205
- inactive-color="#ff4949"
206
- @input="setValueToModelProp(column.prop, $event)"
207
- />
208
- <el-slider
209
- v-else-if="column.componentType && column.componentType === 'slider'"
210
- :model-value="getFormItemValue(column.prop)"
211
- :style="column.searchControlWidth"
212
- @input="setValueToModelProp(column.prop, $event)"
213
- />
214
-
215
- <el-rate
216
- v-else-if="column.componentType && column.componentType === 'rate'"
217
- :model-value="getFormItemValue(column.prop)"
218
- :style="column.searchControlWidth"
219
- @input="setValueToModelProp(column.prop, $event)"
220
- />
221
- <el-input
222
- v-else
223
- :model-value="getFormItemValue(column.prop)"
224
- :style="column.searchControlWidth"
225
- @input="setValueToModelProp(column.prop, $event)"
226
- @keyup.enter="submitForm('searchForm')"
227
- />
228
- </el-form-item>
229
- </template>
230
-
231
- <script>
232
- import {$emit} from '../../utils/gogocodeTransfer'
233
- import searchMethods from './search-methods'
234
- import searchFormNumber from './search-form-number.vue'
235
- import store from './store'
236
- import {getDynamicDataSourceOptions, isDynamicDataSourceSource} from './utils'
237
-
238
- export default {
239
- name: 'SearchFormItem',
240
- components: {
241
- searchFormNumber,
242
- },
243
- inject: ['getListToolbarFormData'],
244
- props: {
245
- column: {
246
- type: Object,
247
- default: null,
248
- },
249
- code: {
250
- type: String,
251
- default: null,
252
- },
253
- isSql: {
254
- type: Boolean,
255
- default: false,
256
- },
257
- tableName: {
258
- type: String,
259
- default: null,
260
- },
261
- isJoinTable: {
262
- type: Boolean,
263
- default: false,
264
- },
265
- // 查询表单信息
266
- searchForm: {
267
- type: Object,
268
- default: null,
269
- },
270
- index: {
271
- type: Number,
272
- default: 0,
273
- },
274
- length: {
275
- type: Number,
276
- default: 0,
277
- },
278
- loadCompleteQuery: {
279
- type: Boolean,
280
- default: false,
281
- },
282
- },
283
- data() {
284
- const customComponentNames = new Set()
285
- return {
286
- customComponentNames: customComponentNames,
287
- dateOne: null,
288
- dataTwo: null,
289
- moduleConfig: {},
290
- }
291
- },
292
- computed: {
293
- listToolbarFormData() {
294
- console.log(this.getListToolbarFormData())
295
- const data = this.getListToolbarFormData()
296
- if (data && data.listToolbarFormData) {
297
- return this.getListToolbarFormData().listToolbarFormData
298
- }
299
- return null
300
- },
301
- },
302
- created() {
303
- if (this.column.valueSetOptions) {
304
- this.moduleConfig = JSON.parse(this.column.valueSetOptions)
305
- }
306
- console.log('searchitem页面', this.column)
307
- },
308
- mounted() {
309
- // 查询页面加载完成
310
- if (this.index + 1 === this.length && this.loadCompleteQuery) {
311
- $emit(this, 'submit-form')
312
- }
313
- },
314
- methods: {
315
- ...searchMethods,
316
- getDynamicDataSourceOptions(column) {
317
- const gridParams = store.get(this.code)
318
- return getDynamicDataSourceOptions(
319
- column,
320
- this.isSql,
321
- gridParams.additionalParamMap
322
- )
323
- },
324
- // 值设置是否是动态数据源类型的数据源
325
- isDynamicDataSourceSource(column) {
326
- return isDynamicDataSourceSource(column)
327
- },
328
- setValueToModelProp(prop, value, componentName, index) {
329
- if (prop && prop.indexOf('.') > 0) {
330
- const parentOjbect = this.getParentObject(prop)
331
- // 嵌套属性中的最后一个属性是属于这个中间父对象的,所有要通过中间父对象来赋值
332
- if (index != null && index !== undefined) {
333
- // parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)][index] = value
334
- parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)][index] = value
335
- } else {
336
- parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)] = value
337
- }
338
- } else {
339
- if (index != null && index !== undefined) {
340
- this.searchForm[prop][index] = value
341
- } else {
342
- this.searchForm[prop] = value
343
- }
344
- }
345
- },
346
- getLabelWidth(querySetting) {
347
- const configData = JSON.parse(querySetting)
348
- if (
349
- configData.labelWidth !== '' &&
350
- configData.labelWidth !== null &&
351
- configData.labelWidth !== undefined
352
- ) {
353
- return configData.labelWidth + 'px'
354
- } else {
355
- return '110px'
356
- }
357
- },
358
- componentTypeTypeIsTree(componentType) {
359
- if (componentType) {
360
- if (componentType.indexOf('DeptManTree') > 0) {
361
- // 说明是部门人员树
362
- return true
363
- }
364
- if (componentType.indexOf('DeptTree') > 0) {
365
- // 说明是部门树
366
- return true
367
- }
368
- if (componentType.indexOf('WgManTree') > 0) {
369
- // 说明是工作组人员树
370
- return true
371
- }
372
- if (componentType.indexOf('WgManTree') > 0) {
373
- // 说明是工作组树
374
- return true
375
- }
376
- }
377
- return false
378
- },
379
- getTreeFields(orgTreeSetJson) {
380
- if (orgTreeSetJson && orgTreeSetJson !== '') {
381
- const orgTreeSet = JSON.parse(orgTreeSetJson)
382
- if (orgTreeSet.length) {
383
- return orgTreeSet
384
- } else {
385
- if (orgTreeSet.orgTreeSetArr) {
386
- return orgTreeSet.orgTreeSetArr
387
- }
388
- }
389
- }
390
- },
391
- getTreeIsMultiTree(componentType) {
392
- if (
393
- componentType &&
394
- componentType.indexOf('single') >= 0 &&
395
- componentType.indexOf('Tree') > 0
396
- ) {
397
- return false
398
- } else {
399
- return true
400
- }
401
- },
402
- getTreeType(componentType) {
403
- if (componentType) {
404
- if (componentType.indexOf('DeptManTree') > 0) {
405
- // 说明是部门人员树
406
- return 'DeptUserTree'
407
- }
408
- if (componentType.indexOf('DeptTree') > 0) {
409
- // 说明是部门树
410
- return 'DeptTree'
411
- }
412
- if (componentType.indexOf('WgTree') > 0) {
413
- // 说明是工作组人员树
414
- return 'WgTree'
415
- }
416
- if (componentType.indexOf('WgManTree') > 0) {
417
- // 说明是工作组树
418
- return 'WgUserTree'
419
- }
420
- }
421
- },
422
- // 组织结构树文本框值改变事件
423
- organizationInputEvent(prop, value) {
424
- if (prop) {
425
- // 必须手动调用一下input事件,否则不会更新组件的值
426
- this.searchForm[prop] = value
427
- }
428
- },
429
- // 组织结构树文本框值清空事件
430
- clearOrganizationInputEvent(prop) {
431
- if (prop) {
432
- // 必须手动调用一下input事件,否则不会更新组件的值
433
- this.searchForm[prop] = null
434
- }
435
- },
436
- customComponent(column) {
437
- const gridParams = store.get(this.code)
438
- if (column.componentName && column.componentName !== '') {
439
- this.customComponentNames.add(column.componentName)
440
- return true
441
- }
442
- if (
443
- (!column.componentName || column.componentName === '') &&
444
- gridParams.options &&
445
- gridParams.options.search &&
446
- gridParams.options.search.customSearchElements
447
- ) {
448
- // 定义了自定义查询组件
449
- const propSearchEle =
450
- gridParams.options.search.customSearchElements[column.prop]
451
- // console.log('customComponent-customSearchElements-propSearchEle-', column.prop)
452
- if (propSearchEle) {
453
- column.componentName = 'custom-' + column.prop
454
- const component = propSearchEle.call(this, column)
455
- // console.log('customComponent-customSearchElements-')
456
- if (component) {
457
- this.customComponentNames.add(column.componentName)
458
- window.$vueApp.component(column.componentName, component)
459
- return true
460
- }
461
- }
462
- }
463
- return false
464
- },
465
- setNumberValue(value, r, n) {
466
- let itemValue = this.getFormItemValue(this.column.prop)
467
- itemValue = value
468
- this.setValueToModelProp(this.column.prop, itemValue)
469
- },
470
- setYearRangeValue(prop, value) {
471
- this.searchForm[prop][0] = value[0]
472
- this.searchForm[prop][1] = value[1]
473
- },
474
- getDefaultTime(column) {
475
- if (column['valueSetOptions']) {
476
- const valueSetOptions = JSON.parse(column['valueSetOptions'])
477
- if (valueSetOptions.defaultTime) {
478
- return [valueSetOptions.defaultTime, valueSetOptions.defaultTime]
479
- } else {
480
- return ['00:00:00']
481
- }
482
- } else {
483
- return ['00:00:00']
484
- }
485
- },
486
- },
487
- emits: ['submit-form'],
488
- }
489
- </script>
490
-
491
- <style lang="scss" scoped>
492
- :deep(.el-range-separator) {
493
- min-width: 20px;
494
- }
495
- </style>
1
+ <template>
2
+ <el-form-item
3
+ :label-width="
4
+ column.querySetting ? getLabelWidth(column.querySetting) : '110px'
5
+ "
6
+ :prop="column.prop"
7
+ >
8
+ <template v-slot:label>
9
+ <span
10
+ v-if="column.searchLabel && column.searchLabel !== ''"
11
+ :title="column.searchLabel.replace(/\\n/g, '</br>')"
12
+ v-html="column.searchLabel.replace(/\\n/g, '</br>')"
13
+ />
14
+ <span
15
+ v-else
16
+ :title="column.label.replace(/\\n/g, '</br>')"
17
+ v-html="column.label.replace(/\\n/g, '</br>')"
18
+ />
19
+ </template>
20
+ <span v-if="customComponent(column) === true">
21
+ <component
22
+ :is="column.componentName"
23
+ :ref="column.componentName"
24
+ :entity="searchForm"
25
+ :prop="column.prop"
26
+ :row="searchForm"
27
+ :select-options="column.valueSet"
28
+ :value="getFormItemValue(column.prop)"
29
+ class="customComponent"
30
+ @input="setValueToModelProp(column.prop, $event, column.componentName)"
31
+ />
32
+ </span>
33
+ <!-- 日期区间-两个输入框方式 -->
34
+ <span v-else-if="column.componentType === 'dateSection'">
35
+ <el-date-picker
36
+ :model-value="getFormItemValue(column.prop, 0)"
37
+ :placeholder="$t('imatrixUIMessage.startDate')"
38
+ :style="column.searchControlWidth"
39
+ type="date"
40
+ @input="setValueToModelProp(column.prop, $event, null, 0)"
41
+ />
42
+ <el-date-picker
43
+ :model-value="getFormItemValue(column.prop, 1)"
44
+ :placeholder="$t('imatrixUIMessage.endDate')"
45
+ :style="column.searchControlWidth"
46
+ type="date"
47
+ @input="setValueToModelProp(column.prop, $event, null, 1)"
48
+ />
49
+ </span>
50
+ <!--后面再优化年份及年份区间控件--->
51
+ <year-range-picker
52
+ v-else-if="column.componentType === 'yearRange'"
53
+ :value="getFormItemValue(column.prop)"
54
+ type="yearRange"
55
+ @change="setYearRangeValue(column.prop, $event)"
56
+ />
57
+ <el-date-picker
58
+ v-else-if="column.componentType === 'dateTimePicker'"
59
+ :default-time="getDefaultTime(column)"
60
+ :end-placeholder="$t('imatrixUIMessage.endDate')"
61
+ :range-separator="$t('imatrixUIPublicModel.to')"
62
+ :start-placeholder="$t('imatrixUIMessage.startDate')"
63
+ :style="column.searchControlWidth"
64
+ :value="getFormItemValue(column.prop)"
65
+ type="datetimerange"
66
+ unlink-panels
67
+ value-format="yyyy-MM-dd HH:mm:ss"
68
+ @input="setValueToModelProp(column.prop, $event)"
69
+ />
70
+
71
+ <el-date-picker
72
+ v-else-if="column.dataType === 'DATE' || column.componentType === 'date'"
73
+ :end-placeholder="$t('imatrixUIMessage.endDate')"
74
+ :range-separator="$t('imatrixUIPublicModel.to')"
75
+ :start-placeholder="$t('imatrixUIMessage.startDate')"
76
+ :style="column.searchControlWidth"
77
+ :value="getFormItemValue(column.prop)"
78
+ type="daterange"
79
+ unlink-panels
80
+ value-format="yyyy-MM-dd"
81
+ @input="setValueToModelProp(column.prop, $event)"
82
+ />
83
+ <el-date-picker
84
+ v-else-if="
85
+ column.dataType === 'TIME' && column.componentType === 'timepicker'
86
+ "
87
+ :end-placeholder="$t('imatrixUIMessage.endDate')"
88
+ :range-separator="$t('imatrixUIPublicModel.to')"
89
+ :start-placeholder="$t('imatrixUIMessage.startDate')"
90
+ :style="column.searchControlWidth"
91
+ :value="getFormItemValue(column.prop)"
92
+ type="datetimerange"
93
+ unlink-panels
94
+ value-format="HH:mm:ss"
95
+ @input="setValueToModelProp(column.prop, $event)"
96
+ />
97
+
98
+ <el-time-picker
99
+ v-else-if="
100
+ column.componentType === 'timepicker' &&
101
+ column.dataType !== 'TIME' &&
102
+ column.dataType !== 'DATE'
103
+ "
104
+ :placeholder="$t('imatrixUIMessage.selectTime')"
105
+ :value="getFormItemValue(column.prop)"
106
+ style="width: 100%"
107
+ type="fixed-time"
108
+ value-format="HH:mm:ss"
109
+ @input="setValueToModelProp(column.prop, $event)"
110
+ />
111
+
112
+ <organization-input
113
+ v-else-if="componentTypeTypeIsTree(column.componentType)"
114
+ :fields="getTreeFields(column.orgTreeSet)"
115
+ :models="searchForm"
116
+ :multiple="getTreeIsMultiTree(column.componentType)"
117
+ :tree-type="getTreeType(column.componentType)"
118
+ :value="getFormItemValue(column.prop)"
119
+ @clear="clearOrganizationInputEvent"
120
+ @setValue="organizationInputEvent"
121
+ />
122
+
123
+ <el-select
124
+ v-else-if="
125
+ ((column.componentType && column.componentType === 'select') ||
126
+ column.dataType === 'BOOLEAN') &&
127
+ !isDynamicDataSourceSource(column)
128
+ "
129
+ :placeholder="$t('imatrixUIMessage.pleaseSelect')"
130
+ :style="column.searchControlWidth"
131
+ :value="getFormItemValue(column.prop)"
132
+ clearable
133
+ filterable
134
+ @input="setValueToModelProp(column.prop, $event)"
135
+ >
136
+ <el-option
137
+ v-for="item in column.valueSet"
138
+ :key="item.value"
139
+ :label="item.label"
140
+ :value="item.value"
141
+ />
142
+ </el-select>
143
+ <el-select
144
+ v-else-if="
145
+ column.componentType &&
146
+ column.componentType === 'multiselect' &&
147
+ !isDynamicDataSourceSource(column)
148
+ "
149
+ :placeholder="$t('imatrixUIMessage.pleaseSelect')"
150
+ :style="column.searchControlWidth"
151
+ :value="getFormItemValue(column.prop)"
152
+ clearable
153
+ collapse-tags
154
+ filterable
155
+ multiple
156
+ @input="setValueToModelProp(column.prop, $event)"
157
+ >
158
+ <el-option
159
+ v-for="item in column.valueSet"
160
+ :key="item.value"
161
+ :label="item.label"
162
+ :value="item.value"
163
+ />
164
+ </el-select>
165
+ <dynamic-source-select
166
+ v-else-if="
167
+ column.componentType &&
168
+ (column.componentType === 'multiselect' ||
169
+ column.componentType === 'select') &&
170
+ isDynamicDataSourceSource(column)
171
+ "
172
+ :allow-create="true"
173
+ :base-props="{
174
+ multiple: column.componentType === 'multiselect' ? true : false,
175
+ }"
176
+ :entity="searchForm"
177
+ :filterable="true"
178
+ :is-join-table="isJoinTable"
179
+ :list-code="code"
180
+ :list-toolbar-form-data="listToolbarFormData"
181
+ :options="getDynamicDataSourceOptions(column)"
182
+ :table-name="tableName"
183
+ :value="getFormItemValue(column.prop)"
184
+ @input="setValueToModelProp(column.prop, $event)"
185
+ />
186
+ <!--
187
+ <el-input-number
188
+ v-else-if="column.componentType && column.componentType==='inputNumber'"
189
+ :value="getFormItemValue(column.prop)"
190
+ @input="setValueToModelProp(column.prop,$event)"
191
+ /> -->
192
+
193
+ <search-form-number
194
+ v-else-if="column.componentType && column.componentType === 'inputNumber'"
195
+ :item-value="searchForm[column.prop]"
196
+ :module-config="moduleConfig"
197
+ @setValue="setNumberValue"
198
+ />
199
+
200
+ <el-switch
201
+ v-else-if="column.componentType && column.componentType === 'switch'"
202
+ :model-value="getFormItemValue(column.prop)"
203
+ :style="column.searchControlWidth"
204
+ active-color="#13ce66"
205
+ inactive-color="#ff4949"
206
+ @input="setValueToModelProp(column.prop, $event)"
207
+ />
208
+ <el-slider
209
+ v-else-if="column.componentType && column.componentType === 'slider'"
210
+ :model-value="getFormItemValue(column.prop)"
211
+ :style="column.searchControlWidth"
212
+ @input="setValueToModelProp(column.prop, $event)"
213
+ />
214
+
215
+ <el-rate
216
+ v-else-if="column.componentType && column.componentType === 'rate'"
217
+ :model-value="getFormItemValue(column.prop)"
218
+ :style="column.searchControlWidth"
219
+ @input="setValueToModelProp(column.prop, $event)"
220
+ />
221
+ <el-input
222
+ v-else
223
+ :model-value="getFormItemValue(column.prop)"
224
+ :style="column.searchControlWidth"
225
+ @input="setValueToModelProp(column.prop, $event)"
226
+ @keyup.enter="submitForm('searchForm')"
227
+ />
228
+ </el-form-item>
229
+ </template>
230
+
231
+ <script>
232
+ import {$emit} from '../../utils/gogocodeTransfer'
233
+ import searchMethods from './search-methods'
234
+ import searchFormNumber from './search-form-number.vue'
235
+ import store from './store'
236
+ import {getDynamicDataSourceOptions, isDynamicDataSourceSource} from './utils'
237
+
238
+ export default {
239
+ name: 'SearchFormItem',
240
+ components: {
241
+ searchFormNumber,
242
+ },
243
+ inject: ['getListToolbarFormData'],
244
+ props: {
245
+ column: {
246
+ type: Object,
247
+ default: null,
248
+ },
249
+ code: {
250
+ type: String,
251
+ default: null,
252
+ },
253
+ isSql: {
254
+ type: Boolean,
255
+ default: false,
256
+ },
257
+ tableName: {
258
+ type: String,
259
+ default: null,
260
+ },
261
+ isJoinTable: {
262
+ type: Boolean,
263
+ default: false,
264
+ },
265
+ // 查询表单信息
266
+ searchForm: {
267
+ type: Object,
268
+ default: null,
269
+ },
270
+ index: {
271
+ type: Number,
272
+ default: 0,
273
+ },
274
+ length: {
275
+ type: Number,
276
+ default: 0,
277
+ },
278
+ loadCompleteQuery: {
279
+ type: Boolean,
280
+ default: false,
281
+ },
282
+ },
283
+ data() {
284
+ const customComponentNames = new Set()
285
+ return {
286
+ customComponentNames: customComponentNames,
287
+ dateOne: null,
288
+ dataTwo: null,
289
+ moduleConfig: {},
290
+ }
291
+ },
292
+ computed: {
293
+ listToolbarFormData() {
294
+ console.log(this.getListToolbarFormData())
295
+ const data = this.getListToolbarFormData()
296
+ if (data && data.listToolbarFormData) {
297
+ return this.getListToolbarFormData().listToolbarFormData
298
+ }
299
+ return null
300
+ },
301
+ },
302
+ created() {
303
+ if (this.column.valueSetOptions) {
304
+ this.moduleConfig = JSON.parse(this.column.valueSetOptions)
305
+ }
306
+ console.log('searchitem页面', this.column)
307
+ },
308
+ mounted() {
309
+ // 查询页面加载完成
310
+ if (this.index + 1 === this.length && this.loadCompleteQuery) {
311
+ $emit(this, 'submit-form')
312
+ }
313
+ },
314
+ methods: {
315
+ ...searchMethods,
316
+ getDynamicDataSourceOptions(column) {
317
+ const gridParams = store.get(this.code)
318
+ return getDynamicDataSourceOptions(
319
+ column,
320
+ this.isSql,
321
+ gridParams.additionalParamMap
322
+ )
323
+ },
324
+ // 值设置是否是动态数据源类型的数据源
325
+ isDynamicDataSourceSource(column) {
326
+ return isDynamicDataSourceSource(column)
327
+ },
328
+ setValueToModelProp(prop, value, componentName, index) {
329
+ if (prop && prop.indexOf('.') > 0) {
330
+ const parentOjbect = this.getParentObject(prop)
331
+ // 嵌套属性中的最后一个属性是属于这个中间父对象的,所有要通过中间父对象来赋值
332
+ if (index != null && index !== undefined) {
333
+ // parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)][index] = value
334
+ parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)][index] = value
335
+ } else {
336
+ parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)] = value
337
+ }
338
+ } else {
339
+ if (index != null && index !== undefined) {
340
+ this.searchForm[prop][index] = value
341
+ } else {
342
+ this.searchForm[prop] = value
343
+ }
344
+ }
345
+ },
346
+ getLabelWidth(querySetting) {
347
+ const configData = JSON.parse(querySetting)
348
+ if (
349
+ configData.labelWidth !== '' &&
350
+ configData.labelWidth !== null &&
351
+ configData.labelWidth !== undefined
352
+ ) {
353
+ return configData.labelWidth + 'px'
354
+ } else {
355
+ return '110px'
356
+ }
357
+ },
358
+ componentTypeTypeIsTree(componentType) {
359
+ if (componentType) {
360
+ if (componentType.indexOf('DeptManTree') > 0) {
361
+ // 说明是部门人员树
362
+ return true
363
+ }
364
+ if (componentType.indexOf('DeptTree') > 0) {
365
+ // 说明是部门树
366
+ return true
367
+ }
368
+ if (componentType.indexOf('WgManTree') > 0) {
369
+ // 说明是工作组人员树
370
+ return true
371
+ }
372
+ if (componentType.indexOf('WgManTree') > 0) {
373
+ // 说明是工作组树
374
+ return true
375
+ }
376
+ }
377
+ return false
378
+ },
379
+ getTreeFields(orgTreeSetJson) {
380
+ if (orgTreeSetJson && orgTreeSetJson !== '') {
381
+ const orgTreeSet = JSON.parse(orgTreeSetJson)
382
+ if (orgTreeSet.length) {
383
+ return orgTreeSet
384
+ } else {
385
+ if (orgTreeSet.orgTreeSetArr) {
386
+ return orgTreeSet.orgTreeSetArr
387
+ }
388
+ }
389
+ }
390
+ },
391
+ getTreeIsMultiTree(componentType) {
392
+ if (
393
+ componentType &&
394
+ componentType.indexOf('single') >= 0 &&
395
+ componentType.indexOf('Tree') > 0
396
+ ) {
397
+ return false
398
+ } else {
399
+ return true
400
+ }
401
+ },
402
+ getTreeType(componentType) {
403
+ if (componentType) {
404
+ if (componentType.indexOf('DeptManTree') > 0) {
405
+ // 说明是部门人员树
406
+ return 'DeptUserTree'
407
+ }
408
+ if (componentType.indexOf('DeptTree') > 0) {
409
+ // 说明是部门树
410
+ return 'DeptTree'
411
+ }
412
+ if (componentType.indexOf('WgTree') > 0) {
413
+ // 说明是工作组人员树
414
+ return 'WgTree'
415
+ }
416
+ if (componentType.indexOf('WgManTree') > 0) {
417
+ // 说明是工作组树
418
+ return 'WgUserTree'
419
+ }
420
+ }
421
+ },
422
+ // 组织结构树文本框值改变事件
423
+ organizationInputEvent(prop, value) {
424
+ if (prop) {
425
+ // 必须手动调用一下input事件,否则不会更新组件的值
426
+ this.searchForm[prop] = value
427
+ }
428
+ },
429
+ // 组织结构树文本框值清空事件
430
+ clearOrganizationInputEvent(prop) {
431
+ if (prop) {
432
+ // 必须手动调用一下input事件,否则不会更新组件的值
433
+ this.searchForm[prop] = null
434
+ }
435
+ },
436
+ customComponent(column) {
437
+ const gridParams = store.get(this.code)
438
+ if (column.componentName && column.componentName !== '') {
439
+ this.customComponentNames.add(column.componentName)
440
+ return true
441
+ }
442
+ if (
443
+ (!column.componentName || column.componentName === '') &&
444
+ gridParams.options &&
445
+ gridParams.options.search &&
446
+ gridParams.options.search.customSearchElements
447
+ ) {
448
+ // 定义了自定义查询组件
449
+ const propSearchEle =
450
+ gridParams.options.search.customSearchElements[column.prop]
451
+ // console.log('customComponent-customSearchElements-propSearchEle-', column.prop)
452
+ if (propSearchEle) {
453
+ column.componentName = 'custom-' + column.prop
454
+ const component = propSearchEle.call(this, column)
455
+ // console.log('customComponent-customSearchElements-')
456
+ if (component) {
457
+ this.customComponentNames.add(column.componentName)
458
+ window.$vueApp.component(column.componentName, component)
459
+ return true
460
+ }
461
+ }
462
+ }
463
+ return false
464
+ },
465
+ setNumberValue(value, r, n) {
466
+ let itemValue = this.getFormItemValue(this.column.prop)
467
+ itemValue = value
468
+ this.setValueToModelProp(this.column.prop, itemValue)
469
+ },
470
+ setYearRangeValue(prop, value) {
471
+ this.searchForm[prop][0] = value[0]
472
+ this.searchForm[prop][1] = value[1]
473
+ },
474
+ getDefaultTime(column) {
475
+ if (column['valueSetOptions']) {
476
+ const valueSetOptions = JSON.parse(column['valueSetOptions'])
477
+ if (valueSetOptions.defaultTime) {
478
+ return [valueSetOptions.defaultTime, valueSetOptions.defaultTime]
479
+ } else {
480
+ return ['00:00:00']
481
+ }
482
+ } else {
483
+ return ['00:00:00']
484
+ }
485
+ },
486
+ },
487
+ emits: ['submit-form'],
488
+ }
489
+ </script>
490
+
491
+ <style lang="scss" scoped>
492
+ :deep(.el-range-separator) {
493
+ min-width: 20px;
494
+ }
495
+ </style>