xuqiang-97 преди 4 години
родител
ревизия
e95f33c1be

+ 6 - 0
project.config.json

@@ -198,6 +198,12 @@
                     "name": "退款详情",
                     "pathName": "/pages/Applydetails",
                     "scene": null
+                },
+                {
+                    "id": -1,
+                    "name": "我卖出的",
+                    "pathName": "/pages/allsellout",
+                    "scene": null
                 }
             ]
         }

+ 7 - 0
project.private.config.json

@@ -1,4 +1,5 @@
 {
+  "setting": {},
   "condition": {
     "plugin": {
       "list": []
@@ -155,6 +156,12 @@
           "pathName": "/pages/Applydetails",
           "query": "",
           "scene": null
+        },
+        {
+          "name": "pages/allsellout",
+          "pathName": "pages/allsellout",
+          "query": "null",
+          "scene": null
         }
       ]
     }

+ 15 - 19
src/components/AllorderInfo.vue

@@ -299,8 +299,7 @@ export default {
 .box-con {
     background: #ffffff;
     border-radius: 12px;
-    margin: 8px 16px;
-    padding-bottom: 5px;
+    margin: 20px 20px;
     .popup-con {
         padding: 12px 0 20px 9px;
         background: #ffffff;
@@ -334,15 +333,13 @@ export default {
         }
     }
     .box-con2 {
-        margin: 16px 16px;
+        margin: 0 16px;
         .box-tit {
-            display: flex;
-            align-items: center;
+            .flex();
             justify-content: space-between;
-            padding-top: 16px;
+            padding: 16px 0 9px 0;
             div {
-                display: flex;
-                align-items: center;
+                .flex();
                 img {
                     width: 17px;
                     height: 17px;
@@ -365,11 +362,12 @@ export default {
             }
         }
         .box-con-Cards {
-            margin: 16px 0 20px 0;
+            margin-bottom: 16px;
+            height: 90px;
             display: flex;
             img {
-                width: 90px;
-                height: 130px;
+                width: 62px;
+                height: 90px;
                 border-radius: 6px;
             }
             .box-con-right {
@@ -381,16 +379,15 @@ export default {
                     font-weight: bold;
                     color: #000000;
                     line-height: 24px;
-                    margin: 5px 0 10px 0;
                 }
             }
             .box-con-today {
-                display: flex;
+                .flex();
                 height: 30px;
                 background: #f5f7fa;
                 border-radius: 6px;
                 width: 142px;
-                align-items: center;
+                margin: 4px 0 8px 0;
                 p {
                     height: 24px;
                     font-size: 14px;
@@ -400,13 +397,10 @@ export default {
                 }
             }
             .box-con-money {
-                display: flex;
-                align-items: center;
+                .flex();
                 justify-content: space-between;
-                margin-top: 28px;
                 .box-con-num {
-                    display: flex;
-                    align-items: center;
+                    .flex();
                     img {
                         width: 16px;
                         height: 16px;
@@ -430,6 +424,7 @@ export default {
         }
         .box-num {
             text-align: right;
+            padding-top: 20px;
             span {
                 font-size: 14px;
                 font-weight: bold;
@@ -451,6 +446,7 @@ export default {
         .box-butm {
             display: flex;
             justify-content: flex-end;
+            padding-bottom: 16px;
             .box-but {
                 width: 80px;
                 height: 36px;

+ 444 - 0
src/components/AllselloutInfo.vue

@@ -0,0 +1,444 @@
+<template>
+    <div class="box-con">
+        <div class="box-con2">
+            <div class="box-tit">
+                <div>
+                    <img
+                        style="width:20px;height:20px;border-radius:50%;"
+                        src="../static/imgs/img_touxiang.jpg"
+                        alt=""
+                    />
+                    <p>就爱吃馒头</p>
+                </div>
+                <span>{{ this.name }}</span>
+            </div>
+            <div class="box-con-Cards" v-for="(item, index) in orderList" :key="index.id" @click="allorder">
+                <img :src="item.images" alt="" />
+                <div class="box-con-right">
+                    <p class="box-con-tit">{{ item.caseName }}</p>
+                    <div class="box-con-today">
+                        <p>卡盒选号:{{ item.boxName }}</p>
+                    </div>
+                    <div class="box-con-money">
+                        <div class="box-con-num">
+                            <p>¥{{ item.money }}</p>
+                        </div>
+                        <p>×1</p>
+                    </div>
+                </div>
+            </div>
+            <div class="message">
+                <p>买家留言:</p>
+                <span>尽快发货,谢谢</span>
+            </div>
+            <div class="box-num">
+                <span>实际支付</span>
+                <span class="num">¥{{ all.total }}</span>
+            </div>
+            <div class="box-bor"></div>
+            <div class="box-butm">
+                <div v-if="this.status == 'CREATED'" @click="cancel" class="box-but">取消订单</div>
+                <div v-if="this.status == 'CREATED'" @click="Buyers" class="box-but2">联系买家</div>
+                <div v-if="this.status == 'PAYED'" @click="logistics" class="box-but">查看物流</div>
+                <div v-if="this.status == 'PAYED'" @click="deliver" class="box-but3">立即发货</div>
+                <div v-if="this.status == 'SEND'" @click="logistics" class="box-but">查看物流</div>
+                <div v-if="this.status == 'SEND'" @click="Buyers" class="box-but3">联系买家</div>
+                <!-- <div v-if="this.status == 'COMPETED'" @click="sales" class="box-but">申请售后</div>
+                <div v-if="this.status == 'COMPETED'" @click="logistics" class="box-but3">查看物流</div>
+                <div v-if="this.status == 'CANCELED'" @click="deletes" class="box-but">删除订单</div>
+                <div v-if="this.status == 'CANCELED'" @click="again" class="box-but3">重新购买</div> -->
+            </div>
+        </div>
+        <van-popup :show="show" custom-style="background:transparent;border-radius: 12px 12px 0 0;" use-slot>
+            <div class="popup-con">
+                <div class="popup-top">快递详情</div>
+                <div>
+                    <span>物流快递:{{ this.logisTics.expName }}</span>
+                </div>
+                <div>
+                    <span>物流单号:{{ this.logisTics.number }}</span>
+                    <span class="dialog-cv" @click="logisticCopy">复制</span>
+                </div>
+            </div>
+            <van-steps :steps="stepsList" direction="vertical">
+                <div>{{ stepsList.text }}</div>
+                <div>{{ stepsList.desc }}</div>
+            </van-steps>
+            <img
+                @click="logisticShow"
+                style="height:40px;width:40px;margin-left:150px;margin-top:30px"
+                src="../static/imgs/icon_tanchuang_close@3x.png"
+                alt=""
+            />
+        </van-popup>
+    </div>
+</template>
+<script>
+export default {
+    props: {
+        all: {
+            type: Object,
+            default: () => {
+                return {};
+            }
+        }
+    },
+    data() {
+        return {
+            show: false,
+            stepsList: [],
+            logisTics: []
+        };
+    },
+    computed: {
+        orderList() {
+            return this.all.orderBoxDTOS || [];
+        },
+        status() {
+            return this.all.status || '';
+        },
+        id() {
+            return this.all.orderInfoId || 0;
+        },
+        caseId() {
+            return this.all.caseId || 0;
+        },
+        name() {
+            if (this.all.status === 'CREATED') {
+                return '买家待支付';
+            }
+            if (this.status === 'CANCELED') {
+                return '已取消';
+            }
+            if (this.status === 'PAYED') {
+                return '待发货';
+            }
+            if (this.status === 'COMPETED') {
+                return '已完成';
+            }
+            if (this.status === 'SEND') {
+                return '买家待收货';
+            }
+            return '';
+        }
+    },
+    methods: {
+        logisticShow() {
+            this.show = false;
+        },
+        logistics() {
+            this.showLoading();
+            // 查看物流
+            this.$http
+                .get('/orderInfo/checkLogistic', { orderInfoId: this.id })
+                .then(res => {
+                    this.hideLoading();
+                    this.logisTics = res.logistic.result;
+                    let steps = [];
+                    res.logistic.result.list.forEach(item => {
+                        let newStep = {
+                            desc: item.status,
+                            text: item.time
+                        };
+                        steps.push(newStep);
+                    });
+                    this.stepsList = steps;
+                    this.show = true;
+                })
+                .catch(e => {
+                    this.hideLoading();
+                    wx.showToast({
+                        title: '暂无物流信息',
+                        icon: 'none'
+                    });
+                });
+        },
+        allsellout() {
+            this.$emit('allsellout');
+        },
+        allorder() {
+            // this.navigateTo('/pages/orderdetails?id=' + this.id);
+        },
+        sales() {
+            wx.showToast({
+                title: '敬请开放',
+                icon: 'none'
+            });
+        },
+        logisticCopy() {
+            wx.setClipboardData({
+                data: this.logisTics.number + '',
+                success(res) {
+                    wx.getClipboardData({
+                        success(res) {
+                            wx.showToast({
+                                title: '物流单号复制成功'
+                            });
+                        }
+                    });
+                }
+            });
+        },
+        Buyers() {
+            wx.showToast({
+                title: '敬请开放',
+                icon: 'none'
+            });
+        },
+        cancel() {
+            wx.showModal({
+                title: '提示',
+                content: '确定取消订单?',
+                success: res => {
+                    if (res.confirm) {
+                        this.$http.post('/orderInfo/cancel', { orderInfoId: this.id }).then(res => {
+                            wx.showToast({
+                                icon: 'none',
+                                title: '订单已取消'
+                            });
+                            setTimeout(() => {
+                                this.allsellout();
+                            }, 1000);
+                        });
+                    }
+                }
+            });
+        },
+        deletes() {
+            wx.showModal({
+                title: '提示',
+                content: '确定删除订单?',
+                success: res => {
+                    if (res.confirm) {
+                        this.$http.post('orderInfo/delete', { orderInfoId: this.id }).then(res => {
+                            wx.showToast({
+                                icon: 'none',
+                                title: '订单已删除'
+                            });
+                            setTimeout(() => {
+                                this.allsellout();
+                            }, 1000);
+                        });
+                    }
+                }
+            });
+        },
+
+        deliver() {
+            wx.showToast({
+                title: '敬请开放',
+                icon: 'none'
+            });
+        }
+    }
+};
+</script>
+
+<style lang="less" scoped>
+/deep/ .van-step__circle-container {
+    height: 0;
+}
+/deep/ .van-steps {
+    height: 307px;
+    width: 334px;
+    overflow: auto !important;
+    border-radius: 0 0 12px 12px;
+}
+.box-con {
+    background: #ffffff;
+    border-radius: 12px;
+    margin: 20px 20px;
+    .popup-con {
+        padding: 12px 0 20px 9px;
+        background: #ffffff;
+        .popup-top {
+            height: 22px;
+            font-size: 16px;
+            font-weight: bold;
+            color: #000000;
+            line-height: 22px;
+            text-align: center;
+            padding: 50px 0 15px 0;
+        }
+        span {
+            height: 20px;
+            font-size: 14px;
+            font-weight: 400;
+            color: #1a1a1a;
+            line-height: 20px;
+        }
+        .dialog-cv {
+            width: 40px;
+            height: 20px;
+            border-radius: 2px;
+            border: 1px solid #c8c9cc;
+            font-size: 12px;
+            font-weight: 400;
+            color: #c8c9cc;
+            line-height: 20px;
+            text-align: center;
+            margin-left: 8px;
+        }
+    }
+    .box-con2 {
+        margin: 0 16px;
+        .box-tit {
+            .flex();
+            justify-content: space-between;
+            padding: 16px 0 9px 0;
+            div {
+                .flex();
+                p {
+                    height: 22px;
+                    font-size: 14px;
+                    font-weight: bold;
+                    color: #000000;
+                    line-height: 22px;
+                    margin-left: 6px;
+                }
+            }
+            span {
+                height: 22px;
+                font-size: 14px;
+                font-weight: bold;
+                line-height: 22px;
+                color: #ff6c00;
+            }
+        }
+        .box-con-Cards {
+            margin-bottom: 16px;
+            height: 90px;
+            display: flex;
+            img {
+                width: 62px;
+                height: 90px;
+                border-radius: 6px;
+            }
+            .box-con-right {
+                width: 237px;
+                margin-left: 8px;
+                .box-con-tit {
+                    height: 24px;
+                    font-size: 16px;
+                    font-weight: bold;
+                    color: #000000;
+                    line-height: 24px;
+                }
+            }
+            .box-con-today {
+                .flex();
+                height: 30px;
+                background: #f5f7fa;
+                border-radius: 6px;
+                width: 142px;
+                margin: 4px 0 8px 0;
+                p {
+                    height: 24px;
+                    font-size: 14px;
+                    font-weight: 400;
+                    color: #303133;
+                    line-height: 24px;
+                }
+            }
+            .box-con-money {
+                .flex();
+                justify-content: space-between;
+                .box-con-num {
+                    .flex();
+                    img {
+                        width: 16px;
+                        height: 16px;
+                    }
+                    p {
+                        height: 22px;
+                        font-size: 14px;
+                        font-weight: normal;
+                        color: #c8c9cc;
+                        line-height: 22px;
+                    }
+                }
+                p {
+                    height: 24px;
+                    font-size: 14px;
+                    font-weight: 400;
+                    color: #c8c9cc;
+                    line-height: 24px;
+                }
+            }
+        }
+        .box-num {
+            padding-top: 20px;
+            text-align: right;
+            span {
+                font-size: 14px;
+                font-weight: bold;
+                color: #000000;
+            }
+            .num {
+                font-size: 16px;
+                font-weight: bold;
+                color: #f42202;
+                padding-left: 10px;
+            }
+        }
+        .box-bor {
+            width: 303px;
+            height: 1px;
+            background: #f5f7fa;
+            margin: 19px 0 16px 0;
+        }
+        .box-butm {
+            display: flex;
+            justify-content: flex-end;
+            padding-bottom: 16px;
+            .box-but {
+                width: 80px;
+                height: 36px;
+                border-radius: 8px;
+                border: 1px solid #c8c9cc;
+                font-size: 14px;
+                font-weight: 400;
+                color: #c8c9cc;
+                line-height: 36px;
+                text-align: center;
+                margin-right: 12px;
+            }
+            .box-but2 {
+                width: 80px;
+                height: 36px;
+                background: #ff6c00;
+                border-radius: 8px;
+                font-size: 14px;
+                font-weight: 400;
+                color: #ffffff;
+                line-height: 36px;
+                text-align: center;
+            }
+            .box-but3 {
+                width: 80px;
+                height: 36px;
+                border-radius: 8px;
+                border: 1px solid #ff6c00;
+                font-size: 14px;
+                font-weight: 400;
+                color: #ff6c00;
+                line-height: 36px;
+                text-align: center;
+            }
+        }
+        .message {
+            .flex();
+            p {
+                font-size: 13px;
+                font-weight: 400;
+                color: #ff6c00;
+            }
+            span {
+                font-size: 13px;
+                font-weight: 400;
+                color: #303133;
+            }
+        }
+    }
+}
+</style>

+ 3 - 0
src/components/SeriesSelect.vue

@@ -34,6 +34,9 @@ export default {
                     .post(
                         '/series/all',
                         {
+                            query: {
+                                del: false
+                            },
                             page: 0,
                             size: 100
                         },

+ 1 - 0
src/main.js

@@ -41,6 +41,7 @@ export default {
             'pages/orderdetails',
             'pages/chat',
             'pages/allorder',
+            'pages/allsellout',
             'pages/follow',
             'pages/setting',
             'pages/wallet',

+ 123 - 0
src/pages/allsellout.vue

@@ -0,0 +1,123 @@
+<config>
+{
+    "navigationBarTitleText": "我卖出的",
+    "navigationBarBackgroundColor": "#ffffff",
+}
+</config>
+<template>
+    <div class="container">
+        <div class="box-tab">
+            <div
+                class="tab-item"
+                :class="{ active: item === active }"
+                v-for="(item, index) in tabs"
+                :key="index"
+                @click="chageFn(item)"
+            >
+                {{ item }}
+            </div>
+        </div>
+        <div v-for="(item, index) in allList" :key="index + 2">
+            <allsellout-info :all="item" @allsellout="allsellout"></allsellout-info>
+        </div>
+        <van-empty
+            v-if="empty"
+            image="https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com/wechat/kong_png_womaidaode%403x.png"
+            description="暂无相关订单哦~"
+        >
+            <van-button round type="danger" class="bottom-button" @click="Look">
+                去逛逛
+            </van-button>
+        </van-empty>
+    </div>
+</template>
+<script>
+import AllselloutInfo from '../components/AllselloutInfo.vue';
+import allPage from '../mixins/allPage';
+export default {
+    components: { AllselloutInfo },
+    mixins: [allPage],
+    data() {
+        return {
+            active: '全部',
+            tabs: ['全部', '待支付', '待发货', '待收货', '已完成'],
+            empty: false,
+            allList: []
+        };
+    },
+    methods: {
+        chageFn(item) {
+            this.active = item;
+            this.allsellout();
+        },
+        Look() {
+            wx.switchTab({
+                url: '/pages/Home'
+            });
+        },
+        allsellout() {
+            this.allList = [];
+            this.showLoading();
+            this.list = [];
+            this.empty = false;
+            let userId = this.$store.state.userInfo.id;
+            this.$http
+                .get('/orderInfo/showMyOrderInfos', {
+                    orderStatus: this.allStatus(this.active),
+                    userId
+                })
+                .then(res => {
+                    this.hideLoading();
+                    console.log(res);
+                    this.allList = res;
+                    if (res.length === 0) {
+                        this.empty = true;
+                    }
+                })
+                .catch(e => {
+                    wx.hideLoading();
+                    wx.showToast({
+                        icon: 'none',
+                        title: e.error
+                    });
+                });
+        },
+        loginMethods() {
+            this.allsellout();
+        }
+    }
+};
+</script>
+<style lang="less" scoped>
+.container {
+    background: #f5f7fa;
+    padding-top: 30px;
+    padding: 60px 0 40px 0;
+    min-height: 624px;
+    .box-tab {
+        background: #ffffff;
+        .flex();
+        position: fixed;
+        top: 0;
+        width: 100%;
+        padding-left: 16px;
+        .tab-item {
+            font-size: 14px;
+            font-weight: bold;
+            color: #000;
+            line-height: 24px;
+            padding: 18px 30px 18px 0;
+
+            &.active {
+                color: #ff6c00;
+            }
+        }
+    }
+    /deep/ .van-button {
+        width: 290px;
+        height: 48px;
+        background: #ff6c00;
+        border-radius: 12px;
+    }
+}
+</style>

+ 5 - 6
src/pages/mine.vue

@@ -37,12 +37,11 @@
                 height="86"
                 src="https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com/wechat/info_img_renzhengdianjia.png"
                 fit="contain"
-                @click="navigateTo('/pages/store/apply')"
             />
         </div>
 
         <van-grid class="menu" column-num="3" :border="false" clickable>
-            <van-grid-item text="我发布的" @click="navigateTo('/pages/minePublish')">
+            <van-grid-item text="我发布的">
                 <img class="gird-icon" src="/native/svgs/info_icon_fabu.svg" slot="icon" alt="" />
             </van-grid-item>
             <van-grid-item text="我卖出的" @click="wait">
@@ -54,16 +53,16 @@
         </van-grid>
 
         <van-grid class="menu menu-l" column-num="3" :border="false" clickable>
-            <van-grid-item text="我的钱包" @click="navigateTo('/pages/wallet')">
+            <van-grid-item text="我的钱包">
                 <img class="gird-icon" src="/native/svgs/info_icon_qianbao.svg" slot="icon" alt="" />
             </van-grid-item>
-            <van-grid-item text="我的关注" @click="navigateTo('/pages/mineFollow')">
+            <van-grid-item text="我的关注">
                 <img class="gird-icon" src="/native/svgs/info_icon_guanzu.svg" slot="icon" alt="" />
             </van-grid-item>
             <van-grid-item text="个人设置" @click="navigateTo('/pages/setting')">
                 <img class="gird-icon" src="/native/svgs/info_icon_shezhi.svg" slot="icon" alt="" />
             </van-grid-item>
-            <van-grid-item text="常见问题" url="/pages/questions">
+            <van-grid-item text="常见问题">
                 <img class="gird-icon" src="/native/svgs/info_icon_wenti.svg" slot="icon" alt="" />
             </van-grid-item>
             <van-grid-item>
@@ -73,7 +72,7 @@
                     <button class="grid-btn" open-type="contact" />
                 </div>
             </van-grid-item>
-            <van-grid-item text="交易规范" url="/pages/rule">
+            <van-grid-item text="交易规范">
                 <img class="gird-icon" src="/native/svgs/info_icon_jiaoyi.svg" slot="icon" alt="" />
             </van-grid-item>
         </van-grid>

+ 64 - 8
src/pages/orderdetails.vue

@@ -9,9 +9,11 @@
     <div class="container">
         <div class="box-top">
             <p>{{ this.status.label }}</p>
-            <h3>{{ this.status.name }}</h3>
-            <!-- <h3 v-if="this.status.orderStatus !== 'CREATED'">{{ this.status.name }}</h3>
-            <h3 v-if="this.status.orderStatus == 'CREATED'">请尽快支付,{{ rocallTime }} 后未支付将自动取消订单</h3> -->
+            <h3 v-if="this.status.orderStatus !== 'CREATED'">{{ this.status.name }}</h3>
+            <h3 v-if="this.status.orderStatus == 'CREATED'">
+                请尽快支付,<span v-if="minters < 10">0</span>{{ minters }}分<span v-if="seconds < 10">0</span
+                >{{ seconds }} 后未支付将自动取消订单
+            </h3>
         </div>
         <div class="box-adderss">
             <div
@@ -230,13 +232,68 @@ export default {
             logisTics: [],
             stepsList: [],
             stepsShow: [],
-            caseId: ''
+            caseId: '',
+            minters: 0,
+            seconds: 0,
+            allTime: 5 * 60 - 1,
+            closeTime: ''
         };
     },
     methods: {
         logisticShow() {
             this.show = false;
         },
+        initTime(dingdanId, initTime) {
+            let oldTime = new Date(initTime).valueOf();
+            let newTime = new Date().valueOf();
+            let matchedTime = undefined;
+            let matchedTime1 = undefined;
+            if (oldTime) {
+                matchedTime = newTime - oldTime;
+                matchedTime1 = this.allTime - parseInt(matchedTime / 1000);
+                if (matchedTime1 > 0) {
+                    this.timeout(matchedTime1);
+                } else {
+                    // this.getFn();
+                }
+            } else {
+                if (dingdanId) {
+                    this.timeout(this.allTime);
+                }
+            }
+        },
+        timeout(time) {
+            let _this = this;
+            _this.minters = parseInt(time / 60) > 0 ? parseInt(time / 60) : 0;
+            _this.seconds = parseInt(time - _this.minters * 60);
+            try {
+                if (_this.minters > 0) {
+                    _this.closeTime = setInterval(() => {
+                        _this.seconds--;
+                        if (_this.seconds <= 0) {
+                            _this.minters--;
+                            if (_this.minters == -1) {
+                                _this.minters = 0;
+                                _this.seconds = 0;
+                                clearInterval(_this.closeTime);
+                            } else {
+                                _this.seconds = 60;
+                            }
+                        }
+                    }, 1000);
+                } else {
+                    _this.closeTime = setInterval(() => {
+                        _this.seconds--;
+                        if (_this.seconds <= 0) {
+                            _this.seconds = 0;
+                            clearInterval(_this.closeTime);
+                        }
+                    }, 1000);
+                }
+            } catch (err) {
+                console.log(err);
+            }
+        },
         getFn() {
             this.showLoading();
             this.$http
@@ -252,7 +309,7 @@ export default {
                     this.cardCaseInfo = res.cardCase.collection;
                     if (this.status.orderStatus === 'CREATED') {
                         this.status.label = '待支付';
-                        this.status.name = '请尽快支付,04分56秒 后未支付将自动取消订单';
+                        this.initTime(this.orderInfoId, this.status.createdAt);
                     }
                     if (this.status.orderStatus === 'CANCELED') {
                         this.status.label = '已取消';
@@ -282,7 +339,7 @@ export default {
                     });
                 });
             // setTimeout(() => {
-            // if (this.status.orderStatus == 'COMPETED' || this.status.orderStatus == 'SEND') {
+            //     if (this.status.orderStatus == 'COMPETED' || this.status.orderStatus == 'SEND') {
             // console.log(this.status.orderStatus);
             this.$http.get('/orderInfo/checkLogistic', { orderInfoId: this.$mp.query.id }).then(res => {
                 this.hideLoading();
@@ -298,8 +355,7 @@ export default {
                 this.stepsList = steps;
                 this.stepsShow = res.logistic.result.list[0];
             });
-
-            // }
+            //     }
             // }, 1000);
         },
         again() {

BIN
src/static/imgs/img_touxiang.jpg