projButtonCurd.jsp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  2. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  3. <%@ page isELIgnored="false"%>
  4. <%--
  5. ~ Copyright (c) 2014, 2023, Chengdu Minto Technology Co.,LTD. All rights reserved.
  6. ~ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  7. --%>
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  9. <html xmlns="http://www.w3.org/1999/xhtml">
  10. <HEAD><TITLE></TITLE>
  11. <META content="text/html; charset=utf-8" http-equiv=Content-Type>
  12. <link href="${path}/tc_suite/portal/css/portal_style.css${resSuffix}" rel="Stylesheet" type="text/css" />
  13. <link href="${path}/tc_ttp/jquery.colpick/css/colpick.css${resSuffix}" rel="Stylesheet" type="text/css" />
  14. <style type="text/css">
  15. .widthInput {
  16. border: 1px solid #ccc;
  17. }
  18. body{
  19. overflow-x: scroll;
  20. }
  21. </style>
  22. <body style="overflow: auto;">
  23. <div align="center" style="top: 1px;bottom: 0px;left: 0;right: 0;padding: 5px 15px 20px 15px;line-height: 32px;background: #fff;">
  24. <table border="0" cellpadding="0" cellspacing="0" width="100%">
  25. <form id="buttonForm" action="${path}/projectButton/saveOrUpdate" method="post">
  26. <input type="hidden" name="id" id="buttonId" value="${buttons.id==null ? 0 : buttons.id}"/>
  27. <input type="hidden" name="buttonType" value="${buttons.buttonType==null ? buttonType : buttons.buttonType}" id="buttonType"/>
  28. <input type="hidden" name="actionType" value="${buttons.actionType==null ? actionType : buttons.actionType}" readonly id="actionType">
  29. <input type="hidden" name="flushValue" value='${buttons.flushValue}' id="flushValue">
  30. <%--<input type="hidden" name="replaceId" value='${buttons.replaceId==null ? replaceId : buttons.replaceId}' id="replaceId">--%>
  31. <input type="hidden" name="taskTypeId" value="${taskTypeId}"/>
  32. <tr>
  33. <td style="width: 60px;" align="right">按钮名称:</td>
  34. <td style="padding-right: 2px;" align="left"><input type="text" id="title" name="title" class="widthInput" style="width: 392px;text-indent: 3px;" value="${buttons.title}" placeholder="按钮名称"></td>
  35. </tr>
  36. <tr>
  37. <td style="width: 60px;" align="right">按钮填充:</td>
  38. <td style="padding-right: 2px;" align="left"><input type="text" id="icon" name="icon" class="widthInput" style="width: 392px;text-indent: 3px;" value="${buttons.icon==null ? '#f2f2f2' : buttons.icon}" placeholder="按钮填充色 eg:#f2f2f2"></td>
  39. </tr>
  40. <tr id="selectLib" style="display: none">
  41. <td style="width: 60px;" align="right">对应项目库:</td>
  42. <td style="padding-right: 2px;" align="left">
  43. <select>
  44. <option value="-1">请选择项目库</option>
  45. <c:forEach items="${projTypes}" var="type">
  46. <option value="${type.id}">${type.name}</option>
  47. </c:forEach>
  48. </select>
  49. </td>
  50. </tr>
  51. <tr>
  52. <td align="right" >启用状态:</td>
  53. <td align="left">
  54. <span class="label">
  55. <input class="validate[required]" id="lOpened" type="radio" name="delFlag" value="1" <c:if test="${1==buttons.delFlag}">checked="checked"</c:if> <c:if test="${null==buttons.delFlag}">checked="checked"</c:if>><label for="lOpened" style="cursor:pointer">启用</label>
  56. <input class="validate[required]" id="lClosed" type="radio" name="delFlag" value="0" <c:if test="${0==buttons.delFlag}">checked="checked"</c:if>><label for="lClosed" style="cursor:pointer">停用</label>
  57. </span>
  58. </td>
  59. </tr>
  60. <%-- <tr id="czBox">
  61. <td style="width: 60px;" align="right">绑定操作:</td>
  62. <td style="padding-right: 2px;" align="left">
  63. <input onclick="chooseFieldTemplate()" value="${matrixListAction.name}" type="text" readonly style="width: 392px;cursor: pointer;background-color:#fff;" class="widthInput" id="inputTemp" placeholder="请绑定一个操作">
  64. </td>
  65. </tr>
  66. <tr id="zdBox">
  67. <td style="width: 60px;" align="right">更新字段:</td>
  68. <td style="padding-right: 2px;" align="left">
  69. <input onclick="chooseFieldFlush()" configKey="taskExtTabSet" value="${nameData}" type="text" readonly style="width: 392px;cursor: pointer;background-color:#fff;" class="widthInput" id="fieldTemp" placeholder="请绑定需要更新内容的字段">
  70. </td>
  71. </tr>--%>
  72. <tr>
  73. <td style="width: 60px;" align="right">列表排序:</td>
  74. <td style="padding-right: 2px;" align="left"><input type="number" id="sorting" name="sorting" class="widthInput" style="width: 392px;text-indent: 3px;" value="${buttons.sorting}" placeholder="排序号"></td>
  75. </tr>
  76. <tr id="fzBox">
  77. <td style="width: 60px;" align="right">所属分组:</td>
  78. <td style="padding-right: 2px;" align="left">
  79. <select name="parentId" style="width: 160px;text-indent: 3px;" value="${buttons.parentId}" class="widthInput" id="parentId">
  80. <option value="" <c:if test="${empty buttons.parentId || buttons.parentId !=0}">selected="selected"</c:if> >不加入分组</option>
  81. <c:forEach items="${groupButtons}" var="gb">
  82. <option value="${gb.id}" <c:if test="${gb.id==buttons.parentId}">selected="selected"</c:if>>${gb.title}</option>
  83. </c:forEach>
  84. </select>
  85. </td>
  86. </tr>
  87. <tr>
  88. <td colspan="2">
  89. <hr style="height: 1px;border: none;border-bottom: 1px solid #b5b5b5;" />
  90. </td>
  91. </tr>
  92. </form>
  93. </table>
  94. <%-- <table id="fieldInputBox" border="0" cellpadding="0" cellspacing="0" width="100%">
  95. &lt;%&ndash;模板格式&ndash;%&gt;
  96. &lt;%&ndash;<tr>
  97. <td style="width: 60px;" align="left" field-name="字段名">放心啊:</td>
  98. <td style="padding-right: 2px;" align="left">
  99. <input type="text" name="" class="widthInput" style="width: 392px;text-indent: 3px;" value="" placeholder="请输入修改内容"></td>
  100. </tr>&ndash;%&gt;
  101. </table>--%>
  102. </div>
  103. </body>
  104. </HTML>
  105. <script type="text/javascript" src="${path}/tc_ttp/common/jquery.min.js${resSuffix}"></script>
  106. <%--<script type="text/javascript" src="${path}/tc_ttp/common/jquery.js${resSuffix}"></script>--%>
  107. <script type="text/javascript" src="${path}/tc_suite/portal/js/portal.js${resSuffix}"></script>
  108. <script type="text/javascript" src="${path }/tc_ttp/common/function.js${resSuffix}"></script>
  109. <script type="text/javascript" src="${path}/tc_ttp/common/tc.js${resSuffix}"></script>
  110. <script type="text/javascript" src="${path}/tc_ttp/lhgdialog4.2.0/lhgdialog.js${resSuffix}"></script>
  111. <script type="text/javascript" src="${path}/tc_tap/choosePerson/js/choosePersonConfig.js${resSuffix}"></script>
  112. <script type="text/javascript" src="${path }/tc_tap/space/js/upload.js${resSuffix}"></script>
  113. <script type="text/javascript" src="${path }/tc_tap/relResource/js/relResource.js${resSuffix}"></script>
  114. <script type="text/javascript" src="${path }/tc_ttp/jquery.colpick/js/colpick.js${resSuffix}"></script>
  115. <script type="text/javascript" src="${path}/tc_tap/chooseData/js/chooseData.js${resSuffix}"></script>
  116. <script type="text/javascript" src="${path}/tc_ttp/common/ajax.js${resSuffix}"></script>
  117. <script type="text/javascript" src="${path}/tc_ttp/common/jquery.json.js${resSuffix}"></script>
  118. <script type="text/javascript" src="${path}/tc_ttp/My97DatePicker/WdatePicker.js${resSuffix}"></script>
  119. <script type="text/javascript" src="${path}/tc_ttp/layui/layui.js${resSuffix}"></script>
  120. <script type="text/javascript" src="${path}/tc_suite/js/produceInput.js${resSuffix}"></script>
  121. <script type="text/javascript">
  122. var globalTabId = "${globalTabId}";//全局使用的绑定表id,下面的tabId只有扩展按钮用
  123. var buttonType = $("#buttonType").val();
  124. $(document).ready(function(){
  125. //
  126. var actionType = $("input[name='actionType']").val()
  127. if(actionType == 8){
  128. $("#selectLib").css("display","");
  129. }
  130. $("#zdBox").hide();//隐藏字段选择框
  131. $("#fzBox").hide();//隐藏分组选择框
  132. var showCzBox = "${showCzBox}";//避免修改分类按钮信息去拉取绑定功能对象
  133. var showZdBox = "${showZdBox}";
  134. if(showCzBox!=null&&showCzBox==='false'){
  135. document.getElementById("czBox").style.display="none";
  136. }
  137. if(showZdBox!=null&&showZdBox==='true'){
  138. $("#zdBox").show();
  139. document.getElementById("czBox").style.display="none";
  140. }
  141. var replaceId = $("#replaceId").val();
  142. if(replaceId!=null&&replaceId.length!=0){
  143. //编辑默认按钮时另行保存为扩展按钮,保留默认按钮配置
  144. $("#dataTableDefId").val(globalTabId);//将绑定表id返回后台处理bean
  145. }
  146. if(buttonType==1){//扩展按钮展示分组选择框
  147. $("#fzBox").show();
  148. }
  149. //编辑更新类别按钮时初始化字段模板数据
  150. var flushValue = '${buttons.flushValue}';
  151. if(flushValue!=null){
  152. var obj = JSON.parse(flushValue);
  153. $("#fieldInputBox").html("");//先清空
  154. for(var i=0;i<obj.length;i++){
  155. var dataTemp = checkInput(obj[i].fieldType,obj[i].fieldId);
  156. var columns = getTempColumns(obj[i].fieldType,obj[i].fieldId,obj[i].fieldName,obj[i].showName,dataTemp,obj[i].fieldValue);//编辑时传入表单value
  157. $("#fieldInputBox").append(columns);
  158. }
  159. }
  160. });
  161. /*将更新字段值信息放入formt提交*/
  162. function setFlushValue(){//数据存档处理
  163. var fields = [];
  164. $(".fieldInput").each(function(){
  165. var fieldId = $(this).attr("fieldId");
  166. var fieldType = $(this).attr("fieldType");
  167. var fieldName = $(this).attr("fieldName");
  168. var fieldValue = $(this).val();
  169. var showName = $(this).attr("showName");
  170. var field = {//存入数据库的对象
  171. fieldId : fieldId,
  172. fieldType : fieldType,
  173. fieldName : fieldName,
  174. fieldValue : fieldValue,
  175. showName : showName
  176. };
  177. fields.push(field);
  178. });
  179. //alert("看看要保存的flushValue数据:"+JSON.stringify(fields));
  180. var flushValue = JSON.stringify(fields);
  181. if(flushValue=="[]"){
  182. flushValue = null;
  183. }
  184. $("#flushValue").val(flushValue);
  185. }
  186. //选择要修改的字段
  187. function chooseFieldFlush() {
  188. var tabId = $("#dataTableDefId").val();
  189. var id = $("#buttonId").val();
  190. var configKey = $(this).attr("configKey");
  191. // alert("formId:"+formId+",portalId:"+portalId+",configKey:"+configKey);
  192. var url = "url:" + "${path}/buttonManager/extTabSet?tabId="+tabId+"&id="+id+"&tablekey="+configKey;
  193. var dialog = $.dialog({
  194. id : 'taskExtTabSet',
  195. title : '字段绑定',
  196. max : false,
  197. min : false,
  198. width:'700px',
  199. height:'400px',
  200. content : url,
  201. lock : true,
  202. parent : frameElement?frameElement.api:window,
  203. button: [
  204. {
  205. name: '确定',
  206. callback: function () {
  207. var fieldIds = new Array();//字段id存储
  208. var showName = new Array();//字段展示名称
  209. var fieldName = new Array();//字段名
  210. var fieldType = new Array();//字段类型
  211. var objData = $(this.content.objData);
  212. var values = $(this.content.objValue);
  213. var names = $(this.content.objField);
  214. var types = $(this.content.objType);
  215. for(var i = 0;i<objData.length;i++){
  216. fieldIds.push(objData[i]);
  217. showName.push(values[i]);
  218. fieldName.push(names[i]);
  219. fieldType.push(types[i]);
  220. }
  221. //alert("id-fieldIds:"+fieldIds+",展示名称-showName:"+showName+",字段名-fieldName:"+fieldName+",fieldType:"+fieldType);
  222. $("#fieldTemp").val(showName);
  223. $("#fields").val(fieldIds);//id隐藏域
  224. $("#fieldInputBox").html("");//先清空
  225. for(var i=0;i<fieldIds.length;i++){
  226. var dataTemp = checkInput(fieldType[i],fieldIds[i]);
  227. var type = fieldType[i];//定义变量,否则case判断不生效
  228. var columns = getTempColumns(type,fieldIds[i],fieldName[i],showName[i],dataTemp,null);//新建时值都为空
  229. $("#fieldInputBox").append(columns);
  230. }
  231. dialog.close();
  232. return false;
  233. },
  234. focus: true
  235. },
  236. {
  237. name: '关闭'
  238. }
  239. ]
  240. });
  241. }
  242. function chooseFieldTemplate(){
  243. var type = $("#keyword").val();
  244. var tabId = $("#dataTableDefId").val();
  245. if(type.length==0||tabId==null){
  246. return;
  247. }
  248. $.chooseData({
  249. title:"绑定操作",
  250. initChooseDatas:$("#matrixListActionId").val().split(","),
  251. dataSource:function(callback){
  252. callAjaxRequest("matrixActionWebService","findMatrixListAction",{
  253. "type" : type,
  254. "tabId": tabId
  255. },function(data){
  256. if(data){
  257. callback(data);
  258. }
  259. });
  260. },
  261. ok:function(result){
  262. if(result.length==0){
  263. $.alert("请选择正确的操作模板数据!");
  264. return false;
  265. }
  266. var data = result[0];
  267. $("#inputTemp").val(data.name);
  268. $("#matrixListActionId").val(data.id);
  269. }
  270. });
  271. }
  272. /**后台检查是否存在码表数据返回*/
  273. function checkInput(type,fieldId){
  274. var data = null;
  275. $.ajax({
  276. url : '${path}/buttonManager/checkInput?fieldId='+fieldId+"&type="+type,
  277. type : "get",
  278. dataType : 'json',
  279. async:false,
  280. success : function(d) {
  281. if (d.state=="success") {
  282. if(d.dataTemp!=null){
  283. data = eval('('+d.dataTemp+')');
  284. }
  285. } else {
  286. $.error(d.msg);
  287. return;
  288. }
  289. }
  290. })
  291. return data;
  292. }
  293. </script>