|
本帖最后由 yonyouhmm 于 2024-4-16 11:55 编辑
一、场景
物料中增加了特征字段,通过“参照配置”菜单将特征字段添加到物料参照中,采购订单中打开物料参照能看到此字段,生产订单中打开物料参照不能看到此字段。
我们支持中遇到上述控制参照中字段权限的场景,目前产品不支持配置实现,只能通过前端脚本控制。前端脚本中需要控制详情页和列表页查询区:隐藏参照弹框中查询区的字段,表格中的字段,表格右上角列设置中的字段。
二、前端脚本
详情页:
viewModel
.getGridModel('materOuts')
.getEditRowModel()
.get('product_cCode')
.on('afterInitVm', function (arg) {
const referViewModel = arg.vm;
referViewModel.on('afterGetRefMeta', (data) => {
debugger;
let columns = data.gridMeta.viewApplication.view.containers[2].controls;
columns.forEach((item, index) => {
if (item.cShowCaption == '物料名称') {
columns.splice(index, 1);
}
});
});
let gridModel = referViewModel.get('table');
gridModel.on('beforeSetTitle', function (titleList) {
titleList.forEach((item, index) => {
if (item.cShowCaption == '物料名称') {
titleList.splice(index, 1);
}
});
});
gridModel.on('beforeSetColumns', (columns) => {
delete columns.name;
});
referViewModel.on('afterInitCommonViewModel', function () {
const filterViewModel = referViewModel.getCache('FilterViewModel');
filterViewModel.on('afterInit', function () {
filterViewModel.get('name').getFromModel().setVisible(false);
});
});
});
列表页:
viewModel.on('afterMount', function (data) {
let filterViewModelInfo = viewModel.getCache('FilterViewModel');
filterViewModelInfo.on('afterInit', function (data) {
//product_cName 是查询区的物料的字段编码
filterViewModelInfo.get('product_cName').getFromModel().on('afterInitVm', function (arg) {
const referViewModel = arg.vm;
referViewModel.on('afterGetRefMeta', (data) => {
debugger;
let columns = data.gridMeta.viewApplication.view.containers[2].controls;
columns.forEach((item, index) => {
if (item.cShowCaption == '物料名称') {
columns.splice(index, 1);
}
});
});
let gridModel = referViewModel.get('table');
gridModel.on('beforeSetTitle', function (titleList) {
titleList.forEach((item, index) => {
if (item.cShowCaption == '物料名称') {
titleList.splice(index, 1);
}
});
});
gridModel.on('beforeSetColumns', (columns) => {
delete columns.name;
});
referViewModel.on('afterInitCommonViewModel', function () {
const filterViewModel = referViewModel.getCache('FilterViewModel');
filterViewModel.on('afterInit', function () {
filterViewModel.get('name').getFromModel().setVisible(false);
});
});
});
});
});
材料出库单子表有个小房间标识的参照和批次号
viewModel
.get('materOuts')
.getEditRowModel()
.get('stockproductsku_cCode')
.on('afterInitVm', function (arg) {
const referViewModel = arg.vm;
debugger;
referViewModel.on('afterGetRefMeta', (data) => {
debugger;
let columns = data.gridMeta.viewApplication.view.containers[3].controls;
columns.forEach((item, index) => {
if (item.cShowCaption == '物料名称') {
columns.splice(index, 1);
}
});
});
let gridModel = referViewModel.get('table');
gridModel.on('beforeSetTitle', function (titleList) {
titleList.forEach((item, index) => {
if (item.cShowCaption == '物料名称') {
titleList.splice(index, 1);
}
});
});
gridModel.on('beforeSetColumns', (columns) => {
delete columns.product_cName;
});
});
viewModel
.get('materOuts')
.getEditRowModel()
.get('batchno')
.on('afterInitVm', function (arg) {
const referViewModel = arg.vm;
debugger;
referViewModel.on('afterGetRefMeta', (data) => {
debugger;
let columns = data.gridMeta.viewApplication.view.containers[0].controls;
columns.forEach((item, index) => {
if (item.cShowCaption == '物料名称') {
columns.splice(index, 1);
}
});
});
let gridModel = referViewModel.get('table');
gridModel.on('beforeSetTitle', function (titleList) {
titleList.forEach((item, index) => {
if (item.cShowCaption == '物料名称') {
titleList.splice(index, 1);
}
});
});
gridModel.on('beforeSetColumns', (columns) => {
delete columns.cName;
});
});
|
|