fix product

liutao_branch
chenshuichuan 2 years ago
parent 1b9f4b30b4
commit 66779370f2

@ -16,15 +16,29 @@
<el-form-item label="规格" prop="moldType"> <el-form-item label="规格" prop="moldType">
<el-input v-model="formData.moldType" placeholder="请输入规格" /> <el-input v-model="formData.moldType" placeholder="请输入规格" />
</el-form-item> </el-form-item>
<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="请选择产品"
class="!w-1/1"
>
<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="预期寿命(小时)" 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="maintainType"> <el-form-item label="维保模式" prop="maintainType">
@ -38,11 +52,12 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="维保周期" prop="maintainTime"> <el-form-item label="维保周期" prop="maintainTime">
<el-date-picker <el-input-number
v-model="formData.maintainTime" v-model="formData.maintainTime"
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="moldSize"> <el-form-item label="模具系数" prop="moldSize">
@ -72,13 +87,13 @@
<script setup lang="ts"> <script setup lang="ts">
import { getIntDictOptions, DICT_TYPE, getBoolDictOptions } from '@/utils/dict' import { getIntDictOptions, DICT_TYPE, getBoolDictOptions } from '@/utils/dict'
import { MoldBrandApi, MoldBrandVO } from '@/api/erp/mold' import { MoldBrandApi, MoldBrandVO } from '@/api/erp/mold'
import { ProductApi, ProductVO } from '@/api/erp/product/product'
/** 模具型号 表单 */ /** 模具型号 表单 */
defineOptions({ name: 'MoldBrandForm' }) defineOptions({ name: 'MoldBrandForm' })
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
const productList = ref<ProductVO[]>([]) //
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
@ -121,6 +136,8 @@ const open = async (type: string, id?: number) => {
formLoading.value = false formLoading.value = false
} }
} }
//
productList.value = await ProductApi.getProductSimpleList()
} }
defineExpose({ open }) // open defineExpose({ open }) // open
@ -165,4 +182,5 @@ const resetForm = () => {
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }
</script> </script>

@ -13,7 +13,6 @@
<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="code" /> <el-table-column label="模具编码" align="center" prop="code" />
<el-table-column label="模具名称" align="center" prop="name" /> <el-table-column label="模具名称" align="center" prop="name" />
<el-table-column label="单位ID" align="center" prop="unitId" />
<el-table-column label="单位" align="center" prop="unitName" /> <el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="机台ID" align="center" prop="machineId" /> <el-table-column label="机台ID" align="center" prop="machineId" />
<el-table-column label="使用时间(小时)" align="center" prop="useTime" /> <el-table-column label="使用时间(小时)" align="center" prop="useTime" />

@ -35,14 +35,21 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="产品ID" prop="productId"> <el-form-item label="产品" prop="productId">
<el-input <el-select
v-model="queryParams.productId" v-model="queryParams.productId"
placeholder="请输入产品ID"
clearable clearable
@keyup.enter="handleQuery" filterable
placeholder="请选择产品"
class="!w-240px" class="!w-240px"
>
<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="维保模式" prop="maintainType"> <el-form-item label="维保模式" prop="maintainType">
@ -190,13 +197,14 @@ import download from '@/utils/download'
import { MoldBrandApi, MoldBrandVO } from '@/api/erp/mold' import { MoldBrandApi, MoldBrandVO } from '@/api/erp/mold'
import MoldBrandForm from './MoldBrandForm.vue' import MoldBrandForm from './MoldBrandForm.vue'
import MoldList from './components/MoldList.vue' import MoldList from './components/MoldList.vue'
import { ProductApi, ProductVO } from '@/api/erp/product/product'
/** 模具型号 列表 */ /** 模具型号 列表 */
defineOptions({ name: 'MoldBrand' }) defineOptions({ name: 'MoldBrand' })
const message = useMessage() // const message = useMessage() //
const { t } = useI18n() // const { t } = useI18n() //
const productList = ref<ProductVO[]>([]) //
const loading = ref(true) // const loading = ref(true) //
const list = ref<MoldBrandVO[]>([]) // const list = ref<MoldBrandVO[]>([]) //
const total = ref(0) // const total = ref(0) //
@ -283,7 +291,9 @@ const handleCurrentChange = (row) => {
} }
/** 初始化 **/ /** 初始化 **/
onMounted(() => { onMounted(async () => {
getList() await getList()
//
productList.value = await ProductApi.getProductSimpleList()
}) })
</script> </script>

@ -74,10 +74,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="重量(kg" prop="weight"> <el-form-item label="重量(g" prop="weight">
<el-input-number <el-input-number
v-model="formData.weight" v-model="formData.weight"
placeholder="请输入重量(kg" placeholder="请输入重量(g"
:min="0" :min="0"
class="!w-1/1" class="!w-1/1"
/> />

