正常的按钮已经默认,但有时候却需要自定义的绑定按钮,这时候就需要修改js里面的内容来达到想要的目的了,
var attrs = event.data.attrs;
//改动地方---------------------------------------------------------
attrs.context = this.selectedRecordIds;
//判断是否是自定义按钮
// console.log('oooooooooooooooooooo');
// console.log(attrs.type);
if (attrs.type === 'tree') {
// console.log('zzzzzzzz============================================');
// console.log(self);
// console.log(event);
var res_id = event.data.record.res_id;
self._rpc({
model: self.modelName,
method: attrs.name,
args: [res_id],
}).then(function (result) {
if ('warning' in result) {
new Dialog.alert(self, result.warning, {
confirm_callback: function () {
self._enableButtons();
self.reload();
// self.reload();
}
});
} else {
new custom_dialogs.BiconSelectCreateDialog(self, {
res_model: result.res_model,
title: result.title || '没有设置标题,这是默认标题!',
// initial_view: 'search',
list_view_id: result.list_view_id || false,
search_view_id: result.search_view_id || false,
form_view_id: result.form_view_id || false,
disable_multiple_selection: false,
text: result.text || '确定',
no_create: true,
custom_button: true,
domain: result.domain,
//点击模态框下面的确定按钮执行的回调函数
on_selected: function (records) {
var ids = _.pluck(records, 'res_id');
self._rpc({
model: self.modelName,
method: result.call_back,
args: [res_id, ids],
}).then(function () {
self._enableButtons();
self.reload();
},
function () {
self._enableButtons();
self.reload();
}
).always(
function () {
self._enableButtons();
self.reload();
}
);
},
//点击模态框下面的取消按钮执行的回调函数
custom_cancel: function () {
self._enableButtons();
self.reload();
},
//点击模态框右上角进行关闭执行的回调函数
custom_close: function () {
self._enableButtons();
self.reload();
}
}).open();
}
}).always(function () {
self._enableButtons();
self.reload();
});
}
if (attrs.type === 'son_tree') {
var res_id = event.data.record.res_id;
var selectedIds = self.selectedRecordIds.selectedIds;
if (_.isEmpty(selectedIds)) {
new Dialog.alert(self, '没选中任何数据,请勾选!', {
confirm_callback: function () {
self._enableButtons();
self.reload();
}
});
} else {
if (selectedIds.length > 1) {
new Dialog.alert(self, '一次只能修改勾选一条数据!', {
confirm_callback: function () {
self._enableButtons();
self.reload();
}
});
} else {
var datas1 = {
'id': res_id,
'xiId': selectedIds[0]
};
self._rpc({
model: self.modelName,
method: attrs.name,
args: [datas1],
}).then(function (result) {
if (result && typeof (result) == 'object') {
if ('warning' in result) {
new Dialog.alert(self, result.warning, {
confirm_callback: function () {
self._enableButtons();
self.reload();
// self.reload();
}
});
} else {
new custom_dialogs.BiconSelectCreateDialog(self, {
res_model: result.res_model,
title: result.title || '没有设置标题,这是默认标题!',
// initial_view: 'search',
list_view_id: result.list_view_id || false,
search_view_id: result.search_view_id || false,
form_view_id: result.form_view_id || false,
disable_multiple_selection: false,
text: result.text || '确定',
no_create: true,
custom_button: true,
domain: result.domain,
//点击模态框下面的确定按钮执行的回调函数
on_selected: function (records) {
var ids = _.pluck(records, 'res_id');
var datas2 = {
'id': res_id,
'xiId': selectedIds[0],
'selectedIds': ids
};
self._rpc({
model: self.modelName,
method: result.call_back,
args: [datas2],
}).then(function () {
self._enableButtons();
self.reload();
},
function () {
self._enableButtons();
self.reload();
}
).always(
function () {
self._enableButtons();
self.reload();
}
);
},
//点击模态框下面的取消按钮执行的回调函数
custom_cancel: function () {
self._enableButtons();
self.reload();
},
//点击模态框右上角进行关闭执行的回调函数
custom_close: function () {
self._enableButtons();
self.reload();
}
}).open();
}
}
}).always(function () {
self._enableButtons();
self.reload();
});
}
}
}
# 勾兑采购付款单
@api.model
def custom_Blending(self, id):
record = self.search([('id', '=', id)])
if not record.correctflag:
return {'warning': "只有勾选冲调标志后才能勾兑采购付款细单"}
else:
view_id = self.env.ref('purchage_manage.rx_cms_su_pay_v_tree').id
return {
'list_view_id': view_id,
'title': '勾兑采购付款细单',
'res_model': 'rx_cms_su_pay_v',
'call_back': 'CustomBlending',
'domain': [('paysettleflag', '=', False)]
}
# 勾兑采购付款单按钮后弹窗之后的确定按钮
@api.model
def CustomBlending(self, model_redid, ids):
data = []
print(self)
records = self.env['rx_cms_su_pay_v'].search([('id', 'in', ids)])
for r in records:
param = {
'susetid': model_redid,
'goodsid': r.goodsid,
'goodsunit': r.goodsunit,
'goodsspetype': r.goodsspetype,
'prodarea': r.prodarea,
'vendorid': r.vendorid,
'unitprice': r.unitprice,
'l_money': r.l_money,
'rel_goodsid': r.goodsid,
'rel_goodsid': r.goodsid,
'taxrate': r.su_taxrate,
'costprice': r.costprice,
'costmoney': r.costmoney,
'paydtlid': r.paydtlid,
'payid': r.payid,
'rel_vendorid': r.vendorid,
}
print(param)
sql = "update cms_su_pay set paysettleflag=True where id=%s "% r.payid
self.env.cr.execute(sql)
data.append(param)
self.env['cms_su_settle_dtl'].create(data)
print(data)
button里面按钮要修改的就是type=‘tree’
因篇幅问题不能全部显示,请点此查看更多更全内容