新增开源手机端服务模块

This commit is contained in:
thinkgem
2023-04-15 11:38:53 +08:00
parent eda6faa06b
commit 0ed161c986
37 changed files with 5520 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
# 温馨提示不建议直接修改此文件为了平台升级方便建议将需要修改的参数值复制到application.yml里进行覆盖该参数值。
#app:
# enabled: true

View File

@@ -0,0 +1,50 @@
/* Create Tables */
-- APP意见反馈
CREATE TABLE ${_prefix}app_comment
(
id varchar(64) NOT NULL,
category varchar(10),
content vargraphic(500),
contact vargraphic(200),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar(64) NOT NULL,
update_date timestamp NOT NULL,
remarks vargraphic(500),
create_by_name varchar(200),
device_info varchar(1000),
reply_date date,
reply_content vargraphic(500),
reply_user_code varchar(64),
reply_user_name varchar(200),
PRIMARY KEY (id)
);
-- APP升级版本
CREATE TABLE ${_prefix}app_upgrade
(
id varchar(64) NOT NULL,
app_code varchar(64),
up_title vargraphic(200),
up_content vargraphic(1000),
up_version numeric,
up_type char(1),
up_date date,
apk_url varchar(500),
res_url varchar(500),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar(64) NOT NULL,
update_date timestamp NOT NULL,
remarks vargraphic(500),
PRIMARY KEY (id)
);

View File

@@ -0,0 +1,50 @@
/* Create Tables */
-- APP意见反馈
CREATE TABLE ${_prefix}app_comment
(
id varchar(64) NOT NULL,
category varchar(10),
content varchar(500),
contact varchar(200),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar(64) NOT NULL,
create_date datetime NOT NULL,
update_by varchar(64) NOT NULL,
update_date datetime NOT NULL,
remarks varchar(500),
create_by_name varchar(200),
device_info varchar(1000),
reply_date date,
reply_content varchar(500),
reply_user_code varchar(64),
reply_user_name varchar(200),
PRIMARY KEY (id)
);
-- APP升级版本
CREATE TABLE ${_prefix}app_upgrade
(
id varchar(64) NOT NULL,
app_code varchar(64),
up_title varchar(200),
up_content varchar(1000),
up_version numeric,
up_type char(1),
up_date date,
apk_url varchar(500),
res_url varchar(500),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar(64) NOT NULL,
create_date datetime NOT NULL,
update_by varchar(64) NOT NULL,
update_date datetime NOT NULL,
remarks varchar(500),
PRIMARY KEY (id)
);

View File

@@ -0,0 +1,50 @@
/* Create Tables */
-- APP意见反馈
CREATE TABLE [${_prefix}app_comment]
(
[id] varchar(64) NOT NULL,
[category] varchar(10),
[content] nvarchar(500),
[contact] nvarchar(200),
[status] char(1) DEFAULT '0' NOT NULL,
[create_by] varchar(64) NOT NULL,
[create_date] datetime NOT NULL,
[update_by] varchar(64) NOT NULL,
[update_date] datetime NOT NULL,
[remarks] nvarchar(500),
[create_by_name] varchar(200),
[device_info] varchar(1000),
[reply_date] date,
[reply_content] nvarchar(500),
[reply_user_code] varchar(64),
[reply_user_name] varchar(200),
PRIMARY KEY ([id])
);
-- APP升级版本
CREATE TABLE [${_prefix}app_upgrade]
(
[id] varchar(64) NOT NULL,
[app_code] varchar(64),
[up_title] nvarchar(200),
[up_content] nvarchar(1000),
[up_version] numeric,
[up_type] char(1),
[up_date] date,
[apk_url] varchar(500),
[res_url] varchar(500),
[status] char(1) DEFAULT '0' NOT NULL,
[create_by] varchar(64) NOT NULL,
[create_date] datetime NOT NULL,
[update_by] varchar(64) NOT NULL,
[update_date] datetime NOT NULL,
[remarks] nvarchar(500),
PRIMARY KEY ([id])
);

View File

