liutao_branch
chenshuichuan 2 years ago
parent 66779370f2
commit ee7ea361f3

@ -27,8 +27,13 @@ export const ProductApi = {
// 查询产品精简列表 // 查询产品精简列表
getProductSimpleList: async () => { getProductSimpleList: async () => {
return await request.get({ url: `/erp/product/simple-list` }) return await request.get({ url: `/erp/product/simple-list-product` })
}, },
// 查询原料精简列表
getItemSimpleList: async () => {
return await request.get({ url: `/erp/product/simple-list-item` })
},
// 查询产品详情 // 查询产品详情
getProduct: async (id: number) => { getProduct: async (id: number) => {

@ -101,150 +101,141 @@ export const getDictLabel = (dictType: string, value: any): string => {
} }
export enum DICT_TYPE { export enum DICT_TYPE {
USER_TYPE = 'user_type', USER_TYPE = 'user_type',
COMMON_STATUS = 'common_status', COMMON_STATUS = 'common_status',
TERMINAL = 'terminal',// 终端 TERMINAL = 'terminal',// 终端
DATE_INTERVAL = 'date_interval',// 数据间隔 DATE_INTERVAL = 'date_interval',// 数据间隔
// ========== SYSTEM 模块 ========== // ========== SYSTEM 模块 ==========
SYSTEM_USER_SEX = 'system_user_sex', SYSTEM_USER_SEX = 'system_user_sex',
SYSTEM_MENU_TYPE = 'system_menu_type', SYSTEM_MENU_TYPE = 'system_menu_type',
SYSTEM_ROLE_TYPE = 'system_role_type', SYSTEM_ROLE_TYPE = 'system_role_type',
SYSTEM_DATA_SCOPE = 'system_data_scope', SYSTEM_DATA_SCOPE = 'system_data_scope',
SYSTEM_NOTICE_TYPE = 'system_notice_type', SYSTEM_NOTICE_TYPE = 'system_notice_type',
SYSTEM_LOGIN_TYPE = 'system_login_type', SYSTEM_LOGIN_TYPE = 'system_login_type',
SYSTEM_LOGIN_RESULT = 'system_login_result', SYSTEM_LOGIN_RESULT = 'system_login_result',
SYSTEM_SMS_CHANNEL_CODE = 'system_sms_channel_code', SYSTEM_SMS_CHANNEL_CODE = 'system_sms_channel_code',
SYSTEM_SMS_TEMPLATE_TYPE = 'system_sms_template_type', SYSTEM_SMS_TEMPLATE_TYPE = 'system_sms_template_type',
SYSTEM_SMS_SEND_STATUS = 'system_sms_send_status', SYSTEM_SMS_SEND_STATUS = 'system_sms_send_status',
SYSTEM_SMS_RECEIVE_STATUS = 'system_sms_receive_status', SYSTEM_SMS_RECEIVE_STATUS = 'system_sms_receive_status',
SYSTEM_ERROR_CODE_TYPE = 'system_error_code_type', SYSTEM_ERROR_CODE_TYPE = 'system_error_code_type',
SYSTEM_OAUTH2_GRANT_TYPE = 'system_oauth2_grant_type', SYSTEM_OAUTH2_GRANT_TYPE = 'system_oauth2_grant_type',
SYSTEM_MAIL_SEND_STATUS = 'system_mail_send_status', SYSTEM_MAIL_SEND_STATUS = 'system_mail_send_status',
SYSTEM_NOTIFY_TEMPLATE_TYPE = 'system_notify_template_type', SYSTEM_NOTIFY_TEMPLATE_TYPE = 'system_notify_template_type',
SYSTEM_SOCIAL_TYPE = 'system_social_type', SYSTEM_SOCIAL_TYPE = 'system_social_type',
// ========== INFRA 模块 ========== // ========== INFRA 模块 ==========
INFRA_BOOLEAN_STRING = 'infra_boolean_string', INFRA_BOOLEAN_STRING = 'infra_boolean_string',
INFRA_JOB_STATUS = 'infra_job_status', INFRA_JOB_STATUS = 'infra_job_status',
INFRA_JOB_LOG_STATUS = 'infra_job_log_status', INFRA_JOB_LOG_STATUS = 'infra_job_log_status',
INFRA_API_ERROR_LOG_PROCESS_STATUS = 'infra_api_error_log_process_status', INFRA_API_ERROR_LOG_PROCESS_STATUS = 'infra_api_error_log_process_status',
INFRA_CONFIG_TYPE = 'infra_config_type', INFRA_CONFIG_TYPE = 'infra_config_type',
INFRA_CODEGEN_TEMPLATE_TYPE = 'infra_codegen_template_type', INFRA_CODEGEN_TEMPLATE_TYPE = 'infra_codegen_template_type',
INFRA_CODEGEN_FRONT_TYPE = 'infra_codegen_front_type', INFRA_CODEGEN_FRONT_TYPE = 'infra_codegen_front_type',
INFRA_CODEGEN_SCENE = 'infra_codegen_scene', INFRA_CODEGEN_SCENE = 'infra_codegen_scene',
INFRA_FILE_STORAGE = 'infra_file_storage', INFRA_FILE_STORAGE = 'infra_file_storage',
INFRA_OPERATE_TYPE = 'infra_operate_type', INFRA_OPERATE_TYPE = 'infra_operate_type',
// ========== BPM 模块 ========== // ========== BPM 模块 ==========
BPM_MODEL_FORM_TYPE = 'bpm_model_form_type', BPM_MODEL_FORM_TYPE = 'bpm_model_form_type',
BPM_TASK_CANDIDATE_STRATEGY = 'bpm_task_candidate_strategy', BPM_TASK_CANDIDATE_STRATEGY = 'bpm_task_candidate_strategy',
BPM_PROCESS_INSTANCE_STATUS = 'bpm_process_instance_status', BPM_PROCESS_INSTANCE_STATUS = 'bpm_process_instance_status',
BPM_TASK_STATUS = 'bpm_task_status', BPM_TASK_STATUS = 'bpm_task_status',
BPM_OA_LEAVE_TYPE = 'bpm_oa_leave_type', BPM_OA_LEAVE_TYPE = 'bpm_oa_leave_type',
BPM_PROCESS_LISTENER_TYPE = 'bpm_process_listener_type', BPM_PROCESS_LISTENER_TYPE = 'bpm_process_listener_type',
BPM_PROCESS_LISTENER_VALUE_TYPE = 'bpm_process_listener_value_type', BPM_PROCESS_LISTENER_VALUE_TYPE = 'bpm_process_listener_value_type',
// ========== PAY 模块 ========== // ========== PAY 模块 ==========
PAY_CHANNEL_CODE = 'pay_channel_code',// 支付渠道编码类型 PAY_CHANNEL_CODE = 'pay_channel_code',// 支付渠道编码类型
PAY_ORDER_STATUS = 'pay_order_status',// 商户支付订单状态 PAY_ORDER_STATUS = 'pay_order_status',// 商户支付订单状态
PAY_REFUND_STATUS = 'pay_refund_status',// 退款订单状态 PAY_REFUND_STATUS = 'pay_refund_status',// 退款订单状态
PAY_NOTIFY_STATUS = 'pay_notify_status',// 商户支付回调状态 PAY_NOTIFY_STATUS = 'pay_notify_status',// 商户支付回调状态
PAY_NOTIFY_TYPE = 'pay_notify_type',// 商户支付回调状态 PAY_NOTIFY_TYPE = 'pay_notify_type',// 商户支付回调状态
PAY_TRANSFER_STATUS = 'pay_transfer_status',// 转账订单状态 PAY_TRANSFER_STATUS = 'pay_transfer_status',// 转账订单状态
PAY_TRANSFER_TYPE = 'pay_transfer_type',// 转账订单状态 PAY_TRANSFER_TYPE = 'pay_transfer_type',// 转账订单状态
// ========== MP 模块 ========== // ========== MP 模块 ==========
MP_AUTO_REPLY_REQUEST_MATCH = 'mp_auto_reply_request_match',// 自动回复请求匹配类型 MP_AUTO_REPLY_REQUEST_MATCH = 'mp_auto_reply_request_match',// 自动回复请求匹配类型
MP_MESSAGE_TYPE = 'mp_message_type',// 消息类型 MP_MESSAGE_TYPE = 'mp_message_type',// 消息类型
// ========== Member 会员模块 ========== // ========== Member 会员模块 ==========
MEMBER_POINT_BIZ_TYPE = 'member_point_biz_type',// 积分的业务类型 MEMBER_POINT_BIZ_TYPE = 'member_point_biz_type',// 积分的业务类型
MEMBER_EXPERIENCE_BIZ_TYPE = 'member_experience_biz_type',// 会员经验业务类型 MEMBER_EXPERIENCE_BIZ_TYPE = 'member_experience_biz_type',// 会员经验业务类型
// ========== MALL - 商品模块 ========== // ========== MALL - 商品模块 ==========
PRODUCT_SPU_STATUS = 'product_spu_status',//商品状态 PRODUCT_SPU_STATUS = 'product_spu_status',//商品状态
// ========== MALL - 交易模块 ========== // ========== MALL - 交易模块 ==========
EXPRESS_CHARGE_MODE = 'trade_delivery_express_charge_mode',//快递的计费方式 EXPRESS_CHARGE_MODE = 'trade_delivery_express_charge_mode',//快递的计费方式
TRADE_AFTER_SALE_STATUS = 'trade_after_sale_status',// 售后 - 状态 TRADE_AFTER_SALE_STATUS = 'trade_after_sale_status',// 售后 - 状态
TRADE_AFTER_SALE_WAY = 'trade_after_sale_way',// 售后 - 方式 TRADE_AFTER_SALE_WAY = 'trade_after_sale_way',// 售后 - 方式
TRADE_AFTER_SALE_TYPE = 'trade_after_sale_type',// 售后 - 类型 TRADE_AFTER_SALE_TYPE = 'trade_after_sale_type',// 售后 - 类型
TRADE_ORDER_TYPE = 'trade_order_type',// 订单 - 类型 TRADE_ORDER_TYPE = 'trade_order_type',// 订单 - 类型
TRADE_ORDER_STATUS = 'trade_order_status',// 订单 - 状态 TRADE_ORDER_STATUS = 'trade_order_status',// 订单 - 状态
TRADE_ORDER_ITEM_AFTER_SALE_STATUS = 'trade_order_item_after_sale_status',// 订单项 - 售后状态 TRADE_ORDER_ITEM_AFTER_SALE_STATUS = 'trade_order_item_after_sale_status',// 订单项 - 售后状态
TRADE_DELIVERY_TYPE = 'trade_delivery_type',// 配送方式 TRADE_DELIVERY_TYPE = 'trade_delivery_type',// 配送方式
BROKERAGE_ENABLED_CONDITION = 'brokerage_enabled_condition',// 分佣模式 BROKERAGE_ENABLED_CONDITION = 'brokerage_enabled_condition',// 分佣模式
BROKERAGE_BIND_MODE = 'brokerage_bind_mode',// 分销关系绑定模式 BROKERAGE_BIND_MODE = 'brokerage_bind_mode',// 分销关系绑定模式
BROKERAGE_BANK_NAME = 'brokerage_bank_name',// 佣金提现银行 BROKERAGE_BANK_NAME = 'brokerage_bank_name',// 佣金提现银行
BROKERAGE_WITHDRAW_TYPE = 'brokerage_withdraw_type',// 佣金提现类型 BROKERAGE_WITHDRAW_TYPE = 'brokerage_withdraw_type',// 佣金提现类型
BROKERAGE_RECORD_BIZ_TYPE = 'brokerage_record_biz_type',// 佣金业务类型 BROKERAGE_RECORD_BIZ_TYPE = 'brokerage_record_biz_type',// 佣金业务类型
BROKERAGE_RECORD_STATUS = 'brokerage_record_status',// 佣金状态 BROKERAGE_RECORD_STATUS = 'brokerage_record_status',// 佣金状态
BROKERAGE_WITHDRAW_STATUS = 'brokerage_withdraw_status',// 佣金提现状态 BROKERAGE_WITHDRAW_STATUS = 'brokerage_withdraw_status',// 佣金提现状态
// ========== MALL - 营销模块 ========== // ========== MALL - 营销模块 ==========
PROMOTION_DISCOUNT_TYPE = 'promotion_discount_type',// 优惠类型 PROMOTION_DISCOUNT_TYPE = 'promotion_discount_type',// 优惠类型
PROMOTION_PRODUCT_SCOPE = 'promotion_product_scope',// 营销的商品范围 PROMOTION_PRODUCT_SCOPE = 'promotion_product_scope',// 营销的商品范围
PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE = 'promotion_coupon_template_validity_type',// 优惠劵模板的有限期类型 PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE = 'promotion_coupon_template_validity_type',// 优惠劵模板的有限期类型
PROMOTION_COUPON_STATUS = 'promotion_coupon_status',// 优惠劵的状态 PROMOTION_COUPON_STATUS = 'promotion_coupon_status',// 优惠劵的状态
PROMOTION_COUPON_TAKE_TYPE = 'promotion_coupon_take_type',// 优惠劵的领取方式 PROMOTION_COUPON_TAKE_TYPE = 'promotion_coupon_take_type',// 优惠劵的领取方式
PROMOTION_ACTIVITY_STATUS = 'promotion_activity_status',// 优惠活动的状态 PROMOTION_ACTIVITY_STATUS = 'promotion_activity_status',// 优惠活动的状态
PROMOTION_CONDITION_TYPE = 'promotion_condition_type',// 营销的条件类型枚举 PROMOTION_CONDITION_TYPE = 'promotion_condition_type',// 营销的条件类型枚举
PROMOTION_BARGAIN_RECORD_STATUS = 'promotion_bargain_record_status',// 砍价记录的状态 PROMOTION_BARGAIN_RECORD_STATUS = 'promotion_bargain_record_status',// 砍价记录的状态
PROMOTION_COMBINATION_RECORD_STATUS = 'promotion_combination_record_status',// 拼团记录的状态 PROMOTION_COMBINATION_RECORD_STATUS = 'promotion_combination_record_status',// 拼团记录的状态
PROMOTION_BANNER_POSITION = 'promotion_banner_position',// banner 定位 PROMOTION_BANNER_POSITION = 'promotion_banner_position',// banner 定位
// ========== CRM - 客户管理模块 ========== // ========== CRM - 客户管理模块 ==========
CRM_AUDIT_STATUS = 'crm_audit_status',// CRM 审批状态 CRM_AUDIT_STATUS = 'crm_audit_status',// CRM 审批状态
CRM_BIZ_TYPE = 'crm_biz_type',// CRM 业务类型 CRM_BIZ_TYPE = 'crm_biz_type',// CRM 业务类型
CRM_BUSINESS_END_STATUS_TYPE = 'crm_business_end_status_type',// CRM 商机结束状态类型 CRM_BUSINESS_END_STATUS_TYPE = 'crm_business_end_status_type',// CRM 商机结束状态类型
CRM_RECEIVABLE_RETURN_TYPE = 'crm_receivable_return_type',// CRM 回款的还款方式 CRM_RECEIVABLE_RETURN_TYPE = 'crm_receivable_return_type',// CRM 回款的还款方式
CRM_CUSTOMER_INDUSTRY = 'crm_customer_industry',// CRM 客户所属行业 CRM_CUSTOMER_INDUSTRY = 'crm_customer_industry',// CRM 客户所属行业
CRM_CUSTOMER_LEVEL = 'crm_customer_level',// CRM 客户级别 CRM_CUSTOMER_LEVEL = 'crm_customer_level',// CRM 客户级别
CRM_CUSTOMER_SOURCE = 'crm_customer_source',// CRM 客户来源 CRM_CUSTOMER_SOURCE = 'crm_customer_source',// CRM 客户来源
CRM_PRODUCT_STATUS = 'crm_product_status',// CRM 商品状态 CRM_PRODUCT_STATUS = 'crm_product_status',// CRM 商品状态
CRM_PERMISSION_LEVEL = 'crm_permission_level',// CRM 数据权限的级别 CRM_PERMISSION_LEVEL = 'crm_permission_level',// CRM 数据权限的级别
CRM_PRODUCT_UNIT = 'crm_product_unit',// CRM 产品单位 CRM_PRODUCT_UNIT = 'crm_product_unit',// CRM 产品单位
CRM_FOLLOW_UP_TYPE = 'crm_follow_up_type',// CRM 跟进方式 CRM_FOLLOW_UP_TYPE = 'crm_follow_up_type',// CRM 跟进方式
// ========== ERP - 企业资源计划模块 ========== // ========== ERP - 企业资源计划模块 ==========
ERP_AUDIT_STATUS = 'erp_audit_status',// ERP 审批状态 ERP_AUDIT_STATUS = 'erp_audit_status',// ERP 审批状态
ERP_STOCK_RECORD_BIZ_TYPE = 'erp_stock_record_biz_type',// 库存明细的业务类型 ERP_STOCK_RECORD_BIZ_TYPE = 'erp_stock_record_biz_type',// 库存明细的业务类型
ERP_MOLD_STATUS = 'erp_mold_status',// ERP 模具状态 ERP_MOLD_STATUS = 'erp_mold_status',// ERP 模具状态
ERP_MAINTAIN_TYPE = 'maintain_type',// ERP 保养类型 ERP_MAINTAIN_TYPE = 'maintain_type',// ERP 保养类型
ERP_AUTOCODE_IS_PADDING = "erp_autocode_is_padding", ERP_AUTOCODE_IS_PADDING = "erp_autocode_is_padding",
ERP_AUTOCODE_PADDING_TYPE = "erp_autocode_padding_type", ERP_AUTOCODE_PADDING_TYPE = "erp_autocode_padding_type",
ERP_AUTOCODE_CYCLEMETHOD = "erp_autocode_cyclemethod", ERP_AUTOCODE_CYCLEMETHOD = "erp_autocode_cyclemethod",
ERP_AUTOCODE_PARTTYPE = "erp_autocode_parttype", ERP_AUTOCODE_PARTTYPE = "erp_autocode_parttype",
// ========== MES - 生产管理模块 ========== // ========== MES - 生产管理模块 ==========
MES_ORG_TYPE = "mes_org_type", MES_ORG_TYPE = "mes_org_type",
MES_ORG_CLASS = "mes_org_class", MES_ORG_CLASS = "mes_org_class",
MES_ORG_STATUS = "mes_org_status", MES_ORG_STATUS = "mes_org_status",
MES_TASK_STATUS = "mes_task_status", MES_TASK_STATUS = "mes_task_status",
MES_PLAN_STATUS = "mes_plan_status", MES_PLAN_STATUS = "mes_plan_status",
MES_RECORD_STATUS = "mes_record_status", MES_RECORD_STATUS = "mes_record_status",
MES_GROUP_TYPE = "mes_group_type", MES_GROUP_TYPE = "mes_group_type",
MES_WORK_TEAM_USER_ROLE = "mes_work_team_user_role" MES_WORK_TEAM_USER_ROLE = "mes_work_team_user_role",
MES_PRODUCE_ITEM_REQUISITION = "mes_produce_item_requisition"
} }

@ -27,11 +27,12 @@
<el-input v-model="formData.machineId" placeholder="请输入机台ID" /> <el-input v-model="formData.machineId" placeholder="请输入机台ID" />
</el-form-item> </el-form-item>
<el-form-item label="使用时间(小时)" prop="useTime"> <el-form-item label="使用时间(小时)" prop="useTime">
<el-date-picker <el-input-number
v-model="formData.useTime" v-model="formData.useTime"
type="date" :min="0"
value-format="x" :precision="2"
placeholder="选择使用时间(小时)" class="!w-1/1"
placeholder="输入预期寿命(小时)"
/> />
</el-form-item> </el-form-item>
<el-form-item label="入库时间" prop="inTime"> <el-form-item label="入库时间" prop="inTime">
@ -168,7 +169,7 @@ const resetForm = () => {
name: undefined, name: undefined,
unitId: undefined, unitId: undefined,
machineId: undefined, machineId: undefined,
useTime: undefined, useTime: 0,
inTime: undefined, inTime: undefined,
status: undefined, status: undefined,
images: undefined, images: undefined,
@ -178,4 +179,4 @@ const resetForm = () => {
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }
</script> </script>

@ -40,7 +40,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="成品率%" prop="yieldRate"> <el-form-item label="成品率%" prop="yieldRate">
<el-input v-model="formData.yieldRate" placeholder="请输入成品率%" /> <el-input-number
v-model="formData.yieldRate"
:min="0"
:max="100"
:precision="2"
class="!w-1/1"
placeholder="请输入成品率"
/>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" /> <el-input v-model="formData.remark" placeholder="请输入备注" />
@ -175,7 +182,7 @@ const resetForm = () => {
version: undefined, version: undefined,
productId: undefined, productId: undefined,
unitId: undefined, unitId: undefined,
yieldRate: undefined, yieldRate: 100,
remark: undefined, remark: undefined,
isEnable: undefined isEnable: undefined
} }

@ -9,15 +9,14 @@
> >
<el-table :data="formData" class="-mt-10px"> <el-table :data="formData" class="-mt-10px">
<el-table-column label="序号" type="index" width="100" /> <el-table-column label="序号" type="index" width="100" />
<el-table-column label="产品" min-width="150"> <el-table-column label="原料" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.productId`" :rules="formRules.productId" class="mb-0px!"> <el-form-item :prop="`${$index}.productId`" :rules="formRules.productId" class="mb-0px!">
<el-select <el-select
v-model="row.productId" v-model="row.productId"
clearable clearable
filterable filterable
@change="onChangeProduct($event, row)" placeholder="请选择原料"
placeholder="请选择产品"
> >
<el-option <el-option
v-for="item in productList" v-for="item in productList"
@ -54,7 +53,13 @@
<el-table-column label="损耗率%" min-width="150"> <el-table-column label="损耗率%" min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.yieldRate`" :rules="formRules.yieldRate" class="mb-0px!"> <el-form-item :prop="`${$index}.yieldRate`" :rules="formRules.yieldRate" class="mb-0px!">
<el-input v-model="row.yieldRate" placeholder="请输入损耗率%" /> <el-input-number
v-model="row.yieldRate"
:min="0"
:precision="2"
class="!w-1/1"
placeholder="请输入损耗率"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -90,7 +95,7 @@ const props = defineProps<{
const formLoading = ref(false) // const formLoading = ref(false) //
const formData = ref([]) const formData = ref([])
const formRules = reactive({ const formRules = reactive({
productId: [{ required: true, message: '产品ID不能为空', trigger: 'blur' }], productId: [{ required: true, message: '原料不能为空', trigger: 'blur' }],
bomId: [{ required: true, message: 'BOM 不能为空', trigger: 'blur' }], bomId: [{ required: true, message: 'BOM 不能为空', trigger: 'blur' }],
usageNumber: [{ required: true, message: '用量不能为空', trigger: 'blur' }] usageNumber: [{ required: true, message: '用量不能为空', trigger: 'blur' }]
}) })
@ -100,7 +105,7 @@ const formRef = ref() // 表单 Ref
onMounted(async () => { onMounted(async () => {
// //
unitList.value = await ProductUnitApi.getProductUnitSimpleList() unitList.value = await ProductUnitApi.getProductUnitSimpleList()
productList.value = await ProductApi.getProductSimpleList() productList.value = await ProductApi.getItemSimpleList()
// //
if (formData.value.length === 0) { if (formData.value.length === 0) {
handleAdd() handleAdd()
@ -141,6 +146,7 @@ const handleAdd = () => {
isEnable: undefined isEnable: undefined
} }
row.bomId = props.bomId row.bomId = props.bomId
row.yieldRate = 0
formData.value.push(row) formData.value.push(row)
} }
@ -161,13 +167,4 @@ const getData = () => {
defineExpose({ validate, getData }) defineExpose({ validate, getData })
/** 处理产品变更 */
const onChangeProduct = (productId, row) => {
const product = productList.value.find((item) => item.id === productId)
if (product) {
// row.productUnitName = product.unitName
}
// //
// setStockCount(row)
}
</script> </script>

@ -4,8 +4,8 @@
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="ID" align="center" prop="id" /> <el-table-column label="ID" align="center" prop="id" />
<el-table-column label="原料" align="center" prop="productName" /> <el-table-column label="原料" align="center" prop="productName" />
<el-table-column label="用量" align="center" prop="usageNumber" />
<el-table-column label="单位" align="center" prop="unitName" /> <el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="用量" align="center" prop="usageNumber" />
<el-table-column label="损耗率%" align="center" prop="yieldRate" /> <el-table-column label="损耗率%" align="center" prop="yieldRate" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable"> <el-table-column label="是否启用" align="center" prop="isEnable">

@ -28,23 +28,23 @@
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-radio-group v-model="formData.status"> <el-radio-group v-model="formData.status">
<el-radio label="1">请选择字典生成</el-radio> <el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.MES_PRODUCE_ITEM_REQUISITION)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="流程实例的编号" prop="processInstanceId">
<el-input v-model="formData.processInstanceId" placeholder="请输入流程实例的编号" /> <el-form-item label="计划" prop="planId">
</el-form-item>
<el-form-item label="计划ID" prop="planId">
<el-input v-model="formData.planId" placeholder="请输入计划ID" /> <el-input v-model="formData.planId" placeholder="请输入计划ID" />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" /> <el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item> </el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
</el-form> </el-form>
<!-- 子表的表单 --> <!-- 子表的表单 -->
<el-tabs v-model="subTabsName"> <el-tabs v-model="subTabsName">
@ -61,6 +61,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { ItemRequisitionApi, ItemRequisitionVO } from '@/api/mes/itemrequisition' import { ItemRequisitionApi, ItemRequisitionVO } from '@/api/mes/itemrequisition'
import ItemRequisitionDetailForm from './components/ItemRequisitionDetailForm.vue' import ItemRequisitionDetailForm from './components/ItemRequisitionDetailForm.vue'
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
/** 生产领料 表单 */ /** 生产领料 表单 */
defineOptions({ name: 'ItemRequisitionForm' }) defineOptions({ name: 'ItemRequisitionForm' })
@ -160,4 +161,4 @@ const resetForm = () => {
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }
</script> </script>

@ -28,7 +28,7 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="创建时间" prop="deliveryDate"> <el-form-item label="领料时间" prop="deliveryDate">
<el-date-picker <el-date-picker
v-model="queryParams.deliveryDate" v-model="queryParams.deliveryDate"
value-format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
@ -42,22 +42,18 @@
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select <el-select
v-model="queryParams.status" v-model="queryParams.status"
placeholder="请选择状态" placeholder="请选择领料单状态"
clearable clearable
class="!w-240px" class="!w-240px"
> >
<el-option label="请选择字典生成" value="" /> <el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MES_PRODUCE_ITEM_REQUISITION)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="流程实例的编号" prop="processInstanceId">
<el-input
v-model="queryParams.processInstanceId"
placeholder="请输入流程实例的编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="计划ID" prop="planId"> <el-form-item label="计划ID" prop="planId">
<el-input <el-input
v-model="queryParams.planId" v-model="queryParams.planId"
@ -76,16 +72,7 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-select
v-model="queryParams.isEnable"
placeholder="请选择是否启用"
clearable
class="!w-240px"
>
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createTime"> <el-form-item label="创建时间" prop="createTime">
<el-date-picker <el-date-picker
v-model="queryParams.createTime" v-model="queryParams.createTime"
@ -142,7 +129,6 @@
<el-table-column label="流程实例的编号" align="center" prop="processInstanceId" /> <el-table-column label="流程实例的编号" align="center" prop="processInstanceId" />
<el-table-column label="计划ID" align="center" prop="planId" /> <el-table-column label="计划ID" align="center" prop="planId" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable" />
<el-table-column <el-table-column
label="创建时间" label="创建时间"
align="center" align="center"
@ -190,6 +176,7 @@ import download from '@/utils/download'
import { ItemRequisitionApi, ItemRequisitionVO } from '@/api/mes/itemrequisition' import { ItemRequisitionApi, ItemRequisitionVO } from '@/api/mes/itemrequisition'
import ItemRequisitionForm from './ItemRequisitionForm.vue' import ItemRequisitionForm from './ItemRequisitionForm.vue'
import ItemRequisitionDetailList from './components/ItemRequisitionDetailList.vue' import ItemRequisitionDetailList from './components/ItemRequisitionDetailList.vue'
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
/** 生产领料 列表 */ /** 生产领料 列表 */
defineOptions({ name: 'ItemRequisition' }) defineOptions({ name: 'ItemRequisition' })
@ -278,4 +265,4 @@ const handleExport = async () => {
onMounted(() => { onMounted(() => {
getList() getList()
}) })
</script> </script>

@ -7,18 +7,19 @@
label-width="100px" label-width="100px"
v-loading="formLoading" v-loading="formLoading"
> >
<el-form-item label="计划编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入计划编码" />
</el-form-item>
<el-form-item label="产品ID" prop="productId">
<el-input v-model="formData.productId" placeholder="请输入产品ID" />
</el-form-item>
<el-form-item label="任务单明细ID" prop="taskDetailId"> <el-form-item label="任务单明细ID" prop="taskDetailId">
<el-input v-model="formData.taskDetailId" placeholder="请输入任务单明细ID" /> <el-input v-model="formData.taskDetailId" placeholder="请输入任务单明细ID" />
</el-form-item> </el-form-item>
<el-form-item label="任务单ID" prop="taskId"> <el-form-item label="任务单ID" prop="taskId">
<el-input v-model="formData.taskId" placeholder="请输入任务单ID" /> <el-input v-model="formData.taskId" placeholder="请输入任务单ID" />
</el-form-item> </el-form-item>
<el-form-item label="计划编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入计划编码" />
</el-form-item>
<el-form-item label="产品ID" prop="productId">
<el-input v-model="formData.productId" placeholder="请输入产品ID" />
</el-form-item>
<el-form-item label="数量" prop="planNumber"> <el-form-item label="数量" prop="planNumber">
<el-input v-model="formData.planNumber" placeholder="请输入数量" /> <el-input v-model="formData.planNumber" placeholder="请输入数量" />
</el-form-item> </el-form-item>
@ -199,4 +200,4 @@ const resetForm = () => {
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }
</script> </script>

@ -8,43 +8,43 @@
:inline="true" :inline="true"
label-width="68px" label-width="68px"
> >
<el-form-item label="计划编码" prop="code">
<el-form-item label="任务单ID" prop="taskId">
<el-input <el-input
v-model="queryParams.code" v-model="queryParams.taskId"
placeholder="请输入计划编码" placeholder="请输入任务单ID"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="产品ID" prop="productId"> <el-form-item label="任务单明细ID" prop="taskDetailId">
<el-input <el-input
v-model="queryParams.productId" v-model="queryParams.taskDetailId"
placeholder="请输入产品ID" placeholder="请输入任务单明细ID"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="任务单明细ID" prop="taskDetailId"> <el-form-item label="计划编码" prop="code">
<el-input <el-input
v-model="queryParams.taskDetailId" v-model="queryParams.code"
placeholder="请输入任务单明细ID" placeholder="请输入计划编码"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="任务单ID" prop="taskId"> <el-form-item label="产品ID" prop="productId">
<el-input <el-input
v-model="queryParams.taskId" v-model="queryParams.productId"
placeholder="请输入任务单ID" placeholder="请输入产品ID"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select <el-select
v-model="queryParams.status" v-model="queryParams.status"
@ -122,22 +122,7 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-select
v-model="queryParams.isEnable"
placeholder="请选择是否启用"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
@ -353,4 +338,4 @@ const handleExport = async () => {
onMounted(() => { onMounted(() => {
getList() getList()
}) })
</script> </script>

@ -7,17 +7,51 @@
label-width="100px" label-width="100px"
v-loading="formLoading" v-loading="formLoading"
> >
<el-form-item label="产品ID" prop="productId"> <el-form-item label="产品" prop="productId">
<el-input v-model="formData.productId" placeholder="请输入产品ID" /> <el-select
v-model="formData.productId"
clearable
filterable
placeholder="请选择产品"
>
<el-option
v-for="item in productList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="单位ID" prop="unitId"> <el-form-item label="单位" prop="unitId">
<el-input v-model="formData.unitId" placeholder="请输入单位ID" /> <el-select
v-model="formData.unitId"
clearable
filterable
placeholder="请选择产品"
>
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="数量" prop="number"> <el-form-item label="数量" prop="number">
<el-input v-model="formData.number" placeholder="请输入数量" /> <el-input-number
v-model="formData.number"
:min="0"
class="!w-1/1"
placeholder="请输入数量"
/>
</el-form-item> </el-form-item>
<el-form-item label="打包要求(每包/个)" prop="packageSize"> <el-form-item label="打包要求(每包/个)" prop="packageSize">
<el-input v-model="formData.packageSize" placeholder="请输入打包要求(每包/个)" /> <el-input-number
v-model="formData.packageSize"
:min="0"
class="!w-1/1"
placeholder="请输入打包要求(每包/个)"
/>
</el-form-item> </el-form-item>
<el-form-item label="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入项目名称" /> <el-input v-model="formData.projectName" placeholder="请输入项目名称" />
@ -37,7 +71,11 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { TaskApi } from '@/api/mes/task' import { TaskApi } from '@/api/mes/task'
import { ProductUnitApi, ProductUnitVO } from '@/api/erp/product/unit'
import {ProductApi, ProductVO} from "@/api/erp/product/product";
const unitList = ref<ProductUnitVO[]>([]) //
const productList = ref<ProductVO[]>([]) //
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
@ -81,6 +119,9 @@ const open = async (type: string, id?: number, taskId: number) => {
formLoading.value = false formLoading.value = false
} }
} }
//
unitList.value = await ProductUnitApi.getProductUnitSimpleList()
productList.value = await ProductApi.getProductSimpleList()
} }
defineExpose({ open }) // open defineExpose({ open }) // open
@ -123,4 +164,4 @@ const resetForm = () => {
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }
</script> </script>

@ -11,8 +11,8 @@
</el-button> </el-button>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="ID" align="center" prop="id" /> <el-table-column label="ID" align="center" prop="id" />
<el-table-column label="产品ID" align="center" prop="productId" /> <el-table-column label="产品" align="center" prop="productName" />
<el-table-column label="单位ID" align="center" prop="unitId" /> <el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="数量" align="center" prop="number" /> <el-table-column label="数量" align="center" prop="number" />
<el-table-column label="打包要求(每包/个)" align="center" prop="packageSize" /> <el-table-column label="打包要求(每包/个)" align="center" prop="packageSize" />
<el-table-column label="项目名称" align="center" prop="projectName" /> <el-table-column label="项目名称" align="center" prop="projectName" />
@ -130,4 +130,4 @@ const handleDelete = async (id: number) => {
await getList() await getList()
} catch {} } catch {}
} }
</script> </script>

Loading…
Cancel
Save