Просмотр исходного кода

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

xuqiang 4 лет назад
Родитель
Сommit
ccf98837b7

+ 9 - 4
build.sh

@@ -1,7 +1,12 @@
 git checkout
 git pull
-#(cd src/main/vue && npm run build)
+(cd src/main/vue && yarn)
+(cd src/main/vue && yarn build)
+(cd src/main/nine-space && yarn)
+(cd src/main/nine-space && yarn build)
+(cd src/main/pc-space && yarn)
+(cd src/main/pc-space && yarn build)
 mvn clean package
-systemctl stop zmj
-cp target/zhumj-0.0.1-SNAPSHOT.jar /var/www/zmj/zhumj-0.0.1-SNAPSHOT.jar
-systemctl start zmj
+systemctl stop 9th
+cp target/9th-0.0.1-SNAPSHOT.jar /var/www/9th/9th-0.0.1-SNAPSHOT.jar
+systemctl start 9th

+ 1 - 1
src/main/nine-space/.env.development

@@ -1 +1 @@
-VUE_APP_BASE_URL=http://localhost:8080
+VUE_APP_BASE_URL=https://nft.9space.vip

+ 8 - 1
src/main/nine-space/src/components/product/productInfo.vue

@@ -15,7 +15,8 @@
             <div class="name van-ellipsis">
                 {{ info.name }}
             </div>
-            <div class="price"><i class="font_family icon-icon_jiage"></i>{{ info.price }}</div>
+            <div class="price" v-if="info.salable"><i class="font_family icon-icon_jiage"></i>{{ info.price }}</div>
+            <div class="status" v-else>仅展示</div>
             <div class="text">
                 <div class="text1" v-if="info.type === 'BLIND_BOX'">
                     <span>{{ info.sale }}/</span>
@@ -110,6 +111,12 @@ export default {
                 font-size: 10px;
             }
         }
+        .status {
+            line-height: 22px;
+            padding: 7px 0;
+            color: #939599;
+            font-size: 16px;
+        }
     }
 
     .text {

+ 8 - 6
src/main/nine-space/src/views/product/Detail.vue

@@ -16,7 +16,7 @@
                 <van-image
                     v-else
                     @click="preview(index, changeImgs(banners))"
-                    :src="item.url"
+                    :src="getImg(item.url)"
                     width="100vw"
                     height="100vw"
                     fit="scale-down"
@@ -25,13 +25,13 @@
         </swiper>
 
         <div class="info">
-            <div class="price-line">
-                <div class="price" v-if="info.salable"><i class="font_family icon-icon_jiage"></i>{{ info.price }}</div>
-                <div class="sub" v-if="info.royalties && info.salable">
+            <div class="price-line" v-if="info.salable">
+                <div class="price"><i class="font_family icon-icon_jiage"></i>{{ info.price }}</div>
+                <div class="sub" v-if="info.royalties">
                     含 <span>{{ info.royalties }}%</span> 版税
                 </div>
                 <div class="flex1"></div>
-                <div class="text">
+                <div class="text" v-if="info.salable && info.total > 0">
                     <span>已售 {{ info.sale }}</span>
                     <span>剩余 {{ info.stock }}</span>
                 </div>
@@ -180,7 +180,9 @@ export default {
     methods: {
         preview(index = 0, list = []) {
             ImagePreview({
-                images: [...list],
+                images: [...list].map(item => {
+                    return this.getImg(item);
+                }),
                 startPosition: index
             });
         },

BIN
src/main/pc-space/src/assets/icon_jiage.png


+ 2 - 2
src/main/pc-space/src/mixins/common.js

@@ -61,7 +61,7 @@ export default {
         all(link) {
             this.$router.push(link);
         },
-        getImg(imgs = '', type = '') {
+        getImg(imgs = '', type = '', size = 300) {
             if (!imgs) {
                 imgs = '';
             }
@@ -74,7 +74,7 @@ export default {
             });
             if (imgs.length > 0) {
                 let img = type ? imgs[0][type] : imgs[0];
-                return img + (/\.gif$/i.test(img) ? '' : '?x-oss-process=image/resize,h_300,m_lfit');
+                return img + (/\.gif$/i.test(img) ? '' : `?x-oss-process=image/resize,h_${size},m_lfit`);
             } else {
                 return '';
             }

+ 7 - 0
src/main/pc-space/src/mixins/product.js

@@ -37,6 +37,13 @@ export default {
             startTime: ''
         };
     },
+    computed: {
+        bannerList() {
+            return [...this.changeImgs(this.banners)].map(item => {
+                return this.getImg(item, '', 800);
+            });
+        }
+    },
     methods: {
         changeImgs(list = []) {
             return list.map(item => {

+ 33 - 16
src/main/pc-space/src/views/CollectionDetail.vue

@@ -8,15 +8,15 @@
                             class="swiper-video"
                             v-if="isVideo(item)"
                             :src="item.url"
-                            :poster="getImg(changeImgs([item]))"
+                            :poster="getImg(changeImgs([item]), '', 800)"
                             controls="controls"
                         >
                             您的浏览器不支持 video 标签。
                         </video>
                         <el-image
                             v-else
-                            :src="item.url"
-                            :preview-src-list="changeImgs(banners)"
+                            :src="getImg(item.url, '', 800)"
+                            :preview-src-list="bannerList"
                             style="width: 460px; height: 520px"
                             fit="scale-down"
                         />
@@ -40,21 +40,31 @@
                         </div>
                     </div>
                 </div>
-                <router-link :to="{ path: '/castingDetail', query: { id: info.minterId } }" class="name">
-                    <img class="name1" :src="info.minterAvatar" alt="" />
-                    <div>
-                        <div class="name2">{{ info.minter }}</div>
-                        <div class="name3">铸造者</div>
-                    </div>
-                    <img class="name4" src="../assets/img/icon_inter@3x (4).png" alt="" />
-                </router-link>
-                <div class="time">
+                <div class="name-list">
+                    <router-link :to="{ path: '/castingDetail', query: { id: info.minterId } }" class="name">
+                        <img class="name1" :src="info.minterAvatar" alt="" />
+                        <div>
+                            <div class="name2">{{ info.minter }}</div>
+                            <div class="name3">铸造者</div>
+                        </div>
+                        <img class="name4" src="../assets/img/icon_inter@3x (4).png" alt="" />
+                    </router-link>
+                    <router-link :to="{ path: '/castingDetail', query: { id: info.ownerId } }" class="name">
+                        <img class="name1" :src="info.ownerAvatar" alt="" />
+                        <div>
+                            <div class="name2">{{ info.owner }}</div>
+                            <div class="name3">持有者</div>
+                        </div>
+                        <img class="name4" src="../assets/img/icon_inter@3x (4).png" alt="" />
+                    </router-link>
+                </div>
+                <div class="time" v-if="info.salable">
                     <div class="time1">卖家定价</div>
                     <div class="time2" v-if="info.startTime">
                         首发抢购倒计时<span>{{ startTime }}</span>
                     </div>
                 </div>
-                <div class="price">
+                <div class="price" v-if="info.salable">
                     <div class="price1">
                         <div class="price2">价格</div>
                         <img class="price3" src="../assets/img/icon_jiage@3x.png" alt="" />
@@ -144,6 +154,8 @@
             <collection-info v-for="(item, index) in relateds" :key="item.id" :info.sync="relateds[index]">
             </collection-info>
         </div>
+
+        <submit></submit>
     </div>
 </template>
 <script>
@@ -152,8 +164,9 @@ import product from '../mixins/product';
 import 'swiper/css/swiper.css';
 import LikeButton from '../components/LikeButton.vue';
 import CollectionInfo from '../components/CollectionInfo.vue';
+import Submit from './Submit.vue';
 export default {
-    components: { Swiper, SwiperSlide, LikeButton, CollectionInfo },
+    components: { Swiper, SwiperSlide, LikeButton, CollectionInfo, Submit },
     mixins: [product],
     data() {
         return {
@@ -317,7 +330,7 @@ export default {
             .text {
                 position: absolute;
                 right: 24px;
-                top: 0;
+                top: -10px;
                 display: flex;
                 .text1 {
                     text-align: center;
@@ -341,13 +354,17 @@ export default {
                 }
             }
         }
+        .name-list {
+            display: flex;
+            padding: 12px 0;
+        }
         .name {
             display: flex;
             align-items: center;
             height: 64px;
             line-height: 64px;
-            padding-bottom: 23px;
             cursor: pointer;
+            margin-right: 80px;
 
             .name1 {
                 width: 38px;

+ 37 - 0
src/main/pc-space/src/views/Submit.vue

@@ -0,0 +1,37 @@
+<template>
+    <el-dialog center title="支付订单" :visible.sync="show" width="680px">
+        <div class="page">
+            <div class="info">
+                <div class="price">
+                    <span>应付金额</span>
+                    <img src="../assets/icon_jiage.png" alt="" />
+                    <span>105.00</span>
+                </div>
+                <div class="order">
+                    <span>订单编号</span>
+                    <span class="text2">2019052035464</span>
+                    <!-- <el-button type="info" size="default" @click=""></el-button> -->
+                    
+                </div>
+            </div>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            show: true
+        };
+    },
+    methods: {
+        submit() {}
+    }
+};
+</script>
+
+<style lang="less" scoped>
+.page {
+}
+</style>

+ 23 - 2
src/main/vue/src/views/CollectionEdit.vue

@@ -75,6 +75,22 @@
                             </el-table-column>
                         </el-table>
                     </el-form-item>
+                    <!-- <el-form-item label="特权" prop="privileges" style="width: calc(100vw - 450px)">
+                        <el-table :data="formData.privileges">
+                            <el-table-column></el-table-column>
+                        </el-table>
+                        <el-table :data="privilegeOptions">
+                            <el-table-column prop="name" label="可选特权" width="150"></el-table-column>
+                            <el-table-column prop="description"></el-table-column>
+                            <el-table-column width="85" align="center">
+                                <template v-slot="{ row }">
+                                    <el-button size="mini" :disabled="!!row.added">
+                                        {{ row.added ? '已添加' : '添加' }}
+                                    </el-button>
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                    </el-form-item> -->
                     <el-form-item>
                         <el-button size="mini" @click="addProperty" :disabled="!canEdit"> 添加特性 </el-button>
                     </el-form-item>
@@ -166,6 +182,9 @@ export default {
                     this.$message.error(e.error);
                 });
         }
+        this.$http.post('/privilegeOption/all', { size: 10000, query: { del: false } }, { body: 'json' }).then(res => {
+            this.privilegeOptions = res.content;
+        });
     },
     computed: {
         canEdit() {
@@ -183,7 +202,8 @@ export default {
                 source: 'OFFICIAL',
                 pics: [],
                 scheduleSale: false,
-                sort: 0
+                sort: 0,
+                privileges: []
             },
             rules: {
                 name: [
@@ -318,7 +338,8 @@ export default {
                 { label: '用户铸造', value: 'USER' },
                 { label: '转让', value: 'TRANSFER' }
             ],
-            cateogories: ['收藏品', '数字艺术', '门票', '游戏', '音乐', '使用', '其他']
+            cateogories: ['收藏品', '数字艺术', '门票', '游戏', '音乐', '使用', '其他'],
+            privilegeOptions: []
         };
     },
     methods: {

+ 6 - 0
src/main/vue/src/views/CollectionList.vue

@@ -80,6 +80,12 @@
                     <el-tag type="info" v-else>否</el-tag>
                 </template>
             </el-table-column>
+            <el-table-column prop="salable" label="仅展示" width="90" align="center">
+                <template v-slot="{ row }">
+                    <el-tag type="success" v-if="!row.salable">是</el-tag>
+                    <el-tag type="info" v-else>否</el-tag>
+                </template>
+            </el-table-column>
             <el-table-column prop="price" label="价格" width="90"> </el-table-column>
             <el-table-column prop="sort" label="排序" width="90" align="center">
                 <template slot="header" slot-scope="{ column }">