index.wxml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <view class="step {{'step-'+direction}} l-class" style="{{direction==='row'?'width:'+(1/length)*stepsWidth+'px':'min-height:'+stepMinHeight+'rpx'}}">
  2. <view class="step-container l-step-class {{'step-container-'+direction}}">
  3. <view wx:if="{{custom}}" class="step-custom">
  4. <slot name="dot"/>
  5. </view>
  6. <view wx:else class="l-step-class {{dot && !icon?'step-dot-'+currentStatus.setStatus(activeIndex,index,status)+' step-dot':'step-'+currentStatus.setStatus(activeIndex,index,status)+' step-icon'}}" style="{{dot?currentStatus.dotStyle(activeIndex,index,color):currentStatus.statusStyle(activeIndex,index,color,status)}}">
  7. <l-icon wx:if="{{icon}}" name="{{icon}}" size="{{iconSize}}" color="{{(currentStatus.setStatus(activeIndex,index,status))==='process'?'#3963BC':iconColor}}"/>
  8. <block wx:if="{{!dot && !icon}}">
  9. <view wx:if="{{currentStatus.setStatus(activeIndex,index,status)==='error' || currentStatus.setStatus(activeIndex,index,status)==='finish'}}" class="iconfont icon-{{currentStatus.setStatus(activeIndex,index,status)}}"></view>
  10. <block wx:else>{{index+1}}</block>
  11. </block>
  12. </view>
  13. </view>
  14. <view class="step-content {{'step-content-'+direction}}">
  15. <view class="l-title-class {{activeIndex===index?'step-title-process':'step-title'}}">
  16. {{title}}
  17. </view>
  18. <view class="l-describe-class step-describe">
  19. {{describe}}
  20. <slot name="describe"/>
  21. </view>
  22. </view>
  23. <view class="step-line l-line-class {{'step-line-'+ direction}} {{activeIndex>index?'step-line-finish':'step-line-wait'}}" style="{{activeIndex>index?('background-color:'+color):''}}" wx:if="{{length !== index+1}}">
  24. </view>
  25. </view>
  26. <wxs module="currentStatus">
  27. var setStatus = function(activeIndex,index,status){
  28. if(activeIndex===index){
  29. return status || 'process'
  30. } else if(activeIndex>index){
  31. return 'finish'
  32. }else{
  33. return 'wait'
  34. }
  35. }
  36. var statusStyle = function(activeIndex,index,color,status){
  37. if(activeIndex===index){
  38. return status==='error'?'':('background-color:' + color)
  39. } else if(activeIndex>index){
  40. return ('border-color:' + color + ';color:' + color)
  41. }else{
  42. return ''
  43. }
  44. }
  45. var dotStyle = function(activeIndex,index,color){
  46. if(activeIndex>=index){
  47. return ('background-color:' + color)
  48. } else{
  49. return ''
  50. }
  51. }
  52. module.exports = {
  53. setStatus:setStatus,
  54. statusStyle:statusStyle,
  55. dotStyle:dotStyle
  56. }
  57. </wxs>