Parcourir la source

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

panhui il y a 4 ans
Parent
commit
e20e0649fc

+ 2 - 0
src/main/java/com/izouma/nineth/domain/Collection.java

@@ -120,4 +120,6 @@ public class Collection extends BaseEntity {
     private int sort;
 
     private Long assetId;
+
+    private BigDecimal originalPrice;
 }

+ 1 - 7
src/main/nine-space/src/components/Post.vue

@@ -4,13 +4,7 @@
             <div class="wrapper">
                 <div class="img" ref="wrap"></div>
                 <div class="content" v-if="!img" ref="post" @click.stop>
-                    <van-image
-                        :src="getImg(info.pic || info.pic)"
-                        width="80vw"
-                        height="80vw"
-                        fit="cover"
-                        @load="loadImg"
-                    />
+                    <van-image :src="getImg(info.pic)" width="80vw" height="80vw" fit="cover" @load="loadImg" />
                     <div class="info">
                         <div class="name van-multi-ellipsis--l2">
                             {{ info.name }}

+ 1 - 7
src/main/nine-space/src/views/Submit.vue

@@ -2,13 +2,7 @@
     <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 || info.pic))"
-                fit="cover"
-            />
+            <van-image width="74" height="104" :radius="6" :src="getImg(changeImgs(info.pic))" fit="cover" />
             <div class="product-content">
                 <div class="text1">
                     {{ info.name }}

+ 1 - 0
src/main/pc-space/package.json

@@ -21,6 +21,7 @@
         "vue-avatar-cropper": "^5.0.2",
         "vue-awesome-swiper": "^4.1.1",
         "vue-clipboard2": "^0.3.3",
+        "vue-qrcode": "^1.0.0",
         "vue-router": "^3.2.0",
         "vue-social-share": "0.0.3",
         "vuex": "^3.4.0"

+ 4 - 0
src/main/pc-space/src/components/CollectionInfo.vue

