panhui 6 жил өмнө
parent
commit
dac8f61302
36 өөрчлөгдсөн 1278 нэмэгдсэн , 28 устгасан
  1. 17 0
      css/main.css
  2. 1 1
      css/main.css.map
  3. 9 9
      project.config.json
  4. 7 1
      src/app.json
  5. 81 0
      src/components/AddressItem.vue
  6. 96 0
      src/components/Message.vue
  7. 137 0
      src/components/MyCoupon.vue
  8. 20 0
      src/main.less
  9. 5 0
      src/pages/addAddress/addAddress.js
  10. 5 0
      src/pages/addAddress/addAddress.json
  11. 187 0
      src/pages/addAddress/addAddress.vue
  12. 28 11
      src/pages/customize/customize.vue
  13. 5 0
      src/pages/examinePhotos/examinePhotos.js
  14. 3 0
      src/pages/examinePhotos/examinePhotos.json
  15. 219 0
      src/pages/examinePhotos/examinePhotos.vue
  16. 5 0
      src/pages/myAddress/myAddress.js
  17. 4 0
      src/pages/myAddress/myAddress.json
  18. 48 0
      src/pages/myAddress/myAddress.vue
  19. 5 0
      src/pages/myCoupon/myCoupon.js
  20. 4 0
      src/pages/myCoupon/myCoupon.json
  21. 39 0
      src/pages/myCoupon/myCoupon.vue
  22. 5 0
      src/pages/myPoint/myPoint.js
  23. 5 0
      src/pages/myPoint/myPoint.json
  24. 135 0
      src/pages/myPoint/myPoint.vue
  25. 2 0
      src/pages/orderDetail/orderDetail.vue
  26. 5 0
      src/pages/selectPhotos/selectPhotos.js
  27. 3 0
      src/pages/selectPhotos/selectPhotos.json
  28. 191 0
      src/pages/selectPhotos/selectPhotos.vue
  29. 7 6
      src/pages/user/user.vue
  30. BIN
      static/images/icon_chengpian.png
  31. BIN
      static/images/icon_dizhi_kong.png
  32. BIN
      static/images/icon_shangyiye_dis.png
  33. BIN
      static/images/icon_xiayiye_dis.png
  34. BIN
      static/images/icon_yuanpian.png
  35. BIN
      static/images/jifem_02.png
  36. BIN
      static/images/jifen_01.png

+ 17 - 0
css/main.css

@@ -20,6 +20,12 @@
   width: 110px;
   width: 110px;
   height: 110px;
   height: 110px;
 }
 }
+.nothing .main {
+  font-size: 14px;
+  color: #000000;
+  line-height: 20px;
+  margin-top: 25px;
+}
 .nothing .title {
 .nothing .title {
   font-size: 16px;
   font-size: 16px;
   color: #000000;
   color: #000000;
@@ -42,4 +48,15 @@
   border: 1px solid #00c5f2;
   border: 1px solid #00c5f2;
   margin-top: 20px;
   margin-top: 20px;
 }
 }
+.nothing .primary {
+  width: 240px;
+  height: 44px;
+  background: #00c5f2;
+  color: #fff;
+  line-height: 44px;
+  margin-top: 60px;
+}
+.nothing .primary:active {
+  background-color: #009bbf;
+}
 /*# sourceMappingURL=./main.css.map */
 /*# sourceMappingURL=./main.css.map */

+ 1 - 1
css/main.css.map

@@ -1 +1 @@
-{"version":3,"sources":["../src/main.less"],"names":[],"mappings":"AAAA;EACE,gBAAA;EACA,iBAAA;EACA,cAAA;;AAGF;EACE,gBAAA;EACA,cAAA;;AAIA,MAAC;EACC,SAAS,GAAT;;AAIJ;EACE,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,oBAAA;;AAJF,QAME;EACE,YAAA;EACA,aAAA;;AARJ,QAWE;EACE,eAAA;EACA,cAAA;EACA,iBAAA;EACA,gBAAA;;AAfJ,QAkBE;EACE,eAAA;EACA,cAAA;EACA,iBAAA;EACA,eAAA;;AAtBJ,QAyBE;EACE,YAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,cAAA;EACA,mBAAA;EACA,yBAAA;EACA,gBAAA"}
+{"version":3,"sources":["../src/main.less"],"names":[],"mappings":"AAAA;EACE,gBAAA;EACA,iBAAA;EACA,cAAA;;AAGF;EACE,gBAAA;EACA,cAAA;;AAIA,MAAC;EACC,SAAS,GAAT;;AAIJ;EACE,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,oBAAA;;AAJF,QAME;EACE,YAAA;EACA,aAAA;;AARJ,QAWE;EACE,eAAA;EACA,cAAA;EACA,iBAAA;EACA,gBAAA;;AAfJ,QAkBE;EACE,eAAA;EACA,cAAA;EACA,iBAAA;EACA,gBAAA;;AAtBJ,QAyBE;EACE,eAAA;EACA,cAAA;EACA,iBAAA;EACA,eAAA;;AA7BJ,QAgCE;EACE,YAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,cAAA;EACA,mBAAA;EACA,yBAAA;EACA,gBAAA;;AAxCJ,QA2CE;EACE,YAAA;EACA,YAAA;EACA,mBAAA;EACA,WAAA;EACA,iBAAA;EACA,gBAAA;;AAEA,QARF,SAQG;EACC,yBAAA"}

+ 9 - 9
project.config.json

@@ -51,23 +51,23 @@
 				},
 				},
 				{
 				{
 					"id": -1,
 					"id": -1,
-					"name": "订单列表",
-					"pathName": "pages/orderList/orderList",
+					"name": "我的积分",
+					"pathName": "pages/myPoint/myPoint",
 					"query": "",
 					"query": "",
 					"scene": null
 					"scene": null
 				},
 				},
 				{
 				{
-					"id": -1,
-					"name": "私人定制",
-					"pathName": "pages/customize/customize",
+					"id": 3,
+					"name": "在线选片",
+					"pathName": "pages/selectPhotos/selectPhotos",
 					"query": "",
 					"query": "",
 					"scene": null
 					"scene": null
 				},
 				},
 				{
 				{
-					"id": -1,
-					"name": "定制下单",
-					"pathName": "pages/submit/submit",
-					"query": "submitPage=customize&serviceList=2,3,6,7,8,9",
+					"id": 4,
+					"name": "在线审片",
+					"pathName": "pages/examinePhotos/examinePhotos",
+					"query": "",
 					"scene": null
 					"scene": null
 				}
 				}
 			]
 			]

+ 7 - 1
src/app.json

@@ -22,7 +22,13 @@
         "pages/evaluate/evaluate",
         "pages/evaluate/evaluate",
         "pages/orderDetail/orderDetail",
         "pages/orderDetail/orderDetail",
         "pages/bookingTime/bookingTime",
         "pages/bookingTime/bookingTime",
-        "pages/customize/customize"
+        "pages/customize/customize",
+        "pages/selectPhotos/selectPhotos",
+        "pages/myAddress/myAddress",
+        "pages/addAddress/addAddress",
+        "pages/myCoupon/myCoupon",
+        "pages/myPoint/myPoint",
+        "pages/examinePhotos/examinePhotos"
     ],
     ],
     "window": {
     "window": {
         "backgroundTextStyle": "light",
         "backgroundTextStyle": "light",

+ 81 - 0
src/components/AddressItem.vue

@@ -0,0 +1,81 @@
+<template>
+    <div class='address'>
+        <div class="address-item">
+            <div class="name">收货人</div>
+            <div class="val">粉条 15651768686</div>
+        </div>
+        <div class="address-item">
+            <div class="name">收货地址</div>
+            <div class="val">江苏 南京 玄武区 中山路18号德基广场二楼216</div>
+        </div>
+        <div class="btnList">
+            <button class="default">默认</button>
+            <button class="primary">编辑</button>
+        </div>
+    </div>
+</template>
+<script>
+import { mapState } from 'vuex';
+export default {
+    name: '',
+    data() {
+        return {};
+    },
+    computed: {
+        ...mapState(['userInfo']),
+    },
+};
+</script>
+<style lang='less' scoped>
+.address {
+    background: rgba(255, 255, 255, 1);
+    padding: 15px;
+    border-radius: 6px;
+}
+
+.address-item {
+    display: flex;
+    margin-bottom: 10px;
+    .name {
+        font-size: 13px;
+        color: rgba(170, 172, 173, 1);
+        line-height: 20px;
+        min-width: 72px;
+    }
+    .val {
+        font-size: 14px;
+        font-weight: bold;
+        color: rgba(0, 0, 0, 1);
+        line-height: 20px;
+        flex-grow: 1;
+    }
+}
+.btnList {
+    display: flex;
+    justify-content: flex-end;
+    button {
+        width: 60px;
+        height: 26px;
+        background: rgba(255, 255, 255, 1);
+        border-radius: 18px;
+        font-size: 13px;
+        line-height: 26px;
+        margin: 0;
+
+        &.default {
+            border: 1px solid rgba(170, 172, 173, 1);
+            color: #aaacad;
+            margin-right: 10px;
+        }
+
+        &.primary {
+            border: 1px solid #00c5f2;
+            color: #00c5f2;
+        }
+
+        &:active {
+            background-color: darken(#fff, 5);
+        }
+    }
+}
+</style>

+ 96 - 0
src/components/Message.vue

@@ -0,0 +1,96 @@
+<template>
+    <div class='box weui-animate-fade-in' v-if="visible" @click="close()">
+        <div class="message weui-animate-slide-up" @click.stop="">
+            <textarea class="textarea" v-model="text" placeholder="请输入修改意见,20字以内" placeholder-class='pla' :focus="focus" />
+
+            <button class="submit" @click="submit">确定</button>
+            </div>
+    </div>
+</template>
+<script>
+import { mapState } from 'vuex';
+export default {
+    name: 'message',
+    props: {
+        visible: {
+            type: Boolean,
+            default: false,
+        },
+    },
+    data() {
+        return {
+            focus: true,
+            text:''
+        };
+    },
+    computed: {
+        ...mapState(['userInfo']),
+    },
+    watch: {
+        visible() {
+            if (this.visible) {
+                this.focus = true;
+            }
+        },
+    },
+    methods: {
+        close() {
+            this.$emit('close');
+        },
+        submit(){
+            this.$emit('submit',this.text)
+        }
+    },
+};
+</script>
+<style lang='less' scoped>
+.box {
+    position: fixed;
+    z-index: 500;
+    background-color: rgba(0, 0, 0, 0.5);
+    left: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+}
+
+.message {
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    background-color: #fafafa;
+    border-radius: 8px 8px 0px 0px;
+    width: 100%;
+    max-height: 70%;
+    overflow-y: scroll;
+    padding: 20px 15px 30px;
+    box-sizing: border-box;
+}
+
+.textarea {
+    padding: 15px;
+    height: 90px;
+    background: rgba(242, 244, 245, 1);
+    border-radius: 8px;
+    box-sizing: border-box;
+    width: 100%;
+    font-size: 14px;
+    color: rgba(0, 0, 0, 1);
+    line-height: 20px;
+
+    &.pla {
+        color: #aaacad;
+    }
+}
+
+.submit {
+    height: 44px;
+    background: rgba(0, 197, 242, 1);
+    border-radius: 22px;
+    font-size: 16px;
+    font-weight: bold;
+    color: rgba(255, 255, 255, 1);
+    line-height: 44px;
+    margin-top: 20px;
+}
+</style>

+ 137 - 0
src/components/MyCoupon.vue

@@ -0,0 +1,137 @@
+<template>
+    <div class='coupon' :class="{notUse:stauts==1}">
+        <div class="couponTop">
+            <div class="money">300</div>
+
+            <div class="explain">
+                <div class="title">立减券</div>
+                <div class="sub">满1000元可用</div>
+            </div>
+
+            <div class="btn">{{stauts==1?'已过期':'立即使用'}}</div>
+        </div>
+
+        <div class="time">
+            过期时间:2019-06-06 23:59
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    name: 'myCoupon',
+    props: {
+        stauts: {
+            type: Number,
+            default: 0,
+        },
+    },
+    data() {
+        return {};
+    },
+};
+</script>
+<style lang='less' scoped>
+.coupon {
+    // margin: 20rpx 28rpx;
+    // height: 160rpx;
+    background: #fff;
+    border-radius: 16rpx;
+    margin-bottom: 10px;
+}
+
+.couponTop {
+    display: flex;
+    align-items: center;
+    padding: 9px 0;
+}
+
+.money {
+    font-size: 88rpx;
+    font-weight: bold;
+    color: #00c5f2;
+    line-height: 124rpx;
+    margin-left: 34rpx;
+    &::before {
+        content: '¥';
+        font-size: 32rpx;
+        font-weight: normal;
+        color: #00c5f2;
+        line-height: 44rpx;
+    }
+}
+
+.explain {
+    flex-grow: 1;
+    margin-left: 10rpx;
+    .title {
+        font-size: 34rpx;
+        font-weight: bold;
+        color: #000000;
+        line-height: 48rpx;
+    }
+    .sub {
+        font-size: 26rpx;
+        color: #000000;
+        line-height: 36rpx;
+    }
+}
+
+.hr {
+    width: 4rpx;
+    height: 100rpx;
+    background: rgba(252, 252, 252, 1);
+    border-radius: 2px;
+    opacity: 0.2;
+}
+
+.btn {
+    font-size: 22rpx;
+    font-weight: bold;
+    color: #fff;
+    line-height: 32px;
+    width: 136rpx;
+    height: 52rpx;
+    background: #00c5f2;
+    border-radius: 200rpx;
+    line-height: 52rpx;
+    text-align: center;
+    margin: 0 40rpx;
+}
+
+.time {
+    font-size: 12px;
+    color: rgba(153, 153, 153, 1);
+    line-height: 40px;
+    padding: 0 15px;
+    border-top: 1px dashed #ebebeb;
+}
+.notUse {
+    background-color: #adadad;
+
+    .money {
+        color: #fff;
+        &::before {
+            color: #fff;
+        }
+    }
+
+    .explain {
+        .title {
+            color: #fff;
+        }
+        .sub {
+            color: #fff;
+        }
+    }
+
+    .btn {
+        background: rgba(153, 153, 153, 1);
+        color: #fff;
+        font-weight: normal;
+    }
+
+    .time{
+        color: #fff;
+    }
+}
+</style>

+ 20 - 0
src/main.less

@@ -26,6 +26,13 @@
     height: 110px;
     height: 110px;
   }
   }
 
 
+  .main{
+    font-size:14px;
+    color:rgba(0,0,0,1);
+    line-height:20px; 
+    margin-top: 25px;
+  }
+
   .title {
   .title {
     font-size: 16px;
     font-size: 16px;
     color: rgba(0, 0, 0, 1);
     color: rgba(0, 0, 0, 1);
@@ -50,4 +57,17 @@
     border: 1px solid rgba(0, 197, 242, 1);
     border: 1px solid rgba(0, 197, 242, 1);
     margin-top: 20px;
     margin-top: 20px;
   }
   }
+
+  .primary {
+    width: 240px;
+    height: 44px;
+    background: rgba(0, 197, 242, 1);
+    color: #fff;
+    line-height: 44px;
+    margin-top: 60px;
+
+    &:active {
+      background-color: darken(#00c5f2, 10);
+    }
+  }
 }
 }

+ 5 - 0
src/pages/addAddress/addAddress.js

@@ -0,0 +1,5 @@
+import Vue from 'vue'
+import App from './addAddress.vue'
+
+const app = new Vue(App)
+app.$mount()

+ 5 - 0
src/pages/addAddress/addAddress.json

@@ -0,0 +1,5 @@
+{
+    "navigationBarTitleText": "添加地址",
+    "backgroundColor": "#f2f4f5"
+
+}

+ 187 - 0
src/pages/addAddress/addAddress.vue

