iov-pro-components 0.0.26 → 0.0.27
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/lib/iov-pro-components.min.js +170 -17
- package/package.json +1 -1
|
@@ -8317,6 +8317,7 @@ var HOOKS = {
|
|
|
8317
8317
|
};
|
|
8318
8318
|
var DEFAULT_SPAN = 6;
|
|
8319
8319
|
var DEFAULT_SPACE = 18;
|
|
8320
|
+
var DEFAULT_PAGE_SIZE = 100;
|
|
8320
8321
|
var script$j = {
|
|
8321
8322
|
name: 'IovProForm',
|
|
8322
8323
|
inject: {
|
|
@@ -8362,8 +8363,8 @@ var script$j = {
|
|
|
8362
8363
|
DEFAULT_SPAN: DEFAULT_SPAN,
|
|
8363
8364
|
// 当前表单数据
|
|
8364
8365
|
modelValue: {},
|
|
8365
|
-
// 下拉框的options
|
|
8366
|
-
|
|
8366
|
+
// 下拉框的options是否展示以及分页属性
|
|
8367
|
+
optionConfig: {},
|
|
8367
8368
|
// 当前options请求的参数
|
|
8368
8369
|
optionParams: {},
|
|
8369
8370
|
// 被外部过滤后的数据
|
|
@@ -8380,7 +8381,9 @@ var script$j = {
|
|
|
8380
8381
|
// 需要触发的钩子函数
|
|
8381
8382
|
hooks: _defineProperty$1(_defineProperty$1(_defineProperty$1(_defineProperty$1(_defineProperty$1({}, HOOKS.INIT, []), HOOKS.DO_LAYOUT, []), HOOKS.VALUE_CHANGE, []), HOOKS.OPTION_CHANGE, []), HOOKS.PROPS_CHANGE, []),
|
|
8382
8383
|
// 当前所有的form-item集合
|
|
8383
|
-
formItems: []
|
|
8384
|
+
formItems: [],
|
|
8385
|
+
// 监听器
|
|
8386
|
+
observer: null
|
|
8384
8387
|
};
|
|
8385
8388
|
},
|
|
8386
8389
|
computed: {
|
|
@@ -8585,6 +8588,12 @@ var script$j = {
|
|
|
8585
8588
|
this.triggerEffect();
|
|
8586
8589
|
// 触发loader
|
|
8587
8590
|
this.triggerHooks(HOOKS.INIT, this);
|
|
8591
|
+
// 绑定观察器
|
|
8592
|
+
this.observer = this.bindObserver();
|
|
8593
|
+
},
|
|
8594
|
+
destroyed: function destroyed() {
|
|
8595
|
+
// 移除观察器
|
|
8596
|
+
this.observer.disconnect();
|
|
8588
8597
|
},
|
|
8589
8598
|
methods: {
|
|
8590
8599
|
/**
|
|
@@ -8731,6 +8740,57 @@ var script$j = {
|
|
|
8731
8740
|
});
|
|
8732
8741
|
}
|
|
8733
8742
|
},
|
|
8743
|
+
/**
|
|
8744
|
+
* 绑定数据变化的观察者
|
|
8745
|
+
* @time 2024-11-14 11:01:58
|
|
8746
|
+
*/
|
|
8747
|
+
bindObserver: function bindObserver() {
|
|
8748
|
+
// 回调方法
|
|
8749
|
+
var callbackFns = [];
|
|
8750
|
+
// 创建观察器
|
|
8751
|
+
var observer = new IntersectionObserver(function () {
|
|
8752
|
+
callbackFns.forEach(function (fn) {
|
|
8753
|
+
return fn.callback();
|
|
8754
|
+
});
|
|
8755
|
+
});
|
|
8756
|
+
return {
|
|
8757
|
+
/**
|
|
8758
|
+
* 观察
|
|
8759
|
+
* @param {Element} el 需要观察的dom元素
|
|
8760
|
+
* @param {Function} callback 回调方法
|
|
8761
|
+
* @time 2025-06-30 13:59:36
|
|
8762
|
+
*/
|
|
8763
|
+
observe: function observe(el, callback) {
|
|
8764
|
+
// 保存回调
|
|
8765
|
+
callbackFns.push({
|
|
8766
|
+
el: el,
|
|
8767
|
+
callback: callback
|
|
8768
|
+
});
|
|
8769
|
+
// 观察对象
|
|
8770
|
+
observer.observe(el);
|
|
8771
|
+
},
|
|
8772
|
+
/**
|
|
8773
|
+
* 取消观察
|
|
8774
|
+
* @param {Element} el 需要观察的dom元素
|
|
8775
|
+
* @time 2025-06-30 14:00:22
|
|
8776
|
+
*/
|
|
8777
|
+
unobserve: function unobserve(el) {
|
|
8778
|
+
// 取消回调
|
|
8779
|
+
callbackFns = callbackFns.filter(function (item) {
|
|
8780
|
+
return item.el !== el;
|
|
8781
|
+
});
|
|
8782
|
+
// 取消监听
|
|
8783
|
+
observer.unobserve(el);
|
|
8784
|
+
},
|
|
8785
|
+
/**
|
|
8786
|
+
* 关闭观察器
|
|
8787
|
+
* @time 2025-06-30 14:02:29
|
|
8788
|
+
*/
|
|
8789
|
+
disconnect: function disconnect() {
|
|
8790
|
+
observer.disconnect();
|
|
8791
|
+
}
|
|
8792
|
+
};
|
|
8793
|
+
},
|
|
8734
8794
|
/**
|
|
8735
8795
|
* 添加一个钩子函数,用于在不同的时机对数据做处理
|
|
8736
8796
|
* @param {Array|Object} hooks 当前等待添加的钩子函数
|
|
@@ -9078,7 +9138,35 @@ var script$j = {
|
|
|
9078
9138
|
* @time 2025-05-13 18:06:45
|
|
9079
9139
|
*/
|
|
9080
9140
|
'visible-change': function visibleChange(val) {
|
|
9081
|
-
|
|
9141
|
+
// 记录当前下拉的展示状态
|
|
9142
|
+
formThis.$set(formThis.optionConfig, key, {
|
|
9143
|
+
visible: val,
|
|
9144
|
+
page: 1,
|
|
9145
|
+
throttle: Date.now() + 400
|
|
9146
|
+
});
|
|
9147
|
+
// 如果有监听器,则直接取消监听
|
|
9148
|
+
if (formThis.observer) {
|
|
9149
|
+
// 取消监听
|
|
9150
|
+
formThis.observer.unobserve(formThis.$refs["reach-bottom-".concat(key)]);
|
|
9151
|
+
}
|
|
9152
|
+
// 如果当前下拉的滚动状态
|
|
9153
|
+
if (val) {
|
|
9154
|
+
// 监听滚动
|
|
9155
|
+
formThis.observer.observe(formThis.$refs["reach-bottom-".concat(key)], function (_) {
|
|
9156
|
+
// 结构出分页数据和节流时间
|
|
9157
|
+
var _formThis$optionConfi = formThis.optionConfig[key],
|
|
9158
|
+
page = _formThis$optionConfi.page,
|
|
9159
|
+
throttle = _formThis$optionConfi.throttle;
|
|
9160
|
+
// 如果在节流范围内,则不允许继续累加页码
|
|
9161
|
+
if (Date.now() < throttle) {
|
|
9162
|
+
return;
|
|
9163
|
+
}
|
|
9164
|
+
// 累加页码
|
|
9165
|
+
formThis.$set(formThis.optionConfig[key], 'page', page + 1);
|
|
9166
|
+
// 防止短时间重复触发
|
|
9167
|
+
formThis.$set(formThis.optionConfig[key], 'throttle', Date.now() + 50);
|
|
9168
|
+
});
|
|
9169
|
+
}
|
|
9082
9170
|
}
|
|
9083
9171
|
};
|
|
9084
9172
|
// 如果当前是空,则设置input方法
|
|
@@ -9299,9 +9387,21 @@ var script$j = {
|
|
|
9299
9387
|
*/
|
|
9300
9388
|
getNiceOptions: function getNiceOptions(options, key) {
|
|
9301
9389
|
var _this14 = this;
|
|
9390
|
+
// 如果没有下拉
|
|
9391
|
+
if (!options || (options === null || options === void 0 ? void 0 : options.length) === 0) {
|
|
9392
|
+
return [];
|
|
9393
|
+
}
|
|
9394
|
+
// 获取下拉属性
|
|
9395
|
+
var _ref2 = this.optionConfig[key] || {},
|
|
9396
|
+
visible = _ref2.visible,
|
|
9397
|
+
page = _ref2.page,
|
|
9398
|
+
remoteQuery = _ref2.remoteQuery;
|
|
9302
9399
|
// 如果当前下拉是展示状态
|
|
9303
|
-
if (
|
|
9304
|
-
|
|
9400
|
+
if (visible) {
|
|
9401
|
+
// 如果没有搜索任何内容
|
|
9402
|
+
return ([undefined, null, ''].includes(remoteQuery) ? options : options.filter(function (option) {
|
|
9403
|
+
return option.label.includes(remoteQuery);
|
|
9404
|
+
})).slice(0, page * DEFAULT_PAGE_SIZE);
|
|
9305
9405
|
}
|
|
9306
9406
|
// 当前绑定的值
|
|
9307
9407
|
return options === null || options === void 0 ? void 0 : options.filter(function (option) {
|
|
@@ -9311,10 +9411,12 @@ var script$j = {
|
|
|
9311
9411
|
},
|
|
9312
9412
|
/**
|
|
9313
9413
|
* 通过对象的名称获取对象的引用
|
|
9314
|
-
* @param {String}
|
|
9414
|
+
* @param {String} name 字段名
|
|
9315
9415
|
* @time 2025-06-25 17:46:19
|
|
9316
9416
|
*/
|
|
9317
|
-
getComponentRef: function getComponentRef(
|
|
9417
|
+
getComponentRef: function getComponentRef(name) {
|
|
9418
|
+
// 字段名
|
|
9419
|
+
var fieldName = Array.isArray(name) ? name.join(',') : name;
|
|
9318
9420
|
// 所有的formItems引用
|
|
9319
9421
|
var formItems = [];
|
|
9320
9422
|
|
|
@@ -9431,6 +9533,32 @@ var script$j = {
|
|
|
9431
9533
|
return defaultProps[(props === null || props === void 0 ? void 0 : props.type) || 'date'] || {};
|
|
9432
9534
|
};
|
|
9433
9535
|
|
|
9536
|
+
/**
|
|
9537
|
+
* 下拉选择器默认属性
|
|
9538
|
+
* @param {String} key 当前下拉的key
|
|
9539
|
+
* @time 2025-06-30 11:11:25
|
|
9540
|
+
*/
|
|
9541
|
+
var defaultSelectProps = function defaultSelectProps(key) {
|
|
9542
|
+
var defaultProps = {
|
|
9543
|
+
remote: true,
|
|
9544
|
+
remoteMethod: function remoteMethod(query) {
|
|
9545
|
+
// 如果没有下拉配置
|
|
9546
|
+
if (!_this15.optionConfig[key]) {
|
|
9547
|
+
_this15.$set(_this15.optionConfig, key, {
|
|
9548
|
+
page: 1,
|
|
9549
|
+
remoteQuery: query
|
|
9550
|
+
});
|
|
9551
|
+
} else {
|
|
9552
|
+
// 从第一页开始搜索
|
|
9553
|
+
_this15.$set(_this15.optionConfig[key], 'page', 1);
|
|
9554
|
+
// 搜索的关键字
|
|
9555
|
+
_this15.$set(_this15.optionConfig[key], 'remoteQuery', query);
|
|
9556
|
+
}
|
|
9557
|
+
}
|
|
9558
|
+
};
|
|
9559
|
+
return defaultProps || {};
|
|
9560
|
+
};
|
|
9561
|
+
|
|
9434
9562
|
/**
|
|
9435
9563
|
* 获取表单输入组件
|
|
9436
9564
|
* @param {Object} itemConfig 表单项配置
|
|
@@ -9451,7 +9579,10 @@ var script$j = {
|
|
|
9451
9579
|
var componentProps = _objectSpread2(_objectSpread2({
|
|
9452
9580
|
// 默认展示清空操作
|
|
9453
9581
|
clearable: true
|
|
9454
|
-
},
|
|
9582
|
+
}, {
|
|
9583
|
+
DatePicker: defaultDatePickerProps(itemConfig.props),
|
|
9584
|
+
Select: defaultSelectProps(itemConfig.key)
|
|
9585
|
+
}[itemConfig.type] || {}), _this15.evalComponentProps(itemConfig, formItemsProps.props));
|
|
9455
9586
|
// 当前组件的插槽
|
|
9456
9587
|
var componentSlots = (_itemConfig$slots = itemConfig.slots) === null || _itemConfig$slots === void 0 ? void 0 : _itemConfig$slots.component;
|
|
9457
9588
|
// 等待渲染的插槽
|
|
@@ -9506,6 +9637,9 @@ var script$j = {
|
|
|
9506
9637
|
"value": option.value
|
|
9507
9638
|
}
|
|
9508
9639
|
});
|
|
9640
|
+
}), h("div", {
|
|
9641
|
+
"class": 'iov-pro-form__detect-reach-bottom',
|
|
9642
|
+
"ref": "reach-bottom-".concat(itemConfig.key)
|
|
9509
9643
|
})]);
|
|
9510
9644
|
break;
|
|
9511
9645
|
case 'Radio': // 如果是单选
|
|
@@ -11551,7 +11685,11 @@ var script$9 = {
|
|
|
11551
11685
|
});
|
|
11552
11686
|
},
|
|
11553
11687
|
mounted: function mounted() {
|
|
11554
|
-
|
|
11688
|
+
// 开始渲染布局
|
|
11689
|
+
this.doLayout(this.columns.filter(function (column) {
|
|
11690
|
+
return !column.hidden;
|
|
11691
|
+
}));
|
|
11692
|
+
// 绑定重置事件
|
|
11555
11693
|
this.reset = this.onReset.bind(this);
|
|
11556
11694
|
},
|
|
11557
11695
|
methods: {
|
|
@@ -18256,16 +18394,31 @@ var script$8 = {
|
|
|
18256
18394
|
// 获取IovProTable示例
|
|
18257
18395
|
var iovProTable = this.table instanceof Function ? this.table() : this.table;
|
|
18258
18396
|
// 记录当前表格列
|
|
18259
|
-
|
|
18260
|
-
|
|
18397
|
+
var tableColumns = [];
|
|
18398
|
+
// 需要选中的列
|
|
18399
|
+
var checkedColumns = [];
|
|
18400
|
+
// 遍历表格的列数据
|
|
18401
|
+
iovProTable.columns.forEach(function (column) {
|
|
18402
|
+
// 当前选中的数据
|
|
18403
|
+
var value = randomString(32);
|
|
18404
|
+
// 非隐藏状态的字段不选中
|
|
18405
|
+
if (!column.hidden) {
|
|
18406
|
+
checkedColumns.push(value);
|
|
18407
|
+
}
|
|
18408
|
+
// 塞到tableColumns中
|
|
18409
|
+
tableColumns.push({
|
|
18261
18410
|
label: column.label || column.type,
|
|
18262
|
-
value:
|
|
18411
|
+
value: value,
|
|
18263
18412
|
disabled: column.keepInPlace,
|
|
18264
18413
|
target: column
|
|
18265
|
-
};
|
|
18414
|
+
});
|
|
18266
18415
|
});
|
|
18267
|
-
//
|
|
18268
|
-
this.
|
|
18416
|
+
// 开始双向绑定
|
|
18417
|
+
this.tableColumns = tableColumns;
|
|
18418
|
+
// 选中的列数据
|
|
18419
|
+
this.checkedColumns = checkedColumns;
|
|
18420
|
+
// 是否展示全选
|
|
18421
|
+
this.selectAll = checkedColumns.length === tableColumns.length;
|
|
18269
18422
|
// 重置历史数据
|
|
18270
18423
|
this.prevState = {
|
|
18271
18424
|
columns: _toConsumableArray$1(this.tableColumns),
|
|
@@ -20022,7 +20175,7 @@ var install = function install(Vue, componentConfig) {
|
|
|
20022
20175
|
};
|
|
20023
20176
|
var index = {
|
|
20024
20177
|
install: install,
|
|
20025
|
-
version: '0.0.
|
|
20178
|
+
version: '0.0.27',
|
|
20026
20179
|
ColumnTooltip: __vue_component__$t,
|
|
20027
20180
|
Description: __vue_component__$q,
|
|
20028
20181
|
DialogSelect: __vue_component__$p,
|