Merge branch 'main' of https://github.com/anncwb/vue-vben-admin
| | |
| | | }, |
| | | "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", |
| | |
| | | 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 { |
| | |
| | | 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 || {}; |
| | |
| | | |
| | | 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 = () => {}; |
| | | |
| | |
| | | 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; |
| | | }); |
| | | } |
| | | }); |
| | |
| | | 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; |
| | | |
| | |
| | | readonly VNodeChild: VueTypeValidableDef<VueNode>; |
| | | // readonly trueBool: VueTypeValidableDef<boolean>; |
| | | }; |
| | | |
| | | const propTypes = createTypes({ |
| | | const newPropTypes = createTypes({ |
| | | func: undefined, |
| | | bool: undefined, |
| | | string: undefined, |
| | |
| | | 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 }; |