From 5f51a29343d6021e5d2745163c07afe1a67d35cc Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 21 Nov 2022 16:10:11 +0800
Subject: [PATCH] 20221117

---
 src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java          |   44 ++++++
 src/main/java/cc/mrbird/febs/dapp/vo/ApiMessageListVo.java                |   24 +++
 src/main/resources/templates/febs/views/dapp/message-list.html            |   27 +++
 src/main/resources/templates/febs/views/dapp/show-message-list.html       |   51 +++++++
 src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java |   10 +
 src/main/resources/templates/febs/views/dapp/send-Back-Message.html       |   90 ++++++++++++
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |   38 +++++
 src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java          |    6 
 src/main/resources/mapper/dapp/DappMemberDao.xml                          |   20 ++
 src/main/java/cc/mrbird/febs/dapp/dto/ApiMessageListDto.java              |   18 ++
 src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java               |    9 
 src/main/java/cc/mrbird/febs/dapp/entity/DappMessageEntity.java           |    8 +
 src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java        |   28 ++++
 13 files changed, 367 insertions(+), 6 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
index 4750433..41fcfcc 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
@@ -234,4 +234,14 @@
     public FebsResponse addMessage(@RequestBody AddMessageDto addMessageDto) {
         return dappMemberService.addMessage(addMessageDto);
     }
+
+    @ApiOperation(value ="IGT客服消息-列表分页", notes = "客服消息-列表分页")
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "success", response = ApiMessageListVo.class)
+    })
+    @PostMapping(value = "/messageList")
+    public FebsResponse messageList(@RequestBody ApiMessageListDto apiMessageListDto) {
+        Map<String, Object> data = getDataTable(dappMemberService.getMessageListInPage(apiMessageListDto));
+        return new FebsResponse().success().data(data);
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java b/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
index 88c1e0f..a051f94 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
@@ -294,4 +294,32 @@
         Map<String, Object> data = getDataTable(dappMemberService.getTeamInfo(dappMemberEntity,request));
         return new FebsResponse().success().data(data);
     }
+
+    /**
+     *客服消息---回复
+     * @return
+     */
+    @PostMapping("sendBackMessage")
+    @ControllerEndpoint(operation = "客服消息---回复", exceptionMessage = "操作失败")
+    public FebsResponse sendBackMessage(@Valid DappMessageEntity dappMessageEntity) {
+        return dappMemberService.sendBackMessage(dappMessageEntity);
+    }
+
+    /**
+     * 客服消息-回复记录
+     * @return
+     */
+    @GetMapping("showMessageList")
+    public FebsResponse showMessageList(DappMessageEntity dappMessageEntity, QueryRequest request, Integer parentId) {
+        if (parentId == null) {
+            ViewController.showMessageInfoFlow = 0;
+        }
+        dappMessageEntity.setId(ViewController.showMessageInfoFlow);
+        User currentUser = FebsUtil.getCurrentUser();
+        if(ObjectUtil.isNotEmpty(currentUser.getDescription())){
+            dappMessageEntity.setDescription(currentUser.getDescription());
+        }
+        Map<String, Object> data = getDataTable(dappMemberService.showMessageList(dappMessageEntity, request));
+        return new FebsResponse().success().data(data);
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
index e3297b6..0957125 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
@@ -6,8 +6,10 @@
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.dapp.entity.AppVersion;
 import cc.mrbird.febs.dapp.entity.DappMemberEntity;
+import cc.mrbird.febs.dapp.entity.DappMessageEntity;
 import cc.mrbird.febs.dapp.entity.IgtOnHookPlanOrder;
 import cc.mrbird.febs.dapp.mapper.DappMemberDao;
+import cc.mrbird.febs.dapp.mapper.DappMessageDao;
 import cc.mrbird.febs.dapp.service.DappMemberService;
 import lombok.RequiredArgsConstructor;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -32,6 +34,7 @@
 
     private final DappMemberService dappMemberService;
     private final DappMemberDao dappMemberDao;
+    private final DappMessageDao dappMessageDao;
 
     @GetMapping(value = "admin")
     @RequiresPermissions("admin:view")
@@ -229,6 +232,47 @@
     }
 
     /**
+     * 客服消息-列表
+     * @return
+     */
+    @GetMapping("sendBackMessage")
+    @RequiresPermissions("user:sendBack")
+    public String sendBackMessage() {
+        return FebsUtil.view("dapp/send-Back-Message");
+    }
+
+    /**
+     * 客服消息-回复
+     * @param id
+     * @param model
+     * @return
+     */
+    @GetMapping("sendBackMessage/{id}")
+    @RequiresPermissions("user:sendBack")
+    public String sendBackMessage(@PathVariable long id, Model model) {
+        DappMessageEntity data = dappMessageDao.selectById(id);
+        model.addAttribute("dappMessage", data);
+        return FebsUtil.view("dapp/send-Back-Message");
+    }
+
+
+    public static long showMessageInfoFlow;
+    /**
+     * 客服消息-记录
+     * @param id
+     * @param model
+     * @return
+     */
+    @GetMapping("/showMessage/{id}")
+    @RequiresPermissions("showMessage:update")
+    public String amountFlow(@PathVariable long id, Model model) {
+        showMessageInfoFlow = id;
+        DappMessageEntity data = dappMessageDao.selectById(id);
+        model.addAttribute("dappMessage", data);
+        return FebsUtil.view("dapp/show-message-list");
+    }
+
+    /**
      * 每日资产总览-列表
      * @return
      */