@@ -0,0 +1,187 @@
+<template>
+    <div class='container'>
+        <div class="section">
+            <div class="section-item">
+                <div class="name">联系人</div>
+                <input class="input" type="text" maxlength="10" placeholder="请填写您的姓名" placeholder-class="plac" />
+            </div>
+            <div class="section-item">
+                <div class="name">手机</div>
+                <input class="input" type="number" maxlength="11" placeholder="请填写您的姓名" placeholder-class="plac" />
+            </div>
+        </div>
+
+        <div class="section">
+            <div class="section-item">
+                <div class="name">收货地址</div>
+                <input class="input" type="text" v-model="regionVal" maxlength="10" placeholder="请选择您的地址" placeholder-class="plac" />
+                <img src="/static/images/icon_inter.png" alt="">
+                <picker class="picker" mode="region" @change="bindRegionChange" :value='region'>
+                    <view class="picker">
+                        当前选择:{{region[0]}},{{region[1]}},{{region[2]}}
+                    </view>
+                </picker>
+            </div>
+            <div class="section-item">
+                <div class="name">详细地址</div>
+                <textarea class="textarea" placeholder="请填写您的姓名" placeholder-class="plac" />
+                </div>
+        </div>
+
+        <div class="default">
+            <img :src="chooseImg" alt="">
+            <span>默认地址</span>
+        </div>
+
+
+        <div class="fixedBtn">
+            <button>确定</button>
+        </div>
+
+        
+    </div>
+</template>
+<script>
+import { mapState } from 'vuex';
+export default {
+    name: '',
+    data() {
+        return {
+            IsDefault: false,
+            region:[],
+            regionVal:'',
+             customItem: '全部'
+        };
+    },
+    computed: {
+        ...mapState(['userInfo']),
+        chooseImg() {
+            if (this.IsDefault) {
+                return require('../../../static/images/gouwuche_icon_xuanzhong.png');
+            } else {
+                return require('../../../static/images/gouwuche_icon_weixuanzhong.png');
+            }
+        },
+    },
+    methods:{
+        bindRegionChange(e){
+            console.log(e)
+           this.region= e.mp.detail.value
+           this.regionVal=this.region.join(',')
+        }   
+    }
+};
+</script>
+<style lang='less' scoped>
+.container {
+    background: rgba(242, 244, 245, 1);
+    min-height: 100%;
+    padding: 15px;
+    box-sizing: border-box;
+}
+
+.section {
+    background: rgba(255, 255, 255, 1);
+    border-radius: 6px;
+    padding: 0 15px;
+    &:not(:first-child) {
+        margin-top: 10px;
+    }
+}
+
+.section-item {
+    display: flex;
+    position: relative;
+    .name {
+        font-size: 14px;
+        font-weight: bold;
+        color: rgba(0, 0, 0, 1);
+        line-height: 60px;
+        min-width: 85px;
+    }
+    .input {
+        font-size: 13px;
+        flex-grow: 1;
+        color: #000;
+        line-height: 60px;
+        height: 60px;
+    }
+    .plac {
+        color: rgba(170, 172, 173, 1);
+    }
+
+    &:not(:last-child) {
+        border-bottom: 1px solid #f2f4f5;
+    }
+
+    img {
+        width: 24px;
+        height: 24px;
+        align-self: center;
+    }
+
+    .textarea {
+        margin: 21px 0 10px;
+        font-size: 13px;
+        flex-grow: 1;
+        color: #000;
+        height: 60px;
+    }
+
+    .picker{
+        position: absolute;
+        left: 0;
+        top: 0;
+        right: 0;
+        bottom: 0;
+        z-index: 20;
+        opacity: 0;
+    }
+}
+
+.default {
+    width: 115px;
+    height: 36px;
+    background: rgba(255, 255, 255, 1);
+    border-radius: 17px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    margin-top: 15px;
+
+    img {
+        width: 16px;
+        height: 16px;
+    }
+
+    span {
+        font-size: 13px;
+        color: rgba(0, 0, 0, 1);
+        line-height: 18px;
+        margin-left: 8px;
+    }
+}
+
+.fixedBtn {
+    height: 56px;
+
+    button {
+        height: 40px;
+        background: rgba(0, 197, 242, 1);
+        border-radius: 22px;
+        position: fixed;
+        bottom: 8px;
+        width: 345px;
+        left: 15px;
+        z-index: 20;
+        font-size: 15px;
+        font-weight: bold;
+        color: rgba(255, 255, 255, 1);
+        line-height: 40px;
+
+        &:active {
+            background-color: darken(#00c5f2, 10);
+        }
+    }
+}
+</style>

+ 28 - 11
src/pages/customize/customize.vue

@@ -73,7 +73,7 @@
 
 
         <actionSheet :list='chooseList' label='levelName' :visible='showAction' @close='close'></actionSheet>
         <actionSheet :list='chooseList' label='levelName' :visible='showAction' @close='close'></actionSheet>
         <customizeDetail :list='allChooseInfo' :mandatory='mandatory' :visible='showDetail' @close="showDetail=false"></customizeDetail>
         <customizeDetail :list='allChooseInfo' :mandatory='mandatory' :visible='showDetail' @close="showDetail=false"></customizeDetail>
-        <specificationsContent :visible='showSpecifications' type='customize' :productInfo='productInfo' @close='showSpecifications=false' :totalMoney='total' :chooseType='chooseSpecificationType' :chooseNum='1' @changeType='changeType'  @changeChoose='changeChoose'></specificationsContent>
+        <specificationsContent :visible='showSpecifications' type='customize' :productInfo='productInfo' @close='showSpecifications=false' :totalMoney='total' :chooseType='chooseSpecificationType' :chooseNum='1' @changeType='changeType' @changeChoose='changeChoose'></specificationsContent>
 
 
     </div>
     </div>
 </template>
 </template>
@@ -300,6 +300,7 @@ export default {
         },
         },
     },
     },
     onLoad() {
     onLoad() {
+        this.refreash();
         this.getStoreService('photographer').then(res => {
         this.getStoreService('photographer').then(res => {
             this.allPhotographer = res;
             this.allPhotographer = res;
         });
         });
@@ -349,6 +350,24 @@ export default {
         });
         });
     },
     },
     methods: {
     methods: {
+        refreash() {
+            this.storeServiceList = '';
+            this.choosePhotographerLevel = 0;
+            this.chooseMakeupLevel = 0;
+            this.showAction = false;
+            this.chooseList = [];
+            this.chooseType = '';
+            this.chooseClothingLevel = '0';
+            this.chooseAlbumLevel = 0;
+            this.choosePhotographer = 0;
+            this.chooseMakeup = 0;
+            this.chooseClothing = [];
+            this.chooseAlbum = [];
+            this.mandatory = [];
+            this.showDetail = false;
+            this.showSpecifications = false;
+            this.chooseSpecificationType = 'all';
+        },
         chooseSelect(info) {
         chooseSelect(info) {
             var type = info.type;
             var type = info.type;
             var id = info.id;
             var id = info.id;
@@ -465,8 +484,7 @@ export default {
                             resolve(res.data);
                             resolve(res.data);
                         }
                         }
                     })
                     })
