bri-components 1.3.68 → 1.3.69

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bri-components",
3
- "version": "1.3.68",
3
+ "version": "1.3.69",
4
4
  "author": "dengshanghui",
5
5
  "description": "a component lib for vue project",
6
6
  "main": "src/index.js",
@@ -1,6 +1,10 @@
1
1
  <template>
2
2
  <div
3
3
  class="DshControlInput"
4
+ :style="{
5
+ height: heightAuto ? 'auto' : '32px',
6
+ minHeight: heightAuto ? '32px' : undefined,
7
+ }"
4
8
  @mouseenter="isHover = true"
5
9
  @mouseleave="isHover = false"
6
10
  >
@@ -11,6 +15,10 @@
11
15
  <dsh-tags
12
16
  v-if="Array.isArray(value)"
13
17
  class="overflow"
18
+ :class="{
19
+ overflow: true,
20
+ 'overflow-auto': heightAuto
21
+ }"
14
22
  :list="value"
15
23
  :propsObj="{
16
24
  disabled: disabled,
@@ -65,11 +73,16 @@
65
73
  export default {
66
74
  name: "DshControlInput",
67
75
  props: {
76
+ value: [Array, Object, String],
77
+
78
+ heightAuto: {
79
+ type: Boolean,
80
+ default: false
81
+ },
68
82
  disabled: {
69
83
  type: Boolean,
70
84
  default: false
71
85
  },
72
- value: [Array, Object, String],
73
86
  propsObj: {
74
87
  type: Object,
75
88
  default () {
@@ -101,7 +114,6 @@
101
114
 
102
115
  <style lang="less" scoped>
103
116
  .DshControlInput {
104
- height: 32px;
105
117
  padding: 0px 0px 0px 7px;
106
118
  line-height: 24px;
107
119
  .dsh-flex-row-between-center();
@@ -117,6 +129,11 @@
117
129
  overflow-x: auto;
118
130
  overflow-y: hidden;
119
131
  white-space: nowrap;
132
+
133
+ &-auto {
134
+ height: auto;
135
+ white-space: normal;
136
+ }
120
137
  }
121
138
 
122
139
  .placeholder {
@@ -88,6 +88,7 @@
88
88
  :class="commonClass"
89
89
  :value="curValNameList"
90
90
  :disabled="inputPropsObj._disabled"
91
+ :heightAuto="isHeightAuto"
91
92
  :propsObj="inputPropsObj"
92
93
  @deleteItem="clickDeleteItem"
93
94
  @clear="clickClear"
@@ -14,18 +14,21 @@ export default {
14
14
  basePropsObj () {
15
15
  const _joinSymbol = this.propsObj._joinSymbol || "/";
16
16
  return {
17
+ _saveKey: "_key",
18
+ _valueKey: "code",
19
+ _nameKey: "name",
20
+
17
21
  _regionType: "default", // "default", "benji", "userIndustry"
18
22
  _showMode: "default", // "default", "custom", "simple"
19
23
  colorMap: resourceData.colorMap,
20
24
  _useColor: false,
21
- _saveKey: "_key",
22
- _valueKey: "code",
23
- _nameKey: "name",
24
25
  _filterable: true, // 是否支持搜索
25
- _data: [],
26
+ _cascaderLevel: undefined, // 级联数据取到第几级
26
27
  _reverseFilter: false, // 是否反向过滤,默认正向过滤
27
- _cascaderFilterVals: [], // 过滤的级联数据
28
+ _cascaderFilterVals: [], // 过滤的数据的第一级选项
29
+ _cascaderSelectVals: [], // 过滤的数据的级联选项
28
30
  _renderFormat: (labels) => labels.join(_joinSymbol),
31
+ _data: [],
29
32
 
30
33
  ...this.propsObj,
31
34
  ...this.commonDealPropsObj,
@@ -36,6 +39,16 @@ export default {
36
39
  _joinSymbol: _joinSymbol // 级联拼接符
37
40
  };
38
41
  },
42
+ saveKey () {
43
+ return this.selfPropsObj._saveKey;
44
+ },
45
+ valueKey () {
46
+ return this.selfPropsObj._valueKey;
47
+ },
48
+ nameKey () {
49
+ return this.selfPropsObj._nameKey;
50
+ },
51
+
39
52
  regionType () {
40
53
  return this.selfPropsObj._regionType;
41
54
  },
@@ -48,24 +61,21 @@ export default {
48
61
  useColor () {
49
62
  return this.selfPropsObj._useColor;
50
63
  },
51
- saveKey () {
52
- return this.selfPropsObj._saveKey;
53
- },
54
- valueKey () {
55
- return this.selfPropsObj._valueKey;
56
- },
57
- nameKey () {
58
- return this.selfPropsObj._nameKey;
59
- },
64
+ // filterable () {
65
+ // return this.selfPropsObj._filterable;
66
+ // },
60
67
  cascaderLevel () {
61
68
  return this.selfPropsObj._cascaderLevel;
62
69
  },
63
70
  reverseFilter () {
64
71
  return this.selfPropsObj._reverseFilter;
65
72
  },
66
- cascaderFilterVals () {
73
+ filterVals () {
67
74
  return this.selfPropsObj._cascaderFilterVals;
68
75
  },
76
+ cascaderVals () {
77
+ return this.selfPropsObj._cascaderSelectVals;
78
+ },
69
79
  renderFormat () {
70
80
  return this.selfPropsObj._renderFormat;
71
81
  },
@@ -80,51 +90,79 @@ export default {
80
90
  : this.selfPropsObj._data;
81
91
  },
82
92
  cascaderAllData () {
83
- const loop = (arr = [], level, parentKeys = [], filterVals = [], isMobile = false) => {
84
- if (filterVals.length) {
85
- arr = arr.filter(item =>
86
- this.reverseFilter
87
- ? !filterVals.includes(item[this.saveKey])
88
- : filterVals.includes(item[this.saveKey])
89
- );
90
- }
93
+ const loop = (arr = [], level, parentKeys = [], filterVals = [], cascaderVals = [], reverseFilter = false, isMobile = false, saveKey = "_key", valueKey = "code", nameKey = "name") => {
94
+ arr = cascaderVals.length
95
+ ? arr.filter(item => {
96
+ const itemKey = item[saveKey];
97
+ const keys = [...parentKeys, itemKey]; // !!此处就是用_key拼,不会用别的属性
91
98
 
92
- return arr
93
- ? arr.reduce((arr, item) => {
94
- let newItem = {
95
- keys: [...parentKeys, item[this.saveKey]], // !!此处就是用_key拼,不会用别的属性
96
- code: [...parentKeys, item._key].join(""),
97
- ...item
98
- };
99
- newItem = {
100
- ...newItem,
101
- value: newItem[this.valueKey],
102
- label: newItem[this.nameKey]
103
- };
99
+ return reverseFilter
100
+ ? !cascaderVals.some(valArr =>
101
+ keys.length < valArr.length
102
+ ? false
103
+ : valArr.every((valArrKey, index) => valArrKey === keys[index])
104
+ )
105
+ : cascaderVals.some(valArr =>
106
+ keys.length < valArr.length
107
+ ? keys.every((levelKey, index) => levelKey === valArr[index])
108
+ : valArr.every((valArrKey, index) => valArrKey === keys[index])
109
+ );
110
+ })
111
+ : filterVals.length
112
+ ? arr.filter(item => {
113
+ const itemKey = item[saveKey];
114
+
115
+ return reverseFilter
116
+ ? !filterVals.includes(itemKey)
117
+ : filterVals.includes(itemKey);
118
+ })
119
+ : arr;
120
+
121
+ return arr.reduce((newArr, item) => {
122
+ const itemKey = item[saveKey];
123
+ const keys = [...parentKeys, itemKey]; // !!此处就是用_key拼,不会用别的属性
124
+ let newItem = {
125
+ keys: keys,
126
+ code: keys.join(""),
127
+ ...item
128
+ };
129
+ newItem = {
130
+ ...newItem,
131
+ value: newItem[valueKey],
132
+ label: newItem[nameKey]
133
+ };
134
+
135
+ if (
136
+ (!level || level > newItem.level) &&
137
+ (newItem.children && newItem.children.length)
138
+ ) {
139
+ newItem.children = loop(newItem.children, level, newItem.keys, [], cascaderVals, reverseFilter, isMobile, saveKey, valueKey, nameKey);
104
140
 
105
- if (
106
- (!level || level > newItem.level) &&
107
- (newItem.children && newItem.children.length)
108
- ) {
141
+ if (newItem.children.length) {
109
142
  newItem.loading = false; // 此代码pc端在用:为了所请求的级,出现继续加载的箭头图标
110
- newItem.children = loop(newItem.children, level, newItem.keys, undefined, isMobile);
143
+ newItem.isLeaf = false;
111
144
  } else {
112
145
  newItem.children = isMobile ? undefined : [];
113
146
  newItem.isLeaf = true;
114
147
  }
115
- arr.push(newItem);
148
+ } else {
149
+ newItem.children = isMobile ? undefined : [];
150
+ newItem.isLeaf = true;
151
+ }
116
152
 
117
- return arr;
118
- }, [])
119
- : [];
153
+ return [
154
+ ...newArr,
155
+ newItem
156
+ ];
157
+ }, []);
120
158
  };
121
159
 
122
- return loop(this.originData, this.cascaderLevel, undefined, this.cascaderFilterVals, this.isMobile);
160
+ return loop(this.originData, this.cascaderLevel, [], this.filterVals, this.cascaderVals, this.reverseFilter, this.isMobile, this.saveKey, this.valueKey, this.nameKey);
123
161
  },
124
162
  cascaderData () {
125
163
  const loop = (arr = [], isMobile) => {
126
164
  return arr
127
- ? arr.reduce((arr, item) => {
165
+ ? arr.reduce((newArr, item) => {
128
166
  if (item.rm !== 1) {
129
167
  let newItem = {
130
168
  ...item
@@ -132,13 +170,20 @@ export default {
132
170
 
133
171
  if (newItem.children && newItem.children.length) {
134
172
  newItem.children = loop(newItem.children, isMobile);
173
+
174
+ if (newItem.children.length) {
175
+ // 无需处理
176
+ } else {
177
+ newItem.children = isMobile ? undefined : [];
178
+ }
135
179
  } else {
136
180
  newItem.children = isMobile ? undefined : [];
137
181
  }
138
- arr.push(newItem);
182
+
183
+ newArr.push(newItem);
139
184
  }
140
185
 
141
- return arr;
186
+ return newArr;
142
187
  }, [])
143
188
  : [];
144
189
  };
@@ -29,6 +29,9 @@
29
29
  </div>
30
30
  </div>
31
31
 
32
+ <!-- 各种模态框共用 -->
33
+ <dsh-render :render="dshRender"></dsh-render>
34
+
32
35
  <!-- 全屏查看 -->
33
36
  <dsh-modal
34
37
  class="DshCasTable-fullscreen"
@@ -24,6 +24,9 @@
24
24
  <!-- 添加行 -->
25
25
  <dsh-render :render="createOperationRender"></dsh-render>
26
26
 
27
+ <!-- 各种模态框共用 -->
28
+ <dsh-render :render="dshRender"></dsh-render>
29
+
27
30
  <!-- 全屏模式 -->
28
31
  <dsh-modal
29
32
  class="DshFlatTable-fullscreen"
@@ -56,9 +59,6 @@
56
59
  <dsh-render :render="createOperationRender"></dsh-render>
57
60
  </div>
58
61
  </dsh-modal>
59
-
60
- <!-- 各种模态框共用 -->
61
- <dsh-render :render="dshRender"></dsh-render>
62
62
  </div>
63
63
  </template>
64
64
 
@@ -24,6 +24,9 @@
24
24
  <!-- 添加行 -->
25
25
  <dsh-render :render="createOperationRender"></dsh-render>
26
26
 
27
+ <!-- 各种模态框共用 -->
28
+ <dsh-render :render="dshRender"></dsh-render>
29
+
27
30
  <!-- 全屏模式 -->
28
31
  <dsh-modal
29
32
  class="DshTreeTable-fullscreen"
@@ -56,9 +59,6 @@
56
59
  <dsh-render :render="createOperationRender"></dsh-render>
57
60
  </div>
58
61
  </dsh-modal>
59
-
60
- <!-- 各种模态框共用 -->
61
- <dsh-render :render="dshRender"></dsh-render>
62
62
  </div>
63
63
  </template>
64
64
 
@@ -170,13 +170,14 @@
170
170
  });
171
171
  },
172
172
  handleUpload () {
173
- this.loadingStatus = true;
174
173
  let formData = new FormData();
175
174
  formData.append("file_stream", this.file);
176
175
  formData.append("modKey", this.modKey);
177
- formData.append("importType", "flatTable");
178
- this.importParams._key && formData.append("_key", this.importParams._key);
179
- this.importParams._id && formData.append("_id", this.importParams._id);
176
+
177
+ Object.entries(this.importParams).forEach(arr => {
178
+ formData.append(arr[0], arr[1]);
179
+ });
180
+
180
181
  this.$https({
181
182
  url: {
182
183
  module: "sheet",
@@ -186,18 +187,17 @@
186
187
  content: {
187
188
  headers: { "Content-Type": "multipart/form-data" }
188
189
  },
190
+ loadingName: "loadingStatus",
191
+ successTip: "导入成功!",
189
192
  callback: data => {
190
- this.$Message.success("导入成功");
193
+ this.showModal = false;
191
194
  this.file = null;
192
- this.loadingStatus = false;
195
+
193
196
  this.$emit("importCb", data);
194
- this.showModal = false;
195
197
  },
196
198
  error: data => {
197
199
  this.$Message.error("导入失败:" + data.msg);
198
200
  this.file = null;
199
- this.file = null;
200
- this.loadingStatus = false;
201
201
  }
202
202
  });
203
203
  },
@@ -282,6 +282,9 @@ export default {
282
282
  hideColKeys () {
283
283
  return this.selfPropsObj._hideColKeys || [];
284
284
  },
285
+ searchLabelWidth () {
286
+ return this.selfPropsObj._searchLabelWidth;
287
+ },
285
288
  searchList () {
286
289
  return this.selfPropsObj._searchList || []; // 级联表切层级表时 值会undefined覆盖selfPropsObj默认的[]
287
290
  },
@@ -291,6 +294,14 @@ export default {
291
294
  searchListFields () {
292
295
  return this.searchList.map(searchItem => searchItem._key);
293
296
  },
297
+ searchFormList () {
298
+ return this.$filterList(this.searchListFields, this.columns).map(formItem => ({
299
+ ...formItem,
300
+ ...this.searchListMap[formItem._key],
301
+ _name: formItem._name
302
+ }));
303
+ },
304
+
294
305
  tableAdvSearch () {
295
306
  return this.$transformAdvSearch(this.selfPropsObj._tableAdvSearch, this.allFormList, this.parentObj);
296
307
  },
@@ -316,16 +327,6 @@ export default {
316
327
  isSearching () {
317
328
  return this.$isAdvSearching(this.finalTableAdvSearch);
318
329
  },
319
- searchFormList () {
320
- return this.$filterList(this.searchListFields, this.columns).map(formItem => ({
321
- ...formItem,
322
- ...this.searchListMap[formItem._key],
323
- _name: formItem._name
324
- }));
325
- },
326
- searchLabelWidth () {
327
- return this.selfPropsObj._searchLabelWidth;
328
- },
329
330
  rowsNum () {
330
331
  return this.isSearching
331
332
  ? this.showListData.length
@@ -444,7 +445,10 @@ export default {
444
445
  importParams () {
445
446
  return {
446
447
  _id: this.parentDataId,
447
- _key: this.controlKey
448
+ _key: this.controlKey,
449
+ importType: this.controlType === "cascaderTable" && ["treeTable"].includes(this.selfPropsObj._showMode)
450
+ ? this.selfPropsObj._showMode
451
+ : this.controlType
448
452
  };
449
453
  },
450
454
 
@@ -781,7 +785,7 @@ export default {
781
785
  props: {
782
786
  value: this.showImportModal,
783
787
  propsObj: this.propsObj,
784
- listParams: this.importParams
788
+ importParams: this.importParams
785
789
  },
786
790
  on: {
787
791
  input: bool => {