1
0

recordTemplate.js 47 KB

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