doway-coms 2.3.2 → 2.3.3

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 (82) hide show
  1. package/.browserslistrc +2 -2
  2. package/README.md +28 -28
  3. package/dist/css/chunk-vendors.7f83d8f9.css +8 -0
  4. package/dist/css/index.7946d50b.css +1 -0
  5. package/dist/favicon.ico +0 -0
  6. package/dist/js/chunk-vendors.28fda91d.js +340 -0
  7. package/dist/js/index.49bc6add.js +2 -0
  8. package/lib/doway-coms.common.js +120397 -0
  9. package/lib/doway-coms.css +1 -0
  10. package/lib/doway-coms.umd.js +120407 -0
  11. package/lib/doway-coms.umd.min.js +328 -0
  12. package/package.json +53 -53
  13. package/packages/AuditsList/index.js +7 -7
  14. package/packages/AuditsList/src/index.vue +266 -266
  15. package/packages/BaseButton/index.js +7 -7
  16. package/packages/BaseButton/src/index.vue +241 -241
  17. package/packages/BaseCheckbox/index.js +7 -7
  18. package/packages/BaseCheckbox/src/index.vue +134 -134
  19. package/packages/BaseDate/index.js +7 -7
  20. package/packages/BaseDate/src/index.vue +197 -197
  21. package/packages/BaseDateWeek/index.js +7 -7
  22. package/packages/BaseDateWeek/src/index.vue +163 -163
  23. package/packages/BaseDatetime/index.js +7 -7
  24. package/packages/BaseDatetime/src/index.vue +196 -196
  25. package/packages/BaseForm/index.js +7 -7
  26. package/packages/BaseForm/src/index.vue +730 -730
  27. package/packages/BaseGantt/index.js +9 -9
  28. package/packages/BaseGantt/src/index.vue +617 -617
  29. package/packages/BaseGrid/index.js +9 -9
  30. package/packages/BaseGrid/src/SeqSetting.vue +278 -278
  31. package/packages/BaseGrid/src/index.vue +3616 -3616
  32. package/packages/BaseGridAdjust/index.js +9 -9
  33. package/packages/BaseGridAdjust/src/index.vue +482 -482
  34. package/packages/BaseInput/index.js +7 -7
  35. package/packages/BaseInput/src/index.vue +164 -164
  36. package/packages/BaseIntervalInput/index.js +7 -7
  37. package/packages/BaseIntervalInput/src/index.vue +310 -310
  38. package/packages/BaseKanbanEmpty/index.js +7 -7
  39. package/packages/BaseKanbanEmpty/src/index.vue +176 -176
  40. package/packages/BaseNumberInput/index.js +7 -7
  41. package/packages/BaseNumberInput/src/index.vue +291 -291
  42. package/packages/BasePagination/index.js +7 -7
  43. package/packages/BasePagination/src/index.vue +91 -91
  44. package/packages/BasePictureCard/index.js +7 -7
  45. package/packages/BasePictureCard/src/index.vue +580 -580
  46. package/packages/BasePrintPreview/index.js +7 -7
  47. package/packages/BasePrintPreview/src/index.vue +129 -129
  48. package/packages/BasePulldown/index.js +7 -7
  49. package/packages/BasePulldown/src/index.vue +1321 -1282
  50. package/packages/BaseSearch/index.js +7 -7
  51. package/packages/BaseSearch/src/index.vue +935 -935
  52. package/packages/BaseSelect/index.js +7 -7
  53. package/packages/BaseSelect/src/index.vue +155 -155
  54. package/packages/BaseSelectMulti/index.js +7 -7
  55. package/packages/BaseSelectMulti/src/index.vue +148 -148
  56. package/packages/BaseTextArea/index.js +7 -7
  57. package/packages/BaseTextArea/src/index.vue +178 -178
  58. package/packages/BaseTime/index.js +7 -7
  59. package/packages/BaseTime/src/index.vue +166 -166
  60. package/packages/BaseTool/index.js +7 -7
  61. package/packages/BaseTool/src/index.vue +349 -349
  62. package/packages/BaseToolStatus/index.js +7 -7
  63. package/packages/BaseToolStatus/src/index.vue +388 -388
  64. package/packages/BaseTreeSelect/index.js +8 -8
  65. package/packages/BaseTreeSelect/src/index.vue +437 -437
  66. package/packages/LeaveAMessage/index.js +7 -7
  67. package/packages/LeaveAMessage/src/index.vue +601 -601
  68. package/packages/index.js +191 -191
  69. package/packages/styles/default.css +78 -78
  70. package/packages/styles/default.less +84 -84
  71. package/packages/utils/api.js +107 -107
  72. package/packages/utils/auth.js +38 -38
  73. package/packages/utils/common.js +610 -610
  74. package/packages/utils/dom.js +181 -181
  75. package/packages/utils/enum.js +86 -86
  76. package/packages/utils/filters.js +472 -472
  77. package/packages/utils/gridFormat.js +66 -66
  78. package/packages/utils/msg.js +84 -84
  79. package/packages/utils/patchFiles.js +44 -44
  80. package/packages/utils/request.js +178 -178
  81. package/packages/utils/store.js +305 -309
  82. package/vue.config.js +59 -59
