Browse Source

Merge branch 'master' of http://git.izouma.com/xiongzhu/9th

xuqiang 4 years ago
parent
commit
0f58e38f96
25 changed files with 350 additions and 162 deletions
  1. 5 0
      src/main/java/com/izouma/nineth/repo/GiftOrderRepo.java
  2. 27 0
      src/main/java/com/izouma/nineth/service/GiftOrderService.java
  3. 6 1
      src/main/java/com/izouma/nineth/service/OrderService.java
  4. BIN
      src/main/nine-space/src/assets/icon-anquan.png
  5. BIN
      src/main/nine-space/src/assets/icon-dianzan.png
  6. BIN
      src/main/nine-space/src/assets/icon-guanyuwomen.png
  7. BIN
      src/main/nine-space/src/assets/icon-jifen.png
  8. BIN
      src/main/nine-space/src/assets/icon-qiabao.png
  9. BIN
      src/main/nine-space/src/assets/icon_dizhi.png
  10. BIN
      src/main/nine-space/src/assets/icon_liaojiegengduo.png
  11. BIN
      src/main/nine-space/src/assets/icon_yinhangka.png
  12. BIN
      src/main/nine-space/src/assets/info_icon_jiaoyijilu.png
  13. BIN
      src/main/nine-space/src/assets/info_icon_shangpindingdan.png
  14. BIN
      src/main/nine-space/src/assets/info_icon_zhuzaodingdan.png
  15. 57 0
      src/main/nine-space/src/components/LinearCom.vue
  16. 4 0
      src/main/nine-space/src/styles/common/common.less
  17. 1 1
      src/main/nine-space/src/utils/data.json
  18. 25 18
      src/main/nine-space/src/views/Givesubmit.vue
  19. 110 99
      src/main/nine-space/src/views/Mine.vue
  20. 2 1
      src/main/nine-space/src/views/asset/Consignment.vue
  21. 37 17
      src/main/nine-space/src/views/asset/Detail.vue
  22. 13 15
      src/main/nine-space/src/views/asset/GiveSearch.vue
  23. 57 5
      src/main/nine-space/src/views/product/Detail.vue
  24. 1 1
      src/main/nine-space/src/views/product/DetailMode.vue
  25. 5 4
      src/main/nine-space/src/views/user/Point.vue

+ 5 - 0
src/main/java/com/izouma/nineth/repo/GiftOrderRepo.java

@@ -1,8 +1,13 @@
 package com.izouma.nineth.repo;
 
 import com.izouma.nineth.domain.GiftOrder;
+import com.izouma.nineth.enums.OrderStatus;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 
+import java.time.LocalDateTime;
+import java.util.List;
+
 public interface GiftOrderRepo extends JpaRepository<GiftOrder, Long>, JpaSpecificationExecutor<GiftOrder> {
+    List<GiftOrder> findByStatusAndCreatedAtBeforeAndDelFalse(OrderStatus status, LocalDateTime time);
 }

+ 27 - 0
src/main/java/com/izouma/nineth/service/GiftOrderService.java

@@ -26,6 +26,7 @@ import org.apache.commons.codec.EncoderException;
 import org.apache.commons.codec.net.URLCodec;
 import org.springframework.context.ApplicationContext;
 import org.springframework.core.env.Environment;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.Model;
 
@@ -33,6 +34,7 @@ import javax.transaction.Transactional;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Arrays;
+import java.util.List;
 
 @Service
 @AllArgsConstructor
@@ -170,4 +172,29 @@ public class GiftOrderService {
         }
         throw new BusinessException("不支持此付款方式");
     }
+
+    @Scheduled(fixedRate = 60000)
+    public void batchCancel() {
+        List<GiftOrder> orders = giftOrderRepo.findByStatusAndCreatedAtBeforeAndDelFalse(OrderStatus.NOT_PAID,
+                LocalDateTime.now().minusMinutes(5));
+        orders.forEach(o -> {
+            try {
+                cancel(o);
+            } catch (Exception ignored) {
+            }
+        });
+    }
+
+    public void cancel(GiftOrder order) {
+        if (order.getStatus() != OrderStatus.NOT_PAID) {
+            throw new BusinessException("已支付订单无法取消");
+        }
+        Asset asset = assetRepo.findById(order.getAssetId()).orElseThrow(new BusinessException("藏品不存在"));
+        asset.setStatus(AssetStatus.NORMAL);
+        assetRepo.save(asset);
+
+        order.setStatus(OrderStatus.CANCELLED);
+        order.setCancelTime(LocalDateTime.now());
+        giftOrderRepo.save(order);
+    }
 }

