import { onMounted, reactive, Ref, ref, nextTick, defineComponent } from "vue";
import { EI } from "EIX/ei";
import xrEfForm from "EFX/xrEfForm";
import xrEfPanel from "EFX/xrEfPanel";
import xrEfSearchBox from "EFX/xrEfSearchBox";
import xrEfDialog from "EFX/xrEfDialog";
import EFUtility from "EFX/EFUtility";
import erLayout from "ERX/ErLayout";
import erGrid from "ERX/ErGrid";
import { ER } from "ERX/Er";
//import { EI } from 'ERX/FiUtils';
import { SiUtils } from "ERX/SiUtils";
import { FiUtils } from "ERX/FiUtils";
import EFDialogForm, { EFDialogFormMessage } from "EFX/EFDialogForm";
import { info, log } from "console";
import { emptyProps } from "ant-design-vue/es/empty";
import ErPopFree from "ERX/ErPopFree";
import ErPopQuery from "ERX/ErPopQuery";
import { PopFreeReturnInfo, PopQueryReturnInfo } from "ERX/er-type";
export default defineComponent({
name: "MMHRX20Q2P2",
components: {
xrEfForm,
xrEfPanel,
xrEfSearchBox,
xrEfDialog,
erGrid,
erLayout,
FiUtils,
EFDialogForm,
},
setup: () => {
// 获取画面的分区信息及设置画面初始化service
// const formParams = EFFormInfo.getFormParams();
// const formPartition = formParams.formPartition;
const initializeService ="mmhr_form_get";
// const g_formParams = EFFormInfo.getFormParams();
// 变量定义
//const formName = "MMHRD20Q2";
//const erFormHelper = reactive(new ErFormHelper());
const initializeFlag = ref(0);
const configId_INQ_DETAIL = ref("");
const configId_INQ = ref("");
const configId_QUERY = ref("");
let mm_table_ename: any = "";
let mm_form_ename: any = "";
let mm_layout1_ename: any = "";
let mm_layout2_ename: any = "";
let mm_gridview_ename: any = "";
const formPartition = ref("");
const efFormInfo = ref<{ [key: string]: any }>({});
const efFormIsReady = ref(false);
const erFormHelper: ER.FormHelper = new ER.FormHelper() as any;
let formName2 = ""; // 当前画面名
//子母画面参数
// 画面相关数据初始化
const efFormReady = async (e: any) => {
console.log("11111", e);
efFormInfo.value = e.formInfo;
efFormIsReady.value = true;
formPartition.value = efFormInfo.value.formPartition;
console.log("efFormInfo.value.formPartition:",efFormInfo.value.formPartition);
console.log("efFormInfo.value",efFormInfo.value);
formName2 = efFormInfo.value.formName;
//formName2=MMHRX20Q2P2
//formName2.substring(5, 9)=20Q2
//console.log("formName2:",formName2);
console.log("MM_TABLE_ENAME",efFormInfo.value.formParams.MM_TABLE_ENAME);
console.log("MM_FORM_ENAME",efFormInfo.value.formParams.MM_FORM_ENAME);
console.log("MM_LAYOUT1_ENAME",efFormInfo.value.formParams.MM_LAYOUT1_ENAME);
console.log("MM_LAYOUT2_ENAME",efFormInfo.value.formParams.MM_LAYOUT2_ENAME);
console.log("MM_GRIDVIEW_ENAME",efFormInfo.value.formParams.MM_GRIDVIEW_ENAME);
if (efFormInfo.value.formParams?.MM_TABLE_ENAME) {
mm_table_ename = efFormInfo.value.formParams["MM_TABLE_ENAME"];//
}
console.log("mm_table_ename",mm_table_ename);
if (efFormInfo.value.formParams?.MM_FORM_ENAME) {
mm_form_ename = efFormInfo.value.formParams["MM_FORM_ENAME"];//
}
console.log("mm_form_ename",mm_form_ename);
if (efFormInfo.value.formParams?.MM_LAYOUT1_ENAME) {
mm_layout1_ename = efFormInfo.value.formParams["MM_LAYOUT1_ENAME"];//
}
console.log("mm_layout1_ename",mm_layout1_ename);
if (efFormInfo.value.formParams?.MM_LAYOUT2_ENAME) {
mm_layout2_ename = efFormInfo.value.formParams["MM_LAYOUT2_ENAME"];//
}
console.log("mm_layout2_ename",mm_layout2_ename);
if (efFormInfo.value.formParams?.MM_GRIDVIEW_ENAME) {
mm_gridview_ename = efFormInfo.value.formParams["MM_GRIDVIEW_ENAME"];//
}
console.log("mm_gridview_ename",mm_gridview_ename);
configId_INQ_DETAIL.value =mm_layout2_ename;
configId_INQ.value = mm_gridview_ename;
configId_QUERY.value =mm_layout1_ename;
//configId_INQ_DETAIL.value ="MMHRD" + formName2.substring(5, 9) + "_INQ_DETAIL";
//configId_INQ.value = "MMHRD" + formName2.substring(5, 9) + "_INQ";
//configId_QUERY.value = "MMHRD" + formName2.substring(5, 9) + "_QUERY";
//console.log("configId_INQ_DETAIL.value",configId_INQ_DETAIL.value);
console.log("configId_INQ.value",configId_INQ.value);
// 初始化低代码工具类
Initialize();
// console.log('configId_INQ_DETAIL',configId_INQ_DETAIL.value,configId_INQ.value,configId_QUERY.value);
};
const erGrid1Ready = () => {
erFormHelper.setGridEditable(configId_INQ.value, false);
};
// 画面相关数据初始化
const Initialize = async () => {
const initFormParas = {
MM_TABLE_ENAME: mm_table_ename,
MM_FORM_ENAME: mm_form_ename,
MM_LAYOUT1_ENAME:mm_layout1_ename,
MM_LAYOUT2_ENAME:mm_layout2_ename,
MM_GRIDVIEW_ENAME:mm_gridview_ename,
};
const initialResult = await erFormHelper.Initialize(
formPartition.value,
mm_form_ename,
"",
initializeService,
initFormParas
);
console.log("111", initialResult);
if (initialResult.flag >= 0) {
// 画面工具类初始化成功后将画面渲染条件设置为1
initializeFlag.value = 1;
// Query();
// 回调函数获取控件信息及设置定义事件等操作
nextTick(() => {
// 获取画面上的主要控件信息
});
} else {
erFormHelper.messageError(
"ErFormHelper initialize faild, error msg is [" +
initialResult.msg +
"]!"
);
}
};
onMounted(() => {
//initializePage();
});
const setgridToolBar = (gridView: string, bool: boolean) => {
erFormHelper.setGridToolbarVisible(gridView, {
addrow: bool,
copyrow: bool,
delete: bool,
cancel: bool,
});
};
const queryGrid1=async() =>{
const eiblock = erFormHelper.getAllControlValueAsEiBlock(
configId_QUERY.value
);
console.log("eiblock:",eiblock);//MAT_NO材料号
if (eiblock.containsColumn("MAT_NO")) {
eiblock.data[0]["MAT_NO"] = eiblock.data[0]["MAT_NO"]
?.toString()
.trim()
.replace("\r\n", "','") as any;
eiblock.data[0]["MAT_NO"] = eiblock.data[0]["MAT_NO"]
?.toString()
.trim()
.replace("\n\n", "','") as any;
eiblock.data[0]["MAT_NO"] = eiblock.data[0]["MAT_NO"]
?.toString()
.trim()
.replace("\n", "','") as any;
eiblock.data[0]["MAT_NO"] = eiblock.data[0]["MAT_NO"]
?.toString()
.trim()
.replace("\r", "") as any;
eiblock.data[0]["MAT_NO"] = eiblock.data[0]["MAT_NO"]
?.toString()
.trim()
.replace(" ", "") as any;
}
//UNIT_CODE:机组
if (typeof eiblock.data[0]["UNIT_CODE"] !== "undefined") {
if (eiblock.data[0]["UNIT_CODE"]?.toString().trim() === "") {
erFormHelper.messageError("请选择机组");
return;
}
}
eiblock.addColumn("MM_TABLE_ENAME", mm_table_ename);
console.log("eiblock.addColumn:",eiblock)
const inInfo = new EI.EIInfo();
inInfo.addBlock(eiblock, "AGTable");
console.log("inInfo包括",inInfo);
console.log("configId_INQ.value:", typeof configId_INQ.value, configId_INQ.value);
//MMHRD20Q2_INQ
erFormHelper.setGridServerPagingService(
configId_INQ.value,
inInfo,
"mmhr20q1f2_inq"
);
console.log("11");
};
const F2_DO = async (e: any) => {
// erFormHelper.getGridServerPageData(configId_INQ.value);
queryGrid1();
};
const F3_DO = async (e: any) => {
erFormHelper.stopGridEditing([configId_INQ.value], async () => {
const eiInfo = new EI.EIInfo();
const created1 = erFormHelper.getGridRowsAsBlock(configId_INQ.value, "add");
if (!created1 || created1.data.length === 0) {
erFormHelper.messageInfo("没有新增的数据");
return;
}
eiInfo.addBlock(created1, "ADD1");
//需添加服务
const outInfo = await erFormHelper.callService("", eiInfo, true, true);
if (outInfo.sys.status < 0) {
erFormHelper.messageError("新增失败:" + outInfo.sys.msg);
} else {
erFormHelper.messageInfo(outInfo.sys.msg || "新增成功");
queryGrid1();
setgridToolBar(configId_INQ.value, false);
erFormHelper.setGridEditable(configId_INQ.value, false);
}
});
};
const F3_PRE_DO = async (e: any) => {
//设置底部工具栏可见
setgridToolBar(configId_INQ.value, true);
//设置列可编辑
erFormHelper.setGridEditable(configId_INQ.value, true);
};
const F3_CANCEL = async (e: any) => {
//设置底部工具栏不可见
setgridToolBar(configId_INQ.value, false);
//设置列可编辑
erFormHelper.setGridEditable(configId_INQ.value, false);
};
const F4_DO = async (e: any) => {
erFormHelper.stopGridEditing([configId_INQ.value], async () => {
const eiInfo = new EI.EIInfo();
const deleted1 = erFormHelper.getGridRowsAsBlock(configId_INQ.value, "delete");
if (!deleted1 || deleted1.data.length === 0) {
erFormHelper.messageInfo("没有删除的数据");
return;
}
eiInfo.addBlock(deleted1, "DEL1");
const outInfo = await erFormHelper.callService("", eiInfo, true, true);//需添加服务
if (outInfo.sys.status < 0) {
erFormHelper.messageError("删除失败:" + outInfo.sys.msg);
} else {
erFormHelper.messageInfo(outInfo.sys.msg || "删除成功");
queryGrid1();
setgridToolBar(configId_INQ.value, false);
erFormHelper.setGridEditable(configId_INQ.value, false);
}
})
};
const F4_PRE_DO = async (e: any) => {
setgridToolBar(configId_INQ.value, true);
erFormHelper.setGridEditable(configId_INQ.value, true);
};
const F4_CANCEL = async (e: any) => {
setgridToolBar(configId_INQ.value, false);
erFormHelper.setGridEditable(configId_INQ.value, false);
};
const F5_DO = async (e: any) => {
erFormHelper.stopGridEditing([configId_INQ.value], async () => {
const eiInfo = new EI.EIInfo();
const updated1 = erFormHelper.getGridRowsAsBlock(configId_INQ.value, "modify");
if (!updated1 || updated1.data.length === 0) {
erFormHelper.messageInfo("没有修改的数据");
return;
}
eiInfo.addBlock(updated1, "UPD1");
const outInfo = await erFormHelper.callService("", eiInfo, true, true);//需添加修改服务
if (outInfo.sys.status < 0) {
erFormHelper.messageError("修改失败:" + outInfo.sys.msg);
} else {
erFormHelper.messageInfo(outInfo.sys.msg || "修改成功");
queryGrid1();
setgridToolBar(configId_INQ.value, false);
erFormHelper.setGridEditable(configId_INQ.value, false);
}
});
};
const F5_PRE_DO = async (e: any) => {
setgridToolBar(configId_INQ.value, true);
erFormHelper.setGridEditable(configId_INQ.value, true);
};
const F5_CANCEL = async (e: any) => {
setgridToolBar(configId_INQ.value, false);
erFormHelper.setGridEditable(configId_INQ.value, false);
};
const inqIdxFocusChanged = async (e: any) => {
if (e && e.rowChanged) {
console.log("e:",e);
console.log("e.data:",e.data);
if (e.data) {
const prodSeqNo = e.data.PROD_SEQ_NO;
console.log("prodSeqNo",prodSeqNo);
if (!prodSeqNo || prodSeqNo.toString().trim() === "") {
// 说明是新增未提交的行,跳过查询
erFormHelper.clearLayoutData(configId_INQ_DETAIL.value);
return;
}
const eiBlock1 = erFormHelper.addJsonToEiBlock(
JSON.parse(JSON.stringify(e.data))
);
const eiBlock = new EI.EiBlock();
eiBlock.pushData(
{
MM_TABLE_ENAME: mm_table_ename,
PROD_SEQ_NO: eiBlock1.data[0]["PROD_SEQ_NO"],//生产流水号
},
true
);
const eiInfo = new EI.EIInfo();
eiInfo.addBlock(eiBlock);
console.log("eiInfo=",eiInfo);
const outInfo = await erFormHelper.callService(
"mmhr20q1a1_inq",
eiInfo,
true,
true,
true,
formPartition.value
);
if (outInfo.sys.status < 0) {
erFormHelper.messageError(
"实绩信息的焦点行查询错误:" + outInfo.sys.msg
);
return;
}
if (outInfo.getBlock("Table0").data.length > 0) {
let list = {};
list = outInfo.getBlock("Table0").data[0];
console.log("list",list);
erFormHelper.setControlValueEx(configId_INQ_DETAIL.value, list);
} else {
erFormHelper.clearLayoutData(configId_INQ_DETAIL.value);
}
} else {
erFormHelper.clearLayoutData(configId_INQ_DETAIL.value);
}
}
};
return {
erFormHelper,
initializeFlag,
F2_DO,
F3_DO,
F3_PRE_DO,
F3_CANCEL,
F4_DO,
F4_PRE_DO,
F4_CANCEL,
F5_DO,
F5_PRE_DO,
F5_CANCEL,
inqIdxFocusChanged,
configId_QUERY,
configId_INQ,
configId_INQ_DETAIL,
efFormReady,
erGrid1Ready,
};
},
});
在画面点击按钮F2(查询)请求服务发送不到后台,之前用写死的方法(configId_INQ.value换成"MMHRD20Q2_INQ")是可以发送请求服务的,并返回查询的数据,就是下面这个服务:
erFormHelper.setGridServerPagingService(
configId_INQ.value,
inInfo,
"mmhr20q1f2_inq"
);
我用日志打印出动态传入的参数,发现类型和值都是和写死的相同的,不知道为什么换一下就不行了(纯新手,请求大神帮忙指点,代码是根据别人的模仿的)
configId_INQ.value 的值是通过异步操作(如 efFormReady)赋值的,可能在调用 queryGrid1() 时还未完成初始化。
确保 queryGrid1() 调用前 configId_INQ.value 已赋值。
在 efFormReady 中初始化完成后才允许按钮操作: