Преглед на файлове

feat:新增用户预约表

haopeng преди 2 години
родител
ревизия
b3ce549380
променени са 5 файла, в които са добавени 158 реда и са изтрити 7 реда
  1. 2 1
      src/components/common/layout/layout.vue
  2. 147 4
      src/pages/home/detailList/index.vue
  3. 1 2
      src/pages/home/index.vue
  4. 5 0
      src/server/home.js
  5. 3 0
      src/server/urls.js

+ 2 - 1
src/components/common/layout/layout.vue

@@ -14,7 +14,7 @@
14 14
                alt=""></div>
15 15
         <div>
16 16
           <div class="left"
17
-               v-if="menuIndex==0 && $route.path === '/home'">
17
+              v-if="menuIndex==0 && $route.path === '/home'">
18 18
             <div class="address">{{userInfo.store_name}}</div>
19 19
           </div>
20 20
         </div>
@@ -171,6 +171,7 @@ export default {
171 171
     }
172 172
     .center {
173 173
       color: #000000;
174
+      font-family: PingFangSC-Medium, PingFang SC;
174 175
     }
175 176
     .right {
176 177
       float: right;

+ 147 - 4
src/pages/home/detailList/index.vue

@@ -1,15 +1,158 @@
1 1
 <template>
2
-  <div>
3
-    预约详情表
2
+  <div class="container">
3
+    <!-- 预约详情表 -->
4
+    <div class="row" ref="row" v-for="(orderListItem, index) in orderList" :key="index">
5
+      <div class="time" :style="{ height: `${rowHeightList[index]}px` }">
6
+        <span>{{orderListItem.time.start}}</span>
7
+        <span>-</span>
8
+        <span>{{orderListItem.time.end}}</span>
9
+      </div>
10
+      <div class="project-wrapper">
11
+        <div class="project"
12
+          v-for="(projectItem, index) in orderListItem.list" 
13
+          :key="index"
14
+
15
+        >
16
+          <span class="name">{{projectItem.nickname}}</span>
17
+          <div class="project-time">
18
+            <span>{{projectItem.start}}</span>
19
+            <span>-</span>
20
+            <span>{{projectItem.end}}</span>
21
+          </div>
22
+        </div>
23
+      </div>
24
+    </div>
25
+    <!-- <div class="left">
26
+      <div class="time" ref="time"
27
+        v-for="(orderListItem, index) in orderList" :key="index"
28
+        :style="{height: ``}"
29
+      >
30
+        <span>{{orderListItem.startTime}}</span>
31
+        <span>-</span>
32
+        <span>{{orderListItem.endTime}}</span>
33
+      </div>
34
+    </div>
35
+    <div class="right">
36
+      <div class="project-row" ref="projectRow" v-for="(orderListItem, index) in orderList" :key="index">
37
+        <div class="project-item" v-for="(projectItem, index) in orderListItem.project" :key="index">
38
+          <span>{{projectItem.name}}</span>
39
+          <span>{{projectItem.time}}</span>
40
+        </div>
41
+      </div>
42
+    </div> -->
4 43
   </div>
5 44
 </template>
6 45
 
7 46
 <script>
47
+import api from '@/server/home'
48
+
8 49
 export default {
9 50
   data() {
10
-    return {};
51
+    return {
52
+      orderList: [
53
+        // { startTime: '11:00', endTime: '12:00', project: [ {name: '张三', startTime: '11:00', endTime: '12:00',}, {name: '张三', startTime: '11:00', endTime: '12:00',} ] },
54
+        // { startTime: '12:00', endTime: '13:00', project: [ {name: '张三', startTime: '11:00', endTime: '12:00',}, {name: '李四', startTime: '11:00', endTime: '12:00',} ] },
55
+        // { startTime: '13:00', endTime: '14:00', project: [ {name: '张三', startTime: '11:00', endTime: '12:00',}, {name: '李四', startTime: '11:00', endTime: '12:00',} ] },
56
+        // { startTime: '14:00', endTime: '15:00', project: [ {name: '张三', startTime: '11:00', endTime: '12:00',}, {name: '李四', startTime: '11:00', endTime: '12:00',} ] },
57
+        // { startTime: '15:00', endTime: '16:00', project: [ {name: '张三', startTime: '11:00', endTime: '12:00',}, {name: '李四', startTime: '11:00', endTime: '12:00',} ] },
58
+        // { startTime: '16:00', endTime: '17:00', project: [ {name: '张三', startTime: '11:00', endTime: '12:00',}, {name: '李四', startTime: '11:00', endTime: '12:00',},
59
+        //   {name: '张三', startTime: '11:00', endTime: '12:00',},{name: '张三', startTime: '11:00', endTime: '12:00',},{name: '张三', startTime: '11:00', endTime: '12:00',},{name: '张三', startTime: '11:00', endTime: '12:00',},
60
+        //   {name: '张三', startTime: '11:00', endTime: '12:00',},{name: '张三', startTime: '11:00', endTime: '12:00',},{name: '张三', startTime: '11:00', endTime: '12:00',},{name: '张三', startTime: '11:00', endTime: '12:00',},
61
+        //   {name: '张三', startTime: '11:00', endTime: '12:00',} ] },
62
+      ],
63
+      timeList: [],
64
+      rowHeightList: [],
65
+      // 订单状态,0已预约,未支付,1已支付,待使用,2正在使用,3已结算,5已取消
66
+      colorStyleList: [
67
+        { orderStatus: [3, 5], color: '#A3A3A3', backgroundColor: '#F0F0F0' },
68
+        { orderStatus: [2], color: '#FA7D22', backgroundColor: '#FEF4ED' },
69
+        { orderStatus: [0, 1], color: '#42D351', backgroundColor: '#F5FCF5' },
70
+      ]
71
+    };
72
+  },
73
+  async created () { 
74
+    let resp = await api.reservedRecords()
75
+    if (resp.code === 200) {
76
+      this.orderList = resp.data
77
+    }
78
+  },
79
+  mounted () {
80
+    if (this.$refs.row) {
81
+      this.$refs.row.forEach((item) => {
82
+        this.rowHeightList.push(item.clientHeight)
83
+      })
84
+    }
11 85
   },
86
+  computed: {}
12 87
 };
13 88
 </script>
14 89
 
15
-<style lang="less" scoped></style>
90
+<style lang="less" scoped>
91
+  .container {
92
+    // width: 100%;
93
+    // height: 100%;
94
+    // display: flex;
95
+    background-color: #FFFFFF;
96
+    .row {
97
+      display: flex;
98
+      // flex-wrap: wrap;
99
+      .time, .project-wrapper .project {
100
+        width: 77px;
101
+        height: 80px;
102
+        display: flex;
103
+        flex-direction: column;
104
+        justify-content: center;
105
+        align-items: center;
106
+        font-family: PingFangSC-Medium, PingFang SC;
107
+      }
108
+      .time {
109
+        border-bottom: 2px #f5f5f5 solid;
110
+      }
111
+      .project-wrapper {
112
+        display: flex;
113
+        flex-wrap: wrap;
114
+        .project {
115
+          .name {
116
+            font-size: 12px;
117
+            margin-bottom: 3px;
118
+          }
119
+          .project-time {
120
+            display: flex;
121
+            font-size: 10px;
122
+          }
123
+        }
124
+      }
125
+    }
126
+    // .left .time, .right .project-row .project-item {
127
+    //   width: 77px;
128
+    //   height: 80px;
129
+    //   display: flex;
130
+    //   flex-direction: column;
131
+    //   justify-content: center;
132
+    //   align-items: center;
133
+    //   font-family: PingFangSC-Medium, PingFang SC;
134
+    // }
135
+    // .left {
136
+    //   width: 77px;
137
+    //   display: flex;
138
+    //   flex-direction: column;
139
+    // }
140
+    // .right {
141
+    //   display: flex;
142
+    //   flex-direction: column;
143
+    //   .project-row {
144
+    //     display: flex;
145
+    //     flex-wrap: wrap;
146
+    //     .project-item {
147
+    //       span:nth-child(1) {
148
+    //         font-size: 12px;
149
+    //         margin-bottom: 3px;
150
+    //       }
151
+    //       span:nth-child(2) {
152
+    //         font-size: 10px;
153
+    //       }
154
+    //     }
155
+    //   }
156
+    // }
157
+  }
158
+</style>

+ 1 - 2
src/pages/home/index.vue

@@ -21,8 +21,7 @@
21 21
                   :finished="finished"
22 22
                   finished-text="没有更多了"
23 23
                   @load=" getToday ">
24
-          <!-- TODO: delete v-if 中的 ! -->
25
-          <div class="detail-list" v-if="!orderList.length"><span @click="toDetailList">客户预约表</span></div>
24
+          <div class="detail-list" v-if="orderList.length"><span @click="toDetailList">客户预约表</span></div>
26 25
           <div class="user-info"
27 26
                v-for="(item,index) in orderList"
28 27
                :key="index"

+ 5 - 0
src/server/home.js

@@ -152,4 +152,9 @@ export default class Home {
152 152
     return $http.post(url.schemeSave, parms);
153 153
   }
154 154
 
155
+  // 用户预约记录
156
+  static reservedRecords (params) {
157
+    return $http.get(url.reservedRecords, params)
158
+  }
159
+
155 160
 }

+ 3 - 0
src/server/urls.js

@@ -94,4 +94,7 @@ export default {
94 94
   // 创建标签
95 95
   schemeSave: '/v2/pad/scheme/save',
96 96
 
97
+    // 用户预约记录
98
+    reservedRecords: '/v2/pad/reserved/index'
99
+
97 100
 }