view.html 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>form</title>
  6. <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
  7. <link href="https://cdn.jsdelivr.net/npm/iview@2.14.3/dist/styles/iview.css" rel="stylesheet">
  8. <script src="https://cdn.jsdelivr.net/npm/iview@2.14.3/dist/iview.js"></script>
  9. <script src="./form-create.min.js"></script>
  10. <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
  11. </head>
  12. <body>
  13. <div id="app3">
  14. </div>
  15. <script>
  16. var urlId = getQueryVariable("id");
  17. var urls = getQueryVariable("url");
  18. var _m2 = false;
  19. function create2() {
  20. if (_m2) return;
  21. _m2 = true;
  22. _rule = changeData();
  23. //全局方法生成
  24. $f_3 = formCreate.create(_rule, {
  25. //表单插入的父级元素
  26. el: document.getElementById('app3'),
  27. //显示表单重置按钮
  28. resetBtn: false,
  29. submitBtn: false,
  30. //表单提交事件
  31. onSubmit: function (formData) {
  32. // console.log(formData);
  33. changeSubmitData(formData);
  34. //按钮进入提交状态
  35. $f_3.btn.loading();
  36. //重置按钮禁用
  37. $f_3.resetBtn.disabled();
  38. //按钮进入可点击状态
  39. // $f_3.btn.finish();
  40. },
  41. mounted: function () {
  42. _m2 = false;
  43. }
  44. });
  45. }
  46. var submitDataArr = [];
  47. var wenbenArr = [];
  48. var jsonData = [];
  49. // var jsonData = [
  50. // {"type":"text","title":"标题","value":"rr"},
  51. // {"type":"textarea","title":"说明","value":"gg"},
  52. // {"type":"label","title":"提示2","value":"bbbbbbbbbb"},
  53. // {"type":"password","title":"说明","value":"ss"},
  54. // {"type":"select-search","title":"搜索选择框","value":"1", "label": '1,2,3'},
  55. // {"type":"label","title":"纯文本","value":"asdfasdfasdfasdfasdf"},
  56. // {"type":"checkbox","title":"复选框","value":"1,2", "label": '1,2,3'},
  57. // {"type":"radio","title":"单选框","value":"3", "label": '1,2,3'},
  58. // {"type":"date","title":"日期","value":"2019-12-14"},
  59. // {"type":"label","title":"提示3","value":"ddddddddddd"},
  60. // ];
  61. function changeSubmitData(data) {
  62. console.log(data)
  63. for (var key in submitDataArr) {
  64. // submitDataArr[key].userVal = data[key]
  65. submitDataArr[key].value = data[key]
  66. if (submitDataArr[key].tipFlagtext) {
  67. delete submitDataArr[key].tipFlagtext
  68. }
  69. // console.log(key, data[key])
  70. }
  71. console.log(submitDataArr)
  72. if (wenbenArr.length > 0) {
  73. let num = 1
  74. for (let i = 0; i < wenbenArr.length; i++) {
  75. console.log(wenbenArr[i].idx)
  76. //向数组中添加纯文本对象
  77. submitDataArr.splice(wenbenArr[i].idx + num, 0, {
  78. "type": "label",
  79. "title": wenbenArr[i].tips.title,
  80. "value": wenbenArr[i].tips.value
  81. })
  82. //每添加一次数组长度增加1
  83. num++;
  84. }
  85. }
  86. $.ajax({
  87. type: "post",
  88. url: urls + "/toolEntForm/update",
  89. contentType: "application/json;charset=utf-8",
  90. processData: false,
  91. dataType: 'json',
  92. data: JSON.stringify({id: urlId, formJson: JSON.stringify(submitDataArr)}),
  93. error: function (request) {
  94. // this.$Message.info('操作失败!');
  95. },
  96. success: function (resp) {
  97. if (resp.code == 1) {
  98. // this.$Message.info('操作成功');
  99. } else {
  100. // this.$Message.info('操作失败!');
  101. }
  102. }
  103. });
  104. console.log(submitDataArr)
  105. }
  106. //获取url参数
  107. function getQueryVariable(variable) {
  108. var query = window.location.search.substring(1);
  109. var vars = query.split("&");
  110. for (var i = 0; i < vars.length; i++) {
  111. var pair = vars[i].split("=");
  112. if (pair[0] == variable) {
  113. return pair[1];
  114. }
  115. }
  116. return (false);
  117. }
  118. function changeData() {
  119. $.ajax({
  120. type: "get",
  121. url: urls + "/toolEntForm/getById?id=" + urlId,
  122. async: false,
  123. contentType: false,
  124. processData: false,
  125. error: function (request) {
  126. layer.alert('操作失败', {
  127. icon: 2,
  128. title: "提示"
  129. });
  130. },
  131. success: function (resp) {
  132. if (resp.code == 1) {
  133. jsonData = JSON.parse(resp.data.formJson);
  134. } else {
  135. layer.msg(resp.msg);
  136. }
  137. }
  138. });
  139. console.log(jsonData)
  140. // 去掉type=lebel的文本数据,并在该数据之前的元素添加文本说明
  141. for (let i = jsonData.length - 1; i >= 0; i--) {
  142. if (jsonData[i].type == 'label') {
  143. // debugger
  144. if (i != 0) {
  145. jsonData[i - 1].tipFlagtext = {title: jsonData[i].title, value: jsonData[i].value}
  146. }
  147. jsonData.splice(i, 1)
  148. }
  149. }
  150. // console.log(jsonData)
  151. submitDataArr = submitDataArr.concat(jsonData)
  152. // console.log(submitDataArr)
  153. for (var key in jsonData) {
  154. if (jsonData[key].tipFlagtext) {
  155. wenbenArr.push({idx: parseInt(key), tips: jsonData[key].tipFlagtext})
  156. }
  157. if (jsonData[key].type == 'text' || jsonData[key].type == 'textarea' || jsonData[key].type == 'password' || jsonData[key].type == 'date') {
  158. jsonData[key] = {
  159. type: "input",
  160. title: jsonData[key].title,
  161. field: key,
  162. value: jsonData[key].value,
  163. props: {
  164. "type": jsonData[key].type,
  165. "placeholder": "请输入内容"
  166. }
  167. }
  168. } else if (jsonData[key].type == 'select-search' || jsonData[key].type == 'checkbox' || jsonData[key].type == 'radio') {
  169. let myOption = [], formType = jsonData[key].type;
  170. /* if (jsonData[key].value) {
  171. }*/
  172. console.log(jsonData[key].label);
  173. let item = jsonData[key].label.split(',');
  174. console.log(item);
  175. for (let i = 0; i < item.length; i++) {
  176. myOption.push({"value": item[i], "label": item[i]})
  177. }
  178. if (jsonData[key].type == 'select-search') {
  179. formType = 'select'
  180. }
  181. let typeValue = jsonData[key].value.split(',')
  182. if (jsonData[key].type == 'radio') {
  183. typeValue = typeValue[0]
  184. }
  185. jsonData[key] = {
  186. type: formType,
  187. field: key,
  188. title: jsonData[key].title,
  189. value: typeValue,
  190. options: myOption
  191. }
  192. }
  193. }
  194. console.log(jsonData)
  195. return jsonData;
  196. }
  197. create2();
  198. console.log(wenbenArr)
  199. for (let i = 0; i < wenbenArr.length; i++) {
  200. //页面中显示提示说明
  201. $(".ivu-col:eq(" + wenbenArr[i].idx + ")").find('.ivu-form-item-content').append("<p>" + wenbenArr[i].tips.title + wenbenArr[i].tips.value + "</p>")
  202. }
  203. //将纯文本数据隐藏
  204. /*$('.ivu-col').each(function (i, v) {
  205. if($(v).find('.ivu-form-item >label').text() == '纯文本'){
  206. $(v).css('display','none')
  207. }
  208. })*/
  209. </script>
  210. </body>
  211. </html>