添加网站文件
This commit is contained in:
271
application/admin/view/notice_setting/index.html
Normal file
271
application/admin/view/notice_setting/index.html
Normal file
@@ -0,0 +1,271 @@
|
||||
{layout name="layout1" /}
|
||||
|
||||
<style>
|
||||
.layui-table-cell {
|
||||
height:auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
|
||||
<div class="layui-colla-item">
|
||||
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
|
||||
<div class="layui-colla-content layui-show">
|
||||
<p>*平台配置在各个场景下的通知发送方式和内容模板。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
|
||||
<ul class="layui-tab-title">
|
||||
<li data-type='1' class="layui-this">通知会员</li>
|
||||
<li data-type='2' >通知平台</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<!--通知会员-->
|
||||
<div class="layui-tab-item layui-show ">
|
||||
{include file="notice_setting/notice_user"/}
|
||||
</div>
|
||||
|
||||
<!--通知平台-->
|
||||
<div class="layui-tab-item">
|
||||
{include file="notice_setting/notice_platform"/}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/html" id="systemTpl">
|
||||
{{# if((d.support).includes(1)){ }}
|
||||
<div>
|
||||
{{# if(d.system_notice.status == 1){ }}
|
||||
<a class="layui-btn layui-btn layui-btn-sm operation-btn">已开启</a>
|
||||
{{# } else { }}
|
||||
<a class="layui-btn layui-btn-primary layui-btn-sm operation-btn">已关闭</a>
|
||||
{{# } }}
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm operation-btn" lay-event="system_record">通知记录</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm operation-btn" lay-event="system">设置</a>
|
||||
</div>
|
||||
{{# } else { }}
|
||||
-
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="smsTpl">
|
||||
{{# if((d.support).includes(2)){ }}
|
||||
<div>
|
||||
{{# if(d.sms_notice.status == 1){ }}
|
||||
<a class="layui-btn layui-btn layui-btn-sm operation-btn">已开启</a>
|
||||
{{# } else { }}
|
||||
<a class="layui-btn layui-btn-primary layui-btn-sm operation-btn">已关闭</a>
|
||||
{{# } }}
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm operation-btn" lay-event="sms_record">通知记录</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm operation-btn" lay-event="sms">设置</a>
|
||||
</div>
|
||||
{{# } else { }}
|
||||
-
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="oaTpl">
|
||||
{{# if((d.support).includes(3)){ }}
|
||||
<div>
|
||||
{{# if(d.oa_notice.status == 1){ }}
|
||||
<a class="layui-btn layui-btn layui-btn-sm operation-btn">已开启</a>
|
||||
{{# } else { }}
|
||||
<a class="layui-btn layui-btn-primary layui-btn-sm operation-btn">已关闭</a>
|
||||
{{# } }}
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm operation-btn" lay-event="oa_record">通知记录</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm operation-btn" lay-event="oa">设置</a>
|
||||
</div>
|
||||
{{# } else { }}
|
||||
-
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="mnpTpl">
|
||||
{{# if((d.support).includes(4)){ }}
|
||||
<div>
|
||||
{{# if(d.mnp_notice.status == 1){ }}
|
||||
<a class="layui-btn layui-btn layui-btn-sm operation-btn">已开启</a>
|
||||
{{# } else { }}
|
||||
<a class="layui-btn layui-btn-primary layui-btn-sm operation-btn">已关闭</a>
|
||||
{{# } }}
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm operation-btn" lay-event="mnp_record">通知记录</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm operation-btn" lay-event="mnp">设置</a>
|
||||
</div>
|
||||
{{# } else { }}
|
||||
-
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
layui.config({
|
||||
version:"{$front_version}",
|
||||
base: '/static/plug/layui-admin/dist/layuiadmin/'
|
||||
}).extend({
|
||||
index: 'lib/index'
|
||||
}).use(['index', 'element', 'like', 'table'], function () {
|
||||
var $ = layui.$
|
||||
, form = layui.form
|
||||
, table = layui.table
|
||||
, element = layui.element
|
||||
, like = layui.like;
|
||||
|
||||
getLists(1);
|
||||
|
||||
//切换列表
|
||||
element.on('tab(tab-all)', function (data) {
|
||||
form.render('select');
|
||||
var type = $(this).attr('data-type');
|
||||
getLists(type);
|
||||
});
|
||||
|
||||
|
||||
//列表
|
||||
function getLists(type) {
|
||||
|
||||
var elem = '#user-lists';
|
||||
if (type == 2) {
|
||||
elem = '#platform-lists';
|
||||
}
|
||||
|
||||
table.render({
|
||||
elem: elem
|
||||
, url: '{:url("noticeSetting/index")}?type='+type
|
||||
, cols: [[
|
||||
{field: 'scene', title: '通知类型',width:140}
|
||||
, {field: 'desc', title: '通知场景说明', width:140 }
|
||||
, {field: 'system_notice', title: '系统通知',width:240, align: 'center', templet:'#systemTpl'}
|
||||
, {field: 'sms_notice', title: '短信通知',width:240, align: 'center', templet:'#smsTpl'}
|
||||
, {field: 'oa_notice', title: '微信模板消息',width:240, align: 'center', templet:'#oaTpl'}
|
||||
, {field: 'mnp_notice', title: '微信小程序提醒',width:240, align: 'center', templet:'#mnpTpl'}
|
||||
]]
|
||||
, text: {none: '暂无数据!'}
|
||||
, parseData: function (res) {
|
||||
return {
|
||||
"code": res.code,
|
||||
"msg": res.msg,
|
||||
"count": res.data.count,
|
||||
"data": res.data.lists,
|
||||
};
|
||||
}
|
||||
,done: function(res, curr, count){
|
||||
$(".layui-table-main tr").each(function (index, val) {
|
||||
$($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
|
||||
$($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//操作
|
||||
var active = {
|
||||
//系统通知
|
||||
system: function (obj) {
|
||||
setPage('系统通知设置', obj.data.id, 'system');
|
||||
},
|
||||
//系统通知记录
|
||||
system_record: function (obj) {
|
||||
recordPage('系统通知记录', obj.data.id, 1);
|
||||
},
|
||||
|
||||
//短信通知
|
||||
sms: function (obj) {
|
||||
setPage('短信通知设置', obj.data.id, 'sms');
|
||||
},
|
||||
//知信通知记录
|
||||
sms_record: function (obj) {
|
||||
recordPage('短信通知记录', obj.data.id, 2);
|
||||
},
|
||||
|
||||
//公众号通知
|
||||
oa: function (obj) {
|
||||
setPage('公众号通知设置', obj.data.id, 'oa');
|
||||
},
|
||||
//微信模板通知记录
|
||||
oa_record: function (obj) {
|
||||
recordPage('微信模板通知记录', obj.data.id, 3);
|
||||
},
|
||||
|
||||
//小程序
|
||||
mnp: function (obj) {
|
||||
setPage('小程序通知设置', obj.data.id, 'mnp');
|
||||
},
|
||||
//微信小程序通知记录
|
||||
mnp_record: function (obj) {
|
||||
recordPage('微信小程序通知记录', obj.data.id, 4);
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
//设置页面
|
||||
function setPage(title, id, type) {
|
||||
layer.open({
|
||||
type: 2
|
||||
,title: title
|
||||
,content: '{:url("noticeSetting/set")}?id='+id+'&type='+type
|
||||
,area: ['90%','90%']
|
||||
,btn: ['确定', '取消']
|
||||
,yes: function(index, layero) {
|
||||
var iframeWindow = window['layui-layer-iframe'+ index]
|
||||
,submitID = 'addSubmit'
|
||||
,submit = layero.find('iframe').contents().find('#'+ submitID);
|
||||
//监听提交
|
||||
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
|
||||
var field = data.field;
|
||||
like.ajax({
|
||||
url:'{:url("noticeSetting/set")}',
|
||||
data:field,
|
||||
type:"post",
|
||||
success:function(res) {
|
||||
if(res.code === 1) {
|
||||
layui.layer.msg(res.msg, { offset:'15px', icon:1, time:1000 });
|
||||
layer.close(index);
|
||||
table.reload('user-lists');
|
||||
table.reload('platform-lists');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
submit.trigger('click');
|
||||
}
|
||||
});
|
||||
}
|
||||
// 通知记录界面
|
||||
function recordPage(title, id, send_type) {
|
||||
layer.open({
|
||||
type: 2
|
||||
,title: title
|
||||
,content: '{:url("noticeSetting/record")}?id='+id+'&send_type='+send_type
|
||||
,area: ['90%','90%']
|
||||
,btn: ['确定', '取消']
|
||||
,yes: function(index, layero) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 监听表格右侧工具条
|
||||
table.on('tool(user-lists)', function(obj) {
|
||||
var type = obj.event;
|
||||
active[type] ? active[type].call(this, obj) : '';
|
||||
});
|
||||
|
||||
table.on('tool(platform-lists)', function(obj) {
|
||||
var type = obj.event;
|
||||
active[type] ? active[type].call(this, obj) : '';
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||
<table id="platform-lists" lay-filter="platform-lists"></table>
|
||||
</div>
|
||||
6
application/admin/view/notice_setting/notice_user.html
Normal file
6
application/admin/view/notice_setting/notice_user.html
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||
|
||||
<table id="user-lists" lay-filter="user-lists"></table>
|
||||
|
||||
</div>
|
||||
142
application/admin/view/notice_setting/record.html
Normal file
142
application/admin/view/notice_setting/record.html
Normal file
@@ -0,0 +1,142 @@
|
||||
{layout name="layout1" /}
|
||||
|
||||
<style>
|
||||
.layui-table-cell {
|
||||
height:auto;
|
||||
}
|
||||
</style>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
<!--搜索-->
|
||||
<div class="layui-form">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">通知内容</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="content" id="content" class="layui-input" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">通知时间</label>
|
||||
<div class="layui-input-inline" style="width: 300px;">
|
||||
<input type="text" name="create_time" id="create_time" class="layui-input" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-submit lay-filter="search">查询</button>
|
||||
<button class="layui-btn layui-btn-primary layui-btn-sm" lay-submit lay-filter="reset">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<table id="record" lay-filter="record"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="user-info">
|
||||
{{# if(d.receive_type == 1){ }}
|
||||
{{ d.userInfo }}
|
||||
{{# } else if(d.receive_type == 2 && d.userInfo != null) { }}
|
||||
{{ d.userInfo.nickname }}({{ d.userInfo.sn }})
|
||||
{{# } else if(d.receive_type == 3 && d.userInfo != null) { }}
|
||||
{{ d.userInfo }}
|
||||
{{# } }}
|
||||
</script>
|
||||
<script type="text/html" id="operation">
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" lay-event="del">删除</a>
|
||||
</script>
|
||||
<script>
|
||||
layui.config({
|
||||
version:"{$front_version}",
|
||||
base: '/static/plug/' //静态资源所在路径
|
||||
}).extend({
|
||||
treeTable: 'treetable-lay/treeTable'
|
||||
,like: 'layui-admin/dist/layuiadmin/modules/like',
|
||||
}).use(['form', 'laydate', 'table', 'jquery', 'layer', 'like'], function(){
|
||||
var $ = layui.jquery;
|
||||
var form = layui.form;
|
||||
var table = layui.table;
|
||||
var laydate = layui.laydate;
|
||||
var layer = layui.layer;
|
||||
var like = layui.like;
|
||||
|
||||
laydate.render({
|
||||
elem: '#create_time',
|
||||
type: 'datetime',
|
||||
range: '#'
|
||||
});
|
||||
|
||||
var tableIns = table.render({
|
||||
elem: '#record'
|
||||
,url: '{:url("noticeSetting/record")}?id={$param.id}&&send_type={$param.send_type}'
|
||||
,page: true //开启分页
|
||||
, text: {
|
||||
none: '暂无数据'
|
||||
}
|
||||
,cols: [[ //表头
|
||||
{field: 'sceneDesc', title: '通知类型', width:220, align: 'center'}
|
||||
,{title: '通知对象', width:250 , templet: '#user-info', align: 'center'}
|
||||
,{field: 'content', title: '通知内容', width:250 , align: 'center'}
|
||||
,{ title: '其他信息', width:180 , align: 'center'}
|
||||
,{ field: 'extra', title: '通知反馈', width:180 , align: 'center'}
|
||||
,{field: 'create_time', title: '通知时间', width:180 , align: 'center'}
|
||||
,{field: 'sign', title: '操作', fixed: 'right', toolbar: '#operation' , align: 'center'}
|
||||
]]
|
||||
,parseData: function(res){ //res 即为原始返回的数据
|
||||
return {
|
||||
"code": res.code, //解析接口状态
|
||||
"msg": res.msg, //解析提示文本
|
||||
"count": res.data.count, //解析数据长度
|
||||
"data": res.data.lists //解析数据列表
|
||||
};
|
||||
}
|
||||
,response: {
|
||||
statusCode: 1 //规定成功的状态码,默认:0
|
||||
}
|
||||
});
|
||||
|
||||
table.on('tool(record)', function(obj) {
|
||||
switch (obj.event) {
|
||||
case 'del':
|
||||
layer.confirm('确定删除吗?', {icon: 3, title:'提示'}, function(index){
|
||||
like.ajax({
|
||||
url: '{:url("noticeSetting/delRecord")}',
|
||||
data: {
|
||||
id: obj.data.id
|
||||
},
|
||||
method: 'post',
|
||||
success: function (res) {
|
||||
if(res.code == 1) {
|
||||
layer.msg(res.msg);
|
||||
table.reload('record');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
layer.close(index);
|
||||
});
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(search)', function (obj) {
|
||||
tableIns.reload({
|
||||
where: obj.field,
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
form.on('submit(reset)', function () {
|
||||
$('#content').val('');
|
||||
$('#create_time').val('');
|
||||
tableIns.reload({
|
||||
where: [],
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
214
application/admin/view/notice_setting/set_mnp.html
Normal file
214
application/admin/view/notice_setting/set_mnp.html
Normal file
@@ -0,0 +1,214 @@
|
||||
{layout name="layout2" /}
|
||||
<style>
|
||||
.tips{
|
||||
color: red;
|
||||
}
|
||||
</style>
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-user" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
|
||||
|
||||
<input type="hidden" value="{$info.id}" name="id">
|
||||
<input type="hidden" value="{$type}" name="type">
|
||||
|
||||
<!--通知场景-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">通知场景:</label>
|
||||
<div class="layui-input-inline" style="padding-top: 8px">
|
||||
{$info.scene}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--模板编号-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板编号:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="template_sn" value="{$info.mnp_notice.template_sn | default =''}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--模板名称-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板名称:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="name" value="{$info.mnp_notice.name | default = ''}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--模板id-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板ID:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="template_id" value="{$info.mnp_notice.template_id | default =''}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--场景变量-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">场景变量:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $info.variable as $item => $val}
|
||||
<button type="button" class="layui-btn layui-btn-primary variable-btn" data-value="{$item}">{$val}</button>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-form-mid layui-word-aux">系统在当前场景预定义好的通知变量</div>
|
||||
</div>
|
||||
|
||||
<!--模板内容-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板内容:</label>
|
||||
<div class="layui-input-inline">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal addTpl" type="button">新增</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--模板-->
|
||||
<div class="template-body">
|
||||
{notempty name ="$info.mnp_notice.tpl"}
|
||||
{foreach $info.mnp_notice.tpl as $k => $item}
|
||||
<div class="layui-form-item template">
|
||||
<div class="layui-input-block">
|
||||
<label class="layui-form-label">字段名称:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="tpl_name[]" value="{$item.tpl_name}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
<label class="layui-form-label">关键词:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="tpl_keyword[]" value="{$item.tpl_keyword}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
<label class="layui-form-label">字段内容:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="tpl_content[]" value="{$item.tpl_content}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger delTpl" type="button">删除</button>
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
{/notempty}
|
||||
</div>
|
||||
|
||||
<!--模板预览-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板预览:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-sm4">
|
||||
<textarea placeholder="请输入内容" name="content" id="content" class="layui-textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--状态-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="radio" name="status" value="1" title="开启" {if ($info.mnp_notice.status ?? 0) == 1}checked{/if} />
|
||||
<input type="radio" name="status" value="0" title="关闭" {if ($info.mnp_notice.status ?? 0) == 0}checked{/if} />
|
||||
<div class="layui-form-mid layui-word-aux">开启或关闭当前场景通知</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-hide">
|
||||
<input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
layui.config({
|
||||
version:"{$front_version}",
|
||||
base: '/static/plug/'
|
||||
}).extend({
|
||||
base: '/static/plug/layui-admin/dist/layuiadmin/'
|
||||
}).use(['form'], function() {
|
||||
var $ = layui.$
|
||||
,form = layui.form;
|
||||
|
||||
//场景变量复制
|
||||
$(document).on('click', '.variable-btn', function () {
|
||||
var copyText = $(this).data('value');
|
||||
let aux = document.createElement("input");
|
||||
aux.setAttribute("value", '{'+copyText+'}');
|
||||
document.body.appendChild(aux);
|
||||
aux.select();
|
||||
document.execCommand("copy");
|
||||
document.body.removeChild(aux);
|
||||
layer.msg('已复制场景变量');
|
||||
});
|
||||
|
||||
|
||||
// 添加模板
|
||||
$(document).on('click','.addTpl',function() {
|
||||
var tpl = '<div class="layui-form-item template">' +
|
||||
' <div class="layui-input-block">' +
|
||||
' <label class="layui-form-label">字段名称:</label>' +
|
||||
' <div class="layui-input-inline">' +
|
||||
' <input type="text" name="tpl_name[]" autocomplete="off" class="layui-input" value="" lay-verify="required" lay-vertype="tips">' +
|
||||
' </div>' +
|
||||
' <label class="layui-form-label">关键词:</label>' +
|
||||
' <div class="layui-input-inline">' +
|
||||
' <input type="text" name="tpl_keyword[]" autocomplete="off" class="layui-input" value="" lay-verify="required" lay-vertype="tips">' +
|
||||
' </div>' +
|
||||
' <label class="layui-form-label">字段内容:</label>' +
|
||||
' <div class="layui-input-inline">' +
|
||||
' <input type="text" name="tpl_content[]" autocomplete="off" class="layui-input" value="" lay-verify="required" lay-vertype="tips">' +
|
||||
' </div>' +
|
||||
' <button class="layui-btn layui-btn-sm layui-btn-danger delTpl" type="button">删除</button>' +
|
||||
' </div>' +
|
||||
' </div>';
|
||||
$('.template-body').append(tpl);
|
||||
});
|
||||
|
||||
|
||||
refreshContent();
|
||||
|
||||
//监听字段名称
|
||||
$(document).on("input propertychange","input[name='tpl_name[]']",function() {
|
||||
refreshContent();
|
||||
});
|
||||
|
||||
//监听关键词
|
||||
$(document).on("input propertychange","input[name='tpl_keyword[]']",function() {
|
||||
refreshContent();
|
||||
});
|
||||
|
||||
|
||||
// 删除模板
|
||||
$(document).on('click','.delTpl',function() {
|
||||
var len = $("div.template-body > div.template").size();
|
||||
if (len == 1) {
|
||||
layer.msg('最少保留一个模板内容');
|
||||
return;
|
||||
} else {
|
||||
$(this).parents('.template').remove();
|
||||
refreshContent();
|
||||
}
|
||||
});
|
||||
|
||||
//渲染模板预览
|
||||
function refreshContent() {
|
||||
var map = [];
|
||||
$(".template").each(function() {
|
||||
var index = $(this).index();
|
||||
var key_value = $(this).children().find("input[name='tpl_keyword[]']").val();
|
||||
var name_value = $(this).children().find("input[name='tpl_name[]']").val();
|
||||
map[index] = {name:name_value, key:key_value};
|
||||
});
|
||||
|
||||
if (map.length > 0) {
|
||||
var content = '';
|
||||
for (var i=0; i < map.length; i++) {
|
||||
var key = '{{'+map[i].key+'.DATA}}';
|
||||
var name = map[i].name;
|
||||
if (map[i].key === undefined || map[i].key === '') {
|
||||
key = '';
|
||||
}
|
||||
if (map[i].name === undefined || map[i].name === '') {
|
||||
name = '';
|
||||
}
|
||||
content += name + ':' + key + "\n";
|
||||
}
|
||||
$('#content').text(content);
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
</script>
|
||||
244
application/admin/view/notice_setting/set_oa.html
Normal file
244
application/admin/view/notice_setting/set_oa.html
Normal file
@@ -0,0 +1,244 @@
|
||||
{layout name="layout2" /}
|
||||
<style>
|
||||
.tips{
|
||||
color: red;
|
||||
}
|
||||
</style>
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-user" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
|
||||
|
||||
<input type="hidden" value="{$info.id}" name="id">
|
||||
<input type="hidden" value="{$type}" name="type">
|
||||
|
||||
<!--通知场景-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">通知场景:</label>
|
||||
<div class="layui-input-inline" style="padding-top: 8px">
|
||||
{$info.scene}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--模板编号-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板编号:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-md4">
|
||||
<input type="text" name="template_sn" value="{$info.oa_notice.template_sn | default = ''}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--模板名称-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板名称:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-md4">
|
||||
<input type="text" name="name" value="{$info.oa_notice.name | default = ''}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--模板id-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板ID:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-md4">
|
||||
<input type="text" name="template_id" value="{$info.oa_notice.template_id | default = ''}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--场景变量-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">场景变量:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $info.variable as $item => $val}
|
||||
<button type="button" class="layui-btn layui-btn-primary variable-btn" data-value="{$item}">{$val}</button>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-form-mid layui-word-aux">系统在当前场景预定义好的通知变量</div>
|
||||
</div>
|
||||
|
||||
<!--头部标题-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>头部标题:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-md4">
|
||||
<input type="text" name="first" value="{$info.oa_notice.first | default = ''}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
<div class="layui-form-mid layui-word-aux">{{first.DT}}的内容,支持嵌入场景变量,复制场景变量的值填入即可生效</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!--模板内容-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板内容:</label>
|
||||
<div class="layui-input-inline">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal addTpl" type="button">新增</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--模板-->
|
||||
<div class="template-body">
|
||||
{notempty name ="$info.oa_notice.tpl"}
|
||||
{foreach $info.oa_notice.tpl as $k => $item}
|
||||
<div class="layui-form-item template">
|
||||
<div class="layui-input-block">
|
||||
<label class="layui-form-label">字段名称:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="tpl_name[]" value="{$item.tpl_name}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
<label class="layui-form-label">关键词:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="tpl_keyword[]" value="{$item.tpl_keyword}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
<label class="layui-form-label">字段内容:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="tpl_content[]" value="{$item.tpl_content}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger delTpl" type="button">删除</button>
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
{/notempty}
|
||||
</div>
|
||||
|
||||
<!--模板预览-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板预览:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-sm4">
|
||||
<textarea name="content" id="content" class="layui-textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--尾部描述-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>尾部描述:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-md4">
|
||||
<input type="text" name="remark" value="{$info.oa_notice.remark | default = ''}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
<div class="layui-form-mid layui-word-aux">{{remrk.DT}}的内容,支持嵌入场景变量,复制场景变量的值填入即可生效</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="radio" name="status" value="1" title="开启" {if ($info.oa_notice.status ?? 0) == 1}checked{/if} />
|
||||
<input type="radio" name="status" value="0" title="关闭" {if ($info.oa_notice.status ?? 0) == 0}checked{/if} />
|
||||
<div class="layui-form-mid layui-word-aux">开启或关闭当前场景通知</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
layui.config({
|
||||
version:"{$front_version}",
|
||||
base: '/static/plug/'
|
||||
}).extend({
|
||||
base: '/static/plug/layui-admin/dist/layuiadmin/'
|
||||
}).use(['form'], function() {
|
||||
var $ = layui.$
|
||||
,form = layui.form;
|
||||
|
||||
//场景变量复制
|
||||
$(document).on('click', '.variable-btn', function () {
|
||||
var copyText = $(this).data('value');
|
||||
let aux = document.createElement("input");
|
||||
aux.setAttribute("value", '{'+copyText+'}');
|
||||
document.body.appendChild(aux);
|
||||
aux.select();
|
||||
document.execCommand("copy");
|
||||
document.body.removeChild(aux);
|
||||
layer.msg('已复制场景变量');
|
||||
});
|
||||
|
||||
// 添加模板
|
||||
$(document).on('click','.addTpl',function() {
|
||||
var tpl = '<div class="layui-form-item template">' +
|
||||
' <div class="layui-input-block">' +
|
||||
' <label class="layui-form-label">字段名称:</label>' +
|
||||
' <div class="layui-input-inline">' +
|
||||
' <input type="text" name="tpl_name[]" autocomplete="off" class="layui-input" value="" lay-verify="required" lay-vertype="tips">' +
|
||||
' </div>' +
|
||||
' <label class="layui-form-label">关键词:</label>' +
|
||||
' <div class="layui-input-inline">' +
|
||||
' <input type="text" name="tpl_keyword[]" autocomplete="off" class="layui-input" value="" lay-verify="required" lay-vertype="tips">' +
|
||||
' </div>' +
|
||||
' <label class="layui-form-label">字段内容:</label>' +
|
||||
' <div class="layui-input-inline">' +
|
||||
' <input type="text" name="tpl_content[]" autocomplete="off" class="layui-input" value="" lay-verify="required" lay-vertype="tips">' +
|
||||
' </div>' +
|
||||
' <button class="layui-btn layui-btn-sm layui-btn-danger delTpl" type="button">删除</button>' +
|
||||
' </div>' +
|
||||
' </div>';
|
||||
|
||||
$('.template-body').append(tpl);
|
||||
});
|
||||
|
||||
|
||||
|
||||
refreshContent();
|
||||
|
||||
//监听字段名称
|
||||
$(document).on("input propertychange","input[name='tpl_name[]']",function() {
|
||||
refreshContent();
|
||||
});
|
||||
|
||||
//监听关键词
|
||||
$(document).on("input propertychange","input[name='tpl_keyword[]']",function() {
|
||||
refreshContent();
|
||||
});
|
||||
|
||||
// 删除模板
|
||||
$(document).on('click','.delTpl',function() {
|
||||
var len = $("div.template-body > div.template").size();
|
||||
if (len <= 1) {
|
||||
layer.msg('最少保留一个模板内容');
|
||||
return;
|
||||
} else {
|
||||
$(this).parents('.template').remove();
|
||||
refreshContent();
|
||||
}
|
||||
});
|
||||
|
||||
//渲染模板预览
|
||||
function refreshContent() {
|
||||
var map = [];
|
||||
$(".template").each(function() {
|
||||
var index = $(this).index();
|
||||
var key_value = $(this).children().find("input[name='tpl_keyword[]']").val();
|
||||
var name_value = $(this).children().find("input[name='tpl_name[]']").val();
|
||||
map[index] = {name:name_value, key:key_value};
|
||||
});
|
||||
|
||||
if (map.length > 0) {
|
||||
var content = '{{first.DATA}}' + "\n";
|
||||
|
||||
for (var i=0; i < map.length; i++) {
|
||||
var key = '{{'+map[i].key+'.DATA}}';
|
||||
var name = map[i].name;
|
||||
if (map[i].key === undefined || map[i].key === '') {
|
||||
key = '';
|
||||
}
|
||||
if (map[i].name === undefined || map[i].name === '') {
|
||||
name = '';
|
||||
}
|
||||
content += name + ':' + key + "\n";
|
||||
}
|
||||
content += '{{remark.DATA}}';
|
||||
$('#content').text(content);
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
</script>
|
||||
89
application/admin/view/notice_setting/set_sms.html
Normal file
89
application/admin/view/notice_setting/set_sms.html
Normal file
@@ -0,0 +1,89 @@
|
||||
{layout name="layout2" /}
|
||||
<style>
|
||||
.tips{
|
||||
color: red;
|
||||
}
|
||||
</style>
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-user" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
|
||||
|
||||
<input type="hidden" value="{$info.id}" name="id">
|
||||
<input type="hidden" value="{$type}" name="type">
|
||||
|
||||
<!--通知场景-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">通知场景:</label>
|
||||
<div class="layui-input-inline" style="padding-top: 8px">
|
||||
{$info.scene}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--模板id-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>模板ID:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-md4">
|
||||
<input type="text" name="template_code" value="{$info.sms_notice.template_code | default = ''}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
<div class="layui-form-mid layui-word-aux">需要与短信接口的模板ID一致</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--场景变量-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">场景变量:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $info.variable as $item => $val}
|
||||
<button type="button" class="layui-btn layui-btn-primary variable-btn" data-value="{$item}">{$val}</button>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-form-mid layui-word-aux">系统在当前场景预定义好的通知变量</div>
|
||||
</div>
|
||||
|
||||
<!--通知内容-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>短信内容:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-sm4">
|
||||
<textarea name="content" id="content" class="layui-textarea">{$info.sms_notice.content | default = ''}</textarea>
|
||||
<div class="layui-form-mid layui-word-aux">支持嵌入场景变量,复制场景变量的值填入即可生效</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--状态-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="radio" name="status" value="1" title="开启" {if ($info.sms_notice.status ?? 0) == 1}checked{/if} />
|
||||
<input type="radio" name="status" value="0" title="关闭" {if ($info.sms_notice.status ?? 0) == 0}checked{/if} />
|
||||
<div class="layui-form-mid layui-word-aux">开启或关闭当前场景通知</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
layui.config({
|
||||
version:"{$front_version}",
|
||||
base: '/static/plug/' //静态资源所在路径
|
||||
}).extend({
|
||||
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
|
||||
}).use(['form'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form ;
|
||||
$(document).on('click', '.variable-btn', function () {
|
||||
var copyText = $(this).data('value');
|
||||
let aux = document.createElement("input");
|
||||
aux.setAttribute("value", '{'+copyText+'}');
|
||||
document.body.appendChild(aux);
|
||||
aux.select();
|
||||
document.execCommand("copy");
|
||||
document.body.removeChild(aux);
|
||||
layer.msg('已复制场景变量');
|
||||
})
|
||||
})
|
||||
</script>
|
||||
97
application/admin/view/notice_setting/set_system.html
Normal file
97
application/admin/view/notice_setting/set_system.html
Normal file
@@ -0,0 +1,97 @@
|
||||
{layout name="layout2" /}
|
||||
<style>
|
||||
.tips{
|
||||
color: red;
|
||||
}
|
||||
</style>
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-user" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
|
||||
|
||||
<input type="hidden" value="{$info.id}" name="id">
|
||||
<input type="hidden" value="{$type}" name="type">
|
||||
|
||||
<!--通知场景-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">通知场景:</label>
|
||||
<div class="layui-input-inline" style="padding-top: 8px">
|
||||
{$info.scene}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--通知标题-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>通知标题:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="title" value="{$info.system_notice.title | default = ''}" autocomplete="off" class="layui-input" lay-verify="required" lay-vertype="tips">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--场景变量-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">场景变量:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $info.variable as $item => $val}
|
||||
<button type="button" class="layui-btn layui-btn-primary variable-btn" data-value="{$item}">{$val}</button>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-form-mid layui-word-aux">系统在当前场景预定义好的通知变量</div>
|
||||
</div>
|
||||
|
||||
<!--通知内容-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="tips">*</span>通知内容:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-sm4">
|
||||
<textarea name="content" id="content" class="layui-textarea">{$info.system_notice.content | default = ''}</textarea>
|
||||
<div class="layui-form-mid layui-word-aux">支持嵌入场景变量,复制场景变量的值填入即可生效</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--app推送-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">APP推送</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="radio" name="is_push" value="1" title="开启" {if ($info.system_notice.is_push ?? 0) == 1}checked{/if} />
|
||||
<input type="radio" name="is_push" value="0" title="关闭" {if ($info.system_notice.is_push ?? 0) == 0}checked{/if} />
|
||||
<div class="layui-form-mid layui-word-aux">开启或关闭PP推送</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--状态-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="radio" name="status" value="1" title="开启" {if ($info.system_notice.status ?? 0) == 1}checked{/if} />
|
||||
<input type="radio" name="status" value="0" title="关闭" {if ($info.system_notice.status ?? 0) == 0}checked{/if} />
|
||||
<div class="layui-form-mid layui-word-aux">开启或关闭当前场景通知</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
layui.config({
|
||||
version:"{$front_version}",
|
||||
base: '/static/plug/'
|
||||
}).extend({
|
||||
base: '/static/plug/layui-admin/dist/layuiadmin/'
|
||||
}).use(['form'], function() {
|
||||
var $ = layui.$
|
||||
,like = layui.like
|
||||
,form = layui.form;
|
||||
$(document).on('click', '.variable-btn', function () {
|
||||
var copyText = $(this).data('value');
|
||||
let aux = document.createElement("input");
|
||||
aux.setAttribute("value", '{'+copyText+'}');
|
||||
document.body.appendChild(aux);
|
||||
aux.select();
|
||||
document.execCommand("copy");
|
||||
document.body.removeChild(aux);
|
||||
layer.msg('已复制场景变量');
|
||||
});
|
||||
})
|
||||
</script>
|
||||
Reference in New Issue
Block a user