<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<html>
|
|
<head>
|
<title>复选框</title>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
|
<link rel="stylesheet" href="/plugins/font-awesome/css/font-awesome.min.css">
|
<link rel="stylesheet" href="bootstrap/css/bootstrap.css">
|
|
<!--[if lte IE 6]>
|
<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap-ie6.css">
|
<![endif]-->
|
<!--[if lte IE 7]>
|
<link rel="stylesheet" type="text/css" href="bootstrap/css/ie.css">
|
<![endif]-->
|
<link rel="stylesheet" href="leipi.style.css">
|
<script type="text/javascript" src="../dialogs/internal.js"></script>
|
<script type="text/javascript">
|
function createElement(type, name) {
|
var element = null;
|
try {
|
element = document.createElement('<' + type + ' name="' + name + '">');
|
} catch (e) { }
|
if (element == null) {
|
element = document.createElement(type);
|
element.name = name;
|
}
|
return element;
|
}
|
|
|
//checkboxs
|
function isIE() {
|
if (window.attachEvent) {
|
return true;
|
}
|
return false;
|
}
|
//moveRow在IE支持而在火狐里不支持!以下是扩展火狐下的moveRow
|
if (!isIE()) {
|
function getTRNode(nowTR, sibling) {
|
while (nowTR = nowTR[sibling]) if (nowTR.tagName == 'TR') break;
|
return nowTR;
|
}
|
if (typeof Element != 'undefined') {
|
Element.prototype.moveRow = function (sourceRowIndex, targetRowIndex) //执行扩展操作
|
{
|
if (!/^(table|tbody|tfoot|thead)$/i.test(this.tagName) || sourceRowIndex === targetRowIndex) return false;
|
var pNode = this;
|
if (this.tagName == 'TABLE') pNode = this.getElementsByTagName('tbody')[0]; //firefox会自动加上tbody标签,所以需要取tbody,直接table.insertBefore会error
|
var sourceRow = pNode.rows[sourceRowIndex],
|
targetRow = pNode.rows[targetRowIndex];
|
if (sourceRow == null || targetRow == null) return false;
|
var targetRowNextRow = sourceRowIndex > targetRowIndex ? false : getTRNode(targetRow, 'nextSibling');
|
if (targetRowNextRow === false) pNode.insertBefore(sourceRow, targetRow); //后面行移动到前面,直接insertBefore即可
|
else { //移动到当前行的后面位置,则需要判断要移动到的行的后面是否还有行,有则insertBefore,否则appendChild
|
if (targetRowNextRow == null) pNode.appendChild(sourceRow);
|
else pNode.insertBefore(sourceRow, targetRowNextRow);
|
}
|
}
|
}
|
}
|
|
/*删除tr*/
|
function fnDeleteRow(obj) {
|
var oTable = document.getElementById("options_table");
|
while (obj.tagName != 'TR') {
|
obj = obj.parentNode;
|
}
|
oTable.deleteRow(obj.rowIndex);
|
}
|
|
|
/*生成tr*/
|
function fnAddComboTr(tf,sf) {
|
var oTable = document.getElementById('options_table');
|
var new_tr_node = oTable.insertRow(oTable.rows.length);
|
var new_td_node0 = new_tr_node.insertCell(0), new_td_node1 = new_tr_node.insertCell(1), new_td_node2 = new_tr_node.insertCell(2);
|
|
new_td_node0.innerHTML='<td><div class="input-group"><input type="text" placeholder="目标模块字段" value="'+tf+'" class="form-control"><span class="input-group-btn"><button class="btn btn-default" onclick="selectTargetField();">选</button></span></div></td>';
|
new_td_node1.innerHTML = '<td><div class="input-group"><input type="text" placeholder="本模块字段" value="'+sf+'" class="form-control"><span class="input-group-btn"><button class="btn btn-default" onclick="selectSourceField();">选</button></span></div></td>';
|
new_td_node2.innerHTML = '<td><div class="btn-group"><a title="删除" class="btn btn-small btn-danger" href="javascript:void(0);" onclick="fnDeleteRow(this)"><i class="fa fa-close"></i></a></div></td>';
|
return true;
|
}
|
function fnAdd() {
|
var dName = $G('orgname').value;
|
if (!dName) {
|
alert("请先选择字段!");
|
return false;
|
}
|
fnAddComboTr("","");
|
}
|
|
/*组合checkbox*/
|
function fnParseOptions() {
|
var oTable = document.getElementById('options_table');
|
var nTr = oTable.getElementsByTagName('tr'), trLength = nTr.length, targetFields="", sourceFields="";
|
|
if(trLength>0){
|
for (var i = 0; i < trLength; i++) {
|
var inputs = nTr[i].getElementsByTagName('input');
|
if (inputs.length > 0) {
|
if (!inputs[0].value ||!inputs[1].value) continue;
|
targetFields+=inputs[0].value+",";
|
sourceFields+=inputs[1].value+",";
|
}
|
}
|
|
targetFields=targetFields.slice(0,-1);
|
sourceFields=sourceFields.slice(0,-1);
|
}
|
|
|
|
return {"targetFields":targetFields,"sourceFields":sourceFields};
|
|
}
|
</script>
|
</head>
|
|
<body>
|
<div class="content">
|
<table class="table table-bordered table-striped">
|
<tr>
|
<th>
|
<span>所属表名</span>
|
</th>
|
<th width="50%">
|
<span>字段名称</span>
|
<span class="label label-important">*</span>
|
</th>
|
</tr>
|
<tr>
|
<td>
|
<div class="input-group">
|
<input type="text" id="orgtablename" class="form-control">
|
<span class="input-group-btn">
|
<button class="btn btn-default">选表</button>
|
</span>
|
</div>
|
</td>
|
<td>
|
<div class="input-group">
|
<input type="text" id="orgname" class="form-control" placeholder="必填项">
|
<span class="input-group-btn">
|
<button class="btn btn-default" id="selectField">选字段</button>
|
</span>
|
</div>
|
</td>
|
</tr>
|
<tr>
|
<th>
|
<span>显示名称</span>
|
</th>
|
<th>
|
<span>必填性 & 可编辑性</span>
|
</th>
|
</tr>
|
<tr>
|
<td>
|
<input id="orgdisplayname" type="text" class="form-control" />
|
</td>
|
<td>
|
|
<label class="checkbox-inline">
|
<input id="orgrequired" type="checkbox" /> 必填 </label>
|
<label class="checkbox-inline">
|
<input id="orgedit" type="checkbox" /> 编辑 </label>
|
</td>
|
</tr>
|
<tr>
|
<th>
|
<span>目标模块</span>
|
|
</th>
|
<th>
|
<span>属性</span>
|
</th>
|
</tr>
|
<tr>
|
<td>
|
<div class="input-group">
|
<input type="text" id="orgtargetmoduleid" class="form-control">
|
|
<span class="input-group-btn">
|
<button class="btn btn-default" id="selectTargetModule">选模块</button>
|
</span>
|
</div>
|
</td>
|
<td>
|
<label class="checkbox-inline">
|
<input id="orgauto" type="checkbox" /> 自动 </label>
|
<label class="checkbox-inline">
|
<input id="orgmulti" type="checkbox" /> 多选 </label>
|
|
</td>
|
</tr>
|
<tr>
|
<th><span>内容来源</span></th>
|
<th><span>返回函数名</span></th>
|
</tr>
|
<tr>
|
<td>
|
<label class="radio-inline">
|
<input id="orgdatasource0" checked="checked" name="orgdatasource" value="0" type="radio" onclick="dataSourceChange();"> 默认
|
</label>
|
<label class="radio-inline">
|
<input id="orgdatasource1" name="orgdatasource" value="1" type="radio" onclick="dataSourceChange();"> 视图 </label>
|
</td>
|
<td>
|
<input type="text" id="orgfunname" class="form-control">
|
</td>
|
</tr>
|
<tr id="tr_default_1">
|
<th>
|
<span>本模块关联字段</span>
|
|
</th>
|
<th>
|
<span>目标模块关联字段</span>
|
</th>
|
</tr>
|
<tr id="tr_default_2">
|
<td>
|
<div class="input-group">
|
<input type="text" id="orgsourcerelfield" class="form-control">
|
<span class="input-group-btn">
|
<button class="btn btn-default" id="selectSourceRelField">选字段</button>
|
</span>
|
</div>
|
</td>
|
<td>
|
<div class="input-group">
|
<input type="text" id="orgtargetrelfield" class="form-control">
|
<span class="input-group-btn">
|
<button class="btn btn-default" id="selectTargetRelField">选字段</button>
|
</span>
|
</div>
|
</td>
|
</tr>
|
<tr id="tr_default_3">
|
<th colspan="2"><span>过滤条件</span></th>
|
</tr>
|
<tr id="tr_default_4">
|
<td colspan="2"><textarea rows="2" id="orgsql" class="form-control"></textarea></td>
|
</tr>
|
<tr id="tr_view_1">
|
<th colspan="2"><span>目标模块视图列表</span></th>
|
</tr>
|
<tr id="tr_view_2">
|
<td colspan="2">
|
<select id="orgview" class="form-control">
|
<option value="0">==请选择目标视图==</option>
|
<option value="1">本部门的</option>
|
<option value="2">所有的</option>
|
</select>
|
</td>
|
</tr>
|
<tr>
|
<td colspan="2">
|
<table class="table table-hover table-condensed" id="options_table">
|
<tr>
|
<th>将目标模块字段</th>
|
<th>读取到本模块字段中</th>
|
|
<th>操作</th>
|
</tr>
|
</table>
|
<a title="添加字段" class="btn btn-primary" onclick="fnAdd();">添加字段</a>
|
|
</td>
|
</tr>
|
|
|
|
|
|
</table>
|
</div>
|
<script type="text/javascript">
|
var oNode = null, thePlugins = 'resource';
|
window.onload = function () {
|
if (UE.plugins[thePlugins].editdom) {
|
oNode = UE.plugins[thePlugins].editdom;
|
var gTitle = oNode.getAttribute('title').replace(/"/g, "\"");
|
var gName = oNode.getAttribute('name').replace(/"/g, "\"");
|
var gTableName = oNode.getAttribute('orgtablename');
|
var gDataSource = oNode.getAttribute('orgdatasource');
|
var gTargetModuleId = oNode.getAttribute('orgtargetmoduleid');
|
var gTargetFields = oNode.getAttribute('orgtargetfields'); //列表
|
var gSourceFields = oNode.getAttribute('orgsourcefields');//列表
|
var gEdit = oNode.getAttribute('orgedit');
|
var gRequired = oNode.getAttribute('orgrequired');
|
var gAuto = oNode.getAttribute('orgauto');
|
var gMulti = oNode.getAttribute('orgmulti');
|
var gSourceRelField=oNode.getAttribute('orgsourcerelfield');
|
var gTargetRelField=oNode.getAttribute('orgtargetrelfield');
|
var gSql=oNode.getAttribute('orgsql');
|
var gView=oNode.getAttribute('orgview');
|
var gFunName=oNode.getAttribute('orgfunname');
|
|
$G('orgdisplayname').value = gTitle;
|
$G('orgname').value = gName;
|
$G('orgtablename').value = gTableName;
|
|
gRequired == "1" ? $G('orgrequired').checked = true : $G('orgrequired').checked = false;
|
gDataSource == '0' ? $G('orgdatasource0').checked = true : $G('orgdatasource1').checked = true ;
|
gAuto == "1" ? $G('orgauto').checked = true : $G('orgauto').checked = false;
|
gMulti == "1" ? $G('orgmulti').checked = true : $G('orgmulti').checked = false;
|
$G('orgtargetmoduleid').value = gTargetModuleId;
|
$G('orgsql').value = gSql;
|
$G('orgview').value = gView;
|
$G('orgfunname').value=gFunName;
|
$G('orgsourcerelfield').value=gSourceRelField;
|
$G('orgtargetrelfield').value=gTargetRelField;
|
gEdit == "1" ? $G('orgedit').checked = true : $G('orgedit').checked = false;
|
|
var arrTargetFields=gTargetFields.split(',');
|
var arrSourceFields=gSourceFields.split(',');
|
var length = arrTargetFields.length;
|
|
for (var i = 0; i < length; i++) {
|
fnAddComboTr(arrTargetFields[i],arrSourceFields[i]);
|
}
|
|
|
}
|
//初始化数据源
|
dataSourceChange();
|
//选字段
|
$G('selectField').onclick = function () {
|
openSelectField();
|
}
|
}
|
dialog.oncancel = function () {
|
if (UE.plugins[thePlugins].editdom) {
|
delete UE.plugins[thePlugins].editdom;
|
}
|
};
|
dialog.onok = function () {
|
if ($G('orgname').value == '') {
|
alert('字段名称不能为空!');
|
return false;
|
}
|
var gName = $G('orgname').value.replace(/\"/g, """);
|
var gTitle = $G('orgdisplayname').value.replace(/\"/g, """);
|
|
|
var gTableName = $G('orgtablename').value;
|
var gDataSource = "0";
|
if ($G("orgdatasource1").checked) {
|
gDataSource = "1";
|
}
|
var gSql = $G('orgsql').value;
|
var gTargetModuleId = $G('orgtargetmoduleid').value;
|
var gView = $G('orgview').value;
|
var gSourceRelField=$G('orgsourcerelfield').value;
|
var gFunName=$G('orgfunname').value;
|
var gTargetRelField=$G('orgtargetrelfield').value;
|
var gEdit = "1";
|
if (!$G("orgedit").checked) {
|
gEdit = "0";
|
}
|
var gRequired = "0";
|
if ($G("orgrequired").checked) {
|
gRequired = "1";
|
}
|
var gAuto = "0";
|
if ($G("orgauto").checked) {
|
gAuto = "1";
|
}
|
var gMulti = '0';
|
if ($G('orgmulti').checked) gMulti = '1';
|
|
var gTargetFields="";
|
var gSourceFields="";
|
if(gDataSource=="0"){
|
var fields= fnParseOptions();
|
gTargetFields=fields.targetFields;
|
gSourceFields=fields.sourceFields;
|
}
|
|
if (!oNode) {
|
try {
|
//var gTimestamp = new Date().getTime();//相同的gTimestamp为同一组checkbox
|
//var options = fnParseOptions(gTitle, gChecked, gTimestamp);
|
|
if (gTargetFields == ""||gSourceFields=="") {
|
if (!options) {
|
alert('请添加字段!');
|
return false;
|
}
|
}
|
|
var html = '<input leipiplugins="resource" type="" title="' + gTitle + '" name="' + gName + '" orgtablename="' + gTableName + '" orgdatasource="' + gDataSource + '" orgtargetmoduleid="' + gTargetModuleId + '" orgtargetfields="' + gTargetFields + '" orgsourcefields="'+gSourceFields+'" orgsql="' + gSql + '" orgauto="' + gAuto + '" orgmulti="'+gMulti+'" orgfunname="'+gFunName+'" orgsourcerelfield="'+gSourceRelField+'" orgtargetrelfield="'+gTargetRelField+'" orgedit="' + gEdit + '" orgrequired="' + gRequired + '" />';
|
|
html += '<button onclick="selectResource();">选</button>';
|
editor.execCommand('insertHtml', html);
|
return true;
|
} catch (e) {
|
try {
|
editor.execCommand('error');
|
} catch (e) {
|
alert('控件异常,请联系管理员!');
|
}
|
return false;
|
}
|
} else {
|
oNode.setAttribute('title', gTitle);
|
oNode.setAttribute('name', gName);
|
oNode.setAttribute('orgtablename', gTableName);
|
oNode.setAttribute('orgname', gName);
|
oNode.setAttribute('orgmulti', gMulti);
|
oNode.setAttribute('orgtargetmoduleid', gTargetModuleId);
|
oNode.setAttribute('orgdatasource', gDataSource);
|
oNode.setAttribute('orgsql', gSql);
|
oNode.setAttribute('orgfunname', gFunName);
|
oNode.setAttribute('orgedit', gEdit);
|
oNode.setAttribute('orgrequired', gRequired);
|
oNode.setAttribute('orgauto', gAuto);
|
oNode.setAttribute('orgsourcerelfield', gSourceRelField);
|
oNode.setAttribute('orgtargetrelfield', gTargetRelField);
|
oNode.setAttribute('orgsourcefields', gSourceFields);
|
oNode.setAttribute('orgtargetfields', gTargetFields);
|
delete UE.plugins[thePlugins].editdom;
|
return true;
|
}
|
};
|
|
function openSelectField() {
|
top.layer.open({
|
title: "选择表字段",
|
type: 2,
|
area: ['1000px', '600px'],
|
fixed: false, //不固定
|
content: '/select/selectField.html'
|
});
|
|
}
|
|
function dataSourceChange() {
|
var sourceradio = document.getElementsByName("orgdatasource");
|
var tr_default_1 = document.getElementById("tr_default_1");
|
var tr_default_2 = document.getElementById("tr_default_2");
|
var tr_default_3 = document.getElementById("tr_default_3");
|
var tr_default_4 = document.getElementById("tr_default_4");
|
var tr_view_1 = document.getElementById("tr_view_1");
|
var tr_view_2 = document.getElementById("tr_view_2");
|
|
for (var i = 0; i < sourceradio.length; i++) {
|
if (sourceradio[i].checked) {
|
switch (i) {
|
case 0:
|
tr_default_1.style.display = "";
|
tr_default_2.style.display = "";
|
tr_default_3.style.display = "";
|
tr_default_4.style.display = "";
|
tr_view_1.style.display = "none";
|
tr_view_2.style.display = "none";
|
|
break;
|
case 1:
|
tr_default_1.style.display = "none";
|
tr_default_2.style.display = "none";
|
tr_default_3.style.display = "none";
|
tr_default_4.style.display = "none";
|
tr_view_1.style.display = "";
|
tr_view_2.style.display = "";
|
break;
|
|
}
|
|
return false;
|
}
|
}
|
|
}
|
|
//目标模块字段
|
function selectTargetField(obj){
|
obj.value="Tfield100";
|
}
|
//本模块字段
|
function selectSourceField(obj){
|
obj.value="Sfield100";
|
}
|
</script>
|
</body>
|
|
</html>
|