@@ -1,437 +1,437 @@
1
- <template>
2
- <div class="d-control-container">
3
- <div
4
- class="d-control-label"
5
- v-if="showLabel === true"
6
- :style="{ width: labelWidth > 0 ? labelWidth + 'px' : 'none' }"
7
- >
8
- {{ label }}
9
- <span v-if="rules && rules['required']" class="d-control-label-required"
10
- >*</span
11
- >
12
- <Tooltip :title="tooltip" v-if="tooltip" style="margin: 0 2px">
13
- <img src="../../styles/icon/help.png" alt="" style="width: 14px" />
14
- </Tooltip>
15
- </div>
16
- <div class="d-control">
17
- <ValidationProvider
18
- v-if="edit === true"
19
- :name="label"
20
- v-slot="v"
21
- :rules="rules"
22
- >
23
- <TreeSelect
24
- ref="treeSelectView"
25
- v-model="currentValue"
26
- :treeData="treeData"
27
- :showSearch="showSearch"
28
- :replaceFields="replaceFields"
29
- :dropdownMatchSelectWidth="dropdownMatchSelectWidth"
30
- :treeDefaultExpandAll="treeDefaultExpandAll"
31
- :treeDefaultExpandedKeys="treeDefaultExpandedKeys"
32
- :filterTreeNode="filterTreeNode"
33
- @change="changeData"
34
- size="small"
35
- :allowClear="allowClear"
36
- @focus="searchData"
37
- @select="selectData"
38
- :dropdownStyle="{
39
- width: treeWidth + 'px',
40
- height: '300px',
41
- ...widthDropdownStyle,
42
- }"
43
- treeNodeFilterProp="title"
44
- :style="{
45
- width: '100%',
46
- }"
47
- :placeholder="placeholder"
48
- ></TreeSelect>
49
- <div class="d-error-msg">
50
- {{ v.errors[0] }}
51
- </div>
52
- </ValidationProvider>
53
-
54
- <span v-else>
55
- <a v-if="route" @click="routeLinkClick">{{ value }}</a>
56
- <span v-else> {{ value }}</span>
57
- </span>
58
- </div>
59
- </div>
60
- </template>
61
-
62
- <script>
63
- import { Tooltip, TreeSelect } from 'ant-design-vue'
64
- import request from '../../utils/request'
65
- import XEUtils from 'xe-utils'
66
- import { ValidationProvider } from 'vee-validate'
67
- export default {
68
- name: 'BaseTreeSelect',
69
- components: {
70
- Tooltip,
71
- TreeSelect,
72
- ValidationProvider,
73
- },
74
- props: {
75
- label: {
76
- type: String,
77
- },
78
- showLabel: {
79
- type: Boolean,
80
- default: function () {
81
- return true
82
- },
83
- },
84
- labelWidth: {
85
- type: Number,
86
- default: function () {
87
- return 100
88
- },
89
- },
90
- api: {
91
- type: String,
92
- required: true,
93
- },
94
- exps: {
95
- // 条件
96
- type: Array,
97
- default: () => {
98
- return []
99
- },
100
- },
101
- value: {
102
- type: String,
103
- default: function () {
104
- return ''
105
- },
106
- },
107
- tooltip: {
108
- type: String,
109
- default: function () {
110
- return ''
111
- },
112
- },
113
- customTitle: {
114
- type: Array,
115
- default: function () {
116
- return []
117
- },
118
- },
119
- // 输入框宽度
120
- width: {
121
- type: Number,
122
- default: function () {
123
- return 100
124
- },
125
- },
126
- // 树宽度
127
- treeWidth: {
128
- type: Number,
129
- default: function () {
130
- return 200
131
- },
132
- },
133
- // 输入框和选择器同宽
134
- dropdownMatchSelectWidth: {
135
- type: Boolean,
136
- default: function () {
137
- return false
138
- },
139
- },
140
- // 替换展示字段
141
- replaceFields: {
142
- type: Object,
143
- default: function () {
144
- return {
145
- children: 'children',
146
- title: 'title',
147
- key: 'key',
148
- value: 'value',
149
- }
150
- },
151
- },
152
- // 是否默认展开所有树节点
153
- treeDefaultExpandAll: {
154
- type: Boolean,
155
- default: function () {
156
- return false
157
- },
158
- },
159
- size: {
160
- type: String,
161
- default: function () {
162
- return 'small'
163
- },
164
- },
165
- // 下拉中显示搜索框
166
- showSearch: {
167
- type: Boolean,
168
- default: function () {
169
- return true
170
- },
171
- },
172
- // 下拉菜单的样式
173
- widthDropdownStyle: {
174
- type: Object,
175
- default: function () {
176
- return {}
177
- },
178
- },
179
- // 清除按钮
180
- allowClear: {
181
- type: Boolean,
182
- default: function () {
183
- return true
184
- },
185
- },
186
- placeholder: {
187
- type: String,
188
- default: function () {
189
- return ''
190
- },
191
- },
192
- rules: {
193
- type: Object,
194
- default: function () {
195
- return null
196
- },
197
- },
198
- formRow: {
199
- type: Object,
200
- default: function () {
201
- return {}
202
- },
203
- },
204
- row: {
205
- type: Object,
206
- default: function () {
207
- return {}
208
- },
209
- },
210
- edit: {
211
- type: Boolean,
212
- default: function () {
213
- return false
214
- },
215
- },
216
- field: {
217
- type: String,
218
- },
219
- columns: {
220
- // 列集合
221
- type: Array,
222
- default: () => {
223
- return []
224
- },
225
- },
226
- propTableData: {
227
- type: Array,
228
- default: function () {
229
- return []
230
- },
231
- },
232
- linkedField: {
233
- type: String,
234
- required: true,
235
- },
236
- linkedTitle: {
237
- type: [],
238
- default: function () {
239
- return []
240
- },
241
- },
242
- method: {
243
- type: String,
244
- default: function () {
245
- return 'post'
246
- },
247
- },
248
- route: Object,
249
- },
250
- data() {
251
- return {
252
- treeData: [],
253
- currentValue: '',
254
- treeDefaultExpandedKeys: [],
255
- }
256
- },
257
- mounted() {
258
- this.searchData()
259
- if (this.treeData.length) {
260
- this.currentValue = this.row[this.linkedField]
261
- } else {
262
- this.currentValue = this.value
263
- }
264
- },
265
- watch: {
266
- treeData(val) {
267
- if (this.treeData.length) {
268
- this.currentValue = this.row[this.linkedField]
269
- this.treeDefaultExpandedKeys = []
270
- this.treeDefaultExpandedKeys.push(this.currentValue)
271
- } else {
272
- this.currentValue = this.value
273
- }
274
- },
275
- edit(value) {
276
- // debugger
277
- if (value) {
278
- if (this.treeData.length) {
279
- this.currentValue = this.row[this.linkedField]
280
- } else {
281
- this.currentValue = this.value
282
- }
283
- }
284
- },
285
- },
286
- computed: {},
287
- methods: {
288
- /**
289
- * 查询数据
290
- */
291
- searchData() {
292
- let tempExp = {
293
- operator: 'or',
294
- expressions: [],
295
- }
296
-
297
- let postExpression = {
298
- field: this.field,
299
- expression: tempExp,
300
- extendParams: {},
301
- }
302
- let repeatRowInfo = {
303
- field: '',
304
- values: [],
305
- }
306
- //查询之前从外部组件构造其他的条件
307
- this.$emit('preSearch', postExpression, repeatRowInfo, this.row)
308
- let postData = {
309
- begin: 1,
310
- size: 0,
311
- expression: postExpression.expression,
312
- sorts: [],
313
- extendParams: postExpression.extendParams,
314
- }
315
- let tempApi = this.getPostApi(postData)
316
- let vm = this
317
- vm.gridLoading = true
318
- request({
319
- url: tempApi,
320
- method: this.method,
321
- data: postData,
322
- })
323
- .then((responseData) => {
324
- vm.treeData = responseData.content
325
- if (this.linkedTitle.length) {
326
- XEUtils.eachTree(vm.treeData, (item) => {
327
- let title = ''
328
- XEUtils.arrayEach(this.linkedTitle, (newTitle) => {
329
- title = title + item[newTitle] + '-'
330
- })
331
- item[this.replaceFields.title] = title.slice(0, -1)
332
- })
333
- }
334
- })
335
- .catch((error) => {
336
- console.error(error)
337
- })
338
- .finally(() => {
339
- vm.gridLoading = false
340
- })
341
- },
342
- getPostApi(postData) {
343
- let tempApi = this.api
344
- if (this.api.indexOf('?') > 0) {
345
- tempApi = this.api.substring(0, this.api.indexOf('?'))
346
- let tempExtenParams = this.api.substring(this.api.indexOf('?') + 1)
347
- tempExtenParams = replaceParam(tempExtenParams, this.formRow)
348
- let tempSplitParams = tempExtenParams.split('&')
349
- for (let i = 0; i < tempSplitParams.length; i++) {
350
- let tempSplitValue = tempSplitParams[i].split('=')
351
- this.$set(postData.extendParams, tempSplitValue[0], tempSplitValue[1])
352
- }
353
- }
354
- return tempApi
355
- },
356
- routeLinkClick() {
357
- //首先需要判断是否有权限
358
- this.$router.pushRoute({
359
- name: this.route.name,
360
- query: { id: this.row[this.route.field] },
361
- })
362
- },
363
- selectData(value, node) {
364
- // this.row[this.linkedField] = value
365
- // this.row[this.field] = node.title
366
- this.$set(this.row, this.linkedField, value)
367
- this.$set(this.row, this.field, node.title)
368
- this.$emit('selectChanged', this.row)
369
- },
370
- filterTreeNode(inputValue,treeNode){
371
- if(treeNode.data.props.dataRef.name.indexOf(inputValue)>-1){
372
- //存在inputValue则返回true,显示该节点
373
- return true;
374
- }
375
- //不存在inputValue则检查父节点是否包含inputValue
376
- let parentId = treeNode.data.props.dataRef.parentId;
377
- while(parentId){
378
- let parentNode = XEUtils.findTree(this.treeData, p=>p.id===parentId)
379
- if(parentNode){
380
- if(parentNode.item.name.indexOf(inputValue)>-1){
381
- return true
382
- }
383
- parentId = parentNode.item.parentId
384
- }else{
385
- break
386
- }
387
- }
388
- return false
389
- },
390
- changeData(value) {
391
- if (!value) {
392
- this.$set(this.row, this.linkedField, '')
393
- this.$set(this.row, this.field, '')
394
- this.$emit('selectChanged', this.row)
395
- }
396
- },
397
- },
398
- }
399
- </script>
400
-
401
- <style lang="scss" scoped>
402
- // ::v-deep .ant-select-tree-dropdown::-webkit-scrollbar {
403
- // width: 5px;
404
- // }
405
- // ::v-deep .ant-select-tree-dropdown::-webkit-scrollbar-thumb {
406
- // /*滚动条里面小方块*/
407
- // border-radius: 10px;
408
- // -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
409
- // background: #e5e5e5;
410
- // }
411
- // ::v-deep .ant-select-tree-dropdown::-webkit-scrollbar-track {
412
- // /*滚动条里面轨道*/
413
- // -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
414
- // border-radius: 10px;
415
- // background: #ffffff;
416
- // }
417
- .pulldown-grid {
418
- min-width: 600px;
419
- width: auto;
420
- height: 350px;
421
- background-color: #fff;
422
- box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
423
- }
424
-
425
- .d-grid-control {
426
- height: 30px;
427
- }
428
- .interceptor-class {
429
- padding: 10px;
430
- ::v-deep .ant-btn {
431
- margin: 10px 10px 0;
432
- }
433
- }
434
- </style>
435
- <style lang="less">
436
- @import '../../styles/default.less';
437
- </style>
1
+ <template>
2
+ <div class="d-control-container">
3
+ <div
4
+ class="d-control-label"
5
+ v-if="showLabel === true"
6
+ :style="{ width: labelWidth > 0 ? labelWidth + 'px' : 'none' }"
7
+ >
8
+ {{ label }}
9
+ <span v-if="rules && rules['required']" class="d-control-label-required"
10
+ >*</span
11
+ >
12
+ <Tooltip :title="tooltip" v-if="tooltip" style="margin: 0 2px">
13
+ <img src="../../styles/icon/help.png" alt="" style="width: 14px" />
14
+ </Tooltip>
15
+ </div>
16
+ <div class="d-control">
17
+ <ValidationProvider
18
+ v-if="edit === true"
19
+ :name="label"
20
+ v-slot="v"
21
+ :rules="rules"
22
+ >
23
+ <TreeSelect
24
+ ref="treeSelectView"
25
+ v-model="currentValue"
26
+ :treeData="treeData"
27
+ :showSearch="showSearch"
28
+ :replaceFields="replaceFields"
29
+ :dropdownMatchSelectWidth="dropdownMatchSelectWidth"
30
+ :treeDefaultExpandAll="treeDefaultExpandAll"
31
+ :treeDefaultExpandedKeys="treeDefaultExpandedKeys"
32
+ :filterTreeNode="filterTreeNode"
33
+ @change="changeData"
34
+ size="small"
35
+ :allowClear="allowClear"
36
+ @focus="searchData"
37
+ @select="selectData"
38
+ :dropdownStyle="{
39
+ width: treeWidth + 'px',
40
+ height: '300px',
41
+ ...widthDropdownStyle,
42
+ }"
43
+ treeNodeFilterProp="title"
44
+ :style="{
45
+ width: '100%',
46
+ }"
47
+ :placeholder="placeholder"
48
+ ></TreeSelect>
49
+ <div class="d-error-msg">
50
+ {{ v.errors[0] }}
51
+ </div>
52
+ </ValidationProvider>
53
+
54
+ <span v-else>
55
+ <a v-if="route" @click="routeLinkClick">{{ value }}</a>
56
+ <span v-else> {{ value }}</span>
57
+ </span>
58
+ </div>
59
+ </div>
60
+ </template>
61
+
62
+ <script>
63
+ import { Tooltip, TreeSelect } from 'ant-design-vue'
64
+ import request from '../../utils/request'
65
+ import XEUtils from 'xe-utils'
66
+ import { ValidationProvider } from 'vee-validate'
67
+ export default {
68
+ name: 'BaseTreeSelect',
69
+ components: {
70
+ Tooltip,
71
+ TreeSelect,
72
+ ValidationProvider,
73
+ },
74
+ props: {
75
+ label: {
76
+ type: String,
77
+ },
78
+ showLabel: {
79
+ type: Boolean,
80
+ default: function () {
81
+ return true
82
+ },
83
+ },
84
+ labelWidth: {
85
+ type: Number,
86
+ default: function () {
87
+ return 100
88
+ },
89
+ },
90
+ api: {
91
+ type: String,
92
+ required: true,
93
+ },
94
+ exps: {
95
+ // 条件
96
+ type: Array,
97
+ default: () => {
98
+ return []
99
+ },
100
+ },
101
+ value: {
102
+ type: String,
103
+ default: function () {
104
+ return ''
105
+ },
106
+ },
107
+ tooltip: {
108
+ type: String,
109
+ default: function () {
110
+ return ''
111
+ },
112
+ },
113
+ customTitle: {
114
+ type: Array,
115
+ default: function () {
116
+ return []
117
+ },
118
+ },
119
+ // 输入框宽度
120
+ width: {
121
+ type: Number,
122
+ default: function () {
123
+ return 100
124
+ },
125
+ },
126
+ // 树宽度
127
+ treeWidth: {
128
+ type: Number,
129
+ default: function () {
130
+ return 200
131
+ },
132
+ },
133
+ // 输入框和选择器同宽
134
+ dropdownMatchSelectWidth: {
135
+ type: Boolean,
136
+ default: function () {
137
+ return false
138
+ },
139
+ },
140
+ // 替换展示字段
141
+ replaceFields: {
142
+ type: Object,
143
+ default: function () {
144
+ return {
145
+ children: 'children',
146
+ title: 'title',
147
+ key: 'key',
148
+ value: 'value',
149
+ }
150
+ },
151
+ },
152
+ // 是否默认展开所有树节点
153
+ treeDefaultExpandAll: {
154
+ type: Boolean,
155
+ default: function () {
156
+ return false
157
+ },
158
+ },
159
+ size: {
160
+ type: String,
161
+ default: function () {
162
+ return 'small'
163
+ },
164
+ },
165
+ // 下拉中显示搜索框
166
+ showSearch: {
167
+ type: Boolean,
168
+ default: function () {
169
+ return true
170
+ },
171
+ },
172
+ // 下拉菜单的样式
173
+ widthDropdownStyle: {
174
+ type: Object,
175
+ default: function () {
176
+ return {}
177
+ },
178
+ },
179
+ // 清除按钮
180
+ allowClear: {
181
+ type: Boolean,
182
+ default: function () {
183
+ return true
184
+ },
185
+ },
186
+ placeholder: {
187
+ type: String,
188
+ default: function () {
189
+ return ''
190
+ },
191
+ },
192
+ rules: {
193
+ type: Object,
194
+ default: function () {
195
+ return null
196
+ },
197
+ },
198
+ formRow: {
199
+ type: Object,
200
+ default: function () {
201
+ return {}
202
+ },
203
+ },
204
+ row: {
205
+ type: Object,
206
+ default: function () {
207
+ return {}
208
+ },
209
+ },
210
+ edit: {
211
+ type: Boolean,
212
+ default: function () {
213
+ return false
214
+ },
215
+ },
216
+ field: {
217
+ type: String,
218
+ },
219
+ columns: {
220
+ // 列集合
221
+ type: Array,
222
+ default: () => {
223
+ return []
224
+ },
225
+ },
226
+ propTableData: {
227
+ type: Array,
228
+ default: function () {
229
+ return []
230
+ },
231
+ },
232
+ linkedField: {
233
+ type: String,
234
+ required: true,
235
+ },
236
+ linkedTitle: {
237
+ type: [],
238
+ default: function () {
239
+ return []
240
+ },
241
+ },
242
+ method: {
243
+ type: String,
244
+ default: function () {
245
+ return 'post'
246
+ },
247
+ },
248
+ route: Object,
249
+ },
250
+ data() {
251
+ return {
252
+ treeData: [],
253
+ currentValue: '',
254
+ treeDefaultExpandedKeys: [],
255
+ }
256
+ },
257
+ mounted() {
258
+ this.searchData()
259
+ if (this.treeData.length) {
260
+ this.currentValue = this.row[this.linkedField]
261
+ } else {
262
+ this.currentValue = this.value
263
+ }
264
+ },
265
+ watch: {
266
+ treeData(val) {
267
+ if (this.treeData.length) {
268
+ this.currentValue = this.row[this.linkedField]
269
+ this.treeDefaultExpandedKeys = []
270
+ this.treeDefaultExpandedKeys.push(this.currentValue)
271
+ } else {
272
+ this.currentValue = this.value
273
+ }
274
+ },
275
+ edit(value) {
276
+ // debugger
277
+ if (value) {
278
+ if (this.treeData.length) {
279
+ this.currentValue = this.row[this.linkedField]
280
+ } else {
281
+ this.currentValue = this.value
282
+ }
283
+ }
284
+ },
285
+ },
286
+ computed: {},
287
+ methods: {
288
+ /**
289
+ * 查询数据
290
+ */
291
+ searchData() {
292
+ let tempExp = {
293
+ operator: 'or',
294
+ expressions: [],
295
+ }
296
+
297
+ let postExpression = {
298
+ field: this.field,
299
+ expression: tempExp,
300
+ extendParams: {},
301
+ }
302
+ let repeatRowInfo = {
303
+ field: '',
304
+ values: [],
305
+ }
306
+ //查询之前从外部组件构造其他的条件
307
+ this.$emit('preSearch', postExpression, repeatRowInfo, this.row)
308
+ let postData = {
309
+ begin: 1,
310
+ size: 0,
311
+ expression: postExpression.expression,
312
+ sorts: [],
313
+ extendParams: postExpression.extendParams,
314
+ }
315
+ let tempApi = this.getPostApi(postData)
316
+ let vm = this
317
+ vm.gridLoading = true
318
+ request({
319
+ url: tempApi,
320
+ method: this.method,
321
+ data: postData,
322
+ })
323
+ .then((responseData) => {
324
+ vm.treeData = responseData.content
325
+ if (this.linkedTitle.length) {
326
+ XEUtils.eachTree(vm.treeData, (item) => {
327
+ let title = ''
328
+ XEUtils.arrayEach(this.linkedTitle, (newTitle) => {
329
+ title = title + item[newTitle] + '-'
330
+ })
331
+ item[this.replaceFields.title] = title.slice(0, -1)
332
+ })
333
+ }
334
+ })
335
+ .catch((error) => {
336
+ console.error(error)
337
+ })
338
+ .finally(() => {
339
+ vm.gridLoading = false
340
+ })
341
+ },
342
+ getPostApi(postData) {
343
+ let tempApi = this.api
344
+ if (this.api.indexOf('?') > 0) {
345
+ tempApi = this.api.substring(0, this.api.indexOf('?'))
346
+ let tempExtenParams = this.api.substring(this.api.indexOf('?') + 1)
347
+ tempExtenParams = replaceParam(tempExtenParams, this.formRow)
348
+ let tempSplitParams = tempExtenParams.split('&')
349
+ for (let i = 0; i < tempSplitParams.length; i++) {
350
+ let tempSplitValue = tempSplitParams[i].split('=')
351
+ this.$set(postData.extendParams, tempSplitValue[0], tempSplitValue[1])
352
+ }
353
+ }
354
+ return tempApi
355
+ },
356
+ routeLinkClick() {
357
+ //首先需要判断是否有权限
358
+ this.$router.pushRoute({
359
+ name: this.route.name,
360
+ query: { id: this.row[this.route.field] },
361
+ })
362
+ },
363
+ selectData(value, node) {
364
+ // this.row[this.linkedField] = value
365
+ // this.row[this.field] = node.title
366
+ this.$set(this.row, this.linkedField, value)
367
+ this.$set(this.row, this.field, node.title)
368
+ this.$emit('selectChanged', this.row)
369
+ },
370
+ filterTreeNode(inputValue,treeNode){
371
+ if(treeNode.data.props.dataRef.name.indexOf(inputValue)>-1){
372
+ //存在inputValue则返回true,显示该节点
373
+ return true;
374
+ }
375
+ //不存在inputValue则检查父节点是否包含inputValue
376
+ let parentId = treeNode.data.props.dataRef.parentId;
377
+ while(parentId){
378
+ let parentNode = XEUtils.findTree(this.treeData, p=>p.id===parentId)
379
+ if(parentNode){
380
+ if(parentNode.item.name.indexOf(inputValue)>-1){
381
+ return true
382
+ }
383
+ parentId = parentNode.item.parentId
384
+ }else{
385
+ break
386
+ }
387
+ }
388
+ return false
389
+ },
390
+ changeData(value) {
391
+ if (!value) {
392
+ this.$set(this.row, this.linkedField, '')
393
+ this.$set(this.row, this.field, '')
394
+ this.$emit('selectChanged', this.row)
395
+ }
396
+ },
397
+ },
398
+ }
399
+ </script>
400
+
401
+ <style lang="scss" scoped>
402
+ // ::v-deep .ant-select-tree-dropdown::-webkit-scrollbar {
403
+ // width: 5px;
404
+ // }
405
+ // ::v-deep .ant-select-tree-dropdown::-webkit-scrollbar-thumb {
406
+ // /*滚动条里面小方块*/
407
+ // border-radius: 10px;
408
+ // -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
409
+ // background: #e5e5e5;
410
+ // }
411
+ // ::v-deep .ant-select-tree-dropdown::-webkit-scrollbar-track {
412
+ // /*滚动条里面轨道*/
413
+ // -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
414
+ // border-radius: 10px;
415
+ // background: #ffffff;
416
+ // }
417
+ .pulldown-grid {
418
+ min-width: 600px;
419
+ width: auto;
420
+ height: 350px;
421
+ background-color: #fff;
422
+ box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
423
+ }
424
+
425
+ .d-grid-control {
426
+ height: 30px;
427
+ }
428
+ .interceptor-class {
429
+ padding: 10px;
430
+ ::v-deep .ant-btn {
431
+ margin: 10px 10px 0;
432
+ }
433
+ }
434
+ </style>
435
+ <style lang="less">
436
+ @import '../../styles/default.less';
437
+ </style>