Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
ecfe66a019
|
|
@ -63,8 +63,8 @@ function defineApplicationConfig(defineOptions: DefineOptions = {}) {
|
||||||
cssTarget: 'chrome80',
|
cssTarget: 'chrome80',
|
||||||
rollupOptions: {
|
rollupOptions: {
|
||||||
output: {
|
output: {
|
||||||
// 入口文件名(不能变,否则所有打包的 js hash 值全变了)
|
// 入口文件名
|
||||||
entryFileNames: 'index.js',
|
entryFileNames: 'assets/entry/[name]-[hash].js',
|
||||||
manualChunks: {
|
manualChunks: {
|
||||||
vue: ['vue', 'pinia', 'vue-router'],
|
vue: ['vue', 'pinia', 'vue-router'],
|
||||||
antd: ['ant-design-vue', '@ant-design/icons-vue'],
|
antd: ['ant-design-vue', '@ant-design/icons-vue'],
|
||||||
|
|
|
||||||
|
|
@ -107,9 +107,10 @@
|
||||||
"vue-router": "^4.3.2",
|
"vue-router": "^4.3.2",
|
||||||
"vue-types": "^5.1.1",
|
"vue-types": "^5.1.1",
|
||||||
"vuedraggable": "^4.1.0",
|
"vuedraggable": "^4.1.0",
|
||||||
"vxe-table": "^4.6.3",
|
"vxe-pc-ui": "^4.0.44",
|
||||||
"vxe-table-plugin-export-xlsx": "^4.0.1",
|
"vxe-table": "^4.7.40",
|
||||||
"xe-utils": "^3.5.25",
|
"vxe-table-plugin-export-xlsx": "^4.0.4",
|
||||||
|
"xe-utils": "^3.5.28",
|
||||||
"xlsx": "^0.18.5"
|
"xlsx": "^0.18.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
||||||
|
|
@ -122,15 +122,18 @@ importers:
|
||||||
vuedraggable:
|
vuedraggable:
|
||||||
specifier: ^4.1.0
|
specifier: ^4.1.0
|
||||||
version: 4.1.0(vue@3.4.25(typescript@5.4.5))
|
version: 4.1.0(vue@3.4.25(typescript@5.4.5))
|
||||||
|
vxe-pc-ui:
|
||||||
|
specifier: ^4.0.44
|
||||||
|
version: 4.0.44
|
||||||
vxe-table:
|
vxe-table:
|
||||||
specifier: ^4.6.3
|
specifier: ^4.7.40
|
||||||
version: 4.6.3(vue@3.4.25(typescript@5.4.5))
|
version: 4.7.40
|
||||||
vxe-table-plugin-export-xlsx:
|
vxe-table-plugin-export-xlsx:
|
||||||
specifier: ^4.0.1
|
specifier: ^4.0.4
|
||||||
version: 4.0.1(vxe-table@4.6.3(vue@3.4.25(typescript@5.4.5)))
|
version: 4.0.4(vxe-table@4.7.40)
|
||||||
xe-utils:
|
xe-utils:
|
||||||
specifier: ^3.5.25
|
specifier: ^3.5.28
|
||||||
version: 3.5.25
|
version: 3.5.28
|
||||||
xlsx:
|
xlsx:
|
||||||
specifier: ^0.18.5
|
specifier: ^0.18.5
|
||||||
version: 0.18.5
|
version: 0.18.5
|
||||||
|
|
@ -2005,6 +2008,9 @@ packages:
|
||||||
'@vueuse/shared@10.9.0':
|
'@vueuse/shared@10.9.0':
|
||||||
resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==}
|
resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==}
|
||||||
|
|
||||||
|
'@vxe-ui/core@1.0.12':
|
||||||
|
resolution: {integrity: sha512-s79mQw6uYSbTVGBWbxrisHwJV1b770vZMT9XpY3khcFQhXNo25+PS3FLrNCSsBBJR0ZkBLOXDER/ft9DIqgFTw==}
|
||||||
|
|
||||||
'@zxcvbn-ts/core@3.0.4':
|
'@zxcvbn-ts/core@3.0.4':
|
||||||
resolution: {integrity: sha512-aQeiT0F09FuJaAqNrxynlAwZ2mW/1MdXakKWNmGM1Qp/VaY6CnB/GfnMS2T8gB2231Esp1/maCWd8vTG4OuShw==}
|
resolution: {integrity: sha512-aQeiT0F09FuJaAqNrxynlAwZ2mW/1MdXakKWNmGM1Qp/VaY6CnB/GfnMS2T8gB2231Esp1/maCWd8vTG4OuShw==}
|
||||||
|
|
||||||
|
|
@ -3096,8 +3102,8 @@ packages:
|
||||||
dom-serializer@2.0.0:
|
dom-serializer@2.0.0:
|
||||||
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
|
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
|
||||||
|
|
||||||
dom-zindex@1.0.2:
|
dom-zindex@1.0.4:
|
||||||
resolution: {integrity: sha512-QceDZxPlvzhpg6e8szxNiKPUt5Y9SfFTe3nZy8og3JoPQPlAlzBzHa/lhDkhgeG3cjbKyQcuoic+wymF0o0d1Q==}
|
resolution: {integrity: sha512-PNk7u71TJ1C9Lwjjp5nNuQcVWuECFMmr9kZAwi2UbgWUM7jXdTCe4O4x5bhLUa07jpcZUVA5Du3ho7/FXzS9Ng==}
|
||||||
|
|
||||||
domelementtype@1.3.1:
|
domelementtype@1.3.1:
|
||||||
resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}
|
resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}
|
||||||
|
|
@ -7060,15 +7066,16 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vue: ^3.0.1
|
vue: ^3.0.1
|
||||||
|
|
||||||
vxe-table-plugin-export-xlsx@4.0.1:
|
vxe-pc-ui@4.0.44:
|
||||||
resolution: {integrity: sha512-puUOUfptu5ciEiFqTlVni3twLICSbkl87uXOsjZzrEyXJHJS9dYu7ZTD7/DRMqyuWyU3Idg7AekfcdcslP4Y/A==}
|
resolution: {integrity: sha512-wiauFMmSvEkVKa/AsKGb5CMi91Ojts+Ydcn+iespgl3xMBD01BR/CGzeCI478P3XAFBsiN4gWlgxHmGP5TR8UA==}
|
||||||
|
|
||||||
|
vxe-table-plugin-export-xlsx@4.0.4:
|
||||||
|
resolution: {integrity: sha512-Og2ZcIWTV7msT1ddPT/spxJaP1T8wxs3Uuu1LO/3HL5Ugt9tShEY3FJ7YGic3j1Nk6ZZT+VsU+afgT5EzpcUJw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vxe-table: ^4.5.0
|
vxe-table: ^4.5.0
|
||||||
|
|
||||||
vxe-table@4.6.3:
|
vxe-table@4.7.40:
|
||||||
resolution: {integrity: sha512-71FOi0lFQbvs1dUIZPTDCLaSJkRjLHlBuNzWIR9RofBe4EvhX4OowrhaCCsCXXKCCGSlJRp6+/O2c71lEZY9PQ==}
|
resolution: {integrity: sha512-y9VC3oLJgusxFj3xZ28G4gU+YClBuDIV8oM75Dx3doYJ7vanXZnSf70XJ+W5xEKflamUmjGre66XZ2b4XuqtMw==}
|
||||||
peerDependencies:
|
|
||||||
vue: ^3.2.28
|
|
||||||
|
|
||||||
w3c-hr-time@1.0.2:
|
w3c-hr-time@1.0.2:
|
||||||
resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}
|
resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}
|
||||||
|
|
@ -7206,8 +7213,8 @@ packages:
|
||||||
utf-8-validate:
|
utf-8-validate:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
xe-utils@3.5.25:
|
xe-utils@3.5.28:
|
||||||
resolution: {integrity: sha512-d/ty5eo4hXtho/3195XAvqereIoSYJ+XfC52f3ZEPxTaCeyLFivDZTyX6gTdsR65ISH1Irvn85H0bSL60dUhSQ==}
|
resolution: {integrity: sha512-oeLLJ0b54QdOSSgYQ9TiKW/xAGrc9r0weCA/5UfyGdm3n3js4cNOuuf9Tml7UwgBQpl4uWMbMwUZKLh2yqPF3A==}
|
||||||
|
|
||||||
xlsx@0.18.5:
|
xlsx@0.18.5:
|
||||||
resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==}
|
resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==}
|
||||||
|
|
@ -9228,6 +9235,11 @@ snapshots:
|
||||||
- '@vue/composition-api'
|
- '@vue/composition-api'
|
||||||
- vue
|
- vue
|
||||||
|
|
||||||
|
'@vxe-ui/core@1.0.12':
|
||||||
|
dependencies:
|
||||||
|
dom-zindex: 1.0.4
|
||||||
|
xe-utils: 3.5.28
|
||||||
|
|
||||||
'@zxcvbn-ts/core@3.0.4':
|
'@zxcvbn-ts/core@3.0.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
fastest-levenshtein: 1.0.16
|
fastest-levenshtein: 1.0.16
|
||||||
|
|
@ -10389,7 +10401,7 @@ snapshots:
|
||||||
domhandler: 5.0.3
|
domhandler: 5.0.3
|
||||||
entities: 4.5.0
|
entities: 4.5.0
|
||||||
|
|
||||||
dom-zindex@1.0.2: {}
|
dom-zindex@1.0.4: {}
|
||||||
|
|
||||||
domelementtype@1.3.1: {}
|
domelementtype@1.3.1: {}
|
||||||
|
|
||||||
|
|
@ -15005,15 +15017,17 @@ snapshots:
|
||||||
sortablejs: 1.14.0
|
sortablejs: 1.14.0
|
||||||
vue: 3.4.25(typescript@5.4.5)
|
vue: 3.4.25(typescript@5.4.5)
|
||||||
|
|
||||||
vxe-table-plugin-export-xlsx@4.0.1(vxe-table@4.6.3(vue@3.4.25(typescript@5.4.5))):
|
vxe-pc-ui@4.0.44:
|
||||||
dependencies:
|
dependencies:
|
||||||
vxe-table: 4.6.3(vue@3.4.25(typescript@5.4.5))
|
'@vxe-ui/core': 1.0.12
|
||||||
|
|
||||||
vxe-table@4.6.3(vue@3.4.25(typescript@5.4.5)):
|
vxe-table-plugin-export-xlsx@4.0.4(vxe-table@4.7.40):
|
||||||
dependencies:
|
dependencies:
|
||||||
dom-zindex: 1.0.2
|
vxe-table: 4.7.40
|
||||||
vue: 3.4.25(typescript@5.4.5)
|
|
||||||
xe-utils: 3.5.25
|
vxe-table@4.7.40:
|
||||||
|
dependencies:
|
||||||
|
vxe-pc-ui: 4.0.44
|
||||||
|
|
||||||
w3c-hr-time@1.0.2:
|
w3c-hr-time@1.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -15138,7 +15152,7 @@ snapshots:
|
||||||
|
|
||||||
ws@8.16.0: {}
|
ws@8.16.0: {}
|
||||||
|
|
||||||
xe-utils@3.5.25: {}
|
xe-utils@3.5.28: {}
|
||||||
|
|
||||||
xlsx@0.18.5:
|
xlsx@0.18.5:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@
|
||||||
|
|
||||||
import { useFormValues } from './hooks/useFormValues';
|
import { useFormValues } from './hooks/useFormValues';
|
||||||
import useAdvanced from './hooks/useAdvanced';
|
import useAdvanced from './hooks/useAdvanced';
|
||||||
import { useFormEvents } from './hooks/useFormEvents';
|
import { itemIsUploadComponent, useFormEvents } from './hooks/useFormEvents';
|
||||||
import { createFormContext } from './hooks/useFormContext';
|
import { createFormContext } from './hooks/useFormContext';
|
||||||
import { useAutoFocus } from './hooks/useAutoFocus';
|
import { useAutoFocus } from './hooks/useAutoFocus';
|
||||||
import { useModalContext } from '@/components/Modal';
|
import { useModalContext } from '@/components/Modal';
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
import { useDesign } from '@/hooks/web/useDesign';
|
import { useDesign } from '@/hooks/web/useDesign';
|
||||||
import { cloneDeep } from 'lodash-es';
|
import { cloneDeep } from 'lodash-es';
|
||||||
import { TableActionType } from '@/components/Table';
|
import { TableActionType } from '@/components/Table';
|
||||||
import { isFunction } from '@/utils/is';
|
import { isArray, isFunction } from '@/utils/is';
|
||||||
|
|
||||||
defineOptions({ name: 'BasicForm' });
|
defineOptions({ name: 'BasicForm' });
|
||||||
|
|
||||||
|
|
@ -165,14 +165,17 @@
|
||||||
schema.defaultValue = def;
|
schema.defaultValue = def;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// handle upload type
|
||||||
|
if (defaultValue && itemIsUploadComponent(schema?.component)) {
|
||||||
|
if (isArray(defaultValue)) {
|
||||||
|
schema.defaultValue = defaultValue;
|
||||||
|
} else if (typeof defaultValue == 'string') {
|
||||||
|
schema.defaultValue = [defaultValue];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// handle schema.valueFormat
|
// handle schema.valueFormat
|
||||||
if (
|
if (isHandleDefaultValue && defaultValue && component && isFunction(valueFormat)) {
|
||||||
isHandleDefaultValue &&
|
|
||||||
defaultValue &&
|
|
||||||
component &&
|
|
||||||
isFunction(valueFormat)
|
|
||||||
) {
|
|
||||||
schema.defaultValue = valueFormat({
|
schema.defaultValue = valueFormat({
|
||||||
value: defaultValue,
|
value: defaultValue,
|
||||||
schema,
|
schema,
|
||||||
|
|
|
||||||
|
|
@ -287,11 +287,11 @@
|
||||||
const on = {
|
const on = {
|
||||||
[eventKey]: (...args: Nullable<Recordable<any>>[]) => {
|
[eventKey]: (...args: Nullable<Recordable<any>>[]) => {
|
||||||
const [e] = args;
|
const [e] = args;
|
||||||
|
|
||||||
const target = e ? e.target : null;
|
const target = e ? e.target : null;
|
||||||
let value = target ? (isCheck ? target.checked : target.value) : e;
|
let value = target ? (isCheck ? target.checked : target.value) : e;
|
||||||
if(isFunction(valueFormat)){
|
if (isFunction(valueFormat)) {
|
||||||
value = valueFormat({...unref(getValues),value});
|
value = valueFormat({ ...unref(getValues), value });
|
||||||
}
|
}
|
||||||
props.setFormModel(field, value, props.schema);
|
props.setFormModel(field, value, props.schema);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,13 @@ export function createPlaceholderMessage(component: ComponentType) {
|
||||||
|
|
||||||
const DATE_TYPE = ['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'];
|
const DATE_TYPE = ['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传组件
|
||||||
|
*/
|
||||||
|
export const uploadItemType: ComponentType[] = ['Upload', 'ImageUpload'];
|
||||||
|
|
||||||
function genType() {
|
function genType() {
|
||||||
return [...DATE_TYPE, 'RangePicker',"TimeRangePicker"];
|
return [...DATE_TYPE, 'RangePicker', 'TimeRangePicker'];
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setComponentRuleType(
|
export function setComponentRuleType(
|
||||||
|
|
@ -45,7 +50,7 @@ export function setComponentRuleType(
|
||||||
}
|
}
|
||||||
if (['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'].includes(component)) {
|
if (['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'].includes(component)) {
|
||||||
rule.type = valueFormat ? 'string' : 'object';
|
rule.type = valueFormat ? 'string' : 'object';
|
||||||
} else if (['RangePicker', 'Upload', 'CheckboxGroup'].includes(component)) {
|
} else if (['RangePicker', 'CheckboxGroup'].includes(component)) {
|
||||||
rule.type = 'array';
|
rule.type = 'array';
|
||||||
} else if (['InputNumber'].includes(component)) {
|
} else if (['InputNumber'].includes(component)) {
|
||||||
rule.type = 'number';
|
rule.type = 'number';
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,16 @@ import type { NamePath } from 'ant-design-vue/lib/form/interface';
|
||||||
import { unref, toRaw, nextTick } from 'vue';
|
import { unref, toRaw, nextTick } from 'vue';
|
||||||
import { isArray, isFunction, isObject, isString, isNil } from '@/utils/is';
|
import { isArray, isFunction, isObject, isString, isNil } from '@/utils/is';
|
||||||
import { deepMerge } from '@/utils';
|
import { deepMerge } from '@/utils';
|
||||||
import { dateItemType, defaultValueComponents, isIncludeSimpleComponents } from '../helper';
|
import {
|
||||||
|
dateItemType,
|
||||||
|
defaultValueComponents,
|
||||||
|
isIncludeSimpleComponents,
|
||||||
|
uploadItemType,
|
||||||
|
} from '../helper';
|
||||||
import { dateUtil } from '@/utils/dateUtil';
|
import { dateUtil } from '@/utils/dateUtil';
|
||||||
import { cloneDeep, has, uniqBy, get, set } from 'lodash-es';
|
import { cloneDeep, has, uniqBy, get, set } from 'lodash-es';
|
||||||
import { error } from '@/utils/log';
|
import { error } from '@/utils/log';
|
||||||
|
import { ComponentProps } from '../types';
|
||||||
|
|
||||||
interface UseFormActionContext {
|
interface UseFormActionContext {
|
||||||
emit: EmitType;
|
emit: EmitType;
|
||||||
|
|
@ -19,7 +25,12 @@ interface UseFormActionContext {
|
||||||
schemaRef: Ref<FormSchema[]>;
|
schemaRef: Ref<FormSchema[]>;
|
||||||
handleFormValues: Fn;
|
handleFormValues: Fn;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @description: Is it upload
|
||||||
|
*/
|
||||||
|
export function itemIsUploadComponent(key: keyof ComponentProps) {
|
||||||
|
return uploadItemType.includes(key);
|
||||||
|
}
|
||||||
function tryConstructArray(field: string, values: Recordable = {}): any[] | undefined {
|
function tryConstructArray(field: string, values: Recordable = {}): any[] | undefined {
|
||||||
const pattern = /^\[(.+)\]$/;
|
const pattern = /^\[(.+)\]$/;
|
||||||
if (pattern.test(field)) {
|
if (pattern.test(field)) {
|
||||||
|
|
@ -123,7 +134,20 @@ export function useFormEvents({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Adapt upload component
|
||||||
|
if (itemIsUploadComponent(schema?.component)) {
|
||||||
|
constructValue = get(value, key);
|
||||||
|
const fieldValue = constructValue || value;
|
||||||
|
if (fieldValue) {
|
||||||
|
if (isArray(fieldValue)) {
|
||||||
|
unref(formModel)[key] = fieldValue;
|
||||||
|
} else if (typeof fieldValue == 'string') {
|
||||||
|
unref(formModel)[key] = [fieldValue];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
validKeys.push(key);
|
||||||
|
return;
|
||||||
|
}
|
||||||
// Adapt common component
|
// Adapt common component
|
||||||
if (hasKey) {
|
if (hasKey) {
|
||||||
constructValue = get(value, key);
|
constructValue = get(value, key);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import type { Options, Props } from './typing';
|
|
||||||
import ImgPreview from './Functional.vue';
|
|
||||||
import { isClient } from '@/utils/is';
|
import { isClient } from '@/utils/is';
|
||||||
import { createVNode, render } from 'vue';
|
import { createVNode, render } from 'vue';
|
||||||
|
import ImgPreview from './Functional.vue';
|
||||||
|
import type { Options, Props } from './typing';
|
||||||
|
|
||||||
let instance: ReturnType<typeof createVNode> | null = null;
|
let instance: ReturnType<typeof createVNode> | null = null;
|
||||||
export function createImgPreview(options: Options) {
|
export function createImgPreview(options: Options) {
|
||||||
|
|
@ -10,8 +10,13 @@ export function createImgPreview(options: Options) {
|
||||||
const container = document.createElement('div');
|
const container = document.createElement('div');
|
||||||
Object.assign(propsData, { show: true, index: 0, scaleStep: 100 }, options);
|
Object.assign(propsData, { show: true, index: 0, scaleStep: 100 }, options);
|
||||||
|
|
||||||
instance = createVNode(ImgPreview, propsData);
|
if (instance?.component) {
|
||||||
render(instance, container);
|
// 存在实例时,更新props
|
||||||
document.body.appendChild(container);
|
Object.assign(instance.component.props, propsData);
|
||||||
|
} else {
|
||||||
|
instance = createVNode(ImgPreview, propsData);
|
||||||
|
render(instance, container);
|
||||||
|
document.body.appendChild(container);
|
||||||
|
}
|
||||||
return instance.component?.exposed;
|
return instance.component?.exposed;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,11 +17,11 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { PropType, ref, computed, unref, getCurrentInstance, watch, useSlots } from 'vue';
|
|
||||||
import { useDesign } from '@/hooks/web/useDesign';
|
import { useDesign } from '@/hooks/web/useDesign';
|
||||||
import { propTypes } from '@/utils/propTypes';
|
import { propTypes } from '@/utils/propTypes';
|
||||||
import { useMenuItem } from './useMenu';
|
|
||||||
import { Tooltip } from 'ant-design-vue';
|
import { Tooltip } from 'ant-design-vue';
|
||||||
|
import { computed, getCurrentInstance, PropType, ref, unref, useSlots, watch } from 'vue';
|
||||||
|
import { useMenuItem } from './useMenu';
|
||||||
import { useSimpleRootMenuContext } from './useSimpleMenuContext';
|
import { useSimpleRootMenuContext } from './useSimpleMenuContext';
|
||||||
|
|
||||||
defineOptions({ name: 'MenuItem' });
|
defineOptions({ name: 'MenuItem' });
|
||||||
|
|
@ -76,7 +76,7 @@
|
||||||
const { uidList } = getParentList();
|
const { uidList } = getParentList();
|
||||||
|
|
||||||
rootMenuEmitter.emit('on-update-opened', {
|
rootMenuEmitter.emit('on-update-opened', {
|
||||||
opend: false,
|
opened: false,
|
||||||
parent: instance?.parent,
|
parent: instance?.parent,
|
||||||
uidList: uidList,
|
uidList: uidList,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -57,27 +57,27 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { type TimeoutHandle, type Recordable } from '@vben/types';
|
|
||||||
import type { CSSProperties, PropType } from 'vue';
|
|
||||||
import type { SubMenuProvider } from './types';
|
|
||||||
import {
|
|
||||||
computed,
|
|
||||||
unref,
|
|
||||||
getCurrentInstance,
|
|
||||||
reactive,
|
|
||||||
provide,
|
|
||||||
onBeforeMount,
|
|
||||||
inject,
|
|
||||||
} from 'vue';
|
|
||||||
import { useDesign } from '@/hooks/web/useDesign';
|
|
||||||
import { propTypes } from '@/utils/propTypes';
|
|
||||||
import { useMenuItem } from './useMenu';
|
|
||||||
import { useSimpleRootMenuContext } from './useSimpleMenuContext';
|
|
||||||
import { CollapseTransition } from '@/components/Transition';
|
|
||||||
import Icon from '@/components/Icon/Icon.vue';
|
import Icon from '@/components/Icon/Icon.vue';
|
||||||
import { Popover } from 'ant-design-vue';
|
import { CollapseTransition } from '@/components/Transition';
|
||||||
|
import { useDesign } from '@/hooks/web/useDesign';
|
||||||
import { isBoolean, isObject } from '@/utils/is';
|
import { isBoolean, isObject } from '@/utils/is';
|
||||||
import { mitt } from '@/utils/mitt';
|
import { mitt } from '@/utils/mitt';
|
||||||
|
import { propTypes } from '@/utils/propTypes';
|
||||||
|
import { type Recordable, type TimeoutHandle } from '@vben/types';
|
||||||
|
import { Popover } from 'ant-design-vue';
|
||||||
|
import type { CSSProperties, PropType } from 'vue';
|
||||||
|
import {
|
||||||
|
computed,
|
||||||
|
getCurrentInstance,
|
||||||
|
inject,
|
||||||
|
onBeforeMount,
|
||||||
|
provide,
|
||||||
|
reactive,
|
||||||
|
unref,
|
||||||
|
} from 'vue';
|
||||||
|
import type { SubMenuProvider } from './types';
|
||||||
|
import { useMenuItem } from './useMenu';
|
||||||
|
import { useSimpleRootMenuContext } from './useSimpleMenuContext';
|
||||||
|
|
||||||
defineOptions({ name: 'SubMenu' });
|
defineOptions({ name: 'SubMenu' });
|
||||||
|
|
||||||
|
|
@ -184,7 +184,7 @@
|
||||||
if (unref(getAccordion)) {
|
if (unref(getAccordion)) {
|
||||||
const { uidList } = getParentList();
|
const { uidList } = getParentList();
|
||||||
rootMenuEmitter.emit('on-update-opened', {
|
rootMenuEmitter.emit('on-update-opened', {
|
||||||
opend: false,
|
opened: false,
|
||||||
parent: instance?.parent,
|
parent: instance?.parent,
|
||||||
uidList: uidList,
|
uidList: uidList,
|
||||||
});
|
});
|
||||||
|
|
@ -267,9 +267,9 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (isObject(data) && rootProps.accordion) {
|
if (isObject(data) && rootProps.accordion) {
|
||||||
const { opend, parent, uidList } = data as Recordable<any>;
|
const { opened, parent, uidList } = data as Recordable<any>;
|
||||||
if (parent === instance?.parent) {
|
if (parent === instance?.parent) {
|
||||||
state.opened = opend;
|
state.opened = opened;
|
||||||
} else if (!uidList.includes(instance?.uid)) {
|
} else if (!uidList.includes(instance?.uid)) {
|
||||||
state.opened = false;
|
state.opened = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
import type { InjectionKey, Ref, ComponentInternalInstance } from 'vue';
|
|
||||||
import type { Emitter } from '@/utils/mitt';
|
|
||||||
import { createContext, useContext } from '@/hooks/core/useContext';
|
import { createContext, useContext } from '@/hooks/core/useContext';
|
||||||
|
import type { Emitter } from '@/utils/mitt';
|
||||||
|
import type { ComponentInternalInstance, InjectionKey, Ref } from 'vue';
|
||||||
|
|
||||||
export type MenuEmitterEvents = {
|
export type MenuEmitterEvents = {
|
||||||
'on-update-opened':
|
'on-update-opened':
|
||||||
| (string | number)[]
|
| (string | number)[]
|
||||||
| {
|
| {
|
||||||
opend: boolean;
|
opened: boolean;
|
||||||
parent?: ComponentInternalInstance | null;
|
parent?: ComponentInternalInstance | null;
|
||||||
uidList: number[];
|
uidList: number[];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
import { treeToList } from '@/utils/helper/treeHelper';
|
import { treeToList } from '@/utils/helper/treeHelper';
|
||||||
import { Spin } from 'ant-design-vue';
|
import { Spin } from 'ant-design-vue';
|
||||||
import { parseRowKey } from '../../helper';
|
import { parseRowKey } from '../../helper';
|
||||||
|
import { warn } from '@/utils/log';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'EditableCell',
|
name: 'EditableCell',
|
||||||
|
|
@ -282,6 +283,7 @@
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
result = false;
|
result = false;
|
||||||
|
warn(e);
|
||||||
} finally {
|
} finally {
|
||||||
spinning.value = false;
|
spinning.value = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -540,13 +540,13 @@
|
||||||
label:
|
label:
|
||||||
typeof col.title === 'string'
|
typeof col.title === 'string'
|
||||||
? col.title
|
? col.title
|
||||||
: col.customTitle === 'string'
|
: typeof col.customTitle === 'string'
|
||||||
? col.customTitle
|
? col.customTitle
|
||||||
: '',
|
: '',
|
||||||
value:
|
value:
|
||||||
typeof col.dataIndex === 'string'
|
typeof col.dataIndex === 'string'
|
||||||
? col.dataIndex
|
? col.dataIndex
|
||||||
: col.title === 'string'
|
: typeof col.title === 'string'
|
||||||
? col.title
|
? col.title
|
||||||
: '',
|
: '',
|
||||||
column: {
|
column: {
|
||||||
|
|
|
||||||
|
|
@ -146,6 +146,7 @@ export function useDataSource(
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
deep: true,
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@
|
||||||
import UploadPreviewModal from './components/UploadPreviewModal.vue';
|
import UploadPreviewModal from './components/UploadPreviewModal.vue';
|
||||||
import { BaseFileItem } from './types/typing';
|
import { BaseFileItem } from './types/typing';
|
||||||
import { buildUUID } from '@/utils/uuid';
|
import { buildUUID } from '@/utils/uuid';
|
||||||
|
|
||||||
defineOptions({ name: 'BasicUpload' });
|
defineOptions({ name: 'BasicUpload' });
|
||||||
|
|
||||||
const props = defineProps(uploadContainerProps);
|
const props = defineProps(uploadContainerProps);
|
||||||
|
|
@ -85,7 +86,10 @@
|
||||||
const value = { ...attrs, ...props };
|
const value = { ...attrs, ...props };
|
||||||
return omit(value, 'onChange');
|
return omit(value, 'onChange');
|
||||||
});
|
});
|
||||||
function getValue(valueKey="url") {
|
|
||||||
|
const isFirstRender = ref<boolean>(true);
|
||||||
|
|
||||||
|
function getValue(valueKey = 'url') {
|
||||||
const list = (fileList.value || []).map((item: any) => {
|
const list = (fileList.value || []).map((item: any) => {
|
||||||
return item[valueKey];
|
return item[valueKey];
|
||||||
});
|
});
|
||||||
|
|
@ -110,7 +114,7 @@
|
||||||
} else if (typeof v == 'string') {
|
} else if (typeof v == 'string') {
|
||||||
values.push(v);
|
values.push(v);
|
||||||
}
|
}
|
||||||
fileList.value = values.map((item,i) => {
|
fileList.value = values.map((item) => {
|
||||||
if (item && isString(item)) {
|
if (item && isString(item)) {
|
||||||
return {
|
return {
|
||||||
uid: buildUUID(),
|
uid: buildUUID(),
|
||||||
|
|
@ -124,13 +128,19 @@
|
||||||
}) as any;
|
}) as any;
|
||||||
}
|
}
|
||||||
emit('update:value', values);
|
emit('update:value', values);
|
||||||
emit('change', values);
|
if (!isFirstRender.value) {
|
||||||
|
emit('change', values);
|
||||||
|
isFirstRender.value = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
immediate: true,
|
||||||
|
deep: true,
|
||||||
},
|
},
|
||||||
{ immediate: true },
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// 上传modal保存操作
|
// 上传modal保存操作
|
||||||
function handleChange(urls: string[],valueKey:string) {
|
function handleChange(urls: string[], valueKey: string) {
|
||||||
fileList.value = [...unref(fileList), ...(genFileListByUrls(urls) || [])];
|
fileList.value = [...unref(fileList), ...(genFileListByUrls(urls) || [])];
|
||||||
const values = getValue(valueKey);
|
const values = getValue(valueKey);
|
||||||
emit('update:value', values);
|
emit('update:value', values);
|
||||||
|
|
@ -138,7 +148,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// 预览modal保存操作
|
// 预览modal保存操作
|
||||||
function handlePreviewChange(fileItems: string[],valueKey:string) {
|
function handlePreviewChange(fileItems: string[], valueKey: string) {
|
||||||
fileList.value = [...(fileItems || [])];
|
fileList.value = [...(fileItems || [])];
|
||||||
const values = getValue(valueKey);
|
const values = getValue(valueKey);
|
||||||
emit('update:value', values);
|
emit('update:value', values);
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,7 @@
|
||||||
const fileList = ref<UploadProps['fileList']>([]);
|
const fileList = ref<UploadProps['fileList']>([]);
|
||||||
const isLtMsg = ref<boolean>(true);
|
const isLtMsg = ref<boolean>(true);
|
||||||
const isActMsg = ref<boolean>(true);
|
const isActMsg = ref<boolean>(true);
|
||||||
|
const isFirstRender = ref<boolean>(true);
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.value,
|
() => props.value,
|
||||||
|
|
@ -94,7 +95,10 @@
|
||||||
}) as UploadProps['fileList'];
|
}) as UploadProps['fileList'];
|
||||||
}
|
}
|
||||||
emit('update:value', value);
|
emit('update:value', value);
|
||||||
emit('change', value);
|
if (!isFirstRender.value) {
|
||||||
|
emit('change', value);
|
||||||
|
isFirstRender.value = false;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
immediate: true,
|
immediate: true,
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@
|
||||||
import { BasicColumn } from '@/components/Table';
|
import { BasicColumn } from '@/components/Table';
|
||||||
import { useMessage } from '@/hooks/web/useMessage';
|
import { useMessage } from '@/hooks/web/useMessage';
|
||||||
import { buildUUID } from '@/utils/uuid';
|
import { buildUUID } from '@/utils/uuid';
|
||||||
|
|
||||||
const { createMessage } = useMessage();
|
const { createMessage } = useMessage();
|
||||||
|
|
||||||
const props = defineProps(previewProps);
|
const props = defineProps(previewProps);
|
||||||
|
|
@ -97,7 +98,6 @@
|
||||||
return createMessage.warning(t('component.upload.maxNumber', [maxNumber]));
|
return createMessage.warning(t('component.upload.maxNumber', [maxNumber]));
|
||||||
}
|
}
|
||||||
record[uidKey] = record[uidKey] ?? buildUUID();
|
record[uidKey] = record[uidKey] ?? buildUUID();
|
||||||
record[valueKey] = record[valueKey];
|
|
||||||
fileListRef.value = [...fileListRef.value, record];
|
fileListRef.value = [...fileListRef.value, record];
|
||||||
emit('list-change', fileListRef.value, valueKey);
|
emit('list-change', fileListRef.value, valueKey);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ type SortableOptions = Merge<
|
||||||
// ...可扩展
|
// ...可扩展
|
||||||
}
|
}
|
||||||
>;
|
>;
|
||||||
export type handleFnKey = "record" | "valueKey" | "uidKey"
|
export type handleFnKey = 'record' | 'valueKey' | 'uidKey';
|
||||||
export type previewColumnsFnType = {
|
export type previewColumnsFnType = {
|
||||||
handleRemove: (record: Record<handleFnKey, any>) => any;
|
handleRemove: (record: Record<handleFnKey, any>) => any;
|
||||||
handleAdd: (record: Record<handleFnKey, any>) => any;
|
handleAdd: (record: Record<handleFnKey, any>) => any;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { withInstall } from '@/utils';
|
import { withInstall } from '@/utils';
|
||||||
import vxeBasicTable from './src/VxeBasicTable';
|
import vxeBasicTable from './src/VxeBasicTable';
|
||||||
import { VXETable } from 'vxe-table';
|
import { VxeUI } from 'vxe-table';
|
||||||
import VXETablePluginAntd from './src/components';
|
import VXETablePluginAntd from './src/components';
|
||||||
import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx';
|
import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx';
|
||||||
import ExcelJS from 'exceljs';
|
import ExcelJS from 'exceljs';
|
||||||
|
|
@ -10,4 +10,4 @@ export const VxeBasicTable = withInstall(vxeBasicTable);
|
||||||
export * from 'vxe-table';
|
export * from 'vxe-table';
|
||||||
export * from './src/types';
|
export * from './src/types';
|
||||||
|
|
||||||
VXETable.use(VXETablePluginAntd).use(VXETablePluginExportXLSX, { ExcelJS });
|
VxeUI.use(VXETablePluginAntd).use(VXETablePluginExportXLSX, { ExcelJS });
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,25 @@
|
||||||
import { defineComponent, computed, ref } from 'vue';
|
import { defineComponent, computed, ref, watch } from 'vue';
|
||||||
import { BasicTableProps } from './types';
|
import { BasicTableProps } from './types';
|
||||||
import { basicProps } from './props';
|
import { basicProps } from './props';
|
||||||
import { ignorePropKeys } from './const';
|
import { ignorePropKeys } from './const';
|
||||||
import { basicEmits } from './emits';
|
import { basicEmits } from './emits';
|
||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
import type {
|
import {
|
||||||
VxeGridInstance,
|
VxeGridInstance,
|
||||||
VxeGridEventProps,
|
VxeGridEventProps,
|
||||||
GridMethods,
|
GridMethods,
|
||||||
TableMethods,
|
TableMethods,
|
||||||
TableEditMethods,
|
TableEditMethods,
|
||||||
TableValidatorMethods,
|
TableValidatorMethods,
|
||||||
|
VxeUI,
|
||||||
|
VxeGlobalThemeName,
|
||||||
|
VxeGrid,
|
||||||
} from 'vxe-table';
|
} from 'vxe-table';
|
||||||
import { Grid as VxeGrid } from 'vxe-table';
|
|
||||||
|
|
||||||
import { extendSlots } from '@/utils/helper/tsxHelper';
|
import { extendSlots } from '@/utils/helper/tsxHelper';
|
||||||
import { gridComponentMethodKeys } from './methods';
|
import { gridComponentMethodKeys } from './methods';
|
||||||
import { omit } from 'lodash-es';
|
import { omit } from 'lodash-es';
|
||||||
|
import { useRootSetting } from '@/hooks/setting/useRootSetting';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'VxeBasicTable',
|
name: 'VxeBasicTable',
|
||||||
|
|
@ -25,7 +28,14 @@ export default defineComponent({
|
||||||
setup(props, { emit, attrs }) {
|
setup(props, { emit, attrs }) {
|
||||||
const tableElRef = ref<VxeGridInstance>();
|
const tableElRef = ref<VxeGridInstance>();
|
||||||
const emitEvents: VxeGridEventProps = {};
|
const emitEvents: VxeGridEventProps = {};
|
||||||
|
const { getDarkMode } = useRootSetting();
|
||||||
|
watch(
|
||||||
|
() => getDarkMode.value,
|
||||||
|
() => {
|
||||||
|
VxeUI.setTheme(getDarkMode.value as VxeGlobalThemeName);
|
||||||
|
},
|
||||||
|
{ immediate: true },
|
||||||
|
);
|
||||||
const extendTableMethods = (methodKeys) => {
|
const extendTableMethods = (methodKeys) => {
|
||||||
const funcs: any = {};
|
const funcs: any = {};
|
||||||
methodKeys.forEach((name) => {
|
methodKeys.forEach((name) => {
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,21 @@
|
||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
import { createDefaultRender, createEditRender, createFormItemRender } from './common';
|
import { createDefaultRender, createEditRender, createFormItemRender } from './common';
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderDefault: createDefaultRender({}, (_, params) => {
|
renderTableDefault: createDefaultRender({}, (_, params) => {
|
||||||
return {
|
return {
|
||||||
params: XEUtils.get(params, 'row'),
|
params: XEUtils.get(params, 'row'),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
renderEdit: createEditRender({}, (_, params) => {
|
renderTableEdit: createEditRender({}, (_, params) => {
|
||||||
return {
|
return {
|
||||||
params: XEUtils.get(params, 'row'),
|
params: XEUtils.get(params, 'row'),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
renderItemContent: createFormItemRender({}, (_, params) => {
|
renderFormItemContent: createFormItemRender({}, (_, params) => {
|
||||||
return {
|
return {
|
||||||
params: XEUtils.get(params, 'row'),
|
params: XEUtils.get(params, 'row'),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,21 @@
|
||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
import { createDefaultRender, createEditRender, createFormItemRender } from './common';
|
import { createDefaultRender, createEditRender, createFormItemRender } from './common';
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderDefault: createDefaultRender({}, (_, params) => {
|
renderTableDefault: createDefaultRender({}, (_, params) => {
|
||||||
return {
|
return {
|
||||||
params: XEUtils.get(params, 'row'),
|
params: XEUtils.get(params, 'row'),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
renderEdit: createEditRender({}, (_, params) => {
|
renderTableEdit: createEditRender({}, (_, params) => {
|
||||||
return {
|
return {
|
||||||
params: XEUtils.get(params, 'row'),
|
params: XEUtils.get(params, 'row'),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
renderItemContent: createFormItemRender({}, (_, params) => {
|
renderFormItemContent: createFormItemRender({}, (_, params) => {
|
||||||
return {
|
return {
|
||||||
params: XEUtils.get(params, 'row'),
|
params: XEUtils.get(params, 'row'),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import {
|
import {
|
||||||
createEditRender,
|
createEditRender,
|
||||||
createDefaultRender,
|
createDefaultRender,
|
||||||
|
|
@ -7,10 +8,10 @@ import {
|
||||||
} from './common';
|
} from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
autofocus: 'input.ant-input',
|
tableAutoFocus: 'input.ant-input',
|
||||||
renderDefault: createDefaultRender(),
|
renderTableDefault: createDefaultRender(),
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderFilter: createFilterRender(),
|
renderTableFilter: createFilterRender(),
|
||||||
defaultFilterMethod: createDefaultFilterRender(),
|
tableFilterDefaultMethod: createDefaultFilterRender(),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
import {
|
import {
|
||||||
FormItemContentRenderParams,
|
FormItemContentRenderParams,
|
||||||
FormItemRenderOptions,
|
VxeFormItemPropTypes,
|
||||||
VxeGlobalRendererHandles,
|
VxeGlobalRendererHandles,
|
||||||
|
VxeGlobalRendererOptions,
|
||||||
} from 'vxe-table';
|
} from 'vxe-table';
|
||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
import { cellText, createEvents, createProps, getComponent } from './common';
|
import { cellText, createEvents, createProps, getComponent } from './common';
|
||||||
|
|
@ -11,8 +12,8 @@ const COMPONENT_NAME = 'AButton';
|
||||||
|
|
||||||
export function createEditRender() {
|
export function createEditRender() {
|
||||||
return function (
|
return function (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderEditOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderEditParams,
|
params: VxeGlobalRendererHandles.RenderTableEditParams,
|
||||||
) {
|
) {
|
||||||
const { attrs } = renderOpts;
|
const { attrs } = renderOpts;
|
||||||
const Component = getComponent(COMPONENT_NAME);
|
const Component = getComponent(COMPONENT_NAME);
|
||||||
|
|
@ -29,8 +30,8 @@ export function createEditRender() {
|
||||||
|
|
||||||
export function createDefaultRender() {
|
export function createDefaultRender() {
|
||||||
return function (
|
return function (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderEditOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderEditParams,
|
params: VxeGlobalRendererHandles.RenderTableEditParams,
|
||||||
) {
|
) {
|
||||||
const { attrs } = renderOpts;
|
const { attrs } = renderOpts;
|
||||||
const Component = getComponent(COMPONENT_NAME);
|
const Component = getComponent(COMPONENT_NAME);
|
||||||
|
|
@ -50,7 +51,10 @@ export function createDefaultRender() {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createFormItemRender() {
|
export function createFormItemRender() {
|
||||||
return function (renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {
|
return function (
|
||||||
|
renderOpts: VxeFormItemPropTypes.ItemRender,
|
||||||
|
params: FormItemContentRenderParams,
|
||||||
|
) {
|
||||||
const { attrs, content } = renderOpts;
|
const { attrs, content } = renderOpts;
|
||||||
const { property, $form, data } = params;
|
const { property, $form, data } = params;
|
||||||
const props = createProps(renderOpts, null);
|
const props = createProps(renderOpts, null);
|
||||||
|
|
@ -113,8 +117,8 @@ function createToolbarButtonRender() {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderDefault: createDefaultRender(),
|
renderTableDefault: createDefaultRender(),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
renderToolbarButton: createToolbarButtonRender(),
|
renderToolbarButton: createToolbarButtonRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,21 @@
|
||||||
import {
|
import {
|
||||||
FormItemContentRenderParams,
|
FormItemContentRenderParams,
|
||||||
FormItemRenderOptions,
|
VxeFormItemPropTypes,
|
||||||
VxeGlobalRendererHandles,
|
VxeGlobalRendererHandles,
|
||||||
|
VxeGlobalRendererOptions,
|
||||||
} from 'vxe-table';
|
} from 'vxe-table';
|
||||||
import { createDefaultRender, createEditRender, createFormItemRender } from './AButton';
|
import { createDefaultRender, createEditRender, createFormItemRender } from './AButton';
|
||||||
|
|
||||||
function createEditButtonRender() {
|
function createEditButtonRender() {
|
||||||
return function (
|
return function (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderEditOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderEditParams,
|
params: VxeGlobalRendererHandles.RenderTableEditParams,
|
||||||
) {
|
) {
|
||||||
const buttonEditRender = createEditRender();
|
const buttonEditRender = createEditRender();
|
||||||
const { children } = renderOpts;
|
const { children } = renderOpts;
|
||||||
if (children) {
|
if (children) {
|
||||||
return children.map(
|
return children.map(
|
||||||
(childRenderOpts: VxeGlobalRendererHandles.RenderEditOptions) =>
|
(childRenderOpts: VxeGlobalRendererHandles.RenderTableEditOptions) =>
|
||||||
buttonEditRender(childRenderOpts, params)[0],
|
buttonEditRender(childRenderOpts, params)[0],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -25,7 +26,7 @@ function createEditButtonRender() {
|
||||||
function createDefaultButtonRender() {
|
function createDefaultButtonRender() {
|
||||||
return function (
|
return function (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderDefaultOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderDefaultOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderDefaultParams,
|
params: VxeGlobalRendererHandles.RenderTableDefaultParams,
|
||||||
) {
|
) {
|
||||||
const buttonDefaultRender = createDefaultRender();
|
const buttonDefaultRender = createDefaultRender();
|
||||||
const { children } = renderOpts;
|
const { children } = renderOpts;
|
||||||
|
|
@ -40,12 +41,16 @@ function createDefaultButtonRender() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function createButtonItemRender() {
|
function createButtonItemRender() {
|
||||||
return function (renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {
|
return function (
|
||||||
|
renderOpts: VxeFormItemPropTypes.ItemRender,
|
||||||
|
params: FormItemContentRenderParams,
|
||||||
|
) {
|
||||||
const buttonItemRender = createFormItemRender();
|
const buttonItemRender = createFormItemRender();
|
||||||
const { children } = renderOpts;
|
const { children } = renderOpts;
|
||||||
if (children) {
|
if (children) {
|
||||||
return children.map(
|
return children.map(
|
||||||
(childRenderOpts: FormItemRenderOptions) => buttonItemRender(childRenderOpts, params)[0],
|
(childRenderOpts: VxeFormItemPropTypes.ItemRender) =>
|
||||||
|
buttonItemRender(childRenderOpts, params)[0],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
|
|
@ -53,7 +58,7 @@ function createButtonItemRender() {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditButtonRender(),
|
renderTableEdit: createEditButtonRender(),
|
||||||
renderDefault: createDefaultButtonRender(),
|
renderTableDefault: createDefaultButtonRender(),
|
||||||
renderItemContent: createButtonItemRender(),
|
renderFormItemContent: createButtonItemRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { VxeGlobalRendererHandles } from 'vxe-table';
|
import { VxeGlobalRendererHandles, VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
import {
|
import {
|
||||||
createEditRender,
|
createEditRender,
|
||||||
|
|
@ -21,7 +21,7 @@ function matchCascaderData(index: number, list: any[], values: any[], labels: an
|
||||||
|
|
||||||
function getCascaderCellValue(
|
function getCascaderCellValue(
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderCellParams,
|
params: VxeGlobalRendererHandles.RenderTableCellParams,
|
||||||
) {
|
) {
|
||||||
const { props = {} } = renderOpts;
|
const { props = {} } = renderOpts;
|
||||||
const { row, column } = params;
|
const { row, column } = params;
|
||||||
|
|
@ -35,8 +35,8 @@ function getCascaderCellValue(
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderCell: createCellRender(getCascaderCellValue),
|
renderTableCell: createCellRender(getCascaderCellValue),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
exportMethod: createExportMethod(getCascaderCellValue),
|
tableExportMethod: createExportMethod(getCascaderCellValue),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import { createFormItemRender } from './common';
|
import { createFormItemRender } from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { VxeGlobalRendererHandles } from 'vxe-table';
|
import { VxeGlobalRendererHandles, VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
import {
|
import {
|
||||||
createCellRender,
|
createCellRender,
|
||||||
|
|
@ -9,7 +9,9 @@ import {
|
||||||
|
|
||||||
export function getDatePickerCellValue(
|
export function getDatePickerCellValue(
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderCellParams | VxeGlobalRendererHandles.ExportMethodParams,
|
params:
|
||||||
|
| VxeGlobalRendererHandles.RenderTableCellParams
|
||||||
|
| VxeGlobalRendererHandles.ExportMethodParams,
|
||||||
defaultFormat: string,
|
defaultFormat: string,
|
||||||
) {
|
) {
|
||||||
const { props = {} } = renderOpts;
|
const { props = {} } = renderOpts;
|
||||||
|
|
@ -22,12 +24,12 @@ export function getDatePickerCellValue(
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderCell: createCellRender(getDatePickerCellValue, () => {
|
renderTableCell: createCellRender(getDatePickerCellValue, () => {
|
||||||
return ['YYYY-MM-DD'];
|
return ['YYYY-MM-DD'];
|
||||||
}),
|
}),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
exportMethod: createExportMethod(getDatePickerCellValue, () => {
|
tableExportMethod: createExportMethod(getDatePickerCellValue, () => {
|
||||||
return ['YYYY-MM-DD'];
|
return ['YYYY-MM-DD'];
|
||||||
}),
|
}),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
import { VxeGlobalRendererHandles } from 'vxe-table';
|
import { VxeGlobalRendererHandles, VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import { getComponent } from './common';
|
import { getComponent } from './common';
|
||||||
|
|
||||||
function createEmptyRender() {
|
function createEmptyRender() {
|
||||||
return function (renderOpts: VxeGlobalRendererHandles.RenderEmptyOptions) {
|
return function (renderOpts: VxeGlobalRendererHandles.RenderTableEmptyOptions) {
|
||||||
const { name, attrs, props } = renderOpts;
|
const { name, attrs, props } = renderOpts;
|
||||||
|
|
||||||
const Component = getComponent(name);
|
const Component = getComponent(name);
|
||||||
|
|
@ -23,5 +23,5 @@ function createEmptyRender() {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEmpty: createEmptyRender(),
|
renderTableEmptyView: createEmptyRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import {
|
import {
|
||||||
createEditRender,
|
createEditRender,
|
||||||
createDefaultRender,
|
createDefaultRender,
|
||||||
|
|
@ -7,10 +8,10 @@ import {
|
||||||
} from './common';
|
} from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
autofocus: 'input.ant-input',
|
tableAutoFocus: 'input.ant-input',
|
||||||
renderDefault: createDefaultRender(),
|
renderTableDefault: createDefaultRender(),
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderFilter: createFilterRender(),
|
renderTableFilter: createFilterRender(),
|
||||||
defaultFilterMethod: createDefaultFilterRender(),
|
tableFilterDefaultMethod: createDefaultFilterRender(),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import {
|
import {
|
||||||
createEditRender,
|
createEditRender,
|
||||||
createFilterRender,
|
createFilterRender,
|
||||||
|
|
@ -7,10 +8,10 @@ import {
|
||||||
} from './common';
|
} from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
autofocus: 'input.ant-input-number-input',
|
tableAutoFocus: 'input.ant-input-number-input',
|
||||||
renderDefault: createDefaultRender(),
|
renderTableDefault: createDefaultRender(),
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderFilter: createFilterRender(),
|
renderTableFilter: createFilterRender(),
|
||||||
defaultFilterMethod: createDefaultFilterRender(),
|
tableFilterDefaultMethod: createDefaultFilterRender(),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import {
|
import {
|
||||||
createEditRender,
|
createEditRender,
|
||||||
createDefaultRender,
|
createDefaultRender,
|
||||||
|
|
@ -8,10 +9,10 @@ import {
|
||||||
} from './common';
|
} from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderDefault: createDefaultRender(),
|
renderTableDefault: createDefaultRender(),
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderFilter: createFilterRender(),
|
renderTableFilter: createFilterRender(),
|
||||||
defaultFilterMethod: createDefaultFilterRender(),
|
tableFilterDefaultMethod: createDefaultFilterRender(),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
renderToolbarTool: createToolbarToolRender(),
|
renderToolbarTool: createToolbarToolRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import { getDatePickerCellValue } from './ADatePicker';
|
import { getDatePickerCellValue } from './ADatePicker';
|
||||||
import {
|
import {
|
||||||
createCellRender,
|
createCellRender,
|
||||||
|
|
@ -7,12 +8,12 @@ import {
|
||||||
} from './common';
|
} from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderCell: createCellRender(getDatePickerCellValue, () => {
|
renderTableCell: createCellRender(getDatePickerCellValue, () => {
|
||||||
return ['YYYY-MM'];
|
return ['YYYY-MM'];
|
||||||
}),
|
}),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
exportMethod: createExportMethod(getDatePickerCellValue, () => {
|
tableExportMethod: createExportMethod(getDatePickerCellValue, () => {
|
||||||
return ['YYYY-MM'];
|
return ['YYYY-MM'];
|
||||||
}),
|
}),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import { createFormItemRender } from './common';
|
import { createFormItemRender } from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { VxeColumnPropTypes, VxeGlobalRendererHandles } from 'vxe-table';
|
import { VxeColumnPropTypes, VxeGlobalRendererHandles, VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
import {
|
import {
|
||||||
createCellRender,
|
createCellRender,
|
||||||
|
|
@ -9,7 +9,9 @@ import {
|
||||||
|
|
||||||
function getRangePickerCellValue(
|
function getRangePickerCellValue(
|
||||||
renderOpts: VxeColumnPropTypes.EditRender,
|
renderOpts: VxeColumnPropTypes.EditRender,
|
||||||
params: VxeGlobalRendererHandles.RenderCellParams | VxeGlobalRendererHandles.ExportMethodParams,
|
params:
|
||||||
|
| VxeGlobalRendererHandles.RenderTableCellParams
|
||||||
|
| VxeGlobalRendererHandles.ExportMethodParams,
|
||||||
) {
|
) {
|
||||||
const { props = {} } = renderOpts;
|
const { props = {} } = renderOpts;
|
||||||
const { row, column } = params;
|
const { row, column } = params;
|
||||||
|
|
@ -23,8 +25,8 @@ function getRangePickerCellValue(
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderCell: createCellRender(getRangePickerCellValue),
|
renderTableCell: createCellRender(getRangePickerCellValue),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
exportMethod: createExportMethod(getRangePickerCellValue),
|
tableExportMethod: createExportMethod(getRangePickerCellValue),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import {
|
import {
|
||||||
createEditRender,
|
createEditRender,
|
||||||
createDefaultRender,
|
createDefaultRender,
|
||||||
|
|
@ -7,9 +8,9 @@ import {
|
||||||
} from './common';
|
} from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderDefault: createDefaultRender(),
|
renderTableDefault: createDefaultRender(),
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderFilter: createFilterRender(),
|
renderTableFilter: createFilterRender(),
|
||||||
defaultFilterMethod: createDefaultFilterRender(),
|
tableFilterDefaultMethod: createDefaultFilterRender(),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { ComponentOptions, h, resolveComponent } from 'vue';
|
import { ComponentOptions, h, resolveComponent } from 'vue';
|
||||||
import { VxeColumnPropTypes, VxeGlobalRendererHandles } from 'vxe-table';
|
import { VxeColumnPropTypes, VxeGlobalRendererHandles, VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
import {
|
import {
|
||||||
cellText,
|
cellText,
|
||||||
|
|
@ -32,7 +32,7 @@ function renderOptions(options: any[], optionProps: VxeGlobalRendererHandles.Ren
|
||||||
function createEditRender() {
|
function createEditRender() {
|
||||||
return function (
|
return function (
|
||||||
renderOpts: VxeColumnPropTypes.EditRender,
|
renderOpts: VxeColumnPropTypes.EditRender,
|
||||||
params: VxeGlobalRendererHandles.RenderEditParams,
|
params: VxeGlobalRendererHandles.RenderTableEditParams,
|
||||||
) {
|
) {
|
||||||
const { options = [], optionGroups, optionProps = {}, optionGroupProps = {} } = renderOpts;
|
const { options = [], optionGroups, optionProps = {}, optionGroupProps = {} } = renderOpts;
|
||||||
const { row, column, $table } = params;
|
const { row, column, $table } = params;
|
||||||
|
|
@ -100,8 +100,8 @@ function createEditRender() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSelectCellValue(
|
function getSelectCellValue(
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderCellOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderTableCellOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderCellParams,
|
params: VxeGlobalRendererHandles.RenderTableCellParams,
|
||||||
) {
|
) {
|
||||||
const {
|
const {
|
||||||
options = [],
|
options = [],
|
||||||
|
|
@ -144,7 +144,7 @@ function getSelectCellValue(
|
||||||
function createFilterRender() {
|
function createFilterRender() {
|
||||||
return function (
|
return function (
|
||||||
renderOpts: VxeColumnPropTypes.FilterRender,
|
renderOpts: VxeColumnPropTypes.FilterRender,
|
||||||
params: VxeGlobalRendererHandles.RenderFilterParams,
|
params: VxeGlobalRendererHandles.RenderTableFilterParams,
|
||||||
) {
|
) {
|
||||||
const { options = [], optionGroups, optionProps = {}, optionGroupProps = {} } = renderOpts;
|
const { options = [], optionGroups, optionProps = {}, optionGroupProps = {} } = renderOpts;
|
||||||
const groupOptions = optionGroupProps.options || 'options';
|
const groupOptions = optionGroupProps.options || 'options';
|
||||||
|
|
@ -249,10 +249,10 @@ function createFilterRender() {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderCell: createCellRender(getSelectCellValue),
|
renderTableCell: createCellRender(getSelectCellValue),
|
||||||
renderFilter: createFilterRender(),
|
renderTableFilter: createFilterRender(),
|
||||||
defaultFilterMethod(params) {
|
tableFilterDefaultMethod(params) {
|
||||||
const { option, row, column } = params;
|
const { option, row, column } = params;
|
||||||
const { data } = option;
|
const { data } = option;
|
||||||
const { field, filterRender: renderOpts } = column;
|
const { field, filterRender: renderOpts } = column;
|
||||||
|
|
@ -266,6 +266,6 @@ export default {
|
||||||
}
|
}
|
||||||
return cellValue == data;
|
return cellValue == data;
|
||||||
},
|
},
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
exportMethod: createExportMethod(getSelectCellValue),
|
tableExportMethod: createExportMethod(getSelectCellValue),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,12 @@ import {
|
||||||
createFormItemRender,
|
createFormItemRender,
|
||||||
getComponent,
|
getComponent,
|
||||||
} from './common';
|
} from './common';
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderDefault: createDefaultRender(),
|
renderTableDefault: createDefaultRender(),
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderFilter(renderOpts, params) {
|
renderTableFilter(renderOpts, params) {
|
||||||
const { column } = params;
|
const { column } = params;
|
||||||
const { name, attrs } = renderOpts;
|
const { name, attrs } = renderOpts;
|
||||||
const Component = getComponent(name);
|
const Component = getComponent(name);
|
||||||
|
|
@ -48,6 +49,6 @@ export default {
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
defaultFilterMethod: createDefaultFilterRender(),
|
tableFilterDefaultMethod: createDefaultFilterRender(),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import { getDatePickerCellValue } from './ADatePicker';
|
import { getDatePickerCellValue } from './ADatePicker';
|
||||||
import {
|
import {
|
||||||
createEditRender,
|
createEditRender,
|
||||||
|
|
@ -7,12 +8,12 @@ import {
|
||||||
} from './common';
|
} from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderCell: createCellRender(getDatePickerCellValue, () => {
|
renderTableCell: createCellRender(getDatePickerCellValue, () => {
|
||||||
return ['HH:mm:ss'];
|
return ['HH:mm:ss'];
|
||||||
}),
|
}),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
exportMethod: createExportMethod(getDatePickerCellValue, () => {
|
tableExportMethod: createExportMethod(getDatePickerCellValue, () => {
|
||||||
return ['HH:mm:ss'];
|
return ['HH:mm:ss'];
|
||||||
}),
|
}),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { VxeGlobalRendererHandles } from 'vxe-table';
|
import { VxeGlobalRendererHandles, VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
import {
|
import {
|
||||||
createEditRender,
|
createEditRender,
|
||||||
|
|
@ -10,7 +10,9 @@ import {
|
||||||
|
|
||||||
function getTreeSelectCellValue(
|
function getTreeSelectCellValue(
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderCellParams | VxeGlobalRendererHandles.ExportMethodParams,
|
params:
|
||||||
|
| VxeGlobalRendererHandles.RenderTableCellParams
|
||||||
|
| VxeGlobalRendererHandles.ExportMethodParams,
|
||||||
) {
|
) {
|
||||||
const { props = {} } = renderOpts;
|
const { props = {} } = renderOpts;
|
||||||
const { treeData, treeCheckable } = props;
|
const { treeData, treeCheckable } = props;
|
||||||
|
|
@ -28,8 +30,8 @@ function getTreeSelectCellValue(
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderCell: createCellRender(getTreeSelectCellValue),
|
renderTableCell: createCellRender(getTreeSelectCellValue),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
exportMethod: createExportMethod(getTreeSelectCellValue),
|
tableExportMethod: createExportMethod(getTreeSelectCellValue),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import { getDatePickerCellValue } from './ADatePicker';
|
import { getDatePickerCellValue } from './ADatePicker';
|
||||||
import {
|
import {
|
||||||
createEditRender,
|
createEditRender,
|
||||||
|
|
@ -7,12 +8,12 @@ import {
|
||||||
} from './common';
|
} from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderCell: createCellRender(getDatePickerCellValue, () => {
|
renderTableCell: createCellRender(getDatePickerCellValue, () => {
|
||||||
return ['YYYY-WW周'];
|
return ['YYYY-WW周'];
|
||||||
}),
|
}),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
exportMethod: createExportMethod(getDatePickerCellValue, () => {
|
tableExportMethod: createExportMethod(getDatePickerCellValue, () => {
|
||||||
return ['YYYY-WW周'];
|
return ['YYYY-WW周'];
|
||||||
}),
|
}),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { VxeGlobalRendererOptions } from 'vxe-table';
|
||||||
import { getDatePickerCellValue } from './ADatePicker';
|
import { getDatePickerCellValue } from './ADatePicker';
|
||||||
import {
|
import {
|
||||||
createEditRender,
|
createEditRender,
|
||||||
|
|
@ -7,12 +8,12 @@ import {
|
||||||
} from './common';
|
} from './common';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
renderEdit: createEditRender(),
|
renderTableEdit: createEditRender(),
|
||||||
renderCell: createCellRender(getDatePickerCellValue, () => {
|
renderTableCell: createCellRender(getDatePickerCellValue, () => {
|
||||||
return ['YYYY'];
|
return ['YYYY'];
|
||||||
}),
|
}),
|
||||||
renderItemContent: createFormItemRender(),
|
renderFormItemContent: createFormItemRender(),
|
||||||
exportMethod: createExportMethod(getDatePickerCellValue, () => {
|
tableExportMethod: createExportMethod(getDatePickerCellValue, () => {
|
||||||
return ['YYYY'];
|
return ['YYYY'];
|
||||||
}),
|
}),
|
||||||
};
|
} as VxeGlobalRendererOptions;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { ComponentOptions, h } from 'vue';
|
import { ComponentOptions, h } from 'vue';
|
||||||
import {
|
import {
|
||||||
FormItemContentRenderParams,
|
FormItemContentRenderParams,
|
||||||
FormItemRenderOptions,
|
VxeFormItemPropTypes,
|
||||||
VxeGlobalRendererHandles,
|
VxeGlobalRendererHandles,
|
||||||
} from 'vxe-table';
|
} from 'vxe-table';
|
||||||
import XEUtils from 'xe-utils';
|
import XEUtils from 'xe-utils';
|
||||||
|
|
@ -160,12 +160,12 @@ export function createDefaultRender(
|
||||||
defaultProps?: { [key: string]: any },
|
defaultProps?: { [key: string]: any },
|
||||||
callBack?: (
|
callBack?: (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderDefaultOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderDefaultOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderDefaultParams,
|
params: VxeGlobalRendererHandles.RenderTableDefaultParams,
|
||||||
) => Record<string, any>,
|
) => Record<string, any>,
|
||||||
) {
|
) {
|
||||||
return function (
|
return function (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderDefaultOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderDefaultOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderDefaultParams,
|
params: VxeGlobalRendererHandles.RenderTableDefaultParams,
|
||||||
) {
|
) {
|
||||||
const { row, column, $table } = params;
|
const { row, column, $table } = params;
|
||||||
const { name, attrs } = renderOpts;
|
const { name, attrs } = renderOpts;
|
||||||
|
|
@ -195,13 +195,13 @@ export function createDefaultRender(
|
||||||
export function createEditRender(
|
export function createEditRender(
|
||||||
defaultProps?: { [key: string]: any },
|
defaultProps?: { [key: string]: any },
|
||||||
callBack?: (
|
callBack?: (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderEditOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderEditParams,
|
params: VxeGlobalRendererHandles.RenderTableEditParams,
|
||||||
) => Record<string, any>,
|
) => Record<string, any>,
|
||||||
) {
|
) {
|
||||||
return function (
|
return function (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderEditOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderEditParams,
|
params: VxeGlobalRendererHandles.RenderTableEditParams,
|
||||||
) {
|
) {
|
||||||
const { row, column, $table } = params;
|
const { row, column, $table } = params;
|
||||||
const { name, attrs } = renderOpts;
|
const { name, attrs } = renderOpts;
|
||||||
|
|
@ -232,12 +232,12 @@ export function createFilterRender(
|
||||||
defaultProps?: { [key: string]: any },
|
defaultProps?: { [key: string]: any },
|
||||||
callBack?: (
|
callBack?: (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderFilterOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderFilterOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderFilterParams,
|
params: VxeGlobalRendererHandles.RenderTableFilterParams,
|
||||||
) => Record<string, any>,
|
) => Record<string, any>,
|
||||||
) {
|
) {
|
||||||
return function (
|
return function (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderFilterOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderFilterOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderFilterParams,
|
params: VxeGlobalRendererHandles.RenderTableFilterParams,
|
||||||
) {
|
) {
|
||||||
const { column } = params;
|
const { column } = params;
|
||||||
const { name, attrs } = renderOpts;
|
const { name, attrs } = renderOpts;
|
||||||
|
|
@ -287,7 +287,7 @@ export function createFilterRender(
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export function createDefaultFilterRender() {
|
export function createDefaultFilterRender() {
|
||||||
return function (params: VxeGlobalRendererHandles.FilterMethodParams) {
|
return function (params: VxeGlobalRendererHandles.TableFilterMethodParams) {
|
||||||
const { option, row, column } = params;
|
const { option, row, column } = params;
|
||||||
const { data } = option;
|
const { data } = option;
|
||||||
const cellValue = XEUtils.get(row, column.field as string);
|
const cellValue = XEUtils.get(row, column.field as string);
|
||||||
|
|
@ -301,11 +301,14 @@ export function createDefaultFilterRender() {
|
||||||
export function createFormItemRender(
|
export function createFormItemRender(
|
||||||
defaultProps?: { [key: string]: any },
|
defaultProps?: { [key: string]: any },
|
||||||
callBack?: (
|
callBack?: (
|
||||||
renderOpts: FormItemRenderOptions,
|
renderOpts: VxeFormItemPropTypes.ItemRender,
|
||||||
params: FormItemContentRenderParams,
|
params: FormItemContentRenderParams,
|
||||||
) => Record<string, any>,
|
) => Record<string, any>,
|
||||||
) {
|
) {
|
||||||
return function (renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {
|
return function (
|
||||||
|
renderOpts: VxeFormItemPropTypes.ItemRender,
|
||||||
|
params: FormItemContentRenderParams,
|
||||||
|
) {
|
||||||
const args = (callBack && callBack(renderOpts, params)) ?? {};
|
const args = (callBack && callBack(renderOpts, params)) ?? {};
|
||||||
const { data, property, $form } = params;
|
const { data, property, $form } = params;
|
||||||
const { name } = renderOpts;
|
const { name } = renderOpts;
|
||||||
|
|
@ -344,13 +347,13 @@ export function createFormItemRender(
|
||||||
export function createCellRender(
|
export function createCellRender(
|
||||||
getSelectCellValue: Function,
|
getSelectCellValue: Function,
|
||||||
callBack?: (
|
callBack?: (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderCellOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderTableCellOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderCellParams,
|
params: VxeGlobalRendererHandles.RenderTableCellParams,
|
||||||
) => Array<any>,
|
) => Array<any>,
|
||||||
) {
|
) {
|
||||||
return function (
|
return function (
|
||||||
renderOpts: VxeGlobalRendererHandles.RenderCellOptions,
|
renderOpts: VxeGlobalRendererHandles.RenderTableCellOptions,
|
||||||
params: VxeGlobalRendererHandles.RenderCellParams,
|
params: VxeGlobalRendererHandles.RenderTableCellParams,
|
||||||
) {
|
) {
|
||||||
const args = (callBack && callBack(renderOpts, params)) ?? [];
|
const args = (callBack && callBack(renderOpts, params)) ?? [];
|
||||||
const cellLabel = getSelectCellValue && getSelectCellValue(renderOpts, params, ...args);
|
const cellLabel = getSelectCellValue && getSelectCellValue(renderOpts, params, ...args);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { VXETableCore, VxeGlobalInterceptorHandles } from 'vxe-table';
|
import { VxeUIExport, VxeGlobalInterceptorHandles } from 'vxe-table';
|
||||||
import AAutoComplete from './AAutoComplete';
|
import AAutoComplete from './AAutoComplete';
|
||||||
import AInput from './AInput';
|
import AInput from './AInput';
|
||||||
import AInputNumber from './AInputNumber';
|
import AInputNumber from './AInputNumber';
|
||||||
|
|
@ -50,7 +50,7 @@ function getEventTargetNode(evnt: any, container: HTMLElement, className: string
|
||||||
function handleClearEvent(
|
function handleClearEvent(
|
||||||
params:
|
params:
|
||||||
| VxeGlobalInterceptorHandles.InterceptorClearFilterParams
|
| VxeGlobalInterceptorHandles.InterceptorClearFilterParams
|
||||||
| VxeGlobalInterceptorHandles.InterceptorClearActivedParams
|
| VxeGlobalInterceptorHandles.InterceptorClearEditParams
|
||||||
| VxeGlobalInterceptorHandles.InterceptorClearAreasParams,
|
| VxeGlobalInterceptorHandles.InterceptorClearAreasParams,
|
||||||
) {
|
) {
|
||||||
const { $event } = params;
|
const { $event } = params;
|
||||||
|
|
@ -73,10 +73,10 @@ function handleClearEvent(
|
||||||
* 基于 vxe-table 表格的适配插件,用于兼容 ant-design-vue 组件库
|
* 基于 vxe-table 表格的适配插件,用于兼容 ant-design-vue 组件库
|
||||||
*/
|
*/
|
||||||
export const VXETablePluginAntd = {
|
export const VXETablePluginAntd = {
|
||||||
install(vxetablecore: VXETableCore) {
|
install(vxetablecore: VxeUIExport) {
|
||||||
const { interceptor, renderer } = vxetablecore;
|
const { interceptor, renderer } = vxetablecore;
|
||||||
|
|
||||||
renderer.mixin({
|
const customRenderComponents = {
|
||||||
AAutoComplete,
|
AAutoComplete,
|
||||||
AInput,
|
AInput,
|
||||||
AInputNumber,
|
AInputNumber,
|
||||||
|
|
@ -99,16 +99,21 @@ export const VXETablePluginAntd = {
|
||||||
AEmpty,
|
AEmpty,
|
||||||
AInputSearch,
|
AInputSearch,
|
||||||
AYearPicker,
|
AYearPicker,
|
||||||
|
};
|
||||||
|
|
||||||
|
Object.keys(customRenderComponents).forEach((name) => {
|
||||||
|
if (renderer.get(name)) return;
|
||||||
|
renderer.add(name, customRenderComponents[name]);
|
||||||
});
|
});
|
||||||
|
|
||||||
interceptor.add('event.clearFilter', handleClearEvent);
|
interceptor.add('event.clearFilter', handleClearEvent);
|
||||||
interceptor.add('event.clearActived', handleClearEvent);
|
interceptor.add('event.clearEdit', handleClearEvent);
|
||||||
interceptor.add('event.clearAreas', handleClearEvent);
|
interceptor.add('event.clearAreas', handleClearEvent);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (typeof window !== 'undefined' && window.VXETable && window.VXETable.use) {
|
if (typeof window !== 'undefined' && window.VxeUI && window.VxeUI.use) {
|
||||||
window.VXETable.use(VXETablePluginAntd);
|
window.VxeUI.use(VXETablePluginAntd);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default VXETablePluginAntd;
|
export default VXETablePluginAntd;
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,5 @@
|
||||||
@import './variable';
|
@import './variable';
|
||||||
@import './toolbar';
|
@import './toolbar';
|
||||||
@import './component';
|
@import './component';
|
||||||
@import 'vxe-table/styles/index';
|
@import 'vxe-table/styles/all';
|
||||||
|
@import 'vxe-pc-ui/styles/all';
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { VXETable } from '..';
|
import { VxeUI } from '..';
|
||||||
import componentSetting from '@/settings/componentSetting';
|
import componentSetting from '@/settings/componentSetting';
|
||||||
|
|
||||||
VXETable.setup(componentSetting.vxeTable);
|
VxeUI.setConfig(componentSetting.vxeTable);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@ import type { App } from 'vue';
|
||||||
import { Button } from './Button';
|
import { Button } from './Button';
|
||||||
import { Input, Layout } from 'ant-design-vue';
|
import { Input, Layout } from 'ant-design-vue';
|
||||||
import VXETable from 'vxe-table';
|
import VXETable from 'vxe-table';
|
||||||
|
import VXEUI from 'vxe-pc-ui';
|
||||||
|
|
||||||
export function registerGlobComp(app: App) {
|
export function registerGlobComp(app: App) {
|
||||||
app.use(Input).use(Button).use(Layout).use(VXETable);
|
app.use(Input).use(Button).use(Layout).use(VXETable).use(VXEUI);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -177,4 +177,4 @@
|
||||||
"resizeParentHeightTable": "resizeParentHeightTable",
|
"resizeParentHeightTable": "resizeParentHeightTable",
|
||||||
"vxeTable": "VxeTable"
|
"vxeTable": "VxeTable"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -176,4 +176,4 @@
|
||||||
"resizeParentHeightTable": "继承父元素高度",
|
"resizeParentHeightTable": "继承父元素高度",
|
||||||
"vxeTable": "VxeTable"
|
"vxeTable": "VxeTable"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ import { Persistent } from '@/utils/cache/persistent';
|
||||||
export function initAppConfigStore() {
|
export function initAppConfigStore() {
|
||||||
const localeStore = useLocaleStore();
|
const localeStore = useLocaleStore();
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
let projCfg: ProjectConfig = Persistent.getLocal(PROJ_CFG_KEY) as ProjectConfig;
|
let projCfg = Persistent.getLocal<ProjectConfig>(PROJ_CFG_KEY);
|
||||||
projCfg = deepMerge(projectSetting, projCfg || {});
|
projCfg = deepMerge(projectSetting, projCfg || {});
|
||||||
const darkMode = appStore.getDarkMode;
|
const darkMode = appStore.getDarkMode;
|
||||||
const {
|
const {
|
||||||
|
|
|
||||||
|
|
@ -61,10 +61,10 @@ export function createPermissionGuard(router: Router) {
|
||||||
path: LOGIN_PATH,
|
path: LOGIN_PATH,
|
||||||
replace: true,
|
replace: true,
|
||||||
};
|
};
|
||||||
if (to.path) {
|
if (to.fullPath) {
|
||||||
redirectData.query = {
|
redirectData.query = {
|
||||||
...redirectData.query,
|
...redirectData.query,
|
||||||
redirect: to.path,
|
redirect: to.fullPath,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
next(redirectData);
|
next(redirectData);
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,9 @@ export const useMultipleTabStore = defineStore({
|
||||||
// Existing pages, do not add tabs repeatedly
|
// Existing pages, do not add tabs repeatedly
|
||||||
const tabHasExits = this.tabList.some((tab, index) => {
|
const tabHasExits = this.tabList.some((tab, index) => {
|
||||||
updateIndex = index;
|
updateIndex = index;
|
||||||
return decodeURIComponent(tab.fullPath || tab.path) === decodeURIComponent(fullPath || path);
|
return (
|
||||||
|
decodeURIComponent(tab.fullPath || tab.path) === decodeURIComponent(fullPath || path)
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
// If the tab already exists, perform the update operation
|
// If the tab already exists, perform the update operation
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,6 @@ export class AxiosRetry {
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
config.__retryCount += 1;
|
config.__retryCount += 1;
|
||||||
//请求返回后config的header不正确造成重试请求失败,删除返回headers采用默认headers
|
|
||||||
delete config.headers;
|
|
||||||
return this.delay(waitTime).then(() => axiosInstance(config));
|
return this.delay(waitTime).then(() => axiosInstance(config));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@
|
||||||
import { useMessage } from '@/hooks/web/useMessage';
|
import { useMessage } from '@/hooks/web/useMessage';
|
||||||
import { PageWrapper } from '@/components/Page';
|
import { PageWrapper } from '@/components/Page';
|
||||||
import { isAccountExist } from '@/api/demo/system';
|
import { isAccountExist } from '@/api/demo/system';
|
||||||
import dayjs from "dayjs"
|
import dayjs from 'dayjs';
|
||||||
|
|
||||||
const schemas: FormSchema[] = [
|
const schemas: FormSchema[] = [
|
||||||
{
|
{
|
||||||
field: 'field1',
|
field: 'field1',
|
||||||
|
|
@ -236,7 +236,7 @@
|
||||||
field5: ['1'],
|
field5: ['1'],
|
||||||
field7: '1',
|
field7: '1',
|
||||||
field33: '2020-12-12',
|
field33: '2020-12-12',
|
||||||
field3: dayjs('2020-12-12',"YYYY-MM-DD"),
|
field3: dayjs('2020-12-12', 'YYYY-MM-DD'),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue