index.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <uni-shadow-root class="vant-progress-index"><view class="van-progress custom-class" :style="'height: '+(strokeWidthUnit)+'; '+(trackColor ? 'background: ' + trackColor : '')">
  3. <view class="van-progress__portion" :style="'width: '+(percentage)+'%; background: '+(inactive ? '#cacaca' : color)">
  4. <view v-if="showPivot && getters.text(pivotText, percentage)" :style="'color: '+(textColor)+'; background: '+(pivotColor ? pivotColor : inactive ? '#cacaca' : color)" class="van-progress__pivot">
  5. {{ getters.text(pivotText, percentage) }}
  6. </view>
  7. </view>
  8. </view></uni-shadow-root>
  9. </template>
  10. <wxs src="./index.wxs" module="getters"></wxs>
  11. <script>
  12. global['__wxRoute'] = 'vant/progress/index'
  13. import { VantComponent } from '../common/component';
  14. import { BLUE } from '../common/color';
  15. import { addUnit } from '../common/utils';
  16. VantComponent({
  17. props: {
  18. inactive: Boolean,
  19. percentage: Number,
  20. pivotText: String,
  21. pivotColor: String,
  22. trackColor: String,
  23. showPivot: {
  24. type: Boolean,
  25. value: true
  26. },
  27. color: {
  28. type: String,
  29. value: BLUE
  30. },
  31. textColor: {
  32. type: String,
  33. value: '#fff'
  34. },
  35. strokeWidth: {
  36. type: null,
  37. observer: 'setStrokeWidthUnit'
  38. }
  39. },
  40. data: {
  41. strokeWidthUnit: '4px'
  42. },
  43. methods: {
  44. setStrokeWidthUnit(val) {
  45. this.setData({
  46. strokeWidthUnit: addUnit(val)
  47. });
  48. }
  49. }
  50. });
  51. export default global['__wxComponents']['vant/progress/index']
  52. </script>
  53. <style platform="mp-weixin">
  54. @import '../common/index.css';.van-progress{position:relative;height:4px;height:var(--progress-height,4px);border-radius:4px;border-radius:var(--progress-height,4px);background:#ebedf0;background:var(--progress-background-color,#ebedf0)}.van-progress__portion{position:absolute;left:0;height:100%;border-radius:inherit;background:#1989fa;background:var(--progress-color,#1989fa)}.van-progress__pivot{position:absolute;top:50%;right:0;box-sizing:border-box;min-width:2em;text-align:center;word-break:keep-all;border-radius:1em;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:#fff;color:var(--progress-pivot-text-color,#fff);padding:0 5px;padding:var(--progress-pivot-padding,0 5px);font-size:10px;font-size:var(--progress-pivot-font-size,10px);line-height:1.6;line-height:var(--progress-pivot-line-height,1.6);background-color:#1989fa;background-color:var(--progress-pivot-background-color,#1989fa)}
  55. </style>