diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml deleted file mode 100644 index 22f16b3c6..000000000 --- a/.github/workflows/push.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: MAIN_PUSH - -on: push - -jobs: - call-test-build: - uses: Tencent/tdesign/.github/workflows/test-build.yml@main diff --git a/CHANGELOG.md b/CHANGELOG.md index 30074778b..88a634fcb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,25 @@ toc: false spline: explain --- +## 🌈 1.8.0 `2025-01-22` +### 🚀 Features +- `Input`: 新增 `cursorColor` 属性 @SkylerXie ([#1703](https://github.com/Tencent/tdesign-mobile-vue/pull/1703)) +- `Icon`: 更新图标库版本至 `0.3.4`,新增 `logo-alipay`、`logo-behance-filled` 等图标,修改 `logo-wecom` 图标,移除不合理的 `logo-wecom-filled` 图标 @anlyyao ([#1715](https://github.com/Tencent/tdesign-mobile-vue/pull/1715)) +- `ActionSheet`: 新增 `showOverlay` 和 `popupProps` 属性 @hensonjunyuan ([#1704](https://github.com/Tencent/tdesign-mobile-vue/pull/1704)) +- `Tabs`: 新增 `split` 和 `middle` 属性,并支持自动定位到激活项位置 @Faxxicy ([#1663](https://github.com/Tencent/tdesign-mobile-vue/pull/1663)) @novlan1 ([#1727](https://github.com/Tencent/tdesign-mobile-vue/pull/1727)) +- `TabPanel`: 新增 `icon` 属性 @novlan1 ([#1727](https://github.com/Tencent/tdesign-mobile-vue/pull/1727)) +- `Grid`: 新增 `hover` 属性 @novlan1 ([#1725](https://github.com/Tencent/tdesign-mobile-vue/pull/1725)) +- `GridItem`: 新增 `icon` 属性 @novlan1 ([#1725](https://github.com/Tencent/tdesign-mobile-vue/pull/1725)) +- `Search`: 新增 `clearTrigger` 属性 @novlan1 ([#1726](https://github.com/Tencent/tdesign-mobile-vue/pull/1726)) +### 🐞 Bug Fixes +- `Tabs`: 当子项类型为 `fragment` 时,标签无法正确渲染 @betavs ([#1690](https://github.com/Tencent/tdesign-mobile-vue/pull/1690)) +- `Radio`: 当`value=0` 时无法被选中的问题 @RSS1102 ([#1709](https://github.com/Tencent/tdesign-mobile-vue/pull/1709)) +- `Checkbox`: 修复 `CheckGroup` 使用 `options` 属性时 `disabled` 无效的问题 @anlyyao ([#1713](https://github.com/Tencent/tdesign-mobile-vue/pull/1713)) +- `TabBar`: 修复子项数量大于 3 时子项宽度未保持一致 @anlyyao ([#1714](https://github.com/Tencent/tdesign-mobile-vue/pull/1714)) +- `Dialog`: 修复圆角样式错误,并新增 `--td-dialog-border-radius` @anlyyao ([#1733](https://github.com/Tencent/tdesign-mobile-vue/pull/1733)) +- `Popup`: 修复圆角错误,并新增 `--td-popup-close-btn-color` @anlyyao ([#1734](https://github.com/Tencent/tdesign-mobile-vue/pull/1734)) +- `Cell`: 修复部分样式错误,并更新 `align` 属性描述 @liweijie0812 ([#1731](https://github.com/Tencent/tdesign-mobile-vue/pull/1731)) + ## 🌈 1.7.0 `2024-12-19` ### 🚀 Features - `IDE`: 增加 `Volar`、`WebStorm` 提示文件 @liweijie0812 ([#1682](https://github.com/Tencent/tdesign-mobile-vue/pull/1682)) diff --git a/package.json b/package.json index 9054bb89a..a75b08846 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tdesign-mobile-vue", "purename": "tdesign", - "version": "1.7.0", + "version": "1.8.0", "description": "tdesign-mobile-vue", "author": "TDesign Group", "homepage": "https://tdesign.tencent.com/mobile-vue/", @@ -92,7 +92,7 @@ "@vueuse/core": "10.7.0", "dayjs": "^1.10.7", "lodash": "^4.17.21", - "tdesign-icons-vue-next": "^0.3.3", + "tdesign-icons-vue-next": "^0.3.4", "validator": "^13.5.1" }, "peerDependencies": { @@ -173,9 +173,9 @@ "rollup-plugin-terser": "^7.0.2", "rollup-plugin-vue": "^6.0.0", "rollup-pluginutils": "^2.8.2", - "tdesign-icons-view": "^0.3.2", - "tdesign-publish-cli": "^0.0.10", - "tdesign-site-components": "^0.15.2", + "tdesign-icons-view": "^0.3.4", + "tdesign-publish-cli": "^0.0.12", + "tdesign-site-components": "^0.15.6", "tslib": "^2.3.1", "typescript": "~4.7.2", "vite": "^2.9.14", diff --git a/scripts/test/snap-setup.js b/scripts/test/snap-setup.js index 07cc86f02..d24530fdc 100644 --- a/scripts/test/snap-setup.js +++ b/scripts/test/snap-setup.js @@ -1,6 +1,6 @@ import { config } from '@vue/test-utils'; import { createApp } from 'vue'; -import { renderToString } from '@vue/server-renderer'; +import { renderToString } from 'vue/server-renderer'; import TDesign from '@/index'; import DemoBlock from '../../site/mobile/components/demo-block.vue'; diff --git a/site/web/stackblitz/content.ts b/site/web/stackblitz/content.ts index 4e5a6b33c..76d2b6f3c 100644 --- a/site/web/stackblitz/content.ts +++ b/site/web/stackblitz/content.ts @@ -50,9 +50,10 @@ export const stackblitzRc = ` export const viteConfigContent = ` import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; + import vueJsx from '@vitejs/plugin-vue-jsx'; export default defineConfig({ - plugins: [vue()], + plugins: [vue(), vueJsx()], }); `; @@ -75,7 +76,8 @@ export const packageJSONContent = JSON.stringify( vite: orgPkg.devDependencies.vite, '@vue/compiler-sfc': orgPkg.devDependencies['@vue/compiler-sfc'], '@vitejs/plugin-vue': orgPkg.devDependencies['@vitejs/plugin-vue'], - 'less': orgPkg.devDependencies['less'] + '@vitejs/plugin-vue-jsx': orgPkg.devDependencies['@vitejs/plugin-vue-jsx'], + less: orgPkg.devDependencies['less'], }, }, null, diff --git a/src/_common b/src/_common index 53786c587..ef7c8d3c5 160000 --- a/src/_common +++ b/src/_common @@ -1 +1 @@ -Subproject commit 53786c58752401e648cc45918f2a4dbb9e8cecfa +Subproject commit ef7c8d3c5978476b26affe54abcb6fe5f5ad9e8b diff --git a/src/action-sheet/action-sheet-grid.tsx b/src/action-sheet/action-sheet-grid.tsx index ae2cece59..0b51fd9b5 100644 --- a/src/action-sheet/action-sheet-grid.tsx +++ b/src/action-sheet/action-sheet-grid.tsx @@ -5,7 +5,6 @@ import { ActionSheetItem } from './type'; import { usePrefixClass } from '../hooks/useClass'; export default defineComponent({ - components: { TGrid, TGridItem, TSwiper, TSwiperItem }, props: { items: { type: Array, @@ -51,7 +50,7 @@ export default defineComponent({ const swiper = () => { const swiperItems = actionItems.value.map((items, i) => { const gridItems = items.map((item, index) => ( - )); return ( - - {gridItems} - + + {gridItems} + ); }); if (actionItems.value.length > 1) { return ( - {swiperItems} - + ); } return null; @@ -87,7 +86,7 @@ export default defineComponent({ const grid = () => { if (actionItems.value.length === 1) { const items = actionItems.value[0].map((item, index) => ( - )); - return {items}; + return {items}; } return null; }; diff --git a/src/action-sheet/action-sheet-list.tsx b/src/action-sheet/action-sheet-list.tsx index 74d814dd7..6ed9b507f 100644 --- a/src/action-sheet/action-sheet-list.tsx +++ b/src/action-sheet/action-sheet-list.tsx @@ -6,7 +6,6 @@ import { useTNodeDefault } from '../hooks/tnode'; import { usePrefixClass } from '../hooks/useClass'; export default defineComponent({ - components: { TButton, TBadge }, props: { items: { type: Array as PropType, @@ -39,7 +38,7 @@ export default defineComponent({ const content = () => { if (item.badge.dot || item.badge.count) { return ( - {item.label} - + ); } return renderTNodeJSX('badge', { @@ -60,7 +59,7 @@ export default defineComponent({ return {item.label}; }; const buttonList = items.value.map((item, index) => ( - handleSelected(index)} > {renderBadgeNode(item)} - + )); return buttonList; }; diff --git a/src/action-sheet/action-sheet.en-US.md b/src/action-sheet/action-sheet.en-US.md index 2120dcd18..e3840e26c 100644 --- a/src/action-sheet/action-sheet.en-US.md +++ b/src/action-sheet/action-sheet.en-US.md @@ -6,13 +6,15 @@ name | type | default | description | required -- | -- | -- | -- | -- -align | String | center | options:center/left | N +align | String | center | options: center/left | N cancelText | String | - | \- | N count | Number | 8 | \- | N description | String | - | \- | N -items | Array | - | required。Typescript:`Array` `interface ActionSheetItem {label: string; color?: string; disabled?: boolean }`。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/action-sheet/type.ts) | Y +items | Array | - | Typescript:`Array` `interface ActionSheetItem { label: string; color?: string; disabled?: boolean; icon?: TNode; badge?: BadgeProps }`,[Badge API Documents](./badge?tab=api)。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/blob/develop/src/common.ts)。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/action-sheet/type.ts) | N +popupProps | Object | {} | Typescript:`PopupProps`,[Popup API Documents](./popup?tab=api)。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/action-sheet/type.ts) | N showCancel | Boolean | true | \- | N -theme | String | list | options:list/grid | N +showOverlay | Boolean | true | \- | N +theme | String | list | options: list/grid | N visible | Boolean | false | required。`v-model` and `v-model:visible` is supported | Y defaultVisible | Boolean | false | required。uncontrolled property | Y onCancel | Function | | Typescript:`(context: { e: MouseEvent }) => void`
| N @@ -27,8 +29,8 @@ cancel | `(context: { e: MouseEvent })` | \- close | `(trigger: ActionSheetTriggerSource)` | [see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/action-sheet/type.ts)。
`type ActionSheetTriggerSource = 'overlay' \| 'command' \| 'select' `
selected | `(selected: ActionSheetItem \| string, index: number)` | \- - ### CSS Variables + The component provides the following CSS variables, which can be used to customize styles. Name | Default Value | Description -- | -- | -- @@ -43,4 +45,4 @@ Name | Default Value | Description --td-action-sheet-list-item-disabled-color | @font-gray-4 | - --td-action-sheet-list-item-height | 56px | - --td-action-sheet-text-align | center | - ---td-action-sheet-text-weight | 400 | - +--td-action-sheet-text-weight | 400 | - \ No newline at end of file diff --git a/src/action-sheet/action-sheet.md b/src/action-sheet/action-sheet.md index 5886652e1..d58e3ca3c 100644 --- a/src/action-sheet/action-sheet.md +++ b/src/action-sheet/action-sheet.md @@ -1,16 +1,19 @@ :: BASE_DOC :: ## API + ### ActionSheet Props -名称 | 类型 | 默认值 | 说明 | 必传 +名称 | 类型 | 默认值 | 描述 | 必传 -- | -- | -- | -- | -- align | String | center | 水平对齐方式。可选项:center/left | N cancelText | String | - | 设置取消按钮的文本 | N count | Number | 8 | 设置每页展示菜单的数量,仅当 type=grid 时有效 | N description | String | - | 动作面板描述文字 | N -items | Array | - | 必需。菜单项。TS 类型:`Array` `interface ActionSheetItem {label: string; color?: string; disabled?: boolean }`。[详细类型定义](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/action-sheet/type.ts) | Y +items | Array | - | 菜单项。TS 类型:`Array` `interface ActionSheetItem { label: string; color?: string; disabled?: boolean; icon?: TNode; badge?: BadgeProps }`,[Badge API Documents](./badge?tab=api)。[通用类型定义](https://github.com/Tencent/tdesign-mobile-vue/blob/develop/src/common.ts)。[详细类型定义](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/action-sheet/type.ts) | N +popupProps | Object | {} | 透传 Popup 组件全部属性。TS 类型:`PopupProps`,[Popup API Documents](./popup?tab=api)。[详细类型定义](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/action-sheet/type.ts) | N showCancel | Boolean | true | 是否显示取消按钮 | N +showOverlay | Boolean | true | 是否显示遮罩层 | N theme | String | list | 展示类型,列表和表格形式展示。可选项:list/grid | N visible | Boolean | false | 必需。显示与隐藏。支持语法糖 `v-model` 或 `v-model:visible` | Y defaultVisible | Boolean | false | 必需。显示与隐藏。非受控属性 | Y @@ -26,8 +29,8 @@ cancel | `(context: { e: MouseEvent })` | 点击取消按钮时触发 close | `(trigger: ActionSheetTriggerSource)` | 关闭时触发。[详细类型定义](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/action-sheet/type.ts)。
`type ActionSheetTriggerSource = 'overlay' \| 'command' \| 'select' `
selected | `(selected: ActionSheetItem \| string, index: number)` | 选择菜单项时触发 - ### CSS Variables + 组件提供了下列 CSS 变量,可用于自定义样式。 名称 | 默认值 | 描述 -- | -- | -- @@ -42,4 +45,4 @@ selected | `(selected: ActionSheetItem \| string, index: number)` | 选择菜单 --td-action-sheet-list-item-disabled-color | @font-gray-4 | - --td-action-sheet-list-item-height | 56px | - --td-action-sheet-text-align | center | - ---td-action-sheet-text-weight | 400 | - +--td-action-sheet-text-weight | 400 | - \ No newline at end of file diff --git a/src/action-sheet/action-sheet.tsx b/src/action-sheet/action-sheet.tsx index c243347fe..8891c1832 100644 --- a/src/action-sheet/action-sheet.tsx +++ b/src/action-sheet/action-sheet.tsx @@ -1,24 +1,18 @@ -import { watch, defineComponent, computed } from 'vue'; -import { useDefault } from '../shared'; -import ActionSheetList from './action-sheet-list'; -import ActionSheetGrid from './action-sheet-grid'; -import TPopup from '../popup'; +import { computed, defineComponent, watch } from 'vue'; +import TActionSheetGrid from './action-sheet-grid'; +import TActionSheetList from './action-sheet-list'; import TButton from '../button'; +import TPopup from '../popup'; import config from '../config'; -import { TdActionSheetProps, ActionSheetItem } from './type'; +import { useConfig, usePrefixClass } from '../hooks/useClass'; +import { useDefault } from '../shared'; import props from './props'; -import { usePrefixClass, useConfig } from '../hooks/useClass'; +import { ActionSheetItem, TdActionSheetProps } from './type'; const { prefix } = config; export default defineComponent({ name: `${prefix}-action-sheet`, - components: { - TPopup, - TButton, - ActionSheetList, - ActionSheetGrid, - }, props, emits: ['selected', 'update:modelValue', 'cancel', 'close', 'update:visible'], setup(props, context) { @@ -26,7 +20,7 @@ export default defineComponent({ const { globalConfig } = useConfig('actionSheet'); const actionItems = computed(() => { - return props.items.map((item: String | ActionSheetItem) => { + return props.items.map((item: string | ActionSheetItem) => { if (typeof item === 'string') { return { label: item, @@ -89,12 +83,12 @@ export default defineComponent({ }; const list = () => { if (props.theme === 'list') { - return ; + return ; } }; const grid = () => { if (props.theme === 'grid') { - return ; + return ; } }; const cancel = () => { @@ -102,9 +96,9 @@ export default defineComponent({ return (
- + {props.cancelText || globalConfig.value.cancel} - +
); } @@ -119,15 +113,17 @@ export default defineComponent({ ); }; return ( - {root()} - + ); }; }, diff --git a/src/action-sheet/props.ts b/src/action-sheet/props.ts index f9054fe49..e5c43c5b0 100644 --- a/src/action-sheet/props.ts +++ b/src/action-sheet/props.ts @@ -35,14 +35,22 @@ export default { /** 菜单项 */ items: { type: Array as PropType, - default: [], - required: true, + }, + /** 透传 Popup 组件全部属性 */ + popupProps: { + type: Object as PropType, + default: () => ({}), }, /** 是否显示取消按钮 */ showCancel: { type: Boolean, default: true, }, + /** 是否显示遮罩层 */ + showOverlay: { + type: Boolean, + default: true, + }, /** 展示类型,列表和表格形式展示 */ theme: { type: String as PropType, diff --git a/src/action-sheet/type.ts b/src/action-sheet/type.ts index 40600e119..822849002 100644 --- a/src/action-sheet/type.ts +++ b/src/action-sheet/type.ts @@ -3,8 +3,11 @@ /** * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC * */ + +import { BadgeProps } from '../badge'; +import { PopupProps } from '../popup'; import { TNode } from '../common'; -import { TdBadgeProps } from '../badge/type'; + export interface TdActionSheetProps { /** * 水平对齐方式 @@ -30,11 +33,21 @@ export interface TdActionSheetProps { * 菜单项 */ items?: Array; + /** + * 透传 Popup 组件全部属性 + * @default {} + */ + popupProps?: PopupProps; /** * 是否显示取消按钮 * @default true */ showCancel?: boolean; + /** + * 是否显示遮罩层 + * @default true + */ + showOverlay?: boolean; /** * 展示类型,列表和表格形式展示 * @default list @@ -74,7 +87,7 @@ export interface ActionSheetItem { color?: string; disabled?: boolean; icon?: TNode; - badge?: TdBadgeProps; + badge?: BadgeProps; } export type ActionSheetTriggerSource = 'overlay' | 'command' | 'select'; diff --git a/src/badge/__test__/__snapshots__/demo.test.jsx.snap b/src/badge/__test__/__snapshots__/demo.test.jsx.snap index d1168644c..6f06e5235 100644 --- a/src/badge/__test__/__snapshots__/demo.test.jsx.snap +++ b/src/badge/__test__/__snapshots__/demo.test.jsx.snap @@ -623,7 +623,7 @@ exports[`Badge > Badge mobileVue demo works fine 1`] = ` 角标
Badge themeVue demo works fine 1`] = ` 角标
Calendar baseVue demo works fine 1`] = `
Calendar baseVue demo works fine 1`] = `
Calendar customButtonVue demo works fine 1`] = `
Calendar customButtonVue demo works fine 1`] = `
Calendar customRangeVue demo works fine 1`] = `
Calendar customRangeVue demo works fine 1`] = `
Calendar customTextVue demo works fine 1`] = `
Calendar customTextVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar mobileVue demo works fine 1`] = `
Calendar multipleVue demo works fine 1`] = `
Calendar multipleVue demo works fine 1`] = `
Calendar rangeVue demo works fine 1`] = `
Calendar rangeVue demo works fine 1`] = `
Cascader baseVue demo works fine 1`] = ` >
Cascader baseVue demo works fine 1`] = ` 请选择地址
Cascader checkStrictlyVue demo works fine 1`] = ` >
Cascader checkStrictlyVue demo works fine 1`] = ` 请选择地址
Cascader keysVue demo works fine 1`] = ` >
Cascader keysVue demo works fine 1`] = ` 请选择地址
Cascader lazyVue demo works fine 1`] = ` >
Cascader lazyVue demo works fine 1`] = ` 请选择地址
Cascader mobileVue demo works fine 1`] = `
Cascader mobileVue demo works fine 1`] = ` 请选择地址
Cascader mobileVue demo works fine 1`] = `
Cascader mobileVue demo works fine 1`] = ` 请选择地址
Cascader mobileVue demo works fine 1`] = `
Cascader mobileVue demo works fine 1`] = ` 请选择地址
Cascader mobileVue demo works fine 1`] = `
Cascader mobileVue demo works fine 1`] = ` 请选择地址
Cascader mobileVue demo works fine 1`] = `
Cascader mobileVue demo works fine 1`] = ` 请选择地址
Cascader mobileVue demo works fine 1`] = `
Cascader mobileVue demo works fine 1`] = ` 请选择地址
Cascader mobileVue demo works fine 1`] = `
Cascader mobileVue demo works fine 1`] = ` 请选择地址
Cascader themeTabVue demo works fine 1`] = ` >
Cascader themeTabVue demo works fine 1`] = ` 请选择地址
Cascader withTitleVue demo works fine 1`] = ` >
Cascader withTitleVue demo works fine 1`] = ` 请选择地址
Cascader withValueVue demo works fine 1`] = ` >
Cascader withValueVue demo works fine 1`] = ` 请选择地址
{}; + const { prefix } = prefixConfig; config.global.stubs = { diff --git a/src/cell/__test__/__snapshots__/demo.test.jsx.snap b/src/cell/__test__/__snapshots__/demo.test.jsx.snap index be172143f..d7432c751 100644 --- a/src/cell/__test__/__snapshots__/demo.test.jsx.snap +++ b/src/cell/__test__/__snapshots__/demo.test.jsx.snap @@ -8,7 +8,7 @@ exports[`Cell > Cell groupVue demo works fine 1`] = ` >
Cell groupVue demo works fine 1`] = ` class="t-cell__left-icon" > @@ -44,7 +44,7 @@ exports[`Cell > Cell groupVue demo works fine 1`] = `
Cell groupVue demo works fine 1`] = `
Cell groupVue demo works fine 1`] = `
Cell groupVue demo works fine 1`] = `
Cell groupVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = ` >
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = ` 辅助信息
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = ` class="t-cell__left-icon" > @@ -503,7 +503,7 @@ exports[`Cell > Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = ` >
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = ` 辅助信息
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = ` > @@ -854,7 +854,7 @@ exports[`Cell > Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
- 多行带头像 + 单行标题
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
- 多行带图片 + 单行标题
Cell mobileVue demo works fine 1`] = ` >
Cell mobileVue demo works fine 1`] = ` class="t-cell__left-icon" > @@ -1148,7 +1148,7 @@ exports[`Cell > Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell mobileVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = ` >
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = ` 辅助信息
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = ` > @@ -1597,7 +1597,7 @@ exports[`Cell > Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
- 多行带头像 + 单行标题
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
Cell multipleVue demo works fine 1`] = `
- 多行带图片 + 单行标题
Cell singleVue demo works fine 1`] = ` >
Cell singleVue demo works fine 1`] = `
Cell singleVue demo works fine 1`] = `
Cell singleVue demo works fine 1`] = `
Cell singleVue demo works fine 1`] = `
Cell singleVue demo works fine 1`] = `
Cell singleVue demo works fine 1`] = `
Cell singleVue demo works fine 1`] = `
Cell singleVue demo works fine 1`] = ` 辅助信息
Cell singleVue demo works fine 1`] = `
Cell singleVue demo works fine 1`] = ` class="t-cell__left-icon" > @@ -2103,7 +2103,7 @@ exports[`Cell > Cell singleVue demo works fine 1`] = `
{ it('align render', async () => { alignList.forEach((a) => { - const wrapper = mount(() => ); - expect(wrapper.classes()).toContain(`t-cell--${a}`); + const wrapper = mount(() => ); + const rightAlign = wrapper.find(`.t-cell__right--${a}`); + expect(rightAlign.exists()).toBeTruthy(); }); }); diff --git a/src/cell/cell.md b/src/cell/cell.md index b690a4a9e..bc6e1d575 100644 --- a/src/cell/cell.md +++ b/src/cell/cell.md @@ -6,7 +6,7 @@ 名称 | 类型 | 默认值 | 描述 | 必传 -- | -- | -- | -- | -- -align | String | middle | 内容的对齐方式,默认居中对齐。可选项:top/middle/bottom | N +align | String | middle | 右侧内容的对齐方式,默认居中对齐。可选项:top/middle/bottom | N arrow | Boolean | false | 是否显示右侧箭头 | N bordered | Boolean | true | 是否显示下边框 | N description | String / Slot / Function | - | 下方内容描述。TS 类型:`string \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-mobile-vue/blob/develop/src/common.ts) | N diff --git a/src/cell/cell.tsx b/src/cell/cell.tsx index d088e5fa3..a199e5a96 100644 --- a/src/cell/cell.tsx +++ b/src/cell/cell.tsx @@ -14,14 +14,13 @@ export default defineComponent({ directives: { Hover }, props, setup(props) { - const readerTNodeJSX = useTNodeJSX(); - const readerTNodeContent = useContent(); + const renderTNodeJSX = useTNodeJSX(); + const renderTNodeContent = useContent(); const disabled = useFormDisabled(); const cellClass = usePrefixClass('cell'); const cellClasses = computed(() => [ `${cellClass.value}`, - `${cellClass.value}--${props.align}`, { [`${cellClass.value}--borderless`]: !props.bordered, }, @@ -35,30 +34,30 @@ export default defineComponent({ } }; - const readerImage = () => { + const renderImage = () => { if (typeof props.image === 'string') { return ; } - const image = readerTNodeJSX('image'); + const image = renderTNodeJSX('image'); return image; }; - const readerLeft = () => { - const leftIcon = readerTNodeJSX('leftIcon'); + const renderLeft = () => { + const leftIcon = renderTNodeJSX('leftIcon'); return (
{leftIcon &&
{leftIcon}
} - {readerImage()} + {renderImage()}
); }; - const readerTitle = () => { - const title = readerTNodeJSX('title'); + const renderTitle = () => { + const title = renderTNodeJSX('title'); if (!title) { return null; } - const description = readerTNodeJSX('description'); + const description = renderTNodeJSX('description'); return (
@@ -69,30 +68,30 @@ export default defineComponent({
); }; - const readerRight = () => { - const rightIcon = props.arrow ? : readerTNodeJSX('rightIcon'); + const renderRight = () => { + const rightIcon = props.arrow ? : renderTNodeJSX('rightIcon'); if (!rightIcon) { return null; } return ( -
+
{rightIcon}
); }; return () => { - const note = readerTNodeContent('default', 'note'); + const note = renderTNodeContent('default', 'note'); return (
- {readerLeft()} - {readerTitle()} + {renderLeft()} + {renderTitle()} {note &&
{note}
} - {readerRight()} + {renderRight()}
); }; diff --git a/src/cell/demos/group.vue b/src/cell/demos/group.vue index 482bb1245..184495de8 100644 --- a/src/cell/demos/group.vue +++ b/src/cell/demos/group.vue @@ -1,6 +1,6 @@ diff --git a/src/cell/props.ts b/src/cell/props.ts index d023a2290..2ce2c3c17 100644 --- a/src/cell/props.ts +++ b/src/cell/props.ts @@ -8,7 +8,7 @@ import { TdCellProps } from './type'; import { PropType } from 'vue'; export default { - /** 内容的对齐方式,默认居中对齐 */ + /** 右侧内容的对齐方式,默认居中对齐 */ align: { type: String as PropType, default: 'middle' as TdCellProps['align'], diff --git a/src/cell/type.ts b/src/cell/type.ts index 334a60464..beda427cd 100644 --- a/src/cell/type.ts +++ b/src/cell/type.ts @@ -8,7 +8,7 @@ import { TNode } from '../common'; export interface TdCellProps { /** - * 内容的对齐方式,默认居中对齐 + * 右侧内容的对齐方式,默认居中对齐 * @default middle */ align?: 'top' | 'middle' | 'bottom'; diff --git a/src/checkbox/__test__/__snapshots__/demo.test.jsx.snap b/src/checkbox/__test__/__snapshots__/demo.test.jsx.snap index 793ca3ec4..800d19b01 100644 --- a/src/checkbox/__test__/__snapshots__/demo.test.jsx.snap +++ b/src/checkbox/__test__/__snapshots__/demo.test.jsx.snap @@ -37,7 +37,7 @@ exports[`Checkbox > Checkbox allVue demo works fine 1`] = `
- +
Checkbox allVue demo works fine 1`] = `
- +
Checkbox allVue demo works fine 1`] = `
- +
Checkbox baseVue demo works fine 1`] = `
- +
Checkbox baseVue demo works fine 1`] = `
- +
Checkbox baseVue demo works fine 1`] = `
- +
Checkbox mobileVue demo works fine 1`] = `
- +
Checkbox mobileVue demo works fine 1`] = `
- +
Checkbox mobileVue demo works fine 1`] = `
- +
Checkbox mobileVue demo works fine 1`] = `
- +
Checkbox mobileVue demo works fine 1`] = `
- +
Checkbox mobileVue demo works fine 1`] = `
- +
{ @@ -106,24 +107,7 @@ export default defineComponent({ return ( {optionList.value.map((item, idx) => ( - + ))} ); diff --git a/src/checkbox/checkbox.tsx b/src/checkbox/checkbox.tsx index ef240835a..d7f94ab56 100644 --- a/src/checkbox/checkbox.tsx +++ b/src/checkbox/checkbox.tsx @@ -78,9 +78,9 @@ export default defineComponent({ }); const isDisabled = computed(() => { - if (checkboxGroup?.max.value) - return checkboxGroup.max.value <= checkboxGroup.innerValue.value.length && !isChecked.value; - + if (!props.checkAll && !isChecked.value && checkboxGroup?.maxExceeded.value) { + return true; + } return disabled.value; }); diff --git a/src/checkbox/hooks/getOptions.ts b/src/checkbox/hooks/getOptions.ts index 93964e43e..fe9364df9 100644 --- a/src/checkbox/hooks/getOptions.ts +++ b/src/checkbox/hooks/getOptions.ts @@ -29,7 +29,6 @@ export const getOptions = (props: any, slots: Slots) => { r = { label: String(item), value: item }; } else { r = { ...item }; - r.disabled = r.disabled === undefined ? props.disabled : r.disabled; } return r; }); diff --git a/src/collapse/__test__/__snapshots__/demo.test.jsx.snap b/src/collapse/__test__/__snapshots__/demo.test.jsx.snap index 21215929d..5708fa889 100644 --- a/src/collapse/__test__/__snapshots__/demo.test.jsx.snap +++ b/src/collapse/__test__/__snapshots__/demo.test.jsx.snap @@ -13,7 +13,7 @@ exports[`Collapse > Collapse accordionVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse accordionVue demo works fine 1`] = `
Collapse accordionVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse accordionVue demo works fine 1`] = `
Collapse accordionVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse accordionVue demo works fine 1`] = `
Collapse accordionVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse accordionVue demo works fine 1`] = `
Collapse actionVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse actionVue demo works fine 1`] = `
Collapse baseVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse baseVue demo works fine 1`] = `
Collapse cardVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse cardVue demo works fine 1`] = `
Collapse cardVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse cardVue demo works fine 1`] = `
Collapse cardVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse cardVue demo works fine 1`] = `
Collapse cardVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse cardVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse mobileVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse mobileVue demo works fine 1`] = `
Collapse placementVue demo works fine 1`] = ` class="t-collapse-panel__title" >
Collapse placementVue demo works fine 1`] = `
ConfigProvider mobileVue demo works fine 1`] = `
ConfigProvider mobileVue demo works fine 1`] = `
ConfigProvider mobileVue demo works fine 1`] = `
ConfigProvider otherEnVue demo works fine 1`] = `
ConfigProvider otherEnVue demo works fine 1`] = `
ConfigProvider otherEnVue demo works fine 1`] = `
DateTimePicker baseVue demo works fine 1`] = ` >
DateTimePicker customRangeVue demo works fine 1`] = ` >
DateTimePicker fullVue demo works fine 1`] = ` >
DateTimePicker mobileVue demo works fine 1`] = `
DateTimePicker mobileVue demo works fine 1`] = `
DateTimePicker mobileVue demo works fine 1`] = `
DateTimePicker mobileVue demo works fine 1`] = `
DateTimePicker timeVue demo works fine 1`] = ` >
DateTimePicker yearMonthVue demo works fine 1`] = ` >
Dialog confirmVue demo works fine 1`] = `
+
+ + + + +
`; @@ -217,7 +302,7 @@ exports[`Dialog > Dialog feedbackVue demo works fine 1`] = `
@@ -449,7 +538,7 @@ exports[`Dialog > Dialog imageDialogVue demo works fine 1`] = ` class="t-button__content" > - 图片置顶 + 图片置顶-带标题描述 @@ -462,7 +551,7 @@ exports[`Dialog > Dialog imageDialogVue demo works fine 1`] = `