//此处是对表单的方法,组件,权限操作按钮等进行任意扩展(方法扩展可参照SellOrder.js)
let extension = {
components: {//动态扩充组件或组件路径
//表单header、content、footer对应位置扩充的组件
gridHeader: '',//{ template: "
扩展组xx件
" },
gridBody: '',
gridFooter: '',
//弹出框(修改、编辑、查看)header、content、footer对应位置扩充的组件
modelHeader: '',
modelBody: '',
modelFooter: ''
},
buttons: { view: [], box: [], detail: [] },//扩展的按钮
methods: {//事件扩展
onInit() {
// this.editFormOptions.forEach(x => {
// x.forEach(z => {
// if (z.field == 'selection_carId') {
// z.onChange = (column, row, tableData) => {
// this.selectChange(column);
// console.log(JSON.stringify(column));
// //也可以select选择后从后台加载需要的数据
// // this.http.post("xxx?参数="+row.ProductName,{},true).then(result=>{
// // // row.xxx=result.xxx
// // })
// }
// }
// })
// })
let materiel_modelno = this.getOption("selection_carId");
let confignameselect = this.getOption("selection_zcId");
let manufacturerselect = this.getOption("selection_zc_manufacturer");
materiel_modelno.onChange = (val, options) => {
let params = {
MainData: { "materielId": val },
}
this.editFormFields.selection_zcId = '';
this.editFormFields.selection_zc_manufacturer = '';
confignameselect.data = [];
manufacturerselect.data = [];
this.http.post("api/Dt_materiel_zc_info/GetZCInfoByMateriel", params, "").then(x => {
confignameselect.data = x.data;
});
};
confignameselect.onChange = (val, options) => {
let params = {
MainData: { "materielId": this.editFormFields.selection_carId, 'materielModel': val },
}
manufacturerselect.data = [];
this.editFormFields.selection_zc_manufacturer = '';
this.http.post("api/Dt_materiel_zc_info/GetManufacturerByMateriel", params, "").then(x => {
manufacturerselect.data = x.data;
});
};
}, selectChange(row) {
//找到第二个下拉框选项
let col;
this.editFormOptions.forEach(x => {
let s = x.find(r => r.field == 'selection_zcId');
if (null != s) {
col = s;
return;
}
});
let url = 'api/Dt_materiel_zc_info/GetZCInfoByMateriel';
let params = {
MainData: { "materielId": row },
}
//从后台返回第二个下拉框满足条件的数据
this.http.post(url, params, false).then((keys) => {
//keys只返回第二个下拉框的key值,用于下面的判断,返回的下拉框key选项显示,没有返回的隐藏
// keys = ['1', '2'];
col.bind.data.forEach((item) => {
//注意:第二个下拉框选项,在下拉框绑定页面,配置的字典sql需要将全部数据源返回
//如果返回的数据源有几十W,请考虑用弹出框选择数据,不要用下拉框
if (keys.indexOf(item.key) != -1) {
item.hidden = false;
} else {
item.hidden = true;
}
});
});
},
getOption(field) {
let option;
this.editFormOptions.forEach(x => {
let col = x.find(r => r.field == field);
if (null != col) {
option = col;
return;
}
});
return option;
}, modelOpenAfter(row) {
let isEDIT = this.currentAction == this.const.ADD;
this.editFormOptions.forEach(item => {
item.forEach(x => {
if (x.field == "selection_zc_manufacturer" || x.field == "selection_carId" || x.field == "selection_zcId" || x.field == "selection_standard_type") {
x.disabled = !isEDIT;
}
});
})
}
}
};
export default extension;