|
@@ -244,16 +244,23 @@
|
|
|
scrolling="no"
|
|
|
>
|
|
|
</iframe> -->
|
|
|
- <k-form-build
|
|
|
- v-if="jsonData"
|
|
|
- class="formBuild"
|
|
|
- ref="addFromRef"
|
|
|
- :dynamicData="dynamicData"
|
|
|
- :defaultValue="defaultValue"
|
|
|
- @submit="tempSubBtn"
|
|
|
- @change="formChangeHandler"
|
|
|
- :value="jsonData"
|
|
|
- />
|
|
|
+ <!-- <template v-else> -->
|
|
|
+ <template v-if="formType == 'dragFormGroup'">
|
|
|
+ <FormList ref="formGroupRef" :formList="formList"></FormList>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="formType == 'dragForm'">
|
|
|
+ <k-form-build
|
|
|
+ v-if="jsonData"
|
|
|
+ class="formBuild"
|
|
|
+ ref="addFromRef"
|
|
|
+ :dynamicData="dynamicData"
|
|
|
+ :defaultValue="defaultValue"
|
|
|
+ @submit="tempSubBtn"
|
|
|
+ @change="formChangeHandler"
|
|
|
+ :value="jsonData"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="editConfirmHandler">确 定</el-button>
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
@@ -325,10 +332,12 @@ import { inputDisableComplete } from "@/utils/other";
|
|
|
import Menu from "./BtnMenu.vue";
|
|
|
import { checkRole } from "@/utils/permission";
|
|
|
import DialogTemplate from "@/views/dialogTemplate/components/index.vue";
|
|
|
+import FormList from "@/components/FormGroup/formList.vue";
|
|
|
+import { v4 as uuidv4 } from "uuid";
|
|
|
|
|
|
export default {
|
|
|
name: "listInfo",
|
|
|
- components: { Queryfrom, Menu, DialogTemplate },
|
|
|
+ components: { Queryfrom, Menu, DialogTemplate, FormList },
|
|
|
data() {
|
|
|
return {
|
|
|
// 绑定按钮dialog
|
|
@@ -435,6 +444,12 @@ export default {
|
|
|
currentRow: {},
|
|
|
// 操作列是否显示隐藏
|
|
|
isShowExcuteCol: false,
|
|
|
+
|
|
|
+ // 表单组数据
|
|
|
+ formList: [],
|
|
|
+ formType: "dragFormGroup",
|
|
|
+ FormNameList: [], //表单组中表格名称
|
|
|
+ FormListDefaultValue: {}, //表单组的默认表单数据
|
|
|
};
|
|
|
},
|
|
|
|
|
@@ -658,6 +673,7 @@ export default {
|
|
|
handleAdd(row) {
|
|
|
// this.reset();
|
|
|
this.defaultValue = {};
|
|
|
+ this.formType = "dragForm";
|
|
|
getInfoBySqlKey(this.templateInfo.template.sqlKey).then(({ data }) => {
|
|
|
if (!data || !data.dfVueTemplate) {
|
|
|
this.jsonData = false;
|
|
@@ -707,11 +723,18 @@ export default {
|
|
|
return null;
|
|
|
}
|
|
|
},
|
|
|
+ // 延迟
|
|
|
+ sleep(ms) {
|
|
|
+ var unixtime_ms = new Date().getTime();
|
|
|
+ while (new Date().getTime() < unixtime_ms + ms) {}
|
|
|
+ return "";
|
|
|
+ },
|
|
|
/** 修改按钮操作 */
|
|
|
async handleUpdate(row, btnData) {
|
|
|
let nameTable = this.templateInfo.template.dtTableName;
|
|
|
this.rowobj = {};
|
|
|
let obj = {};
|
|
|
+ this.formList = [];
|
|
|
for (let key in row) {
|
|
|
let modifiedTable = key
|
|
|
.replace(/[A-Z]/g, (match) => `_${match}`)
|
|
@@ -730,7 +753,29 @@ export default {
|
|
|
|
|
|
// 新的修改请求
|
|
|
try {
|
|
|
- let payLoad = {
|
|
|
+ console.log("btnData", btnData);
|
|
|
+ let { btnFormType } = btnData;
|
|
|
+ this.formType = btnFormType;
|
|
|
+ let payLoad = {};
|
|
|
+ let primary = camelCase(
|
|
|
+ this.tableName + "_" + this.templateInfo.template?.primaryKey
|
|
|
+ );
|
|
|
+ // if (btnFormType == "dragFormGroup") {
|
|
|
+ // payLoad.updateCommonEntityList = {
|
|
|
+ // basicMap: {
|
|
|
+ // btnType: this.currentBtnData.btnType,
|
|
|
+ // btnKey: this.currentBtnData.btnKey,
|
|
|
+ // visible: "false",
|
|
|
+ // sqlKey: this.templateInfo.template.sqlKey,
|
|
|
+ // tableName: this.tableName,
|
|
|
+ // },
|
|
|
+ // conditionMap: {},
|
|
|
+ // };
|
|
|
+ // payLoad.updateCommonEntityList.conditionMap[
|
|
|
+ // this.templateInfo.template?.primaryKey
|
|
|
+ // ] = row[primary];
|
|
|
+ // } else {
|
|
|
+ payLoad = {
|
|
|
basicMap: {
|
|
|
btnType: this.currentBtnData.btnType,
|
|
|
btnKey: this.currentBtnData.btnKey,
|
|
@@ -740,32 +785,53 @@ export default {
|
|
|
},
|
|
|
conditionMap: {},
|
|
|
};
|
|
|
- let primary = camelCase(
|
|
|
- this.tableName + "_" + this.templateInfo.template?.primaryKey
|
|
|
- );
|
|
|
payLoad.conditionMap[this.templateInfo.template?.primaryKey] =
|
|
|
row[primary];
|
|
|
+ // }
|
|
|
+
|
|
|
let res = await btnCommonApi(payLoad);
|
|
|
// 判断是否绑定dialog弹窗
|
|
|
if (!this.currentBtnData.btnTableFormGroupKey) {
|
|
|
- if (!res.data || !res.data.template) {
|
|
|
+ if ((!res.data || !res.data.template) && !res.data?.mainForm) {
|
|
|
this.$message.error("当前按钮未绑定表单!");
|
|
|
return;
|
|
|
}
|
|
|
+ if (btnFormType == "dragFormGroup") {
|
|
|
+ //表单组
|
|
|
+ if (res.code == 200) {
|
|
|
+ if (res.data.mainForm) {
|
|
|
+ //表单组
|
|
|
+ console.log(res.data);
|
|
|
+ this.transformDataFormat(res.data);
|
|
|
+ this.tableName = res.data.mainForm.showTemplate.dfTableName;
|
|
|
+ } else {
|
|
|
+ this.formList = res.data;
|
|
|
+ this.tableName = res.data.dfTableName;
|
|
|
+ }
|
|
|
+ this.open = true;
|
|
|
+ // this.$nextTick(() => {
|
|
|
+ // // this.sleep(1000);
|
|
|
+ // this.$refs.formGroupRef.setDefaultValue();
|
|
|
+ // });
|
|
|
+ } else {
|
|
|
+ this.$message.error("网络异常,请稍后再试");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //单个表单
|
|
|
+ res.data.template.dfFormSql &&
|
|
|
+ (this.dynamicData = JSON.parse(res.data.template.dfFormSql));
|
|
|
+ this.addRealFieldName(res.data.result.resultMap);
|
|
|
+ let resultMap = res.data.result.resultMap;
|
|
|
|
|
|
- res.data.template.dfFormSql &&
|
|
|
- (this.dynamicData = JSON.parse(res.data.template.dfFormSql));
|
|
|
- this.addRealFieldName(res.data.result.resultMap);
|
|
|
- let resultMap = res.data.result.resultMap;
|
|
|
-
|
|
|
- Object.assign(this.defaultValue, resultMap);
|
|
|
- this.jsonData = JSON.parse(res.data.template.dfVueTemplate);
|
|
|
- this.open = true;
|
|
|
- this.title = "修改信息";
|
|
|
- this.form.password = this.initPassword;
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refs.addFromRef.setData(res.data.result.resultMap);
|
|
|
- });
|
|
|
+ Object.assign(this.defaultValue, resultMap);
|
|
|
+ this.jsonData = JSON.parse(res.data.template.dfVueTemplate);
|
|
|
+ this.open = true;
|
|
|
+ this.title = "修改信息";
|
|
|
+ this.form.password = this.initPassword;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.addFromRef.setData(res.data.result.resultMap);
|
|
|
+ });
|
|
|
+ }
|
|
|
} else {
|
|
|
this.subTableName = res.data.result.dragTables[1].dtTableName;
|
|
|
this.btnDialogVisible = true;
|
|
@@ -859,6 +925,43 @@ export default {
|
|
|
this.form.password = "";
|
|
|
});
|
|
|
},
|
|
|
+ // 将表单组数据转换成符合单个表单的数据格式
|
|
|
+ transformDataFormat(data) {
|
|
|
+ this.FormNameList = [];
|
|
|
+ let { mainForm, subFormList } = data;
|
|
|
+ this.formList = [];
|
|
|
+ let showValue = mainForm.showValue[0];
|
|
|
+ if (showValue) {
|
|
|
+ mainForm.showTemplate.resultMap = mainForm.showValue;
|
|
|
+ }
|
|
|
+ this.formList.push({
|
|
|
+ template: mainForm.showTemplate,
|
|
|
+ tableName: mainForm.mainFormTable,
|
|
|
+ });
|
|
|
+ this.FormNameList.push({
|
|
|
+ tableName: mainForm.mainFormTable,
|
|
|
+ formItem: mainForm.mainFormItem,
|
|
|
+ relateFormItem: null,
|
|
|
+ });
|
|
|
+ if (subFormList && subFormList.length > 0) {
|
|
|
+ subFormList.forEach((item) => {
|
|
|
+ console.log(item);
|
|
|
+ let showValue = item.showValue[0];
|
|
|
+ if (showValue) {
|
|
|
+ item.showTemplate.resultMap = mainForm.showValue;
|
|
|
+ }
|
|
|
+ this.formList.push({
|
|
|
+ template: item.showTemplate,
|
|
|
+ tableName: item.formItem?.split(".")?.[0],
|
|
|
+ });
|
|
|
+ this.FormNameList.push({
|
|
|
+ tableName: item.formItem?.split(".")?.[0],
|
|
|
+ formItem: item.formItem,
|
|
|
+ relateFormItem: item.relateMainItem,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
// 添加真正的字段名
|
|
|
addRealFieldName(row) {
|
|
|
let fieldList = Object.keys(row);
|
|
@@ -1089,7 +1192,7 @@ export default {
|
|
|
},
|
|
|
//提交编辑结果按钮回调
|
|
|
async editConfirmHandler() {
|
|
|
- if (this.$refs.addFromRef) {
|
|
|
+ if (this.$refs.addFromRef && this.formType == "dragForm") {
|
|
|
this.$refs.addFromRef
|
|
|
.getData()
|
|
|
.then(async (values) => {
|
|
@@ -1159,6 +1262,136 @@ export default {
|
|
|
console.log(res);
|
|
|
this.$modal.msgError("表单校验失败,请规范填写数据");
|
|
|
});
|
|
|
+ } else if (this.formType == "dragFormGroup") {
|
|
|
+ //表单组
|
|
|
+ // console.log(this.$refs.formGroupRef);
|
|
|
+
|
|
|
+ let promiseArray = this.FormNameList.map((item) => {
|
|
|
+ return this.$refs.formGroupRef?.getFormData(item);
|
|
|
+ });
|
|
|
+ Promise.all(promiseArray).then(
|
|
|
+ async (res) => {
|
|
|
+ // 获取到所有表单数据
|
|
|
+ console.log(res);
|
|
|
+ let data = {
|
|
|
+ basicMap: {
|
|
|
+ tableName: this.tableName,
|
|
|
+ // btnKey: btnData.btnKey,
|
|
|
+ btnKey: this.currentBtnData.btnKey,
|
|
|
+ BpmRunNodeFormDateVo: {},
|
|
|
+ },
|
|
|
+ conditionMap: {},
|
|
|
+ commMap: {},
|
|
|
+ btnParametersMap: {},
|
|
|
+ };
|
|
|
+ if (this.currentBtnData.btnParams) {
|
|
|
+ let btnParams =
|
|
|
+ JSON.parse(this.currentBtnData.btnParams)?.commonFieldData ||
|
|
|
+ [];
|
|
|
+ // let conditionData =
|
|
|
+ // JSON.parse(this.currentBtnData.btnParams)?.conditionData || [];
|
|
|
+ // let
|
|
|
+ btnParams.forEach((item) => {
|
|
|
+ data.btnParametersMap[item.fieldName.split(".")[1]] =
|
|
|
+ item.fieldValue
|
|
|
+ ? item.fieldValue
|
|
|
+ : this.currentRow[
|
|
|
+ camelCase(item.fieldName.replace(".", "_"))
|
|
|
+ ];
|
|
|
+ });
|
|
|
+ // conditionData.forEach((item) => {
|
|
|
+ // data.conditionMap[item.fieldName.split(".")[1]] =
|
|
|
+ // item.fieldValue
|
|
|
+ // ? item.fieldValue
|
|
|
+ // : this.currentRow[
|
|
|
+ // camelCase(item.fieldName.replace(".", "_"))
|
|
|
+ // ];
|
|
|
+ // });
|
|
|
+ }
|
|
|
+ data.basicMap.btnType = this.currentBtnData.btnType;
|
|
|
+ data.basicMap.visible = true;
|
|
|
+ let payLoad = {};
|
|
|
+ if (this.currentBtnData.btnType == "UPDATE") {
|
|
|
+ //修改
|
|
|
+ payLoad.updateCommonEntityList = res.map((item, index) => {
|
|
|
+ let result = {
|
|
|
+ basicMap: {
|
|
|
+ tableName: item.tableName,
|
|
|
+ },
|
|
|
+ commMap: {
|
|
|
+ ...item.data,
|
|
|
+ },
|
|
|
+ conditionMap: {},
|
|
|
+ };
|
|
|
+ if (index == 0) {
|
|
|
+ //主表条件
|
|
|
+ let conditionData =
|
|
|
+ JSON.parse(this.currentBtnData.btnParams).conditionData ||
|
|
|
+ [];
|
|
|
+ conditionData.forEach((item) => {
|
|
|
+ result.conditionMap[item.fieldName.split(".")[1]] =
|
|
|
+ item.fieldValue
|
|
|
+ ? item.fieldValue
|
|
|
+ : this.currentRow[
|
|
|
+ camelCase(item.fieldName.replace(".", "_"))
|
|
|
+ ];
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 从表条件
|
|
|
+ let { formItem, relateFormItem } = item;
|
|
|
+ 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();
|
|
|
+ console.log(uuid);
|
|
|
+ payLoad.insertCommonEntityList = res.map((item, index) => {
|
|
|
+ let result = {
|
|
|
+ basicMap: {
|
|
|
+ tableName: item.tableName,
|
|
|
+ },
|
|
|
+ addListMap: [
|
|
|
+ {
|
|
|
+ ...item.data,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+
|
|
|
+ // 添加新增数据的关联条件
|
|
|
+ let { formItem, relateFormItem } = item;
|
|
|
+ console.log(formItem);
|
|
|
+ result.addListMap[0][formItem.split(".")[1]] = uuid;
|
|
|
+ return result;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ data.basicMap.BpmRunNodeFormDateVo = payLoad;
|
|
|
+ try {
|
|
|
+ let res = await btnCommonApi(data);
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message.success("操作成功");
|
|
|
+ this.getList();
|
|
|
+ this.defaultValue = {};
|
|
|
+ this.open = false;
|
|
|
+ } else {
|
|
|
+ this.$message.error("网络异常,请稍后再试");
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error);
|
|
|
+ this.$message.error("网络异常,请稍后再试");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ (err) => {
|
|
|
+ console.log(err);
|
|
|
+ }
|
|
|
+ );
|
|
|
} else {
|
|
|
// 没有绑定表单
|
|
|
let data = {
|
|
@@ -1378,6 +1611,7 @@ export default {
|
|
|
this.noNeedHandler(btnData, row);
|
|
|
return;
|
|
|
}
|
|
|
+
|
|
|
switch (btnType) {
|
|
|
case "INNERLINK":
|
|
|
this.routerHandler(btnData, btnType);
|
|
@@ -1397,6 +1631,8 @@ export default {
|
|
|
case "DELETE":
|
|
|
this.handleDelete(row, btnData);
|
|
|
break;
|
|
|
+ case "INSERT":
|
|
|
+ this.handleUpdate(row, btnData);
|
|
|
default:
|
|
|
break;
|
|
|
}
|