recordTemplate.js 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728
  1. layui.config({
  2. base: '../../lib/layui/lay/mymodules/'
  3. ,version: '101100'
  4. }).use('eleTree');
  5. layui.extend({
  6. admin: '{/}../../static/js/admin'
  7. });
  8. layui.use(['jquery','eleTree','table','laypage','form','admin'], function(){
  9. var $= layui.jquery,
  10. eleTree = layui.eleTree,
  11. laypage = layui.laypage,
  12. form = layui.form,
  13. table = layui.table;
  14. var addTemplateHtml = '../../pages/admin/addrecordTemplate.html';
  15. var updateRecordTemplate = '../../pages/admin/updateRecordTemplate.html';
  16. /*
  17. * @todo 重新计算iframe高度
  18. */
  19. FrameWH();
  20. function FrameWH() {
  21. var h = $(window).height()-36-46-40;
  22. var h1 = $(window).height()-36-25;
  23. $(".weIframe").css("height", h + "px");
  24. $(".left").css("height",h1 +"px");
  25. $(".right_main").css("height",h1 -20+ "px");
  26. }
  27. $(window).resize(function() {
  28. FrameWH();
  29. });
  30. var belpID = 'root';
  31. delpFun();
  32. function delpFun(){
  33. sessionStorage.setItem("departmentId",'root');
  34. $.ajax({
  35. url:'http://apptest.jieweizhineng.com/api/section/getlist',
  36. method:'get',
  37. dataType: 'json',
  38. success:function (res) {
  39. if(res.code === 0){
  40. var data = [res.data];
  41. eleTree.render({
  42. elem: '.ele1',
  43. data:data ,
  44. defaultExpandAll:true,
  45. // showCheckbox: true,
  46. });
  47. eleTree.on("nodeClick(data)",function(d) {
  48. belpID = d.data.currentData.id;
  49. sessionStorage.setItem("departmentId",d.data.currentData.id);
  50. $('.stetaName').val("");
  51. var info={
  52. statusContent: '',
  53. departmentId: d.data.currentData.id,
  54. deleteStatus: 'false',
  55. pageNumber: '1',
  56. pageSize: '1',
  57. };
  58. getStateList(info);
  59. })
  60. }else{
  61. layer.msg('请检查网路', {icon: 2});
  62. }
  63. },
  64. error:function (err) {
  65. layer.msg('请检查网路', {icon: 2});
  66. }
  67. })
  68. }
  69. var info={
  70. templateName: $('.stetaName').val(),
  71. departmentId: 'root',
  72. deleteStatus: 'false',
  73. pageNumber: '1',
  74. pageSize: '1',
  75. };
  76. getStateList(info);
  77. function getStateList(res) {
  78. $.ajax({
  79. url: 'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/getRecordTemplateList',
  80. method: 'get',
  81. dataType: 'json',
  82. data: res,
  83. success: function (data) {
  84. laypage.render({
  85. elem: 'pageItem',
  86. count: data.count,
  87. limit: 10,
  88. layout: ['count', 'prev', 'page', 'next', 'skip'],
  89. jump: function(obj, first) {
  90. var index = layer.load(2);
  91. table.render({
  92. elem: '#stateRemind',
  93. url: 'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/getRecordTemplateList',
  94. id: 'recordTemplateID',
  95. method: 'get',
  96. loading: true,
  97. cols: [[
  98. {field: 'templateName', title: '模版名称', align: 'center'}
  99. , {field: 'createDate', title: '创建日期', align: 'center'}
  100. , {title: ' 操作', align: 'center', toolbar: '#barDemo'}
  101. ]],
  102. where: {
  103. templateName: res.statusContent,
  104. departmentId: res.departmentId,
  105. deleteStatus: res.deleteStatus,
  106. pageNumber: obj.curr,
  107. pageSize: obj.limit,
  108. },
  109. response: {
  110. statusName: 'code'
  111. , statusCode: 200,
  112. countName: 'count',
  113. dataName: 'data'
  114. },
  115. done: function (res, curr, count) {
  116. layer.close(index);
  117. if (res.code === '200') {
  118. $('.fr').html('共有数据:'+res.count+' 条')
  119. }
  120. }
  121. });
  122. }
  123. })
  124. }
  125. });
  126. }
  127. // 查询
  128. $(".seachSteta").click(function () {
  129. var checkbox = $("#checkboxT").prop('checked'),
  130. root='',
  131. info;
  132. if(checkbox == true){
  133. root = '';
  134. info={
  135. statusContent: $('.stetaName').val(),
  136. departmentId: root,
  137. deleteStatus: 'false',
  138. pageNumber: '1',
  139. pageSize: '1',
  140. };
  141. }else {
  142. info={
  143. statusContent: $('.stetaName').val(),
  144. departmentId: belpID,
  145. deleteStatus: 'false',
  146. pageNumber: '1',
  147. pageSize: '1',
  148. };
  149. }
  150. getStateList(info)
  151. });
  152. // 监听状态table
  153. table.on('tool(recordTemplateID)', function(obj) {
  154. if( obj.event === "move"){
  155. } else if (obj.event === "copy"){
  156. var content ={
  157. _method:'put'
  158. };
  159. layer.alert('确认要复制记录模板吗?',{icon: 8}, function(index){
  160. $.ajax({
  161. url: 'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/copyRecordTemplate/'+obj.data.id,
  162. method: 'post',
  163. dataType: 'json',
  164. data: content,
  165. success: function (res) {
  166. if (res.code === '200'){
  167. layer.msg('复制成功', {icon: 1});
  168. table.reload('recordTemplateID');
  169. } else{
  170. layer.msg('复制失败', {icon: 2});
  171. table.reload('recordTemplateID');
  172. }
  173. layer.close(index);
  174. },
  175. error:function () {
  176. layer.msg('请检查网络', {icon: 2});
  177. layer.close(index);
  178. }
  179. });
  180. });
  181. } else if (obj.event === "edit"){
  182. layer.open({
  183. type: 2,
  184. id: 'updateTemplate',
  185. title:'修改记录模版',
  186. shadeClose: true,
  187. scrollbar:true,
  188. shade: 0.3,
  189. maxmin: true,
  190. skin: 'oaBtn',
  191. btn: ['确认', '取消'],
  192. area: ['1000px', '600px'],
  193. content: updateRecordTemplate,
  194. success: function (layero, index) {
  195. var body = layer.getChildFrame('body', index);
  196. body.find('#stetaName').val(obj.data.statusContent);
  197. var iframeWindow = window['layui-layer-iframe'+ index];
  198. var selectVal =[];
  199. iframeWindow.layui.form.render();
  200. $.ajax({
  201. url: 'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/getRecordTemplate/'+obj.data.id,
  202. method: 'get',
  203. dataType: 'json',
  204. success: function (res) {
  205. body.find(".TemplateName").val(res.data.templateName);
  206. body.find(".Templatereamk").val(res.data.remark);
  207. // body.find(".inputCheckbox").attr("checked",'checked')
  208. if (res.data.statusContent == ''&& res.data.statusName == ''){
  209. body.find(".changeSteta").attr("checked",'checked');
  210. body.find(".textSteta").removeAttr('checked');
  211. body.find('.a_inputs').show();
  212. body.find(".a_text").addClass("a_hide");
  213. body.find(".layui-input-block1").removeClass("a_hide");
  214. }else {
  215. body.find(".changeSteta").removeAttr("checked");
  216. body.find(".textSteta").attr('checked','checked');
  217. body.find('.a_inputs').hide();
  218. body.find(".a_text").removeClass("a_hide");
  219. body.find(".layui-input-block1").addClass("a_hide");
  220. body.find(".textContent").val(res.data.statusContent);
  221. body.find(".textName").val(res.data.statusName);
  222. }
  223. // 记录状态
  224. if (res.data.recordStatusList !=null) {
  225. for (var i = 0; i < res.data.recordStatusList.length; i++) {
  226. if (res.data.recordStatusList[i].isEchart == false) {
  227. var str =`
  228. <div class="a_input" inputState-id="${res.data.recordStatusList[i].id}" deleteFlag="false">
  229. <input type="text" value="${res.data.recordStatusList[i].statusContent}" state-id="${res.data.recordStatusList[i].statusId}" style="width: 80%;" placeholder="请输入状态名称" checkbox-boole="${res.data.recordStatusList[i].isEchart}" name="number" autocomplete="off" class="layui-input a_stateName">
  230. <div class="operation_trem">
  231. <input type="checkbox" title="统计标识" class="inputCheckbox" lay-filter="inputCheckbox"">
  232. <i class="layui-icon layui-icon-delete delete_state"></i>
  233. </div>
  234. </div>`;
  235. body.find('.a_inputs').append(str);
  236. }else {
  237. var str =`
  238. <div class="a_input" inputState-id="${res.data.recordStatusList[i].id}" deleteFlag="false">
  239. <input type="text" value="${res.data.recordStatusList[i].statusContent}" state-id="${res.data.recordStatusList[i].statusId}" style="width: 80%;" placeholder="请输入状态名称" checkbox-boole="${res.data.recordStatusList[i].isEchart}" name="number" autocomplete="off" class="layui-input a_stateName">
  240. <div class="operation_trem">
  241. <input type="checkbox" title="统计标识" checked="${res.data.recordStatusList[i].isEchart}" class="inputCheckbox" lay-filter="inputCheckbox"">
  242. <i class="layui-icon layui-icon-delete delete_state"></i>
  243. </div>
  244. </div>`;
  245. body.find('.a_inputs').append(str);
  246. }
  247. }
  248. }
  249. // 特殊记录项和记录项
  250. var num =0;
  251. for (var j = 0; j < res.data.inputList.length; j++) {
  252. if(res.data.inputList[j].special == true){
  253. body.find(".specialName").val(res.data.inputList[j].inputName);
  254. body.find(".specialRemarks").val(res.data.inputList[j].remark);
  255. body.find(".specialSelect").val(res.data.inputList[j].inputType);
  256. body.find(".T_recordterm").attr("recordterm-id",res.data.inputList[j].id);
  257. }else {
  258. selectVal.push(res.data.inputList[j].inputType);
  259. var json = JSON.stringify(res.data.inputList[j].inputItemList);
  260. var str =`
  261. <div class="record_term border_t_n" record-id="${res.data.inputList[j].id}" deleteFlag="false">
  262. <div class="a_T a_checkbox1" style="width: ${res.data.inputList[j].inputType == "photo"?"10%":"11%"}">
  263. ${res.data.inputList[j].isOptional== false?
  264. "<input type=\"checkbox\" title=\"必选\" class=\"mandatory\" lay-filter=\"mandatory\" checkbox-mandatory=\"false\">\n"
  265. :
  266. "<input type=\"checkbox\" title=\"必选\" class=\"mandatory\" checked lay-filter=\"mandatory\" checkbox-mandatory=\"true\">\n"
  267. }
  268. </div>
  269. <div class="a_T record_term_name" style="width:${res.data.inputList[j].inputType == "photo"?"17%":"20%"}">
  270. <input type="text" placeholder="请输入字段名称" class="layui-input fieldName" value="${res.data.inputList[j].inputName}">
  271. </div>
  272. <div class="a_T record_term_remarks" style="width: ${res.data.inputList[j].inputType == "photo"?"17%":"20%"}">
  273. <input type="text" placeholder="请输入字段备注" class="layui-input fieldType" value="${res.data.inputList[j].remark}">
  274. </div>
  275. <div class="a_T record_term_select" style="width: ${res.data.inputList[j].inputType == "photo"?"13%":"15%"}">
  276. <select name="inputType" class="select-box select-box${num++}" lay-filter="inputType">
  277. <option value="">--请选择--</option>
  278. </select>
  279. </div>
  280. <div class="a_T record_term_select1 ${res.data.inputList[j].inputType == "photo"?"":"a_hide"}" style="width: 10%">
  281. <select name="interest" lay-filter="photo" class="businessType">
  282. ${res.data.inputList[j].businessType == "remote"?
  283. "<option value=\"\">--请选择--</option>"+"<option value=\"local\">本地</option>"+" <option value=\"remote\" selected>拍照</option>"
  284. :
  285. "<option value=\"\">--请选择--</option>"+"<option value=\"local\" selected>本地</option>"+" <option value=\"remote\">拍照</option>"
  286. }
  287. </select>
  288. </div>
  289. <div class="a_T a_checkbox" style="width: 15%">
  290. ${res.data.inputList[j].isEchart == false ?
  291. "<input type=\"checkbox\" title=\"统计标识\" class=\"isEchart\" lay-filter=\"isEchart\" checkbox-isEchart=\"false\">\n"
  292. :
  293. "<input type=\"checkbox\" title=\"统计标识\" class=\"isEchart\" checked lay-filter=\"isEchart\" checkbox-isEchart=\"true\">\n"
  294. }
  295. </div>
  296. <div class="a_T a_operation" style="width: 15%">
  297. <span class="moveUp">上移</span>
  298. <span class="moveDown">下移</span>
  299. <span class="edit_record ${res.data.inputList[j].inputType == "checkbox" || res.data.inputList[j].inputType == "radio"? "" : "a_hide"}">编辑</span>
  300. <span class="delete_record_term">删除</span>
  301. </div>
  302. <!--<input type="text" class="inputJson" style="display: none;" value="${json}">-->
  303. <span class="inputJson" style="display: none;">${json}</span>
  304. </div>
  305. `;
  306. body.find(".record_terms").append(str);
  307. // if (res.data.inputList[j].inputType == "checkbox") {
  308. // sessionStorage.setItem("inputItemList",JSON.stringify(res.data.inputList[j].inputItemList))
  309. // }
  310. }
  311. };
  312. // 检查项
  313. var selectNum = 0;
  314. for (var r = 0; r < res.data.checkItemList.length; r++) {
  315. var str = `
  316. <div class="inspect_terms">
  317. <div class="inspect_term border_t_n">
  318. <div class="a_T inspect_term_name border_t_n" style="width: 70%;">
  319. <textarea name="desc" placeholder="请输入分组名称" class="layui-textarea term_nameTextarea" style="resize:none">${res.data.checkItemList[r].group.groupName}</textarea>
  320. </div>
  321. <div class="a_T inspect_term_select border_t_n" style="width: 30%">
  322. <select name="interest" class="inspect_select" lay-filter="inspect_select">
  323. ${res.data.checkItemList[r].group.checkType=="checkbox"?
  324. "<option value=\"checkbox\" selected=\"selected\">多选</option>"+"<option value=\"radio\">单选</option>"
  325. :"<option value=\"checkbox\">多选</option>"+"<option value=\"radio\" selected=\"selected\">单选</option>"}
  326. </select>
  327. </div>
  328. </div>
  329. <div class="inspect_term_infos inspect_term_infoss${selectNum++} border_t_n">
  330. <div class="inspect_term_info" inspect-id="${res.data.checkItemList[r].checkItemList[0].id}" deleteFlag="false">
  331. <div class="inspect_term_input border_t_n" style="width: 70%;">
  332. <input type="text" class="layui-input inspectInfo" placeholder="请输入检查项信息" value="${res.data.checkItemList[r].checkItemList[0].itemValue}">
  333. </div>
  334. <div class="inspect_term_operation border_t_n" style="width: 30%">
  335. <span class="add_inspectInfo">添加</span>
  336. </div>
  337. </div>
  338. </div>
  339. </div>`;
  340. body.find(".inspect_termList").append(str);
  341. var arrSlice = res.data.checkItemList[r].checkItemList.slice(1);
  342. for (var q=0;q<arrSlice.length; q++){
  343. var html =`<div class="inspect_term_info" inspect-id="${arrSlice[q].id}" deleteFlag="false">
  344. <div class="inspect_term_input border_t_n" style="width: 70%;">
  345. <input type="text" class="layui-input inspectInfo" placeholder="请输入检查项信息" value="${arrSlice[q].itemValue}">
  346. </div>
  347. <div class="inspect_term_operation border_t_n" style="width: 30%">
  348. <span class="add_inspectInfo">添加</span>
  349. <span class="delete_inspectInfo">删除</span>
  350. </div>
  351. </div>`;
  352. body.find(".inspect_term_infoss"+r).append(html);
  353. }
  354. }
  355. getInputType(body,iframeWindow,selectVal);
  356. iframeWindow.layui.form.render();
  357. },
  358. error:function () {
  359. layer.msg('请检查网络', {icon: 2});
  360. }
  361. });
  362. },
  363. yes: function (index, layero) {
  364. var body = layer.getChildFrame('body', index);
  365. if (body.find(".TemplateName").val() == "") {
  366. layer.msg('请输入模版名称', {icon: 8});
  367. return false;
  368. }
  369. var inputs = body.find('.a_inputs .a_input');
  370. // 记录状态
  371. var stateIDArray = [],
  372. valArray = [],
  373. cheackboxBoolArray = [],
  374. recordStatusList = [],
  375. inputStateID =[],
  376. deleteFlagBool = [],
  377. deleteStateGroup = body.find(".deleteStateGroup").val(),
  378. recordStatusObj ={isEchart:"",statusContent:'',statusId:'',id:'',deleteFlag:''};
  379. if (deleteStateGroup != "") {
  380. var deleteStateGroups=JSON.parse(deleteStateGroup);
  381. for (var o =0;o<deleteStateGroups.length;o++) {
  382. recordStatusList.push(deleteStateGroups[o])
  383. }
  384. }
  385. inputs.each(function () {
  386. var value = $(this).find('input').val(),
  387. stateId = $(this).find("input").attr("state-id"),
  388. cheackboxBool = $(this).find("input").attr("checkbox-boole"),
  389. id = $(this).attr("inputState-id"),
  390. deleteFlag = $(this).attr("deleteFlag");
  391. valArray.push(value);
  392. stateIDArray.push(stateId);
  393. cheackboxBoolArray.push(cheackboxBool);
  394. inputStateID.push(id);
  395. deleteFlagBool.push(deleteFlag);
  396. });
  397. for (var i = 0; i < inputs.length; i++) {
  398. recordStatusObj = {};
  399. recordStatusObj.isEchart = cheackboxBoolArray[i];
  400. recordStatusObj.statusContent = valArray[i];
  401. recordStatusObj.statusId = stateIDArray[i];
  402. recordStatusObj.id = inputStateID[i];
  403. recordStatusObj.deleteFlag = deleteFlagBool[i];
  404. recordStatusList.push(recordStatusObj)
  405. };
  406. // 记录项
  407. var inputList = {businessType:'',inputItems:'',inputName:'',inputType:'',isEchart:'',isOptional:'',remark:'',special:'',zIndex:'',id:'',deleteFlag:''},
  408. value,fieldType,inputItems,mandatory,isEchart,inputType,businessType,id,deleteFlag;
  409. var record_term = body.find(".record_term");
  410. var recordArray =[];
  411. var n;
  412. // 特殊记录项
  413. var specialObj= {businessType:'',inputItems:'',inputName:"",inputType:'',isEchart:'false',isOptional:'false',remark:'',special:'true',zIndex:1,id:'',deleteFlag:'false'};
  414. var specialName = body.find(".specialName").val(),specialRemarks = body.find(".specialRemarks").val(),specialSelect = body.find(".specialSelect").val(),specialID= body.find(".T_recordterm").attr("recordterm-id");
  415. if (specialName != "" && specialRemarks != "" && specialSelect != "") {
  416. specialObj.inputName = specialName;
  417. specialObj.remark = specialRemarks;
  418. specialObj.inputType = specialSelect;
  419. specialObj.id = specialID;
  420. recordArray.push(specialObj);
  421. n= 1;
  422. }else {
  423. n= 0;
  424. }
  425. var deleteRecords = body.find(".deleteRecord").val();
  426. if (deleteRecords != "") {
  427. var deleteRecordsJ = JSON.parse(deleteRecords);
  428. for (var w = 0; w < deleteRecordsJ.length; w++) {
  429. recordArray.push(deleteRecordsJ[w])
  430. }
  431. }
  432. record_term.each(function () {
  433. inputList = {};
  434. value = $(this).find(".fieldName").val();
  435. fieldType = $(this).find(".fieldType").val();
  436. mandatory = $(this).find(".mandatory").attr("checkbox-mandatory");
  437. isEchart = $(this).find(".isEchart").attr("checkbox-isEchart");
  438. inputType = $(this).find(".select-box").val();
  439. businessType = $(this).find(".businessType").val();
  440. id = $(this).attr("record-id");
  441. deleteFlag = $(this).attr("deleteFlag");
  442. if (inputType == 'checkbox' || inputType == 'radio') {
  443. inputItems = $(this).find(".inputJson").val();
  444. }else {
  445. inputItems =""
  446. }
  447. inputList.businessType = businessType == undefined ? " " : businessType;
  448. inputList.inputItems = inputItems == "" ? [] : JSON.parse(inputItems);
  449. inputList.inputName = value;
  450. inputList.inputType = inputType;
  451. inputList.isEchart = isEchart;
  452. inputList.isOptional = mandatory;
  453. inputList.remark = fieldType;
  454. inputList.special = 'false';
  455. inputList.id = id;
  456. inputList.zIndex = n++ +1;
  457. inputList.deleteFlag = deleteFlag;
  458. recordArray.push(inputList)
  459. });
  460. // 检查项
  461. var inspect_terms = body.find(".inspect_terms");
  462. var term_nameTextarea,inspect_select,inspectInfo,checkItemArray=[],id,deleteFlag;
  463. var checkItemList = {checkType:'',groupName:'',itemValue:'',zIndex:'',id:'',deleteFlag:''};
  464. var inspect_term_info = body.find(".inspect_term_info");
  465. var num = 0;
  466. var deletecheckItemArray = body.find(".deletecheckItemArray").val();
  467. if (deletecheckItemArray != "") {
  468. var deletecheckItemArrays= JSON.parse(deletecheckItemArray);
  469. for (var r = 0; r < deletecheckItemArrays.length; r++) {
  470. checkItemArray.push(deletecheckItemArrays[r])
  471. }
  472. }
  473. inspect_term_info.each(function () {
  474. checkItemList = {};
  475. term_nameTextarea = $(this).parent().parent().find('.term_nameTextarea').val();
  476. inspect_select = $(this).parent().parent().find('.inspect_select').val();
  477. inspectInfo = $(this).find('.inspectInfo').val();
  478. id = $(this).attr("inspect-id");
  479. deleteFlag = $(this).attr('deleteFlag');
  480. checkItemList.checkType = inspect_select;
  481. checkItemList.groupName = term_nameTextarea;
  482. checkItemList.itemValue = inspectInfo;
  483. checkItemList.id = id;
  484. checkItemList.deleteFlag = deleteFlag;
  485. checkItemList.zIndex = num++ +1;
  486. checkItemArray.push(checkItemList)
  487. });
  488. var updateStetaInfo = {
  489. templateName:body.find(".TemplateName").val(),
  490. remark:body.find(".Templatereamk").val() == ""? " ":body.find(".Templatereamk").val(),
  491. statusContent:body.find(".textContent").val() ==" "? "" : body.find(".textContent").val(),
  492. statusName:body.find(".textName").val() == ""? " " : body.find(".textName").val(),
  493. departmentId:belpID,
  494. checkItemList:checkItemArray,
  495. inputList:recordArray,
  496. recordStatusList:recordStatusList,
  497. _method:'put',
  498. id:obj.data.id
  499. };
  500. $.ajax({
  501. url:'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/updateRecordTemplate',
  502. method:'POST',
  503. dataType: 'json',
  504. data: updateStetaInfo,
  505. success:function (res) {
  506. if(res.code === '200'){
  507. layer.msg('修改成功', {icon: 1});
  508. table.reload('recordTemplateID');
  509. layer.close(index);
  510. }else if (res.code === '438') {
  511. layer.msg(res.msg, {icon: 2});
  512. table.reload('recordTemplateID')
  513. }else {
  514. layer.msg("添加失败,请检查信息", {icon: 2});
  515. table.reload('recordTemplateID')
  516. }
  517. },
  518. error:function (err) {
  519. layer.close(index);
  520. }
  521. })
  522. }
  523. })
  524. } else if (obj.event === "delete"){
  525. var content ={
  526. _method:'DELETE'
  527. };
  528. layer.alert('确认要删除吗?',{icon: 8}, function(index){
  529. $.ajax({
  530. url: 'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/reomveRecordTemplate/'+obj.data.id,
  531. method: 'post',
  532. dataType: 'json',
  533. data: content,
  534. success: function (res) {
  535. if (res.code === '200'){
  536. layer.msg('删除成功', {icon: 1});
  537. table.reload('recordTemplateID');
  538. } else{
  539. layer.msg('删除失败', {icon: 2});
  540. table.reload('recordTemplateID');
  541. }
  542. layer.close(index);
  543. },
  544. error:function () {
  545. layer.msg('请检查网络', {icon: 2});
  546. }
  547. });
  548. });
  549. }
  550. });
  551. // 添加记录模版
  552. // 打开添加弹窗
  553. $(".addState").click(function () {
  554. layer.open({
  555. type: 2,
  556. id: 'addTemplate',
  557. title:'添加记录模版',
  558. shadeClose: true,
  559. scrollbar:true,
  560. shade: 0.3,
  561. maxmin: true,
  562. skin: 'oaBtn',
  563. btn: ['确认', '取消'],
  564. area: ['1000px', '600px'],
  565. content: addTemplateHtml,
  566. success: function (layero, index) {
  567. var body = layer.getChildFrame('body', index);
  568. },
  569. yes: function (index, layero) {
  570. var body = layer.getChildFrame('body', index);
  571. if (body.find(".TemplateName").val() == "") {
  572. layer.msg('请输入模版名称', {icon: 8});
  573. return false;
  574. }
  575. var inputs = body.find('.a_inputs .a_input');
  576. // 记录状态
  577. var stateIDArray = [],
  578. valArray = [],
  579. cheackboxBoolArray = [],
  580. recordStatusList = [],
  581. recordStatusObj ={isEchart:"",statusContent:'',statusId:''};
  582. inputs.each(function () {
  583. var value = $(this).find('input').val(),
  584. stateId = $(this).find("input").attr("state-id"),
  585. cheackboxBool = $(this).find("input").attr("checkbox-boole");
  586. valArray.push(value);
  587. stateIDArray.push(stateId);
  588. cheackboxBoolArray.push(cheackboxBool);
  589. });
  590. for (var i = 0; i < inputs.length; i++) {
  591. recordStatusObj = {};
  592. recordStatusObj.isEchart = cheackboxBoolArray[i];
  593. recordStatusObj.statusContent = valArray[i];
  594. recordStatusObj.statusId = stateIDArray[i];
  595. recordStatusList.push(recordStatusObj)
  596. };
  597. // 记录项
  598. var inputList = {businessType:'',inputItems:'',inputName:'',inputType:'',isEchart:'',isOptional:'',remark:'',special:'',zIndex:''},
  599. value,fieldType,inputItems,mandatory,isEchart,inputType,businessType;
  600. var record_term = body.find(".record_term");
  601. var recordArray =[];
  602. var n;
  603. // 特殊记录项
  604. var specialObj= {businessType:'',inputItems:'',inputName:"",inputType:'',isEchart:'false',isOptional:'false',remark:'',special:'true',zIndex:1};
  605. var specialName = body.find(".specialName").val(),specialRemarks = body.find(".specialRemarks").val(),specialSelect = body.find(".specialSelect").val();
  606. if (specialName != "" && specialRemarks != "" && specialSelect != "") {
  607. specialObj.inputName = specialName;
  608. specialObj.remark = specialRemarks;
  609. specialObj.inputType = specialSelect;
  610. recordArray.push(specialObj)
  611. n= 1;
  612. }else {
  613. n= 0;
  614. }
  615. record_term.each(function () {
  616. inputList = {};
  617. value = $(this).find(".fieldName").val();
  618. fieldType = $(this).find(".fieldType").val();
  619. mandatory = $(this).find(".mandatory").attr("checkbox-mandatory");
  620. isEchart = $(this).find(".isEchart").attr("checkbox-isEchart");
  621. inputType = $(this).find(".select-box").val();
  622. businessType = $(this).find(".businessType").val();
  623. if (inputType == 'checkbox' || inputType == 'radio') {
  624. inputItems = $(this).find(".inputJson").val();
  625. }else {
  626. inputItems = ""
  627. }
  628. inputList.businessType = businessType == undefined ? "" : businessType;
  629. inputList.inputItems = inputItems == "" ? [] : JSON.parse(inputItems);
  630. inputList.inputName = value;
  631. inputList.inputType = inputType;
  632. inputList.isEchart = isEchart;
  633. inputList.isOptional = mandatory;
  634. inputList.remark = fieldType;
  635. inputList.special = 'false';
  636. inputList.zIndex = n++ +1;
  637. recordArray.push(inputList)
  638. });
  639. // 检查项
  640. var inspect_terms = body.find(".inspect_terms");
  641. var term_nameTextarea,inspect_select,inspectInfo,checkItemArray=[];
  642. var checkItemList = {checkType:'',groupName:'',itemValue:'',zIndex:''};
  643. var inspect_term_info = body.find(".inspect_term_info");
  644. var num = 0;
  645. inspect_term_info.each(function () {
  646. checkItemList = {};
  647. term_nameTextarea = $(this).parent().parent().find('.term_nameTextarea').val();
  648. inspect_select = $(this).parent().parent().find('.inspect_select').val();
  649. inspectInfo = $(this).find('.inspectInfo').val();
  650. checkItemList.checkType = inspect_select;
  651. checkItemList.groupName = term_nameTextarea;
  652. checkItemList.itemValue = inspectInfo;
  653. checkItemList.zIndex = num++ +1;
  654. checkItemArray.push(checkItemList)
  655. });
  656. console.log(checkItemArray,'00')
  657. var addStetaInfo = {
  658. templateName:body.find(".TemplateName").val() == ""? "":body.find(".TemplateName").val(),
  659. remark:body.find(".Templatereamk").val() == "" ? "":body.find(".Templatereamk").val(),
  660. statusContent:body.find(".textContent").val() == ""?"":body.find(".textContent").val(),
  661. statusName:body.find(".textName").val() == "" ? "" :body.find(".textName").val() == "",
  662. departmentId:belpID,
  663. checkItemList:checkItemArray,
  664. inputList:recordArray,
  665. recordStatusList:recordStatusList,
  666. };
  667. $.ajax({
  668. method:'post',
  669. url:'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/addRecordTemplate',
  670. data:addStetaInfo,
  671. dataType:'json',
  672. success:function (res) {
  673. if(res.code === '200'){
  674. layer.msg('添加成功', {icon: 1});
  675. table.reload('recordTemplateID');
  676. layer.close(index);
  677. }else if (res.code === '438') {
  678. layer.msg(res.code.msg, {icon: 2});
  679. table.reload('recordTemplateID')
  680. }else {
  681. layer.msg("添加失败,请检查信息", {icon: 2});
  682. table.reload('recordTemplateID')
  683. }
  684. },
  685. error:function (err) {
  686. layer.msg('网络错误', {icon: 2});
  687. }
  688. })
  689. }
  690. })
  691. });
  692. // 记录类型
  693. function getInputType(body,iframeWin,arr){
  694. // select-box
  695. $.ajax({
  696. method:'get',
  697. url:'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/getInputTypeList',
  698. data:'',
  699. dataType:'json',
  700. success:function (res) {
  701. if (res.code === '200') {
  702. var str;
  703. for (key in res.data){
  704. for (var k = 0; k < arr.length; k++) {
  705. if (key == arr[k]) {
  706. str = `<option value="${key}" selected>${res.data[key]}</option>`;
  707. }else {
  708. str = `<option value="${key}">${res.data[key]}</option>`;
  709. }
  710. body.find(".select-box"+k).append(str);
  711. }
  712. }
  713. iframeWin.layui.form.render();
  714. }
  715. },
  716. error:function (err) {
  717. }
  718. })
  719. }
  720. });