-                    .catch(e => {
-                    });
+                    .catch(e => {});
             });
             });
         },
         },
         getStoreServiceLevel(typeFlag) {
         getStoreServiceLevel(typeFlag) {
@@ -509,16 +527,13 @@ export default {
                 return;
                 return;
             }
             }
 
 
-         
             this.showSpecifications = true;
             this.showSpecifications = true;
-
-           
         },
         },
         changeType(type) {
         changeType(type) {
             this.chooseSpecificationType = type;
             this.chooseSpecificationType = type;
         },
         },
-        changeChoose(){
-               var idList = this.allChooseInfo.map(item => {
+        changeChoose() {
+            var idList = this.allChooseInfo.map(item => {
                 return item.id;
                 return item.id;
             });
             });
             idList = idList.concat(
             idList = idList.concat(
@@ -527,12 +542,14 @@ export default {
                 }),
                 }),
             );
             );
 
 
-             wx.navigateTo({
+            wx.navigateTo({
                 url:
                 url:
                     '/pages/submit/submit?submitPage=customize&serviceList=' +
                     '/pages/submit/submit?submitPage=customize&serviceList=' +
-                    idList.join(',')+'&typeFlag='+(this.chooseSpecificationType=='all'?0:1),
+                    idList.join(',') +
+                    '&typeFlag=' +
+                    (this.chooseSpecificationType == 'all' ? 0 : 1),
             });
             });