diff --git a/src/main/java/cc/mrbird/febs/dapp/dto/ApiMessageListDto.java b/src/main/java/cc/mrbird/febs/dapp/dto/ApiMessageListDto.java
new file mode 100644
index 0000000..d94ea20
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/dto/ApiMessageListDto.java
@@ -0,0 +1,18 @@
+package cc.mrbird.febs.dapp.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiMessageListDto", description = "客服消息列表")
+public class ApiMessageListDto {
+
+    @ApiModelProperty(value = "页码")
+    private Integer pageNum = 1;
+
+    @ApiModelProperty(value = "每页数量")
+    private Integer pageSize = 10;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappMessageEntity.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappMessageEntity.java
index 90c5a30..f191d7d 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/DappMessageEntity.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappMessageEntity.java
@@ -13,6 +13,14 @@
 
     private String message;
 
+    /**
+     * 回复消息
+     ALTER TABLE `dapp_message`
+     DROP COLUMN `back_message`,
+     ADD COLUMN `back_message`  varchar(1000) NULL COMMENT '回复消息' AFTER `update_time`;
+     */
+    private String backMessage;
+
     @TableField(exist = false)
     private String username;
 
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
index 83e0d1f..ec17b10 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -4,10 +4,7 @@
 import cc.mrbird.febs.dapp.dto.ApiMyTeammateInfoDto;
 import cc.mrbird.febs.dapp.dto.TeamListDto;
 import cc.mrbird.febs.dapp.entity.*;
-import cc.mrbird.febs.dapp.vo.AdminMemberCoinWithdrawVo;
-import cc.mrbird.febs.dapp.vo.AdminTeamInfoVo;
-import cc.mrbird.febs.dapp.vo.ApiMyTeammateInfoListVo;
-import cc.mrbird.febs.dapp.vo.TeamListVo;
+import cc.mrbird.febs.dapp.vo.*;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -81,4 +78,8 @@
     IPage<AdminMemberCoinWithdrawVo> getWithDrawListByDayInPage(Page<AdminMemberCoinWithdrawVo> page,  @Param("record")MemberCoinWithdrawEntity memberCoinWithdrawEntity);
 
     IPage<AdminTeamInfoVo> findTeamInfoListInPage(Page<AdminTeamInfoVo> page, @Param("record")DappMemberEntity dappMemberEntity);
+
+    IPage<DappMessageEntity> showMessageListInPage(Page<DappMessageEntity> page, @Param("record")DappMessageEntity dappMessageEntity);
+
+    IPage<ApiMessageListVo> getMessageListInPage(Page<ApiMessageListVo> page, @Param("record")DappMessageEntity dappMessageEntity);
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
index 26445ac..93a113b 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
@@ -114,4 +114,10 @@
     IPage<AdminMemberCoinWithdrawVo> getOutFlowListByDay(MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request);
 
     IPage<AdminTeamInfoVo> getTeamInfo(DappMemberEntity dappMemberEntity, QueryRequest request);
+
+    FebsResponse sendBackMessage(DappMessageEntity dappMessageEntity);
+
+    IPage<DappMessageEntity> showMessageList(DappMessageEntity dappMessageEntity, QueryRequest request);
+
+    IPage<ApiMessageListVo> getMessageListInPage(ApiMessageListDto apiMessageListDto);
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 36febc1..d90468a 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -1073,7 +1073,7 @@
             dappAccountMoneyChangeDao.insert(addFlow);
 
             dappAccountMoneyChangeDao.deleteById(dappAccountMoneyChangeEntity.getId());
-            return new FebsResponse().fail().message("操作成功");
+            return new FebsResponse().success().message("操作成功");
         }else{
             return new FebsResponse().fail().message("只允许回退【盈利分成】和【流水佣金】");
         }
