123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- <%--
- time:2011-11-16 16:34:16
- --%>
- <%@page language="java" pageEncoding="UTF-8"%>
- <%@include file="/commons/include/html_doctype.html"%>
- <html>
- <head>
- <title>编辑WORD表单模板</title>
- <%@include file="/commons/include/form.jsp"%>
- <script type="text/javascript" src="${ctx}/js/util/json2.js"></script>
- <script type="text/javascript" src="${ctx}/js/hotent/CustomValid.js"></script>
- <script type="text/javascript" src="${ctx}/js/hotent/platform/form/FormTableDialog.js"></script>
- <script type="text/javascript">
-
- $(function() {
- $('#frmWorkFlow').ajaxForm({success:showResponse });
- $('#btnAdd').click(function(){
- var subSql = $('#subTableTemplate').find('tr').clone();
- $('#sqlTable').append(subSql);
- });
- $('#sqlTable').delegate('.delSubTableSql', 'click', function(){
- $(this).closest('tr').remove();
- });
- initSqlArea();
- $('#type').change(function(){
- typeChange();
- });
- typeChange();
- });
-
- function initSqlArea(){
- var sqlJson = "${sysWordTemplate.sql}";
- if(!sqlJson) return;
- sqlJson = $.parseJSON(sqlJson);
- $('#main').val(sqlJson.main);
- var subTable = sqlJson.subTable;
- for(var key in subTable){
- $('#btnAdd').trigger('click');
- var sub = $('#sqlTable').find('tr.subTableSqlTr:last');
- sub.find('.subTableName').val(key);
- sub.find('.subTableSql').val(subTable[key]);
- }
- }
-
- function typeChange(obj){
- var value = $('#type').val();
- if(!value || value=='0'){
- $('.sqlOption').hide();
- $('.formOption').show();
- }else {
- $('.sqlOption').show();
- $('.formOption').hide();
- }
- }
-
- function showResponse(responseText){
- var obj=new com.hotent.form.ResultMessage(responseText);
- if(obj.isSuccess()){
- var id = obj.getMessage();
- $('#id').val(id);
- if(isNext) {
- var url = 'editTemplate.ht?id='+id;
- window.location.href = url.getNewUrl();
- }else {
- $.ligerDialog.confirm("保存成功,是否继续操作", "提示信息", function(rtn) {
- if (!rtn) {
- window.opener.location.reload();
- window.close();
- }
- });
- }
- }else{
- $.ligerDialog.error(obj.getMessage(), '出错信息');
- $.ligerDialog.err("提示信息","WORD模版保存失败!",obj.getMessage());
- }
- }
-
- var isNext = false;// 是否是下一步,在showResponse中使用
- function submitData(isDoNext) {
-
- var type = $('#type').val();
- var valid = $("#frmWorkFlow").form().valid();
- if(!valid) return false;
- if(setSqlField(type)===true){
- $.ligerDialog.warn("SQL别名重复!");
- return false;
- }
- setSqlField(type);
- isNext = isDoNext;
- $('#frmWorkFlow').submit();
- }
-
- // 如果的SQL类型,则将SQL拼装成JSON放到表单的隐藏字段中
- function setSqlField(type){
- if(type!='1') return '';
- var sqlObj = {};
- var subTable = {};
- var subTableNameList = [];//SQL别名数组
- var isRepeat = false;//SQL别名是否重复
- var i = 0;
- var main = $('#main').val();
- if($.isEmpty(main)) return '';
- sqlObj.main = main;
- $('#sqlTable .subTableSqlTr').each(function(){
- var subTableName = $(this).find('.subTableName').val();
- subTableNameList[i++] = subTableName;
- var subSql = $(this).find('.subTableSql').val();
- subTable[subTableName] = subSql ;
- });
- //判断SQL别名是否重复
- for(var j = 0 ; j<=subTableNameList.length-2;j++){
- for(var k = j+1;k<=subTableNameList.length-1;k++){
- if(subTableNameList[j]==subTableNameList[k]){//存在重复别名
- isRepeat = true;
- }
- }
- }
- if(isRepeat){
- return isRepeat;
- }else{
- sqlObj.subTable = subTable;
- var subTableSql = JSON2.stringify(sqlObj);
- $('#sql').val(subTableSql);
- return subTableSql;
- }
- }
- function resetTable(){
- $("#tableId").val('');
- $("#tableName").val('');
- };
- function selectTable(){
- var callBack=function(tableId,tableName){
- $("#tableId").val(tableId);
- $("#tableName").val(tableName);
- }
- FormTableDialog({callBack:callBack});
- }
-
- </script>
- </head>
- <body >
- <div>
- <div class="tbar-title">
- <span class="tbar-label">在线表单编辑</span>
- </div>
- <div class="panel-toolbar">
- <div class="toolBar">
- <div class="group">
- <a class="link save" id="dataFormSave" href="javascript:;" onclick="submitData();"><span></span>保存</a>
- </div>
- <c:if test="${not empty sysWordTemplate.fileId}">
- <div class="l-bar-separator"></div>
- <div class="group">
- <a class="link preview" id="btnPreView" href="javascript:;" onclick="preview('${sysWordTemplate.alias}');"><span></span>预览</a>
- </div>
- </c:if>
- <div class="l-bar-separator"></div>
- <div class="group">
- <a class="link del" href="javascript:window.onbeforeunload = null;window.close()"><span></span>关闭</a>
- </div>
- <div class="l-bar-separator"></div>
- <div class="group">
- <a class="link run" href="javascript:;" onclick="submitData(true);"><span></span>下一步</a>
- </div>
- <a href="javascript:;" class="tipinfo"><span>编写SQL时,可以使用__PK__代替业务主键;<br>SQL中的别名,可以是字母下划线的组合,并且需要确保在当前记录中是唯一的。</span></a>
- </div>
- </div>
- </div>
- <div class="panel-body">
- <form id="frmWorkFlow" method="post" action="save.ht">
- <input id="id" type="hidden" name="id" value="${sysWordTemplate.id}" />
- <input id="fileId" type="hidden" name="fileId" value="${sysWordTemplate.fileId}" />
- <div class="panel-nav">
- <table cellpadding="0" cellspacing="0" border="0" class="table-detail">
- <tr>
- <th width="200px">名称: </th>
- <td><input id="name" type="text" name="name" validate="{required:true}" value="${sysWordTemplate.name}" class="inputText"/></td>
- </tr>
- <tr>
- <th>别名: </th>
- <td><input id="alias" type="text" name="alias" validate="{required:true}" value="${sysWordTemplate.alias}" class="inputText"/></td>
- </tr>
- <tr>
- <th>类型: </th>
- <td>
- <select name="type" id="type" class="inputText">
- <option value="0" <c:if test="${sysWordTemplate.type == 0}">selected="selected"</c:if>>自定义表</option>
- <option value="1" <c:if test="${sysWordTemplate.type == 1}">selected="selected"</c:if>>SQL</option>
- </select>
- <textarea style="display: none;" id="sql" name="sql">${sysWordTemplate.sql}</textarea>
- </td>
- </tr>
- <tr class="formOption">
- <th>表: </th>
- <td>
- <input type="text" id="tableName" class="inputText" name="tableName" value="${sysWordTemplate.tableName}" readonly="readonly">
- <input type="hidden" id="tableId" name="tableId" value="${sysWordTemplate.tableId}" validate="{required:true}">
- <a href='#' class='link search' onclick="selectTable()" ></a>
- <a href='#' class='link redo' style='margin-left:10px;' onclick="resetTable()"><span>重选</span></a>
- </td>
- </tr>
- <tr class="sqlOption">
- <th>数据源别名: </th>
- <td>
- <select name="dsAlias" id="dsAlias" class="inputText">
- <option value="LOCAL">本地数据源</option>
- <c:forEach items="${dsList}" var="ds">
- <option value="${ds.alias}" <c:if test="${sysWordTemplate.dsAlias eq ds.alias}">selected="selected"</c:if>>${ds.name}</option>
- </c:forEach>
- </select>
- </td>
- </tr>
- <tr class="sqlOption">
- <th>SQL: </th>
- <td>
- <div class="panel-toolbar">
- <div class="toolBar">
- <div class="group">
- <a id="btnAdd" class="link add"><span></span>添加</a>
- </div>
- </div>
- </div>
-
- <table cellpadding="0" cellspacing="0" border="0" class="table-detail" id="sqlTable">
- <tr>
- <th style="text-align: left;padding-left: 5px;width:120px;">别名:</th>
- <th style="text-align: left;padding-left: 10px;">SQL语句</th>
- <th style="text-align: center;width:65px;">操作</th>
- </tr>
- <tr>
- <td>main</td>
- <td><textarea style="width:99%;height:100px;" id="main" validate="{required:true}"></textarea></td>
- <td></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </div>
- </form>
- </div>
- <table class="hidden" id="subTableTemplate">
- <tr class="subTableSqlTr">
- <td><input type="text" class="inputText subTableName" validate="{required:true,variable:true}" value=""></td>
- <td><textarea style="width:99%;height:100px;" class="subTableSql" validate="{required:true}"></textarea></td>
- <td><a id="btnDel" class="link del delSubTableSql"><span></span>删除</a></td>
- </tr>
- </table>
- <jsp:include page="sysWordTemplateInc.jsp"></jsp:include>
- </body>
- </html>
|