diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqBookmarkController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqBookmarkController.java
index 17398d654..1c317437a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqBookmarkController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqBookmarkController.java
@@ -6,6 +6,7 @@ import java.util.Date;
 import java.util.List;
 
 import com.ruoyi.bookmark.domain.SqBookmark;
+import com.ruoyi.bookmark.pojo.SqBookmarkReq;
 import com.ruoyi.bookmark.service.ISqBookmarkService;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.bookmarkhtml.ImportHtml;
@@ -13,14 +14,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -126,7 +120,6 @@ public class SqBookmarkController extends BaseController
     /**
      * 查询书签管理列表 聚合>> 星标 稍后看 最新书签
      */
-//    @PreAuthorize("@ss.hasPermi('bookmark:bookmark:list')")
     @GetMapping("/listByUserAndPolymerization")
     public TableDataInfo listByUserAndPolymerization(SqBookmark sqBookmark)
     {
@@ -207,4 +200,15 @@ public class SqBookmarkController extends BaseController
     {
         return toAjax(sqBookmarkService.deleteSqBookmarkByIds(bookmarkIds));
     }
+
+
+    /**
+     * 用户-根据标签查询书签分页
+     */
+    @GetMapping(value = "/listByTag")
+    public TableDataInfo listByTag(SqBookmarkReq sqBookmarkReq){
+        sqBookmarkReq.setUserid(getAuthUser().getUserId());
+        startPage();
+        return getDataTable(sqBookmarkService.getlistByTag(sqBookmarkReq));
+    }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqTagController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqTagController.java
index 0a9ee12c3..a4d389416 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqTagController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqTagController.java
@@ -2,7 +2,9 @@ package com.ruoyi.web.controller.yunbookmark;
 
 import java.util.List;
 
+import com.ruoyi.bookmark.pojo.SqTagReq;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import org.springframework.beans.BeanUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -53,14 +55,40 @@ public class SqTagController extends BaseController
      * 模糊查书签TAG
      */
     @GetMapping("/listByUserLike")
-    public TableDataInfo listByUserLike()
+    public TableDataInfo listByUserLike(SqTagReq req)
     {
+        SqTag sqTag =  new SqTag();
+        BeanUtils.copyProperties(req,sqTag);
+        sqTag.setUserId(getAuthUser().getUserId());
         startPage();
-        List<SqTag> list = sqTagService.selectSqTagList(new SqTag(getAuthUser().getUserId()));
+        List<SqTag> list = sqTagService.selectSqTagList(sqTag);
         return getDataTable(list);
     }
 
 
+    /**
+     * 新增书签_标签
+     */
+    @PostMapping("/addByUser")
+    public AjaxResult addByUser(SqTagReq req)
+    {
+        SqTag sqTag =  new SqTag();
+        BeanUtils.copyProperties(req,sqTag);
+        sqTag.setUserId(getAuthUser().getUserId());
+        return toAjax(sqTagService.insertSqTag(sqTag));
+    }
+
+    /**
+     * 修改书签_标签
+     */
+    @PutMapping("/editByUser")
+    public AjaxResult editByUser(SqTagReq req)
+    {
+        SqTag sqTag =  new SqTag();
+        BeanUtils.copyProperties(req,sqTag);
+        sqTag.setUserId(getAuthUser().getUserId());
+        return toAjax(sqTagService.updateSqTag(sqTag));
+    }
 
 
 
diff --git a/ruoyi-ui/src/views/bookmark/bookmark/index.vue b/ruoyi-ui/src/views/bookmark/bookmark/index.vue
index 5f16e59a5..5f77020e3 100644
--- a/ruoyi-ui/src/views/bookmark/bookmark/index.vue
+++ b/ruoyi-ui/src/views/bookmark/bookmark/index.vue
@@ -71,29 +71,29 @@
                     </el-dropdown-item>
                     <el-dropdown-item class="filter-item" command="1"><i class="el-icon-bottom"></i>按时间排序(反)
                     </el-dropdown-item>
-                    <el-dropdown-item class="filter-item" command="2"><i class="el-icon-bottom"></i>按标题A-Z排序(正)
-                    </el-dropdown-item>
-                    <el-dropdown-item class="filter-item" command="3"><i class="el-icon-bottom"></i>按标题A-Z排序(反)
-                    </el-dropdown-item>
+<!--                    <el-dropdown-item class="filter-item" command="2"><i class="el-icon-bottom"></i>按标题A-Z排序(正)-->
+<!--                    </el-dropdown-item>-->
+<!--                    <el-dropdown-item class="filter-item" command="3"><i class="el-icon-bottom"></i>按标题A-Z排序(反)-->
+<!--                    </el-dropdown-item>-->
                   </el-dropdown-menu>
                 </el-dropdown>
 
               </div>
-              <div class="filter-content">
-                <el-dropdown trigger="hover" size="small">
-                  <div class="el-dropdown-link dropdownList">
-                    <el-button icon="el-icon-tickets" style="border:0px;font-size: 18px;" size="mini"></el-button>
-                  </div>
-                  <el-dropdown-menu slot="dropdown" class="filter-sort-dropdown">
-                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按时间排序(正)</el-dropdown-item>
-                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按时间排序(反)</el-dropdown-item>
-                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按字母A-Z排序</el-dropdown-item>
-                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按字母A-Z排序</el-dropdown-item>
-                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按网站A-Z排序</el-dropdown-item>
-                  </el-dropdown-menu>
-                </el-dropdown>
+<!--              <div class="filter-content">-->
+<!--                <el-dropdown trigger="hover" size="small">-->
+<!--                  <div class="el-dropdown-link dropdownList">-->
+<!--                    <el-button icon="el-icon-tickets" style="border:0px;font-size: 18px;" size="mini"></el-button>-->
+<!--                  </div>-->
+<!--                  <el-dropdown-menu slot="dropdown" class="filter-sort-dropdown">-->
+<!--                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按时间排序(正)</el-dropdown-item>-->
+<!--                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按时间排序(反)</el-dropdown-item>-->
+<!--                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按字母A-Z排序</el-dropdown-item>-->
+<!--                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按字母A-Z排序</el-dropdown-item>-->
+<!--                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按网站A-Z排序</el-dropdown-item>-->
+<!--                  </el-dropdown-menu>-->
+<!--                </el-dropdown>-->
 
-              </div>
+<!--              </div>-->
 
             </div>
           </div>
@@ -362,6 +362,7 @@
         Ueditor:undefined,//点击的编辑器文章id
         noteId:undefined, //点击的noteId
         user:'',//登陆的用户信息
+        sortState:true,//是否进行请求书签的拼接,切换排序规则时,不能进行拼接,重新渲染数据  false表示切换了 true没切换
 
 
 
@@ -744,7 +745,13 @@
         this.queryParams.bkOrderBy="";
         listByUserAndPolymerization(this.queryParams).then(response => {
             if (response.code == 200) {
-              this.bookmarkList = this.bookmarkList.concat(response.rows);
+              //如果进行了排序切换 就不能进行拼接
+              if (this.sortState){
+                  this.bookmarkList = this.bookmarkList.concat(response.rows);
+              }else{
+                  this.bookmarkList = response.rows;
+                  this.sortState = false;
+              }
               this.total = response.total;
               this.listloading = false
               this.loading = false;
@@ -787,7 +794,11 @@
 
       /**切换排序规则**/
       handleCommand(command) {
+        if (this.queryParams.sort != command){
+          this.sortState = false;//是否切换了新的排序规则方式 false表示切换了 true没切换
+        }
         this.queryParams.sort = command;
+
         this.getBypropertyList(this.property);
 
       },
diff --git a/ruoyi-ui/src/views/bookmark/index/index.vue b/ruoyi-ui/src/views/bookmark/index/index.vue
index b1409a0c6..455aafefe 100644
--- a/ruoyi-ui/src/views/bookmark/index/index.vue
+++ b/ruoyi-ui/src/views/bookmark/index/index.vue
@@ -32,14 +32,14 @@
               <span>稍后看</span>
               <span class="menuCount">5</span>
             </div>
-            <div class="aside-title"><i class="el-icon-view"></i>
-              <span>发现</span>
-              <span class="menuCount"></span>
-            </div>
-            <div class="aside-title"><i class="el-icon-message"></i>
-              <span>收件箱</span>
-              <span class="menuCount">5</span>
-            </div>
+<!--            <div class="aside-title"><i class="el-icon-view"></i>-->
+<!--              <span>发现</span>-->
+<!--              <span class="menuCount"></span>-->
+<!--            </div>-->
+<!--            <div class="aside-title"><i class="el-icon-message"></i>-->
+<!--              <span>收件箱</span>-->
+<!--              <span class="menuCount">5</span>-->
+<!--            </div>-->
 
 
             <div class="aside-titleB"  @mouseenter="eidtMenuText=!eidtMenuText" @mouseleave="eidtMenuText=!eidtMenuText">
diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/mapper/SqBookmarkMapper.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/mapper/SqBookmarkMapper.java
index 1a350b30a..a34369407 100644
--- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/mapper/SqBookmarkMapper.java
+++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/mapper/SqBookmarkMapper.java
@@ -1,6 +1,7 @@
 package com.ruoyi.bookmark.mapper;
 
 import com.ruoyi.bookmark.domain.SqBookmark;
+import com.ruoyi.bookmark.pojo.SqBookmarkReq;
 import com.ruoyi.common.mybatisMapper.MyMapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -120,4 +121,6 @@ public interface SqBookmarkMapper extends MyMapper<SqBookmark>
      *
      */
     List<SqBookmark> listByUserAndPolymerization(SqBookmark sqBookmark);
+
+    List<SqBookmark> getlistByTag(SqBookmarkReq sqBookmarkReq);
 }
diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/pojo/SqBookmarkReq.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/pojo/SqBookmarkReq.java
new file mode 100644
index 000000000..a417d81c9
--- /dev/null
+++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/pojo/SqBookmarkReq.java
@@ -0,0 +1,92 @@
+package com.ruoyi.bookmark.pojo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import lombok.ToString;
+
+import javax.persistence.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 书签管理对象 sq_bookmark   不存在的字段注解 @Transient
+ *
+ */
+@Data
+public class SqBookmarkReq
+{
+    private Long bookmarkId;
+
+    private Long userid;
+
+    /** 书签标题 */
+    private String title;
+
+    /** 书签地址 */
+    private String url;
+
+    /** 官网地址 */
+    private String urls;
+
+    /** 书签描述 */
+    private String description;
+
+    /** 图片 */
+    private String image;
+
+    /** 标签 */
+    private String label;
+
+    /** 分类ID */
+    private Long menuId;
+
+    /** 点赞数 */
+    private Long zcount;
+
+    /** 0 未删除 1表示删除 */
+    private Integer idelete;
+
+    /** 0公开显示 1隐藏显示 2好友显示 3稍后再看 */
+    private Integer start;
+
+    /** 0非星标 1星标 */
+    private Integer bookmarkStar;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**tag名称串**/
+    private String tagNameAll;
+
+    /**是否稍后读 0不是 1是**/
+    private Integer seeYouLater;
+
+    private Long parentId;
+
+    /** 书签的类型 星标 稍后看 最新书签 **/
+    private String type;
+
+    /** 排序的方式 **/
+    private String sort;
+
+    /** 搜索 **/
+    private String sousuo;
+
+    /** 标签ID **/
+    private Long tagId;
+
+
+
+    private List<Map<String,Object>> sqTags;
+    public SqBookmarkReq(){
+    }
+
+    public SqBookmarkReq(String url, Long userid){
+        this.url = url;
+        this.userid = userid;
+    }
+
+}
diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/pojo/SqTagReq.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/pojo/SqTagReq.java
new file mode 100644
index 000000000..2973320d4
--- /dev/null
+++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/pojo/SqTagReq.java
@@ -0,0 +1,45 @@
+package com.ruoyi.bookmark.pojo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 书签_标签对象 sq_tag
+ *
+ * @author ruoyi
+ * @date 2020-09-05
+ */
+@Data
+public class SqTagReq
+{
+    /** 书签标签id */
+    private Long id;
+
+    /** 标签名字 */
+    private String name;
+
+    /** 链接 */
+    private String url;
+
+    /** 状态  0显示默认*/
+    private Integer status;
+
+
+    /** 标签的字体颜色 */
+    private String isFontColor;
+
+    /** 标签的背景颜色 */
+    private String isBgColor;
+
+
+
+}
diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqBookmarkService.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqBookmarkService.java
index 881f35d9d..703f959e1 100644
--- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqBookmarkService.java
+++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqBookmarkService.java
@@ -2,6 +2,7 @@ package com.ruoyi.bookmark.service;
 
 import java.util.List;
 import com.ruoyi.bookmark.domain.SqBookmark;
+import com.ruoyi.bookmark.pojo.SqBookmarkReq;
 import com.ruoyi.common.utils.bookmarkhtml.HtmlName;
 
 /**
@@ -170,4 +171,12 @@ public interface ISqBookmarkService
      *
      */
     List<SqBookmark> listByUserAndPolymerization(SqBookmark sqBookmark);
+
+
+    /**
+     *  用户根据标签ID 查询对应的书签 分页
+     *  @param
+     *
+     */
+    List<SqBookmark> getlistByTag(SqBookmarkReq sqBookmarkReq);
 }
diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java
index bc160f3dc..15de7982b 100644
--- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java
+++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java
@@ -19,6 +19,7 @@ import com.ruoyi.bookmark.mapper.SqBookmarkTagMapper;
 import com.ruoyi.bookmark.mapper.SqMenuMapper;
 import com.ruoyi.bookmark.mapper.SqTagMapper;
 
+import com.ruoyi.bookmark.pojo.SqBookmarkReq;
 import com.ruoyi.bookmark.service.ISqTagService;
 
 import com.ruoyi.common.utils.StringUtils;
@@ -135,7 +136,7 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
         } catch (MalformedURLException e) {
             logger.info("用户ID:"+sqBookmark.getUserid()+",新增书签"+sqBookmark.getUrl()+"获取网址的 主机信息 报错 -"+new Date());
         }
-        if(null==sqBookmark.getDescription()||"".equals(sqBookmark.getDescription())){
+        if(StringUtils.isEmpty(sqBookmark.getDescription())){
             sqBookmark.setDescription(sqBookmark.getTitle());
         }
         //转换传入的父级ID
@@ -537,5 +538,11 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
         return sqBookmarkMapper.listByUserAndPolymerization(search);
     }
 
+    @Override
+    public List<SqBookmark> getlistByTag(SqBookmarkReq sqBookmarkReq) {
+
+        return sqBookmarkMapper.getlistByTag(sqBookmarkReq);
+    }
+
 
 }
