fix product

liutao_branch
chenshuichuan 2 years ago
parent 1b9f4b30b4
commit 66779370f2

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

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

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

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

@ -13,8 +13,21 @@
<el-form-item label="BOM版本" prop="version">
<el-input v-model="formData.version" placeholder="请输入BOM版本" />
</el-form-item>
<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="请选择产品"
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 label="单位" prop="unitId">
<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 BomDetailForm from './components/BomDetailForm.vue'
import { ProductUnitApi, ProductUnitVO } from '@/api/erp/product/unit'
import { ProductApi, ProductVO } from '@/api/erp/product/product'
const productList = ref<ProductVO[]>([]) //
const unitList = ref<ProductUnitVO[]>([]) //
/** 产品BOM 表单 */
@ -113,7 +129,8 @@ const open = async (type: string, id?: number) => {
}
//
unitList.value = await ProductUnitApi.getProductUnitSimpleList()
//
productList.value = await ProductApi.getProductSimpleList()
}
defineExpose({ open }) // open
@ -164,4 +181,4 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
</script>
</script>

@ -12,14 +12,27 @@
<el-table-column label="产品" min-width="150">
<template #default="{ row, $index }">
<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>
</template>
</el-table-column>
<el-table-column label="单位" min-width="150">
<template #default="{ row, $index }">
<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
v-for="unit in unitList"
:key="unit.id"
@ -67,8 +80,10 @@
import { BomApi } from '@/api/mes/bom'
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<{
bomId: undefined // BOM ID
}>()
@ -81,6 +96,17 @@ const formRules = reactive({
})
const formRef = ref() // Ref
/** 初始化 */
onMounted(async () => {
//
unitList.value = await ProductUnitApi.getProductUnitSimpleList()
productList.value = await ProductApi.getProductSimpleList()
//
if (formData.value.length === 0) {
handleAdd()
}
})
/** 监听主表的关联字段的变化,加载对应的子表数据 */
watch(
() => props.bomId,
@ -97,8 +123,6 @@ watch(
} finally {
formLoading.value = false
}
//
unitList.value = await ProductUnitApi.getProductUnitSimpleList()
},
{ immediate: true }
@ -136,4 +160,14 @@ const getData = () => {
}
defineExpose({ validate, getData })
</script>
/** 处理产品变更 */
const onChangeProduct = (productId, row) => {
const product = productList.value.find((item) => item.id === productId)
if (product) {
// row.productUnitName = product.unitName
}
// //
// setStockCount(row)
}
</script>

@ -3,8 +3,8 @@
<ContentWrap>
<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="productId" />
<el-table-column label="单位" 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="usageNumber" />
<el-table-column label="损耗率%" align="center" prop="yieldRate" />
<el-table-column label="备注" align="center" prop="remark" />
@ -57,4 +57,4 @@ const handleQuery = () => {
onMounted(() => {
getList()
})
</script>
</script>

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

Loading…
Cancel
Save