liutao_branch
chenshuichuan 2 years ago
parent 66779370f2
commit ee7ea361f3

@ -27,8 +27,13 @@ export const ProductApi = {
// 查询产品精简列表
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) => {

@ -101,12 +101,6 @@ export const getDictLabel = (dictType: string, value: any): string => {
}
export enum DICT_TYPE {
USER_TYPE = 'user_type',
COMMON_STATUS = 'common_status',
@ -114,8 +108,6 @@ TERMINAL = 'terminal',// 终端
DATE_INTERVAL = 'date_interval',// 数据间隔
// ========== SYSTEM 模块 ==========
SYSTEM_USER_SEX = 'system_user_sex',
SYSTEM_MENU_TYPE = 'system_menu_type',
@ -165,8 +157,6 @@ PAY_TRANSFER_STATUS = 'pay_transfer_status',// 转账订单状态
PAY_TRANSFER_TYPE = 'pay_transfer_type',// 转账订单状态
// ========== MP 模块 ==========
MP_AUTO_REPLY_REQUEST_MATCH = 'mp_auto_reply_request_match',// 自动回复请求匹配类型
MP_MESSAGE_TYPE = 'mp_message_type',// 消息类型
@ -246,5 +236,6 @@ MES_TASK_STATUS = "mes_task_status",
MES_PLAN_STATUS = "mes_plan_status",
MES_RECORD_STATUS = "mes_record_status",
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-form-item>
<el-form-item label="使用时间(小时)" prop="useTime">
<el-date-picker
<el-input-number
v-model="formData.useTime"
type="date"
value-format="x"
placeholder="选择使用时间(小时)"
:min="0"
:precision="2"
class="!w-1/1"
placeholder="输入预期寿命(小时)"
/>
</el-form-item>
<el-form-item label="入库时间" prop="inTime">
@ -168,7 +169,7 @@ const resetForm = () => {
name: undefined,
unitId: undefined,
machineId: undefined,
useTime: undefined,
useTime: 0,
inTime: undefined,
status: undefined,
images: undefined,

@ -40,7 +40,14 @@
</el-select>
</el-form-item>
<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 label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
@ -175,7 +182,7 @@ const resetForm = () => {
version: undefined,
productId: undefined,
unitId: undefined,
yieldRate: undefined,
yieldRate: 100,
remark: undefined,
isEnable: undefined
}

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

@ -4,8 +4,8 @@
<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="原料" align="center" prop="productName" />
<el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="用量" align="center" prop="usageNumber" />
<el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="损耗率%" align="center" prop="yieldRate" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">

@ -28,23 +28,23 @@
</el-form-item>
<el-form-item label="状态" prop="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-form-item>
<el-form-item label="流程实例的编号" prop="processInstanceId">
<el-input v-model="formData.processInstanceId" placeholder="请输入流程实例的编号" />
</el-form-item>
<el-form-item label="计划ID" prop="planId">
<el-form-item label="计划" prop="planId">
<el-input v-model="formData.planId" placeholder="请输入计划ID" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</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-tabs v-model="subTabsName">
@ -61,6 +61,7 @@
<script setup lang="ts">
import { ItemRequisitionApi, ItemRequisitionVO } from '@/api/mes/itemrequisition'
import ItemRequisitionDetailForm from './components/ItemRequisitionDetailForm.vue'
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
/** 生产领料 表单 */
defineOptions({ name: 'ItemRequisitionForm' })

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

@ -7,18 +7,19 @@
label-width="100px"
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-input v-model="formData.taskDetailId" placeholder="请输入任务单明细ID" />
</el-form-item>
<el-form-item label="任务单ID" prop="taskId">
<el-input v-model="formData.taskId" placeholder="请输入任务单ID" />
</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-input v-model="formData.planNumber" placeholder="请输入数量" />
</el-form-item>

@ -8,43 +8,43 @@
:inline="true"
label-width="68px"
>
<el-form-item label="计划编码" prop="code">
<el-form-item label="任务单ID" prop="taskId">
<el-input
v-model="queryParams.code"
placeholder="请输入计划编码"
v-model="queryParams.taskId"
placeholder="请输入任务单ID"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="产品ID" prop="productId">
<el-form-item label="任务单明细ID" prop="taskDetailId">
<el-input
v-model="queryParams.productId"
placeholder="请输入产品ID"
v-model="queryParams.taskDetailId"
placeholder="请输入任务单明细ID"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="任务单明细ID" prop="taskDetailId">
<el-form-item label="计划编码" prop="code">
<el-input
v-model="queryParams.taskDetailId"
placeholder="请输入任务单明细ID"
v-model="queryParams.code"
placeholder="请输入计划编码"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="任务单ID" prop="taskId">
<el-form-item label="产品ID" prop="productId">
<el-input
v-model="queryParams.taskId"
placeholder="请输入任务单ID"
v-model="queryParams.productId"
placeholder="请输入产品ID"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
@ -122,21 +122,6 @@
class="!w-240px"
/>
</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-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>

@ -7,17 +7,51 @@
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="产品ID" prop="productId">
<el-input v-model="formData.productId" placeholder="请输入产品ID" />
<el-form-item label="产品" prop="productId">
<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 label="单位ID" prop="unitId">
<el-input v-model="formData.unitId" placeholder="请输入单位ID" />
<el-form-item label="单位" prop="unitId">
<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 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 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 label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入项目名称" />
@ -37,7 +71,11 @@
</template>
<script setup lang="ts">
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 message = useMessage() //
@ -81,6 +119,9 @@ const open = async (type: string, id?: number, taskId: number) => {
formLoading.value = false
}
}
//
unitList.value = await ProductUnitApi.getProductUnitSimpleList()
productList.value = await ProductApi.getProductSimpleList()
}
defineExpose({ open }) // open

@ -11,8 +11,8 @@
</el-button>
<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="productId" />
<el-table-column label="单位ID" align="center" prop="unitId" />
<el-table-column label="产品" align="center" prop="productName" />
<el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="数量" align="center" prop="number" />
<el-table-column label="打包要求(每包/个)" align="center" prop="packageSize" />
<el-table-column label="项目名称" align="center" prop="projectName" />

Loading…
Cancel
Save