xiongzhu пре 4 година
родитељ
комит
5a5be4ef7b

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

@@ -65,6 +65,23 @@ public class Collection extends BaseEntity {
     @Enumerated(EnumType.STRING)
     private CollectionType type;
 
+    @Column(columnDefinition = "TEXT")
+    @Convert(converter = PropertyListConverter.class)
+    @ApiModelProperty("特性")
+    private List<CollectionProperty> properties;
+
+    @ApiModelProperty("是否可转售")
+    private boolean canResale;
+
+    @ApiModelProperty("版税比例")
+    private int royalties;
+
+    @ApiModelProperty("手续费比例")
+    private int serviceCharge;
+
+    @ApiModelProperty("分类")
+    private String category;
+
     @ApiModelProperty("来源")
     @Enumerated(EnumType.STRING)
     private CollectionSource source;
@@ -91,23 +108,6 @@ public class Collection extends BaseEntity {
     @Column(precision = 10, scale = 2)
     private BigDecimal price;
 
-    @Column(columnDefinition = "TEXT")
-    @Convert(converter = PropertyListConverter.class)
-    @ApiModelProperty("特性")
-    private List<CollectionProperty> properties;
-
-    @ApiModelProperty("分类")
-    private String category;
-
-    @ApiModelProperty("是否可转售")
-    private boolean canResale;
-
-    @ApiModelProperty("版税比例")
-    private int royalties;
-
-    @ApiModelProperty("手续费比例")
-    private int serviceCharge;
-
     @ApiModelProperty("盲盒开售时间")
     private LocalDateTime startTime;
 

+ 9 - 5
src/main/vue/src/router.js

@@ -23,13 +23,17 @@ const router = new Router({
                     name: '404',
                     component: () => import(/* webpackChunkName: "404" */ '@/views/404.vue')
                 },
+                // {
+                //     path: '/dashboard',
+                //     name: 'dashboard',
+                //     component: () => import(/* webpackChunkName: "404" */ '@/views/Dashboard.vue'),
+                //     meta: {
+                //         title: '首页'
+                //     }
+                // },
                 {
                     path: '/dashboard',
-                    name: 'dashboard',
-                    component: () => import(/* webpackChunkName: "404" */ '@/views/Dashboard.vue'),
-                    meta: {
-                        title: '首页'
-                    }
+                    redirect: 'collectionList'
                 },
                 {
                     path: '/api',

+ 2 - 4
src/main/vue/src/views/Admin.vue

@@ -1,10 +1,8 @@
 <template>
     <el-container id="app">
         <el-aside :width="collapse ? '65px' : '200px'" class="aside">
-            <div v-if="collapse" class="logo-wrapper collapse" @click="$router.push('/dashboard')">
-                Thoma<br /><b>Admin</b>
-            </div>
-            <div v-else class="logo-wrapper" @click="$router.push('/dashboard')">9th</div>
+            <div v-if="collapse" class="logo-wrapper collapse" @click="$router.push('/dashboard')"></div>
+            <div v-else class="logo-wrapper" @click="$router.push('/dashboard')">第九空间</div>
             <el-menu
                 :collapse="collapse"
                 :background-color="$theme['menu-bg']"

+ 9 - 2
src/main/vue/src/views/BlindBoxEdit.vue

@@ -25,6 +25,11 @@
                     <el-form-item prop="minterId" label="创建者">
                         <minter-select v-model="formData.minterId" @detail="onMinterDetail"></minter-select>
                     </el-form-item>
+                    <el-form-item prop="category" label="分类">
+                        <el-select v-model="formData.category">
+                            <el-option v-for="item in cateogories" :label="item" :value="item" :key="item"></el-option>
+                        </el-select>
+                    </el-form-item>
                     <el-form-item prop="detail" label="详情" style="width: calc(100vw - 450px)">
                         <rich-text v-model="formData.detail"></rich-text>
                     </el-form-item>
@@ -346,7 +351,8 @@ export default {
                             callback();
                         }
                     }
-                ]
+                ],
+                category: [{ required: true, message: '请填写分类' }]
             },
             typeOptions: [
                 { label: '默认', value: 'DEFAULT' },
@@ -365,7 +371,8 @@ export default {
             addItemFormRules: {
                 id: [{ required: true, message: '请选择作品' }],
                 total: [{ required: true, message: '请输入数量' }]
-            }
+            },
+            cateogories: ['收藏品', '数字艺术', '门票', '游戏', '音乐', '使用', '其他']
         };
     },
     methods: {

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

@@ -25,6 +25,11 @@
                     <el-form-item prop="minterId" label="铸造者">
                         <minter-select v-model="formData.minterId" @detail="onMinterDetail"></minter-select>
                     </el-form-item>
+                    <el-form-item prop="category" label="分类">
+                        <el-select v-model="formData.category">
+                            <el-option v-for="item in cateogories" :label="item" :value="item" :key="item"></el-option>
+                        </el-select>
+                    </el-form-item>
                     <el-form-item prop="detail" label="详情" style="width: calc(100vw - 450px)">
                         <rich-text v-model="formData.detail"></rich-text>
                     </el-form-item>
@@ -224,7 +229,8 @@ export default {
                         },
                         trigger: 'blur'
                     }