@@ -63,6 +63,7 @@ export default {
     methods: {
         likeProduct() {
             if (!this.info.liked) {
+                console.log(111);
                 this.$http.get(`/collection/${this.info.id}/like`).then(() => {
                     this.$emit('update:info', {
                         ...this.info,
@@ -72,6 +73,9 @@ export default {
                     this.$message.success('收藏成功');
                 });
             } else {
+                // this.info.liked = true;
+                console.log(222);
+                console.log(this.info);
                 this.$http.get(`/collection/${this.info.id}/unlike`).then(() => {
                     this.$emit('update:info', {
                         ...this.info,

+ 9 - 2
src/main/pc-space/src/components/FansInfo.vue

@@ -21,12 +21,18 @@
                                         已售 <span>{{ list.sales }}</span>
                                     </div>
                                 </div>
-                                <el-button plain round :class="{ prim: !list.follow }" size="mini" @click="fans(list)">
+                                <el-button
+                                    plain
+                                    round
+                                    :class="{ prim: !list.follow }"
+                                    size="mini"
+                                    @click.prevent="fans(list)"
+                                >
                                     {{ list.follow ? '已关注' : '关注' }}
                                 </el-button>
                             </div>
                         </div>
-                        <div class="imgBox">
+                        <div class="imgBox" v-if="list.bg">
                             <img class="imgBox1" :src="list.bg" alt="" />
                         </div>
                     </div>
@@ -55,6 +61,7 @@ export default {
     methods: {
         fans(list) {
             this.like(list);
+            if(list.follws)
             this.$emit('getDetail');
         }
     }

+ 133 - 18
src/main/pc-space/src/views/user/AccountData.vue

@@ -20,23 +20,54 @@
                     </div>
                 </div>
             </div>
-
             <el-upload :action="uploadUrl" :show-file-list="false" :before-upload="beforeAvatarUpload">
                 <img v-if="userInfo.avatar" class="img2" :src="userInfo.avatar" alt="" />
                 <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload>
         </div>
-        <div v-if="active === '关注' || active === '粉丝'">
+        <div class="userContent" v-if="active === '关注' || active === '粉丝'">
+            <div class="border"></div>
+            <el-empty v-if="empty" description="还没有哦~"></el-empty>
             <div v-for="item in list" :key="item.id">
-                <fans-info :list="item" @getDetail="tab"></fans-info>
+                <div class="box">
+                    <router-link :to="{ path: '/castingDetail?id=' + item.id }">
+                        <div class="text">
+                            <img class="img4" :src="item.avatar" alt="" />
+                            <div class="box2">
+                                <div class="name">
+                                    <div class="name1">{{ item.nickname }}</div>
+                                    <img class="name2" src="../../assets/img/renzheng_icon@3x.png" alt="" />
+                                </div>
+                                <div class="text2">暂无</div>
+                                <div class="box3">
+                                    <div class="box4">
+                                        <div class="text4">
+                                            粉丝 <span>{{ item.follows }}</span>
+                                        </div>
+                                        <div class="text4">
+                                            已售 <span>{{ item.sales }}</span>
+                                        </div>
+                                    </div>
+                                    <el-button
+                                        plain
+                                        round
+                                        :class="{ prim: !item.follow }"
+                                        size="mini"
+                                        @click.prevent="like(item)"
+                                    >
+                                        {{ item.follow ? '已关注' : '关注' }}
+                                    </el-button>
+                                </div>
+                            </div>
+                            <div class="imgBox" v-if="item.bg">
+                                <img class="imgBox1" :src="item.bg" alt="" />
+                            </div>
+                        </div>
+                    </router-link>
+                </div>
             </div>
         </div>
-        <div v-if="empty">
-            <div class="border2"></div>
-            <el-empty description="还没有哦~"></el-empty>
-        </div>
-
-        <div class="content" v-if="!empty && active !== '关注' && active !== '粉丝'">
+        <div class="content" v-if="active !== '关注' && active !== '粉丝'">
             <div class="name">基本信息</div>
             <div class="box">
                 <div class="text">
@@ -128,13 +159,15 @@
 <script>
 import { mapState } from 'vuex';
 import resolveUrl from 'resolve-url';
+import user from '../../mixins/user';
 import Clipboard from 'clipboard';
-import FansInfo from '../../components/FansInfo.vue';
+// import FansInfo from '../../components/FansInfo.vue';
 export default {
     created() {
         this.uploadUrl = resolveUrl(this.$baseUrl, 'upload/file');
     },
-    components: { FansInfo },
+    // components: { FansInfo },
+    mixins: [user],
     data() {
         return {
             tabs: ['粉丝', '关注'],
@@ -329,13 +362,6 @@ export default {
         color: #ccc;
         margin: 10px 0 0 17px;
     }
-    // /deep/ .el-message-box {
-    //     /deep/ .el-message-box__btns {
-    //         /deep/ .el-button {
-    //             background: red !important;
-    //         }
-    //     }
-    // }
     .top {
         height: 146px;
         width: 970px;
@@ -380,6 +406,95 @@ export default {
             left: 431px;
         }
     }
+    .userContent {
+        padding: 0 16px;
+
+        .box {
+            .flex();
+            justify-content: space-between;
+            margin-bottom: 20px;
+            .text {
+                .flex();
+                justify-content: space-between;
+                .img4 {
+                    width: 78px;
+                    height: 78px;
+                    border-radius: 50%;
+                    margin-right: 12px;
+                }
+                .box2 {
+                    width: 288px;
+                    margin-right: 50px;
+                    .name {
+                        .flex();
+                        margin-top: 5px;
+                        .name1 {
+                            font-size: 16px;
+                            font-weight: bold;
+                            color: #ffffff;
+                            line-height: 24px;
+                            margin-right: 6px;
+                        }
+                        .name2 {
+                            width: 18px;
+                            height: 18px;
+                        }
+                    }
+                    .text2 {
+                        font-size: 14px;
+                        font-weight: 400;
+                        color: #939599;
+                        line-height: 24px;
+                        margin-bottom: 8px;
+                        overflow: hidden;
+                        text-overflow: ellipsis;
+                    }
+                    .box3 {
+                        display: flex;
+                        align-content: center;
+                        justify-content: space-between;
+                        .box4 {
+                            display: flex;
+                            .text4 {
+                                font-size: 14px;
+                                font-weight: 400;
+                                color: #939599;
+                                line-height: 24px;
+                                margin-right: 20px;
+                            }
+                            span {
+                                color: #fff;
+                            }
+                        }
+                        .el-button {
+                            background-color: transparent;
+                            min-width: 76px;
+                            height: 28px;
+
+                            &.prim {
+                                .line(@radius:28px);
+                                text-align: center;
+                                /deep/span {
+                                    color: @prim;
+                                    position: relative;
+                                    z-index: 1;
+                                }
+                            }
+                        }
+                    }
+                }
+                .imgBox {
+                    .flex();
+                    .imgBox1 {
+                        width: 140px;
+                        height: 100px;
+                        border-radius: 8px;
+                        margin-left: 30px;
+                    }
+                }
+            }
+        }
+    }
     .content {
         padding: 0 16px;
         .name {

+ 18 - 0
src/main/pc-space/yarn.lock

@@ -8215,6 +8215,11 @@ tslib@^1.10.0, tslib@^1.9.0:
   resolved "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
   integrity sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=
 
+tslib@^2.2.0:
+  version "2.3.1"
+  resolved "https://registry.nlark.com/tslib/download/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
+  integrity sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=
+
 tty-browserify@0.0.0:
   version "0.0.0"
   resolved "https://registry.nlark.com/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
@@ -8536,6 +8541,11 @@ vue-clipboard2@^0.3.3:
   dependencies:
     clipboard "^2.0.0"
 
+vue-demi@^0.11.3:
+  version "0.11.4"
+  resolved "https://registry.npmmirror.com/vue-demi/download/vue-demi-0.11.4.tgz#6101992fe4724cf5634018a16e953f3052e94e2a"
+  integrity sha1-YQGZL+RyTPVjQBihbpU/MFLpTio=
+
 vue-eslint-parser@^7.0.0:
   version "7.11.0"
   resolved "https://registry.npmmirror.com/vue-eslint-parser/download/vue-eslint-parser-7.11.0.tgz?cache=0&sync_timestamp=1634602895439&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.11.0.tgz#214b5dea961007fcffb2ee65b8912307628d0daf"
@@ -8579,6 +8589,14 @@ vue-loader@^15.9.2:
     vue-hot-reload-api "^2.3.0"
     vue-style-loader "^4.1.0"
 
+vue-qrcode@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmmirror.com/vue-qrcode/download/vue-qrcode-1.0.0.tgz#330666cfffcaff4c6978d4dd696dbb77cd0e3f0a"
+  integrity sha1-MwZmz//K/0xpeNTdaW27d80OPwo=
+  dependencies:
+    tslib "^2.2.0"
+    vue-demi "^0.11.3"
+
 vue-router@^3.2.0:
   version "3.5.2"
   resolved "https://registry.npmmirror.com/vue-router/download/vue-router-3.5.2.tgz?cache=0&sync_timestamp=1634663514839&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvue-router%2Fdownload%2Fvue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c"

+ 5 - 5
src/main/vue/src/views/BlindBoxEdit.vue

@@ -19,9 +19,9 @@
                     <el-form-item prop="name" label="名称">
                         <el-input v-model="formData.name" :disabled="!canEdit"></el-input>
                     </el-form-item>
-                    <el-form-item prop="pics" label="图片">
+                    <el-form-item prop="pic" label="图片">
                         <object-upload
-                            v-model="formData.pics[0]"
+                            v-model="formData.pic[0]"
                             :disabled="!canEdit"
                             compress
                             width="3000"
@@ -215,7 +215,7 @@ export default {
 
         // this.formData = {
         //     name: 'OASISPUNK绿洲朋克',
-        //     pics: ['https://awesomeadmin.oss-cn-hangzhou.aliyuncs.com/image/2021-10-21-16-44-52kZqxuwhH.gif'],
+        //     pic: ['https://awesomeadmin.oss-cn-hangzhou.aliyuncs.com/image/2021-10-21-16-44-52kZqxuwhH.gif'],
         //     minter: '管理员',
         //     minterId: 1,
         //     minterAvatar: 'https://awesomeadmin.oss-cn-hangzhou.aliyuncs.com/image/avatar_male.png',
@@ -265,7 +265,7 @@ export default {
                 properties: [],
                 type: 'BLIND_BOX',
                 source: 'OFFICIAL',
-                pics: [{}]
+                pic: [{}]
             },
             rules: {
                 name: [
@@ -275,7 +275,7 @@ export default {
                         trigger: 'blur'
                     }
                 ],
-                pics: [
+                pic: [
                     {
                         validator: (rule, value, callback) => {
                             if (value) {

+ 3 - 3
src/main/vue/src/views/BlindBoxList.vue

@@ -45,13 +45,13 @@
             <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
             <el-table-column prop="id" label="ID" width="100"> </el-table-column>
             <el-table-column prop="name" label="名称"> </el-table-column>
-            <el-table-column prop="pics" label="作品内容">
+            <el-table-column prop="pic" label="作品内容">
                 <template slot-scope="{ row }">
                     <el-image
                         style="width: 30px; height: 30px"
-                        :src="row.pics[0].thumb || row.pics[0].url"
+                        :src="row.pic[0].thumb || row.pic[0].url"
                         fit="cover"
-                        :preview-src-list="row.pics.map(i => i.thumb || i.url)"
+                        :preview-src-list="row.pic.map(i => i.thumb || i.url)"
                     ></el-image>
                 </template>
             </el-table-column>

+ 17 - 4
src/main/vue/src/views/CollectionEdit.vue

@@ -19,8 +19,14 @@
                     <el-form-item prop="name" label="名称">
                         <el-input v-model="formData.name" :disabled="!canEdit"></el-input>
                     </el-form-item>
-                    <el-form-item prop="pics" label="图片">
-                        <object-upload v-model="formData.pics[0]" :disabled="!canEdit" compress width="3000" height="3000"></object-upload>
+                    <el-form-item prop="pic" label="图片">
+                        <object-upload
+                            v-model="formData.pic[0]"
+                            :disabled="!canEdit"
+                            compress
+                            width="3000"
+                            height="3000"
+                        ></object-upload>
                         <div class="tip">支持JPG、PNG、GIF、MP4,推荐长宽比1:1</div>
                     </el-form-item>
                     <el-form-item prop="minterId" label="铸造者">
@@ -119,6 +125,13 @@
                     <el-form-item prop="price" label="价格">
                         <el-input-number type="number" v-model="formData.price" :disabled="!canEdit"></el-input-number>
                     </el-form-item>
+                    <el-form-item prop="price" label="原价">
+                        <el-input-number
+                            type="number"
+                            v-model="formData.originalPrice"
+                            :disabled="!canEdit"
+                        ></el-input-number>
+                    </el-form-item>
                     <el-form-item prop="royalties" label="版税(%)">
                         <el-input-number v-model="formData.royalties" :min="0" :max="99" :disabled="!canEdit">
                         </el-input-number>
@@ -200,7 +213,7 @@ export default {
                 properties: [],
                 type: 'DEFAULT',
                 source: 'OFFICIAL',
-                pics: [],
+                pic: [],
                 scheduleSale: false,
                 sort: 0,
                 privileges: []
@@ -213,7 +226,7 @@ export default {
                         trigger: 'blur'
                     }
                 ],
-                pics: [
+                pic: [
                     {
                         validator: (rule, value, callback) => {
                             if (value) {

+ 3 - 3
src/main/vue/src/views/CollectionList.vue

@@ -50,13 +50,13 @@
                     <sortable-header :column="column" :current-sort="sort" @changeSort="changeSort"> </sortable-header>
                 </template>
             </el-table-column>
-            <el-table-column prop="pics" label="作品内容" width="90" align="center">
+            <el-table-column prop="pic" label="作品内容" width="90" align="center">
                 <template slot-scope="{ row }">
                     <el-image
                         style="width: 30px; height: 30px"
-                        :src="row.pics[0].thumb || row.pics[0].url"
+                        :src="row.pic[0].thumb || row.pic[0].url"
                         fit="cover"
-                        :preview-src-list="row.pics.map(i => i.thumb || i.url)"
+                        :preview-src-list="row.pic.map(i => i.thumb || i.url)"
                     ></el-image>
                 </template>
             </el-table-column>