props.js 4.6 KB

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