123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import { getColumns, isObject, isFunction } from '../utils'
- export const commonMixin = {
- data () {
- return {
- isConfirmChange: false,
- indicatorStyle: `height: 34px`,
- pressTimeout: null
- }
- },
- created () {
- this.init('init')
- },
- methods: {
- init (changeType) {
- if (this.list && this.list.length) {
- const column = getColumns({
- value: this.value,
- list: this.list,
- mode: this.mode,
- props: this.props,
- level: this.level
- })
- const { columns, value, item, index } = column
- this.selectValue = value
- this.selectItem = item
- this.pickerColumns = columns
- this.pickerValue = index
- this.$emit('change', {
- value: this.selectValue,
- item: this.selectItem,
- index: this.pickerValue,
- change: changeType
- })
- }
- },
- touchstart (e) {
- if (!this.pressEnable) return
- clearTimeout(this.pressTimeout)
- this.pressTimeout = setTimeout(() => {
- let item = {}
- let toastTitle = ''
- // #ifdef APP-NVUE
- item = e.target.dataset.item
- // #endif
- // #ifdef H5
- item = JSON.parse(e.currentTarget.dataset.item)
- // #endif
- // #ifndef APP-NVUE || H5
- item = e.currentTarget.dataset.item
- // #endif
- // #ifdef APP-PLUS || H5
- toastTitle = this.getLabel(item)
- // #endif
- // #ifndef APP-PLUS || H5
- toastTitle = item[this.props.label] || item
- // #endif
- uni.showToast({
- title: toastTitle,
- icon: 'none'
- })
- }, this.pressTime)
- },
- touchmove () {
- if (!this.pressEnable) return
- clearTimeout(this.pressTimeout)
- },
- touchend () {
- if (!this.pressEnable) return
- clearTimeout(this.pressTimeout)
- },
- getLabel (item, rowIndex, columnIndex) {
- if (this.formatter && isFunction(this.formatter)) {
- return this.formatter({ item, rowIndex, columnIndex })
- } else {
- return item[this.props.label] || item
- }
- }
- },
- watch: {
- value () {
- if (!this.isConfirmChange) {
- this.init('value')
- }
- },
- list () {
- this.init('list')
- }
- }
- }
|