diff --git a/backend/src/main/java/com/supwisdom/dlpay/portal/dao/impl/ArticleRepositoryImpl.java b/backend/src/main/java/com/supwisdom/dlpay/portal/dao/impl/ArticleRepositoryImpl.java
index 8d46a80..5e4a960 100644
--- a/backend/src/main/java/com/supwisdom/dlpay/portal/dao/impl/ArticleRepositoryImpl.java
+++ b/backend/src/main/java/com/supwisdom/dlpay/portal/dao/impl/ArticleRepositoryImpl.java
@@ -79,7 +79,7 @@
   @Override
   @SuppressWarnings("unchecked")
   public Pagination getArticleListByColumnid(@NotNull String columnid,int pageno, int pagesize) {
-    String sql = "select * from tb_article where isdelete='0' and isdisplay='1' and status='released' and columnid =:columnid order by releasetime desc";
+    String sql = "select * from tb_article where isdelete='0' and isdisplay='1' and status='released' and columnid =:columnid order by ordernum,releasetime desc";
     Finder f = Finder.create(sql);
     f.setParameter("columnid", columnid);
     return findNative(f, Transformers.aliasToBean(TBArticle.class), pageno, pagesize);
diff --git a/backend/src/main/java/com/supwisdom/dlpay/portal/domain/TBArticle.java b/backend/src/main/java/com/supwisdom/dlpay/portal/domain/TBArticle.java
index 93ee786..a68fa88 100644
--- a/backend/src/main/java/com/supwisdom/dlpay/portal/domain/TBArticle.java
+++ b/backend/src/main/java/com/supwisdom/dlpay/portal/domain/TBArticle.java
@@ -47,6 +47,9 @@
   @Column(name = "hits")
   private Integer hits;
 
+  @Column(name="ordernum",length=32)
+  private Integer ordernum;
+
   @Column(name = "islink", length = 1)
   private String islink;
 
@@ -146,6 +149,14 @@
     this.hits = hits;
   }
 
+  public Integer getOrdernum() {
+    return ordernum;
+  }
+
+  public void setOrdernum(Integer ordernum) {
+    this.ordernum = ordernum;
+  }
+
   public String getIslink() {
     return islink;
   }
diff --git a/frontend/src/views/article/components/ArticleDetail.vue b/frontend/src/views/article/components/ArticleDetail.vue
index dcb2358..7a6139d 100644
--- a/frontend/src/views/article/components/ArticleDetail.vue
+++ b/frontend/src/views/article/components/ArticleDetail.vue
@@ -33,6 +33,9 @@
                 标题
               </MDinput>
             </el-form-item>
+            <el-form-item label="排序" prop="ordernum">
+              <el-input-number v-model="postForm.ordernum" :min="1" style="width:20%" />
+            </el-form-item>
 
             <div class="postInfo-container">
               <el-row>
@@ -155,6 +158,7 @@
     fetchData(id) {
       getArticle(id).then(response => {
         this.postForm = response.article
+        console.log(response)
 
         // set tagsview title
         this.setTagsViewTitle()
diff --git a/frontend/src/views/article/list.vue b/frontend/src/views/article/list.vue
index 87c5858..670e682 100644
--- a/frontend/src/views/article/list.vue
+++ b/frontend/src/views/article/list.vue
@@ -100,6 +100,11 @@
           <span>{{ dateFormat(row.releasetime) }}</span>
         </template>
       </el-table-column>
+      <el-table-column label="排序" width="80" align="center">
+        <template slot-scope="{row}">
+          <span>{{ row.ordernum }}</span>
+        </template>
+      </el-table-column>
       <el-table-column width="100px" label="是否展示" align="center">
         <template slot-scope="{row}">
           <el-switch
@@ -287,6 +292,7 @@
       }
       return moment(date).format('YYYY-MM-DD HH:mm:ss')
     },
+
     switchDisplay(row) {
       switchDisplay(row.articleno, { value: row.isdisplay === '1' ? '0' : '1' }).then(response => {
         this.$message({
