bri-components 1.2.55 → 1.2.56

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.2.55",
3
+ "version": "1.2.56",
4
4
  "author": "dengshanghui",
5
5
  "description": "a component lib for vue project",
6
6
  "main": "src/index.js",
@@ -37,8 +37,8 @@
37
37
  <dsh-control-input
38
38
  :class="commonClass"
39
39
  :value="curValName"
40
- :disabled="selfPropsObj._disabled"
41
- :propsObj="selfPropsObj"
40
+ :disabled="inputPropsObj._disabled"
41
+ :propsObj="inputPropsObj"
42
42
  @clear="clickClear"
43
43
  ></dsh-control-input>
44
44
  </cascader-modal>
@@ -56,8 +56,8 @@
56
56
  <dsh-control-input
57
57
  :class="commonClass"
58
58
  :value="curValName"
59
- :disabled="selfPropsObj._disabled"
60
- :propsObj="selfPropsObj"
59
+ :disabled="inputPropsObj._disabled"
60
+ :propsObj="inputPropsObj"
61
61
  @clear="clickClear"
62
62
  ></dsh-control-input>
63
63
  </cascader-picker>
@@ -103,7 +103,7 @@
103
103
  :disabled="selfPropsObj._disabled"
104
104
  :clearable="selfPropsObj._clearable"
105
105
  :size="selfPropsObj._size"
106
- :filterable="false"
106
+ :filterable="filterable"
107
107
  :render-format="renderFormat"
108
108
  :change-on-select="changeOnSelect"
109
109
  :transfer="selfPropsObj._transfer"
@@ -111,16 +111,14 @@
111
111
  :load-data="loadData"
112
112
  @on-visible-change="changeMulVisible"
113
113
  @on-change="changeMulSelect"
114
- @click.native="clickCascader"
115
114
  >
116
115
  <dsh-control-input
117
116
  :class="commonClass"
118
117
  :value="curValNameList"
119
- :disabled="selfPropsObj._disabled"
120
- :propsObj="selfPropsObj"
118
+ :disabled="inputPropsObj._disabled"
119
+ :propsObj="inputPropsObj"
121
120
  @deleteItem="clickDeleteItem"
122
121
  @clear="clickClear"
123
- @click.native="clickInput"
124
122
  ></dsh-control-input>
125
123
  </Cascader>
126
124
  </template>
@@ -136,8 +134,8 @@
136
134
  <dsh-control-input
137
135
  :class="commonClass"
138
136
  :value="curValNameList"
139
- :disabled="selfPropsObj._disabled"
140
- :propsObj="selfPropsObj"
137
+ :disabled="inputPropsObj._disabled"
138
+ :propsObj="inputPropsObj"
141
139
  @deleteItem="clickDeleteItem"
142
140
  @clear="clickClear"
143
141
  ></dsh-control-input>
@@ -155,8 +153,8 @@
155
153
  <dsh-control-input
156
154
  :class="commonClass"
157
155
  :value="curValNameList"
158
- :disabled="selfPropsObj._disabled"
159
- :propsObj="selfPropsObj"
156
+ :disabled="inputPropsObj._disabled"
157
+ :propsObj="inputPropsObj"
160
158
  @deleteItem="clickDeleteItem"
161
159
  @clear="clickClear"
162
160
  ></dsh-control-input>
@@ -217,8 +215,8 @@
217
215
  props: {},