-                ]
+                ],
+                category: [{ required: true, message: '请填写分类' }]
             },
             typeOptions: [
                 { label: '默认', value: 'DEFAULT' },
@@ -235,7 +241,8 @@ export default {
                 { label: '官方', value: 'OFFICIAL' },
                 { label: '用户铸造', value: 'USER' },
                 { label: '转让', value: 'TRANSFER' }
-            ]
+            ],
+            cateogories: ['收藏品', '数字艺术', '门票', '游戏', '音乐', '使用', '其他']
         };
     },
     methods: {

+ 18 - 10
src/main/vue/src/views/OrderList.vue

@@ -1,7 +1,7 @@
 <template>
     <div class="list-view">
         <page-title>
-            <el-button
+            <!-- <el-button
                 @click="addRow"
                 type="primary"
                 icon="el-icon-plus"
@@ -9,7 +9,7 @@
                 class="filter-item"
             >
                 新增
-            </el-button>
+            </el-button> -->
             <el-button
                 @click="download"
                 icon="el-icon-upload2"
@@ -21,6 +21,14 @@
             </el-button>
         </page-title>
         <div class="filters-container">
+            <el-select v-model="status" placeholder="筛选状态" clearable @change="getData">
+                <el-option
+                    v-for="item in statusOptions"
+                    :key="item.value"
+                    :value="item.value"
+                    :label="item.label"
+                ></el-option>
+            </el-select>
             <el-input
                 placeholder="搜索..."
                 v-model="search"
@@ -46,9 +54,8 @@
             <el-table-column prop="id" label="ID" width="100"> </el-table-column>
             <el-table-column prop="userId" label="用户ID"> </el-table-column>
             <el-table-column prop="collectionId" label="藏品ID"> </el-table-column>
-            <el-table-column prop="qty" label="数量"> </el-table-column>
-            <el-table-column prop="name" label="名称"> </el-table-column>
-            <el-table-column prop="pic" label="图片">
+            <el-table-column prop="name" label="名称" show-overflow-tooltip> </el-table-column>
+            <el-table-column prop="pic" label="图片" width="80">
                 <template slot-scope="{ row }">
                     <el-image
                         style="width: 30px; height: 30px"
@@ -58,15 +65,15 @@
                     ></el-image>
                 </template>
             </el-table-column>
-            <el-table-column prop="minter" label="铸造者"> </el-table-column>
             <el-table-column prop="price" label="价格"> </el-table-column>
             <el-table-column prop="gasPrice" label="gas费"> </el-table-column>
             <el-table-column prop="totalPrice" label="总价"> </el-table-column>
             <el-table-column prop="status" label="状态" :formatter="statusFormatter"> </el-table-column>
             <el-table-column prop="payMethod" label="支付方式" :formatter="payMethodFormatter"> </el-table-column>
             <el-table-column prop="transactionId" label="交易ID"> </el-table-column>
-            <el-table-column prop="payTime" label="支付时间"> </el-table-column>
-            <el-table-column prop="txHash" label="链上hash"> </el-table-column>
+            <el-table-column prop="createdAt" label="创建时间" width="140"> </el-table-column>
+            <el-table-column prop="payTime" label="支付时间" width="140"> </el-table-column>
+            <el-table-column prop="txHash" label="链上hash" show-overflow-tooltip> </el-table-column>
             <el-table-column prop="gasUsed" label="消耗gas"> </el-table-column>
             <el-table-column label="操作" align="center" fixed="right" width="150">
                 <template slot-scope="{ row }">
@@ -120,7 +127,8 @@ export default {
             payMethodOptions: [
                 { label: '微信', value: 'WEIXIN' },
                 { label: '支付宝', value: 'ALIPAY' }
-            ]
+            ],
+            status: null
         };
     },
     computed: {
@@ -144,7 +152,7 @@ export default {
             return '';
         },
         beforeGetData() {
-            return { search: this.search, query: { del: false } };
+            return { search: this.search, query: { del: false, status: this.status } };
         },
         toggleMultipleMode(multipleMode) {
             this.multipleMode = multipleMode;