@@ -0,0 +1,51 @@
SET SESSION FOREIGN_KEY_CHECKS=0;
/* Create Tables */
-- APP意见反馈
CREATE TABLE ${_prefix}app_comment
(
id varchar(64) NOT NULL COMMENT '编号',
category varchar(10) COMMENT '问题分类',
content varchar(500) COMMENT '问题和意见',
contact varchar(200) COMMENT '联系方式',
status char(1) DEFAULT '0' NOT NULL COMMENT '状态0正常 1删除 2停用',
create_by varchar(64) NOT NULL COMMENT '创建者',
create_date datetime NOT NULL COMMENT '创建时间',
update_by varchar(64) NOT NULL COMMENT '更新者',
update_date datetime NOT NULL COMMENT '更新时间',
remarks varchar(500) COMMENT '备注信息',
create_by_name varchar(200) COMMENT '提问人员姓名',
device_info varchar(1000) COMMENT '设备信息',
reply_date date COMMENT '回复时间',
reply_content varchar(500) COMMENT '回复意见',
reply_user_code varchar(64) COMMENT '回复人员',
reply_user_name varchar(200) COMMENT '回复人员姓名',
PRIMARY KEY (id)
) COMMENT = 'APP意见反馈';
-- APP升级版本
CREATE TABLE ${_prefix}app_upgrade
(
id varchar(64) NOT NULL COMMENT '编号',
app_code varchar(64) COMMENT '应用编号',
up_title varchar(200) COMMENT '升级标题',
up_content varchar(1000) COMMENT '升级内容',
up_version numeric COMMENT '升级版本',
up_type char(1) COMMENT '升级类型',
up_date date COMMENT '发布时间',
apk_url varchar(500) COMMENT 'APK下载地址',
res_url varchar(500) COMMENT '资源下载地址',
status char(1) DEFAULT '0' NOT NULL COMMENT '状态0正常 1删除 2停用',
create_by varchar(64) NOT NULL COMMENT '创建者',
create_date datetime NOT NULL COMMENT '创建时间',
update_by varchar(64) NOT NULL COMMENT '更新者',
update_date datetime NOT NULL COMMENT '更新时间',
remarks varchar(500) COMMENT '备注信息',
PRIMARY KEY (id)
) COMMENT = 'APP升级版本';

View File

