| 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> 属性</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> 属性
<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)",部件宽、高自动计算,并赋值到左侧栏的 部件宽、高
布局
<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>
部件宽高
<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
行数:<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>
--%>
行数:<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"> 左列宽度:</span>
<span id="colWidth" style="display:none"> 列宽度:</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"> 右列宽度:</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"> --%>
<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;"/>
<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>
<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>
|