Browse Source

feat[litemall-admin, litemall-admin-api]: 专题支持排序功能

Junling Bu 6 years ago
parent
commit
90b0f47be4

+ 1 - 1
litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminTopicController.java

@@ -42,7 +42,7 @@ public class AdminTopicController {
     public Object list(String title, String subtitle,
     public Object list(String title, String subtitle,
                        @RequestParam(defaultValue = "1") Integer page,
                        @RequestParam(defaultValue = "1") Integer page,
                        @RequestParam(defaultValue = "10") Integer limit,
                        @RequestParam(defaultValue = "10") Integer limit,
-                       @Sort @RequestParam(defaultValue = "add_time") String sort,
+                       @Sort(accepts = {"id", "add_time", "price"}) @RequestParam(defaultValue = "add_time") String sort,
                        @Order @RequestParam(defaultValue = "desc") String order) {
                        @Order @RequestParam(defaultValue = "desc") String order) {
         List<LitemallTopic> topicList = topicService.querySelective(title, subtitle, page, limit, sort, order);
         List<LitemallTopic> topicList = topicService.querySelective(title, subtitle, page, limit, sort, order);
         return ResponseUtil.okList(topicList);
         return ResponseUtil.okList(topicList);

+ 15 - 2
litemall-admin/src/views/promotion/topic.vue

@@ -5,13 +5,16 @@
     <div class="filter-container">
     <div class="filter-container">
       <el-input v-model="listQuery.title" clearable class="filter-item" style="width: 200px;" placeholder="请输入专题标题" />
       <el-input v-model="listQuery.title" clearable class="filter-item" style="width: 200px;" placeholder="请输入专题标题" />
       <el-input v-model="listQuery.subtitle" clearable class="filter-item" style="width: 200px;" placeholder="请输入专题子标题" />
       <el-input v-model="listQuery.subtitle" clearable class="filter-item" style="width: 200px;" placeholder="请输入专题子标题" />
+      <el-select v-model="listQuery.sort" class="filter-item" placeholder="请选择排序字段">
+        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+      </el-select>
       <el-button v-permission="['GET /admin/topic/list']" class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">查找</el-button>
       <el-button v-permission="['GET /admin/topic/list']" class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">查找</el-button>
-      <el-button v-permission="['POST /admin/topic/create']" class="filter-item" type="primary" icon="el-icon-edit" @click="handleCreate">添加</el-button>
       <el-button :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload">导出</el-button>
       <el-button :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload">导出</el-button>
     </div>
     </div>
 
 
     <div class="operator-container">
     <div class="operator-container">
-      <el-button v-permission="['GET /admin/topic/list']" class="filter-item" type="danger" icon="el-icon-delete" @click="handleBatchDelete">批量删除</el-button>
+      <el-button v-permission="['POST /admin/topic/create']" class="filter-item" type="primary" icon="el-icon-edit" @click="handleCreate">添加</el-button>
+      <el-button v-permission="['GET /admin/topic/batch-delete']" class="filter-item" type="danger" icon="el-icon-delete" @click="handleBatchDelete">批量删除</el-button>
     </div>
     </div>
 
 
     <!-- 查询结果 -->
     <!-- 查询结果 -->
@@ -109,6 +112,16 @@ export default {
         sort: 'add_time',
         sort: 'add_time',
         order: 'desc'
         order: 'desc'
       },
       },
+      options: [{
+        value: 'id',
+        label: '按序号排序'
+      }, {
+        value: 'add_time',
+        label: '按时间排序'
+      }, {
+        value: 'price',
+        label: '按价格排序'
+      }],
       multipleSelection: [],
       multipleSelection: [],
       contentDetail: '',
       contentDetail: '',
       contentDialogVisible: false,
       contentDialogVisible: false,