projectOrderForm1.jsp 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. <%@ page contentType="text/html;charset=UTF-8" %>
  2. <%@ include file="/WEB-INF/views/include/taglib.jsp"%>
  3. <html>
  4. <head>
  5. <title>项目订单管理</title>
  6. <meta name="decorator" content="default"/>
  7. <script type="text/javascript">
  8. $(document).ready(function() {
  9. //$("#name").focus();
  10. $("#inputForm").validate({
  11. ignore:"",
  12. submitHandler: function(form){
  13. loading('正在提交,请稍等...');
  14. form.submit();
  15. },
  16. errorContainer: "#messageBox",
  17. errorPlacement: function(error, element) {
  18. $("#messageBox").text("输入有误,请先更正。");
  19. if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
  20. error.appendTo(element.parent().parent());
  21. } else {
  22. error.insertAfter(element);
  23. }
  24. }
  25. });
  26. var lenght=${fn:length(projectOrder.clubsubbranchList)};
  27. for (var i=0;i<lenght;i++){
  28. loadCity(i);
  29. }
  30. });
  31. //项目单选
  32. function showProjectSingleSelect(){
  33. top.$.jBox("iframe:${ctx}/project/project/projectList_singleselect?enabledStatus=1", {
  34. iframeScrolling:'yes',
  35. width: $(top.document).width()-400,
  36. height: $(top.document).height()-160,
  37. persistent: true,
  38. title:"选择项目",
  39. bottomText:'请从可供选择的项目中选择一个',
  40. buttons:{"确定":'1',"关闭":'-1'},
  41. submit:function(v, h, f){
  42. //确定
  43. var $jboxFrame = top.$('#jbox-iframe');
  44. var $mainFrame = top.$('#mainFrame');
  45. if('1'==v && 1==$jboxFrame.size() && 1==$mainFrame.size()){
  46. var items = $jboxFrame[0].contentWindow.getCheckedItems();
  47. if(items.length>0){
  48. //$jboxFrame[0].contentWindow.setBinding(items);
  49. setProjectSingleSelect(items);
  50. return true;
  51. }else{
  52. top.$.jBox.tip("请选择...");
  53. return false;
  54. }
  55. }
  56. return true;
  57. }
  58. });
  59. }
  60. function setProjectSingleSelect(items){
  61. var info = eval('(' + items[0] + ')');
  62. $(".label-projectName").text(info.name);
  63. $(".label-projectID").text("["+info.id+"]");
  64. $("#project\\.id").val(info.id);
  65. $("#project\\.name").val(info.name);
  66. // $("#inputForm").find("[name*='project.id']").val(info.id);
  67. // $("#inputForm").find("[name*='project.name']").val(info.name);
  68. }
  69. //服务商单选
  70. function showServiceproviderSingleSelect(type){
  71. top.$.jBox("iframe:${ctx}/project/projectOrder/serviceproviderList_singleselect", {
  72. iframeScrolling:'yes',
  73. width: $(top.document).width()-400,
  74. height: $(top.document).height()-160,
  75. persistent: true,
  76. title:"选择服务商",
  77. bottomText:'请从可供选择的项目中选择一个',
  78. buttons:{"确定":'1',"关闭":'-1'},
  79. submit:function(v, h, f){
  80. //确定
  81. var $jboxFrame = top.$('#jbox-iframe');
  82. var $mainFrame = top.$('#mainFrame');
  83. if('1'==v && 1==$jboxFrame.size() && 1==$mainFrame.size()){
  84. var items = $jboxFrame[0].contentWindow.getCheckedItems();
  85. if(items.length>0){
  86. //$jboxFrame[0].contentWindow.setBinding(items);
  87. setServiceproviderSingleSelect(items,type);
  88. return true;
  89. }else{
  90. top.$.jBox.tip("请选择...");
  91. return false;
  92. }
  93. }
  94. return true;
  95. }
  96. });
  97. }
  98. function setServiceproviderSingleSelect(items,type){
  99. var info = eval('(' + items[0] + ')');
  100. if('1'==type){
  101. $(".label-serverSpName").text(info.name);
  102. $(".label-serverSpID").text("["+info.id+"]");
  103. $("#serverSp\\.id").val(info.id);
  104. $("#serverSp\\.name").val(info.name);
  105. }else if('2'==type){
  106. $(".label-makerSpName").text(info.name);
  107. $(".label-makerSpID").text("["+info.id+"]");
  108. $("#makerSp\\.id").val(info.id);
  109. $("#makerSp\\.name").val(info.name);
  110. }
  111. }
  112. //会所单选
  113. function showClubSingleSelect(){
  114. top.$.jBox("iframe:${ctx}/project/projectOrder/clubList_singleselect", {
  115. iframeScrolling:'yes',
  116. width: $(top.document).width()-400,
  117. height: $(top.document).height()-160,
  118. persistent: true,
  119. title:"选择会所",
  120. bottomText:'请从可供选择的项目中选择一个',
  121. buttons:{"确定":'1',"关闭":'-1'},
  122. submit:function(v, h, f){
  123. //确定
  124. var $jboxFrame = top.$('#jbox-iframe');
  125. var $mainFrame = top.$('#mainFrame');
  126. if('1'==v && 1==$jboxFrame.size() && 1==$mainFrame.size()){
  127. var items = $jboxFrame[0].contentWindow.getCheckedItems();
  128. if(items.length>0){
  129. //$jboxFrame[0].contentWindow.setBinding(items);
  130. setClubSingleSelect(items);
  131. return true;
  132. }else{
  133. top.$.jBox.tip("请选择...");
  134. return false;
  135. }
  136. }
  137. return true;
  138. }
  139. });
  140. }
  141. function setClubSingleSelect(items){
  142. var info = eval('(' + items[0] + ')');
  143. $(".label-clubName").text(info.name);
  144. $(".label-clubID").text("["+info.id+"]");
  145. $("#club\\.id").val(info.id);
  146. $("#club\\.name").val(info.name);
  147. $("#clubContactMobile").val(info.contractMobile);
  148. }
  149. //新增
  150. function addRow(list, idx, tpl, row){
  151. $(list).append(Mustache.render(tpl, {
  152. idx: idx, delBtn: true, row: row
  153. }));
  154. $(list+idx).find("select").each(function(){
  155. $(this).val($(this).attr("data-value"));
  156. });
  157. $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
  158. var ss = $(this).attr("data-value").split(',');
  159. for (var i=0; i<ss.length; i++){
  160. if($(this).val() == ss[i]){
  161. $(this).attr("checked","checked");
  162. }
  163. }
  164. });
  165. }
  166. //删除
  167. function delRow(obj, prefix){
  168. var id = $(prefix+"\\.id");
  169. var delFlag = $(prefix+"\\.delFlag");
  170. if (id.val() == ""){
  171. $(obj).parent().parent().remove();
  172. }else if(delFlag.val() == "0"){
  173. delFlag.val("1");
  174. $(obj).html("&divide;").attr("title", "撤销删除");
  175. $(obj).parent().parent().addClass("error");
  176. }else if(delFlag.val() == "1"){
  177. delFlag.val("0");
  178. $(obj).html("&times;").attr("title", "删除");
  179. $(obj).parent().parent().removeClass("error");
  180. }
  181. }
  182. //加载省级城市
  183. function loadCity(index){
  184. var provinceId=$('#clubsubbranchList'+index+'\\.provinceId option:selected').val(); //取得下拉选单的选取值
  185. if(null!=provinceId && ''!=provinceId){
  186. $.post('/area/loadCity',{provinceId: provinceId},function(data){
  187. if(null!=data && ''!=data){
  188. var model = "<option value=''>请选择</option>";
  189. var label="";
  190. $('#clubsubbranchList'+index+'\\.cityId option').remove();//清除上次选择的
  191. var cityId=$('#clubsubbranchList'+index+'city').val(); //取得下拉选单的选取值
  192. for (var i = 0; i < data.length; i++) {
  193. if(data[i].id==cityId){
  194. model += "<option value='" + data[i].id + "' selected='selected'>" + data[i].name + "</option>";
  195. label=data[i].id;
  196. }else{
  197. model += "<option value='" + data[i].id + "'>" + data[i].name + "</option>";
  198. }
  199. }
  200. $('#clubsubbranchList'+index+'\\.cityId').append(model);
  201. $('#clubsubbranchList'+index+'\\.cityId').select2("val",label);
  202. if(''!=cityId && null!=cityId){
  203. loadTown(index);
  204. }
  205. }
  206. });
  207. }else{
  208. var model="";
  209. $('#clubsubbranchList'+index+'\\.cityId option').remove();//清除上次选择的
  210. model="<option value='' label='市'/>";
  211. $('#clubsubbranchList'+index+'\\.cityId').append(model);
  212. $('#clubsubbranchList'+index+'\\.townId option').remove();//清除上次选择的
  213. model="<option value='' label='区'/>";
  214. $('#clubsubbranchList'+index+'\\.townId').append(model);
  215. }
  216. }
  217. //加载市级区
  218. function loadTown(index){
  219. var cityId=$('#clubsubbranchList'+index+'\\.cityId option:selected').val(); //取得下拉选单的选取值
  220. if(null!=cityId && ''!=cityId){
  221. $.post('/area/loadTown',{cityId: cityId},function(data){
  222. if(null!=data && ''!=data){
  223. var model = "<option value=''>请选择</option>";
  224. var label="";
  225. $('#clubsubbranchList'+index+'\\.townId option').remove();//清除上次选择的
  226. var townId=$('#clubsubbranchList'+index+'town').val(); //取得下拉选单的选取值
  227. for (var i = 0; i < data.length; i++) {
  228. if(data[i].id==townId){
  229. model += "<option value='" + data[i].id + "' selected='selected'>" + data[i].name + "</option>";
  230. label=data[i].id;
  231. }else{
  232. model += "<option value='" + data[i].id + "'>" + data[i].name + "</option>";
  233. }
  234. }
  235. $('#clubsubbranchList'+index+'\\.townId').append(model);
  236. $('#clubsubbranchList'+index+'\\.townId').select2("val",label);
  237. }
  238. });
  239. }else{
  240. var model="";
  241. $('#clubsubbranchList'+index+'\\.townId option').remove();//清除上次选择的
  242. model="<option value='' label='区'/>";
  243. $('#clubsubbranchList'+index+'\\.townId').append(model);
  244. $('#clubsubbranchList'+index+'\\.townId').select2("val"," ");
  245. }
  246. }
  247. </script>
  248. </head>
  249. <body>
  250. <ul class="nav nav-tabs">
  251. <li><a href="${ctx}/project/projectOrder/">项目订单列表</a></li>
  252. <li class="active"><a href="${ctx}/project/projectOrder/form1?id=${projectOrder.id}">项目订单查看</a></li>
  253. </ul><br/>
  254. <form:form id="inputForm" modelAttribute="projectOrder" action="${ctx}/project/projectOrder/save" method="post" class="form-horizontal">
  255. <form:hidden path="id"/>
  256. <sys:message content="${message}"/>
  257. <div class="control-group">
  258. <label class="control-label"><span class="help-inline"><font color="red">*</font></span>项目:</label>
  259. <div class="controls">
  260. <label class="label-projectName">${projectOrder.project.name}</label>
  261. <label class="label-projectID">${empty projectOrder.project.id ? '' : '[' }${projectOrder.project.id}${empty projectOrder.project.id ? '' : ']' }</label>
  262. </div>
  263. </div>
  264. <div class="control-group">
  265. <label class="control-label"><span class="help-inline"><font color="red">*</font></span>项目业务员:</label>
  266. <div class="controls">
  267. <label class="label-serverSpName">${projectOrder.serverSp.name}</label>
  268. <label class="label-serverSpID">${empty projectOrder.serverSp.id ? '' : '[' }${projectOrder.serverSp.id}${empty projectOrder.serverSp.id ? '' : ']' }</label>
  269. </div>
  270. </div>
  271. <div class="control-group">
  272. <label class="control-label">创客:</label>
  273. <div class="controls">
  274. <label class="label-makerSpName">${projectOrder.makerSp.name}</label>
  275. <label class="label-makerSpID">${empty projectOrder.makerSp.id ? '' : '[' }${projectOrder.makerSp.id}${empty projectOrder.makerSp.id ? '' : ']' }</label>
  276. </div>
  277. </div>
  278. <div class="control-group">
  279. <label class="control-label">美导:</label>
  280. <div class="controls">
  281. <c:forEach items="${projectOrder.mentorSps}" var="item" varStatus="s">
  282. <c:if test="${s.index gt 0}">,</c:if>
  283. <label>${item.name}</label>
  284. </c:forEach>
  285. </div>
  286. </div>
  287. <div class="control-group">
  288. <label class="control-label">打款账号:</label>
  289. <div class="controls">
  290. <label>${projectOrder.remitAccount}</label>
  291. </div>
  292. </div>
  293. <div class="control-group">
  294. <label class="control-label"><span class="help-inline"><font color="red">*</font></span>会所:</label>
  295. <div class="controls">
  296. <label class="label-clubName">${projectOrder.club.name}</label>
  297. <label class="label-clubID">${empty projectOrder.club.id ? '' : '[' }${projectOrder.club.id}${empty projectOrder.club.id ? '' : ']' }</label>
  298. </div>
  299. </div>
  300. <div class="control-group">
  301. <label class="control-label"><span class="help-inline"><font color="red">*</font></span>会所联系电话:</label>
  302. <div class="controls">
  303. <label>${projectOrder.clubContactMobile}</label>
  304. </div>
  305. </div>
  306. <div class="control-group">
  307. <label class="control-label">门店:</label>
  308. <div class="controls">
  309. <table id="contentTable" class="table table-striped table-bordered table-condensed">
  310. <thead>
  311. <tr>
  312. <th class="hide"></th>
  313. <th>地址</th>
  314. <th>店名</th>
  315. </tr>
  316. </thead>
  317. <tbody id="clubsubbranchList">
  318. <c:forEach items="${projectOrder.clubsubbranchList}" var="item" varStatus="s">
  319. <tr>
  320. <td class="hide">
  321. <form:hidden path="clubsubbranchList[${s.index}].id"/>
  322. <form:hidden path="clubsubbranchList[${s.index}].delFlag" value="0"/>
  323. </td>
  324. <td><span class="help-inline"><font color="red">*</font></span>
  325. <form:select path="clubsubbranchList[${s.index}].provinceId" class="input-small required" onchange="loadCity('${s.index}')" disabled="true">
  326. <form:option value="" label="省"/>
  327. <form:options items="${provinces}" itemLabel="name" itemValue="id" htmlEscape="false"/>
  328. </form:select>
  329. <input type="hidden" id="clubsubbranchList${s.index}province" value="${item.provinceId}">
  330. <form:select path="clubsubbranchList[${s.index}].cityId" class="input-small required" onchange="loadTown('${s.index}')" disabled="true">
  331. <form:option value="" label="市"/>
  332. </form:select>
  333. <input type="hidden" id="clubsubbranchList${s.index}city" value="${item.cityId}">
  334. <form:select path="clubsubbranchList[${s.index}].townId" class="input-small required" disabled="true">
  335. <form:option value="" label="区"/>
  336. </form:select>
  337. <input type="hidden" id="clubsubbranchList${s.index}town" value="${item.townId}">
  338. <label>${item.addressDetails}</label>
  339. </td>
  340. <td style="width:40%;">
  341. <label>${item.name}</label>
  342. </td>
  343. </tr>
  344. </c:forEach>
  345. </tbody>
  346. </table>
  347. <script type="text/template" id="clubsubbranchTpl">//<!--
  348. <tr id="clubsubbranchList{{idx}}">
  349. <td class="hide">
  350. <input id="clubsubbranchList{{idx}}.id" name="clubsubbranchList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
  351. <input id="clubsubbranchList{{idx}}.delFlag" name="clubsubbranchList[{{idx}}].delFlag" type="hidden" value="0"/>
  352. </td>
  353. <td><span class="help-inline"><font color="red">*</font></span>
  354. <select id="clubsubbranchList{{idx}}.provinceId" name="clubsubbranchList[{{idx}}].provinceId" value="{{row.provinceId}}" class="input-mini" onchange="loadCity('{{idx}}')">
  355. <option value="" label="省" provinceId=""/>
  356. <c:forEach items="${provinces}" var="province" varStatus="s">
  357. <option value="${province.id}" label="${province.name}"/>
  358. </c:forEach>
  359. </select>
  360. <input type="hidden" id="clubsubbranchList{{idx}}province" value="{{row.provinceId}}">
  361. <select id="clubsubbranchList{{idx}}.cityId" name="clubsubbranchList[{{idx}}].cityId" class="input-medium" onchange="loadTown('{{idx}}')">
  362. <option value="" label="市"/>
  363. </select>
  364. <select id="clubsubbranchList{{idx}}.townId" name="clubsubbranchList[{{idx}}].townId" class="input-medium">
  365. <option value="" label="区"/>
  366. </select>
  367. <input id="clubsubbranchList{{idx}}.addressDetails" name="clubsubbranchList[{{idx}}].addressDetails" type="text" value="{{row.addressDetails}}" maxlength="200" class="input-xxlarge required"/>
  368. </td>
  369. <td style="width:40%;">
  370. <input id="clubsubbranchList{{idx}}.name" name="clubsubbranchList[{{idx}}].name" type="text" value="{{row.name}}" maxlength="50" class="input-xlarge required" placeholder="填写地址对应店名"/>
  371. </td>
  372. <td class="text-center" width="10">
  373. {{#delBtn}}<span class="close" onclick="delRow(this, '#clubsubbranchList{{idx}}')" title="删除">&times;</span>{{/delBtn}}
  374. </td>
  375. </tr>//-->
  376. </script>
  377. <script type="text/javascript">
  378. var clubsubbranchRowIdx = ${fn:length(projectOrder.clubsubbranchList)}, clubsubbranchTpl = $("#clubsubbranchTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
  379. $(document).ready(function() {
  380. <%--var data = ${fns:toJson(projectOrder.clubsubbranchList)};--%>
  381. <%--for (var i=0; i<data.length; i++){--%>
  382. <%--addRow('#clubsubbranchList', clubsubbranchRowIdx, clubsubbranchTpl, data[i]);--%>
  383. <%--clubsubbranchRowIdx = clubsubbranchRowIdx + 1;--%>
  384. <%--}--%>
  385. });
  386. </script>
  387. </div>
  388. </div>
  389. <div class="control-group">
  390. <label class="control-label"><span class="help-inline"><font color="red">*</font></span>开始时间:</label>
  391. <div class="controls">
  392. <label><fmt:formatDate value="${projectOrder.startDate}" pattern="yyyy-MM-dd"/></label>
  393. </div>
  394. </div>
  395. <div class="control-group">
  396. <label class="control-label"><span class="help-inline"><font color="red">*</font></span>结束时间:</label>
  397. <div class="controls">
  398. <label><fmt:formatDate value="${projectOrder.endDate}" pattern="yyyy-MM-dd"/></label>
  399. </div>
  400. </div>
  401. <div class="form-actions">
  402. <input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
  403. </div>
  404. </form:form>
  405. </body>
  406. </html>