Browse Source

update:金句列表v2

zhiqiang.lv 2 tháng trước cách đây
mục cha
commit
d8b6525cec

+ 74 - 9
src/main/java/top/lvzhiqiang/controller/GoldenQuotesController.java

@@ -1,16 +1,16 @@
 package top.lvzhiqiang.controller;
 
 import com.alibaba.fastjson.JSONObject;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import top.lvzhiqiang.dto.R;
 import top.lvzhiqiang.entity.GoldenQuotes;
 import top.lvzhiqiang.enumeration.ResultCodeEnum;
 import top.lvzhiqiang.exception.BusinessException;
 import top.lvzhiqiang.exception.ParameterException;
 import top.lvzhiqiang.mapper.CoinMapper;
+import top.lvzhiqiang.mapper.GoldenQuotesMapper;
 import top.lvzhiqiang.util.DateUtils;
+import top.lvzhiqiang.util.MarkdownToHtmlUtils;
 import top.lvzhiqiang.util.StringUtils;
 
 import javax.annotation.Resource;
@@ -27,6 +27,8 @@ import java.time.LocalDate;
 public class GoldenQuotesController {
 
     @Resource
+    private GoldenQuotesMapper goldenQuotesMapper;
+    @Resource
     private CoinMapper coinMapper;
 
     /**
@@ -35,9 +37,9 @@ public class GoldenQuotesController {
      * @author lvzhiqiang
      * 2025/9/22 15:36
      */
-    @RequestMapping("/insertOrUpdateGoldenQuotes")
+    @RequestMapping("/insertOrUpdate")
     @ResponseBody
-    public R insertOrUpdateGoldenQuotes(String id, String author, String sourcePlatform, String originalUrl, String publishTime, String isPinned, String pinPriority, String tags, String content, String crudType, String userName) {
+    public R insertOrUpdate(String id, String author, String sourcePlatform, String originalUrl, String publishTime, String isPinned, String pinPriority, String tags, String content, String remark, String crudType, String userName) {
         if (StringUtils.isEmpty(crudType)) {
             throw new ParameterException("crudType为空!");
         }
@@ -55,7 +57,7 @@ public class GoldenQuotesController {
 
         if ("1".equals(crudType)) {
             // 新增
-            if (StringUtils.isEmpty(author) || StringUtils.isEmpty(sourcePlatform) || StringUtils.isEmpty(content)) {
+            if (StringUtils.isEmpty(author) || StringUtils.isEmpty(sourcePlatform)) {
                 throw new ParameterException("参数为空!");
             }
 
@@ -64,20 +66,21 @@ public class GoldenQuotesController {
             goldenQuotes.setSourcePlatform(sourcePlatform);
             goldenQuotes.setPublishTime(StringUtils.isEmpty(publishTime) ? LocalDate.now() : LocalDate.parse(publishTime, DateUtils.dateFormatter));
             goldenQuotes.setContent(content);
+            goldenQuotes.setRemark(remark);
 
             goldenQuotes.setOriginalUrl(originalUrl);
             goldenQuotes.setIsPinned(StringUtils.isEmpty(isPinned) ? 2 : Integer.parseInt(isPinned));
             goldenQuotes.setPinPriority(StringUtils.isEmpty(pinPriority) ? 0 : Integer.parseInt(pinPriority));
             goldenQuotes.setTags(tags);
 
-            coinMapper.insertGoldenQuotes(goldenQuotes);
+            goldenQuotesMapper.insertGoldenQuotes(goldenQuotes);
         } else if ("2".equals(crudType)) {
             // 修改
             if (StringUtils.isEmpty(id)) {
                 throw new ParameterException("id为空!");
             }
 
-            GoldenQuotes goldenQuotes = coinMapper.findGoldenQuotesById(id);
+            GoldenQuotes goldenQuotes = goldenQuotesMapper.findGoldenQuotesById(Long.valueOf(id));
             if (goldenQuotes == null) {
                 throw new BusinessException(ResultCodeEnum.UNKNOWN_ERROR.getCode(), "id 不存在!");
             }
@@ -106,10 +109,72 @@ public class GoldenQuotesController {
             if (StringUtils.isNotEmpty(content)) {
                 goldenQuotes.setContent(content);
             }
+            if (StringUtils.isNotEmpty(remark)) {
+                goldenQuotes.setRemark(remark);
+            }
 
-            coinMapper.updateGoldenQuotes(goldenQuotes);
+            goldenQuotesMapper.updateGoldenQuotes(goldenQuotes);
         }
 
         return R.ok().data("success");
     }
+
+    @RequestMapping("/delete/{goldenQuotesId}")
+    @ResponseBody
+    public R delete(@PathVariable Long goldenQuotesId) {
+        if (goldenQuotesId == null) {
+            throw new ParameterException("goldenQuotesId为空!");
+        }
+
+        int count = goldenQuotesMapper.deleteGoldenQuotes(goldenQuotesId);
+        if (count > 0) {
+            return R.ok();
+        } else {
+            return R.error().message("删除0条");
+        }
+    }
+
+    @PostMapping("/updateOther")
+    public Object updateOther(String symbol, String content, String score) {
+        if (StringUtils.isEmpty(symbol)) {
+            throw new ParameterException("symbol不能为空!");
+        }
+        if (StringUtils.isEmpty(content) && StringUtils.isEmpty(score)) {
+            throw new ParameterException("content和score不能同时为空!");
+        }
+
+        GoldenQuotes goldenQuotes = new GoldenQuotes();
+        goldenQuotes.setId(Long.valueOf(symbol));
+        goldenQuotes.setContent(content);
+        //goldenQuotes.setScore(score);
+        int num = goldenQuotesMapper.updateOther(goldenQuotes);
+
+        return R.ok().data(num);
+    }
+
+    @GetMapping("/detailContent/{symbol}/{operationType}")
+    public Object detailContent(@PathVariable String symbol, @PathVariable String operationType) {
+        if (StringUtils.isEmpty(symbol)) {
+            throw new ParameterException("symbol不能为空!");
+        }
+        if (StringUtils.isEmpty(operationType)) {
+            throw new ParameterException("operationType不能为空!");
+        }
+
+        GoldenQuotes goldenQuotes = goldenQuotesMapper.findGoldenQuotesById(Long.valueOf(symbol));
+        if (goldenQuotes == null) {
+            throw new BusinessException(1, "symbol不存在!");
+        }
+
+        String content;
+        if ("detail".equals(operationType)) {
+            content = MarkdownToHtmlUtils.markdownToHtmlExtensions(goldenQuotes.getContent());
+        } else if ("update".equals(operationType)) {
+            content = goldenQuotes.getContent();
+        } else {
+            content = "暂不支持该操作!";
+        }
+
+        return R.ok().data(content);
+    }
 }

+ 3 - 0
src/main/java/top/lvzhiqiang/entity/GoldenQuotes.java

@@ -80,4 +80,7 @@ public class GoldenQuotes implements Serializable {
      * 删除标志(1:正常,2:已删除)
      */
     private Integer deleteFlag;
+
+    private String score;
+    private String remark;
 }

+ 0 - 35
src/main/java/top/lvzhiqiang/mapper/CoinMapper.java

@@ -411,39 +411,4 @@ public interface CoinMapper {
 
     @Select("select * from coin_currency_holding where symbol = #{symbol} and exchange_category_id = #{exchangeCategoryId}")
     CoinCurrencyHolding findCurrentHoldingBySymbolAndExchangeCategoryId(String symbol, Integer exchangeCategoryId);
-
-    @Select({"<script>" +
-            "select * from golden_quotes WHERE delete_flag = 1" +
-            "<if test=\"keyword != null and keyword != ''\">" +
-            "   and content like concat('%',#{keyword},'%')" +
-            "</if>" +
-            "<if test=\"authorField != null and authorField != ''\">" +
-            "   and author = #{authorField}" +
-            "</if>" +
-            "<if test=\"sourcePlatformField != null and sourcePlatformField != ''\">" +
-            "   and source_platform = #{sourcePlatformField}" +
-            "</if>" +
-            "<if test=\"pinField != null and pinField != ''\">" +
-            "   and is_pinned = #{pinField}" +
-            "</if>" +
-            "<if test=\"tagsField != null and tagsField != ''\">" +
-            "   and tags like concat('%',#{tagsField},'%')" +
-            "</if>" +
-            " order by is_pinned asc,pin_priority desc," +
-            "<foreach collection='sortField' item='sf' index=\"index\" separator=\",\">" +
-            "   ${sf} ${sort}" +
-            " </foreach>" +
-            "</script>"})
-    List<GoldenQuotes> findGoldenQuotesList(Map<String, Object> params);
-
-    @Insert("INSERT INTO golden_quotes(content, author, source_platform, original_url, publish_time, is_pinned, pin_priority, tags) " +
-            "VALUES (#{content}, #{author}, #{sourcePlatform}, #{originalUrl}, #{publishTime}, #{isPinned}, #{pinPriority}, #{tags})")
-    void insertGoldenQuotes(GoldenQuotes goldenQuotes);
-
-    @Update("update golden_quotes set content=#{content},author=#{author},source_platform=#{sourcePlatform},original_url=#{originalUrl},publish_time=#{publishTime}," +
-            "is_pinned=#{isPinned},pin_priority=#{pinPriority},tags=#{tags} where id = #{id}")
-    int updateGoldenQuotes(GoldenQuotes goldenQuotes);
-
-    @Select("select * from golden_quotes where id = #{id}")
-    GoldenQuotes findGoldenQuotesById(String id);
 }

+ 71 - 0
src/main/java/top/lvzhiqiang/mapper/GoldenQuotesMapper.java

@@ -0,0 +1,71 @@
+package top.lvzhiqiang.mapper;
+
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+import top.lvzhiqiang.entity.GoldenQuotes;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 金句Mapper
+ *
+ * @author lvzhiqiang
+ * 2025/9/23 14:52
+ */
+public interface GoldenQuotesMapper {
+
+    @Select({"<script>" +
+            "select * from golden_quotes WHERE delete_flag = 1" +
+            "<if test=\"keyword != null and keyword != ''\">" +
+            "   and content like concat('%',#{keyword},'%')" +
+            "</if>" +
+            "<if test=\"authorField != null and authorField != ''\">" +
+            "   and author = #{authorField}" +
+            "</if>" +
+            "<if test=\"sourcePlatformField != null and sourcePlatformField != ''\">" +
+            "   and source_platform = #{sourcePlatformField}" +
+            "</if>" +
+            "<if test=\"pinField != null and pinField != ''\">" +
+            "   and is_pinned = #{pinField}" +
+            "</if>" +
+            "<if test=\"tagsField != null and tagsField != ''\">" +
+            "   and tags like concat('%',#{tagsField},'%')" +
+            "</if>" +
+            " order by is_pinned asc,pin_priority desc," +
+            "<foreach collection='sortField' item='sf' index=\"index\" separator=\",\">" +
+            "   ${sf} ${sort}" +
+            " </foreach>" +
+            "</script>"})
+    List<GoldenQuotes> findGoldenQuotesList(Map<String, Object> params);
+
+    @Insert("INSERT INTO golden_quotes(content, author, source_platform, original_url, publish_time, is_pinned, pin_priority, tags, remark) " +
+            "VALUES (#{content}, #{author}, #{sourcePlatform}, #{originalUrl}, #{publishTime}, #{isPinned}, #{pinPriority}, #{tags}, #{remark})")
+    void insertGoldenQuotes(GoldenQuotes goldenQuotes);
+
+    @Update("update golden_quotes set content=#{content},author=#{author},source_platform=#{sourcePlatform},original_url=#{originalUrl},publish_time=#{publishTime}," +
+            "is_pinned=#{isPinned},pin_priority=#{pinPriority},tags=#{tags},remark=#{remark} where id = #{id}")
+    int updateGoldenQuotes(GoldenQuotes goldenQuotes);
+
+    @Select("select * from golden_quotes where id = #{id}")
+    GoldenQuotes findGoldenQuotesById(Long id);
+
+    @Delete("delete from golden_quotes where id = #{goldenQuotesId}")
+    int deleteGoldenQuotes(Long goldenQuotesId);
+
+    @Update({"<script>" +
+            "update golden_quotes " +
+            "<set>" +
+            "<if test=\"score != null and score != ''\">" +
+            "  score = #{score}," +
+            "</if>" +
+            "<if test=\"content != null and content != ''\">" +
+            "   content = #{content}," +
+            "</if>" +
+            "</set>" +
+            "where id = #{id}" +
+            "</script>"})
+    int updateOther(GoldenQuotes goldenQuotes);
+}

+ 18 - 1
src/main/java/top/lvzhiqiang/service/impl/CoinServiceImpl.java

@@ -117,6 +117,8 @@ public class CoinServiceImpl implements CoinService {
     private MusicInfoMapper musicInfoMapper;
     @Resource
     private CoinYoutubeMapper coinYoutubeMapper;
+    @Resource
+    private GoldenQuotesMapper goldenQuotesMapper;
 
     @Resource
     private RedissonClient redissonClient;
@@ -1913,7 +1915,7 @@ public class CoinServiceImpl implements CoinService {
                 params.put("sortField", Arrays.asList(params.getString("sortField").split(",")));
             }
 
-            List<GoldenQuotes> goldenQuotesList = coinMapper.findGoldenQuotesList(params.toJavaObject(Map.class));
+            List<GoldenQuotes> goldenQuotesList = goldenQuotesMapper.findGoldenQuotesList(params.toJavaObject(Map.class));
 
             PageInfo<GoldenQuotes> goldenQuotesPageInfo = new PageInfo<>(goldenQuotesList);
 
@@ -1929,6 +1931,21 @@ public class CoinServiceImpl implements CoinService {
             // 是否收藏
             goldenQuotes.setIsPinnedStr(1 == goldenQuotes.getIsPinned() ? "是" : "否");
             goldenQuotes.setTags(StringUtils.isNotEmpty(goldenQuotes.getTags()) ? goldenQuotes.getTags() : "");
+
+            String content = goldenQuotes.getContent().length() > 50 ? (goldenQuotes.getContent().substring(0, 50) + "...") : goldenQuotes.getContent();
+            goldenQuotes.setContent("<span class=\"primary\" title=\"" + goldenQuotes.getContent() + " \" >" + content + " </span>");
+
+            String remark;
+            if (StringUtils.isNotEmpty(goldenQuotes.getRemark())) {
+                if (goldenQuotes.getRemark().length() > 15) {
+                    remark = goldenQuotes.getRemark().substring(0, 15) + "...";
+                } else {
+                    remark = goldenQuotes.getRemark();
+                }
+            } else {
+                remark = "";
+            }
+            goldenQuotes.setRemark("<span class=\"primary\" title=\"" + goldenQuotes.getRemark() + " \" >" + remark + " </span>");
         }
     }
 

+ 15 - 5
src/main/resources/static/coin.html

@@ -33,7 +33,7 @@
         font-weight: bold;
     }
 
-    #watchlistpreview, #musicpreview, #youtubeLivepreview {
+    #watchlistpreview, #musicpreview, #youtubeLivepreview, #goldenQuotespreview {
         display: none;
         position: absolute;
         z-index: 999;
@@ -49,17 +49,17 @@
         font-size: 14px;
     }
 
-    .watchlistpreview-top, .musicpreview-top, .youtubeLivepreview-top {
+    .watchlistpreview-top, .musicpreview-top, .youtubeLivepreview-top, .goldenQuotespreview-top {
         height: 40px;
         line-height: 40px;
     }
 
-    .watchlistpreview-content, .musicpreview-content, .youtubeLivepreview-content {
+    .watchlistpreview-content, .musicpreview-content, .youtubeLivepreview-content, .goldenQuotespreview-content {
         overflow: auto;
         height: calc(100% - 40px);
     }
 
-    .watchlistpreview-top-close, .musicpreview-top-close, .youtubeLivepreview-top-close {
+    .watchlistpreview-top-close, .musicpreview-top-close, .youtubeLivepreview-top-close, .goldenQuotespreview-top-close {
         color: #ddd;
         height: 40px;
         font-size: 28px;
@@ -72,7 +72,7 @@
         cursor: pointer;
     }*/
 
-    .watchlistpreview-loading, .musicpreview-loading, .youtubeLivepreview-loading {
+    .watchlistpreview-loading, .musicpreview-loading, .youtubeLivepreview-loading, .goldenQuotespreview-loading {
         text-align: center;
         display: none;
         position: absolute;
@@ -639,6 +639,16 @@
     <div class="musicpreview-content"></div>
 </div>
 
+<div id="goldenQuotespreview">
+    <div class="goldenQuotespreview-loading"><img src='cover/loading.gif'></div>
+    <div class="goldenQuotespreview-top">
+        <div style="float: left;" class="goldenQuotespreview-top-title">内容</div>
+        <div style="float: right;" class="goldenQuotespreview-top-submit"><img src="cover/submit.svg"></div>
+        <div style="float: right;" class="goldenQuotespreview-top-close"><img src="cover/close.svg"></div>
+    </div>
+    <div class="goldenQuotespreview-content"></div>
+</div>
+
 <div id="youtubeLivepreview">
     <div class="youtubeLivepreview-loading"><img src='cover/loading.gif'></div>
     <div class="youtubeLivepreview-top">

+ 125 - 4
src/main/resources/static/js/my-coin.js

@@ -307,7 +307,7 @@ function handleSelectChange(objj) {
             $.each(returnEn, function (index, obj) {
                 theadStr += '<th returnEn="' + obj + '">' + returnCn[index] + '</th>';
             });
-            if (nameEn === 'watchlist' || nameEn === 'image' || nameEn === 'music' || nameEn === 'youtubeLive') {
+            if (nameEn === 'watchlist' || nameEn === 'image' || nameEn === 'music' || nameEn === 'youtubeLive' || nameEn === 'goldenQuotes') {
                 theadStr += '<th>操作</th>';
             }
 
@@ -643,6 +643,11 @@ function mainSearch(url, nameEn, slideDiv, typetype, needCustomFlag) {
                         str += '<td style="padding: 0px 10px 0px 10px;">';
                         str += '<button class="apis-quiet-div-youtubeLive-update" operationType="update" symbolName="' + dataDetail.id + '" symbolContent="' + dataDetail.remark + '">编辑</button>';
                         str += '</td>';
+                    } else if (nameEn === 'goldenQuotes') {
+                        str += '<td style="padding: 0px 10px 0px 10px;">';
+                        str += '<button class="apis-quiet-div-goldenQuotes-update" operationType="update" symbolName="' + dataDetail.id + '">编辑</button>';
+                        str += '<button class="apis-quiet-div-goldenQuotes-delete" operationType="delete" symbolName="' + dataDetail.id + '">删除</button>';
+                        str += '</td>';
                     }
 
                     str += '</tr>';
@@ -660,8 +665,11 @@ function mainSearch(url, nameEn, slideDiv, typetype, needCustomFlag) {
                     // $(".apis-quiet-div-music-pause").unbind("click");
                     $(".apis-quiet-div-music-detail").unbind("click");
                     $(".apis-quiet-div-music-update").unbind("click");
-                }else if (nameEn === 'youtubeLive') {
+                } else if (nameEn === 'youtubeLive') {
                     $(".apis-quiet-div-music-update").unbind("click");
+                } else if (nameEn === 'goldenQuotes') {
+                    $(".apis-quiet-div-goldenQuotes-update").unbind("click");
+                    $(".apis-quiet-div-goldenQuotes-delete").unbind("click");
                 }
 
                 $('#' + slideDiv).find(".contentTD").html(str);
@@ -879,6 +887,118 @@ function initContentEvent(nameEn) {
                 }
             });
         });
+    } else if (nameEn === 'goldenQuotes') {
+        $(".apis-quiet-div-goldenQuotes-delete").click(function () {
+            var symbol = $(this).attr("symbolName");
+            $.ajax({
+                url: "goldenQuotes/delete/" + symbol, //请求的url地址
+                type: "get", //请求方式
+                async: true, //请求是否异步,默认为异步,这也是ajax重要特性
+                success: function (data) {
+                    //请求成功时处理
+                    if (data != null && $.trim(data) != "" && data.success) {
+                        $(".apis-quiet-div-button2").click();
+                    } else {
+                        alert(data.message);
+                    }
+                },
+                beforeSend: function () {
+                    $(".quiet-loading").css("display", "block");
+                },
+                complete: function () {
+                    $(".quiet-loading").css("display", "none");
+                },
+                error: function (data) {
+                    //请求出错处理
+                    alert('error:' + data);
+                }
+            });
+        });
+
+        $(".apis-quiet-div-goldenQuotes-update").click(function () {
+            if ($("#goldenQuotespreview").css("display") === 'none') {
+                $("#goldenQuotespreview").css("display", "block");
+            } else if ($("#goldenQuotespreview").css("display") === 'block') {
+                $("#goldenQuotespreview").css("display", "none");
+            }
+
+            $(".goldenQuotespreview-top-close").click(function () {
+                if ($("#goldenQuotespreview").css("display") === 'none') {
+                    $("#goldenQuotespreview").css("display", "block");
+                } else if ($("#goldenQuotespreview").css("display") === 'block') {
+                    $("#goldenQuotespreview").css("display", "none");
+                }
+                $(this).unbind("click");
+                $(".goldenQuotespreview-top-submit").unbind("click");
+            });
+            $(".goldenQuotespreview-top-submit").click(function () {
+                $.ajax({
+                    url: "goldenQuotes/updateOther", //请求的url地址
+                    dataType: "json", //返回格式为json
+                    data: {"symbol": $(".goldenQuotespreview-content").find(".goldenQuotespreview-symbol").val(), "content": $(".goldenQuotespreview-content").find("textarea").val()}, //参数值
+                    type: "post", //请求方式
+                    async: false, //请求是否异步,默认为异步,这也是ajax重要特性
+                    success: function (data) {
+                        //请求成功时处理
+                        if (data != null && $.trim(data) != "" && data.success) {
+                            $(".goldenQuotespreview-top-close").click();
+                            $(".apis-quiet-div-button2").click();
+                        } else {
+                            console.log("goldenQuotespreview-top-submit success error," + data);
+                        }
+                    },
+                    beforeSend: function () {
+                    },
+                    complete: function () {
+                    },
+                    error: function (data) {
+                        //请求出错处理
+                        console.log("goldenQuotespreview-top-submit error," + data);
+                    }
+                });
+            });
+
+            var operationType = $(this).attr("operationType");
+            if (operationType === 'detail') {
+                $(".goldenQuotespreview-top-submit").css("display", "none");
+            } else if (operationType === 'update') {
+                $(".goldenQuotespreview-top-submit").css("display", "block");
+            }
+
+            var symbol = $(this).attr("symbolName");
+            $.ajax({
+                url: "goldenQuotes/detailContent/" + symbol + "/" + operationType, //请求的url地址
+                type: "get", //请求方式
+                async: true, //请求是否异步,默认为异步,这也是ajax重要特性
+                success: function (data) {
+                    //请求成功时处理
+                    if (data != null && $.trim(data) != "" && data.success) {
+                        data = data.data;
+
+                        if (operationType === 'detail') {
+                            $(".goldenQuotespreview-content").html(data);
+                        } else if (operationType === 'update') {
+                            var update4Text = '<textarea rows="4" cols="50" style="background: antiquewhite;width: 100%;height: 100%;">' + data + '</textarea>';
+                            update4Text += '<input type="hidden" class="goldenQuotespreview-symbol" value="' + symbol + '"/>';
+                            $(".goldenQuotespreview-content").html(update4Text);
+                        }
+                    } else {
+                        //alert(data.message);
+                    }
+                },
+                beforeSend: function () {
+                    $(".goldenQuotespreview-content").html("");
+                    $(".goldenQuotespreview-loading").css("display", "block");
+                },
+                complete: function () {
+                    $(".goldenQuotespreview-loading").css("display", "none");
+                },
+                error: function (data) {
+                    //请求出错处理
+                    alert('error:' + data);
+                }
+            });
+        });
     } else if (nameEn === 'music') {
         $("ul li").click(function () {
             $.ajax({
@@ -1301,7 +1421,7 @@ function insertOrUpdateGoldenQuotesSubmit(){
     var formData = new FormData($("#popup-form")[0]);
     formData.append("userName", getCookie('username'));
     $.ajax({
-        url: "goldenQuotes/insertOrUpdateGoldenQuotes", //请求的url地址
+        url: "goldenQuotes/insertOrUpdate", //请求的url地址
         dataType: "json", //返回格式为json
         data: formData, //参数值
         type: "post", //请求方式
@@ -1514,7 +1634,8 @@ function quietPop(url, nameEn, slideDiv, typetype) {
         formContent += '<div class="form-item"><label for="isPinned">是否置顶:</label><input type="text" name="isPinned" placeholder="可为空,1是2否"></div>';
         formContent += '<div class="form-item"><label for="pinPriority">置顶优先级:</label><input type="text" name="pinPriority" placeholder="可为空,数值越大越靠前"></div>';
         formContent += '<div class="form-item"><label for="tags">标签:</label><input type="text" name="tags" placeholder="可为空,多个用逗号分隔"></div>';
-        formContent += '<div class="form-item"><label for="tags">内容:</label><textarea rows="4" cols="50" style="background: antiquewhite;width: 100%;height: 100%;" name="content"></textarea></div>';
+        formContent += '<div class="form-item"><label for="content">内容:</label><textarea rows="4" cols="50" style="background: antiquewhite;width: 100%;height: 100%;" name="content"></textarea></div>';
+        formContent += '<div class="form-item"><label for="remark">备注:</label><input type="text" name="remark" placeholder="可为空"></div>';
         formContent += '<div class="form-item"><label for="crudType">crudType:</label><select id="apis-quiet-div-goldenQuotes-crudType" name="crudType"><option value="1">insert</option><option value="2">update</option></select></div>';
 
         $("#form-container-2").html(formContent);