218
216
  data () {
219
217
  return {
220
- renderAll: false,
221
- clickFlag: true,
218
+ // renderAll: false,
219
+ // clickFlag: true,
222
220
  isVisible: false,
223
221
  curSelectVal: []
224
222
  };
@@ -226,7 +224,6 @@
226
224
  computed: {
227
225
  selfPropsObj () {
228
226
  return {
229
- _icon: this.isVisible ? "ios-arrow-up" : "ios-arrow-down",
230
227
  _showMode: "default", // 只有单选模式有效,值为"default", "custom", "simple"
231
228
  _transfer: true,
232
229
 
@@ -238,6 +235,12 @@
238
235
  : this.basePropsObj._filterable
239
236
  };
240
237
  },
238
+ inputPropsObj () {
239
+ return {
240
+ _icon: this.isVisible ? "ios-arrow-up" : "ios-arrow-down",
241
+ ...this.selfPropsObj
242
+ };
243
+ },
241
244
 
242
245
  renderCascaderData () {
243
246
  return this.renderAll
@@ -255,42 +258,33 @@
255
258
  /* --------- 简洁方式 ------- */
256
259
  // 动态加载数据
257
260
  loadData (treeItem, cb) {
258
- const list = this.$getTreeLinealDatas(treeItem.keys, this.cascaderData, undefined, this.saveKey);
259
- const lastOption = list[list.length - 1];
260
-
261
- treeItem.children = lastOption
262
- ? lastOption.children.map(item =>
263
- ({
264
- ...item,
265
- children: []
266
- })
267
- )
268
- : [];
261
+ const linealDatas = this.$getTreeLinealDatas(treeItem.keys, this.cascaderData, undefined, this.saveKey);
262
+ const lastData = linealDatas.slice(-1)[0];
263
+ treeItem.children = lastData.children.map(item =>
264
+ ({
265
+ ...item,
266
+ children: []
267
+ })
268
+ );
269
269
 
270
270
  cb();
271
271
  },
272
272
  clickCascader () {
273
- if (
274
- !this.selfPropsObj._disabled &&
275
- this.filterable === true &&
276
- this.renderAll === false &&
277
- this.clickFlag === true
278
- ) {
279
- this.clickFlag = false; // 这个处理其实觉大概率没必要,有没有不受影响
280
- setTimeout(() => {
281
- this.renderAll = true;
282
- }, 0);
283
- }
273
+ // if (
274
+ // !this.selfPropsObj._disabled &&
275
+ // this.filterable === true &&
276
+ // this.renderAll === false &&
277
+ // this.clickFlag === true
278
+ // ) {
279
+ // this.clickFlag = false; // 这个处理其实觉大概率没必要,有没有不受影响
280
+ // setTimeout(() => {
281
+ // this.renderAll = true;
282
+ // }, 0);
283
+ // }
284
284
  },
285
285
  // 简洁方式-单选 -展开和关闭弹窗时触发
286
286
  changeVisible (bool) {
287
- if (bool) {
288
- this.isVisible = bool;
289
- } else {
290
- setTimeout(() => {
291
- this.isVisible = bool;
292
- }, 0);
293
- }
287
+ this.isVisible = bool;
294
288
  },
295
289
  // 简洁方式-单选 -选项变化
296
290
  changeSelect (value, selectedOptions) {
@@ -38,7 +38,7 @@
38
38
  <!-- 模式切换 -->
39
39
  <template>
40
40
  <div
41
- v-if="useMode"
41
+ v-if="canUseModeSwitch"
42
42
  class="mode"
43
43
  @click="showMode = showMode === 'default' ? 'flat' : 'default'"
44
44
  >
@@ -75,27 +75,27 @@
75
75
 
76
76
  <div class="wrap-content">
77
77
  <!-- 左 -->
78
- <div class="wrap-content-left">
78
+ <div class="wrap-content-list">
79
79
  <template v-if="showTreeData.length">
80
80
  <!-- 拍平方式 -->
81
81
  <div v-if="useFlatMode">
82
82
  <div
83
- v-for="dataItem in showFlatData"
84
- :key="dataItem[valueKey]"
83
+ v-for="nodeItem in showFlatData"
84
+ :key="nodeItem[valueKey]"
85
85
  :class="{
86
86
  'item': true,
87
- 'item-active': selectedLastOption && dataItem[valueKey] === selectedLastOption[valueKey],
88
- 'item-disabled': dataItem.disabled
87
+ 'item-active': selectedLastOption && nodeItem[valueKey] === selectedLastOption[valueKey],
88
+ 'item-disabled': nodeItem.disabled
89
89
  }"
90
- @click="clickItem(dataItem)"
90
+ @click="clickItem(nodeItem)"
91
91
  >
92
92
  <span class="item-name">
93
- {{ dataItem[nameKey] }}
93
+ {{ nodeItem[nameKey] }}
94
94
  </span>
95
95
 
96
96
  <span class="item-icon">
97
97
  <dsh-icons :list="[{
98
- icon: selectedLastOption && dataItem[valueKey] === selectedLastOption[valueKey]
98
+ icon: selectedLastOption && nodeItem[valueKey] === selectedLastOption[valueKey]
99
99
  ? 'md-checkmark'
100
100
  : ''
101
101
  }]" />
@@ -113,7 +113,7 @@
113
113
  <!-- 无数据 -->
114
114
  <div
115
115
  v-else
116
- class="wrap-content-left-nodata"
116
+ class="wrap-content-list-nodata"
117
117
  >
118
118
  暂无可用的数据……
119
119
  </div>
@@ -206,6 +206,7 @@
206
206
 
207
207
  search () {
208
208
  this.selectedValue = [];
209
+ this.showMode = "default";
209
210
  },
210
211
  clickItemCb (node) {
211
212
  this.dealDescription();
@@ -290,7 +291,7 @@
290
291
  border: 1px solid #E5E5E5;
291
292
  display: flex;
292
293
 
293
- &-left {
294
+ &-list {
294
295
  flex: 1;
295
296
  min-width: 0px;
296
297
  padding: 5px 10px;
@@ -2,6 +2,7 @@
2
2
  <div class="cascaderPicker">
3
3
  <Dropdown
4
4
  style="width: 100%;"
5
+ v-clickoutside="clickCancel"
5
6
  trigger="custom"
6
7
  :visible="showModal"
7
8
  :placement="placement"
@@ -27,6 +28,7 @@
27
28
  <div
28
29
  slot="list"
29
30
  class="wrap"
31
+ @click.stop="0"
30
32
  >
31
33
  <!-- 头部 -->
32
34
  <div class="wrap-header">
@@ -47,7 +49,7 @@
47
49
  <!-- 模式切换 -->
48
50
  <template>
49
51
  <div
50
- v-if="useMode"
52
+ v-if="canUseModeSwitch"
51
53
  class="mode"
52
54
  @click="showMode = showMode === 'default' ? 'flat' : 'default'"
53
55
  >
@@ -105,67 +107,64 @@
105
107
  <!-- 列表 -->
106
108
  <div class="wrap-content-list">
107
109
  <!-- 有数据 -->
108
- <DropdownMenu
110
+ <div
109
111
  v-if="showTreeData.length"
110
112
  class="wrap-content-list-menu"
111
113
  >
112
114
  <!-- 拍平方式 -->
113
115
  <template v-if="useFlatMode">
114
- <DropdownItem
115
- v-for="dataItem in showFlatData"
116
- :key="dataItem[valueKey]"
116
+ <div
117
+ v-for="nodeItem in showFlatData"
118
+ :key="nodeItem[valueKey]"
117
119
  :class="{
118
120
  'item': true,
119
- 'item-active': selectedLastOption && dataItem[valueKey] === selectedLastOption[valueKey],
120
- 'item-disabled': dataItem.disabled
121
+ 'item-active': selectedLastOption && nodeItem[valueKey] === selectedLastOption[valueKey],
122
+ 'item-disabled': nodeItem.disabled
121
123
  }"
122
- :name="dataItem[valueKey]"
123
- :disabled="dataItem.disabled"
124
- @click.native.stop="clickItem(dataItem)"
124
+ @click="clickItem(nodeItem)"
125
125
  >
126
126
  <span class="item-name">
127
- {{ dataItem[nameKey] }}
127
+ {{ nodeItem[nameKey] }}
128
128
  </span>
129
129
 
130
130
  <span class="item-icon">
131
131
  <dsh-icons :list="[{
132
- icon: selectedLastOption && dataItem[valueKey] === selectedLastOption[valueKey]
132
+ icon: selectedLastOption && nodeItem[valueKey] === selectedLastOption[valueKey]
133
133
  ? 'md-checkmark'
134
134
  : ''
135
135
  }]" />
136
136
  </span>
137
- </DropdownItem>
137
+ </div>
138
138
  </template>
139
139
 
140
140
  <!-- 层级方式 -->
141
141
  <template v-else>
142
- <DropdownItem
143
- v-for="dataItem in curSelectedLinealData.data"
144
- :key="dataItem[valueKey]"
142
+ <div
143
+ v-for="nodeItem in curSelectedLinealData.data"
144
+ :key="nodeItem[valueKey]"
145
145
  :class="{
146
146
  'item': true,
147
- 'item-active': dataItem[valueKey] === curSelectedLinealData[valueKey],
148
- 'item-disabled': dataItem.disabled
147
+ 'item-active': nodeItem[valueKey] === curSelectedLinealData[valueKey],
148
+ 'item-disabled': nodeItem.disabled
149
149
  }"
