bri-components 1.5.22 → 1.6.1

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 (154) hide show
  1. package/README.md +83 -83
  2. package/lib/styles/bundle.css +12 -12
  3. package/lib/styles/font/fontello.svg +31 -31
  4. package/package.json +127 -125
  5. package/src/components/Error/Error403.vue +42 -42
  6. package/src/components/Error/Error404.vue +40 -40
  7. package/src/components/Error/Error500.vue +51 -51
  8. package/src/components/Error/error.less +162 -162
  9. package/src/components/Error/errorBack.vue +40 -40
  10. package/src/components/controls/DshControlInput.vue +195 -195
  11. package/src/components/controls/base/BriUpload/BriUpload.vue +435 -434
  12. package/src/components/controls/base/BriUpload/BriUploadImage.vue +430 -377
  13. package/src/components/controls/base/BriUpload/uploadList.vue +738 -727
  14. package/src/components/controls/base/BriUpload/uploadMixin.js +453 -446
  15. package/src/components/controls/base/DshCascader/DshCascader.vue +215 -215
  16. package/src/components/controls/base/DshCascader/components/cascaderModal.vue +366 -366
  17. package/src/components/controls/base/DshCascader/components/cascaderPicker.vue +416 -416
  18. package/src/components/controls/base/DshCascader/components/cascaderSimple.vue +141 -141
  19. package/src/components/controls/base/DshCascader/components/cascaderTree.vue +151 -151
  20. package/src/components/controls/base/DshCoordinates.vue +587 -585
  21. package/src/components/controls/base/DshDate/DshDate.vue +191 -191
  22. package/src/components/controls/base/DshDate/DshDaterange.vue +186 -186
  23. package/src/components/controls/base/DshDivider.vue +201 -201
  24. package/src/components/controls/base/DshEditor.vue +274 -274
  25. package/src/components/controls/base/DshInput/BriInputs.vue +166 -166
  26. package/src/components/controls/base/DshInput/DshInput.vue +260 -260
  27. package/src/components/controls/base/DshNumber/BriInputNumber/BriInputNumber.vue +435 -435
  28. package/src/components/controls/base/DshNumber/BriInputNumber/mixins/emitter.js +34 -34
  29. package/src/components/controls/base/DshNumber/BriInputNumber/mixins/form.js +14 -14
  30. package/src/components/controls/base/DshNumber/BriInputNumber/utils/assist.js +322 -322
  31. package/src/components/controls/base/DshNumber/DshNumber.vue +143 -143
  32. package/src/components/controls/base/DshNumber/DshNumberange.vue +109 -109
  33. package/src/components/controls/base/DshSelect/DshCheckbox.vue +168 -168
  34. package/src/components/controls/base/DshSelect/DshSelect.vue +180 -180
  35. package/src/components/controls/base/DshSelect/DshSelectAll.vue +269 -269
  36. package/src/components/controls/base/DshSwitch/DshSwitch.vue +115 -115
  37. package/src/components/controls/control.less +324 -324
  38. package/src/components/controls/controlMap.js +117 -117
  39. package/src/components/controls/extra/DshColor.vue +81 -81
  40. package/src/components/controls/extra/DshThemeColor.vue +100 -100
  41. package/src/components/controls/extra/DshThemeIcon.vue +122 -122
  42. package/src/components/controls/mixins/cascaderMixin.js +325 -325
  43. package/src/components/controls/mixins/cascaderPickerMixin.js +227 -227
  44. package/src/components/controls/mixins/cascaderTableMixin.js +130 -130
  45. package/src/components/controls/mixins/controlMixin.js +393 -393
  46. package/src/components/controls/mixins/dateMixin.js +149 -149
  47. package/src/components/controls/mixins/flatTableMixin.js +111 -111
  48. package/src/components/controls/mixins/numberMixin.js +112 -112
  49. package/src/components/controls/mixins/selectMixin.js +233 -233
  50. package/src/components/controls/mixins/switchMixin.js +87 -87
  51. package/src/components/controls/mixins/userAndDepartMixin.js +260 -260
  52. package/src/components/controls/senior/DshLabels.vue +333 -333
  53. package/src/components/controls/senior/DshPackage.vue +57 -57
  54. package/src/components/controls/senior/cascaderTable.vue +213 -213
  55. package/src/components/controls/senior/correlation.vue +135 -135
  56. package/src/components/controls/senior/flatTable.vue +138 -138
  57. package/src/components/controls/senior/selectDepartments.vue +397 -399
  58. package/src/components/controls/senior/selectUsers/departMenu.vue +296 -293
  59. package/src/components/controls/senior/selectUsers/selectUsers.vue +712 -712
  60. package/src/components/controls/special/DshBack.vue +42 -42
  61. package/src/components/controls/special/DshUndeveloped.vue +41 -41
  62. package/src/components/form/DshAdvSearch.vue +510 -510
  63. package/src/components/form/DshDefaultSearch.vue +260 -260
  64. package/src/components/form/DshForm.vue +494 -494
  65. package/src/components/form/searchMixin.js +376 -376
  66. package/src/components/list/BriCard.vue +95 -95
  67. package/src/components/list/BriTable.vue +205 -205
  68. package/src/components/list/BriTree.vue +529 -529
  69. package/src/components/list/BriTreeItem.vue +163 -163
  70. package/src/components/list/DshBox/DshBox.vue +219 -219
  71. package/src/components/list/DshBox/DshCard.vue +446 -446
  72. package/src/components/list/DshBox/DshCrossTable.vue +827 -827
  73. package/src/components/list/DshBox/DshList.vue +404 -404
  74. package/src/components/list/DshBox/DshPanel.vue +669 -669
  75. package/src/components/list/DshBox/DshSingleData.vue +119 -119
  76. package/src/components/list/DshBox/DshTable.vue +239 -239
  77. package/src/components/list/DshCascaderTable.vue +115 -115
  78. package/src/components/list/DshFlatTable.vue +334 -337
  79. package/src/components/list/DshPage.vue +194 -194
  80. package/src/components/list/DshTreeTable.vue +113 -113
  81. package/src/components/list/common/importModal.vue +243 -243
  82. package/src/components/list/common/quoteListModal.vue +206 -206
  83. package/src/components/list/mixins/DshCascaderTableMixin.js +278 -278
  84. package/src/components/list/mixins/DshFlatTableMixin.js +509 -509
  85. package/src/components/list/mixins/DshTreeTableMixin.js +286 -286
  86. package/src/components/list/mixins/tableBaseMixin.js +1653 -1653
  87. package/src/components/list/mixins/treeTableBaseMixin.js +145 -145
  88. package/src/components/other/BriAvatar.vue +166 -166
  89. package/src/components/other/BriCode.vue +125 -125
  90. package/src/components/other/BriCollapseTree.vue +207 -207
  91. package/src/components/other/BriGantt.vue +1087 -1087
  92. package/src/components/other/BriIframe.vue +116 -116
  93. package/src/components/other/BriLoading.vue +171 -171
  94. package/src/components/other/BriSvg.vue +27 -27
  95. package/src/components/other/DshColorPanel.vue +128 -128
  96. package/src/components/other/DshMenuNav.vue +188 -188
  97. package/src/components/other/DshVideoPlayer.vue +184 -0
  98. package/src/components/small/BriButton.vue +71 -71
  99. package/src/components/small/BriDrawer.vue +169 -169
  100. package/src/components/small/BriTooltip.vue +87 -87
  101. package/src/components/small/DshBtnModal.vue +68 -68
  102. package/src/components/small/DshButtons.vue +324 -324
  103. package/src/components/small/DshDropdown.vue +225 -225
  104. package/src/components/small/DshIcons.vue +59 -59
  105. package/src/components/small/DshListRender.js +21 -21
  106. package/src/components/small/DshModal.vue +160 -160
  107. package/src/components/small/DshSteps.vue +141 -141
  108. package/src/components/small/DshTabs.vue +598 -598
  109. package/src/components/small/DshTabsSet.vue +309 -309
  110. package/src/components/small/DshTags.vue +251 -251
  111. package/src/components/small/DshTitle.vue +50 -50
  112. package/src/components/small/render.js +20 -20
  113. package/src/components/unit/DshFormUnit.vue +398 -398
  114. package/src/components/unit/DshListUnit.vue +115 -115
  115. package/src/components/unit/unitMixin.js +86 -86
  116. package/src/data/index.js +4 -4
  117. package/src/index.js +287 -285
  118. package/src/styles/bundle.css +12 -12
  119. package/src/styles/components/BriButton.less +307 -307
  120. package/src/styles/components/BriTable.less +344 -344
  121. package/src/styles/components/DshModal.less +257 -257
  122. package/src/styles/components/index.less +3 -3
  123. package/src/styles/global/animate.less +11 -11
  124. package/src/styles/global/base.less +45 -45
  125. package/src/styles/global/box.less +186 -186
  126. package/src/styles/global/control.less +122 -122
  127. package/src/styles/global/flex.less +282 -282
  128. package/src/styles/global/global.less +8 -8
  129. package/src/styles/global/text.less +59 -59
  130. package/src/styles/global/variables.less +85 -85
  131. package/src/styles/iconfont/iconfont.css +254 -254
  132. package/src/styles/iconfont/iconfont.json +422 -422
  133. package/src/styles/iconfont/iconfont.svg +137 -137
  134. package/src/styles/index.less +26 -26
  135. package/src/styles/reset-easytable.less +21 -21
  136. package/src/styles/reset-iview-controls.less +145 -145
  137. package/src/styles/reset-iview-other.less +49 -49
  138. package/src/styles/reset-iview-variables.less +43 -43
  139. package/src/styles/reset.less +45 -45
  140. package/src/utils/index.js +3 -5
  141. package/lib/0.bri-components.min.js +0 -1
  142. package/lib/1.bri-components.min.js +0 -1
  143. package/lib/10.bri-components.min.js +0 -1
  144. package/lib/11.bri-components.min.js +0 -1
  145. package/lib/2.bri-components.min.js +0 -1
  146. package/lib/3.bri-components.min.js +0 -1
  147. package/lib/4.bri-components.min.js +0 -1
  148. package/lib/5.bri-components.min.js +0 -1
  149. package/lib/6.bri-components.min.js +0 -1
  150. package/lib/7.bri-components.min.js +0 -1
  151. package/lib/8.bri-components.min.js +0 -1
  152. package/lib/9.bri-components.min.js +0 -1
  153. package/lib/bri-components.min.js +0 -18
  154. package/src/utils/table.js +0 -175