+ 6 - 1
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -344,7 +344,12 @@ public class OrderService {
     public void batchCancel() {
         List<Order> orders = orderRepo.findByStatusAndCreatedAtBeforeAndDelFalse(OrderStatus.NOT_PAID,
                 LocalDateTime.now().minusMinutes(5));
-        orders.forEach(this::cancel);
+        orders.forEach(o -> {
+            try {
+                cancel(o);
+            } catch (Exception ignored) {
+            }
+        });
     }
 
     public void refundCancelled(Order order) {

BIN
src/main/nine-space/src/assets/icon-anquan.png


BIN
src/main/nine-space/src/assets/icon-dianzan.png


BIN
src/main/nine-space/src/assets/icon-guanyuwomen.png


BIN
src/main/nine-space/src/assets/icon-jifen.png


BIN
src/main/nine-space/src/assets/icon-qiabao.png


BIN
src/main/nine-space/src/assets/icon_dizhi.png


BIN
src/main/nine-space/src/assets/icon_liaojiegengduo.png


BIN
src/main/nine-space/src/assets/icon_yinhangka.png


BIN
src/main/nine-space/src/assets/info_icon_jiaoyijilu.png


BIN
src/main/nine-space/src/assets/info_icon_shangpindingdan.png


BIN
src/main/nine-space/src/assets/info_icon_zhuzaodingdan.png


+ 57 - 0
src/main/nine-space/src/components/LinearCom.vue

@@ -0,0 +1,57 @@
+<template>
+    <div class="linear" :class="`ra-` + radius">
+        <div class="content">
+            <slot>赠送</slot>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    props: {
+        radius: {
+            type: Number,
+            default: 100
+        }
+    }
+};
+</script>
+
+<style lang="less" scoped>
+.linear {
+    .linear();
+    position: relative;
+    display: inline-block;
+
+    .content {
+        position: relative;
+        z-index: 1;
+    }
+    &::after {
+        content: '';
+        background-color: @bg;
+        position: absolute;
+        top: 1px;
+        right: 1px;
+        bottom: 1px;
+        left: 1px;
+        z-index: 0;
+    }
+}
+
+@radiusList: {
+    4: 4px;
+    5: 5px;
+    26: 26px;
+    100: 100px;
+};
+
+each(@radiusList,{
+    .ra-@{key}{
+        border-radius: @value;
+        &::after{
+              border-radius: @value;
+        }
+    }
+});
+</style>

+ 4 - 0
src/main/nine-space/src/styles/common/common.less

@@ -125,3 +125,7 @@
     -webkit-hyphens: auto;
     hyphens: auto;
 }
+
+.linear(){
+    background: linear-gradient(135deg, @prim, @warn);
+}

+ 1 - 1
src/main/nine-space/src/utils/data.json