150
- :name="dataItem[valueKey]"
151
- @click.native.stop="clickItem(dataItem)"
150
+ @click="clickItem(nodeItem)"
152
151
  >
153
152
  <span class="item-name">
154
- {{ dataItem[nameKey] }}
153
+ {{ nodeItem[nameKey] }}
155
154
  </span>
156
155
 
157
156
  <span class="item-icon">
158
157
  <dsh-icons :list="[{
159
- icon: dataItem[valueKey] === curSelectedLinealData[valueKey]
158
+ icon: nodeItem[valueKey] === curSelectedLinealData[valueKey]
160
159
  ? 'md-checkmark'
161
- : dataItem.children.length
160
+ : nodeItem.children.length
162
161
  ? 'ios-arrow-forward'
163
162
  : ''
164
163
  }]" />
165
164
  </span>
166
- </DropdownItem>
165
+ </div>
167
166
  </template>
168
- </DropdownMenu>
167
+ </div>
169
168
 
170
169
  <!-- 无数据 -->
171
170
  <div
@@ -253,6 +252,7 @@
253
252
 
254
253
  search () {
255
254
  this.selectedValue = [];
255
+ this.showMode = "default";
256
256
  this.curTabIndex = 0;
257
257
  },
258
258
  clickItemCb (node) {
@@ -93,14 +93,14 @@ export default {
93
93
  return this.selfPropsObj._resourceKey;
94
94
  },
95
95
 
96
- useMode () {
96
+ canUseModeSwitch () {
97
97
  return this.searchName.trim() &&
98
98
  this.showFlatData.length < this.maxFlatModeSearchNum;
99
99
  },
100
100
  useFlatMode () {
101
101
  return this.filterable &&
102
- this.showMode === "flat" &&
103
- this.useMode;
102
+ this.canUseModeSwitch &&
103
+ this.showMode === "flat";
104
104
  },
105
105
  modeTip () {
106
106
  return `在搜索时,会出现层级和平级切换开关,但搜索出的结果超${this.maxFlatModeSearchNum}个时,\
@@ -85,6 +85,9 @@ export default {
85
85
  controlType () {
86
86
  return this.propsObj._type;
87
87
  },
88
+ controlName () {
89
+ return this.propsObj._name;
90
+ },
88
91
  finalCanEdit () {
89
92
  return this.canEdit && (this.propsObj.canEdit == undefined ? true : this.propsObj.canEdit);
90
93
  },
@@ -92,7 +95,7 @@ export default {
92
95
  multipleMode () {
93
96
  return this.isOnDftSearch || this.isOnSearch
94
97
  ? true
95
- : ["texts", "numberange", "daterange", "checkbox", "regions", "cascaders"].includes(this.controlType) || !!this.propsObj._multiple;
98
+ : ["texts", "numberange", "daterange", "checkbox", "regions", "cascaders", "file"].includes(this.controlType) || !!this.propsObj._multiple;
96
99
  },
97
100
  commonDealPropsObj () {
98
101
  const selectControlTypes = ["date", "switch", "select", "checkbox", "file", "region", "regions", "cascader", "cascaders", "coordinates", "users", "departments"];
@@ -130,11 +130,13 @@
130
130
  icon: "md-share-alt",
131
131
  size: "small",
132
132
  btnType: "text",
133
+ disabled: false,
133
134
  event: "clickExport"
134
135
  }
135
136
  },
136
137
 
137
- showBatchImportModal: false
138
+ showBatchImportModal: false,
139
+ timer: null
138
140
  };
139
141
  },
140
142
  computed: {
@@ -147,7 +149,6 @@
147
149
  };
148
150
  },
149
151
  columns () {
150
- console.log(this.propsObj);
151
152
  return this.propsObj._subForm;
152
153
  },
153
154
 
@@ -165,9 +166,9 @@
165
166
  if (this.propsObj._isExport) {
166
167
  btnList.unshift("canExport");
167
168
  }
168
- if (this.propsObj._isImport) {
169
- btnList.unshift("canImport");
170
- }
169
+ // if (this.propsObj._isImport && this.finalCanEdit) {
170
+ // btnList.unshift("canImport");
171
+ // }
171
172
 
172
173
  return btnList;
173
174
  },
@@ -184,10 +185,10 @@
184
185
  created () {},
185
186
  methods: {
186
187
  clickBatchImport () {
187
- this.openBatchImportModal();
188
+ // this.openBatchImportModal();
188
189
  },
189
190
  openBatchImportModal () {
190
- this.showBatchImportModal = true;
191
+ // this.showBatchImportModal = true;
191
192
  },
192
193
  // 关闭批量导入模态框
193
194
  closeBatchImportModal () {
@@ -108,7 +108,7 @@
108
108
  file: null,
109
109
  loadingStatus: false,
110
110
  window: window,
111
- timer1: null
111
+ timer: null
112
112
  };
113
113
  },
114
114
  computed: {
@@ -174,6 +174,7 @@
174
174
  let formData = new FormData();
175
175
  formData.append("file_stream", this.file);
176
176
  formData.append("modKey", this.modKey);
177
+ formData.append("importType", "flatTable");
177
178
  this.importParams._key && formData.append("_key", this.importParams._key);
178
179
  this.importParams._id && formData.append("_id", this.importParams._id);
179
180
  this.$https({
@@ -79,6 +79,7 @@
79
79
 
80
80
  <slot>
81
81
  <component
82
+ class="DshFormUnit-control-component"
82
83
  ref="control"
83
84
  :is="curComponentName"
84
85
  :canEdit="canEdit"
@@ -247,6 +248,10 @@
247
248
  display: flex;
248
249
  justify-content: flex-end;
249
250
  align-items: center;
251
+
252
+ &-component {
253
+ width: 100%;
254
+ }
250
255
  }
251
256
  }
252
257