@@ -1,325 +1,325 @@
1
- import controlMixin from "./controlMixin.js";
2
- import { resourceData, regionDataMap, userIndustryData } from "bri-datas";
3
-
4
- export default {
5
- mixins: [
6
- controlMixin
7
- ],
8
- components: {},
9
- props: {},
10
- data () {
11
- return {};
12
- },
13
- computed: {
14
- basePropsObj () {
15
- const _joinSymbol = this.propsObj._joinSymbol || "/";
16
- return {
17
- _regionType: "default", // "default", "benji"
18
- _showMode: "default", // "default", "custom", "simple"
19
- _searchShowMode: undefined, // "tree", "default", "custom", "simple"
20
-
21
- _saveKey: "_key",
22
- _valueKey: "code",
23
- _nameKey: "name",
24
- colorMap: resourceData.colorMap,
25
- _useColor: false,
26
- _filterable: true, // 是否支持搜索
27
- _cascaderLevel: undefined, // 级联数据取到第几级
28
- _reverseFilter: false, // 是否反向过滤,默认正向过滤
29
- _cascaderFilterVals: [], // 过滤的数据的第一级选项
30
- _cascaderSelectVals: [], // 过滤的数据的级联选项
31
- _renderFormat: (labels) => labels.join(_joinSymbol),
32
- _data: [],
33
-
34
- ...this.propsObj,
35
- ...this.commonDealPropsObj,
36
-
37
- _changeOnSelect: this.isInAnySearch
38
- ? true
39
- : this.propsObj._changeOnSelect == undefined ? false : this.propsObj._changeOnSelect, // 每级菜单都可取值 -默认取末级
40
- _joinSymbol: _joinSymbol // 级联拼接符
41
- };
42
- },
43
- subType () {
44
- return this.selfPropsObj._regionType;
45
- },
46
- showMode () {
47
- return this.isInAnySearch
48
- ? this.selfPropsObj._searchShowMode || this.selfPropsObj._showMode
49
- : this.selfPropsObj._showMode;
50
- },
51
-
52
- saveKey () {
53
- return this.selfPropsObj._saveKey;
54
- },
55
- valueKey () {
56
- return this.selfPropsObj._valueKey;
57
- },
58
- nameKey () {
59
- return this.selfPropsObj._nameKey;
60
- },
61
- colorMap () {
62
- return this.selfPropsObj.colorMap;
63
- },
64
- useColor () {
65
- return this.selfPropsObj._useColor;
66
- },
67
- // filterable () {
68
- // return this.selfPropsObj._filterable;
69
- // },
70
- cascaderLevel () {
71
- return this.selfPropsObj._cascaderLevel;
72
- },
73
- reverseFilter () {
74
- return this.selfPropsObj._reverseFilter;
75
- },
76
- filterVals () {
77
- return this.selfPropsObj._cascaderFilterVals;
78
- },
79
- cascaderVals () {
80
- return this.selfPropsObj._cascaderSelectVals;
81
- },
82
- renderFormat () {
83
- return this.selfPropsObj._renderFormat;
84
- },
85
-
86
- originData () {
87
- return ["userIndustry"].includes(this.controlType)
88
- ? userIndustryData
89
- : ["region", "regions"].includes(this.controlType)
90
- ? regionDataMap[this.subType] || regionDataMap.default
91
- : this.selfPropsObj._data;
92
- },
93
- cascaderAllData () {
94
- const loop = (arr = [], level, parentKeys = [], filterVals = [], cascaderVals = [], reverseFilter = false, isMb = false, saveKey = "_key", valueKey = "code", nameKey = "name") => {
95
- arr = cascaderVals.length
96
- ? arr.filter(item => {
97
- const itemKey = item[saveKey];
98
- const keys = [...parentKeys, itemKey]; // !!此处就是用_key拼,不会用别的属性
99
-
100
- return reverseFilter
101
- ? !cascaderVals.some(valArr =>
102
- keys.length < valArr.length
103
- ? false
104
- : valArr.every((valArrKey, index) => valArrKey === keys[index])
105
- )
106
- : cascaderVals.some(valArr =>
107
- keys.length < valArr.length
108
- ? keys.every((levelKey, index) => levelKey === valArr[index])
109
- : valArr.every((valArrKey, index) => valArrKey === keys[index])
110
- );
111
- })
112
- : filterVals.length
113
- ? arr.filter(item =>
114
- reverseFilter
115
- ? !filterVals.includes(item[saveKey])
116
- : filterVals.includes(item[saveKey])
117
- )
118
- : arr;
119
-
120
- return arr.reduce((newArr, item) => {
121
- const itemKey = item[saveKey];
122
- const keys = [...parentKeys, itemKey]; // !!此处就是用_key拼,不会用别的属性
123
- let newItem = {
124
- keys: keys,
125
- code: keys.join(""),
126
- ...item
127
- };
128
- newItem = {
129
- ...newItem,
130
- value: newItem[valueKey],
131
- label: newItem[nameKey]
132
- };
133
-
134
- if (this.showMode === "tree") {
135
- newItem.title = newItem[nameKey];
136
- newItem.checked = this.multipleMode
137
- ? this.curValList.some(valListItem => valListItem.join("") === newItem.code)
138
- : this.curValList.join("") === newItem.code;
139
- newItem.expand = !!newItem.expand;
140
- }
141
-
142
- if (
143
- (!level || level > newItem.level) &&
144
- (newItem.children && newItem.children.length)
145
- ) {
146
- newItem.children = loop(newItem.children, level, newItem.keys, [], cascaderVals, reverseFilter, isMb, saveKey, valueKey, nameKey);
147
-
148
- if (newItem.children.length) {
149
- newItem.loading = false; // 此代码pc端在用:为了所请求的级,出现继续加载的箭头图标
150
- newItem.isLeaf = false;
151
-
152
- if (this.showMode === "tree") {
153
- newItem.expand = newItem.expand || newItem.checked || newItem.children.some(childItem => childItem.expand || childItem.checked);
154
- }
155
- } else {
156
- newItem.children = isMb ? undefined : [];
157
- newItem.isLeaf = true;
158
- }
159
- } else {
160
- newItem.children = isMb ? undefined : [];
161
- newItem.isLeaf = true;
162
- }
163
-
164
- return [
165
- ...newArr,
166
- newItem
167
- ];
168
- }, []);
169
- };
170
-
171
- return loop(this.originData, this.cascaderLevel, [], this.filterVals, this.cascaderVals, this.reverseFilter, this.isMb, this.saveKey, this.valueKey, this.nameKey);
172
- },
173
- cascaderData () {
174
- const loop = (arr = [], isMb) => {
175
- return arr
176
- ? arr.reduce((newArr, item) => {
177
- if (item.rm !== 1) {
178
- let newItem = {
179
- ...item
180
- };
181
-
182
- if (newItem.children && newItem.children.length) {
183
- newItem.children = loop(newItem.children, isMb);
184
-
185
- if (newItem.children.length) {
186
- // 无需处理
187
- } else {
188
- newItem.children = isMb ? undefined : [];
189
- }
190
- } else {
191
- newItem.children = isMb ? undefined : [];
192
- }
193
-
194
- newArr.push(newItem);
195
- }
196
-
197
- return newArr;
198
- }, [])
199
- : [];
200
- };
201
-
202
- return loop(this.cascaderAllData, this.isMobile);
203
- },
204
-
205
- curValObj () {
206
- return this.getItemObj(this.curValList);
207
- },
208
- curValName: {
209
- get () {
210
- return this.curValObj
211
- ? this.curValObj[this.nameKey]
212
- : "";
213
- },
214
- set (val) {
215
- if (!val) {
216
- this.clickClear();
217
- }
218
- }
219
- },
220
- showVal () {
221
- return this.$isEmptyData(this.curValList)
222
- ? this.emptyShowVal
223
- : this.curValName;
224
- },
225
- // 已选择项的对象列表
226
- curValObjList () {
227
- return this.curValList.map((item, index) =>
228
- index < this.curValList.length - 1
229
- ? this.getItemObj(item, { marginRight: "4px" })
230
- : this.getItemObj(item)
231
- );
232
- },
233
- curValNameList () {
234
- return this.curValObjList.map(item => item[this.nameKey]);
235
- },
236
- showMulVal () {
237
- return this.$isEmptyData(this.curValList)
238
- ? this.emptyShowVal
239
- : this.curValNameList.join("、");
240
- }
241
- },
242
- created () { },
243
- methods: {
244
- // 单选 -确认回调
245
- confirmCb (selectedValue, selectedOptions) {
246
- this.curValList = selectedValue;
247
-
248
- this.closeModal();
249
- },
250
- // 多选 -追加的确认回调
251
- confirmAddCb (selectedValue, selectedOptions) {
252
- if (this.curValList.some(item => JSON.stringify(item) === JSON.stringify(selectedValue))) {
253
- this.$Message.error({
254
- content: `请勿重复选择"${this.transformFullName(selectedValue)}"!`,
255
- duration: 4
256
- });
257
- } else {
258
- this.curValList = [...this.curValList, selectedValue];
259
-
260
- this.closeModal();
261
- }
262
- },
263
- // 多选 -整体多选的回调
264
- confirmMulCb (selectedValueArr, selectedOptionsArr) {
265
- this.curValList = ["eq", "ne"].includes(this.value.fieldOperator)
266
- ? [...selectedValueArr]
267
- : selectedValueArr.reduce((newNodeArr, node, nodeIndex) => (
268
- newNodeArr.every(newNode => !node.join("").startsWith(newNode.join("")))
269
- ? [
270
- ...newNodeArr,
271
- node
272
- ]
273
- : newNodeArr
274
- ), []);
275
-
276
- this.closeModal();
277
- },
278
- // 删除
279
- clickDeleteItem (nameItem, index) {
280
- this.curValList.splice(index, 1);
281
- this.curValList = [...this.curValList];
282
- },
283
-
284
- /* --------- 工具类 -------- */
285
- getItemObj (val, selfStyle = {}) {
286
- const objArr = this.$getTreeLinealDatas(val, this.cascaderAllData, undefined, this.saveKey);
287
- const obj = objArr.length
288
- ? {
289
- ...objArr.slice(-1)[0],
290
- [this.nameKey]: this.transformFullName(val)
291
- }
292
- : {
293
- [this.saveKey]: val,
294
- [this.nameKey]: `提示:选项${val}已不存在`
295
- };
296
-
297
- return !this.$isEmptyData(val)
298
- ? {
299
- name: obj[this.nameKey], // 查看状态时tag用
300
- ...obj,
301
- style: {
302
- ...this.tagStyle,
303
- ...this.getItemColorStyle(obj),
304
- ...selfStyle
305
- }, // 查看状态时tag用
306
- color: undefined
307
- }
308
- : undefined;
309
- },
310
- // 每项的颜色相关style --flat方式在用
311
- getItemColorStyle (item = {}) {
312
- const color = this.colorMap[item.color] || this.colorMap["color-default"];
313
- return this.useColor
314
- ? {
315
- backgroundColor: this.$getColor(color, 0.1),
316
- color: color
317
- }
318
- : {};
319
- },
320
- // 转化出级联全名
321
- transformFullName (val) {
322
- return this.renderFormat(this.$getTreeLinealDatas(val, this.cascaderAllData, this.nameKey, this.saveKey));
323
- }
324
- }
325
- };
1
+ import controlMixin from "./controlMixin.js";
2
+ import { resourceData, regionDataMap, userIndustryData } from "bri-datas";
3
+
4
+ export default {
5
+ mixins: [
6
+ controlMixin
7
+ ],
8
+ components: {},
9
+ props: {},
10
+ data () {
11
+ return {};
12
+ },
13
+ computed: {
14
+ basePropsObj () {
15
+ const _joinSymbol = this.propsObj._joinSymbol || "/";
16
+ return {
17
+ _regionType: "default", // "default", "benji"
18
+ _showMode: "default", // "default", "custom", "simple"
19
+ _searchShowMode: undefined, // "tree", "default", "custom", "simple"
20
+
21
+ _saveKey: "_key",
22
+ _valueKey: "code",
23
+ _nameKey: "name",
24
+ colorMap: resourceData.colorMap,
25
+ _useColor: false,
26
+ _filterable: true, // 是否支持搜索
27
+ _cascaderLevel: undefined, // 级联数据取到第几级
28
+ _reverseFilter: false, // 是否反向过滤,默认正向过滤
29
+ _cascaderFilterVals: [], // 过滤的数据的第一级选项
30
+ _cascaderSelectVals: [], // 过滤的数据的级联选项
31
+ _renderFormat: (labels) => labels.join(_joinSymbol),
32
+ _data: [],
33
+
34
+ ...this.propsObj,
35
+ ...this.commonDealPropsObj,
36
+
37
+ _changeOnSelect: this.isInAnySearch
38
+ ? true
39
+ : this.propsObj._changeOnSelect == undefined ? false : this.propsObj._changeOnSelect, // 每级菜单都可取值 -默认取末级
40
+ _joinSymbol: _joinSymbol // 级联拼接符
41
+ };
42
+ },
43
+ subType () {
44
+ return this.selfPropsObj._regionType;
45
+ },
46
+ showMode () {
47
+ return this.isInAnySearch
48
+ ? this.selfPropsObj._searchShowMode || this.selfPropsObj._showMode
49
+ : this.selfPropsObj._showMode;
50
+ },
51
+
52
+ saveKey () {
53
+ return this.selfPropsObj._saveKey;
54
+ },
55
+ valueKey () {
56
+ return this.selfPropsObj._valueKey;
57
+ },
58
+ nameKey () {
59
+ return this.selfPropsObj._nameKey;
60
+ },
61
+ colorMap () {
62
+ return this.selfPropsObj.colorMap;
63
+ },
64
+ useColor () {
65
+ return this.selfPropsObj._useColor;
66
+ },
67
+ // filterable () {
68
+ // return this.selfPropsObj._filterable;
69
+ // },
70
+ cascaderLevel () {
71
+ return this.selfPropsObj._cascaderLevel;
72
+ },
73
+ reverseFilter () {
74
+ return this.selfPropsObj._reverseFilter;
75
+ },
76
+ filterVals () {
77
+ return this.selfPropsObj._cascaderFilterVals;
78
+ },
79
+ cascaderVals () {
80
+ return this.selfPropsObj._cascaderSelectVals;
81
+ },
82
+ renderFormat () {
83
+ return this.selfPropsObj._renderFormat;
84
+ },
85
+
86
+ originData () {
87
+ return ["userIndustry"].includes(this.controlType)
88
+ ? userIndustryData
89
+ : ["region", "regions"].includes(this.controlType)
90
+ ? regionDataMap[this.subType] || regionDataMap.default
91
+ : this.selfPropsObj._data;
92
+ },
93
+ cascaderAllData () {
94
+ const loop = (arr = [], level, parentKeys = [], filterVals = [], cascaderVals = [], reverseFilter = false, isMb = false, saveKey = "_key", valueKey = "code", nameKey = "name") => {
95
+ arr = cascaderVals.length
96
+ ? arr.filter(item => {
97
+ const itemKey = item[saveKey];
98
+ const keys = [...parentKeys, itemKey]; // !!此处就是用_key拼,不会用别的属性
99
+
100
+ return reverseFilter
101
+ ? !cascaderVals.some(valArr =>
102
+ keys.length < valArr.length
103
+ ? false
104
+ : valArr.every((valArrKey, index) => valArrKey === keys[index])
105
+ )
106
+ : cascaderVals.some(valArr =>
107
+ keys.length < valArr.length
108
+ ? keys.every((levelKey, index) => levelKey === valArr[index])
109
+ : valArr.every((valArrKey, index) => valArrKey === keys[index])
110
+ );
111
+ })
112
+ : filterVals.length
113
+ ? arr.filter(item =>
114
+ reverseFilter
115
+ ? !filterVals.includes(item[saveKey])
116
+ : filterVals.includes(item[saveKey])
117
+ )
118
+ : arr;
119
+
120
+ return arr.reduce((newArr, item) => {
121
+ const itemKey = item[saveKey];
122
+ const keys = [...parentKeys, itemKey]; // !!此处就是用_key拼,不会用别的属性
123
+ let newItem = {
124
+ keys: keys,
125
+ code: keys.join(""),
126
+ ...item
127
+ };
128
+ newItem = {
129
+ ...newItem,
130
+ value: newItem[valueKey],
131
+ label: newItem[nameKey]
132
+ };
133
+
134
+ if (this.showMode === "tree") {
135
+ newItem.title = newItem[nameKey];
136
+ newItem.checked = this.multipleMode
137
+ ? this.curValList.some(valListItem => valListItem.join("") === newItem.code)
138
+ : this.curValList.join("") === newItem.code;
139
+ newItem.expand = !!newItem.expand;
140
+ }
141
+
142
+ if (
143
+ (!level || level > newItem.level) &&
144
+ (newItem.children && newItem.children.length)
145
+ ) {
146
+ newItem.children = loop(newItem.children, level, newItem.keys, [], cascaderVals, reverseFilter, isMb, saveKey, valueKey, nameKey);
147
+
148
+ if (newItem.children.length) {
149
+ newItem.loading = false; // 此代码pc端在用:为了所请求的级,出现继续加载的箭头图标
150
+ newItem.isLeaf = false;
151
+
152
+ if (this.showMode === "tree") {
153
+ newItem.expand = newItem.expand || newItem.checked || newItem.children.some(childItem => childItem.expand || childItem.checked);
154
+ }
155
+ } else {
156
+ newItem.children = isMb ? undefined : [];
157
+ newItem.isLeaf = true;
158
+ }
159
+ } else {
160
+ newItem.children = isMb ? undefined : [];
161
+ newItem.isLeaf = true;
162
+ }
163
+
164
+ return [
165
+ ...newArr,
166
+ newItem
167
+ ];
168
+ }, []);
169
+ };
170
+
171
+ return loop(this.originData, this.cascaderLevel, [], this.filterVals, this.cascaderVals, this.reverseFilter, this.isMb, this.saveKey, this.valueKey, this.nameKey);
172
+ },
173
+ cascaderData () {
174
+ const loop = (arr = [], isMb) => {
175
+ return arr
176
+ ? arr.reduce((newArr, item) => {
177
+ if (item.rm !== 1) {
178
+ let newItem = {
179
+ ...item
180
+ };
181
+
182
+ if (newItem.children && newItem.children.length) {
183
+ newItem.children = loop(newItem.children, isMb);
184
+
185
+ if (newItem.children.length) {
186
+ // 无需处理
187
+ } else {
188
+ newItem.children = isMb ? undefined : [];
189
+ }
190
+ } else {
191
+ newItem.children = isMb ? undefined : [];
192
+ }
193
+
194
+ newArr.push(newItem);
195
+ }
196
+
197
+ return newArr;
198
+ }, [])
199
+ : [];
200
+ };
201
+
202
+ return loop(this.cascaderAllData, this.isMobile);
203
+ },
204
+
205
+ curValObj () {
206
+ return this.getItemObj(this.curValList);
207
+ },
208
+ curValName: {
209
+ get () {
210
+ return this.curValObj
211
+ ? this.curValObj[this.nameKey]
212
+ : "";
213
+ },
214
+ set (val) {
215
+ if (!val) {
216
+ this.clickClear();
217
+ }
218
+ }
219
+ },
220
+ showVal () {
221
+ return this.$isEmptyData(this.curValList)
222
+ ? this.emptyShowVal
223
+ : this.curValName;
224
+ },
225
+ // 已选择项的对象列表
226
+ curValObjList () {
227
+ return this.curValList.map((item, index) =>
228
+ index < this.curValList.length - 1
229
+ ? this.getItemObj(item, { marginRight: "4px" })
230
+ : this.getItemObj(item)
231
+ );
232
+ },
233
+ curValNameList () {
234
+ return this.curValObjList.map(item => item[this.nameKey]);
235
+ },
236
+ showMulVal () {
237
+ return this.$isEmptyData(this.curValList)
238
+ ? this.emptyShowVal
239
+ : this.curValNameList.join("、");
240
+ }
241
+ },
242
+ created () { },
243
+ methods: {
244
+ // 单选 -确认回调
245
+ confirmCb (selectedValue, selectedOptions) {
246
+ this.curValList = selectedValue;
247
+
248
+ this.closeModal();
249
+ },
250
+ // 多选 -追加的确认回调
251
+ confirmAddCb (selectedValue, selectedOptions) {
252
+ if (this.curValList.some(item => JSON.stringify(item) === JSON.stringify(selectedValue))) {
253
+ this.$Message.error({
254
+ content: `请勿重复选择"${this.transformFullName(selectedValue)}"!`,
255
+ duration: 4
256
+ });
257
+ } else {
258
+ this.curValList = [...this.curValList, selectedValue];
259
+
260
+ this.closeModal();
261
+ }
262
+ },
263
+ // 多选 -整体多选的回调
264
+ confirmMulCb (selectedValueArr, selectedOptionsArr) {
265
+ this.curValList = ["eq", "ne"].includes(this.value.fieldOperator)
266
+ ? [...selectedValueArr]
267
+ : selectedValueArr.reduce((newNodeArr, node, nodeIndex) => (
268
+ newNodeArr.every(newNode => !node.join("").startsWith(newNode.join("")))
269
+ ? [
270
+ ...newNodeArr,
271
+ node
272
+ ]
273
+ : newNodeArr
274
+ ), []);
275
+
276
+ this.closeModal();
277
+ },
278
+ // 删除
279
+ clickDeleteItem (nameItem, index) {
280
+ this.curValList.splice(index, 1);
281
+ this.curValList = [...this.curValList];
282
+ },
283
+
284
+ /* --------- 工具类 -------- */
285
+ getItemObj (val, selfStyle = {}) {
286
+ const objArr = this.$getTreeLinealDatas(val, this.cascaderAllData, undefined, this.saveKey);
287
+ const obj = objArr.length
288
+ ? {
289
+ ...objArr.slice(-1)[0],
290
+ [this.nameKey]: this.transformFullName(val)
291
+ }
292
+ : {
293
+ [this.saveKey]: val,
294
+ [this.nameKey]: `提示:选项${val}已不存在`
295
+ };
296
+
297
+ return !this.$isEmptyData(val)
298
+ ? {
299
+ name: obj[this.nameKey], // 查看状态时tag用
300
+ ...obj,
301
+ style: {
302
+ ...this.tagStyle,
303
+ ...this.getItemColorStyle(obj),
304
+ ...selfStyle
305
+ }, // 查看状态时tag用
306
+ color: undefined
307
+ }
308
+ : undefined;
309
+ },
310
+ // 每项的颜色相关style --flat方式在用
311
+ getItemColorStyle (item = {}) {
312
+ const color = this.colorMap[item.color] || this.colorMap["color-default"];
313
+ return this.useColor
314
+ ? {
315
+ backgroundColor: this.$getColor(color, 0.1),
316
+ color: color
317
+ }
318
+ : {};
319
+ },
320
+ // 转化出级联全名
321
+ transformFullName (val) {
322
+ return this.renderFormat(this.$getTreeLinealDatas(val, this.cascaderAllData, this.nameKey, this.saveKey));
323
+ }
324
+ }
325
+ };