diff --git a/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqBookmarkMapper.xml b/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqBookmarkMapper.xml
index c3ba4ed40..376fc3e91 100644
--- a/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqBookmarkMapper.xml
+++ b/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqBookmarkMapper.xml
@@ -210,4 +210,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </choose>
         </where>
     </select>
+
+
+    <select id="getlistByTag" parameterType="com.ruoyi.bookmark.pojo.SqBookmarkReq" resultMap="SqBookmarkResult">
+    SELECT sb.* FROM sq_bookmark_tag as sbt LEFT JOIN sq_bookmark as sb ON sbt.bookmark_id = sb.bookmark_id
+    WHERE sbt.tag_id = #{tagId} AND sb.userid = #{userid} AND sb.idelete = 0
+    ORDER BY
+        <choose>
+            <when test="sort == 0">
+                sb.create_time desc
+            </when>
+            <when test="sort == 1">
+                sb.create_time asc
+            </when>
+            <when test="sort == 2">
+                sb.CONVERT(sb.title USING GBK) asc
+            </when>
+            <when test="sort == 3">
+                sb.CONVERT(sb.title USING GBK) desc
+            </when>
+            <otherwise>
+                sb.create_time desc
+            </otherwise>
+        </choose>
+    </select>
 </mapper>
diff --git a/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqTagMapper.xml b/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqTagMapper.xml
index fd17a7fa1..8589df921 100644
--- a/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqTagMapper.xml
+++ b/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqTagMapper.xml
@@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectSqTagList" parameterType="SqTag" resultMap="SqTagResult">
         <include refid="selectSqTagVo"/>
         <where>
-            <if test="name != null  and name != ''"> and name =  #{name}</if>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
             <if test="icount != null "> and icount = #{icount}</if>
             <if test="userId != null "> and user_Id = #{userId}</if>
             <if test="isFontColor != null  and isFontColor != ''"> and is_font_color = #{isFontColor}</if>