FormattedPickerMixin.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import {object} from "@/uni_modules/uv-ui-tools/libs/function/test";
  2. export default {
  3. props: {
  4. defaultIndex: {
  5. // 只需要提供默认索引,组件内部为u-picker自动进行了包装
  6. type: Number, // | Function, // TODO: support function mode if needed.
  7. default: 0
  8. }
  9. },
  10. data() {
  11. return {
  12. columns: []
  13. }
  14. },
  15. computed: {
  16. pickerValue() {
  17. return this.modelValue
  18. },
  19. selected() {
  20. return this.columns.find(i => this.getValue(i) == this.pickerValue)
  21. },
  22. selectedIndex() {
  23. const idx = this.columns.findIndex(i => this.getValue(i) == this.pickerValue)
  24. return idx == -1 ? this.defaultIndex : idx
  25. }
  26. },
  27. created() {
  28. this.initColumns()
  29. },
  30. methods: {
  31. initColumns() {
  32. // to be overridden
  33. // 这里只需要给this.columns提供单选列表1维数组,组件内部已经自动为u-picker进行了2维包装
  34. },
  35. getLabel(item) {
  36. // can be overridden by need
  37. return object(item) ? item.text : item
  38. },
  39. getValue(item) {
  40. // can be overridden by need
  41. return object(item) ? item.value : item
  42. }
  43. }
  44. }