123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>form</title>
- <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
- <link href="https://cdn.jsdelivr.net/npm/iview@2.14.3/dist/styles/iview.css" rel="stylesheet">
- <script src="https://cdn.jsdelivr.net/npm/iview@2.14.3/dist/iview.js"></script>
- <script src="./form-create.min.js"></script>
- <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
- </head>
- <body>
- <div id="app3">
- </div>
- <script>
- var urlId = getQueryVariable("id");
- var urls = getQueryVariable("url");
- var _m2 = false;
- function create2() {
- if (_m2) return;
- _m2 = true;
- _rule = changeData();
- //全局方法生成
- $f_3 = formCreate.create(_rule, {
- //表单插入的父级元素
- el: document.getElementById('app3'),
- //显示表单重置按钮
- resetBtn: false,
- submitBtn: false,
- //表单提交事件
- onSubmit: function (formData) {
- // console.log(formData);
- changeSubmitData(formData);
- //按钮进入提交状态
- $f_3.btn.loading();
- //重置按钮禁用
- $f_3.resetBtn.disabled();
- //按钮进入可点击状态
- // $f_3.btn.finish();
- },
- mounted: function () {
- _m2 = false;
- }
- });
- }
- var submitDataArr = [];
- var wenbenArr = [];
- var jsonData = [];
- // var jsonData = [
- // {"type":"text","title":"标题","value":"rr"},
- // {"type":"textarea","title":"说明","value":"gg"},
- // {"type":"label","title":"提示2","value":"bbbbbbbbbb"},
- // {"type":"password","title":"说明","value":"ss"},
- // {"type":"select-search","title":"搜索选择框","value":"1", "label": '1,2,3'},
- // {"type":"label","title":"纯文本","value":"asdfasdfasdfasdfasdf"},
- // {"type":"checkbox","title":"复选框","value":"1,2", "label": '1,2,3'},
- // {"type":"radio","title":"单选框","value":"3", "label": '1,2,3'},
- // {"type":"date","title":"日期","value":"2019-12-14"},
- // {"type":"label","title":"提示3","value":"ddddddddddd"},
- // ];
- function changeSubmitData(data) {
- console.log(data)
- for (var key in submitDataArr) {
- // submitDataArr[key].userVal = data[key]
- submitDataArr[key].value = data[key]
- if (submitDataArr[key].tipFlagtext) {
- delete submitDataArr[key].tipFlagtext
- }
- // console.log(key, data[key])
- }
- console.log(submitDataArr)
- if (wenbenArr.length > 0) {
- let num = 1
- for (let i = 0; i < wenbenArr.length; i++) {
- console.log(wenbenArr[i].idx)
- //向数组中添加纯文本对象
- submitDataArr.splice(wenbenArr[i].idx + num, 0, {
- "type": "label",
- "title": wenbenArr[i].tips.title,
- "value": wenbenArr[i].tips.value
- })
- //每添加一次数组长度增加1
- num++;
- }
- }
- $.ajax({
- type: "post",
- url: urls + "/toolEntForm/update",
- contentType: "application/json;charset=utf-8",
- processData: false,
- dataType: 'json',
- data: JSON.stringify({id: urlId, formJson: JSON.stringify(submitDataArr)}),
- error: function (request) {
- // this.$Message.info('操作失败!');
- },
- success: function (resp) {
- if (resp.code == 1) {
- // this.$Message.info('操作成功');
- } else {
- // this.$Message.info('操作失败!');
- }
- }
- });
- console.log(submitDataArr)
- }
- //获取url参数
- function getQueryVariable(variable) {
- var query = window.location.search.substring(1);
- var vars = query.split("&");
- for (var i = 0; i < vars.length; i++) {
- var pair = vars[i].split("=");
- if (pair[0] == variable) {
- return pair[1];
- }
- }
- return (false);
- }
- function changeData() {
- $.ajax({
- type: "get",
- url: urls + "/toolEntForm/getById?id=" + urlId,
- async: false,
- contentType: false,
- processData: false,
- error: function (request) {
- layer.alert('操作失败', {
- icon: 2,
- title: "提示"
- });
- },
- success: function (resp) {
- if (resp.code == 1) {
- jsonData = JSON.parse(resp.data.formJson);
- } else {
- layer.msg(resp.msg);
- }
- }
- });
- console.log(jsonData)
- // 去掉type=lebel的文本数据,并在该数据之前的元素添加文本说明
- for (let i = jsonData.length - 1; i >= 0; i--) {
- if (jsonData[i].type == 'label') {
- // debugger
- if (i != 0) {
- jsonData[i - 1].tipFlagtext = {title: jsonData[i].title, value: jsonData[i].value}
- }
- jsonData.splice(i, 1)
- }
- }
- // console.log(jsonData)
- submitDataArr = submitDataArr.concat(jsonData)
- // console.log(submitDataArr)
- for (var key in jsonData) {
- if (jsonData[key].tipFlagtext) {
- wenbenArr.push({idx: parseInt(key), tips: jsonData[key].tipFlagtext})
- }
- if (jsonData[key].type == 'text' || jsonData[key].type == 'textarea' || jsonData[key].type == 'password' || jsonData[key].type == 'date') {
- jsonData[key] = {
- type: "input",
- title: jsonData[key].title,
- field: key,
- value: jsonData[key].value,
- props: {
- "type": jsonData[key].type,
- "placeholder": "请输入内容"
- }
- }
- } else if (jsonData[key].type == 'select-search' || jsonData[key].type == 'checkbox' || jsonData[key].type == 'radio') {
- let myOption = [], formType = jsonData[key].type;
- /* if (jsonData[key].value) {
- }*/
- console.log(jsonData[key].label);
- let item = jsonData[key].label.split(',');
- console.log(item);
- for (let i = 0; i < item.length; i++) {
- myOption.push({"value": item[i], "label": item[i]})
- }
- if (jsonData[key].type == 'select-search') {
- formType = 'select'
- }
- let typeValue = jsonData[key].value.split(',')
- if (jsonData[key].type == 'radio') {
- typeValue = typeValue[0]
- }
- jsonData[key] = {
- type: formType,
- field: key,
- title: jsonData[key].title,
- value: typeValue,
- options: myOption
- }
- }
- }
- console.log(jsonData)
- return jsonData;
- }
- create2();
- console.log(wenbenArr)
- for (let i = 0; i < wenbenArr.length; i++) {
- //页面中显示提示说明
- $(".ivu-col:eq(" + wenbenArr[i].idx + ")").find('.ivu-form-item-content').append("<p>" + wenbenArr[i].tips.title + wenbenArr[i].tips.value + "</p>")
- }
- //将纯文本数据隐藏
- /*$('.ivu-col').each(function (i, v) {
- if($(v).find('.ivu-form-item >label').text() == '纯文本'){
- $(v).css('display','none')
- }
- })*/
- </script>
- </body>
- </html>
|