recordTemplate.js 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786
  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. sessionStorage.setItem('groudBool','false');
  226. sessionStorage.setItem("addgroudBool",'false');
  227. for (var i = 0; i < res.data.recordStatusList.length; i++) {
  228. if (res.data.recordStatusList[i].isEchart == false) {
  229. var str =`
  230. <div class="a_input" inputState-id="${res.data.recordStatusList[i].id}" deleteFlag="false">
  231. <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">
  232. <div class="operation_trem">
  233. <input type="checkbox" title="统计标识" class="inputCheckbox" lay-filter="inputCheckbox"">
  234. <i class="layui-icon layui-icon-delete delete_state"></i>
  235. </div>
  236. </div>`;
  237. body.find('.a_inputs').append(str);
  238. }else {
  239. var str =`
  240. <div class="a_input" inputState-id="${res.data.recordStatusList[i].id}" deleteFlag="false">
  241. <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">
  242. <div class="operation_trem">
  243. <input type="checkbox" title="统计标识" checked="${res.data.recordStatusList[i].isEchart}" class="inputCheckbox" lay-filter="inputCheckbox"">
  244. <i class="layui-icon layui-icon-delete delete_state"></i>
  245. </div>
  246. </div>`;
  247. body.find('.a_inputs').append(str);
  248. }
  249. }
  250. }else {
  251. sessionStorage.setItem('groudBool','true');
  252. sessionStorage.setItem("addgroudBool",'true');
  253. }
  254. // 特殊记录项和记录项
  255. var num =0;
  256. for (var j = 0; j < res.data.inputList.length; j++) {
  257. if(res.data.inputList[j].special == true){
  258. body.find(".specialName").val(res.data.inputList[j].inputName);
  259. body.find(".specialRemarks").val(res.data.inputList[j].remark);
  260. body.find(".specialSelect").val(res.data.inputList[j].inputType);
  261. body.find(".T_recordterm").attr("recordterm-id",res.data.inputList[j].id);
  262. }else {
  263. selectVal.push(res.data.inputList[j].inputType);
  264. var json = JSON.stringify(res.data.inputList[j].inputItemList);
  265. var str =`
  266. <div class="record_term border_t_n" record-id="${res.data.inputList[j].id}" deleteFlag="false">
  267. <div class="a_T a_checkbox1" style="width: ${res.data.inputList[j].inputType == "photo"?"10%":"11%"}">
  268. ${res.data.inputList[j].isOptional== false?
  269. "<input type=\"checkbox\" title=\"必选\" class=\"mandatory\" lay-filter=\"mandatory\" checkbox-mandatory=\"false\">\n"
  270. :
  271. "<input type=\"checkbox\" title=\"必选\" class=\"mandatory\" checked lay-filter=\"mandatory\" checkbox-mandatory=\"true\">\n"
  272. }
  273. </div>
  274. <div class="a_T record_term_name" style="width:${res.data.inputList[j].inputType == "photo"?"17%":"20%"}">
  275. <input type="text" placeholder="请输入字段名称" class="layui-input fieldName ${j == 0?'fieldName1' : ""}" value="${res.data.inputList[j].inputName}">
  276. </div>
  277. <div class="a_T record_term_remarks" style="width: ${res.data.inputList[j].inputType == "photo"?"17%":"20%"}">
  278. <input type="text" placeholder="请输入字段备注" class="layui-input fieldType"value="${res.data.inputList[j].remark}">
  279. </div>
  280. <div class="a_T record_term_select" style="width: ${res.data.inputList[j].inputType == "photo"?"13%":"15%"}">
  281. <select name="inputType" class="select-box select-box${num++} ${j ==0?"select-boxsa":""}" " lay-filter="inputType">
  282. <option value="">--请选择--</option>
  283. </select>
  284. </div>
  285. <div class="a_T record_term_select1 ${res.data.inputList[j].inputType == "photo"?"":"a_hide"}" style="width: 10%">
  286. <select name="interest" lay-filter="photo" class="businessType">
  287. ${res.data.inputList[j].businessType == "remote"?
  288. "<option value=\"\">--请选择--</option>"+"<option value=\"local\">本地</option>"+" <option value=\"remote\" selected>拍照</option>"
  289. :
  290. "<option value=\"\">--请选择--</option>"+"<option value=\"local\" selected>本地</option>"+" <option value=\"remote\">拍照</option>"
  291. }
  292. </select>
  293. </div>
  294. <div class="a_T a_checkbox" style="width: 15%">
  295. ${res.data.inputList[j].isEchart == false ?
  296. "<input type=\"checkbox\" title=\"统计标识\" class=\"isEchart\" lay-filter=\"isEchart\" checkbox-isEchart=\"false\">\n"
  297. :
  298. "<input type=\"checkbox\" title=\"统计标识\" class=\"isEchart\" checked lay-filter=\"isEchart\" checkbox-isEchart=\"true\">\n"
  299. }
  300. </div>
  301. <div class="a_T a_operation" style="width: 15%">
  302. <span class="moveUp">上移</span>
  303. <span class="moveDown">下移</span>
  304. <span class="edit_record ${res.data.inputList[j].inputType == "checkbox" || res.data.inputList[j].inputType == "radio"? "" : "a_hide"}">编辑</span>
  305. <span class="delete_record_term">删除</span>
  306. </div>
  307. <!--<input type="text" class="inputJson" style="display: none;" value="${json}">-->
  308. <span class="inputJson" style="display: none;">${json}</span>
  309. </div>
  310. `;
  311. body.find(".record_terms").append(str);
  312. // if (res.data.inputList[j].inputType == "checkbox") {
  313. // sessionStorage.setItem("inputItemList",JSON.stringify(res.data.inputList[j].inputItemList))
  314. // }
  315. }
  316. };
  317. // 检查项
  318. var selectNum = 0;
  319. for (var r = 0; r < res.data.checkItemList.length; r++) {
  320. var str = `
  321. <div class="inspect_terms">
  322. <div class="inspect_term border_t_n">
  323. <div class="a_T inspect_term_name border_t_n" style="width: 70%;">
  324. <textarea name="desc" placeholder="请输入分组名称" class="layui-textarea term_nameTextarea" style="resize:none">${res.data.checkItemList[r].group.groupName}</textarea>
  325. </div>
  326. <div class="a_T inspect_term_select border_t_n" style="width: 30%">
  327. <select name="interest" class="inspect_select" lay-filter="inspect_select">
  328. ${res.data.checkItemList[r].group.checkType=="checkbox"?
  329. "<option value=\"checkbox\" selected=\"selected\">多选</option>"+"<option value=\"radio\">单选</option>"
  330. :"<option value=\"checkbox\">多选</option>"+"<option value=\"radio\" selected=\"selected\">单选</option>"}
  331. </select>
  332. </div>
  333. </div>
  334. <div class="inspect_term_infos inspect_term_infoss${selectNum++} border_t_n">
  335. <div class="inspect_term_info" inspect-id="${res.data.checkItemList[r].checkItemList[0].id}" deleteFlag="false">
  336. <div class="inspect_term_input border_t_n" style="width: 70%;">
  337. <input type="text" class="layui-input inspectInfo" placeholder="请输入检查项信息" value="${res.data.checkItemList[r].checkItemList[0].itemValue}">
  338. </div>
  339. <div class="inspect_term_operation border_t_n" style="width: 30%">
  340. <span class="add_inspectInfo">添加</span>
  341. </div>
  342. </div>
  343. </div>
  344. </div>`;
  345. body.find(".inspect_termList").append(str);
  346. var arrSlice = res.data.checkItemList[r].checkItemList.slice(1);
  347. for (var q=0;q<arrSlice.length; q++){
  348. var html =`<div class="inspect_term_info" inspect-id="${arrSlice[q].id}" deleteFlag="false">
  349. <div class="inspect_term_input border_t_n" style="width: 70%;">
  350. <input type="text" class="layui-input inspectInfo" placeholder="请输入检查项信息" value="${arrSlice[q].itemValue}">
  351. </div>
  352. <div class="inspect_term_operation border_t_n" style="width: 30%">
  353. <span class="add_inspectInfo">添加</span>
  354. <span class="delete_inspectInfo">删除</span>
  355. </div>
  356. </div>`;
  357. body.find(".inspect_term_infoss"+r).append(html);
  358. }
  359. }
  360. getInputType(body,iframeWindow,selectVal);
  361. iframeWindow.layui.form.render();
  362. },
  363. error:function () {
  364. layer.msg('请检查网络', {icon: 2});
  365. }
  366. });
  367. },
  368. yes: function (index, layero) {
  369. var body = layer.getChildFrame('body', index);
  370. var reg = /\S/;
  371. if (!reg.test(body.find(".TemplateName").val())) {
  372. layer.msg('请输入模版名称', {icon: 8});
  373. return false;
  374. }
  375. if (sessionStorage.getItem("groudBool") == 'true' && !reg.test(body.find(".textContent").val())&&!reg.test(body.find(".textName").val())) {
  376. layer.msg('请输入文本状态', {icon: 8});
  377. return false;
  378. }else if (sessionStorage.getItem("addgroudBool") == 'false' && !reg.test(body.find(".a_stateName1").val())) {
  379. layer.msg('请选择状态组', {icon: 8});
  380. return false;
  381. }
  382. if (!reg.test(body.find(".fieldName1").val())|| body.find('.select-boxsa').val() == "") {
  383. layer.msg('请填写记录项字段或类型', {icon: 8});
  384. return false;
  385. }
  386. var inputs = body.find('.a_inputs .a_input');
  387. // 记录状态
  388. var stateIDArray = [],
  389. valArray = [],
  390. cheackboxBoolArray = [],
  391. recordStatusList = [],
  392. inputStateID =[],
  393. deleteFlagBool = [],
  394. deleteStateGroup = body.find(".deleteStateGroup").val(),
  395. recordStatusObj ={isEchart:"",statusContent:'',statusId:'',id:'',deleteFlag:''};
  396. if (deleteStateGroup != "") {
  397. var deleteStateGroups=JSON.parse(deleteStateGroup);
  398. for (var o =0;o<deleteStateGroups.length;o++) {
  399. recordStatusList.push(deleteStateGroups[o])
  400. }
  401. }
  402. inputs.each(function () {
  403. var value = $(this).find('input').val(),
  404. stateId = $(this).find("input").attr("state-id"),
  405. cheackboxBool = $(this).find("input").attr("checkbox-boole"),
  406. id = $(this).attr("inputState-id"),
  407. deleteFlag = $(this).attr("deleteFlag");
  408. valArray.push(value);
  409. stateIDArray.push(stateId);
  410. cheackboxBoolArray.push(cheackboxBool);
  411. inputStateID.push(id);
  412. deleteFlagBool.push(deleteFlag);
  413. });
  414. if (sessionStorage.getItem("groudBool") == 'true') {
  415. for (var i = 0; i < inputs.length; i++) {
  416. recordStatusObj = {};
  417. recordStatusObj.isEchart = cheackboxBoolArray[i];
  418. recordStatusObj.statusContent = valArray[i];
  419. recordStatusObj.statusId = stateIDArray[i];
  420. recordStatusObj.id = inputStateID[i];
  421. recordStatusObj.deleteFlag = true;
  422. recordStatusList.push(recordStatusObj)
  423. }
  424. }else {
  425. for (var i = 0; i < inputs.length; i++) {
  426. recordStatusObj = {};
  427. if (valArray[i] != ""){
  428. recordStatusObj.isEchart = cheackboxBoolArray[i];
  429. recordStatusObj.statusContent = valArray[i];
  430. recordStatusObj.statusId = stateIDArray[i];
  431. recordStatusObj.id = inputStateID[i];
  432. recordStatusObj.deleteFlag = deleteFlagBool[i];
  433. recordStatusList.push(recordStatusObj)
  434. }
  435. }
  436. }
  437. // 记录项
  438. var inputList = {businessType:'',inputItems:[],inputName:'',inputType:'',isEchart:'',isOptional:'',remark:'',special:'',zIndex:'',id:'',deleteFlag:''},
  439. value,fieldType,inputItems,mandatory,isEchart,inputType,businessType,id,deleteFlag;
  440. var record_term = body.find(".record_term");
  441. var recordArray =[];
  442. var n;
  443. // 特殊记录项
  444. var specialObj= {businessType:'',inputItems:[],inputName:"",inputType:'',isEchart:'false',isOptional:'false',remark:'',special:'true',zIndex:1,id:'',deleteFlag:'false'};
  445. var specialName = body.find(".specialName").val(),specialRemarks = body.find(".specialRemarks").val(),specialSelect = body.find(".specialSelect").val(),specialID= body.find(".T_recordterm").attr("recordterm-id");
  446. if (specialName != "" && specialRemarks != "" && specialSelect != "") {
  447. specialObj.inputName = specialName;
  448. specialObj.remark = specialRemarks;
  449. specialObj.inputType = specialSelect;
  450. specialObj.id = specialID;
  451. recordArray.push(specialObj);
  452. n= 1;
  453. }else {
  454. n= 0;
  455. }
  456. var deleteRecords = body.find(".deleteRecord").val();
  457. if (deleteRecords != "") {
  458. var deleteRecordsJ = JSON.parse(deleteRecords);
  459. for (var w = 0; w < deleteRecordsJ.length; w++) {
  460. recordArray.push(deleteRecordsJ[w])
  461. }
  462. }
  463. record_term.each(function () {
  464. inputList = {};
  465. value = $(this).find(".fieldName").val();
  466. fieldType = $(this).find(".fieldType").val();
  467. mandatory = $(this).find(".mandatory").attr("checkbox-mandatory");
  468. isEchart = $(this).find(".isEchart").attr("checkbox-isEchart");
  469. inputType = $(this).find(".select-box").val();
  470. businessType = $(this).find(".businessType").val();
  471. id = $(this).attr("record-id");
  472. deleteFlag = $(this).attr("deleteFlag");
  473. if (inputType == 'checkbox' || inputType == 'radio') {
  474. inputItems = $(this).find(".inputJson").val();
  475. }else {
  476. inputItems =[]
  477. }
  478. if (value != "" && inputType !="") {
  479. inputList.businessType = businessType == undefined ? "" : businessType;
  480. inputList.inputItems = inputItems == "" ? [] : JSON.parse(inputItems);
  481. inputList.inputName = value;
  482. inputList.inputType = inputType;
  483. inputList.isEchart = isEchart;
  484. inputList.isOptional = mandatory;
  485. inputList.remark = fieldType;
  486. inputList.special = 'false';
  487. inputList.id = id;
  488. inputList.zIndex = n++ +1;
  489. inputList.deleteFlag = deleteFlag;
  490. recordArray.push(inputList)
  491. }
  492. });
  493. // 检查项
  494. var inspect_terms = body.find(".inspect_terms");
  495. var term_nameTextarea,inspect_select,inspectInfo,checkItemArray=[],id,deleteFlag;
  496. var checkItemList = {checkType:'',groupName:'',itemValue:'',zIndex:'',id:'',deleteFlag:''};
  497. var inspect_term_info = body.find(".inspect_term_info");
  498. var num = 0;
  499. var deletecheckItemArray = body.find(".deletecheckItemArray").val();
  500. if (deletecheckItemArray != "") {
  501. var deletecheckItemArrays= JSON.parse(deletecheckItemArray);
  502. for (var r = 0; r < deletecheckItemArrays.length; r++) {
  503. checkItemArray.push(deletecheckItemArrays[r])
  504. }
  505. }
  506. inspect_term_info.each(function () {
  507. checkItemList = {};
  508. term_nameTextarea = $(this).parent().parent().find('.term_nameTextarea').val();
  509. inspect_select = $(this).parent().parent().find('.inspect_select').val();
  510. inspectInfo = $(this).find('.inspectInfo').val();
  511. if (inspectInfo != "") {
  512. id = $(this).attr("inspect-id");
  513. deleteFlag = $(this).attr('deleteFlag');
  514. checkItemList.checkType = inspect_select;
  515. checkItemList.groupName = term_nameTextarea;
  516. checkItemList.itemValue = inspectInfo;
  517. checkItemList.id = id;
  518. checkItemList.deleteFlag = deleteFlag;
  519. checkItemList.zIndex = num++ +1;
  520. checkItemArray.push(checkItemList)
  521. }
  522. });
  523. var updateStetaInfo = {
  524. templateName:body.find(".TemplateName").val(),
  525. remark:body.find(".Templatereamk").val() == ""? " ":body.find(".Templatereamk").val(),
  526. statusContent:sessionStorage.getItem("groudBool") == 'true'?body.find(".textContent").val():"",
  527. statusName:sessionStorage.getItem("groudBool") == 'true'?body.find(".textName").val():"",
  528. departmentId:belpID,
  529. checkItemList:checkItemArray,
  530. inputList:recordArray,
  531. recordStatusList:recordStatusList,
  532. _method:'put',
  533. id:obj.data.id
  534. };
  535. $.ajax({
  536. url:'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/updateRecordTemplate',
  537. method:'POST',
  538. dataType: 'json',
  539. data: updateStetaInfo,
  540. success:function (res) {
  541. if(res.code === '200'){
  542. layer.msg('修改成功', {icon: 1});
  543. table.reload('recordTemplateID');
  544. layer.close(index);
  545. }else if (res.code === '438') {
  546. layer.msg(res.msg, {icon: 2});
  547. table.reload('recordTemplateID')
  548. }else {
  549. layer.msg("添加失败,请检查信息", {icon: 2});
  550. table.reload('recordTemplateID')
  551. }
  552. },
  553. error:function (err) {
  554. layer.close(index);
  555. }
  556. })
  557. }
  558. })
  559. } else if (obj.event === "delete"){
  560. var content ={
  561. _method:'DELETE'
  562. };
  563. layer.alert('确认要删除吗?',{icon: 8}, function(index){
  564. $.ajax({
  565. url: 'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/reomveRecordTemplate/'+obj.data.id,
  566. method: 'post',
  567. dataType: 'json',
  568. data: content,
  569. success: function (res) {
  570. if (res.code === '200'){
  571. layer.msg('删除成功', {icon: 1});
  572. table.reload('recordTemplateID');
  573. } else{
  574. layer.msg('删除失败', {icon: 2});
  575. table.reload('recordTemplateID');
  576. }
  577. layer.close(index);
  578. },
  579. error:function () {
  580. layer.msg('请检查网络', {icon: 2});
  581. }
  582. });
  583. });
  584. }
  585. });
  586. // 添加记录模版
  587. // 打开添加弹窗
  588. $(".addState").click(function () {
  589. layer.open({
  590. type: 2,
  591. id: 'addTemplate',
  592. title:'添加记录模版',
  593. shadeClose: true,
  594. scrollbar:true,
  595. shade: 0.3,
  596. maxmin: true,
  597. skin: 'oaBtn',
  598. btn: ['确认', '取消'],
  599. area: ['1000px', '600px'],
  600. content: addTemplateHtml,
  601. success: function (layero, index) {
  602. var body = layer.getChildFrame('body', index);
  603. sessionStorage.setItem("addgroudBool",'false');
  604. sessionStorage.setItem('groudBool','false');
  605. },
  606. yes: function (index, layero) {
  607. var body = layer.getChildFrame('body', index);
  608. var reg = /\S/;
  609. if (!reg.test(body.find(".TemplateName").val())) {
  610. layer.msg('请输入模版名称', {icon: 8});
  611. return false;
  612. }
  613. if (sessionStorage.getItem("groudBool") == 'true' && !reg.test(body.find(".textContent").val())&&!reg.test(body.find(".textName").val())) {
  614. layer.msg('请输入文本状态', {icon: 8});
  615. return false;
  616. }else if (sessionStorage.getItem("addgroudBool") == 'false' && !reg.test(body.find(".a_stateName1").val())) {
  617. layer.msg('请选择状态组', {icon: 8});
  618. return false;
  619. }
  620. if (!reg.test(body.find(".fieldName1").val())|| body.find('.select-boxsa').val() == "") {
  621. layer.msg('请填写记录项字段或类型', {icon: 8});
  622. return false;
  623. }
  624. var inputs = body.find('.a_inputs .a_input');
  625. // 记录状态
  626. var stateIDArray = [],
  627. valArray = [],
  628. cheackboxBoolArray = [],
  629. recordStatusList = [],
  630. recordStatusObj ={isEchart:"",statusContent:'',statusId:''};
  631. inputs.each(function () {
  632. var value = $(this).find('input').val(),
  633. stateId = $(this).find("input").attr("state-id"),
  634. cheackboxBool = $(this).find("input").attr("checkbox-boole");
  635. valArray.push(value);
  636. stateIDArray.push(stateId);
  637. cheackboxBoolArray.push(cheackboxBool);
  638. });
  639. for (var i = 0; i < inputs.length; i++) {
  640. recordStatusObj = {};
  641. recordStatusObj.isEchart = cheackboxBoolArray[i];
  642. recordStatusObj.statusContent = valArray[i];
  643. recordStatusObj.statusId = stateIDArray[i];
  644. recordStatusList.push(recordStatusObj)
  645. };
  646. if (sessionStorage.getItem("addgroudBool") == 'true') {
  647. recordStatusList = [];
  648. }
  649. // 记录项
  650. var inputList = {businessType:'',inputItems:[],inputName:'',inputType:'',isEchart:'',isOptional:'',remark:'',special:'',zIndex:''},
  651. value,fieldType,inputItems,mandatory,isEchart,inputType,businessType;
  652. var record_term = body.find(".record_term");
  653. var recordArray =[];
  654. var n;
  655. // 特殊记录项
  656. var specialObj= {businessType:'',inputItems:[],inputName:"",inputType:'',isEchart:'false',isOptional:'false',remark:'',special:'true',zIndex:1};
  657. var specialName = body.find(".specialName").val(),specialRemarks = body.find(".specialRemarks").val(),specialSelect = body.find(".specialSelect").val();
  658. if (specialName != "" && specialRemarks != "" && specialSelect != "") {
  659. specialObj.inputName = specialName;
  660. specialObj.remark = specialRemarks;
  661. specialObj.inputType = specialSelect;
  662. recordArray.push(specialObj)
  663. n= 1;
  664. }else {
  665. n= 0;
  666. }
  667. record_term.each(function () {
  668. inputList = {};
  669. value = $(this).find(".fieldName").val();
  670. fieldType = $(this).find(".fieldType").val();
  671. mandatory = $(this).find(".mandatory").attr("checkbox-mandatory");
  672. isEchart = $(this).find(".isEchart").attr("checkbox-isEchart");
  673. inputType = $(this).find(".select-box").val();
  674. businessType = $(this).find(".businessType").val();
  675. if (inputType == 'checkbox' || inputType == 'radio') {
  676. inputItems = $(this).find(".inputJson").val();
  677. }else {
  678. inputItems = []
  679. }
  680. if (value != "" && inputType != "") {
  681. inputList.businessType = businessType == undefined ? "" : businessType;
  682. inputList.inputItems = inputItems == ""? [] : JSON.parse(inputItems);
  683. inputList.inputName = value;
  684. inputList.inputType = inputType;
  685. inputList.isEchart = isEchart;
  686. inputList.isOptional = mandatory;
  687. inputList.remark = fieldType;
  688. inputList.special = 'false';
  689. inputList.zIndex = n++ +1;
  690. recordArray.push(inputList)
  691. }
  692. });
  693. // 检查项
  694. var inspect_terms = body.find(".inspect_terms");
  695. var term_nameTextarea,inspect_select,inspectInfo,checkItemArray=[];
  696. var checkItemList = {checkType:'',groupName:'',itemValue:'',zIndex:''};
  697. var inspect_term_info = body.find(".inspect_term_info");
  698. var num = 0;
  699. inspect_term_info.each(function () {
  700. checkItemList = {};
  701. term_nameTextarea = $(this).parent().parent().find('.term_nameTextarea').val();
  702. inspect_select = $(this).parent().parent().find('.inspect_select').val();
  703. inspectInfo = $(this).find('.inspectInfo').val();
  704. if (inspectInfo != "") {
  705. checkItemList.checkType = inspect_select;
  706. checkItemList.groupName = term_nameTextarea;
  707. checkItemList.itemValue = inspectInfo;
  708. checkItemList.zIndex = num++ +1;
  709. checkItemArray.push(checkItemList)
  710. }
  711. });
  712. if (sessionStorage.getItem("addgroudBool") == 'true') {
  713. recordStatusList = [];
  714. }
  715. var addStetaInfo = {
  716. templateName:body.find(".TemplateName").val() == ""? "":body.find(".TemplateName").val(),
  717. remark:body.find(".Templatereamk").val() == "" ? "":body.find(".Templatereamk").val(),
  718. statusContent:sessionStorage.getItem("addgroudBool") == 'true'? body.find(".textContent").val() :"",
  719. statusName:sessionStorage.getItem("addgroudBool") == 'true'? body.find(".textName").val() :"",
  720. departmentId:belpID,
  721. checkItemList:checkItemArray,
  722. inputList:recordArray,
  723. recordStatusList:recordStatusList,
  724. };
  725. $.ajax({
  726. method:'post',
  727. url:'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/addRecordTemplate',
  728. data:addStetaInfo,
  729. dataType:'json',
  730. success:function (res) {
  731. if(res.code === '200'){
  732. layer.msg('添加成功', {icon: 1});
  733. table.reload('recordTemplateID');
  734. layer.close(index);
  735. }else if (res.code === '438') {
  736. layer.msg(res.code.msg, {icon: 2});
  737. table.reload('recordTemplateID')
  738. }else {
  739. layer.msg("添加失败,请检查信息", {icon: 2});
  740. table.reload('recordTemplateID')
  741. }
  742. },
  743. error:function (err) {
  744. layer.msg('网络错误', {icon: 2});
  745. }
  746. })
  747. }
  748. })
  749. });
  750. // 记录类型
  751. function getInputType(body,iframeWin,arr){
  752. // select-box
  753. $.ajax({
  754. method:'get',
  755. url:'http://apptest.jieweizhineng.com/api/swagger/api/template/v1/getInputTypeList',
  756. data:'',
  757. dataType:'json',
  758. success:function (res) {
  759. if (res.code === '200') {
  760. var str;
  761. for (key in res.data){
  762. for (var k = 0; k < arr.length; k++) {
  763. if (key == arr[k]) {
  764. str = `<option value="${key}" selected>${res.data[key]}</option>`;
  765. }else {
  766. str = `<option value="${key}">${res.data[key]}</option>`;
  767. }
  768. body.find(".select-box"+k).append(str);
  769. }
  770. }
  771. iframeWin.layui.form.render();
  772. }
  773. },
  774. error:function (err) {
  775. }
  776. })
  777. }
  778. });