Bläddra i källkod

知识库添加内容属性功能

徐滕 7 timmar sedan
förälder
incheckning
663cf64321

+ 9 - 0
src/main/java/com/jeeplus/modules/WorkKnowledgeBase/entity/WorkKnowledgeBaseShareInfo.java

@@ -19,6 +19,7 @@ public class WorkKnowledgeBaseShareInfo extends DataEntity<WorkKnowledgeBaseShar
     private String fileUrl;       // 文件地址
     private String name;       // 上传文件名称
     private Date createTime;      // 创建时间
+    private String contentAttribute;    //内容属性 0 = 原创 1 = 转载
 
     /** 审核状态 0:草稿 1:未审核 2:审核中 4:审核未通过 5:审核通过 */
     private String auditStatus;
@@ -202,4 +203,12 @@ public class WorkKnowledgeBaseShareInfo extends DataEntity<WorkKnowledgeBaseShar
     public void setAuditStartDate(Date auditStartDate) {
         this.auditStartDate = auditStartDate;
     }
+
+    public String getContentAttribute() {
+        return contentAttribute;
+    }
+
+    public void setContentAttribute(String contentAttribute) {
+        this.contentAttribute = contentAttribute;
+    }
 }

+ 5 - 2
src/main/resources/mappings/modules/WorkKnowledgeBase/WorkKnowledgeBaseShareInfoDao.xml

@@ -19,6 +19,7 @@
         a.audit_reject_count AS "auditRejectCount",
         a.submit_audit_user_id AS "submitAuditUserId",
         a.audit_start_date AS "auditStartDate",
+        a.content_attribute AS "contentAttribute",
         a.del_flag         AS "delFlag"
     </sql>
 
@@ -79,6 +80,7 @@
             a.audit_pass_count                                    AS "auditPassCount",
             a.audit_reject_count                                  AS "auditRejectCount",
             a.audit_start_date                                    AS "auditStartDate",
+            a.content_attribute AS "contentAttribute",
             su.name                                               AS "createBy.name"
             <!-- 动态列:CASE WHEN + MAX + GROUP BY -->
             <if test="dynamicFields != null and dynamicFields.size() > 0">
@@ -228,11 +230,11 @@
     <!-- 插入 -->
     <insert id="insert">
         INSERT INTO work_knowledge_base_share_info (
-            id, tree_node_id, file_name, file_url, name, create_time,
+            id, tree_node_id, file_name, file_url, name, create_time,content_attribute,
             create_by, create_date, update_by, update_date, remarks,
             audit_status, audit_pass_count, audit_reject_count, submit_audit_user_id, audit_start_date, del_flag
         ) VALUES (
-            #{id}, #{treeNodeId}, #{fileName}, #{fileUrl}, #{name}, NOW(),
+            #{id}, #{treeNodeId}, #{fileName}, #{fileUrl}, #{name}, NOW(),#{contentAttribute},
             #{createBy.id}, #{createDate}, #{updateBy.id}, #{updateDate}, #{remarks},
             #{auditStatus}, #{auditPassCount}, #{auditRejectCount}, #{submitAuditUserId}, #{auditStartDate}, #{delFlag}
         )
@@ -251,6 +253,7 @@
             audit_pass_count   = #{auditPassCount},
             audit_reject_count = #{auditRejectCount},
             submit_audit_user_id = #{submitAuditUserId},
+            content_attribute = #{contentAttribute},
             audit_start_date   = #{auditStartDate}
         WHERE id = #{id}
     </update>

+ 61 - 1
src/main/webapp/webpage/modules/WorkKnowledgeBase/workKnowledgeBaseShareDetail.jsp

@@ -5,7 +5,8 @@
     <title>知识库文件详情</title>
     <meta name="decorator" content="default"/>
     <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
-    <link rel="stylesheet" type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <script src="${ctxStatic}/common/html/js/script.js"></script>
     <style>
         .detail-label { font-weight: bold; color: #555; }
         .detail-value { color: #333; word-break: break-all; }
@@ -46,6 +47,54 @@
             });
             return success;
         }
