recordTemplate.js 44 KB

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