Commit 9edc2813 authored by vben's avatar vben

chore: format code by eslint #222

parent b77b7c9d
...@@ -57,5 +57,27 @@ module.exports = { ...@@ -57,5 +57,27 @@ module.exports = {
}, },
], ],
'space-before-function-paren': 'off', 'space-before-function-paren': 'off',
'vue/attributes-order': 'off',
'vue/one-component-per-file': 'off',
'vue/html-closing-bracket-newline': 'off',
'vue/max-attributes-per-line': 'off',
'vue/multiline-html-element-content-newline': 'off',
'vue/singleline-html-element-content-newline': 'off',
'vue/attribute-hyphenation': 'off',
// 'vue/html-self-closing': 'off',
'vue/require-default-prop': 'off',
'vue/html-self-closing': [
'error',
{
html: {
void: 'always',
normal: 'never',
component: 'always',
},
svg: 'always',
math: 'always',
},
],
}, },
}; };
# test directories
__tests__
test
tests
powered-test
# asset directories
docs
doc
website
images
assets
# examples
example
examples
# code coverage directories
coverage
.nyc_output
# build scripts
Makefile
Gulpfile.js
Gruntfile.js
# configs
appveyor.yml
circle.yml
codeship-services.yml
codeship-steps.yml
wercker.yml
.tern-project
.gitattributes
.editorconfig
.*ignore
.eslintrc
.jshintrc
.flowconfig
.documentup.json
.yarn-metadata.json
.travis.yml
# misc
*.md
!istanbul-reports/lib/html/assets
!istanbul-api/node_modules/istanbul-reports/lib/html/assets
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
"clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite", "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite",
"clean:lib": "npx rimraf node_modules", "clean:lib": "npx rimraf node_modules",
"typecheck": "vuedx-typecheck .", "typecheck": "vuedx-typecheck .",
"lint:eslint": "eslint --fix --ext \"src/**/*.{vue,less,css,scss}\"", "lint:eslint": "eslint \"{src,mock}/**/*.{vue,ts,tsx}\" --fix",
"lint:prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"", "lint:prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
"lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/", "lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
"reinstall": "rimraf yarn.lock && rimraf package.lock.json && rimraf node_modules && npm run bootstrap" "reinstall": "rimraf yarn.lock && rimraf package.lock.json && rimraf node_modules && npm run bootstrap"
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
"@types/zxcvbn": "^4.4.0", "@types/zxcvbn": "^4.4.0",
"@typescript-eslint/eslint-plugin": "^4.14.1", "@typescript-eslint/eslint-plugin": "^4.14.1",
"@typescript-eslint/parser": "^4.14.1", "@typescript-eslint/parser": "^4.14.1",
"@vitejs/plugin-legacy": "^1.2.1", "@vitejs/plugin-legacy": "^1.2.2",
"@vitejs/plugin-vue": "^1.1.2", "@vitejs/plugin-vue": "^1.1.2",
"@vitejs/plugin-vue-jsx": "^1.0.2", "@vitejs/plugin-vue-jsx": "^1.0.2",
"@vue/compiler-sfc": "^3.0.5", "@vue/compiler-sfc": "^3.0.5",
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
"stylelint-order": "^4.1.0", "stylelint-order": "^4.1.0",
"ts-node": "^9.1.1", "ts-node": "^9.1.1",
"typescript": "^4.1.3", "typescript": "^4.1.3",
"vite": "2.0.0-beta.50", "vite": "2.0.0-beta.52",
"vite-plugin-html": "^2.0.0-beta.6", "vite-plugin-html": "^2.0.0-beta.6",
"vite-plugin-mock": "^2.0.0-rc.2", "vite-plugin-mock": "^2.0.0-rc.2",
"vite-plugin-purge-icons": "^0.6.0", "vite-plugin-purge-icons": "^0.6.0",
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
import { defineComponent, ref, watchEffect, unref, computed } from 'vue'; import { defineComponent, ref, watchEffect, unref, computed } from 'vue';
import { Dropdown, DropMenu } from '/@/components/Dropdown'; import { Dropdown, DropMenu } from '/@/components/Dropdown';
import { GlobalOutlined } from '@ant-design/icons-vue';
import { useLocale } from '/@/locales/useLocale'; import { useLocale } from '/@/locales/useLocale';
import { useLocaleSetting } from '/@/hooks/setting/useLocaleSetting'; import { useLocaleSetting } from '/@/hooks/setting/useLocaleSetting';
...@@ -33,7 +32,7 @@ ...@@ -33,7 +32,7 @@
import Icon from '/@/components/Icon'; import Icon from '/@/components/Icon';
export default defineComponent({ export default defineComponent({
name: 'AppLocalPicker', name: 'AppLocalPicker',
components: { GlobalOutlined, Dropdown, Icon }, components: { Dropdown, Icon },
props: { props: {
// Whether to display text // Whether to display text
showText: propTypes.bool.def(true), showText: propTypes.bool.def(true),
......
<template> <template>
<slot /> <slot></slot>
</template> </template>
<script lang="ts"> <script lang="ts">
import type { PropType } from 'vue'; import type { PropType } from 'vue';
......
<template> <template>
<div :class="prefixCls" v-if="getShowSearch" @click.stop="handleSearch"> <div :class="prefixCls" v-if="getShowSearch" @click.stop="handleSearch">
<Tooltip> <Tooltip>
<template #title> {{ t('common.searchText') }} </template> <template #title>
{{ t('common.searchText') }}
</template>
<SearchOutlined /> <SearchOutlined />
</Tooltip> </Tooltip>
......
...@@ -40,7 +40,9 @@ ...@@ -40,7 +40,9 @@
<div :class="`${prefixCls}-list__item-icon`"> <div :class="`${prefixCls}-list__item-icon`">
<g-icon :icon="item.icon || 'mdi:form-select'" :size="20" /> <g-icon :icon="item.icon || 'mdi:form-select'" :size="20" />
</div> </div>
<div :class="`${prefixCls}-list__item-text`">{{ item.name }}</div> <div :class="`${prefixCls}-list__item-text`">
{{ item.name }}
</div>
<div :class="`${prefixCls}-list__item-enter`"> <div :class="`${prefixCls}-list__item-enter`">
<g-icon icon="ant-design:enter-outlined" :size="20" /> <g-icon icon="ant-design:enter-outlined" :size="20" />
</div> </div>
...@@ -68,14 +70,14 @@ ...@@ -68,14 +70,14 @@
export default defineComponent({ export default defineComponent({
name: 'AppSearchModal', name: 'AppSearchModal',
components: { SearchOutlined, AppSearchFooter, [Input.name]: Input }, components: { SearchOutlined, AppSearchFooter, [Input.name]: Input },
emits: ['close'], directives: {
clickOutside,
},
props: { props: {
visible: Boolean, visible: Boolean,
}, },
directives: { emits: ['close'],
clickOutside,
},
setup(_, { emit }) { setup(_, { emit }) {
const scrollWrap = ref<ElRef>(null); const scrollWrap = ref<ElRef>(null);
const { prefixCls } = useDesign('app-search-modal'); const { prefixCls } = useDesign('app-search-modal');
......
<template> <template>
<span :class="[prefixCls, { 'show-span': span && $slots.default }]"> <span :class="[prefixCls, { 'show-span': span && $slots.default }]">
<slot /> <slot></slot>
<BasicHelp :class="`${prefixCls}__help`" v-if="helpMessage" :text="helpMessage" /> <BasicHelp :class="`${prefixCls}__help`" v-if="helpMessage" :text="helpMessage" />
</span> </span>
</template> </template>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<Button v-bind="getBindValue" :class="[getColor, $attrs.class]"> <Button v-bind="getBindValue" :class="[getColor, $attrs.class]">
<template #default="data"> <template #default="data">
<Icon :icon="preIcon" v-if="preIcon" :size="14" /> <Icon :icon="preIcon" v-if="preIcon" :size="14" />
<slot v-bind="data" /> <slot v-bind="data"></slot>
<Icon :icon="postIcon" v-if="postIcon" :size="14" /> <Icon :icon="postIcon" v-if="postIcon" :size="14" />
</template> </template>
</Button> </Button>
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
export default defineComponent({ export default defineComponent({
name: 'AButton', name: 'AButton',
inheritAttrs: false,
components: { Button, Icon }, components: { Button, Icon },
inheritAttrs: false,
props: { props: {
type: propTypes.oneOf(['primary', 'default', 'danger', 'dashed', 'link']).def('default'), type: propTypes.oneOf(['primary', 'default', 'danger', 'dashed', 'link']).def('default'),
color: propTypes.oneOf(['error', 'warning', 'success', '']), color: propTypes.oneOf(['error', 'warning', 'success', '']),
......
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
export default defineComponent({ export default defineComponent({
name: 'PopButton', name: 'PopButton',
inheritAttrs: false,
components: { Popconfirm, BasicButton }, components: { Popconfirm, BasicButton },
inheritAttrs: false,
props: { props: {
size: propTypes.oneOf(['large', 'default', 'small']).def(), size: propTypes.oneOf(['large', 'default', 'small']).def(),
enable: propTypes.bool.def(true), enable: propTypes.bool.def(true),
......
<template> <template>
<div ref="wrap"><slot /></div> <div ref="wrap">
<slot></slot>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
import type { Ref } from 'vue'; import type { Ref } from 'vue';
......
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
mode="out-in" mode="out-in"
> >
<div key="component" v-if="isInit"> <div key="component" v-if="isInit">
<slot :loading="loading" /> <slot :loading="loading"></slot>
</div> </div>
<div key="skeleton" v-else name="lazy-skeleton"> <div key="skeleton" v-else name="lazy-skeleton">
<slot name="skeleton" v-if="$slots.skeleton" /> <slot name="skeleton" v-if="$slots.skeleton"></slot>
<Skeleton v-else /> <Skeleton v-else />
</div> </div>
</transition-group> </transition-group>
...@@ -35,8 +35,8 @@ ...@@ -35,8 +35,8 @@
export default defineComponent({ export default defineComponent({
name: 'LazyContainer', name: 'LazyContainer',
inheritAttrs: false,
components: { Skeleton }, components: { Skeleton },
inheritAttrs: false,
props: { props: {
// Waiting time, if the time is specified, whether visible or not, it will be automatically loaded after the specified time // Waiting time, if the time is specified, whether visible or not, it will be automatically loaded after the specified time
timeout: propTypes.number, timeout: propTypes.number,
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
const { timeout, direction, threshold } = props; const { timeout, direction, threshold } = props;
if (timeout) return; if (timeout) return;
// According to the scrolling direction to construct the viewport margin, used to load in advance // According to the scrolling direction to construct the viewport margin, used to load in advance
let rootMargin: string = '0px'; let rootMargin = '0px';
switch (direction) { switch (direction) {
case 'vertical': case 'vertical':
rootMargin = `${threshold} 0px`; rootMargin = `${threshold} 0px`;
......
<template> <template>
<Scrollbar ref="scrollbarRef" class="scroll-container" v-bind="$attrs"> <Scrollbar ref="scrollbarRef" class="scroll-container" v-bind="$attrs">
<slot /> <slot></slot>
</Scrollbar> </Scrollbar>
</template> </template>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div :class="['p-2', prefixCls]"> <div :class="['p-2', prefixCls]">
<CollapseHeader v-bind="$props" :prefixCls="prefixCls" :show="show" @expand="handleExpand"> <CollapseHeader v-bind="$props" :prefixCls="prefixCls" :show="show" @expand="handleExpand">
<template #title> <template #title>
<slot name="title" /> <slot name="title"></slot>
</template> </template>
</CollapseHeader> </CollapseHeader>
...@@ -10,12 +10,12 @@ ...@@ -10,12 +10,12 @@
<Skeleton v-if="loading" /> <Skeleton v-if="loading" />
<div :class="`${prefixCls}__body`" v-else v-show="show"> <div :class="`${prefixCls}__body`" v-else v-show="show">
<LazyContainer :timeout="lazyTime" v-if="lazy"> <LazyContainer :timeout="lazyTime" v-if="lazy">
<slot /> <slot></slot>
<template #skeleton> <template #skeleton>
<slot name="lazySkeleton" /> <slot name="lazySkeleton"></slot>
</template> </template>
</LazyContainer> </LazyContainer>
<slot v-else /> <slot v-else></slot>
</div> </div>
</CollapseTransition> </CollapseTransition>
</div> </div>
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
{{ $attrs.title }} {{ $attrs.title }}
</template> </template>
<template v-else> <template v-else>
<slot name="title" /> <slot name="title"></slot>
</template> </template>
</BasicTitle> </BasicTitle>
<div :class="`${prefixCls}__action`"> <div :class="`${prefixCls}__action`">
<slot name="action" /> <slot name="action"></slot>
<BasicArrow v-if="$attrs.canExpan" top :expand="$attrs.show" @click="$emit('expand')" /> <BasicArrow v-if="$attrs.canExpan" top :expand="$attrs.show" @click="$emit('expand')" />
</div> </div>
</div> </div>
...@@ -19,10 +19,11 @@ ...@@ -19,10 +19,11 @@
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import { BasicArrow, BasicTitle } from '/@/components/Basic'; import { BasicArrow, BasicTitle } from '/@/components/Basic';
export default defineComponent({ export default defineComponent({
inheritAttrs: false,
components: { BasicArrow, BasicTitle }, components: { BasicArrow, BasicTitle },
inheritAttrs: false,
props: { props: {
prefixCls: String, prefixCls: String,
}, },
emits: ['expand'],
}); });
</script> </script>
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
@close="onClose" @close="onClose"
> >
<template #titleToolbar> <template #titleToolbar>
<slot name="titleToolbar" /> <slot name="titleToolbar"></slot>
</template> </template>
</DrawerHeader> </DrawerHeader>
</template> </template>
...@@ -18,11 +18,11 @@ ...@@ -18,11 +18,11 @@
v-loading="getLoading" v-loading="getLoading"
:loading-tip="loadingText || t('common.loadingText')" :loading-tip="loadingText || t('common.loadingText')"
> >
<slot /> <slot></slot>
</ScrollContainer> </ScrollContainer>
<DrawerFooter v-bind="getProps" @close="onClose" @ok="handleOk" :height="getFooterHeight"> <DrawerFooter v-bind="getProps" @close="onClose" @ok="handleOk" :height="getFooterHeight">
<template #[item]="data" v-for="item in Object.keys($slots)"> <template #[item]="data" v-for="item in Object.keys($slots)">
<slot :name="item" v-bind="data" /> <slot :name="item" v-bind="data"></slot>
</template> </template>
</DrawerFooter> </DrawerFooter>
</Drawer> </Drawer>
...@@ -57,8 +57,8 @@ ...@@ -57,8 +57,8 @@
import { useAttrs } from '/@/hooks/core/useAttrs'; import { useAttrs } from '/@/hooks/core/useAttrs';
export default defineComponent({ export default defineComponent({
inheritAttrs: false,
components: { Drawer, ScrollContainer, DrawerFooter, DrawerHeader }, components: { Drawer, ScrollContainer, DrawerFooter, DrawerHeader },
inheritAttrs: false,
props: basicProps, props: basicProps,
emits: ['visible-change', 'ok', 'close', 'register'], emits: ['visible-change', 'ok', 'close', 'register'],
setup(props, { emit }) { setup(props, { emit }) {
......
<template> <template>
<div :class="prefixCls" :style="getStyle" v-if="showFooter || $slots.footer"> <div :class="prefixCls" :style="getStyle" v-if="showFooter || $slots.footer">
<template v-if="!$slots.footer"> <template v-if="!$slots.footer">
<slot name="insertFooter" /> <slot name="insertFooter"></slot>
<a-button v-bind="cancelButtonProps" @click="handleClose" class="mr-2" v-if="showCancelBtn"> <a-button v-bind="cancelButtonProps" @click="handleClose" class="mr-2" v-if="showCancelBtn">
{{ cancelText }} {{ cancelText }}
</a-button> </a-button>
<slot name="centerFooter" /> <slot name="centerFooter"></slot>
<a-button <a-button
:type="okType" :type="okType"
@click="handleOk" @click="handleOk"
...@@ -16,11 +16,11 @@ ...@@ -16,11 +16,11 @@
> >
{{ okText }} {{ okText }}
</a-button> </a-button>
<slot name="appendFooter" /> <slot name="appendFooter"></slot>
</template> </template>
<template v-else> <template v-else>
<slot name="footer" /> <slot name="footer"></slot>
</template> </template>
</div> </div>
</template> </template>
......
<template> <template>
<BasicTitle v-if="!isDetail" :class="prefixCls"> <BasicTitle v-if="!isDetail" :class="prefixCls">
<slot name="title" /> <slot name="title"></slot>
{{ !$slots.title ? title : '' }} {{ !$slots.title ? title : '' }}
</BasicTitle> </BasicTitle>
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
</span> </span>
<span :class="`${prefixCls}__toolbar`"> <span :class="`${prefixCls}__toolbar`">
<slot name="titleToolbar" /> <slot name="titleToolbar"></slot>
</span> </span>
</div> </div>
</template> </template>
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
showDetailBack: propTypes.bool, showDetailBack: propTypes.bool,
title: propTypes.string, title: propTypes.string,
}, },
emits: ['close'],
setup(_, { emit }) { setup(_, { emit }) {
const { prefixCls } = useDesign('basic-drawer-header'); const { prefixCls } = useDesign('basic-drawer-header');
......
<template> <template>
<a-dropdown :trigger="trigger" v-bind="$attrs"> <a-dropdown :trigger="trigger" v-bind="$attrs">
<span> <span>
<slot /> <slot></slot>
</span> </span>
<template #overlay> <template #overlay>
<a-menu :selectedKeys="selectedKeys"> <a-menu :selectedKeys="selectedKeys">
......
...@@ -7,7 +7,9 @@ ...@@ -7,7 +7,9 @@
accept=".xlsx, .xls" accept=".xlsx, .xls"
@change="handleInputClick" @change="handleInputClick"
/> />
<div @click="handleUpload"><slot /></div> <div @click="handleUpload">
<slot></slot>
</div>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
......
<template> <template>
<Form v-bind="{ ...$attrs, ...$props }" :class="getFormClass" ref="formElRef" :model="formModel"> <Form v-bind="{ ...$attrs, ...$props }" :class="getFormClass" ref="formElRef" :model="formModel">
<Row :style="getRowWrapStyle"> <Row :style="getRowWrapStyle">
<slot name="formHeader" /> <slot name="formHeader"></slot>
<template v-for="schema in getSchema" :key="schema.field"> <template v-for="schema in getSchema" :key="schema.field">
<FormItem <FormItem
:tableAction="tableAction" :tableAction="tableAction"
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
:setFormModel="setFormModel" :setFormModel="setFormModel"
> >
<template #[item]="data" v-for="item in Object.keys($slots)"> <template #[item]="data" v-for="item in Object.keys($slots)">
<slot :name="item" v-bind="data" /> <slot :name="item" v-bind="data"></slot>
</template> </template>
</FormItem> </FormItem>
</template> </template>
...@@ -23,10 +23,10 @@ ...@@ -23,10 +23,10 @@
#[item]="data" #[item]="data"
v-for="item in ['resetBefore', 'submitBefore', 'advanceBefore', 'advanceAfter']" v-for="item in ['resetBefore', 'submitBefore', 'advanceBefore', 'advanceAfter']"
> >
<slot :name="item" v-bind="data" /> <slot :name="item" v-bind="data"></slot>
</template> </template>
</FormAction> </FormAction>
<slot name="formFooter" /> <slot name="formFooter"></slot>
</Row> </Row>
</Form> </Form>
</template> </template>
......
<template> <template>
<Select v-bind="attrs" :options="getOptions" v-model:value="state"> <Select v-bind="attrs" :options="getOptions" v-model:value="state">
<template #[item]="data" v-for="item in Object.keys($slots)"> <template #[item]="data" v-for="item in Object.keys($slots)">
<slot :name="item" v-bind="data" /> <slot :name="item" v-bind="data"></slot>
</template> </template>
<template #suffixIcon v-if="loading"> <template #suffixIcon v-if="loading">
<LoadingOutlined spin /> <LoadingOutlined spin />
......
<template> <template>
<a-col v-bind="actionColOpt" :style="{ textAlign: 'right' }" v-if="showActionButtonGroup"> <a-col v-bind="actionColOpt" :style="{ textAlign: 'right' }" v-if="showActionButtonGroup">
<FormItem> <FormItem>
<slot name="resetBefore" /> <slot name="resetBefore"></slot>
<Button <Button
type="default" type="default"
class="mr-2" class="mr-2"
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
> >
{{ getResetBtnOptions.text }} {{ getResetBtnOptions.text }}
</Button> </Button>
<slot name="submitBefore" /> <slot name="submitBefore"></slot>
<Button <Button
type="primary" type="primary"
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
{{ getSubmitBtnOptions.text }} {{ getSubmitBtnOptions.text }}
</Button> </Button>
<slot name="advanceBefore" /> <slot name="advanceBefore"></slot>
<Button <Button
type="link" type="link"
size="small" size="small"
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
{{ isAdvanced ? t('component.form.putAway') : t('component.form.unfold') }} {{ isAdvanced ? t('component.form.putAway') : t('component.form.unfold') }}
<BasicArrow class="ml-1" :expand="!isAdvanced" top /> <BasicArrow class="ml-1" :expand="!isAdvanced" top />
</Button> </Button>
<slot name="advanceAfter" /> <slot name="advanceAfter"></slot>
</FormItem> </FormItem>
</a-col> </a-col>
</template> </template>
...@@ -81,6 +81,7 @@ ...@@ -81,6 +81,7 @@
isAdvanced: propTypes.bool, isAdvanced: propTypes.bool,
hideAdvanceBtn: propTypes.bool, hideAdvanceBtn: propTypes.bool,
}, },
emits: ['toggle-advanced'],
setup(props, { emit }) { setup(props, { emit }) {
const { t } = useI18n(); const { t } = useI18n();
......
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
<template> <template>
<RadioGroup v-bind="attrs" v-model:value="state" button-style="solid"> <RadioGroup v-bind="attrs" v-model:value="state" button-style="solid">
<template v-for="item in getOptions" :key="`${item.value}`"> <template v-for="item in getOptions" :key="`${item.value}`">
<RadioButton :value="item.value"> {{ item.label }} </RadioButton> <RadioButton :value="item.value">
{{ item.label }}
</RadioButton>
</template> </template>
</RadioGroup> </RadioGroup>
</template> </template>
......
...@@ -36,7 +36,7 @@ export interface FormActionType { ...@@ -36,7 +36,7 @@ export interface FormActionType {
appendSchemaByField: ( appendSchemaByField: (
schema: FormSchema, schema: FormSchema,
prefixField: string | undefined, prefixField: string | undefined,
first: boolean | undefined first?: boolean | undefined
) => Promise<void>; ) => Promise<void>;
validateFields: (nameList?: NamePath[]) => Promise<any>; validateFields: (nameList?: NamePath[]) => Promise<any>;
validate: (nameList?: NamePath[]) => Promise<any>; validate: (nameList?: NamePath[]) => Promise<any>;
......
<template> <template>
<span ref="elRef" :class="[$attrs.class, 'app-iconify anticon']" :style="getWrapStyle" /> <span ref="elRef" :class="[$attrs.class, 'app-iconify anticon']" :style="getWrapStyle"></span>
</template> </template>
<script lang="ts"> <script lang="ts">
import type { PropType } from 'vue'; import type { PropType } from 'vue';
......
<template> <template>
<div ref="wrapRef" /> <div ref="wrapRef"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, onMounted, unref, onUnmounted, nextTick, computed } from 'vue'; import {
defineComponent,
ref,
onMounted,
unref,
onUnmounted,
nextTick,
computed,
watchEffect,
} from 'vue';
import Vditor from 'vditor'; import Vditor from 'vditor';
import 'vditor/dist/index.css'; import 'vditor/dist/index.css';
...@@ -25,25 +34,26 @@ ...@@ -25,25 +34,26 @@
const modalFn = useModalContext(); const modalFn = useModalContext();
const lang = ref<Lang>();
const { getLang } = useLocale(); const { getLang } = useLocale();
watchEffect(() => {});
const getCurrentLang = computed((): 'zh_CN' | 'en_US' | 'ja_JP' | 'ko_KR' => { const getCurrentLang = computed((): 'zh_CN' | 'en_US' | 'ja_JP' | 'ko_KR' => {
let lang: Lang;
switch (unref(getLang)) { switch (unref(getLang)) {
case 'en': case 'en':
lang.value = 'en_US'; lang = 'en_US';
break; break;
case 'ja': case 'ja':
lang.value = 'ja_JP'; lang = 'ja_JP';
break; break;
case 'ko': case 'ko':
lang.value = 'ko_KR'; lang = 'ko_KR';
break; break;
default: default:
lang.value = 'zh_CN'; lang = 'zh_CN';
} }
return lang.value; return lang;
}); });
function init() { function init() {
const wrapEl = unref(wrapRef); const wrapEl = unref(wrapRef);
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
components: { components: {
BasicMenuItem, BasicMenuItem,
SubMenu: Menu.SubMenu, SubMenu: Menu.SubMenu,
MenuItem: Menu.Item,
MenuItemContent, MenuItemContent,
}, },
props: itemProps, props: itemProps,
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<template #footer v-if="!$slots.footer"> <template #footer v-if="!$slots.footer">
<ModalFooter v-bind="getProps" @ok="handleOk" @cancel="handleCancel"> <ModalFooter v-bind="getProps" @ok="handleOk" @cancel="handleCancel">
<template #[item]="data" v-for="item in Object.keys($slots)"> <template #[item]="data" v-for="item in Object.keys($slots)">
<slot :name="item" v-bind="data" /> <slot :name="item" v-bind="data"></slot>
</template> </template>
</ModalFooter> </ModalFooter>
</template> </template>
...@@ -35,11 +35,11 @@ ...@@ -35,11 +35,11 @@
@ext-height="handleExtHeight" @ext-height="handleExtHeight"
@height-change="handleHeightChange" @height-change="handleHeightChange"
> >
<slot /> <slot></slot>
</ModalWrapper> </ModalWrapper>
<template #[item]="data" v-for="item in Object.keys(omit($slots, 'default'))"> <template #[item]="data" v-for="item in Object.keys(omit($slots, 'default'))">
<slot :name="item" v-bind="data" /> <slot :name="item" v-bind="data"></slot>
</template> </template>
</Modal> </Modal>
</template> </template>
...@@ -71,8 +71,8 @@ ...@@ -71,8 +71,8 @@
import { omit } from 'lodash-es'; import { omit } from 'lodash-es';
export default defineComponent({ export default defineComponent({
name: 'BasicModal', name: 'BasicModal',
inheritAttrs: false,
components: { Modal, ModalWrapper, ModalClose, ModalFooter, ModalHeader }, components: { Modal, ModalWrapper, ModalClose, ModalFooter, ModalHeader },
inheritAttrs: false,
props: basicProps, props: basicProps,
emits: ['visible-change', 'height-change', 'cancel', 'ok', 'register'], emits: ['visible-change', 'height-change', 'cancel', 'ok', 'register'],
setup(props, { emit, attrs }) { setup(props, { emit, attrs }) {
......
<template> <template>
<div> <div>
<slot name="insertFooter" /> <slot name="insertFooter"></slot>
<a-button v-bind="cancelButtonProps" @click="handleCancel" v-if="showCancelBtn"> <a-button v-bind="cancelButtonProps" @click="handleCancel" v-if="showCancelBtn">
{{ cancelText }} {{ cancelText }}
</a-button> </a-button>
<slot name="centerFooter" /> <slot name="centerFooter"></slot>
<a-button <a-button
:type="okType" :type="okType"
@click="handleOk" @click="handleOk"
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
> >
{{ okText }} {{ okText }}
</a-button> </a-button>
<slot name="appendFooter" /> <slot name="appendFooter"></slot>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
......
<template> <template>
<ScrollContainer ref="wrapperRef"> <ScrollContainer ref="wrapperRef">
<div ref="spinRef" :style="spinStyle" v-loading="loading" :loading-tip="loadingTip"> <div ref="spinRef" :style="spinStyle" v-loading="loading" :loading-tip="loadingTip">
<slot /> <slot></slot>
</div> </div>
</ScrollContainer> </ScrollContainer>
</template> </template>
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
nextTick, nextTick,
onUnmounted, onUnmounted,
} from 'vue'; } from 'vue';
import { Spin } from 'ant-design-vue';
import { useWindowSizeFn } from '/@/hooks/event/useWindowSizeFn'; import { useWindowSizeFn } from '/@/hooks/event/useWindowSizeFn';
import { ScrollContainer } from '/@/components/Container'; import { ScrollContainer } from '/@/components/Container';
...@@ -31,8 +30,8 @@ ...@@ -31,8 +30,8 @@
export default defineComponent({ export default defineComponent({
name: 'ModalWrapper', name: 'ModalWrapper',
components: { ScrollContainer },
inheritAttrs: false, inheritAttrs: false,
components: { Spin, ScrollContainer },
props: { props: {
loading: propTypes.bool, loading: propTypes.bool,
useWrapper: propTypes.bool.def(true), useWrapper: propTypes.bool.def(true),
......
<template> <template>
<div :class="prefixCls" :style="{ width: getCalcContentWidth }"> <div :class="prefixCls" :style="{ width: getCalcContentWidth }">
<div :class="`${prefixCls}__left`"> <div :class="`${prefixCls}__left`">
<slot name="left" /> <slot name="left"></slot>
</div> </div>
<slot /> <slot></slot>
<div :class="`${prefixCls}__right`"> <div :class="`${prefixCls}__right`">
<slot name="right" /> <slot name="right"></slot>
</div> </div>
</div> </div>
</template> </template>
......
...@@ -5,21 +5,21 @@ ...@@ -5,21 +5,21 @@
<template v-if="content"> <template v-if="content">
{{ content }} {{ content }}
</template> </template>
<slot name="headerContent" v-else /> <slot name="headerContent" v-else></slot>
</template> </template>
<template #[item]="data" v-for="item in getHeaderSlots"> <template #[item]="data" v-for="item in getHeaderSlots">
<slot :name="item" v-bind="data" /> <slot :name="item" v-bind="data"></slot>
</template> </template>
</PageHeader> </PageHeader>
<div :class="[`${prefixCls}-content`, $attrs.contentClass]" :style="getContentStyle"> <div :class="[`${prefixCls}-content`, $attrs.contentClass]" :style="getContentStyle">
<slot /> <slot></slot>
</div> </div>
<PageFooter v-if="getShowFooter" ref="footerRef"> <PageFooter v-if="getShowFooter" ref="footerRef">
<template #left> <template #left>
<slot name="leftFooter" /> <slot name="leftFooter"></slot>
</template> </template>
<template #right> <template #right>
<slot name="rightFooter" /> <slot name="rightFooter"></slot>
</template> </template>
</PageFooter> </PageFooter>
</div> </div>
......
<template> <template>
<div :class="prefixCls"> <div :class="prefixCls">
<PreviewGroup> <PreviewGroup>
<slot v-if="!imageList || $slots.default" /> <slot v-if="!imageList || $slots.default"></slot>
<template v-else> <template v-else>
<template v-for="item in getImageList" :key="item.src"> <template v-for="item in getImageList" :key="item.src">
<Image v-bind="item"> <Image v-bind="item">
......
<template> <template>
<div> <div>
<component :is="tag" ref="wrapRef"></component> <component :is="tag" ref="wrapRef" />
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
export default defineComponent({ export default defineComponent({
name: 'QrCode', name: 'QrCode',
emits: { done: (url: string) => !!url, error: (error: any) => !!error },
props: { props: {
value: { value: {
type: [String, Array] as PropType<string | any[]>, type: [String, Array] as PropType<string | any[]>,
...@@ -39,6 +38,7 @@ ...@@ -39,6 +38,7 @@
validator: (v: string) => ['canvas', 'img'].includes(v), validator: (v: string) => ['canvas', 'img'].includes(v),
}, },
}, },
emits: { done: (url: string) => !!url, error: (error: any) => !!error },
setup(props, { emit }) { setup(props, { emit }) {
const wrapRef = ref<HTMLCanvasElement | HTMLImageElement | null>(null); const wrapRef = ref<HTMLCanvasElement | HTMLImageElement | null>(null);
const urlRef = ref<string>(''); const urlRef = ref<string>('');
......
...@@ -36,11 +36,11 @@ ...@@ -36,11 +36,11 @@
import { useOpenKeys } from './useOpenKeys'; import { useOpenKeys } from './useOpenKeys';
export default defineComponent({ export default defineComponent({
name: 'SimpleMenu', name: 'SimpleMenu',
inheritAttrs: false,
components: { components: {
Menu, Menu,
SimpleSubMenu, SimpleSubMenu,
}, },
inheritAttrs: false,
props: { props: {
items: { items: {
type: Array as PropType<MenuType[]>, type: Array as PropType<MenuType[]>,
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
type: Function as PropType<(key: string) => Promise<boolean>>, type: Function as PropType<(key: string) => Promise<boolean>>,
}, },
}, },
emits: ['menuClick'],
setup(props, { attrs, emit }) { setup(props, { attrs, emit }) {
const currentActiveMenu = ref(''); const currentActiveMenu = ref('');
const isClickGo = ref(false); const isClickGo = ref(false);
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<slot name="title"></slot> <slot name="title"></slot>
</template> </template>
<div :class="`${prefixCls}-tooltip`"> <div :class="`${prefixCls}-tooltip`">
<slot /> <slot></slot>
</div> </div>
</Tooltip> </Tooltip>
......
...@@ -287,7 +287,9 @@ ...@@ -287,7 +287,9 @@
); );
rootMenuEmitter.on('on-update-active-name:submenu', (data: number[]) => { rootMenuEmitter.on('on-update-active-name:submenu', (data: number[]) => {
state.active = data.includes(instance?.uid!); if (instance?.uid) {
state.active = data.includes(instance?.uid);
}
}); });
}); });
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:disabled="disabled" :disabled="disabled"
> >
<template #[item]="data" v-for="item in Object.keys($slots)"> <template #[item]="data" v-for="item in Object.keys($slots)">
<slot :name="item" v-bind="data" /> <slot :name="item" v-bind="data"></slot>
</template> </template>
</InputPassword> </InputPassword>
<div :class="`${prefixCls}-bar`"> <div :class="`${prefixCls}-bar`">
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
@advanced-change="redoHeight" @advanced-change="redoHeight"
> >
<template #[replaceFormSlotKey(item)]="data" v-for="item in getFormSlotKeys"> <template #[replaceFormSlotKey(item)]="data" v-for="item in getFormSlotKeys">
<slot :name="item" v-bind="data" /> <slot :name="item" v-bind="data"></slot>
</template> </template>
</BasicForm> </BasicForm>
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
@change="handleTableChange" @change="handleTableChange"
> >
<template #[item]="data" v-for="item in Object.keys($slots)"> <template #[item]="data" v-for="item in Object.keys($slots)">
<slot :name="item" v-bind="data" /> <slot :name="item" v-bind="data"></slot>
</template> </template>
<template #[`header-${column.dataIndex}`] v-for="column in columns" :key="column.dataIndex"> <template #[`header-${column.dataIndex}`] v-for="column in columns" :key="column.dataIndex">
<HeaderCell :column="column" /> <HeaderCell :column="column" />
...@@ -69,12 +69,12 @@ ...@@ -69,12 +69,12 @@
import './style/index.less'; import './style/index.less';
export default defineComponent({ export default defineComponent({
props: basicProps,
components: { components: {
Table, Table,
BasicForm, BasicForm,
HeaderCell: createAsyncComponent(() => import('./components/HeaderCell.vue')), HeaderCell: createAsyncComponent(() => import('./components/HeaderCell.vue')),
}, },
props: basicProps,
emits: [ emits: [
'fetch-success', 'fetch-success',
'fetch-error', 'fetch-error',
......
<template> <template>
<span> <span>
<slot /> <slot></slot>
{{ title }} {{ title }}
<FormOutlined /> <FormOutlined />
</span> </span>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
/> />
</template> </template>
<Dropdown :trigger="['hover']" :dropMenuList="getDropList" v-if="dropDownActions"> <Dropdown :trigger="['hover']" :dropMenuList="getDropList" v-if="dropDownActions">
<slot name="more" /> <slot name="more"></slot>
<a-button type="link" size="small" v-if="!$slots.more"> <a-button type="link" size="small" v-if="!$slots.more">
<MoreOutlined class="icon-more" /> <MoreOutlined class="icon-more" />
</a-button> </a-button>
......
<template> <template>
<slot name="tableTitle" v-if="$slots.tableTitle" /> <slot name="tableTitle" v-if="$slots.tableTitle"></slot>
<TableTitle :helpMessage="titleHelpMessage" :title="title" v-if="!$slots.tableTitle && title" /> <TableTitle :helpMessage="titleHelpMessage" :title="title" v-if="!$slots.tableTitle && title" />
<div :class="`${prefixCls}__toolbar`"> <div :class="`${prefixCls}__toolbar`">
<slot name="toolbar" /> <slot name="toolbar"></slot>
<Divider type="vertical" v-if="$slots.toolbar" /> <Divider type="vertical" v-if="$slots.toolbar" />
<TableSetting :setting="tableSetting" v-if="showTableSetting" /> <TableSetting :setting="tableSetting" v-if="showTableSetting" />
</div> </div>
......
...@@ -18,8 +18,7 @@ ...@@ -18,8 +18,7 @@
@change="handleChange" @change="handleChange"
@options-change="handleOptionsChange" @options-change="handleOptionsChange"
@pressEnter="handleSubmit" @pressEnter="handleSubmit"
> />
</CellComponent>
<div :class="`${prefixCls}__action`" v-if="!getRowEditable"> <div :class="`${prefixCls}__action`" v-if="!getRowEditable">
<CheckOutlined :class="[`${prefixCls}__icon`, 'mx-2']" @click="handleSubmit" /> <CheckOutlined :class="[`${prefixCls}__icon`, 'mx-2']" @click="handleSubmit" />
<CloseOutlined :class="`${prefixCls}__icon `" @click="handleCancel" /> <CloseOutlined :class="`${prefixCls}__icon `" @click="handleCancel" />
...@@ -48,6 +47,9 @@ ...@@ -48,6 +47,9 @@
export default defineComponent({ export default defineComponent({
name: 'EditableCell', name: 'EditableCell',
components: { FormOutlined, CloseOutlined, CheckOutlined, CellComponent }, components: { FormOutlined, CloseOutlined, CheckOutlined, CellComponent },
directives: {
clickOutside,
},
props: { props: {
value: { value: {
type: [String, Number, Boolean, Object] as PropType<string | number | boolean | Recordable>, type: [String, Number, Boolean, Object] as PropType<string | number | boolean | Recordable>,
...@@ -62,10 +64,6 @@ ...@@ -62,10 +64,6 @@
}, },
index: propTypes.number, index: propTypes.number,
}, },
directives: {
clickOutside,
},
setup(props) { setup(props) {
const table = useTableContext(); const table = useTableContext();
const isEdit = ref(false); const isEdit = ref(false);
...@@ -232,7 +230,7 @@ ...@@ -232,7 +230,7 @@
const dataKey = (dataIndex || key) as string; const dataKey = (dataIndex || key) as string;
const record = await table.updateTableData(index, dataKey, value); const record = await table.updateTableData(index, dataKey, value);
needEmit && table.emit?.('edit-end', { record, index, key, value}); needEmit && table.emit?.('edit-end', { record, index, key, value });
isEdit.value = false; isEdit.value = false;
} }
......
...@@ -44,10 +44,14 @@ ...@@ -44,10 +44,14 @@
<template v-for="item in plainOptions" :key="item.value"> <template v-for="item in plainOptions" :key="item.value">
<div :class="`${prefixCls}__check-item`"> <div :class="`${prefixCls}__check-item`">
<DragOutlined class="table-coulmn-drag-icon" /> <DragOutlined class="table-coulmn-drag-icon" />
<Checkbox :value="item.value"> {{ item.label }} </Checkbox> <Checkbox :value="item.value">
{{ item.label }}
</Checkbox>
<Tooltip placement="bottomLeft" :mouseLeaveDelay="0.4"> <Tooltip placement="bottomLeft" :mouseLeaveDelay="0.4">
<template #title> {{ t('component.table.settingFixedLeft') }}</template> <template #title>
{{ t('component.table.settingFixedLeft') }}
</template>
<Icon <Icon
icon="line-md:arrow-align-left" icon="line-md:arrow-align-left"
:class="[ :class="[
...@@ -62,7 +66,9 @@ ...@@ -62,7 +66,9 @@
</Tooltip> </Tooltip>
<Divider type="vertical" /> <Divider type="vertical" />
<Tooltip placement="bottomLeft" :mouseLeaveDelay="0.4"> <Tooltip placement="bottomLeft" :mouseLeaveDelay="0.4">
<template #title> {{ t('component.table.settingFixedRight') }}</template> <template #title>
{{ t('component.table.settingFixedRight') }}
</template>
<Icon <Icon
icon="line-md:arrow-align-left" icon="line-md:arrow-align-left"
:class="[ :class="[
......
...@@ -39,9 +39,9 @@ ...@@ -39,9 +39,9 @@
export default defineComponent({ export default defineComponent({
name: 'Tinymce', name: 'Tinymce',
components: { ImgUpload },
inheritAttrs: false, inheritAttrs: false,
props: basicProps, props: basicProps,
components: { ImgUpload },
emits: ['change', 'update:modelValue'], emits: ['change', 'update:modelValue'],
setup(props, { emit, attrs }) { setup(props, { emit, attrs }) {
const editorRef = ref<any>(null); const editorRef = ref<any>(null);
......
...@@ -8,7 +8,9 @@ ...@@ -8,7 +8,9 @@
:showUploadList="false" :showUploadList="false"
accept=".jpg,.jpeg,.gif,.png,.webp" accept=".jpg,.jpeg,.gif,.png,.webp"
> >
<a-button type="primary">{{ t('component.upload.imgUpload') }}</a-button> <a-button type="primary">
{{ t('component.upload.imgUpload') }}
</a-button>
</Upload> </Upload>
</div> </div>
</template> </template>
...@@ -16,14 +18,13 @@ ...@@ -16,14 +18,13 @@
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import { Upload } from 'ant-design-vue'; import { Upload } from 'ant-design-vue';
import { InboxOutlined } from '@ant-design/icons-vue';
import { useDesign } from '/@/hooks/web/useDesign'; import { useDesign } from '/@/hooks/web/useDesign';
import { useGlobSetting } from '/@/hooks/setting'; import { useGlobSetting } from '/@/hooks/setting';
import { useI18n } from '/@/hooks/web/useI18n'; import { useI18n } from '/@/hooks/web/useI18n';
export default defineComponent({ export default defineComponent({
name: 'TinymceImageUpload', name: 'TinymceImageUpload',
components: { Upload, InboxOutlined }, components: { Upload },
emits: ['uploading', 'done', 'error'], emits: ['uploading', 'done', 'error'],
setup(_, { emit }) { setup(_, { emit }) {
let uploading = false; let uploading = false;
......
...@@ -7,7 +7,9 @@ ...@@ -7,7 +7,9 @@
<Tooltip placement="bottom" v-if="showPreview"> <Tooltip placement="bottom" v-if="showPreview">
<template #title> <template #title>
{{ t('component.upload.uploaded') }} {{ t('component.upload.uploaded') }}
<template v-if="fileListRef.length">{{ fileListRef.length }}</template> <template v-if="fileListRef.length">
{{ fileListRef.length }}
</template>
</template> </template>
<a-button @click="openPreviewModal"> <a-button @click="openPreviewModal">
<Icon icon="bi:eye" /> <Icon icon="bi:eye" />
...@@ -45,6 +47,8 @@ ...@@ -45,6 +47,8 @@
name: 'BasicUpload', name: 'BasicUpload',
components: { UploadModal, UploadPreviewModal, Icon, Tooltip }, components: { UploadModal, UploadPreviewModal, Icon, Tooltip },
props: uploadContainerProps, props: uploadContainerProps,
emits: ['change'],
setup(props, { emit, attrs }) { setup(props, { emit, attrs }) {
const { t } = useI18n(); const { t } = useI18n();
// 上传modal // 上传modal
......
...@@ -33,7 +33,9 @@ ...@@ -33,7 +33,9 @@
:before-upload="beforeUpload" :before-upload="beforeUpload"
class="upload-modal-toolbar__btn" class="upload-modal-toolbar__btn"
> >
<a-button type="primary"> {{ t('component.upload.choose') }} </a-button> <a-button type="primary">
{{ t('component.upload.choose') }}
</a-button>
</Upload> </Upload>
</div> </div>
<FileList :dataSource="fileListRef" :columns="columns" :actionColumn="actionColumn" /> <FileList :dataSource="fileListRef" :columns="columns" :actionColumn="actionColumn" />
...@@ -62,6 +64,7 @@ ...@@ -62,6 +64,7 @@
export default defineComponent({ export default defineComponent({
components: { BasicModal, Upload, Alert, FileList }, components: { BasicModal, Upload, Alert, FileList },
props: basicProps, props: basicProps,
emits: ['change'],
setup(props, { emit }) { setup(props, { emit }) {
const { t } = useI18n(); const { t } = useI18n();
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
export default defineComponent({ export default defineComponent({
components: { BasicModal, FileList }, components: { BasicModal, FileList },
props: previewProps, props: previewProps,
emits: ['list-change'],
setup(props, { emit }) { setup(props, { emit }) {
const [register, { closeModal }] = useModalInner(); const [register, { closeModal }] = useModalInner();
const { t } = useI18n(); const { t } = useI18n();
......
<template> <template>
<div :style="getPlaceholderDomStyle" v-if="getIsShowPlaceholderDom" /> <div :style="getPlaceholderDomStyle" v-if="getIsShowPlaceholderDom"></div>
<div :style="getWrapStyle" :class="getClass"> <div :style="getWrapStyle" :class="getClass">
<LayoutHeader v-if="getShowInsetHeaderRef" /> <LayoutHeader v-if="getShowInsetHeaderRef" />
<MultipleTabs v-if="getShowTabs" /> <MultipleTabs v-if="getShowTabs" />
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
import { REDIRECT_NAME } from '/@/router/constant'; import { REDIRECT_NAME } from '/@/router/constant';
import Icon from '/@/components/Icon'; import Icon from '/@/components/Icon';
import { HomeOutlined } from '@ant-design/icons-vue';
import { PageEnum } from '/@/enums/pageEnum'; import { PageEnum } from '/@/enums/pageEnum';
import { useDesign } from '/@/hooks/web/useDesign'; import { useDesign } from '/@/hooks/web/useDesign';
...@@ -37,7 +36,7 @@ ...@@ -37,7 +36,7 @@
export default defineComponent({ export default defineComponent({
name: 'LayoutBreadcrumb', name: 'LayoutBreadcrumb',
components: { HomeOutlined, Icon, [Breadcrumb.name]: Breadcrumb }, components: { Icon, [Breadcrumb.name]: Breadcrumb },
props: { props: {
theme: propTypes.oneOf(['dark', 'light']), theme: propTypes.oneOf(['dark', 'light']),
}, },
......
...@@ -9,7 +9,9 @@ ...@@ -9,7 +9,9 @@
<div :class="`${prefixCls}__entry`"> <div :class="`${prefixCls}__entry`">
<div :class="`${prefixCls}__header`"> <div :class="`${prefixCls}__header`">
<img :src="headerImg" :class="`${prefixCls}__header-img`" /> <img :src="headerImg" :class="`${prefixCls}__header-img`" />
<p :class="`${prefixCls}__header-name`">{{ getRealName }}</p> <p :class="`${prefixCls}__header-name`">
{{ getRealName }}
</p>
</div> </div>
<BasicForm @register="registerForm" /> <BasicForm @register="registerForm" />
......
...@@ -21,8 +21,12 @@ ...@@ -21,8 +21,12 @@
<template #description> <template #description>
<div> <div>
<div class="description">{{ item.description }}</div> <div class="description">
<div class="datetime">{{ item.datetime }}</div> {{ item.description }}
</div>
<div class="datetime">
{{ item.datetime }}
</div>
</div> </div>
</template> </template>
</a-list-item-meta> </a-list-item-meta>
......
...@@ -33,8 +33,6 @@ ...@@ -33,8 +33,6 @@
// res // res
import Icon from '/@/components/Icon/index';
import { userStore } from '/@/store/modules/user'; import { userStore } from '/@/store/modules/user';
import { DOC_URL } from '/@/settings/siteSetting'; import { DOC_URL } from '/@/settings/siteSetting';
...@@ -58,7 +56,6 @@ ...@@ -58,7 +56,6 @@
Menu, Menu,
MenuItem: createAsyncComponent(() => import('./DropMenuItem.vue')), MenuItem: createAsyncComponent(() => import('./DropMenuItem.vue')),
MenuDivider: Menu.Divider, MenuDivider: Menu.Divider,
Icon,
}, },
props: { props: {
theme: propTypes.oneOf(['dark', 'light']), theme: propTypes.oneOf(['dark', 'light']),
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
}, },
]" ]"
> >
<div class="mix-sidebar" /> <div class="mix-sidebar"></div>
</div> </div>
</Tooltip> </Tooltip>
</template> </template>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
props: { props: {
menuTypeList: { menuTypeList: {
type: Array as PropType<typeof menuTypeList>, type: Array as PropType<typeof menuTypeList>,
defualt: [], defualt: () => [],
}, },
handler: { handler: {
type: Function as PropType<Fn>, type: Function as PropType<Fn>,
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
}, },
def: { def: {
type: String, type: String,
default: '',
}, },
}, },
setup() { setup() {
......
<template> <template>
<div :class="getClass" :style="getDragBarStyle" /> <div :class="getClass" :style="getDragBarStyle"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, computed, unref } from 'vue'; import { defineComponent, computed, unref } from 'vue';
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
v-if="getMenuFixed && !getIsMobile" v-if="getMenuFixed && !getIsMobile"
:style="getHiddenDomStyle" :style="getHiddenDomStyle"
:class="{ hidden: !showClassSideBarRef }" :class="{ hidden: !showClassSideBarRef }"
/> ></div>
<Sider <Sider
ref="sideRef" ref="sideRef"
breakpoint="lg" breakpoint="lg"
......
<template> <template>
<div :class="`${prefixCls}-dom`" :style="getDomStyle" /> <div :class="`${prefixCls}-dom`" :style="getDomStyle"></div>
<div <div
v-click-outside="handleClickOutside" v-click-outside="handleClickOutside"
...@@ -37,7 +37,9 @@ ...@@ -37,7 +37,9 @@
:size="getCollapsed ? 16 : 20" :size="getCollapsed ? 16 : 20"
:icon="item.meta && item.meta.icon" :icon="item.meta && item.meta.icon"
/> />
<p :class="`${prefixCls}-module__name`">{{ t(item.name) }}</p> <p :class="`${prefixCls}-module__name`">
{{ t(item.name) }}
</p>
</li> </li>
</ul> </ul>
</ScrollContainer> </ScrollContainer>
...@@ -156,9 +158,11 @@ ...@@ -156,9 +158,11 @@
); );
const getIsFixed = computed(() => { const getIsFixed = computed(() => {
/* eslint-disable-next-line */
mixSideHasChildren.value = unref(chilrenMenus).length > 0; mixSideHasChildren.value = unref(chilrenMenus).length > 0;
const isFixed = unref(getMixSideFixed) && unref(mixSideHasChildren); const isFixed = unref(getMixSideFixed) && unref(mixSideHasChildren);
if (isFixed) { if (isFixed) {
/* eslint-disable-next-line */
openMenu.value = true; openMenu.value = true;
} }
return isFixed; return isFixed;
......
...@@ -5,9 +5,7 @@ ...@@ -5,9 +5,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, unref, computed } from 'vue'; import { defineComponent, unref, computed } from 'vue';
import { RedoOutlined } from '@ant-design/icons-vue';
import { useDesign } from '/@/hooks/web/useDesign'; import { useDesign } from '/@/hooks/web/useDesign';
import { Tooltip } from 'ant-design-vue';
import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting'; import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
...@@ -15,7 +13,7 @@ ...@@ -15,7 +13,7 @@
export default defineComponent({ export default defineComponent({
name: 'FoldButton', name: 'FoldButton',
components: { RedoOutlined, Tooltip, Icon }, components: { Icon },
setup() { setup() {
const { prefixCls } = useDesign('multiple-tabs-content'); const { prefixCls } = useDesign('multiple-tabs-content');
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<template> <template>
<div> <div>
<router-view> <router-view>
<template v-slot="{ Component, route }"> <template #default="{ Component, route }">
<transition <transition
:name=" :name="
getTransitionName({ getTransitionName({
......
<template> <template>
<div> <div>
<router-view> <router-view>
<template v-slot="{ Component, route }"> <template #default="{ Component, route }">
<transition <transition
:name=" :name="
getTransitionName({ getTransitionName({
......
<template> <template>
<div ref="chartRef" :style="{ height, width }" /> <div ref="chartRef" :style="{ height, width }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, onMounted, ref, Ref } from 'vue'; import { defineComponent, onMounted, ref, Ref } from 'vue';
......
<template> <template>
<div ref="chartRef" :style="{ height, width }" /> <div ref="chartRef" :style="{ height, width }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, onMounted, ref, Ref } from 'vue'; import { defineComponent, onMounted, ref, Ref } from 'vue';
......
<template> <template>
<div ref="chartRef" :style="{ height, width }" /> <div ref="chartRef" :style="{ height, width }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, onMounted, ref, Ref } from 'vue'; import { defineComponent, onMounted, ref, Ref } from 'vue';
......
...@@ -2,14 +2,18 @@ ...@@ -2,14 +2,18 @@
<div class="grow-card"> <div class="grow-card">
<div class="grow-card-header"> <div class="grow-card-header">
<div class="grow-card__info"> <div class="grow-card__info">
<p class="grow-card__title">{{ info.title }}</p> <p class="grow-card__title">
{{ info.title }}
</p>
<CountTo prefix="$" :startVal="1" :endVal="info.price" /> <CountTo prefix="$" :startVal="1" :endVal="info.price" />
</div> </div>
<img :src="info.icon" /> <img :src="info.icon" />
</div> </div>
<div class="grow-card-footer" :class="{ 'is-up': info.up }"> <div class="grow-card-footer" :class="{ 'is-up': info.up }">
<Statistic :value="info.percent"> <Statistic :value="info.percent">
<template #prefix> <img :src="info.up ? riseSvg : downSvg" /> </template> <template #prefix>
<img :src="info.up ? riseSvg : downSvg" />
</template>
</Statistic> </Statistic>
<span class="grow-card__mom">{{ info.mom }}</span> <span class="grow-card__mom">{{ info.mom }}</span>
</div> </div>
......
<template> <template>
<div ref="chartRef" :style="{ height, width }" /> <div ref="chartRef" :style="{ height, width }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, onMounted, ref, Ref } from 'vue'; import { defineComponent, onMounted, ref, Ref } from 'vue';
......
<template> <template>
<div class="analysis p-4"> <div class="p-4 analysis">
<a-row class="pl-2"> <a-row class="pl-2">
<template v-for="item in growCardList" :key="item.title"> <template v-for="item in growCardList" :key="item.title">
<ACol :sm="24" :md="12" :lg="6"> <a-col :sm="24" :md="12" :lg="6">
<GrowCard :info="item" /> <GrowCard :info="item" />
</ACol> </a-col>
</template> </template>
</a-row> </a-row>
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import GrowCard from './components/GrowCard.vue'; import GrowCard from './components/GrowCard.vue';
import TrendLine from './components/TrendLine.vue';
import AnalysisLine from './components/AnalysisLine.vue'; import AnalysisLine from './components/AnalysisLine.vue';
import AnalysisPie from './components/AnalysisPie.vue'; import AnalysisPie from './components/AnalysisPie.vue';
import AnalysisBar from './components/AnalysisBar.vue'; import AnalysisBar from './components/AnalysisBar.vue';
...@@ -55,7 +54,6 @@ ...@@ -55,7 +54,6 @@
components: { components: {
GrowCard, GrowCard,
CollapseContainer, CollapseContainer,
TrendLine,
AnalysisLine, AnalysisLine,
AnalysisPie, AnalysisPie,
AnalysisBar, AnalysisBar,
......
...@@ -15,26 +15,26 @@ ...@@ -15,26 +15,26 @@
<div class="circle"></div> <div class="circle"></div>
<div class="plastic"> <div class="plastic">
<div class="plastic__g"> <div class="plastic__g">
<div class="plastic__item" /> <div class="plastic__item"></div>
<div class="plastic__item" /> <div class="plastic__item"></div>
<div class="plastic__item" /> <div class="plastic__item"></div>
<div class="plastic__item" /> <div class="plastic__item"></div>
<div class="plastic__item" /> <div class="plastic__item"></div>
<div class="plastic__item" /> <div class="plastic__item"></div>
<div class="plastic__item" /> <div class="plastic__item"></div>
<div class="plastic__item" /> <div class="plastic__item"></div>
</div> </div>
</div> </div>
<div class="line"> <div class="line">
<div class="line__item" /> <div class="line__item"></div>
<div class="line__item" /> <div class="line__item"></div>
<div class="line__item" /> <div class="line__item"></div>
<div class="line__item" /> <div class="line__item"></div>
<div class="line__item" /> <div class="line__item"></div>
<div class="line__item" /> <div class="line__item"></div>
<div class="line__item" /> <div class="line__item"></div>
<div class="line__item" /> <div class="line__item"></div>
<div class="line__item" /> <div class="line__item"></div>
</div> </div>
</div> </div>
<div class="clouds"> <div class="clouds">
...@@ -43,29 +43,29 @@ ...@@ -43,29 +43,29 @@
<div class="cloud__item"></div> <div class="cloud__item"></div>
</div> </div>
<div class="cloud"> <div class="cloud">
<div class="cloud__item" /> <div class="cloud__item"></div>
<div class="cloud__item" /> <div class="cloud__item"></div>
</div> </div>
<div class="cloud"> <div class="cloud">
<div class="cloud__item" /> <div class="cloud__item"></div>
<div class="cloud__item" /> <div class="cloud__item"></div>
</div> </div>
<div class="bird" /> <div class="bird"></div>
</div> </div>
<div class="birds"> <div class="birds">
<div class="bird" /> <div class="bird"></div>
<div class="bird" /> <div class="bird"></div>
</div> </div>
<div class="tree"> <div class="tree">
<div class="tree__item" /> <div class="tree__item"></div>
<div class="tree__item" /> <div class="tree__item"></div>
<div class="tree__item" /> <div class="tree__item"></div>
</div> </div>
<div class="bush"> <div class="bush">
<div class="bush__item" /> <div class="bush__item"></div>
<div class="bush__item" /> <div class="bush__item"></div>
</div> </div>
<div class="dot" /> <div class="dot"></div>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
......
...@@ -10,7 +10,9 @@ ...@@ -10,7 +10,9 @@
</template> </template>
<template #description> <template #description>
<div class="news-list__item-desc"> <div class="news-list__item-desc">
<div class="news-list__item-time mb-1"> {{ item.sendTime }}</div> <div class="news-list__item-time mb-1">
{{ item.sendTime }}
</div>
<div class="news-list__item-title mb-1"> <div class="news-list__item-title mb-1">
<span class="news-list__item-light">{{ item.sender }}&nbsp;</span>申请迭代 <span class="news-list__item-light">{{ item.sender }}&nbsp;</span>申请迭代
<span class="news-list__item-light">&nbsp;{{ item.title }}&nbsp;</span>发布 <span class="news-list__item-light">&nbsp;{{ item.title }}&nbsp;</span>发布
......
<template> <template>
<Row class="prod-total"> <a-row class="prod-total">
<template v-for="(item, index) in wokbProd" :key="item.type"> <template v-for="(item, index) in wokbProd" :key="item.type">
<Col :xs="12" :sm="6" class="prod-total__item" :class="`prod-total__item-${index}`"> <a-col :xs="12" :sm="6" class="prod-total__item" :class="`prod-total__item-${index}`">
<div class="img" :class="`prod-total__item-${index}-img`" /> <div class="img" :class="`prod-total__item-${index}-img`"></div>
<div>{{ item.amount }}</div> <div>{{ item.amount }}</div>
<span>{{ item.type }}</span> <span>{{ item.type }}</span>
</Col> </a-col>
</template> </template>
</Row> </a-row>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
import { wokbProd } from '../data'; import { wokbProd } from '../data';
// import {ProdTypeEnum} from '@/api/dashboard/model/wokbModel' // import {ProdTypeEnum} from '@/api/dashboard/model/wokbModel'
export default defineComponent({ export default defineComponent({
components: { Row, Col }, components: { [Row.name]: Row, [Col.name]: Col },
setup() { setup() {
return { wokbProd }; return { wokbProd };
}, },
......
...@@ -3,23 +3,23 @@ ...@@ -3,23 +3,23 @@
<template #action> <template #action>
<a-button size="small" type="link"> 新建 </a-button> <a-button size="small" type="link"> 新建 </a-button>
</template> </template>
<Row> <a-row>
<template v-for="item in shortCuts" :key="item.img"> <template v-for="item in shortCuts" :key="item.img">
<Col :span="8" class="shortcuts__item p-3"> <a-col :span="8" class="p-3 shortcuts__item">
<img :src="item.img" class="shortcuts__item-img mb-2" /> <img :src="item.img" class="mb-2 shortcuts__item-img" />
<br /> <br />
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
</Col> </a-col>
</template> </template>
<Col :span="8" class="shortcuts__item p-3"> <a-col :span="8" class="p-3 shortcuts__item">
<span class="shortcuts__item-all mb-2"> <span class="mb-2 shortcuts__item-all">
<RightOutlined /> <RightOutlined />
</span> </span>
<br /> <br />
<span>查看全部</span> <span>查看全部</span>
</Col> </a-col>
</Row> </a-row>
</CollapseContainer> </CollapseContainer>
</template> </template>
<script lang="ts"> <script lang="ts">
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
}, },
]; ];
export default defineComponent({ export default defineComponent({
components: { Row, Col, CollapseContainer, RightOutlined }, components: { [Row.name]: Row, [Col.name]: Col, CollapseContainer, RightOutlined },
setup() { setup() {
return { shortCuts }; return { shortCuts };
}, },
......
...@@ -23,14 +23,14 @@ ...@@ -23,14 +23,14 @@
</template> </template>
</ListItemMeta> </ListItemMeta>
<a-button type="link"> <a-button type="link">
<Tag color="blue">待审批</Tag> <Tag color="blue"> 待审批 </Tag>
</a-button> </a-button>
</ListItem> </ListItem>
</template> </template>
</List> </List>
<div class="todo-list__all"> <div class="todo-list__all">
<Tooltip placement="topRight"> <Tooltip placement="topRight">
<template #title>查看更多</template> <template #title> 查看更多 </template>
<EllipsisOutlined /> <EllipsisOutlined />
</Tooltip> </Tooltip>
</div> </div>
......
<template> <template>
<CollapseContainer title="销售统计" :canExpan="false"> <CollapseContainer title="销售统计" :canExpan="false">
<div ref="chartRef" :style="{ width: '100%' }" /> <div ref="chartRef" :style="{ width: '100%' }"></div>
</CollapseContainer> </CollapseContainer>
</template> </template>
<script lang="ts"> <script lang="ts">
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
content=" 基础组件依赖于ant-design-vue,组件库已有的基础组件,项目中不会再次进行demo展示(二次封装组件除外)" content=" 基础组件依赖于ant-design-vue,组件库已有的基础组件,项目中不会再次进行demo展示(二次封装组件除外)"
> >
<template #rightFooter> <template #rightFooter>
<a-button type="primary">确认</a-button> <a-button type="primary"> 确认 </a-button>
</template> </template>
<div class="my-2"> <div class="my-2">
<h3>success</h3> <h3>success</h3>
<a-button color="success">成功</a-button> <a-button color="success"> 成功 </a-button>
<a-button color="success" class="ml-2" disabled> 禁用 </a-button> <a-button color="success" class="ml-2" disabled> 禁用 </a-button>
<a-button color="success" class="ml-2" loading> loading </a-button> <a-button color="success" class="ml-2" loading> loading </a-button>
<a-button color="success" type="link" class="ml-2"> link </a-button> <a-button color="success" type="link" class="ml-2"> link </a-button>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div class="my-2"> <div class="my-2">
<h3>warning</h3> <h3>warning</h3>
<a-button color="warning">警告</a-button> <a-button color="warning"> 警告 </a-button>
<a-button color="warning" class="ml-2" disabled> 禁用 </a-button> <a-button color="warning" class="ml-2" disabled> 禁用 </a-button>
<a-button color="warning" class="ml-2" loading> loading </a-button> <a-button color="warning" class="ml-2" loading> loading </a-button>
<a-button color="warning" type="link" class="ml-2"> link </a-button> <a-button color="warning" type="link" class="ml-2"> link </a-button>
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<div class="my-2"> <div class="my-2">
<h3>error</h3> <h3>error</h3>
<a-button color="error">错误</a-button> <a-button color="error"> 错误 </a-button>
<a-button color="error" class="ml-2" disabled> 禁用 </a-button> <a-button color="error" class="ml-2" disabled> 禁用 </a-button>
<a-button color="error" class="ml-2" loading> loading </a-button> <a-button color="error" class="ml-2" loading> loading </a-button>
<a-button color="error" type="link" class="ml-2"> link </a-button> <a-button color="error" type="link" class="ml-2"> link </a-button>
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<div class="my-2"> <div class="my-2">
<h3>ghost</h3> <h3>ghost</h3>
<a-button ghost>幽灵</a-button> <a-button ghost> 幽灵 </a-button>
<a-button ghost class="ml-2" disabled> 禁用 </a-button> <a-button ghost class="ml-2" disabled> 禁用 </a-button>
<a-button ghost class="ml-2" loading> loading </a-button> <a-button ghost class="ml-2" loading> loading </a-button>
<a-button ghost type="link" class="ml-2"> link </a-button> <a-button ghost type="link" class="ml-2"> link </a-button>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<div class="my-2"> <div class="my-2">
<h3>primary</h3> <h3>primary</h3>
<a-button type="primary" preIcon="mdi:page-next-outline">主按钮</a-button> <a-button type="primary" preIcon="mdi:page-next-outline"> 主按钮 </a-button>
<a-button type="primary" class="ml-2" disabled> 禁用 </a-button> <a-button type="primary" class="ml-2" disabled> 禁用 </a-button>
<a-button type="primary" class="ml-2" loading> loading </a-button> <a-button type="primary" class="ml-2" loading> loading </a-button>
<a-button type="link" class="ml-2"> link </a-button> <a-button type="link" class="ml-2"> link </a-button>
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
<div class="my-2"> <div class="my-2">
<h3>default</h3> <h3>default</h3>
<a-button type="default">默认</a-button> <a-button type="default"> 默认 </a-button>
<a-button type="default" class="ml-2" disabled> 禁用 </a-button> <a-button type="default" class="ml-2" disabled> 禁用 </a-button>
<a-button type="default" class="ml-2" loading> loading </a-button> <a-button type="default" class="ml-2" loading> loading </a-button>
<a-button type="link" class="ml-2"> link </a-button> <a-button type="link" class="ml-2"> link </a-button>
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
<div class="my-2"> <div class="my-2">
<h3>dashed</h3> <h3>dashed</h3>
<a-button type="dashed">dashed</a-button> <a-button type="dashed"> dashed </a-button>
<a-button type="dashed" class="ml-2" disabled> 禁用 </a-button> <a-button type="dashed" class="ml-2" disabled> 禁用 </a-button>
<a-button type="dashed" class="ml-2" loading> loading </a-button> <a-button type="dashed" class="ml-2" loading> loading </a-button>
</div> </div>
......
<template> <template>
<BasicDrawer v-bind="$attrs" @register="register" title="Drawer Title" width="50%"> <BasicDrawer v-bind="$attrs" @register="register" title="Drawer Title" width="50%">
Drawer Info. Drawer Info.
<a-button type="primary" @click="closeDrawer">内部关闭drawer</a-button> <a-button type="primary" @click="closeDrawer"> 内部关闭drawer </a-button>
</BasicDrawer> </BasicDrawer>
</template> </template>
<script lang="ts"> <script lang="ts">
......
<template> <template>
<BasicDrawer v-bind="$attrs" title="Modal Title" width="50%" showFooter @ok="handleOk"> <BasicDrawer v-bind="$attrs" title="Modal Title" width="50%" showFooter @ok="handleOk">
<p class="h-20" v-for="index in 40" :key="index">根据屏幕高度自适应</p> <p class="h-20" v-for="index in 40" :key="index"> 根据屏幕高度自适应 </p>
<template #insertFooter> <template #insertFooter>
<a-button> btn</a-button> <a-button> btn</a-button>
</template> </template>
......
<template> <template>
<BasicDrawer v-bind="$attrs" :isDetail="true" title="Drawer Title5"> <BasicDrawer v-bind="$attrs" :isDetail="true" title="Drawer Title5">
<p class="h-20">Content Message</p> <p class="h-20"> Content Message </p>
<template #titleToolbar> toolbar </template> <template #titleToolbar> toolbar </template>
</BasicDrawer> </BasicDrawer>
</template> </template>
......
<template> <template>
<PageWrapper title="抽屉组件使用示例"> <PageWrapper title="抽屉组件使用示例">
<Alert message="使用 useDrawer 进行抽屉操作" show-icon /> <Alert message="使用 useDrawer 进行抽屉操作" show-icon />
<a-button type="primary" class="my-4" @click="openDrawerLoading">打开Drawer</a-button> <a-button type="primary" class="my-4" @click="openDrawerLoading"> 打开Drawer </a-button>
<Alert message="内外同时控制显示隐藏" show-icon /> <Alert message="内外同时控制显示隐藏" show-icon />
<a-button type="primary" class="my-4" @click="openDrawer2(true)">打开Drawer</a-button> <a-button type="primary" class="my-4" @click="openDrawer2(true)"> 打开Drawer </a-button>
<Alert message="自适应高度/显示footer" show-icon /> <Alert message="自适应高度/显示footer" show-icon />
<a-button type="primary" class="my-4" @click="openDrawer3(true)">打开Drawer</a-button> <a-button type="primary" class="my-4" @click="openDrawer3(true)"> 打开Drawer </a-button>
<Alert <Alert
message="内外数据交互,外部通过 transferModalData 发送,内部通过 receiveDrawerDataRef 接收。该数据具有响应式" message="内外数据交互,外部通过 transferModalData 发送,内部通过 receiveDrawerDataRef 接收。该数据具有响应式"
show-icon show-icon
/> />
<a-button type="primary" class="my-4" @click="send">打开Drawer并传递数据</a-button> <a-button type="primary" class="my-4" @click="send"> 打开Drawer并传递数据 </a-button>
<Alert message="详情页模式" show-icon /> <Alert message="详情页模式" show-icon />
<a-button type="primary" class="my-4" @click="openDrawer5(true)">打开详情Drawer</a-button> <a-button type="primary" class="my-4" @click="openDrawer5(true)"> 打开详情Drawer </a-button>
<Drawer1 @register="register1" /> <Drawer1 @register="register1" />
<Drawer2 @register="register2" /> <Drawer2 @register="register2" />
<Drawer3 @register="register3" /> <Drawer3 @register="register3" />
......
...@@ -13,13 +13,12 @@ ...@@ -13,13 +13,12 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import { Skeleton } from 'ant-design-vue';
import TargetContent from './TargetContent.vue'; import TargetContent from './TargetContent.vue';
import { LazyContainer } from '/@/components/Container/index'; import { LazyContainer } from '/@/components/Container/index';
import { PageWrapper } from '/@/components/Page'; import { PageWrapper } from '/@/components/Page';
export default defineComponent({ export default defineComponent({
components: { LazyContainer, TargetContent, Skeleton, PageWrapper }, components: { LazyContainer, TargetContent, PageWrapper },
}); });
</script> </script>
<style lang="less"> <style lang="less">
......
<template> <template>
<PageWrapper v-loading="loadingRef" loading-tip="加载中..." title="Loading组件示例"> <PageWrapper v-loading="loadingRef" loading-tip="加载中..." title="Loading组件示例">
<a-alert message="组件方式" /> <a-alert message="组件方式" />
<a-button class="my-4 mr-4" type="primary" @click="openCompFullLoading">全屏 Loading</a-button> <a-button class="my-4 mr-4" type="primary" @click="openCompFullLoading">
<a-button class="my-4" type="primary" @click="openCompAbsolute">容器内 Loading</a-button> 全屏 Loading
</a-button>
<a-button class="my-4" type="primary" @click="openCompAbsolute"> 容器内 Loading </a-button>
<Loading :loading="loading" :absolute="absolute" :tip="tip" /> <Loading :loading="loading" :absolute="absolute" :tip="tip" />
<a-alert message="函数方式" /> <a-alert message="函数方式" />
<a-button class="my-4 mr-4" type="primary" @click="openFnFullLoading">全屏 Loading</a-button> <a-button class="my-4 mr-4" type="primary" @click="openFnFullLoading"> 全屏 Loading </a-button>
<a-button class="my-4" type="primary" @click="openFnWrapLoading">容器内 Loading</a-button> <a-button class="my-4" type="primary" @click="openFnWrapLoading"> 容器内 Loading </a-button>
<a-alert message="指令方式" /> <a-alert message="指令方式" />
<a-button class="my-4 mr-4" type="primary" @click="openDirectiveLoading"> <a-button class="my-4 mr-4" type="primary" @click="openDirectiveLoading">
......
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
title="Modal Title" title="Modal Title"
:helpMessage="['提示1', '提示2']" :helpMessage="['提示1', '提示2']"
> >
<a-button type="primary" @click="closeModal" class="mr-2">从内部关闭弹窗</a-button> <a-button type="primary" @click="closeModal" class="mr-2"> 从内部关闭弹窗 </a-button>
<a-button type="primary" @click="setModalProps">从内部修改title</a-button> <a-button type="primary" @click="setModalProps"> 从内部修改title </a-button>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts"> <script lang="ts">
......
<template> <template>
<BasicModal v-bind="$attrs" title="Modal Title" :helpMessage="['提示1', '提示2']" width="700px"> <BasicModal v-bind="$attrs" title="Modal Title" :helpMessage="['提示1', '提示2']" width="700px">
<p class="h-20" v-for="index in 20" :key="index">根据屏幕高度自适应</p> <p class="h-20" v-for="index in 20" :key="index"> 根据屏幕高度自适应 </p>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts"> <script lang="ts">
......
...@@ -5,20 +5,20 @@ ...@@ -5,20 +5,20 @@
参数进行控制是否可以拖动/全屏" 参数进行控制是否可以拖动/全屏"
show-icon show-icon
/> />
<a-button type="primary" class="my-4" @click="openModalLoading" <a-button type="primary" class="my-4" @click="openModalLoading">
>打开弹窗 默认可以拖动/全屏</a-button 打开弹窗 默认可以拖动/全屏
> </a-button>
<Alert message="内外同时同时显示隐藏" show-icon /> <Alert message="内外同时同时显示隐藏" show-icon />
<a-button type="primary" class="my-4" @click="openModal2">打开弹窗</a-button> <a-button type="primary" class="my-4" @click="openModal2"> 打开弹窗 </a-button>
<Alert message="自适应高度" show-icon /> <Alert message="自适应高度" show-icon />
<a-button type="primary" class="my-4" @click="openModal3">打开弹窗</a-button> <a-button type="primary" class="my-4" @click="openModal3"> 打开弹窗 </a-button>
<Alert <Alert
message="内外数据交互,外部通过 transferModalData 发送,内部通过 receiveDrawerDataRef 接收。该数据具有响应式" message="内外数据交互,外部通过 transferModalData 发送,内部通过 receiveDrawerDataRef 接收。该数据具有响应式"
show-icon show-icon
/> />
<a-button type="primary" class="my-4" @click="send">打开弹窗并传递数据</a-button> <a-button type="primary" class="my-4" @click="send"> 打开弹窗并传递数据 </a-button>
<Modal1 @register="register1" /> <Modal1 @register="register1" />
<Modal2 @register="register2" /> <Modal2 @register="register2" />
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<CollapseContainer title="下载示例" class="text-center qrcode-demo-item"> <CollapseContainer title="下载示例" class="text-center qrcode-demo-item">
<QrCode :value="qrCodeUrl" ref="qrRef" :logo="LogoImg" /> <QrCode :value="qrCodeUrl" ref="qrRef" :logo="LogoImg" />
<a-button class="mb-2" type="primary" @click="download"> 下载 </a-button> <a-button class="mb-2" type="primary" @click="download"> 下载 </a-button>
<div class="msg">(在线logo会导致图片跨域,需要下载图片需要自行解决跨域问题)</div> <div class="msg"> (在线logo会导致图片跨域,需要下载图片需要自行解决跨域问题) </div>
</CollapseContainer> </CollapseContainer>
<CollapseContainer title="配置大小示例" class="text-center qrcode-demo-item"> <CollapseContainer title="配置大小示例" class="text-center qrcode-demo-item">
......
<template> <template>
<PageWrapper title="滚动组件函数示例" content="基于el-scrollbar"> <PageWrapper title="滚动组件函数示例" content="基于el-scrollbar">
<div class="my-4"> <div class="my-4">
<a-button @click="scrollTo(100)" class="mr-2">滚动到100px位置</a-button> <a-button @click="scrollTo(100)" class="mr-2"> 滚动到100px位置 </a-button>
<a-button @click="scrollTo(800)" class="mr-2">滚动到800px位置</a-button> <a-button @click="scrollTo(800)" class="mr-2"> 滚动到800px位置 </a-button>
<a-button @click="scrollTo(0)" class="mr-2">滚动到顶部</a-button> <a-button @click="scrollTo(0)" class="mr-2"> 滚动到顶部 </a-button>
<a-button @click="scrollBottom()" class="mr-2">滚动到底部</a-button> <a-button @click="scrollBottom()" class="mr-2"> 滚动到底部 </a-button>
</div> </div>
<div class="scroll-wrap"> <div class="scroll-wrap">
<ScrollContainer class="mt-4" ref="scrollRef"> <ScrollContainer class="mt-4" ref="scrollRef">
<ul class="p-3"> <ul class="p-3">
<template v-for="index in 100" :key="index"> <template v-for="index in 100" :key="index">
<li class="p-2" :style="{ border: '1px solid #eee' }">{{ index }}</li> <li class="p-2" :style="{ border: '1px solid #eee' }">
{{ index }}
</li>
</template> </template>
</ul> </ul>
</ScrollContainer> </ScrollContainer>
...@@ -19,12 +21,11 @@ ...@@ -19,12 +21,11 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, unref } from 'vue'; import { defineComponent, ref, unref } from 'vue';
import { CollapseContainer } from '/@/components/Container/index';
import { ScrollContainer, ScrollActionType } from '/@/components/Container/index'; import { ScrollContainer, ScrollActionType } from '/@/components/Container/index';
import { PageWrapper } from '/@/components/Page'; import { PageWrapper } from '/@/components/Page';
export default defineComponent({ export default defineComponent({
components: { CollapseContainer, ScrollContainer, PageWrapper }, components: { ScrollContainer, PageWrapper },
setup() { setup() {
const scrollRef = ref<Nullable<ScrollActionType>>(null); const scrollRef = ref<Nullable<ScrollActionType>>(null);
const getScroll = () => { const getScroll = () => {
......
...@@ -3,8 +3,10 @@ ...@@ -3,8 +3,10 @@
<Divider>基础滚动示例</Divider> <Divider>基础滚动示例</Divider>
<div class="virtual-scroll-demo-wrap"> <div class="virtual-scroll-demo-wrap">
<VScroll :itemHeight="41" :items="data" :height="300" :width="300"> <VScroll :itemHeight="41" :items="data" :height="300" :width="300">
<template v-slot="{ item }"> <template #default="{ item }">
<div class="virtual-scroll-demo__item">{{ item.title }}</div> <div class="virtual-scroll-demo__item">
{{ item.title }}
</div>
</template> </template>
</VScroll> </VScroll>
</div> </div>
...@@ -12,8 +14,10 @@ ...@@ -12,8 +14,10 @@
<Divider>即使不可见,也预先加载50条数据,防止空白</Divider> <Divider>即使不可见,也预先加载50条数据,防止空白</Divider>
<div class="virtual-scroll-demo-wrap"> <div class="virtual-scroll-demo-wrap">
<VScroll :itemHeight="41" :items="data" :height="300" :width="300" :bench="50"> <VScroll :itemHeight="41" :items="data" :height="300" :width="300" :bench="50">
<template v-slot="{ item }"> <template #default="{ item }">
<div class="virtual-scroll-demo__item">{{ item.title }}</div> <div class="virtual-scroll-demo__item">
{{ item.title }}
</div>
</template> </template>
</VScroll> </VScroll>
</div> </div>
......
...@@ -4,7 +4,9 @@ ...@@ -4,7 +4,9 @@
<ScrollContainer class="mt-4"> <ScrollContainer class="mt-4">
<ul class="p-3"> <ul class="p-3">
<template v-for="index in 100" :key="index"> <template v-for="index in 100" :key="index">
<li class="p-2" :style="{ border: '1px solid #eee' }">{{ index }}</li> <li class="p-2" :style="{ border: '1px solid #eee' }">
{{ index }}
</li>
</template> </template>
</ul> </ul>
</ScrollContainer> </ScrollContainer>
...@@ -13,12 +15,11 @@ ...@@ -13,12 +15,11 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import { CollapseContainer } from '/@/components/Container/index';
import { ScrollContainer } from '/@/components/Container/index'; import { ScrollContainer } from '/@/components/Container/index';
import { PageWrapper } from '/@/components/Page'; import { PageWrapper } from '/@/components/Page';
export default defineComponent({ export default defineComponent({
components: { CollapseContainer, ScrollContainer, PageWrapper }, components: { ScrollContainer, PageWrapper },
}); });
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
<template> <template>
<PageWrapper title="上传组件示例"> <PageWrapper title="上传组件示例">
<a-alert message="基础示例" class="my-5"></a-alert> <a-alert message="基础示例" class="my-5" />
<BasicUpload :maxSize="20" :maxNumber="10" @change="handleChange" :api="uploadApi" /> <BasicUpload :maxSize="20" :maxNumber="10" @change="handleChange" :api="uploadApi" />
<a-alert message="嵌入表单,加入表单校验" class="my-5"></a-alert> <a-alert message="嵌入表单,加入表单校验" class="my-5" />
<BasicForm @register="register" /> <BasicForm @register="register" />
</PageWrapper> </PageWrapper>
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
<PageWrapper title="拖动校验示例"> <PageWrapper title="拖动校验示例">
<div class="flex justify-center p-4 items-center bg-gray-700"> <div class="flex justify-center p-4 items-center bg-gray-700">
<BasicDragVerify ref="el1" @success="handleSuccess" /> <BasicDragVerify ref="el1" @success="handleSuccess" />
<a-button type="primary" class="ml-2" @click="handleBtnClick(el1)">还原</a-button> <a-button type="primary" class="ml-2" @click="handleBtnClick(el1)"> 还原 </a-button>
</div> </div>
<div class="flex justify-center p-4 items-center bg-gray-700"> <div class="flex justify-center p-4 items-center bg-gray-700">
<BasicDragVerify ref="el2" @success="handleSuccess" circle /> <BasicDragVerify ref="el2" @success="handleSuccess" circle />
<a-button type="primary" class="ml-2" @click="handleBtnClick(el2)">还原</a-button> <a-button type="primary" class="ml-2" @click="handleBtnClick(el2)"> 还原 </a-button>
</div> </div>
<div class="flex justify-center p-4 items-center bg-gray-700"> <div class="flex justify-center p-4 items-center bg-gray-700">
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
background: '#018ffb', background: '#018ffb',
}" }"
/> />
<a-button type="primary" class="ml-2" @click="handleBtnClick(el3)">还原</a-button> <a-button type="primary" class="ml-2" @click="handleBtnClick(el3)"> 还原 </a-button>
</div> </div>
<div class="flex justify-center p-4 items-center bg-gray-700"> <div class="flex justify-center p-4 items-center bg-gray-700">
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<RightOutlined v-else /> <RightOutlined v-else />
</template> </template>
</BasicDragVerify> </BasicDragVerify>
<a-button type="primary" class="ml-2" @click="handleBtnClick(el4)">还原</a-button> <a-button type="primary" class="ml-2" @click="handleBtnClick(el4)"> 还原 </a-button>
</div> </div>
<div class="flex justify-center p-4 items-center bg-gray-700"> <div class="flex justify-center p-4 items-center bg-gray-700">
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</div> </div>
</template> </template>
</BasicDragVerify> </BasicDragVerify>
<a-button type="primary" class="ml-2" @click="handleBtnClick(el5)">还原</a-button> <a-button type="primary" class="ml-2" @click="handleBtnClick(el5)"> 还原 </a-button>
</div> </div>
</PageWrapper> </PageWrapper>
</template> </template>
......
<template> <template>
<div ref="chartRef" :style="{ height, width }" /> <div ref="chartRef" :style="{ height, width }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, PropType, ref, Ref, onMounted } from 'vue'; import { defineComponent, PropType, ref, Ref, onMounted } from 'vue';
......
<template> <template>
<div ref="chartRef" :style="{ height, width }" /> <div ref="chartRef" :style="{ height, width }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, PropType, ref, Ref, onMounted } from 'vue'; import { defineComponent, PropType, ref, Ref, onMounted } from 'vue';
......
<template> <template>
<div ref="chartRef" :style="{ height, width }" /> <div ref="chartRef" :style="{ height, width }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, PropType, ref, Ref, onMounted } from 'vue'; import { defineComponent, PropType, ref, Ref, onMounted } from 'vue';
......
<template> <template>
<div ref="chartRef" :style="{ width: '100%' }" /> <div ref="chartRef" :style="{ width: '100%' }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, Ref, onMounted } from 'vue'; import { defineComponent, ref, Ref, onMounted } from 'vue';
......
<template> <template>
<div ref="chartRef" :style="{ width: '100%' }" /> <div ref="chartRef" :style="{ width: '100%' }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, Ref, onMounted } from 'vue'; import { defineComponent, ref, Ref, onMounted } from 'vue';
......
<template> <template>
<div ref="chartRef" :style="{ width: '100%' }" /> <div ref="chartRef" :style="{ width: '100%' }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, Ref, onMounted } from 'vue'; import { defineComponent, ref, Ref, onMounted } from 'vue';
......
<template> <template>
<div ref="chartRef" :style="{ width: '100%' }" /> <div ref="chartRef" :style="{ width: '100%' }"></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, Ref, onMounted } from 'vue'; import { defineComponent, ref, Ref, onMounted } from 'vue';
......
...@@ -6,8 +6,7 @@ ...@@ -6,8 +6,7 @@
:schemas="schemas" :schemas="schemas"
:actionColOptions="{ span: 24 }" :actionColOptions="{ span: 24 }"
@submit="handleSubmit" @submit="handleSubmit"
> />
</BasicForm>
</CollapseContainer> </CollapseContainer>
</PageWrapper> </PageWrapper>
</template> </template>
......
<template> <template>
<PageWrapper title="MarkDown组件示例"> <PageWrapper title="MarkDown组件示例">
<a-button @click="toggleTheme" class="mb-2" type="primary">黑暗主题</a-button> <a-button @click="toggleTheme" class="mb-2" type="primary"> 黑暗主题 </a-button>
<MarkDown :value="value" @change="handleChange" ref="markDownRef" /> <MarkDown :value="value" @change="handleChange" ref="markDownRef" />
</PageWrapper> </PageWrapper>
</template> </template>
......
...@@ -6,8 +6,7 @@ ...@@ -6,8 +6,7 @@
:schemas="schemas" :schemas="schemas"
:actionColOptions="{ span: 24 }" :actionColOptions="{ span: 24 }"
@submit="handleSubmit" @submit="handleSubmit"
> />
</BasicForm>
</CollapseContainer> </CollapseContainer>
</PageWrapper> </PageWrapper>
</template> </template>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<PageWrapper title="导出示例" content="根据数组格式的数据进行导出"> <PageWrapper title="导出示例" content="根据数组格式的数据进行导出">
<BasicTable title="基础表格" :columns="columns" :dataSource="data"> <BasicTable title="基础表格" :columns="columns" :dataSource="data">
<template #toolbar> <template #toolbar>
<a-button @click="aoaToExcel">导出</a-button> <a-button @click="aoaToExcel"> 导出 </a-button>
</template> </template>
</BasicTable> </BasicTable>
</PageWrapper> </PageWrapper>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<PageWrapper title="导出示例" content="可以选择导出格式"> <PageWrapper title="导出示例" content="可以选择导出格式">
<BasicTable title="基础表格" :columns="columns" :dataSource="data"> <BasicTable title="基础表格" :columns="columns" :dataSource="data">
<template #toolbar> <template #toolbar>
<a-button @click="openModal">导出</a-button> <a-button @click="openModal"> 导出 </a-button>
</template> </template>
</BasicTable> </BasicTable>
<ExpExcelModel @register="register" @success="defaultHeader" /> <ExpExcelModel @register="register" @success="defaultHeader" />
......
<template> <template>
<PageWrapper title="excel数据导入示例"> <PageWrapper title="excel数据导入示例">
<ImpExcel @success="loadDataSuccess"> <ImpExcel @success="loadDataSuccess">
<a-button class="m-3">导入Excel</a-button> <a-button class="m-3"> 导入Excel </a-button>
</ImpExcel> </ImpExcel>
<BasicTable <BasicTable
v-for="(table, index) in tableListRef" v-for="(table, index) in tableListRef"
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:title="table.title" :title="table.title"
:columns="table.columns" :columns="table.columns"
:dataSource="table.dataSource" :dataSource="table.dataSource"
></BasicTable> />
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts"> <script lang="ts">
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<PageWrapper title="导出示例" content="根据JSON格式的数据进行导出"> <PageWrapper title="导出示例" content="根据JSON格式的数据进行导出">
<BasicTable title="基础表格" :columns="columns" :dataSource="data"> <BasicTable title="基础表格" :columns="columns" :dataSource="data">
<template #toolbar> <template #toolbar>
<a-button @click="defaultHeader">导出:默认头部</a-button> <a-button @click="defaultHeader"> 导出:默认头部 </a-button>
<a-button @click="customHeader">导出:自定义头部</a-button> <a-button @click="customHeader"> 导出:自定义头部 </a-button>
</template> </template>
</BasicTable> </BasicTable>
</PageWrapper> </PageWrapper>
......
<template> <template>
<PageWrapper title="层级面包屑示例" content="子级页面面包屑会添加到当前层级后面"> <PageWrapper title="层级面包屑示例" content="子级页面面包屑会添加到当前层级后面">
<router-link to="/feat/breadcrumb/children/childrenDetail">进入子级详情页</router-link> <router-link to="/feat/breadcrumb/children/childrenDetail"> 进入子级详情页 </router-link>
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts"> <script lang="ts">
......
<template> <template>
<PageWrapper title="平级面包屑示例" content="子级页面面包屑会覆盖当前层级"> <PageWrapper title="平级面包屑示例" content="子级页面面包屑会覆盖当前层级">
<router-link to="/feat/breadcrumb/flatDetail">进入平级详情页</router-link> <router-link to="/feat/breadcrumb/flatDetail"> 进入平级详情页 </router-link>
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts"> <script lang="ts">
......
<template> <template>
<PageWrapper title="右键菜单示例"> <PageWrapper title="右键菜单示例">
<CollapseContainer title="Simple"> <CollapseContainer title="Simple">
<a-button type="primary" @contextmenu="handleContext">Right Click on me</a-button> <a-button type="primary" @contextmenu="handleContext"> Right Click on me </a-button>
</CollapseContainer> </CollapseContainer>
<CollapseContainer title="Multiple" class="mt-4"> <CollapseContainer title="Multiple" class="mt-4">
<a-button type="primary" @contextmenu="handleMultipleContext">Right Click on me</a-button> <a-button type="primary" @contextmenu="handleMultipleContext"> Right Click on me </a-button>
</CollapseContainer> </CollapseContainer>
</PageWrapper> </PageWrapper>
</template> </template>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<CollapseContainer class="px-20 bg-white w-full h-32 rounded-md" title="Copy Example"> <CollapseContainer class="px-20 bg-white w-full h-32 rounded-md" title="Copy Example">
<div class="flex justify-center"> <div class="flex justify-center">
<a-input placeholder="请输入" v-model:value="value" /> <a-input placeholder="请输入" v-model:value="value" />
<a-button type="primary" @click="handleCopy">Copy</a-button> <a-button type="primary" @click="handleCopy"> Copy </a-button>
</div> </div>
</CollapseContainer> </CollapseContainer>
</PageWrapper> </PageWrapper>
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
message="推荐使用Iconify组件" message="推荐使用Iconify组件"
description="Icon组件基本包含所有的图标,在下面网址内你可以查询到你想要的任何图标。并且打包只会打包所用到的图标。唯一不足的可能就是需要连接外网进行使用。" description="Icon组件基本包含所有的图标,在下面网址内你可以查询到你想要的任何图标。并且打包只会打包所用到的图标。唯一不足的可能就是需要连接外网进行使用。"
/> />
<a-button type="link" @click="toIconify">Iconify 图标大全</a-button> <a-button type="link" @click="toIconify"> Iconify 图标大全 </a-button>
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts"> <script lang="ts">
......
...@@ -13,24 +13,24 @@ ...@@ -13,24 +13,24 @@
</CollapseContainer> </CollapseContainer>
<CollapseContainer class="px-20 bg-white w-full h-32 rounded-md mt-5" title="Comfirm"> <CollapseContainer class="px-20 bg-white w-full h-32 rounded-md mt-5" title="Comfirm">
<a-button @click="handleConfirm('info')" class="mr-2">Info</a-button> <a-button @click="handleConfirm('info')" class="mr-2"> Info </a-button>
<a-button @click="handleConfirm('warning')" color="warning" class="mr-2">Warning</a-button> <a-button @click="handleConfirm('warning')" color="warning" class="mr-2"> Warning </a-button>
<a-button @click="handleConfirm('success')" color="success" class="mr-2">Success</a-button> <a-button @click="handleConfirm('success')" color="success" class="mr-2"> Success </a-button>
<a-button @click="handleConfirm('error')" color="error" class="mr-2">Error</a-button> <a-button @click="handleConfirm('error')" color="error" class="mr-2"> Error </a-button>
</CollapseContainer> </CollapseContainer>
<CollapseContainer class="px-20 bg-white w-full h-32 rounded-md mt-5" title="Modal"> <CollapseContainer class="px-20 bg-white w-full h-32 rounded-md mt-5" title="Modal">
<a-button @click="handleInfoModal" class="mr-2">Info</a-button> <a-button @click="handleInfoModal" class="mr-2"> Info </a-button>
<a-button @click="handleSuccessModal" color="success" class="mr-2">Success</a-button> <a-button @click="handleSuccessModal" color="success" class="mr-2"> Success </a-button>
<a-button @click="handleErrorModal" color="error" class="mr-2">Error</a-button> <a-button @click="handleErrorModal" color="error" class="mr-2"> Error </a-button>
<a-button @click="handleWarningModal" color="warning" class="mr-2">Warning</a-button> <a-button @click="handleWarningModal" color="warning" class="mr-2"> Warning </a-button>
</CollapseContainer> </CollapseContainer>
<CollapseContainer <CollapseContainer
class="px-20 bg-white w-full h-32 rounded-md mt-5" class="px-20 bg-white w-full h-32 rounded-md mt-5"
title="Notification 用法与上面一致" title="Notification 用法与上面一致"
> >
<a-button @click="handleNotify" color="success" class="mr-2">Success</a-button> <a-button @click="handleNotify" color="success" class="mr-2"> Success </a-button>
</CollapseContainer> </CollapseContainer>
</PageWrapper> </PageWrapper>
</template> </template>
......
<template> <template>
<PageWrapper title="Ripple示例"> <PageWrapper title="Ripple示例">
<div class="demo-box" v-ripple>content</div> <div class="demo-box" v-ripple> content </div>
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts"> <script lang="ts">
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
</CollapseContainer> </CollapseContainer>
<CollapseContainer class="mt-4" title="标签页操作"> <CollapseContainer class="mt-4" title="标签页操作">
<a-button class="mr-2" @click="closeAll">关闭所有</a-button> <a-button class="mr-2" @click="closeAll"> 关闭所有 </a-button>
<a-button class="mr-2" @click="closeLeft">关闭左侧</a-button> <a-button class="mr-2" @click="closeLeft"> 关闭左侧 </a-button>
<a-button class="mr-2" @click="closeRight">关闭右侧</a-button> <a-button class="mr-2" @click="closeRight"> 关闭右侧 </a-button>
<a-button class="mr-2" @click="closeOther">关闭其他</a-button> <a-button class="mr-2" @click="closeOther"> 关闭其他 </a-button>
<a-button class="mr-2" @click="closeCurrent">关闭当前</a-button> <a-button class="mr-2" @click="closeCurrent"> 关闭当前 </a-button>
<a-button class="mr-2" @click="refreshPage">刷新当前</a-button> <a-button class="mr-2" @click="refreshPage"> 刷新当前 </a-button>
</CollapseContainer> </CollapseContainer>
</PageWrapper> </PageWrapper>
</template> </template>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<a-button type="primary" class="mr-2" @click="setWatermark('WaterMark Info')"> <a-button type="primary" class="mr-2" @click="setWatermark('WaterMark Info')">
Create Create
</a-button> </a-button>
<a-button color="error" class="mr-2" @click="clear">Clear</a-button> <a-button color="error" class="mr-2" @click="clear"> Clear </a-button>
<a-button color="warning" class="mr-2" @click="setWatermark('WaterMark Info New')"> <a-button color="warning" class="mr-2" @click="setWatermark('WaterMark Info New')">
Reset Reset
</a-button> </a-button>
......
<template> <template>
<PageWrapper title="动态表单示例"> <PageWrapper title="动态表单示例">
<div class="mb-4"> <div class="mb-4">
<a-button @click="changeLabel3" class="mr-2">更改字段3label</a-button> <a-button @click="changeLabel3" class="mr-2"> 更改字段3label </a-button>
<a-button @click="changeLabel34" class="mr-2">同时更改字段3,4label</a-button> <a-button @click="changeLabel34" class="mr-2"> 同时更改字段3,4label </a-button>
<a-button @click="appendField" class="mr-2">往字段3后面插入字段10</a-button> <a-button @click="appendField" class="mr-2"> 往字段3后面插入字段10 </a-button>
<a-button @click="deleteField" class="mr-2">删除字段11</a-button> <a-button @click="deleteField" class="mr-2"> 删除字段11 </a-button>
</div> </div>
<CollapseContainer title="动态表单示例,动态根据表单内其他值改变"> <CollapseContainer title="动态表单示例,动态根据表单内其他值改变">
<BasicForm @register="register" /> <BasicForm @register="register" />
...@@ -163,7 +163,7 @@ ...@@ -163,7 +163,7 @@
}, },
labelWidth: 200, labelWidth: 200,
// @ts-ignore // @ts-ignore
componentProps: ({ formActionType, tableAction }) => { componentProps: ({ formActionType }) => {
return { return {
placeholder: '值改变时执行查询,查看控制台', placeholder: '值改变时执行查询,查看控制台',
onChange: async () => { onChange: async () => {
......
<template> <template>
<PageWrapper title="Ref操作示例"> <PageWrapper title="Ref操作示例">
<div class="mb-4"> <div class="mb-4">
<a-button @click="setProps({ labelWidth: 150 })" class="mr-2">更改labelWidth</a-button> <a-button @click="setProps({ labelWidth: 150 })" class="mr-2"> 更改labelWidth </a-button>
<a-button @click="setProps({ labelWidth: 120 })" class="mr-2">还原labelWidth</a-button> <a-button @click="setProps({ labelWidth: 120 })" class="mr-2"> 还原labelWidth </a-button>
<a-button @click="setProps({ size: 'large' })" class="mr-2">更改Size</a-button> <a-button @click="setProps({ size: 'large' })" class="mr-2"> 更改Size </a-button>
<a-button @click="setProps({ size: 'default' })" class="mr-2">还原Size</a-button> <a-button @click="setProps({ size: 'default' })" class="mr-2"> 还原Size </a-button>
<a-button @click="setProps({ disabled: true })" class="mr-2">禁用表单</a-button> <a-button @click="setProps({ disabled: true })" class="mr-2"> 禁用表单 </a-button>
<a-button @click="setProps({ disabled: false })" class="mr-2">解除禁用</a-button> <a-button @click="setProps({ disabled: false })" class="mr-2"> 解除禁用 </a-button>
<a-button @click="setProps({ compact: true })" class="mr-2">紧凑表单</a-button> <a-button @click="setProps({ compact: true })" class="mr-2"> 紧凑表单 </a-button>
<a-button @click="setProps({ compact: false })" class="mr-2">还原正常间距</a-button> <a-button @click="setProps({ compact: false })" class="mr-2"> 还原正常间距 </a-button>
<a-button @click="setProps({ actionColOptions: { span: 8 } })" class="mr-2"> <a-button @click="setProps({ actionColOptions: { span: 8 } })" class="mr-2">
操作按钮位置 操作按钮位置
</a-button> </a-button>
......
<template> <template>
<PageWrapper title="表单校验示例"> <PageWrapper title="表单校验示例">
<div class="mb-4"> <div class="mb-4">
<a-button @click="validateForm" class="mr-2">手动校验表单</a-button> <a-button @click="validateForm" class="mr-2"> 手动校验表单 </a-button>
<a-button @click="resetValidate" class="mr-2">清空校验信息</a-button> <a-button @click="resetValidate" class="mr-2"> 清空校验信息 </a-button>
<a-button @click="getFormValues" class="mr-2">获取表单值</a-button> <a-button @click="getFormValues" class="mr-2"> 获取表单值 </a-button>
<a-button @click="setFormValues" class="mr-2">设置表单值</a-button> <a-button @click="setFormValues" class="mr-2"> 设置表单值 </a-button>
</div> </div>
<CollapseContainer title="表单校验"> <CollapseContainer title="表单校验">
<BasicForm @register="register" @submit="handleSubmit" /> <BasicForm @register="register" @submit="handleSubmit" />
...@@ -87,9 +87,11 @@ ...@@ -87,9 +87,11 @@
// @ts-ignore // @ts-ignore
validator: async (rule, value) => { validator: async (rule, value) => {
if (!value) { if (!value) {
/* eslint-disable-next-line */
return Promise.reject('值不能为空'); return Promise.reject('值不能为空');
} }
if (value === '1') { if (value === '1') {
/* eslint-disable-next-line */
return Promise.reject('值不能为1'); return Promise.reject('值不能为1');
} }
return Promise.resolve(); return Promise.resolve();
......
<template> <template>
<PageWrapper title="UseForm操作示例"> <PageWrapper title="UseForm操作示例">
<div class="mb-4"> <div class="mb-4">
<a-button @click="setProps({ labelWidth: 150 })" class="mr-2">更改labelWidth</a-button> <a-button @click="setProps({ labelWidth: 150 })" class="mr-2"> 更改labelWidth </a-button>
<a-button @click="setProps({ labelWidth: 120 })" class="mr-2">还原labelWidth</a-button> <a-button @click="setProps({ labelWidth: 120 })" class="mr-2"> 还原labelWidth </a-button>
<a-button @click="setProps({ size: 'large' })" class="mr-2">更改Size</a-button> <a-button @click="setProps({ size: 'large' })" class="mr-2"> 更改Size </a-button>
<a-button @click="setProps({ size: 'default' })" class="mr-2">还原Size</a-button> <a-button @click="setProps({ size: 'default' })" class="mr-2"> 还原Size </a-button>
<a-button @click="setProps({ disabled: true })" class="mr-2">禁用表单</a-button> <a-button @click="setProps({ disabled: true })" class="mr-2"> 禁用表单 </a-button>
<a-button @click="setProps({ disabled: false })" class="mr-2">解除禁用</a-button> <a-button @click="setProps({ disabled: false })" class="mr-2"> 解除禁用 </a-button>
<a-button @click="setProps({ compact: true })" class="mr-2">紧凑表单</a-button> <a-button @click="setProps({ compact: true })" class="mr-2"> 紧凑表单 </a-button>
<a-button @click="setProps({ compact: false })" class="mr-2">还原正常间距</a-button> <a-button @click="setProps({ compact: false })" class="mr-2"> 还原正常间距 </a-button>
<a-button @click="setProps({ actionColOptions: { span: 8 } })" class="mr-2"> <a-button @click="setProps({ actionColOptions: { span: 8 } })" class="mr-2">
操作按钮位置 操作按钮位置
</a-button> </a-button>
......
...@@ -4,19 +4,25 @@ ...@@ -4,19 +4,25 @@
<ListItem> <ListItem>
<ListItemMeta> <ListItemMeta>
<template #description> <template #description>
<div :class="`${prefixCls}__content`">{{ item.content }}</div> <div :class="`${prefixCls}__content`">
{{ item.content }}
</div>
</template> </template>
<template #title> <template #title>
<p :class="`${prefixCls}__title`"> {{ item.title }}</p> <p :class="`${prefixCls}__title`">
{{ item.title }}
</p>
<div> <div>
<template v-for="(tag, index) in item.description" :key="index"> <template v-for="(tag, ti) in item.description" :key="ti">
<Tag class="mb-2">{{ tag }}</Tag> <Tag class="mb-2">
{{ tag }}
</Tag>
</template> </template>
</div> </div>
</template> </template>
</ListItemMeta> </ListItemMeta>
<div> <div>
<template v-for="(action, index) in actions" :key="index"> <template v-for="(action, ai) in actions" :key="ai">
<div :class="`${prefixCls}__action`"> <div :class="`${prefixCls}__action`">
<Icon <Icon
v-if="action.icon" v-if="action.icon"
......
...@@ -9,7 +9,9 @@ ...@@ -9,7 +9,9 @@
<div :class="`${prefixCls}__card-title`"> <div :class="`${prefixCls}__card-title`">
{{ item.title }} {{ item.title }}
</div> </div>
<div :class="`${prefixCls}__card-content`"> {{ item.content }}</div> <div :class="`${prefixCls}__card-content`">
{{ item.content }}
</div>
</Card> </Card>
</ListItem> </ListItem>
</a-col> </a-col>
......
...@@ -25,7 +25,9 @@ ...@@ -25,7 +25,9 @@
<a-col :span="7" :class="`${prefixCls}-col`"> <a-col :span="7" :class="`${prefixCls}-col`">
<CollapseContainer title="标签" :canExpan="false"> <CollapseContainer title="标签" :canExpan="false">
<template v-for="(tag, index) in tags" :key="index"> <template v-for="(tag, index) in tags" :key="index">
<Tag class="mb-2">{{ tag }}</Tag> <Tag class="mb-2">
{{ tag }}
</Tag>
</template> </template>
</CollapseContainer> </CollapseContainer>
</a-col> </a-col>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
</a-col> </a-col>
<a-col :span="10"> <a-col :span="10">
<div class="change-avatar"> <div class="change-avatar">
<div class="mb-2">头像</div> <div class="mb-2"> 头像 </div>
<img width="140" :src="headerImg" /> <img width="140" :src="headerImg" />
<Upload :showUploadList="false"> <Upload :showUploadList="false">
<Button type="ghost" class="ml-5"> <Icon icon="feather:upload" />更换头像 </Button> <Button type="ghost" class="ml-5"> <Icon icon="feather:upload" />更换头像 </Button>
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
<Button type="primary" @click="handleSubmit">更新基本信息</Button> <Button type="primary" @click="handleSubmit"> 更新基本信息 </Button>
</CollapseContainer> </CollapseContainer>
</template> </template>
<script lang="ts"> <script lang="ts">
......
...@@ -6,7 +6,9 @@ ...@@ -6,7 +6,9 @@
<ListItemMeta> <ListItemMeta>
<template #title> <template #title>
{{ item.title }} {{ item.title }}
<div class="extra" v-if="item.extra"> {{ item.extra }} </div> <div class="extra" v-if="item.extra">
{{ item.extra }}
</div>
</template> </template>
<template #description> <template #description>
<div>{{ item.description }} </div> <div>{{ item.description }} </div>
......
...@@ -13,12 +13,14 @@ ...@@ -13,12 +13,14 @@
</a-tabs> </a-tabs>
</template> </template>
<div class="m-4 pt-4 desc-wrap"> <div class="pt-4 m-4 desc-wrap">
<a-descriptions size="small" :column="2"> <a-descriptions size="small" :column="2">
<a-descriptions-item label="创建人"> 曲丽丽 </a-descriptions-item> <a-descriptions-item label="创建人"> 曲丽丽 </a-descriptions-item>
<a-descriptions-item label="订购产品"> XX 服务 </a-descriptions-item> <a-descriptions-item label="订购产品"> XX 服务 </a-descriptions-item>
<a-descriptions-item label="创建时间"> 2017-01-10 </a-descriptions-item> <a-descriptions-item label="创建时间"> 2017-01-10 </a-descriptions-item>
<a-descriptions-item label="关联单据"> <a>12421</a> </a-descriptions-item> <a-descriptions-item label="关联单据">
<a>12421</a>
</a-descriptions-item>
<a-descriptions-item label="生效日期"> 2017-07-07 ~ 2017-08-08 </a-descriptions-item> <a-descriptions-item label="生效日期"> 2017-07-07 ~ 2017-08-08 </a-descriptions-item>
<a-descriptions-item label="备注"> 请于两个工作日内确认 </a-descriptions-item> <a-descriptions-item label="备注"> 请于两个工作日内确认 </a-descriptions-item>
</a-descriptions> </a-descriptions>
...@@ -28,7 +30,9 @@ ...@@ -28,7 +30,9 @@
<template #description> <div>Vben</div> <p>2016-12-12 12:32</p> </template> <template #description> <div>Vben</div> <p>2016-12-12 12:32</p> </template>
</a-step> </a-step>
<a-step title="部门初审"> <a-step title="部门初审">
<template #description> <p>Chad</p> </template> <template #description>
<p>Chad</p>
</template>
</a-step> </a-step>
<a-step title="财务复核" /> <a-step title="财务复核" />
<a-step title="完成" /> <a-step title="完成" />
...@@ -87,7 +91,6 @@ ...@@ -87,7 +91,6 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import { Description } from '/@/components/Description/index';
import { BasicTable, useTable } from '/@/components/Table'; import { BasicTable, useTable } from '/@/components/Table';
import { PageWrapper } from '/@/components/Page'; import { PageWrapper } from '/@/components/Page';
import { Divider, Card, Empty, Descriptions, Steps, Tabs } from 'ant-design-vue'; import { Divider, Card, Empty, Descriptions, Steps, Tabs } from 'ant-design-vue';
...@@ -95,7 +98,6 @@ ...@@ -95,7 +98,6 @@
import { refundTimeTableSchema, refundTimeTableData } from './data'; import { refundTimeTableSchema, refundTimeTableData } from './data';
export default defineComponent({ export default defineComponent({
components: { components: {
Description,
BasicTable, BasicTable,
PageWrapper, PageWrapper,
[Divider.name]: Divider, [Divider.name]: Divider,
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<TableAction :actions="createActions(record, column)" /> <TableAction :actions="createActions(record, column)" />
</template> </template>
</BasicTable> </BasicTable>
<a-button block class="mt-5" type="dashed" @click="handleAdd">新增成员</a-button> <a-button block class="mt-5" type="dashed" @click="handleAdd"> 新增成员 </a-button>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
TableAction, TableAction,
BasicColumn, BasicColumn,
ActionItem, ActionItem,
EditTableHeaderIcon,
EditRecordRow, EditRecordRow,
} from '/@/components/Table'; } from '/@/components/Table';
...@@ -59,7 +58,7 @@ ...@@ -59,7 +58,7 @@
}, },
]; ];
export default defineComponent({ export default defineComponent({
components: { BasicTable, EditTableHeaderIcon, TableAction }, components: { BasicTable, TableAction },
setup() { setup() {
const [registerTable, { getDataSource }] = useTable({ const [registerTable, { getDataSource }] = useTable({
columns: columns, columns: columns,
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
</a-card> </a-card>
<template #rightFooter> <template #rightFooter>
<a-button type="primary" @click="submitAll">提交</a-button> <a-button type="primary" @click="submitAll"> 提交 </a-button>
</template> </template>
</PageWrapper> </PageWrapper>
</template> </template>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="step3"> <div class="step3">
<a-result status="success" title="操作成功" sub-title="预计两小时内到账"> <a-result status="success" title="操作成功" sub-title="预计两小时内到账">
<template #extra> <template #extra>
<a-button type="primary" @click="redo">再转一笔 </a-button> <a-button type="primary" @click="redo"> 再转一笔 </a-button>
<a-button> 查看账单 </a-button> <a-button> 查看账单 </a-button>
</template> </template>
</a-result> </a-result>
......
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
> >
<div class="step-form-form"> <div class="step-form-form">
<a-steps :current="current"> <a-steps :current="current">
<a-step title="填写转账信息"> </a-step> <a-step title="填写转账信息" />
<a-step title="确认转账信息"> </a-step> <a-step title="确认转账信息" />
<a-step title="完成"> </a-step> <a-step title="完成" />
</a-steps> </a-steps>
</div> </div>
<div class="mt-5"> <div class="mt-5">
......
...@@ -32,7 +32,9 @@ ...@@ -32,7 +32,9 @@
</div> </div>
</template> </template>
<template #description> <template #description>
<div class="description">{{ item.description }}</div> <div class="description">
{{ item.description }}
</div>
<div class="info"> <div class="info">
<div><span>Owner</span>{{ item.author }}</div> <div><span>Owner</span>{{ item.author }}</div>
<div><span>开始时间</span>{{ item.datetime }}</div> <div><span>开始时间</span>{{ item.datetime }}</div>
......
...@@ -15,7 +15,9 @@ ...@@ -15,7 +15,9 @@
<a-list-item> <a-list-item>
<a-list-item-meta> <a-list-item-meta>
<template #description> <template #description>
<div :class="`${prefixCls}__content`">{{ item.content }}</div> <div :class="`${prefixCls}__content`">
{{ item.content }}
</div>
<div :class="`${prefixCls}__action`"> <div :class="`${prefixCls}__action`">
<template v-for="(action, index) in actions" :key="index"> <template v-for="(action, index) in actions" :key="index">
<div :class="`${prefixCls}__action-item`"> <div :class="`${prefixCls}__action-item`">
...@@ -32,10 +34,14 @@ ...@@ -32,10 +34,14 @@
</div> </div>
</template> </template>
<template #title> <template #title>
<p :class="`${prefixCls}__title`"> {{ item.title }}</p> <p :class="`${prefixCls}__title`">
{{ item.title }}
</p>
<div> <div>
<template v-for="(tag, index) in item.description" :key="index"> <template v-for="(tag, index) in item.description" :key="index">
<Tag class="mb-2">{{ tag }}</Tag> <Tag class="mb-2">
{{ tag }}
</Tag>
</template> </template>
</div> </div>
</template> </template>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
</template> </template>
</Result> </Result>
<div class="result-error__content"> <div class="result-error__content">
<div class="result-error__content-title">您提交的内容有如下错误:</div> <div class="result-error__content-title"> 您提交的内容有如下错误: </div>
<div class="mb-4"> <div class="mb-4">
<CloseCircleOutlined class="mr-2 result-error__content-icon" /> <CloseCircleOutlined class="mr-2 result-error__content-icon" />
您的账户已被冻结 您的账户已被冻结
......
...@@ -22,7 +22,9 @@ ...@@ -22,7 +22,9 @@
<template #description> <div>Vben</div> <p>2016-12-12 12:32</p> </template> <template #description> <div>Vben</div> <p>2016-12-12 12:32</p> </template>
</Step> </Step>
<Step title="部门初审"> <Step title="部门初审">
<template #description> <p>Chad</p> </template> <template #description>
<p>Chad</p>
</template>
</Step> </Step>
<Step title="财务复核" /> <Step title="财务复核" />
<Step title="完成" /> <Step title="完成" />
......
...@@ -19,15 +19,15 @@ ...@@ -19,15 +19,15 @@
<Divider>组件方式判断权限</Divider> <Divider>组件方式判断权限</Divider>
<Authority :value="'1000'"> <Authority :value="'1000'">
<a-button type="primary" class="mx-4">拥有code ['1000']权限可见</a-button> <a-button type="primary" class="mx-4"> 拥有code ['1000']权限可见 </a-button>
</Authority> </Authority>
<Authority :value="'2000'"> <Authority :value="'2000'">
<a-button color="success" class="mx-4">拥有code ['2000']权限可见</a-button> <a-button color="success" class="mx-4"> 拥有code ['2000']权限可见 </a-button>
</Authority> </Authority>
<Authority :value="['1000', '2000']"> <Authority :value="['1000', '2000']">
<a-button color="error" class="mx-4">拥有code ['1000','2000']角色权限可见</a-button> <a-button color="error" class="mx-4"> 拥有code ['1000','2000']角色权限可见 </a-button>
</Authority> </Authority>
<Divider>函数方式方式判断权限</Divider> <Divider>函数方式方式判断权限</Divider>
......
...@@ -25,15 +25,15 @@ ...@@ -25,15 +25,15 @@
</div> </div>
<Divider>组件方式判断权限(有需要可以自行全局注册)</Divider> <Divider>组件方式判断权限(有需要可以自行全局注册)</Divider>
<Authority :value="RoleEnum.SUPER"> <Authority :value="RoleEnum.SUPER">
<a-button type="primary" class="mx-4">拥有super角色权限可见</a-button> <a-button type="primary" class="mx-4"> 拥有super角色权限可见 </a-button>
</Authority> </Authority>
<Authority :value="RoleEnum.TEST"> <Authority :value="RoleEnum.TEST">
<a-button color="success" class="mx-4">拥有test角色权限可见</a-button> <a-button color="success" class="mx-4"> 拥有test角色权限可见 </a-button>
</Authority> </Authority>
<Authority :value="[RoleEnum.TEST, RoleEnum.SUPER]"> <Authority :value="[RoleEnum.TEST, RoleEnum.SUPER]">
<a-button color="error" class="mx-4">拥有[test,super]角色权限可见</a-button> <a-button color="error" class="mx-4"> 拥有[test,super]角色权限可见 </a-button>
</Authority> </Authority>
<Divider>函数方式方式判断权限(适用于函数内部过滤)</Divider> <Divider>函数方式方式判断权限(适用于函数内部过滤)</Divider>
......
...@@ -31,10 +31,9 @@ ...@@ -31,10 +31,9 @@
import { defineComponent, ref } from 'vue'; import { defineComponent, ref } from 'vue';
import { BasicTable } from '/@/components/Table'; import { BasicTable } from '/@/components/Table';
import { getBasicColumns, getBasicData } from './tableData'; import { getBasicColumns, getBasicData } from './tableData';
import { PageWrapper } from '/@/components/Page';
export default defineComponent({ export default defineComponent({
components: { BasicTable, PageWrapper }, components: { BasicTable },
setup() { setup() {
const canResize = ref(false); const canResize = ref(false);
const loading = ref(false); const loading = ref(false);
......
...@@ -2,8 +2,10 @@ ...@@ -2,8 +2,10 @@
<div class="p-4"> <div class="p-4">
<BasicTable @register="registerTable"> <BasicTable @register="registerTable">
<template #id="{ record }"> ID: {{ record.id }} </template> <template #id="{ record }"> ID: {{ record.id }} </template>
<template #no="{ record }" <template #no="{ record }">
><Tag color="green">{{ record.no }}</Tag> <Tag color="green">
{{ record.no }}
</Tag>
</template> </template>
<template #img> <template #img>
<TableImg <TableImg
......
<template> <template>
<div class="p-4"> <div class="p-4">
<BasicTable @register="registerTable" @edit-end="handleEditEnd" @edit-cancel="handleEditCancel"> <BasicTable
</BasicTable> @register="registerTable"
@edit-end="handleEditEnd"
@edit-cancel="handleEditCancel"
/>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import { BasicTable, useTable, BasicColumn, EditTableHeaderIcon } from '/@/components/Table'; import { BasicTable, useTable, BasicColumn } from '/@/components/Table';
import { optionsListApi } from '/@/api/demo/select'; import { optionsListApi } from '/@/api/demo/select';
import { demoListApi } from '/@/api/demo/table'; import { demoListApi } from '/@/api/demo/table';
...@@ -106,7 +109,7 @@ ...@@ -106,7 +109,7 @@
}, },
]; ];
export default defineComponent({ export default defineComponent({
components: { BasicTable, EditTableHeaderIcon }, components: { BasicTable },
setup() { setup() {
const [registerTable] = useTable({ const [registerTable] = useTable({
title: '可编辑单元格示例', title: '可编辑单元格示例',
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
TableAction, TableAction,
BasicColumn, BasicColumn,
ActionItem, ActionItem,
EditTableHeaderIcon,
EditRecordRow, EditRecordRow,
} from '/@/components/Table'; } from '/@/components/Table';
import { optionsListApi } from '/@/api/demo/select'; import { optionsListApi } from '/@/api/demo/select';
...@@ -117,7 +116,7 @@ ...@@ -117,7 +116,7 @@
}, },
]; ];
export default defineComponent({ export default defineComponent({
components: { BasicTable, EditTableHeaderIcon, TableAction }, components: { BasicTable, TableAction },
setup() { setup() {
const currentEditKeyRef = ref(''); const currentEditKeyRef = ref('');
......
<template> <template>
<BasicTable @register="registerTable"> <BasicTable @register="registerTable">
<template #form-custom> custom-slot</template> <template #form-custom> custom-slot </template>
</BasicTable> </BasicTable>
</template> </template>
<script lang="ts"> <script lang="ts">
......
<template> <template>
<div class="p-4"> <div class="p-4">
<div class="mb-4"> <div class="mb-4">
<a-button class="mr-2" @click="reloadTable">还原</a-button> <a-button class="mr-2" @click="reloadTable"> 还原 </a-button>
<a-button class="mr-2" @click="changeLoading">开启loading</a-button> <a-button class="mr-2" @click="changeLoading"> 开启loading </a-button>
<a-button class="mr-2" @click="changeColumns">更改Columns</a-button> <a-button class="mr-2" @click="changeColumns"> 更改Columns </a-button>
<a-button class="mr-2" @click="getColumn">获取Columns</a-button> <a-button class="mr-2" @click="getColumn"> 获取Columns </a-button>
<a-button class="mr-2" @click="getTableData">获取表格数据</a-button> <a-button class="mr-2" @click="getTableData"> 获取表格数据 </a-button>
<a-button class="mr-2" @click="setPaginationInfo">跳转到第2页</a-button> <a-button class="mr-2" @click="setPaginationInfo"> 跳转到第2页 </a-button>
</div> </div>
<div class="mb-4"> <div class="mb-4">
<a-button class="mr-2" @click="getSelectRowList">获取选中行</a-button> <a-button class="mr-2" @click="getSelectRowList"> 获取选中行 </a-button>
<a-button class="mr-2" @click="getSelectRowKeyList">获取选中行Key</a-button> <a-button class="mr-2" @click="getSelectRowKeyList"> 获取选中行Key </a-button>
<a-button class="mr-2" @click="setSelectedRowKeyList">设置选中行</a-button> <a-button class="mr-2" @click="setSelectedRowKeyList"> 设置选中行 </a-button>
<a-button class="mr-2" @click="clearSelect">清空选中行</a-button> <a-button class="mr-2" @click="clearSelect"> 清空选中行 </a-button>
<a-button class="mr-2" @click="getPagination">获取分页信息</a-button> <a-button class="mr-2" @click="getPagination"> 获取分页信息 </a-button>
</div> </div>
<BasicTable <BasicTable
:canResize="false" :canResize="false"
......
<template> <template>
<div class="p-4"> <div class="p-4">
<div class="mb-4"> <div class="mb-4">
<a-button class="mr-2" @click="reloadTable">还原</a-button> <a-button class="mr-2" @click="reloadTable"> 还原 </a-button>
<a-button class="mr-2" @click="changeLoading">开启loading</a-button> <a-button class="mr-2" @click="changeLoading"> 开启loading </a-button>
<a-button class="mr-2" @click="changeColumns">更改Columns</a-button> <a-button class="mr-2" @click="changeColumns"> 更改Columns </a-button>
<a-button class="mr-2" @click="getColumn">获取Columns</a-button> <a-button class="mr-2" @click="getColumn"> 获取Columns </a-button>
<a-button class="mr-2" @click="getTableData">获取表格数据</a-button> <a-button class="mr-2" @click="getTableData"> 获取表格数据 </a-button>
<a-button class="mr-2" @click="setPaginationInfo">跳转到第2页</a-button> <a-button class="mr-2" @click="setPaginationInfo"> 跳转到第2页 </a-button>
</div> </div>
<div class="mb-4"> <div class="mb-4">
<a-button class="mr-2" @click="getSelectRowList">获取选中行</a-button> <a-button class="mr-2" @click="getSelectRowList"> 获取选中行 </a-button>
<a-button class="mr-2" @click="getSelectRowKeyList">获取选中行Key</a-button> <a-button class="mr-2" @click="getSelectRowKeyList"> 获取选中行Key </a-button>
<a-button class="mr-2" @click="setSelectedRowKeyList">设置选中行</a-button> <a-button class="mr-2" @click="setSelectedRowKeyList"> 设置选中行 </a-button>
<a-button class="mr-2" @click="clearSelect">清空选中行</a-button> <a-button class="mr-2" @click="clearSelect"> 清空选中行 </a-button>
<a-button class="mr-2" @click="getPagination">获取分页信息</a-button> <a-button class="mr-2" @click="getPagination"> 获取分页信息 </a-button>
</div> </div>
<BasicTable @register="registerTable" /> <BasicTable @register="registerTable" />
</div> </div>
......
<template> <template>
<PageWrapper title="Tree函数操作示例" contentBackground contentClass="p-4"> <PageWrapper title="Tree函数操作示例" contentBackground contentClass="p-4">
<div class="mb-4"> <div class="mb-4">
<a-button @click="handleLevel(2)" class="mr-2">显示到第2级</a-button> <a-button @click="handleLevel(2)" class="mr-2"> 显示到第2级 </a-button>
<a-button @click="handleLevel(1)" class="mr-2">显示到第1级</a-button> <a-button @click="handleLevel(1)" class="mr-2"> 显示到第1级 </a-button>
<a-button @click="handleSetCheckData" class="mr-2">设置勾选数据</a-button> <a-button @click="handleSetCheckData" class="mr-2"> 设置勾选数据 </a-button>
<a-button @click="handleGetCheckData" class="mr-2">获取勾选数据</a-button> <a-button @click="handleGetCheckData" class="mr-2"> 获取勾选数据 </a-button>
<a-button @click="handleSetSelectData" class="mr-2">设置选中数据</a-button> <a-button @click="handleSetSelectData" class="mr-2"> 设置选中数据 </a-button>
<a-button @click="handleGetSelectData" class="mr-2">获取选中数据</a-button> <a-button @click="handleGetSelectData" class="mr-2"> 获取选中数据 </a-button>
<a-button @click="handleSetExpandData" class="mr-2">设置展开数据</a-button> <a-button @click="handleSetExpandData" class="mr-2"> 设置展开数据 </a-button>
<a-button @click="handleGetExpandData" class="mr-2">获取展开数据</a-button> <a-button @click="handleGetExpandData" class="mr-2"> 获取展开数据 </a-button>
</div> </div>
<div class="mb-4"> <div class="mb-4">
<a-button @click="appendNodeByKey(null)" class="mr-2">添加根节点</a-button> <a-button @click="appendNodeByKey(null)" class="mr-2"> 添加根节点 </a-button>
<a-button @click="appendNodeByKey('2-2')" class="mr-2">添加在parent3内添加节点</a-button> <a-button @click="appendNodeByKey('2-2')" class="mr-2"> 添加在parent3内添加节点 </a-button>
<a-button @click="deleteNodeByKey('2-2')" class="mr-2">删除parent3节点</a-button> <a-button @click="deleteNodeByKey('2-2')" class="mr-2"> 删除parent3节点 </a-button>
<a-button @click="updateNodeByKey('1-1')" class="mr-2">更新parent2节点</a-button> <a-button @click="updateNodeByKey('1-1')" class="mr-2"> 更新parent2节点 </a-button>
</div> </div>
<CollapseContainer title="函数操作" class="mr-4" :canExpan="false" :style="{ width: '33%' }"> <CollapseContainer title="函数操作" class="mr-4" :canExpan="false" :style="{ width: '33%' }">
<BasicTree :treeData="treeData" ref="treeRef" :checkable="true" /> <BasicTree :treeData="treeData" ref="treeRef" :checkable="true" />
......
...@@ -36,10 +36,12 @@ export default defineComponent({ ...@@ -36,10 +36,12 @@ export default defineComponent({
title: { title: {
type: String as PropType<string>, type: String as PropType<string>,
default: '',
}, },
subTitle: { subTitle: {
type: String as PropType<string>, type: String as PropType<string>,
default: '',
}, },
full: { full: {
......
<template> <template>
<div /> <div></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
......
<template> <template>
<div class="iframe-page" :style="getWrapStyle"> <div class="iframe-page" :style="getWrapStyle">
<Spin :spinning="loading" size="large" :style="getWrapStyle"> <Spin :spinning="loading" size="large" :style="getWrapStyle">
<iframe :src="frameSrc" class="iframe-page__main" ref="frameRef" /> <iframe :src="frameSrc" class="iframe-page__main" ref="frameRef"></iframe>
</Spin> </Spin>
</div> </div>
</template> </template>
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
props: { props: {
frameSrc: { frameSrc: {
type: String as PropType<string>, type: String as PropType<string>,
default: '',
}, },
}, },
setup() { setup() {
......
...@@ -10,14 +10,18 @@ ...@@ -10,14 +10,18 @@
{{ hour }} {{ hour }}
<span class="meridiem" v-show="showDate">{{ meridiem }}</span> <span class="meridiem" v-show="showDate">{{ meridiem }}</span>
</div> </div>
<div :class="`${prefixCls}__minute`">{{ minute }} </div> <div :class="`${prefixCls}__minute`">
{{ minute }}
</div>
</div> </div>
<transition name="fade-slide"> <transition name="fade-slide">
<div :class="`${prefixCls}-entry`" v-show="!showDate"> <div :class="`${prefixCls}-entry`" v-show="!showDate">
<div :class="`${prefixCls}-entry-content`"> <div :class="`${prefixCls}-entry-content`">
<div :class="`${prefixCls}-entry__header`"> <div :class="`${prefixCls}-entry__header`">
<img :src="headerImg" :class="`${prefixCls}-entry__header-img`" /> <img :src="headerImg" :class="`${prefixCls}-entry__header-img`" />
<p :class="`${prefixCls}-entry__header-name`">{{ realName }}</p> <p :class="`${prefixCls}-entry__header-name`">
{{ realName }}
</p>
</div> </div>
<InputPassword :placeholder="t('sys.lock.placeholder')" v-model:value="password" /> <InputPassword :placeholder="t('sys.lock.placeholder')" v-model:value="password" />
<span :class="`${prefixCls}-entry__err-msg`" v-if="errMsgRef"> <span :class="`${prefixCls}-entry__err-msg`" v-if="errMsgRef">
...@@ -60,7 +64,7 @@ ...@@ -60,7 +64,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, computed } from 'vue'; import { defineComponent, ref, computed } from 'vue';
import { Alert, Input } from 'ant-design-vue'; import { Input } from 'ant-design-vue';
import { userStore } from '/@/store/modules/user'; import { userStore } from '/@/store/modules/user';
import { lockStore } from '/@/store/modules/lock'; import { lockStore } from '/@/store/modules/lock';
...@@ -74,7 +78,7 @@ ...@@ -74,7 +78,7 @@
export default defineComponent({ export default defineComponent({
name: 'LockPage', name: 'LockPage',
components: { Alert, LockOutlined, InputPassword: Input.Password }, components: { LockOutlined, InputPassword: Input.Password },
setup() { setup() {
const passwordRef = ref(''); const passwordRef = ref('');
...@@ -84,7 +88,7 @@ ...@@ -84,7 +88,7 @@
const { prefixCls } = useDesign('lock-page'); const { prefixCls } = useDesign('lock-page');
const { start, stop, ...state } = useNow(true); const { ...state } = useNow(true);
const { t } = useI18n(); const { t } = useI18n();
......
<template> <template>
<div class="login"> <div class="login">
<div class="login-mask" /> <div class="login-mask"></div>
<div class="login-form-wrap"> <div class="login-form-wrap">
<div class="login-form mx-6"> <div class="mx-6 login-form">
<AppLocalePicker v-if="showLocale" class="login-form__locale" /> <AppLocalePicker v-if="showLocale" class="login-form__locale" />
<div class="login-form__content px-2 py-10"> <div class="px-2 py-10 login-form__content">
<header> <header>
<img :src="logo" class="mr-4" /> <img :src="logo" class="mr-4" />
<h1>{{ title }}</h1> <h1>{{ title }}</h1>
...@@ -35,7 +35,9 @@ ...@@ -35,7 +35,9 @@
<a-col :span="12"> <a-col :span="12">
<a-form-item :style="{ 'text-align': 'right' }"> <a-form-item :style="{ 'text-align': 'right' }">
<!-- No logic, you need to deal with it yourself --> <!-- No logic, you need to deal with it yourself -->
<a-button type="link" size="small">{{ t('sys.login.forgetPassword') }}</a-button> <a-button type="link" size="small">
{{ t('sys.login.forgetPassword') }}
</a-button>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
...@@ -47,8 +49,9 @@ ...@@ -47,8 +49,9 @@
:block="true" :block="true"
@click="login" @click="login"
:loading="formState.loading" :loading="formState.loading"
>{{ t('sys.login.loginButton') }}</a-button
> >
{{ t('sys.login.loginButton') }}
</a-button>
</a-form-item> </a-form-item>
</a-form> </a-form>
</div> </div>
......
<template> <template>
<div /> <div></div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, unref } from 'vue'; import { defineComponent, unref } from 'vue';
......
...@@ -31,9 +31,12 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { ...@@ -31,9 +31,12 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
return { return {
base: VITE_PUBLIC_PATH, base: VITE_PUBLIC_PATH,
root, root,
alias: { alias: [
'/@/': `${pathResolve('src')}/`, {
}, find: /^\/@\//,
replacement: pathResolve('src') + '/',
},
],
server: { server: {
port: VITE_PORT, port: VITE_PORT,
proxy: createProxy(VITE_PROXY), proxy: createProxy(VITE_PROXY),
...@@ -75,19 +78,11 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { ...@@ -75,19 +78,11 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
vue(), vue(),
vueJsx(), vueJsx(),
...(VITE_LEGACY && isBuild ? [legacy()] : []), ...(VITE_LEGACY && isBuild ? [legacy()] : []),
...createVitePlugins(viteEnv, isBuild, mode), ...createVitePlugins(viteEnv, isBuild),
], ],
optimizeDeps: { optimizeDeps: {
include: [ include: ['@iconify/iconify'],
'moment',
'@ant-design/icons-vue',
'echarts/map/js/china',
'ant-design-vue/es/locale/zh_CN',
'moment/dist/locale/zh-cn',
'ant-design-vue/es/locale/en_US',
'resize-observer-polyfill',
],
}, },
}; };
}; };
...@@ -1747,7 +1747,7 @@ ...@@ -1747,7 +1747,7 @@
"@typescript-eslint/types" "4.14.1" "@typescript-eslint/types" "4.14.1"
eslint-visitor-keys "^2.0.0" eslint-visitor-keys "^2.0.0"
"@vitejs/plugin-legacy@^1.2.1": "@vitejs/plugin-legacy@^1.2.2":
version "1.2.2" version "1.2.2"
resolved "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-1.2.2.tgz#65039ca35be1542b5ad612b54641da5a89d7687f" resolved "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-1.2.2.tgz#65039ca35be1542b5ad612b54641da5a89d7687f"
integrity sha512-ec3hvD4OrQusH42ERrTtjOmeBoGmVWtwg7mVMvvlWkR7wUwZSnr8J6HYYynmGUaBcC95+3xm6bRks7sh2DKq+w== integrity sha512-ec3hvD4OrQusH42ERrTtjOmeBoGmVWtwg7mVMvvlWkR7wUwZSnr8J6HYYynmGUaBcC95+3xm6bRks7sh2DKq+w==
...@@ -7743,10 +7743,10 @@ vite-plugin-style-import@^0.4.6: ...@@ -7743,10 +7743,10 @@ vite-plugin-style-import@^0.4.6:
"@rollup/pluginutils" "^4.1.0" "@rollup/pluginutils" "^4.1.0"
change-case "^4.1.2" change-case "^4.1.2"
vite@2.0.0-beta.50: vite@2.0.0-beta.52:
version "2.0.0-beta.50" version "2.0.0-beta.52"
resolved "https://registry.npmjs.org/vite/-/vite-2.0.0-beta.50.tgz#04e66d009470ca90ab8a4a43687e899b670a0f25" resolved "https://registry.npmjs.org/vite/-/vite-2.0.0-beta.52.tgz#a06275d8b7c789358586dca51b8c01caf8599b08"
integrity sha512-zzMgrWJK92/aQ1rxvc+0QKeOCdOP4m2EPGwK2HKhlifQVnSdpYQzQkWLzaGh1GQAp61W+Su8cu6cWINpFgNrfQ== integrity sha512-goc3hwnL7ot9NnzRv7jWz4pDMgBpoL272+WuKc3D/gjYtVLd9KG46Z68IlU3OSN5ng334WEI1pmAlawb4iGJ8g==
dependencies: dependencies:
esbuild "^0.8.34" esbuild "^0.8.34"
postcss "^8.2.1" postcss "^8.2.1"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment