12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import baseComponent from '../helpers/baseComponent'
- import classNames from '../helpers/classNames'
-
- const defaultStatus = ['wait', 'process', 'finish', 'error']
- const defaultIcon = 'ios-checkmark'
-
- baseComponent({
- relations: {
- '../steps/index': {
- type: 'parent',
- },
- },
- properties: {
- prefixCls: {
- type: String,
- value: 'wux-step',
- },
- status: {
- type: String,
- value: '',
- },
- title: {
- type: String,
- value: '',
- },
- content: {
- type: String,
- value: '',
- },
- icon: {
- type: String,
- value: '',
- },
- },
- data: {
- width: '100%',
- length: 1,
- index: 0,
- current: 0,
- direction: 'horizontal',
- },
- computed: {
- classes: ['prefixCls, direction', function(prefixCls, direction) {
- const wrap = classNames(prefixCls, {
- [`${prefixCls}--${direction}`]: direction,
- })
- const hd = `${prefixCls}__hd`
- const icon = `${prefixCls}__icon`
- const thumb = `${prefixCls}__thumb`
- const bd = `${prefixCls}__bd`
- const title = `${prefixCls}__title`
- const content = `${prefixCls}__content`
- const ft = `${prefixCls}__ft`
-
- return {
- wrap,
- hd,
- icon,
- thumb,
- bd,
- title,
- content,
- ft,
- }
- }],
- },
- methods: {
- updateCurrent(opts = {}) {
- const width = opts.direction === 'horizontal' ? 100 / opts.length + '%' : '100%'
- const index = defaultStatus.indexOf(this.data.status)
- const hasIcon = opts.index < opts.current || this.data.icon
- const thumb = this.data.icon || defaultIcon
- const suffix = index !== -1 ? defaultStatus[index] : opts.index < opts.current ? 'finish' : opts.index === opts.current ? 'process' : ''
- const className = `${this.data.prefixCls}--${suffix}`
- const options = Object.assign({
- width,
- className,
- hasIcon,
- thumb,
- }, opts)
-
- this.setData(options)
- },
- },
- attached() {
- this.updateCurrent(this.data)
- },
- })
|