Browse Source

feat: 添加测肤记录

黎海 2 years ago
parent
commit
7fc34c90f6

File diff suppressed because it is too large
+ 335 - 391
src/pages/testSkin/details/index.vue


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

@@ -100,7 +100,7 @@ export default {
100
     },
100
     },
101
     handleCurrentChange (e) {
101
     handleCurrentChange (e) {
102
       this.currentPage1 = e
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
 <template>
1
 <template>
2
   <div class="mine">
2
   <div class="mine">
3
     <div class="right">
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
         <div class="problem">
9
         <div class="problem">
6
           <div class="problem-title">问题标签</div>
10
           <div class="problem-title">问题标签</div>
7
           <div class="problem-lable">
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
           </div>
13
           </div>
15
         </div>
14
         </div>
16
         <div class="problem">
15
         <div class="problem">
17
           <div class="problem-title">面部标签</div>
16
           <div class="problem-title">面部标签</div>
18
           <div class="problem-lable">
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
           </div>
22
           </div>
26
         </div>
23
         </div>
27
       </div>
24
       </div>
28
-      <div class="programme" style="height: 364px;">
25
+      <div class="programme"
26
+           style="height: 364px;">
29
         <div class="tab">
27
         <div class="tab">
30
           <div class="tab-title">执行方案</div>
28
           <div class="tab-title">执行方案</div>
31
         </div>
29
         </div>
32
 
30
 
33
         <div class="programmeList">
31
         <div class="programmeList">
34
           <div class="programmeWeek">
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
           </div>
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
                   </div>
75
                   </div>
62
                 </div>
76
                 </div>
63
               </div>
77
               </div>
@@ -67,54 +81,105 @@
67
       </div>
81
       </div>
68
       <!-- <div class="submit" @click="onSubmit">保存</div> -->
82
       <!-- <div class="submit" @click="onSubmit">保存</div> -->
69
     </div>
83
     </div>
70
-
84
+    <!-- 删除项目 -->
71
     <mine-pupop :show="detele">
85
     <mine-pupop :show="detele">
72
       <div class="block">
86
       <div class="block">
73
-        <div class="delete-pupop" @click="detele=false"></div>
87
+        <div class="delete-pupop"
88
+             @click="detele=false"></div>
74
         <div class="pupop-title">确认删除</div>
89
         <div class="pupop-title">确认删除</div>
75
 
90
 
76
         <div class="noticeSubmit">
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
         </div>
96
         </div>
80
       </div>
97
       </div>
81
     </mine-pupop>
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
         </div>
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
           </el-select>
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
           </el-select>
179
           </el-select>
115
-          <div>次</div>
116
         </div>
180
         </div>
117
-        <div class="submit-frequency" @click="submitFrequency">确定</div>
181
+        <div class="products-button"
182
+             @click="editUpdate">确定</div>
118
       </div>
183
       </div>
119
     </mine-pupop>
184
     </mine-pupop>
120
   </div>
185
   </div>
@@ -126,48 +191,23 @@ import api from "../../../server/home";
126
 
191
 
127
 export default {
192
 export default {
128
   components: { minePupop },
193
   components: { minePupop },
129
-  data() {
194
+  data () {
130
     return {
195
     return {
131
       userInfo: {},
196
       userInfo: {},
132
       //皮肤总结
197
       //皮肤总结
133
       detail_list: [],
198
       detail_list: [],
134
-      problem: [
135
-        { text: "干性(干燥)" },
136
-        { text: "干性(干燥、脱皮、缺水)" },
137
-        { text: "干性(干燥、脱皮、缺水)" },
138
-        { text: "干性(干燥、脱皮、缺水)" },
139
-        { text: "干性(干燥、脱皮、缺水)" },
140
-        { text: "干性(干燥、脱皮、缺水)" }
141
-      ],
199
+      problem: '',
142
       detele: false,
200
       detele: false,
143
       //面部标签
201
       //面部标签
144
       lableList: [
202
       lableList: [
145
-        { text: "干性(干燥)" },
146
-        { text: "干性(干燥、脱皮、缺水)" },
147
-        { text: "干性(干燥、脱皮、缺水)" },
148
-        { text: "干性(干燥、脱皮、缺水)" },
149
-        { text: "干性(干燥、脱皮、缺水)" },
150
-        { text: "干性(干燥、脱皮、缺水)" }
151
       ],
203
       ],
152
       //后台默认的标签
204
       //后台默认的标签
153
       tags: [],
205
       tags: [],
154
       notice: false,
206
       notice: false,
155
       //执行方案
207
       //执行方案
156
       programmeList: [
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
       projectList: [
212
       projectList: [
173
         {
213
         {
@@ -214,57 +254,186 @@ export default {
214
         }
254
         }
215
       ],
255
       ],
216
       timesInfo: "", //次数
256
       timesInfo: "", //次数
217
-      projectInfo: "", //项目
218
       projectId: "", //项目id
257
       projectId: "", //项目id
219
       weekInfo: "", //周次
258
       weekInfo: "", //周次
220
       programmeIndex: "",
259
       programmeIndex: "",
221
       remarks: "打架和考到几点拉进来的", //备注
260
       remarks: "打架和考到几点拉进来的", //备注
222
-      isPupop: false, //新增执行方案
223
       isSkin: false, //新增皮肤问题标签
261
       isSkin: false, //新增皮肤问题标签
262
+      isProject: false,
224
       id: 0,
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
   computed: {},
288
   computed: {},
229
   watch: {},
289
   watch: {},
230
 
290
 
231
   methods: {
291
   methods: {
232
-    getSkinInfo() {
292
+    getSkinInfo () {
233
       api.getSkinInfo({ id: this.id }).then(res => {
293
       api.getSkinInfo({ id: this.id }).then(res => {
234
         this.userInfo = res.data.user;
294
         this.userInfo = res.data.user;
295
+        this.user_id = this.userInfo.user_id
235
         this.detail_list = res.data.detail_list;
296
         this.detail_list = res.data.detail_list;
236
         this.programmeList = res.data.scheme_list;
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
       this.skinTag[index].select = !this.skinTag[index].select;
421
       this.skinTag[index].select = !this.skinTag[index].select;
248
     },
422
     },
249
 
423
 
250
-    selectfaceTag(index, index1) {
424
+    selectfaceTag (index, index1) {
251
       this.faceTagData[index].item[index1].select = !this.faceTagData[index]
425
       this.faceTagData[index].item[index1].select = !this.faceTagData[index]
252
         .item[index1].select;
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
       let params = {
430
       let params = {
262
         remark: this.remarks,
431
         remark: this.remarks,
263
         tags: this.lableList.toString()
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
       if (this.programmeList[index].onSelect) {
437
       if (this.programmeList[index].onSelect) {
269
         this.$set(
438
         this.$set(
270
           this.programmeList[index],
439
           this.programmeList[index],
@@ -276,23 +445,38 @@ export default {
276
       }
445
       }
277
     },
446
     },
278
 
447
 
279
-    weekSelect(index) {
448
+    weekSelect (index) {
280
       console.log("xxxx");
449
       console.log("xxxx");
281
       this.selectWeek = index;
450
       this.selectWeek = index;
282
     },
451
     },
283
 
452
 
284
-    onSubmit() {
453
+    onSubmit () {
285
       this.getSkinUpdate();
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
       this.detele = true;
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
       let arr = [
480
       let arr = [
297
         {
481
         {
298
           background: "rgba(244, 247, 255, 1)",
482
           background: "rgba(244, 247, 255, 1)",
@@ -315,11 +499,6 @@ export default {
315
           border: "rgba(204, 116, 42, 1)"
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
       this.lableList.forEach(res => {
502
       this.lableList.forEach(res => {
324
         let color = Math.floor(Math.random() * arr.length);
503
         let color = Math.floor(Math.random() * arr.length);
325
         this.$set(res, "bgcolor", arr[color].background);
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
     let id = this.$route.query.id;
511
     let id = this.$route.query.id;
333
     this.id = id;
512
     this.id = id;
334
     this.getSkinInfo();
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
 </script>
520
 </script>
@@ -469,6 +646,7 @@ export default {
469
   }
646
   }
470
   .right {
647
   .right {
471
     margin-left: 18px;
648
     margin-left: 18px;
649
+    overflow: hidden;
472
     position: relative;
650
     position: relative;
473
     flex: 1;
651
     flex: 1;
474
     .lable {
652
     .lable {
@@ -564,9 +742,10 @@ export default {
564
       background: #ffffff;
742
       background: #ffffff;
565
       box-shadow: 0px 2px 4px 0px rgba(184, 191, 198, 0.2);
743
       box-shadow: 0px 2px 4px 0px rgba(184, 191, 198, 0.2);
566
       border-radius: 8px;
744
       border-radius: 8px;
567
-      padding: 14px 12px 0 12px;
745
+      padding-top: 14px;
568
       overflow: hidden;
746
       overflow: hidden;
569
       .tab {
747
       .tab {
748
+        padding: 0 12px;
570
         display: flex;
749
         display: flex;
571
         align-items: center;
750
         align-items: center;
572
         justify-content: space-between;
751
         justify-content: space-between;
@@ -592,7 +771,7 @@ export default {
592
       }
771
       }
593
 
772
 
594
       .programmeList {
773
       .programmeList {
595
-        width: 820px;
774
+        // width: 820px;
596
         height: 270px;
775
         height: 270px;
597
       }
776
       }
598
 
777
 
@@ -604,16 +783,6 @@ export default {
604
         align-items: center;
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
       .programmeItem-select {
786
       .programmeItem-select {
618
         width: 76px;
787
         width: 76px;
619
         height: 37px;
788
         height: 37px;
@@ -637,10 +806,13 @@ export default {
637
         color: #333333;
806
         color: #333333;
638
         text-align: center;
807
         text-align: center;
639
       }
808
       }
640
-
809
+      .week {
810
+        padding: 0 17px;
811
+      }
641
       .weekDetails {
812
       .weekDetails {
642
         width: 100%;
813
         width: 100%;
643
         height: 232px;
814
         height: 232px;
815
+
644
         border-radius: 6px;
816
         border-radius: 6px;
645
         border: 1px solid #f5f5f5;
817
         border: 1px solid #f5f5f5;
646
         display: flex;
818
         display: flex;
@@ -649,16 +821,27 @@ export default {
649
       }
821
       }
650
 
822
 
651
       .doTime {
823
       .doTime {
652
-        margin-left: 20px;
824
+        display: flex;
825
+        justify-content: space-between;
826
+        align-items: center;
827
+        padding: 0 20px;
653
         line-height: 30px;
828
         line-height: 30px;
654
         font-size: 12px;
829
         font-size: 12px;
655
         font-weight: 500;
830
         font-weight: 500;
656
         color: #333333;
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
       .topTitle {
841
       .topTitle {
660
         margin-top: 5px;
842
         margin-top: 5px;
661
         display: flex;
843
         display: flex;
844
+        justify-content: space-between;
662
         align-items: center;
845
         align-items: center;
663
         height: 30px;
846
         height: 30px;
664
       }
847
       }
@@ -690,30 +873,6 @@ export default {
690
         margin-right: 5px;
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
       .contentItem {
876
       .contentItem {
718
         margin-left: 10px;
877
         margin-left: 10px;
719
         width: 317px;
878
         width: 317px;
@@ -732,6 +891,7 @@ export default {
732
 
891
 
733
       .itemTitle {
892
       .itemTitle {
734
         margin-top: 40px;
893
         margin-top: 40px;
894
+        padding-right: 10px;
735
         width: 100%;
895
         width: 100%;
736
         line-height: 20px;
896
         line-height: 20px;
737
         font-size: 12px;
897
         font-size: 12px;
@@ -803,31 +963,6 @@ export default {
803
         height: 20px;
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
       .programme-list {
966
       .programme-list {
832
         margin-top: 10px;
967
         margin-top: 10px;
833
         height: 150px;
968
         height: 150px;
@@ -1105,12 +1240,6 @@ export default {
1105
       margin-left: 22px;
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
     .project-select {
1243
     .project-select {
1115
       margin-top: 26px;
1244
       margin-top: 26px;
1116
       position: relative;
1245
       position: relative;
@@ -1154,5 +1283,54 @@ export default {
1154
       line-height: 28px;
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
 </style>
1336
 </style>

+ 45 - 36
src/server/home.js

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