黎海 2 년 전
부모
커밋
596320359c

+ 13 - 4
src/common/http.js

@@ -23,14 +23,16 @@ axios.defaults.timeout = 10000;
23
 
23
 
24
 // post请求头
24
 // post请求头
25
 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
25
 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
26
-axios.defaults.headers.post['token'] = localStorage.getItem('token');
27
-axios.defaults.headers.get['token'] = localStorage.getItem('token');
26
+console.log(store.state.comVal.token, 'this.$store.state.comVal.token111', localStorage.getItem('token'));
27
+axios.defaults.headers.post['token'] = localStorage.getItem('token') || store.state.comVal.token;
28
+axios.defaults.headers.get['token'] = localStorage.getItem('token') || store.state.comVal.token;
28
 
29
 
29
 // 请求拦截器
30
 // 请求拦截器
30
 axios.interceptors.request.use(
31
 axios.interceptors.request.use(
31
   config => {
32
   config => {
32
     // 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加了
33
     // 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加了
33
     // 即使本地存在token,也有可能token是过期的,所以在响应拦截器中要对返回状态进行判断
34
     // 即使本地存在token,也有可能token是过期的,所以在响应拦截器中要对返回状态进行判断
35
+
34
     const token = localStorage.getItem('token');
36
     const token = localStorage.getItem('token');
35
     if (!token) {
37
     if (!token) {
36
       router.push('/login')
38
       router.push('/login')
@@ -102,13 +104,17 @@ let reqUrl = ''
102
  * @param {Object} params [请求时携带的参数]
104
  * @param {Object} params [请求时携带的参数]
103
  */
105
  */
104
 function get (url, params) {
106
 function get (url, params) {
107
+  if (!axios.defaults.headers.get['token']) {
108
+    axios.defaults.headers.get['token'] = localStorage.getItem('token') || store.state.comVal.token;
109
+
110
+  }
105
   reqUrl = basePath + url
111
   reqUrl = basePath + url
106
   return new Promise((resolve, reject) => {
112
   return new Promise((resolve, reject) => {
107
     axios.get(reqUrl, {
113
     axios.get(reqUrl, {
108
       params: params
114
       params: params
109
     })
115
     })
110
       .then(res => {
116
       .then(res => {
111
-        if (res.data.code != 200) {
117
+        if (res.data.code != 200 && localStorage.getItem('token')) {
112
           Message({
118
           Message({
113
             message: res.data.msg,
119
             message: res.data.msg,
114
             type: 'error'
120
             type: 'error'
@@ -128,12 +134,15 @@ function get (url, params) {
128
  * @param {Object} params [请求时携带的参数]
134
  * @param {Object} params [请求时携带的参数]
129
  */
135
  */
130
 function post (url, params) {
136
 function post (url, params) {
137
+  if (!axios.defaults.headers.post['token']) {
138
+    axios.defaults.headers.post['token'] = localStorage.getItem('token') || store.state.comVal.token;
139
+  }
131
   reqUrl = basePath + url
140
   reqUrl = basePath + url
132
   return new Promise((resolve, reject) => {
141
   return new Promise((resolve, reject) => {
133
     axios.post(reqUrl, QS.stringify(params))
142
     axios.post(reqUrl, QS.stringify(params))
134
       .then(res => {
143
       .then(res => {
135
         console.log(res, 'resres');
144
         console.log(res, 'resres');
136
-        if (res.data.code != 200) {
145
+        if (res.data.code != 200 && localStorage.getItem('token')) {
137
           Message({
146
           Message({
138
             message: res.data.msg,
147
             message: res.data.msg,
139
             type: 'error'
148
             type: 'error'

+ 3 - 2
src/common/utils.js

@@ -1,7 +1,7 @@
1
 // 自定义全局方法封装
1
 // 自定义全局方法封装
2
 const utils = {
2
 const utils = {
3
-  userInfo:{
4
-    
3
+  userInfo: {
4
+
5
   },
5
   },
6
   test: function () { },
6
   test: function () { },
7
   isBack: false,
7
   isBack: false,
@@ -25,6 +25,7 @@ const utils = {
25
     }
25
     }
26
     return fmt;
26
     return fmt;
27
   },
27
   },
28
+ 
28
 
29
 
29
 }
30
 }
30
 
31
 

+ 21 - 5
src/components/common/layout/layout.vue

@@ -17,6 +17,17 @@
17
         <div class="right">
17
         <div class="right">
18
           <div class="news"><img src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/news.png"></div>
18
           <div class="news"><img src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/news.png"></div>
19
           <div class="head-img"><img :src="userInfo.avatar_url"></div>
19
           <div class="head-img"><img :src="userInfo.avatar_url"></div>
20
+          <el-dropdown trigger="click"
21
+                       placement="top"
22
+                       @command="loginOut">
23
+            <span class="el-dropdown-link">
24
+              <img src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/coupon/logOut.png"
25
+                   alt="">
26
+            </span>
27
+            <el-dropdown-menu slot="dropdown">
28
+              <el-dropdown-item>退出登录</el-dropdown-item>
29
+            </el-dropdown-menu>
30
+          </el-dropdown>
20
         </div>
31
         </div>
21
       </header>
32
       </header>
22
       <div class="main-wrapper">
33
       <div class="main-wrapper">
@@ -59,11 +70,8 @@ export default {
59
       })
70
       })
60
     },
71
     },
61
     loginOut () {
72
     loginOut () {
62
-      let keys = document.cookie.match(/[^ =;]+(?=\=)/g);
63
-      if (keys) {
64
-        for (let i = keys.length; i--;)
65
-          document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString()
66
-      }
73
+      localStorage.removeItem('token');
74
+      location.reload();
67
     },
75
     },
68
     changeMenu (index) {
76
     changeMenu (index) {
69
       this.menuIndex = index
77
       this.menuIndex = index
@@ -153,6 +161,7 @@ export default {
153
     .right {
161
     .right {
154
       float: right;
162
       float: right;
155
       display: flex;
163
       display: flex;
164
+      align-items: center;
156
 
165
 
157
       .news {
166
       .news {
158
         width: 24px;
167
         width: 24px;
@@ -173,6 +182,13 @@ export default {
173
           display: block;
182
           display: block;
174
         }
183
         }
175
       }
184
       }
185
+      .el-dropdown-link {
186
+        img {
187
+          width: 28px;
188
+          height: 28px;
189
+          display: block;
190
+        }
191
+      }
176
     }
192
     }
177
   }
193
   }
178
 
194
 

+ 12 - 1
src/components/common/layout/leftMenu.vue

@@ -86,6 +86,18 @@ export default {
86
       nowIndex: 0
86
       nowIndex: 0
87
     }
87
     }
88
   },
88
   },
89
+  watch: {
90
+    $route (to, from) {
91
+      let patname = `/${window.location.pathname.split('/')[1]}`
92
+      console.log(patname, 'patname');
93
+      this.menu.forEach((item, index) => {
94
+        if (patname == item.path) {
95
+          this.nowIndex = index
96
+          this.$emit('changeMenu', index)
97
+        }
98
+      })
99
+    }
100
+  },
89
   mounted () {
101
   mounted () {
90
     let patname = `/${window.location.pathname.split('/')[1]}`
102
     let patname = `/${window.location.pathname.split('/')[1]}`
91
     console.log(patname, 'patname');
103
     console.log(patname, 'patname');
@@ -97,7 +109,6 @@ export default {
97
     })
109
     })
98
   },
110
   },
99
   methods: {
111
   methods: {
100
-
101
     handleSelect (index, item) {
112
     handleSelect (index, item) {
102
       this.nowIndex = index
113
       this.nowIndex = index
103
       this.$router.push({
114
       this.$router.push({

+ 3 - 0
src/filters/filter.js

@@ -101,3 +101,6 @@ Vue.filter("ellipsis", function (value, lmit) {
101
   }
101
   }
102
   return value
102
   return value
103
 })
103
 })
104
+
105
+
106
+

+ 108 - 133
src/pages/confirmOrder/details/index.vue

@@ -5,24 +5,24 @@
5
         <div class="user-img"><img :src="userInfo.image"
5
         <div class="user-img"><img :src="userInfo.image"
6
                alt=""></div>
6
                alt=""></div>
7
         <div class="user-span">
7
         <div class="user-span">
8
-          <div class="name">昵称:<span>{{userInfo.name}}</span></div>
8
+          <div class="name">昵称:<span>{{userInfo.nickname}}</span></div>
9
           <div class="sex">性别:<span>{{userInfo.sex}}</span></div>
9
           <div class="sex">性别:<span>{{userInfo.sex}}</span></div>
10
-          <div class="age">肤龄:<span>{{userInfo.age}}</span></div>
11
-          <div class="skin-type">肤质:<span>{{userInfo.skinType}}</span></div>
10
+          <div class="age">肤龄:<span>{{userInfo.age==1?'男':userInfo.age==2?'女':'保密'}}</span></div>
11
+          <div class="skin-type">肤质:<span>{{userInfo.skin}}</span></div>
12
         </div>
12
         </div>
13
       </div>
13
       </div>
14
       <div class="user-record">
14
       <div class="user-record">
15
         <div class="fraction">
15
         <div class="fraction">
16
           <div class="title">肌肤得分</div>
16
           <div class="title">肌肤得分</div>
17
-          <div class="num">37分</div>
17
+          <div class="num">{{userInfo.score}}分</div>
18
         </div>
18
         </div>
19
         <div class="status">
19
         <div class="status">
20
           <div class="title">皮肤状态</div>
20
           <div class="title">皮肤状态</div>
21
-          <div class="tips">肤质一般</div>
21
+          <div class="tips">{{userInfo.skin_status}}</div>
22
         </div>
22
         </div>
23
         <div class="times">
23
         <div class="times">
24
           <div class="title">上传检测时间</div>
24
           <div class="title">上传检测时间</div>
25
-          <div class="ts">2022.04.18 16:04</div>
25
+          <div class="ts">{{userInfo.check_time}}</div>
26
         </div>
26
         </div>
27
       </div>
27
       </div>
28
       <div class="lable">
28
       <div class="lable">
@@ -33,7 +33,7 @@
33
           <div v-for="(item,index) in lableList"
33
           <div v-for="(item,index) in lableList"
34
                :key="index"
34
                :key="index"
35
                class='lable-info'>
35
                class='lable-info'>
36
-            {{item.text}}
36
+            {{item}}
37
           </div>
37
           </div>
38
         </div>
38
         </div>
39
       </div>
39
       </div>
@@ -41,7 +41,7 @@
41
         <div class="ps-title">
41
         <div class="ps-title">
42
           备注
42
           备注
43
         </div>
43
         </div>
44
-        <div class="ps-text">{{'富婆富婆富婆富婆富婆富婆富婆富婆富婆富婆富婆富婆富婆富婆富婆富婆富婆' | ellipsis(20)}}</div>
44
+        <div class="ps-text">{{remarks | ellipsis(20)}}</div>
45
       </div>
45
       </div>
46
       <div class="programme">
46
       <div class="programme">
47
         <div class="tab">
47
         <div class="tab">
@@ -53,16 +53,16 @@
53
                :key="index"
53
                :key="index"
54
                @click="onOperation(index)">
54
                @click="onOperation(index)">
55
             <div class="programme-left">
55
             <div class="programme-left">
56
-              <div class="programme-img"><img src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/make.png"
56
+              <div class="programme-img"><img :src="item.cover_url"
57
                      alt=""></div>
57
                      alt=""></div>
58
               <div class="programme-tips">
58
               <div class="programme-tips">
59
-                <div class="tips-title">{{'【清洁补水】华熙智慧…'|ellipsis(9)}}</div>
60
-                <div class="tips-title">{{'美白、祛痘、抗皱'|ellipsis(9)}}</div>
61
-                <div class="tips-title">仪器:<span>{{'无创水光'|ellipsis(9)}}</span></div>
59
+                <div class="tips-title">{{item.name|ellipsis(9)}}</div>
60
+                <div class="tips-title">{{item.desc|ellipsis(9)}}</div>
61
+                <div class="tips-title">仪器:<span>{{item.device_name|ellipsis(9)}}</span></div>
62
               </div>
62
               </div>
63
             </div>
63
             </div>
64
             <div class="programme-right">
64
             <div class="programme-right">
65
-              <div class="frequency">执行频率:<span>{{item.frequency}}</span></div>
65
+              <div class="frequency">执行频率:<span>{{item.rate}}</span></div>
66
               <div class="duration">持续时长:<span>{{item.duration}}</span></div>
66
               <div class="duration">持续时长:<span>{{item.duration}}</span></div>
67
             </div>
67
             </div>
68
             <div class="operation"
68
             <div class="operation"
@@ -76,27 +76,35 @@
76
     </div>
76
     </div>
77
     <div class="right">
77
     <div class="right">
78
       <div class="shop-info">
78
       <div class="shop-info">
79
-        <div class="shpo-name">预约店铺:<span>JOLIJOLI(西安店)</span></div>
80
-        <div class="shpo-address">门店地址:<span>JOLIJOLI(西安店)</span></div>
81
-        <div class="shpo-ts">美容时间:<span>JOLIJOLI(西安店)</span></div>
79
+        <div class="shpo-name">预约店铺:<span>{{order_data.store_name}})</span></div>
80
+        <div class="shpo-address">门店地址:<span>{{order_data.address}}</span></div>
81
+        <div class="shpo-ts">美容时间:<span>{{order_data.order_time}}</span></div>
82
       </div>
82
       </div>
83
       <div class="project">
83
       <div class="project">
84
         <div class="project-title">
84
         <div class="project-title">
85
-          <div>共<span>3个</span>项目</div>
86
-          <div class="add-project">添加</div>
85
+          <div>共<span>{{order_data.project_num}}个</span>项目</div>
86
+          <div class="add-project"
87
+               @click="isProject=true">添加</div>
87
         </div>
88
         </div>
88
         <div class="project-list">
89
         <div class="project-list">
89
           <div class="project-info"
90
           <div class="project-info"
90
-               v-for="(item,index) in programmeList"
91
+               v-for="(item,index) in order_data.project_list"
91
                :key="index">
92
                :key="index">
92
-            <div class="project-image"><img :src="item.image"></div>
93
+            <div class="project-image"><img :src="item.cover_url"></div>
93
             <div class="project-content">
94
             <div class="project-content">
94
               <div class="title-price">
95
               <div class="title-price">
95
-                <div class="project-tit">{{item.title | ellipsis(14)}}</div>
96
+                <div class="project-tit">{{item.name | ellipsis(14)}}</div>
96
                 <div class="project-price"><span class="min-size">¥</span>{{item.price}}</div>
97
                 <div class="project-price"><span class="min-size">¥</span>{{item.price}}</div>
97
               </div>
98
               </div>
98
-              <div class="project-tips">{{item.tips}}</div>
99
-              <div class="project-zoom">{{item.zoom}}{{item.ts}}</div>
99
+              <div class="project-tips">{{item.product_names}}</div>
100
+              <div class="project-zoom">
101
+                <div> <span v-if="item.device_name">{{item.device_name}}({{item.room}}){{item.use_time}}分钟</span></div>
102
+                <div><img src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/coupon/eidt.png">
103
+                  <img class="delete"
104
+                       src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/coupon/delete.png"
105
+                       alt="">
106
+                </div>
107
+              </div>
100
             </div>
108
             </div>
101
           </div>
109
           </div>
102
         </div>
110
         </div>
@@ -125,7 +133,7 @@
125
           合计: <span class="price-num"><span class="min-size">¥</span>399<span class="min-size">.00</span></span>
133
           合计: <span class="price-num"><span class="min-size">¥</span>399<span class="min-size">.00</span></span>
126
         </div>
134
         </div>
127
       </div>
135
       </div>
128
-      <div class="payment">立即支付</div>
136
+      <div class="payment">{{order_data.status==0?'立即支付':'确定订单'}}</div>
129
     </div>
137
     </div>
130
     <!-- 选择优惠券 -->
138
     <!-- 选择优惠券 -->
131
     <mine-pupop :show="isCoupun">
139
     <mine-pupop :show="isCoupun">
@@ -176,11 +184,12 @@
176
           <el-select v-model="projectInfo"
184
           <el-select v-model="projectInfo"
177
                      placeholder="请选择项目"
185
                      placeholder="请选择项目"
178
                      style="width: 295px;"
186
                      style="width: 295px;"
187
+                     @change="getProducts"
179
                      size="mini">
188
                      size="mini">
180
             <el-option v-for="item in projectList"
189
             <el-option v-for="item in projectList"
181
-                       :key="item.value"
182
-                       :label="item.label"
183
-                       :value="item.value">
190
+                       :key="item.id"
191
+                       :label="item.name"
192
+                       :value="item.id">
184
             </el-option>
193
             </el-option>
185
           </el-select>
194
           </el-select>
186
         </div>
195
         </div>
@@ -188,15 +197,17 @@
188
           <el-select v-model="productsInfo"
197
           <el-select v-model="productsInfo"
189
                      placeholder="请选择升级产品包"
198
                      placeholder="请选择升级产品包"
190
                      style="width: 295px;"
199
                      style="width: 295px;"
200
+                     :disabled="projectInfo.length==0?true:false"
191
                      size="mini">
201
                      size="mini">
192
             <el-option v-for="item in productsList"
202
             <el-option v-for="item in productsList"
193
-                       :key="item.value"
194
-                       :label="item.label"
195
-                       :value="item.value">
203
+                       :key="item.id"
204
+                       :label="item.name"
205
+                       :value="item.id">
196
             </el-option>
206
             </el-option>
197
           </el-select>
207
           </el-select>
198
         </div>
208
         </div>
199
-        <div class="products-button">确定</div>
209
+        <div class="products-button"
210
+             @click="orderUpdate">确定</div>
200
       </div>
211
       </div>
201
     </mine-pupop>
212
     </mine-pupop>
202
     <!-- 选择时间 -->
213
     <!-- 选择时间 -->
@@ -270,109 +281,14 @@ export default {
270
       userInfo: {
281
       userInfo: {
271
       },
282
       },
272
       //面部标签
283
       //面部标签
273
-      lableList: [
274
-        {
275
-          text: '对话框的',
276
-          disabled: false
277
-        },
278
-        {
279
-          text: '对话框的',
280
-          disabled: true
281
-        },
282
-        {
283
-          text: '对话框的',
284
-          disabled: false
285
-        },
286
-        {
287
-          text: '对话框的',
288
-          disabled: false
289
-        },
290
-        {
291
-          text: '对话框的',
292
-          disabled: false
293
-        },
294
-        {
295
-          text: '对话框的',
296
-          disabled: false
297
-        },
298
-        {
299
-          text: '对话框的',
300
-          disabled: false
301
-        },
302
-        {
303
-          text: '对话框的',
304
-          disabled: false
305
-        },
306
-        {
307
-          text: '对话框的',
308
-          disabled: false
309
-        },
310
-        {
311
-          text: '对话框的',
312
-          disabled: false
313
-        },
314
-      ],
284
+      lableList: [],
315
       //执行方案
285
       //执行方案
316
-      programmeList: [
317
-        {
318
-          image: 'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/make.png',
319
-          title: '水氧活肤华熙智慧玻尿酸基水氧活肤华熙智慧玻尿酸基底',
320
-          tips: '+润百颜精华',
321
-          zoom: '皮肤综合仪(30号房)',
322
-          ts: '30分钟',
323
-          price: '79.00'
324
-        },
325
-        {
326
-          image: 'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/make.png',
327
-          title: '水氧活肤华熙智慧玻尿酸基水氧活肤华熙智慧玻尿酸基底',
328
-          tips: '+润百颜精华',
329
-          zoom: '皮肤综合仪(30号房)',
330
-          ts: '30分钟',
331
-          price: '79.00'
332
-        },
333
-        {
334
-          image: 'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/make.png',
335
-          title: '水氧活肤华熙智慧玻尿酸基水氧活肤华熙智慧玻尿酸基底',
336
-          tips: '+润百颜精华',
337
-          zoom: '皮肤综合仪(30号房)',
338
-          ts: '30分钟',
339
-          price: '79.00'
340
-        },
341
-      ],
286
+      programmeList: [],
287
+      order_data: {},//门店
342
       //项目列表
288
       //项目列表
343
-      projectList: [{
344
-        value: '选项1',
345
-        label: '黄金糕'
346
-      }, {
347
-        value: '选项2',
348
-        label: '双皮奶'
349
-      }, {
350
-        value: '选项3',
351
-        label: '蚵仔煎'
352
-      }, {
353
-        value: '选项4',
354
-        label: '龙须面'
355
-      }, {
356
-        value: '选项5',
357
-        label: '北京烤鸭'
358
-      }],
359
-      //产品列表
360
-      productsList: [{
361
-        value: '选项1',
362
-        label: '黄金糕'
363
-      }, {
364
-        value: '选项2',
365
-        label: '双皮奶'
366
-      }, {
367
-        value: '选项3',
368
-        label: '蚵仔煎'
369
-      }, {
370
-        value: '选项4',
371
-        label: '龙须面'
372
-      }, {
373
-        value: '选项5',
374
-        label: '北京烤鸭'
375
-      }],
289
+      projectList: [],
290
+      //升级包列表
291
+      productsList: [],
376
       //时间列表(头部)
292
       //时间列表(头部)
377
       tsTableList: [
293
       tsTableList: [
378
         {
294
         {
@@ -490,8 +406,57 @@ export default {
490
     getOrderInfo () {
406
     getOrderInfo () {
491
       api.getOrderInfo({ id: this.id }).then(res => {
407
       api.getOrderInfo({ id: this.id }).then(res => {
492
         this.userInfo = res.data.user
408
         this.userInfo = res.data.user
493
-
409
+        this.lableList = res.data.tags
410
+        this.remarks = res.data.remark
411
+        this.programmeList = res.data.scheme_list
412
+        this.order_data = res.data.order_data
413
+      })
414
+    },
415
+    getProjectList () {
416
+      api.getProjectList().then(res => {
417
+        this.projectList = res.data.list
418
+      })
419
+    },
420
+    getProducts (e) {
421
+      this.productsInfo = ''
422
+      api.getProducts({ id: e }).then(res => {
423
+        this.productsList = res.data.list
424
+      })
425
+    },
426
+    //新增
427
+    orderUpdate () {
428
+      if (this.projectInfo.length == 0) return
429
+      //项目包重组
430
+      let projectInfo = {}, nowProjectInfo = {}, productsInfo = {}
431
+      this.projectList.forEach(item => {
432
+        if (this.projectInfo == item.id) {
433
+          nowProjectInfo = item
434
+        }
494
       })
435
       })
436
+      if (this.productsInfo.length != 0) {
437
+        this.productsList.forEach(item => {
438
+          if (item.id == this.productsInfo) {
439
+            productsInfo = item
440
+          }
441
+        })
442
+      }
443
+      console.log(nowProjectInfo, 'nowProjectInfo', productsInfo);
444
+      projectInfo['name'] = nowProjectInfo.name
445
+      projectInfo['cover_url'] = nowProjectInfo.cover_url
446
+      projectInfo['device_name'] = ''
447
+      projectInfo['room'] = ''
448
+      projectInfo['use_time'] = ''
449
+      projectInfo['price'] = nowProjectInfo.price
450
+      projectInfo['product_names'] = ''
451
+
452
+      if (Object.keys(productsInfo).length > 0) {
453
+        projectInfo['product_id'] = productsInfo.id
454
+        projectInfo.product_names = productsInfo.name
455
+        projectInfo.price += Number(productsInfo.price)
456
+      }
457
+      this.order_data.project_list.push(projectInfo)
458
+      this.isProject = false
459
+
495
     },
460
     },
496
     onOperation (index) {
461
     onOperation (index) {
497
       if (this.programmeList[index].onSelect) {
462
       if (this.programmeList[index].onSelect) {
@@ -512,6 +477,7 @@ export default {
512
       this.id = id
477
       this.id = id
513
     }
478
     }
514
     this.getOrderInfo()
479
     this.getOrderInfo()
480
+    this.getProjectList()
515
   },
481
   },
516
 
482
 
517
   mounted () {
483
   mounted () {
@@ -826,6 +792,15 @@ export default {
826
               font-weight: 400;
792
               font-weight: 400;
827
               color: #fa7d22;
793
               color: #fa7d22;
828
               line-height: 18px;
794
               line-height: 18px;
795
+              display: flex;
796
+              align-items: center;
797
+              justify-content: space-between;
798
+              img {
799
+                width: 20px;
800
+              }
801
+              .delete {
802
+                margin-left: 10px;
803
+              }
829
             }
804
             }
830
           }
805
           }
831
         }
806
         }

+ 66 - 50
src/pages/coupon/index.vue

@@ -1,57 +1,71 @@
1
 <template>
1
 <template>
2
   <div class="mine">
2
   <div class="mine">
3
     <div class="table">
3
     <div class="table">
4
-      <el-input
5
-        class="search-input"
6
-        placeholder="请输入内容"
7
-        prefix-icon="el-icon-search"
8
-        size="mini"
9
-        v-model="searckItem"
10
-      ></el-input>
11
-      <div class="search-button">搜索</div>
4
+      <el-input class="search-input"
5
+                placeholder="请输入内容"
6
+                prefix-icon="el-icon-search"
7
+                size="mini"
8
+                v-model="searckItem"></el-input>
9
+      <div class="search-button"
10
+           @click="getUserList">搜索</div>
12
       <div class="coupon">选择优惠券</div>
11
       <div class="coupon">选择优惠券</div>
13
-      <el-select class="coupon-select" v-model="coupon" size="mini" placeholder="选择优惠券">
14
-        <el-option v-for="item in couponList" :key="item.id" :label="item.name" :value="item.id"></el-option>
12
+      <el-select class="coupon-select"
13
+                 v-model="coupon"
14
+                 size="mini"
15
+                 placeholder="选择优惠券">
16
+        <el-option v-for="item in couponList"
17
+                   :key="item.id"
18
+                   :label="item.name"
19
+                   :value="item.id"></el-option>
15
       </el-select>
20
       </el-select>
16
       <div class="num-tips">数量</div>
21
       <div class="num-tips">数量</div>
17
       <div class="coupon-num">
22
       <div class="coupon-num">
18
-        <div class="reduce" @click="reduceNum">-</div>
23
+        <div class="reduce"
24
+             @click="reduceNum">-</div>
19
         <div class="num">{{couponNum}}</div>
25
         <div class="num">{{couponNum}}</div>
20
-        <div class="add" @click="couponNum++">+</div>
26
+        <div class="add"
27
+             @click="couponNum++">+</div>
21
       </div>
28
       </div>
22
-      <div class="send-coupon" style="margin-left: 39px;" @click="sendCoupon">发送</div>
29
+      <div class="send-coupon"
30
+           style="margin-left: 39px;"
31
+           @click="sendCoupon">发送</div>
23
     </div>
32
     </div>
24
     <div class="user-list">
33
     <div class="user-list">
25
-      <el-table
26
-        ref="multipleTable"
27
-        :data="tableData"
28
-        tooltip-effect="dark"
29
-        height="354"
30
-        style="width: 100%;border-radius: 8px;"
31
-        @selection-change="handleSelectionChange"
32
-      >
33
-        <el-table-column type="selection" width="55"></el-table-column>
34
-        <el-table-column label="头像" width="120">
34
+      <el-table ref="multipleTable"
35
+                :data="tableData"
36
+                tooltip-effect="dark"
37
+                height="354"
38
+                style="width: 100%;border-radius: 8px;"
39
+                @selection-change="handleSelectionChange">
40
+        <el-table-column type="selection"
41
+                         width="55"></el-table-column>
42
+        <el-table-column label="头像"
43
+                         width="120">
35
           <template slot-scope="scope">
44
           <template slot-scope="scope">
36
             <div class="head-img">
45
             <div class="head-img">
37
-              <img :src="scope.row.avatar_url" alt />
46
+              <img :src="scope.row.avatar_url"
47
+                   alt />
38
             </div>
48
             </div>
39
           </template>
49
           </template>
40
         </el-table-column>
50
         </el-table-column>
41
-        <el-table-column prop="nickname" label="昵称" width="120"></el-table-column>
42
-        <el-table-column prop="mobile" label="联系电话" show-overflow-tooltip></el-table-column>
43
-        <el-table-column prop="create_time" label="注册时间" show-overflow-tooltip></el-table-column>
51
+        <el-table-column prop="nickname"
52
+                         label="昵称"
53
+                         width="120"></el-table-column>
54
+        <el-table-column prop="mobile"
55
+                         label="联系电话"
56
+                         show-overflow-tooltip></el-table-column>
57
+        <el-table-column prop="create_time"
58
+                         label="注册时间"
59
+                         show-overflow-tooltip></el-table-column>
44
       </el-table>
60
       </el-table>
45
 
61
 
46
       <div class="pagin">
62
       <div class="pagin">
47
-        <el-pagination
48
-          background
49
-          layout="prev, pager, next"
50
-          @size-change="handleSizeChange"
51
-          @current-change="handleCurrentChange"
52
-          :current-page.sync="currentPage1"
53
-          :total="total"
54
-        ></el-pagination>
63
+        <el-pagination background
64
+                       layout="prev, pager, next"
65
+                       @size-change="handleSizeChange"
66
+                       @current-change="handleCurrentChange"
67
+                       :current-page.sync="currentPage1"
68
+                       :total="total"></el-pagination>
55
       </div>
69
       </div>
56
     </div>
70
     </div>
57
   </div>
71
   </div>
@@ -62,7 +76,7 @@ import api from "../../server/home";
62
 
76
 
63
 export default {
77
 export default {
64
   components: {},
78
   components: {},
65
-  data() {
79
+  data () {
66
     return {
80
     return {
67
       searckItem: "",
81
       searckItem: "",
68
       couponList: [],
82
       couponList: [],
@@ -70,42 +84,44 @@ export default {
70
       multipleSelection: [], //选中的列表
84
       multipleSelection: [], //选中的列表
71
       coupon: "",
85
       coupon: "",
72
       couponNum: 1, //优惠券数量
86
       couponNum: 1, //优惠券数量
73
-      currentPage1: 1
87
+      currentPage1: 1,
88
+      total: 0,
89
+      limit: 10,
74
     };
90
     };
75
   },
91
   },
76
   computed: {},
92
   computed: {},
77
   watch: {},
93
   watch: {},
78
 
94
 
79
   methods: {
95
   methods: {
80
-    reduceNum() {
96
+    reduceNum () {
81
       this.couponNum > 1 ? this.couponNum-- : (this.couponNum = 1);
97
       this.couponNum > 1 ? this.couponNum-- : (this.couponNum = 1);
82
     },
98
     },
83
-    handleSelectionChange(val) {
99
+    handleSelectionChange (val) {
84
       this.multipleSelection = val;
100
       this.multipleSelection = val;
85
       console.log(this.multipleSelection);
101
       console.log(this.multipleSelection);
86
     },
102
     },
87
     // 发送优惠券
103
     // 发送优惠券
88
-    sendCoupon() {
104
+    sendCoupon () {
89
       console.log(this.coupon);
105
       console.log(this.coupon);
90
       let selectIds = "";
106
       let selectIds = "";
91
       for (let i = 0; i < this.multipleSelection.length; i++) {
107
       for (let i = 0; i < this.multipleSelection.length; i++) {
92
-        selectIds = selectIds + ","+this.multipleSelection[i].id;
108
+        selectIds = selectIds + "," + this.multipleSelection[i].id;
93
       }
109
       }
94
       let params = {
110
       let params = {
95
         id: this.coupon,
111
         id: this.coupon,
96
-        user_ids: selectIds.substring(1,selectIds.length),
112
+        user_ids: selectIds.substring(1, selectIds.length),
97
         num: this.couponNum
113
         num: this.couponNum
98
       };
114
       };
99
-      api.sendCoupon(params).then(res => {});
115
+      api.sendCoupon(params).then(res => { });
100
     },
116
     },
101
 
117
 
102
     // 获取订单列表
118
     // 获取订单列表
103
-    getUserList() {
119
+    getUserList () {
104
       console.log("xxxxxxx");
120
       console.log("xxxxxxx");
105
       let params = {
121
       let params = {
106
         page: this.currentPage1,
122
         page: this.currentPage1,
107
         limit: this.limit,
123
         limit: this.limit,
108
-        keywords: this.searchText
124
+        keywords: this.searckItem
109
       };
125
       };
110
       api.getUserList(params).then(res => {
126
       api.getUserList(params).then(res => {
111
         if (res.code == 200) {
127
         if (res.code == 200) {
@@ -116,7 +132,7 @@ export default {
116
     },
132
     },
117
 
133
 
118
     // 获取优惠券列表
134
     // 获取优惠券列表
119
-    getCouponInfo() {
135
+    getCouponInfo () {
120
       console.log("xxxxxxx");
136
       console.log("xxxxxxx");
121
       let params = {
137
       let params = {
122
         page: this.currentPage1,
138
         page: this.currentPage1,
@@ -129,23 +145,23 @@ export default {
129
       });
145
       });
130
     },
146
     },
131
 
147
 
132
-    handleCurrentChange(e) {
148
+    handleCurrentChange (e) {
133
       this.currentPage1 = e;
149
       this.currentPage1 = e;
134
       this.getUserList();
150
       this.getUserList();
135
       console.log(e, "eeeeee");
151
       console.log(e, "eeeeee");
136
     },
152
     },
137
 
153
 
138
-    handleSizeChange(val) {
154
+    handleSizeChange (val) {
139
       console.log(`每页 ${val} 条`);
155
       console.log(`每页 ${val} 条`);
140
     }
156
     }
141
   },
157
   },
142
 
158
 
143
-  created() {
159
+  created () {
144
     this.getUserList();
160
     this.getUserList();
145
     this.getCouponInfo();
161
     this.getCouponInfo();
146
   },
162
   },
147
 
163
 
148
-  mounted() {}
164
+  mounted () { }
149
 };
165
 };
150
 </script>
166
 </script>
151
 
167
 

+ 6 - 5
src/pages/home/index.vue

@@ -16,11 +16,11 @@
16
     <div class="order-list">
16
     <div class="order-list">
17
       <div class="title">预约订单列表</div>
17
       <div class="title">预约订单列表</div>
18
       <div v-if="orderList.length>0"
18
       <div v-if="orderList.length>0"
19
-           class="list-info"
20
-           @click="toOrderDetails(item)">
19
+           class="list-info">
21
         <div class="user-info"
20
         <div class="user-info"
22
              v-for="(item,index) in orderList"
21
              v-for="(item,index) in orderList"
23
              :key="index"
22
              :key="index"
23
+             @click="toOrderDetails(item)"
24
              :style="index==orderList.length-1?'border-bottom:0px':''">
24
              :style="index==orderList.length-1?'border-bottom:0px':''">
25
           <div class="head-img">
25
           <div class="head-img">
26
             <div class="new">新</div><img :src="item.avatar_url"
26
             <div class="new">新</div><img :src="item.avatar_url"
@@ -61,17 +61,17 @@ export default {
61
       tabList: [
61
       tabList: [
62
         {
62
         {
63
           image: 'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/make.png',
63
           image: 'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/make.png',
64
-          num: 3,
64
+          num: 0,
65
           name: '预约订单'
65
           name: '预约订单'
66
         },
66
         },
67
         {
67
         {
68
           image: 'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/unpaid.png',
68
           image: 'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/unpaid.png',
69
-          num: 4,
69
+          num: 0,
70
           name: '未支付订单'
70
           name: '未支付订单'
71
         },
71
         },
72
         {
72
         {
73
           image: 'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/cancelOrder.png',
73
           image: 'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/cancelOrder.png',
74
-          num: 9,
74
+          num: 0,
75
           name: '取消订单'
75
           name: '取消订单'
76
         },
76
         },
77
       ],
77
       ],
@@ -108,6 +108,7 @@ export default {
108
       })
108
       })
109
     },
109
     },
110
     toOrderDetails (e) {
110
     toOrderDetails (e) {
111
+      console.log(e);
111
       if (e.status != 0) return
112
       if (e.status != 0) return
112
       this.$router.push({
113
       this.$router.push({
113
         path: '/confirmOrder/details',
114
         path: '/confirmOrder/details',

+ 122 - 84
src/pages/testSkin/details/index.vue

@@ -6,7 +6,7 @@
6
                alt=""></div>
6
                alt=""></div>
7
         <div class="user-span">
7
         <div class="user-span">
8
           <div class="name">昵称:<span>{{userInfo.nickname}}</span></div>
8
           <div class="name">昵称:<span>{{userInfo.nickname}}</span></div>
9
-          <div class="sex">性别:<span>{{userInfo.sex}}</span></div>
9
+          <div class="sex">性别:<span>{{userInfo.sex==1?'男':userInfo.sex==2?'女':'未知'}}</span></div>
10
           <div class="age">肤龄:<span>{{userInfo.age}}</span></div>
10
           <div class="age">肤龄:<span>{{userInfo.age}}</span></div>
11
           <div class="skin-type">肤质:<span>{{userInfo.skin}}</span></div>
11
           <div class="skin-type">肤质:<span>{{userInfo.skin}}</span></div>
12
         </div>
12
         </div>
@@ -49,63 +49,51 @@
49
       </div>
49
       </div>
50
     </div>
50
     </div>
51
     <div class="right">
51
     <div class="right">
52
-      <div class="lable">
52
+      <div class="lable"
53
+           :style="isOpen?'height: 275px;':'height: 76px;'">
53
         <div class="lable-title">
54
         <div class="lable-title">
54
-          面诊标签
55
+          <div>面诊标签</div>
56
+          <div class="edit">编辑</div>
55
         </div>
57
         </div>
56
-        <div class="lable-list">
57
-          <div v-for="(item,index) in lableList"
58
-               :key="index"
59
-               :class="['lable-info', tags.indexOf(item)>-1?'active':'']">
60
-            {{item}}
58
+        <div class="problem">
59
+          <div class="problem-title">问题标签</div>
60
+          <div class="problem-lable">
61
+            <div class="lable-text"
62
+                 v-for="item,index in problem"
63
+                 :key="index"
64
+                 :style='{background:item.bgcolor,borderColor:item.bdcolor}'>
65
+              {{item.text}}
66
+            </div>
61
           </div>
67
           </div>
62
-          <div class="add-lable">
63
-            +
68
+        </div>
69
+        <div class="problem">
70
+          <div class="problem-title">面部标签</div>
71
+          <div class="problem-lable">
72
+            <div class="lable-text"
73
+                 v-for="item,index in lableList"
74
+                 :key="index"
75
+                 :style='{background:item.bgcolor,borderColor:item.bdcolor}'>
76
+              {{item.text}}
77
+            </div>
64
           </div>
78
           </div>
65
         </div>
79
         </div>
80
+
66
         <div class="lable-title">
81
         <div class="lable-title">
67
           备注
82
           备注
68
         </div>
83
         </div>
69
-        <div class="remarks">
70
-          <el-input type="textarea"
71
-                    autosize
72
-                    resize="none"
73
-                    placeholder="多行输入"
74
-                    v-model="remarks">
75
-          </el-input>
76
-        </div>
84
+        <div class="remarks-text">{{remarks}}</div>
85
+        <div class="open-icon"
86
+             @click="isOpen = !isOpen"><img :src="isOpen?'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/coupon/unOpen.png':'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/coupon/open.png'"
87
+               alt=""></div>
77
       </div>
88
       </div>
78
-      <div class="programme">
89
+      <div class="programme"
90
+           :style="isOpen?'height: 165px;':'height: 364px;'">
79
         <div class="tab">
91
         <div class="tab">
80
           <div class="tab-title">执行方案</div>
92
           <div class="tab-title">执行方案</div>
81
           <div class="add"
93
           <div class="add"
82
                @click="isPupop=true">新增</div>
94
                @click="isPupop=true">新增</div>
83
         </div>
95
         </div>
84
-        <div class="programme-list">
85
-          <div :class="['programme-info',item.onSelect?'programme-active':'']"
86
-               v-for="(item,index) in programmeList"
87
-               :key="index"
88
-               @click="onOperation(index)">
89
-            <div class="programme-left">
90
-              <div class="programme-img"><img :src="item.cover_url"
91
-                     alt=""></div>
92
-              <div class="programme-tips">
93
-                <div class="tips-title">{{item.name|ellipsis(9)}}</div>
94
-                <div class="tips-title">{{item.desc|ellipsis(9)}}</div>
95
-                <div class="tips-title">仪器:<span>{{item.device_name|ellipsis(9)}}</span></div>
96
-              </div>
97
-            </div>
98
-            <div class="programme-right">
99
-              <div class="frequency">执行频率:<span>{{item.frequency}}</span></div>
100
-              <div class="duration">持续时长:<span>{{item.duration}}</span></div>
101
-            </div>
102
-            <div class="operation"
103
-                 v-if="item.onSelect">
104
-              <div class="edit">编辑</div>
105
-              <div class="delete">删除</div>
106
-            </div>
107
-          </div>
108
-        </div>
96
+        <div class=""></div>
109
       </div>
97
       </div>
110
       <div class="submit"
98
       <div class="submit"
111
            @click="onSubmit">保存</div>
99
            @click="onSubmit">保存</div>
@@ -170,8 +158,9 @@ export default {
170
       },
158
       },
171
       //皮肤总结
159
       //皮肤总结
172
       detail_list: [],
160
       detail_list: [],
161
+      problem: [{ text: '干性(干燥)' }, { text: '干性(干燥、脱皮、缺水)' }, { text: '干性(干燥、脱皮、缺水)' }, { text: '干性(干燥、脱皮、缺水)' }, { text: '干性(干燥、脱皮、缺水)' }, { text: '干性(干燥、脱皮、缺水)' }],
173
       //面部标签
162
       //面部标签
174
-      lableList: [],
163
+      lableList: [{ text: '干性(干燥)' }, { text: '干性(干燥、脱皮、缺水)' }, { text: '干性(干燥、脱皮、缺水)' }, { text: '干性(干燥、脱皮、缺水)' }, { text: '干性(干燥、脱皮、缺水)' }, { text: '干性(干燥、脱皮、缺水)' }],
175
       //后台默认的标签
164
       //后台默认的标签
176
       tags: [],
165
       tags: [],
177
       //执行方案
166
       //执行方案
@@ -231,9 +220,10 @@ export default {
231
       projectId: '',//项目id
220
       projectId: '',//项目id
232
       weekInfo: '',//周次
221
       weekInfo: '',//周次
233
       programmeIndex: '',
222
       programmeIndex: '',
234
-      remarks: '',//备注
223
+      remarks: '打架和考到几点拉进来的',//备注
235
       isPupop: false,
224
       isPupop: false,
236
-      id: 0
225
+      id: 0,
226
+      isOpen: true,//是否展开
237
     };
227
     };
238
   },
228
   },
239
   computed: {
229
   computed: {
@@ -246,9 +236,8 @@ export default {
246
       api.getSkinInfo({ id: this.id }).then(res => {
236
       api.getSkinInfo({ id: this.id }).then(res => {
247
         this.userInfo = res.data.user
237
         this.userInfo = res.data.user
248
         this.detail_list = res.data.detail_list
238
         this.detail_list = res.data.detail_list
249
-        this.lableList = res.data.tags
250
         this.programmeList = res.data.scheme_list
239
         this.programmeList = res.data.scheme_list
251
-        this.remarks = res.data.remark
240
+        // this.remarks = res.data.remark
252
       })
241
       })
253
     },
242
     },
254
     getSkinTags () {
243
     getSkinTags () {
@@ -281,6 +270,25 @@ export default {
281
       this.getSkinUpdate()
270
       this.getSkinUpdate()
282
     },
271
     },
283
     submitFrequency () { },
272
     submitFrequency () { },
273
+    randomColor (type) {
274
+      let arr = [
275
+        { background: 'rgba(244, 247, 255, 1)', border: 'rgba(85, 124, 255, 1)' },
276
+        { background: 'rgba(245, 252, 245, 1)', border: 'rgba(66, 211, 81, 1)' },
277
+        { background: 'rgba(254, 244, 237, 1)', border: 'rgba(250, 125, 34, 1)' },
278
+        { background: 'rgba(249, 245, 255, 1)', border: 'rgba(136, 50, 255, 1)' },
279
+        { background: 'rgba(255, 252, 245, 1)', border: 'rgba(204, 116, 42, 1)' },]
280
+      this.problem.forEach(res => {
281
+        let color = Math.floor((Math.random() * arr.length))
282
+        this.$set(res, 'bgcolor', arr[color].background)
283
+        this.$set(res, 'bdcolor', arr[color].border)
284
+      })
285
+      this.lableList.forEach(res => {
286
+        let color = Math.floor((Math.random() * arr.length))
287
+        this.$set(res, 'bgcolor', arr[color].background)
288
+        this.$set(res, 'bdcolor', arr[color].border)
289
+      })
290
+
291
+    }
284
   },
292
   },
285
 
293
 
286
   created () {
294
   created () {
@@ -292,7 +300,7 @@ export default {
292
   },
300
   },
293
 
301
 
294
   mounted () {
302
   mounted () {
295
-
303
+    this.randomColor()
296
   },
304
   },
297
 }
305
 }
298
 
306
 
@@ -429,64 +437,94 @@ export default {
429
     flex: 1;
437
     flex: 1;
430
     .lable {
438
     .lable {
431
       width: 100%;
439
       width: 100%;
432
-      height: 230px;
433
-      overflow: scroll;
434
       padding: 12px;
440
       padding: 12px;
435
       background: #ffffff;
441
       background: #ffffff;
436
       box-shadow: 0px 2px 4px 0px rgba(184, 191, 198, 0.2);
442
       box-shadow: 0px 2px 4px 0px rgba(184, 191, 198, 0.2);
437
       border-radius: 8px;
443
       border-radius: 8px;
444
+      overflow: hidden;
445
+      position: relative;
438
       .lable-title {
446
       .lable-title {
439
         font-size: 14px;
447
         font-size: 14px;
440
         font-family: PingFangSC-Medium, PingFang SC;
448
         font-family: PingFangSC-Medium, PingFang SC;
441
         font-weight: 500;
449
         font-weight: 500;
442
         color: #333333;
450
         color: #333333;
443
         line-height: 20px;
451
         line-height: 20px;
444
-        margin-bottom: 14px;
452
+        margin-bottom: 8px;
453
+        display: flex;
454
+        justify-content: space-between;
455
+        .edit {
456
+          width: 60px;
457
+          height: 28px;
458
+          background: #fa7d22;
459
+          border-radius: 8px;
460
+          font-size: 14px;
461
+          font-family: PingFangSC-Medium, PingFang SC;
462
+          font-weight: 500;
463
+          color: #ffffff;
464
+          line-height: 28px;
465
+          text-align: center;
466
+        }
445
       }
467
       }
446
-      .lable-list {
447
-        width: 100%;
448
-        min-height: 105rpx;
449
-        .lable-info {
450
-          display: inline-block;
451
-          padding: 0 12px;
452
-          margin-left: 10px;
453
-          height: 24px;
454
-          line-height: 24px;
455
-          border-radius: 2px;
456
-          border: 1px solid #d6d6d6;
457
-          margin-bottom: 10px;
468
+      .remarks-text {
469
+        font-size: 12px;
470
+        font-family: PingFangSC-Regular, PingFang SC;
471
+        font-weight: 400;
472
+        color: #666666;
473
+        line-height: 17px;
474
+      }
475
+      .problem {
476
+        display: flex;
477
+        .problem-title {
478
+          font-size: 13px;
479
+          font-family: PingFangSC-Regular, PingFang SC;
480
+          font-weight: 400;
481
+          color: #333333;
482
+          line-height: 18px;
458
         }
483
         }
459
-        .add-lable {
460
-          display: inline-block;
461
-          width: 27px;
462
-          height: 24px;
463
-          line-height: 24px;
484
+        .problem-lable {
485
+          flex: 1;
486
+          overflow-y: hidden;
487
+          width: 100%;
488
+          height: 68px;
464
           font-size: 12px;
489
           font-size: 12px;
465
           font-family: PingFang-SC-Regular, PingFang-SC;
490
           font-family: PingFang-SC-Regular, PingFang-SC;
466
           font-weight: 400;
491
           font-weight: 400;
467
           color: #333333;
492
           color: #333333;
468
-          text-align: center;
469
-          margin-left: 10px;
470
-          border-radius: 2px;
471
-          border: 1px solid #d6d6d6;
472
-        }
473
-        .active {
474
-          background: url(https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/slices/%E9%80%89%E4%B8%AD2%402x.png)
475
-            no-repeat;
476
-          background-size: 100% 100%;
477
-          border: 0px solid #d6d6d6;
493
+          line-height: 17px;
494
+          display: flex;
495
+          flex-flow: column wrap;
496
+          list-style-type: none;
497
+          overflow-x: scroll;
498
+          align-items: baseline;
499
+
500
+          .lable-text {
501
+            margin-left: 10px;
502
+            margin-bottom: 10px;
503
+            height: 24px;
504
+            line-height: 24px;
505
+            border: 1px solid #42d351;
506
+            padding: 0 12px;
507
+            border-radius: 2px;
508
+          }
478
         }
509
         }
479
       }
510
       }
480
-      .remarks {
481
-        /deep/ .el-textarea__inner:focus {
482
-          border-color: #fa852f;
511
+      .open-icon {
512
+        width: 100%;
513
+        padding-top: 10px;
514
+        position: absolute;
515
+        height: 38px;
516
+        background: #ffffff;
517
+        bottom: 0;
518
+        text-align: center;
519
+
520
+        img {
521
+          width: 24px;
483
         }
522
         }
484
       }
523
       }
485
     }
524
     }
486
     .programme {
525
     .programme {
487
       margin-top: 18px;
526
       margin-top: 18px;
488
       width: 100%;
527
       width: 100%;
489
-      // height: 208px;
490
       background: #ffffff;
528
       background: #ffffff;
491
       box-shadow: 0px 2px 4px 0px rgba(184, 191, 198, 0.2);
529
       box-shadow: 0px 2px 4px 0px rgba(184, 191, 198, 0.2);
492
       border-radius: 8px;
530
       border-radius: 8px;

+ 9 - 3
src/server/home.js

@@ -36,6 +36,12 @@ export default class Home {
36
   static getSkinUpdate (parms) {
36
   static getSkinUpdate (parms) {
37
     return $http.post(url.getSkinUpdate, parms);
37
     return $http.post(url.getSkinUpdate, parms);
38
   }
38
   }
39
+  static getProjectList (parms) {
40
+    return $http.get(url.getProjectList, parms);
41
+  }
42
+  static getProducts (parms) {
43
+    return $http.get(url.getProducts, parms);
44
+  }
39
 
45
 
40
   // 获取历史订单
46
   // 获取历史订单
41
   static getOrderList (parms) {
47
   static getOrderList (parms) {
@@ -51,12 +57,12 @@ export default class Home {
51
   static getUserList (parms) {
57
   static getUserList (parms) {
52
     return $http.get(url.getUserList, parms);
58
     return $http.get(url.getUserList, parms);
53
   }
59
   }
54
-  
60
+
55
   // 获取用户详情
61
   // 获取用户详情
56
   static getUserInfo (parms) {
62
   static getUserInfo (parms) {
57
     return $http.get(url.getUserInfo, parms);
63
     return $http.get(url.getUserInfo, parms);
58
   }
64
   }
59
-  
65
+
60
   // 获取优惠券列表
66
   // 获取优惠券列表
61
   static getCouponInfo (parms) {
67
   static getCouponInfo (parms) {
62
     return $http.get(url.getCouponInfo, parms);
68
     return $http.get(url.getCouponInfo, parms);
@@ -66,7 +72,7 @@ export default class Home {
66
   static sendCoupon (parms) {
72
   static sendCoupon (parms) {
67
     return $http.post(url.sendCoupon, parms);
73
     return $http.post(url.sendCoupon, parms);
68
   }
74
   }
69
-  
75
+
70
 
76
 
71
 }
77
 }
72
 
78
 

+ 13 - 9
src/server/urls.js

@@ -16,28 +16,32 @@ export default {
16
   //后台默认的标签
16
   //后台默认的标签
17
   getSkinTags: '/v2/pad/skin/tags',
17
   getSkinTags: '/v2/pad/skin/tags',
18
   //保存测肤记录
18
   //保存测肤记录
19
-  getSkinUpdate:'/v2/pad/skin/update',
19
+  getSkinUpdate: '/v2/pad/skin/update',
20
+  //获取项目列表
21
+  getProjectList: '/v2/pad/project/list',
22
+  //获取升级包
23
+  getProducts:'/v2/pad/project/product',
20
 
24
 
21
   /**
25
   /**
22
    *  by ListKer
26
    *  by ListKer
23
    */
27
    */
24
 
28
 
25
   // 获取历史订单
29
   // 获取历史订单
26
-  getOrderList:'/v2/pad/order/list',
30
+  getOrderList: '/v2/pad/order/list',
27
 
31
 
28
   //获取订单详情
32
   //获取订单详情
29
   getOrderInfo: '/v2/pad/order/info',
33
   getOrderInfo: '/v2/pad/order/info',
30
 
34
 
31
   // 获取用户列表
35
   // 获取用户列表
32
-  getUserList:'/v2/pad/user/list',
33
-  
36
+  getUserList: '/v2/pad/user/list',
37
+
34
   // 获取用户详情
38
   // 获取用户详情
35
-  getUserInfo:'/v2/pad/user/info',
36
-  
39
+  getUserInfo: '/v2/pad/account/info',
40
+
37
   // 获取优惠券列表
41
   // 获取优惠券列表
38
-  getCouponInfo:'/v2/pad/coupon/list',
39
-  
42
+  getCouponInfo: '/v2/pad/coupon/list',
43
+
40
   // 发送优惠券接口
44
   // 发送优惠券接口
41
-  sendCoupon:'/v2/pad/coupon/send',
45
+  sendCoupon: '/v2/pad/coupon/send',
42
 
46
 
43
 }
47
 }