@ -13,8 +13,21 @@
<el-form-item label="BOM版本" prop="version"> <el-form-item label="BOM版本" prop="version">
<el-input v-model="formData.version" placeholder="请输入BOM版本" /> <el-input v-model="formData.version" placeholder="请输入BOM版本" />
</el-form-item> </el-form-item>
<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="请选择产品"
class="!w-1/1"
>
<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="单位" prop="unitId"> <el-form-item label="单位" prop="unitId">
<el-select v-model="formData.unitId" clearable placeholder="请选择单位" class="w-1/1"> <el-select v-model="formData.unitId" clearable placeholder="请选择单位" class="w-1/1">
@ -61,6 +74,9 @@ import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { BomApi, BomVO } from '@/api/mes/bom' import { BomApi, BomVO } from '@/api/mes/bom'
import BomDetailForm from './components/BomDetailForm.vue' import BomDetailForm from './components/BomDetailForm.vue'
import { ProductUnitApi, ProductUnitVO } from '@/api/erp/product/unit' import { ProductUnitApi, ProductUnitVO } from '@/api/erp/product/unit'
import { ProductApi, ProductVO } from '@/api/erp/product/product'
const productList = ref<ProductVO[]>([]) //
const unitList = ref<ProductUnitVO[]>([]) // const unitList = ref<ProductUnitVO[]>([]) //
/** 产品BOM 表单 */ /** 产品BOM 表单 */
@ -113,7 +129,8 @@ const open = async (type: string, id?: number) => {
} }
// //
unitList.value = await ProductUnitApi.getProductUnitSimpleList() unitList.value = await ProductUnitApi.getProductUnitSimpleList()
//
productList.value = await ProductApi.getProductSimpleList()
} }
defineExpose({ open }) // open defineExpose({ open }) // open

@ -12,14 +12,27 @@
<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-input v-model="row.productId" placeholder="请输入产品ID" /> <el-select
v-model="row.productId"
clearable
filterable
@change="onChangeProduct($event, row)"
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>
</template> </template>
</el-table-column> </el-table-column>
<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}.unitId`" :rules="formRules.unitId" class="mb-0px!"> <el-form-item :prop="`${$index}.unitId`" :rules="formRules.unitId" class="mb-0px!">
<el-select v-model="row.unitId" clearable placeholder="请选择单位" class="w-1/1"> <el-select v-model="row.unitId" clearable filterable placeholder="请选择单位" class="w-1/1">
<el-option <el-option
v-for="unit in unitList" v-for="unit in unitList"
:key="unit.id" :key="unit.id"
@ -67,8 +80,10 @@
import { BomApi } from '@/api/mes/bom' import { BomApi } from '@/api/mes/bom'
import { ProductUnitApi, ProductUnitVO } from '@/api/erp/product/unit' import { ProductUnitApi, ProductUnitVO } from '@/api/erp/product/unit'
const unitList = ref<ProductUnitVO[]>([]) // import {ProductApi, ProductVO} from "@/api/erp/product/product";
const unitList = ref<ProductUnitVO[]>([]) //
const productList = ref<ProductVO[]>([]) //
const props = defineProps<{ const props = defineProps<{
bomId: undefined // BOM ID bomId: undefined // BOM ID
}>() }>()
@ -81,6 +96,17 @@ const formRules = reactive({
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
/** 初始化 */
onMounted(async () => {
//
unitList.value = await ProductUnitApi.getProductUnitSimpleList()
productList.value = await ProductApi.getProductSimpleList()
//
if (formData.value.length === 0) {
handleAdd()
}
})
/** 监听主表的关联字段的变化,加载对应的子表数据 */ /** 监听主表的关联字段的变化,加载对应的子表数据 */
watch( watch(
() => props.bomId, () => props.bomId,
@ -97,8 +123,6 @@ watch(
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
//
unitList.value = await ProductUnitApi.getProductUnitSimpleList()
}, },
{ immediate: true } { immediate: true }
@ -136,4 +160,14 @@ 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>

@ -3,8 +3,8 @@
<ContentWrap> <ContentWrap>
<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="productId" /> <el-table-column label="原料" align="center" prop="productName" />
<el-table-column label="单位" align="center" prop="unitId" /> <el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="用量" align="center" prop="usageNumber" /> <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" />

@ -26,14 +26,21 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="产品ID" prop="productId"> <el-form-item label="产品" prop="productId">
<el-input <el-select
v-model="queryParams.productId" v-model="queryParams.productId"
placeholder="请输入产品ID"
clearable clearable
@keyup.enter="handleQuery" filterable
placeholder="请选择产品"
class="!w-240px" class="!w-240px"
>
<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="备注" prop="remark"> <el-form-item label="备注" prop="remark">
@ -101,8 +108,8 @@
<el-table-column label="ID" align="center" prop="id" /> <el-table-column label="ID" align="center" prop="id" />
<el-table-column label="BOM编码" align="center" prop="code" /> <el-table-column label="BOM编码" align="center" prop="code" />
<el-table-column label="BOM版本" align="center" prop="version" /> <el-table-column label="BOM版本" align="center" prop="version" />
<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="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">
@ -158,7 +165,9 @@ import download from '@/utils/download'
import { BomApi, BomVO } from '@/api/mes/bom' import { BomApi, BomVO } from '@/api/mes/bom'
import BomForm from './BomForm.vue' import BomForm from './BomForm.vue'
import BomDetailList from './components/BomDetailList.vue' import BomDetailList from './components/BomDetailList.vue'
import { ProductApi, ProductVO } from '@/api/erp/product/product'
const productList = ref<ProductVO[]>([]) //
/** 产品BOM 列表 */ /** 产品BOM 列表 */
defineOptions({ name: 'Bom' }) defineOptions({ name: 'Bom' })
@ -242,7 +251,9 @@ const handleExport = async () => {
} }
/** 初始化 **/ /** 初始化 **/
onMounted(() => { onMounted(async () => {
getList() await getList()
//
productList.value = await ProductApi.getProductSimpleList()
}) })
</script> </script>
Loading…
Cancel
Save