@@ -0,0 +1,88 @@
/* Create Tables */
-- APP意见反馈
CREATE TABLE ${_prefix}app_comment
(
id varchar2(64) NOT NULL,
category varchar2(10),
content nvarchar2(500),
contact nvarchar2(200),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar2(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar2(64) NOT NULL,
update_date timestamp NOT NULL,
remarks nvarchar2(500),
create_by_name varchar2(200),
device_info varchar2(1000),
reply_date date,
reply_content nvarchar2(500),
reply_user_code varchar2(64),
reply_user_name varchar2(200),
PRIMARY KEY (id)
);
-- APP升级版本
CREATE TABLE ${_prefix}app_upgrade
(
id varchar2(64) NOT NULL,
app_code varchar2(64),
up_title nvarchar2(200),
up_content nvarchar2(1000),
up_version number,
up_type char(1),
up_date date,
apk_url varchar2(500),
res_url varchar2(500),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar2(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar2(64) NOT NULL,
update_date timestamp NOT NULL,
remarks nvarchar2(500),
PRIMARY KEY (id)
);
/* Comments */
COMMENT ON TABLE ${_prefix}app_comment IS 'APP意见反馈';
COMMENT ON COLUMN ${_prefix}app_comment.id IS '编号';
COMMENT ON COLUMN ${_prefix}app_comment.category IS '问题分类';
COMMENT ON COLUMN ${_prefix}app_comment.content IS '问题和意见';
COMMENT ON COLUMN ${_prefix}app_comment.contact IS '联系方式';
COMMENT ON COLUMN ${_prefix}app_comment.status IS '状态0正常 1删除 2停用';
COMMENT ON COLUMN ${_prefix}app_comment.create_by IS '创建者';
COMMENT ON COLUMN ${_prefix}app_comment.create_date IS '创建时间';
COMMENT ON COLUMN ${_prefix}app_comment.update_by IS '更新者';
COMMENT ON COLUMN ${_prefix}app_comment.update_date IS '更新时间';
COMMENT ON COLUMN ${_prefix}app_comment.remarks IS '备注信息';
COMMENT ON COLUMN ${_prefix}app_comment.create_by_name IS '提问人员姓名';
COMMENT ON COLUMN ${_prefix}app_comment.device_info IS '设备信息';
COMMENT ON COLUMN ${_prefix}app_comment.reply_date IS '回复时间';
COMMENT ON COLUMN ${_prefix}app_comment.reply_content IS '回复意见';
COMMENT ON COLUMN ${_prefix}app_comment.reply_user_code IS '回复人员';
COMMENT ON COLUMN ${_prefix}app_comment.reply_user_name IS '回复人员姓名';
COMMENT ON TABLE ${_prefix}app_upgrade IS 'APP升级版本';
COMMENT ON COLUMN ${_prefix}app_upgrade.id IS '编号';
COMMENT ON COLUMN ${_prefix}app_upgrade.app_code IS '应用编号';
COMMENT ON COLUMN ${_prefix}app_upgrade.up_title IS '升级标题';
COMMENT ON COLUMN ${_prefix}app_upgrade.up_content IS '升级内容';
COMMENT ON COLUMN ${_prefix}app_upgrade.up_version IS '升级版本';
COMMENT ON COLUMN ${_prefix}app_upgrade.up_type IS '升级类型';
COMMENT ON COLUMN ${_prefix}app_upgrade.up_date IS '发布时间';
COMMENT ON COLUMN ${_prefix}app_upgrade.apk_url IS 'APK下载地址';
COMMENT ON COLUMN ${_prefix}app_upgrade.res_url IS '资源下载地址';
COMMENT ON COLUMN ${_prefix}app_upgrade.status IS '状态0正常 1删除 2停用';
COMMENT ON COLUMN ${_prefix}app_upgrade.create_by IS '创建者';
COMMENT ON COLUMN ${_prefix}app_upgrade.create_date IS '创建时间';
COMMENT ON COLUMN ${_prefix}app_upgrade.update_by IS '更新者';
COMMENT ON COLUMN ${_prefix}app_upgrade.update_date IS '更新时间';
COMMENT ON COLUMN ${_prefix}app_upgrade.remarks IS '备注信息';

View File

@@ -0,0 +1,88 @@
/* Create Tables */
-- APP意见反馈
CREATE TABLE ${_prefix}app_comment
(
id varchar(64) NOT NULL,
category varchar(10),
content varchar(500),
contact varchar(200),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar(64) NOT NULL,
update_date timestamp NOT NULL,
remarks varchar(500),
create_by_name varchar(200),
device_info varchar(1000),
reply_date date,
reply_content varchar(500),
reply_user_code varchar(64),
reply_user_name varchar(200),
PRIMARY KEY (id)
) WITHOUT OIDS;
-- APP升级版本
CREATE TABLE ${_prefix}app_upgrade
(
id varchar(64) NOT NULL,
app_code varchar(64),
up_title varchar(200),
up_content varchar(1000),
up_version numeric,
up_type char(1),
up_date date,
apk_url varchar(500),
res_url varchar(500),
status char(1) DEFAULT '0' NOT NULL,
create_by varchar(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar(64) NOT NULL,
update_date timestamp NOT NULL,
remarks varchar(500),
PRIMARY KEY (id)
) WITHOUT OIDS;
/* Comments */
COMMENT ON TABLE ${_prefix}app_comment IS 'APP意见反馈';
COMMENT ON COLUMN ${_prefix}app_comment.id IS '编号';
COMMENT ON COLUMN ${_prefix}app_comment.category IS '问题分类';
COMMENT ON COLUMN ${_prefix}app_comment.content IS '问题和意见';
COMMENT ON COLUMN ${_prefix}app_comment.contact IS '联系方式';
COMMENT ON COLUMN ${_prefix}app_comment.status IS '状态0正常 1删除 2停用';
COMMENT ON COLUMN ${_prefix}app_comment.create_by IS '创建者';
COMMENT ON COLUMN ${_prefix}app_comment.create_date IS '创建时间';
COMMENT ON COLUMN ${_prefix}app_comment.update_by IS '更新者';
COMMENT ON COLUMN ${_prefix}app_comment.update_date IS '更新时间';
COMMENT ON COLUMN ${_prefix}app_comment.remarks IS '备注信息';
COMMENT ON COLUMN ${_prefix}app_comment.create_by_name IS '提问人员姓名';
COMMENT ON COLUMN ${_prefix}app_comment.device_info IS '设备信息';
COMMENT ON COLUMN ${_prefix}app_comment.reply_date IS '回复时间';
COMMENT ON COLUMN ${_prefix}app_comment.reply_content IS '回复意见';
COMMENT ON COLUMN ${_prefix}app_comment.reply_user_code IS '回复人员';
COMMENT ON COLUMN ${_prefix}app_comment.reply_user_name IS '回复人员姓名';
COMMENT ON TABLE ${_prefix}app_upgrade IS 'APP升级版本';
COMMENT ON COLUMN ${_prefix}app_upgrade.id IS '编号';
COMMENT ON COLUMN ${_prefix}app_upgrade.app_code IS '应用编号';
COMMENT ON COLUMN ${_prefix}app_upgrade.up_title IS '升级标题';
COMMENT ON COLUMN ${_prefix}app_upgrade.up_content IS '升级内容';
COMMENT ON COLUMN ${_prefix}app_upgrade.up_version IS '升级版本';
COMMENT ON COLUMN ${_prefix}app_upgrade.up_type IS '升级类型';
COMMENT ON COLUMN ${_prefix}app_upgrade.up_date IS '发布时间';
COMMENT ON COLUMN ${_prefix}app_upgrade.apk_url IS 'APK下载地址';
COMMENT ON COLUMN ${_prefix}app_upgrade.res_url IS '资源下载地址';
COMMENT ON COLUMN ${_prefix}app_upgrade.status IS '状态0正常 1删除 2停用';
COMMENT ON COLUMN ${_prefix}app_upgrade.create_by IS '创建者';
COMMENT ON COLUMN ${_prefix}app_upgrade.create_date IS '创建时间';
COMMENT ON COLUMN ${_prefix}app_upgrade.update_by IS '更新者';
COMMENT ON COLUMN ${_prefix}app_upgrade.update_date IS '更新时间';
COMMENT ON COLUMN ${_prefix}app_upgrade.remarks IS '备注信息';

View File

@@ -0,0 +1,10 @@
4.2.3
4.3.0
5.0.0
5.0.1
5.0.2
5.1.0
5.2.0
5.2.1
5.3.0
5.3.1

View File

@@ -0,0 +1,15 @@
<?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="com.jeesite.modules.app.dao.AppCommentDao">
<!-- 查询数据
<select id="findList" resultType="AppComment">
SELECT ${sqlMap.column.toSql()}
FROM ${sqlMap.table.toSql()}
<where>
${sqlMap.where.toSql()}
</where>
ORDER BY ${sqlMap.order.toSql()}
</select> -->
</mapper>

View File

@@ -0,0 +1,15 @@
<?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="com.jeesite.modules.app.dao.AppUpgradeDao">
<!-- 查询数据
<select id="findList" resultType="AppUpgrade">
SELECT ${sqlMap.column.toSql()}
FROM ${sqlMap.table.toSql()}
<where>
${sqlMap.where.toSql()}
</where>
ORDER BY ${sqlMap.order.toSql()}
</select> -->
</mapper>

View File

@@ -0,0 +1,175 @@
<% layout('/layouts/default.html', {title: '意见管理', libs: ['validate','fileupload']}){ %>
<div class="main-content">
<div class="box box-main">
<div class="box-header with-border">
<div class="box-title">
<i class="fa icon-note"></i> ${text(appComment.isNewRecord ? '新增意见' : '编辑意见')}
</div>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div>
</div>
<#form:form id="inputForm" model="${appComment}" action="${ctx}/app/appComment/save" method="post" class="form-horizontal nofocus">
<div class="box-body">
<div class="form-unit">${text('基本信息')}</div>
<#form:hidden path="id"/>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required ">*</span> ${text('问题分类')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:select path="category" dictType="app_comment_category" class="form-control required" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required ">*</span> ${text('问题和意见')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:textarea path="content" rows="4" minlength="10" maxlength="500" class="form-control required"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> ${text('联系方式')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:input path="contact" maxlength="200" class="form-control"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2">
<span class="required hide">*</span> ${text('图片上传')}</label>
<div class="col-sm-8">
<#form:fileupload id="uploadImage" bizKey="${appComment.id}" bizType="appComment_image"
uploadType="image" class="" readonly="false" preview="true"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> ${text('设备信息')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:textarea path="deviceInfo" rows="4" minlength="10" maxlength="500" class="form-control " readonly="true"/>
</div>
</div>
</div>
</div>
<div class="row ${isBlank(appComment.createDate)?'hide':''}">
<div class="col-xs-4">
<div class="form-group">
<label class="control-label col-sm-6" title="">
<span class="required hide">*</span> ${text('回复时间')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-6 control-text">
${appComment.createDate, 'yyyy-MM-dd'}
</div>
</div>
</div>
<div class="col-xs-4">
<div class="form-group">
<label class="control-label col-sm-3" title="">
<span class="required hide">*</span> ${text('回复人员')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-6 control-text">
${appComment.createByName}
</div>
</div>
</div>
</div>
<div class="form-unit">${text('回复信息')}</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> ${text('回复意见')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:textarea path="replyContent" maxlength="500" rows="5" class="form-control"/>
</div>
</div>
</div>
</div>
<div class="row ${isBlank(appComment.replyDate)?'hide':''}">
<div class="col-xs-4">
<div class="form-group">
<label class="control-label col-sm-6" title="">
<span class="required hide">*</span> ${text('回复时间')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-6 control-text">
${appComment.replyDate, 'yyyy-MM-dd'}
</div>
</div>
</div>
<div class="col-xs-4">
<div class="form-group">
<label class="control-label col-sm-3" title="">
<span class="required hide">*</span> ${text('回复人员')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-6 control-text">
${appComment.replyUserName}
</div>
</div>
</div>
</div>
<div class="form-unit">${text('其它信息')}</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> ${text('备注信息')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:textarea path="remarks" rows="4" maxlength="500" class="form-control"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required ">*</span> ${text('修改状态')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:radio path="status" dictType="app_comment_status" class="form-control required" />
</div>
</div>
</div>
</div>
</div>
<div class="box-footer">
<div class="row">
<div class="col-sm-offset-2 col-sm-10">
<% if (hasPermi('app:appComment:edit')){ %>
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>&nbsp;
<% } %>
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
</div>
</div>
</div>
</#form:form>
</div>
</div>
<% } %>
<script>
$("#inputForm").validate({
submitHandler: function(form){
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);
if(data.result == Global.TRUE){
js.closeCurrentTabPage(function(contentWindow){
contentWindow.page();
});
}
}, "json");
}
});
</script>

View File

@@ -0,0 +1,101 @@
<% layout('/layouts/default.html', {title: '意见管理', libs: ['dataGrid']}){ %>
<div class="main-content">
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa icon-notebook"></i> ${text('意见管理')}
</div>
<div class="box-tools pull-right">
<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
<% if(hasPermi('app:appComment:edit')){ %>
<a href="${ctx}/app/appComment/form" class="btn btn-default btnTool" title="${text('新增意见')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
<% } %>
<a href="#" class="btn btn-default" id="btnSetting" title="${text('设置')}"><i class="fa fa-navicon"></i></a>
</div>
</div>
<div class="box-body">
<#form:form id="searchForm" model="${appComment}" action="${ctx}/app/appComment/listData" method="post" class="form-inline hide"
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
<div class="form-group">
<label class="control-label">${text('问题分类')}</label>
<div class="control-inline width-120">
<#form:select path="category" dictType="app_comment_category" blankOption="true" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('问题和意见')}</label>
<div class="control-inline">
<#form:input path="content" maxlength="500" class="form-control width-120"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('联系方式')}</label>
<div class="control-inline">
<#form:input path="contact" maxlength="200" class="form-control width-120"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('状态')}</label>
<div class="control-inline width-90">
<#form:select path="status" dictType="app_comment_status" blankOption="true" class="form-control isQuick"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('回复人员')}</label>
<div class="control-inline width-120">
<#form:listselect id="userSelect" title="用户选择" path="replyUserCode"
url="${ctx}/sys/empUser/empUserSelect" allowClear="false"
checkbox="false" itemCode="userCode" itemName="userName"/>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>
<div id="dataGridPage"></div>
</div>
</div>
</div>
<% } %>
<script>
// 初始化DataGrid对象
$('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
columnModel: [
{header:'${text("问题和意见")}', name:'content', index:'a.content', width:250, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '<a href="${ctx}/app/appComment/form?id='+row.id+'" class="btnList" data-title="${text("编辑意见")}">'+(val||row.id)+'</a>';
}},
{header:'${text("问题分类")}', name:'category', index:'a.category', width:100, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('app_comment_category')}, val, '${text("未知")}', true);
}},
{header:'${text("联系方式")}', name:'contact', index:'a.contact', width:150, align:"center"},
{header:'${text("状态")}', name:'status', index:'a.status', width:100, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('app_comment_status')}, val, '${text("未知")}', true);
}},
{header:'${text("提问时间")}', name:'createDate', index:'a.create_date', width:150, align:"center"},
{header:'${text("提问人员")}', name:'createByName', index:'a.create_by_name', width:150, align:"center"},
{header:'${text("回复时间")}', name:'replyDate', index:'a.reply_date', width:150, align:"center"},
{header:'${text("回复意见")}', name:'replyContent', index:'a.reply_content', width:150, align:"left"},
{header:'${text("回复人员")}', name:'replyUserName', index:'a.reply_user_name', width:150, align:"center"},
{header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){
var actions = [];
//<% if(hasPermi('app:appComment:edit')){ %>
actions.push('<a href="${ctx}/app/appComment/form?id='+row.id+'" class="btnList" title="${text("编辑意见")}"><i class="fa fa-pencil"></i></a>&nbsp;');
if (row.status == Global.STATUS_NORMAL){
actions.push('<a href="${ctx}/app/appComment/disable?id='+row.id+'" class="btnList" title="${text("停用意见")}" data-confirm="${text("确认要停用该意见吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
} else if (row.status == Global.STATUS_DISABLE){
actions.push('<a href="${ctx}/app/appComment/enable?id='+row.id+'" class="btnList" title="${text("启用意见")}" data-confirm="${text("确认要启用该意见吗?")}"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
}
actions.push('<a href="${ctx}/app/appComment/delete?id='+row.id+'" class="btnList" title="${text("删除意见")}" data-confirm="${text("确认要删除该意见吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
//<% } %>
return actions.join('');
}}
],
// 加载成功后执行事件
ajaxSuccess: function(data){
}
});
</script>

View File

@@ -0,0 +1,147 @@
<% layout('/layouts/default.html', {title: '版本管理', libs: ['validate']}){ %>
<div class="main-content">
<div class="box box-main">
<div class="box-header with-border">
<div class="box-title">
<i class="fa icon-note"></i> ${text(appUpgrade.isNewRecord ? '新增版本' : '编辑版本')}
</div>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div>
</div>
<#form:form id="inputForm" model="${appUpgrade}" action="${ctx}/app/appUpgrade/save" method="post" class="form-horizontal">
<div class="box-body">
<div class="form-unit">${text('基本信息')}</div>
<#form:hidden path="id"/>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> ${text('升级标题')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:input path="upTitle" maxlength="200" class="form-control"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> ${text('应用代号')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:select path="appCode" dictType="app_code" blankOption="true" class="form-control" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> ${text('版本号码')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-4">
<#form:input path="upVersion" class="form-control digits"/>
</div>
<div class="col-sm-4 control-text" style="color:#888">
内部版本号,请填写数字
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> ${text('升级类型')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:select path="upType" dictType="app_upgrade_type" blankOption="true" class="form-control" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> ${text('发布时间')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:input path="upDate" readonly="true" maxlength="20" class="form-control laydate"
dataFormat="date" data-type="date" data-format="yyyy-MM-dd"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> ${text('升级内容')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:textarea path="upContent" maxlength="1000" rows="4" class="form-control"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> ${text('APK下载地址')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:input path="apkUrl" maxlength="500" class="form-control"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> ${text('资源下载地址')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:input path="resUrl" maxlength="500" class="form-control"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> ${text('备注信息')}<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<#form:textarea path="remarks" rows="4" maxlength="500" class="form-control"/>
</div>
</div>
</div>
</div>
</div>
<div class="box-footer">
<div class="row">
<div class="col-sm-offset-2 col-sm-10">
<% if (hasPermi('app:appUpgrade:edit')){ %>
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>&nbsp;
<% } %>
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
</div>
</div>
</div>
</#form:form>
</div>
</div>
<% } %>
<script>
$("#inputForm").validate({
submitHandler: function(form){
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);
if(data.result == Global.TRUE){
js.closeCurrentTabPage(function(contentWindow){
contentWindow.page();
});
}
}, "json");
}
});
</script>

View File

@@ -0,0 +1,101 @@
<% layout('/layouts/default.html', {title: '版本管理', libs: ['dataGrid']}){ %>
<div class="main-content">
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa icon-notebook"></i> ${text('版本管理')}
</div>
<div class="box-tools pull-right">
<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
<% if(hasPermi('app:appUpgrade:edit')){ %>
<a href="${ctx}/app/appUpgrade/form" class="btn btn-default btnTool" title="${text('新增版本')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
<% } %>
<a href="#" class="btn btn-default" id="btnSetting" title="${text('设置')}"><i class="fa fa-navicon"></i></a>
</div>
</div>
<div class="box-body">
<#form:form id="searchForm" model="${appUpgrade}" action="${ctx}/app/appUpgrade/listData" method="post" class="form-inline hide"
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
<div class="form-group">
<label class="control-label">${text('应用代号')}</label>
<div class="control-inline width-120">
<#form:select path="appCode" dictType="app_code" blankOption="true" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('升级标题')}</label>
<div class="control-inline">
<#form:input path="upTitle" maxlength="200" class="form-control width-120"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('升级类型')}</label>
<div class="control-inline width-120">
<#form:select path="upType" dictType="app_upgrade_type" blankOption="true" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('发布时间')}</label>
<div class="control-inline">
<#form:input path="upDate" readonly="true" maxlength="20" class="form-control laydate width-datetime"
dataFormat="date" data-type="date" data-format="yyyy-MM-dd"/>
</div>
</div>
<div class="form-group">
<label class="control-label">${text('状态')}</label>
<div class="control-inline width-90">
<#form:select path="status" dictType="sys_search_status" blankOption="true" class="form-control isQuick"/>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
<button type="reset" class="btn btn-default btn-sm isQuick">${text('重置')}</button>
</div>
</#form:form>
<table id="dataGrid"></table>
<div id="dataGridPage"></div>
</div>
</div>
</div>
<% } %>
<script>
// 初始化DataGrid对象
$('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
columnModel: [
{header:'${text("升级标题")}', name:'upTitle', index:'a.up_title', width:350, align:"left", frozen:true, formatter: function(val, obj, row, act){
return '<a href="${ctx}/app/appUpgrade/form?id='+row.id+'" class="btnList" data-title="${text("编辑版本")}">'+(val||row.id)+'</a>';
}},
{header:'${text("应用代号")}', name:'appCode', index:'a.app_code', width:150, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('app_code')}, val, val, true);
}},
{header:'${text("版本号码")}', name:'upVersion', index:'a.up_version', width:100, align:"center"},
{header:'${text("升级类型")}', name:'upType', index:'a.up_type', width:150, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('app_upgrade_type')}, val, '${text("未知")}', true);
}},
{header:'${text("发布时间")}', name:'upDate', index:'a.up_date', width:150, align:"center"},
{header:'${text("升级内容")}', name:'upContent', index:'a.up_content', width:250, align:"left"},
{header:'${text("状态")}', name:'status', index:'a.status', width:100, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel(${@DictUtils.getDictListJson('sys_search_status')}, val, '${text("未知")}', true);
}},
{header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
{header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){
var actions = [];
//<% if(hasPermi('app:appUpgrade:edit')){ %>
actions.push('<a href="${ctx}/app/appUpgrade/form?id='+row.id+'" class="btnList" title="${text("编辑版本")}"><i class="fa fa-pencil"></i></a>&nbsp;');
if (row.status == Global.STATUS_NORMAL){
actions.push('<a href="${ctx}/app/appUpgrade/disable?id='+row.id+'" class="btnList" title="${text("停用版本")}" data-confirm="${text("确认要停用该版本吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
} else if (row.status == Global.STATUS_DISABLE){
actions.push('<a href="${ctx}/app/appUpgrade/enable?id='+row.id+'" class="btnList" title="${text("启用版本")}" data-confirm="${text("确认要启用该版本吗?")}"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
}
actions.push('<a href="${ctx}/app/appUpgrade/delete?id='+row.id+'" class="btnList" title="${text("删除版本")}" data-confirm="${text("确认要删除该版本吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
//<% } %>
return actions.join('');
}}
],
// 加载成功后执行事件
ajaxSuccess: function(data){
}
});
</script>