recordTemplate.js 45 KB

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