Skip to content

Commit 02bbcc3

Browse files
authored
Merge branch 'DevCloudFE:dev' into dev
2 parents ddadbb0 + f0b5361 commit 02bbcc3

File tree

210 files changed

+3712
-916
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

210 files changed

+3712
-916
lines changed

.eslintrc.js

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,12 @@ module.exports = {
109109
'max-depth': 'off',
110110
'@typescript-eslint/member-ordering': 'off',
111111
'array-callback-return': 'off',
112+
'import/no-unresolved': 'off',
112113
},
113-
"overrides": [
114+
overrides: [
114115
{
115-
"files": [
116-
"*.ts",
117-
"*.tsx"
118-
],
119-
"parser": "@typescript-eslint/parser"
120-
}
121-
]
116+
files: ['*.ts', '*.tsx'],
117+
parser: '@typescript-eslint/parser',
118+
},
119+
],
122120
};

packages/devui-theme/scripts/release.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ async function copyStylesVar() {
2727
const extendThemePath = path.resolve(__dirname, '../src/theme-collection/extend-theme.scss');
2828
const extendThemeVuePath = path.resolve(__dirname, '../src/theme-collection/extend-theme-vue.scss');
2929
async function copyExtendTheme() {
30-
await shelljs.cp('-R', extendThemePath, outputDir);
31-
await shelljs.cp('-R', extendThemeVuePath, outputDir);
30+
const extendThemeDir = path.resolve(__dirname, '../build/theme-collection');
31+
await shelljs.mkdir(extendThemeDir);
32+
await shelljs.cp('-R', extendThemePath, extendThemeDir);
33+
await shelljs.cp('-R', extendThemeVuePath, extendThemeDir);
3234
}
3335

3436
const typingsPath = path.resolve(__dirname, '../typings');
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
@import './private/basic';
1+
@import './private/animation';
22
@import './private/color';
3-
@import './private/shadow';
43
@import './private/corner';
5-
@import './private/font-size';
6-
@import './private/animation';
4+
@import './private/font';
5+
@import './private/shadow';
76
@import './private/z-index';
7+
@import './private/size';
88

99
$devui-prefix: devui;

packages/devui-theme/src/styles-var/private/_animation.scss

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
$devui-animation-ease-in-smooth: var(--devui-animation-ease-in-smooth, cubic-bezier(0.645, 0.045, 0.355, 1));
1+
// Animation 动效
2+
3+
$devui-animation-ease-in-smooth: var(--devui-animation-ease-in-smooth, cubic-bezier(0.645, 0.045, 0.355, 1));// 命名与实际曲线不符,待废弃
24

35
$devui-animation-duration-slow: var(--devui-animation-duration-slow, 300ms);
46
$devui-animation-duration-base: var(--devui-animation-duration-base, 200ms);

packages/devui-theme/src/styles-var/private/_basic.scss

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
// Color
1+
// 基础色值
2+
23
// 取色规则1: 所有使用颜色均需要在色板中选择
34
// 取色规则2: 除标签等用于功能分类及black,white的取色可以增加透明度(eg: rgba($devui-white-5,0.3),其余场景均不允许
4-
// need to run `node scripts/themeable/transfer-sass-var-to-theme-data.js ` when modified
55

66
$devui-blue-5: #f2f5fc;
77
$devui-blue-10: #e9edfa;
@@ -114,9 +114,9 @@ $devui-purple-100: #2a0c85;
114114
$devui-gray-5: #f5f5f5;
115115
$devui-gray-10: #ebebeb;
116116
$devui-gray-20: #e0e0e0;
117-
$devui-gray-30: #d1d1d1;
117+
$devui-gray-30: #d1d1d1;
118118
$devui-gray-40: #bdbdbd;
119-
$devui-gray-50: #a1a1a1;
119+
$devui-gray-50: #8a8a8a;
120120
$devui-gray-60: #878787;
121121
$devui-gray-70: #707070;
122122
$devui-gray-80: #5c5c5c;
@@ -132,10 +132,10 @@ $devui-slate-50: #babbc0;
132132
$devui-slate-60: #9b9fa8;
133133
$devui-slate-70: #71757f;
134134
$devui-slate-80: #575d6c;
135-
$devui-slate-90: #383e4d;
135+
$devui-slate-90: #323745;
136136
$devui-slate-100: #252b3a;
137137

138-
$devui-zinc-5: #f7f7f9;
138+
$devui-zinc-5: #f8f8fa;
139139
$devui-zinc-10: #f2f2f3;
140140
$devui-zinc-20: #e2e2e6;
141141
$devui-zinc-30: #d5d5db;

packages/devui-theme/src/styles-var/private/_color.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ $devui-primary-active: var(--devui-primary-active, $devui-blue-90); // 主要按
106106

107107
$devui-contrast-hover: var(--devui-contrast-hover, #d64a52); // 突出按钮悬停
108108
$devui-contrast-active: var(--devui-contrast-active, #b12220); // 突出按钮激活
109+
$devui-contrast-disabled: var(--devui-contrast-disabled, #ffbcba); // 突出按钮禁用
109110

110111
// 状态
111112
$devui-danger-line: var(--devui-danger-line, $devui-red-50); // 失败边框
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
//圆角变量
1+
// Border Radius 圆角
22

33
$devui-border-radius: var(--devui-border-radius, 2px); //一般圆角
44
$devui-border-radius-feedback: var(--devui-border-radius-feedback, 4px); //反馈类圆角
5-
$devui-border-radius-card: var(--devui-border-radius-card, 6px); //卡片圆角
6-
$devui-border-radius-full: var(--devui-border-radius-full, 100px);
5+
$devui-border-radius-card: var(--devui-border-radius-card, 8px); //卡片,弹窗圆角
6+
$devui-border-radius-full: var(--devui-border-radius-full, 100px); //暂不对外开放,用于开关,进度条等组件的圆角自适应宽高
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// 字号大小变量
2+
3+
$devui-font-size: var(--devui-font-size, 12px); //正文、卡片副标题
4+
$devui-font-size-card-title: var(--devui-font-size-card-title, 14px); //卡片标题
5+
$devui-font-size-page-title: var(--devui-font-size-page-title, 16px); //页面标题
6+
$devui-font-size-message: var(--devui-font-size-page-title, 16px); //页面标题
7+
$devui-font-size-modal-title: var(--devui-font-size-modal-title, 18px); //弹窗标题、数字
8+
$devui-font-size-price: var(--devui-font-size-price, 20px); //购买价格
9+
$devui-font-size-data-overview: var(--devui-font-size-data-overview, 24px); //数据总览
10+
11+
$devui-font-size-h1-title: var(--devui-font-size-h1-title, 28px);
12+
$devui-font-size-h2-title: var(--devui-font-size-h2-title, 24px);
13+
$devui-font-size-h3-title: var(--devui-font-size-h3-title, 20px);
14+
$devui-font-size-h4-title: var(--devui-font-size-h4-title, 18px);
15+
$devui-font-size-h5-title: var(--devui-font-size-h5-title, 16px);
16+
17+
$devui-font-size-icon: var(--devui-font-size-icon, 16px); //图标大小
18+
$devui-font-size-sm: var(--devui-font-size-sm, 12px); //当组件size为'sm'时使用此字号大小
19+
$devui-font-size-md: var(--devui-font-size-md, 12px); //当组件size为''时使用此字号大小
20+
$devui-font-size-lg: var(--devui-font-size-lg, 14px); //当组件size为'lg'时使用此字号大小
21+
22+
$devui-font-title-weight: var(--devui-font-title-weight, bold); //标题文字粗细
23+
$devui-font-content-weight: var(--devui-font-content-weight, normal); //内容文字粗细
24+
$devui-line-height-base: var(--devui-line-height-base, 1.5); //规范行高
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// 组件的size
2+
$devui-size-sm: 24px;
3+
$devui-size-md: 32px;
4+
$devui-size-lg: 40px;
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
// 临时层
2-
// 若存在遮罩,则遮罩基于对应z-index值-1
1+
// zIndex 层级
2+
33
$devui-z-index-full-page-overlay: var(--devui-z-index-full-page-overlay, 1080); // 全屏覆盖类元素
44
$devui-z-index-pop-up: var(--devui-z-index-pop-up, 1060); // 提示类信息,popover,tooltip等
55
$devui-z-index-dropdown: var(--devui-z-index-dropdown, 1052); // 下拉菜单,dropdown等, 兼容, 取值待重新定义
6-
$devui-z-index-modal: var(--devui-z-index-modal, 1050); // 弹窗,
7-
$devui-z-index-drawer: var(--devui-z-index-drawer, 1040); // 抽屉板
8-
$devui-z-index-framework: var(--devui-z-index-framework, 1000); // 框架类元素,header,sideMenu等
9-
10-
// 内容层,根据需要设置,zIndex需小于临时层
11-
12-
// 背景层,根据需要设置,zIndex需小于内容层
6+
$devui-z-index-modal: var(--devui-z-index-modal, 1050);// 弹窗,
7+
$devui-z-index-message: var(--devui-z-index-modal, 1079);// 全局消息,
8+
$devui-z-index-drawer: var(--devui-z-index-drawer, 1040);// 抽屉板
9+
$devui-z-index-framework: var(--devui-z-index-framework, 1000);// 框架类元素,header,sideMenu等
10+
$devui-z-index-function-widget: var(--devui-z-index-function-widget, 999); // 功能控件类(在一个组件中处于最上层)

packages/devui-vue/devui-cli/commands/build.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ const baseConfig = defineConfig({
1818
configFile: false,
1919
publicDir: false,
2020
plugins: [vue(), vueJsx()],
21+
resolve: {
22+
alias: [
23+
{ find: '@devui/theme', replacement: path.resolve(__dirname, '../../../devui-theme/src') },
24+
{ find: '@devui/shared/components', replacement: path.resolve(__dirname, '../../devui') },
25+
{ find: '@devui', replacement: path.resolve(__dirname, '../../devui') },
26+
]
27+
}
2128
});
2229

2330
const rollupOptions = {

packages/devui-vue/devui/accordion/src/accordion.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@import '../../styles-var/devui-var.scss';
1+
@import '@devui/theme/styles-var/devui-var.scss';
22

33
.#{$devui-prefix}-accordion__menu {
44
ol,

packages/devui-vue/devui/action-timeline/src/action-timeline.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@import '../../styles-var/devui-var.scss';
1+
@import '@devui/theme/styles-var/devui-var.scss';
22

33
.dp-action-timeline {
44
background-color: $devui-base-bg;

packages/devui-vue/devui/alert/__tests__/alert.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { mount } from '@vue/test-utils';
2-
import { useNamespace } from '../../shared/hooks/use-namespace';
2+
import { useNamespace } from '@devui/shared/utils';
33
import { h } from 'vue';
44
import Alert from '../src/alert';
55

66
const ns = useNamespace('alert', true);
7+
const close = useNamespace('close', true);
78

89
const baseClass = ns.b();
9-
const closeClass = ns.e('close-icon');
10+
const closeClass = close.b();
1011
const iconClass = ns.e('icon');
1112
const successIconClass = ns.em('icon', 'success');
1213
const warningIconClass = ns.em('icon', 'warning');

packages/devui-vue/devui/alert/src/alert.scss

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@import '../../styles-var/devui-var.scss';
1+
@import '@devui/theme/styles-var/devui-var.scss';
22

33
.#{$devui-prefix}-alert {
44
color: $devui-text;
@@ -18,7 +18,6 @@
1818
}
1919

2020
.#{$devui-prefix}-alert__content {
21-
display: flex;
2221
padding: 0 16px 0 4px;
2322
word-break: normal;
2423
word-wrap: break-word;
@@ -46,7 +45,6 @@
4645

4746
&.#{$devui-prefix}-alert--success {
4847
background-color: $devui-success-bg;
49-
border-color: $devui-success-line;
5048
color: $devui-text;
5149

5250
.#{$devui-prefix}-alert__close-icon {
@@ -58,7 +56,6 @@
5856

5957
&.#{$devui-prefix}-alert--info {
6058
background-color: $devui-info-bg;
61-
border-color: $devui-info-line;
6259
color: $devui-text;
6360

6461
.#{$devui-prefix}-alert__close-icon {
@@ -70,7 +67,6 @@
7067

7168
&.#{$devui-prefix}-alert--warning {
7269
background-color: $devui-warning-bg;
73-
border-color: $devui-warning-line;
7470
color: $devui-text;
7571

7672
.#{$devui-prefix}-alert__close-icon {
@@ -82,7 +78,6 @@
8278

8379
&.#{$devui-prefix}-alert--danger {
8480
background-color: $devui-danger-bg;
85-
border-color: $devui-danger-line;
8681
color: $devui-text;
8782

8883
.#{$devui-prefix}-alert__close-icon {
@@ -93,7 +88,6 @@
9388
}
9489

9590
&.#{$devui-prefix}-alert--simple {
96-
border-color: $devui-line;
9791
color: $devui-text;
9892

9993
.#{$devui-prefix}-alert__close-icon {
@@ -167,7 +161,7 @@
167161
margin-right: 4px;
168162
}
169163

170-
.#{$devui-prefix}-alter--close {
164+
.#{$devui-prefix}-alert--close {
171165
margin: 0;
172166
padding-top: 0;
173167
padding-bottom: 0;

packages/devui-vue/devui/alert/src/alert.tsx

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { defineComponent, ref, Transition, onMounted } from 'vue';
22
import AlertCloseIcon from './components/alert-close-icon';
33
import AlertTypeIcon from './components/alert-type-icon';
44
import { alertProps } from './alert-types';
5-
import { useNamespace } from '../../shared/hooks/use-namespace';
5+
import { useNamespace } from '@devui/shared/utils';
66
import './alert.scss';
77

88
export default defineComponent({
@@ -47,14 +47,12 @@ export default defineComponent({
4747
<AlertTypeIcon type={props.type} />
4848
</span>
4949
) : null}
50-
<div class={ns.e('content')}>
51-
<span>{ctx.slots.default?.()}</span>
52-
{props.closeable ? (
53-
<div class={ns.e('close-icon')} onClick={close}>
54-
<AlertCloseIcon />
55-
</div>
56-
) : null}
57-
</div>
50+
<div class={ns.e('content')}>{ctx.slots.default?.()} </div>
51+
{props.closeable ? (
52+
<div class={ns.e('close-icon')} onClick={close}>
53+
<AlertCloseIcon />
54+
</div>
55+
) : null}
5856
</div>
5957
</Transition>
6058
) : null;

packages/devui-vue/devui/alert/src/components/alert-type-icon.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { AlertType } from '../alert-types';
2-
import { useNamespace } from '../../../shared/hooks/use-namespace';
2+
import { useNamespace } from '@devui/shared/utils';
33

44
const ns = useNamespace('alert');
55
const AlertTypeIcon = (props: { type: AlertType }): JSX.Element => (

packages/devui-vue/devui/anchor/src/anchor.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@import '../../styles-var/devui-var.scss';
1+
@import '@devui/theme/styles-var/devui-var.scss';
22

33
.mysidebar {
44
width: 240px;

packages/devui-vue/devui/auto-complete/src/auto-complete.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@import '../../styles-var/devui-var.scss';
1+
@import '@devui/theme/styles-var/devui-var.scss';
22

33
.#{$devui-prefix}-auto-complete,
44
.#{$devui-prefix}-auto-complete__menu {

packages/devui-vue/devui/avatar/src/avatar.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
@import '../../styles-var/devui-var.scss';
1+
@import '@devui/theme/styles-var/devui-var.scss';
22

33
.#{$devui-prefix}-avatar {
44
display: inline-block;
55
}
66

7-
.#{$devui-prefix}-avatar__style {
7+
.#{$devui-prefix}-avatar--style {
88
display: inline-block;
99
text-align: center;
1010
color: $devui-light-text;

packages/devui-vue/devui/avatar/src/avatar.tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@ import { defineComponent, watch, toRefs, ref, computed } from 'vue';
22
import AvatarBodyIcon from './components/avatar-body-icon';
33
import AvatarNoBodyIcon from './components/avatar-nobody-icon';
44
import { AvatarProps, avatarProps } from './avatar-types';
5-
import { useNamespace } from '../../shared/hooks/use-namespace';
5+
import { useNamespace } from '@devui/shared/utils';
66
import './avatar.scss';
77

88
export default defineComponent({
99
name: 'DAvatar',
1010
props: avatarProps,
11-
setup(props: AvatarProps) {
11+
emits: ['loadError'],
12+
setup(props: AvatarProps, ctx) {
1213
const { name, width, height, customText, gender, imgSrc, isRound } = toRefs(props);
1314
const isNobody = ref<boolean>(true);
1415
const isErrorImg = ref<boolean>(false);
@@ -17,7 +18,7 @@ export default defineComponent({
1718
const nameDisplay = ref<string>();
1819

1920
const ns = useNamespace('avatar');
20-
const styleNS = ns.e('style');
21+
const styleNS = ns.m('style');
2122
const bgNS = computed(() => {
2223
return ns.m(`${'background-' + code.value}`);
2324
});
@@ -29,7 +30,7 @@ export default defineComponent({
2930
} else if (gender.value.toLowerCase() === 'female') {
3031
code.value = 0;
3132
} else {
32-
console.warn('gender must be "Male" or "Female"');
33+
throw new Error('gender must be "Male" or "Female"');
3334
}
3435
return;
3536
}
@@ -71,8 +72,9 @@ export default defineComponent({
7172
getBackgroundColor(nameValue.substr(0, 1));
7273
};
7374

74-
const showErrorAvatar = (): void => {
75+
const showErrorAvatar = (e: Event): void => {
7576
isErrorImg.value = true;
77+
ctx.emit('loadError', e);
7678
};
7779

7880
const calcValues = (nameInput: string): void => {
@@ -113,7 +115,7 @@ export default defineComponent({
113115

114116
const nameElement = (
115117
<span
116-
class={[styleNS, bgNS.value]}
118+
class={`${styleNS} ${bgNS.value}`}
117119
style={{
118120
height: `${height.value}px`,
119121
width: `${width.value}px`,
@@ -142,7 +144,7 @@ export default defineComponent({
142144
<AvatarNoBodyIcon width={width.value} height={height.value} />
143145
</span>
144146
);
145-
const noBody = (!imgSrc.value && isNobody.value) || isErrorImg.value ? noBodyElement : null;
147+
const noBody = (!imgSrc.value && isNobody.value) || (imgSrc.value && isErrorImg.value) ? noBodyElement : null;
146148
return (
147149
<span class={ns.b()}>
148150
{hasImgSrc}

packages/devui-vue/devui/back-top/src/back-top.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@import '../../styles-var/devui-var.scss';
1+
@import '@devui/theme/styles-var/devui-var.scss';
22

33
.#{$devui-prefix}-back-top {
44
position: fixed;

0 commit comments

Comments
 (0)