12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <script lang="ts" setup>
- import { right } from '../core/libs/svgs'
- const props = defineProps({
- customClass: {
- type: String,
- default: () => '',
- },
- title: {
- type: String,
- default: () => '',
- },
- subtitle: {
- type: String,
- default: undefined,
- },
- path: {
- type: String as PropType<string | undefined>,
- default: () => undefined,
- required: false,
- },
- size: {
- type: String as PropType<'sm' | 'base' | 'lg' | 'xl'>,
- default: () => 'xl',
- },
- endText: {
- type: String,
- default: () => '',
- },
- endArrow: {
- type: Boolean,
- default: () => false,
- },
- endClass: {
- type: String,
- default: '',
- },
- dark: {
- type: Boolean,
- default: false,
- },
- })
- const handleMore = async () => {
- props.path && (await uni.navigateTo({ url: props.path }))
- }
- </script>
- <template>
- <view
- class="flex justify-between items-center gap-2.5"
- :class="[customClass]"
- @click="handleMore"
- >
- <div
- class="font-normal"
- :class="[
- `text-${size}`,
- (dark
- ? { sm: 'text-white', base: 'text-white', lg: 'text-white', xl: 'text-white' }
- : { sm: 'text-black/90', base: 'text-black/90', lg: 'text-white', xl: 'text-black' })[
- size
- ],
- ]"
- >
- {{ title }}
- </div>
- <div class="text-black/60 text-xs font-normal font-['PingFang_SC'] leading-[10.18px]">
- {{ subtitle }}
- </div>
- <div class="overflow-hidden flex-1">
- <slot name="start"></slot>
- </div>
- <template v-if="$slots.append">
- <slot name="append"></slot>
- </template>
- <div
- v-else
- class="flex items-center gap-1 text-right text-black/30 text-sm font-normal leading-tight"
- >
- <template v-if="endText ?? '' !== ''">{{ endText }}</template>
- <template v-if="path || endArrow">
- <wd-img :src="right" width="12" height="12"></wd-img>
- </template>
- </div>
- </view>
- </template>
|