-        }
+        },
     },
     },
     components: {
     components: {
         customizeItem,
         customizeItem,

+ 5 - 0
src/pages/examinePhotos/examinePhotos.js

@@ -0,0 +1,5 @@
+import Vue from 'vue'
+import App from './examinePhotos.vue'
+
+const app = new Vue(App)
+app.$mount()

+ 3 - 0
src/pages/examinePhotos/examinePhotos.json

@@ -0,0 +1,3 @@
+{
+    "navigationBarTitleText": "在线审片"
+}

+ 219 - 0
src/pages/examinePhotos/examinePhotos.vue

@@ -0,0 +1,219 @@
+<template>
+    <div class='container'>
+        <div class="top">
+            <div class="banner">
+                <div class="banner-left">No.{{current+1}}/共{{imgList.length}}张</div>
+                <div class="banner-right">已选择:23张</div>
+            </div>
+        </div>
+        <swiper class="swiper" :current='current' @change='changeSwiper'>
+            <swiper-item v-for="(item,index) in imgList" :key="index" class="slide-image">
+                <div class="imgContent">
+                    <img :src="item" class="img" background-size="contain" background-position="center center" @click="showImg(index)">
+                    <img src="/static/images/icon_chengpian.png" class="icon" alt="">
+                </div>
+
+                  <div class="imgContent">
+                    <img :src="item" class="img" background-size="contain" background-position="center center" @click="showImg(index)">
+                    <img src="/static/images/icon_yuanpian.png" class="icon" alt="">
+                </div>
+            </swiper-item>
+        </swiper>
+        <img class="left" v-if="current>0" @click="goPre" src="/static/images/icon_shangyiye_dis.png" alt="">
+        <img class="right" @click="goNext" src="/static/images/icon_xiayiye_dis.png" alt="">
+        <div class="bottom">
+            <div class="message" :class="{notSet:!message}" @click="showMessage=true">
+                {{message}}
+            </div>
+
+            <div class="btnList">
+                
+            </div>
+        </div>
+
+        <messageContent :visible='showMessage' @close='showMessage=false' @submit='submit'></messageContent>
+    </div>
+</template>
+<script>
+import { mapState } from 'vuex';
+import messageContent from '../../components/Message';
+export default {
+    name: '',
+    data() {
+        return {
+            imgList: [
+                'https://bpic.588ku.com/illus_water_img/19/07/04/923c38ece95e492a51d77f6c595d4663.jpg',
+                'https://bpic.588ku.com/illus_water_img/19/06/05/cbe3f85497904ff30119a6dd4884024a.jpg',
+                'https://bpic.588ku.com/illus_water_img/19/06/14/de14f437789722334a0cc5ea02048ca7.jpg',
+                'https://bpic.588ku.com/illus_water_img/19/06/07/470ac937b435c696545ffb12e7bda675.jpg',
+                'https://bpic.588ku.com/illus_water_img/19/06/25/c64d4b4c8be8c62ff6806c449bcf7ec3.jpg',
+            ],
+            current: 0,
+            message: '',
+            isChoose: false,
+            showMessage: false,
+        };
+    },
+    computed: {
+        ...mapState(['userInfo']),
+    },
+    methods: {
+        goPre() {
+            this.current--;
+        },
+        goNext() {
+            if (this.current == this.imgList.length - 1) {
+                return;
+            }
+            this.current++;
+        },
+        changeSwiper(e) {
+            this.current = e.mp.detail.current;
+        },
+        submit(text) {
+            console.log(text);
+            this.showMessage = false;
+        },
+        showImg(index) {
+            wx.previewImage({
+                current: index, // 当前显示图片的http链接
+                urls: this.imgList, // 需要预览的图片http链接列表
+            });
+        },
+    },
+    components: {
+        messageContent,
+    },
+};
+</script>
+<style lang='less' scoped>
+.top {
+    min-height: 80px;
+    height: 80px;
+}
+.bottom {
+    min-height: 148px;
+    height: 148px;
+}
+
+.container {
+    display: flex;
+    flex-direction: column;
+    height: 100%;
+    position: relative;
+}
+.swiper {
+    flex-grow: 1;
+
+    .slide-image {
+        width: 100%;
+        height: 100%;
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        justify-content: center;
+        .imgContent {
+            width: 160px;
+            height: 160px;
+            background: #f2f4f5;
+            border-radius: 4px;
+            position: relative;
+            .img{
+                width: 160px;
+                height: 160px;
+            }
+            .icon{
+                width: 38px;
+                height: 38px;
+                position: absolute;
+                left: 0;
+                top: 0;
+            }
+        }
+    }
+}
+
+.left {
+    width: 36px;
+    height: 36px;
+    left: 15px;
+    top: 50%;
+    transform: translateY(-60px);
+    position: absolute;
+    z-index: 50;
+}
+
+.right {
+    width: 36px;
+    height: 36px;
+    right: 15px;
+    top: 50%;
+    transform: translateY(-60px);
+    position: absolute;
+
+    z-index: 50;
+}
+
+.banner {
+    height: 50px;
+    background: rgba(255, 255, 255, 1);
+    box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08);
+    border-radius: 36px;
+    margin: 10px 15px;
+    display: flex;
+    justify-content: space-around;
+    align-items: center;
+    .banner-left {
+        font-size: 14px;
+        font-weight: bold;
+        color: rgba(0, 0, 0, 1);
+        line-height: 20px;
+    }
+    .banner-right {
+        font-size: 14px;
+        font-weight: bold;
+        color: rgba(0, 197, 242, 1);
+        line-height: 20px;
+    }
+}
+
+.message {
+    height: 50px;
+    background: rgba(242, 244, 245, 1);
+    border-radius: 8px;
+    margin: 15px;
+    padding: 0 20px;
+    line-height: 50px;
+    font-size: 14px;
+    color: rgba(0, 0, 0, 1);
+
+    &.notSet {
+        &::before {
+            content: '输入备注内容';
+            color: rgba(170, 172, 173, 1);
+        }
+    }
+}
+
+.btn {
+    height: 40px;
+    border-radius: 22px;
+    border: 1px solid rgba(0, 197, 242, 1);
+    display: block;
+    margin: 35px 15px 0;
+    font-size: 15px;
+    font-weight: bold;
+    color: rgba(0, 197, 242, 1);
+    line-height: 40px;
+    background-color: #fff;
+
+    &:active {
+        background-color: darken(#fff, 10);
+    }
+
+    &.primary {
+        background-color: #00c5f2;
+        color: #fff;
+    }
+}
+</style>

+ 5 - 0
src/pages/myAddress/myAddress.js

@@ -0,0 +1,5 @@
+import Vue from 'vue'
+import App from './myAddress.vue'
+
+const app = new Vue(App)
+app.$mount()

+ 4 - 0
src/pages/myAddress/myAddress.json

@@ -0,0 +1,4 @@
+{
+    "navigationBarTitleText": "我的地址",
+    "backgroundColor": "#f2f4f5"
+}

+ 48 - 0
src/pages/myAddress/myAddress.vue

@@ -0,0 +1,48 @@
+<template>
+    <div class='container'>
+        <addressItem></addressItem>
+
+        <div class="nothing">
+            <img src="/static/images/icon_dizhi_kong.png" alt="">
+            <div class="main">你还没有收获地址哦~</div>
+            <button class="primary" @click="goCreate">新建地址</button>
+        </div>
+    </div>
+</template>
+<script>
+import { mapState } from 'vuex';
+import addressItem from '../../components/AddressItem';
+export default {
+    name: 'myAddress',
+    data() {
+        return {};
+    },
+    computed: {
+        ...mapState(['userInfo']),
+    },
+    methods: {
+        goCreate() {
+            wx.navigateTo({
+                url: '/pages/addAddress/addAddress',
+            });
+        },
+    },
+    components: {
+        addressItem,
+    },
+};
+</script>
+<style lang='less' scoped>
+.container {
+    background: rgba(242, 244, 245, 1);
+    min-height: 100%;
+    padding: 15px;
+    box-sizing: border-box;
+}
+.nothing {
+    img {
+        width: 74px;
+        height: 85px;
+    }
+}
+</style>

+ 5 - 0
src/pages/myCoupon/myCoupon.js

@@ -0,0 +1,5 @@
+import Vue from 'vue'
+import App from './myCoupon.vue'
+
+const app = new Vue(App)
+app.$mount()

+ 4 - 0
src/pages/myCoupon/myCoupon.json

@@ -0,0 +1,4 @@
+{
+    "navigationBarTitleText": "我的优惠券",
+    "backgroundColor": "#f2f4f5"
+}

+ 39 - 0
src/pages/myCoupon/myCoupon.vue

@@ -0,0 +1,39 @@
+<template>
+    <div class='container'>
+        <myCoupon></myCoupon>
+        <myCoupon></myCoupon>
+
+        <div class="couponTitle">以下优惠券不可使用</div>
+        <myCoupon :stauts='1'></myCoupon>
+    </div>
+</template>
+<script>
+import { mapState } from 'vuex';
+import myCoupon from '../../components/MyCoupon';
+export default {
+    name: '',
+    data() {
+        return {};
+    },
+    computed: {
+        ...mapState(['userInfo']),
+    },
+    components: {
+        myCoupon,
+    },
+};
+</script>
+<style lang='less' scoped>
+.container {
+    background-color: #f2f4f5;
+    min-height: 100%;
+    padding: 15px;
+    box-sizing: border-box;
+}
+.couponTitle {
+    font-size: 14px;
+    color: rgba(77, 77, 77, 1);
+    line-height: 20px;
+    padding: 10px 0;
+}
+</style>

+ 5 - 0
src/pages/myPoint/myPoint.js

@@ -0,0 +1,5 @@
+import Vue from 'vue'
+import App from './myPoint.vue'
+
+const app = new Vue(App)
+app.$mount()

+ 5 - 0
src/pages/myPoint/myPoint.json

@@ -0,0 +1,5 @@
+{
+    "navigationBarTitleText": "我的积分",
+    "backgroundColorTop": "#fff",
+    "backgroundColorBottom": "#f2f4f5"
+}

+ 135 - 0
src/pages/myPoint/myPoint.vue

@@ -0,0 +1,135 @@
+<template>
+    <div class='container'>
+        <div class="top">
+            <div class="pontVal">
+                <div class="title">我的积分</div>
+                <div class="val">562</div>
+
+                <img src="/static/images/jifen_01.png" alt="" class="img1">
+                <img src="/static/images/jifem_02.png" alt="" class="img2">
+            </div>
+        </div>
+
+        <div class="pointList">
+            <div class="pointTitle">
+                积分明细
+            </div>
+
+            <div class="pointItem">
+                <div class="val">+15</div>
+                <div class="text">
+                    <div class="title">购买套餐赠送</div>
+                    <div class="time">2019.05.02 15:36</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import { mapState } from 'vuex';
+export default {
+    name: '',
+    data() {
+        return {};
+    },
+    computed: {
+        ...mapState(['userInfo']),
+    },
+};
+</script>
+<style lang='less' scoped>
+.container {
+    min-height: 100%;
+    background-color: #f2f4f5;
+}
+.top {
+    background-color: #fff;
+    padding: 15px;
+
+    .pontVal {
+        height: 116px;
+        background: linear-gradient(
+            270deg,
+            rgba(255, 199, 1, 1) 0%,
+            rgba(255, 191, 57, 1) 100%
+        );
+        border-radius: 8px;
+        position: relative;
+        padding: 20px;
+        box-sizing: border-box;
+
+        img {
+            position: absolute;
+
+            top: 0;
+            &.img1 {
+                width: 119px;
+                height: 116px;
+                right: 0;
+            }
+
+            &.img2 {
+                width: 195px;
+                height: 50px;
+                left: 33px;
+            }
+        }
+
+        .title {
+            font-size: 15px;
+            color: rgba(255, 255, 255, 1);
+            line-height: 21px;
+        }
+
+        .val {
+            font-size: 50px;
+            font-weight: bold;
+            color: rgba(255, 255, 255, 1);
+            line-height: 60px;
+        }
+    }
+}
+
+.pointList {
+    padding: 15px;
+    .pointTitle {
+        font-size: 18px;
+        font-weight: bold;
+        color: rgba(0, 0, 0, 1);
+        line-height: 25px;
+    }
+
+    .pointItem {
+        background: rgba(255, 255, 255, 1);
+        margin-top: 15px;
+        padding: 15px;
+        display: flex;
+        align-items: center;
+        border-radius: 8px;
+        .val {
+            width: 66px;
+            min-width: 66px;
+            font-size: 20px;
+            font-weight: bold;
+            color: rgba(26, 26, 26, 1);
+            line-height: 28px;
+        }
+
+        .text {
+            flex-grow: 1;
+
+            .title {
+                font-size: 14px;
+                color: rgba(0, 0, 0, 1);
+                line-height: 20px;
+            }
+
+            .time {
+                font-size: 13px;
+                color: rgba(153, 153, 153, 1);
+                line-height: 18px;
+            }
+        }
+    }
+}
+</style>

+ 2 - 0
src/pages/orderDetail/orderDetail.vue

@@ -478,6 +478,8 @@ export default {
     min-height: 100%;
     min-height: 100%;
     background-image: linear-gradient(#00c5f2 232rpx, #f2f4f5 232rpx, #f2f4f5);
     background-image: linear-gradient(#00c5f2 232rpx, #f2f4f5 232rpx, #f2f4f5);
     box-sizing: border-box;
     box-sizing: border-box;
+    overflow-x: hidden;
+    width: 100%;
 }
 }
 
 
 .top {
 .top {

+ 5 - 0
src/pages/selectPhotos/selectPhotos.js

@@ -0,0 +1,5 @@
+import Vue from 'vue'
+import App from './selectPhotos.vue'
+
+const app = new Vue(App)
+app.$mount()

+ 3 - 0
src/pages/selectPhotos/selectPhotos.json

@@ -0,0 +1,3 @@
+{
+    "navigationBarTitleText": "在线选片"
+}

+ 191 - 0
src/pages/selectPhotos/selectPhotos.vue

@@ -0,0 +1,191 @@
+<template>
+    <div class='container'>
+        <div class="top">
+            <div class="banner">
+                <div class="banner-left">No.{{current+1}}/共{{imgList.length}}张</div>
+                <div class="banner-right">已选择:23张</div>
+            </div>
+        </div>
+        <swiper class="swiper" :current='current' @change='changeSwiper'>
+            <swiper-item v-for="(item,index) in imgList" :key="index" class="slide-image">
+                <img :src="item" background-size="contain" background-position="center center" @click="showImg(index)">
+            </swiper-item>
+        </swiper>
+        <img class="left" v-if="current>0" @click="goPre" src="/static/images/icon_shangyiye_dis.png" alt="">
+        <img class="right" @click="goNext" src="/static/images/icon_xiayiye_dis.png" alt="">
+        <div class="bottom">
+            <div class="message" :class="{notSet:!message}" @click="showMessage=true">
+                {{message}}
+            </div>
+
+            <button class="btn" :class="{primary:isChoose}">{{isChoose?'已选择':'选择这张'}}</button>
+        </div>
+
+        <messageContent :visible='showMessage' @close='showMessage=false' @submit='submit'></messageContent>
+    </div>
+</template>
+<script>
+import { mapState } from 'vuex';
+import messageContent from '../../components/Message';
+export default {
+    name: '',
+    data() {
+        return {
+            imgList: [
+                'https://bpic.588ku.com/illus_water_img/19/07/04/923c38ece95e492a51d77f6c595d4663.jpg',
+                'https://bpic.588ku.com/illus_water_img/19/06/05/cbe3f85497904ff30119a6dd4884024a.jpg',
+                'https://bpic.588ku.com/illus_water_img/19/06/14/de14f437789722334a0cc5ea02048ca7.jpg',
+                'https://bpic.588ku.com/illus_water_img/19/06/07/470ac937b435c696545ffb12e7bda675.jpg',
+                'https://bpic.588ku.com/illus_water_img/19/06/25/c64d4b4c8be8c62ff6806c449bcf7ec3.jpg',
+            ],
+            current: 0,
+            message: '',
+            isChoose: false,
+            showMessage: false,
+        };
+    },
+    computed: {
+        ...mapState(['userInfo']),
+    },
+    methods: {
+        goPre() {
+            this.current--;
+        },
+        goNext() {
+            if (this.current == this.imgList.length - 1) {
+                return;
+            }
+            this.current++;
+        },
+        changeSwiper(e) {
+            this.current = e.mp.detail.current;
+        },
+        submit(text) {
+            console.log(text);
+            this.showMessage = false;
+        },
+        showImg(index) {
+            wx.previewImage({
+                current: index, // 当前显示图片的http链接
+                urls: this.imgList, // 需要预览的图片http链接列表
+            });
+        },
+    },
+    components: {
+        messageContent,
+    },
+};
+</script>
+<style lang='less' scoped>
+.top {
+    min-height: 80px;
+    height: 80px;
+}
+.bottom {
+    min-height: 148px;
+    height: 148px;
+}
+
+.container {
+    display: flex;
+    flex-direction: column;
+    height: 100%;
+    position: relative;
+}
+.swiper {
+    flex-grow: 1;
+
+    .slide-image {
+        width: 100%;
+        height: 100%;
+        img {
+            width: 100%;
+            height: 100%;
+        }
+    }
+}
+
+.left {
+    width: 36px;
+    height: 36px;
+    left: 15px;
+    top: 50%;
+    transform: translateY(-60px);
+    position: absolute;
+    z-index: 50;
+}
+
+.right {
+    width: 36px;
+    height: 36px;
+    right: 15px;
+    top: 50%;
+    transform: translateY(-60px);
+    position: absolute;
+
+    z-index: 50;
+}
+
+.banner {
+    height: 50px;
+    background: rgba(255, 255, 255, 1);
+    box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08);
+    border-radius: 36px;
+    margin: 10px 15px;
+    display: flex;
+    justify-content: space-around;
+    align-items: center;
+    .banner-left {
+        font-size: 14px;
+        font-weight: bold;
+        color: rgba(0, 0, 0, 1);
+        line-height: 20px;
+    }
+    .banner-right {
+        font-size: 14px;
+        font-weight: bold;
+        color: rgba(0, 197, 242, 1);
+        line-height: 20px;
+    }
+}
+
+.message {
+    height: 50px;
+    background: rgba(242, 244, 245, 1);
+    border-radius: 8px;
+    margin: 15px;
+    padding: 0 20px;
+    line-height: 50px;
+    font-size: 14px;
+    color: rgba(0, 0, 0, 1);
+
+    &.notSet {
+        &::before {
+            content: '输入备注内容';
+            color: rgba(170, 172, 173, 1);
+        }
+    }
+}
+
+.btn {
+    height: 40px;
+    border-radius: 22px;
+    border: 1px solid rgba(0, 197, 242, 1);
+    display: block;
+    margin: 35px 15px 0;
+    font-size: 15px;
+    font-weight: bold;
+    color: rgba(0, 197, 242, 1);
+    line-height: 40px;
+    background-color: #fff;
+
+    &:active {
+        background-color: darken(#fff, 10);
+    }
+
+    &.primary {
+        background-color: #00c5f2;
+        color: #fff;
+    }
+}
+</style>

+ 7 - 6
src/pages/user/user.vue

@@ -54,22 +54,23 @@
         </div>
         </div>
 
 
         <div class="menuList">
         <div class="menuList">
-            <div class="menu-item" @click="goNext">
+
+            <navigator :url="'/pages/myPoint/myPoint'" class="menu-item">
                 <img src="/static/images/info_icon_jifen.png" alt="">
                 <img src="/static/images/info_icon_jifen.png" alt="">
                 <div class="name">我的积分</div>
                 <div class="name">我的积分</div>
                 <img src="/static/images/icon_inter.png" alt="">
                 <img src="/static/images/icon_inter.png" alt="">
-            </div>
-            <div class="menu-item" @click="goNext">
+            </navigator>
+            <navigator :url="'/pages/myCoupon/myCoupon'" class="menu-item">
                 <img src="/static/images/info_icon_jifen(1).png" alt="">
                 <img src="/static/images/info_icon_jifen(1).png" alt="">
                 <div class="name">我的优惠券</div>
                 <div class="name">我的优惠券</div>
                 <img src="/static/images/icon_inter.png" alt="">
                 <img src="/static/images/icon_inter.png" alt="">
-            </div>
+            </navigator>
 
 
-            <div class="menu-item" @click="goNext">
+            <navigator :url="'/pages/myAddress/myAddress'" class="menu-item">
                 <img src="/static/images/info_icon_jifen(2).png" alt="">
                 <img src="/static/images/info_icon_jifen(2).png" alt="">
                 <div class="name">我的地址</div>
                 <div class="name">我的地址</div>
                 <img src="/static/images/icon_inter.png" alt="">
                 <img src="/static/images/icon_inter.png" alt="">
-            </div>
+            </navigator>
         </div>
         </div>
 
 
     </div>
     </div>

BIN
static/images/icon_chengpian.png


BIN
static/images/icon_dizhi_kong.png


BIN
static/images/icon_shangyiye_dis.png


BIN
static/images/icon_xiayiye_dis.png


BIN
static/images/icon_yuanpian.png


BIN
static/images/jifem_02.png


BIN
static/images/jifen_01.png