|
@@ -936,10 +936,14 @@ export default {
|
|
|
this.FormNameList = [];
|
|
|
let { mainForm, subFormList } = data;
|
|
|
this.formList = [];
|
|
|
- let showValue = mainForm.showValue[0];
|
|
|
+ let showValue = mainForm.showValue[0].resultMap;
|
|
|
if (showValue) {
|
|
|
- mainForm.showTemplate.resultMap = mainForm.showValue;
|
|
|
+ for (const key of Object.keys(showValue)) {
|
|
|
+ showValue[toUnderline(key)] = showValue[key];
|
|
|
+ }
|
|
|
+ mainForm.showTemplate.resultMap = [showValue];
|
|
|
}
|
|
|
+
|
|
|
this.formList.push({
|
|
|
template: mainForm.showTemplate,
|
|
|
tableName: mainForm.mainFormTable,
|
|
@@ -948,13 +952,39 @@ export default {
|
|
|
tableName: mainForm.mainFormTable,
|
|
|
formItem: mainForm.mainFormItem,
|
|
|
relateFormItem: null,
|
|
|
+ formType: mainForm.showTemplate.spare == "2" ? "batch" : "normal",
|
|
|
+ defaultValue: mainForm.showValue[0].resultMap,
|
|
|
});
|
|
|
if (subFormList && subFormList.length > 0) {
|
|
|
subFormList.forEach((item) => {
|
|
|
- // console.log(item);
|
|
|
let showValue = item.showValue[0];
|
|
|
if (showValue) {
|
|
|
- item.showTemplate.resultMap = item.showValue;
|
|
|
+ if (item.showTemplate.spare == "2") {
|
|
|
+ //动态表格表单
|
|
|
+ let batch = {};
|
|
|
+ batch[item.formItem?.split(".")?.[0]] = item.showValue.map(
|
|
|
+ (item) => item.resultMap
|
|
|
+ );
|
|
|
+ // 所有字段驼峰转下划线
|
|
|
+ batch[item.formItem?.split(".")?.[0]].forEach((item) => {
|
|
|
+ for (const key of Object.keys(item)) {
|
|
|
+ item[toUnderline(key)] = item[key];
|
|
|
+ }
|
|
|
+ });
|
|
|
+ item.showTemplate.resultMap = [
|
|
|
+ {
|
|
|
+ batch,
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ } else {
|
|
|
+ console.log("iresultMap", item.showValue[0].resultMap);
|
|
|
+ for (const key of Object.keys(item.showValue[0].resultMap)) {
|
|
|
+ item.showValue[0].resultMap[toUnderline(key)] =
|
|
|
+ item.showValue[0].resultMap[key];
|
|
|
+ }
|
|
|
+
|
|
|
+ item.showTemplate.resultMap = [item.showValue[0].resultMap];
|
|
|
+ }
|
|
|
}
|
|
|
this.formList.push({
|
|
|
template: item.showTemplate,
|
|
@@ -964,6 +994,8 @@ export default {
|
|
|
tableName: item.formItem?.split(".")?.[0],
|
|
|
formItem: item.formItem,
|
|
|
relateFormItem: item.relateMainItem,
|
|
|
+ formType: item.showTemplate.spare == "2" ? "batch" : "normal",
|
|
|
+ defaultValue: item.showTemplate.resultMap.batch,
|
|
|
});
|
|
|
});
|
|
|
}
|
|
@@ -1196,12 +1228,48 @@ export default {
|
|
|
let temp = field.replace(tableName, "");
|
|
|
return toUnderline(temp[0].toLowerCase() + temp.slice(1));
|
|
|
},
|
|
|
+ // 处理 动态表单 动态表格 新增数据
|
|
|
+ getInsertBatchData(values, data) {
|
|
|
+ if (Object.keys(values.batch).length == 0) return data;
|
|
|
+ let tableName = Object.keys(values.batch)[0];
|
|
|
+ data.basicMap.tableName = tableName;
|
|
|
+ data.addListMap = values.batch[tableName].map((item) => {
|
|
|
+ delete item.key;
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+ return data;
|
|
|
+ },
|
|
|
+ // 处理 动态表单 动态表格 修改数据
|
|
|
+ getEditBatchData(values, data) {},
|
|
|
+ // 处理 表单组 含有动态表格 新增数据
|
|
|
+ getFormGroupBatchData(values, index, result) {
|
|
|
+ let tableName = Object.keys(values.data.batch)[0];
|
|
|
+ let res = {
|
|
|
+ basicMap: {
|
|
|
+ tableName,
|
|
|
+ },
|
|
|
+ addListMap: [],
|
|
|
+ };
|
|
|
+ let { formItem, relateFormItem } = values;
|
|
|
+ console.log(formItem, relateFormItem, result);
|
|
|
+ res.addListMap = values.data.batch[tableName].map((item) => {
|
|
|
+ delete item.key;
|
|
|
+ console.log(formItem.split(".")[1], relateFormItem.split(".")[1]);
|
|
|
+ item[formItem.split(".")[1]] =
|
|
|
+ result[0].data[relateFormItem.split(".")[1]]; //将主表单的关联值赋值给从表单
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+ return res;
|
|
|
+ },
|
|
|
//提交编辑结果按钮回调
|
|
|
async editConfirmHandler() {
|
|
|
if (this.$refs.addFromRef && this.formType == "dragForm") {
|
|
|
this.$refs.addFromRef
|
|
|
.getData()
|
|
|
.then(async (values) => {
|
|
|
+ // console.log("dragForm", values);
|
|
|
+
|
|
|
+ // return;
|
|
|
let data = {
|
|
|
basicMap: {
|
|
|
tableName: this.tableName,
|
|
@@ -1213,6 +1281,7 @@ export default {
|
|
|
commMap: {},
|
|
|
btnParametersMap: {},
|
|
|
};
|
|
|
+
|
|
|
if (this.currentBtnData.btnParams) {
|
|
|
let btnParams =
|
|
|
JSON.parse(this.currentBtnData.btnParams)?.commonFieldData ||
|
|
@@ -1238,14 +1307,27 @@ export default {
|
|
|
});
|
|
|
}
|
|
|
if (Object.keys(this.defaultValue).length) {
|
|
|
+ //修改
|
|
|
// data.conditionMap[this.templateInfo.template?.primaryKey] =
|
|
|
// this.defaultValue[this.templateInfo.template?.primaryKey];
|
|
|
- Object.keys(values).map((k) => {
|
|
|
- data.commMap[k] = values[k];
|
|
|
- });
|
|
|
+ if (values.batch) {
|
|
|
+ //动态表单的修改
|
|
|
+ data = this.getEditBatchData(values, data);
|
|
|
+ } else {
|
|
|
+ Object.keys(values).map((k) => {
|
|
|
+ data.commMap[k] = values[k];
|
|
|
+ });
|
|
|
+ }
|
|
|
data.basicMap.btnType = this.currentBtnData.btnType;
|
|
|
data.basicMap.visible = true;
|
|
|
} else {
|
|
|
+ // 处理 动态表格
|
|
|
+ // start
|
|
|
+ if (values.batch) {
|
|
|
+ data = this.getInsertBatchData(values, data);
|
|
|
+ }
|
|
|
+ // end
|
|
|
+ //新增
|
|
|
data.basicMap.btnType = "INSERT";
|
|
|
data.basicMap.visible = true;
|
|
|
}
|
|
@@ -1265,7 +1347,7 @@ export default {
|
|
|
this.open = false;
|
|
|
})
|
|
|
.catch((res) => {
|
|
|
- // console.log(res);
|
|
|
+ console.log(res);
|
|
|
this.$modal.msgError("表单校验失败,请规范填写数据");
|
|
|
});
|
|
|
} else if (this.formType == "dragFormGroup") {
|
|
@@ -1312,27 +1394,44 @@ export default {
|
|
|
? item.fieldValue
|
|
|
: this.currentRow[camelCase(item.fieldName.replace(".", "_"))];
|
|
|
});
|
|
|
-
|
|
|
- // // console.log("mainFormData", mainFormData);
|
|
|
- // // console.log("btnParams", btnParams);
|
|
|
- // // console.log("conditionData", conditionData);
|
|
|
- // // console.log("btnType", this.currentBtnData.btnType);
|
|
|
data.basicMap.btnType = this.currentBtnData.btnType;
|
|
|
data.basicMap.visible = true;
|
|
|
let payLoad = {};
|
|
|
if (this.currentBtnData.btnType == "UPDATE") {
|
|
|
+ // 准备删除数据
|
|
|
+ let deletePayloadList = [];
|
|
|
+ let insertCommonEntityList = [];
|
|
|
+ // {
|
|
|
+ // basicMap: {
|
|
|
+ // tableName: "",
|
|
|
+ // },
|
|
|
+ // conditionMap: {
|
|
|
+ // // id: delIds,
|
|
|
+ // },
|
|
|
+ // };
|
|
|
//修改
|
|
|
payLoad.updateCommonEntityList = res.map((item, index) => {
|
|
|
- let result = {
|
|
|
- basicMap: {
|
|
|
- tableName: item.tableName,
|
|
|
- },
|
|
|
- commMap: {
|
|
|
- ...item.data,
|
|
|
- },
|
|
|
- conditionMap: {},
|
|
|
- };
|
|
|
+ let result = {};
|
|
|
+ // {
|
|
|
+ // basicMap: {
|
|
|
+ // tableName: item.tableName,
|
|
|
+ // },
|
|
|
+ // commMap: {
|
|
|
+ // ...item.data,
|
|
|
+ // },
|
|
|
+ // conditionMap: {},
|
|
|
+ // };
|
|
|
if (index == 0) {
|
|
|
+ result = {
|
|
|
+ basicMap: {
|
|
|
+ tableName: item.tableName,
|
|
|
+ },
|
|
|
+ addListMap: [
|
|
|
+ {
|
|
|
+ ...item.data,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
//主表条件
|
|
|
let conditionData =
|
|
|
JSON.parse(this.currentBtnData.btnParams).conditionData ||
|
|
@@ -1347,36 +1446,93 @@ export default {
|
|
|
});
|
|
|
} else {
|
|
|
// 从表条件
|
|
|
- let { formItem, relateFormItem } = item;
|
|
|
- let fieldName = formItem.split(".")[1];
|
|
|
- let value =
|
|
|
- this.currentRow[
|
|
|
- camelCase(relateFormItem.replace(".", "_"))
|
|
|
- ];
|
|
|
- result.conditionMap[fieldName] = value;
|
|
|
+ let {
|
|
|
+ formItem,
|
|
|
+ relateFormItem,
|
|
|
+ formType,
|
|
|
+ defaultValue,
|
|
|
+ tableName,
|
|
|
+ } = item;
|
|
|
+ if (formType == "batch") {
|
|
|
+ //动态表格
|
|
|
+ // 准备删除数据
|
|
|
+ if (defaultValue[tableName]?.length) {
|
|
|
+ let ids = defaultValue[tableName].map((item) => item.id);
|
|
|
+ this.deletePayloadList.push({
|
|
|
+ basicMap: {
|
|
|
+ tableName,
|
|
|
+ },
|
|
|
+ conditionMap: {
|
|
|
+ id: ids,
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 准备新增的数据
|
|
|
+ // this.getFormGroupBatchData(item, index, res);
|
|
|
+ } else {
|
|
|
+ result = {
|
|
|
+ basicMap: {
|
|
|
+ tableName: item.tableName,
|
|
|
+ },
|
|
|
+ addListMap: [
|
|
|
+ {
|
|
|
+ ...item.data,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+ let fieldName = formItem.split(".")[1];
|
|
|
+ let value =
|
|
|
+ this.currentRow[
|
|
|
+ camelCase(relateFormItem.replace(".", "_"))
|
|
|
+ ];
|
|
|
+ result.conditionMap[fieldName] = value;
|
|
|
+ }
|
|
|
}
|
|
|
return result;
|
|
|
});
|
|
|
} else if (this.currentBtnData.btnType == "INSERT") {
|
|
|
// 新增
|
|
|
- let uuid = uuidv4();
|
|
|
+ let uuid = uuidv4().replace("-", "");
|
|
|
// console.log(uuid);
|
|
|
payLoad.insertCommonEntityList = res.map((item, index) => {
|
|
|
- let result = {
|
|
|
- basicMap: {
|
|
|
- tableName: item.tableName,
|
|
|
- },
|
|
|
- addListMap: [
|
|
|
- {
|
|
|
- ...item.data,
|
|
|
+ let result = {};
|
|
|
+ console.log(item);
|
|
|
+ // return;
|
|
|
+ if (item.data.batch) {
|
|
|
+ //动态表格
|
|
|
+ result = this.getFormGroupBatchData(item, index, res);
|
|
|
+ } else {
|
|
|
+ result = {
|
|
|
+ basicMap: {
|
|
|
+ tableName: item.tableName,
|
|
|
},
|
|
|
- ],
|
|
|
- };
|
|
|
+ addListMap: [
|
|
|
+ {
|
|
|
+ ...item.data,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+ let { formItem, relateFormItem } = item;
|
|
|
+ if (index == 0) {
|
|
|
+ //主表单
|
|
|
+ // 添加新增数据的关联条件
|
|
|
+
|
|
|
+ // console.log(formItem);
|
|
|
+ let mainFormKey = res[0].data[formItem.split(".")[1]];
|
|
|
+ if (mainFormKey) {
|
|
|
+ result.addListMap[0][formItem.split(".")[1]] =
|
|
|
+ mainFormKey;
|
|
|
+ } else {
|
|
|
+ res[0].data[formItem.split(".")[1]] = uuid;
|
|
|
+ result.addListMap[0][formItem.split(".")[1]] = uuid;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //子表单
|
|
|
+ result.addListMap[0][formItem.split(".")[1]] =
|
|
|
+ res[0].data[relateFormItem.split(".")[1]];
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // 添加新增数据的关联条件
|
|
|
- let { formItem, relateFormItem } = item;
|
|
|
- // console.log(formItem);
|
|
|
- result.addListMap[0][formItem.split(".")[1]] = uuid;
|
|
|
return result;
|
|
|
});
|
|
|
} else if (this.currentBtnData.btnType == "INITIATED") {
|