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 @@
-
+