增加平板扫码功能

This commit is contained in:
mgw
2023-04-24 16:00:08 +08:00
parent 9300073be4
commit 21f7f55ae8
83 changed files with 309 additions and 272 deletions

View File

@@ -0,0 +1,77 @@
/** @odoo-module **/
import { registry } from "@web/core/registry";
import { standardFieldProps } from "@web/views/fields/standard_field_props";
import { useBus, useService } from "@web/core/utils/hooks";
const { Component, xml } = owl;
export class BarcodeHandlerField extends Component {
setup() {
console.log('99999999111');
this.actionService = useService("action")
console.log(this.actionService)
const barcode = useService("barcode");
// this.rpc = useService("rpc");
// useBus(barcode.bus, "barcode_scanned", this.onBarcodeScanned.bind(this));
useBus(barcode.bus, "barcode_scanned", this.onBarcodeScanned.bind(this));
}
async _rpc(params) {
// const { data } = await this.env.services.rpc('/web/dataset/call_kw', params);
const response = await this.env.services.rpc('/web/dataset/call_kw', params);
console.log('response', response);
console.log('response.result', response.result);
// return response
const responseObject = JSON.parse(response)
return responseObject;
}
async onBarcodeScanned(event) {
const { barcode } = event.detail;
this.props.update(barcode);
// const actionService = useService("action");
// const productId = 12345
console.log('111222222222211111');
// 根据条形码获取相关数据例如产品ID
const response = await this._rpc({
model: 'mrp.workorder',
method: 'get_product_id_by_barcode',
args: [barcode],
kwargs:{},
});
// console.log(productId.result)
if (response.result) {
const action = response.result;
console.log(action)
console.log('11111111111111111111111111111111111');
// 通过产品ID执行操作并跳转到表单视图
// await this.actionService.doAction({
// // type: 'ir.actions.act_window',
// // res_model: 'product.product',
// // res_id: productId,
// // views: [[false, 'form']],
// // target: 'current',
// 'name': '工单',
// 'type': 'ir.actions.act_window',
// 'views': [[false, 'form']],
// 'view_mode': 'form',
// 'res_model': 'mrp.workorder',
// 'view_id': 918,
// 'res_id': 1023,
// 'target': 'current',
// });
await this.actionService.doAction(response.result);
} else {
console.error("Barcode not found or RPC call failed.");
}
}
}
BarcodeHandlerField.template = xml``;
BarcodeHandlerField.props = { ...standardFieldProps };
registry.category("fields").add("barcode_handlerrr", BarcodeHandlerField);