zhuyiyi 3 месяцев назад
Родитель
Сommit
17f6c8bdaa

+ 28 - 0
src/main/java/lingtao/net/bean/TipContent.java

@@ -0,0 +1,28 @@
+package lingtao.net.bean;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class TipContent {
+    private Integer id;
+
+    private int type;
+
+    private String content;
+
+    private String createBy;
+
+    private Date createDate;
+
+    private String updateBy;
+
+    private Date updateDate;
+
+    private String title;
+    /**
+     * 附件
+     */
+    private String attachment;
+}

+ 64 - 0
src/main/java/lingtao/net/controller/TipContentController.java

@@ -0,0 +1,64 @@
+package lingtao.net.controller;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lingtao.net.bean.Msg;
+import lingtao.net.bean.StandardMemo;
+import lingtao.net.bean.TipContent;
+import lingtao.net.service.StandardMemoService;
+import lingtao.net.service.TipContentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpSession;
+import java.util.List;
+
+@RestController
+public class TipContentController {
+
+    @Autowired
+    private TipContentService tipContentService;
+
+    /**
+     * 产品知识列表
+     *
+     * @return
+     */
+    @RequestMapping("/getTipContent")
+    public Msg getStandard(@RequestParam(value = "page", defaultValue = "1") Integer page,
+                           @RequestParam(value = "limit", defaultValue = "10") Integer limit, TipContent tipContent) {
+        PageHelper.startPage(page, limit);
+        List<TipContent> tipContentList = tipContentService.getTipContents(tipContent);
+        PageInfo<TipContent> pageInfo = new PageInfo<>(tipContentList);
+        return Msg.success().add("list", pageInfo);
+    }
+
+    /**
+     * 添加产品知识
+     */
+    @RequestMapping("/addTipContent")
+    public Msg addStandard(TipContent tipContent, HttpSession session) {
+        tipContentService.addTipContent(tipContent, session);
+        return Msg.success();
+    }
+
+    /**
+     * 修改产品知识
+     */
+    @RequestMapping("/updateTipContent")
+    public Msg updateStandard(TipContent tipContent, HttpSession session) {
+        tipContentService.updateTipContentById(tipContent, session);
+        return Msg.success();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/deleteTipContent")
+    public Msg deleteStandard(@RequestParam("id") Integer id) {
+        tipContentService.deleteTipContentById(id);
+        return Msg.success();
+    }
+}

+ 18 - 0
src/main/java/lingtao/net/dao/TipContentMapper.java

@@ -0,0 +1,18 @@
+package lingtao.net.dao;
+
+import lingtao.net.bean.StandardMemo;
+import lingtao.net.bean.TipContent;
+
+import java.util.List;
+
+public interface TipContentMapper {
+
+    List<TipContent> getTipContents(TipContent standardMemo);
+
+    void addTipContent(TipContent standardMemo);
+
+    void updateTipContentById(TipContent standardMemo);
+
+    void deleteTipContentById(Integer id);
+
+}

+ 4 - 4
src/main/java/lingtao/net/service/ProductService.java

@@ -688,16 +688,16 @@ public class ProductService {
                     for (Product product : priceList) {
                         double carft_price = 0;
                         if (craftList.contains("压痕")) {
-                            carft_price += Math.max(0.02 * product.getCount(), 10);
+                            carft_price += Math.max(0.02 * product.getCount(), 10) * number;
                         }
                         if (craftList.contains("压点线")) {
-                            carft_price += Math.max(0.02 * product.getCount(), 10);
+                            carft_price += Math.max(0.02 * product.getCount(), 10) * number;
                         }
                         if (craftList.contains("圆角")) {
-                            carft_price += Math.max(0.02 * product.getCount(), 10);
+                            carft_price += Math.max(0.02 * product.getCount(), 10) * number;
                         }
                         //腰封的模切费单独计算
-                        product.setPrice(Math.ceil((product.getPrice() + carft_price) * number));
+                        product.setPrice(Math.ceil((product.getPrice() + carft_price)));
                         product.setWeight(df.format(number * length / 100 * width / 100 * product.getCount() * 0.3 * 0.86));
                     }
                     if (isMq) {

+ 58 - 0
src/main/java/lingtao/net/service/TipContentService.java

@@ -0,0 +1,58 @@
+package lingtao.net.service;
+
+import lingtao.net.bean.Msg;
+import lingtao.net.bean.StandardMemo;
+import lingtao.net.bean.SysUser;
+import lingtao.net.bean.TipContent;
+import lingtao.net.dao.StandardMemoMapper;
+import lingtao.net.dao.TipContentMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpSession;
+import java.util.List;
+
+@Service
+public class TipContentService {
+
+    @Autowired
+    private TipContentMapper tipContentMapper;
+
+    public List<TipContent> getTipContents(TipContent tipContent) {
+        return tipContentMapper.getTipContents(tipContent);
+    }
+
+    public Msg addTipContent(TipContent tipContent, HttpSession session) {
+        SysUser user = (SysUser) session.getAttribute("USER_SESSION");
+        tipContent.setCreateBy(user.getRealname());
+        try {
+            tipContentMapper.addTipContent(tipContent);
+            return Msg.success();
+        } catch (Exception e) {
+            return Msg.fail();
+        }
+    }
+
+    public Msg updateTipContentById(TipContent tipContent, HttpSession session) {
+        SysUser user = (SysUser) session.getAttribute("USER_SESSION");
+        tipContent.setUpdateBy(user.getRealname());
+        try {
+            tipContentMapper.updateTipContentById(tipContent);
+            return Msg.success();
+        } catch (Exception e) {
+            return Msg.fail();
+        }
+
+    }
+
+    public Msg deleteTipContentById(Integer id) {
+        try {
+            tipContentMapper.deleteTipContentById(id);
+            return Msg.success();
+        } catch (Exception e) {
+            return Msg.fail();
+        }
+
+    }
+
+}

+ 51 - 0
src/main/resources/mapper/TipContentMapper.xml

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="lingtao.net.dao.TipContentMapper">
+    <select id="getTipContents" parameterType="lingtao.net.bean.TipContent"
+            resultType="lingtao.net.bean.TipContent">
+        SELECT
+        *
+        FROM
+        tbl_tip_content
+        <where>
+            <if test="content != null and content != ''">
+                title like '%${content}%' or content like '%${content}%'
+            </if>
+        </where>
+        order by id desc
+    </select>
+
+    <insert id="addTipContent" parameterType="lingtao.net.bean.TipContent">
+        insert into tbl_tip_content
+            (content, createBy, createDate, title,attachment,type)
+        values (#{content}, #{createBy}, now(), #{title}, #{attachment}, #{type})
+    </insert>
+
+    <update id="updateTipContentById" parameterType="lingtao.net.bean.TipContent">
+        update tbl_tip_content
+        <set>
+            <if test="content != null">
+                content = #{content,jdbcType=VARCHAR},
+            </if>
+            <if test="updateBy != null">
+                updateBy = #{updateBy,jdbcType=VARCHAR},
+            </if>
+            <if test="updateDate != null">
+                updateDate = now(),
+            </if>
+            <if test="title != null">
+                title = #{title,jdbcType=VARCHAR},
+            </if>
+            <if test="attachment != null">
+                attachment = #{attachment,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where id = #{id,jdbcType=INTEGER}
+    </update>
+
+    <delete id="deleteTipContentById">
+        delete
+        from tbl_tip_content
+        where id = #{id}
+    </delete>
+</mapper>

+ 59 - 0
src/main/webapp/js/ossUploader.js

@@ -0,0 +1,59 @@
+const client = new OSS({
+    // yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
+    region: "oss-cn-fuzhou",
+    // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
+    accessKeyId: "LTAI5tE7wuNkeT9jZ42bQnyr",
+    accessKeySecret: "NnutvWhKl4HbQFSad3HosYbCkEkbjN",
+    // 填写存储空间名称。
+    bucket: "dfdiyfile",
+    endpoint: "https://oss-cn-fuzhou.aliyuncs.com",
+});
+
+async function uploadFile(file) {
+    let fileDir = dateFtt("yyyyMMdd", new Date())
+    let name = "priceImages/" + fileDir + "/" + guid() + getSuff(file.name);
+    // 填写Object完整路径。Object完整路径中不能包含Bucket名称。
+    // 您可以通过自定义文件名(例如exampleobject.txt)或文件完整路径(例如exampledir/exampleobject.txt)的形式实现将数据上传到当前Bucket或Bucket中的指定目录。
+    // data对象可以自定义为file对象、Blob数据或者OSS Buffer。
+    const options = {
+        headers: {"Content-Type": "text/plain"},
+    };
+    let index = layer.load();
+    const result = await client.put(name, file, options);
+    layer.close(index);
+    return result.url;
+}
+
+function dateFtt(fmt, date) {
+    var o = {
+        "M+": date.getMonth() + 1,                 //月份
+        "d+": date.getDate(),                    //日
+        "h+": date.getHours(),                   //小时
+        "m+": date.getMinutes(),                 //分
+        "s+": date.getSeconds(),                 //秒
+        "q+": Math.floor((date.getMonth() + 3) / 3), //季度
+        "S": date.getMilliseconds()             //毫秒
+    };
+    if (/(y+)/.test(fmt)) {
+        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
+    }
+    for (var k in o) {
+        if (new RegExp("(" + k + ")").test(fmt))
+            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
+
+    }
+    return fmt;
+
+}
+
+function getSuff(name) {
+    return name.substring(name.lastIndexOf("."));
+}
+
+function guid() {
+    return "xxxxxxxx-xxxx-4xxx-yxxx".replace(/[xy]/g, function (c) {
+        var r = (Math.random() * 16) | 0,
+            v = c == "x" ? r : (r & 0x3) | 0x8;
+        return v.toString(16);
+    });
+}

+ 172 - 0
src/main/webapp/views/system/instructions/manage/addPrinting.jsp

@@ -0,0 +1,172 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+         pageEncoding="UTF-8" %>
+<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <title>添加产品须知</title>
+    <%@include file="/views/common.jsp" %>
+    <style>
+        .layui-input, .layui-input-inline {
+            width: 350px
+        }
+    </style>
+</head>
+<body>
+<div class="layui-input-block layui-form" style="margin-top: 30px">
+    <form class="layui-form " action="">
+        <input type="hidden" name="id" id="id">
+        <div class="layui-form-item">
+            <label class="layui-form-label">类型</label>
+            <div class="layui-input-inline">
+                <input type="text" name="title" placeholder="请输入类型" class="layui-input" lay-verify="required"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">属性</label>
+            <div class="layui-input-inline">
+                <input type="text" name="explain" placeholder="请输入属性" class="layui-input" lay-verify="required"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">需要提供的证明</label>
+            <div class="layui-input-inline">
+                <textarea type="text" name="content" placeholder="请输入需要提供的证明" class="layui-textarea"
+                          lay-verify="required" style="width: 300px;"></textarea>
+            </div>
+        </div>
+        <input type="hidden" name="type" class="layui-input" value="1">
+        <div class="layui-form-item">
+            <label class="layui-form-label">图片或视频</label>
+            <div class="layui-input-inline">
+                <button type="button" class="layui-btn" id="uploaderImage">上传</button>
+                <input type="file" id="upload" style="display: none"/>
+                <input name="attachment" type="hidden" id="images"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label" style="color: #FF5722">点击图片可以删除</label>
+            <div class="layui-input-inline" id="preview" style="display: flex;"></div>
+        </div>
+        <div class="layui-form-item">
+            <div class="layui-input-block">
+                <button class="layui-btn" lay-submit="" lay-filter="enadd">确认添加</button>
+                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
+            </div>
+        </div>
+    </form>
+</div>
+<script src="${path}/js/alioss.js"></script>
+<script src="${path}/js/ossUploader.js"></script>
+<script>
+    function delImage(index) {
+        layer.confirm('是否确认删除该图片', {
+            btn: ['确定', '关闭'] //按钮
+        }, function (layIndex) {
+            let textImage = $("#images").val();
+            let list = textImage == "" ? [] : textImage.split(",");
+            list.splice(index, 1);
+            $("#images").val(list.join(","));
+            previewImage($("#images").val());
+            layer.close(layIndex);
+        }, function () {
+        });
+
+    }
+
+    $("#images").val("");
+    $("#preview").empty();
+
+    function previewImage(textImage) {
+        let textImageList = textImage == "" ? [] : textImage.split(",");
+        let html = "";
+        textImageList.forEach((item, index) => {
+            if (item != "" && (item.indexOf(".mp4") > -1 || item.indexOf(".MP4") > -1)) {
+                html += "<video src='" + item + "' class='layui-upload-img' style='width: 50px;height: 50px;margin-right: 5px;' onclick='delImage(\"" + index + "\")'/>";
+            } else if (item != "") {
+                html += "<img src='" + item + "' class='layui-upload-img' style='width: 50px;height: 50px;margin-right: 5px;' onclick='delImage(\"" + index + "\")'/>";
+            }
+        })
+        $("#preview").empty().append(html);
+
+    }
+
+
+    async function putObject(file) {
+        try {
+            const result = await uploadFile(file);
+            let textImage = $("#images").val();
+            let list = textImage == "" ? [] : textImage.split(",");
+            list.push(result);
+            $("#images").val(list.join(","));
+            previewImage($("#images").val());
+        } catch (e) {
+            console.log(e);
+        }
+    }
+
+    document.getElementById('uploaderImage').addEventListener('click', function (e) {
+        document.getElementById('upload').click();
+    });
+    document.getElementById('upload').addEventListener('change', function (e) {
+        const file = e.target?.files[0];
+        putObject(file);
+        document.getElementById('upload').value = "";
+    });
+
+    layui.use(['form', 'layer'], function () {
+        var $ = layui.$,
+            form = layui.form,
+            layer = layui.layer;
+
+        //监听提交
+        form.on('submit(enadd)', function (data) {
+            let title = document.getElementsByName("title")[0].value;
+            let id = document.getElementsByName("id")[0].value;
+            let explain = document.getElementsByName("explain")[0].value;
+            let content = document.getElementsByName("content")[0].value;
+            let attachment = document.getElementById("images").value;
+            let fromData = {
+                id,
+                title: title,
+                content: JSON.stringify({
+                    explain: explain,
+                    content: content
+                }),
+                type: 1,
+                attachment
+            };
+            let url = id == "" ? '${path}/addTipContent' : '${path}/updateTipContent';
+            $.ajax({
+                url: url,
+                dataType: 'json',
+                data: fromData,
+                type: 'post',
+                success: function (data) {
+                    if (data.code == 200) {
+                        layer.msg('录入成功!', {
+                            icon: 6,
+                            offset: "auto",
+                            time: 2000
+                        });//提示框
+                    } else {
+                        layer.msg('录入失败!', {
+                            icon: 5,
+                            offset: "auto",
+                            time: 2000
+                        });//提示框
+                    }
+                    setTimeout(function () {
+                        var index = parent.layer.getFrameIndex(window.name);//获取窗口索引
+                        parent.layer.close(index);//关闭弹出层
+                        parent.layui.table.reload("informationTableAll"); //重新加载页面表格
+                    }, 2100);
+                }
+            })
+            return false;
+        });
+    })
+</script>
+</body>
+</html>

+ 276 - 0
src/main/webapp/views/system/instructions/manage/printing.jsp

@@ -0,0 +1,276 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+         pageEncoding="UTF-8" %>
+<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <title>产品知识列表</title>
+    <%@include file="/views/common.jsp" %>
+    <style type="text/css">
+        .layui-table-cell {
+            height: 32px;
+            line-height: 32px;
+        }
+
+        .layui-table td, .layui-table th, .layui-table-header, .layui-table-page, .layui-table-tool, .layui-table-total, .layui-table-view {
+            border-color: #6666;
+            font-size: 16px;
+        }
+
+        .ztree * {
+            font-size: 20px;
+        }
+
+        .edge .layui-edge {
+            right: 35px;
+        }
+    </style>
+</head>
+
+<script type="text/html" id="toolbarDemo">
+    <div class="layui-btn-container demoTable">
+        <button class="layui-btn layui-btn-sm" lay-event="add">
+            <i class="layui-icon layui-icon-add-circle-fine" style="font-size:20px;font-weight:bold"> </i> 新增内容
+        </button>
+    </div>
+</script>
+<script type="text/html" id="barDemo">
+    <a class="layui-btn layui-btn-xs" lay-event="edit">
+        <i class="layui-icon layui-icon-edit" style="color:white;font-size:20px"></i>编辑
+    </a>
+    <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">
+        <i class="layui-icon layui-icon-delete"></i>删除
+    </a>
+</script>
+<body>
+<br>
+<form class="layui-form" action="">
+    <div class="layui-inline">
+        <label class="layui-form-label">内容</label>
+        <div class="layui-input-inline">
+            <input type="text" id="content" name="content" placeholder="请输入内容"
+                   autocomplete="off" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <div class="layui-input-inline">
+            <button class="layui-btn" id="searchBtn" lay-submit lay-filter="formDemo" style="margin-left: 15px">
+                <i class="layui-icon layui-icon-search"></i> 查询
+            </button>
+            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
+        </div>
+    </div>
+</form>
+<table class="layui-hide" id="informationTable" lay-filter="informationTable"></table>
+<script type="text/javascript">
+    function viewImage(item) {
+        let html = "<div style='width: 100%;height: 100%;display: flex;align-items: center;justify-content: center'>";
+        if (item != "" && (item.indexOf(".mp4") > -1 || item.indexOf(".MP4") > -1)) {
+            html += "<video src='" + item + "' class='layui-upload-img' controls style='width: 400px;height: 400px;margin-right: 5px;'/>";
+        } else if (item != "") {
+            html += "<img src='" + item + "' class='layui-upload-img' style='width: 400px;height: 400px;margin-right: 5px;'/>";
+        }
+        html += "</div>";
+        layer.open({
+            type: 1,
+            title: false,
+            closeBtn: 0,
+            offset: 'auto',
+            area: ['400px', '400px'],
+            skin: 'layui-layer-nobg', //没有背景色
+            shadeClose: true,
+            content: html
+        });
+    }
+
+    layui.use(['element', 'table', 'laydate', 'form'], function () {
+        var $ = layui.jquery;
+        var table = layui.table;
+        var laydate = layui.laydate;
+        var element = layui.element;
+        var form = layui.form;
+
+        // 生成表格
+        table.render({
+            elem: '#informationTable',
+            url: '../../../../getTipContent',
+            toolbar: '#toolbarDemo',
+            title: '用户表',// 导出文件名
+            id: 'informationTableAll',
+            // 开启分页
+            // page	: true,
+            page: {
+                layout: ['count', 'prev', 'page', 'next', 'skip', 'limit']
+            },
+            limits: [10, 30, 50, 80, 100, 999],
+            /*request : {
+                'limitName' : 'pageSize' // 分页每页条数默认字段改为pageSize
+            },*/
+            where: {
+                content: ''
+            },
+            cellMinWidth: 80, // 全局定义常规单元格的最小宽度,layui 2.2.1 新增
+            cols: [[{
+                type: 'numbers',
+                title: '序号',
+                width: 50,
+                fixed: "left"
+            }, {
+                field: 'title',
+                title: '类型',
+            }, {
+                field: 'content',
+                title: '属性',
+                templet: function (d) {
+                    let data_info = JSON.parse(d.content);
+                    return data_info.explain
+                }
+            }, {
+                field: '证明',
+                title: '属性',
+                templet: function (d) {
+                    let data_info = JSON.parse(d.content);
+                    return data_info.content
+                }
+            }, {
+                field: 'content',
+                title: '图片视频',
+                templet: function (d) {
+                    let html = "<div style='width: 100%;height: 100%;display: flex;align-items: center;justify-content: center'>";
+                    if (d.attachment) {
+                        let list = d.attachment.split(",");
+                        for (let i = 0; i < list.length; i++) {
+                            let item = list[i];
+                            if (item != "" && (item.indexOf(".mp4") > -1 || item.indexOf(".MP4") > -1)) {
+                                html += "<video src='" + item + "' class='layui-upload-img'  style='width: 40px;height: 40px;margin-right: 5px;' onclick='viewImage(\"" + item + "\")'/>";
+                            } else if (item != "") {
+                                html += "<img src='" + item + "' class='layui-upload-img' style='width: 40px;height: 40px;margin-right: 5px;' onclick='viewImage(\"" + item + "\")'/>";
+                            }
+                        }
+                    }
+                    html += "</div>";
+                    return html;
+                }
+            }, {
+                field: 'createBy',
+                align: 'center',
+                width: 150,
+                title: '创建人'
+            }, {
+                field: 'createDate',
+                title: '创建时间',
+                width: 220,
+                align: 'center',
+                templet: function (d) {
+                    return d.createDate != null ? layui.util.toDateString(d.createDate, "yyyy-MM-dd HH:mm:ss") : "";
+                }
+            }, {
+                fixed: 'right',
+                title: '操作',
+                align: 'center',
+                width: 150,
+                toolbar: '#barDemo'
+            }]],
+            parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
+                return {
+                    "code": 0, //解析接口状态
+                    "msg": "", //解析提示文本
+                    "count": res.data.list.total,//解析数据长度
+                    "data": res.data.list.list//解析数据列表
+                };
+            }
+        });
+
+        //点击查询按钮,重载表格
+        $('#searchBtn').on('click', function () {
+            table.reload('informationTableAll', {
+                method: 'get',
+                where: {
+                    content: $("#content").val()
+                },
+                page: {
+                    curr: 1
+                }
+            });
+            return false;
+        });
+
+        table.on('toolbar(informationTable)', function (obj) {
+            switch (obj.event) {
+                case 'add':
+                    layer.open({
+                        type: 2,
+                        title: "添加规范",
+                        fix: false, //不固定
+                        maxmin: true,
+                        skin: 'layui-layer-molv',
+                        area: ['45%', '70%'],
+                        content: './addPrinting.jsp',
+                    });
+                    break;
+            }
+            ;
+        });
+
+        table.on('tool(informationTable)', function (obj) {
+            var data1 = obj.data;
+            let data_info = JSON.parse(data1.content);
+            if (obj.event === 'edit') {
+                layer.open({
+                    type: 2,
+                    title: "修改规范",
+                    area: ['45%', '70%'],
+                    skin: 'layui-layer-molv',
+                    content: './addPrinting.jsp',
+                    success: function (layero, index) {
+                        var body = layer.getChildFrame('body', index);
+                        body.find('#id').val(data1.id);
+                        body.find('input[name="title"]').val(data1.title);
+                        body.find('input[name="type"]').val(data1.type);
+                        body.find('input[name="explain"]').val(data_info.explain);
+                        body.find('textarea[name="content"]').val(data_info.content);
+
+                        body.find('#images').val(data1.attachment);
+                        let textImage = data1.attachment;
+                        if (textImage) {
+                            let textImageList = textImage == "" ? [] : textImage.split(",");
+                            let html = "";
+                            textImageList.forEach((item, index) => {
+                                if (item != "" && (item.indexOf(".mp4") > -1 || item.indexOf(".MP4") > -1)) {
+                                    html += "<video src='" + item + "' class='layui-upload-img' style='width: 50px;height: 50px;margin-right: 5px;' onclick='delImage(\"" + index + "\")'/>";
+                                } else if (item != "") {
+                                    html += "<img src='" + item + "' class='layui-upload-img' style='width: 50px;height: 50px;margin-right: 5px;' onclick='delImage(\"" + index + "\")'/>";
+                                }
+                            })
+                            body.find("#preview").empty().append(html);
+                        }
+                        layui.form.render();
+                    }
+                });
+            } else if (obj.event === 'del') {
+                layer.confirm('确定要删除该数据么?', {icon: 3, title: "提示"}, function (index) {
+                    $.ajax({
+                        url: "../../../../deleteTipContent",
+                        data: {'id': data1.id},
+                        type: "post",
+                        //dataType:"json",
+                        success: function (data) {
+                            if (data.code == 200) {
+                                layer.msg('删除成功!', {icon: 6, offset: "auto", time: 1000});//提示框
+                            } else {
+                                layer.msg('删除失败!', {icon: 5, offset: "auto", time: 1000});//提示框
+                            }
+                            setTimeout(function () {
+                                location.reload();//重新加载页面
+                            }, 1100);
+                        }
+                    });
+                    return false;
+                });
+            }
+        })
+    })
+</script>
+</body>
+</html>

+ 259 - 0
src/main/webapp/views/system/instructions/reveal/printing.jsp

@@ -0,0 +1,259 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+		 pageEncoding="UTF-8" %>
+<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+	<title>产品知识列表</title>
+	<%@include file="/views/common.jsp" %>
+	<style type="text/css">
+		.layui-table-cell {
+			height: 32px;
+			line-height: 32px;
+		}
+
+		.layui-table td, .layui-table th, .layui-table-header, .layui-table-page, .layui-table-tool, .layui-table-total, .layui-table-view {
+			border-color: #6666;
+			font-size: 16px;
+		}
+
+		.ztree * {
+			font-size: 20px;
+		}
+
+		.edge .layui-edge {
+			right: 35px;
+		}
+	</style>
+</head>
+
+
+<script type="text/html" id="barDemo">
+
+</script>
+<body>
+<br>
+<form class="layui-form" action="">
+	<div class="layui-inline">
+		<label class="layui-form-label">内容</label>
+		<div class="layui-input-inline">
+			<input type="text" id="content" name="content" placeholder="请输入内容"
+				   autocomplete="off" class="layui-input">
+		</div>
+	</div>
+	<div class="layui-inline">
+		<div class="layui-input-inline">
+			<button class="layui-btn" id="searchBtn" lay-submit lay-filter="formDemo" style="margin-left: 15px">
+				<i class="layui-icon layui-icon-search"></i> 查询
+			</button>
+			<button type="reset" class="layui-btn layui-btn-primary">重置</button>
+		</div>
+	</div>
+</form>
+<table class="layui-hide" id="informationTable" lay-filter="informationTable"></table>
+<script type="text/javascript">
+	function viewImage(item) {
+		let html = "<div style='width: 100%;height: 100%;display: flex;align-items: center;justify-content: center'>";
+		if (item != "" && (item.indexOf(".mp4") > -1 || item.indexOf(".MP4") > -1)) {
+			html += "<video src='" + item + "' class='layui-upload-img' controls style='width: 400px;height: 400px;margin-right: 5px;'/>";
+		} else if (item != "") {
+			html += "<img src='" + item + "' class='layui-upload-img' style='width: 400px;height: 400px;margin-right: 5px;'/>";
+		}
+		html += "</div>";
+		layer.open({
+			type: 1,
+			title: false,
+			closeBtn: 0,
+			offset: 'auto',
+			area: ['400px', '400px'],
+			skin: 'layui-layer-nobg', //没有背景色
+			shadeClose: true,
+			content: html
+		});
+	}
+
+	layui.use(['element', 'table', 'laydate', 'form'], function () {
+		var $ = layui.jquery;
+		var table = layui.table;
+		var laydate = layui.laydate;
+		var element = layui.element;
+		var form = layui.form;
+
+		// 生成表格
+		table.render({
+			elem: '#informationTable',
+			url: '../../../../getTipContent',
+			toolbar: '#toolbarDemo',
+			title: '用户表',// 导出文件名
+			id: 'informationTableAll',
+			// 开启分页
+			// page	: true,
+			page: {
+				layout: ['count', 'prev', 'page', 'next', 'skip', 'limit']
+			},
+			limits: [10, 30, 50, 80, 100, 999],
+			/*request : {
+                'limitName' : 'pageSize' // 分页每页条数默认字段改为pageSize
+            },*/
+			where: {
+				content: ''
+			},
+			cellMinWidth: 80, // 全局定义常规单元格的最小宽度,layui 2.2.1 新增
+			cols: [[{
+				type: 'numbers',
+				title: '序号',
+				width: 50,
+				fixed: "left"
+			}, {
+				field: 'title',
+				title: '类型',
+			}, {
+				field: 'content',
+				title: '属性',
+				templet: function (d) {
+					let data_info = JSON.parse(d.content);
+					return data_info.explain
+				}
+			}, {
+				field: '证明',
+				title: '属性',
+				templet: function (d) {
+					let data_info = JSON.parse(d.content);
+					return data_info.content
+				}
+			}, {
+				field: 'content',
+				title: '图片视频',
+				templet: function (d) {
+					let html = "<div style='width: 100%;height: 100%;display: flex;align-items: center;justify-content: center'>";
+					if (d.attachment) {
+						let list = d.attachment.split(",");
+						for (let i = 0; i < list.length; i++) {
+							let item = list[i];
+							if (item != "" && (item.indexOf(".mp4") > -1 || item.indexOf(".MP4") > -1)) {
+								html += "<video src='" + item + "' class='layui-upload-img'  style='width: 40px;height: 40px;margin-right: 5px;' onclick='viewImage(\"" + item + "\")'/>";
+							} else if (item != "") {
+								html += "<img src='" + item + "' class='layui-upload-img' style='width: 40px;height: 40px;margin-right: 5px;' onclick='viewImage(\"" + item + "\")'/>";
+							}
+						}
+					}
+					html += "</div>";
+					return html;
+				}
+			}, {
+				field: 'createBy',
+				align: 'center',
+				width: 150,
+				title: '创建人'
+			}, {
+				field: 'createDate',
+				title: '创建时间',
+				width: 220,
+				align: 'center',
+				templet: function (d) {
+					return d.createDate != null ? layui.util.toDateString(d.createDate, "yyyy-MM-dd HH:mm:ss") : "";
+				}
+			}]],
+			parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
+				return {
+					"code": 0, //解析接口状态
+					"msg": "", //解析提示文本
+					"count": res.data.list.total,//解析数据长度
+					"data": res.data.list.list//解析数据列表
+				};
+			}
+		});
+
+		//点击查询按钮,重载表格
+		$('#searchBtn').on('click', function () {
+			table.reload('informationTableAll', {
+				method: 'get',
+				where: {
+					content: $("#content").val()
+				},
+				page: {
+					curr: 1
+				}
+			});
+			return false;
+		});
+
+		table.on('toolbar(informationTable)', function (obj) {
+			switch (obj.event) {
+				case 'add':
+					layer.open({
+						type: 2,
+						title: "添加规范",
+						fix: false, //不固定
+						maxmin: true,
+						skin: 'layui-layer-molv',
+						area: ['45%', '70%'],
+						content: './addPrinting.jsp',
+					});
+					break;
+			}
+			;
+		});
+
+		table.on('tool(informationTable)', function (obj) {
+			var data1 = obj.data;
+			let data_info = JSON.parse(data1.content);
+			if (obj.event === 'edit') {
+				layer.open({
+					type: 2,
+					title: "修改规范",
+					area: ['45%', '70%'],
+					skin: 'layui-layer-molv',
+					content: './addPrinting.jsp',
+					success: function (layero, index) {
+						var body = layer.getChildFrame('body', index);
+						body.find('#id').val(data1.id);
+						body.find('input[name="title"]').val(data1.title);
+						body.find('input[name="type"]').val(data1.type);
+						body.find('input[name="explain"]').val(data_info.explain);
+						body.find('textarea[name="content"]').val(data_info.content);
+
+						body.find('#images').val(data1.attachment);
+						let textImage = data1.attachment;
+						if (textImage) {
+							let textImageList = textImage == "" ? [] : textImage.split(",");
+							let html = "";
+							textImageList.forEach((item, index) => {
+								if (item != "" && (item.indexOf(".mp4") > -1 || item.indexOf(".MP4") > -1)) {
+									html += "<video src='" + item + "' class='layui-upload-img' style='width: 50px;height: 50px;margin-right: 5px;' onclick='delImage(\"" + index + "\")'/>";
+								} else if (item != "") {
+									html += "<img src='" + item + "' class='layui-upload-img' style='width: 50px;height: 50px;margin-right: 5px;' onclick='delImage(\"" + index + "\")'/>";
+								}
+							})
+							body.find("#preview").empty().append(html);
+						}
+						layui.form.render();
+					}
+				});
+			} else if (obj.event === 'del') {
+				layer.confirm('确定要删除该数据么?', {icon: 3, title: "提示"}, function (index) {
+					$.ajax({
+						url: "../../../../deleteTipContent",
+						data: {'id': data1.id},
+						type: "post",
+						//dataType:"json",
+						success: function (data) {
+							if (data.code == 200) {
+								layer.msg('删除成功!', {icon: 6, offset: "auto", time: 1000});//提示框
+							} else {
+								layer.msg('删除失败!', {icon: 5, offset: "auto", time: 1000});//提示框
+							}
+							setTimeout(function () {
+								location.reload();//重新加载页面
+							}, 1100);
+						}
+					});
+					return false;
+				});
+			}
+		})
+	})
+</script>
+</body>
+</html>