iov-pro-components 0.0.83 → 0.0.84

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.
@@ -9127,14 +9127,14 @@ var script$n = {
9127
9127
  if (isEqual(this.prevState.value, value)) {
9128
9128
  return;
9129
9129
  }
9130
- // 记录当前双向绑定的数据(当前组件内部均使用此数据,减少render数量)
9131
- this.prevState.value = prevStateValue;
9132
9130
  // 触发值改变钩子函数
9133
9131
  this.triggerHooks(HOOKS.VALUE_CHANGE, value);
9134
9132
  // 开始双向绑定
9135
9133
  this.$emit('input', value);
9136
9134
  // 触发change,返回新老数据
9137
- this.$emit('change', value, prevStateValue);
9135
+ this.$emit('change', value, this.prevState.value);
9136
+ // 记录当前双向绑定的数据(当前组件内部均使用此数据,减少render数量)
9137
+ this.prevState.value = prevStateValue;
9138
9138
  },
9139
9139
  deep: true
9140
9140
  },
@@ -9224,8 +9224,13 @@ var script$n = {
9224
9224
  if (!isEmpty(options)) {
9225
9225
  // 如果当前options是函数
9226
9226
  if (isEvalFunction(options)) {
9227
- itemClone.optionsCallback = function () {
9228
- return _this3.functionEval(options)(_this3.prevState.value);
9227
+ itemClone.optionsCallback = function (params) {
9228
+ // 当前匹配的值
9229
+ var value = Object.keys(params).every(function (key) {
9230
+ return _this3.value[key] === params[key];
9231
+ }) ? _this3.value : _this3.prevState.value;
9232
+ // 返回数据
9233
+ return _this3.functionEval(options)(value);
9229
9234
  };
9230
9235
  } else {
9231
9236
  itemClone.optionsCallback = function () {
@@ -9328,10 +9333,8 @@ var script$n = {
9328
9333
  });
9329
9334
  } else {
9330
9335
  // 值发生改变
9331
- if (formItems.length === 0) {
9332
- if (!isEqual(_this5.value[key], _this5.modelValue[key])) {
9333
- _this5.$set(_this5.modelValue, key, _this5.value[key]);
9334
- }
9336
+ if (!isEqual(_this5.value[key], _this5.modelValue[key])) {
9337
+ _this5.$set(_this5.modelValue, key, _this5.value[key]);
9335
9338
  }
9336
9339
  }
9337
9340
  });
@@ -9367,9 +9370,7 @@ var script$n = {
9367
9370
  }
9368
9371
  } else {
9369
9372
  // 如果当前有配置项,则清空值
9370
- if (formItem) {
9371
- _this5.clearFieldValue(formItem);
9372
- } else {
9373
+ if (!formItem) {
9373
9374
  // 如果当前表单字段值和绑定的字段值不一致
9374
9375
  if (!isEqual(_this5.modelValue[key], _this5.value[key])) {
9375
9376
  _this5.$set(_this5.modelValue, key, _this5.value[key]);
@@ -9392,7 +9393,7 @@ var script$n = {
9392
9393
  // 初始化vif动态生成的默认值
9393
9394
  this.initValue(prevFormItems);
9394
9395
  // 重新加载options方法
9395
- this.triggerReloadOptions();
9396
+ this.triggerReloadOptions(value);
9396
9397
  },
9397
9398
  /**
9398
9399
  * 初始化默认值
@@ -9589,7 +9590,7 @@ var script$n = {
9589
9590
  * 重新加载options方法
9590
9591
  * @time 2024-11-12 14:53:54
9591
9592
  */
9592
- triggerReloadOptions: function triggerReloadOptions() {
9593
+ triggerReloadOptions: function triggerReloadOptions(value) {
9593
9594
  var _this9 = this;
9594
9595
  // 取到所有有options的数据
9595
9596
  this.formItemsForRender
@@ -9600,7 +9601,7 @@ var script$n = {
9600
9601
  // 当前数据
9601
9602
  .forEach(function (item) {
9602
9603
  // 当前请求参数
9603
- var optionParams = _this9.getWatchValue(item);
9604
+ var optionParams = _this9.getWatchValue(item, value);
9604
9605
  // 如果当前请求参数发生了变化
9605
9606
  if (!isEqual(optionParams, _this9.optionParams[item.key])) {
9606
9607
  _this9.$set(_this9.optionParams, item.key, optionParams);
@@ -9612,7 +9613,7 @@ var script$n = {
9612
9613
  * @param {Object} item 参数说明
9613
9614
  * @time 2024-11-13 15:13:15
9614
9615
  */
9615
- getWatchValue: function getWatchValue(item) {
9616
+ getWatchValue: function getWatchValue(item, value) {
9616
9617
  var _this0 = this;
9617
9618
  // 如果没有需要监听的字段
9618
9619
  if (!item.watch || item.watch.length === 0) {
@@ -9621,7 +9622,7 @@ var script$n = {
9621
9622
  // 生成监听字段对应的值
9622
9623
  return item.watch.reduce(function (memo, key) {
9623
9624
  // 如果需要从其他字段中取值
9624
- memo[key] = key.indexOf('.') > 0 ? lodashGet(_this0, key) : _this0.prevState.value[key];
9625
+ memo[key] = key.indexOf('.') > 0 ? lodashGet(_this0, key) : value[key];
9625
9626
  return memo;
9626
9627
  }, {});
9627
9628
  },
@@ -9633,7 +9634,7 @@ var script$n = {
9633
9634
  */
9634
9635
  onOptionsLoaded: function onOptionsLoaded(itemConfig, options) {
9635
9636
  // 如果当前请求完接口了,且有options配置,且value是函数
9636
- if (isEmpty(this.prevState.optionParams[itemConfig.key]) && itemConfig.value instanceof Function && isEmpty(this.prevState.value[itemConfig.key]) && itemConfig.optionsCallback) {
9637
+ if (isEmpty(this.prevState.optionParams[itemConfig.key]) && itemConfig.value instanceof Function && isEmpty(this.value[itemConfig.key]) && itemConfig.optionsCallback) {
9637
9638
  this.triggerInitDefaultValue(itemConfig);
9638
9639
  }
9639
9640
  // 触发options加载完成
@@ -12759,9 +12760,7 @@ var script$d = {
12759
12760
  },
12760
12761
  mounted: function mounted() {
12761
12762
  // 开始渲染布局
12762
- this.doLayout(this.columns.filter(function (column) {
12763
- return !column.hidden;
12764
- }));
12763
+ this.doLayout();
12765
12764
  // 绑定重置事件
12766
12765
  this.reset = this.onReset.bind(this);
12767
12766
  },
@@ -12998,6 +12997,19 @@ var script$d = {
12998
12997
  * @time 2024-11-27 18:42:59
12999
12998
  */
13000
12999
  doLayout: function doLayout(columns) {
13000
+ // 标准化列数据
13001
+ this.normalizedColumns(columns || this.columns.filter(function (column) {
13002
+ return !column.hidden;
13003
+ }));
13004
+ // 重新渲染
13005
+ this.tableKey = randomString(32);
13006
+ },
13007
+ /**
13008
+ * 标准化列,控制列的显示,以及方法
13009
+ * @param {Array} columns 当前列数据
13010
+ * @time 2025-10-29 10:23:01
13011
+ */
13012
+ normalizedColumns: function normalizedColumns(columns) {
13001
13013
  var _this6 = this;
13002
13014
  // 记录当前隐藏的列
13003
13015
  this.displayColumns = columns.filter(this.vif).map(function (column) {
@@ -13010,8 +13022,6 @@ var script$d = {
13010
13022
  // 返回处理后的数据
13011
13023
  return columnCopy;
13012
13024
  });
13013
- // 重新渲染
13014
- this.tableKey = randomString(32);
13015
13025
  },
13016
13026
  /**
13017
13027
  * 判断当前表单项是否需要渲染
@@ -20648,8 +20658,8 @@ var script$8 = {
20648
20658
  // 是否需要重新加载
20649
20659
  var needReloadRequest = reloadFields.some(function (field) {
20650
20660
  return Array.isArray(field) ? field.some(function (item) {
20651
- return newValue[item] !== oldValue[item];
20652
- }) : newValue[field] !== oldValue[field];
20661
+ return !isEqual(newValue[item], oldValue[item]);
20662
+ }) : !isEqual(newValue[field], oldValue[field]);
20653
20663
  });
20654
20664
  // 只要任意一个字段发生改变
20655
20665
  if (needReloadRequest) {
@@ -22617,7 +22627,7 @@ var install = function install(Vue, componentConfig) {
22617
22627
  };
22618
22628
  var index = {
22619
22629
  install: install,
22620
- version: '0.0.83',
22630
+ version: '0.0.84',
22621
22631
  ColumnTooltip: __vue_component__$y,
22622
22632
  Description: __vue_component__$v,
22623
22633
  DialogItemsSelect: __vue_component__$u,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iov-pro-components",
3
- "version": "0.0.83",
3
+ "version": "0.0.84",
4
4
  "description": "IOV Pro Components for Vue.js",
5
5
  "main": "lib/iov-pro-components.min.js",
6
6
  "files": [