@@ -1150,6 +1150,42 @@
         return adminTeamInfoVoIPage;
     }
 
+    @Override
+    public FebsResponse sendBackMessage(DappMessageEntity dappMessageEntity) {
+        if(ObjectUtil.isEmpty(dappMessageEntity.getBackMessage())){
+            return new FebsResponse().fail().message("回复不能为空。");
+        }
+        Long id = dappMessageEntity.getId();
+        DappMessageEntity dappMessage = dappMessageDao.selectById(id);
+        DappMessageEntity dappMessageEntityBack = new DappMessageEntity();
+        dappMessageEntityBack.setMemberId(dappMessage.getMemberId());
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append("客服回复:");
+        stringBuffer.append(dappMessageEntity.getBackMessage());
+        dappMessageEntityBack.setBackMessage(stringBuffer.toString());
+        dappMessageDao.insert(dappMessageEntityBack);
+        return new FebsResponse().success().message("操作成功");
+    }
+
+    @Override
+    public IPage<DappMessageEntity> showMessageList(DappMessageEntity dappMessageEntity, QueryRequest request) {
+        dappMessageEntity = dappMessageDao.selectById(dappMessageEntity.getId());
+        Page<DappMessageEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+        IPage<DappMessageEntity> dappMessageEntitys = dappMemberDao.showMessageListInPage(page, dappMessageEntity);
+        return dappMessageEntitys;
+    }
+
+    @Override
+    public IPage<ApiMessageListVo> getMessageListInPage(ApiMessageListDto apiMessageListDto) {
+        Page<ApiMessageListVo> page = new Page<>(apiMessageListDto.getPageNum(), apiMessageListDto.getPageSize());
+
+        DappMemberEntity member = LoginUserUtil.getAppUser();
+        DappMessageEntity dappMessageEntity = new DappMessageEntity();
+        dappMessageEntity.setMemberId(member.getId());
+        IPage<ApiMessageListVo> records = dappMemberDao.getMessageListInPage(page, dappMessageEntity);
+        return records;
+    }
+
     public String generateAsaToken(String token) {
         RSA rsa = new RSA(null, AppContants.PUBLIC_KEY);
         return rsa.encryptBase64(token + "_" + System.currentTimeMillis(), KeyType.PublicKey);
diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/ApiMessageListVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/ApiMessageListVo.java
new file mode 100644
index 0000000..37343f0
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/vo/ApiMessageListVo.java
@@ -0,0 +1,24 @@
+package cc.mrbird.febs.dapp.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel(value = "ApiMessageListVo", description = "客服消息记录")
+public class ApiMessageListVo {
+
+    @ApiModelProperty(value = "客户消息")
+    private String message;
+
+    @ApiModelProperty(value = "回复消息")
+    private String backMessage;
+
+    @ApiModelProperty(value = "时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date createTime;
+
+}
diff --git a/src/main/resources/mapper/dapp/DappMemberDao.xml b/src/main/resources/mapper/dapp/DappMemberDao.xml
index a0427e3..973ef8c 100644
--- a/src/main/resources/mapper/dapp/DappMemberDao.xml
+++ b/src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -290,6 +290,7 @@
         from dapp_message a
         left join dapp_member b on b.id = a.member_id
         <where>
+            a.back_message is null
             <if test="record.username !='' and record.username != null">
                 and b.username = #{record.username}
             </if>
@@ -335,4 +336,23 @@
         (a.id in (select id from dapp_member where FIND_IN_SET(#{record.inviteId}, referer_ids)))
         order  by a.create_time desc
     </select>
+
+    <select id="showMessageListInPage" resultType="cc.mrbird.febs.dapp.entity.DappMessageEntity">
+        select
+        a.*,b.username username
+        from dapp_message a
+        left join dapp_member b on b.id = a.member_id
+        where a.member_id = #{record.memberId}
+        order by create_time desc
+    </select>
+
+    <select id="getMessageListInPage" resultType="cc.mrbird.febs.dapp.vo.ApiMessageListVo">
+        select
+            a.message message,
+            a.back_message backMessage,
+            a.create_time createTime
+        from dapp_message a
+        where a.member_id = #{record.memberId}
+        order by a.create_time desc
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/dapp/message-list.html b/src/main/resources/templates/febs/views/dapp/message-list.html
index 278d599..4c8782c 100644
--- a/src/main/resources/templates/febs/views/dapp/message-list.html
+++ b/src/main/resources/templates/febs/views/dapp/message-list.html
@@ -58,6 +58,23 @@
         table.on('tool(memberMessageTable)', function (obj) {
             var data = obj.data,
                 layEvent = obj.event;
+            if (layEvent === 'sendBackMessage') {
+                febs.modal.open('回复', 'dappView/sendBackMessage/' + data.id, {
+                    btn: ['确认', '取消'],
+                    yes: function (index, layero) {
+                        $('#sendBackMessage-update').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+
+            if (layEvent === 'showMessage') {
+                febs.modal.open( '消息记录', 'dappView/showMessage/' + data.id, {
+                    maxmin: true,
+                });
+            }
         });
 
         table.on('sort(memberMessageTable)', function (obj) {
@@ -96,7 +113,15 @@
                             }
                         }, minWidth: 150, align: 'center'},
                     {field: 'message', title: '内容', minWidth: 130},
-                    {field: 'createTime', title: '创建时间', minWidth: 180}
+                    {field: 'createTime', title: '创建时间', minWidth: 180},
+                    {title: '回复',
+                        templet: function (d) {
+                            return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="sendBackMessage" shiro:hasPermission="user:sendBack">回复</button>'
+                        },minWidth: 100,align:'center'},
+                    {title: '查看记录',
+                        templet: function (d) {
+                            return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="showMessage" shiro:hasPermission="user:showMessage">查看记录</button>'
+                        },minWidth: 100,align:'center'},
                 ]]
             });
         }
diff --git a/src/main/resources/templates/febs/views/dapp/send-Back-Message.html b/src/main/resources/templates/febs/views/dapp/send-Back-Message.html
new file mode 100644
index 0000000..a4c60ea
--- /dev/null
+++ b/src/main/resources/templates/febs/views/dapp/send-Back-Message.html
@@ -0,0 +1,90 @@
+<style>
+    #sendBackMessage-update {
+        padding: 20px 25px 25px 0;
+    }
+
+    #sendBackMessage-update .layui-treeSelect .ztree li a, .ztree li span {
+        margin: 0 0 2px 3px !important;
+    }
+    #sendBackMessage-update #data-permission-tree-block {
+        border: 1px solid #eee;
+        border-radius: 2px;
+        padding: 3px 0;
+    }
+    #sendBackMessage-update .layui-treeSelect .ztree li span.button.switch {
+        top: 1px;
+        left: 3px;
+    }
+    #sendBackMessage-update img{
+        max-width:100px
+    }
+
+</style>
+<div class="layui-fluid" id="sendBackMessage-update">
+    <form class="layui-form" action="" lay-filter="sendBackMessage-update-form">
+        <div class="layui-form-item febs-hide">
+            <label class="layui-form-label febs-form-item-require">id:</label>
+            <div class="layui-input-block">
+                <input type="text" name="id" data-th-value="${dappMessage.id}">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label ">消息:</label>
+            <div class="layui-input-block">
+                <input type="text" name="message" data-th-id="${dappMessage.message}"class="layui-input" readonly/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label ">回复内容:</label>
+            <div class="layui-input-block">
+                <input type="text" name="backMessage" data-th-id="${dappMessage.backMessage}" class="layui-input"/>
+            </div>
+        </div>
+        <div class="layui-form-item febs-hide">
+            <button class="layui-btn" lay-submit="" lay-filter="sendBackMessage-update-form-submit" id="submit"></button>
+        </div>
+    </form>
+</div>
+
+<script data-th-inline="javascript">
+    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate'], function () {
+        var $ = layui.$,
+            febs = layui.febs,
+            layer = layui.layer,
+            formSelects = layui.formSelects,
+            treeSelect = layui.treeSelect,
+            form = layui.form,
+            laydate = layui.laydate,
+            eleTree = layui.eleTree,
+            dappMessage = [[${dappMessage}]],
+            $view = $('#sendBackMessage-update'),
+            validate = layui.validate;
+
+        form.render();
+        laydate.render({
+            elem: '#febs-form-group-date'
+        });
+
+        formSelects.render();
+
+
+        initUserValue();
+
+        function initUserValue() {
+            form.val("sendBackMessage-update-form", {
+                "backMessage": dappMessage.backMessage,
+                "message": dappMessage.message,
+                "id": dappMessage.id
+            });
+        }
+
+        form.on('submit(sendBackMessage-update-form-submit)', function (data) {
+            febs.post(ctx + 'member/sendBackMessage', data.field, function () {
+                layer.closeAll();
+                febs.alert.success('操作成功');
+                $('#febs-member').find('#reset').click();
+            });
+            return false;
+        });
+    });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/dapp/show-message-list.html b/src/main/resources/templates/febs/views/dapp/show-message-list.html
new file mode 100644
index 0000000..cce2a03
--- /dev/null
+++ b/src/main/resources/templates/febs/views/dapp/show-message-list.html
@@ -0,0 +1,51 @@
+<div className="layui-fluid layui-anim febs-anim" id="febs-message-child" lay-title="聊天记录">
+    <div className="layui-row febs-container">
+        <div className="layui-col-md12">
+            <div className="layui-card">
+                <div className="layui-card-body febs-table-full">
+                    <table lay-filter="messageTableChild" lay-data="{id: 'messageTableChild'}"></table>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script data-th-inline="none" type="text/javascript">
+    layui.use(['jquery', 'form', 'table', 'febs'], function () {
+        var $ = layui.jquery,
+            febs = layui.febs,
+            form = layui.form,
+            table = layui.table,
+            $view = $('#febs-message-child'),
+            tableIns;
+
+        form.render();
+
+        initTable();
+
+        function initTable() {
+            tableIns = febs.table.init({
+                elem: $view.find('table'),
+                id: 'messageTableChild',
+                url: ctx + 'member/showMessageList?parentId=1',
+                cols: [[
+                    {field: 'username', title: '用户名',
+                        templet: function (d) {
+                            if (d.backMessage != null) {
+                                return '<span>客服</span>'
+                            }else{
+                                if(d.username === null){
+                                    return '<span>游客</span>'
+                                }else{
+                                    return d.username
+                                }
+                            }
+                        }, minWidth: 150, align: 'center'},
+                    {field: 'message', title: '内容', minWidth: 130},
+                    {field: 'backMessage', title: '回复', minWidth: 130},
+                    {field: 'createTime', title: '创建时间', minWidth: 180},
+                ]]
+            });
+        }
+
+    })
+</script>
\ No newline at end of file

--
Gitblit v1.9.1