diff --git a/jikimo_frontend/static/src/js/custom_form_status_indicator.js b/jikimo_frontend/static/src/js/custom_form_status_indicator.js
index 7db13b4b..100542b8 100644
--- a/jikimo_frontend/static/src/js/custom_form_status_indicator.js
+++ b/jikimo_frontend/static/src/js/custom_form_status_indicator.js
@@ -4,6 +4,7 @@ import {patch} from '@web/core/utils/patch';
// import { Dialog } from "@web/core/dialog/dialog";
import {_t} from "@web/core/l10n/translation";
import {FormStatusIndicator} from "@web/views/form/form_status_indicator/form_status_indicator";
+import {ListRenderer} from "@web/views/list/list_renderer";
import {Field} from "@web/views/fields/field";
@@ -45,6 +46,11 @@ const filedRequiredList = {
'date_planned_start': { multiple: false, noLabel: false },
'date_planned_finished': { multiple: false, noLabel: false },
}
+const tableRequiredList = [
+ 'product_template_id', 'product_uom_qty', 'price_unit','product_id','product_qty',
+ 'name', 'fault_type', 'maintenance_standards', 'Period'
+]
+
patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', {
// 你可以重写或者添加一些方法和属性
async _onDiscardChanges() {
@@ -110,7 +116,24 @@ patch(Field.prototype, 'jikimo_frontend.Field', {
}
}
})
-
+patch(ListRenderer.prototype, 'jikimo_frontend.ListRenderer', {
+ setup(){
+ owl.onMounted(() => {
+ this.activeElement = this.uiService.activeElement;
+ this.setRequired()
+ })
+ return this._super(...arguments);
+ },
+ setRequired() {
+ this.allColumns.forEach(_ => {
+ if( tableRequiredList.indexOf(_.name) >= 0 ) {
+ const dom = $(`th[data-name=${_.name}]`)
+ let t = dom.html()
+ dom.html('*' + t)
+ }
+ })
+ }
+})
$(function () {
document.addEventListener('click', function () {
@@ -160,45 +183,13 @@ $(function () {
}, 500)
}
- function setRequired(dom = {label: [], table: []}) {
- let domTimer = null
- let timer_count = 0
- clearInterval(domTimer)
- domTimer = setInterval(() => {
- timer_count++
- const lint = $('.o_form_view_container')
- if (lint.length) {
- clearInterval(domTimer)
- const { table} = dom
-
- if (table.length) {
- table.forEach(_ => {
- const th = $(`th[data-name=${_}]`)
- const t = th.find('span').eq(0).text().replace('*','')
- th.find('span').eq(0).html('*' + t)
-
- })
-
- }
- }
- if (timer_count == 20) {
- clearInterval(domTimer)
- }
- }, 500)
- }
-
var currentUrl = location.href
- const customRequiredDom = {
- table: ['product_template_id', 'product_uom_qty', 'price_unit','product_id','product_qty', 'name', 'fault_type', 'maintenance_standards', 'Period']
- }
const listenerUrl = setInterval(() => {
const isChange = currentUrl != location.href
if (isChange) {
currentUrl = location.href
customRequired()
- setRequired(customRequiredDom)
}
}, 500)
customRequired()
- setRequired(customRequiredDom)
})
diff --git a/jikimo_frontend/static/src/scss/custom_style.scss b/jikimo_frontend/static/src/scss/custom_style.scss
index bc1be730..f7195534 100644
--- a/jikimo_frontend/static/src/scss/custom_style.scss
+++ b/jikimo_frontend/static/src/scss/custom_style.scss
@@ -467,3 +467,15 @@ div:has(.o_required_modifier) > label::before {
background: #71639e;
color: #fff
}
+
+// 修改时间输入框宽度
+.o_datepicker_input.o_input.datetimepicker-input {
+ width: 200px;
+}
+
+
+.o_form_view .o_form_editable .o_row > .o_field_widget, .o_form_view .o_form_editable .o_row > .o_field_widget.o_field_float_time {
+ width: auto !important;
+ flex: unset;
+}
+
diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py
index a3a9e172..e3b737f0 100644
--- a/sf_base/models/tool_base_new.py
+++ b/sf_base/models/tool_base_new.py
@@ -308,3 +308,23 @@ class ToolGroups(models.Model):
# records = super(ToolGroups, self).create(vals_list)
# self._register_tool_groups(records)
# return records
+
+
+class ToolInventory(models.Model):
+ _name = 'sf.tool.inventory'
+ _description = '功能刀具清单'
+
+ name = fields.Char('功能刀具名称', required=True)
+ type = fields.Char('类型')
+ prefix = fields.Char('前缀')
+ postfix = fields.Char('后缀')
+ diameter = fields.Float('直径(mm)')
+ angle = fields.Float('R角(mm)')
+ tool_length = fields.Float('刀具总长(mm)')
+ blade_length = fields.Float('避空长/刃长(mm)')
+ knife_head_name = fields.Char('刀头名称')
+ cutter_number = fields.Char('刀号')
+ blade_number = fields.Integer('刃数(个)')
+ extension = fields.Float('伸出长度(mm)')
+
+ active = fields.Boolean('已归档', default=True)
diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv
index 2a3cd471..9d027bdb 100644
--- a/sf_base/security/ir.model.access.csv
+++ b/sf_base/security/ir.model.access.csv
@@ -192,4 +192,11 @@ access_sf_machine_brand_tags_group_purchase_director,sf_machine_brand_tags_group
access_printer,printer,model_printer,base.group_user,1,1,1,1
-access_printer_configuration,printer.configuration,model_printer_configuration,base.group_user,1,1,1,1
\ No newline at end of file
+access_printer_configuration,printer.configuration,model_printer_configuration,base.group_user,1,1,1,1
+
+access_group_sf_mrp_user,sf_tool_inventory,model_sf_tool_inventory,base.group_user,1,1,1,0
+access_group_sf_mrp_user_admin,sf_tool_inventory_admin,model_sf_tool_inventory,base.group_system,1,1,1,0
+access_group_sf_mrp_user_group_purchase_director,sf_tool_inventory_group_purchase_director,model_sf_tool_inventory,sf_base.group_purchase_director,1,0,1,0
+access_group_sf_mrp_user_group_sale_director,sf_tool_inventory_group_sale_director,model_sf_tool_inventory,sf_base.group_sale_director,1,0,1,0
+access_sf_cutting_tool_material_group_plan_director,sf_tool_inventory_group_plan_director,model_sf_tool_inventory,sf_base.group_plan_director,1,0,1,0
+access_group_sf_mrp_user_group_sf_mrp_user,sf_tool_inventory_group_sf_mrp_user,model_sf_tool_inventory,sf_base.group_sf_mrp_user,1,1,0,0
\ No newline at end of file
diff --git a/sf_base/static/src/scss/test.scss b/sf_base/static/src/scss/test.scss
index fdc5821e..c91a8a77 100644
--- a/sf_base/static/src/scss/test.scss
+++ b/sf_base/static/src/scss/test.scss
@@ -189,3 +189,6 @@ td.o_required_modifier {
flex-direction: row !important;
}
+.supplier_ids_set_css thead th[data-name=partner_id]{
+ width: 500px!important;
+}
\ No newline at end of file
diff --git a/sf_base/views/common_view.xml b/sf_base/views/common_view.xml
index 0826b51c..e829274a 100644
--- a/sf_base/views/common_view.xml
+++ b/sf_base/views/common_view.xml
@@ -269,7 +269,7 @@
-
+
diff --git a/sf_base/views/tool_menu.xml b/sf_base/views/tool_menu.xml
index 506a73df..bad606d6 100644
--- a/sf_base/views/tool_menu.xml
+++ b/sf_base/views/tool_menu.xml
@@ -59,14 +59,14 @@
id="menu_sf_cutting_tool_type"
parent="menu_sf_cutting_tool"
name="刀具类型"
- sequence="2"
+ sequence="10"
action="action_sf_cutting_tool_type"
/>
@@ -82,7 +82,7 @@
id="menu_sf_functional_cutting_tool_model_type"
parent="menu_sf_cutting_tool"
name="功能刀具类型"
- sequence="4"
+ sequence="30"
action="action_sf_functional_cutting_tool_model_type"
/>
@@ -91,14 +91,14 @@
name="能力特征库"
parent="menu_sf_cutting_tool"
action="action_maintenance_equipment_image"
- sequence="5"/>
+ sequence="40"/>
+ sequence="50"/>
diff --git a/sf_base/views/tool_views.xml b/sf_base/views/tool_views.xml
index 34b87a41..25d1824f 100644
--- a/sf_base/views/tool_views.xml
+++ b/sf_base/views/tool_views.xml
@@ -123,7 +123,7 @@