vben
2023-04-04 c2590cbfb596aac5045b982e3be51c54c506bcb6
Merge branch 'main' of https://github.com/anncwb/vue-vben-admin
4个文件已修改
49 ■■■■ 已修改文件
package.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/hooks/useFormEvents.ts 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/index.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/propTypes.ts 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json
@@ -17,9 +17,9 @@
  },
  "scripts": {
    "bootstrap": "pnpm install",
    "build": "cross-env NODE_ENV=production vite build && esno ./build/script/postBuild.ts",
    "build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 NODE_ENV=production vite build && esno ./build/script/postBuild.ts",
    "build:no-cache": "pnpm clean:cache && npm run build",
    "build:test": "cross-env vite build --mode test && esno ./build/script/postBuild.ts",
    "build:test": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build --mode test && esno ./build/script/postBuild.ts",
    "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite",
    "clean:lib": "rimraf node_modules",
    "commit": "czg",
src/components/Form/src/hooks/useFormEvents.ts
@@ -14,7 +14,7 @@
import { deepMerge } from '/@/utils';
import { dateItemType, handleInputNumberValue, defaultValueComponents } from '../helper';
import { dateUtil } from '/@/utils/dateUtil';
import { cloneDeep, set, uniqBy } from 'lodash-es';
import { cloneDeep, set, uniqBy, get } from 'lodash-es';
import { error } from '/@/utils/log';
interface UseFormActionContext {
@@ -112,9 +112,8 @@
    const validKeys: string[] = [];
    fields.forEach((key) => {
      const schema = unref(getSchema).find((item) => item.field === key);
      let value = values[key];
      const hasKey = Reflect.has(values, key);
      let value = get(values, key);
      const hasKey = !!get(values, key);
      value = handleInputNumberValue(schema?.component, value);
      const { componentProps } = schema || {};
src/utils/index.ts
@@ -3,7 +3,7 @@
import { unref } from 'vue';
import { isArray, isObject } from '/@/utils/is';
import { cloneDeep, mergeWith } from 'lodash-es';
import { cloneDeep, isEqual, mergeWith, unionWith } from 'lodash-es';
export const noop = () => {};
@@ -48,7 +48,8 @@
  return mergeWith(cloneDeep(target), source, (objValue, srcValue) => {
    if (isObject(objValue) && isObject(srcValue)) {
      return mergeWith(cloneDeep(objValue), srcValue, (prevValue, nextValue) => {
        return isArray(prevValue) ? prevValue.concat(nextValue) : undefined;
        // 如果是数组,合并数组(去重) If it is an array, merge the array (remove duplicates)
        return isArray(prevValue) ? unionWith(prevValue, nextValue, isEqual) : undefined;
      });
    }
  });
src/utils/propTypes.ts
@@ -1,5 +1,5 @@
import { CSSProperties, VNodeChild } from 'vue';
import { createTypes, VueTypeValidableDef, VueTypesInterface } from 'vue-types';
import { createTypes, VueTypeValidableDef, VueTypesInterface, toValidableType } from 'vue-types';
export type VueNode = VNodeChild | JSX.Element;
@@ -8,8 +8,7 @@
  readonly VNodeChild: VueTypeValidableDef<VueNode>;
  // readonly trueBool: VueTypeValidableDef<boolean>;
};
const propTypes = createTypes({
const newPropTypes = createTypes({
  func: undefined,
  bool: undefined,
  string: undefined,
@@ -18,17 +17,19 @@
  integer: undefined,
}) as PropTypes;
propTypes.extend([
  {
    name: 'style',
    getter: true,
    type: [String, Object],
    default: undefined,
  },
  {
    name: 'VNodeChild',
    getter: true,
    type: undefined,
  },
]);
// 从 vue-types v5.0 开始,extend()方法已经废弃,当前已改为官方推荐的ES6+方法 https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#the-extend-method
class propTypes extends newPropTypes {
  // a native-like validator that supports the `.validable` method
  static get style() {
    return toValidableType('style', {
      type: [String, Object],
    });
  }
  static get VNodeChild() {
    return toValidableType('VNodeChild', {
      type: undefined,
    });
  }
}
export { propTypes };