pwj_jspChk.ss.jsp 42 KB

1
  1. <html> <head> <%-- 来自 gzwj_sh_bj_visualHtml.jsp。Start。Lin --%> <link rel="stylesheet" type="text/css" href="/pms/jspDgn/forms/css/reset.css" /> <link rel="stylesheet" type="text/css" href="/pms/jspDgn/forms/css/index.css" /> <link rel="stylesheet" type="text/css" href="/pms/jspDgn/forms/css/wd_general.css" /> <link rel="stylesheet" type="text/css" href="/pms/jspDgn/forms/js/plguins/layui/css/layui.css" /> <%-- 来自 gzwj_sh_bj_visualHtml.jsp。End。Lin --%> </head> <body> <div class="layui-row layui-col-space12 rows"> <%-- 使用 gzwj_sh_bj_visualHtml.jsp 框架。Lin --%> <%-- 来自 gzwj_sh_bj_visualHtml.jsp。Start。Lin --%> <div class="layui-col-xs2 toolbox" style="padding-top: 0px;"> <xmp id="viewobjectfields" style="display: none;">${viewobjectfields}</xmp> <%-- 改。Lin <xmp id="nrwj" style="display: none;"><wd:write value="${nrwj}"/></xmp> --%> <xmp id="nrwj" style="display: none;">"${nrwj}"</xmp> <div id="vis_field" class="layui-card toolbox-tool" style="height:calc(100% - 289px);display:none;"> <div class="layui-card-header"> <%-- 再改,先去掉 "工具箱",不知是啥???Lin 按钮的 "margin-top: 10px" > 3px <i class="layui-icon layui-icon-util"></i> 工具箱 <button type="button" class="layui-btn layui-btn-xs" style="float: right; margin-top: 10px;" onclick="wd.dyform.index.addField();"><i class="layui-icon layui-icon-add-1"></i> 高级字段</button> --%> <i class="layui-icon layui-icon-set"></i> 字段 <button type="button" class="layui-btn layui-btn-xs" style="float: right; margin-top: 3px;" onclick="wd.dyform.index.addField();"><i class="layui-icon layui-icon-add-1"></i>增加</button> </div> <%-- 再改,- 168px 做啥???Lin 365px = (400-31) - (2+2)。layui-card-body 上、下有 2px padding <div class="layui-card-body" style="height: calc(100% - 168px); overflow: auto;"> --%> <div class="layui-card-body" style="height:365px; margin-top:2px; overflow:auto;"> <div class="no-data"></div> <ul id="toolbox-box" class="toolbox-box"> </ul> </div> </div> <div class="layui-card toolbox-tool" style="height: 289px;"> <%-- (31 + (2+256))。Lin --%> <div class="layui-card-header"> <i class="layui-icon layui-icon-util"></i> 操作 <button type="button" id="swInf" class="layui-btn layui-btn-xs" style="float:right; margin-top:3px;" onclick="swInf()"><i class="layui-icon layui-icon-fonts-code"></i>切换界面</button> </div> <div class="layui-card-body" style="height:256px; margin-top:2px; overflow: auto;"> <%-- :calc(100%)。Lin --%> <div class="no-data"></div> <ul id="toolbox-box" class="toolbox-box" style="font-size:12px; margin-left: 2px;"> <%-- 增加 font-size,统一字号。Lin --%> <div>文件:${wj.mc}</div> <div>类别:<cbTrans.ss cb="pwjlb" val="${wj.pwjlbm}"/></div> <div>业务:${ywmStr}</div> <%-- 再增加 ywmStr。Lin --%> <div>对象:${dxmStr}</div> <%-- 再增加 ywmStr。Lin --%> <div> <%-- 改,调整录入框宽度。Lin 名称: <input type="text" name="desc" value='<wd:write value="${bjData.desc}"/>' class="input-white-500 cscProperty"> --%> 描述:<input type="text" name="desc" value="${bjData.desc}" class="input-white-500 cscProperty" style="width:134px"> </div> <%-- 再去掉,不能改了。Lin <div> 是否系统创建: <select name="isSysCreate" class="input-white-500 cscProperty"> <option>请选择</option> <option value="0" >否</option> <option value="1"}>是</option> </select> <script> $(".cscProperty[name=isSysCreate]").val('${bjData.isSysCreate}'); </script> --%> <%-- <input type="text" name="isSysCreate" value='<wd:write value="${bjData.isSysCreate}"/>' class="input-white-500 cscProperty"> --%> <%-- 再去掉,"是否系统创建" 不能改了。Lin </div> --%> <%-- 来自 gzwj_sh_bj_html.jsp。Start。Lin --%> <div> 部件宽度:<input type="text" id="pageWidth" name="width" value="${bjData.width}" class="input-white-500 cscProperty" style="width:80px"><br> </div> <div> 部件高度:<input type="text" id="pageHeight" name="height" value="${bjData.height}" class="input-white-500 cscProperty" style="width:80px"><br> </div> <%-- 来自 gzwj_sh_bj_html.jsp。End。Lin --%> <div> <%-- 改,调整录入框宽度。Lin 固定高度:<input type="text" name="fixedHeight" value='<wd:write value="${bjData.fixedHeight}"/>' class="input-white-500 cscProperty"> --%> 固定高度:<input type="text" name="fixHeight" value="${bjData.fixHeight}" class="input-white-500 cscProperty" style="width:80px"> </div> <%-- 改用统一的按钮样式。Lin layui-btn-xs 改为 layui-btn-sm(高点) <button onclick="dgnSave()">保存</button> <button onclick="dgnCompile()">提交</button> --%> <div id="vis_btn" style="float:right;margin:12px 5px 8px;display:none;"> <button type="button" class="layui-btn layui-btn-sm" onclick="dgnSave()"><i class="layui-icon layui-icon-ok"></i> 保存</button> <button type="button" class="layui-btn layui-btn-sm" onclick="dgnCompile()"><i class="layui-icon layui-icon-release"></i> 提交</button> </div> <%-- 来自 gzwj_sh_bj_html.jsp。Start。Lin --%> <div id="code_btn" style="float: right; margin: 12px 5px 8px;"> <button type="button" class="layui-btn layui-btn-sm" onclick="save()"><i class="layui-icon layui-icon-ok"></i> 保存</button> <button type="button" class="layui-btn layui-btn-sm" onclick="compile()"><i class="layui-icon layui-icon-release"></i> 提交</button> </div> <%-- 来自 gzwj_sh_bj_html.jsp。End。Lin --%> </ul> </div> </div> </div> <%-- 再去掉单元格标题行(共用画布属性行),单元格属性区域移到最下部。End。Lin 去掉 <fieldset 和 <legend 去掉 "保存" 按钮,去掉编辑字段名 <div class="layui-col-xs10 attribute" style="padding-top: 0px;height:150px;"> <div class="layui-card"> <div class="layui-card-header"><i class="layui-icon layui-icon-layouts"></i>&nbsp;属性</div> <div class="layui-card-body" style="margin-top:-20px;"> <div class="layui-tab-content"> <div class="layui-tab-item layui-show"> <div id="attributePanel" class="attributePanel"> <fieldset class="layui-elem-field" style="width:31%;float:left;margin-right:1%;"> <legend>Attr</legend> <div class="layui-field-box" style="padding:5px 10px;"> <div id="attrTxtPanel"> <div class="layui-form" style="text-align:center;"> <div class="layui-form-item" style="margin-bottom:5px;width:28%;float:left;clear:inherit;margin-right:1%;"> <!-- <label class="layui-form-label">标题</label> --> <div class="layui-input-block" style="margin-left:0 !important"> <input type="text" id="attrPeLabel" placeholder="标题" class="layui-input"/> </div> </div> <div class="layui-form-item" id="attrPeNameItem" style="margin-bottom:5px;width:28%;float:left;clear:inherit;margin-right:1%;"> <!-- <label class="layui-form-label">Name</label> --> <div class="layui-input-block" style="margin-left:0 !important"> <input type="text" id="attrPeName" placeholder="Name" class="layui-input" /> </div> </div> <div class="layui-form-item" id="attrPePlaceholderItem" style="margin-bottom:5px;width:28%;float:left;clear:inherit;margin-right:1%;"> <!-- <label class="layui-form-label">提示</label> --> <div class="layui-input-block" style="margin-left:0 !important"> <input type="text" id="attrPePlaceholder" placeholder="提示" class="layui-input" /> </div> </div> <button type="button" class="layui-btn layui-btn-fluid layui-btn-sm layui-btn-normal" style="width:12%;height:38px;" onclick="wd.dyform.boxAttr.attr.save();">保存</button> </div> </div> </div> </fieldset> <fieldset class="layui-elem-field" id="inputFieldset" style="width:22%;float:left;margin-right:1%;"> <legend>Input</legend> <div class="layui-field-box" style="padding:5px 10px;"> <div id="attrTxtPanel"> <div class="layui-form" style="text-align:center;"> <div class="layui-form-item" style="margin-bottom:5px;width:40%;clear:inherit;float:left;margin-right:1%;"> <!-- <label class="layui-form-label">宽度</label> --> <div class="layui-input-block" style="margin-left:0 !important"> <input type="text" id="attrInputWidth" placeholder="输入宽度(字数)" class="layui-input" /> </div> </div> <div class="layui-form-item" id="attrPeNameItem" style="margin-bottom:5px;width:40%;clear:inherit;float:left;margin-right:1%;"> <!-- <label class="layui-form-label">高度</label> --> <div class="layui-input-block" style="margin-left:0 !important"> <input type="text" id="attrInputHeight" placeholder="输入高度(行数)" class="layui-input" /> </div> </div> <button type="button" class="layui-btn layui-btn-fluid layui-btn-sm layui-btn-normal" style="width:17%;height:38px;" onclick="wd.dyform.boxAttr.inputAttr.save();">保存</button> </div> </div> </div> </fieldset> <fieldset class="layui-elem-field" style="width:11%;float:left;margin-right:1%;height:71px;"> <legend>合并</legend> <div class="layui-field-box" style="text-align: center;padding:5px 10px;"> <div id="attrBtnPanel" class="layui-btn-group"> <button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="wd.dyform.boxAttr.merge.left();">向左合并</button> <button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="wd.dyform.boxAttr.merge.right();">向右合并</button> </div> </div> </fieldset> <fieldset class="layui-elem-field" style="width:11%;float:left;margin-right:1%;height:71px;"> <legend>跨行</legend> <div class="layui-field-box" style="text-align: center;padding:5px 10px;"> <div id="attrBtnPanel" class="layui-btn-group"> <button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="wd.dyform.boxAttr.rowspanBottom();">跨行 + 1</button> <button type="button" class="layui-btn layui-btn-sm layui-btn-primary" onclick="wd.dyform.boxAttr.rowspanClear();">跨行 -1</button> </div> </div> </fieldset> <fieldset class="layui-elem-field" style="width:19%;float:left;margin-right:1%;margin-top:.7%;height:60px;line-height:42px;"> <div class="layui-field-box" style="text-align: center;padding:5px 10px;"> <button type="button" class="layui-btn layui-btn-sm layui-btn-normal" style="margin-top: 6px;" onclick="wd.dyform.boxAttr.eventAll.editCode();">编辑源代码</button> <button type="button" class="layui-btn layui-btn-sm layui-btn-warm" style="margin-top: 6px;" onclick="wd.dyform.boxAttr.eventAll.resetRow();">重置单元格</button> <button type="button" class="layui-btn layui-btn-sm layui-btn-danger" style="margin-top: 6px;" onclick="wd.dyform.boxAttr.eventAll.delRow();">删除单元格</button> </div> </fieldset> </div> </div> <div id="noEleBtn" style="display: none;"> <fieldset class="layui-elem-field"> <div class="layui-field-box" style="text-align: center;"> <button type="button" class="layui-btn layui-btn-sm layui-btn-danger" onclick="wd.dyform.boxAttr.eventAll.delRow();">删除单元格</button> </div> </fieldset> </div> <div id="attrNoData" class="no-data" style="margin-top:0px;background-size:auto 100%;min-height:100px;background-position:center;"></div> </div> </div> </div> </div> --%> <%-- 再去掉,没用到。Lin <div class="layui-col-xs10 main"> --%> <div id="vis_main" class="layui-card" style="overflow-y:auto;display:none;"> <%-- 从下部上移到这。画布标题行 和 画布区域 上下对调。画布标题行同时作为单元格标题行。Start。Lin 增加 id="incCell",用于控制 "列数+1" 按钮的显示 --%> <%-- 再增加 style="float:left;border-right:1px solid #e2d9d9;"。Lin float:left,画布居左 border-right:1px solid #e2d9d9,右边加竖线边框 -- 模拟弹出框效果 <div class="layui-card-body cardMain "> --%> <div class="layui-card-body cardMain" style="float:left;border-right:1px solid #e2d9d9;"> <div id="main" class="main" style="padding:12px 8px 15px;"> </div> <xmp id="mainScript" style="display: none;"> </xmp> <div id="incCell" onclick="wd.dyform.container.addCell();" class="addRow no-select" style="transform: rotate(-90deg); position: absolute; right: -60px; top: 50%; margin-top: -10px; display: block;"> <i class="layui-icon layui-icon-add-1"></i> </div> </div> <%-- 从下部上移到这。画布标题行 和 画布区域 上下对调。画布标题行同时作为单元格标题行。End。Lin --%> <div class="layui-tab layui-tab-card" style="float:left;"> <%-- 再改 "HTML" 为按钮(像 "重置" 一样)。Lin <ul class="layui-tab-title" style="width: 300px; float: left;"> <li id="view" class="layui-this"><i class="layui-icon layui-icon-edit"></i>视图</li> <li onclick="wd.dyform.index.listenerTabs('html')"><i class="layui-icon layui-icon-fonts-code"></i>HTML</li> <!--<li> <i class="layui-icon layui-icon-release"></i> 预览</li>--> </ul> <div class="settings"> --%> <div class="settings" style="height:42px"> <%-- 再去掉 "属性",不用说。Lin 去掉 "重置",逐个用 "擦除字段" 按钮 "保存" 按钮什么情况下会显示出来,先去掉 <i class="layui-icon layui-icon-layouts" style="margin-left: 8px;"></i>&nbsp;属性 <div class="layui-btn-group" style="margin-right: 6px;float: right;"> <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layui-btn-disabled" id="reset" disabled="disabled" onclick="wd.dyform.index.reset();">重置</button> <button style="display:none;" type="button" class="layui-btn layui-btn-normal layui-btn-sm layui-btn-disabled" id="down" disabled="disabled" onclick="wd.dyform.index.down();">保存</button> </div> --%> <%-- 再去掉,加了之后,总是与上面的 <div 的高度多 2px。搞不懂。Lin <div id="settings-rows" class="settings-rows"> --%> <%-- 再改。Lin 去掉 "列数",只提供 "列数+1" 和 "重绘" 功能 去掉 "宽度(PX)"、"高度(PX)",部件宽、高自动计算,并赋值到左侧栏的 部件宽、高 布局&nbsp;&nbsp; <input type="number" id="row" min="1" max="99" class="settings-rows-text" value="6" placeholder="行数" style="width:60px"/> * <input type="number" id="cell" min="1" max="99" class="settings-rows-text" value="2" placeholder="列数" style="width:60px"/> <button type="button" id="createBtn" class="layui-btn layui-btn-primary layui-btn-sm" onclick="wd.dyform.container.init();">确定</button> &nbsp;&nbsp;&nbsp;&nbsp;部件宽高&nbsp;&nbsp; <input type="number" id="bjWidth" min="1" max="999999" class="settings-rows-text" value="" placeholder="宽度(PX)" style="width:60px"/> * <input type="number" id="bjHeight" min="1" max="999999" class="settings-rows-text" value="" placeholder="高度(PX)" style="width:60px"/> <button type="button" id="bjBtn" class="layui-btn layui-btn-primary layui-btn-sm" onclick="wd.dyform.container.bjInit();">确定</button> --%> <%-- 改,增加带 +1/-1 按钮的录入框 样式。Lin &nbsp;行数:<input type="text" id="row" readonly class="settings-rows-text" value="6" style="width:40px;margin-top:-6px;padding-left:2px;text-align:center;"/> <button type="button" class="layui-icon layui-icon-right" style="width:20px;height:28px;margin:8px 0 0 -9px;" onclick="wd.dyform.container.addRow();"></button> --%> &nbsp;行数:<input type="text" id="row" class="incInp" value="6" style="width:40px !important;"/> <button type="button" class="incBtn layui-icon layui-icon-right" style="margin-left:-10px;" onclick="wd.dyform.container.addRow();"></button> <span id="colWidth1">&nbsp;左列宽度:</span> <span id="colWidth" style="display:none">&nbsp;列宽度:</span> <button type="button" class="decBtn layui-icon layui-icon-left" onclick="wd.dyform.boxAttr.inputAttr.decThCnNum1();"></button> <input type="text" id="thCnNum1" placeholder="表头" class="incDecInp"> <button type="button" class="incBtn layui-icon layui-icon-right" onclick="wd.dyform.boxAttr.inputAttr.incThCnNum1();"></button> <button type="button" class="decBtn layui-icon layui-icon-left" onclick="wd.dyform.boxAttr.inputAttr.decTdCnNum1();"></button> <input type="text" id="tdCnNum1" placeholder="数据" class="incDecInp"> <button type="button" class="incBtn layui-icon layui-icon-right" onclick="wd.dyform.boxAttr.inputAttr.incTdCnNum1();"></button> <span id="colWidth2">&nbsp;右列宽度:</span> <button type="button" id="decThCnNum2" class="decBtn layui-icon layui-icon-left" onclick="wd.dyform.boxAttr.inputAttr.decThCnNum2();"></button> <input type="text" id="thCnNum2" placeholder="表头" class="incDecInp"> <button type="button" id="incThCnNum2" class="incBtn layui-icon layui-icon-right" onclick="wd.dyform.boxAttr.inputAttr.incThCnNum2();"></button> <button type="button" id="decTdCnNum2" class="decBtn layui-icon layui-icon-left" onclick="wd.dyform.boxAttr.inputAttr.decTdCnNum2();"></button> <input type="text" id="tdCnNum2" placeholder="数据" class="incDecInp"> <button type="button" id="incTdCnNum2" class="incBtn layui-icon layui-icon-right" onclick="wd.dyform.boxAttr.inputAttr.incTdCnNum2();"></button> <div style="float:right;margin-right:8px;"> <button type="button" class="layui-btn layui-btn-sm layui-btn-normal" onclick="wd.dyform.index.listenerTabs('html');">编辑代码</button> <%-- "HTML"。Lin --%> <%-- 再去掉 "重置"(清除所有字段),改为 "重绘"(删除空白的行和列)。Lin <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layui-btn-disabled" id="reset" disabled="disabled" onclick="wd.dyform.index.reset();">重置</button> --%> <button type="button" class="layui-btn layui-btn-sm layui-btn-warm" onclick="wd.dyform.index.refreshPage();">重绘画布</button> <%-- "HTML"。Lin --%> </div> <input type="number" id="bjWidth" value="" style="display:none"/> <%-- 先保留,不改程序。Lin --%> <input type="number" id="bjHeight" value="" style="display:none"/> <%-- 先保留,不改程序。Lin --%> <%-- 再去掉,加了之后,总是与上面的 <div 的高度多 2px。搞不懂。Lin </div> --%> </div> <%-- 单元格属性区域,从上部移到这。Start。Lin 改用画布属性区域的结构、样式 "向左合并"(boxAttr.merge.left())、"向右合并"(boxAttr.merge.right()) 合并为 "左右合并"(boxAttr.combCol()) 增加 "拆分" --%> <div class="settings" style="height:42px"> <%-- 再去掉,加了之后,总是与上面的 <div 的高度多 2px。搞不懂。Lin <div class="settings-rows"> --%> &nbsp;<input type="text" id="attrPeLabel" placeholder="字段标签" class="settings-rows-text" style="width:120px;margin-top:-6px;background-color:white;"/> <input type="text" id="attrPePlaceholder" placeholder="字段提示" class="settings-rows-text" style="width:180px;margin:-6px 0 0 -10px;background-color:white;"/> &nbsp;<button type="button" class="decBtn layui-icon layui-icon-left" onclick="wd.dyform.boxAttr.inputAttr.decInpCnNum();"></button> <input type="text" id="attrInputWidth" placeholder="字数" class="incDecInp"> <button type="button" class="incBtn layui-icon layui-icon-right" onclick="wd.dyform.boxAttr.inputAttr.incInpCnNum();"></button> <button type="button" class="decBtn layui-icon layui-icon-left" onclick="wd.dyform.boxAttr.inputAttr.decInpRowNum();"></button> <input type="text" id="attrInputHeight" placeholder="行数" class="incDecInp" style="width:40px !important;"/> <button type="button" class="incBtn layui-icon layui-icon-right" onclick="wd.dyform.boxAttr.inputAttr.incInpRowNum();"></button> &nbsp;<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" style="margin-top:-5px;" onclick="wd.dyform.boxAttr.combCol();">左右合并</button> <%-- "向左合并"。Lin --%> <button type="button" class="layui-btn layui-btn-sm layui-btn-primary" style="margin:-5px 0 0 -8px;" onclick="wd.dyform.boxAttr.merge.right();">拆分</button> <%-- "向右合并"。Lin --%> <button type="button" class="layui-btn layui-btn-sm layui-btn-primary" style="margin:-5px 0 0 0;" onclick="wd.dyform.boxAttr.rowspanBottom();">向下合并</button> <%-- "跨行 + 1"。Lin --%> <button type="button" class="layui-btn layui-btn-sm layui-btn-primary" style="margin:-5px 0 0 -8px;" onclick="wd.dyform.boxAttr.rowspanClear();">拆分</button> <%-- "跨行 -1"。Lin --%> <div style="float:right;margin-right:8px;"> <%-- 再去掉,意义不大。需要再加回。Lin <button type="button" class="layui-btn layui-btn-sm layui-btn-normal" style="margin-top: 6px;" onclick="wd.dyform.boxAttr.eventAll.editCode();">编辑源代码</button> --%> <button type="button" class="layui-btn layui-btn-sm layui-btn-warm" onclick="wd.dyform.boxAttr.eventAll.resetRow();">擦除字段</button> <%-- "重置单元格"。Lin --%> <%-- 再去掉,不用删除单元格,增加 "重绘" 功能(删除多余的行和列)。Lin <button type="button" class="layui-btn layui-btn-sm layui-btn-danger" style="margin-top: 6px;" onclick="wd.dyform.boxAttr.eventAll.delRow();">删除单元格</button> --%> </div> <%-- 再去掉,选中空白的单元格时,不隐藏单元格属性区域。同时,单元格属性考虑改为 Disable,不隐藏 -- 空着,画面不好看。Lin <div id="noEleBtn" style="display: none;"> <fieldset class="layui-elem-field"> <div class="layui-field-box" style="text-align: center;"> <button type="button" class="layui-btn layui-btn-sm layui-btn-danger" onclick="wd.dyform.boxAttr.eventAll.delRow();">删除单元格</button> </div> </fieldset> </div> --%> <%-- 再去掉 空白的单元格属性区域。同时,单元格属性考虑改为 Disable,不隐藏 -- 空着,画面不好看。Lin <div id="attrNoData" class="no-data" style="margin-top:0px;background-size:auto 100%;min-height:100px;background-position:center;"></div> --%> <%-- 再去掉,加了之后,总是与上面的 <div 的高度多 2px。搞不懂。Lin </div> --%> </div> <%-- 单元格属性区域,从上部移到这。End。Lin --%> </div> <%-- 再移到最上面。画布标题行 和 画布区域 上下对调。画布标题行同时作为单元格标题行。Lin 去掉 addCell 和 addRow 按钮,功能移到 Row、Cell 录入框的 +/- 按钮 <div class="layui-card-body cardMain "> <div id="main" class="main"> </div> <xmp id="mainScript" style="display: none;"> </xmp> <div class="addRow no-select" onclick="wd.dyform.index.addCell();" style="transform: rotate(-90deg); position: absolute; right: -30px; top: 50%; margin-top: -23px; display: block;"> <i class="layui-icon layui-icon-add-1"></i> </div> <div class="addRow no-select" onclick="wd.dyform.container.addRow();"> <i class="layui-icon layui-icon-add-1"></i> </div> </div> --%> </div> <%-- 再去掉,没用到。Lin </div> --%> <%-- 来自 gzwj_sh_bj_visualHtml.jsp。End。Lin --%> <%-- 来自 gzwj_sh_bj_html.jsp。Start。Lin 问题:先显示 "vis" 后切换到 "code" 后,codemirror 编辑框的行号、内容重叠 -- CodeMirror-linenumbers 的 width = 1px 所致 <div class="CodeMirror-gutter CodeMirror-linenumbers" style="width: 1px;"> 改为 29px <div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 4px; left: 5px;"> 改为 34px = 5+29 px --%> <%-- 再改,使用 gzwj_sh_bj_visualHtml.jsp 框架。Lin <div id="code_main" style="height:100%;width:100%;min-width:500px;min-width:900px;"> --%> <div id="code_main" class="layui-card" style="overflow-y:auto;"> <%-- 再把 onkeyup="typed()" 移到 "code" 的 <div 里 -- 在 "bjcontent" 里,不起作用。Lin <textarea id="bjcontent" name="nrwj" class="ckeditor" onkeyup="typed()"> --%> <textarea id="bjcontent" name="nrwj" style="display:none;"> <txt.ss val="${nrwj}"/></textarea> <%-- 两个 <textarea> 之间不能留有空隙,不然会带到 代码编辑框 里。Lin --%> <div id="code" style="height:500px;width:100%;overflow-y:auto;" onkeyup="typed()"></div><!-- 代码编辑框 --> <iframe id="bjpreview" style="width:100%;height:194px;"></iframe> <css.ss file="/ss/codemirror/docs.css"/> <%-- 样式有冲突。画布里的字段标签,多了下划线。Lin --%> <css.ss file="/ss/codemirror/codemirror.css"/> <css.ss file="/ss/codemirror/show-hint.css"/> <js.ss file="/ss/codemirror/codemirror.js"/> <js.ss file="/ss/codemirror/anyword-hint.js"/> <js.ss file="/ss/codemirror/css-hint.js"/> <js.ss file="/ss/codemirror/show-hint.js"/> <js.ss file="/ss/codemirror/xml-hint.js"/> <js.ss file="/ss/codemirror/html-hint.js"/> <!-- 在此文件添加代码提示 --> <js.ss file="/ss/codemirror/javascript-hint.js"/> <js.ss file="/ss/codemirror/xml.js"/> <js.ss file="/ss/codemirror/javascript.js"/> <js.ss file="/ss/codemirror/css.js"/> <js.ss file="/ss/codemirror/htmlmixed.js"/> <js.ss file="/ss/codemirror/wdXmlSchemas.js"/> <js.ss file="/ss/codemirror/wdHtmlSchemas.js"/> <js.ss file="/ss/codemirror/codemirror.init.js"/> </div> <%-- 来自 gzwj_sh_bj_html.jsp。End。Lin --%> </div> <%-- 使用 gzwj_sh_bj_visualHtml.jsp 框架。Lin --%> </body> <%-- 来自 gzwj_sh_bj_visualHtml.jsp。Start。Lin --%> <script src="/pms/jspDgn/forms/js/plguins/layui/layui.all.js" type="text/javascript" charset="utf-8"></script> <script src="/pms/jspDgn/forms/js/plguins/sortable/Sortable.js" type="text/javascript" charset="utf-8"></script> <script src="/pms/jspDgn/forms/js/logic/vars.js" type="text/javascript" charset="utf-8"></script> <script src="/pms/jspDgn/forms/js/logic/utils.js" type="text/javascript" charset="utf-8"></script> <script src="/pms/jspDgn/forms/js/logic/options.js" type="text/javascript" charset="utf-8"></script> <script src="/pms/jspDgn/forms/js/logic/container.js" type="text/javascript" charset="utf-8"></script> <script src="/pms/jspDgn/forms/js/logic/field.js" type="text/javascript" charset="utf-8"></script> <script src="/pms/jspDgn/forms/js/logic/attribute.js" type="text/javascript" charset="utf-8"></script> <script src="/pms/jspDgn/forms/js/logic/formatHtml.js" type="text/javascript" charset="utf-8"></script> <script src="/pms/jspDgn/forms/js/logic/index.js" type="text/javascript" charset="utf-8"></script> <%-- 来自 gzwj_sh_bj_visualHtml.jsp。End。Lin --%> <script> /// 再增加,从 typed() 提取到这,不重复取 -- "部件宽度" 改变时,置 "bjpreview"(iframe) 宽度。Lin var previewIframe = document.getElementById("bjpreview"); var previewDoc = previewIframe.contentDocument || previewIframe.contentWindow.document; function wrPreviewIframe(pageWidth) { if (pageWidth) previewIframe.style.width = pageWidth +"px"; } /// // 再增加,切换界面 -- inf = interface。Lin var curInf = "code"; function swInf() { if (curInf == "vis") { $("#vis_field").hide(); $("#vis_main").hide(); $("#vis_btn").hide(); $("#code_btn").show(); $("#code_main").show(); curInf = "code"; } else { $("#code_btn").hide(); $("#code_main").hide(); $("#vis_field").show(); $("#vis_main").show(); $("#vis_btn").show(); curInf = "vis"; } } <%-- 来自 gzwj_sh_bj_visualHtml.jsp。Start。Lin --%> $(function(){ /// 再增加,纳入代码编辑。Lin wrPreviewIframe(${bjData.width}); var wjlbm = ${wj.pwjlbm}; /* 再改,默认先显示 代码编辑(code_main、code_btn) -- 否则,切换到 代码编辑 时,code_main 会乱。Lin if (wjlbm == 10211 || // "SS部件(.ss.jsp)"。Lin wjlbm == 10281) // "首页部件(.home.jsp)"。Lin swInf(); */ if (wjlbm == 10221 || // "录入部件(_inp.ss.jsp)"。Lin wjlbm == 10251 || // "基本情况部件(_baseInfo.ss.jsp)"。Lin wjlbm == 10255) // "迷你情况部件(_miniInfo.ss.jsp)"。Lin swInf(); /// wd.dyform.vars.bjlbm = "${wj.pwjlbm}"; var viewobjectfields=$("#viewobjectfields").html(); wd.dyform.choose.getField(eval("("+viewobjectfields+")")); var scriptStr=""; var htmlStr=""; //实体符装换成html /* 再改为不转。Lin var nrwj=$('<div></div>').html($("#nrwj").text()).text(); */ var nrwj=$('<div></div>').html($("#nrwj").text()); var nrwjElement=$('<span></span>').append(nrwj); var nrwjScript=nrwjElement.find("script"); nrwjScript.each(function(){ scriptStr+=this.innerHTML; }) nrwjScript.remove(); /* 再改,不去掉 <div><table> -- 不写 <td class=。Lin * 无法加 <div><table> 到画布里 -- 单元格和外围都用 <div */ htmlStr=nrwjElement.find("tbody").html(); // console.log(scriptStr); // console.log(htmlStr); /* 再重写 bjInit() 为 pageInit(width, height)。Lin * 增加 pageWidth、pageHeight 全局变量,去掉页面的 bjWidth、bjHeight 了 * width、height 为 空/0 时,用默认值 -- 默认值不在页面里写 var w = '${bjData.width}' || 800; var h = parseInt('${bjData.height}' || 600) -13; $("#bjHeight").val(h); $("#bjWidth").val(w) wd.dyform.container.bjInit(); */ /* 再去掉,移到 container.init() 去设置。Lin wd.dyform.container.pageInit($@{bjData.width}, $@{bjData.height}); */ if(htmlStr||scriptStr) { /// 再增加写全局变量 pageWidth、pageHeight。Lin /* 再去掉,在 index.loadHtml( 里重新计算 -- 编辑代码的保存 和 重绘(调用 loadHtml),需要改变部件宽、高等。Lin wd.dyform.vars.pageWidth = ${bjData.width}; wd.dyform.vars.pageHeight = ${bjData.height}; */ /// wd.dyform.index.loadHtml(htmlStr,scriptStr); /// 再增加,按 6*2 初始化 -- 默认值 row = 6,cell = 2。Lin } else { wd.dyform.container.init(); } /// /// 再增加,刷新字段列表 -- 去掉部件里的字段。Lin // 显示单元格属性区域 wd.dyform.container.resetToolBox(); $("#attributePanel").show(); /// }) <%-- 来自 gzwj_sh_bj_visualHtml.jsp。End。Lin --%> <%-- 再增加,去掉属性区域里的 "保存" 按钮。Start。Lin --%> <%-- 当直接录入时,改为自动追加到录入的行数,而不是原来的重建画布。Lin --%> $("[id=row]").on("change",function(){ var newRowNum = parseInt(this.value); if (newRowNum > wd.dyform.vars.curRowNum) { var addRowNum = newRowNum - wd.dyform.vars.curRowNum; for (var i = 0; i < addRowNum; i++) { wd.dyform.container.addRow(); } } else { $("#row").val(wd.dyform.vars.curRowNum); } }).trigger("change"); <%-- 字段标签、录入提示。Lin --%> $("[id=attrPeLabel]").on("change",function(){ wd.dyform.boxAttr.attr.save(); }).trigger("change"); $("[id=attrPePlaceholder]").on("change",function(){ wd.dyform.boxAttr.attr.save(); }).trigger("change"); <%-- 字段录入框宽、高。Lin --%> $("[id=attrInputWidth]").on("change",function(){ wd.dyform.boxAttr.inputAttr.save(); }).trigger("change"); $("[id=attrInputHeight]").on("change",function(){ wd.dyform.boxAttr.inputAttr.save(); }).trigger("change"); <%-- 再增加,去掉单元格属性区域里的 "保存" 按钮。End。Lin --%> <%-- 再增加,设置 "bjpreview"(iframe) 宽度 -- 增强预览效果。Start。Lin --%> $("[id=pageWidth]").on("change",function(){ wrPreviewIframe(this.value); }).trigger("change"); <%-- 再增加,设置 "bjpreview"(iframe) 宽度 -- 增强预览效果。End。Lin --%> function attributesCheck(){ /* 改,<wd:token service= dest= param= test=,实际为可变/动态服务,改为 <serv@ss/<varServ@ss 了。Lin var tokens=codemirrorEditor.getValue().match(/<wd\:token.*?>/gm) */ var tokens=codemirrorEditor.getValue().match(/serv.ss.*?>/gm) //if(tokens==null)return true; var result=""; if(tokens) for(var i=0;i<tokens.length;i++){ var m; //service m=tokens[i].match(/service=['"](.*?)['"]/); if(m!=null&&m[1].indexOf("$")==-1){ result+=tokens[i]+"\r\n"; continue; } //dest m=tokens[i].match(/dest=['"](.*?)['"]/); if(m!=null&&m[1].indexOf("$")==-1){ result+=tokens[i]+"\r\n"; continue; } //destName //m=tokens[i].match(/destName=['"](.*?)['"]/); if(m!=null&&m[1].indexOf("$")==-1){ //result+=tokens[i]+"\r\n"; //continue; } } console.log(result); if(result.length>0){ result="请以下为@service" +"@\r\n" +result; alert(result); return false; } var checkarray=[ { reg:new RegExp('[\"\']\/service\?.*?ssServ\=.*[\"\']',"gm") ,tip:"未改为<" +"token服务??\r\n" } ]; for(var i=0;i<checkarray.length;i++){ var reg=checkarray[i].reg; var tip=checkarray[i].tip; var smatch=codemirrorEditor.getValue().match(reg); if(smatch){ if(smatch.length>0){ result=tip+result; } for(var i=0;i<smatch.length;i++){ result+=smatch[i]+"\r\n"; } } } var tabmatch=codemirrorEditor.getValue().match(/<\w+?\:\w+?.*?>/gm); if(tabmatch!=null){ var tabres=""; for(var i=0;i<tabmatch.length;i++){ if(!/\<wd\:.*/.test(tabmatch[i])){ tabres+=tabmatch[i]+"\r\n"; } } if(tabres.length>0){ result+="未改为<" +"WD:标签??\r\n" +tabres; } } if(codemirrorEditor.getValue().indexOf("EasyUses")!=-1){ result+="当前写死皮肤名EasyUses\r\n"; } console.log(result); if(result.length>0){ return confirm(result); } return true; } function buildCss(){ var csc={} var $p=$(".cscProperty"); $p.each(function(){ csc[$(this).attr("name")]=$(this).val().trim(); // 增加 .trim()。Lin }) if(!csc["desc"] || !csc["width"] || !csc["height"]) { // 增加非空判断。Lin confirm("需要录入 部件描述、宽度、高度") throw "not allow submit"; } if(isNaN(csc["fixHeight"])||isNaN(csc["width"])||isNaN(csc["height"])){ confirm("宽度、高度、固定高度不是数字!!") throw "not allow submit"; } if("1"==csc["isSysCreate"]){ if(confirm("系统创建?")){ }else{ throw "not allow submit"; } } // wd.display.fixationAlert(codemirrorEditor.getValue()); // 去掉,混淆了 "保存成功!"。Lin return JSON.stringify(csc); } <%-- 来自 gzwj_sh_bj_visualHtml.jsp。Start。Lin --%> function buildDgnCsc() { // buildCss()。改名为 buildDgnCsc()。Lin /* 再改,增加 pageWidth、pageHeight 全局变量,去掉页面的 bjWidth、bjHeight 了。Lin * 不通过 bjInit() 来获取部件的宽、高值 -- 另,bjInit() 改为 pageInit(width, height) var wh=wd.dyform.container.bjInit(); var w=parseInt(wh.w); var h=parseInt(wh.h)+13; /// * 再改,用数值时,导致转成 PwjServ.csc(Map<String, Object>) 时,为 696.0。Lin // var csc={width:w,height:h}; /// * var csc={width:w.toString(),height:h.toString()}; */ var csc={width:wd.dyform.vars.pageWidth.toString(),height:wd.dyform.vars.pageHeight.toString()}; var $p=$(".cscProperty"); $p.each(function(){ // 这里,会为 fixHeight:"10"。Lin csc[$(this).attr("name")]=$(this).attr("value")||$(this).val(); }) return $p.length>0?JSON.stringify(csc):null; } <%-- 来自 gzwj_sh_bj_visualHtml.jsp。End。Lin --%> function getEditorValue(iscompile){ var result=codemirrorEditor.getValue(); if(iscompile){ if(result.indexOf("debugger")>-1){ alert("提交代码请不要用debugger"); throw "提交代码请不要用debugger"; } } var mobileBanStr=["ssServ"]; // =["wdApplication","wdService"]。去掉 ?wdApplication= -- 不支持多个应用,ssServ= 里可以写 ss.xxx。Lin if(false&&"80"=='${wj.pwjlbm}'){ for(var i=0;i<mobileBanStr.length;i++){ if(result.indexOf(mobileBanStr[i])!=-1){ alert("移动端写这个可能有问题"+mobileBanStr[i]); throw "移动端写这个可能有问题"+mobileBanStr[i]; } } } return result; } function save(){ if(!attributesCheck()){ return; } // wd.display.fixationAlert("save!!!"); // 去掉,混淆了 "保存成功!"。Lin var result={}; $.ajax({ url: "<serv.ss name='pwj_sh_jsp_bc' parm='{gzjdid:"${gzjdid}"}'/>", // "gzwj_sh_fb"。Lin type: 'post', async: false, dataType: "json", data:{ csc:buildCss(), nrwj:getEditorValue() }, success: function (data) { result=data; }, error: function () { result = {msg:"保存失败"}; } }); if("1"==result.type){ wd.display.fixationAlert("保存成功!") // (" ok! ok! ok! ok! ok! ok! ok!")。Lin wd.display.closeDialog(); }else{ alert("save error "+result.msg); } return result; } <%-- 来自 gzwj_sh_bj_visualHtml.jsp。Start。Lin --%> function dgnSave(){ // save()。改名为 dgnSave()。Lin var result $.ajax({ url: "<serv.ss name='pwj_sh_jsp_bc' parm='{gzjdid:"${gzjdid}"}'/>", // "gzwj_sh_bj_bc"。Lin type: 'post', async: false, data:{ csc:buildDgnCsc(), // :buildCss(),。Lin nrwj:wd.dyform.index.getAllContent() }, success: function (data) { result=data; }, error: function () { result = false; } }); if("true"==result){ wd.display.closeDialog(); } } <%-- 来自 gzwj_sh_bj_visualHtml.jsp。End。Lin --%> function compile() { if(!attributesCheck()){ return; } wd.display.fixationAlert("正在提交..."); // ("submit!!!")。Lin var result={}; $.ajax({ url: "<serv.ss name='pwj_sh_jsp_bc' parm='{gzjdid:"${gzjdid}"}'/>", // "gzwj_sh_fb"。Lin type: 'post', async: false, dataType: "json", data:{ csc:buildCss(), nrwj:getEditorValue(true) }, success: function (data) { result=data; }, error: function () { result = {msg:"提交失败"}; } }); if("1"==result.type){ <%-- 去掉 check < wd.completeTask < wd.core.service.BpmService.completeTask() + sfty:"1",直接用 ss.agrTask。Lin window.location.href='@service{name:"check",dest:"sys_info",param:{shid:"${shid}",sfty:"1"}}@'; --%> window.location.href="<serv.ss name='ss.agrTask' dest='info' parm='{shid:"${shid}"}'/>"; }else{ if(window.confirm("save error 确定提交? "+result.msg)){ <%-- 去掉 check < wd.completeTask < wd.core.service.BpmService.completeTask() + sfty:"1",直接用 ss.agrTask。Lin window.location.href='@service{name:"check",dest:"sys_info",param:{shid:"${shid}",sfty:"1"}}@'; --%> window.location.href="<serv.ss name='ss.agrTask' dest='info' parm='{shid:"${shid}"}'/>"; } } } <%-- 来自 gzwj_sh_bj_visualHtml.jsp。Start。Lin --%> function dgnCompile() { // compile()。改名为 dgnCompile()。Lin var result $.ajax({ url: "<serv.ss name='pwj_sh_jsp_bc' parm='{gzjdid:"${gzjdid}"}'/>", // "gzwj_sh_fb"。Lin type: 'post', async: false, data:{ csc:buildDgnCsc(), // buildCss()。Lin nrwj:wd.dyform.index.getAllContent() }, success: function (data) { result=data; }, error: function () { result = false; } }); if("true"==result){ <%-- 去掉 check < wd.completeTask < wd.core.service.BpmService.completeTask() + sfty:"1",直接用 ss.agrTask。Lin window.location.href='@service{name:"check",dest:"sys_info",param:{shid:"${shid}",sfty:"1"}}@'; --%> window.location.href="<serv.ss name='ss.agrTask' dest='info' parm='{shid:"${shid}"}'/>"; } } <%-- 来自 gzwj_sh_bj_visualHtml.jsp。End。Lin --%> function typed() { window.timeoutId && clearTimeout(window.timeoutId); window.timeoutId = setTimeout(function () { /* 再去掉,定义为全局变量 -- "部件宽度" 改变时,置 "bjpreview"(iframe) 宽度。Lin var currentIframe = document.getElementById("bjpreview"); var frameDoc = currentIframe.contentDocument || currentIframe.contentWindow.document; */ /* 再改用 getEditorValue(),txt.value 取不到数据。Lin * 改用全局变量 previewDoc var txt = document.getElementById("bjcontent"); frameDoc.documentElement.innerHTML = txt.value; */ previewDoc.documentElement.innerHTML = "<LINK href='/skin/easy/main.css' rel='stylesheet' type='text/css'>"+ getEditorValue(); }, 1000); } document.getElementById("bjcontent").change = typed; typed(); /* 再改为 initCmEditor(mode)。Lin * 原 initHtmlEditor() 会导致 "先显示 可视化编辑 界面,再切换为 代码编辑 界面" 时,CmEditor 界面乱了 * 去掉 window.onload =,改为普通方法 -- 由页面决定 initHtmlEditor(); */ initCmEditor("html"); $.post("<serv.ss name='pwj_rdFileState' parm='{gzjdid:"${gzjdid}",wjid:"${wj.pwjid}"}'/>",function(res){ if(res.length>0){ /* 去掉,多余的 -- 标题已有。Lin var alertmsg="正在修改:\r\n"; */ var alertmsg=""; for(var i=0;i<res.length;i++){ /* 再改 List<Map<String, Object>> 为 List<Object>,只返回一个字段值(mc) -- Db.doSelMapListByC( 改为 .doSelListByC(。Lin alertmsg+="<h5>"+res[i]["mc"]+"</h5>"; */ /* 再改回,去掉 to_char(sj,,直接输出 sj(Timestamp),在页面生成 -- SqlCmd.init( 里,去掉拆分 "'" -- SQL 的 '' 字符串里,不能有 :。Lin alertmsg+="<h5>"+res[i]+"</h5>"; */ alertmsg+="<h5>"+res[i]["mc"]+res[i]["sj"]+"</h5>"; } //alert(alertmsg); wd.display.confirm({width:400,height:300,title:"正在修改:",msg:alertmsg,callback:function(){wd.display.alert("got it!");}}); } },"json"); </script> </html>