You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

396 lines
18 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>消息实体</title>
<!--SQL编辑器-->
<link href="../../Scripts/easyUI145/themes/default/easyui.css" rel="stylesheet" />
<link href="../../Scripts/CodeMirror/lib/codemirror.css" rel="stylesheet" />
<link href="../../Scripts/CodeMirror/addon/hint/show-hint.css" rel="stylesheet" />
<script src="../../Scripts/CodeMirror/lib/codemirror.js"></script>
<script src="../../Scripts/CodeMirror/addon/edit/matchbrackets.js"></script>
<script src="../../Scripts/CodeMirror/mode/sql/sql.js"></script>
<script src="../../Scripts/CodeMirror/addon/hint/show-hint.js"></script>
<script src="../../Scripts/CodeMirror/addon/hint/sql-hint.js"></script>
<link href="../../Style/skin/css/Default.css" rel="stylesheet" />
<link href="../../Style/skin/adminfont/iconfont.css" rel="stylesheet" />
<link href="../../Scripts/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<script src="../../Scripts/LoadSql.js"></script>
<link href="../../../DataUser/Style/ccbpm.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../../Scripts/bootstrap/js/jquery.min.js"></script>
<script type="text/javascript" src="../../Scripts/config.js"></script>
<script src="../../Scripts/QueryString.js" type="text/javascript"></script>
<script type="text/javascript" src="../../Comm/Gener.js"></script>
<base target="_self" />
<script src="../Admin.js"></script>
<script type="text/javascript">
function Esc() {
if (event.keyCode == 27)
window.close();
return true;
}
function WinOpen(url, name) {
window.open(url, name, 'height=600, width=800, top=0, left=0, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, status=no');
//window.open(url, 'xx');
}
/*隐藏与显示.*/
function ShowHidden(ctrlID) {
var ctrl = document.getElementById(ctrlID);
if (ctrl.style.display == "block") {
ctrl.style.display = 'none';
} else {
ctrl.style.display = 'block';
}
}
</script>
<script type="text/javascript" language="javascript">
//页面启动函数.
$(function () {
var fk_event = GetQueryString("FK_Event");
if (fk_event == "NodeWarning") {
$("#NodeOverDue").hide();
} else if (fk_event == "NodeOverDue") {
$("#NodeWarn").hide();
} else {
$("#NodeOverDue").hide();
$("#NodeWarn").hide();
}
if (fk_event == "CCAfter" || fk_event == "PressAfter") {
$("#NodeOverDue").hide();
$("#NodeWarn").hide();
$("#RB_SMS_3").parent().parent().hide();
$("#RB_SMS_4").parent().parent().hide();
$("#RB_SMS_5").parent().parent().hide();
}
InitPage();
});
//初始化数据.
function InitPage() {
var fk_event = GetQueryString("FK_Event");
// 设置标签
$("#eventtype").html(fk_event);
$("label[for='RB_Email_1']").html(_GetText(GetQueryString("FK_Event")));
$("label[for='RB_SMS_1']").html(_GetText(GetQueryString("FK_Event")));
//初始化 01 02 03
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_AttrNode");
handler.AddUrlData();
// handler.AddPara("xx", "123");
var data = handler.DoMethodReturnString("PushMsgEntity_Init");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
data = JSON.parse(data);
var frmfields = data.FrmFields;
var nodes = data.Nodes;
var en = data.PushMsgEntity[0];
//01.填充下拉
for (var i = 0, len = frmfields.length; i < len; i++) {
var f = frmfields[i];
var oVal = f.KeyOfEn;
var oText = f.KeyOfEn + " ; " + f.Name;
$("#DDL_SMS_Fields").append("<option value='" + oVal + "' >" + oText + "</option>");
$("#DDL_Email_Fields").append("<option value='" + oVal + "' >" + oText + "</option>");
}
//02.节点列表
for (i = 0, len = nodes.length; i < len; i++) {
var n = nodes[i];
$("#SMS_Nodes").append("<label><input id='CB_SMS_" + n.NodeID + "' type='checkbox' name='CB_SMS_" + n.NodeID + "' />" + n.Name + "</label>");
$("#Email_Nodes").append("<label><input id='CB_Email_" + n.NodeID + "' type='checkbox' name='CB_Email_" + n.NodeID + "' />" + n.Name + "</label>");
}
//03.实体初始化 (如果有)
if (en.MyPK != "") {
$("input:radio[name='RB_SMS']").eq(en.SMSPushWay).attr("checked", true);
$("input:radio[name='RB_Email']").eq(en.MailPushWay).attr("checked", true);
$("#DDL_SMS_Fields").val(en.SMSField);
$("#DDL_Email_Fields").val(en.MailAddress);
$("#TB_SMS").val(en.SMSDoc);
$("#TB_Title").val(en.MailTitle);
var smsnodes = en.SMSNodes;
var mailnodes = en.MailNodes;
if (smsnodes != "") {
var ns = smsnodes.split(",");
for (i = 0, len = ns.length; i < len; i++) {
if (ns[i] != "") {
document.getElementById("CB_SMS_" + ns[i]).checked = true;
}
}
}
if (mailnodes != "") {
var ns = mailnodes.split(",");
for (i = 0, len = ns.length; i < len; i++) {
if (ns[i] != "") {
document.getElementById("CB_Email_" + ns[i]).checked = true;
}
}
}
// 短消息发送形式
var smsPushModel = en.SMSPushModel;
if (smsPushModel != "") {
var pushModels = smsPushModel.split(",");
for (i = 0, len = pushModels.length; i < len; i++) {
if (pushModels[i] != "") {
document.getElementById("CB_SMSPushModel_" + pushModels[i]).checked = true;
}
}
}
}
else {
$("#DDL_SMS_Fields option:first").attr("selected", "selected");
$("#DDL_Email_Fields option:first").attr("selected", "selected");
}
if (fk_event == "NodeWarning") {
var noticeType = GetPara(en.AtPara, "NoticeType");
document.getElementById("RB_NoticeType_" + noticeType).checked = true;
var hour = GetPara(en.AtPara, "NoticeHour");
$("#TB_NoticeHour").val(hour);
} else if (fk_event == "NodeOverDue") {
var noticeType = GetPara(en.AtPara, "NoticeType");
document.getElementById("RB_NoticeType_" + noticeType).checked = true;
var day = GetPara(en.AtPara, "NoticeDay");
$("#TB_NoticeDay").val(day);
}
$("#TB_SQL").val(en.BySQL);
$("#TB_Emps").val(en.ByEmps);
}
//页面初始化调用
function _GetText(EventListNode) {
var ret = {
"WorkArrive": "发送给当前节点的所有处理人",
"SendSuccess": "发送给下一个节点的所有接受人",
"ReturnAfter": "发送给被退回的节点处理人",
"UndoneAfter": "撤销工作后通知的节点接受人",
"ShitAfter": "发送给被移交的节点接受人",
"CCAfter": "发送给被抄送的人",
"PressAfter": "发送给被催办的人",
"FlowOverAfter": "流程结束通知的所有流程的参与人",
"AfterFlowDel": "流程删除后通知所有流程的参与人",
"NodeWarning": "发送给当前节点的所有处理人",
"NodeOverDue": "发送给当前节点的所有处理人",
};
return ret[EventListNode];
}
function Save() {
var fk_event = GetQueryString("FK_Event");
if (fk_event == "NodeWarning" || fk_event == "NodeOverDue") {
var val = $('input:radio[name="RB_NoticeType"]:checked').val();
if (val == null) {
if (fk_event == "NodeWarning")
alert("请选择预警提醒方式");
if (fk_event == "NodeOverDue")
alert("请选择逾期提醒方式");
return;
}
}
//获取短消息发送设置
var pushModels = document.getElementsByName('CB_SMSPushModel');
var pushModel = '';
for (var i = 0; i < pushModels.length; i++) {
if (pushModels[i].checked)
pushModel += pushModels[i].value + ','; //如果选中将value添加到变量s中
}
//初始化 01 02 03
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_AttrNode");
handler.AddUrlData();
handler.AddFormData();
handler.AddPara("TB_SQL", editor.getValue());
handler.AddPara("PushModel", pushModel);
var data = handler.DoMethodReturnString("PushMsg_Save");
if (data.indexOf('err@') >= 0) {
alert(data);
return;
}
alert(data);
Back();
}
function Back() {
var url = '';
url = 'PushMessage.htm?FK_Node=' + GetQueryString('FK_Node') + '&FK_Flow=' + GetQueryString('FK_Flow') + '&m' + Math.random();
SetHref(url);
}
</script>
</head>
<body onkeypress="Esc();">
<div class="container-full">
<div class="attrnode-bar-header">
<span class="pull-right">
<button id="Btn_Save" name="Btn_Save" onclick="Save();">保存</button>
<!--<button id="Btn_New" name="Btn_New" onclick="SaveAndNew();">保存并新建</button>-->
<button id="Btn_Back" name="Btn_Back" onclick="Back();">返回</button>
</span>
<strong>消息实体</strong>
</div>
<form id="cc">
<div style="position:relative;top:10px; margin: 8px">
<table style="width:100%;" class="table">
<tr>
<td colspan="2">
<input id="RB_SMS_0" type="radio" name="RB_SMS" value="0"
checked="checked" /><label for="RB_SMS_0">不发送</label>
</td>
</tr>
<tr>
<td colspan="2">
<input id="RB_SMS_1" type="radio" name="RB_SMS" value="1" /><label for="RB_SMS_1"></label>
</td>
</tr>
<tr>
<td style="width: 200px;">
<input id="RB_SMS_2" type="radio" name="RB_SMS" value="2" /><label for="RB_SMS_2">表单上的字段作为接受对象</label>
</td>
<td>
<select name="DDL_SMS_Fields" id="DDL_SMS_Fields" class="frmfields"></select>
<ul>
<li>字段里必须存储的是人员账号,如果是多个人员账号就用逗号分开. 比如:zhangsan,lisi</li>
<li>可以使用隐藏字段作为参数字段.</li>
</ul>
</td>
</tr>
<tr>
<td>
<input id="RB_SMS_3" type="radio" name="RB_SMS" value="3" /><label for="RB_SMS_3">其他节点的处理人</label>
</td>
<td id="SMS_Nodes"></td>
</tr>
<tr>
<td>
<input id="RB_SMS_4" type="radio" name="RB_SMS" value="4" /><label for="RB_SMS_4">按照SQL计算</label>
</td>
<td>
<textarea id="TB_SQL" name="TB_SQL"></textarea>
</td>
</tr>
<tr>
<td>
<input id="RB_SMS_5" type="radio" name="RB_SMS" value="5" /><label for="RB_SMS_5">发给指定的人</label>
</td>
<td>
<textarea id="TB_Emps" name="TB_Emps"></textarea>
</td>
</tr>
<tr>
<td>
<input id="RB_SMS_6" type="radio" name="RB_SMS" value="6" /><label for="RB_SMS_6">开始节点的发起人</label>
</td>
<td>
</td>
</tr>
<tr>
<td>
<label>发送形式</label>
</td>
<td>
<label><input id='CB_SMSPushModel_Email' type='checkbox' name='CB_SMSPushModel' value='Email' />邮件</label>
<label><input id='CB_SMSPushModel_CCMsg' type='checkbox' name='CB_SMSPushModel' value='CCMsg' />站内消息</label>
<label><input id='CB_SMSPushModel_SMS' type='checkbox' name='CB_SMSPushModel' value='SMS' />短信</label>
<label><input id='CB_SMSPushModel_DingDing' type='checkbox' name='CB_SMSPushModel' value='DingDing' />钉钉</label>
<label><input id='CB_SMSPushModel_WeiXin' type='checkbox' name='CB_SMSPushModel' value='WeiXin' />微信</label>
<label><input id='CB_SMSPushModel_WS' type='checkbox' name='CB_SMSPushModel' value='WS' />WebServices </label>
<a href="javascript:alert('1. for: .net ccbpm会把信息写入到 \datauser\PortalInterface.asmx \t\n2. for java:请参考 java相关代码. ');"><img src="../../Img/Btn/Help.gif" />设置帮助</a>
</td>
</tr>
<tr id="NodeWarn">
<td>
<label id="NoticeLabel">预警提醒方式</label>
</td>
<td>
<label><input id='RB_NoticeType_0' type='radio' name='RB_NoticeType' value='0' />每天提醒一次</label><br />
<label><input id='RB_NoticeType_1' type='radio' name='RB_NoticeType' value='1' />按时间段提醒</label>
&nbsp;&nbsp;&nbsp;&nbsp;提前<input type="text" id="TB_NoticeHour" name="TB_NoticeHour" />小时发送一次消息
</td>
</tr>
<tr id="NodeOverDue">
<td>
<label>逾期提醒方式</label>
</td>
<td>
<label><input id='RB_NoticeType_0' type='radio' name='RB_NoticeType' value='0' />每天提醒一次</label><br />
<label><input id='RB_NoticeType_1' type='radio' name='RB_NoticeType' value='1' />按时间段提醒</label>
&nbsp;&nbsp;&nbsp;&nbsp;逾期<input type="text" id="TB_NoticeDay" name="TB_NoticeDay" />天发送一次消息
</td>
</tr>
<tr>
<td>
<label>邮件标题</label>
</td>
<td>
<input type="text" id="TB_Title" name="TB_Title" style="width:97%;" />
</td>
</tr>
<tr>
<td colspan="2">
<fieldset style="border: 0px;">
<legend><a href="javascript:ShowHidden('sms')">消息发送内容模版:</a></legend>
<div id="sms" style="display: none; color: Gray">
<ul>
<li>cc会根据不同的事件设置不同的信息模版。</li>
<li>这些模版都是标准的提示,如果您要需要个性化的提示请修改该模版。</li>
<li>该参数支持cc表达式。</li>
<li>您可以使用@符号来编写您所需要的内容。</li>
<li>对于信息提示有两个系统参数分别是{Title}流程标题, {URL} 打开流程的连接。</li>
<li>cc在生成消息的时候会根据模版把信息替换下来发送给用户。</li>
<li>最新格式的cc字段表达式为: <font color="red">@+字段名+分号</font> 比如 @QingJiaLeiXing; </li>
</ul>
</div>
</fieldset>
<textarea name="TB_SMS" rows="3" cols="20" id="TB_SMS"
style="width: 95%;">
有新工作{{Title}}需要您处理, 发送人:@WebUser.No, @WebUser.Name,打开{Url} .</textarea>
</td>
</tr>
</table>
</div>
<fieldset>
<legend> 帮助 </legend>
<ul>
<li>消息实体用于定义当前的事件触发后对外发送消息.</li>
<li>一个事件可以定义多个消息实体,这样就可以定义不同的人群,消息模版可以不一样.</li>
</ul>
</fieldset>
</form>
</div>
</body>
</html>