mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-01-23 17:50:25 +08:00
chore: merge main
This commit is contained in:
commit
9a2577465e
20
.vscode/settings.json
vendored
20
.vscode/settings.json
vendored
@ -25,8 +25,8 @@
|
|||||||
//============= files =======================
|
//============= files =======================
|
||||||
//===========================================
|
//===========================================
|
||||||
"files.trimTrailingWhitespace": true,
|
"files.trimTrailingWhitespace": true,
|
||||||
"files.insertFinalNewline": true,
|
// "files.insertFinalNewline": true,
|
||||||
"files.trimFinalNewlines": true,
|
// "files.trimFinalNewlines": true,
|
||||||
"files.eol": "\n",
|
"files.eol": "\n",
|
||||||
"search.exclude": {
|
"search.exclude": {
|
||||||
"**/node_modules": true,
|
"**/node_modules": true,
|
||||||
@ -76,14 +76,14 @@
|
|||||||
// ===========================================
|
// ===========================================
|
||||||
// ================ Vetur ====================
|
// ================ Vetur ====================
|
||||||
// ===========================================
|
// ===========================================
|
||||||
"vetur.experimental.templateInterpolationService": true,
|
// "vetur.experimental.templateInterpolationService": true,
|
||||||
"vetur.format.options.tabSize": 2,
|
// "vetur.format.options.tabSize": 2,
|
||||||
"vetur.languageFeatures.codeActions": false,
|
// "vetur.languageFeatures.codeActions": false,
|
||||||
"vetur.format.defaultFormatterOptions": {
|
// "vetur.format.defaultFormatterOptions": {
|
||||||
"js-beautify-html": {
|
// "js-beautify-html": {
|
||||||
"wrap_attributes": "force-expand-multiline"
|
// "wrap_attributes": "force-expand-multiline"
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
"liveServer.settings.donotShowInfoMsg": true,
|
"liveServer.settings.donotShowInfoMsg": true,
|
||||||
"telemetry.enableCrashReporter": false,
|
"telemetry.enableCrashReporter": false,
|
||||||
"workbench.settings.enableNaturalLanguageSearch": false,
|
"workbench.settings.enableNaturalLanguageSearch": false,
|
||||||
|
@ -8,7 +8,7 @@ import compressPlugin from 'vite-plugin-compression';
|
|||||||
|
|
||||||
export function configCompressPlugin(
|
export function configCompressPlugin(
|
||||||
compress: 'gzip' | 'brotli' | 'none',
|
compress: 'gzip' | 'brotli' | 'none',
|
||||||
deleteOriginFile: boolean = false
|
deleteOriginFile = false
|
||||||
): Plugin | Plugin[] {
|
): Plugin | Plugin[] {
|
||||||
const compressList = compress.split(',');
|
const compressList = compress.split(',');
|
||||||
|
|
||||||
|
12
package.json
12
package.json
@ -122,7 +122,7 @@
|
|||||||
"concurrently": "^5.3.0",
|
"concurrently": "^5.3.0",
|
||||||
"@commitlint/cli": "^12.1.4",
|
"@commitlint/cli": "^12.1.4",
|
||||||
"@commitlint/config-conventional": "^12.1.4",
|
"@commitlint/config-conventional": "^12.1.4",
|
||||||
"@iconify/json": "^1.1.350",
|
"@iconify/json": "^1.1.353",
|
||||||
"@purge-icons/generated": "^0.7.0",
|
"@purge-icons/generated": "^0.7.0",
|
||||||
"@types/codemirror": "^5.60.0",
|
"@types/codemirror": "^5.60.0",
|
||||||
"@types/crypto-js": "^4.0.1",
|
"@types/crypto-js": "^4.0.1",
|
||||||
@ -130,7 +130,7 @@
|
|||||||
"@types/inquirer": "^7.3.1",
|
"@types/inquirer": "^7.3.1",
|
||||||
"@types/lodash-es": "^4.17.4",
|
"@types/lodash-es": "^4.17.4",
|
||||||
"@types/mockjs": "^1.0.3",
|
"@types/mockjs": "^1.0.3",
|
||||||
"@types/node": "^15.12.0",
|
"@types/node": "^15.12.1",
|
||||||
"@types/nprogress": "^0.2.0",
|
"@types/nprogress": "^0.2.0",
|
||||||
"@types/qrcode": "^1.4.0",
|
"@types/qrcode": "^1.4.0",
|
||||||
"@types/qs": "^6.9.6",
|
"@types/qs": "^6.9.6",
|
||||||
@ -146,12 +146,12 @@
|
|||||||
"conventional-changelog-cli": "^2.1.1",
|
"conventional-changelog-cli": "^2.1.1",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"dotenv": "^10.0.0",
|
"dotenv": "^10.0.0",
|
||||||
"eslint": "^7.27.0",
|
"eslint": "^7.28.0",
|
||||||
"eslint-config-prettier": "^8.3.0",
|
"eslint-config-prettier": "^8.3.0",
|
||||||
"eslint-define-config": "^1.0.8",
|
"eslint-define-config": "^1.0.8",
|
||||||
"eslint-plugin-prettier": "^3.4.0",
|
"eslint-plugin-prettier": "^3.4.0",
|
||||||
"eslint-plugin-vue": "^7.10.0",
|
"eslint-plugin-vue": "^7.10.0",
|
||||||
"esno": "^0.6.0",
|
"esno": "^0.7.0",
|
||||||
"fs-extra": "^10.0.0",
|
"fs-extra": "^10.0.0",
|
||||||
"http-server": "^0.12.3",
|
"http-server": "^0.12.3",
|
||||||
"husky": "^6.0.0",
|
"husky": "^6.0.0",
|
||||||
@ -160,7 +160,7 @@
|
|||||||
"less": "^4.1.1",
|
"less": "^4.1.1",
|
||||||
"lint-staged": "^11.0.0",
|
"lint-staged": "^11.0.0",
|
||||||
"postcss": "^8.3.0",
|
"postcss": "^8.3.0",
|
||||||
"prettier": "^2.3.0",
|
"prettier": "^2.3.1",
|
||||||
"pretty-quick": "^3.1.0",
|
"pretty-quick": "^3.1.0",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"rollup-plugin-visualizer": "5.5.0",
|
"rollup-plugin-visualizer": "5.5.0",
|
||||||
@ -187,7 +187,7 @@
|
|||||||
"resolutions": {
|
"resolutions": {
|
||||||
"//": "Used to install imagemin dependencies, because imagemin may not be installed in China. If it is abroad, you can delete it",
|
"//": "Used to install imagemin dependencies, because imagemin may not be installed in China. If it is abroad, you can delete it",
|
||||||
"bin-wrapper": "npm:bin-wrapper-china",
|
"bin-wrapper": "npm:bin-wrapper-china",
|
||||||
"rollup": "^2.50.6"
|
"rollup": "^2.51.0"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -1,47 +1,49 @@
|
|||||||
<template>
|
<template>
|
||||||
<Button v-bind="getBindValue" :class="[getColor, $attrs.class]" @click="onClick">
|
<Button v-bind="getBindValue" :class="getButtonClass" @click="onClick">
|
||||||
<template #default="data">
|
<template #default="data">
|
||||||
<Icon :icon="preIcon" v-if="preIcon" :size="14" />
|
<Icon :icon="preIcon" v-if="preIcon" :size="iconSize" />
|
||||||
<slot v-bind="data"></slot>
|
<slot v-bind="data"></slot>
|
||||||
<Icon :icon="postIcon" v-if="postIcon" :size="14" />
|
<Icon :icon="postIcon" v-if="postIcon" :size="iconSize" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, computed } from 'vue';
|
import { defineComponent, computed } from 'vue';
|
||||||
|
|
||||||
import { Button } from 'ant-design-vue';
|
import { Button } from 'ant-design-vue';
|
||||||
import Icon from '/@/components/Icon';
|
import { Icon } from '/@/components/Icon';
|
||||||
|
|
||||||
import { propTypes } from '/@/utils/propTypes';
|
const props = {
|
||||||
|
color: { type: String, validate: (v) => ['error', 'warning', 'success', ''].includes(v) },
|
||||||
|
loading: { type: Boolean },
|
||||||
|
disabled: { type: Boolean },
|
||||||
|
preIcon: { type: String },
|
||||||
|
postIcon: { type: String },
|
||||||
|
iconSize: { type: Number, default: 14 },
|
||||||
|
onClick: { type: Function as PropType<(...args) => any>, default: null },
|
||||||
|
};
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'AButton',
|
name: 'AButton',
|
||||||
components: { Button, Icon },
|
components: { Button, Icon },
|
||||||
inheritAttrs: false,
|
inheritAttrs: false,
|
||||||
props: {
|
props,
|
||||||
type: propTypes.oneOf(['primary', 'default', 'danger', 'dashed', 'link']).def('default'),
|
|
||||||
color: propTypes.oneOf(['error', 'warning', 'success', '']),
|
|
||||||
loading: propTypes.bool,
|
|
||||||
disabled: propTypes.bool,
|
|
||||||
preIcon: propTypes.string,
|
|
||||||
postIcon: propTypes.string,
|
|
||||||
onClick: propTypes.func,
|
|
||||||
},
|
|
||||||
setup(props, { attrs }) {
|
setup(props, { attrs }) {
|
||||||
const getColor = computed(() => {
|
// get component class
|
||||||
|
const getButtonClass = computed(() => {
|
||||||
const { color, disabled } = props;
|
const { color, disabled } = props;
|
||||||
return {
|
return [
|
||||||
|
{
|
||||||
[`ant-btn-${color}`]: !!color,
|
[`ant-btn-${color}`]: !!color,
|
||||||
[`is-disabled`]: disabled,
|
[`is-disabled`]: disabled,
|
||||||
};
|
},
|
||||||
|
attrs.class,
|
||||||
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
const getBindValue = computed((): any => {
|
// get inherit binding value
|
||||||
return { ...attrs, ...props };
|
const getBindValue = computed(() => ({ ...attrs, ...props }));
|
||||||
});
|
|
||||||
|
|
||||||
return { getBindValue, getColor };
|
return { getBindValue, getButtonClass };
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,31 +1,33 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, h, unref, computed } from 'vue';
|
import { defineComponent, h, unref, computed } from 'vue';
|
||||||
|
|
||||||
import { Popconfirm } from 'ant-design-vue';
|
import { Popconfirm } from 'ant-design-vue';
|
||||||
|
|
||||||
import BasicButton from './BasicButton.vue';
|
import BasicButton from './BasicButton.vue';
|
||||||
|
|
||||||
import { propTypes } from '/@/utils/propTypes';
|
|
||||||
import { extendSlots } from '/@/utils/helper/tsxHelper';
|
import { extendSlots } from '/@/utils/helper/tsxHelper';
|
||||||
import { omit } from 'lodash-es';
|
import { omit } from 'lodash-es';
|
||||||
|
|
||||||
import { useAttrs } from '/@/hooks/core/useAttrs';
|
import { useAttrs } from '/@/hooks/core/useAttrs';
|
||||||
import { useI18n } from '/@/hooks/web/useI18n';
|
import { useI18n } from '/@/hooks/web/useI18n';
|
||||||
|
|
||||||
|
const props = {
|
||||||
|
/**
|
||||||
|
* Whether to enable the drop-down menu
|
||||||
|
* @default: true
|
||||||
|
*/
|
||||||
|
enable: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'PopButton',
|
name: 'PopButton',
|
||||||
components: { Popconfirm, BasicButton },
|
components: { Popconfirm, BasicButton },
|
||||||
inheritAttrs: false,
|
inheritAttrs: false,
|
||||||
props: {
|
props,
|
||||||
size: propTypes.oneOf(['large', 'default', 'small']).def(),
|
|
||||||
enable: propTypes.bool.def(true),
|
|
||||||
okText: propTypes.string,
|
|
||||||
cancelText: propTypes.string,
|
|
||||||
},
|
|
||||||
setup(props, { slots }) {
|
setup(props, { slots }) {
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const attrs = useAttrs();
|
const attrs = useAttrs();
|
||||||
|
|
||||||
|
// get inherit binding value
|
||||||
const getBindValues = computed(() => {
|
const getBindValues = computed(() => {
|
||||||
const popValues = Object.assign(
|
const popValues = Object.assign(
|
||||||
{
|
{
|
||||||
@ -38,14 +40,14 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
const values = omit(unref(getBindValues), 'icon');
|
const bindValues = omit(unref(getBindValues), 'icon');
|
||||||
const Button = h(BasicButton, values, extendSlots(slots));
|
const Button = h(BasicButton, bindValues, extendSlots(slots));
|
||||||
|
|
||||||
|
// If it is not enabled, it is a normal button
|
||||||
if (!props.enable) {
|
if (!props.enable) {
|
||||||
return Button;
|
return Button;
|
||||||
}
|
}
|
||||||
|
return h(Popconfirm, bindValues, { default: () => Button });
|
||||||
return h(Popconfirm, values, { default: () => Button });
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -7,6 +7,7 @@ import { computed, unref, watch } from 'vue';
|
|||||||
import { isBoolean, isFunction, isNumber, isObject } from '/@/utils/is';
|
import { isBoolean, isFunction, isNumber, isObject } from '/@/utils/is';
|
||||||
|
|
||||||
import { useBreakpoint } from '/@/hooks/event/useBreakpoint';
|
import { useBreakpoint } from '/@/hooks/event/useBreakpoint';
|
||||||
|
import { useDebounceFn } from '@vueuse/core';
|
||||||
|
|
||||||
const BASIC_COL_LEN = 24;
|
const BASIC_COL_LEN = 24;
|
||||||
|
|
||||||
@ -49,12 +50,14 @@ export default function ({
|
|||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const debounceUpdateAdvanced = useDebounceFn(updateAdvanced, 30);
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
[() => unref(getSchema), () => advanceState.isAdvanced, () => unref(realWidthRef)],
|
[() => unref(getSchema), () => advanceState.isAdvanced, () => unref(realWidthRef)],
|
||||||
() => {
|
() => {
|
||||||
const { showAdvancedButton } = unref(getProps);
|
const { showAdvancedButton } = unref(getProps);
|
||||||
if (showAdvancedButton) {
|
if (showAdvancedButton) {
|
||||||
updateAdvanced();
|
debounceUpdateAdvanced();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ immediate: true }
|
{ immediate: true }
|
||||||
|
@ -32,13 +32,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { BasicTableProps, TableActionType, SizeType } from './types/table';
|
import type {
|
||||||
|
BasicTableProps,
|
||||||
|
TableActionType,
|
||||||
|
SizeType,
|
||||||
|
ColumnChangeParam,
|
||||||
|
} from './types/table';
|
||||||
|
|
||||||
import { defineComponent, ref, computed, unref, toRaw } from 'vue';
|
import { defineComponent, ref, computed, unref, toRaw } from 'vue';
|
||||||
import { Table } from 'ant-design-vue';
|
import { Table } from 'ant-design-vue';
|
||||||
import { BasicForm, useForm } from '/@/components/Form/index';
|
import { BasicForm, useForm } from '/@/components/Form/index';
|
||||||
import expandIcon from './components/ExpandIcon';
|
import expandIcon from './components/ExpandIcon';
|
||||||
import HeaderCell from './components/HeaderCell.vue';
|
import HeaderCell from './components/HeaderCell.vue';
|
||||||
|
import { InnerHandlers } from './types/table';
|
||||||
|
|
||||||
import { usePagination } from './hooks/usePagination';
|
import { usePagination } from './hooks/usePagination';
|
||||||
import { useColumns } from './hooks/useColumns';
|
import { useColumns } from './hooks/useColumns';
|
||||||
@ -83,6 +89,7 @@
|
|||||||
'edit-change',
|
'edit-change',
|
||||||
'expanded-rows-change',
|
'expanded-rows-change',
|
||||||
'change',
|
'change',
|
||||||
|
'columns-change',
|
||||||
],
|
],
|
||||||
setup(props, { attrs, emit, slots }) {
|
setup(props, { attrs, emit, slots }) {
|
||||||
const tableElRef = ref<ComponentRef>(null);
|
const tableElRef = ref<ComponentRef>(null);
|
||||||
@ -177,7 +184,15 @@
|
|||||||
|
|
||||||
const { getExpandOption, expandAll, collapseAll } = useTableExpand(getProps, tableData, emit);
|
const { getExpandOption, expandAll, collapseAll } = useTableExpand(getProps, tableData, emit);
|
||||||
|
|
||||||
const { getHeaderProps } = useTableHeader(getProps, slots);
|
const handlers: InnerHandlers = {
|
||||||
|
onColumnsChange: (data: ColumnChangeParam[]) => {
|
||||||
|
emit('columns-change', data);
|
||||||
|
// support useTable
|
||||||
|
unref(getProps).onColumnsChange?.(data);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const { getHeaderProps } = useTableHeader(getProps, slots, handlers);
|
||||||
|
|
||||||
const { getFooterProps } = useTableFooter(
|
const { getFooterProps } = useTableFooter(
|
||||||
getProps,
|
getProps,
|
||||||
|
@ -6,11 +6,15 @@
|
|||||||
<div :class="`${prefixCls}__toolbar`">
|
<div :class="`${prefixCls}__toolbar`">
|
||||||
<slot name="toolbar"></slot>
|
<slot name="toolbar"></slot>
|
||||||
<Divider type="vertical" v-if="$slots.toolbar && showTableSetting" />
|
<Divider type="vertical" v-if="$slots.toolbar && showTableSetting" />
|
||||||
<TableSetting :setting="tableSetting" v-if="showTableSetting" />
|
<TableSetting
|
||||||
|
:setting="tableSetting"
|
||||||
|
v-if="showTableSetting"
|
||||||
|
@columns-change="handleColumnChange"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { TableSetting } from '../types/table';
|
import type { TableSetting, ColumnChangeParam } from '../types/table';
|
||||||
import type { PropType } from 'vue';
|
import type { PropType } from 'vue';
|
||||||
|
|
||||||
import { defineComponent } from 'vue';
|
import { defineComponent } from 'vue';
|
||||||
@ -42,9 +46,13 @@
|
|||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
setup() {
|
emits: ['columns-change'],
|
||||||
|
setup(_, { emit }) {
|
||||||
const { prefixCls } = useDesign('basic-table-header');
|
const { prefixCls } = useDesign('basic-table-header');
|
||||||
return { prefixCls };
|
function handleColumnChange(data: ColumnChangeParam[]) {
|
||||||
|
emit('columns-change', data);
|
||||||
|
}
|
||||||
|
return { prefixCls, handleColumnChange };
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -114,7 +114,7 @@
|
|||||||
import { getPopupContainer } from '/@/utils';
|
import { getPopupContainer } from '/@/utils';
|
||||||
import { omit } from 'lodash-es';
|
import { omit } from 'lodash-es';
|
||||||
|
|
||||||
import type { BasicColumn } from '../../types/table';
|
import type { BasicColumn, ColumnChangeParam } from '../../types/table';
|
||||||
|
|
||||||
interface State {
|
interface State {
|
||||||
checkAll: boolean;
|
checkAll: boolean;
|
||||||
@ -141,8 +141,9 @@
|
|||||||
Divider,
|
Divider,
|
||||||
Icon,
|
Icon,
|
||||||
},
|
},
|
||||||
|
emits: ['columns-change'],
|
||||||
|
|
||||||
setup() {
|
setup(_, { emit }) {
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const table = useTableContext();
|
const table = useTableContext();
|
||||||
|
|
||||||
@ -234,10 +235,10 @@
|
|||||||
const checkList = plainOptions.value.map((item) => item.value);
|
const checkList = plainOptions.value.map((item) => item.value);
|
||||||
if (e.target.checked) {
|
if (e.target.checked) {
|
||||||
state.checkedList = checkList;
|
state.checkedList = checkList;
|
||||||
table.setColumns(checkList);
|
setColumns(checkList);
|
||||||
} else {
|
} else {
|
||||||
state.checkedList = [];
|
state.checkedList = [];
|
||||||
table.setColumns([]);
|
setColumns([]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,7 +258,7 @@
|
|||||||
checkedList.sort((prev, next) => {
|
checkedList.sort((prev, next) => {
|
||||||
return sortList.indexOf(prev) - sortList.indexOf(next);
|
return sortList.indexOf(prev) - sortList.indexOf(next);
|
||||||
});
|
});
|
||||||
table.setColumns(checkedList);
|
setColumns(checkedList);
|
||||||
}
|
}
|
||||||
|
|
||||||
// reset columns
|
// reset columns
|
||||||
@ -266,7 +267,7 @@
|
|||||||
state.checkAll = true;
|
state.checkAll = true;
|
||||||
plainOptions.value = unref(cachePlainOptions);
|
plainOptions.value = unref(cachePlainOptions);
|
||||||
plainSortOptions.value = unref(cachePlainOptions);
|
plainSortOptions.value = unref(cachePlainOptions);
|
||||||
table.setColumns(table.getCacheColumns());
|
setColumns(table.getCacheColumns());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open the pop-up window for drag and drop initialization
|
// Open the pop-up window for drag and drop initialization
|
||||||
@ -298,7 +299,7 @@
|
|||||||
|
|
||||||
plainSortOptions.value = columns;
|
plainSortOptions.value = columns;
|
||||||
plainOptions.value = columns;
|
plainOptions.value = columns;
|
||||||
table.setColumns(columns);
|
setColumns(columns);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
initSortable();
|
initSortable();
|
||||||
@ -335,7 +336,21 @@
|
|||||||
item.width = 100;
|
item.width = 100;
|
||||||
}
|
}
|
||||||
table.setCacheColumnsByField?.(item.dataIndex, { fixed: isFixed });
|
table.setCacheColumnsByField?.(item.dataIndex, { fixed: isFixed });
|
||||||
|
setColumns(columns);
|
||||||
|
}
|
||||||
|
|
||||||
|
function setColumns(columns: BasicColumn[] | string[]) {
|
||||||
table.setColumns(columns);
|
table.setColumns(columns);
|
||||||
|
const data: ColumnChangeParam[] = unref(plainOptions).map((col) => {
|
||||||
|
const visible =
|
||||||
|
columns.findIndex(
|
||||||
|
(c: BasicColumn | string) =>
|
||||||
|
c === col.value || (typeof c !== 'string' && c.dataIndex === col.value)
|
||||||
|
) !== -1;
|
||||||
|
return { dataIndex: col.value, fixed: col.fixed, visible };
|
||||||
|
});
|
||||||
|
|
||||||
|
emit('columns-change', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
<div class="table-settings">
|
<div class="table-settings">
|
||||||
<RedoSetting v-if="getSetting.redo" />
|
<RedoSetting v-if="getSetting.redo" />
|
||||||
<SizeSetting v-if="getSetting.size" />
|
<SizeSetting v-if="getSetting.size" />
|
||||||
<ColumnSetting v-if="getSetting.setting" />
|
<ColumnSetting v-if="getSetting.setting" @columns-change="handleColumnChange" />
|
||||||
<FullScreenSetting v-if="getSetting.fullScreen" />
|
<FullScreenSetting v-if="getSetting.fullScreen" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { PropType } from 'vue';
|
import type { PropType } from 'vue';
|
||||||
import type { TableSetting } from '../../types/table';
|
import type { TableSetting, ColumnChangeParam } from '../../types/table';
|
||||||
|
|
||||||
import { defineComponent, computed } from 'vue';
|
import { defineComponent, computed } from 'vue';
|
||||||
|
|
||||||
@ -33,7 +33,8 @@
|
|||||||
default: () => ({}),
|
default: () => ({}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
setup(props) {
|
emits: ['columns-change'],
|
||||||
|
setup(props, { emit }) {
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
const getSetting = computed((): TableSetting => {
|
const getSetting = computed((): TableSetting => {
|
||||||
@ -46,7 +47,11 @@
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
return { getSetting, t };
|
function handleColumnChange(data: ColumnChangeParam[]) {
|
||||||
|
emit('columns-change', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return { getSetting, t, handleColumnChange };
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -2,16 +2,10 @@ import type { BasicTableProps, TableActionType, FetchParams, BasicColumn } from
|
|||||||
import type { PaginationProps } from '../types/pagination';
|
import type { PaginationProps } from '../types/pagination';
|
||||||
import type { DynamicProps } from '/#/utils';
|
import type { DynamicProps } from '/#/utils';
|
||||||
import type { FormActionType } from '/@/components/Form';
|
import type { FormActionType } from '/@/components/Form';
|
||||||
// import type { WatchStopHandle } from 'vue';
|
import type { WatchStopHandle } from 'vue';
|
||||||
|
|
||||||
import { getDynamicProps } from '/@/utils';
|
import { getDynamicProps } from '/@/utils';
|
||||||
import {
|
import { ref, onUnmounted, unref, watch, toRaw } from 'vue';
|
||||||
ref,
|
|
||||||
onUnmounted,
|
|
||||||
unref,
|
|
||||||
// watch,
|
|
||||||
toRaw,
|
|
||||||
} from 'vue';
|
|
||||||
import { isProdMode } from '/@/utils/env';
|
import { isProdMode } from '/@/utils/env';
|
||||||
import { error } from '/@/utils/log';
|
import { error } from '/@/utils/log';
|
||||||
|
|
||||||
@ -31,7 +25,7 @@ export function useTable(tableProps?: Props): [
|
|||||||
const loadedRef = ref<Nullable<boolean>>(false);
|
const loadedRef = ref<Nullable<boolean>>(false);
|
||||||
const formRef = ref<Nullable<UseTableMethod>>(null);
|
const formRef = ref<Nullable<UseTableMethod>>(null);
|
||||||
|
|
||||||
// let stopWatch: WatchStopHandle;
|
let stopWatch: WatchStopHandle;
|
||||||
|
|
||||||
function register(instance: TableActionType, formInstance: UseTableMethod) {
|
function register(instance: TableActionType, formInstance: UseTableMethod) {
|
||||||
isProdMode() &&
|
isProdMode() &&
|
||||||
@ -47,18 +41,18 @@ export function useTable(tableProps?: Props): [
|
|||||||
tableProps && instance.setProps(getDynamicProps(tableProps));
|
tableProps && instance.setProps(getDynamicProps(tableProps));
|
||||||
loadedRef.value = true;
|
loadedRef.value = true;
|
||||||
|
|
||||||
// stopWatch?.();
|
stopWatch?.();
|
||||||
|
|
||||||
// stopWatch = watch(
|
stopWatch = watch(
|
||||||
// () => tableProps,
|
() => tableProps,
|
||||||
// () => {
|
() => {
|
||||||
// tableProps && instance.setProps(getDynamicProps(tableProps));
|
tableProps && instance.setProps(getDynamicProps(tableProps));
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// immediate: true,
|
immediate: true,
|
||||||
// deep: true,
|
deep: true,
|
||||||
// }
|
}
|
||||||
// );
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTableInstance(): TableActionType {
|
function getTableInstance(): TableActionType {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import type { ComputedRef, Slots } from 'vue';
|
import type { ComputedRef, Slots } from 'vue';
|
||||||
import type { BasicTableProps } from '../types/table';
|
import type { BasicTableProps, InnerHandlers } from '../types/table';
|
||||||
|
|
||||||
import { unref, computed, h } from 'vue';
|
import { unref, computed, h } from 'vue';
|
||||||
import TableHeader from '../components/TableHeader.vue';
|
import TableHeader from '../components/TableHeader.vue';
|
||||||
@ -7,7 +7,11 @@ import TableHeader from '../components/TableHeader.vue';
|
|||||||
import { isString } from '/@/utils/is';
|
import { isString } from '/@/utils/is';
|
||||||
import { getSlot } from '/@/utils/helper/tsxHelper';
|
import { getSlot } from '/@/utils/helper/tsxHelper';
|
||||||
|
|
||||||
export function useTableHeader(propsRef: ComputedRef<BasicTableProps>, slots: Slots) {
|
export function useTableHeader(
|
||||||
|
propsRef: ComputedRef<BasicTableProps>,
|
||||||
|
slots: Slots,
|
||||||
|
handlers: InnerHandlers
|
||||||
|
) {
|
||||||
const getHeaderProps = computed((): Recordable => {
|
const getHeaderProps = computed((): Recordable => {
|
||||||
const { title, showTableSetting, titleHelpMessage, tableSetting } = unref(propsRef);
|
const { title, showTableSetting, titleHelpMessage, tableSetting } = unref(propsRef);
|
||||||
const hideTitle = !slots.tableTitle && !title && !slots.toolbar && !showTableSetting;
|
const hideTitle = !slots.tableTitle && !title && !slots.toolbar && !showTableSetting;
|
||||||
@ -26,6 +30,7 @@ export function useTableHeader(propsRef: ComputedRef<BasicTableProps>, slots: Sl
|
|||||||
titleHelpMessage,
|
titleHelpMessage,
|
||||||
showTableSetting,
|
showTableSetting,
|
||||||
tableSetting,
|
tableSetting,
|
||||||
|
onColumnsChange: handlers.onColumnsChange,
|
||||||
} as Recordable,
|
} as Recordable,
|
||||||
{
|
{
|
||||||
...(slots.toolbar
|
...(slots.toolbar
|
||||||
|
@ -381,6 +381,8 @@ export interface BasicTableProps<T = any> {
|
|||||||
* @param expandedRows
|
* @param expandedRows
|
||||||
*/
|
*/
|
||||||
onExpandedRowsChange?: (expandedRows: string[] | number[]) => void;
|
onExpandedRowsChange?: (expandedRows: string[] | number[]) => void;
|
||||||
|
|
||||||
|
onColumnsChange?: (data: ColumnChangeParam[]) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type CellFormat =
|
export type CellFormat =
|
||||||
@ -427,3 +429,13 @@ export interface BasicColumn extends ColumnProps {
|
|||||||
// 业务控制是否显示
|
// 业务控制是否显示
|
||||||
ifShow?: boolean | ((column: BasicColumn) => boolean);
|
ifShow?: boolean | ((column: BasicColumn) => boolean);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type ColumnChangeParam = {
|
||||||
|
dataIndex: string;
|
||||||
|
fixed: boolean | 'left' | 'right' | undefined;
|
||||||
|
visible: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface InnerHandlers {
|
||||||
|
onColumnsChange: (data: ColumnChangeParam[]) => void;
|
||||||
|
}
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
@done="handleDone"
|
@done="handleDone"
|
||||||
v-if="showImageUpload"
|
v-if="showImageUpload"
|
||||||
v-show="editorRef"
|
v-show="editorRef"
|
||||||
|
:disabled="disabled"
|
||||||
/>
|
/>
|
||||||
<textarea :id="tinymceId" ref="elRef" :style="{ visibility: 'hidden' }"></textarea>
|
<textarea :id="tinymceId" ref="elRef" :style="{ visibility: 'hidden' }"></textarea>
|
||||||
</div>
|
</div>
|
||||||
@ -170,6 +171,16 @@
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const disabled = computed(() => {
|
||||||
|
const { options } = props;
|
||||||
|
const getdDisabled = options && Reflect.get(options, 'readonly');
|
||||||
|
const editor = unref(editorRef);
|
||||||
|
if (editor) {
|
||||||
|
editor.setMode(getdDisabled ? 'readonly' : 'design');
|
||||||
|
}
|
||||||
|
return getdDisabled ?? false;
|
||||||
|
});
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => attrs.disabled,
|
() => attrs.disabled,
|
||||||
() => {
|
() => {
|
||||||
@ -301,6 +312,7 @@
|
|||||||
handleDone,
|
handleDone,
|
||||||
editorRef,
|
editorRef,
|
||||||
fullscreen,
|
fullscreen,
|
||||||
|
disabled,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -8,14 +8,14 @@
|
|||||||
:showUploadList="false"
|
:showUploadList="false"
|
||||||
accept=".jpg,.jpeg,.gif,.png,.webp"
|
accept=".jpg,.jpeg,.gif,.png,.webp"
|
||||||
>
|
>
|
||||||
<a-button type="primary">
|
<a-button type="primary" v-bind="{ ...getButtonProps }">
|
||||||
{{ t('component.upload.imgUpload') }}
|
{{ t('component.upload.imgUpload') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
</Upload>
|
</Upload>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent } from 'vue';
|
import { defineComponent, computed } from 'vue';
|
||||||
|
|
||||||
import { Upload } from 'ant-design-vue';
|
import { Upload } from 'ant-design-vue';
|
||||||
import { useDesign } from '/@/hooks/web/useDesign';
|
import { useDesign } from '/@/hooks/web/useDesign';
|
||||||
@ -29,15 +29,26 @@
|
|||||||
fullscreen: {
|
fullscreen: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
},
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
emits: ['uploading', 'done', 'error'],
|
emits: ['uploading', 'done', 'error'],
|
||||||
setup(_, { emit }) {
|
setup(props, { emit }) {
|
||||||
let uploading = false;
|
let uploading = false;
|
||||||
|
|
||||||
const { uploadUrl } = useGlobSetting();
|
const { uploadUrl } = useGlobSetting();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const { prefixCls } = useDesign('tinymce-img-upload');
|
const { prefixCls } = useDesign('tinymce-img-upload');
|
||||||
|
|
||||||
|
const getButtonProps = computed(() => {
|
||||||
|
const { disabled } = props;
|
||||||
|
return {
|
||||||
|
disabled,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
function handleChange(info: Recordable) {
|
function handleChange(info: Recordable) {
|
||||||
const file = info.file;
|
const file = info.file;
|
||||||
const status = file?.status;
|
const status = file?.status;
|
||||||
@ -63,6 +74,7 @@
|
|||||||
handleChange,
|
handleChange,
|
||||||
uploadUrl,
|
uploadUrl,
|
||||||
t,
|
t,
|
||||||
|
getButtonProps,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -6,7 +6,7 @@ import { useUserStore } from '/@/store/modules/user';
|
|||||||
|
|
||||||
import { useTabs } from './useTabs';
|
import { useTabs } from './useTabs';
|
||||||
|
|
||||||
import router, { resetRouter } from '/@/router';
|
import { router, resetRouter } from '/@/router';
|
||||||
// import { RootRoute } from '/@/router/routes';
|
// import { RootRoute } from '/@/router/routes';
|
||||||
|
|
||||||
import projectSetting from '/@/settings/projectSetting';
|
import projectSetting from '/@/settings/projectSetting';
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*/
|
*/
|
||||||
import type { LocaleType } from '/#/config';
|
import type { LocaleType } from '/#/config';
|
||||||
|
|
||||||
import moment from 'moment';
|
import { updateLocale } from 'moment';
|
||||||
|
|
||||||
import { i18n } from './setupI18n';
|
import { i18n } from './setupI18n';
|
||||||
import { useLocaleStoreWithOut } from '/@/store/modules/locale';
|
import { useLocaleStoreWithOut } from '/@/store/modules/locale';
|
||||||
@ -56,7 +56,7 @@ export function useLocale() {
|
|||||||
const { message, momentLocale, momentLocaleName } = langModule;
|
const { message, momentLocale, momentLocaleName } = langModule;
|
||||||
|
|
||||||
globalI18n.setLocaleMessage(locale, message);
|
globalI18n.setLocaleMessage(locale, message);
|
||||||
moment.updateLocale(momentLocaleName, momentLocale);
|
updateLocale(momentLocaleName, momentLocale);
|
||||||
loadLocalePool.push(locale);
|
loadLocalePool.push(locale);
|
||||||
|
|
||||||
setI18nLanguage(locale);
|
setI18nLanguage(locale);
|
||||||
|
@ -5,11 +5,11 @@ import 'virtual:windi.css';
|
|||||||
// Register icon sprite
|
// Register icon sprite
|
||||||
import 'virtual:svg-icons-register';
|
import 'virtual:svg-icons-register';
|
||||||
|
|
||||||
import { createApp } from 'vue';
|
|
||||||
import App from './App.vue';
|
import App from './App.vue';
|
||||||
|
import { createApp } from 'vue';
|
||||||
import { initAppConfigStore } from '/@/logics/initAppConfig';
|
import { initAppConfigStore } from '/@/logics/initAppConfig';
|
||||||
import { setupErrorHandle } from '/@/logics/error-handle';
|
import { setupErrorHandle } from '/@/logics/error-handle';
|
||||||
import router, { setupRouter } from '/@/router';
|
import { router, setupRouter } from '/@/router';
|
||||||
import { setupRouterGuard } from '/@/router/guard';
|
import { setupRouterGuard } from '/@/router/guard';
|
||||||
import { setupStore } from '/@/store';
|
import { setupStore } from '/@/store';
|
||||||
import { setupGlobDirectives } from '/@/directives';
|
import { setupGlobDirectives } from '/@/directives';
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import router from '/@/router';
|
import { router } from '/@/router';
|
||||||
|
|
||||||
import { createProgressGuard } from './progressGuard';
|
import { createProgressGuard } from './progressGuard';
|
||||||
import { createPermissionGuard } from './permissionGuard';
|
import { createPermissionGuard } from './permissionGuard';
|
||||||
|
@ -8,9 +8,9 @@ import { REDIRECT_NAME } from './constant';
|
|||||||
const WHITE_NAME_LIST = [LoginRoute.name, REDIRECT_NAME];
|
const WHITE_NAME_LIST = [LoginRoute.name, REDIRECT_NAME];
|
||||||
|
|
||||||
// app router
|
// app router
|
||||||
const router = createRouter({
|
export const router = createRouter({
|
||||||
history: createWebHashHistory(import.meta.env.VITE_PUBLIC_PATH),
|
history: createWebHashHistory(import.meta.env.VITE_PUBLIC_PATH),
|
||||||
routes: (basicRoutes as unknown) as RouteRecordRaw[],
|
routes: basicRoutes as unknown as RouteRecordRaw[],
|
||||||
strict: true,
|
strict: true,
|
||||||
scrollBehavior: () => ({ left: 0, top: 0 }),
|
scrollBehavior: () => ({ left: 0, top: 0 }),
|
||||||
});
|
});
|
||||||
@ -29,5 +29,3 @@ export function resetRouter() {
|
|||||||
export function setupRouter(app: App<Element>) {
|
export function setupRouter(app: App<Element>) {
|
||||||
app.use(router);
|
app.use(router);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default router;
|
|
||||||
|
@ -6,7 +6,7 @@ import { usePermissionStore } from '/@/store/modules/permission';
|
|||||||
import { transformMenuModule, getAllParentPath } from '/@/router/helper/menuHelper';
|
import { transformMenuModule, getAllParentPath } from '/@/router/helper/menuHelper';
|
||||||
import { filter } from '/@/utils/helper/treeHelper';
|
import { filter } from '/@/utils/helper/treeHelper';
|
||||||
import { isUrl } from '/@/utils/is';
|
import { isUrl } from '/@/utils/is';
|
||||||
import router from '/@/router';
|
import { router } from '/@/router';
|
||||||
import { PermissionModeEnum } from '/@/enums/appEnum';
|
import { PermissionModeEnum } from '/@/enums/appEnum';
|
||||||
import { pathToRegexp } from 'path-to-regexp';
|
import { pathToRegexp } from 'path-to-regexp';
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ import { getUserInfo, loginApi } from '/@/api/sys/user';
|
|||||||
|
|
||||||
import { useI18n } from '/@/hooks/web/useI18n';
|
import { useI18n } from '/@/hooks/web/useI18n';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
import router from '/@/router';
|
import { router } from '/@/router';
|
||||||
|
|
||||||
interface UserState {
|
interface UserState {
|
||||||
userInfo: Nullable<UserInfo>;
|
userInfo: Nullable<UserInfo>;
|
||||||
|
@ -30,11 +30,5 @@ propTypes.extend([
|
|||||||
getter: true,
|
getter: true,
|
||||||
type: undefined,
|
type: undefined,
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// name: 'trueBool',
|
|
||||||
// getter: true,
|
|
||||||
// type: Boolean,
|
|
||||||
// default: true,
|
|
||||||
// },
|
|
||||||
]);
|
]);
|
||||||
export { propTypes };
|
export { propTypes };
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
:bordered="border"
|
:bordered="border"
|
||||||
showTableSetting
|
showTableSetting
|
||||||
:pagination="pagination"
|
:pagination="pagination"
|
||||||
|
@columns-change="handleColumnChange"
|
||||||
>
|
>
|
||||||
<template #toolbar>
|
<template #toolbar>
|
||||||
<a-button type="primary" @click="toggleCanResize">
|
<a-button type="primary" @click="toggleCanResize">
|
||||||
@ -29,7 +30,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, ref } from 'vue';
|
import { defineComponent, ref } from 'vue';
|
||||||
import { BasicTable } from '/@/components/Table';
|
import { BasicTable, ColumnChangeParam } from '/@/components/Table';
|
||||||
import { getBasicColumns, getBasicData } from './tableData';
|
import { getBasicColumns, getBasicData } from './tableData';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
@ -56,6 +57,11 @@
|
|||||||
function toggleBorder() {
|
function toggleBorder() {
|
||||||
border.value = !border.value;
|
border.value = !border.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleColumnChange(data: ColumnChangeParam[]) {
|
||||||
|
console.log('ColumnChanged', data);
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
columns: getBasicColumns(),
|
columns: getBasicColumns(),
|
||||||
data: getBasicData(),
|
data: getBasicData(),
|
||||||
@ -68,6 +74,7 @@
|
|||||||
toggleLoading,
|
toggleLoading,
|
||||||
toggleBorder,
|
toggleBorder,
|
||||||
pagination,
|
pagination,
|
||||||
|
handleColumnChange,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent } from 'vue';
|
import { defineComponent } from 'vue';
|
||||||
import { BasicTable, useTable } from '/@/components/Table';
|
import { BasicTable, ColumnChangeParam, useTable } from '/@/components/Table';
|
||||||
import { getBasicColumns, getBasicShortColumns } from './tableData';
|
import { getBasicColumns, getBasicShortColumns } from './tableData';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
import { demoListApi } from '/@/api/demo/table';
|
import { demoListApi } from '/@/api/demo/table';
|
||||||
@ -58,6 +58,9 @@
|
|||||||
rowSelection: {
|
rowSelection: {
|
||||||
type: 'checkbox',
|
type: 'checkbox',
|
||||||
},
|
},
|
||||||
|
onColumnsChange: (data: ColumnChangeParam[]) => {
|
||||||
|
console.log('ColumnsChanged', data);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
function changeLoading() {
|
function changeLoading() {
|
||||||
|
93
yarn.lock
93
yarn.lock
@ -1164,15 +1164,15 @@
|
|||||||
resolved "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.0.tgz#065b2af6233fe7474d44823e3deb89724af42b5f"
|
resolved "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.0.tgz#065b2af6233fe7474d44823e3deb89724af42b5f"
|
||||||
integrity sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==
|
integrity sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==
|
||||||
|
|
||||||
"@eslint/eslintrc@^0.4.1":
|
"@eslint/eslintrc@^0.4.2":
|
||||||
version "0.4.1"
|
version "0.4.2"
|
||||||
resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14"
|
resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179"
|
||||||
integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==
|
integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^6.12.4"
|
ajv "^6.12.4"
|
||||||
debug "^4.1.1"
|
debug "^4.1.1"
|
||||||
espree "^7.3.0"
|
espree "^7.3.0"
|
||||||
globals "^12.1.0"
|
globals "^13.9.0"
|
||||||
ignore "^4.0.6"
|
ignore "^4.0.6"
|
||||||
import-fresh "^3.2.1"
|
import-fresh "^3.2.1"
|
||||||
js-yaml "^3.13.1"
|
js-yaml "^3.13.1"
|
||||||
@ -1243,10 +1243,10 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
cross-fetch "^3.0.6"
|
cross-fetch "^3.0.6"
|
||||||
|
|
||||||
"@iconify/json@^1.1.350":
|
"@iconify/json@^1.1.353":
|
||||||
version "1.1.350"
|
version "1.1.353"
|
||||||
resolved "https://registry.yarnpkg.com/@iconify/json/-/json-1.1.350.tgz#abd66f4ef1250306f7ce088dac637ea0d781e694"
|
resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.353.tgz#f9fb632da9b13cd79bcbea09b289610c46b87426"
|
||||||
integrity sha512-pNHlRLZCbNsk7WXZfFGPa1no3oOi5KcWFyo1Pk3cQJzPhHEqqpV7zImAGW4WJrxhlRkv/6wzZVcBF5xhkp4Avw==
|
integrity sha512-gN+DccJUhO6iB7gBPbZXodDaaxZpZTLORixrXaXNmkSW7N/jqfzMCCogoeRWOydZzSgR7VESc2tMI4llEonkjg==
|
||||||
|
|
||||||
"@intlify/core-base@9.1.6":
|
"@intlify/core-base@9.1.6":
|
||||||
version "9.1.6"
|
version "9.1.6"
|
||||||
@ -1813,10 +1813,10 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.1.tgz#5e07e0cb2ff793aa7a1b41deae76221e6166049f"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.1.tgz#5e07e0cb2ff793aa7a1b41deae76221e6166049f"
|
||||||
integrity sha512-/tpUyFD7meeooTRwl3sYlihx2BrJE7q9XF71EguPFIySj9B7qgnRtHsHTho+0AUm4m1SvWGm6uSncrR94q6Vtw==
|
integrity sha512-/tpUyFD7meeooTRwl3sYlihx2BrJE7q9XF71EguPFIySj9B7qgnRtHsHTho+0AUm4m1SvWGm6uSncrR94q6Vtw==
|
||||||
|
|
||||||
"@types/node@^15.12.0":
|
"@types/node@^15.12.1":
|
||||||
version "15.12.0"
|
version "15.12.1"
|
||||||
resolved "https://registry.npmjs.org/@types/node/-/node-15.12.0.tgz#6a459d261450a300e6865faeddb5af01c3389bb3"
|
resolved "https://registry.npmjs.org/@types/node/-/node-15.12.1.tgz#9b60797dee1895383a725f828a869c86c6caa5c2"
|
||||||
integrity sha512-+aHJvoCsVhO2ZCuT4o5JtcPrCPyDE3+1nvbDprYes+pPkEsbjH7AGUCNtjMOXS0fqH14t+B7yLzaqSz92FPWyw==
|
integrity sha512-zyxJM8I1c9q5sRMtVF+zdd13Jt6RU4r4qfhTd7lQubyThvLfx6yYekWSQjGCGV2Tkecgxnlpl/DNlb6Hg+dmEw==
|
||||||
|
|
||||||
"@types/normalize-package-data@^2.4.0":
|
"@types/normalize-package-data@^2.4.0":
|
||||||
version "2.4.0"
|
version "2.4.0"
|
||||||
@ -2345,7 +2345,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
|
|||||||
|
|
||||||
ant-design-vue@2.1.2:
|
ant-design-vue@2.1.2:
|
||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/ant-design-vue/-/ant-design-vue-2.1.2.tgz#2065d7e63199c0c584919458af57b6a0b597f677"
|
resolved "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-2.1.2.tgz#2065d7e63199c0c584919458af57b6a0b597f677"
|
||||||
integrity sha512-gDG0wauGVt4LE63behrJaIcq4BB+dgs+dpj9jz17IgKr2MPYSEeKetU/x9Kk8d58cGonz4Ulncg7fBZJ7EljsQ==
|
integrity sha512-gDG0wauGVt4LE63behrJaIcq4BB+dgs+dpj9jz17IgKr2MPYSEeKetU/x9Kk8d58cGonz4Ulncg7fBZJ7EljsQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ant-design-vue/use" "^0.0.1-0"
|
"@ant-design-vue/use" "^0.0.1-0"
|
||||||
@ -4803,6 +4803,13 @@ es6-error@^4.1.1:
|
|||||||
resolved "https://registry.npm.taobao.org/es6-error/download/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
|
resolved "https://registry.npm.taobao.org/es6-error/download/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
|
||||||
integrity sha1-njr0B0Wd7tR+mpH5uIWoTrBcVh0=
|
integrity sha1-njr0B0Wd7tR+mpH5uIWoTrBcVh0=
|
||||||
|
|
||||||
|
esbuild-node-loader@^0.0.0:
|
||||||
|
version "0.0.0"
|
||||||
|
resolved "https://registry.npmjs.org/esbuild-node-loader/-/esbuild-node-loader-0.0.0.tgz#2243724e6f57e401ac5b68a6aeb6531e3d7c6078"
|
||||||
|
integrity sha512-f4Zs1sWMst3PwVfiRpZIos/BV31a8KVSyIXodXeQjNkgc1mLIBKw7p0uY7qbLoq7ICfrsQJgvXIwPHRSHd5qSA==
|
||||||
|
dependencies:
|
||||||
|
esbuild "^0.12.6"
|
||||||
|
|
||||||
esbuild-plugin-alias@^0.1.2:
|
esbuild-plugin-alias@^0.1.2:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/esbuild-plugin-alias/-/esbuild-plugin-alias-0.1.2.tgz#1232fbde807c0c8ad44c44ec859819eb492e12a8"
|
resolved "https://registry.yarnpkg.com/esbuild-plugin-alias/-/esbuild-plugin-alias-0.1.2.tgz#1232fbde807c0c8ad44c44ec859819eb492e12a8"
|
||||||
@ -4841,6 +4848,11 @@ esbuild@^0.12.5:
|
|||||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.5.tgz#36076a6bc1966ba2741981d30512e95e8aaff495"
|
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.5.tgz#36076a6bc1966ba2741981d30512e95e8aaff495"
|
||||||
integrity sha512-vcuP53pA5XiwUU4FnlXM+2PnVjTfHGthM7uP1gtp+9yfheGvFFbq/KyuESThmtoHPUrfZH5JpxGVJIFDVD1Egw==
|
integrity sha512-vcuP53pA5XiwUU4FnlXM+2PnVjTfHGthM7uP1gtp+9yfheGvFFbq/KyuESThmtoHPUrfZH5JpxGVJIFDVD1Egw==
|
||||||
|
|
||||||
|
esbuild@^0.12.6:
|
||||||
|
version "0.12.6"
|
||||||
|
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.12.6.tgz#85bc755c7cf3005d4f34b4f10f98049ce0ee67ce"
|
||||||
|
integrity sha512-RDvVLvAjsq/kIZJoneMiUOH7EE7t2QaW7T3Q7EdQij14+bZbDq5sndb0tTanmHIFSqZVMBMMyqzVHkS3dJobeA==
|
||||||
|
|
||||||
escalade@^3.1.1:
|
escalade@^3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
||||||
@ -4925,13 +4937,13 @@ eslint-visitor-keys@^2.0.0:
|
|||||||
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
|
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
|
||||||
integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
|
integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
|
||||||
|
|
||||||
eslint@^7.27.0:
|
eslint@^7.28.0:
|
||||||
version "7.27.0"
|
version "7.28.0"
|
||||||
resolved "https://registry.npmjs.org/eslint/-/eslint-7.27.0.tgz#665a1506d8f95655c9274d84bd78f7166b07e9c7"
|
resolved "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820"
|
||||||
integrity sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==
|
integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "7.12.11"
|
"@babel/code-frame" "7.12.11"
|
||||||
"@eslint/eslintrc" "^0.4.1"
|
"@eslint/eslintrc" "^0.4.2"
|
||||||
ajv "^6.10.0"
|
ajv "^6.10.0"
|
||||||
chalk "^4.0.0"
|
chalk "^4.0.0"
|
||||||
cross-spawn "^7.0.2"
|
cross-spawn "^7.0.2"
|
||||||
@ -4948,7 +4960,7 @@ eslint@^7.27.0:
|
|||||||
fast-deep-equal "^3.1.3"
|
fast-deep-equal "^3.1.3"
|
||||||
file-entry-cache "^6.0.1"
|
file-entry-cache "^6.0.1"
|
||||||
functional-red-black-tree "^1.0.1"
|
functional-red-black-tree "^1.0.1"
|
||||||
glob-parent "^5.0.0"
|
glob-parent "^5.1.2"
|
||||||
globals "^13.6.0"
|
globals "^13.6.0"
|
||||||
ignore "^4.0.6"
|
ignore "^4.0.6"
|
||||||
import-fresh "^3.0.0"
|
import-fresh "^3.0.0"
|
||||||
@ -4970,13 +4982,14 @@ eslint@^7.27.0:
|
|||||||
text-table "^0.2.0"
|
text-table "^0.2.0"
|
||||||
v8-compile-cache "^2.0.3"
|
v8-compile-cache "^2.0.3"
|
||||||
|
|
||||||
esno@^0.6.0:
|
esno@^0.7.0:
|
||||||
version "0.6.0"
|
version "0.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/esno/-/esno-0.6.0.tgz#9e00c314840f314fcb92f7ef89258ed1be37471d"
|
resolved "https://registry.npmjs.org/esno/-/esno-0.7.0.tgz#2bec5e80eff53b60d528d6cf244445677cce7d4c"
|
||||||
integrity sha512-fzk7/w3I9f1c6oJ6E9qGN54rEYwweM2/LxGhW8iDrhkY4VnQvpavYS6pK3SF8iZgEvmtXsY7i9fs/D09o3Xdtg==
|
integrity sha512-tOcvMYheRc7dfrxWkm4bYgmMkcNZUSt892qVY66int4L+jkEJGc64fZLx8+cZffMIcHp+4IfaTB+r+X7SoRh+g==
|
||||||
dependencies:
|
dependencies:
|
||||||
cross-spawn "^7.0.3"
|
cross-spawn "^7.0.3"
|
||||||
esbuild "^0.12.5"
|
esbuild "^0.12.5"
|
||||||
|
esbuild-node-loader "^0.0.0"
|
||||||
esbuild-register "^2.5.0"
|
esbuild-register "^2.5.0"
|
||||||
|
|
||||||
espree@^6.2.1:
|
espree@^6.2.1:
|
||||||
@ -5750,7 +5763,7 @@ gitconfiglocal@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ini "^1.3.2"
|
ini "^1.3.2"
|
||||||
|
|
||||||
glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0:
|
glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0:
|
||||||
version "5.1.2"
|
version "5.1.2"
|
||||||
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
||||||
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
||||||
@ -5871,13 +5884,6 @@ globals@^11.1.0:
|
|||||||
resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
|
resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
|
||||||
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
||||||
|
|
||||||
globals@^12.1.0:
|
|
||||||
version "12.4.0"
|
|
||||||
resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
|
|
||||||
integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
|
|
||||||
dependencies:
|
|
||||||
type-fest "^0.8.1"
|
|
||||||
|
|
||||||
globals@^13.6.0:
|
globals@^13.6.0:
|
||||||
version "13.8.0"
|
version "13.8.0"
|
||||||
resolved "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3"
|
resolved "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3"
|
||||||
@ -5885,6 +5891,13 @@ globals@^13.6.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
type-fest "^0.20.2"
|
type-fest "^0.20.2"
|
||||||
|
|
||||||
|
globals@^13.9.0:
|
||||||
|
version "13.9.0"
|
||||||
|
resolved "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb"
|
||||||
|
integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==
|
||||||
|
dependencies:
|
||||||
|
type-fest "^0.20.2"
|
||||||
|
|
||||||
globalthis@^1.0.1:
|
globalthis@^1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.npm.taobao.org/globalthis/download/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b"
|
resolved "https://registry.npm.taobao.org/globalthis/download/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b"
|
||||||
@ -6786,7 +6799,7 @@ is-jpg@^2.0.0:
|
|||||||
|
|
||||||
is-mobile@^2.2.1:
|
is-mobile@^2.2.1:
|
||||||
version "2.2.2"
|
version "2.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/is-mobile/-/is-mobile-2.2.2.tgz#f6c9c5d50ee01254ce05e739bdd835f1ed4e9954"
|
resolved "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.2.tgz#f6c9c5d50ee01254ce05e739bdd835f1ed4e9954"
|
||||||
integrity sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==
|
integrity sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==
|
||||||
|
|
||||||
is-module@^1.0.0:
|
is-module@^1.0.0:
|
||||||
@ -9022,10 +9035,10 @@ prettier@^1.16.4, prettier@^1.18.2:
|
|||||||
resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
|
resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
|
||||||
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
|
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
|
||||||
|
|
||||||
prettier@^2.3.0:
|
prettier@^2.3.1:
|
||||||
version "2.3.0"
|
version "2.3.1"
|
||||||
resolved "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18"
|
resolved "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6"
|
||||||
integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==
|
integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==
|
||||||
|
|
||||||
pretty-bytes@^5.3.0, pretty-bytes@^5.6.0:
|
pretty-bytes@^5.3.0, pretty-bytes@^5.6.0:
|
||||||
version "5.6.0"
|
version "5.6.0"
|
||||||
@ -9755,10 +9768,10 @@ rollup-plugin-visualizer@5.5.0:
|
|||||||
source-map "^0.7.3"
|
source-map "^0.7.3"
|
||||||
yargs "^16.2.0"
|
yargs "^16.2.0"
|
||||||
|
|
||||||
rollup@^2.38.5, rollup@^2.43.1, rollup@^2.45.2, rollup@^2.50.6:
|
rollup@^2.38.5, rollup@^2.43.1, rollup@^2.45.2, rollup@^2.51.0:
|
||||||
version "2.51.0"
|
version "2.51.0"
|
||||||
resolved "https://registry.nlark.com/rollup/download/rollup-2.51.0.tgz#ffd847882283998fc8611cd57af917f173b4ab5c"
|
resolved "https://registry.npmjs.org/rollup/-/rollup-2.51.0.tgz#ffd847882283998fc8611cd57af917f173b4ab5c"
|
||||||
integrity sha1-/9hHiCKDmY/IYRzVevkX8XO0q1w=
|
integrity sha512-ITLt9sScNCBVspSHauw/W49lEZ0vjN8LyCzSNsNaqT67vTss2lYEfOyxltX8hjrhr1l/rQwmZ2wazzEqhZ/fUg==
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "~2.3.1"
|
fsevents "~2.3.1"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user