editFundDetailSb.jsp 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8" %>
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <jsp:include page="../../../common/common-meta-include.jsp"></jsp:include>
  8. <jsp:include page="../../../common/common-js-include.jsp"></jsp:include>
  9. <jsp:include page="../../../common/common-css-include.jsp"></jsp:include>
  10. <!--[if lt IE 9]>
  11. <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
  12. <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
  13. <![endif]-->
  14. <style type="text/css">
  15. .layui-colla-content {
  16. border-width: 0px;
  17. left: 11px;
  18. top: 0px;
  19. width: -webkit-fill-available;
  20. height: 522px;
  21. background: inherit;
  22. background-color: rgba(255, 255, 255, 0.996078431372549);
  23. border: none;
  24. border-radius: 12px;
  25. -moz-box-shadow: none;
  26. -webkit-box-shadow: none;
  27. box-shadow: none;
  28. }
  29. .table_box h2 {
  30. margin-left: 30px;
  31. margin-top: 20px;
  32. height: 25px;
  33. width: 200px;
  34. font-size: 16px;
  35. color: #1c56a3;
  36. }
  37. #addAmt {
  38. font-size: 50px;
  39. }
  40. .layui-form-label {
  41. color: #6E6F80 !important;
  42. }
  43. .layui-colla-content {
  44. background: none;
  45. padding: 10px 0;
  46. }
  47. .layui-form-label {
  48. width: 130px;
  49. text-align: justify;
  50. text-align-last: justify;
  51. display: flex;
  52. justify-content: end;
  53. align-items: center;
  54. color: #666;
  55. padding: 9px 15px;
  56. }
  57. .layui-input {
  58. height: 38px;
  59. }
  60. .layui-input-block {
  61. display: flex;
  62. width: auto;
  63. }
  64. .layui-layout-admin {
  65. padding: 20px 40px;
  66. }
  67. .layui-show {
  68. height: auto;
  69. border: none;
  70. }
  71. .layui-input-block xm-select {
  72. height: 38px !important;
  73. }
  74. .layui-table-body .layui-table-cell {
  75. /*padding: 10px !important;*/
  76. }
  77. .layui-table-cell {
  78. height: 42px !important;
  79. line-height: 42px;
  80. }
  81. /*.table_box .layui-form{*/
  82. /* width: 90.2%;*/
  83. /*}*/
  84. </style>
  85. </head>
  86. <body>
  87. <div id="app"></div>
  88. <input type="hidden" id="id" value="${id}"/>
  89. <template id="template">
  90. <div>
  91. <form class="layui-form" lay-filter="formData" style="padding: 0 20px">
  92. <div class="layui-colla-content layui-show" style="height: auto;">
  93. <div class="table_box">
  94. <%-- <div class="layui-row">
  95. <h2>资金信息</h2>
  96. </div>--%>
  97. <div class="layui-row">
  98. <div class="layui-col-xs6 layui-col-sm6">
  99. <div class="layui-form-item">
  100. <label class="layui-form-label required" style="width: 186px;margin-left: 30px;">${zjlyTitle}申报(万元)</label>
  101. <div class="layui-input-block">
  102. <span id="addAmt" @click="addAmt" class="layui-btn layui-btn-sm layui-btn-normal">
  103. <i class="layui-icon">&#xe654;</i>
  104. </span>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. <div class="layui-row">
  110. <div class="layui-col-xs12 layui-col-sm12">
  111. <div class="layui-form-item">
  112. <label class="layui-form-label"
  113. style="width: 186px;margin-left: 30px;color: transparent !important;;">总投资金额(万元)</label>
  114. <div class="layui-input-block">
  115. <table class="layui-table" id="amtSource" lay-filter="amtSource"
  116. style="width: 0"></table>
  117. </div>
  118. </div>
  119. </div>
  120. </div>
  121. <div class="btn_group">
  122. <input type="button" class="btn btn1" style="color: #fff; background-color: #3362c9;"
  123. value="保存" lay-submit lay-filter="saveSubInfo"/>
  124. </div>
  125. </div>
  126. </div>
  127. </form>
  128. <div id="amtSourceEdit" style="display: none; padding: 10px 0 0;">
  129. <div class="layuimini-main">
  130. <div class="layui-form" lay-filter="amtSourceEdit" action=""
  131. onkeydown="if(event.keyCode==13){return false;}">
  132. <div class="layui-row">
  133. <div class="layui-col-xs24 layui-col-sm24">
  134. <div class="layui-form-item">
  135. <div class="layui-form-label label-longers required">
  136. 申报年度
  137. </div>
  138. <div class="layui-input-block">
  139. <input type="text" id="year" lay-verify="required" v-model="year" readonly="readonly" name="year"
  140. class="layui-input">
  141. </div>
  142. </div>
  143. </div>
  144. <div class="layui-col-xs24 layui-col-sm24">
  145. <div class='layui-form-item'>
  146. <label class="layui-form-label required" style="width: 150px">资金来源</label>
  147. <div class="layui-input-block">
  148. <select id="testAmt" disabled="disabled" name="testAmt" v-model="zjly" lay-verify="required" lay-filter="testAmt">
  149. <option value="">请选择</option>
  150. <c:forEach items="${ZJLY }" var="zj">
  151. <c:if test="${zjylId eq zj.id}">
  152. <option value="${zj.id }" selected="selected">${zj.title }</option>
  153. </c:if>
  154. <c:if test="${zjylId!=zj.id}">
  155. <option value="${zj.id }">${zj.title }</option>
  156. </c:if>
  157. </c:forEach>
  158. </select>
  159. </div>
  160. </div>
  161. </div>
  162. </div>
  163. <%-- <div class="layui-row">
  164. <div class="layui-col-xs24 layui-col-sm24">
  165. <div class='layui-form-item'>
  166. <label class="layui-form-label " style="width: 150px">申报金额(万元)</label>
  167. <div class="layui-input-block">
  168. <input id="zjAmt" min="0" class="layui-input" type="number"/>
  169. </div>
  170. </div>
  171. </div>
  172. </div>--%>
  173. <div class="layui-row">
  174. <div class="layui-col-xs24 layui-col-sm24">
  175. <div class='layui-form-item'>
  176. <label class="layui-form-label required" style="width: 150px">申报金额(万元)</label>
  177. <div class="layui-input-block">
  178. <input id="zjAmtSj" min="0" lay-verify="required" class="layui-input" type="number"/>
  179. </div>
  180. </div>
  181. </div>
  182. </div><%--
  183. <div class="layui-row">
  184. <div class="layui-col-xs24 layui-col-sm24">
  185. <div class='layui-form-item'>
  186. <label class="layui-form-label " style="width: 150px">已支付金额(万元)</label>
  187. <div class="layui-input-block">
  188. <input id="zjAmtPay" min="0" class="layui-input" type="number"/>
  189. </div>
  190. </div>
  191. </div>
  192. </div>--%>
  193. <div class="layui-row">
  194. <div class="layui-col-xs24 layui-col-sm24">
  195. <div class='layui-form-item'>
  196. <label class="layui-form-label required" style="width: 150px">申报时间</label>
  197. <div class="layui-input-block">
  198. <input type="text" id="taskDate" v-model="taskDate"
  199. name="taskDate"
  200. lay-verify="required"
  201. readonly="readonly" autocomplete="off" class="layui-input">
  202. </div>
  203. </div>
  204. </div>
  205. </div>
  206. <div class="layui-row">
  207. <div class="layui-form-item">
  208. <label class="layui-form-label" style="width: 150px"></label>
  209. <div class="layui-input-block">
  210. <button class="layui-btn-submit" @click="closePane">取消</button>
  211. <button class="layui-btn-submit" style="margin-left: 10px" lay-submit
  212. lay-filter="amtConfirm">确定
  213. </button>
  214. </div>
  215. </div>
  216. </div>
  217. </div>
  218. </div>
  219. </div>
  220. </div>
  221. </template>
  222. <script type="text/text" id="amtToolBar">
  223. <div class="toolBar">
  224. <span javascript:void(0); lay-event="delAmt">删除</span>
  225. </div>
  226. </script>
  227. <script type="text/html" id="planToolBar">
  228. <div class="toolBar">
  229. <span title="编辑" lay-event="planEdit">编辑</span>
  230. {{#if(d.id == null || d.statusSp == '0') { }}
  231. <span title="删除" lay-event="delPlan">删除</span>
  232. {{#}}}
  233. </div>
  234. </script>
  235. <script type="text/html" id="manageToolBar">
  236. <div class="toolBar"><span title="删除" lay-event="delManage">删除</span></div>
  237. </script>
  238. <script type="text/html" id="dateEdit">
  239. <input type="text" class="layui-input planDate" value="{{d.planDate}}" name="planDate" style="margin-top: -4%"
  240. readonly="readonly"
  241. >
  242. </script>
  243. <script type="text/html" id="yearEdit">
  244. <input type="text" class="layui-input yearDate" value="{{d.year}}" name="year" style="margin-top: -4%"
  245. readonly="readonly"
  246. >
  247. </script>
  248. <script type="text/javascript">
  249. new Vue({
  250. el: "#app",
  251. template: "#template",
  252. data: {
  253. taskDate: new Date().format("yyyy-MM-dd"),
  254. tabActive: 1,
  255. subInfo: {
  256. unitId: "${currUnitId}",
  257. subjectId: "",
  258. indusKind: "",
  259. mainId: "",
  260. subName: "",
  261. kindNature: "",
  262. isRk: "1",
  263. propKind: "",
  264. kind: ""
  265. },
  266. subInfo:{id:'${id}'},
  267. zjly:'${zjlyId}',
  268. year:'',
  269. kindAmt: {},
  270. testAmt: "",
  271. testAmtName: "${zjlyTilte}",
  272. amtSource: [],
  273. delAmtSource: [],
  274. closeMark: false,
  275. kindSelect: null,
  276. cat:'1',
  277. planList: [],
  278. planEditInfo: {},
  279. currObjData: {},
  280. delPlanList: [],
  281. manageList: [],
  282. delManageList: []
  283. },
  284. mounted: function () {
  285. this.init();
  286. },
  287. methods: {
  288. init: function () {
  289. var self = this;
  290. layui.laydate.render({
  291. elem: "#taskDate",
  292. type: 'date',
  293. theme: layDateTheme,
  294. done: function (data) {
  295. self.taskDate = data;
  296. }
  297. });
  298. layui.laydate.render({
  299. elem: '#year',
  300. type: 'year',
  301. theme: layDateTheme,
  302. btns: ['now', 'confirm', 'clear']
  303. /* ,
  304. value: new Date().getFullYear()*/
  305. });
  306. /*layui.laydate.render({
  307. elem : "#beginDate",
  308. type : "date",
  309. theme: layDateTheme,
  310. done : function(value){
  311. if (self.subInfo.endDate!=null){
  312. var endDate=new Date(self.subInfo.endDate);
  313. var beginDate=new Date(value);
  314. if (endDate>=beginDate){
  315. self.subInfo.beginDate = value;
  316. }else{
  317. layer.msg("开始时间必须小于结束时间");
  318. self.subInfo.beginDate = value;
  319. }
  320. }else{
  321. self.subInfo.beginDate = value;
  322. }
  323. }
  324. });
  325. layui.laydate.render({
  326. elem : "#endDate",
  327. type : "date",
  328. theme: layDateTheme,
  329. done : function(value){
  330. if (self.subInfo.beginDate!=null){
  331. var endDate=new Date(value);
  332. var beginDate=new Date(self.subInfo.beginDate);
  333. if (beginDate<=endDate){
  334. self.subInfo.endDate = value;
  335. }else{
  336. layer.msg("结束时间必须大于开始时间");
  337. self.subInfo.endDate = value;
  338. }
  339. }else{
  340. self.subInfo.endDate = value;
  341. }
  342. }
  343. });
  344. layui.laydate.render({
  345. elem : "#planEndDate",
  346. type : "date",
  347. theme: layDateTheme,
  348. done : function(value){
  349. self.planEditInfo.endDate = value;
  350. }
  351. });*/
  352. layui.form.on("submit(amtConfirm)", function (obj) {
  353. /* var amt = $("#zjAmt").val();
  354. if (amt.trim() != "") {
  355. if (!isNumber(amt) || Number(amt) < 0) {
  356. App.msg.warn("请填写正数的金额");
  357. return;
  358. }
  359. }*/
  360. var amtSj = $("#zjAmtSj").val();
  361. if (amtSj.trim() != "") {
  362. if (!isNumber(amtSj) || Number(amtSj) < 0) {
  363. App.msg.warn("请填写正数的金额");
  364. return;
  365. }
  366. }
  367. // alert(JSON.stringify(self.testAmtName));
  368. /* var amtPay = $("#zjAmtPay").val();
  369. if (amtPay.trim() != "") {
  370. if (!isNumber(amtPay) || Number(amtPay) < 0) {
  371. App.msg.warn("请填写正数的已支付金额");
  372. return;
  373. }
  374. }*/
  375. /* //获取选择的值。
  376. if (self.amtSource.filter((item, index) => {
  377. return item.sourceId == self.testAmt;
  378. }).length > 0) {
  379. //存在,阻断
  380. App.msg.warn("该类型已被选择");
  381. } else {*/
  382. var year = $("#year").val();
  383. self.amtSource.push({
  384. sourceId: self.zjly,
  385. sourceName: "${zjlyTitle}",
  386. /* amt: amt,*/
  387. amtSj: amtSj,
  388. /* amtPay: amtPay,*/
  389. planDate: self.taskDate,
  390. year:year,
  391. });
  392. self.initAmtSource();
  393. self.closePane();
  394. /* }*/
  395. }
  396. )
  397. ;
  398. /*layui.form.on("submit(planConfirm)", function(obj){
  399. self.addPlanData();
  400. });
  401. layui.form.on("select(subjectId)",function(data){
  402. var ztdw = $("#subjectId option:checked").attr("ztdw");
  403. self.subInfo.subjectId = data.value;
  404. self.subInfo.mainId = ztdw;
  405. });
  406. layui.form.on("select(kindNature)",function(data){
  407. self.subInfo.kindNature = data.value;
  408. self.chooseTzxz(data.value);
  409. });*/
  410. var kind = [];
  411. <c:forEach items="${XMLX}" var="xm">
  412. kind.push({value: "${xm.code}", name: "${xm.title}"});
  413. </c:forEach>
  414. /* this.kindSelect = layui.xmSelect.render({
  415. el:'#kind',
  416. language:'zn',
  417. data: kind
  418. });*/
  419. layui.form.on("select(indusKind)", function (data) {
  420. self.subInfo.indusKind = data.value;
  421. });
  422. layui.form.on("select(propKind)", function (data) {
  423. self.subInfo.propKind = data.value;
  424. });
  425. layui.form.on("select(testAmt)", function (data) {
  426. self.zjly = data.value;
  427. self.testAmtName = this.innerText;
  428. });
  429. layui.form.on("submit(saveSubInfo)", function (obj) {
  430. self.saveSubInfo();
  431. });
  432. layui.table.on("edit(amtSource)", function (obj) {
  433. var oldText = $(this).prev().text();
  434. if (obj.value != '' && !isNumber(obj.value)) {
  435. App.msg.warn("请填写数字");
  436. $(this).val(oldText);
  437. obj.value = oldText;
  438. obj.data[obj.field] = oldText;
  439. obj.update(obj.data);
  440. self.amtSource = layui.table.getData("amtSource");
  441. } else {
  442. self.amtSource = layui.table.getData("amtSource");
  443. }
  444. layui.table.reload('amtSource', {
  445. data: self.amtSource
  446. });
  447. });
  448. this.getForm();
  449. },
  450. initAmtSource:
  451. function () {
  452. var self = this;
  453. layui.table.render({
  454. elem: '#amtSource', // 指定原始表格元素选择器(推荐id选择器)
  455. even: true,
  456. cols: [[ // 设置表头
  457. {type: 'numbers', title: '序号'},
  458. {field: 'sourceName', title: '资金来源'},
  459. /* {field: 'amt', title: '申报资金(万元)', edit: 'text'},*/
  460. {field: 'amtSj', title: '申报资金(万元)', edit: 'text'},
  461. {field: 'planDate', title: '申报时间', minWidth: 50, templet: "#dateEdit"},
  462. {field: 'year', title: '申报年度',templet: "#yearEdit"},
  463. /* {field: 'amtPay', title: '已支付资金(万元)', edit: 'text'},
  464. {
  465. field: 'payRate', title: '已支付率', templet: function (row) {
  466. if (row.amtPay && row.amtSj && row.amtSj > 0) {
  467. return (row.amtPay * 100 / row.amtSj).toFixed(2) + "%";
  468. } else {
  469. return "0%";
  470. }
  471. }
  472. },*/
  473. {title: '操作', align: 'center', toolbar: '#amtToolBar'}
  474. ]],
  475. limit: self.amtSource.length,
  476. data: self.amtSource,
  477. done: function () {
  478. $('.planDate').each(function () {
  479. layui.laydate.render({
  480. elem: this,
  481. type: 'date',
  482. theme: layDateTheme,
  483. done: function (value) {
  484. $('.planDate').change();
  485. var elem = $(this.elem);
  486. var trElem = elem.parents('tr');
  487. var tableData = layui.table.cache['amtSource'];
  488. // 更新到表格的缓存数据中,才能在获得选中行等等其他的方法中得到更新之后的值
  489. tableData[trElem.data('index')][elem.attr('name')] = value;
  490. self.amtSource = tableData;
  491. }
  492. })
  493. })
  494. $('.yearDate').each(function () {
  495. layui.laydate.render({
  496. elem: this,
  497. type: 'year',
  498. theme: layDateTheme,
  499. done: function (value) {
  500. $('.yearDate').change();
  501. var elem = $(this.elem);
  502. var trElem = elem.parents('tr');
  503. var tableData = layui.table.cache['amtSource'];
  504. // 更新到表格的缓存数据中,才能在获得选中行等等其他的方法中得到更新之后的值
  505. tableData[trElem.data('index')][elem.attr('name')] = value;
  506. self.amtSource = tableData;
  507. }
  508. })
  509. })
  510. }
  511. });
  512. layui.table.on("tool(amtSource)", function (obj) {
  513. self[obj.event].call(this, obj);
  514. });
  515. }
  516. ,
  517. delAllAmt: function () {
  518. for (var i = 0; i < this.amtSource.length; i++) {
  519. if (this.amtSource[i].id) {
  520. this.amtSource[i].logicDeleteFlag = 1;
  521. this.delAmtSource.push(this.amtSource[i]);
  522. }
  523. }
  524. this.amtSource = [];
  525. }
  526. ,
  527. delAmt: function (obj) {
  528. if (obj.data.id) {
  529. obj.data.logicDeleteFlag = 1;
  530. this.delAmtSource.push(obj.data);
  531. obj.del();
  532. } else {
  533. obj.del();
  534. }
  535. this.amtSource = layui.table.getData("amtSource");
  536. this.initAmtSource();
  537. }
  538. ,
  539. chooseTzxz: function (kindNature) {
  540. var self = this;
  541. if (kindNature == "2") {
  542. $("#addAmt").hide();
  543. //设置企业投资
  544. if (self.amtSource.length == 1 && self.amtSource[0].sourceName == '社会资金') {
  545. return;
  546. }
  547. self.delAllAmt();
  548. var qyzj = $("#testAmt").find("option").filter((index, item) => {
  549. return item.innerText == '社会资金';
  550. }).eq(0);
  551. self.amtSource.push({sourceId: qyzj.val(), sourceName: qyzj.text().trim()});
  552. this.initAmtSource();
  553. } else {
  554. $("#addAmt").show();
  555. //非企业投资
  556. if (self.amtSource.length == 1 && self.amtSource[0].sourceName == '社会资金') {
  557. self.delAllAmt();
  558. this.initAmtSource();
  559. return;
  560. }
  561. }
  562. },
  563. getForm: function () {
  564. var id = $("#id").val();
  565. var self = this;
  566. if (id == "") {
  567. App.msg.warn("请从正规页面进入");
  568. return;
  569. } else {
  570. App.postJson("/api/subject/subInfo/getDetailById",{id: self.subInfo.id,cat:self.cat,}, function (resc) {
  571. if (resc.success) {
  572. /* self.amtSource = resc.data;*/
  573. //self.kindSelect.setValue(self.subInfo.kind.split(","));
  574. self.amtSource = resc.data || [];
  575. self.initAmtSource();
  576. self.delAmtSource = [];
  577. setTimeout(function () {
  578. layui.form.render();
  579. }, 200);
  580. // self.closeWin();
  581. }
  582. });
  583. /* App.postJson("/api/subject/process/getPlanList",{subId : id}, function(res){
  584. if(res.success){
  585. self.planList = res.data;
  586. self.loadPlanTable();
  587. }
  588. }); */
  589. /* App.postJson("/api/subject/subInfo/getManageList",{subId : id}, function(res){
  590. if(res.success){
  591. self.manageList = res.data;
  592. self.loadManageTable();
  593. }
  594. });*/
  595. }
  596. }
  597. ,
  598. addAmt: function () {
  599. var self = this;
  600. $("#zjAmt").val("");
  601. $("#zjAmtSj").val("");
  602. this.planEditPanl = layer.open({
  603. title: "资金选择",
  604. type: 1,
  605. content: $("#amtSourceEdit"),
  606. area: ['600px', '480px']
  607. });
  608. layui.form.render();
  609. }
  610. ,
  611. closePane: function () {
  612. layer.close(this.planEditPanl);
  613. }
  614. ,
  615. onChangeActive: function (ind) {
  616. this.tabActive = ind;
  617. $(".layui-colla-content").removeClass("layui-show");
  618. $($(".layui-colla-content")[ind - 1]).addClass("layui-show");
  619. }
  620. ,
  621. saveSubInfo: function () {
  622. var self = this;
  623. var saveAmtSource = this.amtSource.concat(this.delAmtSource);
  624. this.subInfo.subSourceDetail = saveAmtSource;
  625. /* alert(JSON.stringify(this.subInfo.subSourceDetail))*/
  626. var data={
  627. subInfo:this.subInfo,
  628. zjlyId:'${zjlyId}',
  629. cat:self.cat
  630. }
  631. App.msg.confirm("确认提交资金来源信息吗?", function () {
  632. App.postJson("/api/subject/subInfo/saveEditFundDetail", data, function (res) {
  633. if (res.success) {
  634. self.closeMark = true;
  635. App.msg.success("保存成功");
  636. App.postJson("/api/subject/subInfo/getDetailById", {id: self.subInfo.id,cat:self.cat,zjlyId:'${zjlyId}'}, function (resc) {
  637. if (resc.success) {
  638. /* self.amtSource = resc.data;*/
  639. //self.kindSelect.setValue(self.subInfo.kind.split(","));
  640. self.amtSource = resc.data || [];
  641. self.initAmtSource();
  642. self.delAmtSource = [];
  643. setTimeout(function () {
  644. layui.form.render();
  645. }, 200);
  646. // self.closeWin();
  647. }
  648. });
  649. }
  650. });
  651. })
  652. }
  653. ,
  654. addPlan: function () {
  655. var self = this;
  656. this.edit = false;
  657. this.planEditInfo = {
  658. numRate: 1
  659. };
  660. this.planEditPanl = layer.open({
  661. title: "新增计划",
  662. type: 1,
  663. content: $("#planEdit"),
  664. area: ['500px', 'auto']
  665. })
  666. }
  667. ,
  668. addPlanData: function () {
  669. if (this.planEditInfo.numRate > 10 || this.planEditInfo.numRate <= 0 || this.planEditInfo.numRate % 1 != 0) {
  670. layer.msg("进度权重必须是1-10的整数", {icon: 5, time: 2000});
  671. return;
  672. }
  673. var startDate = $("#beginDate").val();
  674. var endDate = new Date(this.planEditInfo.endDate);
  675. if (startDate > endDate) {
  676. layer.msg("计划结束时间不能小于项目开始时间!!! 项目开始时间" + startDate);
  677. return;
  678. }
  679. if (this.edit) {
  680. var dataIndex = this.currPlanObj.tr[0].dataset.index;
  681. if (this.planList.filter((item, index) => {
  682. return index != dataIndex && item.endDate == this.planEditInfo.endDate
  683. }).length > 0) {
  684. App.msg.warn(this.planEditInfo.endDate + "结束时间已存在,不能重复");
  685. return;
  686. }
  687. this.currPlanObj.update(this.planEditInfo);
  688. } else {
  689. if (this.planList.filter(item => {
  690. return item.endDate == this.planEditInfo.endDate
  691. }).length > 0) {
  692. App.msg.warn(this.planEditInfo.endDate + "结束时间已存在,不能重复");
  693. return;
  694. }
  695. this.planList.push(this.planEditInfo);
  696. }
  697. this.sort();
  698. this.closePane();
  699. }
  700. ,
  701. planEdit: function (obj) {
  702. this.currPlanObj = obj;
  703. this.edit = true;
  704. this.planEditInfo = obj.data;
  705. var self = this;
  706. this.planEditPanl = layer.open({
  707. title: "新增计划",
  708. type: 1,
  709. content: $("#planEdit"),
  710. area: ["500px", "500px"]
  711. });
  712. }
  713. ,
  714. delPlan: function (obj) {
  715. var self = this;
  716. App.msg.confirm("确认删除该计划吗?", function () {
  717. if (obj.data.id) {
  718. obj.data.logicDeleteFlag = 1;
  719. self.delPlanList.push(obj.data);
  720. obj.del();
  721. self.planList = layui.table.getData("planList");
  722. } else {
  723. obj.del();
  724. self.planList = layui.table.getData("planList");
  725. }
  726. self.sort();
  727. })
  728. }
  729. ,
  730. /* loadPlanTable : function(){
  731. var self = this;
  732. layui.table.render({
  733. elem: '#planList', // 指定原始表格元素选择器(推荐id选择器)
  734. even: true,
  735. cols: [[ // 设置表头
  736. {type: 'numbers',title:'序号'},
  737. {field: 'beginDate', title: '开始时间', minWidth: 120},
  738. {field: 'endDate', title: '结束时间', minWidth: 120},
  739. {field: 'content', title: '工作内容', minWidth: 200},
  740. {field: 'numRate', title: '进度权重', minWidth: 100},
  741. {field: 'remark', title: '备注', width: 250},
  742. {title: '操作', align:'center', toolbar: '#planToolBar'}
  743. ]],
  744. data : self.planList
  745. });
  746. layui.table.on("tool(planList)", function(obj){
  747. self[obj.event].call(this, obj);
  748. })
  749. }, */
  750. sort: function () {
  751. var beginDate = $("#beginDate").val();
  752. this.planList.sort(function (a, b) {
  753. var date1 = new Date(a.endDate);
  754. var date2 = new Date(b.endDate);
  755. return date1.getTime() > date2.getTime() ? 1 : -1;
  756. });
  757. for (var i = 0; i < this.planList.length; i++) {
  758. if (i == 0) {
  759. this.planList[i].beginDate = beginDate;
  760. } else {
  761. var endDate = new Date(this.planList[i - 1].endDate);
  762. endDate = endDate.addDays(1);
  763. this.planList[i].beginDate = layui.util.toDateString(endDate, "yyyy-MM-dd");
  764. }
  765. }
  766. this.loadPlanTable();
  767. }
  768. ,
  769. savePlan: function () {
  770. var plans = this.planList;
  771. var subId = this.subInfo.id;
  772. for (var i = 0; i < this.delPlanList.length; i++) {
  773. plans.push(this.delPlanList[i]);
  774. }
  775. this.planList = plans;
  776. var self = this;
  777. var data = {
  778. subId: subId,
  779. list: self.planList
  780. }
  781. App.msg.confirm("确认提交计划吗?", function () {
  782. App.postJson("/api/subject/subInfo/saveEditSubInfo", {planList: data}, function (res) {
  783. if (res.success) {
  784. App.msg.warn("提交成功");
  785. App.postJson("/api/subject/process/getPlanList", {subId: subId}, function (resc) {
  786. if (resc.success) {
  787. self.planList = resc.data;
  788. self.delPlanList = [];
  789. self.loadPlanTable();
  790. }
  791. });
  792. }
  793. });
  794. });
  795. }
  796. ,
  797. addManage: function () {
  798. var self = this;
  799. this.currObjData = {
  800. manageId: "",
  801. departId: "",
  802. nameLead: "",
  803. tel: ""
  804. };
  805. $("select[name='manageId']").next().find("input").eq(0).val("")
  806. this.setJgDept("");
  807. layui.form.render();
  808. layui.use('form', function () {
  809. layui.form.render('select');
  810. })
  811. this.planEditPanl = layer.open({
  812. title: "新增监管单位",
  813. type: 1,
  814. content: $("#manageEdit"),
  815. area: ['500px', 'auto']
  816. })
  817. }
  818. ,
  819. loadManageTable: function () {
  820. var self = this;
  821. layui.table.render({
  822. elem: '#manageList', // 指定原始表格元素选择器(推荐id选择器)
  823. even: true,
  824. cols: [[ // 设置表头
  825. {type: 'numbers', title: '序号', align: 'center'},
  826. {field: 'manageName', title: '监管单位'},
  827. {field: 'departName', title: '责任科室'},
  828. {field: 'nameLead', title: '责任领导',},
  829. {field: 'tel', title: '联系电话'},
  830. {title: '操作', align: 'center', toolbar: '#manageToolBar'}
  831. ]],
  832. data: self.manageList
  833. });
  834. layui.table.on("tool(manageList)", function (obj) {
  835. self[obj.event].call(this, obj);
  836. })
  837. }
  838. ,
  839. setJgDept: function (unitId) {
  840. $("select[name='departId']").html("<option value=''>--请选择--</option>");
  841. layui.form.render();
  842. if (unitId != '') {
  843. App.postJson("/api/jdepart/listByUnit", {unitId: unitId}, function (res) {
  844. for (var i = 0; i < res.data.length; i++) {
  845. let cuData = res.data[i];
  846. $("select[name='departId']")
  847. .append("<option value='" + cuData.id + "' tel='" + cuData.tel + "' nameLead='" + cuData.nameLead + "'>" + cuData.title + "</option>");
  848. }
  849. layui.form.render();
  850. });
  851. }
  852. }
  853. ,
  854. addManageData: function () {
  855. this.manageList.push(this.currObjData);
  856. this.loadManageTable();
  857. this.closePane();
  858. }
  859. ,
  860. delManage: function (obj) {
  861. var self = this;
  862. App.msg.confirm("确认删除该监管单位吗?", function () {
  863. if (obj.data.id) {
  864. obj.data.logicDeleteFlag = 1;
  865. self.delManageList.push(obj.data);
  866. obj.del();
  867. self.manageList = layui.table.getData("manageList");
  868. } else {
  869. obj.del();
  870. self.manageList = layui.table.getData("manageList");
  871. }
  872. })
  873. }
  874. ,
  875. saveManage: function () {
  876. var manages = this.manageList;
  877. var subId = this.subInfo.id;
  878. for (var i = 0; i < this.delManageList.length; i++) {
  879. manages.push(this.delManageList[i]);
  880. }
  881. var data = {
  882. subId: subId,
  883. manage: manages
  884. };
  885. var self = this;
  886. App.msg.confirm("确认提交监管单位信息吗?", function () {
  887. App.postJson("/api/subject/subInfo/saveEditSubInfo", {manage: data}, function (res) {
  888. if (res.success) {
  889. App.msg.warn("提交成功");
  890. App.postJson("/api/subject/subInfo/getManageList", {subId: subId}, function (resc) {
  891. if (resc.success) {
  892. self.manageList = resc.data;
  893. self.delManageList = [];
  894. self.loadManageTable();
  895. }
  896. });
  897. }
  898. });
  899. });
  900. }
  901. ,
  902. closeWin: function () {
  903. var self = this;
  904. if (!this.closeMark) {
  905. App.msg.confirm("当前信息未保存或未保存成功,确认关闭?", function () {
  906. window.history.back(-1);
  907. });
  908. } else {
  909. window.history.back(-1);
  910. }
  911. }
  912. }
  913. })
  914. </script>
  915. </body>
  916. </html>