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

feat: 添加测肤记录

黎海 преди 2 години
родител
ревизия
7fc34c90f6
променени са 5 файла, в които са добавени 773 реда и са изтрити 636 реда
  1. 335 391
      src/pages/testSkin/details/index.vue
  2. 1 1
      src/pages/testSkin/index.vue
  3. 386 208
      src/pages/testSkin/updates/index.vue
  4. 45 36
      src/server/home.js
  5. 6 0
      src/server/urls.js

Файловите разлики са ограничени, защото са твърде много
+ 335 - 391
src/pages/testSkin/details/index.vue


+ 1 - 1
src/pages/testSkin/index.vue

@@ -100,7 +100,7 @@ export default {
100 100
     },
101 101
     handleCurrentChange (e) {
102 102
       this.currentPage1 = e
103
-      this.getSkinList
103
+      this.getSkinList()
104 104
     }
105 105
   },
106 106
 

+ 386 - 208
src/pages/testSkin/updates/index.vue

@@ -1,63 +1,77 @@
1 1
 <template>
2 2
   <div class="mine">
3 3
     <div class="right">
4
-      <div class="lable" style="height: 130px;">
4
+      <div class="lable"
5
+           style="height: 130px;">
6
+        <div class="lable-title">
7
+          <div>面诊标签</div>
8
+        </div>
5 9
         <div class="problem">
6 10
           <div class="problem-title">问题标签</div>
7 11
           <div class="problem-lable">
8
-            <div
9
-              class="lable-text"
10
-              v-for="item,index in problem"
11
-              :key="index"
12
-              :style="{background:item.bgcolor,borderColor:item.bdcolor}"
13
-            >{{item.text}}</div>
12
+            <div class="lable-text problem-text">{{problem}}</div>
14 13
           </div>
15 14
         </div>
16 15
         <div class="problem">
17 16
           <div class="problem-title">面部标签</div>
18 17
           <div class="problem-lable">
19
-            <div
20
-              class="lable-text"
21
-              v-for="item,index in lableList"
22
-              :key="index"
23
-              :style="{background:item.bgcolor,borderColor:item.bdcolor}"
24
-            >{{item.text}}</div>
18
+            <div class="lable-text"
19
+                 v-for="item,index in lableList"
20
+                 :key="index"
21
+                 :style="{background:item.bgcolor,borderColor:item.bdcolor}">{{item.text}}</div>
25 22
           </div>
26 23
         </div>
27 24
       </div>
28
-      <div class="programme" style="height: 364px;">
25
+      <div class="programme"
26
+           style="height: 364px;">
29 27
         <div class="tab">
30 28
           <div class="tab-title">执行方案</div>
31 29
         </div>
32 30
 
33 31
         <div class="programmeList">
34 32
           <div class="programmeWeek">
35
-            <div
36
-              :class="selectWeek==index?'programmeItem-select':'programmeItem'"
37
-              v-for="item,index in 4"
38
-              :key="index"
39
-              @click="weekSelect(index)"
40
-            >第几周</div>
33
+            <div :class="selectWeek==index?'programmeItem-select':'programmeItem'"
34
+                 v-for="item,index in programmeList"
35
+                 :key="index"
36
+                 @click="weekSelect(index)">{{item.name}}</div>
41 37
           </div>
42
-          <div class="doTime">水油平衡 间隔:3天/次</div>
43
-          <div class="weekDetails">
44
-            <div class="contentItem" v-for="item,index1 in 4" :key="index1">
45
-              <div class="topTitle">
46
-                <div class="itemTitle1">第一次</div>
47
-                <div class="itemTag">干了啥 间隔多少天</div>
48
-                <div class="newAdd">新增</div>
49
-              </div>
50
-              <div class="itemContent" v-for="items,index2 in 4" :key="index2">
51
-                <img class="itemContent-img" />
52
-                <div class="itemContent-right">
53
-                  <div class="right-content">
54
-                    <div class="right-name">【深层清洁】美国super extra…</div>
55
-                    <div class="right-price">79.00</div>
56
-                  </div>
57
-                  <div class="project-meat">
58
-                    <div class="right-project">+润百颜</div>
59
-                    <img class="update" />
60
-                    <img class="update" @click="deteleShow(item)" />
38
+          <div class="doTime"
39
+               v-if="programmeList.length>0">
40
+            <div class="time">{{programmeList[selectWeek].time}}</div>
41
+            <div class="add"
42
+                 @click="newlyAdded(1,index)">新增</div>
43
+          </div>
44
+          <div class="week">
45
+            <div class="weekDetails"
46
+                 v-if="programmeList.length>0">
47
+              <div class="contentItem"
48
+                   v-for="item,index1 in programmeList[selectWeek].list"
49
+                   :key="index1">
50
+                <div class="topTitle">
51
+                  <div>{{item.name}}</div>
52
+                  <div>{{item.classify_name}}</div>
53
+                  <div class="newAdd"
54
+                       @click="newlyAdded(2,index1)">新增</div>
55
+                </div>
56
+                <div class="itemContent"
57
+                     v-for="items,index2 in item.list"
58
+                     :key="index2">
59
+                  <img class="itemContent-img"
60
+                       :src="items.cover_url" />
61
+                  <div class="itemContent-right">
62
+                    <div class="right-content">
63
+                      <div class="right-name">{{items.name |ellipsis(14)}}</div>
64
+                      <div class="right-price">{{items.price |doubleNum(2)}}</div>
65
+                    </div>
66
+                    <div class="project-meat">
67
+                      <div class="right-project">{{items.product_name}}</div>
68
+                      <img class="update"
69
+                           @click="editPro(items,index2,index1)"
70
+                           src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/wxapp/20220527/invite/edit.png" />
71
+                      <img class="update"
72
+                           src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/wxapp/20220527/invite/delete.png"
73
+                           @click="deteleShow(index1,index2)" />
74
+                    </div>
61 75
                   </div>
