transitSelect.vue 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <view class="mater-select">
  3. <u-cell-group>
  4. <div v-for="transit in transitList" :key="transit.type">
  5. <p class="type-title">
  6. {{ transit.type }}
  7. </p>
  8. <view v-for="item in option.filter((item) =>item.type==transit.type)" :key="item.label">
  9. <u-cell :title="item.text" @click="onSelect(item)"></u-cell>
  10. </view>
  11. </div>
  12. </u-cell-group>
  13. </view>
  14. </template>
  15. <script>
  16. export default {
  17. data() {
  18. return {
  19. keyword: "",
  20. option: [],
  21. transitList: [],
  22. index:null,
  23. isMultiple:"0",
  24. };
  25. },
  26. onLoad(options) {
  27. this.handleOption(options);
  28. },
  29. methods: {
  30. onSelect(item) {
  31. console.log(item, "========");
  32. let pages = getCurrentPages();
  33. let prevPage = pages[pages.length - 2].$vm.orderForm; //上一个页面
  34. console.log(this.index);
  35. if(this.index&&this.index !== null){
  36. prevPage.batchOrderList[this.index].materialId = ''
  37. prevPage.batchOrderList[this.index].materialName = ''
  38. prevPage.batchOrderList[this.index].kind = ''
  39. prevPage.batchOrderList[this.index].measureUnit = ''
  40. if (item.value) {
  41. prevPage.batchOrderList[this.index].materialId = item.value
  42. prevPage.batchOrderList[this.index].materialName = item.text
  43. prevPage.batchOrderList[this.index].measureUnit = item.measureUnit
  44. }
  45. }else{
  46. prevPage.materialId = ''
  47. prevPage.materialName = ''
  48. prevPage.kind = ''
  49. prevPage.measureUnit=''
  50. if (item.value) {
  51. prevPage.materialId = item.value
  52. prevPage.materialName = item.text
  53. prevPage.kind = item.kind
  54. prevPage.measureUnit=item.measureUnit
  55. }
  56. }
  57. uni.navigateBack();
  58. },
  59. handleOption(options) {
  60. this.option = JSON.parse(options.option) || [];
  61. this.transitList = this.repeatList(this.option);
  62. this.index=options.index;
  63. console.log(this.transitList, "===========");
  64. },
  65. repeatList(arr) {
  66. const map = new Map();
  67. return arr.filter((item) =>!map.has(item.type) && map.set(item.type,1));
  68. },
  69. },
  70. };
  71. </script>
  72. <style lang="scss" scoped>
  73. .mater-select {
  74. .search-wrap {
  75. padding: 20rpx 30rpx;
  76. background-color: #fff;
  77. }
  78. .type-title {
  79. line-height: 84rpx;
  80. background-color: #f2f2f2;
  81. padding: 0 30rpx;
  82. font-size: 30rpx;
  83. font-weight: bold;
  84. }
  85. }
  86. </style>