diff --git a/quality_control/models/quality.py b/quality_control/models/quality.py index 17acf218..16f47a0e 100644 --- a/quality_control/models/quality.py +++ b/quality_control/models/quality.py @@ -204,6 +204,7 @@ class QualityCheck(models.Model): ], string='发布状态', default='draft') def add_measure_line(self): + self.total_qty = self.total_qty + 1 """ 新增测量值,如果测量值有5列了,则提示“最多只能有5列测量值” """ @@ -215,6 +216,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 9000fbd3..ef77d373 100644 --- a/quality_control/views/quality.check.measures.line.xml +++ b/quality_control/views/quality.check.measures.line.xml @@ -6,6 +6,7 @@ + diff --git a/quality_control/views/quality_views.xml b/quality_control/views/quality_views.xml index 1f7cbbd2..cf804f1c 100644 --- a/quality_control/views/quality_views.xml +++ b/quality_control/views/quality_views.xml @@ -340,7 +340,7 @@
- +