62 76
                 </div>
63 77
               </div>
@@ -67,54 +81,105 @@
67 81
       </div>
68 82
       <!-- <div class="submit" @click="onSubmit">保存</div> -->
69 83
     </div>
70
-
84
+    <!-- 删除项目 -->
71 85
     <mine-pupop :show="detele">
72 86
       <div class="block">
73
-        <div class="delete-pupop" @click="detele=false"></div>
87
+        <div class="delete-pupop"
88
+             @click="detele=false"></div>
74 89
         <div class="pupop-title">确认删除</div>
75 90
 
76 91
         <div class="noticeSubmit">
77
-          <div class="submit-back" @click="detele=false">取消</div>
78
-          <div class="submit-notice" @click="submitFrequency(3)">确定</div>
92
+          <div class="submit-back"
93
+               @click="detele=false">取消</div>
94
+          <div class="submit-notice"
95
+               @click="deleteScheme()">确定</div>
79 96
         </div>
80 97
       </div>
81 98
     </mine-pupop>
82
-
83
-    <!-- 新增执行方案 -->
84
-    <mine-pupop :show="isPupop">
85
-      <div class="block">
86
-        <div class="delete-pupop" @click="isPupop=false">
87
-          <img
88
-            src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/slices/delete.png"
89
-            alt
90
-          />
99
+    <mine-pupop :show="isProject">
100
+      <div class="project-block">
101
+        <div class="delete-pupop"
102
+             @click="isProject=false"><img src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/slices/delete.png"
103
+               alt=""></div>
104
+        <div class="project-pupop-title">选择项目</div>
105
+        <div class="project-select">
106
+          <el-select v-model="classifyInfo"
107
+                     placeholder="请选择分类"
108
+                     style="width: 295px;"
109
+                     @change="getClassify"
110
+                     size="mini">
111
+            <el-option v-for="item in classifyList"
112
+                       :key="item.id"
113
+                       :label="item.name"
114
+                       :value="item.id">
115
+            </el-option>
116
+          </el-select>
117
+        </div>
118
+        <div class="project-select">
119
+          <el-select v-model="projectInfo"
120
+                     placeholder="请选择项目"
121
+                     style="width: 295px;"
122
+                     :disabled="classifyInfo.length==0?true:false"
123
+                     @change="getProducts"
124
+                     size="mini">
125
+            <el-option v-for="item in projectList"
126
+                       :key="item.id"
127
+                       :label="item.name"
128
+                       :value="item.id">
129
+            </el-option>
130
+          </el-select>
91 131
         </div>
92
-        <div class="pupop-title">选择执行方案</div>
93
-        <el-select v-model="projectInfo" placeholder="请选择项目" class="project-select" size="mini">
94
-          <el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option>
95
-        </el-select>
96
-        <div class="frequency">
97
-          <div>执行频率:</div>
98
-          <el-select v-model="weekInfo" class="week-select" size="mini">
99
-            <el-option
100
-              v-for="item in weekList"
101
-              :key="item.value"
102
-              :label="item.label"
103
-              :value="item.value"
104
-            ></el-option>
132
+        <div class="products-select">
133
+          <el-select v-model="productsInfo"
134
+                     placeholder="请选择升级产品包"
135
+                     style="width: 295px;"
136
+                     :disabled="projectInfo.length==0?true:false"
137
+                     size="mini">
138
+            <el-option v-for="item in productsList"
139
+                       :key="item.id"
140
+                       :label="item.name"
141
+                       :value="item.id">
142
+            </el-option>
143
+          </el-select>
144
+        </div>
145
+        <div class="products-button"
146
+             @click="orderUpdate">确定</div>
147
+      </div>
148
+    </mine-pupop>
149
+    <mine-pupop :show="editProject">
150
+      <div class="project-block">
151
+        <div class="delete-pupop"
152
+             @click="editProject=false"><img src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/slices/delete.png"
153
+               alt=""></div>
154
+        <div class="project-pupop-title">编辑产品包</div>
155
+        <div class="project-select">
156
+          <el-select v-model="editProjectInfo"
157
+                     placeholder="请选择项目"
158
+                     style="width: 295px;"
159
+                     :disabled="classifyInfo.length==0?true:false"
160
+                     @change="getProducts"
161
+                     size="mini">
162
+            <el-option v-for="item in projectList"
163
+                       :key="item.id"
164
+                       :label="item.name"
165
+                       :value="item.id">
166
+            </el-option>
105 167
           </el-select>
