Files
jikimo_sf/sf_maintenance/views/maintenance_views.xml
2024-02-28 17:14:42 +08:00

1230 lines
68 KiB
XML

<?xml version="1.0"?>
<odoo>
<!-- 修改设备表单视图-->
<record id="sf_hr_equipment_view_form" model="ir.ui.view">
<field name="name">sf_equipment.form</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_form"/>
<field name="arch" type="xml">
<data>
<xpath expr="//sheet" position="before">
<header>
<field name="state" widget="statusbar" options="{'clickable': '1'}"/>
</header>
</xpath>
<xpath expr="//page[@name='maintenance']" position="attributes">
<attribute name="string">维保</attribute>
</xpath>
<xpath expr="//field[@name='maintenance_count']" position="attributes">
<attribute name="string">维保</attribute>
</xpath>
<!-- <field string="Maintenance" name="maintenance_count" widget="statinfo"/>-->
<xpath expr="//div[@name='button_box']" position="inside">
<button name="%(action_maintenance_logs)d"
type="action"
class="oe_stat_button"
context="{'search_default_maintenance_equipment_id': [active_id]}"
icon="fa-wrench">
<field string="设备故障日志" name="sf_maintenance_logs_ids" widget="statinfo"/>
</button>
<button name="%(action_maintenance_oee)d"
type="action"
class="oe_stat_button"
context="{'search_default_equipment_id': [active_id]}"
icon="fa-exchange">
<field string="设备oee" name="equipment_oee_ids" widget="statinfo"/>
</button>
</xpath>
<xpath expr="//field[@name='maintenance_team_id']" position="before">
<field name="machine_tool_picture" widget="image"/>
<label for="enroll_machine_tool"/>
<div class="col-12 col-lg-6 o_setting_box" style="white-space: nowrap">
<button type="object" class="oe_highlight" name='enroll_machine_tool' string="机床注册"
attrs="{'invisible': [('equipment_type', '!=', '机床'), ('brand_id','!=',False),
('type_id','!=',False),('control_system_id','!=',False),('code','!=', False)]}"
groups="sf_maintenance.sf_group_equipment_manager"/>
</div>
</xpath>
<xpath expr="//field[@name='category_id']" position="before">
<field name="MTcode"/>
</xpath>
<xpath expr="//field[@name='category_id']" position="after">
<field name="state_zc" readonly="1"/>
<field name="function_type"/>
<field name="code" readonly="1"/>
<field name="equipment_type" invisible="1"/>
<field name="brand_id" force_save="1"/>
<field name="type_id" attrs="{'required': [('equipment_type', '=', '机床')]}"
domain="[('brand_id', '=', brand_id)]"/>
<field name="machine_tool_category" readonly="1" attrs="{'invisible': [('type_id', '=', False)]}"
force_save="1"/>
<field name="run_time" force_save="1"/>
</xpath>
<xpath expr="//page[@name='description']" position="before">
<page string="设备参数" name="sf_equipment"
attrs="{'invisible': [('equipment_type', '!=', '机床')]}">
<group>
<group string="基础参数">
<field name="control_system_id" attrs="{'required': [('equipment_type', '=', '机床')]}"
options="{'no_create': True}"/>
<label for="workbench_L" string="工作台尺寸(mm)"/>
<div class="test_model">
<label for="workbench_L" string="长"/>
<field name="workbench_L" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '机床')]}"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
<label for="workbench_W" string="宽"/>
<field name="workbench_W" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '机床')]}"
options="{'format': false}"/>
</div>
<field name="workpiece_load"/>
<label for="machine_tool_L" string="机床尺寸(mm)"/>
<div class="test_model">
<label for="machine_tool_L" string="长"/>
<field name="machine_tool_L" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
<label for="machine_tool_W" string="宽"/>
<field name="machine_tool_W" class="o_address_zip"
options="{'format': false}"/>
<label for="machine_tool_H" string="高"/>
<field name="machine_tool_H" class="o_address_zip"
options="{'format': false}"/>
</div>
<label for="T_trough_num" string="T型槽尺寸:"/>
<div class="test_model">
<label for="T_trough_num" string="槽数"/>
<field name="T_trough_num" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
<label for="T_trough_wide" string="槽宽(mm)"/>
<field name="T_trough_wide" class="o_address_zip"
options="{'format': false}"/>
<label for="T_trough_distance" string="槽距(mm)"/>
<field name="T_trough_distance" class="o_address_zip"
options="{'format': false}"/>
</div>
<!-- <field name="feed_speed" required="1"/>-->
<!-- <label for="precision_min" string="X轴定位精度(mm)"/>-->
<!-- <div class="test_model">-->
<!-- <label for="precision_min" string="最小(min)"/>-->
<!-- <field name="precision_min" class="o_address_zip" required="1"-->
<!-- options="{'format': false}"/>-->
<!-- <span>&amp;nbsp;</span>-->
<!-- <label for="precision_max" string="最大(max)"/>-->
<!-- <field name="precision_max" class="o_address_zip" required="1"-->
<!-- options="{'format': false}"/>-->
<!-- </div>-->
<!-- <field name="lead_screw" required="1"/>-->
<!-- <field name="guide_rail" required="1"/>-->
<field name="number_of_axles" attrs="{'required': [('equipment_type', '=', '机床')]}"
widget="radio"
options="{'horizontal': true}"/>
<label for="x_axis" string="加工行程(mm)"
attrs="{'invisible': [('number_of_axles', '=', False)]}"/>
<div class="test_model"
attrs="{'invisible': [('number_of_axles', '=', False)]}">
<label for="x_axis" string="x"/>
<field name="x_axis" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '机床')]}"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
<label for="y_axis" string="y"/>
<field name="y_axis" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '机床')]}"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
<label for="z_axis" string="z"/>
<field name="z_axis" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '机床')]}"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
<label for="a_axis" string="a"
attrs="{'invisible': [('number_of_axles', '=', '三轴')]}"/>
<field name="a_axis" class="o_address_zip"
attrs="{'invisible': [('number_of_axles', '=', '三轴')]}"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
<label for="b_axis" string="b"
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"/>
<field name="b_axis" class="o_address_zip"
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
<label for="c_axis" string="c"
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴','五轴'])]}"/>
<field name="c_axis" class="o_address_zip"
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴','五轴'])]}"
options="{'format': false}"/>
</div>
</group>
<group string="刀具">
<!-- <field name="knife_type" required="1"/>-->
<field name="number_of_knife_library"
attrs="{'required': [('equipment_type', '=', '机床')]}"
options="{'format': false}"/>
<!-- <field name="tool_speed" required="1"/>-->
<field name="tool_full_diameter_max"/>
<field name="tool_perimeter_diameter_max"/>
<field name="tool_long_max"/>
<!-- <label for="tool_diameter_min" string="刀具刀径(mm)"/>-->
<!-- <div class="test_model">-->
<!-- <label for="tool_diameter_min" string="最小(min)"/>-->
<!-- <field name="tool_diameter_min" class="o_address_zip" required="1"-->
<!-- options="{'format': false}"/>-->
<!-- <span>&amp;nbsp;</span>-->
<!-- <label for="tool_diameter_max" string="最大(max)"/>-->
<!-- <field name="tool_diameter_max" class="o_address_zip" required="1"-->
<!-- options="{'format': false}"/>-->
<!-- </div>-->
<field name="tool_quality_max"/>
<field name="T_tool_time"/>
<field name="C_tool_time"/>
</group>
<group string="主轴">
<field name="taper_type_id" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
<label for="distance_min" string="主轴端面-工作台距离(mm)"/>
<div class="test_model">
<label for="distance_min" string="最小(min)"/>
<field name="distance_min" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
<label for="distance_max" string="最大(max)"/>
<field name="distance_max" class="o_address_zip"
options="{'format': false}"/>
</div>
<field name="rotate_speed" string="主轴最高转速(r/min)"
options="{'format': false}"/>
<field name="spindle_center_distance"/>
<field name="spindle_continuous_power"/>
<field name="spindle_peak_power"/>
<field name="spindle_sustained_torque"/>
<field name="spindle_peak_torque"/>
<field name="heightened_way"/>
<field name="linear_axis_guides_type"/>
<field name="axis_driven_type"/>
<!-- <field name="distance" required="1"/>-->
</group>
<group string="精度参数">
<field name="X_precision"/>
<field name="X_precision_repeat"/>
<field name="Y_precision"/>
<field name="Y_precision_repeat"/>
<field name="Z_precision"/>
<field name="Z_precision_repeat"/>
<field name="a_precision"/>
<field name="a_precision_repeat"/>
<field name="b_precision"/>
<field name="b_precision_repeat"/>
<field name="c_precision"/>
<field name="c_precision_repeat"/>
</group>
<group string="进给参数">
<field name="X_axis_rapid_traverse_speed"/>
<field name="Y_axis_rapid_traverse_speed"/>
<field name="Z_axis_rapid_traverse_speed"/>
<field name="a_axis_rapid_traverse_speed"/>
<field name="b_axis_rapid_traverse_speed"/>
<field name="c_axis_rapid_traverse_speed"/>
<field name="straight_cutting_feed_rate"/>
<field name="rotary_cutting_feed_rate"/>
</group>
</group>
</page>
<page string="AGV运行日志" name="sf_equipment"
attrs="{'invisible': [('equipment_type', '!=', 'AGV小车')]}">
<field name="agv_logs">
<tree create="1" edit="1" delete="1" editable="bottom">
<field name = 'run_type'/>
<field name = 'run_code'/>
<field name = 'run_first'/>
<field name = 'run_last'/>
<field name = 'production_line'/>
<field name = 'workorder'/>
<field name = 'time'/>
<field name = 'state'/>
</tree>
</field>
</page>
<page string="设备参数" name="sf_equipment"
attrs="{'invisible': [('equipment_type', '!=', 'AGV小车')]}">
<group string="基础参数">
<label for="AGV_L" string="设备尺寸(mm)"/>
<div class="test_model">
<div>
<label for="AGV_L" string="长"/>
<field name="AGV_L" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
options="{'format': false}"/>
</div>
<span>&amp;nbsp;</span>
<div>
<label for="AGV_W" string="宽"/>
<field name="AGV_W" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
options="{'format': false}"/>
</div>
<span>&amp;nbsp;</span>
<div>
<label for="AGV_H" string="高"/>
<field name="AGV_H" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
options="{'format': false}"/>
</div>
<div>
</div>
</div>
<label for="AGV_goods_L" string="载货尺寸MAX(mm)"/>
<div class="test_model">
<div>
<label for="AGV_goods_L" string="长"/>
<field name="AGV_goods_L" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
options="{'format': false}"/>
</div>
<span>&amp;nbsp;</span>
<div>
<label for="AGV_goods_W" string="宽"/>
<field name="AGV_goods_W" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
options="{'format': false}"/>
</div>
<span>&amp;nbsp;</span>
<div>
<label for="AGV_goods_H" string="高"/>
<field name="AGV_goods_H" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
options="{'format': false}"/>
</div>
<div>
</div>
</div>
<label for="AGV_velocity" string=""/>
<div class="test_model">
<div>
<label for="AGV_velocity" string="标准速度"/>
<field name="AGV_velocity" class="o_address_zip"
options="{'format': false}"/>
<span>m/S&amp;nbsp;</span>
</div>
<div>
<label for="AGV_velocity_min" string="最小速度"/>
<field name="AGV_velocity_min" class="o_address_zip"
options="{'format': false}"/>
<span>m/S&amp;nbsp;</span>
</div>
<div>
<label for="AGV_velocity_max" string="最大速度"/>
<field name="AGV_velocity_max" class="o_address_zip"
options="{'format': false}"/>
<span>m/S&amp;nbsp;</span>
</div>
<div>
<label for="AGV_Lifting_height" string="升降高度(max)"/>
<field name="AGV_Lifting_height" class="o_address_zip"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
</div>
<label for="AGV_ground_clearance" string=""/>
<div class="test_model">
<div>
<label for="AGV_ground_clearance" string="最小离地高度"/>
<field name="AGV_ground_clearance" class="o_address_zip"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
<label for="AGV_turning_radius" string="最小转弯半径"/>
<field name="AGV_turning_radius" class="o_address_zip"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
<label for="AGV_gradeability_max" string="最大爬坡度"/>
<field name="AGV_gradeability_max" class="o_address_zip"
options="{'format': false}"/>
<span>°&amp;nbsp;</span>
</div>
<div>
<label for="AGV_parking_accuracy" string="停车精度"/>
<field name="AGV_parking_accuracy" class="o_address_zip"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
</div>
<label for="AGV_load_weight_max" string=""/>
<div class="test_model">
<div>
<label for="AGV_load_weight_max" string="最大负载重量"/>
<field name="AGV_load_weight_max" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
options="{'format': false}"/>
<span>kg&amp;nbsp;</span>
</div>
<div>
<label for="AGV_weight" string="本体总重量"/>
<field name="AGV_weight" class="o_address_zip"
options="{'format': false}"/>
<span>kg&amp;nbsp;</span>
</div>
<div>
<label for="AGV_job_duration" string="连续作业时长"/>
<field name="AGV_job_duration" class="o_address_zip"
options="{'format': false}"/>
<span>h&amp;nbsp;</span>
</div>
<div>
<label for="AGV_transfer_mode" string="移载方式"/>
<field name="AGV_transfer_mode" class="o_address_zip"
options="{'format': false}"/>
</div>
</div>
<!-- <label for="AGV_parking_accuracy" string="停车精度"/>-->
<!-- <field name="AGV_parking_accuracy" class="o_address_zip" required="1"-->
<!-- options="{'format': false}"/>mm-->
</group>
<group string="电机参数">
<label for="control_system_id" string=""/>
<div class="test_model">
<div>
<label for="control_system_id" string="控制系统"/>
<field name="control_system_id" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
<div>
<label for="AGV_drive_motor_power" string="驱动电机功率"/>
<field name="AGV_drive_motor_power" class="o_address_zip"
options="{'format': false}"/>
<span>kw&amp;nbsp;</span>
</div>
<div>
<label for="AGV_hoist_motor_power" string="提升电机功率"/>
<field name="AGV_hoist_motor_power" class="o_address_zip"
options="{'format': false}"/>
<span>i&amp;nbsp;</span>
</div>
<div>
<label for="AGV_drive_motor_speed_ratio" string="驱动电机速比"/>
<field name="AGV_drive_motor_speed_ratio" class="o_address_zip"
options="{'format': false}"/>
<span>kw&amp;nbsp;</span>
</div>
</div>
<label for="AGV_veer_motor_power" string=""/>
<div class="test_model">
<div>
<label for="AGV_veer_motor_power" string="转向电机功率"/>
<field name="AGV_veer_motor_power" class="o_address_zip"
options="{'format': false}"/>
<span>kw&amp;nbsp;</span>
</div>
<div>
<label for="AGV_veer_motor_speed_ratio" string="转向电机速比"/>
<field name="AGV_veer_motor_speed_ratio" class="o_address_zip"
options="{'format': false}"/>
<span>i&amp;nbsp;</span>
</div>
<div>
<label for="AGV_move_motor_power" string="前移电机功率"/>
<field name="AGV_move_motor_power" class="o_address_zip"
options="{'format': false}"/>
<span>kw&amp;nbsp;</span>
</div>
<div>
<label for="AGV_move_motor_speed_ratio" string="前移电机速比"/>
<field name="AGV_move_motor_speed_ratio" class="o_address_zip"
options="{'format': false}"/>
<span>i&amp;nbsp;</span>
</div>
</div>
</group>
<group string="其他参数">
<label for="AGV_drive_mode" string=""/>
<div class="test_model">
<div>
<label for="AGV_drive_mode" string="驱动方式"/>
<field name="AGV_drive_mode" class="o_address_zip"
options="{'format': false}"/>
</div>
<div>
<label for="AGV_navigation_mode" string="导航方式"/>
<field name="AGV_navigation_mode" class="o_address_zip"
options="{'format': false}"/>
</div>
<div>
<label for="AGV_communication_mode" string="通讯方式"/>
<field name="AGV_communication_mode" class="o_address_zip"
options="{'format': false}"/>
</div>
<div>
<label for="AGV_direction_travel" string="行走方向"/>
<field name="AGV_direction_travel" class="o_address_zip"
options="{'format': false}"/>
</div>
</div>
<label for="AGV_power_requirements" string=""/>
<div class="test_model">
<div>
<label for="AGV_power_requirements" string="电源要求"/>
<field name="AGV_power_requirements" class="o_address_zip"
options="{'format': false}"/>
</div>
<div>
<label for="AGV_charge_mode" string="充电方式"/>
<field name="AGV_charge_mode" class="o_address_zip"
options="{'format': false}"/>
</div>
<div>
<label for="AGV_security" string="安全防护"/>
<field name="AGV_security" class="o_address_zip"
options="{'format': false}"/>
</div>
<div>
</div>
</div>
<label for="AGV_operating_temperature" string=""/>
<div class="test_model">
<div>
<label for="AGV_operating_temperature" string="环境温度"/>
<field name="AGV_operating_temperature" class="o_address_zip"
options="{'format': false}"/>
<span>°&amp;nbsp;</span>
</div>
<div>
<label for="AGV_operating_humidity" string="环境湿度"/>
<field name="AGV_operating_humidity" class="o_address_zip"
options="{'format': false}"/>
<span>°&amp;nbsp;</span>
</div>
<div>
</div>
<div>
</div>
</div>
</group>
</page>
<page string="设备参数" name="sf_equipment"
attrs="{'invisible': [('equipment_type', '!=', '机器人')]}">
<group string="基础参数">
<label for="robot_gripping_of_workpieces_L" string="抓取工件最大尺寸"/>
<div class="test_model">
<div>
<label for="robot_gripping_of_workpieces_L" string="长"/>
<field name="robot_gripping_of_workpieces_L" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '机器人')]}"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
<label for="robot_gripping_of_workpieces_W" string="宽"/>
<field name="robot_gripping_of_workpieces_W" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '机器人')]}"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
<label for="robot_gripping_of_workpieces_H" string="高"/>
<field name="robot_gripping_of_workpieces_H" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '机器人')]}"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
</div>
</div>
<label for="robot_radius_of_the_boom" string=""/>
<div class="test_model">
<div>
<label for="robot_radius_of_the_boom" string="展臂半径"/>
<field name="robot_radius_of_the_boom" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '机器人')]}"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
<label for="robot_load_weight_max" string="最大负载重量"/>
<field name="robot_load_weight_max" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '机器人')]}"
options="{'format': false}"/>
<span>kg&amp;nbsp;</span>
</div>
<div>
<label for="robot_gripping_of_workpieces_H" string="本体总重量"/>
<field name="robot_gripping_of_workpieces_H" class="o_address_zip"
options="{'format': false}"/>
<span>kg&amp;nbsp;</span>
</div>
<div>
<label for="robot_repeatable_positioning_accuracy" string="重复定位精度"/>
<field name="robot_repeatable_positioning_accuracy" class="o_address_zip"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
</div>
<field name='robot_axis_num' attrs="{'required': [('equipment_type', '=', '机器人')]}"/>
<field name='axis_ids'>
<tree editable='bottom'>
<field name="name"/>
<field name="angle_min"/>
<field name="angle_max"/>
<field name="velocity"/>
<field name="weight"/>
<field name="permissible_load_torque"/>
<field name="permissible_inertial_torque"/>
</tree>
</field>
<label for="robot_track_dimensions_L" string="轨道尺寸"/>
<div class="test_model">
<div>
<label for="robot_track_dimensions_L" string="长"/>
<field name="robot_track_dimensions_L" class="o_address_zip"
options="{'format': false}"/>
<span>m&amp;nbsp;</span>
</div>
<div>
<label for="robot_track_dimensions_W" string="宽"/>
<field name="robot_track_dimensions_W" class="o_address_zip"
options="{'format': false}"/>
<span>m&amp;nbsp;</span>
</div>
<div>
<label for="robot_track_dimensions_H" string="高"/>
<field name="robot_track_dimensions_H" class="o_address_zip"
options="{'format': false}"/>
<span>m&amp;nbsp;</span>
</div>
</div>
<label for="control_system_id" string=""/>
<div class="test_model">
<div>
<label for="control_system_id" string="控制系统"/>
<field name="control_system_id" class="o_address_zip"
options="{'format': false}"/>
</div>
<span>&amp;nbsp;</span>
<div>
<label for="robot_drive_mode" string="驱动方式"/>
<field name="robot_drive_mode" class="o_address_zip"
options="{'format': false}"/>
</div>
<span>&amp;nbsp;</span>
<div>
<label for="robot_installation_method" string="安装方式"/>
<field name="robot_installation_method" class="o_address_zip"
options="{'format': false}"/>
</div>
<span>&amp;nbsp;</span>
</div>
<label for="robot_operating_temperature" string=""/>
<div class="test_model">
<div>
<label for="robot_operating_temperature" string="环境温度"/>
<field name="robot_operating_temperature" class="o_address_zip"
options="{'format': false}"/>
<span>°&amp;nbsp;</span>
</div>
<div>
<label for="robot_operating_humidity" string="环境湿度"/>
<field name="robot_operating_humidity" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
<div>
</div>
</div>
</group>
</page>
<page string="基础参数" name="sf_equipment"
attrs="{'invisible': [('equipment_type', '!=', '检测设备')]}">
<group string="基础参数">
<label for="detect_L" string="设备尺寸(mm)"/>
<div class="test_model">
<div>
<label for="detect_L" string="长"/>
<field name="detect_L" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '检测设备')]}"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
<label for="detect_W" string="宽"/>
<field name="detect_W" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '检测设备')]}"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
<label for="detect_H" string="高"/>
<field name="detect_H" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '检测设备')]}"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
</div>
<label for="detect_x_axis" string="测量范围(max)"/>
<div class="test_model">
<div>
<label for="detect_x_axis" string="X轴"/>
<field name="detect_x_axis" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '检测设备')]}"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
<label for="detect_y_axis" string="Y轴"/>
<field name="detect_y_axis" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '检测设备')]}"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
<label for="detect_z_axis" string="Z轴"/>
<field name="detect_z_axis" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '检测设备')]}"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
</div>
<label for="detect_x_axis" string="物方视场:"/>
<div class="test_model">
<div>
<label for="detect_object_field_of_view_min" string="最小"/>
<field name="detect_object_field_of_view_min" class="o_address_zip"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
<label for="detect_object_field_of_view_max" string="最大"/>
<field name="detect_object_field_of_view_max" class="o_address_zip"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
<div>
</div>
</div>
<label for="detect_precision" string=""/>
<div class="test_model">
<div>
<label for="detect_precision" string="测量精度"/>
<field name="detect_precision" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '检测设备')]}"
options="{'format': false}"/>
<span>μm&amp;nbsp;</span>
</div>
<div>
<label for="detect_measurement_mode" string="测量方式"/>
<field name="detect_measurement_mode" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
<div>
<label for="detect_resolution" string="分辨率"/>
<field name="detect_resolution" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
</div>
<label for="detect_load_weight_max" string=""/>
<div class="test_model">
<div>
<label for="detect_load_weight_max" string="最大负载重量"/>
<field name="detect_load_weight_max" class="o_address_zip"
attrs="{'required': [('equipment_type', '=', '检测设备')]}"
options="{'format': false}"/>
<span>kg&amp;nbsp;</span>
</div>
<div>
<label for="detect_weight" string="本体总重量"/>
<field name="detect_weight" class="o_address_zip"
options="{'format': false}"/>
<span>kg&amp;nbsp;</span>
</div>
<div>
<label for="detect_measurement_length" string="深孔测量长度(max)"/>
<field name="detect_measurement_length" class="o_address_zip"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
</div>
</group>
<group string="其他">
<label for="control_system_id" string=""/>
<div class="test_model">
<div>
<label for="control_system_id" string="控制系统"/>
<field name="control_system_id" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
<div>
<label for="detect_control_mode" string="控制方式"/>
<field name="detect_control_mode" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
<div>
<label for="detect_balance_mode_for_Z" string="Z轴平衡方式"/>
<field name="detect_balance_mode_for_Z" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
</div>
<label for="detect_zoom_objective_magnification" string=""/>
<div class="test_model">
<div>
<label for="detect_zoom_objective_magnification" string="变焦物镜倍率"/>
<field name="detect_zoom_objective_magnification" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
<div>
<label for="detect_magnification" string="放大倍率"/>
<field name="detect_magnification" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
<div>
<label for="detect_working_distance" string="工作距离"/>
<field name="detect_working_distance" class="o_address_zip"
options="{'format': false}"/>
<span>mm&amp;nbsp;</span>
</div>
</div>
<label for="detect_locking_mode" string=""/>
<div class="test_model">
<div>
<label for="detect_locking_mode" string="锁紧方式"/>
<field name="detect_locking_mode" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
<div>
<label for="detect_pressurized_air" string="压缩空气"/>
<field name="detect_pressurized_air" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
<div>
<label for="detect_power_requirements" string="电源要求"/>
<field name="detect_power_requirements" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
</div>
<label for="detect_operating_temperature" string=""/>
<div class="test_model">
<div>
<label for="detect_operating_temperature" string="环境温度"/>
<field name="detect_operating_temperature" class="o_address_zip"
options="{'format': false}"/>
<span>°&amp;nbsp;</span>
</div>
<div>
<label for="detect_operating_humidity" string="环境湿度"/>
<field name="detect_operating_humidity" class="o_address_zip"
options="{'format': false}"/>
<span>&amp;nbsp;</span>
</div>
<div>
</div>
</div>
</group>
</page>
</xpath>
<xpath expr="//notebook" position="before">
<group string="加工能力" attrs="{'invisible': [('equipment_type', '!=', '机床')]}"
class="processingMethod">
<div>
<field name='image_id' widget="custom_many2many_checkboxes" string="">
<tree>
<field name="name"/>
<field name="image" widget="image"
options="{'size': [100, 100], 'click enlarge': True}"/>
</tree>
</field>
</div>
</group>
<group string="冷却方式" attrs="{'invisible': [('equipment_type', '!=', '机床')]}"
class="processingMethod">
<div>
<field name='image_lq_id' widget="custom_many2many_checkboxes" string="">
<tree>
<field name="name"/>
<field name="image" widget="image"
options="{'size': [100, 100], 'click enlarge': True}"/>
</tree>
</field>
</div>
</group>
</xpath>
<xpath expr="//field[@name='next_action_date']" position="before">
<field name='eq_maintenance_id' force_save="1" widget="many2one"/>
</xpath>
<xpath expr="//div[hasclass('o_row')][field[@name='maintenance_duration']]" position="after">
<field name='overhaul_id'/>
<field name="overhaul_date" string="下次预防检修"/>
<label for="overhaul_period" string="预防检修频次"/>
<div class="o_row">
<field name="overhaul_period"/>
days
</div>
<label for="overhaul_duration" string="检修时长"/>
<div class="o_row">
<field name="overhaul_duration"/>
hours
</div>
<field name='equipment_maintenance_standards_ids' widget="many2many_tags" invisible="1"/>
</xpath>
<xpath expr="//page[@name='description']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//page[@name='product_information']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//page[@name='maintenance']" position="after">
<page string="其他" attrs="{'invisible': [('type_id', '=', False)]}">
<group string="其他">
<field name="date_of_purchase"/>
<field name="date_of_manufacture"/>
<field name="date_of_warranty"/>
<field name="original_value"/>
<field name="incomplete_value"/>
<field name="remark"/>
</group>
</page>
</xpath>
</data>
</field>
</record>
<!-- 修改设备搜索视图-->
<record id="sf_hr_equipment_view_search" model="ir.ui.view">
<field name="name">sf_equipment.view.search</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_search"/>
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='category_id']" position="after">
<searchpanel>
<field name="category_id" icon="fa-building" enable_counters="1"/>
<field name="state" icon="fa-building" enable_counters="1"/>
<field name="state_zc" icon="fa-building" enable_counters="1"/>
</searchpanel>
</xpath>
</data>
</field>
</record>
<!-- 修改设备列表视图-->
<record id="sf_maintenance_hr_equipment_view_tree_inherit" model="ir.ui.view">
<field name="name">sf.maintenance.hr.equipment.view.tree.inherit</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='activity_exception_decoration']" position="after">
<field name="created_user"/>
<field name="create_date"/>
</xpath>
</field>
</record>
<!-- <menuitem-->
<!-- id="menu_maintenance_title_sf"-->
<!-- name="设备管理"-->
<!-- web_icon="maintenance,static/description/icon.svg"-->
<!-- sequence="160"/>-->
<record id="maintenance.menu_maintenance_title" model="ir.ui.menu">
<field name="name">设备</field>
</record>
<record id="maintenance.menu_m_request" model="ir.ui.menu">
<field name="name">设备管理</field>
</record>
<record id="maintenance.menu_equipment_form" model="ir.ui.menu">
<field name="active">False</field>
</record>
<record id="hr_equipment_action1" model="ir.actions.act_window">
<field name="name">设备清单</field>
<field name="res_model">maintenance.equipment</field>
<field name="view_mode">kanban,tree,form</field>
<field name="view_id" ref="maintenance.hr_equipment_view_kanban"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
添加一个设备
</p>
<p>
跟踪设备并将其链接到员工或部门。
您将能够管理设备的分配、问题和维护。
</p>
</field>
</record>
<record id="sf_maintenance_equipment_view_kanban_inherit_hr" model="ir.ui.view">
<field name="name">sf.maintenance.equipment.view.kanban.inherit.hr</field>
<field name="model">maintenance.equipment</field>
<field name="inherit_id" ref="maintenance.hr_equipment_view_kanban"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='activity_state']" position="before">
<field name="state"/>
<field name="machine_tool_picture"/>
</xpath>
<xpath expr="//templates" position="inside">
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_global_click o_kanban_record_has_image_fill o_hr_kanban_record oe_kanban_card oe_kanban_global_click">
<field name="machine_tool_picture" class="o_kanban_image_fill_left d-block my-image"
preview_image="image_128" widget="image"/>
<!-- <field name="machine_tool_picture" widget="image" options="{'previewImage': false}"/>-->
<div class="add_flex">
<div class="o_kanban_card_header">
<div class="o_kanban_card_header_title maintenance_name">
<field name="name"/>
</div>
</div>
<!-- 内容 -->
<div class="o_kanban_record_bottom state_zc">
<div>
<field name="brand_id"/>
<field name="type_id"/>
</div>
<div>
<field name="state_zc"
widget="label_selection"
options="{'classes': {'未注册': 'warning', '已注册': 'success'}}"/>
</div>
</div>
<div class="o_kanban_record_bottom state_zc">
<field name="technician_user_id"/>
</div>
<!-- <div class="o_kanban_record_bottom">-->
<!-- <field name="factory_id"/>-->
<!-- <span> | </span>-->
<!-- <field name="supplier_id"/>-->
<!-- </div>-->
</div>
<div class="show_state" t-attf-class="oe_kanban_global_click o_kanban_record_has_image_fill o_hr_kanban_record oe_kanban_card oe_kanban_global_click
">
<div t-attf-class="#{record.state.raw_value == '正常' ? 'color_1' : ''}"></div>
<div t-attf-class="#{record.state.raw_value == '故障' ? 'color_2' : ''}"></div>
<div t-attf-class="#{record.state.raw_value == '不可用' ? 'color_3' : ''}"></div>
<p class="o_kanban_record_bottom state_zc"
t-attf-class="#{record.state.raw_value == '正常' ? 'font_color_1' : ''}
#{record.state.raw_value == '故障' ? 'font_color_2' : ''}
#{record.state.raw_value == '不可用' ? 'font_color_3' : ''}">
<field name="state"/>
</p>
</div>
</div>
</t>
</xpath>
</field>
</record>
<menuitem
id="menu_equipment_form1"
name="设备清单"
parent="maintenance.menu_m_request"
action="hr_equipment_action1"
groups="maintenance.group_equipment_manager,base.group_user"
sequence="2"/>
<!-- <record id="maintenance.hr_equipment_action" model="ir.actions.act_window">-->
<!-- <field name="active">False</field>-->
<!-- </record>-->
<!-- <menuitem-->
<!-- id="menu_m_request"-->
<!-- name="设备管理"-->
<!-- parent="menu_maintenance_title_sf"-->
<!-- groups="maintenance.group_equipment_manager,base.group_user"-->
<!-- sequence="1"/-->
<!-- 设备图文展示-->
<record id="view_maintenance_equipment_image_tree" model="ir.ui.view">
<field name="name">maintenance.equipment.image.tree</field>
<field name="model">maintenance.equipment.image</field>
<field name="arch" type="xml">
<tree string="能力特征库" editable="bottom" delete="0" create="0">
<field name="name" readonly="1"/>
<field name="type" readonly="1"/>
<field name="image" widget="image" readonly="1"/>
<field name="equipment_id"/>
<field name="active" invisible="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_maintenance_equipment_image_search">
<field name="name">maintenance.equipment.image.search</field>
<field name="model">maintenance.equipment.image</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<searchpanel class="account_root">
<field name="type" icon="fa-filter" enable_counters="1"/>
</searchpanel>
</search>
</field>
</record>
<record id="action_maintenance_equipment_image" model="ir.actions.act_window">
<field name="name">能力特征库</field>
<field name="res_model">maintenance.equipment.image</field>
<field name="view_mode">tree</field>
<field name="domain">[]</field>
</record>
<menuitem
id="maintenance_equipment_image_form"
name="能力特征库"
parent="maintenance.menu_m_request"
action="action_maintenance_equipment_image"
groups="maintenance.group_equipment_manager,base.group_user"
sequence="2"/>
<menuitem
id="maintenance.menu_m_dashboard"
name="设备清单"
parent="maintenance.menu_maintenance_title"
groups="maintenance.group_equipment_manager,base.group_user"
action="hr_equipment_action1"
sequence="0"/>
</odoo>