|
本帖最后由 星空昊 于 2024-2-27 17:16 编辑
我要做版本的切换,基本已经实现了,现在有个问题。
当为版本一的时候。我创建了三包。
版本三的时候,将那两包删除了。
这时候,查询版本一,原来删除的版本,由于查看的时候,会自动走底层自己的查询,根据id去查,由于数据已经被删除了,导致没法查看。
我这里显示不同版本的方法是创建了一模一样的数据,存了一份,然后再下载后中去查询我存的副本数据。但是由于删除了,导致没走到加载后方法。
报错:
查看的代码为:
vm.get("button59fi").on("click", (e) => {//查看
console.info(e);
console.info(vm.get("po_require_subpackList").getRow(e.index));
let data = {
billtype: 'voucher', // 卡片:voucher
billno: 'po_subpack_modal', // 卡片页:编码
params: {
mode: 'edit', // (编辑态、新增态、浏览态)
id: vm.get("po_require_subpackList").getRow(e.index).id, // 编辑数据ID
allData: vm.getAllData(),
modeVersion: modalversion,
readOnly: true,
}
};
cb.loader.runCommandLine('bill', data, vm);
})弹窗里面的查询后方法为://根据版本显示对应内容
function showSubByVersion(viewModel, version) {
let resultSubData = showSubDiffVersion(viewModel, version);
let allSubDatas = getSubAllData(viewModel);
if (resultSubData == false || allSubDatas == false) {
return;
}
let allSubData = JSON.parse(JSON.stringify(allSubDatas)) || [];
let requireSubPackage = resultSubData.po_require_subpack;
const excludeKeys = ['_status', 'attrNames', 'creator', 'dr', 'billEntityInfo', 'billField',
'checkItemMap', 'extendData', 'serializeNullFields', 'fullName', 'metaFullName', 'new', 'tableName',
'nonpublic_file', 'pkFieldName', 'primaryKey', 'modifier', "po_require_demandList", "po_require_reviewrulesList",
"po_require_reviewrules_techList", "po_require_id", "pubts"];
for (let key in requireSubPackage) {
if (allSubDatas.hasOwnProperty(key) && !excludeKeys.includes(key)) {
viewModel.get(key).setValue(requireSubPackage[key]);
}
}
//这里需要重新调一下,因为为否时要隐藏。
isImportsAct();
let parentViewModel = viewModel.getCache('parentViewModel');
initCheckApplyStyle(viewModel, parentViewModel);
initReviewRule(viewModel, parentViewModel);
//落实政策功能
initImplPolicy();
//强制标准
isStandardAct();
//自选要求
initOptionalRequirements();
//填写方式
FillingMethod();
//需求调查
isDemandSurveyAct();
//面向中小企业采购
enterpriseProcureAct();
updateSubRows(allSubData, resultSubData, 'po_require_demandList', viewModel);
updateSubRows(allSubData, resultSubData, 'po_require_reviewrulesList', viewModel);
updateSubRows(allSubData, resultSubData, 'po_require_reviewrules_techList', viewModel);
}
//更新三个孙表
function updateSubRows(allSubData, resultSubData, key, viewModel) {
let subRows = allSubData[key];
let resultSubRows = resultSubData.po_require_subpack[key] || [];
subRows = Array.from({length: Math.max(subRows.length, resultSubRows.length)}, (_, index) => {
return resultSubRows[index] || {};
});
viewModel.get(key).setDataSource(subRows);
// 有一种情况需要删行,就是当有某一行数据都为空的时候,将这行数据删行。
viewModel.get(key).getRows().forEach((value, k) => {
//删除
if (!value.id) {
viewModel.get(key).deleteRows(k)
}
})
}
|
本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册
X
|