props.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. import { defineMixin } from '../../libs/vue'
  2. import defProps from '../../libs/config/props.js'
  3. export const props = defineMixin({
  4. props: {
  5. modelValue: {
  6. type: Array,
  7. default: () => []
  8. },
  9. hasInput: {
  10. type: Boolean,
  11. default: false
  12. },
  13. inputProps: {
  14. type: Object,
  15. default: () => {
  16. return {}
  17. }
  18. },
  19. disabled: {
  20. type: Boolean,
  21. default: () => defProps.picker.disabled
  22. },
  23. disabledColor:{
  24. type: String,
  25. default: () => defProps.picker.disabledColor
  26. },
  27. placeholder: {
  28. type: String,
  29. default: () => defProps.picker.placeholder
  30. },
  31. // 是否展示picker弹窗
  32. show: {
  33. type: Boolean,
  34. default: () => defProps.picker.show
  35. },
  36. // 弹出的方向,可选值为 top bottom right left center
  37. popupMode: {
  38. type: String,
  39. default: () => defProps.picker.popupMode
  40. },
  41. // 是否展示顶部的操作栏
  42. showToolbar: {
  43. type: Boolean,
  44. default: () => defProps.picker.showToolbar
  45. },
  46. // 顶部标题
  47. title: {
  48. type: String,
  49. default: () => defProps.picker.title
  50. },
  51. // 对象数组,设置每一列的数据
  52. columns: {
  53. type: Array,
  54. default: () => defProps.picker.columns
  55. },
  56. // 是否显示加载中状态
  57. loading: {
  58. type: Boolean,
  59. default: () => defProps.picker.loading
  60. },
  61. // 各列中,单个选项的高度
  62. itemHeight: {
  63. type: [String, Number],
  64. default: () => defProps.picker.itemHeight
  65. },
  66. // 取消按钮的文字
  67. cancelText: {
  68. type: String,
  69. default: () => defProps.picker.cancelText
  70. },
  71. // 确认按钮的文字
  72. confirmText: {
  73. type: String,
  74. default: () => defProps.picker.confirmText
  75. },
  76. // 取消按钮的颜色
  77. cancelColor: {
  78. type: String,
  79. default: () => defProps.picker.cancelColor
  80. },
  81. // 确认按钮的颜色
  82. confirmColor: {
  83. type: String,
  84. default: () => defProps.picker.confirmColor
  85. },
  86. // 每列中可见选项的数量
  87. visibleItemCount: {
  88. type: [String, Number],
  89. default: () => defProps.picker.visibleItemCount
  90. },
  91. // 选项对象中,需要展示的属性键名
  92. keyName: {
  93. type: String,
  94. default: () => defProps.picker.keyName
  95. },
  96. // 选项对象中,需要获取的属性值键名
  97. valueName: {
  98. type: String,
  99. default: () => defProps.picker.valueName
  100. },
  101. // 是否允许点击遮罩关闭选择器
  102. closeOnClickOverlay: {
  103. type: Boolean,
  104. default: () => defProps.picker.closeOnClickOverlay
  105. },
  106. // 各列的默认索引
  107. defaultIndex: {
  108. type: Array,
  109. default: () => defProps.picker.defaultIndex
  110. },
  111. // 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件,只在微信2.21.1及以上有效
  112. immediateChange: {
  113. type: Boolean,
  114. default: () => defProps.picker.immediateChange
  115. },
  116. // 工具栏右侧插槽是否开启
  117. toolbarRightSlot: {
  118. type: Boolean,
  119. default: false
  120. },
  121. // 层级
  122. zIndex: {
  123. type: [String, Number],
  124. default: () => defProps.picker.zIndex
  125. },
  126. // 弹窗背景色,设置为transparent可去除白色背景
  127. bgColor: {
  128. type: String,
  129. default: () => defProps.picker.bgColor
  130. },
  131. // 是否显示圆角
  132. round: {
  133. type: [Boolean, String, Number],
  134. default: () => defProps.picker.round
  135. },
  136. // 动画时长,单位ms
  137. duration: {
  138. type: [String, Number],
  139. default: () => defProps.picker.duration
  140. },
  141. // 遮罩的透明度,0-1之间
  142. overlayOpacity: {
  143. type: [Number, String],
  144. default: () => defProps.picker.overlayOpacity
  145. }
  146. }
  147. })