add.html 116 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  6. <title>编辑</title>
  7. <link rel="stylesheet" th:href="@{/lib/layui/css/layui.css}" media="all">
  8. <link rel="stylesheet" th:href="@{/css/public.css}" media="all">
  9. <link rel="stylesheet" th:href="@{/lib/font-awesome-4.7.0/css/font-awesome.min.css}" media="all">
  10. <style>
  11. body {
  12. background-color: #ffffff;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <form class="layui-form" action="" lay-filter="formDemo">
  18. <div class="layui-tab layui-tab-card">
  19. <ul class="layui-tab-title">
  20. <li class="layui-this">基本信息</li>
  21. <li>填写说明</li>
  22. <li>子课题</li>
  23. <li>内容</li>
  24. <li>项目预算</li>
  25. <li>出资方案</li>
  26. <li>说明</li>
  27. <li>联系方式</li>
  28. <li>附件</li>
  29. </ul>
  30. <div class="layui-tab-content">
  31. <!--基本信息开始-->
  32. <div class="layui-tab-item layui-show">
  33. <form class="layui-form" action="" lay-filter="formDemo">
  34. <div class="layui-form layuimini-form" style="padding-bottom: 100px">
  35. <div class="layui-form-item layui-inline" style="width: 100%">
  36. <label class="layui-form-label required" style="width: 80px">中文名称</label>
  37. <div class="layui-input-inline" style="width: 460px">
  38. <input type="hidden" id="id" name="id">
  39. <input type="text" id="zwmc" name="zwmc" lay-verify="required" lay-reqtext="中文名称不能为空"
  40. placeholder="项目名称(中文)不能超过30字(含字符)" autocomplete="off" class="layui-input">
  41. </div>
  42. <label class="layui-form-label" style="width: 115px">学科分类1</label>
  43. <div class="layui-input-inline" style="width: 300px">
  44. <select name="xkfl1" id="xkfl1" lay-filter="xkfl">
  45. <option value="">[无]</option>
  46. <option value="-1">[浏览]</option>
  47. </select>
  48. </div>
  49. </div>
  50. <div class="layui-form-item layui-inline" style="width: 100%">
  51. <label class="layui-form-label" style="width: 80px">英文名称</label>
  52. <div class="layui-input-inline" style="width: 460px">
  53. <input type="text" id="ywmc" name="ywmc" placeholder="项目名称(英文)不能超过30字(含字符)"
  54. autocomplete="off" class="layui-input">
  55. </div>
  56. <label class="layui-form-label" style="width: 115px">学科分类2</label>
  57. <div class="layui-input-inline" style="width: 300px">
  58. <select name="xkfl2" id="xkfl2" lay-filter="xkfl">
  59. <option value="">[无]</option>
  60. <option value="-1">[浏览]</option>
  61. </select>
  62. </div>
  63. </div>
  64. <div class="layui-form-item layui-inline" style="width: 100%">
  65. <label class="layui-form-label required" style="width: 80px">ERP编号</label>
  66. <div class="layui-input-inline" style="width: 460px">
  67. <input type="text" id="erpbh" name="erpbh" autocomplete="off" class="layui-input" lay-verify="required" lay-reqtext="ERP编号不能为空">
  68. </div>
  69. <label class="layui-form-label" style="width: 115px">学科分类3</label>
  70. <div class="layui-input-inline" style="width: 300px">
  71. <select name="xkfl3" id="xkfl3" lay-filter="xkfl">
  72. <option value="">[无]</option>
  73. <option value="-1">[浏览]</option>
  74. </select>
  75. </div>
  76. </div>
  77. <div class="layui-form-item layui-inline" style="width: 100%">
  78. <label class="layui-form-label required" style="width: 80px">项目类型</label>
  79. <div class="layui-input-inline" style="width: 460px">
  80. <select name="xmlx" id="xmlx" lay-filter="xmlx" lay-verify="required" lay-reqtext="项目类型不能为空">
  81. <option value="">-- 请选择 --</option>
  82. <option th:each="item:${xmlxList}" th:text="${item.name}" th:value="${item.code}"></option>
  83. </select>
  84. <tip>此项只能新建时修改</tip>
  85. </div>
  86. <label class="layui-form-label" style="width: 115px">所属国民经济行业</label>
  87. <div class="layui-input-inline" style="width: 300px">
  88. <select name="ssgmjjhy" id="ssgmjjhy" lay-filter="gmjjhy">
  89. <option value="">[无]</option>
  90. <option value="-1">[浏览]</option>
  91. </select>
  92. </div>
  93. </div>
  94. <div class="layui-form-item layui-inline" style="width: 100%">
  95. <label class="layui-form-label" style="width: 80px">可研报告</label>
  96. <div class="layui-input-inline" style="width: 460px">
  97. <input type="hidden" id="bm" name="bm" class="layui-input">
  98. <input type="hidden" id="kybgmc" name="kybgmc" class="layui-input">
  99. <select name="kybg" id="kybg" lay-filter="kybg">
  100. <option value="">[无]</option>
  101. <option value="-1">[浏览]</option>
  102. </select>
  103. </div>
  104. <label class="layui-form-label" style="width: 143px">是否国家秘密技术项目</label>
  105. <div class="layui-input-inline">
  106. <input type="checkbox" name="sfgjmmjsxm" lay-skin="primary">
  107. </div>
  108. </div>
  109. <div class="layui-form-item layui-inline" style="width: 100%">
  110. <label class="layui-form-label" style="width: 80px">费用来源</label>
  111. <div class="layui-input-inline" style="width: 460px">
  112. <input type="text" id="fyly" name="fyly" autocomplete="off" class="layui-input">
  113. </div>
  114. <label class="layui-form-label required" style="width: 115px">项目起止时间</label>
  115. <div class="layui-form-item layui-inline" style="width: auto">
  116. <div class="layui-input-inline" style="width: 138px">
  117. <input type="text" name="qs" id="qs" lay-verify="required|date" placeholder="开始日期"
  118. lay-reqtext="开始日期不能为空" autocomplete="off" class="layui-input">
  119. </div>
  120. <div class="layui-form-mid">-</div>
  121. <div class="layui-input-inline" style="width: 138px">
  122. <input type="text" name="wc" id="wc" lay-verify="required|date" placeholder="结束日期"
  123. lay-reqtext="结束日期不能为空" autocomplete="off" class="layui-input">
  124. </div>
  125. <br>
  126. <tip>日期格式:yyyy-MM-dd</tip>
  127. </div>
  128. </div>
  129. <div class="layui-form-item layui-inline" style="width: 100%">
  130. <label class="layui-form-label">项目总预算(万)</label>
  131. <div class="layui-input-inline" style="width: 100px">
  132. <input type="text" id="rwsys2" name="rwsys2" style="width: 460px; margin-left: -1px" class="layui-input" th:value="${rwsys}" readonly>
  133. </div>
  134. </div>
  135. <!--Tab列表-->
  136. <div class="layui-tab layui-tab-brief" style="padding-left: 30px; padding-right: 30px">
  137. <ul class="layui-tab-title">
  138. <li class="layui-this">主要完成人</li>
  139. <li>主要完成单位</li>
  140. </ul>
  141. <div class="layui-tab-content">
  142. <!--主要完成人开始-->
  143. <div class="layui-tab-item layui-show">
  144. <div class="layuimini-container">
  145. <div class="layui-btn-group" style="margin-bottom: -8px">
  146. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm upload" lay-filter="subImport1" lay-data="{fileType:'memberFile'}"><i class="layui-icon"></i>导入</button>
  147. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subAdd1"><i class="layui-icon"></i>新建</button>
  148. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subEdit1"><i class="layui-icon"></i>编辑</button>
  149. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subView1"><i class="layui-icon">&#xe63c;</i>查看</button>
  150. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subDelete1"><i class="layui-icon"></i>删除</button>
  151. <a class="layui-btn layui-btn-primary layui-btn-sm " th:href="${ReportRYTemplate}" >
  152. <i class="layui-icon layui-icon-export" style="font-size: 10px;" ></i>人员模板
  153. </a>
  154. </div>
  155. <table class="layui-hide" id="currentTableId1" name="currentTableId1" lay-filter="currentTableFilter1" style="padding-top: 0px;margin-top: 0px"></table>
  156. </div>
  157. </div>
  158. <!--主要完成人结束-->
  159. <!--主要完成单位开始-->
  160. <div class="layui-tab-item">
  161. <div class="layuimini-container">
  162. <div class="layui-btn-group" style="margin-bottom: -8px">
  163. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subAdd2"><i class="layui-icon"></i>新建</button>
  164. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subEdit2"><i class="layui-icon"></i>编辑</button>
  165. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subView2"><i class="layui-icon">&#xe63c;</i>查看</button>
  166. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subDelete2"><i class="layui-icon"></i>删除</button>
  167. </div>
  168. <table class="layui-hide" id="currentTableId2" name="currentTableId2" lay-filter="currentTableFilter2" style="padding-bottom: 0px;margin-bottom: 0px"></table>
  169. </div>
  170. </div>
  171. <!--主要完成单位结束-->
  172. </div>
  173. </div>
  174. <div class="layui-form-item layui-inline" style="width: 100%">
  175. <label class="layui-form-label" style="width: 90px">总人数</label>
  176. <div class="layui-input-inline" style="width: 120px">
  177. <input type="text" id="zrs" name="zrs" class="layui-input" readonly>
  178. </div>
  179. <label class="layui-form-label">高级职称</label>
  180. <div class="layui-input-inline" style="width: 120px">
  181. <input type="text" id="gjzc" name="gjzc" class="layui-input" readonly>
  182. </div>
  183. <label class="layui-form-label">中级职称</label>
  184. <div class="layui-input-inline" style="width: 120px">
  185. <input type="text" id="zjzc" name="zjzc" class="layui-input" readonly>
  186. </div>
  187. </div>
  188. <div class="layui-form-item layui-inline" style="width: 100%">
  189. <label class="layui-form-label" style="width: 220px"></label>
  190. <label class="layui-form-label">初级职称</label>
  191. <div class="layui-input-inline" style="width: 120px">
  192. <input type="text" id="cjzc" name="cjzc" class="layui-input" readonly>
  193. </div>
  194. <label class="layui-form-label">研究生</label>
  195. <div class="layui-input-inline" style="width: 120px">
  196. <input type="text" id="yjs" name="yjs" class="layui-input" readonly>
  197. </div>
  198. </div>
  199. <div class="layui-form-item">
  200. <label class="layui-form-label" style="width: 90px">所属部门</label>
  201. <div class="layui-input-inline" style="width: 600px">
  202. <input type="hidden" id="ssbm" name="ssbm" class="layui-input" th:value="${userInfo.deptId}">
  203. <input type="text" id="ssbmmc" name="ssbmmc" class="layui-input" th:value="${userInfo.deptName}" readonly>
  204. </div>
  205. </div>
  206. <div class="layui-form-item">
  207. <label class="layui-form-label" style="width: 90px">电科院负责人</label>
  208. <div class="layui-input-inline" style="width: 600px">
  209. <input type="hidden" id="dkyfzr" name="dkyfzr" class="layui-input">
  210. <input type="text" id="dkyfzrxm" name="dkyfzrxm" placeholder="可多选" autocomplete="off" class="layui-input" lay-verify="required" lay-reqtext="电科院负责人不能为空" readonly>
  211. </div>
  212. </div>
  213. <!-- 右侧悬浮按钮 -->
  214. <div class="right-bottom-btn">
  215. <button type="button" class="layui-btn" lay-submit lay-filter="saveBtn1">
  216. <i class="layui-icon layui-icon-ok"></i>保存
  217. </button>
  218. <button class="layui-btn" lay-filter="cancleBtn">
  219. <i class="layui-icon layui-icon-close"></i>取消
  220. </button>
  221. </div>
  222. </div>
  223. </form>
  224. </div>
  225. <!--基本信息结束-->
  226. <!--填写说明开始-->
  227. <div class="layui-tab-item" style="min-height: 540px">
  228. <form class="layui-form" action="" lay-filter="formDemo">
  229. <div class="layui-form layuimini-form" style="padding-bottom: 100px">
  230. <div class="layui-form-item layui-inline" style="width: 100%">
  231. <label class="layui-form-label" style="width: 65px">填写说明</label>
  232. <div class="layui-input-inline" style="width: 930px">
  233. <textarea id="txsm" name="txsm" class="layui-textarea" style="width: 100%;height: 510px"></textarea>
  234. </div>
  235. </div>
  236. <!-- 右侧悬浮按钮 -->
  237. <div class="right-bottom-btn">
  238. <button type="button" class="layui-btn" lay-filter="saveBtn2">
  239. <i class="layui-icon layui-icon-ok"></i>保存
  240. </button>
  241. <button class="layui-btn" lay-filter="cancleBtn">
  242. <i class="layui-icon layui-icon-close"></i>取消
  243. </button>
  244. </div>
  245. </div>
  246. </form>
  247. </div>
  248. <!--填写说明结束-->
  249. <!--子课题开始-->
  250. <div class="layui-tab-item" style="min-height: 565px; padding-left: 30px; padding-right: 30px">
  251. <form class="layui-form" action="" lay-filter="formDemo">
  252. <div class="layui-form layuimini-form" style="padding-bottom: 100px">
  253. <div class="layui-btn-group" style="margin-bottom: -8px">
  254. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnAdd3"><i class="layui-icon"></i>新建</button>
  255. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnEdit3"><i class="layui-icon"></i>编辑</button>
  256. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnView3"><i class="layui-icon">&#xe63c;</i>查看</button>
  257. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnDelete3"><i class="layui-icon"></i>删除</button>
  258. </div>
  259. <table class="layui-hide" id="currentTableId3" lay-filter="currentTableFilter3"></table>
  260. <script type="text/html" id="currentTableBar3">
  261. <a class="layui-btn layui-btn-xs layui-btn-warm data-count-view" lay-event="view">
  262. <i class="layui-icon layui-icon-set" style="font-size: 10px;"></i>查看
  263. </a>
  264. <a class="layui-btn layui-btn-xs data-count-update" lay-event="update">
  265. <i class="layui-icon layui-icon-edit" style="font-size: 10px;"></i>编辑
  266. </a>
  267. <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delFlag">
  268. <i class="layui-icon layui-icon-delete" style="font-size: 10px;"></i>删除
  269. </a>
  270. </script>
  271. <!-- 右侧悬浮按钮 -->
  272. <div class="right-bottom-btn">
  273. <button class="layui-btn" lay-filter="cancleBtn">
  274. <i class="layui-icon layui-icon-close"></i>关闭
  275. </button>
  276. </div>
  277. </div>
  278. </form>
  279. </div>
  280. <!--子课题结束-->
  281. <!--内容开始-->
  282. <div class="layui-tab-item" style="min-height: 540px">
  283. <form class="layui-form" action="" lay-filter="formDemo">
  284. <div class="layui-form layuimini-form" style="padding-bottom: 100px">
  285. <div class="layui-form-item layui-inline" style="width: 100%">
  286. <label class="layui-form-label" style="width: 75px">研究内容及<br>考核指标</label>
  287. <div class="layui-input-inline" style="width: 920px">
  288. <textarea id="yjnrjkhzb" name="yjnrjkhzb" class="layui-textarea" style="width: 100%;height: 510px"></textarea>
  289. </div>
  290. </div>
  291. <!-- 右侧悬浮按钮 -->
  292. <div class="right-bottom-btn">
  293. <button type="button" class="layui-btn" lay-filter="saveBtn4">
  294. <i class="layui-icon layui-icon-ok"></i>保存
  295. </button>
  296. <button class="layui-btn" lay-filter="cancleBtn">
  297. <i class="layui-icon layui-icon-close"></i>取消
  298. </button>
  299. </div>
  300. </div>
  301. </form>
  302. </div>
  303. <!--内容结束-->
  304. <!--项目预算开始-->
  305. <div class="layui-tab-item" style="min-height: 555px; padding-left: 30px; padding-right: 30px">
  306. <form class="layui-form" action="" lay-filter="formDemo">
  307. <div class="layui-form layuimini-form" style="padding-bottom: 100px">
  308. <div class="layui-form-item" style="margin-bottom: -10px">
  309. <div class="layui-inline">
  310. <label class="layui-form-label" style="width: fit-content; margin-bottom: -10px">单位:万元</label>
  311. <label class="layui-form-label" style="width: 170px"></label>
  312. </div>
  313. <div class="layui-inline">
  314. <label class="layui-form-label" style="width: 70px; margin-left: -10px">项目总预算</label>
  315. <div class="layui-input-inline" style="width: 100px">
  316. <input type="text" id="rwsys" name="rwsys" class="layui-input" th:value="${rwsys}" readonly>
  317. </div>
  318. </div>
  319. </div>
  320. <table class="layui-hide" id="currentTableId5" lay-filter="currentTableFilter5"></table>
  321. <!-- 右侧悬浮按钮 -->
  322. <div class="right-bottom-btn">
  323. <button type="button" class="layui-btn" lay-filter="saveBtn5">
  324. <input type="hidden" id="ysje_cz" name="ysje_cz" class="layui-input">
  325. <i class="layui-icon layui-icon-ok"></i>保存
  326. </button>
  327. <button class="layui-btn" lay-filter="cancleBtn">
  328. <i class="layui-icon layui-icon-close"></i>取消
  329. </button>
  330. </div>
  331. </div>
  332. </form>
  333. </div>
  334. <!--项目预算结束-->
  335. <!--出资方案开始-->
  336. <div class="layui-tab-item" style="min-height: 565px; padding-left: 30px; padding-right: 30px">
  337. <form class="layui-form" action="" lay-filter="formDemo">
  338. <div class="layuimini-form" style="padding-bottom: 100px">
  339. <div class="layui-btn-group" style="margin-bottom: -8px">
  340. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnAdd6"><i class="layui-icon"></i>新建</button>
  341. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnEdit6"><i class="layui-icon"></i>编辑</button>
  342. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnView6"><i class="layui-icon">&#xe63c;</i>查看</button>
  343. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnDelete6"><i class="layui-icon"></i>删除</button>
  344. </div>
  345. <table class="layui-hide" id="currentTableId6" lay-filter="currentTableFilter6"></table>
  346. <script type="text/html" id="currentTableBar6">
  347. <a class="layui-btn layui-btn-xs layui-btn-warm data-count-view" lay-event="view">
  348. <i class="layui-icon layui-icon-set" style="font-size: 10px;"></i>查看
  349. </a>
  350. <a class="layui-btn layui-btn-xs data-count-update" lay-event="update">
  351. <i class="layui-icon layui-icon-edit" style="font-size: 10px;"></i>编辑
  352. </a>
  353. <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delFlag">
  354. <i class="layui-icon layui-icon-delete" style="font-size: 10px;"></i>删除
  355. </a>
  356. </script>
  357. <!-- 右侧悬浮按钮 -->
  358. <div class="right-bottom-btn">
  359. <button class="layui-btn" lay-filter="cancleBtn">
  360. <i class="layui-icon layui-icon-close"></i>关闭
  361. </button>
  362. </div>
  363. </div>
  364. </form>
  365. </div>
  366. <!--出资方案结束-->
  367. <!--说明开始-->
  368. <div class="layui-tab-item" style="min-height: 540px">
  369. <form class="layui-form" action="" lay-filter="formDemo">
  370. <div class="layui-form layuimini-form" style="padding-bottom: 100px">
  371. <div class="layui-form-item layui-inline" style="width: 100%">
  372. <label class="layui-form-label" style="width: 90px">有关问题说明</label>
  373. <div class="layui-input-inline" style="width: 905px">
  374. <textarea id="ygwtsm" name="ygwtsm" class="layui-textarea" style="width: 100%;height: 510px"></textarea>
  375. </div>
  376. </div>
  377. <!-- 右侧悬浮按钮 -->
  378. <div class="right-bottom-btn">
  379. <button type="button" class="layui-btn" lay-filter="saveBtn7">
  380. <i class="layui-icon layui-icon-ok"></i>保存
  381. </button>
  382. <button class="layui-btn" lay-filter="cancleBtn">
  383. <i class="layui-icon layui-icon-close"></i>取消
  384. </button>
  385. </div>
  386. </div>
  387. </form>
  388. </div>
  389. <!--说明结束-->
  390. <!--联系方式开始-->
  391. <div class="layui-tab-item" style="min-height: 565px; padding-left: 30px; padding-right: 30px">
  392. <form class="layui-form" action="" lay-filter="formDemo">
  393. <div class="layuimini-form" style="padding-bottom: 100px">
  394. <div class="layui-btn-group" style="margin-bottom: -8px">
  395. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnAdd8"><i class="layui-icon"></i>新建</button>
  396. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnEdit8"><i class="layui-icon"></i>编辑</button>
  397. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnView8"><i class="layui-icon">&#xe63c;</i>查看</button>
  398. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnDelete8"><i class="layui-icon"></i>删除</button>
  399. </div>
  400. <table class="layui-hide" id="currentTableId8" lay-filter="currentTableFilter8"></table>
  401. <!-- 右侧悬浮按钮 -->
  402. <div class="right-bottom-btn">
  403. <button class="layui-btn" lay-filter="cancleBtn">
  404. <i class="layui-icon layui-icon-close"></i>关闭
  405. </button>
  406. </div>
  407. </div>
  408. </form>
  409. </div>
  410. <!--联系方式结束-->
  411. <!--附件开始-->
  412. <div class="layui-tab-item" style="min-height: 555px; padding-left: 30px; padding-right: 30px">
  413. <form class="layui-form" action="" lay-filter="formDemo">
  414. <div class="layuimini-form" style="padding-bottom: 100px">
  415. <input type="hidden" id="fj" name="fj" class="layui-input">
  416. <div class="layui-btn-group" style="margin-bottom: -8px">
  417. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm upload" lay-filter="upLoad" lay-data="{fileType:'project'}"><i class="layui-icon"></i>上传</button>
  418. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="deleteFile"><i class="layui-icon"></i>删除</button>
  419. <a class="layui-btn layui-btn-primary layui-btn-sm " href="/fileDownload/download" >
  420. <i class="layui-icon layui-icon-export" style="font-size: 10px;" ></i>模板下载
  421. </a>
  422. </div>
  423. <table class="layui-hide" id="currentTableId9" name="currentTableId9" lay-filter="currentTableFilter9" style="padding-top: 0px;margin-top: 0px"></table>
  424. <!-- 右侧悬浮按钮 -->
  425. <div class="right-bottom-btn">
  426. <button type="button" class="layui-btn" lay-submit lay-filter="saveBtn9">
  427. <i class="layui-icon layui-icon-ok"></i>保存
  428. </button>
  429. <button class="layui-btn" lay-filter="cancleBtn">
  430. <i class="layui-icon layui-icon-close"></i>取消
  431. </button>
  432. </div>
  433. </div>
  434. </form>
  435. </div>
  436. <!--附件结束-->
  437. </div>
  438. </div>
  439. </form>
  440. <script th:src="@{/lib/jquery-3.4.1/jquery-3.4.1.min.js}" charset="utf-8"></script>
  441. <script th:src="@{/lib/layui/layui.js}" charset="utf-8"></script>
  442. <script th:src="@{/lib/coco-message/coco-message.js}" charset="utf-8"></script>
  443. <script th:src="@{/lib/xm-select-v1.2.2/xm-select.js}" charset="utf-8"></script>
  444. <script th:src="@{/js/lay-config.js}" charset="utf-8"></script>
  445. <script type="text/javascript" th:inline="javascript">
  446. AjaxUtil.ctx = /*[[@{/}]]*/'';
  447. var ObjId = '0';
  448. var ObjName = '';
  449. var updateflag = 0;
  450. var prjMember = [];
  451. var prjCompany = [];
  452. var subTopic = [];
  453. var budgetCols = [];
  454. var dataBudget = new Array();
  455. layui.use(['form', 'table', 'treeTable', 'layCascader', 'tableSelect', 'upload'], function () {
  456. var form = layui.form,
  457. table = layui.table,
  458. laydate = layui.laydate,
  459. layer = layui.layer,
  460. upload = layui.upload,
  461. treeTable = layui.treeTable,
  462. tableSelect = layui.tableSelect,
  463. layCascader = layui.layCascader;
  464. var cascader;
  465. var initFlag = 0;
  466. var xmId = -1;
  467. //日期
  468. laydate.render({
  469. elem: '#qs',
  470. value: new Date()
  471. });
  472. laydate.render({
  473. elem: '#wc',
  474. });
  475. //监听学科分类
  476. form.on('select(xkfl)', function (data) {
  477. if(data.value == "-1") {
  478. layer.open({
  479. title: '浏览学科分类',
  480. type: 2,
  481. shade: 0.3,
  482. maxmin: true,
  483. area: [layerwidth + 'px', layerheight + 'px'],
  484. content: AjaxUtil.ctx + 'prjProject/xkfl',
  485. end: function (index) {
  486. if(ObjId != '0') {
  487. $("#" + data.elem.id).append("<option value=" + ObjId + " selected>" + ObjName + "</option>");
  488. ObjId = '0';
  489. ObjName = '';
  490. }
  491. else{
  492. $("#" + data.elem.id).val(0);
  493. }
  494. form.render('select');
  495. }
  496. });
  497. }
  498. return false;
  499. });
  500. //监听国民经济行业
  501. form.on('select(gmjjhy)', function (data) {
  502. if(data.value == "-1") {
  503. layer.open({
  504. title: '浏览国民经济行业',
  505. type: 2,
  506. shade: 0.3,
  507. maxmin: true,
  508. area: [layerwidth + 'px', layerheight + 'px'],
  509. content: AjaxUtil.ctx + 'prjProject/gmjjhy',
  510. end: function (index) {
  511. if(ObjId != '0') {
  512. $("#" + data.elem.id).append("<option value=" + ObjId + " selected>" + ObjName + "</option>");
  513. ObjId = '0';
  514. ObjName = '';
  515. }
  516. else{
  517. $("#" + data.elem.id).val("");
  518. }
  519. form.render('select');
  520. }
  521. });
  522. }
  523. return false;
  524. });
  525. //监听可研报告
  526. form.on('select(kybg)', function (data) {
  527. if($("#xmlx").val() == undefined || $("#xmlx").val() == '') {
  528. Message.error("请先选择项目类型", 1000);
  529. return false;
  530. }
  531. var len = $("#kybg")[0].length;
  532. while(len > 2)
  533. $("#kybg")[0].options[--len].remove();
  534. if(data.value == "") {
  535. $("#kybg").val(0);
  536. $("#bm").val('');
  537. $("#kybgmc").val('');
  538. form.render();
  539. }
  540. if(data.value == "-1") {
  541. parent.layer.open({
  542. title: '浏览可研报告',
  543. type: 2,
  544. shade: 0.3,
  545. maxmin: true,
  546. area: ['1200px', '750px'],
  547. content: AjaxUtil.ctx + 'prjProject/init_kybg?xmlx=' + $("#xmlx").val(),
  548. end: function (obj) {
  549. var kybg = localStorage.getItem("kybg");
  550. var updateflag = localStorage.getItem("updateflag");
  551. if(updateflag == "1") {
  552. var kybgmc = localStorage.getItem("kybgmc");
  553. $("#kybg").append("<option value=" + kybg + " selected>" + kybgmc + "</option>");
  554. $("#bm").val(kybg);
  555. $("#kybgmc").val(kybgmc);
  556. }
  557. else{
  558. $("#kybg").val(0);
  559. $("#bm").val('');
  560. $("#kybgmc").val('');
  561. }
  562. form.render();
  563. }
  564. });
  565. }
  566. return false;
  567. });
  568. // 用于存放表格数据
  569. var dataMember = new Array();
  570. //主要完成人
  571. var currTable1 = table.render({
  572. elem: '#currentTableId1',
  573. data: dataMember,
  574. cols: [
  575. [
  576. {type: "checkbox"},
  577. {type: 'numbers', align: 'center'},
  578. {field: 'ryxm', width: '10%', title: '人员', align: 'left'},
  579. {field: 'xmjsmc', width: '15%', title: '项目角色', align: 'left'},
  580. {field: 'bxmfg', width: '20%', title: '本项目分工', align: 'left'},
  581. {field: 'trgzzys', width: '15%', title: '投入工作总月数', align: 'center'},
  582. {field: 'sxbh', width: '10%', title: '顺序编号', align: 'center'},
  583. {field: 'dwmc', title: '单位', align: 'left'}
  584. ]
  585. ],
  586. autoSort: true,
  587. limit: Number.MAX_VALUE,
  588. initSort: {
  589. field: 'sxbh', //排序字段
  590. type: 'asc' //排序方式:desc 降序,asc 升序
  591. }
  592. });
  593. // 监听新建按钮(主要完成人)
  594. $("button[lay-filter='subAdd1']").click(function(){
  595. layer.open({
  596. title: '新建项目人员',
  597. type: 2,
  598. maxmin: true,
  599. shade: 0.2,
  600. area: ['820px', layerheight + 'px'],
  601. content: AjaxUtil.ctx + 'prjMember/forAdd',
  602. end: function (index) {
  603. if (updateflag == 1) {
  604. updateflag = 0;
  605. var oldData = table.cache["currentTableId1"];
  606. for (let item of oldData) {
  607. if (item.ry === prjMember.ry) {
  608. Message.warning("该人员已在主要完成人列表中,如需修改,请选中后编辑!", 2000);
  609. return;
  610. }
  611. }
  612. if(prjMember.dw == undefined)
  613. prjMember.dw = "";
  614. if(prjMember.dwlx == undefined)
  615. prjMember.dwlx = "";
  616. if(prjMember.zc == undefined)
  617. prjMember.zc = "";
  618. if(prjMember.xl == undefined)
  619. prjMember.xl = "";
  620. var item = {
  621. "ry": prjMember.ry,
  622. "ryxm": prjMember.ryxm,
  623. "dw": prjMember.dw,
  624. "dwmc": prjMember.dwmc,
  625. "dwlx": prjMember.dwlx,
  626. "dwlxmc": prjMember.dwlxmc,
  627. "zc": prjMember.zc,
  628. "zcmc": prjMember.zcmc,
  629. "xl": prjMember.xl,
  630. "xlmc": prjMember.xlmc,
  631. "xmjs": prjMember.xmjs,
  632. "xmjsmc": prjMember.xmjsmc,
  633. "bxmfg": prjMember.bxmfg,
  634. "sxbh": prjMember.sxbh,
  635. "trgzzys": prjMember.trgzzys
  636. };
  637. //刷新表格
  638. oldData.push(item);
  639. table.reload('currentTableId1',{
  640. data : oldData
  641. });
  642. var gjzc = 0, zjzc = 0, cjzc = 0, yjs = 0;
  643. for (let item of oldData) {
  644. if (item.zc.substring(2, 3) == 1 || item.zc.substring(2, 3) == 2)
  645. gjzc++;
  646. else if (item.zc.substring(2, 3) == 2)
  647. zjzc++;
  648. else if (item.zc.substring(2, 3) == 3)
  649. cjzc++;
  650. if (item.xlmc.indexOf("研究生") > -1)
  651. yjs++;
  652. }
  653. //更新统计信息
  654. $("#zrs").val(oldData.length);
  655. $("#gjzc").val(gjzc);
  656. $("#zjzc").val(zjzc);
  657. $("#cjzc").val(cjzc);
  658. $("#yjs").val(yjs);
  659. }
  660. }
  661. });
  662. });
  663. // 监听编辑按钮(主要完成人)
  664. $("button[lay-filter='subEdit1']").click(function(){
  665. var members = table.cache["currentTableId1"];
  666. if(members.length == 0)
  667. return;
  668. var checkStatus = table.checkStatus('currentTableId1')
  669. ,data = checkStatus.data;
  670. if (data == null || data.length === 0) {
  671. Message.warning("请选择要编辑的项目人员!", 1500);
  672. } else if(data.length > 1) {
  673. Message.warning("请选择一条记录进行编辑操作!", 1500);
  674. } else {
  675. prjMember = {
  676. "ry": data[0].ry,
  677. "ryxm": data[0].ryxm,
  678. "dw": data[0].dw,
  679. "dwmc": data[0].dwmc,
  680. "dwlx": data[0].dwlx,
  681. "dwlxmc": data[0].dwlxmc,
  682. "zc": data[0].zc,
  683. "zcmc": data[0].zcmc,
  684. "xl": data[0].xl,
  685. "xlmc": data[0].xlmc,
  686. "xmjs": data[0].xmjs,
  687. "xmjsmc": data[0].xmjsmc,
  688. "bxmfg": data[0].bxmfg,
  689. "sxbh": data[0].sxbh,
  690. "trgzzys": data[0].trgzzys
  691. };
  692. layer.open({
  693. title: '编辑项目人员',
  694. type: 2,
  695. maxmin: true,
  696. shade: 0.2,
  697. area: ['820px', layerheight + 'px'],
  698. content: AjaxUtil.ctx + 'prjMember/forUpdate',
  699. end: function (index) {
  700. if (updateflag == 1) {
  701. updateflag = 0;
  702. var currMember = {
  703. "ry": prjMember.ry,
  704. "ryxm": prjMember.ryxm,
  705. "dw": prjMember.dw,
  706. "dwmc": prjMember.dwmc,
  707. "dwlx": prjMember.dwlx,
  708. "dwlxmc": prjMember.dwlxmc,
  709. "zc": prjMember.zc,
  710. "zcmc": prjMember.zcmc,
  711. "xl": prjMember.xl,
  712. "xlmc": prjMember.xlmc,
  713. "xmjs": prjMember.xmjs,
  714. "xmjsmc": prjMember.xmjsmc,
  715. "bxmfg": prjMember.bxmfg,
  716. "sxbh": prjMember.sxbh,
  717. "trgzzys": prjMember.trgzzys
  718. };
  719. var oldData = table.cache["currentTableId1"];
  720. for (var i = 0; i < oldData.length; i++) {
  721. var item = oldData[i];
  722. if (item.LAY_CHECKED) {//条件:选中
  723. // oldData.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  724. oldData[i] = currMember;
  725. break;
  726. }
  727. }
  728. var currData = oldData;
  729. // currData.push(currMember);
  730. table.reload('currentTableId1', {
  731. data: currData
  732. });
  733. }
  734. }
  735. });
  736. }
  737. });
  738. // 监听查看按钮(主要完成人)
  739. $("button[lay-filter='subView1']").click(function(){
  740. var members = table.cache["currentTableId1"];
  741. if(members.length == 0)
  742. return;
  743. var checkStatus = table.checkStatus('currentTableId1')
  744. ,data = checkStatus.data;
  745. if (data == null || data.length === 0) {
  746. Message.warning("请选择要浏览的项目人员!", 1500);
  747. } else if(data.length > 1) {
  748. Message.warning("请选择一条记录进行浏览!", 1500);
  749. } else {
  750. layer.open({
  751. title: '浏览项目人员',
  752. type: 2,
  753. maxmin: true,
  754. shade: 0.2,
  755. area: ['820px', layerheight + 'px'],
  756. content: AjaxUtil.ctx + 'prjMember/forView',
  757. end: function (index) {
  758. }
  759. });
  760. }
  761. });
  762. // 监听删除按钮(主要完成人)
  763. $("button[lay-filter='subDelete1']").click(function(){
  764. var members = table.cache["currentTableId1"];
  765. if(members.length == 0)
  766. return;
  767. var checkStatus = table.checkStatus('currentTableId1')
  768. ,data = checkStatus.data;
  769. if (data == null || data.length == 0) {
  770. Message.warning("请选择要删除的项目人员!", 1000);
  771. return;
  772. }
  773. var gjzc = 0, zjzc = 0, cjzc = 0, yjs = 0;
  774. var oldData = table.cache["currentTableId1"];
  775. for (var i = 0; i < oldData.length; i++) {
  776. var item = oldData[i];
  777. if (item.LAY_CHECKED) {//条件:选中
  778. oldData.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  779. i--;
  780. }
  781. }
  782. var currData = oldData;
  783. table.reload('currentTableId1', {
  784. data: currData
  785. });
  786. for(let item of currData) {
  787. if (item.zc.substring(2, 3) == 1 || item.zc.substring(2, 3) == 2)
  788. gjzc++;
  789. else if (item.zc.substring(2, 3) == 2)
  790. zjzc++;
  791. else if (item.zc.substring(2, 3) == 3)
  792. cjzc++;
  793. if (item.xlmc.indexOf("研究生") > -1)
  794. yjs++;
  795. }
  796. //更新统计信息
  797. $("#zrs").val(currData.length);
  798. $("#gjzc").val(gjzc);
  799. $("#zjzc").val(zjzc);
  800. $("#cjzc").val(cjzc);
  801. $("#yjs").val(yjs);
  802. });
  803. var dataCompany=new Array();
  804. //主要完成单位
  805. var currTable2 = table.render({
  806. elem: '#currentTableId2',
  807. data: dataCompany,
  808. cols: [
  809. [
  810. {type: "checkbox"},
  811. {type: 'numbers', align: 'center'},
  812. {field: 'dwmc', width: '30%', title: '单位', align: 'left'},
  813. {field: 'dwqc', width: '30%', title: '单位全称', align: 'left'},
  814. {field: 'sxbh', width: '10%', title: '顺序编号', align: 'center'},
  815. {field: 'lxrxm', width: '15%', title: '联系人', align: 'left'},
  816. {field: 'sfzyzfmc', width: '15%', title: '是否转移支付', align: 'center'}
  817. ]
  818. ]
  819. });
  820. // 监听新建按钮(主要完成单位)
  821. $("button[lay-filter='subAdd2']").click(function(){
  822. layer.open({
  823. title: '新建项目单位',
  824. type: 2,
  825. maxmin: true,
  826. shade: 0.2,
  827. area: ['820px', layerheight + 'px'],
  828. content: AjaxUtil.ctx + 'prjCompletecompany/forAdd',
  829. end: function (index) {
  830. if (updateflag == 1) {
  831. updateflag = 0;
  832. var oldData = table.cache["currentTableId2"];
  833. for (let item of oldData) {
  834. if (item.dw === prjCompany.dw) {
  835. Message.warning("该单位已在主要完成单位列表中,如需修改,请选中后编辑!", 2000);
  836. return;
  837. }
  838. }
  839. if(prjCompany.sfzyzf == undefined)
  840. prjCompany.sfzyzf = 0;
  841. else
  842. prjCompany.sfzyzf = 1;
  843. var sfzyzfmc = "否";
  844. if(prjCompany.sfzyzf == 1)
  845. sfzyzfmc = "是";
  846. var item = {
  847. "dw": prjCompany.dw,
  848. "dwmc": prjCompany.dwmc,
  849. "dwqc": prjCompany.dwqc,
  850. "sxbh": prjCompany.sxbh,
  851. "lxr": prjCompany.lxr,
  852. "lxrxm": prjCompany.lxrxm,
  853. "sfzyzf": prjCompany.sfzyzf,
  854. "sfzyzfmc": sfzyzfmc
  855. };
  856. //刷新表格
  857. oldData.push(item);
  858. table.reload('currentTableId2',{
  859. data : oldData
  860. });
  861. }
  862. }
  863. });
  864. });
  865. // 监听编辑按钮(主要完成单位)
  866. $("button[lay-filter='subEdit2']").click(function(){
  867. var companys = table.cache["currentTableId2"];
  868. if(companys.length == 0)
  869. return;
  870. var checkStatus = table.checkStatus('currentTableId2')
  871. ,data = checkStatus.data;
  872. if (data == null || data.length === 0) {
  873. Message.warning("请选择要编辑的单位!", 1500);
  874. } else if(data.length > 1) {
  875. Message.warning("请选择一条记录进行编辑操作!", 1500);
  876. } else {
  877. prjCompany = {
  878. "dw": data[0].dw,
  879. "dwmc": data[0].dwmc,
  880. "dwqc": data[0].dwqc,
  881. "sxbh": data[0].sxbh,
  882. "lxr": data[0].lxr,
  883. "lxrxm": data[0].lxrxm,
  884. "sfzyzf": data[0].sfzyzf
  885. };
  886. layer.open({
  887. title: '编辑项目单位',
  888. type: 2,
  889. maxmin: true,
  890. shade: 0.2,
  891. area: ['820px', layerheight + 'px'],
  892. content: AjaxUtil.ctx + 'prjCompletecompany/forUpdate',
  893. end: function (index) {
  894. if (updateflag == 1) {
  895. updateflag = 0;
  896. if(prjCompany.sfzyzf == undefined)
  897. prjCompany.sfzyzf = 0;
  898. else
  899. prjCompany.sfzyzf = 1;
  900. var sfzyzfmc = "否";
  901. if(prjCompany.sfzyzf == 1)
  902. sfzyzfmc = "是";
  903. var currCompany = {
  904. "dw": prjCompany.dw,
  905. "dwmc": prjCompany.dwmc,
  906. "dwqc": prjCompany.dwqc,
  907. "sxbh": prjCompany.sxbh,
  908. "lxr": prjCompany.lxr,
  909. "lxrxm": prjCompany.lxrxm,
  910. "sfzyzf": prjCompany.sfzyzf,
  911. "sfzyzfmc": sfzyzfmc
  912. };
  913. var oldData = table.cache["currentTableId2"];
  914. for (var i = 0; i < oldData.length; i++) {
  915. var item = oldData[i];
  916. if (item.LAY_CHECKED) {//条件:选中
  917. // oldData.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  918. oldData[i] = currCompany;
  919. break;
  920. }
  921. }
  922. //刷新表格
  923. var currData = oldData;
  924. // currData.push(currCompany);
  925. table.reload('currentTableId2', {
  926. data: currData
  927. });
  928. }
  929. }
  930. });
  931. }
  932. });
  933. // 监听查看按钮(主要完成单位)
  934. $("button[lay-filter='subView2']").click(function(){
  935. var companys = table.cache["currentTableId2"];
  936. if(companys.length == 0)
  937. return;
  938. var checkStatus = table.checkStatus('currentTableId2')
  939. ,data = checkStatus.data;
  940. if (data == null || data.length === 0) {
  941. Message.warning("请选择要浏览的单位!", 1500);
  942. } else if(data.length > 1) {
  943. Message.warning("请选择一条记录进行浏览!", 1500);
  944. } else {
  945. prjCompany = {
  946. "dw": data[0].dw,
  947. "dwmc": data[0].dwmc,
  948. "dwqc": data[0].dwqc,
  949. "sxbh": data[0].sxbh,
  950. "lxr": data[0].lxr,
  951. "lxrxm": data[0].lxrxm,
  952. "sfzyzf": data[0].sfzyzf
  953. };
  954. layer.open({
  955. title: '浏览完成单位',
  956. type: 2,
  957. maxmin: true,
  958. shade: 0.2,
  959. area: ['820px', layerheight + 'px'],
  960. content: AjaxUtil.ctx + 'prjCompletecompany/forView'
  961. });
  962. }
  963. });
  964. // 监听删除按钮(主要完成单位)
  965. $("button[lay-filter='subDelete2']").click(function(){
  966. var companys = table.cache["currentTableId2"];
  967. if(companys.length == 0)
  968. return;
  969. var checkStatus = table.checkStatus('currentTableId2')
  970. ,data = checkStatus.data;
  971. if (data == null || data.length === 0) {
  972. Message.warning("请选择要删除的完成单位!", 1000);
  973. return;
  974. }
  975. var oldData = table.cache["currentTableId2"];
  976. for (var i = 0; i < oldData.length; i++) {
  977. var item = oldData[i];
  978. if (item.LAY_CHECKED) {//条件:选中
  979. if(i != oldData.length-1) {
  980. Message.warning("完成单位和项目预算关联,只能从最后一项删除!", 2000);
  981. return;
  982. }
  983. oldData.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  984. i--;
  985. }
  986. }
  987. var currData = oldData;
  988. table.reload('currentTableId2', {
  989. data: currData
  990. });
  991. });
  992. // //所属部门
  993. // var index = layer.load(0, {shade: 0.1});
  994. // AjaxUtil.get({
  995. // url: AjaxUtil.ctx + 'deptinfo/list',
  996. // success: function (res) {
  997. // var datalist = [];
  998. // for (let item of res.data) {
  999. // item.value = item.deptId;
  1000. // item.label = item.deptName;
  1001. // datalist.push(item);
  1002. // }
  1003. // // 扁平数据转树
  1004. // var options = arrayToTree(datalist, "0");
  1005. //
  1006. // // 初始化cascader实例
  1007. // cascader = layCascader({
  1008. // elem: '#ssbmmc',
  1009. // clearable: true,
  1010. // showAllLevels: false, // 配置仅显示最后一级
  1011. // props: {
  1012. // checkStrictly: true // 配置选择任意一级选项
  1013. // },
  1014. // options: options
  1015. // });
  1016. //
  1017. // // 监听cascader变化
  1018. // cascader.changeEvent(function (value, node) {
  1019. // // 主动关闭面板
  1020. // cascader.close();
  1021. // $("#ssbm").val(value);
  1022. // $("#ssbmmc").val(node.data.label);
  1023. // });
  1024. // layer.close(index);
  1025. // },
  1026. // error: function (error) {
  1027. // Message.error('获取部门信息失败!', 1000);
  1028. // layer.close(index);
  1029. // }
  1030. // });
  1031. //电科院负责人
  1032. tableSelect.render({
  1033. elem: '#dkyfzrxm',
  1034. checkedKey: 'id',
  1035. searchKey: 'xm',
  1036. searchPlaceholder: '搜索姓名',
  1037. table: {
  1038. url: AjaxUtil.ctx + 'basePerson/rylist',
  1039. cols: [
  1040. [
  1041. {type: "checkbox", fixed: 'left'},
  1042. {type: 'numbers', align: 'center'},
  1043. {field: 'xm', width: '15%', title: '姓名', align: 'left'},
  1044. {field: 'dwmc', title: '公司/单位', align: 'left'}
  1045. ]
  1046. ]
  1047. },
  1048. done: function (elem, data) {
  1049. var NEWJSON = [];
  1050. var NEWJSON1 = [];
  1051. layui.each(data.data, function (index, item) {
  1052. NEWJSON.push(item.xm);
  1053. NEWJSON1.push(item.id);
  1054. });
  1055. elem.val(NEWJSON.join(","));
  1056. $("#dkyfzr").val(NEWJSON1.join(","));
  1057. }
  1058. });
  1059. // 监听确认按钮(基本信息)
  1060. form.on('submit(saveBtn1)', function (data) {
  1061. var qsrq = document.getElementById('qs').value;
  1062. var jsrq = document.getElementById('wc').value;
  1063. var sd=new Date(qsrq);
  1064. var ed=new Date(jsrq);
  1065. if(sd>ed)
  1066. {
  1067. Message.warning("起始日期必须小于结束日期", 1500);
  1068. return ;
  1069. }
  1070. var url = AjaxUtil.ctx + "prjProject/doUpdateNormal";
  1071. if(xmId == -1)
  1072. url = AjaxUtil.ctx + "prjProject/doAddNormal";
  1073. //基本信息
  1074. AjaxUtil.post({
  1075. url: url,
  1076. data: data.field,
  1077. success: function (res) {
  1078. if (res.code === 0) {
  1079. Message.success(1000, res.message, function ()
  1080. {
  1081. parent.setUpdateFlag();
  1082. //任务书Id
  1083. if(xmId == -1) {
  1084. xmId = res.data.id;
  1085. $("#id").val(xmId);
  1086. }
  1087. //主要完成人
  1088. var members = [];
  1089. var oldMembers = table.cache["currentTableId1"];
  1090. for (const item of oldMembers) {
  1091. var member = {
  1092. "xm": xmId,
  1093. "ry": item.ry,
  1094. "dw": item.dw,
  1095. "ryxm": item.ryxm,
  1096. "dwmc": item.dwmc,
  1097. "dwlx": item.dwlx,
  1098. "xmjs": item.xmjs,
  1099. "sxbh": item.sxbh,
  1100. "zc": item.zc,
  1101. "xl": item.xl,
  1102. "trgzzys": item.trgzzys,
  1103. "bxmfg": item.bxmfg
  1104. };
  1105. members.push(member);
  1106. }
  1107. AjaxUtil.post({
  1108. url: AjaxUtil.ctx + "prjMember/batchInsert/" + xmId,
  1109. contentType: "application/json",
  1110. data: JSON.stringify(members),
  1111. success: function (res) {
  1112. if (res.code === 0) {
  1113. // Message.success(1000, res.message, function () {
  1114. //
  1115. // });
  1116. } else {
  1117. // Message.error(res.message, 1000);
  1118. }
  1119. },
  1120. error: function (error) {
  1121. }
  1122. });
  1123. //主要完成单位
  1124. var companys = [];
  1125. var oldCompanys = table.cache["currentTableId2"];
  1126. for (let item of oldCompanys) {
  1127. var company = {
  1128. "xm": xmId,
  1129. "dw": item.dw,
  1130. "dwmc": item.dwmc,
  1131. "dwqc": item.dwqc,
  1132. "lxr": item.lxr,
  1133. "lxrxm": item.lxrxm,
  1134. "sfzyzf": item.sfzyzf
  1135. };
  1136. companys.push(company);
  1137. }
  1138. AjaxUtil.post({
  1139. url: AjaxUtil.ctx + "prjCompletecompany/batchInsert/" + xmId,
  1140. contentType: "application/json",
  1141. data: JSON.stringify(companys),
  1142. success: function (res) {
  1143. dataCompany = companys;
  1144. $.ajax({
  1145. url: AjaxUtil.ctx + 'prjBudget/list/' + xmId,
  1146. type: "post",
  1147. async: false,
  1148. dataType: "json",
  1149. success: function (result) {
  1150. dataBudget = result;
  1151. }
  1152. });
  1153. setPrjBudge();
  1154. if (res.code === 0) {
  1155. // Message.success(1000, res.message, function () {
  1156. //
  1157. // });
  1158. } else {
  1159. // Message.error(res.message, 1000);
  1160. }
  1161. },
  1162. error: function (error) {
  1163. }
  1164. });
  1165. });
  1166. } else {
  1167. Message.error(res.message, 1000);
  1168. }
  1169. },
  1170. fail: function (res) {
  1171. layer.close(index);
  1172. Message.error(res.message, 1500);
  1173. },
  1174. error: function (error) {
  1175. }
  1176. });
  1177. return false;
  1178. });
  1179. // 监听确认按钮(填写说明)
  1180. $("button[lay-filter='saveBtn2']").click(function() {
  1181. if(xmId == -1) {
  1182. Message.error("请先创建项目任务书,然后再保存填写说明",2000);
  1183. } else {
  1184. var project = {
  1185. "id": xmId,
  1186. "txsm": $("#txsm").val()
  1187. }
  1188. var index = layer.load(0, {shade: 0.1});
  1189. AjaxUtil.post({
  1190. url: AjaxUtil.ctx + "prjProject/doUpdateTxsm",
  1191. contentType: "application/json",
  1192. data: JSON.stringify(project),
  1193. success: function (res) {
  1194. if (res.code === 0) {
  1195. Message.success(1000, res.message, function () {
  1196. parent.setUpdateFlag();
  1197. });
  1198. } else {
  1199. Message.error(res.message, 1000);
  1200. }
  1201. layer.close(index);
  1202. },
  1203. error: function (error) {
  1204. layer.close(index);
  1205. }
  1206. });
  1207. }
  1208. });
  1209. //子课题
  1210. var dataSubtopic = new Array();
  1211. function freshSubtopic() {
  1212. $.ajax({
  1213. url: AjaxUtil.ctx + 'prjSubtopic/list/' + xmId,
  1214. type: "post",
  1215. async: false,
  1216. dataType: "json",
  1217. success: function(result) {
  1218. dataSubtopic = result.data.rows;
  1219. //年度预算总和
  1220. document.getElementById('rwsys').value = result.data.sum;
  1221. document.getElementById('rwsys2').value = result.data.sum;
  1222. }
  1223. });
  1224. table.reload('currentTableId3',{
  1225. data : dataSubtopic
  1226. });
  1227. }
  1228. var currTable3 = table.render({
  1229. elem: '#currentTableId3',
  1230. data: dataSubtopic,
  1231. cols: [
  1232. [
  1233. {type: "checkbox"},
  1234. // {type: 'numbers', align: 'center'},
  1235. {field: 'xh', title: '序号', width: '8%', align: 'center'},
  1236. {field: 'ktmc', title: '课题名称', width: '30%'},
  1237. {field: 'fzrxm', title: '负责人', width: '10%'},
  1238. {field: 'fzrszdwmc', title: '负责人所在单位', width: '25%'},
  1239. {field: 'qssj', title: '起始时间', width: '12%', align: 'center'},
  1240. {field: 'jssj', title: '结束时间', width: '12%', align: 'center'}
  1241. // {title: '操作', toolbar: '#currentTableBar3', align: 'center', fixed: 'right'}
  1242. ]
  1243. ],
  1244. autoSort: false,
  1245. limits: [10, 15, 20, 25, 50, 100],
  1246. limit: 10,
  1247. page: true,
  1248. skin: 'grid',
  1249. parseData: function(res){ //res 即为原始返回的数据
  1250. //年度预算总和
  1251. document.getElementById('rwsys').value = res.data.sum;
  1252. return {
  1253. "code": res.code, //解析接口状态
  1254. "msg": res.message, //解析提示文本
  1255. "count": res.data.total, //解析数据长度
  1256. "data": res.data.rows //解析数据列表
  1257. };
  1258. }
  1259. });
  1260. // 监听新建按钮(子课题)
  1261. $("button[lay-filter='btnAdd3']").click(function() {
  1262. if(xmId == -1) {
  1263. Message.error("请先创建项目任务书,然后再添加子课题",2000);
  1264. } else {
  1265. layer.open({
  1266. title: '新建子课题',
  1267. type: 2,
  1268. maxmin: true,
  1269. shade: 0.2,
  1270. area: ['1020px', layerheight + 'px'],
  1271. content: AjaxUtil.ctx + 'prjSubtopic/forAdd/' + xmId,
  1272. end: function (index) {
  1273. // 重载表格
  1274. if(updateflag == 1)
  1275. freshSubtopic();
  1276. updateflag =0;
  1277. layer.close(index);
  1278. }
  1279. });
  1280. }
  1281. });
  1282. // 监听编辑按钮(子课题)
  1283. $("button[lay-filter='btnEdit3']").click(function(){
  1284. var subTopics = table.cache["currentTableId3"];
  1285. if(subTopics.length == 0)
  1286. return;
  1287. var checkStatus = table.checkStatus('currentTableId3')
  1288. ,data = checkStatus.data;
  1289. if (data == null || data.length === 0) {
  1290. Message.warning("请选择要编辑的子课题!", 1500);
  1291. } else if(data.length > 1) {
  1292. Message.warning("请选择一条记录进行编辑!", 1500);
  1293. } else {
  1294. layer.open({
  1295. title: '编辑子课题',
  1296. type: 2,
  1297. maxmin: true,
  1298. shade: 0.2,
  1299. area: ['1030px', layerheight + 'px'],
  1300. content: AjaxUtil.ctx + 'prjSubtopic/forUpdate/' + data[0].id,
  1301. end: function (index) {
  1302. // 重载表格
  1303. if(updateflag == 1)
  1304. freshSubtopic();
  1305. updateflag = 0;
  1306. layer.close(index);
  1307. }
  1308. });
  1309. }
  1310. });
  1311. // 监听查看按钮(子课题)
  1312. $("button[lay-filter='btnView3']").click(function(){
  1313. var subTopics = table.cache["currentTableId3"];
  1314. if(subTopics.length == 0)
  1315. return;
  1316. var checkStatus = table.checkStatus('currentTableId3')
  1317. ,data = checkStatus.data;
  1318. if (data == null || data.length === 0) {
  1319. Message.warning("请选择要浏览的子课题!", 1500);
  1320. } else if(data.length > 1) {
  1321. Message.warning("请选择一条记录进行浏览!", 1500);
  1322. } else {
  1323. layer.open({
  1324. title: '浏览子课题',
  1325. type: 2,
  1326. maxmin: true,
  1327. shade: 0.2,
  1328. area: ['1030px', layerheight + 'px'],
  1329. content: AjaxUtil.ctx + 'prjSubtopic/forView/' + data[0].id,
  1330. end: function () {
  1331. layer.close(index);
  1332. }
  1333. });
  1334. }
  1335. });
  1336. // 监听删除按钮(子课题)
  1337. $("button[lay-filter='btnDelete3']").click(function(){
  1338. var subTopics = table.cache["currentTableId3"];
  1339. if(subTopics.length == 0)
  1340. return;
  1341. var checkStatus = table.checkStatus('currentTableId3')
  1342. ,data = checkStatus.data;
  1343. if (data == null || data.length === 0) {
  1344. Message.warning("请选择要删除的子课题!", 1500);
  1345. } else {
  1346. layer.confirm('确定批量删除子课题吗?', function (index) {
  1347. layer.close(index);
  1348. AjaxUtil.post({
  1349. url: AjaxUtil.ctx + "prjSubtopic/batchDelete",
  1350. contentType: "application/json",
  1351. data: JSON.stringify(data),
  1352. success: function (res) {
  1353. if (res.code === 0) {
  1354. Message.success(1000, res.message, function () {
  1355. // 重载表格
  1356. freshSubtopic();
  1357. });
  1358. } else {
  1359. Message.error(res.message, 1000);
  1360. }
  1361. },
  1362. error: function (error) {
  1363. }
  1364. });
  1365. });
  1366. }
  1367. });
  1368. // 监听行工具事件(子课题)
  1369. table.on('tool(currentTableFilter3)', function (obj) {
  1370. var data = obj.data;
  1371. if (obj.event === 'view') {
  1372. layer.open({
  1373. title: '浏览子课题',
  1374. type: 2,
  1375. maxmin: true,
  1376. shade: 0.2,
  1377. area: ['1030px', layerheight + 'px'],
  1378. content: AjaxUtil.ctx + 'prjSubtopic/forView/' + data.id,
  1379. end: function () {
  1380. layer.close(index);
  1381. }
  1382. });
  1383. } else if (obj.event === 'update') {
  1384. layer.open({
  1385. title: '编辑子课题',
  1386. type: 2,
  1387. maxmin: true,
  1388. shade: 0.2,
  1389. area: ['1030px', layerheight + 'px'],
  1390. content: AjaxUtil.ctx + 'prjSubtopic/forUpdate/' + data.id,
  1391. end: function (index) {
  1392. // 重载表格
  1393. if(updateflag == 1)
  1394. freshSubtopic();
  1395. updateflag = 0;
  1396. }
  1397. });
  1398. } else if (obj.event === 'delFlag') {
  1399. layer.confirm('确定删除该课题吗?', function (index) {
  1400. AjaxUtil.get({
  1401. url: AjaxUtil.ctx + "prjSubtopic/delete/" + data.id,
  1402. success: function (res) {
  1403. if (res.code === 0) {
  1404. Message.success(1000, res.message, function () {
  1405. // 重载表格
  1406. freshSubtopic();
  1407. });
  1408. } else {
  1409. Message.error(res.message, 1000);
  1410. }
  1411. },
  1412. error: function (error) {
  1413. }
  1414. });
  1415. });
  1416. }
  1417. return false;
  1418. });
  1419. //双击(子课题)
  1420. table.on('rowDouble(currentTableFilter3)', function (obj) {
  1421. var data = obj.data;
  1422. layer.open({
  1423. title: '浏览子课题',
  1424. type: 2,
  1425. maxmin: true,
  1426. shade: 0.2,
  1427. area: ['1030px', layerheight + 'px'],
  1428. content: AjaxUtil.ctx + 'prjSubtopic/forView/' + data.id,
  1429. end: function () {
  1430. layer.close(index);
  1431. }
  1432. });
  1433. });
  1434. // 监听确认按钮(内容)
  1435. $("button[lay-filter='saveBtn4']").click(function() {
  1436. if(xmId == -1) {
  1437. Message.error("请先创建项目任务书,然后再保存研究内容及考核指标",2000);
  1438. } else {
  1439. var project = {
  1440. "id": xmId,
  1441. "yjnrjkhzb": $("#yjnrjkhzb").val()
  1442. }
  1443. var index = layer.load(0, {shade: 0.1});
  1444. AjaxUtil.post({
  1445. url: AjaxUtil.ctx + "prjProject/updateContent",
  1446. contentType: "application/json",
  1447. data: JSON.stringify(project),
  1448. success: function (res) {
  1449. if (res.code === 0) {
  1450. Message.success(1000, res.message, function () {
  1451. parent.setUpdateFlag();
  1452. });
  1453. } else {
  1454. Message.error(res.message, 1000);
  1455. }
  1456. layer.close(index);
  1457. },
  1458. error: function (error) {
  1459. layer.close(index);
  1460. }
  1461. });
  1462. }
  1463. });
  1464. //项目预算列标题
  1465. function getBudgetCols() {
  1466. budgetCols = [];
  1467. budgetCols.push({type: 'numbers', width: '3%'});
  1468. budgetCols.push({field: 'mc', width: '22%', title: '名称'});
  1469. // budgetCols.push({field: 'px', width: '8%', title: '排序'});
  1470. //budgetCols.push({field: 'nf', width: '8%', title: '年份'});
  1471. budgetCols.push({field: 'ysje', width: '10%', title: '预算金额(万元)'});
  1472. for (var i = 0; i < dataCompany.length; i++) {
  1473. budgetCols.push({field: "dw"+(i+1), width: '10%', title: dataCompany[i].dwmc+'(万元)', edit: 'number'})
  1474. if(i >= 9)
  1475. break;
  1476. };
  1477. //budgetCols.push({field: 'hjbm', width: '10%', title: '合计编码'});
  1478. //budgetCols.push({field: 'bz', width: '10%', title: '备注'});
  1479. }
  1480. //项目预算
  1481. var insTb5;
  1482. function loadTreetable() {
  1483. insTb5 = treeTable.render({
  1484. elem: '#currentTableId5',
  1485. data: dataBudget,
  1486. skin: 'grid',
  1487. tree: {
  1488. treeColIndex: 1,
  1489. treeSpid: "", //最上级的父级id
  1490. iconIndex: 1, // 折叠图标显示在第几列
  1491. isPidData: true,// 是否是id、pid形式数据
  1492. idName: 'bm', // id字段名称
  1493. pidName: 'fj', // pid字段名称
  1494. arrowType: 'arrow2',
  1495. getIcon: 'ew-tree-icon-style2',
  1496. openName: 'bm'
  1497. },
  1498. treeDefaultClose: false,
  1499. page: false,
  1500. // toolbar: '#toolbarDemo',
  1501. cols: [budgetCols]
  1502. });
  1503. }
  1504. function setPrjBudge() {
  1505. getBudgetCols();
  1506. loadTreetable();
  1507. }
  1508. //加载预算项
  1509. setPrjBudge();
  1510. // 监听单元格编辑
  1511. treeTable.on('edit(currentTableId5)', function(obj){
  1512. var value = obj.value,
  1513. item = obj.data,
  1514. dw = obj.field;
  1515. if(item.children == undefined)
  1516. {
  1517. //当前行预算
  1518. setCurBudget(item.bm, dw, value);
  1519. //父级预算
  1520. setFjBudget(item.fj);
  1521. }
  1522. loadTreetable();
  1523. });
  1524. //当前行预算
  1525. function setCurBudget(bm, dw, value) {
  1526. for(var i = 0; i < dataBudget.length; i++) {
  1527. if(bm == dataBudget[i].bm)
  1528. {
  1529. value = parseFloat(value);
  1530. if(isNaN(value))
  1531. value = null;
  1532. var rwsys = $("#rwsys").val();
  1533. // if (value !== null && value > rwsys * 0.2) {
  1534. // alert("不能超过任务书预算的20%!");
  1535. // return; // 返回,不进行后续处理
  1536. // }
  1537. //当前单元格
  1538. if(dw == "dw1") {
  1539. dataBudget[i].dw1 = value;
  1540. } else if(dw == "dw2") {
  1541. dataBudget[i].dw2 = value;
  1542. } else if(dw == "dw3") {
  1543. dataBudget[i].dw3 = value;
  1544. } else if(dw == "dw4") {
  1545. dataBudget[i].dw4 = value;
  1546. } else if(dw == "dw5") {
  1547. dataBudget[i].dw5 = value;
  1548. } else if(dw == "dw6") {
  1549. dataBudget[i].dw6 = value;
  1550. } else if(dw == "dw7") {
  1551. dataBudget[i].dw7 = value;
  1552. } else if(dw == "dw8") {
  1553. dataBudget[i].dw8 = value;
  1554. } else if(dw == "dw9") {
  1555. dataBudget[i].dw9 = value;
  1556. } else if(dw == "dw10") {
  1557. dataBudget[i].dw10 = value;
  1558. }
  1559. //正在编辑的预算
  1560. var dw1 = 0, dw2 = 0, dw3 = 0, dw4 = 0, dw5 = 0,
  1561. dw6 = 0, dw7 = 0, dw8 = 0, dw9 = 0, dw10 = 0;
  1562. if(dataBudget[i].dw1 != null) {
  1563. dw1 = parseFloat(dataBudget[i].dw1);
  1564. if(isNaN(dw1))
  1565. dw1 = 0;
  1566. }
  1567. if(dataBudget[i].dw2 != null) {
  1568. dw2 = parseFloat(dataBudget[i].dw2);
  1569. if(isNaN(dw2))
  1570. dw2 = 0;
  1571. }
  1572. if(dataBudget[i].dw3 != null) {
  1573. dw3 = parseFloat(dataBudget[i].dw3);
  1574. if(isNaN(dw3))
  1575. dw3 = 0;
  1576. }
  1577. if(dataBudget[i].dw4 != null) {
  1578. dw4 = parseFloat(dataBudget[i].dw4);
  1579. if(isNaN(dw4))
  1580. dw4 = 0;
  1581. }
  1582. if(dataBudget[i].dw5 != null) {
  1583. dw5 = parseFloat(dataBudget[i].dw5);
  1584. if(isNaN(dw5))
  1585. dw5 = 0;
  1586. }
  1587. if(dataBudget[i].dw6 != null) {
  1588. dw6 = parseFloat(dataBudget[i].dw6);
  1589. if(isNaN(dw6))
  1590. dw6 = 0;
  1591. }
  1592. if(dataBudget[i].dw7 != null) {
  1593. dw7 = parseFloat(dataBudget[i].dw7);
  1594. if(isNaN(dw7))
  1595. dw7 = 0;
  1596. }
  1597. if(dataBudget[i].dw8 != null) {
  1598. dw8 = parseFloat(dataBudget[i].dw8);
  1599. if(isNaN(dw8))
  1600. dw8 = 0;
  1601. }
  1602. if(dataBudget[i].dw9 != null) {
  1603. dw9 = parseFloat(dataBudget[i].dw9);
  1604. if(isNaN(dw9))
  1605. dw9 = 0;
  1606. }
  1607. if(dataBudget[i].dw10 != null) {
  1608. dw10 = parseFloat(dataBudget[i].dw10);
  1609. if(isNaN(dw10))
  1610. dw10 = 0;
  1611. }
  1612. var ysje = dw1 + dw2 + dw3 + dw4 + dw5 + dw6 + dw7 + dw8 + dw9 + dw10;
  1613. // alert(ysje);
  1614. if(ysje == 0)
  1615. dataBudget[i].ysje = "";
  1616. else
  1617. dataBudget[i].ysje = ysje;
  1618. break;
  1619. }
  1620. }
  1621. }
  1622. //父级预算
  1623. function setFjBudget(fj) {
  1624. if(fj != null && fj != '')
  1625. {
  1626. var dw1 = 0, dw2 = 0, dw3 = 0, dw4 = 0, dw5 = 0,
  1627. dw6 = 0, dw7 = 0, dw8 = 0, dw9 = 0, dw10 = 0;
  1628. //子节点的值相加
  1629. for (var j = 0; j < dataBudget.length; j++) {
  1630. if (fj == dataBudget[j].fj)
  1631. {
  1632. var t1 = parseFloat(dataBudget[j].dw1);
  1633. if (!isNaN(t1))
  1634. dw1 += t1;
  1635. var t2 = parseFloat(dataBudget[j].dw2);
  1636. if (!isNaN(t2))
  1637. dw2 += t2;
  1638. var t3 = parseFloat(dataBudget[j].dw3);
  1639. if (!isNaN(t3))
  1640. dw3 += t3;
  1641. var t4 = parseFloat(dataBudget[j].dw4);
  1642. if (!isNaN(t4))
  1643. dw4 += t4;
  1644. var t5 = parseFloat(dataBudget[j].dw5);
  1645. if (!isNaN(t5))
  1646. dw5 += t5;
  1647. var t6 = parseFloat(dataBudget[j].dw6);
  1648. if (!isNaN(t6))
  1649. dw6 += t6;
  1650. var t7 = parseFloat(dataBudget[j].dw7);
  1651. if (!isNaN(t7))
  1652. dw7 += t7;
  1653. var t8 = parseFloat(dataBudget[j].dw8);
  1654. if (!isNaN(t8))
  1655. dw8 += t8;
  1656. var t9 = parseFloat(dataBudget[j].dw9);
  1657. if (!isNaN(t9))
  1658. dw9 += t9;
  1659. var t10 = parseFloat(dataBudget[j].dw10);
  1660. if (!isNaN(t10))
  1661. dw10 += t10;
  1662. }
  1663. }
  1664. //更新父节点的值
  1665. for (var j = 0; j < dataBudget.length; j++) {
  1666. if (fj == dataBudget[j].bm)
  1667. {
  1668. if (dw1 == 0)
  1669. dataBudget[j].dw1 = '';
  1670. else
  1671. dataBudget[j].dw1 = dw1.toFixed(2);
  1672. if (dw2 == 0)
  1673. dataBudget[j].dw2 = '';
  1674. else
  1675. dataBudget[j].dw2 = dw2.toFixed(2);
  1676. if (dw3 == 0)
  1677. dataBudget[j].dw3 = '';
  1678. else
  1679. dataBudget[j].dw3 = dw3.toFixed(2);
  1680. if (dw4 == 0)
  1681. dataBudget[j].dw4 = '';
  1682. else
  1683. dataBudget[j].dw4 = dw4.toFixed(2);
  1684. if (dw5 == 0)
  1685. dataBudget[j].dw5 = '';
  1686. else
  1687. dataBudget[j].dw5 = dw5.toFixed(2);
  1688. if (dw6 == 0)
  1689. dataBudget[j].dw6 = '';
  1690. else
  1691. dataBudget[j].dw6 = dw6.toFixed(2);
  1692. if (dw7 == 0)
  1693. dataBudget[j].dw7 = '';
  1694. else
  1695. dataBudget[j].dw7 = dw7.toFixed(2);
  1696. if (dw8 == 0)
  1697. dataBudget[j].dw8 = '';
  1698. else
  1699. dataBudget[j].dw8 = dw8.toFixed(2);
  1700. if (dw9 == 0)
  1701. dataBudget[j].dw9 = '';
  1702. else
  1703. dataBudget[j].dw9 = dw9.toFixed(2);
  1704. if (dw10 == 0)
  1705. dataBudget[j].dw10 = '';
  1706. else
  1707. dataBudget[j].dw10 = dw10.toFixed(2);
  1708. var ysje = dw1 + dw2 + dw3 + dw4 + dw5 + dw6 + dw7 + dw8 + dw9 + dw10;
  1709. if(ysje == 0) {
  1710. dataBudget[j].ysje = "";
  1711. }
  1712. else
  1713. dataBudget[j].ysje = ysje.toFixed(2);
  1714. setFjBudget(dataBudget[j].fj);
  1715. break;
  1716. }
  1717. }
  1718. }
  1719. }
  1720. //组织要保存的数据
  1721. function getBudget(budgets, data) {
  1722. var budget = {
  1723. "id": data.id,
  1724. "fj": data.fj,
  1725. "ysje": data.ysje,
  1726. "dw1": data.dw1,
  1727. "dw2": data.dw2,
  1728. "dw3": data.dw3,
  1729. "dw4": data.dw4,
  1730. "dw5": data.dw5,
  1731. "dw6": data.dw6,
  1732. "dw7": data.dw7,
  1733. "dw8": data.dw8,
  1734. "dw9": data.dw9,
  1735. "dw10": data.dw10
  1736. };
  1737. budgets.push(budget);
  1738. if (data.children != undefined) {
  1739. getChildNode(budgets, data);
  1740. }
  1741. }
  1742. function getChildNode(budgets, data) {
  1743. for (let item of data.children) {
  1744. getBudget(budgets, item);
  1745. }
  1746. }
  1747. // 监听确认按钮(项目预算)
  1748. $("button[lay-filter='saveBtn5']").click(function() {
  1749. if(xmId == -1) {
  1750. Message.error("请先创建项目任务书,然后再填写项目预算",2000);
  1751. } else{
  1752. var data = insTb5.options.data;
  1753. console.log(data[3].value);
  1754. var budgets = new Array();
  1755. for(var i = 0; i < data.length; i++) {
  1756. getBudget(budgets, data[i]);
  1757. }
  1758. var index = layer.load(0, {shade: 0.1});
  1759. AjaxUtil.post({
  1760. url: AjaxUtil.ctx + "prjProject/doUpdateXmys",
  1761. contentType: "application/json",
  1762. data: JSON.stringify(budgets),
  1763. success: function (res) {
  1764. if (res.code === 0) {
  1765. Message.success(1000, res.message, function () {
  1766. loadTreetable();
  1767. parent.setUpdateFlag();
  1768. });
  1769. } else {
  1770. Message.error(res.message, 1000);
  1771. }
  1772. layer.close(index);
  1773. },
  1774. error: function (error) {
  1775. layer.close(index);
  1776. }
  1777. });
  1778. }
  1779. alert(ysje)
  1780. });
  1781. //出资方案
  1782. var dataFeescheme = new Array();
  1783. function freshFeescheme() {
  1784. $.ajax({
  1785. url: AjaxUtil.ctx + 'prjFeescheme/list/' + xmId,
  1786. type: "post",
  1787. async: false,
  1788. dataType: "json",
  1789. success: function(result) {
  1790. dataFeescheme = result.data.rows;
  1791. }
  1792. });
  1793. table.reload('currentTableId6',{
  1794. data : dataFeescheme
  1795. });
  1796. }
  1797. var currTable6 = table.render({
  1798. elem: '#currentTableId6',
  1799. data: dataFeescheme,
  1800. cols: [
  1801. [
  1802. {type: "checkbox"},
  1803. // {type: 'numbers', align: 'center'},
  1804. {field: 'xh', title: '序号', width: '8%', align: 'center'},
  1805. {field: 'nf', title: '年份', width: '12%', align: 'center'},
  1806. {field: 'dwmc', title: '出资单位', width: '45%'},
  1807. {field: 'czje', title: '出资金额(万元)', width: '15%', align: 'center'}
  1808. // {title: '操作', toolbar: '#currentTableBar6', align: 'center', fixed: 'right'}
  1809. ]
  1810. ],
  1811. autoSort: false,
  1812. limits: [10, 15, 20, 25, 50, 100],
  1813. limit: 10,
  1814. page: true,
  1815. skin: 'grid',
  1816. parseData: function(res){ //res 即为原始返回的数据
  1817. return {
  1818. "code": res.code, //解析接口状态
  1819. "msg": res.message, //解析提示文本
  1820. "count": res.data.total, //解析数据长度
  1821. "data": res.data.rows //解析数据列表
  1822. };
  1823. }
  1824. });
  1825. // 监听新建按钮(出资方案)
  1826. $("button[lay-filter='btnAdd6']").click(function() {
  1827. if(xmId == -1) {
  1828. Message.error("请先创建项目任务书,然后再添加出资方案",2000);
  1829. } else {
  1830. layer.open({
  1831. title: '新建出资方案',
  1832. type: 2,
  1833. maxmin: true,
  1834. shade: 0.2,
  1835. area: ['1010px', layerheight + 'px'],
  1836. content: AjaxUtil.ctx + 'prjFeescheme/forAdd/' + xmId + '?qs=' + $("#qs").val() + '&wc=' + $("#wc").val()+ '&ysjecz=' +$("#rwsys").val(),
  1837. end: function (index) {
  1838. // 重载表格
  1839. if (updateflag == 1)
  1840. freshFeescheme();
  1841. updateflag = 0;
  1842. layer.close(index);
  1843. }
  1844. });
  1845. }
  1846. });
  1847. // 监听编辑按钮(出资方案)
  1848. $("button[lay-filter='btnEdit6']").click(function(){
  1849. var czfas = table.cache["currentTableId6"];
  1850. if(czfas.length == 0)
  1851. return;
  1852. var checkStatus = table.checkStatus('currentTableId6')
  1853. ,data = checkStatus.data;
  1854. if (data == null || data.length === 0) {
  1855. Message.warning("请选择要编辑的出资方案!", 1500);
  1856. } else if(data.length > 1) {
  1857. Message.warning("请选择一条记录进行编辑!", 1500);
  1858. } else {
  1859. layer.open({
  1860. title: '编辑出资方案',
  1861. type: 2,
  1862. maxmin: true,
  1863. shade: 0.2,
  1864. area: ['1010px', layerheight + 'px'],
  1865. content: AjaxUtil.ctx + 'prjFeescheme/forUpdate/' + data[0].id + '?qs=' + $("#qs").val() + '&wc=' + $("#wc").val()+ '&ysjecz=' +$("#rwsys").val(),
  1866. end: function (index) {
  1867. // 重载表格
  1868. if(updateflag == 1)
  1869. freshFeescheme();
  1870. updateflag = 0;
  1871. layer.close(index);
  1872. }
  1873. });
  1874. }
  1875. });
  1876. // 监听查看按钮(出资方案)
  1877. $("button[lay-filter='btnView6']").click(function(){
  1878. var czfas = table.cache["currentTableId6"];
  1879. if(czfas.length == 0)
  1880. return;
  1881. var checkStatus = table.checkStatus('currentTableId6')
  1882. ,data = checkStatus.data;
  1883. if (data == null || data.length === 0) {
  1884. Message.warning("请选择要浏览的出资方案!", 1500);
  1885. } else if(data.length > 1) {
  1886. Message.warning("请选择一条记录进行浏览!", 1500);
  1887. } else {
  1888. layer.open({
  1889. title: '浏览出资方案',
  1890. type: 2,
  1891. maxmin: true,
  1892. shade: 0.2,
  1893. area: ['1010px', layerheight + 'px'],
  1894. content: AjaxUtil.ctx + 'prjFeescheme/forView/' + data[0].id,
  1895. });
  1896. }
  1897. });
  1898. // 监听删除按钮(出资方案)
  1899. $("button[lay-filter='btnDelete6']").click(function(){
  1900. var czfas = table.cache["currentTableId6"];
  1901. if(czfas.length == 0)
  1902. return;
  1903. var checkStatus = table.checkStatus('currentTableId6')
  1904. ,data = checkStatus.data;
  1905. if (data == null || data.length === 0) {
  1906. Message.warning("请选择要删除的出资方案!", 1500);
  1907. } else {
  1908. layer.confirm('确定批量删除出资方案吗?', function (index) {
  1909. layer.close(index);
  1910. AjaxUtil.post({
  1911. url: AjaxUtil.ctx + "prjFeescheme/batchDelete",
  1912. contentType: "application/json",
  1913. data: JSON.stringify(data),
  1914. success: function (res) {
  1915. if (res.code === 0) {
  1916. Message.success(1000, res.message, function () {
  1917. // 重载表格
  1918. alert('已删除所选数据');
  1919. freshFeescheme();
  1920. });
  1921. } else {
  1922. Message.error(res.message, 1000);
  1923. }
  1924. },
  1925. error: function (error) {
  1926. }
  1927. });
  1928. });
  1929. }
  1930. });
  1931. // 监听行工具事件(出资方案)
  1932. table.on('tool(currentTableFilter6)', function (obj) {
  1933. var data = obj.data;
  1934. if (obj.event === 'view') {
  1935. layer.open({
  1936. title: '浏览出资方案',
  1937. type: 2,
  1938. maxmin: true,
  1939. shade: 0.2,
  1940. area: ['1010px', layerheight + 'px'],
  1941. content: AjaxUtil.ctx + 'prjFeescheme/forView/' + data.id,
  1942. });
  1943. } else if (obj.event === 'update') {
  1944. layer.open({
  1945. title: '编辑出资方案',
  1946. type: 2,
  1947. maxmin: true,
  1948. shade: 0.2,
  1949. area: ['1010px', layerheight + 'px'],
  1950. content: AjaxUtil.ctx + 'prjFeescheme/forUpdate/' + data.id,
  1951. end: function (index) {
  1952. // 重载表格
  1953. if(updateflag == 1)
  1954. freshFeescheme();
  1955. updateflag = 0;
  1956. layer.close(index);
  1957. }
  1958. });
  1959. } else if (obj.event === 'delFlag') {
  1960. layer.confirm('确定删除该出资方案吗?', function (index) {
  1961. layer.close(index);
  1962. AjaxUtil.get({
  1963. url: AjaxUtil.ctx + "prjFeescheme/delete/" + data.id,
  1964. success: function (res) {
  1965. if (res.code === 0) {
  1966. Message.success(1000, res.message, function () {
  1967. // 重载表格
  1968. freshFeescheme();
  1969. });
  1970. } else {
  1971. Message.error(res.message, 1000);
  1972. }
  1973. },
  1974. error: function (error) {
  1975. }
  1976. });
  1977. });
  1978. }
  1979. return false;
  1980. });
  1981. //双击(出资方案)
  1982. table.on('rowDouble(currentTableFilter6)', function (obj) {
  1983. var data = obj.data;
  1984. layer.open({
  1985. title: '浏览出资方案',
  1986. type: 2,
  1987. maxmin: true,
  1988. shade: 0.2,
  1989. area: ['1010px', layerheight + 'px'],
  1990. content: AjaxUtil.ctx + 'prjFeescheme/forView/' + data.id,
  1991. });
  1992. });
  1993. // 监听确认按钮(说明)
  1994. $("button[lay-filter='saveBtn7']").click(function()
  1995. {
  1996. if(xmId == -1) {
  1997. Message.error("请先创建项目任务书,然后再保存有关问题说明",2000);
  1998. } else {
  1999. var project = {
  2000. "id": xmId,
  2001. "ygwtsm": $("#ygwtsm").val()
  2002. }
  2003. var index = layer.load(0, {shade: 0.1});
  2004. AjaxUtil.post({
  2005. url: AjaxUtil.ctx + "prjProject/doUpdateYgwtsm",
  2006. contentType: "application/json",
  2007. data: JSON.stringify(project),
  2008. success: function (res) {
  2009. if (res.code === 0) {
  2010. Message.success(1000, res.message, function () {
  2011. parent.setUpdateFlag();
  2012. });
  2013. } else {
  2014. Message.error(res.message, 1000);
  2015. }
  2016. layer.close(index);
  2017. },
  2018. error: function (error) {
  2019. layer.close(index);
  2020. }
  2021. });
  2022. }
  2023. });
  2024. //联系方式
  2025. var dataContacts = new Array();
  2026. function freshContacts() {
  2027. $.ajax({
  2028. url: AjaxUtil.ctx + 'prjContacts/list/' + xmId,
  2029. type: "post",
  2030. async: false,
  2031. dataType: "json",
  2032. success: function(result) {
  2033. dataContacts = result.data.rows;
  2034. }
  2035. });
  2036. table.reload('currentTableId8',{
  2037. data : dataContacts
  2038. });
  2039. }
  2040. var currTable8 = table.render({
  2041. elem: '#currentTableId8',
  2042. data: dataContacts,
  2043. cols: [
  2044. [
  2045. {type: "checkbox"},
  2046. {type: 'numbers', align: 'center'},
  2047. {field: 'dwmc', title: '单位', width: '30%'},
  2048. {field: 'lxrxm', title: '联系人', width: '10%'},
  2049. {field: 'gddh', title: '固定电话', width: '12%'},
  2050. {field: 'dzyj', title: '电子邮件', width: '18%'},
  2051. {field: 'lxmc', title: '类型', width: '10%'}
  2052. ]
  2053. ],
  2054. autoSort: false,
  2055. limits: [10, 15, 20, 25, 50, 100],
  2056. limit: 10,
  2057. page: true,
  2058. skin: 'grid',
  2059. parseData: function(res){ //res 即为原始返回的数据
  2060. return {
  2061. "code": res.code, //解析接口状态
  2062. "msg": res.message, //解析提示文本
  2063. "count": res.data.total, //解析数据长度
  2064. "data": res.data.rows //解析数据列表
  2065. };
  2066. }
  2067. });
  2068. // 监听新建按钮(联系方式)
  2069. $("button[lay-filter='btnAdd8']").click(function() {
  2070. if(xmId == -1) {
  2071. Message.error("请先创建项目模板并保存,然后再添加联系方式",2000);
  2072. } else {
  2073. layer.open({
  2074. title: '新建联系方式',
  2075. type: 2,
  2076. maxmin: true,
  2077. shade: 0.2,
  2078. area: ['900px', layerheight + 'px'],
  2079. content: AjaxUtil.ctx + 'prjContacts/forAdd/' + xmId,
  2080. end: function (index) {
  2081. console.log(updateflag);
  2082. // 重载表格
  2083. if (updateflag == 1)
  2084. freshContacts();
  2085. updateflag = 0;
  2086. layer.close(index);
  2087. }
  2088. });
  2089. }
  2090. });
  2091. // 监听编辑按钮(联系方式)
  2092. $("button[lay-filter='btnEdit8']").click(function(){
  2093. var contacts = table.cache["currentTableId8"];
  2094. if(contacts.length == 0)
  2095. return;
  2096. var checkStatus = table.checkStatus('currentTableId8')
  2097. ,data = checkStatus.data;
  2098. if (data == null || data.length === 0) {
  2099. Message.warning("请选择要编辑的联系方式!", 1500);
  2100. } else if(data.length > 1) {
  2101. Message.warning("请选择一条记录进行编辑!", 1500);
  2102. } else {
  2103. layer.open({
  2104. title: '编辑联系方式',
  2105. type: 2,
  2106. maxmin: true,
  2107. shade: 0.2,
  2108. area: ['900px', layerheight + 'px'],
  2109. content: AjaxUtil.ctx + 'prjContacts/forUpdate/' + data[0].id,
  2110. end: function (index) {
  2111. // 重载表格
  2112. if(updateflag == 1)
  2113. freshContacts();
  2114. updateflag = 0;
  2115. layer.close(index);
  2116. }
  2117. });
  2118. }
  2119. });
  2120. // 监听查看按钮(联系方式)
  2121. $("button[lay-filter='btnView8']").click(function(){
  2122. var contacts = table.cache["currentTableId8"];
  2123. if(contacts.length == 0)
  2124. return;
  2125. var checkStatus = table.checkStatus('currentTableId8')
  2126. ,data = checkStatus.data;
  2127. if (data == null || data.length === 0) {
  2128. Message.warning("请选择要浏览的联系方式!", 1500);
  2129. } else if(data.length > 1) {
  2130. Message.warning("请选择一条记录进行浏览!", 1500);
  2131. } else {
  2132. layer.open({
  2133. title: '浏览联系方式',
  2134. type: 2,
  2135. maxmin: true,
  2136. shade: 0.2,
  2137. area: ['900px', layerheight + 'px'],
  2138. content: AjaxUtil.ctx + 'prjContacts/forView/' + data[0].id,
  2139. end: function () {
  2140. layer.close(index);
  2141. }
  2142. });
  2143. }
  2144. });
  2145. // 监听删除按钮(联系方式)
  2146. $("button[lay-filter='btnDelete8']").click(function(){
  2147. var contacts = table.cache["currentTableId8"];
  2148. if(contacts.length == 0)
  2149. return;
  2150. var checkStatus = table.checkStatus('currentTableId8')
  2151. ,data = checkStatus.data;
  2152. if (data == null || data.length === 0) {
  2153. Message.warning("请选择要删除的联系方式!", 1500);
  2154. } else {
  2155. layer.confirm('确定批量删除联系方式吗?', function (index) {
  2156. layer.close(index);
  2157. AjaxUtil.post({
  2158. url: AjaxUtil.ctx + "prjContacts/batchDelete",
  2159. contentType: "application/json",
  2160. data: JSON.stringify(data),
  2161. success: function (res) {
  2162. if (res.code === 0) {
  2163. Message.success(1000, res.message, function () {
  2164. // 重载表格
  2165. freshContacts();
  2166. });
  2167. } else {
  2168. Message.error(res.message, 1000);
  2169. }
  2170. },
  2171. error: function (error) {
  2172. }
  2173. });
  2174. });
  2175. }
  2176. });
  2177. // 监听行工具事件(联系方式)
  2178. table.on('tool(currentTableFilter8)', function (obj) {
  2179. var data = obj.data;
  2180. if (obj.event === 'view') {
  2181. layer.open({
  2182. title: '浏览联系方式',
  2183. type: 2,
  2184. maxmin: true,
  2185. shade: 0.2,
  2186. area: ['900px', layerheight + 'px'],
  2187. content: AjaxUtil.ctx + 'prjContacts/forView/' + data.id,
  2188. end: function () {
  2189. layer.close(index);
  2190. }
  2191. });
  2192. } else if (obj.event === 'update') {
  2193. layer.open({
  2194. title: '编辑联系方式',
  2195. type: 2,
  2196. maxmin: true,
  2197. shade: 0.2,
  2198. area: ['900px', layerheight + 'px'],
  2199. content: AjaxUtil.ctx + 'prjContacts/forUpdate/' + data.id,
  2200. end: function (index) {
  2201. // 重载表格
  2202. if(updateflag == 1)
  2203. freshContacts();
  2204. updateflag = 0;
  2205. layer.close(index);
  2206. }
  2207. });
  2208. } else if (obj.event === 'delFlag') {
  2209. layer.confirm('确定删除该联系方式吗?', function (index) {
  2210. layer.close(index);
  2211. AjaxUtil.get({
  2212. url: AjaxUtil.ctx + "prjContacts/delete/" + data.id,
  2213. success: function (res) {
  2214. if (res.code === 0) {
  2215. Message.success(1000, res.message, function () {
  2216. // 重载表格
  2217. freshContacts();
  2218. });
  2219. } else {
  2220. Message.error(res.message, 1000);
  2221. }
  2222. },
  2223. error: function (error) {
  2224. }
  2225. });
  2226. });
  2227. }
  2228. return false;
  2229. });
  2230. //双击(联系方式)
  2231. table.on('rowDouble(currentTableFilter8)', function (obj) {
  2232. var data = obj.data;
  2233. layer.open({
  2234. title: '浏览联系方式',
  2235. type: 2,
  2236. maxmin: true,
  2237. shade: 0.2,
  2238. area: ['900px', layerheight + 'px'],
  2239. content: AjaxUtil.ctx + 'prjContacts/forView/' + data.id,
  2240. end: function () {
  2241. layer.close(index);
  2242. }
  2243. });
  2244. });
  2245. // 用于存放表格数据
  2246. var dataFj = new Array();
  2247. //附件
  2248. var currTable9 = table.render({
  2249. elem: '#currentTableId9',
  2250. data: dataFj,
  2251. cols: [
  2252. [
  2253. {type: "checkbox", align: 'center'},
  2254. {type: 'numbers', align: 'center'},
  2255. {field: 'wjm', title: '文件名', width: '30%'},
  2256. {field: 'scrq', title: '上传日期', width: '20%'},
  2257. {field: 'sm', title: '说明', edit: 'text'}
  2258. ]
  2259. ],
  2260. autoSort: false,
  2261. limits: [10, 15, 20, 25, 50, 100],
  2262. limit: 10,
  2263. page: false,
  2264. skin: 'grid',
  2265. done: function(res, curr, count) { // done为数据渲染完的回调
  2266. }
  2267. });
  2268. //文件上传
  2269. upload.render({
  2270. elem: '.upload' //绑定元素
  2271. ,url: AjaxUtil.ctx + 'fileupload/upload'
  2272. ,methd: 'post'
  2273. ,accept: 'file'
  2274. ,data: {}
  2275. ,done: function(res){
  2276. // debugger;
  2277. if (0 === res.code) {
  2278. if (res.data.fileType == "memberFile") {
  2279. if (0 === res.data.code) {
  2280. var currData = [];
  2281. for(var i=0;i<res.data.list.length;i++) {
  2282. var currMember = {
  2283. "ry": res.data.list[i].ry,
  2284. "ryxm": res.data.list[i].ryxm,
  2285. "dw": res.data.list[i].dw,
  2286. "dwmc": res.data.list[i].dwmc,
  2287. "dwlx": res.data.list[i].dwlx,
  2288. "dwlxmc": res.data.list[i].dwlxmc,
  2289. "zc": res.data.list[i].zc,
  2290. "zcmc": res.data.list[i].zcmc,
  2291. "xl": res.data.list[i].xl,
  2292. "xlmc": res.data.list[i].xlmc,
  2293. "xmjs": res.data.list[i].xmjs,
  2294. "xmjsmc": res.data.list[i].xmjsmc,
  2295. "bxmfg": res.data.list[i].bxmfg,
  2296. "sxbh": res.data.list[i].sxbh,
  2297. "trgzzys": res.data.list[i].trgzzys
  2298. };
  2299. currData.push(currMember);
  2300. }
  2301. table.reload('currentTableId1', {
  2302. data: currData
  2303. });
  2304. var gjzc = 0, zjzc = 0, cjzc = 0, yjs = 0;
  2305. for(let item of currData) {
  2306. if (item.zc.substring(2, 3) == 1 || item.zc.substring(2, 3) == 2)
  2307. gjzc++;
  2308. else if (item.zc.substring(2, 3) == 2)
  2309. zjzc++;
  2310. else if (item.zc.substring(2, 3) == 3)
  2311. cjzc++;
  2312. if (item.xlmc.indexOf("研究生") > -1)
  2313. yjs++;
  2314. }
  2315. //更新统计信息
  2316. $("#zrs").val(currData.length);
  2317. $("#gjzc").val(gjzc);
  2318. $("#zjzc").val(zjzc);
  2319. $("#cjzc").val(cjzc);
  2320. $("#yjs").val(yjs);
  2321. form.render();
  2322. } else if (10 === res.data.code) {
  2323. layer.alert("文件中部分人员未录入到系统!" + res.data.tipList.toString());
  2324. } else if (20 === res.data.code) {
  2325. layer.alert("文件中不存在可识别的记录!");
  2326. } else {
  2327. layer.alert("上传格式错误!");
  2328. }
  2329. } else {
  2330. var curData = {
  2331. "wjm": res.data.fileName,
  2332. "scrq": res.data.fileDate,
  2333. "Url": res.data.fileUrl,
  2334. "sm": res.data.sm
  2335. };
  2336. dataFj.push(curData);
  2337. currTable9.reload();
  2338. }
  2339. }
  2340. else
  2341. layer.alert("上传文件出现错误!");
  2342. }
  2343. ,error: function(){
  2344. layer.alert("上传文件出现错误!");
  2345. }
  2346. ,before:function(res){
  2347. let fileType = this.fileType;
  2348. this.data.fileType = fileType;
  2349. }
  2350. });
  2351. $("button[lay-filter='deleteFile']").click(function() {
  2352. if(dataFj.length == 0)
  2353. return;
  2354. var checkStatus = table.checkStatus('currentTableId9')
  2355. ,data = checkStatus.data;
  2356. if (data == null || data.length === 0) {
  2357. Message.warning("请选择要删除的附件!", 1000);
  2358. return;
  2359. }
  2360. for (var i = 0; i < dataFj.length; i++) {
  2361. var item = dataFj[i];
  2362. if (item.LAY_CHECKED) {//条件:选中
  2363. dataFj.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  2364. i--;
  2365. }
  2366. }
  2367. //刷新表格
  2368. currTable9.reload();
  2369. });
  2370. //双击(附件)
  2371. table.on('rowDouble(currentTableFilter9)', function (obj) {
  2372. window.open(obj.data.Url);
  2373. });
  2374. // 监听确认按钮(附件)
  2375. $("button[lay-filter='saveBtn9']").click(function()
  2376. {
  2377. var dataWB = [];
  2378. for (const item of dataFj) {
  2379. var dfWb = {
  2380. "id": item.id,
  2381. "wjm": item.wjm,
  2382. "Url": item.Url,
  2383. "scrq": item.scrq,
  2384. "sm": item.sm
  2385. };
  2386. dataWB.push(dfWb);
  2387. }
  2388. $("#fj").val(JSON.stringify(dataWB));
  2389. var project = {
  2390. "id": xmId,
  2391. "fj": $("#fj").val()
  2392. }
  2393. var index = layer.load(0, {shade: 0.1});
  2394. AjaxUtil.post({
  2395. url: AjaxUtil.ctx + "prjProject/doUpdateFJ",
  2396. contentType: "application/json",
  2397. data: JSON.stringify(project),
  2398. success: function (res) {
  2399. if (res.code === 0) {
  2400. Message.success(1000, res.message, function () {
  2401. parent.setUpdateFlag();
  2402. });
  2403. } else {
  2404. Message.error(res.message, 1000);
  2405. }
  2406. layer.close(index);
  2407. },
  2408. error: function (error) {
  2409. layer.close(index);
  2410. }
  2411. });
  2412. return false;
  2413. });
  2414. // 监听取消按钮
  2415. $("button[lay-filter='cancleBtn']").click(function(){
  2416. if (updateflag == 1)
  2417. currTable3.reload();
  2418. updateflag = 0;
  2419. var iframeIndex = parent.layer.getFrameIndex(window.name);
  2420. parent.layer.close(iframeIndex);
  2421. });
  2422. });
  2423. /**
  2424. * 扁平数据转树结构
  2425. * @returns {[]}
  2426. * @param data
  2427. * @param firstPid
  2428. */
  2429. // function arrayToTree(data, firstPid) {
  2430. // const result = [];
  2431. // getChildren(data, result, firstPid);
  2432. // return result;
  2433. // }
  2434. //
  2435. // function getChildren(data, result, parentId) {
  2436. // for (const item of data) {
  2437. // if (item.parentId === parentId) {
  2438. // const newItem = {...item, children: []};
  2439. // result.push(newItem);
  2440. // getChildren(data, newItem.children, item.deptId);
  2441. // }
  2442. // }
  2443. // }
  2444. //设置更新标志
  2445. function setUpdateFlag() {
  2446. updateflag = 1;
  2447. }
  2448. //从子页面设置父页面的值
  2449. function setData(id, name) {
  2450. ObjId = id;
  2451. ObjName = name;
  2452. }
  2453. //设置项目完成人员信息
  2454. function setMember(member) {
  2455. prjMember = member;
  2456. }
  2457. //获取当前的项目人员
  2458. function getMember()
  2459. {
  2460. return prjMember;
  2461. }
  2462. //获取当前的项目完成单位信息
  2463. function getCompany() {
  2464. return prjCompany;
  2465. }
  2466. //设置项目完成单位信息
  2467. function setCompany(company) {
  2468. prjCompany = company;
  2469. }
  2470. //获取子课题信息
  2471. function getZktInfo()
  2472. {
  2473. return subTopic;
  2474. }
  2475. </script>
  2476. </body>
  2477. </html>