nutui-uniapp
Version:
京东风格的轻量级移动端 Uniapp、Vue3 组件库(支持小程序开发)
61 lines (56 loc) • 1.63 kB
text/typescript
import type { ExtractPropTypes } from 'vue'
import { CLICK_EVENT } from '../_constants'
import { commonProps, isString, makeArrayProp, makeObjectProp, makeStringProp } from '../_utils'
import type { FollowType, ImagesType, InfoType, VideosType } from './type'
export const commentProps = {
...commonProps,
/**
* @description 头部样式展示类型,可选: `default`,`complex`
*/
headerType: makeStringProp<'default' | 'complex'>('default'),
/**
* @description 评论图片展示行数,可选: `one`,`multi`
*/
imagesRows: makeStringProp<'one' | 'multi'>('one'),
/**
* @description 设置评论内容省略行数
*/
ellipsis: {
type: [String, Number, Boolean],
default: false,
},
/**
* @description 视频信息
*/
videos: makeArrayProp<VideosType>([]),
/**
* @description 图片信息
*/
images: makeArrayProp<ImagesType>([]),
/**
* @description 评论详情
*/
info: makeObjectProp<InfoType>({} as InfoType),
/**
* @description
*/
labels: {
type: Function,
default: () => '',
},
/**
* @description 追评内容
*/
follow: makeObjectProp<FollowType>({} as FollowType),
/**
* @description 配置底部按钮
*/
operation: makeArrayProp<'replay' | 'like' | 'more'>(['replay', 'like', 'more']),
}
export type CommentProps = ExtractPropTypes<typeof commentProps>
export const commentEmits = {
[CLICK_EVENT]: (val: object) => val instanceof Object,
clickOperate: (val: string) => isString(val),
clickImages: (val: any) => val instanceof Object,
}
export type CommentEmits = typeof commentEmits