update.html 105 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259
  1. <!DOCTYPE html>
  2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>项目可研报告编辑</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  9. <link rel="stylesheet" th:href="@{/lib/layui/css/layui.css}" media="all">
  10. <link rel="stylesheet" th:href="@{/css/public.css}" media="all">
  11. <style>
  12. body {
  13. background-color: #ffffff;
  14. }
  15. .layui-body{overflow-y: scroll;}
  16. </style>
  17. </head>
  18. <body>
  19. <div class="layui-tab layui-tab-card">
  20. <ul class="layui-tab-title">
  21. <li class="layui-this">常规</li>
  22. <li>目的和意义</li>
  23. <li>研究水平</li>
  24. <li>理论实践依据</li>
  25. <li>研究内容</li>
  26. <li>经济性财务合规性</li>
  27. <li>预期目标</li>
  28. <li>合作单位</li>
  29. <li>承担单位条件</li>
  30. <li>进度安排</li>
  31. <li>经费预算</li>
  32. <li>审查意见</li>
  33. <li>附件</li>
  34. <li>签名盖章</li>
  35. </ul>
  36. <div class="layui-tab-content">
  37. <!--常规开始-->
  38. <div class="layui-tab-item layui-show">
  39. <form class="layui-form" action="" lay-filter="formDemo">
  40. <div class="layui-form layuimini-form">
  41. <div class="layui-form-item">
  42. <label class="layui-form-label required" style="width: 90px">名称</label>
  43. <div class="layui-input-inline" style="width: 85%">
  44. <input type="hidden" id="id" name="id" th:value="${report.id}">
  45. <input type="text" id="mc" name="mc" lay-verify="required" lay-reqtext="项目名称不能为空"
  46. placeholder="项目名称(中文)不能超过30字(含字符)" th:value="${report.mc}" class="layui-input">
  47. </div>
  48. </div>
  49. <div class="layui-form-item">
  50. <label class="layui-form-label required" style="width: 90px">申请单位</label>
  51. <div class="layui-input-inline" style="width: 85%">
  52. <input type="hidden" name="sqdw" id="sqdw" th:value="${report.sqdw}" class="layui-input">
  53. <input type="text" id="sqdwName" name="sqdwName" lay-verify="required" th:value="${report.sqdwName}" lay-reqtext="申请单位不能为空" autocomplete="off" class="layui-input" readonly>
  54. </div>
  55. </div>
  56. <div class="layui-form-item layui-inline" style="width: 100%">
  57. <label class="layui-form-label required" style="width: 90px">项目起止时间</label>
  58. <div class="layui-input-inline" style="width: 85%">
  59. <div class="layui-input-inline">
  60. <input type="text" name="qs" id="qs" placeholder="开始日期" th:value="${report.qs}" autocomplete="off" class="layui-input">
  61. <tip>日期格式:yyyy-MM-dd</tip>
  62. </div>
  63. <div class="layui-form-mid">-</div>
  64. <div class="layui-input-inline">
  65. <input type="text" name="wc" id="wc" placeholder="结束日期" th:value="${report.wc}" autocomplete="off" class="layui-input">
  66. </div>
  67. </div>
  68. </div>
  69. <div class="layui-form-item">
  70. <label class="layui-form-label" style="width: 90px">项目类型</label>
  71. <div class="layui-input-inline" style="width: 85%">
  72. <input type="hidden" name="xmlx" id="xmlx" th:value="${report.xmlx}" class="layui-input" readonly>
  73. <input type="text" name="xmlxmc" id="xmlxmc" th:value="${report.xmlxmc}" class="layui-input" readonly>
  74. <!-- <select name="xmlx" id="xmlx" lay-filter="status">-->
  75. <!-- <option value="">&#45;&#45; 请选择 &#45;&#45;</option>-->
  76. <!-- <option th:each="item:${xmlxList}" th:text="${item.name}" th:value="${item.code}"-->
  77. <!-- th:selected="(${report.getXmlx()} eq ${item.code})"></option>></option>-->
  78. <!-- </select>-->
  79. </div>
  80. </div>
  81. <div class="layui-form-item ">
  82. <label class="layui-form-label required" style="width: 90px">项目负责人</label>
  83. <div class="layui-input-inline" style="width: 84.8%;height: 30px;">
  84. <div class="layui-btn-group" style="padding-bottom: 0px;margin-bottom: -8px">
  85. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm upload" lay-data="{fileType:'personFile'}"><i class="layui-icon"></i>导入</button>
  86. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnAdd1"><i class="layui-icon"></i>增加</button>
  87. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnEdit1"><i class="layui-icon">&#xe642;</i>编辑</button>
  88. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnDelete1"><i class="layui-icon"></i>删除</button>
  89. <!-- <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnBrowse1"><i class="layui-icon">&#xe63c;</i>查看</button>-->
  90. <a class="layui-btn layui-btn-primary layui-btn-sm " th:href="${ProjectRYTemplate}" >
  91. <i class="layui-icon layui-icon-export" style="font-size: 10px;" ></i>人员模板
  92. </a>
  93. </div>
  94. </div>
  95. <div class="layui-input-inline" style="width: 84.8%;height: 200px;margin: 0px;border: 1px solid;border-color: #dddddd;overflow-y: auto">
  96. <table class="layui-hide" id="currentTableId1" lay-filter="currentTableFilter1" style="padding-top: 0px;margin-top: -5px;"></table>
  97. </div>
  98. </div>
  99. <div class="layui-form-item layui-inline" style="width: 100%">
  100. <label class="layui-form-label" style="width: 90px">通讯地址</label>
  101. <div class="layui-input-inline" style="width: 85%">
  102. <div class="layui-input-inline" style="width: 400px">
  103. <input type="text" name="txdd" id="txdd" th:value="${report.txdd}" autocomplete="off" class="layui-input">
  104. </div>
  105. <div class="layui-form-label">邮政编码</div>
  106. <div class="layui-input-inline" style="width: 300px">
  107. <input type="text" name="yzbm" id="yzbm" th:value="${report.yzbm}" autocomplete="off" class="layui-input">
  108. </div>
  109. </div>
  110. </div>
  111. <div class="layui-form-item layui-inline" style="width: 100%">
  112. <label class="layui-form-label" style="width: 90px">电话</label>
  113. <div class="layui-input-inline" style="width: 85%">
  114. <div class="layui-input-inline" style="width: 400px">
  115. <input type="text" name="dh" id="dh" th:value="${report.dh}" autocomplete="off" class="layui-input">
  116. </div>
  117. <div class="layui-form-label">传真</div>
  118. <div class="layui-input-inline" style="width: 300px">
  119. <input type="text" name="cz" id="cz" th:value="${report.cz}" autocomplete="off" class="layui-input">
  120. </div>
  121. </div>
  122. </div>
  123. <div class="layui-form-item layui-inline" style="width: 100%">
  124. <label class="layui-form-label required" style="width: 90px">所属部门</label>
  125. <div class="layui-input-inline" id="parent_div" style="width: 400px">
  126. <input type="hidden" name="ssbm" id="ssbm" th:value="${report.ssbm}" class="layui-input">
  127. <input type="text" id="ssbmName" name="ssbmName" lay-verify="required" th:value="${report.ssbmName}" lay-reqtext="申请单位不能为空" class="layui-input" readonly>
  128. </div>
  129. <div class="layui-form-label required">申请日期</div>
  130. <div class="layui-input-inline" style="width: 300px">
  131. <input type="text" name="sqrq" id="sqrq" th:value="${report.sqrq}" lay-verify="required" lay-reqtext="申请日期不能为空" class="layui-input">
  132. <tip>日期格式:yyyy-MM-dd</tip>
  133. </div>
  134. </div>
  135. </div>
  136. <div class="layui-form layuimini-form">
  137. <!-- 右侧悬浮按钮 -->
  138. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  139. <!-- <button class="layui-hide" lay-submit lay-filter="saveNormal" id="normalBtn"><i-->
  140. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  141. <!-- </button>-->
  142. <!-- </div>-->
  143. <div class="right-bottom-btn">
  144. <button type="button" class="layui-btn" lay-submit lay-filter="saveNormal">
  145. <i class="layui-icon layui-icon-ok"></i>保存
  146. </button>
  147. <button class="layui-btn" lay-filter="cancleBtn">
  148. <i class="layui-icon layui-icon-close"></i>取消
  149. </button>
  150. </div>
  151. </div>
  152. </form>
  153. </div>
  154. <!--常规结束-->
  155. <!--目的和意义开始-->
  156. <div class="layui-tab-item">
  157. <form class="layui-form" action="" lay-filter="formDemo">
  158. <div class="layui-form layuimini-form">
  159. <div class="layui-form-item">
  160. <label class="layui-form-label" style="width: 90px">目的和意义</label>
  161. <div class="layui-input-inline" style="width: 85%">
  162. <textarea id="mdhyywb" name="mdhyywb" th:text="${report.mdhyywb}" class="layui-textarea" style="width: 100%;height: 339px"></textarea>
  163. <label class="layui-form-label" style="color:grey;width: 100%;text-align: left">文本内容,如果包含图片,请下载模板编辑后上传,并清空当前编辑框</label>
  164. </div>
  165. </div>
  166. <div class="layui-form-item">
  167. <label class="layui-form-label" style="width: 90px">
  168. </label>
  169. <input type="hidden" id="mdhyy" name="mdhyy" class="layui-input"/>
  170. <div class="layui-input-inline" style="width: 85%">
  171. <table class="layui-hide" id="currentTableId_MDHYY" lay-filter="currentTableId_MDHYY" style="padding-top: 0px;margin-top: 0px"></table>
  172. </div>
  173. </div>
  174. <div class="layui-btn-container">
  175. <label class="layui-form-label" style="width: 90px"></label>
  176. <button type="button" class="layui-btn layui-btn upload" lay-data="{fileType:'mdhyyFile'}">
  177. <i class="layui-icon layui-icon-export" style="font-size: 10px;"></i>上传附件
  178. </button>
  179. <a class="layui-btn layui-btn-primary" th:href="${mdhyyTemplate}" >
  180. <i class="layui-icon layui-icon-export" style="font-size: 10px;" ></i>下载模板
  181. </a>
  182. <button type="button" class="layui-btn layui-btn layui-btn-danger" lay-filter="delMdhyy">
  183. <i class="layui-icon layui-icon-delete" style="font-size: 10px;"></i>删除
  184. </button>
  185. </div>
  186. </div>
  187. <div class="layui-form layuimini-form">
  188. <!-- 右侧悬浮按钮 -->
  189. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  190. <!-- <button class="layui-hide" lay-submit lay-filter="saveMdhyy" id="mdhyyBtn"><i-->
  191. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  192. <!-- </button>-->
  193. <!-- </div>-->
  194. <div class="right-bottom-btn">
  195. <button type="button" class="layui-btn" lay-filter="saveMdhyy">
  196. <i class="layui-icon layui-icon-ok"></i>保存
  197. </button>
  198. <button class="layui-btn" lay-filter="cancleBtn">
  199. <i class="layui-icon layui-icon-close"></i>取消
  200. </button>
  201. </div>
  202. </div>
  203. </form>
  204. </div>
  205. <!--目的和意义结束-->
  206. <!--研究水平开始-->
  207. <div class="layui-tab-item">
  208. <form class="layui-form" action="" lay-filter="formDemo">
  209. <div class="layui-form layuimini-form">
  210. <div class="layui-form-item">
  211. <label class="layui-form-label" style="width: 90px">研究水平</label>
  212. <div class="layui-input-inline" style="width: 85%">
  213. <textarea id="gnwyjspzswb" name="gnwyjspzswb" th:text="${report.gnwyjspzswb}" class="layui-textarea" style="width: 100%;height: 339px"></textarea>
  214. <label class="layui-form-label" style="color:grey;width: 100%;text-align: left">文本内容,如果包含图片,请下载模板编辑后上传,并清空当前编辑框</label>
  215. </div>
  216. </div>
  217. <div class="layui-form-item">
  218. <label class="layui-form-label" style="width: 90px">
  219. </label>
  220. <input type="hidden" id="gnwyjspzs" name="gnwyjspzs" class="layui-input"/>
  221. <div class="layui-input-inline" style="width: 85%">
  222. <table class="layui-hide" id="currentTableId_YJSP" lay-filter="currentTableId_YJSP" style="padding-top: 0px;margin-top: 0px"></table>
  223. </div>
  224. </div>
  225. <div class="layui-btn-container">
  226. <label class="layui-form-label" style="width: 90px"></label>
  227. <button type="button" class="layui-btn layui-btn upload" lay-data="{fileType:'yjspFile'}">
  228. <i class="layui-icon layui-icon-export" style="font-size: 10px;"></i>上传附件
  229. </button>
  230. <a class="layui-btn layui-btn-primary" th:href="${yjspTemplate}" >
  231. <i class="layui-icon layui-icon-export" style="font-size: 10px;" ></i>下载模板
  232. </a>
  233. <button type="button" class="layui-btn layui-btn layui-btn-danger" lay-filter="delYjsp">
  234. <i class="layui-icon layui-icon-delete" style="font-size: 10px;"></i>删除
  235. </button>
  236. </div>
  237. </div>
  238. <div class="layui-form layuimini-form">
  239. <!-- 右侧悬浮按钮 -->
  240. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  241. <!-- <button class="layui-hide" lay-submit lay-filter="saveYjsp" id="yjspBtn"><i-->
  242. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  243. <!-- </button>-->
  244. <!-- </div>-->
  245. <div class="right-bottom-btn">
  246. <button type="button" class="layui-btn" lay-filter="saveYjsp">
  247. <i class="layui-icon layui-icon-ok"></i>保存
  248. </button>
  249. <button class="layui-btn" lay-filter="cancleBtn">
  250. <i class="layui-icon layui-icon-close"></i>取消
  251. </button>
  252. </div>
  253. </div>
  254. </form>
  255. </div>
  256. <!--研究水平结束-->
  257. <!--理论实践依据开始-->
  258. <div class="layui-tab-item">
  259. <form class="layui-form" action="" lay-filter="formDemo">
  260. <div class="layui-form layuimini-form">
  261. <div class="layui-form-item">
  262. <label class="layui-form-label" style="width: 90px">理论实践依据</label>
  263. <div class="layui-input-inline" style="width: 85%">
  264. <textarea id="xmdllhsjyjwb" name="xmdllhsjyjwb" th:text="${report.xmdllhsjyjwb}" class="layui-textarea" style="width: 100%;height: 339px"></textarea>
  265. <label class="layui-form-label" style="color:grey;width: 100%;text-align: left">文本内容,如果包含图片,请下载模板编辑后上传,并清空当前编辑框</label>
  266. </div>
  267. </div>
  268. <div class="layui-form-item">
  269. <label class="layui-form-label" style="width: 90px">
  270. </label>
  271. <input type="hidden" id="xmdllhsjyj" name="xmdllhsjyj" class="layui-input"/>
  272. <div class="layui-input-inline" style="width: 85%">
  273. <table class="layui-hide" id="currentTableId_LLSJYJ" lay-filter="currentTableId_LLSJYJ" style="padding-top: 0px;margin-top: 0px"></table>
  274. </div>
  275. </div>
  276. <div class="layui-btn-container">
  277. <label class="layui-form-label" style="width: 90px"></label>
  278. <button type="button" class="layui-btn layui-btn upload" lay-data="{fileType:'llsjyjFile'}">
  279. <i class="layui-icon layui-icon-export" style="font-size: 10px;"></i>上传附件
  280. </button>
  281. <a class="layui-btn layui-btn-primary" th:href="${llsjyjTemplate}" >
  282. <i class="layui-icon layui-icon-export" style="font-size: 10px;" ></i>下载模板
  283. </a>
  284. <button type="button" class="layui-btn layui-btn layui-btn-danger" lay-filter="delLlsjyj">
  285. <i class="layui-icon layui-icon-delete" style="font-size: 10px;"></i>删除
  286. </button>
  287. </div>
  288. </div>
  289. <div class="layui-form layuimini-form">
  290. <!-- 右侧悬浮按钮 -->
  291. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  292. <!-- <button class="layui-hide" lay-submit lay-filter="saveLlsjyj" id="llsjyjBtn"><i-->
  293. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  294. <!-- </button>-->
  295. <!-- </div>-->
  296. <div class="right-bottom-btn">
  297. <button type="button" class="layui-btn" lay-filter="saveLlsjyj">
  298. <i class="layui-icon layui-icon-ok"></i>保存
  299. </button>
  300. <button class="layui-btn" lay-filter="cancleBtn">
  301. <i class="layui-icon layui-icon-close"></i>取消
  302. </button>
  303. </div>
  304. </div>
  305. </form>
  306. </div>
  307. <!--理论实践依据结束-->
  308. <!--研究内容开始-->
  309. <div class="layui-tab-item">
  310. <form class="layui-form" action="" lay-filter="formDemo">
  311. <div class="layui-form layuimini-form">
  312. <div class="layui-form-item">
  313. <label class="layui-form-label" style="width: 90px">研究内容</label>
  314. <div class="layui-input-inline" style="width: 85%">
  315. <textarea id="xmyjnrhssfawb" name="xmyjnrhssfawb" th:text="${report.xmyjnrhssfawb}" class="layui-textarea" style="width: 100%;height: 339px"></textarea>
  316. <label class="layui-form-label" style="color:grey;width: 100%;text-align: left">文本内容,如果包含图片,请下载模板编辑后上传,并清空当前编辑框</label>
  317. </div>
  318. </div>
  319. <div class="layui-form-item">
  320. <label class="layui-form-label" style="width: 90px">
  321. </label>
  322. <input type="hidden" id="xmyjnrhssfa" name="xmyjnrhssfa" th:value="${report.xmyjnrhssfa}" class="layui-input"/>
  323. <div class="layui-input-inline" style="width: 85%">
  324. <table class="layui-hide" id="currentTableId_YJNR" lay-filter="currentTableId_YJNR" style="padding-top: 0px;margin-top: 0px"></table>
  325. </div>
  326. </div>
  327. <div class="layui-btn-container">
  328. <label class="layui-form-label" style="width: 90px"></label>
  329. <button type="button" class="layui-btn layui-btn upload" lay-data="{fileType:'yjnrFile'}">
  330. <i class="layui-icon layui-icon-export" style="font-size: 10px;"></i>上传附件
  331. </button>
  332. <a class="layui-btn layui-btn-primary" th:href="${yjnrTemplate}" >
  333. <i class="layui-icon layui-icon-export" style="font-size: 10px;" ></i>下载模板
  334. </a>
  335. <button type="button" class="layui-btn layui-btn layui-btn-danger" lay-filter="delYjnr">
  336. <i class="layui-icon layui-icon-delete" style="font-size: 10px;"></i>删除
  337. </button>
  338. </div>
  339. </div>
  340. <div class="layui-form layuimini-form">
  341. <!-- 右侧悬浮按钮 -->
  342. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  343. <!-- <button class="layui-hide" lay-submit lay-filter="saveYjnr" id="yjnrBtn"><i-->
  344. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  345. <!-- </button>-->
  346. <!-- </div>-->
  347. <div class="right-bottom-btn">
  348. <button type="button" class="layui-btn" lay-filter="saveYjnr">
  349. <i class="layui-icon layui-icon-ok"></i>保存
  350. </button>
  351. <button class="layui-btn" lay-filter="cancleBtn">
  352. <i class="layui-icon layui-icon-close"></i>取消
  353. </button>
  354. </div>
  355. </div>
  356. </form>
  357. </div>
  358. <!--研究内容结束-->
  359. <!--经济性财务合规性开始-->
  360. <div class="layui-tab-item" style="min-height: 525px">
  361. <form class="layui-form" action="" lay-filter="formDemo">
  362. <div class="layui-form layuimini-form">
  363. <div class="layui-form-item">
  364. <label class="layui-form-label" style="width: 90px">经济性<br/>财务合规性</label>
  365. <div class="layui-input-inline" style="width: 85%">
  366. <textarea id="jjxycwhgx" name="jjxycwhgx" th:text="${report.jjxycwhgx}" class="layui-textarea" style="width: 100%;height: 430px"></textarea>
  367. </div>
  368. </div>
  369. </div>
  370. <div class="layui-form layuimini-form">
  371. <!-- 右侧悬浮按钮 -->
  372. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  373. <!-- <button class="layui-hide" lay-submit lay-filter="saveJjxcwhgx" id="jjxcwhgxBtn"><i-->
  374. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  375. <!-- </button>-->
  376. <!-- </div>-->
  377. <div class="right-bottom-btn">
  378. <button type="button" class="layui-btn" lay-filter="saveJjxycwhgx">
  379. <i class="layui-icon layui-icon-ok"></i>保存
  380. </button>
  381. <button class="layui-btn" lay-filter="cancleBtn">
  382. <i class="layui-icon layui-icon-close"></i>取消
  383. </button>
  384. </div>
  385. </div>
  386. </form>
  387. </div>
  388. <!--经济性财务合规性结束-->
  389. <!--预期目标开始-->
  390. <div class="layui-tab-item" style="min-height: 525px">
  391. <form class="layui-form" action="" lay-filter="formDemo">
  392. <div class="layui-form layuimini-form">
  393. <div class="layui-form-item">
  394. <label class="layui-form-label" style="width: 90px">预期目标<br/>和成果形式</label>
  395. <div class="layui-input-inline" style="width: 85%">
  396. <textarea id="yqmbhcgxs" name="yqmbhcgxs" th:text="${report.yqmbhcgxs}" class="layui-textarea" style="width: 100%;height: 430px"></textarea>
  397. </div>
  398. </div>
  399. </div>
  400. <div class="layui-form layuimini-form">
  401. <!-- 右侧悬浮按钮 -->
  402. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  403. <!-- <button class="layui-hide" lay-submit lay-filter="saveYqmb" id="yqmbBtn"><i-->
  404. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  405. <!-- </button>-->
  406. <!-- </div>-->
  407. <div class="right-bottom-btn">
  408. <button type="button" class="layui-btn" lay-filter="saveYqmb">
  409. <i class="layui-icon layui-icon-ok"></i>保存
  410. </button>
  411. <button class="layui-btn" lay-filter="cancleBtn">
  412. <i class="layui-icon layui-icon-close"></i>取消
  413. </button>
  414. </div>
  415. </div>
  416. </form>
  417. </div>
  418. <!--预期目标结束-->
  419. <!--合作单位开始-->
  420. <div class="layui-tab-item" style="min-height: 525px">
  421. <form class="layui-form" action="" lay-filter="formDemo">
  422. <div class="layui-form layuimini-form">
  423. <div class="layui-form-item">
  424. <label class="layui-form-label" style="width: 90px">合作单位或<br/>依托工程单位<br/>落实情况</label>
  425. <div class="layui-input-inline" style="width: 85%">
  426. <textarea id="hzdwhytgcdwlsqk" name="hzdwhytgcdwlsqk" th:text="${report.hzdwhytgcdwlsqk}" class="layui-textarea" style="width: 100%;height: 430px"></textarea>
  427. </div>
  428. </div>
  429. </div>
  430. <div class="layui-form layuimini-form">
  431. <!-- 右侧悬浮按钮 -->
  432. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  433. <!-- <button class="layui-hide" lay-submit lay-filter="saveHzdw" id="hzdwBtn"><i-->
  434. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  435. <!-- </button>-->
  436. <!-- </div>-->
  437. <div class="right-bottom-btn">
  438. <button type="button" class="layui-btn" lay-filter="saveHzdw">
  439. <i class="layui-icon layui-icon-ok"></i>保存
  440. </button>
  441. <button class="layui-btn" lay-filter="cancleBtn">
  442. <i class="layui-icon layui-icon-close"></i>取消
  443. </button>
  444. </div>
  445. </div>
  446. </form>
  447. </div>
  448. <!--合作单位结束-->
  449. <!--承担单位条件开始-->
  450. <div class="layui-tab-item" style="min-height: 525px; padding-left: 30px; padding-right: 30px">
  451. <form class="layui-form" action="" lay-filter="formDemo">
  452. <div class="layui-form layuimini-form">
  453. <div class="layui-form-item">
  454. <!-- <label class="layui-form-label" style="width: 100px">-->
  455. <!-- </label>-->
  456. <input type="hidden" id="xmcddwdtj" name="xmcddwdtj" th:value="${report.xmcddwdtj}" class="layui-input"/>
  457. <div class="layui-input-inline" style="width: 100%">
  458. <table class="layui-hide" id="currentTableId_CDDWTJ" lay-filter="currentTableId_CDDWTJ" style="padding-top: 0px;margin-top: 0px"></table>
  459. </div>
  460. </div>
  461. <div class="layui-btn-container">
  462. <!-- <label class="layui-form-label" style="width: 90px"></label>-->
  463. <button type="button" class="layui-btn layui-btn upload" lay-data="{fileType:'cddwtjFile'}">
  464. <i class="layui-icon layui-icon-export" style="font-size: 10px;"></i>上传附件
  465. </button>
  466. <a class="layui-btn layui-btn-primary" th:href="${cddwtjTemplate}" >
  467. <i class="layui-icon layui-icon-export" style="font-size: 10px;" ></i>下载模板
  468. </a>
  469. <button type="button" class="layui-btn layui-btn layui-btn-danger" lay-filter="delCddwtj">
  470. <i class="layui-icon layui-icon-delete" style="font-size: 10px;"></i>删除
  471. </button>
  472. </div>
  473. </div>
  474. <div class="layui-form layuimini-form">
  475. <!-- 右侧悬浮按钮 -->
  476. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  477. <!-- <button class="layui-hide" lay-submit lay-filter="saveCddw" id="cddwBtn"><i-->
  478. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  479. <!-- </button>-->
  480. <!-- </div>-->
  481. <div class="right-bottom-btn">
  482. <button type="button" class="layui-btn" lay-filter="saveCddw">
  483. <i class="layui-icon layui-icon-ok"></i>保存
  484. </button>
  485. <button class="layui-btn" lay-filter="cancleBtn">
  486. <i class="layui-icon layui-icon-close"></i>取消
  487. </button>
  488. </div>
  489. </div>
  490. </form>
  491. </div>
  492. <!--承担单位条件结束-->
  493. <!--进度安排开始-->
  494. <div class="layui-tab-item" style="min-height: 525px; padding-left: 30px; padding-right: 30px">
  495. <form class="layui-form" action="" lay-filter="formDemo">
  496. <div class="layui-form layuimini-form">
  497. <div class="layui-form-item ">
  498. <div class="layui-input-inline" style="width: 100%">
  499. <div id="toolbarPlan" class="layui-btn-group" style="padding-bottom: 0px;margin-bottom: -8px">
  500. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnPlanAdd" data-type="addRow"><i class="layui-icon"></i>增加一行</button>
  501. </div>
  502. <table class="layui-hide" id="planTableId" lay-filter="planTableId" style="padding-top: 0px;margin-top: 0px"></table>
  503. </div>
  504. </div>
  505. </div>
  506. <div class="layui-form layuimini-form">
  507. <!-- 右侧悬浮按钮 -->
  508. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  509. <!-- <button class="layui-hide" lay-submit lay-filter="saveJdap" id="jdapBtn"><i-->
  510. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  511. <!-- </button>-->
  512. <!-- </div>-->
  513. <div class="right-bottom-btn">
  514. <button type="button" class="layui-btn" lay-filter="saveJdap">
  515. <i class="layui-icon layui-icon-ok"></i>保存
  516. </button>
  517. <button class="layui-btn" lay-filter="cancleBtn">
  518. <i class="layui-icon layui-icon-close"></i>取消
  519. </button>
  520. </div>
  521. </div>
  522. </form>
  523. </div>
  524. <!--进度安排结束-->
  525. <!--经费预算开始-->
  526. <div class="layui-tab-item" style="min-height: 515px; padding-left: 30px; padding-right: 30px">
  527. <form class="layui-form" action="" lay-filter="formDemo">
  528. <div class="layui-form layuimini-form">
  529. <input type="hidden" id="jfyszt" name="jfyszt">
  530. <table class="layui-hide" id="currentTableId_Jfys" lay-filter="currentTableFilter5"></table>
  531. <!-- 右侧悬浮按钮 -->
  532. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  533. <!-- <button class="layui-hide" lay-submit lay-filter="saveJfys" id="jfysBtn"><i-->
  534. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  535. <!-- </button>-->
  536. <!-- </div>-->
  537. <div class="right-bottom-btn">
  538. <button type="button" class="layui-btn" lay-filter="saveJfys">
  539. <i class="layui-icon layui-icon-ok"></i>保存
  540. </button>
  541. <button class="layui-btn" lay-filter="cancleBtn">
  542. <i class="layui-icon layui-icon-close"></i>取消
  543. </button>
  544. </div>
  545. </div>
  546. </form>
  547. </div>
  548. <!--经费预算结束-->
  549. <!--审查意见开始-->
  550. <div class="layui-tab-item">
  551. <form class="layui-form" action="" lay-filter="formDemo">
  552. <div class="layui-form layuimini-form">
  553. <div class="layui-form-item">
  554. <label class="layui-form-label" style="width: 90px">审查意见</label>
  555. <div class="layui-input-inline" style="width: 85%">
  556. <textarea id="xmscyjhssfawb" name="xmscyjhssfawb" class="layui-textarea" style="width: 100%;height: 339px"></textarea>
  557. <label class="layui-form-label" style="color:grey;width: 100%;text-align: left">文本内容,如果包含图片,请下载模板编辑后上传,并清空当前编辑框</label>
  558. </div>
  559. </div>
  560. <div class="layui-form-item">
  561. <label class="layui-form-label" style="width: 90px">
  562. </label>
  563. <input type="hidden" id="scyjfj" name="scyjfj" class="layui-input"/>
  564. <div class="layui-input-inline" style="width: 85%">
  565. <table class="layui-hide" id="currentTableId_SCYJ" lay-filter="currentTableId_SCYJ" style="padding-top: 0px;margin-top: 0px"></table>
  566. </div>
  567. </div>
  568. <div class="layui-btn-container">
  569. <label class="layui-form-label" style="width: 90px"></label>
  570. <button type="button" class="layui-btn layui-btn upload" lay-data="{fileType:'scyjFile'}">
  571. <i class="layui-icon layui-icon-export" style="font-size: 10px;"></i>上传附件
  572. </button>
  573. <a class="layui-btn layui-btn-primary" th:href="${scyjTemplate}" >
  574. <i class="layui-icon layui-icon-export" style="font-size: 10px;" ></i>下载模板
  575. </a>
  576. <button class="layui-btn layui-btn layui-btn-danger" lay-filter="delScyj">
  577. <i class="layui-icon layui-icon-delete" style="font-size: 10px;"></i>删除
  578. </button>
  579. </div>
  580. </div>
  581. <!-- 右侧悬浮按钮 -->
  582. <div class="layui-form layuimini-form">
  583. <div class="right-bottom-btn">
  584. <button type="button" class="layui-btn" lay-filter="saveScyj">
  585. <i class="layui-icon layui-icon-ok"></i>保存
  586. </button>
  587. <button class="layui-btn" lay-filter="cancleBtn">
  588. <i class="layui-icon layui-icon-close"></i>取消
  589. </button>
  590. </div>
  591. </div>
  592. </form>
  593. </div>
  594. <!--审查意见结束-->
  595. <!--附件开始-->
  596. <div class="layui-tab-item" style="min-height: 525px; padding-left: 30px; padding-right: 30px">
  597. <form class="layui-form" action="" lay-filter="formDemo">
  598. <div class="layui-form layuimini-form">
  599. <div class="layui-form-item">
  600. <input type="hidden" id="fj" name="fj" th:value="${report.fj}" class="layui-input"/>
  601. <div class="layui-input-inline" style="width: 100%">
  602. <table class="layui-hide" id="currentTableId_FJ" lay-filter="currentTableId_FJ" style="padding-top: 0px;margin-top: 0px"></table>
  603. </div>
  604. </div>
  605. <div class="layui-btn-container">
  606. <!-- <label class="layui-form-label" style="width: 90px"></label>-->
  607. <button type="button" class="layui-btn layui-btn upload" lay-data="{fileType:'fjFile'}">
  608. <i class="layui-icon layui-icon-export" style="font-size: 10px;"></i>上传附件
  609. </button>
  610. <a class="layui-btn layui-btn-primary" th:href="${fjTemplate}" >
  611. <i class="layui-icon layui-icon-export" style="font-size: 10px;" ></i>下载模板
  612. </a>
  613. <button type="button" class="layui-btn layui-btn layui-btn-danger" lay-filter="delFj">
  614. <i class="layui-icon layui-icon-delete" style="font-size: 10px;"></i>删除
  615. </button>
  616. </div>
  617. </div>
  618. <div class="layui-form layuimini-form">
  619. <!-- 右侧悬浮按钮 -->
  620. <div class="right-bottom-btn">
  621. <button type="button" class="layui-btn" lay-filter="saveFj">
  622. <i class="layui-icon layui-icon-ok"></i>保存
  623. </button>
  624. <button class="layui-btn" lay-filter="cancleBtn">
  625. <i class="layui-icon layui-icon-close"></i>取消
  626. </button>
  627. </div>
  628. </div>
  629. </form>
  630. </div>
  631. <!--附件结束-->
  632. <!--签名盖章开始-->
  633. <div class="layui-tab-item" style="min-height: 525px; padding-left: 30px; padding-right: 30px">
  634. <form class="layui-form" action="" lay-filter="formDemo">
  635. <div class="layui-form layuimini-form">
  636. <div class="layui-form-item">
  637. <input type="hidden" id="ygzmwj" name="ygzmwj" th:value="${report.ygzmwj}" class="layui-input"/>
  638. <div class="layui-input-inline" style="width: 100%">
  639. <table class="layui-hide" id="currentTableId_QMGZ" lay-filter="currentTableId_QMGZ" style="padding-top: 0px;margin-top: 0px"></table>
  640. </div>
  641. </div>
  642. <div class="layui-btn-container">
  643. <!-- <label class="layui-form-label" style="width: 190px"></label>-->
  644. <button type="button" class="layui-btn layui-btn upload" lay-data="{fileType:'qmgzFile'}">
  645. <i class="layui-icon layui-icon-export" style="font-size: 10px;"></i>上传签名盖章文件
  646. </button>
  647. <button type="button" class="layui-btn layui-btn layui-btn-danger" lay-filter="delQmgz">
  648. <i class="layui-icon layui-icon-delete" style="font-size: 10px;"></i>删除
  649. </button>
  650. </div>
  651. </div>
  652. <div class="layui-form layuimini-form">
  653. <!-- 右侧悬浮按钮 -->
  654. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  655. <!-- <button class="layui-hide" lay-submit lay-filter="saveQmgz" id="qmgzBtn"><i-->
  656. <!-- class="layui-icon layui-icon-ok"></i>校验-->
  657. <!-- </button>-->
  658. <!-- </div>-->
  659. <div class="right-bottom-btn">
  660. <button type="button" class="layui-btn" lay-filter="saveQmgz">
  661. <i class="layui-icon layui-icon-ok"></i>保存
  662. </button>
  663. <button class="layui-btn" lay-filter="cancleBtn">
  664. <i class="layui-icon layui-icon-close"></i>取消
  665. </button>
  666. </div>
  667. </div>
  668. </form>
  669. </div>
  670. <!--签名盖章结束-->
  671. <!-- 右侧悬浮按钮 -->
  672. <!-- <div class="layui-form layuimini-form">-->
  673. <!-- <div class="right-bottom-btn" style="padding-right: 1%">-->
  674. <!-- <button class="layui-btn submit-btn"><i-->
  675. <!-- class="layui-icon layui-icon-ok"></i>保存-->
  676. <!-- </button>-->
  677. <!-- <button class="layui-btn" lay-filter="cancleBtn"><i-->
  678. <!-- class="layui-icon layui-icon-close"></i>取消-->
  679. <!-- </button>-->
  680. <!-- </div>-->
  681. <!-- </div>-->
  682. <button type="button" id="fileupload" class="layui-hide">文件上传</button>
  683. </div>
  684. </div>
  685. <script th:src="@{/lib/jquery-3.4.1/jquery-3.4.1.min.js}" charset="utf-8"></script>
  686. <script th:src="@{/lib/layui/layui.js}" charset="utf-8"></script>
  687. <script th:src="@{/lib/coco-message/coco-message.js}" charset="utf-8"></script>
  688. <script th:src="@{/js/lay-config.js}" charset="utf-8"></script>
  689. <script th:src="@{/lib/xm-select-v1.2.2/xm-select.js}" charset="utf-8"></script>
  690. <script type="text/javascript" th:inline="javascript">
  691. AjaxUtil.ctx = /*[[@{/}]]*/'';
  692. var updateflag = 0;
  693. var prjMember = [];
  694. var userList1 = [];
  695. layui.use(['form', 'layer', 'table', 'tableSelect', 'treeTable', 'laydate', 'upload'], function () {
  696. var form = layui.form,
  697. table = layui.table,
  698. tableSelect = layui.tableSelect,
  699. treeTable = layui.treeTable,
  700. laydate = layui.laydate,
  701. layer = layui.layer,
  702. upload = layui.upload;
  703. var xmId = $("#id").val();
  704. var dataBudget = new Array();
  705. //日期
  706. laydate.render({
  707. elem: '#qs'
  708. });
  709. laydate.render({
  710. elem: '#wc',
  711. done:function(value, date, endDate){
  712. var qs = $("#qs").val();
  713. var wc = $("#wc").val();
  714. if(qs != "" && wc != "") {
  715. if(qs > wc) {
  716. Message.warning("结束日期不能早于起始日期!", 1500);
  717. $("#wc").val("");
  718. }
  719. }
  720. }
  721. });
  722. laydate.render({
  723. elem: '#sqrq'
  724. });
  725. //申请单位
  726. tableSelect.render({
  727. elem: '#sqdwName',
  728. checkedKey: 'id',
  729. searchKey: 'mc',
  730. searchPlaceholder: '搜索单位',
  731. table: {
  732. url: AjaxUtil.ctx + 'baseCompany/dwlist',
  733. cols: [
  734. [
  735. {type: 'radio'},
  736. {type: 'numbers', align: 'center'},
  737. {field: 'mc', width: '50%',title: '名称'},
  738. {field: 'dwqc', width: '50%', title: '单位全称'}
  739. ]
  740. ]
  741. },
  742. done: function (elem, data) {
  743. var NEWJSON = [];
  744. var NEWJSON1 = [];
  745. var NEWJSONADDR=[];
  746. var NEWJSONPOSTCODE = [];
  747. var NEWJSONTEL = [];
  748. var NEWJSONFAX = [];
  749. layui.each(data.data, function (index, item) {
  750. NEWJSON.push(item.mc);
  751. NEWJSON1.push(item.id);
  752. NEWJSONADDR.push(item.txdz);
  753. NEWJSONPOSTCODE.push(item.yzbm);
  754. NEWJSONTEL.push(item.gddh);
  755. NEWJSONFAX.push(item.cz);
  756. });
  757. elem.val(NEWJSON.join(","));
  758. $("#sqdw").val(NEWJSON1.join(","));
  759. $("#txdz").val(NEWJSONADDR.join(","));
  760. $("#yzbm").val(NEWJSONPOSTCODE.join(","));
  761. $("#dh").val(NEWJSONTEL.join(","));
  762. $("#cz").val(NEWJSONFAX.join(","));
  763. }
  764. });
  765. // //所属部门
  766. // tableSelect.render({
  767. // elem: '#ssbmName',
  768. // checkedKey: 'id',
  769. // searchKey: 'mc',
  770. // searchPlaceholder: '搜索部门',
  771. // table: {
  772. // url: AjaxUtil.ctx + 'baseCompany/dwlist',
  773. // cols: [
  774. // [
  775. // {type: 'radio'},
  776. // {type: 'numbers', align: 'center'},
  777. // {field: 'mc', width: '50%',title: '名称'},
  778. // {field: 'dwqc', width: '50%', title: '全称'}
  779. // ]
  780. // ]
  781. // },
  782. // done: function (elem, data) {
  783. // var NEWJSON = [];
  784. // var NEWJSON1 = [];
  785. // layui.each(data.data, function (index, item) {
  786. // NEWJSON.push(item.mc);
  787. // NEWJSON1.push(item.id);
  788. // });
  789. // elem.val(NEWJSON.join(","));
  790. // $("#ssbm").val(NEWJSON1.join(","));
  791. // }
  792. // });
  793. var tableData=new Array(); // 用于存放表格数据
  794. //项目负责人
  795. var directorData = eval('('+[[${report.staDirectorList}]]+')');
  796. var currTable1 = table.render({
  797. elem: '#currentTableId1',
  798. data:directorData,
  799. cols: [
  800. [
  801. {type: "checkbox", width: '60', fixed: 'left'},
  802. {field: 'xh', width: '100', title: '序号', align: 'center'},
  803. {field: 'xm', width: '120', title: '姓名'},
  804. {field: 'dwmc', width: '300', title: '单位'},
  805. {field: 'gddh', width: '150', title: '联系电话'}
  806. ]
  807. ],
  808. autoSort: true,
  809. initSort: {
  810. field: 'xh', //排序字段
  811. type: 'asc' //排序方式:desc 降序,asc 升序
  812. }
  813. });
  814. // 添加项目负责人
  815. $("button[lay-filter='btnAdd1']").click(function(){
  816. var index = layer.open({
  817. title: '添加项目负责人',
  818. type: 2,
  819. maxmin: true,
  820. shade: 0.2,
  821. area: [layerwidth + 'px', layerheight + 'px'],
  822. content: AjaxUtil.ctx + 'reportinfo/addfzr',
  823. end: function () {
  824. if (updateflag == 1) {
  825. var oldData = table.cache["currentTableId1"];
  826. var data1 = {
  827. "xh": prjMember.xh,
  828. "xm": prjMember.ryxm,
  829. "fzr": prjMember.ry,
  830. "gddh": prjMember.gddh,
  831. "dw": prjMember.dw,
  832. "dwmc": prjMember.dwmc
  833. };
  834. oldData.push(data1);
  835. table.reload('currentTableId1',{
  836. data : oldData
  837. });
  838. }
  839. updateflag = 0;
  840. layer.close(index);
  841. }
  842. });
  843. });
  844. // 编辑项目负责人
  845. $("button[lay-filter='btnEdit1']").click(function(){
  846. var members = table.cache["currentTableId1"];
  847. if(members.length == 0)
  848. return;
  849. var checkStatus = table.checkStatus('currentTableId1')
  850. ,data = checkStatus.data;
  851. if (data == null || data.length === 0) {
  852. Message.warning("请选择要编辑的项目人员!", 1500);
  853. } else if(data.length > 1) {
  854. Message.warning("请选择一条记录进行编辑操作!", 1500);
  855. } else {
  856. prjMember = {
  857. "xh": data[0].xh,
  858. "ryxm": data[0].xm,
  859. "ry": data[0].fzr,
  860. "gddh": data[0].gddh,
  861. "dw": data[0].dw,
  862. "dwmc": data[0].dwmc
  863. }
  864. var index = layer.open({
  865. title: '编辑项目负责人',
  866. type: 2,
  867. maxmin: true,
  868. shade: 0.2,
  869. area: [layerwidth + 'px', layerheight + 'px'],
  870. content: AjaxUtil.ctx + 'reportinfo/updatefzr',
  871. end: function () {
  872. if (updateflag == 1) {
  873. var data1 = {
  874. "xh": prjMember.xh,
  875. "xm": prjMember.ryxm,
  876. "fzr": prjMember.ry,
  877. "gddh": prjMember.gddh,
  878. "dw": prjMember.dw,
  879. "dwmc": prjMember.dwmc
  880. };
  881. var oldData = table.cache["currentTableId1"];
  882. for (var i = 0; i < oldData.length; i++) {
  883. var item = oldData[i];
  884. if (item.LAY_CHECKED) {//条件:选中
  885. // oldData.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  886. oldData[i] = data1;
  887. break;
  888. }
  889. }
  890. var currData = oldData;
  891. table.reload('currentTableId1', {
  892. data: currData
  893. });
  894. }
  895. updateflag = 0;
  896. layer.close(index);
  897. }
  898. });
  899. }
  900. });
  901. // 删除项目负责人
  902. $("button[lay-filter='btnDelete1']").click(function(){
  903. var checkStatus = table.checkStatus('currentTableId1')
  904. ,data = checkStatus.data;
  905. if (data == null || data.length === 0) {
  906. Message.warning("请选择要删除的项目负责人!", 1000);
  907. return;
  908. }
  909. var userIds = [];
  910. for (var i = 0, len = data.length; i < len; i++) {
  911. userIds.push(data[i].fzr);
  912. }
  913. layer.confirm('确定批量删除项目负责人吗?', function (index) {
  914. layer.close(index);
  915. var oldData = table.cache['currentTableId1'];
  916. for (var i = 0; i < oldData.length; i++) {
  917. var item = oldData[i];
  918. if ($.inArray(item.fzr,userIds) != -1) {
  919. oldData.splice(i, 1);
  920. i--;
  921. }
  922. }
  923. var currData = oldData;
  924. table.reload('currentTableId1', {
  925. data: currData
  926. });
  927. });
  928. });
  929. var dataMdhyy = eval('('+[[${report.mdhyy}]]+')');
  930. var currTable_mdhyy = fileTableInit(table,'#currentTableId_MDHYY', dataMdhyy, 'mdhyyFile');
  931. var dataGnwyjspzs = eval('('+[[${report.gnwyjspzs}]]+')');
  932. var currTable_yjsp = fileTableInit(table,'#currentTableId_YJSP', dataGnwyjspzs, 'yjspFile');
  933. var dataXmdllhsjyj = eval('('+[[${report.xmdllhsjyj}]]+')');
  934. var currTable_llsjyj = fileTableInit(table,'#currentTableId_LLSJYJ', dataXmdllhsjyj, 'llsjyjFile');
  935. var dataXmyjnrhssfa = eval('('+[[${report.xmyjnrhssfa}]]+')');
  936. var currTable_yjnr = fileTableInit(table,'#currentTableId_YJNR', dataXmyjnrhssfa, 'yjnrFile');
  937. var dataXmscyjhssfa = eval('('+[[${report.scyjfj}]]+')');
  938. var currTable_scyj = fileTableInit(table,'#currentTableId_SCYJ', dataXmscyjhssfa, 'scyjFile');
  939. var dataXmcddwdtj = eval('('+[[${report.xmcddwdtj}]]+')');
  940. var currTable_cddwtj = fileTableInit(table,'#currentTableId_CDDWTJ', dataXmcddwdtj, 'cddwtjFile');
  941. var dataFj = eval('('+[[${report.fj}]]+')');
  942. var currTable_fj = fileTableInit(table,'#currentTableId_FJ', dataFj,'fjFile');
  943. var dataYgzmwj = eval('('+[[${report.ygzmwj}]]+')');
  944. var currTable_qmgz = fileTableInit(table,'#currentTableId_QMGZ', dataYgzmwj, 'qmgzFile');
  945. //文件上传
  946. var uploadInst= upload.render({
  947. elem: '.upload' //绑定元素
  948. ,url: AjaxUtil.ctx + 'fileupload/upload'
  949. ,methd: 'post'
  950. ,accept: 'file'
  951. ,data: {}
  952. ,done: function(res){
  953. if (0 === res.code) {
  954. if(res.data.fileType == "personFile") {
  955. if (0 === res.data.code) {
  956. var currData = [];
  957. for(var i=0;i<res.data.list.length;i++) {
  958. var currMember = {
  959. "xm": res.data.list[i].xm,
  960. "fzr": res.data.list[i].id,
  961. "gddh": res.data.list[i].gddh,
  962. "dwmc": res.data.list[i].dwmc,
  963. "xh": res.data.list[i].xh
  964. };
  965. currData.push(currMember);
  966. };
  967. table.reload('currentTableId1', {
  968. data: currData
  969. });
  970. } else if (10 === res.data.code) {
  971. layer.alert("文件中部分人员未录入到系统!" + res.data.tipList.toString());
  972. } else if (20 === res.data.code) {
  973. layer.alert("文件中不存在可识别的记录!");
  974. } else {
  975. layer.alert("上传格式错误!");
  976. }
  977. table.reload('currentTableId1',{
  978. data : currData
  979. });
  980. }
  981. else {
  982. var tableID = "";
  983. var wbID = "";
  984. var oldData = [];
  985. switch (res.data.fileType){
  986. case "mdhyyFile":
  987. tableID ="currentTableId_MDHYY";
  988. wbID = "mdhyy";
  989. oldData = dataMdhyy;
  990. break;
  991. case "yjspFile":
  992. tableID ="currentTableId_YJSP";
  993. wbID = "gnwyjspzs";
  994. oldData = dataGnwyjspzs;
  995. break;
  996. case "llsjyjFile":
  997. tableID ="currentTableId_LLSJYJ";
  998. wbID = "xmdllhsjyj";
  999. oldData = dataXmdllhsjyj;
  1000. break;
  1001. case "yjnrFile":
  1002. tableID ="currentTableId_YJNR";
  1003. wbID = "xmyjnrhssfa";
  1004. oldData = dataXmyjnrhssfa;
  1005. break;
  1006. case "cddwtjFile":
  1007. tableID ="currentTableId_CDDWTJ";
  1008. wbID = "xmcddwdtj";
  1009. oldData = dataXmcddwdtj;
  1010. break;
  1011. case "fjFile":
  1012. tableID ="currentTableId_FJ";
  1013. wbID = "fj";
  1014. oldData = dataFj;
  1015. break;
  1016. case "qmgzFile":
  1017. tableID ="currentTableId_QMGZ";
  1018. wbID = "qmgz";
  1019. oldData = dataYgzmwj;
  1020. break;
  1021. case "scyjFile":
  1022. tableID ="currentTableId_SCYJ";
  1023. wbID = "scyjfj";
  1024. oldData = dataXmscyjhssfa;
  1025. break;
  1026. default:
  1027. tableID ="currentTableId_MDHYY";
  1028. wbID = "mdhyy";
  1029. oldData = dataMdhyy;
  1030. break
  1031. }
  1032. var curData = {
  1033. "wjm": res.data.fileName,
  1034. "scrq": res.data.fileDate,
  1035. "Url":res.data.fileUrl,
  1036. "sm": res.data.sm
  1037. };
  1038. oldData.push(curData);
  1039. table.reload(tableID, {
  1040. data: oldData
  1041. });
  1042. }
  1043. }
  1044. else
  1045. layer.alert("上传文件出现错误!");
  1046. }
  1047. ,error: function(){
  1048. layer.alert("上传文件出现错误!");
  1049. }
  1050. ,before:function(res){
  1051. let fileType = this.fileType;
  1052. this.data.fileType = fileType;
  1053. }
  1054. });
  1055. //删除文件(目的和意义)
  1056. $("button[lay-filter='delMdhyy']").click(function() {
  1057. if(dataMdhyy.length == 0)
  1058. return;
  1059. var checkStatus = table.checkStatus('currentTableId_MDHYY')
  1060. ,data = checkStatus.data;
  1061. if (data == null || data.length === 0) {
  1062. Message.warning("请选择要删除的文件!", 1000);
  1063. return;
  1064. }
  1065. for (var i = 0; i < dataMdhyy.length; i++) {
  1066. var item = dataMdhyy[i];
  1067. if (item.LAY_CHECKED) {//条件:选中
  1068. dataMdhyy.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  1069. i--;
  1070. }
  1071. }
  1072. //刷新表格
  1073. currTable_mdhyy.reload();
  1074. });
  1075. //删除文件(研究水平)
  1076. $("button[lay-filter='delYjsp']").click(function() {
  1077. if(dataGnwyjspzs.length == 0)
  1078. return;
  1079. var checkStatus = table.checkStatus('currentTableId_YJSP')
  1080. ,data = checkStatus.data;
  1081. if (data == null || data.length === 0) {
  1082. Message.warning("请选择要删除的文件!", 1000);
  1083. return;
  1084. }
  1085. for (var i = 0; i < dataGnwyjspzs.length; i++) {
  1086. var item = dataGnwyjspzs[i];
  1087. if (item.LAY_CHECKED) {//条件:选中
  1088. dataGnwyjspzs.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  1089. i--;
  1090. }
  1091. }
  1092. //刷新表格
  1093. currTable_yjsp.reload();
  1094. });
  1095. //删除文件(审查意见)
  1096. $("button[lay-filter='delscyj']").click(function() {
  1097. if(dataXmscyjhssfa.length == 0)
  1098. return;
  1099. var checkStatus = table.checkStatus('currentTableId_scyj')
  1100. ,data = checkStatus.data;
  1101. if (data == null || data.length === 0) {
  1102. Message.warning("请选择要删除的文件!", 1000);
  1103. return;
  1104. }
  1105. for (var i = 0; i < dataXmscyjhssfa.length; i++) {
  1106. var item = dataXmyjnrhssfa[i];
  1107. if (item.LAY_CHECKED) {//条件:选中
  1108. dataXmscyjhssfa.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  1109. i--;
  1110. }
  1111. }
  1112. //刷新表格
  1113. currTable_scyj.reload();
  1114. });
  1115. //删除文件(理论实践依据)
  1116. $("button[lay-filter='delLlsjyj']").click(function() {
  1117. if(dataXmdllhsjyj.length == 0)
  1118. return;
  1119. var checkStatus = table.checkStatus('currentTableId_LLSJYJ')
  1120. ,data = checkStatus.data;
  1121. if (data == null || data.length === 0) {
  1122. Message.warning("请选择要删除的文件!", 1000);
  1123. return;
  1124. }
  1125. for (var i = 0; i < dataXmdllhsjyj.length; i++) {
  1126. var item = dataXmdllhsjyj[i];
  1127. if (item.LAY_CHECKED) {//条件:选中
  1128. dataXmdllhsjyj.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  1129. i--;
  1130. }
  1131. }
  1132. //刷新表格
  1133. currTable_llsjyj.reload();
  1134. });
  1135. //删除文件(研究内容)
  1136. $("button[lay-filter='delYjnr']").click(function() {
  1137. if(dataXmyjnrhssfa.length == 0)
  1138. return;
  1139. var checkStatus = table.checkStatus('currentTableId_YJNR')
  1140. ,data = checkStatus.data;
  1141. if (data == null || data.length === 0) {
  1142. Message.warning("请选择要删除的文件!", 1000);
  1143. return;
  1144. }
  1145. for (var i = 0; i < dataXmyjnrhssfa.length; i++) {
  1146. var item = dataXmyjnrhssfa[i];
  1147. if (item.LAY_CHECKED) {//条件:选中
  1148. dataXmyjnrhssfa.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  1149. i--;
  1150. }
  1151. }
  1152. //刷新表格
  1153. currTable_yjnr.reload();
  1154. });
  1155. //删除文件(承担单位条件)
  1156. $("button[lay-filter='delCddwtj']").click(function() {
  1157. if(dataXmcddwdtj.length == 0)
  1158. return;
  1159. var checkStatus = table.checkStatus('currentTableId_CDDWTJ')
  1160. ,data = checkStatus.data;
  1161. if (data == null || data.length === 0) {
  1162. Message.warning("请选择要删除的文件!", 1000);
  1163. return;
  1164. }
  1165. for (var i = 0; i < dataXmcddwdtj.length; i++) {
  1166. var item = dataXmcddwdtj[i];
  1167. if (item.LAY_CHECKED) {//条件:选中
  1168. dataXmcddwdtj.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  1169. i--;
  1170. }
  1171. }
  1172. //刷新表格
  1173. currTable_cddwtj.reload();
  1174. });
  1175. //删除文件(附件)
  1176. $("button[lay-filter='delFj']").click(function() {
  1177. if(dataFj.length == 0)
  1178. return;
  1179. var checkStatus = table.checkStatus('currentTableId_FJ')
  1180. ,data = checkStatus.data;
  1181. if (data == null || data.length === 0) {
  1182. Message.warning("请选择要删除的文件!", 1000);
  1183. return;
  1184. }
  1185. for (var i = 0; i < dataFj.length; i++) {
  1186. var item = dataFj[i];
  1187. if (item.LAY_CHECKED) {//条件:选中
  1188. dataFj.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  1189. i--;
  1190. }
  1191. }
  1192. //刷新表格
  1193. currTable_fj.reload();
  1194. });
  1195. //删除文件(签名盖章)
  1196. $("button[lay-filter='delQmgz']").click(function() {
  1197. if(dataYgzmwj.length == 0)
  1198. return;
  1199. var checkStatus = table.checkStatus('currentTableId_QMGZ')
  1200. ,data = checkStatus.data;
  1201. if (data == null || data.length === 0) {
  1202. Message.warning("请选择要删除的文件!", 1000);
  1203. return;
  1204. }
  1205. for (var i = 0; i < dataYgzmwj.length; i++) {
  1206. var item = dataYgzmwj[i];
  1207. if (item.LAY_CHECKED) {//条件:选中
  1208. dataYgzmwj.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  1209. i--;
  1210. }
  1211. }
  1212. //刷新表格
  1213. currTable_qmgz.reload();
  1214. });
  1215. //进度安排
  1216. var planTableData=new Array(); // 用于存放表格数据
  1217. var layPlanTableId = "layTable";
  1218. var planData = eval('('+[[${report.staScheduleList}]]+')');
  1219. var planTable = table.render({
  1220. elem: '#planTableId',
  1221. id: layPlanTableId,
  1222. data: planData,
  1223. cols: [
  1224. [
  1225. {type: 'numbers', width:'60', align: 'center'},
  1226. {field: 'yjnr', width: '60%', title: '研究内容',edit: 'text', align: 'left'},
  1227. {field: 'qssj', width: '120', title: '起始日期',event:'planStartDate',data_field:'qsrq', align: 'center'},
  1228. {field: 'jssj', width: '120', title: '结束日期',event:'planEndDate',data_field:'jsrq', align: 'center'},
  1229. {field: 'tempId', title: '操作', width: '100', templet: function(d){
  1230. return '<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del" lay-id="'+ d.tempId +'"><i class="layui-icon layui-icon-delete"></i>移除</a>';
  1231. }}
  1232. ]
  1233. ],
  1234. autoSort: false,
  1235. // limits: [10, 15, 20, 25, 50, 100],
  1236. limit: 20,
  1237. page: false,
  1238. skin: 'grid',
  1239. done: function(res, curr, count) { // done为数据渲染完的回调
  1240. planTableData = res.data;
  1241. }
  1242. });
  1243. var active={
  1244. addRow: function(){ //添加一行
  1245. var oldData = table.cache[layPlanTableId];
  1246. console.log(oldData);
  1247. var newRow = {tempId: new Date().valueOf(), yjnr: '', qssj: '', jssj: ''};
  1248. oldData.push(newRow);
  1249. planTable.reload({
  1250. data : oldData
  1251. });
  1252. },
  1253. updateRow: function(obj){
  1254. var oldData = table.cache[layPlanTableId];
  1255. console.log(oldData);
  1256. for(var i=0, row; i < oldData.length; i++){
  1257. row = oldData[i];
  1258. if(row.tempId == obj.tempId){
  1259. $.extend(oldData[i], obj);
  1260. return;
  1261. }
  1262. }
  1263. planTable.reload({
  1264. data : oldData
  1265. });
  1266. },
  1267. removeEmptyTableCache: function(){
  1268. var oldData = table.cache[layPlanTableId];
  1269. for(var i=0, row; i < oldData.length; i++){
  1270. row = oldData[i];
  1271. if(!row || !row.tempId){
  1272. oldData.splice(i, 1); //删除一项
  1273. }
  1274. continue;
  1275. }
  1276. planTable.reload({
  1277. data : oldData
  1278. });
  1279. }
  1280. }
  1281. //激活事件
  1282. var activeByType = function (type, arg) {
  1283. if(arguments.length === 2){
  1284. active[type] ? active[type].call(this, arg) : '';
  1285. }else{
  1286. active[type] ? active[type].call(this) : '';
  1287. }
  1288. }
  1289. //注册按钮事件
  1290. $('.layui-btn[data-type]').on('click', function () {
  1291. var type = $(this).data('type');
  1292. activeByType(type);
  1293. });
  1294. //监听工具条
  1295. table.on('tool(planTableId)', function (obj) {
  1296. var data = obj.data, event = obj.event, tr = obj.tr; //获得当前行 tr 的DOM对象;
  1297. console.log(data);
  1298. switch(event){
  1299. case "planStartDate":
  1300. var field = $(this).data('field');
  1301. laydate.render({
  1302. elem: this.firstChild
  1303. , show: true //直接显示
  1304. , closeStop: this
  1305. , done: function (value, date) {
  1306. data[field] = value;
  1307. obj.update(data);
  1308. }
  1309. });
  1310. break;
  1311. case "planEndDate":
  1312. var field = $(this).data('field');
  1313. laydate.render({
  1314. elem: this.firstChild
  1315. , show: true //直接显示
  1316. , closeStop: this
  1317. , done: function (value, date) {
  1318. data[field] = value;
  1319. obj.update(data);
  1320. }
  1321. });
  1322. break;
  1323. case "del":
  1324. layer.confirm('真的删除行么?', function(index){
  1325. obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
  1326. layer.close(index);
  1327. activeByType('removeEmptyTableCache');
  1328. });
  1329. break;
  1330. }
  1331. });
  1332. //经费预算
  1333. $.ajax({
  1334. url: AjaxUtil.ctx + 'staBudget/list/' + xmId,
  1335. type: "post",
  1336. async: false,
  1337. dataType: "json",
  1338. success: function (result) {
  1339. dataBudget = result;
  1340. }
  1341. });
  1342. var insTb_Jfys;
  1343. function loadTreetable() {
  1344. insTb_Jfys = treeTable.render({
  1345. elem: '#currentTableId_Jfys',
  1346. data: dataBudget,
  1347. skin: 'grid',
  1348. tree: {
  1349. treeColIndex: 1,
  1350. treeSpid: "", //最上级的父级id
  1351. iconIndex: 1, // 折叠图标显示在第几列
  1352. isPidData: true,// 是否是id、pid形式数据
  1353. idName: 'bm', // id字段名称
  1354. pidName: 'fj', // pid字段名称
  1355. arrowType: 'arrow2',
  1356. getIcon: 'ew-tree-icon-style2',
  1357. openName: 'bm'
  1358. },
  1359. treeDefaultClose: false,
  1360. page: false,
  1361. // toolbar: '#toolbarDemo',
  1362. cols: [
  1363. [
  1364. {type: 'numbers'},
  1365. {field: 'mc', width: '26%', title: '名称'},
  1366. // {field: 'px', width: '6%', title: '排序'},
  1367. // {field: 'nf', width: '6%', title: '年份'},
  1368. {field: 'ysje', width: '12%', title: '预算金额(万元)'},
  1369. {field: "dw1", width: '15%', title: '陕西电科院(万元)', edit: 'number'},
  1370. {field: "dw2", width: '15%', title: '拟合作单位1(万元)', edit: 'number'},
  1371. {field: "dw3", width: '15%', title: '拟合作单位2(万元)', edit: 'number'},
  1372. {field: "dw4", width: '15%', title: '拟合作单位3(万元)', edit: 'number'},
  1373. {field: "dw5", width: '15%', title: '拟合作单位4(万元)', edit: 'number'},
  1374. {field: "dw6", width: '15%', title: '拟合作单位5(万元)', edit: 'number'}
  1375. // {field: 'hjbm', width: '8%', title: '合计编码'},
  1376. // {field: 'bz', width: '15%', title: '备注'}
  1377. ]
  1378. ]
  1379. });
  1380. }
  1381. //加载预算项
  1382. loadTreetable();
  1383. // 监听单元格编辑
  1384. treeTable.on('edit(currentTableId_Jfys)', function(obj){
  1385. var value = obj.value,
  1386. item = obj.data,
  1387. dw = obj.field;
  1388. if(item.children == undefined)
  1389. {
  1390. //当前行预算
  1391. setCurBudget(item.bm, dw, value);
  1392. //父级预算
  1393. setFjBudget(item.fj);
  1394. }
  1395. loadTreetable();
  1396. });
  1397. //当前行预算
  1398. function setCurBudget(bm, dw, value) {
  1399. for(var i = 0; i < dataBudget.length; i++) {
  1400. if(bm == dataBudget[i].bm)
  1401. {
  1402. value = parseFloat(value);
  1403. if(isNaN(value))
  1404. value = null;
  1405. //当前单元格
  1406. if(dw == "dw1") {
  1407. dataBudget[i].dw1 = value;
  1408. } else if(dw == "dw2") {
  1409. dataBudget[i].dw2 = value;
  1410. } else if(dw == "dw3") {
  1411. dataBudget[i].dw3 = value;
  1412. } else if(dw == "dw4") {
  1413. dataBudget[i].dw4 = value;
  1414. } else if(dw == "dw5") {
  1415. dataBudget[i].dw5 = value;
  1416. } else if(dw == "dw6") {
  1417. dataBudget[i].dw6 = value;
  1418. }
  1419. //正在编辑的预算
  1420. var dw1 = 0, dw2 = 0, dw3 = 0, dw4 = 0, dw5 = 0, dw6 = 0;
  1421. if(dataBudget[i].dw1 != null) {
  1422. dw1 = parseFloat(dataBudget[i].dw1);
  1423. if(isNaN(dw1))
  1424. dw1 = 0;
  1425. }
  1426. if(dataBudget[i].dw2 != null) {
  1427. dw2 = parseFloat(dataBudget[i].dw2);
  1428. if(isNaN(dw2))
  1429. dw2 = 0;
  1430. }
  1431. if(dataBudget[i].dw3 != null) {
  1432. dw3 = parseFloat(dataBudget[i].dw3);
  1433. if(isNaN(dw3))
  1434. dw3 = 0;
  1435. }
  1436. if(dataBudget[i].dw4 != null) {
  1437. dw4 = parseFloat(dataBudget[i].dw4);
  1438. if(isNaN(dw4))
  1439. dw4 = 0;
  1440. }
  1441. if(dataBudget[i].dw5 != null) {
  1442. dw5 = parseFloat(dataBudget[i].dw5);
  1443. if(isNaN(dw5))
  1444. dw5 = 0;
  1445. }
  1446. if(dataBudget[i].dw6 != null) {
  1447. dw6 = parseFloat(dataBudget[i].dw6);
  1448. if(isNaN(dw6))
  1449. dw6 = 0;
  1450. }
  1451. var ysje = dw1 + dw2 + dw3 + dw4 + dw5 + dw6;
  1452. if(ysje == 0)
  1453. dataBudget[i].ysje = "";
  1454. else
  1455. dataBudget[i].ysje = ysje;
  1456. break;
  1457. }
  1458. }
  1459. }
  1460. //父级预算
  1461. function setFjBudget(fj) {
  1462. if(fj != null && fj != '')
  1463. {
  1464. var dw1 = 0, dw2 = 0, dw3 = 0, dw4 = 0, dw5=0, dw6=0;
  1465. var flag = 0;
  1466. //子节点的值相加
  1467. for (var j = 0; j < dataBudget.length; j++) {
  1468. if (fj == dataBudget[j].fj)
  1469. {
  1470. var t1 = parseFloat(dataBudget[j].dw1);
  1471. if (!isNaN(t1))
  1472. dw1 += t1;
  1473. var t2 = parseFloat(dataBudget[j].dw2);
  1474. if (!isNaN(t2))
  1475. dw2 += t2;
  1476. var t3 = parseFloat(dataBudget[j].dw3);
  1477. if (!isNaN(t3))
  1478. dw3 += t3;
  1479. var t4 = parseFloat(dataBudget[j].dw4);
  1480. if (!isNaN(t4))
  1481. dw4 += t4;
  1482. var t5 = parseFloat(dataBudget[j].dw5);
  1483. if (!isNaN(t5))
  1484. dw5 += t5;
  1485. var t6 = parseFloat(dataBudget[j].dw6);
  1486. if (!isNaN(t6))
  1487. dw6 += t6;
  1488. }
  1489. }
  1490. //更新父节点的值
  1491. for (var j = 0; j < dataBudget.length; j++) {
  1492. if (fj == dataBudget[j].bm)
  1493. {
  1494. if (dw1 == 0)
  1495. dataBudget[j].dw1 = '';
  1496. else
  1497. dataBudget[j].dw1 = dw1.toFixed(2);
  1498. if (dw2 == 0)
  1499. dataBudget[j].dw2 = '';
  1500. else
  1501. dataBudget[j].dw2 = dw2.toFixed(2);
  1502. if (dw3 == 0)
  1503. dataBudget[j].dw3 = '';
  1504. else
  1505. dataBudget[j].dw3 = dw3.toFixed(2);
  1506. if (dw4 == 0)
  1507. dataBudget[j].dw4 = '';
  1508. else
  1509. dataBudget[j].dw4 = dw4.toFixed(2);
  1510. if (dw5 == 0)
  1511. dataBudget[j].dw5 = '';
  1512. else
  1513. dataBudget[j].dw5 = dw5.toFixed(2);
  1514. if (dw6 == 0)
  1515. dataBudget[j].dw6 = '';
  1516. else
  1517. dataBudget[j].dw6 = dw6.toFixed(2);
  1518. var ysje = dw1 + dw2 + dw3 + dw4 + dw5 + dw6;
  1519. if(ysje == 0) {
  1520. dataBudget[j].ysje = "";
  1521. }
  1522. else
  1523. dataBudget[j].ysje = ysje.toFixed(2);
  1524. setFjBudget(dataBudget[j].fj);
  1525. break;
  1526. }
  1527. }
  1528. }
  1529. }
  1530. //组织要保存的数据
  1531. function getBudget(budgets, data) {
  1532. var budget = {
  1533. "id": data.id,
  1534. "fj": data.fj,
  1535. "ysje": data.ysje,
  1536. "dw1": data.dw1,
  1537. "dw2": data.dw2,
  1538. "dw3": data.dw3,
  1539. "dw4": data.dw4,
  1540. "dw5": data.dw5,
  1541. "dw6": data.dw6
  1542. };
  1543. budgets.push(budget);
  1544. if (data.children != undefined) {
  1545. getChildNode(budgets, data);
  1546. }
  1547. }
  1548. function getChildNode(budgets, data) {
  1549. for (let item of data.children) {
  1550. getBudget(budgets, item);
  1551. }
  1552. }
  1553. // 监听确认按钮(基本信息)
  1554. form.on('submit(saveNormal)', function (data) {
  1555. //基本信息
  1556. AjaxUtil.post({
  1557. url: AjaxUtil.ctx + "reportinfo/doUpdateNormal",
  1558. data: data.field,
  1559. success: function (res) {
  1560. if (res.code === 0) {
  1561. Message.success(1000, res.message, function ()
  1562. {
  1563. parent.setUpdateFlag();
  1564. //项目负责人
  1565. var members = [];
  1566. var oldMembers = table.cache["currentTableId1"];
  1567. for (const item of oldMembers) {
  1568. var member = {
  1569. "zb": xmId,
  1570. "xh": item.xh,
  1571. "fzr": item.fzr,
  1572. "xm": item.xm
  1573. };
  1574. members.push(member);
  1575. }
  1576. AjaxUtil.post({
  1577. url: AjaxUtil.ctx + "staDirector/batchInsert/" + xmId,
  1578. contentType: "application/json",
  1579. data: JSON.stringify(members),
  1580. success: function (res) {
  1581. },
  1582. error: function (error) {
  1583. }
  1584. });
  1585. });
  1586. } else {
  1587. Message.error(res.message, 1000);
  1588. }
  1589. },
  1590. fail: function (res) {
  1591. layer.close(index);
  1592. Message.error(res.message, 1500);
  1593. },
  1594. error: function (error) {
  1595. }
  1596. });
  1597. return false;
  1598. });
  1599. // 监听确认按钮(目的和意义)
  1600. $("button[lay-filter='saveMdhyy']").click(function() {
  1601. var dataWB = [];
  1602. for (const item of dataMdhyy) {
  1603. var dfWb = {
  1604. "wjm": item.wjm,
  1605. "Url": item.Url,
  1606. "scrq": item.scrq,
  1607. "sm": item.sm
  1608. };
  1609. dataWB.push(dfWb);
  1610. }
  1611. $("#mdhyy").val(JSON.stringify(dataWB));
  1612. var project = {
  1613. "id": xmId,
  1614. "mdhyy": $("#mdhyy").val(),
  1615. "mdhyywb": $("#mdhyywb").val()
  1616. }
  1617. console.log(project);
  1618. var index = layer.load(0, {shade: 0.1});
  1619. AjaxUtil.post({
  1620. url: AjaxUtil.ctx + "reportinfo/doUpdateMdhyy",
  1621. contentType: "application/json",
  1622. data: JSON.stringify(project),
  1623. success: function (res) {
  1624. if (res.code === 0) {
  1625. Message.success(1000, res.message, function () {
  1626. parent.setUpdateFlag();
  1627. });
  1628. } else {
  1629. Message.error(res.message, 1000);
  1630. }
  1631. layer.close(index);
  1632. },
  1633. error: function (error) {
  1634. layer.close(index);
  1635. }
  1636. });
  1637. });
  1638. // 监听确认按钮(研究水平)
  1639. $("button[lay-filter='saveYjsp']").click(function() {
  1640. var dataWB = [];
  1641. for (const item of dataGnwyjspzs) {
  1642. var dfWb = {
  1643. "wjm": item.wjm,
  1644. "Url": item.Url,
  1645. "scrq": item.scrq,
  1646. "sm": item.sm
  1647. };
  1648. dataWB.push(dfWb);
  1649. }
  1650. $("#gnwyjspzs").val(JSON.stringify(dataWB));
  1651. var project = {
  1652. "id": xmId,
  1653. "gnwyjspzs": $("#gnwyjspzs").val(),
  1654. "gnwyjspzswb": $("#gnwyjspzswb").val()
  1655. }
  1656. var index = layer.load(0, {shade: 0.1});
  1657. AjaxUtil.post({
  1658. url: AjaxUtil.ctx + "reportinfo/doUpdateYjsp",
  1659. contentType: "application/json",
  1660. data: JSON.stringify(project),
  1661. success: function (res) {
  1662. if (res.code === 0) {
  1663. Message.success(1000, res.message, function () {
  1664. parent.setUpdateFlag();
  1665. });
  1666. } else {
  1667. Message.error(res.message, 1000);
  1668. }
  1669. layer.close(index);
  1670. },
  1671. error: function (error) {
  1672. layer.close(index);
  1673. }
  1674. });
  1675. });
  1676. // 监听确认按钮(理论实践依据)
  1677. $("button[lay-filter='saveLlsjyj']").click(function() {
  1678. var dataWB = [];
  1679. for (const item of dataXmdllhsjyj) {
  1680. var dfWb = {
  1681. "wjm": item.wjm,
  1682. "Url": item.Url,
  1683. "scrq": item.scrq,
  1684. "sm": item.sm
  1685. };
  1686. dataWB.push(dfWb);
  1687. }
  1688. $("#xmdllhsjyj").val(JSON.stringify(dataWB));
  1689. var project = {
  1690. "id": xmId,
  1691. "xmdllhsjyj": $("#xmdllhsjyj").val(),
  1692. "xmdllhsjyjwb": $("#xmdllhsjyjwb").val()
  1693. }
  1694. var index = layer.load(0, {shade: 0.1});
  1695. AjaxUtil.post({
  1696. url: AjaxUtil.ctx + "reportinfo/doUpdateLlsjyj",
  1697. contentType: "application/json",
  1698. data: JSON.stringify(project),
  1699. success: function (res) {
  1700. if (res.code === 0) {
  1701. Message.success(1000, res.message, function () {
  1702. parent.setUpdateFlag();
  1703. });
  1704. } else {
  1705. Message.error(res.message, 1000);
  1706. }
  1707. layer.close(index);
  1708. },
  1709. error: function (error) {
  1710. layer.close(index);
  1711. }
  1712. });
  1713. });
  1714. // 监听确认按钮(研究内容)
  1715. $("button[lay-filter='saveYjnr']").click(function() {
  1716. var dataWB = [];
  1717. for (const item of dataXmyjnrhssfa) {
  1718. var dfWb = {
  1719. "wjm": item.wjm,
  1720. "Url": item.Url,
  1721. "scrq": item.scrq,
  1722. "sm": item.sm
  1723. };
  1724. dataWB.push(dfWb);
  1725. }
  1726. $("#xmyjnrhssfa").val(JSON.stringify(dataWB));
  1727. var project = {
  1728. "id": xmId,
  1729. "xmyjnrhssfa": $("#xmyjnrhssfa").val(),
  1730. "xmyjnrhssfawb": $("#xmyjnrhssfawb").val()
  1731. }
  1732. var index = layer.load(0, {shade: 0.1});
  1733. AjaxUtil.post({
  1734. url: AjaxUtil.ctx + "reportinfo/doUpdateYjnr",
  1735. contentType: "application/json",
  1736. data: JSON.stringify(project),
  1737. success: function (res) {
  1738. if (res.code === 0) {
  1739. Message.success(1000, res.message, function () {
  1740. parent.setUpdateFlag();
  1741. });
  1742. } else {
  1743. Message.error(res.message, 1000);
  1744. }
  1745. layer.close(index);
  1746. },
  1747. error: function (error) {
  1748. layer.close(index);
  1749. }
  1750. });
  1751. });
  1752. // 监听确认按钮(经济性财务合规性)
  1753. $("button[lay-filter='saveJjxycwhgx']").click(function() {
  1754. var project = {
  1755. "id": xmId,
  1756. "jjxycwhgx": $("#jjxycwhgx").val()
  1757. }
  1758. var index = layer.load(0, {shade: 0.1});
  1759. AjaxUtil.post({
  1760. url: AjaxUtil.ctx + "reportinfo/doUpdateJjxycwhgx",
  1761. contentType: "application/json",
  1762. data: JSON.stringify(project),
  1763. success: function (res) {
  1764. if (res.code === 0) {
  1765. Message.success(1000, res.message, function () {
  1766. parent.setUpdateFlag();
  1767. });
  1768. } else {
  1769. Message.error(res.message, 1000);
  1770. }
  1771. layer.close(index);
  1772. },
  1773. error: function () {
  1774. layer.close(index);
  1775. }
  1776. });
  1777. });
  1778. // 监听确认按钮(预期目标)
  1779. $("button[lay-filter='saveYqmb']").click(function() {
  1780. var project = {
  1781. "id": xmId,
  1782. "yqmbhcgxs": $("#yqmbhcgxs").val()
  1783. }
  1784. var index = layer.load(0, {shade: 0.1});
  1785. AjaxUtil.post({
  1786. url: AjaxUtil.ctx + "reportinfo/doUpdateYqmb",
  1787. contentType: "application/json",
  1788. data: JSON.stringify(project),
  1789. success: function (res) {
  1790. if (res.code === 0) {
  1791. Message.success(1000, res.message, function () {
  1792. parent.setUpdateFlag();
  1793. });
  1794. } else {
  1795. Message.error(res.message, 1000);
  1796. }
  1797. layer.close(index);
  1798. },
  1799. error: function (error) {
  1800. layer.close(index);
  1801. }
  1802. });
  1803. });
  1804. // 监听确认按钮(合作单位)
  1805. $("button[lay-filter='saveHzdw']").click(function() {
  1806. var project = {
  1807. "id": xmId,
  1808. "hzdwhytgcdwlsqk": $("#hzdwhytgcdwlsqk").val()
  1809. }
  1810. var index = layer.load(0, {shade: 0.1});
  1811. AjaxUtil.post({
  1812. url: AjaxUtil.ctx + "reportinfo/doUpdateHzdw",
  1813. contentType: "application/json",
  1814. data: JSON.stringify(project),
  1815. success: function (res) {
  1816. if (res.code === 0) {
  1817. Message.success(1000, res.message, function () {
  1818. parent.setUpdateFlag();
  1819. });
  1820. } else {
  1821. Message.error(res.message, 1000);
  1822. }
  1823. layer.close(index);
  1824. },
  1825. error: function (error) {
  1826. layer.close(index);
  1827. }
  1828. });
  1829. });
  1830. // 监听确认按钮(承担单位条件)
  1831. $("button[lay-filter='saveCddw']").click(function() {
  1832. var dataWB = [];
  1833. for (const item of dataXmcddwdtj) {
  1834. var dfWb = {
  1835. "wjm": item.wjm,
  1836. "Url": item.Url,
  1837. "scrq": item.scrq,
  1838. "sm": item.sm
  1839. };
  1840. dataWB.push(dfWb);
  1841. }
  1842. $("#xmcddwdtj").val(JSON.stringify(dataWB));
  1843. var project = {
  1844. "id": xmId,
  1845. "xmcddwdtj": $("#xmcddwdtj").val()
  1846. }
  1847. var index = layer.load(0, {shade: 0.1});
  1848. AjaxUtil.post({
  1849. url: AjaxUtil.ctx + "reportinfo/doUpdateCddw",
  1850. contentType: "application/json",
  1851. data: JSON.stringify(project),
  1852. success: function (res) {
  1853. if (res.code === 0) {
  1854. Message.success(1000, res.message, function () {
  1855. parent.setUpdateFlag();
  1856. });
  1857. } else {
  1858. Message.error(res.message, 1000);
  1859. }
  1860. layer.close(index);
  1861. },
  1862. error: function (error) {
  1863. layer.close(index);
  1864. }
  1865. });
  1866. });
  1867. // 监听确认按钮(进度安排)
  1868. $("button[lay-filter='saveJdap']").click(function() {
  1869. var curData = [];
  1870. var oldData = table.cache[layPlanTableId];
  1871. for(var i = 0; i < oldData.length; i++){
  1872. var item = oldData[i];
  1873. if(item.yjnr == "" || item.qssj == "" || item.jssj == "") {
  1874. Message.error("请将进度安排填写完整!", 1500);
  1875. return false;
  1876. }else if(item.qssj>item.jssj){
  1877. Message.warning("起始日期必须小于结束日期", 1500);
  1878. return ;
  1879. }
  1880. var plan = {
  1881. "zb": xmId,
  1882. "xh": item.LAY_TABLE_INDEX + 1,
  1883. "yjnr": item.yjnr,
  1884. "qssj": item.qssj,
  1885. "jssj": item.jssj
  1886. };
  1887. curData.push(plan);
  1888. }
  1889. var index = layer.load(0, {shade: 0.1});
  1890. AjaxUtil.post({
  1891. url: AjaxUtil.ctx + "staSchedule/batchInsert/" + xmId,
  1892. contentType: "application/json",
  1893. data: JSON.stringify(curData),
  1894. success: function (res) {
  1895. if (res.code === 0) {
  1896. Message.success(res.message, 1000);
  1897. } else {
  1898. Message.error(res.message, 1000);
  1899. }
  1900. layer.close(index);
  1901. },
  1902. fail: function (res) {
  1903. layer.close(index);
  1904. Message.error(res.message, 1500);
  1905. },
  1906. error: function (error) {
  1907. layer.close(index);
  1908. }
  1909. });
  1910. return false;
  1911. });
  1912. // 监听确认按钮(经费预算)
  1913. $("button[lay-filter='saveJfys']").click(function jfys() {
  1914. var data = insTb_Jfys.options.data;
  1915. var budgets = new Array();
  1916. for(var i = 0; i < data.length; i++) {
  1917. getBudget(budgets, data[i]);
  1918. }
  1919. var index = layer.load(0, {shade: 0.1});
  1920. AjaxUtil.post({
  1921. url: AjaxUtil.ctx + "staBudget/doUpdateJfys",
  1922. contentType: "application/json",
  1923. data: JSON.stringify(budgets),
  1924. success: function (res) {
  1925. if (res.code === 0) {
  1926. Message.success(1500, res.message, function ()
  1927. {
  1928. $("#jfyszt").val('已保存');
  1929. loadTreetable();
  1930. parent.setUpdateFlag();
  1931. });
  1932. } else {
  1933. Message.error(res.message, 1000);
  1934. }
  1935. layer.close(index);
  1936. },
  1937. error: function (error) {
  1938. layer.close(index);
  1939. }
  1940. });
  1941. });
  1942. // // 监听确认按钮(审查意见)
  1943. // $("button[lay-filter='saveScyj']").click(function() {
  1944. // var project = {
  1945. // "id": xmId,
  1946. // "sqdwldscyj1": $("#sqdwldscyj1").val()
  1947. // }
  1948. // var index = layer.load(0, {shade: 0.1});
  1949. // AjaxUtil.post({
  1950. // url: AjaxUtil.ctx + "reportinfo/doUpdateScyj",
  1951. // contentType: "application/json",
  1952. // data: JSON.stringify(project),
  1953. // success: function (res) {
  1954. // if (res.code === 0) {
  1955. // Message.success(1500, res.message, function () {
  1956. // parent.setUpdateFlag();
  1957. // });
  1958. // } else {
  1959. // Message.error(res.message, 1000);
  1960. // }
  1961. // layer.close(index);
  1962. // },
  1963. // error: function (error) {
  1964. // layer.close(index);
  1965. // }
  1966. // });
  1967. // });
  1968. // 监听确认按钮(审查意见)
  1969. $("button[lay-filter='saveScyj']").click(function() {
  1970. if(xmId == -1) {
  1971. Message.error("请先创建可研报告,然后再保存审查意见",2000);
  1972. } else {
  1973. var dataWB = [];
  1974. var oldData = table.cache["currentTableId_SCYJ"];
  1975. for (const item of oldData) {
  1976. var dfWb = {
  1977. "wjm": item.wjm,
  1978. "Url": item.Url,
  1979. "scrq": item.scrq,
  1980. "sm": item.sm
  1981. };
  1982. dataWB.push(dfWb);
  1983. }
  1984. $("#sqdwldscyj1").val(JSON.stringify(dataWB));
  1985. var project = {
  1986. "id": xmId,
  1987. "sqdwldscyj1": $("#sqdwldscyj1").val(),
  1988. "scyjfj": $("#scyjfj").val()
  1989. }
  1990. var index = layer.load(0, {shade: 0.1});
  1991. AjaxUtil.post({
  1992. url: AjaxUtil.ctx + "reportinfo/doUpdateFj",
  1993. contentType: "application/json",
  1994. data: JSON.stringify(project),
  1995. success: function (res) {
  1996. if (res.code === 0) {
  1997. Message.success(1500, res.message, function () {
  1998. parent.setUpdateFlag();
  1999. });
  2000. } else {
  2001. Message.error(res.message, 1000);
  2002. }
  2003. layer.close(index);
  2004. },
  2005. error: function (error) {
  2006. layer.close(index);
  2007. }
  2008. });
  2009. }
  2010. });
  2011. // 监听确认按钮(附件)
  2012. $("button[lay-filter='saveFj']").click(function() {
  2013. var dataWB = [];
  2014. for (const item of dataFj) {
  2015. var dfWb = {
  2016. "wjm": item.wjm,
  2017. "Url": item.Url,
  2018. "scrq": item.scrq,
  2019. "sm": item.sm
  2020. };
  2021. dataWB.push(dfWb);
  2022. }
  2023. $("#fj").val(JSON.stringify(dataWB));
  2024. var project = {
  2025. "id": xmId,
  2026. "fj": $("#fj").val()
  2027. }
  2028. var index = layer.load(0, {shade: 0.1});
  2029. AjaxUtil.post({
  2030. url: AjaxUtil.ctx + "reportinfo/doUpdateFj",
  2031. contentType: "application/json",
  2032. data: JSON.stringify(project),
  2033. success: function (res) {
  2034. if (res.code === 0) {
  2035. Message.success(1500, res.message, function () {
  2036. parent.setUpdateFlag();
  2037. });
  2038. } else {
  2039. Message.error(res.message, 1000);
  2040. }
  2041. layer.close(index);
  2042. },
  2043. error: function (error) {
  2044. layer.close(index);
  2045. }
  2046. });
  2047. });
  2048. // 监听确认按钮(签名盖章)
  2049. $("button[lay-filter='saveQmgz']").click(function() {
  2050. var dataWB = [];
  2051. for (const item of dataYgzmwj) {
  2052. var dfWb = {
  2053. "wjm": item.wjm,
  2054. "Url": item.Url,
  2055. "scrq": item.scrq,
  2056. "sm": item.sm
  2057. };
  2058. dataWB.push(dfWb);
  2059. }
  2060. $("#ygzmwj").val(JSON.stringify(dataWB));
  2061. var project = {
  2062. "id": xmId,
  2063. "ygzmwj": $("#ygzmwj").val()
  2064. }
  2065. var index = layer.load(0, {shade: 0.1});
  2066. AjaxUtil.post({
  2067. url: AjaxUtil.ctx + "reportinfo/doUpdateQmgz",
  2068. contentType: "application/json",
  2069. data: JSON.stringify(project),
  2070. success: function (res) {
  2071. if (res.code === 0) {
  2072. Message.success(1500, res.message, function () {
  2073. parent.setUpdateFlag();
  2074. });
  2075. } else {
  2076. Message.error(res.message, 1000);
  2077. }
  2078. layer.close(index);
  2079. },
  2080. error: function (error) {
  2081. layer.close(index);
  2082. }
  2083. });
  2084. });
  2085. //双击(目的和意义)
  2086. table.on('rowDouble(currentTableId_MDHYY)', function (obj) {
  2087. window.open(obj.data.Url);
  2088. });
  2089. //双击(研究水平)
  2090. table.on('rowDouble(currentTableId_YJSP)', function (obj) {
  2091. window.open(obj.data.Url);
  2092. });
  2093. //双击(理论实践依据)
  2094. table.on('rowDouble(currentTableId_LLSJYJ)', function (obj) {
  2095. window.open(obj.data.Url);
  2096. });
  2097. //双击(研究内容)
  2098. table.on('rowDouble(currentTableId_YJNR)', function (obj) {
  2099. window.open(obj.data.Url);
  2100. });
  2101. //双击(承担单位条件)
  2102. table.on('rowDouble(currentTableId_CDDWTJ)', function (obj) {
  2103. window.open(obj.data.Url);
  2104. });
  2105. //双击(附件)
  2106. table.on('rowDouble(currentTableId_FJ)', function (obj) {
  2107. window.open(obj.data.Url);
  2108. });
  2109. //双击(签名盖章)
  2110. table.on('rowDouble(currentTableId_QMGZ)', function (obj) {
  2111. window.open(obj.data.Url);
  2112. });
  2113. // 监听取消按钮
  2114. $("button[lay-filter='cancleBtn']").click(function(){
  2115. var iframeIndex = parent.layer.getFrameIndex(window.name);
  2116. parent.layer.close(iframeIndex);
  2117. });
  2118. });
  2119. /**
  2120. * 扁平数据转树结构
  2121. * @returns {[]}
  2122. * @param data
  2123. * @param firstPid
  2124. */
  2125. function arrayToTree(data, firstPid) {
  2126. const result = [];
  2127. getChildren(data, result, firstPid)
  2128. return result;
  2129. }
  2130. function getChildren(data, result, parentId) {
  2131. for (const item of data) {
  2132. if (item.parentId === parentId) {
  2133. const newItem = {...item, children: []};
  2134. result.push(newItem);
  2135. getChildren(data, newItem.children, item.deptId);
  2136. }
  2137. }
  2138. }
  2139. function setUpdateFlag() {
  2140. updateflag = 1;
  2141. }
  2142. //从子页面设置父页面的值
  2143. function setData(id, name) {
  2144. ObjId = id;
  2145. ObjName = name;
  2146. }
  2147. function setMember(member) {
  2148. prjMember = member;
  2149. userList1.push(member);
  2150. }
  2151. function getMember() {
  2152. return prjMember;
  2153. }
  2154. function setCompany(company) {
  2155. prjCompany = company;
  2156. }
  2157. function fileTableInit(table,tableID,tableData){
  2158. return table.render({
  2159. elem: tableID,
  2160. data: tableData,
  2161. cols: [
  2162. [
  2163. {type: "checkbox", align: 'center'},
  2164. {type: 'numbers', align: 'center'},
  2165. {field: 'wjm', title: '文件名', width: '30%'},
  2166. {field: 'scrq', title: '上传日期', width: '20%'},
  2167. {field: 'sm', title: '说明', edit: 'text', width: '25%'}
  2168. ]
  2169. ],
  2170. autoSort: false,
  2171. limits: [10, 15, 20, 25, 50, 100],
  2172. limit: 10,
  2173. page: false,
  2174. skin: 'grid',
  2175. done: function(res, curr, count) { // done为数据渲染完的回调
  2176. }
  2177. });
  2178. }
  2179. </script>
  2180. </body>
  2181. </html>