workBidProjectbzAudit.jsp 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743
  1. <%@ page contentType="text/html;charset=UTF-8" %>
  2. <%@ include file="/webpage/include/taglib.jsp"%>
  3. <html>
  4. <head>
  5. <title>投标项目管理</title>
  6. <meta name="decorator" content="default"/>
  7. <script type="text/javascript">
  8. var validateForm;
  9. function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
  10. $('#flag').val('yes');
  11. if(validateForm.form()){
  12. if($("#file_attachment tr").length==0){
  13. top.layer.alert('请上传投标附件!', {icon: 0});
  14. return;
  15. }
  16. if($("#file_attachment_2 tr").length==0){
  17. top.layer.alert('请上传价格附件!', {icon: 0});
  18. return;
  19. }
  20. if($("#file_attachment_3 tr").length==0){
  21. top.layer.alert('请上传招投标附件!', {icon: 0});
  22. return;
  23. }
  24. $("#inputForm").submit();
  25. return true;
  26. }
  27. return false;
  28. }
  29. $(document).ready(function() {
  30. validateForm = $("#inputForm").validate({
  31. submitHandler: function(form){
  32. loading('正在提交,请稍等...');
  33. form.submit();
  34. },
  35. errorContainer: "#messageBox",
  36. errorPlacement: function(error, element) {
  37. $("#messageBox").text("输入有误,请先更正。");
  38. if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
  39. error.appendTo(element.parent().parent());
  40. } else {
  41. error.insertAfter(element);
  42. }
  43. }
  44. });
  45. laydate.render({
  46. elem: '#registrationDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
  47. event: 'focus' //响应事件。如果没有传入event,则按照默认的click
  48. });
  49. laydate.render({
  50. elem: '#bidDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
  51. event: 'focus' //响应事件。如果没有传入event,则按照默认的click
  52. });
  53. laydate.render({
  54. elem: '#trialDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
  55. event: 'focus' //响应事件。如果没有传入event,则按照默认的click
  56. });
  57. laydate.render({
  58. elem: '#purchaseDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
  59. event: 'focus' //响应事件。如果没有传入event,则按照默认的click
  60. });
  61. laydate.render({
  62. elem: '#refundDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
  63. event: 'focus' //响应事件。如果没有传入event,则按照默认的click
  64. });
  65. laydate.render({
  66. elem: '#giveDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
  67. event: 'focus' //响应事件。如果没有传入event,则按照默认的click
  68. });
  69. $("#attachment_btn").click(function () {
  70. $("#attachment_file").click();
  71. });
  72. $("#attachment_2_btn").click(function () {
  73. $("#attachment_2_file").click();
  74. });
  75. $("#attachment_3_btn").click(function () {
  76. $("#attachment_3_file").click();
  77. });
  78. $("#attachment_4_btn").click(function () {
  79. $("#attachment_4_file").click();
  80. });
  81. /*var isExt = "${workBidProject.isExt}";
  82. if(isExt==0){
  83. $("#contact").show();
  84. $("#btnAdd1").hide();
  85. //$("#btnAdd2").show();
  86. $("#extContact").hide();
  87. }else{
  88. $("#extContact").show();
  89. $("#btnAdd1").show();
  90. //$("#btnAdd2").hide();
  91. $("#contact").hide();
  92. }*/
  93. });
  94. function insertTitle(tValue){
  95. var list = "${workBidProject.workAttachments}";
  96. var size = (list.split('url')).length-1;
  97. var files = $("#attachment_file")[0].files; for(var i = 0;i<files.length;i++) { var file = files[i];
  98. var attachmentId = "";
  99. var attachmentFlag = "95";
  100. console.log(file);
  101. var timestamp=new Date().getTime();
  102. var storeAs = "attachment-file/workBidProject/"+timestamp+"/"+file['name'];
  103. var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
  104. var divId = "_attachment";
  105. $("#addFile"+divId).show();
  106. multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
  107. }
  108. function insertTitle2(tValue){
  109. var list = "${workBidProject.workAttachmentsprice}";
  110. var size = (list.split('url')).length-1;
  111. var files = $("#attachment_2_file")[0].files; for(var i = 0;i<files.length;i++) { var file = files[i];
  112. var attachmentId = "";
  113. var attachmentFlag = "96";
  114. console.log(file);
  115. var timestamp=new Date().getTime();
  116. var storeAs = "attachment-file/workBidProject/"+timestamp+"/"+file['name'];
  117. var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
  118. var divId = "_attachment_2";
  119. $("#addFile"+divId).show();
  120. multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
  121. }
  122. function insertTitle3(tValue){
  123. var list = "${workBidProject.workAttachmentsbid}";
  124. var size = (list.split('url')).length-1;
  125. var files = $("#attachment_3_file")[0].files; for(var i = 0;i<files.length;i++) { var file = files[i];
  126. var attachmentId = "";
  127. var attachmentFlag = "97";
  128. console.log(file);
  129. var timestamp=new Date().getTime();
  130. var storeAs = "attachment-file/workBidProject/"+timestamp+"/"+file['name'];
  131. var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
  132. var divId = "_attachment_3";
  133. $("#addFile"+divId).show();
  134. multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
  135. }
  136. function insertTitle4(tValue){
  137. var list = "${workBidProject.workAttachmentsopenbid}";
  138. var size = (list.split('url')).length-1;
  139. var files = $("#attachment_4_file")[0].files; for(var i = 0;i<files.length;i++) { var file = files[i];
  140. var attachmentId = "";
  141. var attachmentFlag = "98";
  142. console.log(file);
  143. var timestamp=new Date().getTime();
  144. var storeAs = "attachment-file/workBidProject/"+timestamp+"/"+file['name'];
  145. var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
  146. var divId = "_attachment_4";
  147. $("#addFile"+divId).show();
  148. multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
  149. }
  150. /*function addRow(list, idx, workClientLinkmanTpl, row) {
  151. $(list).append(Mustache.render(workClientLinkmanTpl, {
  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. function delRow(obj, prefix){
  167. var id = $(prefix+"_id");
  168. var delFlag = $(prefix+"_delFlag");
  169. if (id.val() == ""){
  170. $(obj).parent().parent().remove();
  171. }else if(delFlag.val() == "0"){
  172. delFlag.val("1");
  173. $(obj).parent().parent().hide();
  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. </script>
  183. </head>
  184. <body>
  185. <div class="single-form">
  186. <div class="container">
  187. <form:form id="inputForm" modelAttribute="workBidProject" action="${ctx}/workbidproject/workBidProject/saveAudit" method="post" class="form-horizontal">
  188. <form:hidden path="id"/>
  189. <form:hidden path="home"/>
  190. <form:hidden path="act.taskId"/>
  191. <form:hidden path="act.taskName"/>
  192. <form:hidden path="act.taskDefKey"/>
  193. <form:hidden path="act.procInsId"/>
  194. <form:hidden path="act.procDefId"/>
  195. <form:hidden id="flag" path="act.flag"/>
  196. <div class="form-group layui-row first lw16">
  197. <div class="form-group-label"><h2>基础信息</h2></div>
  198. <div class="layui-item layui-col-sm6">
  199. <label class="layui-form-label"><span class="require-item">*</span>投标名称:</label>
  200. <div class="layui-input-block">
  201. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${workBidProject.projectName}"/>
  202. </div>
  203. </div>
  204. <div class="layui-item layui-col-sm6">
  205. <label class="layui-form-label">投标编号:</label>
  206. <div class="layui-input-block">
  207. <div class="input-group">
  208. <input path="projectNumber" htmlEscape="false" readonly="true" class="form-control layui-input" value="${workBidProject.projectNumber}"/>
  209. <span class="input-group-btn">
  210. <label class="form-status"><c:choose><c:when test="${not empty workBidProject.status}">${fns:getDictLabel(workBidProject.status, 'audit_state', '')}</c:when><c:otherwise>新添</c:otherwise></c:choose></label>
  211. </span>
  212. </div>
  213. </div>
  214. </div>
  215. <div class="layui-item layui-col-sm6">
  216. <label class="layui-form-label"><span class="require-item">*</span>工程分类:</label>
  217. <div class="layui-input-block">
  218. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${fns:getMainDictLabel(workBidProject.projectType, 'contract_type', '')}"/>
  219. </div>
  220. </div>
  221. <div class="layui-item layui-col-sm6">
  222. <label class="layui-form-label">类型说明:</label>
  223. <div class="layui-input-block">
  224. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${workBidProject.typeExplain}"/>
  225. </div>
  226. </div>
  227. <div class="layui-item layui-col-sm6">
  228. <label class="layui-form-label">项目来源:</label>
  229. <div class="layui-input-block">
  230. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${fns:getMainDictLabel(workBidProject.projectSource, 'bidProjectSource', '')}"/>
  231. </div>
  232. </div>
  233. <div class="layui-item layui-col-sm6">
  234. <label class="layui-form-label">来源说明:</label>
  235. <div class="layui-input-block">
  236. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${workBidProject.sourceExplain}"/>
  237. </div>
  238. </div>
  239. <div class="layui-item layui-col-sm6">
  240. <label class="layui-form-label">项目规模:</label>
  241. <div class="layui-input-block">
  242. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${workBidProject.projectScale}"/>
  243. </div>
  244. </div>
  245. <div class="layui-item layui-col-sm6">
  246. <label class="layui-form-label">规模类型:</label>
  247. <div class="layui-input-block">
  248. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${fns:getMainDictLabel(workBidProject.scaleType, 'scale_type', '')}"/>
  249. </div>
  250. </div>
  251. <div class="layui-item layui-col-sm6">
  252. <label class="layui-form-label">规模单位:</label>
  253. <div class="layui-input-block">
  254. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${fns:getMainDictLabel(workBidProject.scaleUnit, 'scale_unit', '')}"/>
  255. </div>
  256. </div>
  257. <div class="layui-item layui-col-sm6">
  258. <label class="layui-form-label">投资额(万元):</label>
  259. <div class="layui-input-block">
  260. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="<fmt:formatNumber value="${workBidProject.investMoney}" pattern="#,#00.00"/>"/>
  261. </div>
  262. </div>
  263. <div class="layui-item layui-col-sm6">
  264. <label class="layui-form-label">是否外部招标单位:</label>
  265. <div class="layui-input-block">
  266. <c:choose>
  267. <c:when test="${workBidProject.isExt == '1'}">
  268. <input htmlEscape="false" readonly="true" class="form-control layui-input" value="系统外招标单位" />
  269. </c:when>
  270. <c:otherwise>
  271. <input htmlEscape="false" readonly="true" class="form-control layui-input" value="系统内招标单位" />
  272. </c:otherwise>
  273. </c:choose>
  274. </div>
  275. </div>
  276. <div class="layui-item layui-col-sm6">
  277. <label class="layui-form-label"><span class="require-item">*</span>招标单位:</label>
  278. <div class="layui-input-block with-icon">
  279. <c:choose>
  280. <c:when test="${workBidProject.isExt == '1'}">
  281. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${workBidProject.extCompany}"/>
  282. </c:when>
  283. <c:otherwise>
  284. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${workBidProject.bidCompany.name}"/>
  285. </c:otherwise>
  286. </c:choose>
  287. </div>
  288. </div>
  289. <div class="layui-item layui-col-sm6">
  290. <label class="layui-form-label">招标编号:</label>
  291. <div class="layui-input-block">
  292. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${workBidProject.bidNumber}"/>
  293. </div>
  294. </div>
  295. <div class="layui-item layui-col-sm6">
  296. <label class="layui-form-label">所属部门:</label>
  297. <div class="layui-input-block">
  298. <input htmlEscape="false" readonly="true" class="form-control layui-input" value="${workBidProject.officeName}"/>
  299. </div>
  300. </div>
  301. </div>
  302. <div class="form-group layui-row">
  303. <div class="form-group-label"><h2>联系人</h2></div>
  304. <div class="layui-item layui-col-xs12 form-table-container" >
  305. <table id="contentTable2" class="table table-bordered table-condensed details no-bottom-margin">
  306. <thead>
  307. <tr>
  308. <th width="18%"><span class="require-item">*</span>联系人姓名</th>
  309. <th width="13%">部门</th>
  310. <th width="13%">职务</th>
  311. <th width="13%">QQ</th>
  312. <th width="16%"><span class="require-item">*</span>联系方式1</th>
  313. <th width="16%">联系方式2</th>
  314. <th width="13%">E-mail</th>
  315. </tr>
  316. </thead>
  317. <tbody id="workClientLinkmanList">
  318. <c:forEach items="${workBidProject.workClientLinkmanList}" var="workClientLinkman" varStatus="status">
  319. <tr>
  320. <td>${workClientLinkman.name}</td>
  321. <td>${workClientLinkman.office}</td>
  322. <td>${workClientLinkman.position}</td>
  323. <td>${workClientLinkman.qq}</td>
  324. <td>${workClientLinkman.linkPhone}</td>
  325. <td>${workClientLinkman.linkMobile}</td>
  326. <td>${workClientLinkman.email}</td>
  327. </tr>
  328. </c:forEach>
  329. <c:if test="${empty workBidProject.workClientLinkmanList}">
  330. <tr>
  331. <td colspan="8">暂无数据</td>
  332. </tr>
  333. </c:if>
  334. </tbody>
  335. </table>
  336. </div>
  337. </div>
  338. <div class="form-group layui-row">
  339. <div class="form-group-label"><h2>招标代理机构</h2></div>
  340. <div class="layui-item layui-col-xs12 form-table-container" >
  341. <table id="contentTable3" class="table table-bordered table-condensed details no-bottom-margin">
  342. <thead>
  343. <tr>
  344. <th width="20%"><span class="require-item">*</span>机构名称</th>
  345. <th width="20%">姓名</th>
  346. <th width="20%"><span class="require-item">*</span>联系人电话</th>
  347. <th width="20%">QQ</th>
  348. <th width="22%">E-mail</th>
  349. </tr>
  350. </thead>
  351. <tbody id="workClientLinkmanLists">
  352. <c:forEach items="${workBidProject.workClientLinkmanLists}" var="workClientLinkman" varStatus="status">
  353. <tr>
  354. <td>${workClientLinkman.office}</td>
  355. <td>${workClientLinkman.name}</td>
  356. <td>${workClientLinkman.linkPhone}</td>
  357. <td>${workClientLinkman.qq}</td>
  358. <td>${workClientLinkman.email}</td>
  359. </tr>
  360. </c:forEach>
  361. <c:if test="${empty workBidProject.workClientLinkmanList}">
  362. <tr>
  363. <td colspan="8">暂无数据</td>
  364. </tr>
  365. </c:if>
  366. </tbody>
  367. </table>
  368. </div>
  369. </div>
  370. <div class="form-group layui-row lw16">
  371. <div class="form-group-label"><h2>投标详情</h2></div>
  372. <div class="layui-item layui-col-sm6">
  373. <label class="layui-form-label">报名日期:</label>
  374. <div class="layui-input-block">
  375. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="<fmt:formatDate value="${workBidProject.registrationDate}" pattern="yyyy-MM-dd"/>"/>
  376. </div>
  377. </div>
  378. <div class="layui-item layui-col-sm6">
  379. <label class="layui-form-label"><span class="require-item">*</span>投标日期:</label>
  380. <div class="layui-input-block">
  381. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="<fmt:formatDate value="${workBidProject.bidDate}" pattern="yyyy-MM-dd"/>"/>
  382. </div>
  383. </div>
  384. <div class="layui-item layui-col-sm6">
  385. <label class="layui-form-label">资审日期:</label>
  386. <div class="layui-input-block">
  387. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="<fmt:formatDate value="${workBidProject.trialDate}" pattern="yyyy-MM-dd"/>"/>
  388. </div>
  389. </div>
  390. <div class="layui-item layui-col-sm6">
  391. <label class="layui-form-label">资格审查:</label>
  392. <div class="layui-input-block">
  393. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${fns:getDictLabel(workBidProject.trialType, 'trial_type', '')}"/>
  394. </div>
  395. </div>
  396. <div class="layui-item layui-col-sm6">
  397. <label class="layui-form-label">文件费用(元):</label>
  398. <div class="layui-input-block">
  399. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="<fmt:formatNumber value="${workBidProject.documentCost}" pattern="#,#00.00"/>"/>
  400. </div>
  401. </div>
  402. <div class="layui-item layui-col-sm6">
  403. <label class="layui-form-label">投标保证金(元):</label>
  404. <div class="layui-input-block">
  405. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="<fmt:formatNumber value="${workBidProject.bidBond}" pattern="#,#00.00"/>"/>
  406. </div>
  407. </div>
  408. <div class="layui-item layui-col-sm6">
  409. <label class="layui-form-label">投标保证金形式:</label>
  410. <div class="layui-input-block">
  411. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${fns:getMainDictLabel(workBidProject.bondStyle, 'bond_style', '')}"/>
  412. </div>
  413. </div>
  414. <div class="layui-item layui-col-sm6">
  415. <label class="layui-form-label">投标保证金交付时间:</label>
  416. <div class="layui-input-block with-icon">
  417. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="<fmt:formatDate value="${workBidProject.giveDate}" pattern="yyyy-MM-dd"/>"/>
  418. </div>
  419. </div>
  420. <div class="layui-item layui-col-sm6">
  421. <label class="layui-form-label">投标保证金退还时间:</label>
  422. <div class="layui-input-block">
  423. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="<fmt:formatDate value="${workBidProject.refundDate}" pattern="yyyy-MM-dd"/>"/>
  424. </div>
  425. </div>
  426. <div class="layui-item layui-col-sm6">
  427. <label class="layui-form-label">项目协作部门:</label>
  428. <div class="layui-input-block with-icon">
  429. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${workBidProject.office.name}"/>
  430. </div>
  431. </div>
  432. <div class="layui-item layui-col-sm6">
  433. <label class="layui-form-label">是否联合体投标:</label>
  434. <div class="layui-input-block">
  435. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${fns:getDictLabel(workBidProject.isBid, 'is_bid', '')}"/>
  436. </div>
  437. </div>
  438. <div class="layui-item layui-col-sm6">
  439. <label class="layui-form-label">业务类型:</label>
  440. <div class="layui-input-block">
  441. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${fns:getMainDictLabel(workBidProject.businessType, 'business_type', '')}"/>
  442. </div>
  443. </div>
  444. <div class="layui-item layui-col-sm12">
  445. <label class="layui-form-label">对外协作单位:</label>
  446. <div class="layui-input-block">
  447. <input htmlEscape="false" readonly="true" class="form-control required layui-input" value="${workBidProject.subcontractCompany}"/>
  448. </div>
  449. </div>
  450. <div class="layui-item layui-col-sm12 with-textarea">
  451. <label class="layui-form-label"><span class="require-item">*</span>项目概况:</label>
  452. <div class="layui-input-block">
  453. <textarea htmlEscape="false" rows="4" readonly="true" class="form-control ">${workBidProject.projectSituation}</textarea>
  454. </div>
  455. </div>
  456. <div class="layui-item layui-col-sm12 with-textarea">
  457. <label class="layui-form-label">服务内容:</label>
  458. <div class="layui-input-block">
  459. <textarea htmlEscape="false" rows="4" readonly="true" class="form-control ">${workBidProject.serviceContent}</textarea>
  460. </div>
  461. </div>
  462. <div class="layui-item layui-col-sm12 with-textarea">
  463. <label class="layui-form-label">备注信息:</label>
  464. <div class="layui-input-block">
  465. <textarea htmlEscape="false" rows="4" readonly="true" class="form-control ">${workBidProject.remarks}</textarea>
  466. </div>
  467. </div>
  468. </div>
  469. <div class="form-group layui-row">
  470. <div class="form-group-label"><h2>投标附件信息</h2></div>
  471. <div class="layui-item nav-btns">
  472. <a id="attachment_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>
  473. </div>
  474. <div id="addFile_attachment" style="display: none" class="upload-progress">
  475. <span id="fileName_attachment" ></span>
  476. <b><span id="baifenbi_attachment" ></span></b>
  477. <div class="progress">
  478. <div id="jindutiao_attachment" class="progress-bar" style="width: 0%" aria-valuenow="0">
  479. </div>
  480. </div>
  481. </div>
  482. <input id="attachment_file" type="file" name="attachment_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertTitle(this.value);"/>
  483. <span id="attachment_title"></span>
  484. <div class="layui-item layui-col-xs12" style="padding:0 16px;">
  485. <table id="upTable" class="table table-bordered table-condensed details">
  486. <thead>
  487. <tr>
  488. <th>文件预览</th>
  489. <th>上传人</th>
  490. <th>上传时间</th>
  491. <th width="150px">操作</th>
  492. </tr>
  493. </thead>
  494. <tbody id="file_attachment">
  495. <c:forEach items="${workBidProject.workAttachments}" var = "workClientAttachment" varStatus="status">
  496. <tr>
  497. <%-- <td>${status.index + 1}</td>--%>
  498. <c:choose>
  499. <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
  500. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
  501. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
  502. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
  503. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
  504. <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
  505. </c:when>
  506. <c:otherwise>
  507. <c:choose>
  508. <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
  509. <td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
  510. </c:when>
  511. <c:otherwise>
  512. <td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
  513. </c:otherwise>
  514. </c:choose>
  515. </c:otherwise>
  516. </c:choose>
  517. <td>${workClientAttachment.createBy.name}</td>
  518. <td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
  519. <td class="op-td">
  520. <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent(encodeURIComponent('${workClientAttachment.url}'));" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
  521. <c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">
  522. <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile_attachment','_attachment')" class="op-btn op-btn-delete" ><i class="fa fa-trash"></i>&nbsp;删除</a>
  523. </c:if>
  524. </td>
  525. </tr>
  526. </c:forEach>
  527. </tbody>
  528. </table>
  529. </div>
  530. </div>
  531. <div class="form-group layui-row">
  532. <div class="form-group-label"><h2>价格附件信息</h2></div>
  533. <div class="layui-item nav-btns">
  534. <a id="attachment_2_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>
  535. </div>
  536. <div id="addFile_attachment_2" style="display: none" class="upload-progress">
  537. <span id="fileName_attachment_2" ></span>
  538. <b><span id="baifenbi_attachment_2" ></span></b>
  539. <div class="progress">
  540. <div id="jindutiao_attachment_2" class="progress-bar" style="width: 0%" aria-valuenow="0">
  541. </div>
  542. </div>
  543. </div>
  544. <input id="attachment_2_file" type="file" name="attachment_2_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertTitle2(this.value);"/>
  545. <span id="attachment_title_2"></span>
  546. <div class="layui-item layui-col-xs12" style="padding:0 16px;">
  547. <table id="upTable2" class="table table-bordered table-condensed details">
  548. <thead>
  549. <tr>
  550. <%-- <th>序号</th>--%>
  551. <th>文件名称</th>
  552. <th>上传人</th>
  553. <th>上传时间</th>
  554. <th width="150px">操作</th>
  555. </tr>
  556. </thead>
  557. <tbody id="file_attachment_2">
  558. <c:forEach items="${workBidProject.workAttachmentsprice}" var = "workClientAttachment" varStatus="status">
  559. <tr>
  560. <c:choose>
  561. <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
  562. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
  563. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
  564. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
  565. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
  566. <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
  567. </c:when>
  568. <c:otherwise>
  569. <c:choose>
  570. <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
  571. <td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
  572. </c:when>
  573. <c:otherwise>
  574. <td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
  575. </c:otherwise>
  576. </c:choose>
  577. </c:otherwise>
  578. </c:choose>
  579. <td>${workClientAttachment.createBy.name}</td>
  580. <td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
  581. <td class="op-td">
  582. <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent(encodeURIComponent('${workClientAttachment.url}'));" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
  583. <c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">
  584. <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile_attachment','_attachment_2')" class="op-btn op-btn-delete" ><i class="fa fa-trash"></i>&nbsp;删除</a>
  585. </c:if>
  586. </td>
  587. </tr>
  588. </c:forEach>
  589. </tbody>
  590. </table>
  591. </div>
  592. </div>
  593. <div class="form-group layui-row">
  594. <div class="form-group-label"><h2>招投标附件信息</h2></div>
  595. <div class="layui-item nav-btns">
  596. <a id="attachment_3_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>
  597. </div>
  598. <div id="addFile_attachment_3" style="display: none" class="upload-progress">
  599. <span id="fileName_attachment_3" ></span>
  600. <b><span id="baifenbi_attachment_3" ></span></b>
  601. <div class="progress">
  602. <div id="jindutiao_attachment_3" class="progress-bar" style="width: 0%" aria-valuenow="0">
  603. </div>
  604. </div>
  605. </div>
  606. <input id="attachment_3_file" type="file" name="attachment_3_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertTitle3(this.value);"/>
  607. <span id="attachment_title_3"></span>
  608. <div class="layui-item layui-col-xs12" style="padding:0 16px;">
  609. <table id="upTable3" class="table table-bordered table-condensed details">
  610. <thead>
  611. <tr>
  612. <%-- <th>序号</th>--%>
  613. <th>文件名称</th>
  614. <th>上传人</th>
  615. <th>上传时间</th>
  616. <th width="150px">操作</th>
  617. </tr>
  618. </thead>
  619. <tbody id="file_attachment_3">
  620. <c:forEach items="${workBidProject.workAttachmentsbid}" var = "workClientAttachment" varStatus="status">
  621. <tr>
  622. <%-- <td>${status.index + 1}</td>--%>
  623. <c:choose>
  624. <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
  625. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
  626. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
  627. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
  628. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
  629. <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
  630. </c:when>
  631. <c:otherwise>
  632. <c:choose>
  633. <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
  634. <td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
  635. </c:when>
  636. <c:otherwise>
  637. <td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
  638. </c:otherwise>
  639. </c:choose>
  640. </c:otherwise>
  641. </c:choose>
  642. <td>${workClientAttachment.createBy.name}</td>
  643. <td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
  644. <td class="op-td">
  645. <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent(encodeURIComponent('${workClientAttachment.url}'));" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
  646. <c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">
  647. <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile_attachment','_attachment_3')" class="op-btn op-btn-delete" ><i class="fa fa-trash"></i>&nbsp;删除</a>
  648. </c:if>
  649. </td>
  650. </tr>
  651. </c:forEach>
  652. </tbody>
  653. </table>
  654. </div>
  655. </div>
  656. <div class="form-group layui-row">
  657. <div class="form-group-label"><h2>开标附件信息</h2></div>
  658. <div class="layui-item layui-col-xs12" style="padding:0 16px;">
  659. <table id="upTable4" class="table table-bordered table-condensed details">
  660. <thead>
  661. <tr>
  662. <%-- <th>序号</th>--%>
  663. <th>文件名称</th>
  664. <th>上传人</th>
  665. <th>上传时间</th>
  666. <th width="150px">操作</th>
  667. </tr>
  668. </thead>
  669. <tbody id="file_attachment4">
  670. <c:forEach items="${workBidProject.workAttachmentsopenbid}" var = "workClientAttachment" varStatus="status">
  671. <tr>
  672. <%-- <td>${status.index + 1}</td>--%>
  673. <c:choose>
  674. <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
  675. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
  676. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
  677. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
  678. or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
  679. <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
  680. </c:when>
  681. <c:otherwise>
  682. <c:choose>
  683. <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
  684. <td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
  685. </c:when>
  686. <c:otherwise>
  687. <td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
  688. </c:otherwise>
  689. </c:choose>
  690. </c:otherwise>
  691. </c:choose>
  692. <td>${workClientAttachment.createBy.name}</td>
  693. <td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
  694. <td class="op-td">
  695. <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent(encodeURIComponent('${workClientAttachment.url}'));" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
  696. </td>
  697. </tr>
  698. </c:forEach>
  699. </tbody>
  700. </table>
  701. </div>
  702. </div>
  703. <div class="form-group layui-row">
  704. <div class="form-group-label"><h2>审批意见</h2></div>
  705. <div class="layui-item layui-col-sm12 with-textarea">
  706. <label class="layui-form-label">审批意见:</label>
  707. <div class="layui-input-block">
  708. <form:textarea path="act.comment" class="form-control" rows="4" maxlength="127" />
  709. <input type="file" name="upload_files" style="display: none;">
  710. </div>
  711. </div>
  712. </div>
  713. <div class="form-group layui-row">
  714. <div class="form-group-label"><h2>审批流程</h2></div>
  715. <div class="layui-item layui-col-xs12 form-table-container" >
  716. <act:flowChart procInsId="${workBidProject.act.procInsId}"/>
  717. <act:histoicFlow procInsId="${workBidProject.act.procInsId}"/>
  718. </div>
  719. </div>
  720. <div class="form-group layui-row page-end"></div>
  721. </form:form>
  722. </div>
  723. </div>
  724. </body>
  725. </html>