mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-01-24 10:33:50 +08:00
Merge branch 'main' of https://github.com/anncwb/vue-vben-admin
This commit is contained in:
commit
c2590cbfb5
@ -17,9 +17,9 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"bootstrap": "pnpm install",
|
"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: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:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite",
|
||||||
"clean:lib": "rimraf node_modules",
|
"clean:lib": "rimraf node_modules",
|
||||||
"commit": "czg",
|
"commit": "czg",
|
||||||
|
@ -14,7 +14,7 @@ import {
|
|||||||
import { deepMerge } from '/@/utils';
|
import { deepMerge } from '/@/utils';
|
||||||
import { dateItemType, handleInputNumberValue, defaultValueComponents } from '../helper';
|
import { dateItemType, handleInputNumberValue, defaultValueComponents } from '../helper';
|
||||||
import { dateUtil } from '/@/utils/dateUtil';
|
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';
|
import { error } from '/@/utils/log';
|
||||||
|
|
||||||
interface UseFormActionContext {
|
interface UseFormActionContext {
|
||||||
@ -112,9 +112,8 @@ export function useFormEvents({
|
|||||||
const validKeys: string[] = [];
|
const validKeys: string[] = [];
|
||||||
fields.forEach((key) => {
|
fields.forEach((key) => {
|
||||||
const schema = unref(getSchema).find((item) => item.field === key);
|
const schema = unref(getSchema).find((item) => item.field === key);
|
||||||
let value = values[key];
|
let value = get(values, key);
|
||||||
|
const hasKey = !!get(values, key);
|
||||||
const hasKey = Reflect.has(values, key);
|
|
||||||
|
|
||||||
value = handleInputNumberValue(schema?.component, value);
|
value = handleInputNumberValue(schema?.component, value);
|
||||||
const { componentProps } = schema || {};
|
const { componentProps } = schema || {};
|
||||||
|
@ -3,7 +3,7 @@ import type { App, Component } from 'vue';
|
|||||||
|
|
||||||
import { unref } from 'vue';
|
import { unref } from 'vue';
|
||||||
import { isArray, isObject } from '/@/utils/is';
|
import { isArray, isObject } from '/@/utils/is';
|
||||||
import { cloneDeep, mergeWith } from 'lodash-es';
|
import { cloneDeep, isEqual, mergeWith, unionWith } from 'lodash-es';
|
||||||
|
|
||||||
export const noop = () => {};
|
export const noop = () => {};
|
||||||
|
|
||||||
@ -48,7 +48,8 @@ export function deepMerge<T extends object | null | undefined, U extends object
|
|||||||
return mergeWith(cloneDeep(target), source, (objValue, srcValue) => {
|
return mergeWith(cloneDeep(target), source, (objValue, srcValue) => {
|
||||||
if (isObject(objValue) && isObject(srcValue)) {
|
if (isObject(objValue) && isObject(srcValue)) {
|
||||||
return mergeWith(cloneDeep(objValue), srcValue, (prevValue, nextValue) => {
|
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;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { CSSProperties, VNodeChild } from 'vue';
|
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;
|
export type VueNode = VNodeChild | JSX.Element;
|
||||||
|
|
||||||
@ -8,8 +8,7 @@ type PropTypes = VueTypesInterface & {
|
|||||||
readonly VNodeChild: VueTypeValidableDef<VueNode>;
|
readonly VNodeChild: VueTypeValidableDef<VueNode>;
|
||||||
// readonly trueBool: VueTypeValidableDef<boolean>;
|
// readonly trueBool: VueTypeValidableDef<boolean>;
|
||||||
};
|
};
|
||||||
|
const newPropTypes = createTypes({
|
||||||
const propTypes = createTypes({
|
|
||||||
func: undefined,
|
func: undefined,
|
||||||
bool: undefined,
|
bool: undefined,
|
||||||
string: undefined,
|
string: undefined,
|
||||||
@ -18,17 +17,19 @@ const propTypes = createTypes({
|
|||||||
integer: undefined,
|
integer: undefined,
|
||||||
}) as PropTypes;
|
}) as PropTypes;
|
||||||
|
|
||||||
propTypes.extend([
|
// 从 vue-types v5.0 开始,extend()方法已经废弃,当前已改为官方推荐的ES6+方法 https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#the-extend-method
|
||||||
{
|
class propTypes extends newPropTypes {
|
||||||
name: 'style',
|
// a native-like validator that supports the `.validable` method
|
||||||
getter: true,
|
static get style() {
|
||||||
type: [String, Object],
|
return toValidableType('style', {
|
||||||
default: undefined,
|
type: [String, Object],
|
||||||
},
|
});
|
||||||
{
|
}
|
||||||
name: 'VNodeChild',
|
|
||||||
getter: true,
|
static get VNodeChild() {
|
||||||
type: undefined,
|
return toValidableType('VNodeChild', {
|
||||||
},
|
type: undefined,
|
||||||
]);
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
export { propTypes };
|
export { propTypes };
|
||||||
|
Loading…
Reference in New Issue
Block a user