|
@@ -69,22 +69,80 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
fid: null,
|
|
|
+ needHandlerTypeList: ["table", "grid", "tabs", "card"],
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 处理表单布局嵌套
|
|
|
+ getAllSelectItems(itemList = [], res = []) {
|
|
|
+ if (itemList.length == 0) return;
|
|
|
+ itemList.forEach((item) => {
|
|
|
+ if (this.isNeedSql(item)) {
|
|
|
+ res.push(item);
|
|
|
+ } else {
|
|
|
+ console.log(item.type);
|
|
|
+ switch (item.type) {
|
|
|
+ case "table":
|
|
|
+ item.trs.forEach((n) => {
|
|
|
+ n.tds.forEach((m) => {
|
|
|
+ this.getAllSelectItems(m.list, res);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "grid":
|
|
|
+ item.columns.forEach((n) => {
|
|
|
+ this.getAllSelectItems(n.list, res);
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "tabs":
|
|
|
+ console.log("item.columns", item.columns);
|
|
|
+ item.columns.forEach((n) => {
|
|
|
+ this.getAllSelectItems(n.list, res);
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "card":
|
|
|
+ // item.columns?.forEach((n) => {
|
|
|
+ // this.getAllSelectItems(n.list, res);
|
|
|
+ // });
|
|
|
+ this.getAllSelectItems(item.list, res);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ },
|
|
|
+ // 判断是否需要sql
|
|
|
+ isNeedSql(item) {
|
|
|
+ let needSqlArr = ["select", "treeSelect", "cascader"];
|
|
|
+ return needSqlArr.includes(item.type) && item.options.dynamic;
|
|
|
+ },
|
|
|
+ // 判断是否需要处理嵌套
|
|
|
+ isNeedDeep(item) {
|
|
|
+ let needDeepArr = ["table", "grid", "tabs", "card"];
|
|
|
+ return needDeepArr.includes(item.type);
|
|
|
+ },
|
|
|
+ // 保存回调
|
|
|
handleSave(values) {
|
|
|
var jsonData = JSON.parse(values);
|
|
|
//
|
|
|
var editorHtmlJson =
|
|
|
codeHtmlFront + JSON.stringify(jsonData) + codeHtmlLast;
|
|
|
let { list } = jsonData;
|
|
|
- let needSqlArr = ["select", "treeSelect", "cascader"];
|
|
|
- let selectArr = list.filter((item) => {
|
|
|
- return needSqlArr.includes(item.type) && item.options.dynamic;
|
|
|
- });
|
|
|
+ // let needSqlArr = ["select", "treeSelect", "cascader"];
|
|
|
+
|
|
|
+ // console.log(list);
|
|
|
+ // let selectArr = list.filter((item) => {
|
|
|
+ // return needSqlArr.includes(item.type) && item.options.dynamic;
|
|
|
+ // });
|
|
|
+ let selectArr = [];
|
|
|
+ console.log("list", list);
|
|
|
+ this.getAllSelectItems(list, selectArr);
|
|
|
let formSQL = {};
|
|
|
+ console.log("selectArr", selectArr);
|
|
|
selectArr.forEach((item) => {
|
|
|
- console.log(item);
|
|
|
// formSQL = {
|
|
|
// ...formSQL,
|
|
|
// ...item.options.sqlData,
|