敢为人鲜小程序前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
4.3 KiB

  1. <template>
  2. <view class="page">
  3. <!-- 导航栏 -->
  4. <navbar :title="'团餐' + (mealInfo ? mealInfo.id : '')" leftClick @leftClick="$utils.navigateBack"
  5. bgColor="#019245" color="#fff" />
  6. <view class="container">
  7. <!-- 成员列表 -->
  8. <view class="member-list">
  9. <!-- 使用封装的成员项组件 -->
  10. <member-food-item
  11. v-for="(member, index) in members"
  12. :key="index"
  13. :member="member"
  14. :default-expanded="index === defaultExpandedIndex"
  15. @toggle="handleMemberToggle"
  16. />
  17. </view>
  18. <!-- 空数据提示 -->
  19. <uv-empty v-if="members.length === 0" text="暂无成员" mode="list"></uv-empty>
  20. </view>
  21. </view>
  22. </template>
  23. <script>
  24. import navbar from '@/components/base/navbar.vue'
  25. import MemberFoodItem from '../components/order/MemberFoodItem.vue'
  26. export default {
  27. components: {
  28. navbar,
  29. MemberFoodItem
  30. },
  31. data() {
  32. return {
  33. mealId: null,
  34. mealInfo: null,
  35. defaultExpandedIndex: -1, // 默认不展开任何成员
  36. members: [
  37. {
  38. id: '1',
  39. name: '张三',
  40. avatar: '/static/image/中森明菜.webp',
  41. food: [
  42. {
  43. name: '茄子肉沫',
  44. price: 9.9,
  45. quantity: 1,
  46. image: '/static/image/古茗店面.webp',
  47. sold: 235
  48. },
  49. {
  50. name: '豆角炒鸡蛋',
  51. price: 9.9,
  52. quantity: 1,
  53. image: '/static/image/古茗店面.webp',
  54. sold: 235
  55. },
  56. {
  57. name: '酸辣土豆丝',
  58. price: 9.9,
  59. quantity: 1,
  60. image: '/static/image/古茗店面.webp',
  61. sold: 235
  62. }
  63. ]
  64. },
  65. {
  66. id: '2',
  67. name: '张三',
  68. avatar: '/static/image/中森明菜.webp',
  69. food: [
  70. {
  71. name: '茄子肉沫',
  72. price: 9.9,
  73. quantity: 1,
  74. image: '/static/image/古茗店面.webp',
  75. sold: 235
  76. },
  77. {
  78. name: '豆角炒鸡蛋',
  79. price: 9.9,
  80. quantity: 1,
  81. image: '/static/image/古茗店面.webp',
  82. sold: 235
  83. },
  84. {
  85. name: '酸辣土豆丝',
  86. price: 9.9,
  87. quantity: 1,
  88. image: '/static/image/古茗店面.webp',
  89. sold: 235
  90. }
  91. ]
  92. }
  93. ]
  94. }
  95. },
  96. onLoad(options) {
  97. if (options.id) {
  98. this.mealId = options.id
  99. this.getMealInfo()
  100. }
  101. },
  102. methods: {
  103. // 获取团餐信息
  104. getMealInfo() {
  105. // 模拟获取团餐数据
  106. this.mealInfo = {
  107. id: this.mealId,
  108. name: '团餐' + this.mealId,
  109. price: 18.00,
  110. status: '待出餐'
  111. }
  112. },
  113. // 处理成员项展开/收起事件
  114. handleMemberToggle(data) {
  115. console.log(`成员 ${data.member.name} ${data.expanded ? '展开' : '收起'} 了餐点列表`);
  116. // 可以在这里添加其他逻辑,如记录统计数据等
  117. }
  118. }
  119. }
  120. </script>
  121. <style lang="scss" scoped>
  122. .page {
  123. background-color: #f5f5f5;
  124. min-height: 100vh;
  125. }
  126. .container {
  127. padding: 20rpx;
  128. }
  129. .member-list {
  130. // 成员列表样式被移到组件中
  131. }
  132. </style>