106
-          <div>周</div>
107
-          <el-select v-model="timesInfo" class="times-select" size="mini">
108
-            <el-option
109
-              v-for="item in timesList"
110
-              :key="item.value"
111
-              :label="item.label"
112
-              :value="item.value"
113
-            ></el-option>
168
+        </div>
169
+        <div class="products-select">
170
+          <el-select v-model="editProductsInfo"
171
+                     placeholder="请选择升级产品包"
172
+                     style="width: 295px;"
173
+                     size="mini">
174
+            <el-option v-for="item in productsList"
175
+                       :key="item.id"
176
+                       :label="item.name"
177
+                       :value="item.id">
178
+            </el-option>
114 179
           </el-select>
115
-          <div>次</div>
116 180
         </div>
117
-        <div class="submit-frequency" @click="submitFrequency">确定</div>
181
+        <div class="products-button"
182
+             @click="editUpdate">确定</div>
118 183
       </div>
119 184
     </mine-pupop>
120 185
   </div>
@@ -126,48 +191,23 @@ import api from "../../../server/home";
126 191
 
127 192
 export default {
128 193
   components: { minePupop },
129
-  data() {
194
+  data () {
130 195
     return {
131 196
       userInfo: {},
132 197
       //皮肤总结
133 198
       detail_list: [],
134
-      problem: [
135
-        { text: "干性(干燥)" },
136
-        { text: "干性(干燥、脱皮、缺水)" },
137
-        { text: "干性(干燥、脱皮、缺水)" },
138
-        { text: "干性(干燥、脱皮、缺水)" },
139
-        { text: "干性(干燥、脱皮、缺水)" },
140
-        { text: "干性(干燥、脱皮、缺水)" }
141
-      ],
199
+      problem: '',
142 200
       detele: false,
143 201
       //面部标签
144 202
       lableList: [
145
-        { text: "干性(干燥)" },
146
-        { text: "干性(干燥、脱皮、缺水)" },
147
-        { text: "干性(干燥、脱皮、缺水)" },
148
-        { text: "干性(干燥、脱皮、缺水)" },
149
-        { text: "干性(干燥、脱皮、缺水)" },
150
-        { text: "干性(干燥、脱皮、缺水)" }
151 203
       ],
152 204
       //后台默认的标签
153 205
       tags: [],
154 206
       notice: false,
155 207
       //执行方案
156 208
       programmeList: [
157
-        {
158
-          frequency: "1周1次",
159
-          duration: "28天"
160
-        },
161
-        {
162
-          frequency: "1周1次",
163
-          duration: "28天"
164
-        },
165
-        {
166
-          frequency: "1周1次",
167
-          duration: "28天"
168
-        }
169 209
       ],
170
-
210
+      selectWeek: 0,
171 211
       //项目列表
172 212
       projectList: [
173 213
         {
@@ -214,57 +254,186 @@ export default {
214 254
         }
215 255
       ],
216 256
       timesInfo: "", //次数
217
-      projectInfo: "", //项目
218 257
       projectId: "", //项目id
219 258
       weekInfo: "", //周次
220 259
       programmeIndex: "",
221 260
       remarks: "打架和考到几点拉进来的", //备注
222
-      isPupop: false, //新增执行方案
223 261
       isSkin: false, //新增皮肤问题标签
262
+      isProject: false,
224 263
       id: 0,
225
-      isOpen: false //是否展开
264
+      isOpen: false, //是否展开
265
+      user_id: 0,
266
+      times: 0,//删除的次数
267
+      num: 0,//删除的项目序数
268
+      classifyInfo: '',
269
+      projectInfo: "", //项目
270
+
271
+      productsInfo: '',
272
+      //项目分类列表
273
+      classifyList: [],
274
+      //升级包列表
275
+      productsList: [],
276
+      //当前新增的
277
+      nowAddType: '',
278
+      //当前的次数
279
+      addTimes: '',
280
+      editProject: false,
281
+      editProjectInfo: '',
282
+      editProjectId: '',
283
+      editProductsInfo: '',
284
+      editIndex1: '',
285
+      editIndex2: '',
226 286
     };
227 287
   },
228 288
   computed: {},
229 289
   watch: {},
230 290
 
231 291
   methods: {
232
-    getSkinInfo() {
292
+    getSkinInfo () {
233 293
       api.getSkinInfo({ id: this.id }).then(res => {
234 294
         this.userInfo = res.data.user;
295
+        this.user_id = this.userInfo.user_id
235 296
         this.detail_list = res.data.detail_list;
236 297
         this.programmeList = res.data.scheme_list;
237
-        // this.remarks = res.data.remark
298
+        this.problem = res.data.skin_name;
299
+        this.skin_status = res.data.skin_status
300
+        this.skin_check = res.data.skin_check
301
+        let _problem = []
302
+        res.data.face_names.forEach(item => {
303
+          let info = {}
304
+          info['text'] = item
305
+          _problem.push(info)
306
+          console.log(_problem, '_problem');
307
+        })
308
+        this.lableList = _problem
309
+        this.remarks = res.data.remark
310
+        this.randomColor();
238 311
       });
239 312
     },
240
-    getSkinTags() {
241
-      api.getSkinTags().then(res => {
242
-        this.tags = res.data.tags;
243
-      });
313
+    getProjectClassify () {
314
+      api.projectClassify().then(res => {
315
+        this.classifyList = res.data.list
316
+      })
317
+    },
318
+    getClassify (e) {
319
+      this.projectInfo = ''
320
+      console.log(e);
321
+      this.getProjectList(e)
322
+    },
323
+    getProjectList (e) {
324
+      api.getProjectList({ id: e }).then(res => {
325
+        this.projectList = res.data.list
326
+      })
244 327
     },
328
+    getProducts (e) {
329
+      console.log(e);
330
+      api.getProducts({ id: e }).then(res => {
331
+        this.productsList = res.data.list
332
+        this.productsList.forEach(item => {
333
+          if (this.productsInfo == item.id) {
334
+            this.lastProjectPrice = Number(item.price)
335
+          }
336
+        })
337
+      })
338
+    },
339
+    editPro (item, index1, index2) {
340
+      this.productsInfo = ''
341
+      console.log(item.name);
342
+      this.editProject = true
343
+      this.editProjectInfo = item.name
344
+      this.editProjectId = item.id
345
+      this.editIndex1 = Number(index1)
346
+      this.editIndex2 = index2
347
+      this.getProjectList(this.editProjectId)
348
+    },
349
+    editUpdate () {
350
+      let params = {
351
+        user_id: this.user_id,
352
+        week: this.selectWeek + 1,
353
+        times: this.editIndex1 + 1,
354
+        num: this.editIndex2 + 1,
355
+        project_id: this.editProjectId,
356
+        product_id: this.productsInfo
357
+      }
358
+      api.addUpdate(params).then(res => {
359
+        if (res.code == 200) {
360
+          this.editProject = false
361
+          this.getSkinInfo();
362
+        }
363
+      })
364
+    },
365
+    newlyAdded (e, int) {
366
+      this.nowAddType = e
367
+      this.isProject = true
368
+      this.classifyInfo = ''
369
+      this.projectInfo = ''
370
+      this.productsInfo = ''
371
+      if (e == 2) {
372
+        this.addTimes = int + 1
373
+        // let name = this.programmeList[this.selectWeek].list[int].classify_name
374
+        // this.classifyList.forEach(res => {
375
+        //   if (name == res.name) {
376
+        //     this.classifyInfo = res.id
377
+        //     this.getProjectList(res.id)
378
+        //   }
379
+        // })
380
+      }
381
+
382
+    },
383
+    orderUpdate () {
384
+      if (this.projectInfo == '') {
385
+        this.$message.error('请选择项目');
386
+        return
387
+      }
388
+      if (this.nowAddType == 1) {
389
+        let params = {
390
+          user_id: this.user_id,
391
+          week: this.selectWeek + 1,
392
+          times: this.programmeList[this.selectWeek].list.length + 1,
393
+          project_id: this.projectInfo,
394
+          product_id: this.productsInfo
395
+        }
396
+        api.timesAdd(params).then(res => {
397
+          if (res.code == 200) {
398
+            this.isProject = false
399
+            this.getSkinInfo();
400
+          }
401
+        })
402
+      } else {
403
+        let params = {
404
+          user_id: this.user_id,
405
+          week: this.selectWeek + 1,
406
+          times: this.addTimes,
407
+          num: this.programmeList[this.selectWeek].list[this.addTimes - 1].list.length + 1,
408
+          project_id: this.projectInfo,
409
+          product_id: this.productsInfo
410
+        }
411
+        api.addUpdate(params).then(res => {
412
+          if (res.code == 200) {
413
+            this.isProject = false
414
+            this.getSkinInfo();
415
+          }
416
+        })
417
+      }
245 418
 
246
-    selectSkingTag(index) {
419
+    },
420
+    selectSkingTag (index) {
247 421
       this.skinTag[index].select = !this.skinTag[index].select;
248 422
     },
249 423
 
250
-    selectfaceTag(index, index1) {
424
+    selectfaceTag (index, index1) {
251 425
       this.faceTagData[index].item[index1].select = !this.faceTagData[index]
252 426
         .item[index1].select;
253 427
     },
254 428
 
255
-    getProject() {
256
-      api.getProject().then(res => {
257
-        this.projectList = res.data.list;
258
-      });
259
-    },
260
-    getSkinUpdate() {
429
+    getSkinUpdate () {
261 430
       let params = {
262 431
         remark: this.remarks,
263 432
         tags: this.lableList.toString()
264 433
       };
265
-      api.getSkinUpdate().then(res => {});
434
+      api.getSkinUpdate().then(res => { });
266 435
     },
267
-    onOperation(index) {
436
+    onOperation (index) {
268 437
       if (this.programmeList[index].onSelect) {
269 438
         this.$set(
270 439
           this.programmeList[index],
@@ -276,23 +445,38 @@ export default {
276 445
       }
277 446
     },
278 447
 
279
-    weekSelect(index) {
448
+    weekSelect (index) {
280 449
       console.log("xxxx");
281 450
       this.selectWeek = index;
282 451
     },
283 452
 
284
-    onSubmit() {
453
+    onSubmit () {
285 454
       this.getSkinUpdate();
286 455
     },
287
-    submitFrequency(e) {},
456
+    submitFrequency (e) { },
288 457
 
289
-    backSubmit(e) {},
458
+    backSubmit (e) { },
290 459
 
291
-    deteleShow(item) {
460
+    deteleShow (index1, index2) {
292 461
       this.detele = true;
462
+      this.times = index1 + 1
463
+      this.num = index2 + 1
293 464
     },
294
-
295
-    randomColor(type) {
465
+    deleteScheme () {
466
+      let params = {
467
+        user_id: this.user_id,
468
+        week: this.selectWeek + 1,
469
+        times: this.times,
470
+        num: this.num
471
+      }
472
+      api.schemeDelete(params).then(res => {
473
+        if (res.code == 200) {
474
+          this.getSkinInfo()
475
+          this.detele = false
476
+        }
477
+      })
478
+    },
479
+    randomColor (type) {
296 480
       let arr = [
297 481
         {
298 482
           background: "rgba(244, 247, 255, 1)",
@@ -315,11 +499,6 @@ export default {
315 499
           border: "rgba(204, 116, 42, 1)"
316 500
         }
317 501
       ];
318
-      this.problem.forEach(res => {
319
-        let color = Math.floor(Math.random() * arr.length);
320
-        this.$set(res, "bgcolor", arr[color].background);
321
-        this.$set(res, "bdcolor", arr[color].border);
322
-      });
323 502
       this.lableList.forEach(res => {
324 503
         let color = Math.floor(Math.random() * arr.length);
325 504
         this.$set(res, "bgcolor", arr[color].background);
@@ -328,16 +507,14 @@ export default {
328 507
     }
329 508
   },
330 509
 
331
-  created() {
510
+  created () {
332 511
     let id = this.$route.query.id;
333 512
     this.id = id;
334 513
     this.getSkinInfo();
335
-    this.getProject();
336
-    this.getSkinTags();
514
+    this.getProjectClassify()
337 515
   },
338 516
 
339
-  mounted() {
340
-    this.randomColor();
517
+  mounted () {
341 518
   }
342 519
 };
343 520
 </script>
@@ -469,6 +646,7 @@ export default {
469 646
   }
470 647
   .right {
471 648
     margin-left: 18px;
649
+    overflow: hidden;
472 650
     position: relative;
473 651
     flex: 1;
474 652
     .lable {
@@ -564,9 +742,10 @@ export default {
564 742
       background: #ffffff;
565 743
       box-shadow: 0px 2px 4px 0px rgba(184, 191, 198, 0.2);
566 744
       border-radius: 8px;
567
-      padding: 14px 12px 0 12px;
745
+      padding-top: 14px;
568 746
       overflow: hidden;
569 747
       .tab {
748
+        padding: 0 12px;
570 749
         display: flex;
571 750
         align-items: center;
572 751
         justify-content: space-between;
@@ -592,7 +771,7 @@ export default {
592 771
       }
593 772
 
594 773
       .programmeList {
595
-        width: 820px;
774
+        // width: 820px;
596 775
         height: 270px;
597 776
       }
598 777
 
@@ -604,16 +783,6 @@ export default {
604 783
         align-items: center;
605 784
       }
606 785
 
607
-      // <div class="programmeWeek">
608
-      //       <div class="programmeItem" v-for="item,index in 4" :key="index">
609
-      //         <div
610
-      //           :class="selectWeek==index?'weekItemSelect':'weekItem'"
611
-      //           @click="weekSelect(index)"
612
-      //         >第几周</div>
613
-      //         <div class="weekLine" v-if="index==3?false:true"></div>
614
-      //       </div>
615
-      //     </div>
616
-
617 786
       .programmeItem-select {
618 787
         width: 76px;
619 788
         height: 37px;
@@ -637,10 +806,13 @@ export default {
637 806
         color: #333333;
638 807
         text-align: center;
639 808
       }
640
-
809
+      .week {
810
+        padding: 0 17px;
811
+      }
641 812
       .weekDetails {
642 813
         width: 100%;
643 814
         height: 232px;
815
+
644 816
         border-radius: 6px;
645 817
         border: 1px solid #f5f5f5;
646 818
         display: flex;
@@ -649,16 +821,27 @@ export default {
649 821
       }
650 822
 
651 823
       .doTime {
652
-        margin-left: 20px;
824
+        display: flex;
825
+        justify-content: space-between;
826
+        align-items: center;
827
+        padding: 0 20px;
653 828
         line-height: 30px;
654 829
         font-size: 12px;
655 830
         font-weight: 500;
656 831
         color: #333333;
832
+        .add {
833
+          font-size: 14px;
834
+          font-family: PingFangSC-Medium, PingFang SC;
835
+          font-weight: 500;
836
+          color: #fa7d22;
837
+          line-height: 20px;
838
+        }
657 839
       }
658 840
 
659 841
       .topTitle {
660 842
         margin-top: 5px;
661 843
         display: flex;
844
+        justify-content: space-between;
662 845
         align-items: center;
663 846
         height: 30px;
664 847
       }
@@ -690,30 +873,6 @@ export default {
690 873
         margin-right: 5px;
691 874
       }
692 875
 
693
-      //       <div class="weekDetails">
694
-      //   <div class="doTime">水油平衡 间隔:3天/次</div>
695
-      //   <div class="contentItem" v-for="item,index1 in 4" :key="index1">
696
-      //     <div class="topTitle">
697
-      //       <div class="itemTitle">第一次 干了啥 间隔多少天</div>
698
-      //       <div>新增</div>
699
-      //     </div>
700
-      //     <div class="itemContent" v-for="items,index2 in 4" :key="index2">
701
-      //       <img class="itemContent-img" />
702
-      //       <div class="itemContent-right">
703
-      //         <div class="right-content">
704
-      //           <div class="right-name">【深层清洁】美国super extra…</div>
705
-      //           <div class="right-price">79.00</div>
706
-      //         </div>
707
-      //         <div class="project-meat">
708
-      //           <div class="right-project">+润百颜</div>
709
-      //           <img class="update" />
710
-      //           <img class="update" />
711
-      //         </div>
712
-      //       </div>
713
-      //     </div>
714
-      //   </div>
715
-      // </div>
716
-
717 876
       .contentItem {
718 877
         margin-left: 10px;
719 878
         width: 317px;
@@ -732,6 +891,7 @@ export default {
732 891
 
733 892
       .itemTitle {
734 893
         margin-top: 40px;
894
+        padding-right: 10px;
735 895
         width: 100%;
736 896
         line-height: 20px;
737 897
         font-size: 12px;
@@ -803,31 +963,6 @@ export default {
803 963
         height: 20px;
804 964
       }
805 965
 
806
-      //       <div class="project-meat">
807
-      //   <div class="right-project">+润百颜</div>
808
-      //   <img class="update" />
809
-      //   <img class="update" />
810
-      // </div>
811
-
812
-      // <div class="programmeList">
813
-
814
-      //           <div class="weekDetails">
815
-      //             <div class="contentItem">
816
-      //               <div class="itemTitle">第几次 干了啥 间隔多少天</div>
817
-      //               <div class="itemContent">
818
-      //                 <img class="itemContent-img" />
819
-      //                 <div class="itemContent-right">
820
-      //                   <div class="right-content">
821
-      //                     <div class="right-name">【深层清洁】美国super extra…</div>
822
-      //                     <div class="right-price">79.00</div>
823
-      //                   </div>
824
-      //                     <div class="right-project">+润百颜</div>
825
-      //                 </div>
826
-      //               </div>
827
-      //             </div>
828
-      //           </div>
829
-      //         </div>
830
-
831 966
       .programme-list {
832 967
         margin-top: 10px;
833 968
         height: 150px;
@@ -1105,12 +1240,6 @@ export default {
1105 1240
       margin-left: 22px;
1106 1241
     }
1107 1242
 
1108
-    //     <div class="noticeSubmit">
1109
-    //   <div class="submit-back" @click="backSubmit(3)">返回</div>
1110
-    //   <div class="submit-notice" @click="submitFrequency(3)">确定</div>
1111
-    //   <div class="submit-notice" @click="submitFrequency(3)">跳过</div>
1112
-    // </div>
1113
-
1114 1243
     .project-select {
1115 1244
       margin-top: 26px;
1116 1245
       position: relative;
@@ -1154,5 +1283,54 @@ export default {
1154 1283
       line-height: 28px;
1155 1284
     }
1156 1285
   }
1286
+  .project-block {
1287
+    width: 540px;
1288
+    height: 400px;
1289
+    background: #ffffff;
1290
+    border-radius: 8px;
1291
+    position: relative;
1292
+    padding: 42px;
1293
+    .delete-pupop {
1294
+      width: 32px;
1295
+      position: absolute;
1296
+      right: 5px;
1297
+      top: 5px;
1298
+      img {
1299
+        width: 100%;
1300
+      }
1301
+    }
1302
+    .project-pupop-title {
1303
+      font-size: 14px;
1304
+      font-family: PingFangSC-Medium, PingFang SC;
1305
+      font-weight: 500;
1306
+      color: #333333;
1307
+      line-height: 20px;
1308
+      text-align: center;
1309
+    }
1310
+    .project-select {
1311
+      text-align: center;
1312
+      margin-top: 26px;
1313
+    }
1314
+    .products-select {
1315
+      text-align: center;
1316
+      margin-top: 20px;
1317
+    }
1318
+    .products-button {
1319
+      position: absolute;
1320
+      bottom: 42px;
1321
+      left: 50%;
1322
+      transform: translateX(-50%);
1323
+      width: 176px;
1324
+      height: 28px;
1325
+      background: #fa7d22;
1326
+      border-radius: 14px;
1327
+      font-size: 14px;
1328
+      font-family: PingFangSC-Medium, PingFang SC;
1329
+      font-weight: 500;
1330
+      color: #ffffff;
1331
+      line-height: 28px;
1332
+      text-align: center;
1333
+    }
1334
+  }
1157 1335
 }
1158 1336
 </style>

+ 45 - 36
src/server/home.js

@@ -6,85 +6,94 @@ export default class Home {
6 6
   /**
7 7
    * @描述  1.1	获取用户信息
8 8
    */
9
-  static getToken(parms) {
9
+  static getToken (parms) {
10 10
     return $http.post(url.getToken, parms);
11 11
   }
12 12
 
13
-  static getTotal(parms) {
13
+  static getTotal (parms) {
14 14
     return $http.get(url.getTotal, parms);
15 15
   }
16 16
 
17
-  static getToday(parms) {
17
+  static getToday (parms) {
18 18
     return $http.get(url.getToday, parms);
19 19
   }
20 20
 
21
-  static getSkinList(parms) {
21
+  static getSkinList (parms) {
22 22
     return $http.get(url.getSkinList, parms);
23 23
   }
24
-  static getSkinInfo(parms) {
24
+  static getSkinInfo (parms) {
25 25
     return $http.get(url.getSkinInfo, parms);
26 26
   }
27
-  static getProject(parms) {
27
+  static getProject (parms) {
28 28
     return $http.get(url.getProject, parms);
29 29
   }
30
-  static getUserInfo(parms) {
30
+  static getUserInfo (parms) {
31 31
     return $http.get(url.getUserInfo, parms);
32 32
   }
33
-  static getSkinTags(parms) {
33
+  static getSkinTags (parms) {
34 34
     return $http.get(url.getSkinTags, parms);
35 35
   }
36
-  static getSkinUpdate(parms) {
36
+  static getSkinUpdate (parms) {
37 37
     return $http.post(url.getSkinUpdate, parms);
38 38
   }
39
-  static getProjectList(parms) {
39
+  static getProjectList (parms) {
40 40
     return $http.get(url.getProjectList, parms);
41 41
   }
42
-  static getProducts(parms) {
42
+  static getProducts (parms) {
43 43
     return $http.get(url.getProducts, parms);
44 44
   }
45
-  static getOrderTime(parms) {
45
+  static getOrderTime (parms) {
46 46
     return $http.get(url.getOrderTime, parms);
47 47
   }
48
-  static setOrderUpdate(parms) {
48
+  static setOrderUpdate (parms) {
49 49
     return $http.post(url.setOrderUpdate, parms);
50 50
   }
51
-  static getOrderCoupon(parms) {
51
+  static getOrderCoupon (parms) {
52 52
     return $http.get(url.getOrderCoupon, parms);
53 53
   }
54
-  static getAuthCode(parms) {
54
+  static getAuthCode (parms) {
55 55
     return $http.get(url.getAuthCode, parms);
56 56
   }
57
-  static checkCode(parms) {
57
+  static checkCode (parms) {
58 58
     return $http.get(url.checkCode, parms);
59 59
   }
60
-  static getOrderByCode(parms) {
60
+  static getOrderByCode (parms) {
61 61
     return $http.get(url.getOrderByCode, parms);
62 62
   }
63
-  static orderPay(parms) {
63
+  static orderPay (parms) {
64 64
     return $http.post(url.orderPay, parms);
65 65
   }
66
-  static payStatus(parms) {
66
+  static payStatus (parms) {
67 67
     return $http.get(url.payStatus, parms);
68 68
   }
69
-  static getOrderDiscount(parms) {
69
+  static getOrderDiscount (parms) {
70 70
     return $http.get(url.getOrderDiscount, parms);
71 71
   }
72
-  static projectClassify(parms) {
72
+  static projectClassify (parms) {
73 73
     return $http.get(url.projectClassify, parms);
74 74
   }
75
+  static schemeDelete (parms) {
76
+    return $http.post(url.schemeDelete, parms);
77
+  }
78
+  static timesAdd (parms) {
79
+    return $http.post(url.timesAdd, parms);
80
+  }
81
+  static addUpdate (parms) {
82
+    return $http.post(url.addUpdate, parms);
83
+  }
75 84
 
76 85
   // 获取历史订单
77
-  static getOrderList(parms) {
86
+  static getOrderList (parms) {
78 87
     return $http.get(url.getOrderList, parms);
79 88
   }
80 89
 
81 90
   // 获取订单详情
82
-  static getOrderInfo(parms) {
91
+  static getOrderInfo (parms) {
83 92
     return $http.get(url.getOrderInfo, parms);
84 93
   }
85 94
 
86 95
   // 获取用户列表
87
-  static getUserList(parms) {
96
+  static getUserList (parms) {
88 97
     return $http.get(url.getUserList, parms);
89 98
   }
90 99
 
@@ -94,53 +103,53 @@ export default class Home {
94 103
   // }
95 104
 
96 105
   // 获取优惠券列表
97
-  static getCouponInfo(parms) {
106
+  static getCouponInfo (parms) {
98 107
     return $http.get(url.getCouponInfo, parms);
99 108
   }
100 109
 
101 110
   // 发送优惠券接口
102
-  static sendCoupon(parms) {
111
+  static sendCoupon (parms) {
103 112
     return $http.post(url.sendCoupon, parms);
104 113
   }
105 114
 
106 115
   // 获取用户详情接口
107
-  static getPadUserInfo(parms) {
116
+  static getPadUserInfo (parms) {
108 117
     return $http.get(url.getPadUserInfo, parms);
109 118
   }
110 119
 
111 120
   // 获取优惠券订单
112
-  static getUserCoupon(parms) {
121
+  static getUserCoupon (parms) {
113 122
     return $http.get(url.getUserCoupon, parms);
114 123
   }
115 124
 
116 125
   // 获取商品订单
117
-  static getUserGoods(parms) {
126
+  static getUserGoods (parms) {
118 127
     return $http.get(url.getUserGoods, parms);
119 128
   }
120 129
 
121 130
   // 获取项目订单
122
-  static getUserProject(parms) {
131
+  static getUserProject (parms) {
123 132
     return $http.get(url.getUserProject, parms);
124 133
   }
125 134
 
126 135
   // 新增项目订单
127
-  static padOrderAdd(parms) {
136
+  static padOrderAdd (parms) {
128 137
     return $http.post(url.padOrderAdd, parms);
129 138
   }
130 139
 
131 140
   // 面部问题标签
132
-  static skinFace_tags(parms) {
141
+  static skinFace_tags (parms) {
133 142
     return $http.get(url.skinFace_tags, parms);
134 143
   }
135 144
 
136 145
   // 皮肤问题标签
137
-  static skinSkin_tags(parms) {
146
+  static skinSkin_tags (parms) {
138 147
     return $http.get(url.skinSkin_tags, parms);
139 148
   }
140
-  
149
+
141 150
   // 新增项目订单
142
-  static schemeSave(parms) {
151
+  static schemeSave (parms) {
143 152
     return $http.post(url.schemeSave, parms);
144 153
   }
145
-  
154
+
146 155
 }

+ 6 - 0
src/server/urls.js

@@ -41,6 +41,12 @@ export default {
41 41
   getOrderDiscount: '/v2/pad/order/discount',
42 42
   //获取项目分类
43 43
   projectClassify: '/v2/pad/project/classify',
44
+  //删除项目和耗材
45
+  schemeDelete: '/v2/pad/scheme/delete',
46
+  //新增次数
47
+  timesAdd: '/v2/pad/scheme/times_add',
48
+  //新增项目
49
+  addUpdate: '/v2/pad/scheme/update',
44 50
 
45 51
   /**
46 52
    *  by ListKer