+        $(document).ready(function() {
+            validateForm = $('#inputForm').validate({
+                submitHandler: function(form) {
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: '#messageBox',
+                errorPlacement: function(error, element) {
+                    $('#messageBox').text('输入有误,请先更正。');
+                    error.insertAfter(element);
+                }
+            });
+
+            var contentAttribute = '${workKnowledgeBaseShareInfo.contentAttribute}';
+            // 选中对应单选
+            var radioList = document.querySelectorAll("input[name='contentAttribute']");
+            for(let item of radioList){
+                item.checked = (item.value === contentAttribute);
+            }
+
+
+            // 初始化动态字段中 Date 类型的 laydate 日期选择器
+            layui.use(['form', 'layer', 'laydate'], function () {
+                var form = layui.form;
+                var laydate = layui.laydate;
+                $('input.layer-date').each(function() {
+                    laydate.render({
+                        elem: this,
+                        event: 'focus',
+                        type: 'date',
+                        format: 'yyyy-MM-dd',
+                        trigger: 'click'
+                    });
+                });
+
+
+                form.on('radio(contentAttributeRadio)', function (event) {
+                    var radioVal = $(this).val();
+                    if (radioVal == "1") {
+                        $(".contentAttribute").show();
+                    } else {
+                        $(".contentAttribute").hide();
+                    }
+                    form.render("radio");
+                });
+            });
+
+        });
     </script>
 </head>
 <body>
@@ -53,6 +102,7 @@
     <div class="container">
         <sys:message content="${message}"/>
 
+        <form:form id="inputForm" modelAttribute="entity" action="" method="post" class="layui-form">
         <div class="form-group layui-row">
             <div class="form-group-label"><h2>知识库文件信息</h2></div>
 
@@ -65,6 +115,14 @@
             </div>
 
             <div class="layui-item layui-col-sm6 lw6">
+                <label class="layui-form-label"><span class="require-item">*</span>内容属性:</label>
+                <div class="layui-input-block">
+                    <input type="radio" name="contentAttribute" disabled lay-filter="contentAttributeRadio" title="原创" value="0">
+                    <input type="radio" name="contentAttribute" disabled lay-filter="contentAttributeRadio" title="转载" value="1">
+                </div>
+            </div>
+
+            <div class="layui-item layui-col-sm6 lw6">
                 <label class="layui-form-label detail-label">审核状态:</label>
                 <div class="layui-input-block">
                     <c:set var="auditStatusVal" value="${entity.auditStatus != null ? entity.auditStatus : 0}"/>
@@ -223,6 +281,8 @@
         </c:if>
 
         <div class="form-group layui-row page-end"></div>
+
+        </form:form>
     </div>
 
 </div>

+ 32 - 5
src/main/webapp/webpage/modules/WorkKnowledgeBase/workKnowledgeBaseShareForm.jsp

@@ -5,7 +5,8 @@
     <title>知识库文件管理</title>
     <meta name="decorator" content="default"/>
     <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
-    <link rel="stylesheet" type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <script src="${ctxStatic}/common/html/js/script.js"></script>
     <script type="text/javascript">
         var validateForm;
 
@@ -34,8 +35,17 @@
                 }
             });
 
+
+            var contentAttribute = '${workKnowledgeBaseShareInfo.contentAttribute}';
+            // 选中对应单选
+            var radioList = document.querySelectorAll("input[name='contentAttribute']");
+            for(let item of radioList){
+                item.checked = (item.value === contentAttribute);
+            }
+
             // 初始化动态字段中 Date 类型的 laydate 日期选择器
-            layui.use('laydate', function() {
+            layui.use(['form', 'layer', 'laydate'], function () {
+                var form = layui.form;
                 var laydate = layui.laydate;
                 $('input.layer-date').each(function() {
                     laydate.render({
@@ -46,6 +56,17 @@
                         trigger: 'click'
                     });
                 });
+
+
+                form.on('radio(contentAttributeRadio)', function (event) {
+                    var radioVal = $(this).val();
+                    if (radioVal == "1") {
+                        $(".contentAttribute").show();
+                    } else {
+                        $(".contentAttribute").hide();
+                    }
+                    form.render("radio");
+                });
             });
 
             });
@@ -69,9 +90,7 @@
 <div class="single-form">
     <div class="container">
         <sys:message content="${message}"/>
-        <form:form id="inputForm" modelAttribute="entity"
-                   action="${ctx}/workKnowledgeBase/share/save" method="post"
-                   class="form-horizontal layui-form">
+        <form:form id="inputForm" modelAttribute="entity" action="${ctx}/workKnowledgeBase/share/save" method="post" class="layui-form">
             <form:hidden path="id"/>
             <form:hidden path="treeNodeId"/>
             <form:hidden path="rootId"/>
@@ -89,6 +108,14 @@
                                     maxlength="200" class="form-control layui-input required"/>
                     </div>
                 </div>
+
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label"><span class="require-item">*</span>内容属性:</label>
+                    <div class="layui-input-block">
+                        <input type="radio" name="contentAttribute" lay-filter="contentAttributeRadio" title="原创" value="0">
+                        <input type="radio" name="contentAttribute" lay-filter="contentAttributeRadio" title="转载" value="1">
+                    </div>
+                </div>
             </div>
 
             <!-- 动态扩展字段(与主表单整合,流式排列) -->

+ 12 - 0
src/main/webapp/webpage/modules/WorkKnowledgeBase/workKnowledgeBaseShareList.jsp

@@ -484,6 +484,17 @@
             <c:forEach items="${dynamicFields}" var="field">
             {field: 'dynamic_${field.fieldKey}', align: 'center', title: '${field.fieldLabel}', minWidth: 100},
             </c:forEach>
+            {field: 'contentAttribute', align: 'center', title: '内容属性', width: 100, templet: function(d) {
+                    // 兼容后端数字/字符串格式
+                    let val = String(d.contentAttribute);
+                    if(val === '0'){
+                        return '<span style="color:#1ecbff; font-weight:500;">原创</span>';
+                    }else if(val === '1'){
+                        return '<span style="color:#FF9900; font-weight:500;">转载</span>';
+                    }else{
+                        return '';
+                    }
+                }},
             {field: 'createByName', align: 'center', title: '创建人', width: 100},
             {field: 'createTime', align: 'center', title: '创建时间', width: 160},
 
@@ -563,6 +574,7 @@
                     ,"createbyid": "${row.createById}"
                     ,"isAdmin": ${row.isAdmin == 'true' ? 'true' : 'false'}
                     ,"submitAuditUserId": "${row.submitAuditUserId}"
+                    ,"contentAttribute": "${row.contentAttribute}"
                     ,"auditStatus": ${row.auditStatus != null ? row.auditStatus : 0}
                     <c:forEach items="${dynamicFields}" var="field">
                     ,"dynamic_${field.fieldKey}": "<c:out value='${row["dynamic_".concat(field.fieldKey)]}'/>"