123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- import baseComponent from '../helpers/baseComponent'
- import classNames from '../helpers/classNames'
- baseComponent({
- relations: {
- '../cell-group/index': {
- type: 'parent',
- },
- },
- properties: {
- prefixCls: {
- type: String,
- value: 'wux-cell',
- },
- disabled: {
- type: Boolean,
- value: false,
- },
- hoverClass: {
- type: String,
- value: 'default',
- },
- hoverStopPropagation: {
- type: Boolean,
- value: false,
- },
- hoverStartTime: {
- type: Number,
- value: 20,
- },
- hoverStayTime: {
- type: Number,
- value: 70,
- },
- lang: {
- type: String,
- value: 'en',
- },
- sessionFrom: {
- type: String,
- value: '',
- },
- sendMessageTitle: {
- type: String,
- value: '',
- },
- sendMessagePath: {
- type: String,
- value: '',
- },
- sendMessageImg: {
- type: String,
- value: '',
- },
- showMessageCard: {
- type: Boolean,
- value: false,
- },
- appParameter: {
- type: String,
- value: '',
- },
- thumb: {
- type: String,
- value: '',
- },
- title: {
- type: String,
- value: '',
- },
- label: {
- type: String,
- value: '',
- },
- extra: {
- type: String,
- value: '',
- },
- isLink: {
- type: Boolean,
- value: false,
- },
- openType: {
- type: String,
- value: 'navigateTo',
- },
- url: {
- type: String,
- value: '',
- },
- delta: {
- type: Number,
- value: 1,
- },
- },
- data: {
- isLast: false,
- },
- computed: {
- classes() {
- const { prefixCls, hoverClass, isLast, isLink, disabled } = this.data
- const wrap = classNames(prefixCls, {
- [`${prefixCls}--last`]: isLast,
- [`${prefixCls}--access`]: isLink,
- [`${prefixCls}--disabled`]: disabled,
- })
- const hd = `${prefixCls}__hd`
- const thumb = `${prefixCls}__thumb`
- const bd = `${prefixCls}__bd`
- const text = `${prefixCls}__text`
- const desc = `${prefixCls}__desc`
- const ft = `${prefixCls}__ft`
- const hover = hoverClass && hoverClass !== 'default' ? hoverClass : `${prefixCls}--hover`
- return {
- wrap,
- hd,
- thumb,
- bd,
- text,
- desc,
- ft,
- hover,
- }
- },
- },
- methods: {
- onTap() {
- if (!this.data.disabled) {
- this.triggerEvent('click')
- this.linkTo()
- }
- },
- bindgetuserinfo(e) {
- this.triggerEvent('getuserinfo', e.detail)
- },
- bindcontact(e) {
- this.triggerEvent('contact', e.detail)
- },
- bindgetphonenumber(e) {
- this.triggerEvent('getphonenumber', e.detail)
- },
- bindopensetting(e) {
- this.triggerEvent('opensetting', e.detail)
- },
- onError(e) {
- this.triggerEvent('error', e.detail)
- },
- linkTo() {
- const { url, isLink, openType, delta } = this.data
- const navigate = [
- 'navigateTo',
- 'redirectTo',
- 'switchTab',
- 'navigateBack',
- 'reLaunch',
- ]
- // openType 属性可选值为 navigateTo、redirectTo、switchTab、navigateBack、reLaunch
- if (!isLink || !url || !navigate.includes(openType)) {
- return false
- } else if (openType === 'navigateBack') {
- return wx[openType].call(wx, { delta })
- } else {
- return wx[openType].call(wx, { url })
- }
- },
- updateIsLastElement(isLast) {
- this.setData({ isLast })
- },
- },
- })
|