@@ -1 +1 @@
-{"v":"5.5.8","fr":30,"ip":0,"op":74,"w":821,"h":444,"nm":"第九空间-加载 (1)","ddd":0,"assets":[{"id":"image_0","w":821,"h":444,"u":"images/","p":"img_0.png","e":0},{"id":"image_1","w":738,"h":269,"u":"images/","p":"img_1.png","e":0}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"圆角矩形 1","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.861,"y":1},"o":{"x":0.799,"y":0},"t":0,"s":[155.5,171,0],"to":[3.79,0,0],"ti":[-124.71,0,0]},{"t":74,"s":[988.5,199,0]}],"ix":2},"a":{"a":0,"k":[410.5,222,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[-4.507,-3.192],[0,0],[3.192,-4.507],[0,0],[4.507,3.192],[0,0],[-3.192,4.507],[0,0]],"o":[[0,0],[4.507,3.192],[0,0],[-3.192,4.507],[0,0],[-4.507,-3.192],[0,0],[3.192,-4.507]],"v":[[316.435,63.822],[380.086,108.906],[382.466,122.847],[81.901,547.183],[67.961,549.563],[4.31,504.478],[1.93,490.538],[302.495,66.202]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"蒙版 1"}],"ip":0,"op":74,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"图层 2","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[404,234.5,0],"ix":2},"a":{"a":0,"k":[369,134.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":300,"st":0,"bm":0}],"markers":[]}
+{"v":"5.5.8","fr":30,"ip":0,"op":75,"w":821,"h":444,"nm":"第九空间-加载","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":8,"nm":"第九空间-加载_[00000-00074].png","cl":"png","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[410.5,222,0],"ix":2},"a":{"a":0,"k":[410.5,222,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":75,"st":0,"bm":0}],"markers":[]}

+ 25 - 18
src/main/nine-space/src/views/Givesubmit.vue

@@ -1,19 +1,21 @@
 <template>
     <div class="submit">
-        <div class="pageTitle">{{ info.minter }}</div>
-        <div class="product">
-            <van-image width="74" height="104" :radius="6" :src="getImg(changeImgs(info.pic))" fit="cover" />
-            <div class="product-content">
-                <div class="text1">
-                    {{ info.name }}
-                </div>
-                <!-- <div class="text">编号:{{ info.id }}</div> -->
-                <div class="no"></div>
+        <div class="page-top">
+            <div class="pageTitle">赠送商品</div>
+            <div class="product">
+                <van-image width="74" height="104" :radius="6" :src="getImg(changeImgs(info.pic))" fit="cover" />
+                <div class="product-content">
+                    <div class="text1 van-multi-ellipsis--l2">
+                        {{ info.name }}
+                    </div>
+                    <div class="text" v-if="info.number">编号:{{ info.number }}</div>
+                    <div class="no"></div>
 
-                <div class="price">¥{{ info.price }}</div>
+                    <div class="price">¥{{ info.price }}</div>
+                </div>
             </div>
         </div>
-        <!-- <driver /> -->
+        <driver />
         <div class="input">
             <div class="text1">请输入交易密码,验证信息</div>
             <div v-if="sets">
@@ -29,7 +31,7 @@
             </div>
             <div v-else class="text3" @click="$router.push('/tradingPassword')">您当前没有交易密码,点击去设置</div>
         </div>
-        <!-- <driver /> -->
+        <driver />
         <div class="list">
             <div class="info">
                 <div class="text1">GAS费用</div>
@@ -207,7 +209,10 @@ export default {
 
 <style lang="less" scoped>
 .submit {
-    padding: 20px 16px;
+    padding: 20px 0;
+}
+.page-top {
+    padding: 0 16px;
 }
 
 .pageTitle {
@@ -216,7 +221,7 @@ export default {
     line-height: 22px;
 }
 .input {
-    margin-top: 20px;
+    padding: 20px 16px;
     .text1 {
         font-size: 14px;
         color: #ffffff;
@@ -269,6 +274,9 @@ export default {
         }
     }
 }
+.list {
+    padding: 0 16px;
+}
 .info {
     display: flex;
     align-items: center;
@@ -334,10 +342,9 @@ export default {
             margin-top: 4px;
         }
         .text1 {
-            font-size: 16px;
-            font-weight: bold;
+            font-size: @font2;
             color: #ffffff;
-            line-height: 22px;
+            line-height: 24px;
         }
         .text3 {
             font-size: @font2;
@@ -374,7 +381,7 @@ export default {
     display: flex;
     align-items: center;
     height: 60px;
-    border-top: 1px solid #202122;
+    // border-top: 1px solid #202122;
     span {
         font-size: 14px;
         font-weight: bold;

+ 110 - 99
src/main/nine-space/src/views/Mine.vue

@@ -13,7 +13,11 @@
                         @click="$router.push('/setting')"
                     />
                     <div class="text">
-                        <div class="text1 van-ellipsis">{{ userInfo.nickname }}</div>
+                        <div class="text1 van-ellipsis">
+                            <span>{{ userInfo.nickname }}</span>
+
+                            <img v-if="authStatus === '已认证'" src="../assets/renzheng_icon_pre.png" alt="" />
+                        </div>
                         <div class="text2">
                             <span>
                                 <small>平台编码:</small>
@@ -24,43 +28,31 @@
                     </div>
                 </div>
 
-                <div class="sub">
+                <div class="sub van-multi-ellipsis--l2">
                     {{ userInfo.intro }}
                 </div>
 
                 <div class="btns">
                     <div class="collect" @click="$router.push('/mineFollows')">
-                        <div class="text1">{{ userInfo.follows }}</div>
                         <div class="text2">关注</div>
+                        <div class="text1">{{ userInfo.follows }}</div>
                     </div>
                     <div class="collect" @click="$router.push('/mineFollowers')">
-                        <div class="text1">{{ userInfo.followers }}</div>
                         <div class="text2">粉丝</div>
+                        <div class="text1">{{ userInfo.followers }}</div>
                     </div>
-                    <van-button
-                        plain
-                        color="@text3"
-                        size="mini"
-                        :icon="require('../assets/renzheng_icon_pre.png')"
-                        round
-                        @click="$router.push('/verifiedSuc')"
-                        v-if="authStatus === '已认证'"
-                        class="verid"
-                    >
-                        {{ authStatus }}
-                    </van-button>
                     <van-button
                         plain
                         color="@text3"
                         size="mini"
                         :icon="require('../assets/renzheng_icon.png')"
                         round
-                        v-else
+                        v-if="authStatus !== '已认证'"
                         @click="goAuth"
                     >
                         {{ authStatus }}
                     </van-button>
-                    <van-button plain @click="$router.push('/setting')" color="@text3" size="mini" round
+                    <van-button plain @click="$router.push('/setting')" color="#939599" size="mini" round
                         >编辑资料</van-button
                     >
                 </div>
@@ -81,88 +73,63 @@
                 <div class="text2">立即登录获取精彩服务</div>
             </div>
         </div>
-        <van-cell class="title" title="商品订单" :border="false" is-link value="查看全部" :to="{ path: '/orders' }" />
-        <van-grid column-num="3" :border="false" :gutter="10">
-            <van-grid-item text="全部订单" :border="false" :to="{ path: '/orders' }">
-                <template v-slot:icon>
-                    <img class="grid-img" src="../assets/svgs/info_icon_dingdan.svg" />
-                </template>
-            </van-grid-item>
-            <!-- <van-grid-item text="待支付" :border="false">
-        <template v-slot:icon>
-          <img class="grid-img" src="../assets/svgs/info_icon_daizhifu.svg" />
-        </template>
-      </van-grid-item> -->
-            <van-grid-item
-                text="交易中"
-                :border="false"
-                :to="{
-                    path: '/orders',
-                    query: {
-                        type: 'PROCESSING'
-                    }
-                }"
-            >
-                <template v-slot:icon>
-                    <img class="grid-img" src="../assets/svgs/info_icon_dingdan_daishouhuo.svg" />
-                </template>
-            </van-grid-item>
-            <van-grid-item
-                text="已完成"
-                :to="{
-                    path: '/orders',
-                    query: {
-                        type: 'FINISH'
-                    }
-                }"
-                :border="false"
-            >
-                <template v-slot:icon>
-                    <img class="grid-img" src="../assets/svgs/info_icon_yiwancheng.svg" />
-                </template>
-            </van-grid-item>
-        </van-grid>
+        <van-cell class="title" title="我的订单" :border="false" is-link value="查看全部" :to="{ path: '/orders' }" />
+
+        <div class="orderList">
+            <div class="order-info" @click="$router.push('/orders?type=DEFAULT')">
+                <img src="../assets/info_icon_shangpindingdan.png" alt="" />
+                <span>商品订单</span>
+            </div>
+            <div class="order-info" @click="$router.push('/orders?type=BLIND_BOX')">
+                <img src="../assets/info_icon_zhuzaodingdan.png" alt="" />
+                <span>铸造订单</span>
+            </div>
+        </div>
 
         <van-cell class="title" title="我的服务" :border="false" />
 
-        <van-cell-group :border="false" class="menu">
-            <van-cell title="钱包" is-link :to="{ path: '/mineWallet' }">
+        <van-grid class="menus">
+            <van-grid-item text="我的银行卡" @click="wait">
                 <template #icon>
-                    <van-icon :name="require('../assets/icon-qiabao.png')" class="search-icon" />
+                    <van-icon :name="require('../assets/icon_yinhangka.png')" class="search-icon" />
                 </template>
-            </van-cell>
-
-            <van-cell title="积分" is-link :to="{ path: '/minePoint' }">
+            </van-grid-item>
+            <van-grid-item text="我的积分" :to="{ path: '/minePoint' }">
                 <template #icon>
                     <van-icon :name="require('../assets/icon-jifen.png')" class="search-icon" />
                 </template>
-            </van-cell>
-            <van-cell title="我赞过的" :to="{ path: '/mineLikes' }" is-link>
+            </van-grid-item>
+            <van-grid-item text="我赞过的" :to="{ path: '/mineLikes' }">
                 <template #icon>
-                    <van-icon :name="require('../assets/dislike.png')" class="search-icon" />
+                    <van-icon :name="require('../assets/icon-dianzan.png')" class="search-icon" />
                 </template>
-            </van-cell>
-            <van-cell title="地址管理" is-link @click="wait">
+            </van-grid-item>
+            <van-grid-item text="地址管理" @click="wait">
                 <template #icon>
                     <van-icon :name="require('../assets/icon_dizhi.png')" class="search-icon" />
                 </template>
-            </van-cell>
-            <van-cell title="了解更多" is-link @click="wait">
+            </van-grid-item>
+            <van-grid-item text="交易历史" @click="wait">
+                <template #icon>
+                    <van-icon :name="require('../assets/info_icon_jiaoyijilu.png')" class="search-icon" />
+                </template>
+            </van-grid-item>
+            <van-grid-item text="了解更多" @click="wait">
                 <template #icon>
                     <van-icon :name="require('../assets/icon_liaojiegengduo.png')" class="search-icon" />
                 </template>
-            </van-cell>
-            <van-cell title="关于我们" is-link :to="{ path: '/about' }">
+            </van-grid-item>
+            <van-grid-item text="关于我们" :to="{ path: '/about' }">
                 <template #icon>
                     <van-icon :name="require('../assets/icon-guanyuwomen.png')" class="search-icon" />
                 </template>
-            </van-cell>
-            <van-cell title="账号与安全" is-link :to="{ path: '/security' }">
+            </van-grid-item>
+            <van-grid-item text="账号与安全">
                 <template #icon>
                     <van-icon :name="require('../assets/icon-anquan.png')" class="search-icon" />
                 </template>
-            </van-cell>
-        </van-cell-group>
+            </van-grid-item>
+        </van-grid>
 
         <div class="tabbar-placeholder"></div>
     </div>
@@ -228,22 +195,28 @@ export default {
 <style lang="less" scoped>
 .mine {
     padding-bottom: 100px;
-    background-color: @bg2;
+    background-color: @bg3;
 }
 .top {
     display: flex;
     align-items: center;
     padding: 26px 16px 30px;
-    border-bottom: 5px solid @bg3;
+    border-bottom: 1px solid @bg2;
 
     .text {
         margin-left: 12px;
 
         .text1 {
-            font-size: 24px;
+            font-size: @font3;
             font-weight: bold;
             color: #ffffff;
-            line-height: 34px;
+            line-height: 24px;
+            img {
+                width: 18px;
+                height: 18px;
+                display: inline-block;
+                margin-left: 6px;
+            }
         }
 
         .text2 {
@@ -259,15 +232,14 @@ export default {
     padding: 20px 16px 10px;
     .van-cell__title {
         span {
-            font-size: 20px;
-            font-weight: bold;
+            font-size: @font3;
             line-height: 28px;
         }
     }
 
     .van-cell__value {
         span {
-            font-size: 13px;
+            font-size: @font1;
             line-height: 28px;
         }
     }
@@ -276,14 +248,42 @@ export default {
         line-height: 28px;
     }
 }
+.orderList {
+    .flex();
+    padding: 0 16px;
+    .order-info {
+        padding: 20px 0;
+        .flex();
+        background-color: @bg;
+        flex-grow: 1;
+        justify-content: center;
+        border-radius: 8px;
+        img {
+            width: 32px;
+            height: 32px;
+            margin-right: 12px;
+        }
+        span {
+            font-size: @font2;
+            color: #ffffff;
+            line-height: 24px;
+        }
 
+        &:active {
+            background-color: @bg2;
+        }
+    }
+    .order-info + .order-info {
+        margin-left: 20px;
+    }
+}
 .grid-img {
     display: block;
 }
 
 /deep/ .van-grid-item {
     .van-grid-item__text {
-        font-size: 13px;
+        font-size: @font1;
         color: #ffffff;
         line-height: 18px;
         margin-top: 4px;
@@ -310,7 +310,7 @@ export default {
 .search-icon {
     width: 24px;
     height: 24px;
-    margin-right: 10px;
+    // margin-right: 10px;
     /deep/.van-icon__image {
         width: 24px;
         height: 24px;
@@ -319,7 +319,7 @@ export default {
 }
 .userInfo {
     padding-top: 35vw;
-    border-bottom: 5px solid @bg3;
+    border-bottom: 1px solid @bg2;
     position: relative;
 
     .top-img {
@@ -342,7 +342,7 @@ export default {
         font-size: 14px;
         color: @text3;
         line-height: 22px;
-        padding: 16px 0;
+        padding: 9px 0 20px;
     }
 
     .btns {
@@ -350,23 +350,21 @@ export default {
         // padding-bottom: 16px;
         align-items: center;
         .collect {
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            justify-content: center;
+            .flex();
             .text1 {
-                font-size: 16px;
+                font-size: @font2;
                 color: #ffffff;
                 line-height: 24px;
+                margin-left: 6px;
             }
             .text2 {
-                font-size: 14px;
+                font-size: @font2;
                 color: @text3;
                 line-height: 24px;
             }
             &:nth-child(2) {
                 flex-grow: 1;
-                margin: 0 10px;
+                margin: 0 22px;
             }
         }
 
@@ -407,13 +405,20 @@ export default {
         margin: 0 40px 0 12px;
         overflow: hidden;
         .text1 {
-            font-size: 24px;
+            font-size: @font3;
             font-weight: bold;
             color: #ffffff;
-            line-height: 34px;
+            line-height: 24px;
+            img {
+                width: 18px;
+                height: 18px;
+                display: inline-block;
+                margin-left: 5px;
+                vertical-align: middle;
+            }
         }
         .text2 {
-            font-size: 16px;
+            font-size: @font2;
             color: #949699;
             line-height: 24px;
             display: flex;
@@ -426,4 +431,10 @@ export default {
         }
     }
 }
+.menus {
+    margin: 0 16px;
+    background-color: @bg;
+    border-radius: 8px;
+    overflow: hidden;
+}
 </style>

+ 2 - 1
src/main/nine-space/src/views/asset/Consignment.vue

@@ -34,6 +34,7 @@
                 <div class="btn2" @click="submit">确认寄售</div>
             </div>
         </div>
+        <div class="border"></div>
     </div>
 </template>
 
@@ -152,7 +153,7 @@ export default {
 }
 
 .input {
-    margin-top: 20px;
+    padding: 20px 0;
     .text1 {
         font-size: @font2;
         color: #ffffff;

+ 37 - 17
src/main/nine-space/src/views/asset/Detail.vue

@@ -51,9 +51,9 @@
                 </swiper>
 
                 <div class="share-content">
-                    <like-button :isLike="info.liked" @click="likeProduct">
+                    <!-- <like-button :isLike="info.liked" @click="likeProduct">
                         {{ info.likes }}
-                    </like-button>
+                    </like-button> -->
 
                     <div
                         class="share-icon"
@@ -247,19 +247,19 @@
                     </template>
                     <div v-if="list.length > 0">
                         <div class="content" v-for="item in list" :key="item.id">
-                            <!-- <img class="img" :src="list.avatar" alt="" /> -->
+                            <van-image width="40" height="40" radius="20" :src="item.fromAvatar" fit="cover" />
                             <div class="init">
-                                <div style="width: 100%">
+                                <div style="width: 100%;">
                                     <div class="text1">{{ item.fromUser || '保密' }}</div>
                                     <div class="text2">
-                                        <div class="text3">{{ item.operation }}{{ item.price }}</div>
+                                        <div class="text3">{{ item.operation }}¥{{ item.price }}</div>
                                         <div class="text4">{{ item.createdAt }}</div>
                                     </div>
                                 </div>
                             </div>
                         </div>
                     </div>
-                    <div v-else style="display: flex; justify-content: center">暂无购买记录</div>
+                    <div v-else style="display: flex; justify-content: center;">暂无购买记录</div>
                 </van-collapse-item>
             </van-collapse>
 
@@ -378,7 +378,10 @@
                     src="https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com/image/2021-11-12-16-13-07DtWLMcPy.png"
                     alt=""
                 />
-                <div class="Whisper1">点击图标打开悄悄话,(隐藏内容,只能开启一次)</div>
+                <div class="Whisper1">
+                    <div>点击图标打开悄悄话</div>
+                    <div v-if="init2.once">(隐藏内容,只能开启一次)</div>
+                </div>
             </van-popup>
         </div>
 
@@ -735,17 +738,12 @@ export default {
     width: 343px;
     height: 68px;
     border-radius: 12px;
-    .img {
-        width: 32px;
-        height: 32px;
-        border-radius: 50%;
-        margin-right: 10px;
-    }
     .init {
         display: flex;
         align-items: center;
         justify-content: space-between;
-        width: 100%;
+        flex-grow: 1;
+        margin-left: 12px;
         .text1 {
             font-size: @font1;
             font-weight: bold;
@@ -877,8 +875,9 @@ export default {
 .whisper {
     /deep/ .van-popup {
         width: 260px;
-        background: rgb(209, 206, 18);
+        .linear();
         border-radius: 10px;
+        padding: 0 0;
         .con {
             display: flex;
             align-items: center;
@@ -902,20 +901,40 @@ export default {
             margin: 30px 90px 22px;
         }
         .Whisper1 {
-            font-size: 12px;
+            font-size: @font1;
             font-weight: 400;
             color: #303133;
             line-height: 18px;
             padding-bottom: 36px;
-            margin: 0 64px;
+            margin: 0 auto;
+            text-align: center;
         }
     }
 }
 
+@keyframes flipY {
+    0% {
+        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
+    }
+    27% {
+        transform: perspective(500px) rotateX(0deg) rotateY(15deg);
+    }
+    50% {
+        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
+    }
+    73% {
+        transform: perspective(500px) rotateX(0deg) rotateY(-15deg);
+    }
+    100% {
+        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
+    }
+}
+
 /deep/ .mySwiper {
     width: calc(100vw - 120px);
     height: calc(100vw - 120px);
     z-index: 1;
+    animation: flipY 6s linear infinite;
 
     .swiper-pagination {
         bottom: 22px;
@@ -1231,6 +1250,7 @@ export default {
     font-size: @font2;
     color: #ffffff;
     line-height: 28px;
+    word-break: break-all;
     // margin-top: 10px;
     // p {
     //     font-size: @font2;

+ 13 - 15
src/main/nine-space/src/views/asset/GiveSearch.vue

@@ -24,7 +24,8 @@
                 class="content"
                 @click="$router.push('/givesubmit?id=' + this.$route.query.id + '&toUserId=' + info.id)"
             >
-                <img class="img" :src="info.avatar" alt="" />
+                <!-- <img class="img" :src="info.avatar" alt="" /> -->
+                <van-image class="img" width="70" height="70" radius="70" :src="info.avatar" fit="cover" />
                 <div class="init">
                     <div>
                         <div class="text1">{{ info.realName || '保密' }}</div>
@@ -32,7 +33,7 @@
                             手机号码 <span>{{ info.phone }}</span>
                         </div>
                     </div>
-                    <div class="btn">赠送</div>
+                    <linear-com class="btn">赠送</linear-com>
                 </div>
             </div>
             <van-empty v-if="empty" description="没有任何藏品哦~" />
@@ -43,7 +44,9 @@
 <script>
 import product from '../../mixins/product';
 import list from '../../mixins/list';
+import LinearCom from '../../components/LinearCom.vue';
 export default {
+    components: { LinearCom },
     name: 'Search',
     inject: ['bar'],
     mixins: [product, list],
@@ -132,30 +135,25 @@ export default {
                 font-weight: bold;
                 color: #ffffff;
                 line-height: 24px;
+                margin-bottom: 5px;
             }
             .text2 {
-                font-size: @font1;
-                font-weight: 400;
+                font-size: @font2;
                 color: @text3;
                 line-height: 24px;
             }
             span {
                 color: #ffffff;
             }
-            .btn {
-                width: 70px;
-                height: 26px;
-                border-radius: 16px;
-                border: 1px solid;
-                // border-image: linear-gradient(135deg, rgba(253, 251, 96, 1), rgba(255, 143, 62, 1)) 1 1;
-                line-height: 26px;
-                font-size: 14px;
-                color: #fdfb60;
-                text-align: center;
-            }
         }
     }
 }
+.btn {
+    padding: 0 20px;
+    line-height: 26px;
+    height: 26px;
+    color: @prim;
+}
 .top {
     background-color: #181818;
     padding: 0 16px;

+ 57 - 5
src/main/nine-space/src/views/product/Detail.vue

@@ -163,7 +163,7 @@
                         <div v-else class="tips">铸造者未设置</div>
                     </div>
                 </van-collapse-item>
-                <van-collapse-item name="00" class="goods-info init">
+                <van-collapse-item name="00" class="goods-info">
                     <template #title>
                         <div class="page-title">
                             <img src="../../assets/qiaoqiaohua-icon-weidakai.png" alt="" /> 悄悄话<span
@@ -233,10 +233,11 @@
                         <div class="content" v-for="item in list" :key="item.id">
                             <!-- <img class="img" :src="list.avatar" alt="" /> -->
                             <div class="init">
-                                <div style="width: 100%">
+                                <van-image width="40" height="40" radius="20" :src="item.fromAvatar" fit="contain" />
+                                <div class="init-content">
                                     <div class="text1">{{ item.fromUser || '保密' }}</div>
                                     <div class="text2">
-                                        <div class="text3">{{ item.operation }}{{ item.price }}</div>
+                                        <div class="text3">{{ item.operation }}¥{{ item.price }}</div>
                                         <div class="text4">{{ item.createdAt }}</div>
                                     </div>
                                 </div>
@@ -376,6 +377,10 @@ export default {
                     if (res.assetId) {
                         this.$http.get('/asset/get/' + res.assetId).then(res => {
                             console.log(res);
+                            this.info = {
+                                ...res,
+                                ...this.info
+                            };
                             this.$http
                                 .get('/asset/tokenHistory', {
                                     tokenId: res.tokenId,
@@ -537,7 +542,7 @@ export default {
     .price-line {
         display: flex;
         justify-content: center;
-        // margin-top: 12px;
+        margin-top: 12px;
         .sub {
             flex-grow: 1;
             margin-left: 5px;
@@ -715,7 +720,7 @@ export default {
     font-size: @font2;
     color: @text3;
     line-height: 24px;
-    padding-top: 12px;
+    // padding-top: 12px;
 }
 .buy {
     width: 100%;
@@ -900,6 +905,7 @@ export default {
     font-size: @font2;
     color: #ffffff;
     line-height: 28px;
+    word-break: break-all;
     // margin-top: 10px;
 }
 .btn-list {
@@ -952,6 +958,24 @@ export default {
     background-color: @bg;
 }
 
+@keyframes flipY {
+    0% {
+        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
+    }
+    27% {
+        transform: perspective(500px) rotateX(0deg) rotateY(15deg);
+    }
+    50% {
+        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
+    }
+    73% {
+        transform: perspective(500px) rotateX(0deg) rotateY(-15deg);
+    }
+    100% {
+        transform: perspective(500px) rotateX(0deg) rotateY(0deg);
+    }
+}
+
 .detail-top {
     position: relative;
     .detail-info {
@@ -971,6 +995,7 @@ export default {
     .mySwiper {
         border-radius: 8px;
         border: 2px solid #ffffff;
+        animation: flipY 6s linear infinite;
         .swiper-slide {
             display: flex;
             align-items: center;
@@ -982,6 +1007,8 @@ export default {
                 background-color: @bg;
             }
         }
+
+        // animation: name duration timing-function delay iteration-count direction fill-mode;
     }
 
     .name {
@@ -1203,4 +1230,29 @@ export default {
     padding: 12px 16px !important;
     background-color: #131313 !important;
 }
+
+.init {
+    width: 100%;
+    .init-content {
+        flex-grow: 1;
+        margin-left: 12px;
+    }
+    .flex();
+    .text2 {
+        font-size: @font2;
+        color: @text3;
+        .flex();
+        line-height: 24px;
+        justify-content: space-between;
+    }
+    .text1 {
+        font-size: @font2;
+        color: #fff;
+        line-height: 24px;
+    }
+
+    & + & {
+        border-top: 1px solid #202122;
+    }
+}
 </style>

+ 1 - 1
src/main/nine-space/src/views/product/DetailMode.vue

@@ -558,7 +558,7 @@ export default {
     height: 100vw;
 }
 .detail {
-    padding-top: 50px;
+    padding-top: 0px;
 }
 /deep/.banner-frame {
     body {

+ 5 - 4
src/main/nine-space/src/views/user/Point.vue

@@ -41,7 +41,7 @@
                 </div>
                 <div class="text3">-320</div>
             </div> -->
-            <!-- <lottie :options="defaultOptions" :height="50" :width="400" v-on:animCreated="handleAnimation" /> -->
+            <lottie :options="defaultOptions" :height="50" :width="400" v-on:animCreated="handleAnimation" />
             <van-empty description="暂时没有任何记录哦~" />
         </div>
     </div>
@@ -49,9 +49,10 @@
 
 <script>
 import { ref } from 'vue';
-// import Lottie from 'vue-lottie';
-// const animationData = require('../../utils/84860-my-first-ever-lottie84860-my-first-ever-lottie.json');
+import Lottie from 'vue-lottie';
+const animationData = require('../../utils/data.json');
 export default {
+    components: { Lottie },
     setup() {
         const showPopover = ref(false);
 
@@ -65,7 +66,7 @@ export default {
     },
     data() {
         return {
-            // defaultOptions: { animationData: animationData },
+            defaultOptions: { animationData: animationData },
             animationSpeed: 1
         };
     },