From 082e25feae64a5a391074566866d2fea3385ba2c Mon Sep 17 00:00:00 2001 From: hyyy <123@qq.com> Date: Thu, 13 Mar 2025 16:10:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B7=BB=E5=8A=A0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quality_control/models/quality.py | 2 + .../src/js/quality.check.measures.line.js | 80 +++++++++++++++++++ .../views/quality.check.measures.line.xml | 3 +- quality_control/views/quality_views.xml | 2 +- 4 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 quality_control/static/src/js/quality.check.measures.line.js diff --git a/quality_control/models/quality.py b/quality_control/models/quality.py index f67741a0..3e83aec2 100644 --- a/quality_control/models/quality.py +++ b/quality_control/models/quality.py @@ -193,6 +193,7 @@ class QualityCheck(models.Model): def add_measure_line(self): + self.total_qty = self.total_qty + 1 """ 新增测量值,如果测量值有5列了,则提示“最多只能有5列测量值” """ @@ -204,6 +205,7 @@ class QualityCheck(models.Model): # }) def remove_measure_line(self): + self.total_qty = self.total_qty - 1 """ 删除测量值 """ diff --git a/quality_control/static/src/js/quality.check.measures.line.js b/quality_control/static/src/js/quality.check.measures.line.js new file mode 100644 index 00000000..233edda7 --- /dev/null +++ b/quality_control/static/src/js/quality.check.measures.line.js @@ -0,0 +1,80 @@ +/** @odoo-module **/ + +import { patch } from "@web/core/utils/patch"; +import { ListRenderer } from "@web/views/list/list_renderer"; +import { X2ManyField } from '@web/views/fields/x2many/x2many_field'; +import { registry } from '@web/core/registry'; + + +export class QualityCheckMeasureLineTree extends X2ManyField { + setup() { + super.setup(); + } + + get rendererProps() { + const props = super.rendererProps; + return props; + } +} + +patch(ListRenderer.prototype, 'custom_measure_line_tree_patch', { + setup() { + this._super.apply(this, arguments); + console.log('custom_measure_line_tree_patch'); + console.log(owl); + owl.onMounted(() => { + console.log($(this.__owl__.bdom.el).find('tfoot')); + $(this.__owl__.bdom.el).find('tfoot').hide() + }) + + owl.onRendered(() => { + setTimeout(() => { + const $dom = $(this.__owl__.bdom.el) + const $thead = $dom.find('thead').find('th'); + const $total_qty = this.props.list.records[0].data.total_qty; + const hideKey = [] + const width = $dom.find('[data-name=measure_value1]').width(); + $thead.each(function () { + const key = $(this).attr('data-name'); + if (key && key.indexOf('measure_value') >= 0) { + const keyNum = Number(key.replace('measure_value', '')); + if (keyNum > $total_qty) { + hideKey.push(key); + } + } + }); + $dom.find(':hidden').show().css('width', width); + const hideDom = hideKey.map(_ => { + return `[data-name="${_}"],[name="${_}"]` + }) + $dom.find(hideDom.join(',')).hide() + const $cloNum = $dom.find('.o_data_row').children('td:visible').length; + $dom.find('.o_data_row').siblings('tr').children('td').prop('colspan', $cloNum); + $dom.find('tfoot').hide() + }, 50); + }) + + }, + + + // get hasSelectors() { + // return this.withSelectorColumn || (this.props.allowSelectors && !this.env.isSmall); + // }, + + + _renderRow(list) { + console.log('list', list); + // if(!this.__owl__.bdom || !this.__owl__.bdom.el) return; + // const $row = $(this.__owl__.bdom.el).find('tbody').children('tr'); + return ''; + }, + + getContext() { + return this.context; + }, + getContext() { + return this.context; + }, +}) + +registry.category('fields').add('custom_measure_line_tree', QualityCheckMeasureLineTree); \ No newline at end of file diff --git a/quality_control/views/quality.check.measures.line.xml b/quality_control/views/quality.check.measures.line.xml index c0e3be04..879a175a 100644 --- a/quality_control/views/quality.check.measures.line.xml +++ b/quality_control/views/quality.check.measures.line.xml @@ -4,8 +4,9 @@ quality.check.measure.line.tree quality.check.measure.line - + + diff --git a/quality_control/views/quality_views.xml b/quality_control/views/quality_views.xml index c55a6f53..425716c0 100644 --- a/quality_control/views/quality_views.xml +++ b/quality_control/views/quality_views.xml @@ -339,7 +339,7 @@
- +